diff --git a/src/txmempool.cpp b/src/txmempool.cpp index 391afa74958b..23887cae152f 100644 --- a/src/txmempool.cpp +++ b/src/txmempool.cpp @@ -8,6 +8,7 @@ #include "clientversion.h" #include "consensus/consensus.h" #include "consensus/validation.h" +#include "instantx.h" #include "validation.h" #include "policy/policy.h" #include "policy/fees.h" @@ -1148,6 +1149,11 @@ int CTxMemPool::Expire(int64_t time) { indexed_transaction_set::index::type::iterator it = mapTx.get().begin(); setEntries toremove; while (it != mapTx.get().end() && it->GetTime() < time) { + // locked txes do not expire until mined and have sufficient confirmations + if (instantsend.IsLockedInstantSendTransaction(it->GetTx().GetHash())) { + it++; + continue; + } toremove.insert(mapTx.project<0>(it)); it++; }