首页 > 解决方案 > 如何判断 ERC20 代币转移是否成功?

问题描述

我拼凑了一些代码来使用 web3.js 1.0.0-beta46 发送一些令牌,然后决定尝试发送比我钱包里更多的令牌。令我惊讶的是,交易发送成功了,我得到了一个 txid,但是转账当然失败了

这是尝试(在 Ropsten 上):

https://ropsten.etherscan.io/tx/0xaf2708dcc9b86b7cca0076e329a1e81fc28fdc4a97765b0a79544ec0685cfa69

现在我的问题是:我怎么知道转移何时成功?或者就此而言,我怎样才能得到错误消息?etherscan 仅表示:

ERC-20 令牌传输错误(无法找到相应的传输事件日志),请与发件人核对

标签: ethereumweb3

解决方案


最简单直接的方法是在转账前后检查发送方和接收方的余额。

现在关于失败的转账,在阅读了合约后,我注意到如果资金不足,您只需返回 false,这就是有效的交易。您应该做的是还原require用于进行检查的交易。这样一来,无效的交易将被 EVM 恢复,这将被 etherscan 识别并显示交易失败。


推荐阅读