Web3.js:从合同方法执行中获取返回值

时间:2018-06-14 15:28:22

标签: ethereum smartcontracts web3

我有ERC-20令牌智能合约,我使用来自web3.js的sendSignedTransaction调用哪些方法。在我知道事务成功挖掘后,我需要检查合同方法执行结果。如果我只有事务哈希,我该怎么做?

示例:方法transferFrom(from, to, tokens)返回truefalse,具体取决于转移是否成功。因此,如果我尝试从空钱包中转移100个令牌,则合同方法将返回false

更新:好的,正如我所知,在开采和确认交易后,无法使用txHash确定方法结果。那么处理这种情况的方法是什么?我怎样才能确保转移令牌?

1 个答案:

答案 0 :(得分:1)

您可以在合同代码内发出一个事件(实际上在ERC20标准中总是存在一个转移事件),然后在web3js内,使用以下代码行读取所有事件,直到最新的代码块为止:

Events = Contract.eventName({}, {fromBlock: 0, toBlock: 'latest'});