From 862b031776aaf5c9848a0cef46c866496f2a0608 Mon Sep 17 00:00:00 2001 From: Daniel Padrino Date: Thu, 7 Aug 2025 05:50:55 -0300 Subject: [PATCH] [NO-TASK]: LNURLw statis --- .../blockchain/lightning/lightning-client.ts | 14 +++++++----- .../blockchain/lightning/lightning-helper.ts | 4 ++-- .../lightning-lnurlw-forward.controller.ts | 22 +++++++++---------- .../services/lightning-forward.service.ts | 11 +++++++--- 4 files changed, 29 insertions(+), 22 deletions(-) diff --git a/src/integration/blockchain/lightning/lightning-client.ts b/src/integration/blockchain/lightning/lightning-client.ts index 730e0fb5..49b64010 100644 --- a/src/integration/blockchain/lightning/lightning-client.ts +++ b/src/integration/blockchain/lightning/lightning-client.ts @@ -558,21 +558,23 @@ export class LightningClient { } // --- LNURLw REWRITE --- // - async getLnurlwWithdrawRequest(linkId: string, uniqueHash: string): Promise { - const lnBitsUrl = `${Config.blockchain.lightning.lnbits.lnurlwApiUrl}/lnurl/${linkId}/${uniqueHash}`; + async getLnurlwWithdrawRequest(linkId: string, uniqueHash?: string): Promise { + const lnBitsUrl = `${Config.blockchain.lightning.lnbits.lnurlwApiUrl}/lnurl/${linkId}${ + uniqueHash ? `/${uniqueHash}` : '' + }`; return this.http.get(lnBitsUrl, this.httpLnBitsConfig(Config.blockchain.lightning.lnbits.adminKey)); } async sendLnurlwInvoice( - linkId: string, - uniqueHash: string, + id: string, k1: string, pr: string, + uniqueHash?: string, ): Promise { - const lnBitsCallbackUrl = new URL(`${Config.blockchain.lightning.lnbits.lnurlwApiUrl}/lnurl/cb/${linkId}`); - lnBitsCallbackUrl.searchParams.set('id_unique_hash', uniqueHash); + const lnBitsCallbackUrl = new URL(`${Config.blockchain.lightning.lnbits.lnurlwApiUrl}/lnurl/cb/${id}`); lnBitsCallbackUrl.searchParams.set('k1', k1); lnBitsCallbackUrl.searchParams.set('pr', pr); + if (uniqueHash) lnBitsCallbackUrl.searchParams.set('id_unique_hash', uniqueHash); return this.http.get( lnBitsCallbackUrl.toString(), diff --git a/src/integration/blockchain/lightning/lightning-helper.ts b/src/integration/blockchain/lightning/lightning-helper.ts index b99b66c1..e623f68b 100644 --- a/src/integration/blockchain/lightning/lightning-helper.ts +++ b/src/integration/blockchain/lightning/lightning-helper.ts @@ -39,8 +39,8 @@ export class LightningHelper { } // --- LNURLw --- // - static createLnurlwCallbackUrl(id: string, uniqueHash: string): string { - return `${Config.url}/lnurlw/cb/${id}/${uniqueHash}`; + static createLnurlwCallbackUrl(id: string, uniqueHash?: string): string { + return `${Config.url}/lnurlw/cb/${id}${uniqueHash ? `/${uniqueHash}` : ''}`; } // --- LNURL --- // diff --git a/src/subdomains/lightning/controllers/lightning-lnurlw-forward.controller.ts b/src/subdomains/lightning/controllers/lightning-lnurlw-forward.controller.ts index 4f15334a..785c1da3 100644 --- a/src/subdomains/lightning/controllers/lightning-lnurlw-forward.controller.ts +++ b/src/subdomains/lightning/controllers/lightning-lnurlw-forward.controller.ts @@ -6,21 +6,21 @@ import { LightningForwardService } from '../services/lightning-forward.service'; export class LightingLnurlwForwardController { constructor(private forwardService: LightningForwardService) {} - @Get(':id/:unique_hash') - async lnurlwForward( - @Param('id') id: string, - @Param('unique_hash') uniqueHash: string, - ): Promise { - return this.forwardService.lnurlwForward(id, uniqueHash); - } - - @Get('cb/:id/:unique_hash') + @Get('cb/:id/:unique_hash?') async lnUrlWCallbackForward( @Param('id') id: string, - @Param('unique_hash') uniqueHash: string, @Query('k1') k1: string, @Query('pr') pr: string, + @Param('unique_hash') uniqueHash?: string, ): Promise { - return this.forwardService.lnurlwCallbackForward(id, uniqueHash, k1, pr); + return this.forwardService.lnurlwCallbackForward(id, k1, pr, uniqueHash); + } + + @Get(':id/:unique_hash?') + async lnurlwForward( + @Param('id') id: string, + @Param('unique_hash') uniqueHash?: string, + ): Promise { + return this.forwardService.lnurlwForward(id, uniqueHash); } } diff --git a/src/subdomains/lightning/services/lightning-forward.service.ts b/src/subdomains/lightning/services/lightning-forward.service.ts index a4b3c424..baf390e9 100644 --- a/src/subdomains/lightning/services/lightning-forward.service.ts +++ b/src/subdomains/lightning/services/lightning-forward.service.ts @@ -209,7 +209,7 @@ export class LightningForwardService { } // --- LNURLw --- // - async lnurlwForward(id: string, uniqueHash: string): Promise { + async lnurlwForward(id: string, uniqueHash?: string): Promise { const withdrawRequest = await this.client.getLnurlwWithdrawRequest(id, uniqueHash); withdrawRequest.callback = LightningHelper.createLnurlwCallbackUrl(id, uniqueHash); @@ -217,8 +217,13 @@ export class LightningForwardService { return withdrawRequest; } - async lnurlwCallbackForward(id: string, uniqueHash: string, k1: string, pr: string): Promise { - return this.client.sendLnurlwInvoice(id, uniqueHash, k1, pr); + async lnurlwCallbackForward( + id: string, + k1: string, + pr: string, + uniqueHash?: string, + ): Promise { + return this.client.sendLnurlwInvoice(id, k1, pr, uniqueHash); } // --- UTILITIES --- //