Browse Source

qml: fix refresh bug in history, for local->unconfirmed tx transition

Previously if a local tx got broadcast, it was still displayed as local
in the history until it got mined (or some other action forced a full refresh).
master
SomberNight 3 years ago
parent
commit
b81508cfc0
No known key found for this signature in database
GPG Key ID: B33B5F232C6271E9
  1. 4
      electrum/address_synchronizer.py
  2. 8
      electrum/gui/qml/qewallet.py

4
electrum/address_synchronizer.py

@ -439,6 +439,10 @@ class AddressSynchronizer(Logger, EventListener):
if tx is None:
continue
self.add_transaction(tx, allow_unrelated=True, is_new=False)
# if we already had this tx, see if its height changed (e.g. local->unconfirmed)
old_height = old_hist.get(tx_hash, None)
if old_height is not None and old_height != tx_height:
util.trigger_callback('adb_tx_height_changed', self, tx_hash, old_height, tx_height)
# Store fees
for tx_hash, fee_sat in tx_fees.items():

8
electrum/gui/qml/qewallet.py

@ -181,9 +181,15 @@ class QEWallet(AuthMixin, QObject, QtEventListener):
self._logger.info(f'new transaction {tx.txid()}')
self.add_tx_notification(tx)
self.addressModel.setDirty()
self.historyModel.setDirty() # assuming wallet.is_up_to_date triggers after
self.historyModel.setDirty() # assuming wallet.is_up_to_date triggers after
self.balanceChanged.emit()
@qt_event_listener
def on_event_adb_tx_height_changed(self, adb, txid, old_height, new_height):
if adb == self.wallet.adb:
self._logger.info(f'tx_height_changed {txid}. {old_height} -> {new_height}')
self.historyModel.setDirty() # assuming wallet.is_up_to_date triggers after
@qt_event_listener
def on_event_removed_transaction(self, wallet, tx):
if wallet == self.wallet:

Loading…
Cancel
Save