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 0 : 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
|