2025-01-16 11:31:50 +01:00
|
|
|
|
namespace Utils
|
2023-09-19 11:51:59 +02:00
|
|
|
|
{
|
|
|
|
|
|
public interface IHasEthAddress
|
|
|
|
|
|
{
|
2023-09-20 10:13:29 +02:00
|
|
|
|
EthAddress EthAddress { get; }
|
2023-09-19 11:51:59 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-03-26 15:35:26 +01:00
|
|
|
|
[Serializable]
|
2025-05-29 16:37:20 +02:00
|
|
|
|
public class EthAddress : IComparable<EthAddress>
|
2023-09-19 11:51:59 +02:00
|
|
|
|
{
|
|
|
|
|
|
public EthAddress(string address)
|
|
|
|
|
|
{
|
2023-12-20 15:56:03 +01:00
|
|
|
|
Address = address.ToLowerInvariant();
|
2023-09-19 11:51:59 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public string Address { get; }
|
2023-10-22 10:10:52 +02:00
|
|
|
|
|
2025-05-29 16:37:20 +02:00
|
|
|
|
public int CompareTo(EthAddress? other)
|
|
|
|
|
|
{
|
|
|
|
|
|
return Address.CompareTo(other!.Address);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-12-20 11:34:23 +01:00
|
|
|
|
public override bool Equals(object? obj)
|
|
|
|
|
|
{
|
2025-05-29 16:37:20 +02:00
|
|
|
|
return obj is EthAddress token && Address == token.Address;
|
2023-12-20 11:34:23 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override int GetHashCode()
|
|
|
|
|
|
{
|
|
|
|
|
|
return HashCode.Combine(Address);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-10-22 10:10:52 +02:00
|
|
|
|
public override string ToString()
|
|
|
|
|
|
{
|
|
|
|
|
|
return Address;
|
|
|
|
|
|
}
|
2025-05-29 16:37:20 +02:00
|
|
|
|
|
2025-05-29 17:06:44 +02:00
|
|
|
|
public static bool operator ==(EthAddress? a, EthAddress? b)
|
2025-05-29 16:37:20 +02:00
|
|
|
|
{
|
2025-05-29 17:06:44 +02:00
|
|
|
|
if (ReferenceEquals(a, b)) return true;
|
|
|
|
|
|
if (ReferenceEquals(a, null)) return false;
|
|
|
|
|
|
if (ReferenceEquals(b, null)) return false;
|
2025-05-29 16:37:20 +02:00
|
|
|
|
return a.Address == b.Address;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-05-29 17:06:44 +02:00
|
|
|
|
public static bool operator !=(EthAddress? a, EthAddress? b)
|
2025-05-29 16:37:20 +02:00
|
|
|
|
{
|
2025-05-29 17:06:44 +02:00
|
|
|
|
return !(a == b);
|
2025-05-29 16:37:20 +02:00
|
|
|
|
}
|
2023-09-19 11:51:59 +02:00
|
|
|
|
}
|
|
|
|
|
|
}
|