aboutsummaryrefslogtreecommitdiffstats
path: root/src/wallet.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/wallet.js')
-rw-r--r--src/wallet.js9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/wallet.js b/src/wallet.js
index 006441c..5943d86 100644
--- a/src/wallet.js
+++ b/src/wallet.js
@@ -602,12 +602,13 @@ export class Wallet {
// any pending that just confirmed, so an outpoint never appears twice.
const confNow = this.spUtxos.filter((u) => u.confirmed);
const confNowIds = new Set(confNow.map((u) => `${u.txid}:${u.vout}`));
- const prevPending = this.spUtxos.length - confNow.length;
+ const oldPendingIds = new Set(this.spUtxos.filter((u) => !u.confirmed).map((u) => `${u.txid}:${u.vout}`));
const freshPending = pending.filter((p) => !confNowIds.has(`${p.txid}:${p.vout}`));
+ // Only emit when our pending set actually changed — the mempool churns
+ // constantly, and a no-op emit would re-render and steal input focus.
+ const changed = freshPending.length !== oldPendingIds.size || freshPending.some((p) => !oldPendingIds.has(`${p.txid}:${p.vout}`));
this.spUtxos = [...confNow, ...freshPending];
- if (freshPending.length !== prevPending || freshPending.length) this._recomputeBalanceFromChains();
- this.saveCache();
- this.emit();
+ if (changed) { this._recomputeBalanceFromChains(); this.saveCache(); this.emit(); }
}
} finally {
this._spMempoolBusy = false;