Class: CoinAddressValidators::XrpValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/coin-address-validators.rb

Constant Summary collapse

XRPBASE58 =
BaseX.new("rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz")

Instance Method Summary collapse

Instance Method Details

#valid?(address) ⇒ Boolean

Returns:

  • (Boolean)


69
70
71
72
73
74
75
76
# File 'lib/coin-address-validators.rb', line 69

def valid?(address)
  hex = XRPBASE58.decode(address).bth
  addr = hex[0...-8].rjust(42, "0")
  checksum = hex[-8..-1]
  Digest::SHA256.hexdigest(Digest::SHA256.digest(addr.htb))[0...8] == checksum
rescue BaseX::InvalidNumeral => e
  false
end