|
|
|
@ -4644,7 +4644,6 @@ static const uint64_t MEMPOOL_DUMP_VERSION = 1;
|
|
|
|
|
|
|
|
|
|
bool LoadMempool(CTxMemPool& pool, CChainState& active_chainstate, FopenFn mockable_fopen_function)
|
|
|
|
|
{
|
|
|
|
|
int64_t nExpiryTimeout = std::chrono::seconds{pool.m_expiry}.count();
|
|
|
|
|
FILE* filestr{mockable_fopen_function(gArgs.GetDataDirNet() / "mempool.dat", "rb")};
|
|
|
|
|
CAutoFile file(filestr, SER_DISK, CLIENT_VERSION);
|
|
|
|
|
if (file.IsNull()) {
|
|
|
|
@ -4657,7 +4656,7 @@ bool LoadMempool(CTxMemPool& pool, CChainState& active_chainstate, FopenFn mocka
|
|
|
|
|
int64_t failed = 0;
|
|
|
|
|
int64_t already_there = 0;
|
|
|
|
|
int64_t unbroadcast = 0;
|
|
|
|
|
int64_t nNow = GetTime();
|
|
|
|
|
auto now = NodeClock::now();
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
uint64_t version;
|
|
|
|
@ -4680,7 +4679,7 @@ bool LoadMempool(CTxMemPool& pool, CChainState& active_chainstate, FopenFn mocka
|
|
|
|
|
if (amountdelta) {
|
|
|
|
|
pool.PrioritiseTransaction(tx->GetHash(), amountdelta);
|
|
|
|
|
}
|
|
|
|
|
if (nTime > nNow - nExpiryTimeout) {
|
|
|
|
|
if (nTime > TicksSinceEpoch<std::chrono::seconds>(now - pool.m_expiry)) {
|
|
|
|
|
LOCK(cs_main);
|
|
|
|
|
const auto& accepted = AcceptToMemoryPool(active_chainstate, tx, nTime, /*bypass_limits=*/false, /*test_accept=*/false);
|
|
|
|
|
if (accepted.m_result_type == MempoolAcceptResult::ResultType::VALID) {
|
|
|
|
|