Browse Source

Ignore transactions added to mempool during a reorg for fee estimation purposes.

0.16
Alex Morcos 7 years ago
parent
commit
bf64c3cb34
  1. 11
      src/validation.cpp

11
src/validation.cpp

@ -857,11 +857,12 @@ static bool AcceptToMemoryPoolWorker(const CChainParams& chainparams, CTxMemPool
} }
pool.RemoveStaged(allConflicting, false, MemPoolRemovalReason::REPLACED); pool.RemoveStaged(allConflicting, false, MemPoolRemovalReason::REPLACED);
// This transaction should only count for fee estimation if it isn't a // This transaction should only count for fee estimation if:
// BIP 125 replacement transaction (may not be widely supported), the // - it isn't a BIP 125 replacement transaction (may not be widely supported)
// node is not behind, and the transaction is not dependent on any other // - it's not being readded during a reorg which bypasses typical mempool fee limits
// transactions in the mempool. // - the node is not behind
bool validForFeeEstimation = !fReplacementTransaction && IsCurrentForFeeEstimation() && pool.HasNoInputsOf(tx); // - the transaction is not dependent on any other transactions in the mempool
bool validForFeeEstimation = !fReplacementTransaction && !bypass_limits && IsCurrentForFeeEstimation() && pool.HasNoInputsOf(tx);
// Store transaction in memory // Store transaction in memory
pool.addUnchecked(hash, entry, setAncestors, validForFeeEstimation); pool.addUnchecked(hash, entry, setAncestors, validForFeeEstimation);

Loading…
Cancel
Save