From 312621af84136fddbe7d7e47ffecc1ba2b38920d Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Mon, 6 Jul 2026 14:55:40 -0700 Subject: Fee rates from live explorer + reconnect half-open socket on wake MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fee rates on the electrum backend came from Fulcrum's estimatefee (Core's estimatesmartfee): historical, laggy, floored at 1 sat/vB, so it showed 1 across the board while mempool.space showed 11/10. Pull the configured explorer's live recommendation instead (/v1/fees/recommended, then /fee-estimates), falling back to estimatefee only when the explorer is unreachable — self-hosted/regtest behaviour unchanged. - On mobile a backgrounded page leaves the socket half-open: TCP is dead but readyState still reads OPEN, so wake() never reconnected and fired scan RPCs into the void, waiting ~20s for the heartbeat to recover. wake() now forces a reconnect when the socket has been silent past the heartbeat window, so a payment shows the instant you refocus. Co-Authored-By: Claude Opus 4.8 --- src/api.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/api.js') diff --git a/src/api.js b/src/api.js index 76852d4..4a7dd75 100644 --- a/src/api.js +++ b/src/api.js @@ -593,7 +593,7 @@ export class Api { // Esplora /fee-estimates is { blockTarget: sat/vB }. Map to the named tiers the // UI expects. Round up so we never underpay. -function mapEsploraFees(est) { +export function mapEsploraFees(est) { const at = (n, d) => Math.max(1, Math.ceil(est[n] || d)); return { fastestFee: at(1, 10), -- cgit v1.2.3