Skip to content

Commit ee36ec9

Browse files
committed
segwit: add purpose to derivation
1 parent 9286dec commit ee36ec9

2 files changed

Lines changed: 5 additions & 3 deletions

File tree

lib/base_wizard.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ def on_restore_bip39(self, seed, passphrase):
293293
self.derivation_dialog(f)
294294

295295
def create_keystore(self, seed, passphrase):
296-
k = keystore.from_seed(seed, passphrase)
296+
k = keystore.from_seed(seed, passphrase, self.wallet_type=='multisig')
297297
self.on_keystore(k)
298298

299299
def on_bip44(self, seed, passphrase, derivation):

lib/keystore.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -685,7 +685,7 @@ def bip44_derivation(account_id, segwit=False):
685685
coin = 1 if bitcoin.TESTNET else 0
686686
return "m/%d'/%d'/%d'" % (bip, coin, int(account_id))
687687

688-
def from_seed(seed, passphrase):
688+
def from_seed(seed, passphrase, is_multisig):
689689
t = seed_type(seed)
690690
if t == 'old':
691691
keystore = Old_KeyStore({})
@@ -695,7 +695,9 @@ def from_seed(seed, passphrase):
695695
keystore.add_seed(seed)
696696
keystore.passphrase = passphrase
697697
bip32_seed = Mnemonic.mnemonic_to_seed(seed, passphrase)
698-
keystore.add_xprv_from_seed(bip32_seed, t, "m/")
698+
purpose = 1 if is_multisig else 0
699+
der = "m/" if t == 'standard' else ("m/%d'/"%purpose)
700+
keystore.add_xprv_from_seed(bip32_seed, t, der)
699701
else:
700702
raise BaseException(t)
701703
return keystore

0 commit comments

Comments
 (0)