2023-12-20 11:34:23 +01:00
|
|
|
|
#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
|
2024-12-17 16:06:06 +01:00
|
|
|
|
using BlockchainUtils;
|
2025-05-29 16:37:20 +02:00
|
|
|
|
using Nethereum.Hex.HexConvertors.Extensions;
|
2024-04-08 16:07:52 +02:00
|
|
|
|
using Newtonsoft.Json;
|
2025-06-04 12:46:25 +02:00
|
|
|
|
using CodexClient;
|
2025-01-16 13:24:57 +01:00
|
|
|
|
using Utils;
|
2023-12-20 11:34:23 +01:00
|
|
|
|
|
|
|
|
|
|
namespace CodexContractsPlugin.Marketplace
|
|
|
|
|
|
{
|
2024-05-31 11:19:50 +02:00
|
|
|
|
public interface IHasBlock
|
|
|
|
|
|
{
|
|
|
|
|
|
BlockTimeEntry Block { get; set; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-10-18 11:03:05 +02:00
|
|
|
|
public interface IHasRequestId
|
|
|
|
|
|
{
|
|
|
|
|
|
byte[] RequestId { get; set; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-07-07 15:53:26 +02:00
|
|
|
|
public interface IHasBlockAndRequestId : IHasBlock, IHasRequestId
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-05-20 10:19:07 +02:00
|
|
|
|
public interface IHasSlotIndex
|
|
|
|
|
|
{
|
|
|
|
|
|
ulong SlotIndex { get; set; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-07-07 15:53:26 +02:00
|
|
|
|
public partial class Request
|
2023-12-20 11:34:23 +01:00
|
|
|
|
{
|
|
|
|
|
|
public EthAddress ClientAddress { get { return new EthAddress(Client); } }
|
2025-07-07 15:53:26 +02:00
|
|
|
|
}
|
2024-06-10 14:04:25 +02:00
|
|
|
|
|
2025-07-07 15:53:26 +02:00
|
|
|
|
public partial class StorageRequestedEventDTO : IHasBlockAndRequestId
|
|
|
|
|
|
{
|
2024-06-10 14:04:25 +02:00
|
|
|
|
[JsonIgnore]
|
2025-07-07 15:53:26 +02:00
|
|
|
|
public BlockTimeEntry Block { get; set; }
|
2023-12-20 11:34:23 +01:00
|
|
|
|
}
|
2023-12-20 13:21:53 +01:00
|
|
|
|
|
2025-07-07 15:53:26 +02:00
|
|
|
|
public partial class RequestFulfilledEventDTO : IHasBlockAndRequestId
|
2024-01-22 16:05:04 +01:00
|
|
|
|
{
|
2024-04-08 16:07:52 +02:00
|
|
|
|
[JsonIgnore]
|
2024-04-13 08:57:46 +02:00
|
|
|
|
public BlockTimeEntry Block { get; set; }
|
2024-01-22 16:05:04 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-07-07 15:53:26 +02:00
|
|
|
|
public partial class RequestCancelledEventDTO : IHasBlockAndRequestId
|
2024-01-22 16:27:32 +01:00
|
|
|
|
{
|
2024-04-08 16:07:52 +02:00
|
|
|
|
[JsonIgnore]
|
2024-04-13 08:57:46 +02:00
|
|
|
|
public BlockTimeEntry Block { get; set; }
|
2024-01-22 16:27:32 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-07-07 15:53:26 +02:00
|
|
|
|
public partial class RequestFailedEventDTO : IHasBlockAndRequestId
|
2024-08-21 13:59:54 +02:00
|
|
|
|
{
|
|
|
|
|
|
[JsonIgnore]
|
|
|
|
|
|
public BlockTimeEntry Block { get; set; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-07-07 15:53:26 +02:00
|
|
|
|
public partial class SlotFilledEventDTO : IHasBlockAndRequestId, IHasSlotIndex
|
2023-12-20 13:21:53 +01:00
|
|
|
|
{
|
2024-04-08 16:07:52 +02:00
|
|
|
|
[JsonIgnore]
|
2024-04-13 08:57:46 +02:00
|
|
|
|
public BlockTimeEntry Block { get; set; }
|
2023-12-20 13:21:53 +01:00
|
|
|
|
public EthAddress Host { get; set; }
|
2025-05-29 16:37:20 +02:00
|
|
|
|
|
|
|
|
|
|
public override string ToString()
|
|
|
|
|
|
{
|
|
|
|
|
|
return $"SlotFilled:[host:{Host} request:{RequestId.ToHex()} slotIndex:{SlotIndex}]";
|
|
|
|
|
|
}
|
2023-12-20 13:21:53 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-07-07 15:53:26 +02:00
|
|
|
|
public partial class SlotFreedEventDTO : IHasBlockAndRequestId, IHasSlotIndex
|
2023-12-20 13:21:53 +01:00
|
|
|
|
{
|
2024-04-08 16:07:52 +02:00
|
|
|
|
[JsonIgnore]
|
2024-04-13 08:57:46 +02:00
|
|
|
|
public BlockTimeEntry Block { get; set; }
|
2023-12-20 13:21:53 +01:00
|
|
|
|
}
|
2024-10-10 11:15:07 +02:00
|
|
|
|
|
2025-07-07 15:53:26 +02:00
|
|
|
|
public partial class SlotReservationsFullEventDTO : IHasBlockAndRequestId, IHasSlotIndex
|
2024-10-10 11:15:07 +02:00
|
|
|
|
{
|
|
|
|
|
|
[JsonIgnore]
|
|
|
|
|
|
public BlockTimeEntry Block { get; set; }
|
|
|
|
|
|
}
|
2025-03-04 15:58:45 +01:00
|
|
|
|
|
|
|
|
|
|
public partial class ProofSubmittedEventDTO : IHasBlock
|
|
|
|
|
|
{
|
|
|
|
|
|
[JsonIgnore]
|
|
|
|
|
|
public BlockTimeEntry Block { get; set; }
|
|
|
|
|
|
}
|
2025-05-20 10:19:07 +02:00
|
|
|
|
|
2025-07-07 15:53:26 +02:00
|
|
|
|
public partial class ReserveSlotFunction : IHasBlockAndRequestId, IHasSlotIndex
|
2025-05-20 10:19:07 +02:00
|
|
|
|
{
|
|
|
|
|
|
[JsonIgnore]
|
|
|
|
|
|
public BlockTimeEntry Block { get; set; }
|
|
|
|
|
|
}
|
2025-06-04 12:46:25 +02:00
|
|
|
|
|
|
|
|
|
|
public partial class MarketplaceConfig : IMarketplaceConfigInput
|
|
|
|
|
|
{
|
2025-06-06 08:23:35 +02:00
|
|
|
|
public int MaxNumberOfSlashes
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
if (Collateral == null) return -1;
|
|
|
|
|
|
return Collateral.MaxNumberOfSlashes;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public TimeSpan PeriodDuration
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
if (Proofs == null) return TimeSpan.MinValue;
|
|
|
|
|
|
return TimeSpan.FromSeconds(this.Proofs.Period);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-06-04 12:46:25 +02:00
|
|
|
|
}
|
2023-12-20 11:34:23 +01:00
|
|
|
|
}
|
|
|
|
|
|
#pragma warning restore CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
|