server_util.h raw

   1  // Copyright (c) 2021-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_RPC_SERVER_UTIL_H
   6  #define BITCOIN_RPC_SERVER_UTIL_H
   7  
   8  #include <any>
   9  
  10  #include <consensus/params.h>
  11  
  12  class AddrMan;
  13  class ArgsManager;
  14  class CBlockIndex;
  15  class CBlockPolicyEstimator;
  16  class CConnman;
  17  class CTxMemPool;
  18  class ChainstateManager;
  19  class PeerManager;
  20  class BanMan;
  21  namespace node {
  22  struct NodeContext;
  23  } // namespace node
  24  namespace interfaces {
  25  class Mining;
  26  } // namespace interfaces
  27  
  28  node::NodeContext& EnsureAnyNodeContext(const std::any& context);
  29  CTxMemPool& EnsureMemPool(const node::NodeContext& node);
  30  CTxMemPool& EnsureAnyMemPool(const std::any& context);
  31  BanMan& EnsureBanman(const node::NodeContext& node);
  32  BanMan& EnsureAnyBanman(const std::any& context);
  33  ArgsManager& EnsureArgsman(const node::NodeContext& node);
  34  ArgsManager& EnsureAnyArgsman(const std::any& context);
  35  ChainstateManager& EnsureChainman(const node::NodeContext& node);
  36  ChainstateManager& EnsureAnyChainman(const std::any& context);
  37  CBlockPolicyEstimator& EnsureFeeEstimator(const node::NodeContext& node);
  38  CBlockPolicyEstimator& EnsureAnyFeeEstimator(const std::any& context);
  39  CConnman& EnsureConnman(const node::NodeContext& node);
  40  interfaces::Mining& EnsureMining(const node::NodeContext& node);
  41  PeerManager& EnsurePeerman(const node::NodeContext& node);
  42  AddrMan& EnsureAddrman(const node::NodeContext& node);
  43  AddrMan& EnsureAnyAddrman(const std::any& context);
  44  
  45  /** Return an empty block index on top of the tip, with height, time and nBits set */
  46  void NextEmptyBlockIndex(CBlockIndex& tip, const Consensus::Params& consensusParams, CBlockIndex& next_index);
  47  
  48  #endif // BITCOIN_RPC_SERVER_UTIL_H
  49