From 96b1f8872c6004258d9b6638c73bdd6ab71351f2 Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Fri, 9 May 2025 08:28:33 -0700 Subject: [PATCH] Parse lightning prefix on invoices --- packages/content/src/index.ts | 9 +++++---- packages/signer/src/signers/nip46.ts | 16 ++++++++-------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/packages/content/src/index.ts b/packages/content/src/index.ts index 74fb1f4..502eb2b 100644 --- a/packages/content/src/index.ts +++ b/packages/content/src/index.ts @@ -226,10 +226,10 @@ export const parseEvent = (text: string, context: ParseContext): ParsedEvent | v } export const parseInvoice = (text: string, context: ParseContext): ParsedInvoice | void => { - const [value] = text.match(/^ln(bc|url)[0-9a-z]{10,}/i) || [] + const [raw, _, value] = text.match(/^(lightning:)?(ln(bc|url)[0-9a-z]{10,})/i) || [] - if (value) { - return {type: ParsedType.Invoice, value, raw: value} + if (raw && value) { + return {type: ParsedType.Invoice, value, raw} } } @@ -549,7 +549,8 @@ export const renderCode = (p: ParsedCode, r: Renderer) => r.addText(p.value) export const renderEllipsis = (p: ParsedEllipsis, r: Renderer) => r.addText("…") -export const renderInvoice = (p: ParsedInvoice, r: Renderer) => r.addText(p.value) +export const renderInvoice = (p: ParsedInvoice, r: Renderer) => + r.addLink("lightning:" + p.value, p.value.slice(0, 16) + "…") export const renderLink = (p: ParsedLink, r: Renderer) => r.addLink(p.value.url.toString(), p.value.url.host + p.value.url.pathname) diff --git a/packages/signer/src/signers/nip46.ts b/packages/signer/src/signers/nip46.ts index 040c5a1..2f04929 100644 --- a/packages/signer/src/signers/nip46.ts +++ b/packages/signer/src/signers/nip46.ts @@ -288,11 +288,11 @@ export class Nip46Broker extends Emitter { makeSender = () => { const sender = new Nip46Sender(this.signer, this.params) - if (nip46Context.debug) { - sender.on(Nip46Event.Send, (data: any) => { + sender.on(Nip46Event.Send, (data: any) => { + if (nip46Context.debug) { console.log("nip46 send:", data) - }) - } + } + }) return sender } @@ -300,11 +300,11 @@ export class Nip46Broker extends Emitter { makeReceiver = () => { const receiver = new Nip46Receiver(this.signer, this.params) - if (nip46Context.debug) { - receiver.on(Nip46Event.Receive, (data: any) => { + receiver.on(Nip46Event.Receive, (data: any) => { + if (nip46Context.debug) { console.log("nip46 receive:", data) - }) - } + } + }) return receiver }