distinction between unconfirmed and unverified transactions
This commit is contained in:
parent
827e29c1dc
commit
c95c80163d
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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…
Reference in New Issue