class Eth::Vault
Attributes
hd_path_string[RW]
master[RW]
mnemonic[RW]
Public Class Methods
new(opts = {secret_seed_phrase: nil}, hd_path_string = "m/0'/0'/0'")
click to toggle source
# File lib/eth/vault.rb, line 17 def initialize(opts = {secret_seed_phrase: nil}, hd_path_string = "m/0'/0'/0'") if opts[:secret_seed_phrase] secret_seed_phrase = self.class.pad_mnemonic(opts[:secret_seed_phrase]) seed_hex = Bitcoin::Trezor::Mnemonic.to_seed(secret_seed_phrase) else secret_seed_phrase = self.class.pad_mnemonic(Bitcoin::Trezor::Mnemonic.to_mnemonic(RbNaCl::Random.random_bytes(32))) seed_hex = Bitcoin::Trezor::Mnemonic.to_seed(secret_seed_phrase) end @mnemonic = self.class.unpad_mnemonic(secret_seed_phrase) @hd_path_string = hd_path_string @master = MoneyTree::Master.new(seed_hex: seed_hex) end
pad_mnemonic(mnemonic)
click to toggle source
# File lib/eth/vault.rb, line 8 def pad_mnemonic(mnemonic) mnemonic.rjust(180, ' ') end
unpad_mnemonic(mnemonic)
click to toggle source
# File lib/eth/vault.rb, line 12 def unpad_mnemonic(mnemonic) mnemonic.strip! end
Public Instance Methods
get_key(index = 0)
click to toggle source
# File lib/eth/vault.rb, line 39 def get_key(index = 0) node = get_node(index) return Eth::Key.from_node(node) end
get_node(index = 0)
click to toggle source
# File lib/eth/vault.rb, line 30 def get_node(index = 0) if index == 0 hd_path = @hd_path_string else hd_path = "#{@hd_path_string}/#{index}'" end return @master.node_for_path(hd_path) end