From add3ad93ff37f1daaedab5788f00663be299555c Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Thu, 30 Jul 2026 08:51:36 -0700 Subject: bolt12 zaps: pay offers, NWC pay/receive, per-user offers, NIP-44 - sendLightning fetches an invoice from lno1 offers (payer_note passthrough for NIP-177 zap intents) and pays it through the existing bolt12 path - NWC: new nwc#2 pay/receive methods (BIP-321 URIs, payer proofs stubbed until CLN 26.06 createproof), nip44_v2 alongside nip04 with per-request scheme detection, dual 23196/23197 notifications, 13194 refreshed when its content or encryption tag goes stale - standing per-user bolt12 offer via GET /offer; incoming bolt12 payments record invreq_payer_note as memo - parse/fetchinvoice routes handle offers; zap display parses kind 9736 receipts (amount tag + embedded intent) and drops a call to a sync() helper that never existed Co-Authored-By: Claude Fable 5 --- lib/lightning.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'lib/lightning.ts') diff --git a/lib/lightning.ts b/lib/lightning.ts index 1c768981..8935f2ce 100644 --- a/lib/lightning.ts +++ b/lib/lightning.ts @@ -46,6 +46,7 @@ export async function listenForLightning() { bolt11, bolt12, description, + invreq_payer_note, pay_index, payment_hash, amount_received_msat, @@ -97,7 +98,9 @@ export async function listenForLightning() { await credit({ hash: bolt11 || bolt12, amount: received, - memo: invoice.memo, + // A bolt12 payer note (e.g. nostr:nip177:) identifies + // this specific payment; the offer's own memo is just its static label + memo: invreq_payer_note || invoice.memo, ref: preimage, type: bolt12 ? PaymentType.bolt12 : PaymentType.lightning, payment_hash, @@ -206,6 +209,7 @@ export async function replay(index) { bolt11, bolt12, description, + invreq_payer_note, amount_received_msat, payment_preimage: preimage, paid_at, @@ -237,7 +241,7 @@ export async function replay(index) { p = await credit({ hash: bolt11 || bolt12, amount: received, - memo: invoice.memo, + memo: invreq_payer_note || invoice.memo, ref: preimage, type: bolt12 ? PaymentType.bolt12 : PaymentType.lightning, created: paid_at ? paid_at * 1000 : undefined, -- cgit v1.2.3