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; }
|
|
|
|
|
}
|
|
|
|
|
}
|