1
0

add lnurl-pay and lightning address support

* bundles all payment identifiers into handle_payment_identifier
* adds lnurl decoding
* adds lightning address decoding
This commit is contained in:
bitromortac
2021-11-23 14:42:43 +01:00
committed by SomberNight
parent 2511d8118c
commit fe2fbbd9b1
9 changed files with 221 additions and 39 deletions

View File

@@ -18,7 +18,7 @@ from electrum.plugin import run_hook
from electrum import util
from electrum.util import (profiler, InvalidPassword, send_exception_to_crash_reporter,
format_satoshis, format_satoshis_plain, format_fee_satoshis,
maybe_extract_bolt11_invoice, parse_max_spend)
maybe_extract_lightning_payment_identifier, parse_max_spend)
from electrum.util import EventListener, event_listener
from electrum.invoices import PR_PAID, PR_FAILED, Invoice
from electrum import blockchain
@@ -491,7 +491,7 @@ class ElectrumWindow(App, Logger, EventListener):
if data.lower().startswith('channel_backup:'):
self.import_channel_backup(data)
return
bolt11_invoice = maybe_extract_bolt11_invoice(data)
bolt11_invoice = maybe_extract_lightning_payment_identifier(data)
if bolt11_invoice is not None:
self.set_ln_invoice(bolt11_invoice)
return

View File

@@ -16,7 +16,7 @@ from electrum.invoices import (PR_DEFAULT_EXPIRATION_WHEN_CREATING,
pr_expiration_values, Invoice)
from electrum import bitcoin, constants
from electrum.transaction import tx_from_any, PartialTxOutput
from electrum.util import (parse_URI, InvalidBitcoinURI, TxMinedInfo, maybe_extract_bolt11_invoice,
from electrum.util import (parse_URI, InvalidBitcoinURI, TxMinedInfo, maybe_extract_lightning_payment_identifier,
InvoiceError, format_time, parse_max_spend)
from electrum.lnaddr import lndecode, LnInvoiceException
from electrum.logging import Logger
@@ -172,7 +172,7 @@ class SendScreen(CScreen, Logger):
if not self.app.wallet:
return
# interpret as lighting URI
bolt11_invoice = maybe_extract_bolt11_invoice(text)
bolt11_invoice = maybe_extract_lightning_payment_identifier(text)
if bolt11_invoice:
self.set_ln_invoice(bolt11_invoice)
# interpret as BIP21 URI
@@ -287,7 +287,7 @@ class SendScreen(CScreen, Logger):
self.app.tx_dialog(tx)
return
# try to decode as URI/address
bolt11_invoice = maybe_extract_bolt11_invoice(data)
bolt11_invoice = maybe_extract_lightning_payment_identifier(data)
if bolt11_invoice is not None:
self.set_ln_invoice(bolt11_invoice)
else: