Я использую N ethereum в своем проекте, чтобы получить все незавершенные транзакции по указанному c адресу смарт-контракта. Чтобы сделать это на основе существующих документов и N ethereum игрового поля, я пробую следующее:
private async Task MonitorPendingTransactions()
{
var web = new Web3Geth("http://***.***.***.***:8545");
var transferEventHandler = web3.Eth.GetEvent<TransferEventDTO>(contractAddr);
var filterAllTransferEventsForContract = transferEventHandler.CreateFilterInput();
var allTransferEventsForContract = await transferEventHandler.GetAllChanges(filterAllTransferEventsForContract);
Thread.Sleep(10000);
allTransferEventsForContract = await transferEventHandler.GetAllChanges(filterAllTransferEventsForContract);
}
Мой TransferEventDTO такой же, как и в официальных документах в том же месте:
[Event("Transfer")]
public class TransferEventDTO : IEventDTO
{
[Parameter("address", "_from", 1, true)]
public string From { get; set; }
[Parameter("address", "_to", 2, true)]
public string To { get; set; }
[Parameter("uint256", "_value", 3, false)]
public BigInteger Value { get; set; }
}
Пока у меня 2 проблемы:
- Я не могу указать начальный блок, из которого я хотел бы получить вывод, например, ожидающий вместо последнего
GetAllChanges()
всегда возвращает 0, независимо от того, как долго я жду, делаю ли я что-то не так в конфигурации фильтра или ожидающие транзакции должны запрашиваться другим способом?