/ src / interfaces / rpc.h
rpc.h
 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