Browse Source

make parsing lightning qr codes more robust

dependabot/pip/contrib/deterministic-build/ecdsa-0.13.3
ThomasV 6 years ago
parent
commit
3076eb75ea
  1. 9
      electrum/gui/kivy/uix/screens.py
  2. 12
      electrum/gui/qt/paytoedit.py

9
electrum/gui/kivy/uix/screens.py

@ -253,7 +253,7 @@ class SendScreen(CScreen):
self.payment_request = None self.payment_request = None
def do_paste(self): def do_paste(self):
data = self.app._clipboard.paste() data = self.app._clipboard.paste().strip()
if not data: if not data:
self.app.show_info(_("Clipboard is empty")) self.app.show_info(_("Clipboard is empty"))
return return
@ -267,9 +267,12 @@ class SendScreen(CScreen):
if tx: if tx:
self.app.tx_dialog(tx) self.app.tx_dialog(tx)
return return
lower = data.lower()
if lower.startswith('lightning:ln'):
lower = lower[10:]
# try to decode as URI/address # try to decode as URI/address
if data.startswith('ln'): if lower.startswith('ln'):
self.set_ln_invoice(data.rstrip()) self.set_ln_invoice(lower)
else: else:
self.set_URI(data) self.set_URI(data)
# save automatically # save automatically

12
electrum/gui/qt/paytoedit.py

@ -131,12 +131,12 @@ class PayToEdit(CompletionTextEdit, ScanQRTextEdit, Logger):
if data.startswith("bitcoin:"): if data.startswith("bitcoin:"):
self.win.pay_to_URI(data) self.win.pay_to_URI(data)
return return
l = data.lower() lower = data.lower()
if l.startswith("lightning:"): if lower.startswith("lightning:ln"):
data = l[10:] lower = lower[10:]
if data.startswith("ln"): if lower.startswith("ln"):
self.win.parse_lightning_invoice(data) self.win.parse_lightning_invoice(lower)
self.lightning_invoice = data self.lightning_invoice = lower
return return
try: try:
self.payto_address = self.parse_output(data) self.payto_address = self.parse_output(data)

Loading…
Cancel
Save