fix add_keypairs: support old wallets
[electrum-nvc.git] / lib / wallet.py
index e1adcd7..ef7d6cd 100644 (file)
@@ -409,15 +409,15 @@ class Abstract_Wallet:
 
             else:
 
-                from account import BIP32_Account
-                print "scanning", x_pubkeys
-
+                from account import BIP32_Account, OldAccount
                 for x_pubkey in x_pubkeys:
                     if not is_extended_pubkey(x_pubkey):
                         continue
 
-                    xpub, sequence = BIP32_Account.parse_xpubkey(x_pubkey)
-                    print "xpub", xpub
+                    if x_pubkey[0:2] == 'ff':
+                        xpub, sequence = BIP32_Account.parse_xpubkey(x_pubkey)
+                    elif x_pubkey[0:2] == 'fe':
+                        xpub, sequence = OldAccount.parse_xpubkey(x_pubkey)
 
                     # look for account that can sign
                     for k, account in self.accounts.items():
@@ -425,10 +425,8 @@ class Abstract_Wallet:
                             break
                     else:
                         continue
-                    print "found xpub", xpub, sequence
 
                     addr = account.get_address(*sequence)
-                    print addr, txin['address']
                     assert txin['address'] == addr
                     pk = self.get_private_key(addr, password)
                     for sec in pk:
@@ -1592,28 +1590,6 @@ class OldWallet(Deterministic_Wallet):
         s = self.get_seed(password)
         return ' '.join(mnemonic.mn_encode(s))
 
-
-    def add_keypairs_from_KeyID(self, tx, keypairs, password):
-        # first check the provided password
-        for txin in tx.inputs:
-            keyid = txin.get('KeyID')
-            if keyid:
-                m = re.match("old\(([0-9a-f]+),(\d+),(\d+)", keyid)
-                if not m: continue
-                mpk = m.group(1)
-                if mpk != self.storage.get('master_public_key'): continue 
-                for_change = int(m.group(2))
-                num = int(m.group(3))
-                account = self.accounts[0]
-                addr = account.get_address(for_change, num)
-                txin['address'] = addr # fixme: side effect
-                pk = account.get_private_key((for_change, num), self, password)
-                for sec in pk:
-                    pubkey = public_key_from_private_key(sec)
-                    keypairs[pubkey] = sec
-
-
-
     def check_pending_accounts(self):
         pass