store timestamps in verifier
This commit is contained in:
@@ -430,9 +430,9 @@ class Wallet:
|
||||
if not tx_hash: return ''
|
||||
tx = self.transactions.get(tx_hash)
|
||||
is_mine, v, fee = self.get_tx_value(tx_hash)
|
||||
conf = self.verifier.get_confirmations(tx_hash)
|
||||
timestamp = tx.get('timestamp')
|
||||
if conf and timestamp:
|
||||
conf, timestamp = self.verifier.get_confirmations(tx_hash)
|
||||
|
||||
if conf:
|
||||
time_str = datetime.datetime.fromtimestamp(timestamp).isoformat(' ')[:-3]
|
||||
else:
|
||||
time_str = 'pending'
|
||||
@@ -683,7 +683,7 @@ class Wallet:
|
||||
def get_tx_history(self):
|
||||
with self.lock:
|
||||
history = self.transactions.values()
|
||||
history.sort(key = lambda x: x.get('timestamp') if x.get('timestamp') else 1e12)
|
||||
history.sort(key = lambda x: x.get('height') if x.get('height') else 1e12)
|
||||
result = []
|
||||
|
||||
balance = 0
|
||||
@@ -699,8 +699,7 @@ class Wallet:
|
||||
balance = c + u - balance
|
||||
for tx in history:
|
||||
tx_hash = tx['tx_hash']
|
||||
timestamp = tx.get('timestamp')
|
||||
conf = self.verifier.get_confirmations(tx_hash) if self.verifier else None
|
||||
conf, timestamp = self.verifier.get_confirmations(tx_hash) if self.verifier else None
|
||||
is_mine, value, fee = self.get_tx_value(tx_hash)
|
||||
if value is not None:
|
||||
balance += value
|
||||
@@ -1042,11 +1041,6 @@ class Wallet:
|
||||
if tx_height>0:
|
||||
self.verifier.add(tx_hash, tx_height)
|
||||
|
||||
# set the timestamp for transactions that need it
|
||||
if tx and not tx.get('timestamp'):
|
||||
timestamp = self.verifier.get_timestamp(tx_height)
|
||||
self.set_tx_timestamp(tx_hash, timestamp)
|
||||
|
||||
# review transactions that are in the history
|
||||
for addr, hist in self.history.items():
|
||||
if hist == ['*']: continue
|
||||
@@ -1062,13 +1056,6 @@ class Wallet:
|
||||
tx['height'] = tx_height
|
||||
|
||||
|
||||
|
||||
def set_tx_timestamp(self, tx_hash, timestamp):
|
||||
with self.lock:
|
||||
self.transactions[tx_hash]['timestamp'] = timestamp
|
||||
|
||||
|
||||
|
||||
def is_addr_in_tx(self, addr, tx):
|
||||
found = False
|
||||
for txin in tx.get('inputs'):
|
||||
@@ -1300,10 +1287,6 @@ class WalletSynchronizer(threading.Thread):
|
||||
if self.wallet.transactions.get(tx_hash) is None:
|
||||
if (tx_hash, tx_height) not in requested_tx and (tx_hash, tx_height) not in missing_tx:
|
||||
missing_tx.append( (tx_hash, tx_height) )
|
||||
else:
|
||||
if self.wallet.verifier:
|
||||
timestamp = self.wallet.verifier.get_timestamp(tx_height)
|
||||
self.wallet.set_tx_timestamp(tx_hash, timestamp)
|
||||
|
||||
elif method == 'blockchain.transaction.get':
|
||||
tx_hash = params[0]
|
||||
@@ -1339,6 +1322,5 @@ class WalletSynchronizer(threading.Thread):
|
||||
d = deserialize.parse_Transaction(vds)
|
||||
d['height'] = tx_height
|
||||
d['tx_hash'] = tx_hash
|
||||
if self.wallet.verifier: d['timestamp'] = self.wallet.verifier.get_timestamp(tx_height)
|
||||
return d
|
||||
|
||||
|
||||
Reference in New Issue
Block a user