Method: Stellar::Util::StrKey.check_encode

Defined in:
lib/stellar/util/strkey.rb

.check_encode(version, byte_str) ⇒ Object

Raises:

  • (ArgumentError)


16
17
18
19
20
21
22
23
24
# File 'lib/stellar/util/strkey.rb', line 16

def self.check_encode(version, byte_str)
  version_byte = VERSION_BYTES[version]
  raise ArgumentError, "Invalid version: #{version}" if version_byte.blank?
  payload = version_byte + byte_str.dup.force_encoding("BINARY")
  check = checksum(payload)
  # TODO: sort out, is it 100% safe to remove padding
  # SEP-23 says yes, but shit happens
  Base32.encode(payload + check).tr("=", "")
end