Skip to content

执行事件查询

在这个例子中,没有使用任何过滤器,而是选择了从区块链的第一个区块开始查询,一直查询到最新的区块。

接着,我们定义了我们要查询的合约地址和 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);
});