|
|
|
@ -548,16 +548,13 @@ CBlockPolicyEstimator::CBlockPolicyEstimator()
@@ -548,16 +548,13 @@ CBlockPolicyEstimator::CBlockPolicyEstimator()
|
|
|
|
|
bucketMap[INF_FEERATE] = bucketIndex; |
|
|
|
|
assert(bucketMap.size() == buckets.size()); |
|
|
|
|
|
|
|
|
|
feeStats = new TxConfirmStats(buckets, bucketMap, MED_BLOCK_PERIODS, MED_DECAY, MED_SCALE); |
|
|
|
|
shortStats = new TxConfirmStats(buckets, bucketMap, SHORT_BLOCK_PERIODS, SHORT_DECAY, SHORT_SCALE); |
|
|
|
|
longStats = new TxConfirmStats(buckets, bucketMap, LONG_BLOCK_PERIODS, LONG_DECAY, LONG_SCALE); |
|
|
|
|
feeStats = std::unique_ptr<TxConfirmStats>(new TxConfirmStats(buckets, bucketMap, MED_BLOCK_PERIODS, MED_DECAY, MED_SCALE)); |
|
|
|
|
shortStats = std::unique_ptr<TxConfirmStats>(new TxConfirmStats(buckets, bucketMap, SHORT_BLOCK_PERIODS, SHORT_DECAY, SHORT_SCALE)); |
|
|
|
|
longStats = std::unique_ptr<TxConfirmStats>(new TxConfirmStats(buckets, bucketMap, LONG_BLOCK_PERIODS, LONG_DECAY, LONG_SCALE)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
CBlockPolicyEstimator::~CBlockPolicyEstimator() |
|
|
|
|
{ |
|
|
|
|
delete feeStats; |
|
|
|
|
delete shortStats; |
|
|
|
|
delete longStats; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void CBlockPolicyEstimator::processTransaction(const CTxMemPoolEntry& entry, bool validFeeEstimate) |
|
|
|
@ -690,16 +687,16 @@ CFeeRate CBlockPolicyEstimator::estimateRawFee(int confTarget, double successThr
@@ -690,16 +687,16 @@ CFeeRate CBlockPolicyEstimator::estimateRawFee(int confTarget, double successThr
|
|
|
|
|
double sufficientTxs = SUFFICIENT_FEETXS; |
|
|
|
|
switch (horizon) { |
|
|
|
|
case FeeEstimateHorizon::SHORT_HALFLIFE: { |
|
|
|
|
stats = shortStats; |
|
|
|
|
stats = shortStats.get(); |
|
|
|
|
sufficientTxs = SUFFICIENT_TXS_SHORT; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
case FeeEstimateHorizon::MED_HALFLIFE: { |
|
|
|
|
stats = feeStats; |
|
|
|
|
stats = feeStats.get(); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
case FeeEstimateHorizon::LONG_HALFLIFE: { |
|
|
|
|
stats = longStats; |
|
|
|
|
stats = longStats.get(); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
default: { |
|
|
|
@ -1002,12 +999,9 @@ bool CBlockPolicyEstimator::Read(CAutoFile& filein)
@@ -1002,12 +999,9 @@ bool CBlockPolicyEstimator::Read(CAutoFile& filein)
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Destroy old TxConfirmStats and point to new ones that already reference buckets and bucketMap
|
|
|
|
|
delete feeStats; |
|
|
|
|
delete shortStats; |
|
|
|
|
delete longStats; |
|
|
|
|
feeStats = fileFeeStats.release(); |
|
|
|
|
shortStats = fileShortStats.release(); |
|
|
|
|
longStats = fileLongStats.release(); |
|
|
|
|
feeStats = std::move(fileFeeStats); |
|
|
|
|
shortStats = std::move(fileShortStats); |
|
|
|
|
longStats = std::move(fileLongStats); |
|
|
|
|
|
|
|
|
|
nBestSeenHeight = nFileBestSeenHeight; |
|
|
|
|
historicalFirst = nFileHistoricalFirst; |
|
|
|
|