diff --git a/src/validation.cpp b/src/validation.cpp index 211a8122a95..cadc085639f 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -1261,7 +1261,9 @@ bool MemPoolAccept::SubmitPackage(const ATMPArgs& args, std::vector& package_state.Invalid(PackageValidationResult::PCKG_MEMPOOL_ERROR, strprintf("BUG! PolicyScriptChecks succeeded but ConsensusScriptChecks failed: %s", ws.m_ptx->GetHash().ToString())); - // Remove the transaction from the mempool. + } + // Remove first failing tx and all subsequent in package + if (!all_submitted) { if (!m_subpackage.m_changeset) m_subpackage.m_changeset = m_pool.GetChangeSet(); m_subpackage.m_changeset->StageRemoval(m_pool.GetIter(ws.m_ptx->GetHash()).value()); }