Skip to content

Commit 52a02ab

Browse files
committed
Fixes incorrect block numbers in eventFormatter
1 parent a92455b commit 52a02ab

File tree

7 files changed

+105
-91
lines changed

7 files changed

+105
-91
lines changed

ProjectPlugins/CodexContractsPlugin/ChainMonitor/ChainState.cs

Lines changed: 39 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,32 @@
11
using CodexContractsPlugin.Marketplace;
22
using GethPlugin;
33
using Logging;
4+
using NethereumWorkflow.BlockUtils;
45
using System.Numerics;
56
using Utils;
67

78
namespace CodexContractsPlugin.ChainMonitor
89
{
910
public interface IChainStateChangeHandler
1011
{
11-
void OnNewRequest(IChainStateRequest request);
12-
void OnRequestFinished(IChainStateRequest request);
13-
void OnRequestFulfilled(IChainStateRequest request);
14-
void OnRequestCancelled(IChainStateRequest request);
15-
void OnSlotFilled(IChainStateRequest request, EthAddress host, BigInteger slotIndex);
16-
void OnSlotFreed(IChainStateRequest request, BigInteger slotIndex);
12+
void OnNewRequest(RequestEvent requestEvent);
13+
void OnRequestFinished(RequestEvent requestEvent);
14+
void OnRequestFulfilled(RequestEvent requestEvent);
15+
void OnRequestCancelled(RequestEvent requestEvent);
16+
void OnSlotFilled(RequestEvent requestEvent, EthAddress host, BigInteger slotIndex);
17+
void OnSlotFreed(RequestEvent requestEvent, BigInteger slotIndex);
18+
}
19+
20+
public class RequestEvent
21+
{
22+
public RequestEvent(BlockTimeEntry block, IChainStateRequest request)
23+
{
24+
Block = block;
25+
Request = request;
26+
}
27+
28+
public BlockTimeEntry Block { get; }
29+
public IChainStateRequest Request { get; }
1730
}
1831

1932
public class ChainState
@@ -92,41 +105,41 @@ private void ApplyEvent(Request request)
92105
var newRequest = new ChainStateRequest(log, request, RequestState.New);
93106
requests.Add(newRequest);
94107

95-
handler.OnNewRequest(newRequest);
108+
handler.OnNewRequest(new RequestEvent(request.Block, newRequest));
96109
}
97110

98-
private void ApplyEvent(RequestFulfilledEventDTO request)
111+
private void ApplyEvent(RequestFulfilledEventDTO @event)
99112
{
100-
var r = FindRequest(request.RequestId);
113+
var r = FindRequest(@event.RequestId);
101114
if (r == null) return;
102-
r.UpdateState(request.Block.BlockNumber, RequestState.Started);
103-
handler.OnRequestFulfilled(r);
115+
r.UpdateState(@event.Block.BlockNumber, RequestState.Started);
116+
handler.OnRequestFulfilled(new RequestEvent(@event.Block, r));
104117
}
105118

106-
private void ApplyEvent(RequestCancelledEventDTO request)
119+
private void ApplyEvent(RequestCancelledEventDTO @event)
107120
{
108-
var r = FindRequest(request.RequestId);
121+
var r = FindRequest(@event.RequestId);
109122
if (r == null) return;
110-
r.UpdateState(request.Block.BlockNumber, RequestState.Cancelled);
111-
handler.OnRequestCancelled(r);
123+
r.UpdateState(@event.Block.BlockNumber, RequestState.Cancelled);
124+
handler.OnRequestCancelled(new RequestEvent(@event.Block, r));
112125
}
113126

114-
private void ApplyEvent(SlotFilledEventDTO request)
127+
private void ApplyEvent(SlotFilledEventDTO @event)
115128
{
116-
var r = FindRequest(request.RequestId);
129+
var r = FindRequest(@event.RequestId);
117130
if (r == null) return;
118-
r.Hosts.Add(request.Host, (int)request.SlotIndex);
119-
r.Log($"[{request.Block.BlockNumber}] SlotFilled (host:'{request.Host}', slotIndex:{request.SlotIndex})");
120-
handler.OnSlotFilled(r, request.Host, request.SlotIndex);
131+
r.Hosts.Add(@event.Host, (int)@event.SlotIndex);
132+
r.Log($"[{@event.Block.BlockNumber}] SlotFilled (host:'{@event.Host}', slotIndex:{@event.SlotIndex})");
133+
handler.OnSlotFilled(new RequestEvent(@event.Block, r), @event.Host, @event.SlotIndex);
121134
}
122135

123-
private void ApplyEvent(SlotFreedEventDTO request)
136+
private void ApplyEvent(SlotFreedEventDTO @event)
124137
{
125-
var r = FindRequest(request.RequestId);
138+
var r = FindRequest(@event.RequestId);
126139
if (r == null) return;
127-
r.Hosts.RemoveHost((int)request.SlotIndex);
128-
r.Log($"[{request.Block.BlockNumber}] SlotFreed (slotIndex:{request.SlotIndex})");
129-
handler.OnSlotFreed(r, request.SlotIndex);
140+
r.Hosts.RemoveHost((int)@event.SlotIndex);
141+
r.Log($"[{@event.Block.BlockNumber}] SlotFreed (slotIndex:{@event.SlotIndex})");
142+
handler.OnSlotFreed(new RequestEvent(@event.Block, r), @event.SlotIndex);
130143
}
131144

132145
private void ApplyTimeImplicitEvents(ulong blockNumber, DateTime eventsUtc)
@@ -137,7 +150,7 @@ private void ApplyTimeImplicitEvents(ulong blockNumber, DateTime eventsUtc)
137150
&& r.FinishedUtc < eventsUtc)
138151
{
139152
r.UpdateState(blockNumber, RequestState.Finished);
140-
handler.OnRequestFinished(r);
153+
handler.OnRequestFinished(new RequestEvent(new BlockTimeEntry(blockNumber, eventsUtc), r));
141154
}
142155
}
143156
}

ProjectPlugins/CodexContractsPlugin/ChainMonitor/DoNothingChainEventHandler.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,27 +5,27 @@ namespace CodexContractsPlugin.ChainMonitor
55
{
66
public class DoNothingChainEventHandler : IChainStateChangeHandler
77
{
8-
public void OnNewRequest(IChainStateRequest request)
8+
public void OnNewRequest(RequestEvent requestEvent)
99
{
1010
}
1111

12-
public void OnRequestCancelled(IChainStateRequest request)
12+
public void OnRequestCancelled(RequestEvent requestEvent)
1313
{
1414
}
1515

16-
public void OnRequestFinished(IChainStateRequest request)
16+
public void OnRequestFinished(RequestEvent requestEvent)
1717
{
1818
}
1919

20-
public void OnRequestFulfilled(IChainStateRequest request)
20+
public void OnRequestFulfilled(RequestEvent requestEvent)
2121
{
2222
}
2323

24-
public void OnSlotFilled(IChainStateRequest request, EthAddress host, BigInteger slotIndex)
24+
public void OnSlotFilled(RequestEvent requestEvent, EthAddress host, BigInteger slotIndex)
2525
{
2626
}
2727

28-
public void OnSlotFreed(IChainStateRequest request, BigInteger slotIndex)
28+
public void OnSlotFreed(RequestEvent requestEvent, BigInteger slotIndex)
2929
{
3030
}
3131
}

Tools/TestNetRewarder/ChainChangeMux.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,34 +13,34 @@ public ChainChangeMux(params IChainStateChangeHandler[] handlers)
1313
this.handlers = handlers;
1414
}
1515

16-
public void OnNewRequest(IChainStateRequest request)
16+
public void OnNewRequest(RequestEvent requestEvent)
1717
{
18-
foreach (var handler in handlers) handler.OnNewRequest(request);
18+
foreach (var handler in handlers) handler.OnNewRequest(requestEvent);
1919
}
2020

21-
public void OnRequestCancelled(IChainStateRequest request)
21+
public void OnRequestCancelled(RequestEvent requestEvent)
2222
{
23-
foreach (var handler in handlers) handler.OnRequestCancelled(request);
23+
foreach (var handler in handlers) handler.OnRequestCancelled(requestEvent);
2424
}
2525

26-
public void OnRequestFinished(IChainStateRequest request)
26+
public void OnRequestFinished(RequestEvent requestEvent)
2727
{
28-
foreach (var handler in handlers) handler.OnRequestFinished(request);
28+
foreach (var handler in handlers) handler.OnRequestFinished(requestEvent);
2929
}
3030

31-
public void OnRequestFulfilled(IChainStateRequest request)
31+
public void OnRequestFulfilled(RequestEvent requestEvent)
3232
{
33-
foreach (var handler in handlers) handler.OnRequestFulfilled(request);
33+
foreach (var handler in handlers) handler.OnRequestFulfilled(requestEvent);
3434
}
3535

36-
public void OnSlotFilled(IChainStateRequest request, EthAddress host, BigInteger slotIndex)
36+
public void OnSlotFilled(RequestEvent requestEvent, EthAddress host, BigInteger slotIndex)
3737
{
38-
foreach (var handler in handlers) handler.OnSlotFilled(request, host, slotIndex);
38+
foreach (var handler in handlers) handler.OnSlotFilled(requestEvent, host, slotIndex);
3939
}
4040

41-
public void OnSlotFreed(IChainStateRequest request, BigInteger slotIndex)
41+
public void OnSlotFreed(RequestEvent requestEvent, BigInteger slotIndex)
4242
{
43-
foreach (var handler in handlers) handler.OnSlotFreed(request, slotIndex);
43+
foreach (var handler in handlers) handler.OnSlotFreed(requestEvent, slotIndex);
4444
}
4545
}
4646
}

Tools/TestNetRewarder/EventsFormatter.cs

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,10 @@ public void AddError(string error)
2323
AddBlock("📢 **Error**", error);
2424
}
2525

26-
public void OnNewRequest(IChainStateRequest request)
26+
public void OnNewRequest(RequestEvent requestEvent)
2727
{
28-
AddRequestBlock(request, "New Request",
28+
var request = requestEvent.Request;
29+
AddRequestBlock(requestEvent, "New Request",
2930
$"Client: {request.Client}",
3031
$"Content: {request.Request.Content.Cid}",
3132
$"Duration: {BigIntToDuration(request.Request.Ask.Duration)}",
@@ -38,40 +39,40 @@ public void OnNewRequest(IChainStateRequest request)
3839
);
3940
}
4041

41-
public void OnRequestCancelled(IChainStateRequest request)
42+
public void OnRequestCancelled(RequestEvent requestEvent)
4243
{
43-
AddRequestBlock(request, "Cancelled");
44+
AddRequestBlock(requestEvent, "Cancelled");
4445
}
4546

46-
public void OnRequestFinished(IChainStateRequest request)
47+
public void OnRequestFinished(RequestEvent requestEvent)
4748
{
48-
AddRequestBlock(request, "Finished");
49+
AddRequestBlock(requestEvent, "Finished");
4950
}
5051

51-
public void OnRequestFulfilled(IChainStateRequest request)
52+
public void OnRequestFulfilled(RequestEvent requestEvent)
5253
{
53-
AddRequestBlock(request, "Started");
54+
AddRequestBlock(requestEvent, "Started");
5455
}
5556

56-
public void OnSlotFilled(IChainStateRequest request, EthAddress host, BigInteger slotIndex)
57+
public void OnSlotFilled(RequestEvent requestEvent, EthAddress host, BigInteger slotIndex)
5758
{
58-
AddRequestBlock(request, "Slot Filled",
59+
AddRequestBlock(requestEvent, "Slot Filled",
5960
$"Host: {host}",
6061
$"Slot Index: {slotIndex}"
6162
);
6263
}
6364

64-
public void OnSlotFreed(IChainStateRequest request, BigInteger slotIndex)
65+
public void OnSlotFreed(RequestEvent requestEvent, BigInteger slotIndex)
6566
{
66-
AddRequestBlock(request, "Slot Freed",
67+
AddRequestBlock(requestEvent, "Slot Freed",
6768
$"Slot Index: {slotIndex}"
6869
);
6970
}
7071

71-
private void AddRequestBlock(IChainStateRequest request, string eventName, params string[] content)
72+
private void AddRequestBlock(RequestEvent requestEvent, string eventName, params string[] content)
7273
{
73-
var blockNumber = $"[{request.Request.Block.BlockNumber}]";
74-
var title = $"{blockNumber} **{eventName}** `{request.Request.Id}`";
74+
var blockNumber = $"[{requestEvent.Block.BlockNumber}]";
75+
var title = $"{blockNumber} **{eventName}** `{requestEvent.Request.Request.Id}`";
7576
AddBlock(title, content);
7677
}
7778

Tools/TestNetRewarder/MarketBuffer.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,32 +7,32 @@ namespace TestNetRewarder
77
{
88
public class MarketBuffer
99
{
10-
private readonly List<IChainStateRequest> requests = new List<IChainStateRequest>();
10+
private readonly List<RequestEvent> requestEvents = new List<RequestEvent>();
1111
private readonly TimeSpan bufferSpan;
1212

1313
public MarketBuffer(TimeSpan bufferSpan)
1414
{
1515
this.bufferSpan = bufferSpan;
1616
}
1717

18-
public void Add(IChainStateRequest request)
18+
public void Add(RequestEvent requestEvent)
1919
{
20-
requests.Add(request);
20+
requestEvents.Add(requestEvent);
2121
}
2222

2323
public void Update()
2424
{
2525
var now = DateTime.UtcNow;
26-
requests.RemoveAll(r => (now - r.FinishedUtc) > bufferSpan);
26+
requestEvents.RemoveAll(r => (now - r.Request.FinishedUtc) > bufferSpan);
2727
}
2828

2929
public MarketAverage? GetAverage()
3030
{
31-
if (requests.Count == 0) return null;
31+
if (requestEvents.Count == 0) return null;
3232

3333
return new MarketAverage
3434
{
35-
NumberOfFinished = requests.Count,
35+
NumberOfFinished = requestEvents.Count,
3636
TimeRangeSeconds = (int)bufferSpan.TotalSeconds,
3737
Price = Average(s => s.Request.Ask.Reward),
3838
Duration = Average(s => s.Request.Ask.Duration),
@@ -54,10 +54,10 @@ private float Average(Func<IChainStateRequest, BigInteger> getValue)
5454
private float Average(Func<IChainStateRequest, int> getValue)
5555
{
5656
var sum = 0.0f;
57-
float count = requests.Count;
58-
foreach (var r in requests)
57+
float count = requestEvents.Count;
58+
foreach (var r in requestEvents)
5959
{
60-
sum += getValue(r);
60+
sum += getValue(r.Request);
6161
}
6262

6363
if (count < 1.0f) return 0.0f;

Tools/TestNetRewarder/MarketTracker.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,28 +32,28 @@ public MarketAverage[] GetAverages()
3232
return buffers.Select(b => b.GetAverage()).Where(a => a != null).Cast<MarketAverage>().ToArray();
3333
}
3434

35-
public void OnNewRequest(IChainStateRequest request)
35+
public void OnNewRequest(RequestEvent requestEvent)
3636
{
3737
}
3838

39-
public void OnRequestFinished(IChainStateRequest request)
39+
public void OnRequestFinished(RequestEvent requestEvent)
4040
{
41-
foreach (var b in buffers) b.Add(request);
41+
foreach (var b in buffers) b.Add(requestEvent);
4242
}
4343

44-
public void OnRequestFulfilled(IChainStateRequest request)
44+
public void OnRequestFulfilled(RequestEvent requestEvent)
4545
{
4646
}
4747

48-
public void OnRequestCancelled(IChainStateRequest request)
48+
public void OnRequestCancelled(RequestEvent requestEvent)
4949
{
5050
}
5151

52-
public void OnSlotFilled(IChainStateRequest request, EthAddress host, BigInteger slotIndex)
52+
public void OnSlotFilled(RequestEvent requestEvent, EthAddress host, BigInteger slotIndex)
5353
{
5454
}
5555

56-
public void OnSlotFreed(IChainStateRequest request, BigInteger slotIndex)
56+
public void OnSlotFreed(RequestEvent requestEvent, BigInteger slotIndex)
5757
{
5858
}
5959

0 commit comments

Comments
 (0)