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