class DbchainClient::Mnemonics
Public Class Methods
generate_mnemonic(strength_bits = 128)
click to toggle source
# File lib/dbchain_client/mnemonics.rb, line 6 def generate_mnemonic(strength_bits = 128) Bitcoin::Trezor::Mnemonic.generate(strength_bits) end
generate_private_key()
click to toggle source
# File lib/dbchain_client/mnemonics.rb, line 21 def generate_private_key mnemonic = generate_mnemonic master_key = mnemonic_to_master_key(mnemonic) master_key_to_cosmos_key_pair(master_key)[0] end
master_key_to_cosmos_key_pair(master_key)
click to toggle source
# File lib/dbchain_client/mnemonics.rb, line 15 def master_key_to_cosmos_key_pair(master_key) # m/44'/118'/0'/0/0" key = master_key.derive(2**31 + 44).derive(2**31 + 118).derive(2**31).derive(0 ).derive(0) [key.priv, key.pub] end
mnemonic_to_master_key(mnemonic)
click to toggle source
# File lib/dbchain_client/mnemonics.rb, line 10 def mnemonic_to_master_key(mnemonic) seed = Bitcoin::Trezor::Mnemonic.to_seed(mnemonic) Bitcoin::ExtKey.generate_master(seed.htb) end
public_key_to_address(pub_key)
click to toggle source
# File lib/dbchain_client/mnemonics.rb, line 27 def public_key_to_address(pub_key) hash160 = Bitcoin.hash160(pub_key) words = Bitcoin::Bech32.convert_bits(hash160.htb.unpack("C*"), from_bits: 8, to_bits: 5, pad: true) Bitcoin::Bech32.encode("cosmos", words) end