From b8def4db275cb56b09332266ff076ccb1d55bae4 Mon Sep 17 00:00:00 2001 From: ThatBen Date: Thu, 26 Jun 2025 13:40:32 +0200 Subject: [PATCH 1/3] wip --- .../NethereumWorkflow/NethereumInteraction.cs | 46 +++++++++++++++++-- .../CodexPlugin/CodexDockerImage.cs | 2 +- Tools/BiblioTech/CommandHandler.cs | 1 - 3 files changed, 42 insertions(+), 7 deletions(-) diff --git a/Framework/NethereumWorkflow/NethereumInteraction.cs b/Framework/NethereumWorkflow/NethereumInteraction.cs index 47b7ee20..a7e32007 100644 --- a/Framework/NethereumWorkflow/NethereumInteraction.cs +++ b/Framework/NethereumWorkflow/NethereumInteraction.cs @@ -110,11 +110,47 @@ namespace NethereumWorkflow public List> GetEvents(string address, ulong fromBlockNumber, ulong toBlockNumber) where TEvent : IEventDTO, new() { - var eventHandler = web3.Eth.GetEvent(address); - var from = new BlockParameter(fromBlockNumber); - var to = new BlockParameter(toBlockNumber); - var blockFilter = Time.Wait(eventHandler.CreateFilterBlockRangeAsync(from, to)); - return Time.Wait(eventHandler.GetAllChangesAsync(blockFilter)); + try + { + var logs = new List(); + var p = web3.Processing.Logs.CreateProcessor(l => logs.Add(l)); + + 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 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; + } } public BlockInterval ConvertTimeRangeToBlockRange(TimeRange timeRange) diff --git a/ProjectPlugins/CodexPlugin/CodexDockerImage.cs b/ProjectPlugins/CodexPlugin/CodexDockerImage.cs index c7f0f35b..bbb09c0b 100644 --- a/ProjectPlugins/CodexPlugin/CodexDockerImage.cs +++ b/ProjectPlugins/CodexPlugin/CodexDockerImage.cs @@ -2,7 +2,7 @@ { public class CodexDockerImage { - private const string DefaultDockerImage = "codexstorage/nim-codex:sha-e324ac8-dist-tests"; + private const string DefaultDockerImage = "codexstorage/nim-codex:latest-dist-tests"; public static string Override { get; set; } = string.Empty; diff --git a/Tools/BiblioTech/CommandHandler.cs b/Tools/BiblioTech/CommandHandler.cs index 10e1e24b..52f0388d 100644 --- a/Tools/BiblioTech/CommandHandler.cs +++ b/Tools/BiblioTech/CommandHandler.cs @@ -6,7 +6,6 @@ using BiblioTech.Rewards; using Logging; using BiblioTech.CodexChecking; using Nethereum.Model; -using static Org.BouncyCastle.Math.EC.ECCurve; namespace BiblioTech { From b31591d276649596f49829bcbcc0c02ea141d6d0 Mon Sep 17 00:00:00 2001 From: ThatBen Date: Thu, 26 Jun 2025 14:10:57 +0200 Subject: [PATCH 2/3] cleanup log processing in getEvents --- .../NethereumWorkflow/NethereumInteraction.cs | 52 +++++-------------- 1 file changed, 14 insertions(+), 38 deletions(-) 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) From 74eff2f15866f68401e56f40568e4f862a2799a4 Mon Sep 17 00:00:00 2001 From: ThatBen Date: Thu, 26 Jun 2025 18:15:48 +0200 Subject: [PATCH 3/3] testing web3 log processor --- Framework/NethereumWorkflow/NethereumInteraction.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Framework/NethereumWorkflow/NethereumInteraction.cs b/Framework/NethereumWorkflow/NethereumInteraction.cs index cad61334..7e16e451 100644 --- a/Framework/NethereumWorkflow/NethereumInteraction.cs +++ b/Framework/NethereumWorkflow/NethereumInteraction.cs @@ -114,7 +114,7 @@ namespace NethereumWorkflow var p = web3.Processing.Logs.CreateProcessor( action: logs.Add, minimumBlockConfirmations: 1, - criteria: l => l.Address == address + criteria: l => l.IsLogForEvent() ); var from = new BlockParameter(fromBlockNumber); @@ -122,7 +122,6 @@ namespace NethereumWorkflow var ct = new CancellationTokenSource().Token; Time.Wait(p.ExecuteAsync(toBlockNumber: to.BlockNumber, cancellationToken: ct, startAtBlockNumberIfNotProcessed: from.BlockNumber)); - return logs .Where(l => l.IsLogForEvent()) .Select(l => l.DecodeEvent())