use None as timestamp for pending transactions
authorthomasv <thomasv@gitorious>
Fri, 16 Nov 2012 09:18:35 +0000 (10:18 +0100)
committerthomasv <thomasv@gitorious>
Fri, 16 Nov 2012 09:18:35 +0000 (10:18 +0100)
lib/gui_qt.py
lib/verifier.py
lib/wallet.py

index 06ec84d..88827ae 100644 (file)
@@ -333,8 +333,9 @@ class ElectrumWindow(QMainWindow):
         tx = self.wallet.transactions.get(tx_hash)
 
         conf = self.wallet.verifier.get_confirmations(tx_hash)
-        if conf:
-            time_str = datetime.datetime.fromtimestamp( tx['timestamp']).isoformat(' ')[:-3]
+        timestamp = tx.get('timestamp')
+        if conf and timestamp:
+            time_str = datetime.datetime.fromtimestamp(timestamp).isoformat(' ')[:-3]
         else:
             time_str = 'pending'
 
index 326e499..76d19ba 100644 (file)
@@ -361,8 +361,7 @@ class WalletVerifier(threading.Thread):
     def get_timestamp(self, tx_height):
         if tx_height>0:
             header = self.read_header(tx_height)
-            timestamp = header.get('timestamp') if header else 0
-        else:
-            timestamp = 1e12
-        return timestamp
+            if header:
+                return header.get('timestamp') 
+
 
index 0047452..2412b8c 100644 (file)
@@ -585,8 +585,7 @@ class Wallet:
     def get_tx_history(self):
         with self.lock:
             lines = self.transactions.values()
-
-        lines = sorted(lines, key=operator.itemgetter("timestamp"))
+        lines.sort(key = lambda x: x.get('timestamp') if x.get('timestamp') else 1e12)
         return lines
 
     def get_transactions_at_height(self, height):
@@ -901,7 +900,8 @@ class Wallet:
     def set_verifier(self, verifier):
         self.verifier = verifier
 
-        # review transactions (they might not all be in history)
+        # review stored transactions and send them to the verifier
+        # (they are not necessarily in the history, because history items might have have been pruned)
         for tx_hash, tx in self.transactions.items():
             tx_height = tx.get('height')
             if tx_height <1:
@@ -914,11 +914,9 @@ class Wallet:
             # set the timestamp for transactions that need it
             if tx and not tx.get('timestamp'):
                 timestamp = self.verifier.get_timestamp(tx_height)
-                if timestamp:
-                    self.set_tx_timestamp(tx_hash, timestamp)
-
+                self.set_tx_timestamp(tx_hash, timestamp)
 
-        # review existing history
+        # review transactions that are in the history
         for addr, hist in self.history.items():
             if hist == ['*']: continue
             for tx_hash, tx_height in hist: