wallet.num_accounts and account_id method
authorThomasV <thomasv@gitorious>
Fri, 16 Aug 2013 11:26:48 +0000 (13:26 +0200)
committerThomasV <thomasv@gitorious>
Fri, 16 Aug 2013 11:26:48 +0000 (13:26 +0200)
gui/plugins.py
lib/bitcoin.py
lib/wallet.py

index e9e9916..1a758a9 100644 (file)
@@ -4,6 +4,7 @@ class BasePlugin:
 
     def __init__(self, gui, name):
         self.gui = gui
+        self.wallet = self.gui.wallet
         self.name = name
         self.config = gui.config
 
index bd1625e..8281bb1 100644 (file)
@@ -614,7 +614,7 @@ class Transaction:
                 signatures = txin.get("signatures",[])
 
                 # continue if this txin is complete
-                if len(signatures == num):
+                if len(signatures) == num:
                     continue
 
                 # build list of public/private keys
@@ -643,7 +643,7 @@ class Transaction:
                 # for p2sh, pubkeysig is a tuple (may be incomplete)
                 txin["signatures"] = signatures
                 print_error("signatures", signatures)
-                is_complete = is_complete and len(signatures == num)
+                is_complete = is_complete and len(signatures) == num
 
             else:
 
index b180aec..685a929 100644 (file)
@@ -207,24 +207,30 @@ class Wallet:
         self.create_account('Main account')
 
 
-
-    def create_account(self, name, account_type = None):
-
+    def account_id(self, account_type, i):
         if account_type is None:
-            derivation = lambda i: "m/0'/%d'"%i
+            return "m/0'/%d'"%i
         elif account_type == '2of2':
-            derivation = lambda i: "m/1'/%d & m/2'/%d"%(i,i)
+            return "m/1'/%d & m/2'/%d"%(i,i)
         elif account_type == '2of3':
-            derivation = lambda i: "m/3'/%d & m/4'/%d & m/5'/%d"%(i,i,i)
+            return "m/3'/%d & m/4'/%d & m/5'/%d"%(i,i,i)
         else:
             raise BaseException('unknown account type')
 
+
+    def num_accounts(self, account_type):
         keys = self.accounts.keys()
         i = 0
         while True:
-            account_id = derivation(i)
+            account_id = self.account_id(account_type, i)
             if account_id not in keys: break
             i += 1
+        return i
+
+
+    def create_account(self, name, account_type = None):
+        i = self.num_accounts(account_type)
+        acount_id = self.account_id(account_type,i)
 
         if account_type is None:
             master_c0, master_K0, _ = self.master_public_keys["m/0'/"]