private static byte[] DeriveAddress(string hex) { if (hex == null) { throw new ArgumentNullException(nameof(hex)); } if (hex.Length != 40) { throw new ArgumentException( "address hex must be 40 bytes", nameof(hex) ); } if (hex.ToLower() != hex && ToChecksumAddress(hex.ToLower()) != hex) { throw new ArgumentException( "address checksum is invalid", nameof(hex) ); } try { return(ByteUtil.ParseHex(hex)); } catch (FormatException) { throw new ArgumentException( "address hex must only consist of ASCII characters" ); } }
public static HashDigest <T> FromString(string hexDigest) { if (hexDigest == null) { throw new ArgumentNullException(nameof(hexDigest)); } if (hexDigest.Length != Size * 2) { string message = $"HashDigest<{typeof(T).Name}> requires {Size * 2} " + $"hexadecimal letters, but {hexDigest.Length} was given"; throw new ArgumentOutOfRangeException( nameof(hexDigest), message ); } return(new HashDigest <T>(ByteUtil.ParseHex(hexDigest))); }
public static HashDigest <T> FromString(string s) { return(new HashDigest <T>(ByteUtil.ParseHex(s))); }