commit 9ddb6755504830402447599b9010a54e4b3fc287
parent ac223073ba7998901bd9a10d32594ebf0583021f
Author: ThomasV <thomasv@electrum.org>
Date: Wed, 9 Dec 2020 10:04:17 +0100
kivy: handle lightning invoices on wallets that do not have lightning. fix #6371
Diffstat:
2 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/electrum/gui/kivy/uix/dialogs/invoice_dialog.py b/electrum/gui/kivy/uix/dialogs/invoice_dialog.py
@@ -98,7 +98,7 @@ class InvoiceDialog(Factory.Popup):
self.description = invoice.message
self.is_lightning = invoice.is_lightning()
self.update_status()
- self.log = self.app.wallet.lnworker.logs[self.key] if self.is_lightning else []
+ self.log = self.app.wallet.lnworker.logs[self.key] if self.is_lightning and self.app.wallet.lnworker else []
def update_status(self):
invoice = self.app.wallet.get_invoice(self.key)
diff --git a/electrum/gui/kivy/uix/screens.py b/electrum/gui/kivy/uix/screens.py
@@ -233,9 +233,10 @@ class SendScreen(CScreen, Logger):
assert isinstance(item, LNInvoice)
key = item.rhash
address = key
- log = self.app.wallet.lnworker.logs.get(key)
- if status == PR_INFLIGHT and log:
- status_str += '... (%d)'%len(log)
+ if self.app.wallet.lnworker:
+ log = self.app.wallet.lnworker.logs.get(key)
+ if status == PR_INFLIGHT and log:
+ status_str += '... (%d)'%len(log)
is_bip70 = False
else:
assert isinstance(item, OnchainInvoice)
@@ -345,8 +346,10 @@ class SendScreen(CScreen, Logger):
def do_pay_invoice(self, invoice):
if invoice.is_lightning():
- self.app.protected(_('Pay lightning invoice?'), self._do_pay_lightning, (invoice,))
- return
+ if self.app.wallet.lnworker:
+ self.app.protected(_('Pay lightning invoice?'), self._do_pay_lightning, (invoice,))
+ else:
+ self.app.show_error(_("Lightning payments are not available for this wallet"))
else:
do_pay = lambda rbf: self._do_pay_onchain(invoice, rbf)
if self.app.electrum_config.get('use_rbf'):