From 21f96f40d18e0b052cb4ef24cda7847051ca16d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A8le=20Oul=C3=A8s?= Date: Thu, 29 Sep 2022 14:54:16 +0200 Subject: wallet: Use correct effective value when checking target --- src/wallet/spend.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/wallet/spend.cpp b/src/wallet/spend.cpp index d84310c323..ce41a4e954 100644 --- a/src/wallet/spend.cpp +++ b/src/wallet/spend.cpp @@ -590,7 +590,13 @@ std::optional SelectCoins(const CWallet& wallet, CoinsResult& a if (coin_control.HasSelected() && !coin_control.m_allow_other_inputs) { SelectionResult result(nTargetValue, SelectionAlgorithm::MANUAL); result.AddInput(preset_inputs); - if (result.GetSelectedValue() < nTargetValue) return std::nullopt; + + if (!coin_selection_params.m_subtract_fee_outputs && result.GetSelectedEffectiveValue() < nTargetValue) { + return std::nullopt; + } else if (result.GetSelectedValue() < nTargetValue) { + return std::nullopt; + } + result.ComputeAndSetWaste(coin_selection_params.min_viable_change, coin_selection_params.m_cost_of_change, coin_selection_params.m_change_fee); return result; } -- cgit v1.2.3