Browse Source

distinction between unconfirmed and unverified transactions

283
ecdsa 12 years ago
parent
commit
c95c80163d
  1. 20
      gui/gui_classic.py
  2. 5
      gui/gui_gtk.py
  3. 22
      lib/verifier.py
  4. 2
      lib/wallet.py

20
gui/gui_classic.py

@ -606,22 +606,22 @@ class ElectrumWindow(QMainWindow):
self.history_list.clear()
for item in self.wallet.get_tx_history(self.current_account):
tx_hash, conf, is_mine, value, fee, balance, timestamp = item
if conf:
if conf > 0:
try:
time_str = datetime.datetime.fromtimestamp( timestamp).isoformat(' ')[:-3]
except:
time_str = "unknown"
if conf == -1:
icon = None
if conf == 0:
icon = QIcon(":icons/unconfirmed.png")
elif conf < 6:
icon = QIcon(":icons/clock%d.png"%conf)
else:
icon = QIcon(":icons/confirmed.png")
else:
if conf == -1:
time_str = 'unverified'
icon = None
elif conf == 0:
time_str = 'pending'
icon = QIcon(":icons/unconfirmed.png")
elif conf < 6:
icon = QIcon(":icons/clock%d.png"%conf)
else:
icon = QIcon(":icons/confirmed.png")
if value is not None:
v_str = self.format_amount(value, True)

5
gui/gui_gtk.py

@ -1167,12 +1167,15 @@ class ElectrumWindow:
for item in self.wallet.get_tx_history():
tx_hash, conf, is_mine, value, fee, balance, timestamp = item
if conf:
if conf > 0:
try:
time_str = datetime.datetime.fromtimestamp( timestamp).isoformat(' ')[:-3]
except:
time_str = "------"
conf_icon = gtk.STOCK_APPLY
elif conf == -1:
time_str = 'unverified'
conf_icon = None
else:
time_str = 'pending'
conf_icon = gtk.STOCK_EXECUTE

22
lib/verifier.py

@ -52,15 +52,33 @@ class WalletVerifier(threading.Thread):
if tx in self.verified_tx:
height, timestamp, pos = self.verified_tx[tx]
conf = (self.local_height - height + 1)
if conf <= 0: timestamp = None
elif tx in self.transactions:
conf = -1
timestamp = None
else:
conf = 0
if conf <= 0:
timestamp = None
return conf, timestamp
def get_txpos(self, tx_hash):
"return position, even if the tx is unverified"
with self.lock:
x = self.verified_tx.get(tx_hash)
y = self.transactions.get(tx_hash)
if x:
height, timestamp, pos = x
return height, pos
elif y:
return y, 0
else:
return 1e12, 0
def get_height(self, tx_hash):
with self.lock:
v = self.verified_tx.get(tx_hash)

2
lib/wallet.py

@ -670,7 +670,7 @@ class Wallet:
def get_tx_history(self, account=None):
with self.transaction_lock:
history = self.transactions.items()
history.sort(key = lambda x: self.verifier.verified_tx.get(x[0]) if self.verifier.verified_tx.get(x[0]) else (1e12,0,0))
history.sort(key = lambda x: self.verifier.get_txpos(x[0]))
result = []
balance = 0

Loading…
Cancel
Save