Changeset View
Changeset View
Standalone View
Standalone View
src/policy/fees.cpp
Show First 20 Lines • Show All 332 Lines • ▼ Show 20 Lines | bool CBlockPolicyEstimator::removeTx(uint256 hash) { | ||||
} | } | ||||
feeStats.removeTx(pos->second.blockHeight, nBestSeenHeight, | feeStats.removeTx(pos->second.blockHeight, nBestSeenHeight, | ||||
pos->second.bucketIndex); | pos->second.bucketIndex); | ||||
mapMemPoolTxs.erase(hash); | mapMemPoolTxs.erase(hash); | ||||
return true; | return true; | ||||
} | } | ||||
CBlockPolicyEstimator::CBlockPolicyEstimator(const CFeeRate &_minRelayFee) | CBlockPolicyEstimator::CBlockPolicyEstimator() | ||||
: nBestSeenHeight(0), trackedTxs(0), untrackedTxs(0) { | : nBestSeenHeight(0), trackedTxs(0), untrackedTxs(0) { | ||||
static_assert(MIN_FEERATE > Amount(0), "Min feerate must be nonzero"); | static_assert(MIN_FEERATE > Amount(0), "Min feerate must be nonzero"); | ||||
CFeeRate minFeeRate(MIN_FEERATE); | CFeeRate minFeeRate(MIN_FEERATE); | ||||
minTrackedFee = _minRelayFee < minFeeRate ? minFeeRate : _minRelayFee; | |||||
std::vector<double> vfeelist; | std::vector<double> vfeelist; | ||||
for (double bucketBoundary = minTrackedFee.GetFeePerK().GetSatoshis(); | for (double bucketBoundary = minFeeRate.GetFeePerK().GetSatoshis(); | ||||
bucketBoundary <= double(MAX_FEERATE.GetSatoshis()); | bucketBoundary <= double(MAX_FEERATE.GetSatoshis()); | ||||
bucketBoundary *= FEE_SPACING) { | bucketBoundary *= FEE_SPACING) { | ||||
vfeelist.push_back(bucketBoundary); | vfeelist.push_back(bucketBoundary); | ||||
} | } | ||||
vfeelist.push_back(double(INF_FEERATE.GetSatoshis())); | vfeelist.push_back(double(INF_FEERATE.GetSatoshis())); | ||||
feeStats.Initialize(vfeelist, MAX_BLOCK_CONFIRMS, DEFAULT_DECAY); | feeStats.Initialize(vfeelist, MAX_BLOCK_CONFIRMS, DEFAULT_DECAY); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 223 Lines • Show Last 20 Lines |