Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions bitcoin_safe/client_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,3 +64,4 @@ class UpdateType(enum.Enum):

update: bdk.Update
update_type: UpdateType
wallet_events: list[bdk.WalletEvent] = field(default_factory=list)
9 changes: 3 additions & 6 deletions bitcoin_safe/gui/qt/qt_wallet.py
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,6 @@ def __init__(

self._last_syncing_start = datetime.datetime.now()
self._syncing_delay = timedelta(seconds=0)
self._last_sync_chain_height = 0
self._rows_after_hist_list_update: list[str] = []

########### create tabs
Expand Down Expand Up @@ -1867,15 +1866,13 @@ def is_in_cbf_ibd(self) -> bool:
def on_update(self, update_info: UpdateInfo):
"""On update."""
logger.info(self.tr("start updating lists"))
new_chain_height = self.wallet.get_height_no_cache()
# self.wallet.clear_cache()

self.refresh_caches_and_ui_lists(
force_ui_refresh=False,
chain_height_advanced=new_chain_height != self._last_sync_chain_height,
chain_height_advanced=bool([e for e in update_info.wallet_events if e.is_chain_tip_changed()]),
)
# self.update_tabs()

logger.info(self.tr("finished updating lists"))
self._last_sync_chain_height = new_chain_height

self.fx.update_if_needed()
self.save()
Expand Down
11 changes: 6 additions & 5 deletions bitcoin_safe/wallet.py
Original file line number Diff line number Diff line change
Expand Up @@ -1308,17 +1308,18 @@ async def update(self) -> UpdateInfo | None:
update_info = await self.client.update()
if not update_info:
return None
self._apply_update(update=update_info.update)
wallet_events = self._apply_update(update=update_info.update)
update_info.wallet_events = wallet_events
return update_info

def _apply_update(self, update: bdk.Update):
def _apply_update(self, update: bdk.Update) -> list[bdk.WalletEvent]:
"""Apply a client update to the local wallet caches."""
if update:
self.bdkwallet.apply_update(update)
wallet_events = self.bdkwallet.apply_update_events(update)

self.persist()

logger.info("Applied update")
logger.info(f"Applied update with events {[type(event) for event in wallet_events]}")
return wallet_events

def forward_search_unused_address(
self, category: str | None = None, is_change=False
Expand Down
1 change: 0 additions & 1 deletion tests/gui/qt/test_qt_wallet.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@ def _make_qt_wallet_stub(has_gap_overhang: bool) -> tuple[SimpleNamespace, LoopR
)
qt_wallet = SimpleNamespace(
wallet=wallet,
_last_sync_chain_height=0,
refresh_caches_and_ui_lists=lambda force_ui_refresh, chain_height_advanced: None,
fx=SimpleNamespace(update_if_needed=lambda: None),
save=lambda: None,
Expand Down
Loading