Web3js

令牌沒有通過 web3js 傳輸

  • October 11, 2019

我一直在使用以下程式碼使用 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,

引用自:https://ethereum.stackexchange.com/questions/76645