Как прослушать флаттер пользовательского события 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");
});