do not request merkle root for unconfirmed transactions
authorthomasv <thomasv@gitorious>
Mon, 29 Oct 2012 08:31:42 +0000 (09:31 +0100)
committerthomasv <thomasv@gitorious>
Mon, 29 Oct 2012 08:31:42 +0000 (09:31 +0100)
lib/gui_qt.py
lib/verifier.py
lib/wallet.py

index 1a061be..bc13440 100644 (file)
@@ -437,7 +437,9 @@ class ElectrumWindow(QMainWindow):
             if tx['height']:
                 conf = self.wallet.verifier.get_confirmations(tx_hash)
                 time_str = datetime.datetime.fromtimestamp( tx['timestamp']).isoformat(' ')[:-3]
-                if conf < 6:
+                if conf == 0:
+                    icon = QIcon(":icons/unconfirmed.png")
+                elif conf < 6:
                     icon = QIcon(":icons/clock%d.png"%conf)
                 else:
                     icon = QIcon(":icons/confirmed.png")
index b6f8644..46b4c44 100644 (file)
@@ -46,8 +46,10 @@ class WalletVerifier(threading.Thread):
     def get_confirmations(self, tx):
         """ return the number of confirmations of a monitored transaction. """
         with self.lock:
-            assert tx in self.transactions
-            return (self.local_height - self.verified_tx[tx] + 1) if tx in self.verified_tx else 0
+            if tx in self.transactions:
+                return (self.local_height - self.verified_tx[tx] + 1) if tx in self.verified_tx else 0
+            else:
+                return 0
 
     def add(self, tx):
         """ add a transaction to the list of monitored transactions. """
index 0cd4214..d2bd22b 100644 (file)
@@ -519,13 +519,15 @@ class Wallet:
                 tx_hash = tx['tx_hash']
                 line = self.tx_history.get(tx_hash)
                 if not line:
-                    if self.verifier: self.verifier.add(tx_hash)
                     self.tx_history[tx_hash] = copy.copy(tx)
                     line = self.tx_history.get(tx_hash)
                 else:
                     line['value'] += tx['value']
                 if line['height'] == 0:
                     line['timestamp'] = 1e12
+                else:
+                    if self.verifier: self.verifier.add(tx_hash)
+                    
         self.update_tx_labels()
 
     def update_tx_labels(self):
@@ -816,11 +818,7 @@ class Wallet:
 
     def set_verifier(self, verifier):
         self.verifier = verifier
-        with self.lock:
-            for tx in self.tx_history.keys():
-                self.verifier.add(tx)
-        
-
+        self.update_tx_history()