From e8f7ae5eb3c682d1a80b503f71e06ce76af1b65c Mon Sep 17 00:00:00 2001 From: Andrew Chow Date: Mon, 16 Nov 2020 16:39:22 -0500 Subject: [PATCH] Make an OutputGroup for preset inputs In SelectCoins, for our preset inputs, we combine all of the preset inputs into a single OutputGroup. This allows us to combine the preset inputs with additional selection algo results. --- src/wallet/spend.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/wallet/spend.cpp b/src/wallet/spend.cpp index ef8885e73..d975e5a95 100644 --- a/src/wallet/spend.cpp +++ b/src/wallet/spend.cpp @@ -443,6 +443,7 @@ bool SelectCoins(const CWallet& wallet, const std::vector& vAvailableCo // calculate value from preset inputs and store them std::set setPresetCoins; CAmount nValueFromPresetInputs = 0; + OutputGroup preset_inputs(coin_selection_params); std::vector vPresetInputs; coin_control.ListSelected(vPresetInputs); @@ -480,6 +481,10 @@ bool SelectCoins(const CWallet& wallet, const std::vector& vAvailableCo value_to_select -= coin.effective_value; } setPresetCoins.insert(coin); + /* Set depth, from_me, ancestors, and descendants to 0 or false as don't matter for preset inputs as no actual selection is being done. + * positive_only is set to false because we want to include all preset inputs, even if they are dust. + */ + preset_inputs.Insert(coin, 0, false, 0, 0, false); } // remove preset inputs from vCoins so that Coin Selection doesn't pick them.