52 lines
1.2 KiB
C#
Raw Normal View History

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
}
[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
public static bool operator ==(EthAddress? a, EthAddress? b)
2025-05-29 16:37:20 +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;
}
public static bool operator !=(EthAddress? a, EthAddress? b)
2025-05-29 16:37:20 +02:00
{
return !(a == b);
2025-05-29 16:37:20 +02:00
}
2023-09-19 11:51:59 +02:00
}
}