mirror of
https://github.com/logos-storage/logos-storage-nim-cs-dist-tests.git
synced 2026-01-07 07:53:05 +00:00
52 lines
1.2 KiB
C#
52 lines
1.2 KiB
C#
namespace Utils
|
|
{
|
|
public interface IHasEthAddress
|
|
{
|
|
EthAddress EthAddress { get; }
|
|
}
|
|
|
|
[Serializable]
|
|
public class EthAddress : IComparable<EthAddress>
|
|
{
|
|
public EthAddress(string address)
|
|
{
|
|
Address = address.ToLowerInvariant();
|
|
}
|
|
|
|
public string Address { get; }
|
|
|
|
public int CompareTo(EthAddress? other)
|
|
{
|
|
return Address.CompareTo(other!.Address);
|
|
}
|
|
|
|
public override bool Equals(object? obj)
|
|
{
|
|
return obj is EthAddress token && Address == token.Address;
|
|
}
|
|
|
|
public override int GetHashCode()
|
|
{
|
|
return HashCode.Combine(Address);
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
return Address;
|
|
}
|
|
|
|
public static bool operator ==(EthAddress? a, EthAddress? b)
|
|
{
|
|
if (ReferenceEquals(a, b)) return true;
|
|
if (ReferenceEquals(a, null)) return false;
|
|
if (ReferenceEquals(b, null)) return false;
|
|
return a.Address == b.Address;
|
|
}
|
|
|
|
public static bool operator !=(EthAddress? a, EthAddress? b)
|
|
{
|
|
return !(a == b);
|
|
}
|
|
}
|
|
}
|