aboutsummaryrefslogtreecommitdiffstats
path: root/tools/ark/ln-e2e-test.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-07-31 08:04:33 -0700
committerAdam Soltys <[email protected]>2026-07-31 08:04:33 -0700
commitad281e832ed9e36b777f03ed54e799df7d70ffc9 (patch)
tree2e7ba6df785e6b8f74266c56a7ca2006cbb9579b /tools/ark/ln-e2e-test.js
parent72e407bf6d7d09923d15461be82685017a0887be (diff)
downloadcoinosv3-ad281e832ed9e36b777f03ed54e799df7d70ffc9.tar.gz
coinosv3-ad281e832ed9e36b777f03ed54e799df7d70ffc9.zip
Fix send-form UX around lightning pays; harden ln state machines
- a rejected cosign (gRPC INVALID_ARGUMENT) returns the input vtxo to spendable and fails the action instead of leaving it pending forever — the stuck-pending state that pushed small zaps onto Boltz's 25k minimum - ark ln-pay now takes over when funds are settling (retrying quote) rather than falling through to Boltz - typing a destination clears stale send errors (also cleared on tab switch); paste path likewise - typed lightning addresses no longer auto-advance mid-keystroke (the matcher fired at `[email protected]` before `.com`, yanking the form away): the send form offers an explicit "Zap <addr>" button; pasted/scanned addresses still advance immediately - ln-recv: HTLC vtxos anchored to a not-yet-confirmed pool round park and retry instead of throwing; the requested HTLC expiry is anchored on first prepare so retries can't inflate it past the server's grant Co-Authored-By: Claude Fable 5 <[email protected]>
Diffstat (limited to 'tools/ark/ln-e2e-test.js')
-rw-r--r--tools/ark/ln-e2e-test.js3
1 files changed, 3 insertions, 0 deletions
diff --git a/tools/ark/ln-e2e-test.js b/tools/ark/ln-e2e-test.js
index b11f542..4d31b56 100644
--- a/tools/ark/ln-e2e-test.js
+++ b/tools/ark/ln-e2e-test.js
@@ -112,6 +112,9 @@ const payerDone = new Promise((r) => payer.on('close', (code) => r(code)));
for (let i = 0; i < 40 && !['done', 'failed'].includes(mgr.lnAction(recv.id).step); i++) {
await sleep(1500);
+ // fresh pool vtxos anchor to a possibly-unconfirmed issuance round — keep
+ // blocks coming so the HTLC vtxo validation can pass
+ if (i % 3 === 2) sh('docker exec bc bitcoin-cli -rpcwallet=coinos -generate 1 >/dev/null');
await mgr.driveLn(recv.id);
}
const r = mgr.lnAction(recv.id);