diff --git a/src/test/fuzz/coins_view.cpp b/src/test/fuzz/coins_view.cpp index d4bdb8a1d1b..011b660eeea 100644 --- a/src/test/fuzz/coins_view.cpp +++ b/src/test/fuzz/coins_view.cpp @@ -120,13 +120,9 @@ void TestCoinsView(FuzzedDataProvider& fuzzed_data_provider, CCoinsViewCache& co COutPoint outpoint{random_out_point}; Coin coin{random_coin}; if (fuzzed_data_provider.ConsumeBool()) { - const bool possible_overwrite{fuzzed_data_provider.ConsumeBool()}; - try { - coins_view_cache.AddCoin(outpoint, std::move(coin), possible_overwrite); - } catch (const std::logic_error& e) { - assert(e.what() == std::string{"Attempted to overwrite an unspent coin (when possible_overwrite is false)"}); - assert(!possible_overwrite); - } + // We can only skip the check if no unspent coin exists for this outpoint. + const bool possible_overwrite{coins_view_cache.PeekCoin(outpoint) || fuzzed_data_provider.ConsumeBool()}; + coins_view_cache.AddCoin(outpoint, std::move(coin), possible_overwrite); } else { coins_view_cache.EmplaceCoinInternalDANGER(std::move(outpoint), std::move(coin)); }