/tmp/bitcoin/src/interfaces/rpc.h
Line | Count | Source |
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 | 8 | 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 |