cleanup log processing in getEvents

This commit is contained in:
ThatBen 2025-06-26 14:10:57 +02:00
parent b8def4db27
commit b31591d276
No known key found for this signature in database
GPG Key ID: 62C543548433D43E

View File

@ -110,47 +110,23 @@ namespace NethereumWorkflow
public List<EventLog<TEvent>> GetEvents<TEvent>(string address, ulong fromBlockNumber, ulong toBlockNumber) where TEvent : IEventDTO, new()
{
try
{
var logs = new List<FilterLog>();
var p = web3.Processing.Logs.CreateProcessor(l => logs.Add(l));
var logs = new List<FilterLog>();
var p = web3.Processing.Logs.CreateProcessor(
action: logs.Add,
minimumBlockConfirmations: 1,
criteria: l => l.Address == address
);
var from = new BlockParameter(fromBlockNumber);
var to = new BlockParameter(toBlockNumber);
var ct = new CancellationTokenSource().Token;
Time.Wait(p.ExecuteAsync(toBlockNumber: to.BlockNumber, cancellationToken: ct, startAtBlockNumberIfNotProcessed: from.BlockNumber));
var result = new List<EventLog<TEvent>>();
foreach (var l in logs)
{
if (l.IsLogForEvent<TEvent>())
{
var eee = l.DecodeEvent<TEvent>();
result.Add(eee);
}
}
return result;
var from = new BlockParameter(fromBlockNumber);
var to = new BlockParameter(toBlockNumber);
var ct = new CancellationTokenSource().Token;
Time.Wait(p.ExecuteAsync(toBlockNumber: to.BlockNumber, cancellationToken: ct, startAtBlockNumberIfNotProcessed: from.BlockNumber));
//var eventHandler = web3.Eth.GetEvent<TEvent>(address);
//var blockFilter = Time.Wait(eventHandler.CreateFilterBlockRangeAsync(from, to));
//return Time.Wait(eventHandler.GetAllChangesAsync(blockFilter));
//var events = eventHandler.DecodeAllEventsForEvent(new FilterLog[]
//{
// //new FilterLog
// //{
// // BlockNumber = from.BlockNumber
// //}
//});
}
catch (Exception ex)
{
var aaa = 0;
throw;
}
return logs
.Where(l => l.IsLogForEvent<TEvent>())
.Select(l => l.DecodeEvent<TEvent>())
.ToList();
}
public BlockInterval ConvertTimeRangeToBlockRange(TimeRange timeRange)