diff --git a/Framework/NethereumWorkflow/NethereumInteraction.cs b/Framework/NethereumWorkflow/NethereumInteraction.cs index a7e32007..cad61334 100644 --- a/Framework/NethereumWorkflow/NethereumInteraction.cs +++ b/Framework/NethereumWorkflow/NethereumInteraction.cs @@ -110,47 +110,23 @@ namespace NethereumWorkflow public List> GetEvents(string address, ulong fromBlockNumber, ulong toBlockNumber) where TEvent : IEventDTO, new() { - try - { - var logs = new List(); - var p = web3.Processing.Logs.CreateProcessor(l => logs.Add(l)); + var logs = new List(); + 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>(); - foreach (var l in logs) - { - if (l.IsLogForEvent()) - { - var eee = l.DecodeEvent(); - 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(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()) + .Select(l => l.DecodeEvent()) + .ToList(); } public BlockInterval ConvertTimeRangeToBlockRange(TimeRange timeRange)