From 5a6710a2c799baee57081e6ba79e1f029e48bac2 Mon Sep 17 00:00:00 2001 From: Abhay Date: Tue, 28 Oct 2025 19:43:48 +0530 Subject: [PATCH 1/3] Point to flash callback for .well-known callback --- lib/config.ts | 10 +++++++++- pages/api/lnurlp/[username].ts | 16 +++++++++++----- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/lib/config.ts b/lib/config.ts index 946c7648..07777914 100644 --- a/lib/config.ts +++ b/lib/config.ts @@ -34,4 +34,12 @@ const GRAPHQL_SUBSCRIPTION_URI = GRAPHQL_WEBSOCKET_URL const NOSTR_PUBKEY = process.env.NOSTR_PUBKEY as string -export { GRAPHQL_URI, GRAPHQL_SUBSCRIPTION_URI, GRAPHQL_URI_INTERNAL, NOSTR_PUBKEY } +const FLASH_WEBHOOK_HOSTNAME = process.env.FLASH_WEBHOOK_HOSTNAME as string + +export { + GRAPHQL_URI, + GRAPHQL_SUBSCRIPTION_URI, + GRAPHQL_URI_INTERNAL, + NOSTR_PUBKEY, + FLASH_WEBHOOK_HOSTNAME, +} diff --git a/pages/api/lnurlp/[username].ts b/pages/api/lnurlp/[username].ts index d389a8f6..f86453ab 100644 --- a/pages/api/lnurlp/[username].ts +++ b/pages/api/lnurlp/[username].ts @@ -11,7 +11,11 @@ import type { NextApiRequest, NextApiResponse } from "next" import { requestPayServiceParams } from "lnurl-pay" -import { GRAPHQL_URI_INTERNAL, NOSTR_PUBKEY } from "../../../lib/config" +import { + FLASH_WEBHOOK_HOSTNAME, + GRAPHQL_URI_INTERNAL, + NOSTR_PUBKEY, +} from "../../../lib/config" const ipForwardingMiddleware = new ApolloLink((operation, forward) => { operation.setContext(({ headers = {} }) => ({ @@ -24,7 +28,6 @@ const ipForwardingMiddleware = new ApolloLink((operation, forward) => { return forward(operation) }) - const client = new ApolloClient({ link: concat( ipForwardingMiddleware, @@ -114,10 +117,11 @@ export default async function (req: NextApiRequest, res: NextApiResponse) { console.log(`Failed to parse: ${lnurl}`) return res.status(500).end() } + const callbackUrl = `https://${FLASH_WEBHOOK_HOSTNAME}/pay/${accountUsername}` // Response must meet LUD-6 requirements: https://github.com/lnurl/luds/blob/luds/06.md - return res.json({ - callback: details.callback, + const result = { + callback: callbackUrl, maxSendable: details.max, minSendable: details.min, metadata: JSON.stringify(details.metadata), @@ -127,7 +131,9 @@ export default async function (req: NextApiRequest, res: NextApiResponse) { image: details.image, commentAllowed: details.commentAllowed, identifier: `${accountUsername}@${originalUrl(req).hostname}`, // not part of lud6 - }) + allowNostr: true, + } + return res.json(result) // const metadata = JSON.stringify([ // ["text/plain", `Payment to ${accountUsername}`], From 66aec6ea2c24aee53862414fbc127551be3ce6bd Mon Sep 17 00:00:00 2001 From: Abhay Date: Tue, 2 Dec 2025 17:40:49 +0530 Subject: [PATCH 2/3] Add nostr Pubkey --- pages/api/lnurlp/[username].ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/api/lnurlp/[username].ts b/pages/api/lnurlp/[username].ts index f86453ab..1d33868f 100644 --- a/pages/api/lnurlp/[username].ts +++ b/pages/api/lnurlp/[username].ts @@ -58,7 +58,6 @@ const getLnurl = async (accountUsername: string, req: NextApiRequest) => { "x-forwarded-for": req.headers["x-forwarded-for"], }, }) - console.log(data) return data?.accountDefaultWallet?.lnurlp } catch (err) { console.log("error getting lnurl for user:", err) @@ -97,7 +96,7 @@ const getLnurl = async (accountUsername: string, req: NextApiRequest) => { export default async function (req: NextApiRequest, res: NextApiResponse) { // console.log(NOSTR_PUBKEY) - const { username, nostr } = req.query + const { username } = req.query if (!username) { return res.status(400).end("username is required") @@ -132,6 +131,7 @@ export default async function (req: NextApiRequest, res: NextApiResponse) { commentAllowed: details.commentAllowed, identifier: `${accountUsername}@${originalUrl(req).hostname}`, // not part of lud6 allowNostr: true, + nostrPubkey: NOSTR_PUBKEY, } return res.json(result) From d565d19cf5c5a1aacd0d315b4a2a44e61a9f9797 Mon Sep 17 00:00:00 2001 From: Abhay Date: Tue, 2 Dec 2025 22:12:30 +0530 Subject: [PATCH 3/3] Use Correct url --- pages/api/lnurlp/[username].ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/api/lnurlp/[username].ts b/pages/api/lnurlp/[username].ts index 1d33868f..69b9ec47 100644 --- a/pages/api/lnurlp/[username].ts +++ b/pages/api/lnurlp/[username].ts @@ -116,7 +116,7 @@ export default async function (req: NextApiRequest, res: NextApiResponse) { console.log(`Failed to parse: ${lnurl}`) return res.status(500).end() } - const callbackUrl = `https://${FLASH_WEBHOOK_HOSTNAME}/pay/${accountUsername}` + const callbackUrl = `https://${FLASH_WEBHOOK_HOSTNAME}/pay/lnurl/${accountUsername}` // Response must meet LUD-6 requirements: https://github.com/lnurl/luds/blob/luds/06.md const result = {