Browse Source

follow bip45 derivation with hardware multisig

283
ThomasV 8 years ago
parent
commit
c24d38cd97
  1. 9
      lib/base_wizard.py
  2. 5
      lib/keystore.py

9
lib/base_wizard.py

@ -214,7 +214,7 @@ class BaseWizard(object):
def account_id_dialog(self, f):
message = '\n'.join([
_('Enter your BIP44 account number here.'),
_('Enter your account number here.'),
_('If you are not sure what this is, leave this field to zero.')
])
def is_int(x):
@ -226,8 +226,7 @@ class BaseWizard(object):
self.line_dialog(run_next=f, title=_('Account Number'), message=message, default='0', test=is_int)
def on_hardware_account_id(self, name, device_info, account_id):
from keystore import hardware_keystore, bip44_derivation
derivation = bip44_derivation(int(account_id))
derivation = keystore.bip44_derivation(int(account_id), self.wallet_type == 'multisig')
xpub = self.plugin.get_xpub(device_info.device.id_, derivation, self)
if xpub is None:
self.show_error('Cannot read xpub from device')
@ -239,7 +238,7 @@ class BaseWizard(object):
'xpub': xpub,
'label': device_info.label,
}
k = hardware_keystore(d)
k = keystore.hardware_keystore(d)
self.on_keystore(k)
def restore_from_seed(self):
@ -274,7 +273,7 @@ class BaseWizard(object):
def on_bip44(self, seed, passphrase, account_id):
k = keystore.BIP32_KeyStore({})
bip32_seed = keystore.bip39_to_seed(seed, passphrase)
derivation = "m/44'/0'/%d'"%account_id
derivation = keystore.bip44_derivation(account_id, self.wallet_type == 'multisig')
k.add_xprv_from_seed(bip32_seed, derivation)
self.on_keystore(k)

5
lib/keystore.py

@ -635,8 +635,9 @@ is_any_key = lambda x: is_old_mpk(x) or is_xprv(x) or is_xpub(x) or is_address_l
is_private_key = lambda x: is_xprv(x) or is_private_key_list(x)
is_bip32_key = lambda x: is_xprv(x) or is_xpub(x)
def bip44_derivation(account_id):
return "m/44'/0'/%d'"% int(account_id)
def bip44_derivation(account_id, multisig=False):
n = 45 if multisig else 44
return "m/%d'/0'/%d'"% (n, account_id)
def from_seed(seed, passphrase):
if is_old_seed(seed):

Loading…
Cancel
Save