2
0
mirror of synced 2025-02-21 20:48:11 +00:00

36 lines
1.6 KiB
C#
Raw Normal View History

2024-01-26 17:29:57 -05:00
using CodexContractsPlugin;
using CodexContractsPlugin.Marketplace;
2024-02-19 15:41:48 +01:00
using BlockRange = Utils.BlockRange;
2024-01-26 17:29:57 -05:00
namespace TestNetRewarder
{
public class ChainState
{
private readonly HistoricState historicState;
2024-02-19 15:41:48 +01:00
public ChainState(HistoricState historicState, ICodexContracts contracts, BlockRange blockRange)
2024-01-26 17:29:57 -05:00
{
2024-02-19 15:41:48 +01:00
NewRequests = contracts.GetStorageRequests(blockRange);
2024-01-26 17:29:57 -05:00
historicState.ProcessNewRequests(NewRequests);
historicState.UpdateStorageRequests(contracts);
StartedRequests = historicState.StorageRequests.Where(r => r.RecentlyStarted).ToArray();
FinishedRequests = historicState.StorageRequests.Where(r => r.RecentlyFininshed).ToArray();
2024-02-19 15:41:48 +01:00
RequestFulfilledEvents = contracts.GetRequestFulfilledEvents(blockRange);
RequestCancelledEvents = contracts.GetRequestCancelledEvents(blockRange);
SlotFilledEvents = contracts.GetSlotFilledEvents(blockRange);
SlotFreedEvents = contracts.GetSlotFreedEvents(blockRange);
2024-01-26 17:29:57 -05:00
this.historicState = historicState;
}
public Request[] NewRequests { get; }
public StorageRequest[] AllRequests => historicState.StorageRequests;
public StorageRequest[] StartedRequests { get; private set; }
public StorageRequest[] FinishedRequests { get; private set; }
public RequestFulfilledEventDTO[] RequestFulfilledEvents { get; }
public RequestCancelledEventDTO[] RequestCancelledEvents { get; }
public SlotFilledEventDTO[] SlotFilledEvents { get; }
public SlotFreedEventDTO[] SlotFreedEvents { get; }
}
}