From e0f6c18073d65547f6c130d935cc66dfd0ead8d2 Mon Sep 17 00:00:00 2001 From: accumulator Date: Fri, 18 Nov 2022 17:24:32 +0100 Subject: [PATCH] Favor first output address in invoice/request instead of fallback address in LN invoice. (#8078) Without this change, when configuring electrum with bolt11_fallback disabled, and calling invoice.get_address() on a lightning enabled invoice, it will return None, thereby disabling retrieving BIP21 uri or address from the invoice/request. --- electrum/invoices.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/electrum/invoices.py b/electrum/invoices.py index 28f9d11ae..44d28c463 100644 --- a/electrum/invoices.py +++ b/electrum/invoices.py @@ -119,10 +119,13 @@ class Invoice(StoredObject): def get_address(self) -> Optional[str]: """returns the first address, to be displayed in GUI""" - if self.is_lightning(): - return self._lnaddr.get_fallback_address() or None - else: - return self.outputs[0].address + address = None + if self.outputs: + address = self.outputs[0].address if len(self.outputs) > 0 else None + if not address: + if self.is_lightning(): + address = self._lnaddr.get_fallback_address() or None + return address def get_outputs(self): if self.is_lightning():