1
0

qml: show warning in ConfirmTxDialog if max amount cannot be fully sent due to channel reserve requirements.

This commit is contained in:
Sander van Grieken
2025-03-24 14:35:06 +01:00
committed by ThomasV
parent 001a1152fd
commit 3fd64b60ab
2 changed files with 14 additions and 2 deletions

View File

@@ -14,7 +14,9 @@ TextHighlightPane {
property int idx: -1
property string _suffix: model.is_mine || model.is_change
? qsTr('mine')
? model.is_reserve
? qsTr('reserve')
: qsTr('mine')
: model.is_swap
? qsTr('swap')
: model.is_billing

View File

@@ -275,7 +275,8 @@ class TxFeeSlider(FeeSlider):
'is_mine': self._wallet.wallet.is_mine(o.get_ui_address_str()),
'is_change': self._wallet.wallet.is_change(o.get_ui_address_str()),
'is_billing': self._wallet.wallet.is_billing_address(o.get_ui_address_str()),
'is_swap': False if not sm else sm.is_lockup_address_for_a_swap(o.get_ui_address_str()) or o.get_ui_address_str() == DummyAddress.SWAP
'is_swap': False if not sm else sm.is_lockup_address_for_a_swap(o.get_ui_address_str()) or o.get_ui_address_str() == DummyAddress.SWAP,
'is_reserve': o.is_utxo_reserve
})
self.outputs = outputs
@@ -417,6 +418,15 @@ class QETxFinalizer(TxFeeSlider):
self.update_fee_warning_from_tx(tx=tx, invoice_amt=amount)
if self._amount.isMax and not self.warning:
if reserve_sats := sum(txo.value for txo in tx.outputs() if txo.is_utxo_reserve):
reserve_str = self._config.format_amount_and_units(reserve_sats)
self.warning = ' '.join([
_('Warning') + ':',
_('Could not spend max: a security reserve of {} was kept for your Lightning channels.')
.format(reserve_str)
])
self._valid = True
self.validChanged.emit()