fixes for pending accounts
[electrum-nvc.git] / lib / wallet.py
index a3dbdf7..8230481 100644 (file)
@@ -354,12 +354,6 @@ class Abstract_Wallet:
 
         raise Exception("Address not found", address)
 
-    def getpubkeys(self, addr):
-        assert is_address(addr) and self.is_mine(addr)
-        account, sequence = self.get_address_index(addr)
-        a = self.accounts[account]
-        return a.get_pubkeys( sequence )
-
     def get_private_key(self, address, password):
         if self.is_watching_only():
             return []
@@ -386,7 +380,6 @@ class Abstract_Wallet:
         mpk = [ self.master_public_keys[k] for k in self.master_private_keys.keys() ]
         for xpub, sequence in xpub_list:
             if xpub in mpk:
-                print "can sign", xpub
                 return True
 
         return False
@@ -410,9 +403,7 @@ class Abstract_Wallet:
                     break
             else:
                 continue
-
-            addr = account.get_address(*sequence)
-            pk = self.get_private_key(addr, password)
+            pk = account.get_private_key(sequence, self, password)
             for sec in pk:
                 pubkey = public_key_from_private_key(sec)
                 keypairs[pubkey] = sec
@@ -1265,7 +1256,7 @@ class Deterministic_Wallet(Abstract_Wallet):
         return True
 
     def get_action(self):
-        if not self.get_master_public_key():
+        if not self.master_public_keys:
             return 'create_seed'
         if not self.accounts:
             return 'create_accounts'
@@ -1286,11 +1277,8 @@ class NewWallet(Deterministic_Wallet):
         return 'm/' in self.master_private_keys.keys()
 
     def get_master_public_key(self):
-        if self.is_watching_only():
-            return self.master_public_keys["m/0'"]
-        else:
-            return self.master_public_keys["m/"]
-
+        """xpub of the main account"""
+        return self.master_public_keys.get("m/0'")
 
     def get_master_public_keys(self):
         out = {}
@@ -1571,8 +1559,8 @@ class Wallet(object):
         config = storage.config
 
         self.wallet_types = [ 
-            ('standard', ("Standard wallet"),          OldWallet), 
-            ('imported', ("Imported wallet"),          Imported_Wallet), 
+            ('standard', ("Standard wallet"),          NewWallet if config.get('bip32') else OldWallet),
+            ('imported', ("Imported wallet"),          Imported_Wallet),
             ('2of2',     ("Multisig wallet (2 of 2)"), Wallet_2of2),
             ('2of3',     ("Multisig wallet (2 of 3)"), Wallet_2of3)
         ]