/ src / node / mempool_persist.h
mempool_persist.h
 1  // Copyright (c) 2022-present The Bitcoin Core developers
 2  // Distributed under the MIT software license, see the accompanying
 3  // file COPYING or http://www.opensource.org/licenses/mit-license.php.
 4  
 5  #ifndef BITCOIN_NODE_MEMPOOL_PERSIST_H
 6  #define BITCOIN_NODE_MEMPOOL_PERSIST_H
 7  
 8  #include <util/fs.h>
 9  
10  class Chainstate;
11  class CTxMemPool;
12  
13  namespace node {
14  
15  /** Dump the mempool to a file. */
16  bool DumpMempool(const CTxMemPool& pool, const fs::path& dump_path,
17                   fsbridge::FopenFn mockable_fopen_function = fsbridge::fopen,
18                   bool skip_file_commit = false);
19  
20  struct ImportMempoolOptions {
21      fsbridge::FopenFn mockable_fopen_function{fsbridge::fopen};
22      bool use_current_time{false};
23      bool apply_fee_delta_priority{true};
24      bool apply_unbroadcast_set{true};
25  };
26  /** Import the file and attempt to add its contents to the mempool. */
27  bool LoadMempool(CTxMemPool& pool, const fs::path& load_path,
28                   Chainstate& active_chainstate,
29                   ImportMempoolOptions&& opts);
30  
31  } // namespace node
32  
33  
34  #endif // BITCOIN_NODE_MEMPOOL_PERSIST_H