Class: AdequateCryptoAddress::Xlm

Inherits:
Object
  • Object
show all
Defined in:
lib/adequate_crypto_address/xlm.rb

Constant Summary collapse

ACCOUNT_VERSION_BYTE =
0x30
MUXED_VERSION_BYTE =
0x60
ACCOUNT_SIZE =
35
MUXED_SIZE =
43
MAX_LENGTH =

G-addresses are 56 chars, M-addresses 69

90

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(address) ⇒ Xlm



14
15
16
# File 'lib/adequate_crypto_address/xlm.rb', line 14

def initialize(address)
  @address = address
end

Instance Attribute Details

#address ⇒ Object (readonly)

Returns the value of attribute address.



5
6
7
# File 'lib/adequate_crypto_address/xlm.rb', line 5

def address
  @address
end

Instance Method Details

#address_type ⇒ Object

:account (G...) or :muxed (M...) when valid, otherwise nil.



23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/adequate_crypto_address/xlm.rb', line 23

def address_type
  decoded = decode_strkey
  return nil unless decoded

  case decoded.getbyte(0)
  when 
    :account if valid_strkey?(decoded, )
  when MUXED_VERSION_BYTE
    :muxed if valid_strkey?(decoded, MUXED_SIZE)
  end
rescue StandardError
  nil
end

#valid?(_type = nil) ⇒ Boolean



18
19
20
# File 'lib/adequate_crypto_address/xlm.rb', line 18

def valid?(_type = nil)
  !address_type.nil?
end