Skip to content

Commit fecec3e

Browse files
committed
[net processing] FeeFilterRounder doesn't own a FastRandomContext
1 parent 47520ed commit fecec3e

File tree

5 files changed

+10
-7
lines changed

5 files changed

+10
-7
lines changed

src/net_processing.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1813,7 +1813,7 @@ PeerManagerImpl::PeerManagerImpl(CConnman& connman, AddrMan& addrman,
18131813
BanMan* banman, ChainstateManager& chainman,
18141814
CTxMemPool& pool, Options opts)
18151815
: m_rng{opts.deterministic_rng},
1816-
m_fee_filter_rounder{CFeeRate{DEFAULT_MIN_RELAY_TX_FEE}},
1816+
m_fee_filter_rounder{CFeeRate{DEFAULT_MIN_RELAY_TX_FEE}, m_rng},
18171817
m_chainparams(chainman.GetParams()),
18181818
m_connman(connman),
18191819
m_addrman(addrman),

src/policy/fees.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1054,8 +1054,9 @@ static std::set<double> MakeFeeSet(const CFeeRate& min_incremental_fee,
10541054
return fee_set;
10551055
}
10561056

1057-
FeeFilterRounder::FeeFilterRounder(const CFeeRate& minIncrementalFee)
1058-
: m_fee_set{MakeFeeSet(minIncrementalFee, MAX_FILTER_FEERATE, FEE_FILTER_SPACING)}
1057+
FeeFilterRounder::FeeFilterRounder(const CFeeRate& minIncrementalFee, FastRandomContext& rng)
1058+
: m_fee_set{MakeFeeSet(minIncrementalFee, MAX_FILTER_FEERATE, FEE_FILTER_SPACING)},
1059+
insecure_rand{rng}
10591060
{
10601061
}
10611062

src/policy/fees.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -320,15 +320,15 @@ class FeeFilterRounder
320320

321321
public:
322322
/** Create new FeeFilterRounder */
323-
explicit FeeFilterRounder(const CFeeRate& min_incremental_fee);
323+
explicit FeeFilterRounder(const CFeeRate& min_incremental_fee, FastRandomContext& rng);
324324

325325
/** Quantize a minimum fee for privacy purpose before broadcast. */
326326
CAmount round(CAmount currentMinFee) EXCLUSIVE_LOCKS_REQUIRED(!m_insecure_rand_mutex);
327327

328328
private:
329329
const std::set<double> m_fee_set;
330330
Mutex m_insecure_rand_mutex;
331-
FastRandomContext insecure_rand GUARDED_BY(m_insecure_rand_mutex);
331+
FastRandomContext& insecure_rand GUARDED_BY(m_insecure_rand_mutex);
332332
};
333333

334334
#endif // BITCOIN_POLICY_FEES_H

src/test/fuzz/fees.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ FUZZ_TARGET(fees)
1717
{
1818
FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size());
1919
const CFeeRate minimal_incremental_fee{ConsumeMoney(fuzzed_data_provider)};
20-
FeeFilterRounder fee_filter_rounder{minimal_incremental_fee};
20+
FastRandomContext rng{/*fDeterministic=*/true};
21+
FeeFilterRounder fee_filter_rounder{minimal_incremental_fee, rng};
2122
LIMITED_WHILE(fuzzed_data_provider.ConsumeBool(), 10000) {
2223
const CAmount current_minimum_fee = ConsumeMoney(fuzzed_data_provider);
2324
const CAmount rounded_fee = fee_filter_rounder.round(current_minimum_fee);

src/test/policy_fee_tests.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ BOOST_AUTO_TEST_SUITE(policy_fee_tests)
1313

1414
BOOST_AUTO_TEST_CASE(FeeRounder)
1515
{
16-
FeeFilterRounder fee_rounder{CFeeRate{1000}};
16+
FastRandomContext rng{/*fDeterministic=*/true};
17+
FeeFilterRounder fee_rounder{CFeeRate{1000}, rng};
1718

1819
// check that 1000 rounds to 974 or 1071
1920
std::set<CAmount> results;

0 commit comments

Comments
 (0)