diff options
| author | Adam Soltys <[email protected]> | 2026-10-21 22:03:55 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-10-21 22:03:55 -0700 |
| commit | 8229ea08caeb6d03efa56205b9526e2751217162 (patch) | |
| tree | e94dfb6a881add722f2f76c90cdbcd623da43004 /names/server.js | |
| parent | 481e1f827d94f9ac3b54ad2a5c087fc5d8ce9a88 (diff) | |
| download | coinosv3-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/server.js')
| -rw-r--r-- | names/server.js | 6 |
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}`); |
