Skip to content

Commit 4a3928e

Browse files
fix: handle %40-encoded lightning addresses in URLs
1 parent cae2664 commit 4a3928e

1 file changed

Lines changed: 11 additions & 0 deletions

File tree

lib/core/utils/payment_request.dart

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,17 @@ sealed class PaymentRequest with _$PaymentRequest {
8686
if (result != null) return result;
8787
}
8888

89+
final lnAddressRe = RegExp(
90+
r'[a-zA-Z0-9._%+\-]+(?:@|%40)[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}',
91+
);
92+
final lnAddressMatch = lnAddressRe.firstMatch(trimmed);
93+
94+
if (lnAddressMatch != null) {
95+
final decoded = Uri.decodeComponent(lnAddressMatch.group(0)!);
96+
final result = await _tryParseLnAddress(decoded);
97+
if (result != null) return result;
98+
}
99+
89100
if (trimmed.toLowerCase().startsWith('lnbc') ||
90101
trimmed.toLowerCase().startsWith('lntb') ||
91102
trimmed.toLowerCase().startsWith('lightning:')) {

0 commit comments

Comments
 (0)