diff --git a/lib/gui_qt.py b/lib/gui_qt.py index 1a061be6..bc134407 100644 --- a/lib/gui_qt.py +++ b/lib/gui_qt.py @@ -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") diff --git a/lib/verifier.py b/lib/verifier.py index b6f86447..46b4c442 100644 --- a/lib/verifier.py +++ b/lib/verifier.py @@ -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. """ diff --git a/lib/wallet.py b/lib/wallet.py index 0cd42149..d2bd22bb 100644 --- a/lib/wallet.py +++ b/lib/wallet.py @@ -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()