I have a contract deployed on Goerli test network, given the code below, I never see any event changes when I transfer tokens.
public static async Task PollForEvents(JObject pixelBlock)
{
try
{
var web3 = new Web3(Env.INFURA_GOERLI);
string abi = pixelBlock["abi"].ToString();
var contract = web3.Eth.GetContract(abi, Env.PIXEL_BLOCK_GOERLI);
Event transferEvent = contract.GetEvent("Transfer");
Nethereum.Hex.HexTypes.HexBigInteger transferEventFilter = await transferEvent.CreateFilterAsync();
Event<TransferEventDTO> transferEventHandler = web3.Eth.GetEvent<TransferEventDTO>(Env.PIXEL_BLOCK_GOERLI);
NewFilterInput filterAllTransferEventsForContract = transferEventHandler.CreateFilterInput();
while (true)
{
List<EventLog<TransferEventDTO>> getAllChanges0 = await transferEvent.GetAllChangesAsync<TransferEventDTO>(transferEventFilter);
List<EventLog<TransferEventDTO>> getAllChanges1 = await transferEventHandler.GetAllChangesAsync(filterAllTransferEventsForContract);
List<EventLog<TransferEventDTO>> getAllChanges2 = await transferEvent.GetFilterChangesAsync<TransferEventDTO>(transferEventFilter);
if (getAllChanges0.Count > 0 || getAllChanges1.Count > 0 || getAllChanges2.Count > 0)
{
Console.WriteLine(getAllChanges0.Count);
Console.WriteLine(getAllChanges1.Count);
Console.WriteLine(getAllChanges2.Count);
}
await Task.Delay(5000);
}
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
