Appearance
执行事件查询
在这个例子中,没有使用任何过滤器,而是选择了从区块链的第一个区块开始查询,一直查询到最新的区块。
接着,我们定义了我们要查询的合约地址和 ABI。在这个例子中,我们只查询了一个事件,因此 ABI 也只包含了一个事件。
然后我们使用合约地址和 ABI 创建了一个合约实例,并通过 contract.getPastEvents 执行了事件查询。在每次获取到事件数据时,我们将事件打印到控制台上。
js
// 定义要查询的事件名称和选项
const eventName = 'Greet';
const options = {
filter: {}, // 过滤器
fromBlock: 0, // 开始区块号
toBlock: 'latest' // 结束区块号
};
// 定义合约地址和ABI
const contractAddress = '0xC41e6E966cC01D9502DDf1a44F963462E88A0e16';
const contractABI = ABI;
// 创建合约实例
const contract = new web3.eth.Contract(contractABI, contractAddress);
// 执行事件查询
contract.getPastEvents(eventName, options, (error, events) => {
if (error) {
console.error('获取事件时发生错误:', error);
return;
}
console.log('获取到的事件数据:', events);
});