Browse Source

qml: lightning invoice status can be one of onchain invoice states when using fallback address. (fixes #9018)

master
Sander van Grieken 2 years ago
parent
commit
3b0cdef871
No known key found for this signature in database
GPG Key ID: 9BCF8209EA402EBA
  1. 29
      electrum/gui/qml/qeinvoice.py

29
electrum/gui/qml/qeinvoice.py

@ -301,6 +301,18 @@ class QEInvoice(QObject, QtEventListener):
if amount.isEmpty and self.status == PR_UNPAID: # unspecified amount
return
def userinfo_for_invoice_status(status):
return {
PR_EXPIRED: _('This invoice has expired'),
PR_PAID: _('This invoice was already paid'),
PR_INFLIGHT: _('Payment in progress...'),
PR_ROUTING: _('Payment in progress...'),
PR_BROADCASTING: _('Payment in progress...') + ' (' + _('broadcasting') + ')',
PR_BROADCAST: _('Payment in progress...') + ' (' + _('broadcast successfully') + ')',
PR_UNCONFIRMED: _('Payment in progress...') + ' (' + _('waiting for confirmation') + ')',
PR_UNKNOWN: _('Invoice has unknown status'),
}[status]
if self.invoiceType == QEInvoice.Type.LightningInvoice:
if self.status in [PR_UNPAID, PR_FAILED]:
if self.get_max_spendable_lightning() >= amount.satsInt:
@ -312,26 +324,13 @@ class QEInvoice(QObject, QtEventListener):
# TODO: subtract fee?
self.userinfo = _('Insufficient balance')
else:
self.userinfo = {
PR_EXPIRED: _('This invoice has expired'),
PR_PAID: _('This invoice was already paid'),
PR_INFLIGHT: _('Payment in progress...'),
PR_ROUTING: _('Payment in progress'),
PR_UNKNOWN: _('Invoice has unknown 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 = {
PR_EXPIRED: _('This invoice has expired'),
PR_PAID: _('This invoice was already paid'),
PR_BROADCASTING: _('Payment in progress...') + ' (' + _('broadcasting') + ')',
PR_BROADCAST: _('Payment in progress...') + ' (' + _('broadcast successfully') + ')',
PR_UNCONFIRMED: _('Payment in progress...') + ' (' + _('waiting for confirmation') + ')',
PR_UNKNOWN: _('Invoice has unknown status'),
}[self.status]
self.userinfo = userinfo_for_invoice_status([self.status])
def determine_can_pay(self):
self.canPay = False

Loading…
Cancel
Save