wallet: Use correct effective value when checking target

This commit is contained in:
Aurèle Oulès 2022-09-29 14:54:16 +02:00
parent 291e363ce5
commit 76b79c1a17
No known key found for this signature in database
GPG Key ID: 55F3976F7001D998

View File

@ -582,7 +582,13 @@ std::optional<SelectionResult> 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;
}