From 78789e0b2eaf91e2de6b4e488324fbec0fcefb9d Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Fri, 31 Jul 2026 00:49:21 -0700 Subject: Add Ark <-> Lightning via the ASP (captaind-native submarine swaps) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The ASP is the HTLC counterparty (second.tech's protocol), so no external swap provider is needed: paying a bolt11 converts pubkey vtxos into ServerHtlcSend vtxos the server can only claim by revealing the invoice preimage; receiving grants ServerHtlcRecv vtxos claimed by revealing ours. Failure paths cosign the HTLC back (revocation) — proven end-to-end against regtest captaind, which independently derives the HTLC taproots. - ark/lightning.js: bolt11 decode, lightning fee schedules, all pay/receive gRPC-web wrappers (cosign, initiate, status, revocation, hold-invoice receive flow, anti-DoS attestation) - ark/send.js: arkoor builder generalized to policy outputs (pubkey / serverHtlcSend / serverHtlcRecv), two-leaf taproot trees, HTLC clause scripts, reusable per-part cosign helpers for package RPCs - ark/manager.js: ln-pay and ln-recv crash-safe action state machines (deterministic receive preimages from the seed, chain 5), mailbox lightning notifications, unpayable-invoice -> instant revocation - proto.js: lightning ArkInfo fields + mailbox lightning message decode - validate/refresh: policy-aware vtxo validation and reconstruction - features: bolt11 routes via ark when the balance covers it (Boltz stays the fallback), lightning-invoice receive on the Ark pane - tools/ark/ln-test.js: harness proving HTLC cosign + revocation against captaind; manager-test.js updated for the consolidated bc-container chain Co-Authored-By: Claude Fable 5 --- src/i18n.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/i18n.js') diff --git a/src/i18n.js b/src/i18n.js index 04e7e06..82a397b 100644 --- a/src/i18n.js +++ b/src/i18n.js @@ -427,6 +427,18 @@ const STR = { arkOpsSend: '{n} send(s) finishing up', arkOpsRefresh: '{n} refresh(es) waiting for the next round', arkOpsOffboard: '{n} withdrawal(s) confirming', + arkOpsLnPay: '{n} Lightning payment(s) in flight', + arkOpsLnRecv: '{n} Lightning invoice(s) outstanding', + arkLnPayVia: 'Instant, from your Ark balance', + arkLnFee: 'Ark fee', + arkLnPaying: 'Paying invoice…', + arkLnPayFailed: 'Payment failed', + arkLnRefunded: 'Payment failed — funds returned to your Ark balance.', + arkLnPaidTitle: 'Paid!', + arkLnInvoiceIntro: 'Or receive over Lightning, straight into your Ark balance.', + arkLnPaidHistory: 'Paid Lightning invoice', + arkLnReceivedHistory: 'Received over Lightning', + arkLnCancelInvoice: 'Cancel invoice', arkExited: 'Exited on-chain', arkExitHistory: 'Ark exit', arkRefreshStarted: 'Refresh submitted — completes with the next round.', -- cgit v1.2.3