From acded552ed372edac51a59746315e6c0f2ddb060 Mon Sep 17 00:00:00 2001 From: minibits-cash Date: Mon, 29 Sep 2025 12:37:33 +0200 Subject: [PATCH] [#167] Support for decoding of LNURL links passed inside bitcoin URIs --- package.json | 2 +- src/services/lnurl/lnurlUtils.ts | 20 +++++++++++--------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 56a0d987..93ce693e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "minibits_wallet", - "version": "0.3.0-beta.9", + "version": "0.3.0-beta.10", "private": true, "scripts": { "android:clean": "cd android && ./gradlew clean", diff --git a/src/services/lnurl/lnurlUtils.ts b/src/services/lnurl/lnurlUtils.ts index e19c4518..de571d66 100644 --- a/src/services/lnurl/lnurlUtils.ts +++ b/src/services/lnurl/lnurlUtils.ts @@ -43,15 +43,17 @@ const extractEncodedLnurl = function (maybeLnurl: string) { return maybeLnurl } - if (maybeLnurl && maybeLnurl.toLowerCase().startsWith('http')) { // e.g. lnbits withdraw extension links - const parsed = new URL(maybeLnurl.toLowerCase()) - encodedLnurl = parsed.searchParams.get('lightning') - - if(encodedLnurl) { - const decoded = decodelnurl(encodedLnurl) // throws - log.trace('[extractEncodedLnurl] Extracted lnurl from URL', encodedLnurl) - return encodedLnurl - } + if (maybeLnurl && + ( + maybeLnurl.toLowerCase().startsWith('bitcoin:') || + maybeLnurl.toLowerCase().startsWith('http') + ) + ) { + const url = new URL(maybeLnurl.toLowerCase()) + // Use URLSearchParams to get the value of the "lightning" parameter + encodedLnurl = url.searchParams.get("lightning") as string + const decoded = decodelnurl(encodedLnurl) // throws + return encodedLnurl } for (const prefix of LNURL_URI_PREFIXES) {