aboutsummaryrefslogtreecommitdiff
path: root/src/validation.cpp
diff options
context:
space:
mode:
authorJohn Newbery <john@johnnewbery.com>2021-09-27 16:55:42 +0100
committerJohn Newbery <john@johnnewbery.com>2021-11-03 14:34:38 +0000
commit92a3aeecf6a82e9cbc9fda11022b0548efd24d05 (patch)
treeb7767b17918c211b159097329950a8f5d2bc6b4b /src/validation.cpp
parent36167faea92c97ddea7403280a5074073c8e5f90 (diff)
downloadbitcoin-92a3aeecf6a82e9cbc9fda11022b0548efd24d05.tar.xz
[validation] Add CChainState::ProcessTransaction()
This just calls through to AcceptToMemoryPool() internally, and is currently unused. Also add a new transaction validation failure reason TX_NO_MEMPOOL to indicate that there is no mempool.
Diffstat (limited to 'src/validation.cpp')
-rw-r--r--src/validation.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/validation.cpp b/src/validation.cpp
index f1c44d61ae..1947f5d9c3 100644
--- a/src/validation.cpp
+++ b/src/validation.cpp
@@ -3421,6 +3421,17 @@ bool ChainstateManager::ProcessNewBlock(const CChainParams& chainparams, const s
return true;
}
+MempoolAcceptResult ChainstateManager::ProcessTransaction(const CTransactionRef& tx, bool test_accept)
+{
+ CChainState& active_chainstate = ActiveChainstate();
+ if (!active_chainstate.m_mempool) {
+ TxValidationState state;
+ state.Invalid(TxValidationResult::TX_NO_MEMPOOL, "no-mempool");
+ return MempoolAcceptResult::Failure(state);
+ }
+ return AcceptToMemoryPool(active_chainstate, *active_chainstate.m_mempool, tx, /*bypass_limits=*/ false, test_accept);
+}
+
bool TestBlockValidity(BlockValidationState& state,
const CChainParams& chainparams,
CChainState& chainstate,