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)