Module: AdequateCryptoAddress::Utils::Xlm

Defined in:
lib/adequate_crypto_address/utils/xlm.rb

Constant Summary collapse

CHARSET =
'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'

Class Method Summary collapse

Class Method Details

.convertbits(data, frombits, tobits, pad: true) ⇒ Object



20
21
22
# File 'lib/adequate_crypto_address/utils/xlm.rb', line 20

def convertbits(data, frombits, tobits, pad: true)
  Bech32.convert_bits(data, from_bits: frombits, to_bits: tobits, pad: pad)
end

.decode(input) ⇒ Object



10
11
12
13
14
15
16
17
18
# File 'lib/adequate_crypto_address/utils/xlm.rb', line 10

def decode(input)
  values = input.chars.map { |c| CHARSET.index(c) }
  return nil if values.include?(nil)

  bytes = convertbits(values, 5, 8, pad: false)
  return nil unless bytes

  bytes.pack('C*')
end