1
0

qt/send_tab: fix regressions paymentidentifier

Fix '!' amount expand while PaymentIdentifier not set due to editor pushback timer.
Fix '!' amount expand for BIP21 without a specified payment amount.
This commit is contained in:
Sander van Grieken
2023-09-04 15:55:23 +02:00
parent a52c715304
commit 0d96bc1dbd

View File

@@ -224,9 +224,13 @@ class SendTab(QWidget, MessageBoxMixin, Logger):
self.show_error(_('Invalid payment identifier'))
def spend_max(self):
assert self.payto_e.payment_identifier is not None
if self.payto_e.payment_identifier is None:
return
assert self.payto_e.payment_identifier.type in [PaymentIdentifierType.SPK, PaymentIdentifierType.MULTILINE,
PaymentIdentifierType.OPENALIAS]
PaymentIdentifierType.BIP21, PaymentIdentifierType.OPENALIAS]
assert not self.payto_e.payment_identifier.is_amount_locked()
if run_hook('abort_send', self):
return
outputs = self.payto_e.payment_identifier.get_onchain_outputs('!')
@@ -437,6 +441,10 @@ class SendTab(QWidget, MessageBoxMixin, Logger):
else:
self.amount_e.setToolTip('')
# resolve '!' in amount editor if it was set before PI
if not lock_max and self.amount_e.text() == '!':
self.spend_max()
pi_unusable = pi.is_error() or (not self.wallet.has_lightning() and not pi.is_onchain())
self.send_button.setEnabled(not pi_unusable and bool(self.amount_e.get_amount()) and not pi.has_expired())