diff --git a/src/wallet/test/fuzz/fees.cpp b/src/wallet/test/fuzz/fees.cpp index e98dbe02b7e..515c3b19078 100644 --- a/src/wallet/test/fuzz/fees.cpp +++ b/src/wallet/test/fuzz/fees.cpp @@ -16,6 +16,25 @@ namespace wallet { namespace { TestingSetup* g_setup; +class FuzzedBlockPolicyEstimator : public CBlockPolicyEstimator +{ + FuzzedDataProvider& fuzzed_data_provider; + +public: + FuzzedBlockPolicyEstimator(FuzzedDataProvider& provider) + : CBlockPolicyEstimator(fs::path{}, false), fuzzed_data_provider(provider) {} + + CFeeRate estimateSmartFee(int confTarget, FeeCalculation* feeCalc, bool conservative) const override + { + return CFeeRate{ConsumeMoney(fuzzed_data_provider, /*max=*/1'000'000)}; + } + + unsigned int HighestTargetTracked(FeeEstimateHorizon horizon) const override + { + return fuzzed_data_provider.ConsumeIntegralInRange(1, 1000); + } +}; + void initialize_setup() { static const auto testing_setup = MakeNoLogFileContext(); @@ -37,6 +56,8 @@ FUZZ_TARGET(wallet_fees, .init = initialize_setup) .dust_relay_feerate = CFeeRate{ConsumeMoney(fuzzed_data_provider, 1'000'000)} }; node.mempool = std::make_unique(mempool_opts, error); + std::unique_ptr fee_estimator = std::make_unique(fuzzed_data_provider); + node.fee_estimator = std::move(fee_estimator); std::unique_ptr wallet_ptr{std::make_unique(node.chain.get(), "", CreateMockableWalletDatabase())}; CWallet& wallet{*wallet_ptr}; {