Branch data Line data Source code
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 [ + - ]: 8 : class Rpc
20 : : {
21 : : public:
22 : 4 : 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
|