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