116 lines
3.0 KiB
C#
Raw Normal View History

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.
using BlockchainUtils;
2025-05-29 16:37:20 +02:00
using Nethereum.Hex.HexConvertors.Extensions;
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
{
public interface IHasBlock
{
BlockTimeEntry Block { get; set; }
}
public interface IHasRequestId
{
byte[] RequestId { get; set; }
}
public interface IHasBlockAndRequestId : IHasBlock, IHasRequestId
{
}
2025-05-20 10:19:07 +02:00
public interface IHasSlotIndex
{
ulong SlotIndex { get; set; }
}
public partial class Request
2023-12-20 11:34:23 +01:00
{
public EthAddress ClientAddress { get { return new EthAddress(Client); } }
}
2024-06-10 14:04:25 +02:00
public partial class StorageRequestedEventDTO : IHasBlockAndRequestId
{
2024-06-10 14:04:25 +02:00
[JsonIgnore]
public BlockTimeEntry Block { get; set; }
2023-12-20 11:34:23 +01:00
}
public partial class RequestFulfilledEventDTO : IHasBlockAndRequestId
{
[JsonIgnore]
2024-04-13 08:57:46 +02:00
public BlockTimeEntry Block { get; set; }
}
public partial class RequestCancelledEventDTO : IHasBlockAndRequestId
{
[JsonIgnore]
2024-04-13 08:57:46 +02:00
public BlockTimeEntry Block { get; set; }
}
public partial class RequestFailedEventDTO : IHasBlockAndRequestId
2024-08-21 13:59:54 +02:00
{
[JsonIgnore]
public BlockTimeEntry Block { get; set; }
}
public partial class SlotFilledEventDTO : IHasBlockAndRequestId, IHasSlotIndex
{
[JsonIgnore]
2024-04-13 08:57:46 +02:00
public BlockTimeEntry Block { get; set; }
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}]";
}
}
public partial class SlotFreedEventDTO : IHasBlockAndRequestId, IHasSlotIndex
{
[JsonIgnore]
2024-04-13 08:57:46 +02:00
public BlockTimeEntry Block { get; set; }
}
public partial class SlotReservationsFullEventDTO : IHasBlockAndRequestId, IHasSlotIndex
{
[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
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
{
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.