commit cdb52c30d286c4829008e8765b995464624354fa
parent ea7dabe640a836924dcbc7dd7099952bab26e3ba
Author: thomasv <thomasv@gitorious>
Date: Mon, 29 Oct 2012 09:31:42 +0100
do not request merkle root for unconfirmed transactions
Diffstat:
3 files changed, 11 insertions(+), 9 deletions(-)
diff --git 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
@@ -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
@@ -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()