aboutsummaryrefslogtreecommitdiff
path: root/src/wallet/test/fuzz
diff options
context:
space:
mode:
authorfurszy <matiasfurszyfer@protonmail.com>2022-07-31 17:22:04 -0300
committerfurszy <matiasfurszyfer@protonmail.com>2023-03-03 18:18:03 -0300
commit06ec8f992890cac69cd0fd20224aa51fa311a181 (patch)
treeb4d34d716b93574150ac7bfcff1051718f5b87cc /src/wallet/test/fuzz
parent3b88c8502534f0dc94e0abcb04ffa80ba8bd7f01 (diff)
downloadbitcoin-06ec8f992890cac69cd0fd20224aa51fa311a181.tar.xz
wallet: make OutputGroup "positive_only" filter explicit
And not hide it inside the `OutputGroup::Insert` method. This method does not return anything if insertion fails. We can know before calling `Insert` whether the coin will be accepted or not.
Diffstat (limited to 'src/wallet/test/fuzz')
-rw-r--r--src/wallet/test/fuzz/coinselection.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/wallet/test/fuzz/coinselection.cpp b/src/wallet/test/fuzz/coinselection.cpp
index 1a0708c43a..95060c748f 100644
--- a/src/wallet/test/fuzz/coinselection.cpp
+++ b/src/wallet/test/fuzz/coinselection.cpp
@@ -29,8 +29,10 @@ static void GroupCoins(FuzzedDataProvider& fuzzed_data_provider, const std::vect
auto output_group = OutputGroup(coin_params);
bool valid_outputgroup{false};
for (auto& coin : coins) {
- output_group.Insert(coin, /*ancestors=*/0, /*descendants=*/0, positive_only);
- // If positive_only was specified, nothing may have been inserted, leading to an empty output group
+ if (!positive_only || (positive_only && coin.GetEffectiveValue() > 0)) {
+ output_group.Insert(coin, /*ancestors=*/0, /*descendants=*/0);
+ }
+ // If positive_only was specified, nothing was inserted, leading to an empty output group
// that would be invalid for the BnB algorithm
valid_outputgroup = !positive_only || output_group.GetSelectionAmount() > 0;
if (valid_outputgroup && fuzzed_data_provider.ConsumeBool()) {