事件监听
监听合约事件
什么是合约事件?
在 Solidity 合约中,你可以使用 event 关键字定义事件,并通过 emit 发出。
这些事件会被记录在以太坊区块链的日志中(logs),前端或后台可以监听这些事件来感知链上变化。
例如:当你调用 transfer()
函数时,合约可能会 emit
上面的事件。
event Transfer(address indexed from, address indexed to, uint256 value);
ethers.js
提供了简单的方式通过 Contract
实例监听事件:
contract.on(eventName, listener); // 持续监听 eventName 事件
contract.once(eventName, listener); // 只监听一次,当触发后不再监听
contract.off(eventName, listener); // 移除监听事件
contract.removeAllListeners(eventName?); // 取消所有监听器