From c84664617d8b08e9a573f0c90b4ec3108b24693b Mon Sep 17 00:00:00 2001 From: SomberNight Date: Mon, 6 May 2024 18:11:31 +0000 Subject: [PATCH] qml: qeinvoice: fix regression in update_userinfo follow-up 3b0cdef871a67403bf454541b2fc6da6638667bc ``` 29.60 | E | lnworker.LNWallet.[test_segwit_2] | Exception in pay_invoice: TypeError("unhashable type: 'list'") Traceback (most recent call last): File "/home/user/wspace/electrum/electrum/util.py", line 1153, in wrapper return await func(*args, **kwargs) File "/home/user/wspace/electrum/electrum/lnworker.py", line 1518, in pay_invoice self.set_invoice_status(key, PR_INFLIGHT) File "/home/user/wspace/electrum/electrum/lnworker.py", line 2404, in set_invoice_status util.trigger_callback('invoice_status', self.wallet, key, status) File "/home/user/wspace/electrum/electrum/util.py", line 1796, in trigger_callback callback(*args) File "/home/user/wspace/electrum/electrum/gui/qml/qeinvoice.py", line 90, in on_event_invoice_status self.update_userinfo() File "/home/user/wspace/electrum/electrum/gui/qml/qeinvoice.py", line 327, in update_userinfo self.userinfo = userinfo_for_invoice_status([self.status]) File "/home/user/wspace/electrum/electrum/gui/qml/qeinvoice.py", line 305, in userinfo_for_invoice_status return { TypeError: unhashable type: 'list' ``` --- electrum/gui/qml/qeinvoice.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/electrum/gui/qml/qeinvoice.py b/electrum/gui/qml/qeinvoice.py index e21140429..f4d23f046 100644 --- a/electrum/gui/qml/qeinvoice.py +++ b/electrum/gui/qml/qeinvoice.py @@ -301,7 +301,7 @@ class QEInvoice(QObject, QtEventListener): if amount.isEmpty and self.status == PR_UNPAID: # unspecified amount return - def userinfo_for_invoice_status(status): + def userinfo_for_invoice_status(status: int) -> str: return { PR_EXPIRED: _('This invoice has expired'), PR_PAID: _('This invoice was already paid'), @@ -324,13 +324,13 @@ class QEInvoice(QObject, QtEventListener): # TODO: subtract fee? self.userinfo = _('Insufficient balance') else: - self.userinfo = userinfo_for_invoice_status([self.status]) + self.userinfo = userinfo_for_invoice_status(self.status) elif self.invoiceType == QEInvoice.Type.OnchainInvoice: if self.status in [PR_UNPAID, PR_FAILED]: if not ((amount.isMax and self.get_max_spendable_onchain() > 0) or (self.get_max_spendable_onchain() >= amount.satsInt)): self.userinfo = _('Insufficient balance') else: - self.userinfo = userinfo_for_invoice_status([self.status]) + self.userinfo = userinfo_for_invoice_status(self.status) def determine_can_pay(self): self.canPay = False