Web3js
令牌沒有通過 web3js 傳輸
我一直在使用以下程式碼使用 web3js 將代幣從錢包轉移到另一個錢包。
async Transfer(eth_address, amount){ let tokenAddress = "0x6CbEDEc4F1ac9D874987D2769596544E0d9161ab"; let sendAmount = web3.utils.toWei(amount.toString(), 'ether') const consumerContract = new web3.eth.Contract(config.ERC20contractAbi, tokenAddress); const myData = consumerContract.methods.transfer(eth_address, sendAmount).encodeABI(); const tx = { from, to:eth_address, value: '0', gasPrice: web3.utils.toWei('25', 'gwei'), gas: 60000, chainId: 1, nonce: await web3.eth.getTransactionCount(from,'pending'), data: myData } const signed = await web3.eth.accounts.signTransaction(tx, privateKey) const rawTx = signed.rawTransaction const sendRawTx = rawTx => new Promise((resolve, reject) => web3.eth .sendSignedTransaction(rawTx) .on('transactionHash', resolve) .on('error', reject) ) const result = await sendRawTx(rawTx).catch((err) => { return err }) if(result.toString().includes('error')){ return result } else{ return result } },
但現在它突然不適合我了。我確實收到了交易雜湊,它也在 etherscan.io 上被標記為成功。這是連結 https://etherscan.io/tx/0xa92a7181275474cd6bd00e6e220385230c0c275e98d63bc35570ba6c0f9c4ab9
可以觀察到,沒有關於令牌是否被轉移的資訊。我一直在使用相同的方法一段時間,我不明白我現在做錯了什麼。請指導有關此。謝謝
從交易數據中,您使用收件人地址,因為它是令牌地址。
const tx = { from, to: tokenAddress, // <---- You should use tokenAddress instead of eth_address value: '0', gasPrice: web3.utils.toWei('25', 'gwei'), gas: 60000,