refresh method

Future<void> refresh()

Re-read page 1 in place (the sync-edge refresh — a newly arrived/confirmed tx). Keeps the CURRENT rows visible until the fresh page lands, so a transient busy-DB fault never blanks a populated history (last-known-through-error).

Implementation

Future<void> refresh() async {
  // DO NOT collapse a deep-loaded (multi-page) list. The sync `reachedTip` edge
  // re-fires roughly per block while a synced wallet is open (~every block at the
  // tip), so a wholesale page-1 re-read here would YANK the accumulated pages back
  // to 50 rows every ~block and lose the user's place. The single-page common case
  // still auto-refreshes (no tail to drop). A REAL arrival must NOT ride this
  // guard — that is [collapseToFirstPage]'s job (U1: without it a
  // deep-paged list was a session-durable dead zone where a new payment never
  // appeared at all). The balance still updates live via
  // `walletSnapshotProvider` (refreshed on the same edges).
  if (state.rows.length > walletActivityPageSize) return;
  await _reloadFirstPage();
}