diff --git a/lib/gui_qt.py b/lib/gui_qt.py index 06ec84d4..88827aeb 100644 --- a/lib/gui_qt.py +++ b/lib/gui_qt.py @@ -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' diff --git a/lib/verifier.py b/lib/verifier.py index 326e499c..76d19ba1 100644 --- a/lib/verifier.py +++ b/lib/verifier.py @@ -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') + diff --git a/lib/wallet.py b/lib/wallet.py index 00474525..2412b8cf 100644 --- a/lib/wallet.py +++ b/lib/wallet.py @@ -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: