aboutsummaryrefslogtreecommitdiffstats
path: root/names
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-10-21 22:03:55 -0700
committerAdam Soltys <[email protected]>2026-10-21 22:03:55 -0700
commit8229ea08caeb6d03efa56205b9526e2751217162 (patch)
treee94dfb6a881add722f2f76c90cdbcd623da43004 /names
parent481e1f827d94f9ac3b54ad2a5c087fc5d8ce9a88 (diff)
downloadcoinosv3-server-8229ea08caeb6d03efa56205b9526e2751217162.tar.gz
coinosv3-server-8229ea08caeb6d03efa56205b9526e2751217162.zip
names: a queued payment the float can cover goes now, backoff or not
Float top-ups that missed their 60 s settle window landed later (+300k on 2026-10-22 once the ASP's vtxo pool refilled), but only a top-up seen to settle resets the queue's backoff, so jarryd's 248k sat in a 1-hour wait with 477k in the float. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'names')
-rw-r--r--names/server.js6
1 files changed, 5 insertions, 1 deletions
diff --git a/names/server.js b/names/server.js
index 1048e4d..fbb7737 100644
--- a/names/server.js
+++ b/names/server.js
@@ -853,7 +853,11 @@ async function retryTick() {
if (!q.length) return;
const still = [];
for (const p of q) {
- if (p.next && Date.now() < p.next) { still.push(p); continue; }
+ // A top-up that "didn't settle" in its 60 s window can land later (two
+ // did, 2026-10-22, once the ASP's pool refilled), and nothing resets the
+ // backoff then: a payment the float can now cover goes now.
+ const floatCovers = !p.foreign && fwd.balance().spendableSat >= p.sat;
+ if (p.next && Date.now() < p.next && !floatCovers) { still.push(p); continue; }
try { await forward(p.name, p.sat, p.hash, p.pubkey); }
catch (e) {
log(`forward retry failed for ${p.name} (${p.sat} sat, try ${(p.tries || 0) + 1}): ${e.message}`);