aboutsummaryrefslogtreecommitdiff
path: root/src/validation.cpp
diff options
context:
space:
mode:
authorglozow <gzhao408@berkeley.edu>2021-04-05 12:36:57 -0700
committerglozow <gzhao408@berkeley.edu>2021-05-20 21:34:31 +0100
commit249f43f3cc52b0ffdf2c47aad95ba9d195f6a45e (patch)
tree9d30476398a6c46828da3770a26b6c79d26e1443 /src/validation.cpp
parent897e348f5987eadd8559981a973c045c471b3ad8 (diff)
downloadbitcoin-249f43f3cc52b0ffdf2c47aad95ba9d195f6a45e.tar.xz
[refactor] add option to disable RBF
This is a mere refactor for now. We will use this to disable RBFing in package validation.
Diffstat (limited to 'src/validation.cpp')
-rw-r--r--src/validation.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/validation.cpp b/src/validation.cpp
index ac02cc0515..3aa360987e 100644
--- a/src/validation.cpp
+++ b/src/validation.cpp
@@ -470,6 +470,8 @@ public:
*/
std::vector<COutPoint>& m_coins_to_uncache;
const bool m_test_accept;
+ /** Disable BIP125 RBFing; disallow all conflicts with mempool transactions. */
+ const bool disallow_mempool_conflicts;
};
// Single transaction acceptance
@@ -631,7 +633,7 @@ bool MemPoolAccept::PreChecks(ATMPArgs& args, Workspace& ws)
break;
}
}
- if (fReplacementOptOut) {
+ if (fReplacementOptOut || args.disallow_mempool_conflicts) {
return state.Invalid(TxValidationResult::TX_MEMPOOL_POLICY, "txn-mempool-conflict");
}
@@ -1072,7 +1074,8 @@ static MempoolAcceptResult AcceptToMemoryPoolWithTime(const CChainParams& chainp
EXCLUSIVE_LOCKS_REQUIRED(cs_main)
{
std::vector<COutPoint> coins_to_uncache;
- MemPoolAccept::ATMPArgs args { chainparams, nAcceptTime, bypass_limits, coins_to_uncache, test_accept };
+ MemPoolAccept::ATMPArgs args { chainparams, nAcceptTime, bypass_limits, coins_to_uncache,
+ test_accept, /* disallow_mempool_conflicts */ false };
assert(std::addressof(::ChainstateActive()) == std::addressof(active_chainstate));
const MempoolAcceptResult result = MemPoolAccept(pool, active_chainstate).AcceptSingleTransaction(tx, args);