class Bech32::SegwitAddr
override so we can parse non-Bitcoin Bech32
addresses
Constants
- VALID_HRPS
Private Instance Methods
parse_addr(addr)
click to toggle source
# File lib/block_io/extended_bitcoinrb.rb, line 120 def parse_addr(addr) @hrp, data, spec = Bech32.decode(addr) raise 'Invalid address.' if hrp.nil? || data[0].nil? || !VALID_HRPS.key?(hrp) # HRP_MAINNET, HRP_TESTNET, HRP_REGTEST].include?(hrp) @ver = data[0] raise 'Invalid witness version' if @ver > 16 @prog = Bech32.convert_bits(data[1..-1], 5, 8, false) raise 'Invalid witness program' if @prog.nil? || @prog.length < 2 || @prog.length > 40 raise 'Invalid witness program with version 0' if @ver == 0 && (@prog.length != 20 && @prog.length != 32) raise 'Witness version and encoding spec do not match' if (@ver == 0 && spec != Bech32::Encoding::BECH32) || (@ver != 0 && spec != Bech32::Encoding::BECH32M) end