Bitcoin Core
32.1.0
P2P Digital Currency
Toggle main menu visibility
Loading...
Searching...
No Matches
src
rpc
request.h
Go to the documentation of this file.
1
// Copyright (c) 2010 Satoshi Nakamoto
2
// Copyright (c) 2009-present The Bitcoin Core developers
3
// Distributed under the MIT software license, see the accompanying
4
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
5
6
#ifndef BITCOIN_RPC_REQUEST_H
7
#define BITCOIN_RPC_REQUEST_H
8
9
#include <
univalue.h
>
10
#include <
util/fs.h
>
11
12
#include <any>
13
#include <cstdint>
14
#include <optional>
15
#include <string>
16
#include <vector>
17
18
enum class
JSONRPCVersion
{
19
V1_LEGACY
,
20
V2
21
};
22
24
UniValue
JSONRPCRequestObj
(
const
std::string& strMethod,
const
UniValue
& params,
const
UniValue
&
id
);
25
UniValue
JSONRPCReplyObj
(
UniValue
result,
UniValue
error, std::optional<UniValue>
id
,
JSONRPCVersion
jsonrpc_version);
26
UniValue
JSONRPCError
(
int
code,
const
std::string& message);
27
28
enum class
AuthCookieResult
: uint8_t {
29
Disabled
,
// -norpccookiefile
30
Error
,
31
Ok
,
32
};
33
43
AuthCookieResult
GenerateAuthCookie
(
const
std::optional<fs::perms>& cookie_perms,
44
std::string& user,
45
std::string& pass);
46
48
AuthCookieResult
GetAuthCookie
(std::string& cookie_out);
50
void
DeleteAuthCookie
();
52
std::vector<UniValue>
JSONRPCProcessBatchReply
(
const
UniValue
& in);
53
54
class
JSONRPCRequest
55
{
56
public
:
57
std::optional<UniValue>
id
=
UniValue::VNULL
;
58
std::string
strMethod
;
59
UniValue
params
;
60
enum
Mode
{
EXECUTE
,
GET_HELP
,
GET_ARGS
}
mode
=
EXECUTE
;
61
std::string
URI
;
62
std::string
authUser
;
63
std::string
peerAddr
;
64
std::any
context
;
65
JSONRPCVersion
m_json_version
=
JSONRPCVersion::V1_LEGACY
;
66
67
void
parse
(
const
UniValue
& valRequest);
68
[[nodiscard]]
bool
IsNotification
()
const
{
return
!
id
.has_value() &&
m_json_version
==
JSONRPCVersion::V2
; };
69
};
70
71
#endif
// BITCOIN_RPC_REQUEST_H
JSONRPCRequest
Definition
request.h:55
JSONRPCRequest::params
UniValue params
Definition
request.h:59
JSONRPCRequest::strMethod
std::string strMethod
Definition
request.h:58
JSONRPCRequest::m_json_version
JSONRPCVersion m_json_version
Definition
request.h:65
JSONRPCRequest::mode
enum JSONRPCRequest::Mode mode
JSONRPCRequest::Mode
Mode
Definition
request.h:60
JSONRPCRequest::EXECUTE
@ EXECUTE
Definition
request.h:60
JSONRPCRequest::GET_HELP
@ GET_HELP
Definition
request.h:60
JSONRPCRequest::GET_ARGS
@ GET_ARGS
Definition
request.h:60
JSONRPCRequest::IsNotification
bool IsNotification() const
Definition
request.h:68
JSONRPCRequest::peerAddr
std::string peerAddr
Definition
request.h:63
JSONRPCRequest::parse
void parse(const UniValue &valRequest)
Definition
request.cpp:201
JSONRPCRequest::URI
std::string URI
Definition
request.h:61
JSONRPCRequest::authUser
std::string authUser
Definition
request.h:62
JSONRPCRequest::context
std::any context
Definition
request.h:64
UniValue
Definition
univalue.h:22
UniValue::VNULL
@ VNULL
Definition
univalue.h:24
TransportProtocolType::V2
@ V2
BIP324 protocol.
Definition
connection_types.h:94
fs.h
JSONRPCProcessBatchReply
std::vector< UniValue > JSONRPCProcessBatchReply(const UniValue &in)
Parse JSON-RPC batch reply into a vector.
Definition
request.cpp:181
JSONRPCRequestObj
UniValue JSONRPCRequestObj(const std::string &strMethod, const UniValue ¶ms, const UniValue &id)
JSON-RPC protocol.
Definition
request.cpp:46
JSONRPCError
UniValue JSONRPCError(int code, const std::string &message)
Definition
request.cpp:75
GetAuthCookie
AuthCookieResult GetAuthCookie(std::string &cookie_out)
Read the RPC authentication cookie from disk.
Definition
request.cpp:153
GenerateAuthCookie
AuthCookieResult GenerateAuthCookie(const std::optional< fs::perms > &cookie_perms, std::string &user, std::string &pass)
Generate a new RPC authentication cookie and write it to disk.
Definition
request.cpp:105
JSONRPCReplyObj
UniValue JSONRPCReplyObj(UniValue result, UniValue error, std::optional< UniValue > id, JSONRPCVersion jsonrpc_version)
Definition
request.cpp:56
DeleteAuthCookie
void DeleteAuthCookie()
Delete RPC authentication cookie from disk.
Definition
request.cpp:169
JSONRPCVersion
JSONRPCVersion
Definition
request.h:18
JSONRPCVersion::V2
@ V2
Definition
request.h:20
JSONRPCVersion::V1_LEGACY
@ V1_LEGACY
Definition
request.h:19
AuthCookieResult
AuthCookieResult
Definition
request.h:28
AuthCookieResult::Ok
@ Ok
Definition
request.h:31
AuthCookieResult::Disabled
@ Disabled
Definition
request.h:29
Error
Definition
result.h:15
univalue.h
Generated on
for Bitcoin Core by
1.18.0