Skip to content

upsideos/erc20-examples

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hedera Transfer From Script

Execute ERC20 approve and transferFrom transactions on Hedera testnet.

Overview

This script performs a two-step token transfer process:

  1. Approve: The from wallet approves the spender wallet to spend a specified amount of tokens
  2. TransferFrom: The spender wallet transfers tokens from from to to

Prerequisites

  • Node.js >= 16.0.0
  • npm or yarn

Installation

cd hedera-transfer-from
npm install

Configuration

Create a transfer-config.json file based on the example:

cp transfer-config.example.json transfer-config.json

Edit transfer-config.json with your actual values:

{
  "token": "0x...",
  "from": {
    "address": "0x...",
    "privateKey": "0x..."
  },
  "spender": {
    "address": "0x...",
    "privateKey": "0x..."
  },
  "to": "0x...",
  "amount": "1000000",
  "rpcUrl": "https://testnet.hashio.io/api",
  "chainId": 296
}

Configuration Fields

Field Description
token ERC20 token contract address
from.address Address that owns the tokens
from.privateKey Private key to sign the approve transaction
spender.address Address authorized to transfer tokens
spender.privateKey Private key to sign the transferFrom transaction
to Recipient address
amount Amount in smallest units (wei)
rpcUrl RPC endpoint (optional, defaults to Hedera testnet)
chainId Chain ID (optional, defaults to 296 for Hedera testnet)

Usage

Execute Transfer

# Using npm script
npm run transfer ./transfer-config.json

# Or directly with node
node executeTransfer.js --config ./transfer-config.json

Show Example Config

npm run example
# or
node executeTransfer.js --example

Show Help

npm run help
# or
node executeTransfer.js --help

Output

The script provides detailed logging:

  1. Pre-transaction State

    • Token balances (from, spender, to)
    • ETH/HBAR balances (for gas)
    • Current allowance
  2. Transaction Execution

    • Approve transaction hash and confirmation
    • TransferFrom transaction hash and confirmation
  3. Post-transaction State

    • Final token balances
    • Final allowance
    • Balance changes summary

Example Output

================================================================================
EXECUTE APPROVE AND TRANSFERFROM
================================================================================

📡 Network: unknown (Chain ID: 296)
   RPC URL: https://testnet.hashio.io/api

📄 Token Contract: 0xdb7a07aff9a9c1e73b10cf50c8659a847149612d
   Name: Example Token
   Symbol: EXT
   Decimals: 18

💸 Transfer Parameters:
   From (owner): 0x1b39b2d0f810feb53fdf5d1324d73334132667b8
   Spender: 0xb8c5ac6f6945d905bac2649b7369fba36a69d41f
   To (recipient): 0x1ccf61d63616278db8078711b80ebd1fc06bfee5
   Amount: 0.000000000001 EXT (1000000 wei)

--------------------------------------------------------------------------------
PRE-TRANSACTION STATE
--------------------------------------------------------------------------------

💰 Token Balances:
   From: 100.0 EXT
   Spender: 0.0 EXT
   To: 50.0 EXT

🔐 Current Allowance:
   0x1b39... -> 0xb8c5...: 0.0 EXT

--------------------------------------------------------------------------------
STEP 1: APPROVE TRANSACTION
--------------------------------------------------------------------------------

⏳ Waiting for approve transaction...
   Transaction hash: 0x...
   ✅ Transaction confirmed in block 12345678

--------------------------------------------------------------------------------
STEP 2: TRANSFERFROM TRANSACTION
--------------------------------------------------------------------------------

⏳ Waiting for transferFrom transaction...
   Transaction hash: 0x...
   ✅ Transaction confirmed in block 12345679

================================================================================
SUMMARY
================================================================================

✅ TRANSFER COMPLETED SUCCESSFULLY

   Approve TX: 0x...
   TransferFrom TX: 0x...

   Transferred: 0.000000000001 EXT
   From: 0x1b39b2d0f810feb53fdf5d1324d73334132667b8
   To: 0x1ccf61d63616278db8078711b80ebd1fc06bfee5

Security Notes

⚠️ IMPORTANT: Never commit your transfer-config.json file with real private keys to version control!

  • The transfer-config.json file should be added to .gitignore
  • Only use testnet accounts for testing
  • Keep private keys secure and never share them

Network Configuration

Hedera Testnet (Default)

  • RPC URL: https://testnet.hashio.io/api
  • Chain ID: 296

Hedera Mainnet

  • RPC URL: https://mainnet.hashio.io/api
  • Chain ID: 295

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published