MCPcopy Create free account
hub / github.com/ElementsProject/elements / GetMinFee

Method GetMinFee

src/txmempool.cpp:1207–1229  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1205}
1206
1207CFeeRate CTxMemPool::GetMinFee(size_t sizelimit) const {
1208 LOCK(cs);
1209 if (!blockSinceLastRollingFeeBump || rollingMinimumFeeRate == 0)
1210 return CFeeRate(llround(rollingMinimumFeeRate));
1211
1212 int64_t time = GetTime();
1213 if (time > lastRollingFeeUpdate + 10) {
1214 double halflife = ROLLING_FEE_HALFLIFE;
1215 if (DynamicMemoryUsage() < sizelimit / 4)
1216 halflife /= 4;
1217 else if (DynamicMemoryUsage() < sizelimit / 2)
1218 halflife /= 2;
1219
1220 rollingMinimumFeeRate = rollingMinimumFeeRate / pow(2.0, (time - lastRollingFeeUpdate) / halflife);
1221 lastRollingFeeUpdate = time;
1222
1223 if (rollingMinimumFeeRate < (double)incrementalRelayFee.GetFeePerK() / 2) {
1224 rollingMinimumFeeRate = 0;
1225 return CFeeRate(0);
1226 }
1227 }
1228 return std::max(CFeeRate(llround(rollingMinimumFeeRate)), incrementalRelayFee);
1229}
1230
1231void CTxMemPool::trackPackageRemoved(const CFeeRate& rate) {
1232 AssertLockHeld(cs);

Callers 6

MaybeSendFeefilterMethod · 0.80
BOOST_AUTO_TEST_CASEFunction · 0.80
estimatesmartfeeFunction · 0.80
MempoolInfoToJSONFunction · 0.80
mempoolMinFeeMethod · 0.80

Calls 3

GetTimeFunction · 0.85
GetFeePerKMethod · 0.80
CFeeRateClass · 0.50

Tested by 1

BOOST_AUTO_TEST_CASEFunction · 0.64