Truffle 捕获事件
合约可以触发事件,你可以捕捉这些事件,以便对合约的行为有更深入的了解。处理事件的最简单方法是,如果某个交易触发了事件,可以从相应交易的执行结果
result对象中,解析交易日志中的
logs数组。
如果输出第一个日志条目,可以看到调用
sendCoin函数触发的事件(
Transfer(msg.sender, receiver, amount);)。
truffle(develop)> result.logs[0]
{ logIndex: 0,
transactionIndex: 0,
transactionHash: '0x3b33960e99416f687b983d4a6bb628d38bf7855c6249e71d0d16c7930a588cb2',
blockHash: '0xe36787063e114a763469e7dabc7aa57545e67eb2c395a1e6784988ac065fdd59',
blockNumber: 8,
address: '0x6891Ac4E2EF3dA9bc88C96fEDbC9eA4d6D88F768',
type: 'mined',
id: 'log_3181e274',
event: 'Transfer',
args:
Result {
'0': '0x8128880DC48cde7e471EF6b99d3877357bb93f01',
'1': '0x12B6971f6eb35dD138a03Bd6cBdf9Fc9b9a87d7e',
'2': <BN: a>,
__length__: 3,
_from: '0x8128880DC48cde7e471EF6b99d3877357bb93f01',
_to: '0x12B6971f6eb35dD138a03Bd6cBdf9Fc9b9a87d7e',
_value: <BN: a> } }