diff options
author | Alex Morcos <morcos@chaincode.com> | 2016-11-11 14:16:42 -0500 |
---|---|---|
committer | Alex Morcos <morcos@chaincode.com> | 2017-01-04 12:09:34 -0500 |
commit | ebafdcabb10a89b491cdb8430bc43b0220d436df (patch) | |
tree | 9202ddfb803496ab2de305dc29a4a866cb49747a /src/policy | |
parent | d825838e6472f73c491f93506cb003472f071602 (diff) |
Pass pointers to existing CTxMemPoolEntries to fee estimation
Diffstat (limited to 'src/policy')
-rw-r--r-- | src/policy/fees.cpp | 10 | ||||
-rw-r--r-- | src/policy/fees.h | 4 |
2 files changed, 7 insertions, 7 deletions
diff --git a/src/policy/fees.cpp b/src/policy/fees.cpp index eb9fdc77d3..cb83bcf716 100644 --- a/src/policy/fees.cpp +++ b/src/policy/fees.cpp @@ -334,9 +334,9 @@ void CBlockPolicyEstimator::processTransaction(const CTxMemPoolEntry& entry, boo mapMemPoolTxs[hash].bucketIndex = feeStats.NewTx(txHeight, (double)feeRate.GetFeePerK()); } -void CBlockPolicyEstimator::processBlockTx(unsigned int nBlockHeight, const CTxMemPoolEntry& entry) +void CBlockPolicyEstimator::processBlockTx(unsigned int nBlockHeight, const CTxMemPoolEntry* entry) { - if (!removeTx(entry.GetTx().GetHash())) { + if (!removeTx(entry->GetTx().GetHash())) { // This transaction wasn't being tracked for fee estimation return; } @@ -344,7 +344,7 @@ void CBlockPolicyEstimator::processBlockTx(unsigned int nBlockHeight, const CTxM // How many blocks did it take for miners to include this transaction? // blocksToConfirm is 1-based, so a transaction included in the earliest // possible block has confirmation count of 1 - int blocksToConfirm = nBlockHeight - entry.GetHeight(); + int blocksToConfirm = nBlockHeight - entry->GetHeight(); if (blocksToConfirm <= 0) { // This can't happen because we don't process transactions from a block with a height // lower than our greatest seen height @@ -353,13 +353,13 @@ void CBlockPolicyEstimator::processBlockTx(unsigned int nBlockHeight, const CTxM } // Feerates are stored and reported as BTC-per-kb: - CFeeRate feeRate(entry.GetFee(), entry.GetTxSize()); + CFeeRate feeRate(entry->GetFee(), entry->GetTxSize()); feeStats.Record(blocksToConfirm, (double)feeRate.GetFeePerK()); } void CBlockPolicyEstimator::processBlock(unsigned int nBlockHeight, - std::vector<CTxMemPoolEntry>& entries) + std::vector<const CTxMemPoolEntry*>& entries) { if (nBlockHeight <= nBestSeenHeight) { // Ignore side chains and re-orgs; assuming they are random diff --git a/src/policy/fees.h b/src/policy/fees.h index a61ae18130..e1684ebcb9 100644 --- a/src/policy/fees.h +++ b/src/policy/fees.h @@ -203,10 +203,10 @@ public: /** Process all the transactions that have been included in a block */ void processBlock(unsigned int nBlockHeight, - std::vector<CTxMemPoolEntry>& entries); + std::vector<const CTxMemPoolEntry*>& entries); /** Process a transaction confirmed in a block*/ - void processBlockTx(unsigned int nBlockHeight, const CTxMemPoolEntry& entry); + void processBlockTx(unsigned int nBlockHeight, const CTxMemPoolEntry* entry); /** Process a transaction accepted to the mempool*/ void processTransaction(const CTxMemPoolEntry& entry, bool validFeeEstimate); |