Web3.js:从合约方法执行中获取return值
Web3.js: Get return value from contract method execution
我有 web3.js 的 ERC-20 token smart-contract which methods I call using sendSignedTransaction
。在我知道交易被成功挖掘后,我需要检查合约方法的执行结果。如果我只有交易哈希,我该怎么做?
示例:方法transferFrom(from, to, tokens)
returns true
或false
取决于传输是否成功。因此,如果我尝试从空钱包中转移 100 个代币,合约方法将 return false
.
更新:好的,据我了解,在交易被挖掘和确认后,无法使用 txHash 确定方法结果。那么有哪些方法可以处理这种情况呢?我怎样才能确保令牌已转移?
你可以在你的合约代码中发出一个事件(实际上在 ERC20 标准中总是存在一个转移事件)然后在 web3js 中,使用这行代码读取所有事件直到最新的块:
Events = Contract.eventName({}, {fromBlock: 0, toBlock: 'latest'});
我有 web3.js 的 ERC-20 token smart-contract which methods I call using sendSignedTransaction
。在我知道交易被成功挖掘后,我需要检查合约方法的执行结果。如果我只有交易哈希,我该怎么做?
示例:方法transferFrom(from, to, tokens)
returns true
或false
取决于传输是否成功。因此,如果我尝试从空钱包中转移 100 个代币,合约方法将 return false
.
更新:好的,据我了解,在交易被挖掘和确认后,无法使用 txHash 确定方法结果。那么有哪些方法可以处理这种情况呢?我怎样才能确保令牌已转移?
你可以在你的合约代码中发出一个事件(实际上在 ERC20 标准中总是存在一个转移事件)然后在 web3js 中,使用这行代码读取所有事件直到最新的块:
Events = Contract.eventName({}, {fromBlock: 0, toBlock: 'latest'});