diff options
| author | Adam Soltys <[email protected]> | 2026-07-31 08:04:33 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-07-31 08:04:33 -0700 |
| commit | ad281e832ed9e36b777f03ed54e799df7d70ffc9 (patch) | |
| tree | 2e7ba6df785e6b8f74266c56a7ca2006cbb9579b /tools/ark | |
| parent | 72e407bf6d7d09923d15461be82685017a0887be (diff) | |
| download | coinosv3-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')
| -rw-r--r-- | tools/ark/ln-e2e-test.js | 3 |
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); |
