From 61148ad9ef6ba72c97caee69d490f2bb27470ced Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Tue, 1 Oct 2024 18:49:58 +0000 Subject: fake zap receipt for internal --- lib/nostr.ts | 9 +++++++-- lib/nwc.ts | 19 +++++++++++++------ lib/payments.ts | 3 ++- 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/lib/nostr.ts b/lib/nostr.ts index d6c9c643..90c33694 100644 --- a/lib/nostr.ts +++ b/lib/nostr.ts @@ -6,6 +6,7 @@ import { fail, wait } from "$lib/utils"; import { nip19, finalizeEvent } from "nostr-tools"; import { emit } from "$lib/sockets"; import { hex } from "@scure/base"; +import { Relay as ntr } from 'nostr-tools/relay' export const serverPubkey = hex.encode( getPublicKey(nip19.decode(config.nostrKey).data), @@ -264,9 +265,13 @@ export async function handleZap(invoice) { tags.push(["preimage", invoice.payment_preimage]); let ev = { pubkey, kind, created_at, content, tags }; - ev = await finalizeEvent(ev, sk); + let signed = await finalizeEvent(ev, sk); l("sending receipt"); - await Promise.allSettled(relays.map((r) => send(ev, r))); + await Promise.allSettled(relays.map(async (url) => { + let r = await ntr.connect(url); + await r.publish(signed); + r.close() + })); } diff --git a/lib/nwc.ts b/lib/nwc.ts index e889dfdf..2b2649a6 100644 --- a/lib/nwc.ts +++ b/lib/nwc.ts @@ -71,12 +71,6 @@ let handle = (method, params, user) => let invoice = await getInvoice(pr); let recipient = await g(`user:${invoice.uid}`); - if (invoice.memo.includes("9734")) { - try { - await handleZap(invoice); - } catch (e) {} - } - let { id: preimage } = await sendInternal({ amount, invoice, @@ -84,6 +78,19 @@ let handle = (method, params, user) => sender: user, }); + if (invoice.memo.includes("9734")) { + let { invoices } = await ln.listinvoices({ invstring: pr }); + let inv = invoices[0]; + inv.payment_preimage = preimage; + inv.paid_at = Math.floor(Date.now() / 1000); + try { + await handleZap(inv); + } catch (e) { + console.log("zap receipt failed", e); + } + } + + return result({ preimage }); } else { await sendLightning({ diff --git a/lib/payments.ts b/lib/payments.ts index 3a02bfda..60989924 100644 --- a/lib/payments.ts +++ b/lib/payments.ts @@ -502,7 +502,8 @@ export let sendLightning = async ({ } let total = amount; - let { amount_msat } = await ln.decode(pr); + let decoded = await ln.decode(pr); + let { amount_msat } = decoded; if (amount_msat) total = Math.round(amount_msat / 1000); maxfee = parseInt(maxfee) || getMaxFee(total); -- cgit v1.2.3