module Ethereum::BaseConvert
Constants
- BaseSymbols
Public Instance Methods
convert(s, from, to, minlen=0)
click to toggle source
# File lib/ethereum/base_convert.rb, line 20 def convert(s, from, to, minlen=0) return Utils.lpad(s, symbols(from)[0], minlen) if from == to encode decode(s, from), to, minlen end
decode(s, base)
click to toggle source
# File lib/ethereum/base_convert.rb, line 37 def decode(s, base) syms = symbols(base) s = s.downcase if base == 16 result = 0 while s.size > 0 result *= base result += syms.index(s[0]) s = s[1..-1] end result end
encode(v, base, minlen)
click to toggle source
# File lib/ethereum/base_convert.rb, line 25 def encode(v, base, minlen) syms = symbols(base) result = '' while v > 0 result = syms[v % base] + result v /= base end Utils.lpad result, syms[0], minlen end
symbols(base)
click to toggle source
# File lib/ethereum/base_convert.rb, line 16 def symbols(base) BaseSymbols[base] or raise ArgumentError, "invalid base!" end