rpc.h raw

   1  // Copyright (c) 2025 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_INTERFACES_RPC_H
   6  #define BITCOIN_INTERFACES_RPC_H
   7  
   8  #include <memory>
   9  #include <string>
  10  
  11  class UniValue;
  12  
  13  namespace node {
  14  struct NodeContext;
  15  } // namespace node
  16  
  17  namespace interfaces {
  18  //! Interface giving clients ability to emulate HTTP RPC calls.
  19  class Rpc
  20  {
  21  public:
  22      virtual ~Rpc() = default;
  23      virtual UniValue executeRpc(UniValue request, std::string url, std::string user) = 0;
  24  };
  25  
  26  //! Return implementation of Rpc interface.
  27  std::unique_ptr<Rpc> MakeRpc(node::NodeContext& node);
  28  
  29  } // namespace interfaces
  30  
  31  #endif // BITCOIN_INTERFACES_RPC_H
  32