From f400e69d51745d8ecae9d9a2a3dd8db497ed6bfa Mon Sep 17 00:00:00 2001 From: ThomasV Date: Tue, 19 Aug 2014 13:03:29 +0200 Subject: [PATCH] move two methods in subclasses --- lib/wallet.py | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/lib/wallet.py b/lib/wallet.py index 4d5479f7..80a0959d 100644 --- a/lib/wallet.py +++ b/lib/wallet.py @@ -1275,25 +1275,6 @@ class BIP32_Wallet(Deterministic_Wallet): self.master_private_keys[name] = pw_encode(xpriv, password) self.storage.put('master_private_keys', self.master_private_keys, True) - def add_master_keys(self, root, account_id, password): - x = self.master_private_keys.get(root) - if x: - master_xpriv = pw_decode(x, password ) - xpriv, xpub = bip32_private_derivation(master_xpriv, root, account_id) - self.add_master_public_key(account_id, xpub) - self.add_master_private_key(account_id, xpriv, password) - else: - master_xpub = self.master_public_keys[root] - xpub = bip32_public_derivation(master_xpub, root, account_id) - self.add_master_public_key(account_id, xpub) - return xpub - - def create_master_keys(self, password): - seed = self.get_seed(password) - xpriv, xpub = bip32_root(seed) - self.add_master_public_key("m/", xpub) - self.add_master_private_key("m/", xpriv, password) - def can_sign(self, tx): if self.is_watching_only(): return False @@ -1379,6 +1360,20 @@ class BIP32_HD_Wallet(BIP32_Wallet): i += 1 return i + def add_master_keys(self, root, account_id, password): + x = self.master_private_keys.get(root) + if x: + master_xpriv = pw_decode(x, password ) + xpriv, xpub = bip32_private_derivation(master_xpriv, root, account_id) + self.add_master_public_key(account_id, xpub) + self.add_master_private_key(account_id, xpriv, password) + else: + master_xpub = self.master_public_keys[root] + xpub = bip32_public_derivation(master_xpub, root, account_id) + self.add_master_public_key(account_id, xpub) + return xpub + + class NewWallet(BIP32_HD_Wallet): # BIP39 seed generation @@ -1410,6 +1405,12 @@ class NewWallet(BIP32_HD_Wallet): import unicodedata return NEW_SEED_VERSION, unicodedata.normalize('NFC', unicode(seed.strip())) + def create_master_keys(self, password): + seed = self.get_seed(password) + xpriv, xpub = bip32_root(seed) + self.add_master_public_key("m/", xpub) + self.add_master_private_key("m/", xpriv, password) +