如何使用 web3 库发送 ERC20 令牌

Posted

技术标签:

【中文标题】如何使用 web3 库发送 ERC20 令牌【英文标题】:How to send ERC20 token using web3 library 【发布时间】:2019-12-01 05:23:32 【问题描述】:

我想在我的加密钱包中实现发送ERC20令牌功能,这是我在互联网上找到的功能,如下所示。

 sendToken()
  
    let toAddress = "0x5077174D79d9491AF15Dcf7D1496638D6062A011";
    this.tokenContractInstance.transfer(toAddress,123, (error, result) => 
      if (error == null) 
        console.log(result)

       else 
        console.log('Transfer error' + error)
      
    )
  

不幸的是,错误消息对我来说没有运气

“无效消息”

我可以知道为什么失败吗?此外,我还看到了其他示例,通过使用 privateKey 签名函数生成 rawTransaction 来发送 ERC20 令牌。我应该采用哪种方法?

【问题讨论】:

【参考方案1】:

假设web3 1.0这是正确的方法:

this.tokenContractInstance.methods.transfer(toAddress, 123).send(from: txSenderAddress, (error, transactionHash) => ... );

【讨论】:

我使用上面的方法,我得到一个错误信息(“无效地址”) @ferit- 我将 this.tokenContractInstance.methods.transfer 改为 this.tokenContractInstance.transfer。第一种方法对我不起作用,它说找不到传递函数。 @ferit- 为什么上面的代码显示为 methods.transfer?不是直接来自合约实例的传递函数吗?也许,在这里值得一提的是,我使用的是 web3 版本 0.19.1。 我只是想知道,发件人地址不是原始 ERC20 所有者帐户。该地址是原所有者的第二个转账账户,在这种情况下,我想知道我是否需要得到所有者的批准才能使用代币或转账? 感谢您的建议和您宝贵的时间

以上是关于如何使用 web3 库发送 ERC20 令牌的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 web3.js 发送 ERC20 令牌

使用本地私钥通过 web3.py 发送 ERC20 令牌

如何使用 Web3 购买 ERC20 代币

使用web3.py发送ETH和ERC20

如何使用 web3.py 在钱包之间转移 ERC20 代币

获取 ERC20 的所有权数组