From dd1d98e37c61a32e217b9379a85e069db484b68c Mon Sep 17 00:00:00 2001 From: f321x Date: Mon, 22 Dec 2025 10:04:24 +0100 Subject: [PATCH] pi: allow emaillike pi with 'lightning:' prefix Lightning addresses with 'lightning:' do occur in the wild and make sense (how else would e.g. the smartphone know to open a lightning wallet instead of the e-mail client). So we should allow this. --- electrum/payment_identifier.py | 4 ++-- tests/test_payment_identifier.py | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/electrum/payment_identifier.py b/electrum/payment_identifier.py index 72f8e53a3..130907a9b 100644 --- a/electrum/payment_identifier.py +++ b/electrum/payment_identifier.py @@ -293,9 +293,9 @@ class PaymentIdentifier(Logger): self._type = PaymentIdentifierType.EMAILLIKE self.emaillike = contact['address'] self.set_state(PaymentIdentifierState.NEED_RESOLVE) - elif re.match(RE_EMAIL, text): + elif re.match(RE_EMAIL, (maybe_emaillike := remove_uri_prefix(text, prefix=LIGHTNING_URI_SCHEME))): self._type = PaymentIdentifierType.EMAILLIKE - self.emaillike = text + self.emaillike = maybe_emaillike self.set_state(PaymentIdentifierState.NEED_RESOLVE) elif re.match(RE_DOMAIN, text): self._type = PaymentIdentifierType.DOMAINLIKE diff --git a/tests/test_payment_identifier.py b/tests/test_payment_identifier.py index e44f9067f..0f3a3bff4 100644 --- a/tests/test_payment_identifier.py +++ b/tests/test_payment_identifier.py @@ -378,6 +378,11 @@ class TestPaymentIdentifier(ElectrumTestCase): 'lnbcuser@some.domain', 'lnurluser@some.domain', 'bc1quser@some.domain', + 'lightning:user@some.domain', + 'lightning:user@some.weird.but.valid.domain', + 'lightning:lnbcuser@some.domain', + 'lightning:lnurluser@some.domain', + 'lightning:bc1quser@some.domain', ) for pi_str in email_pi_strings: pi = PaymentIdentifier(None, pi_str)