diff options
| author | Wladimir J. van der Laan <[email protected]> | 2017-01-26 10:53:07 +0100 |
|---|---|---|
| committer | Wladimir J. van der Laan <[email protected]> | 2017-01-26 10:53:14 +0100 |
| commit | 9b4d2673b7757fd242b13c972c73897c92a90ce1 (patch) | |
| tree | 479808926ab380f6c3782920b1e9937d4edbf188 /src/validation.cpp | |
| parent | Merge #9594: Send final alert message to older peers after connecting. (diff) | |
| parent | Exclude RBF txs from fee estimation (diff) | |
| download | discoin-9b4d2673b7757fd242b13c972c73897c92a90ce1.tar.xz discoin-9b4d2673b7757fd242b13c972c73897c92a90ce1.zip | |
Merge #9519: Exclude RBF replacement txs from fee estimation
de1ae32 Exclude RBF txs from fee estimation (Alex Morcos)
Diffstat (limited to 'src/validation.cpp')
| -rw-r--r-- | src/validation.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/validation.cpp b/src/validation.cpp index e6bc2288d..d499d7a0d 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -827,7 +827,8 @@ bool AcceptToMemoryPoolWorker(CTxMemPool& pool, CValidationState& state, const C // subsequent RemoveStaged() and addUnchecked() calls don't guarantee // mempool consistency for us. LOCK(pool.cs); - if (setConflicts.size()) + const bool fReplacementTransaction = setConflicts.size(); + if (fReplacementTransaction) { CFeeRate newFeeRate(nModifiedFees, nSize); set<uint256> setConflictsParents; @@ -991,10 +992,11 @@ bool AcceptToMemoryPoolWorker(CTxMemPool& pool, CValidationState& state, const C } pool.RemoveStaged(allConflicting, false, MemPoolRemovalReason::REPLACED); - // This transaction should only count for fee estimation if - // the node is not behind and it is not dependent on any other - // transactions in the mempool - bool validForFeeEstimation = IsCurrentForFeeEstimation() && pool.HasNoInputsOf(tx); + // This transaction should only count for fee estimation if it isn't a + // BIP 125 replacement transaction (may not be widely supported), the + // node is not behind, and the transaction is not dependent on any other + // transactions in the mempool. + bool validForFeeEstimation = !fReplacementTransaction && IsCurrentForFeeEstimation() && pool.HasNoInputsOf(tx); // Store transaction in memory pool.addUnchecked(hash, entry, setAncestors, validForFeeEstimation); |