Files
LuaCsForBarotraumaEP/Libraries/BarotraumaLibs/EosInterface/IdAndAuth/EosConnectContinuanceToken.cs
2024-03-28 18:34:33 +02:00

37 lines
1.1 KiB
C#

using System;
using Barotrauma.Networking;
namespace Barotrauma;
public static partial class EosInterface
{
public sealed class EosConnectContinuanceToken
{
// Got this number by checking a decoded continuance token, may be subject to change
public static readonly TimeSpan Duration = TimeSpan.FromMinutes(30);
public readonly AccountId ExternalAccountId;
public readonly DateTime ExpiryTime;
public bool IsValid => value != IntPtr.Zero && DateTime.Now < ExpiryTime;
private IntPtr value;
public EosConnectContinuanceToken(IntPtr value, AccountId externalAccountId, DateTime expiryTime)
{
this.value = value;
this.ExternalAccountId = externalAccountId;
ExpiryTime = expiryTime;
}
public IntPtr Spend()
{
var retVal = IsValid ? value : IntPtr.Zero;
value = IntPtr.Zero;
return retVal;
}
public override string ToString()
=> $"{(IsValid ? "Valid" : "Invalid")} {ExternalAccountId} ContinuanceToken"
+ (IsValid ? $" (expires on {ExpiryTime})" : "");
}
}