Как прослушать флаттер пользовательского события web3

Я пытался прослушать событие из тестовой сети цепочки bsc.

Адрес контракта: 0x99ab1685b4227087ec776fdf75947537f2a150e1

Событие : Старт аукциона

я создал контракт, используя abi и адрес контракта, и это работает нормально.

      final ContractEvent transferEvent = contract!.event("AuctionStart");

web3client
        .events(FilterOptions.events(contract: contract, event: transferEvent))
        .listen((event) {print(event);});

но я ничего не получаю, хотя у меня есть событие. https://testnet.bscscan.com/address/0x21a7e36c3610c98a485ae3f5f34d9db6423bbcbf#events

1 ответ

Сначала инициализируйте Abi-файл вашего контракта из актива. Затем настройте параметры фильтра, как показано ниже.

окончательный развернутый контракт? контракт = ожидание привязкиContract (contractToken);

          final auctionEvent = contract!.event('Transfer');
    
    FilterOptions options = FilterOptions(
      address: contract.address,
      fromBlock: BlockNum.genesis(),
      toBlock: BlockNum.current(),
      topics: [
        [bytesToHex(auctionEvent.signature, padToEvenLength: true, include0x: true)],
      ],
    );
    var event = web3client.events(options);
    event.listen((e) {
      print("Event: $e");
    });
Другие вопросы по тегам