Bitcoin Core
31.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 <any>
10
#include <optional>
11
#include <string>
12
13
#include <
univalue.h
>
14
#include <
util/fs.h
>
15
16
enum class
JSONRPCVersion
{
17
V1_LEGACY
,
18
V2
19
};
20
22
UniValue
JSONRPCRequestObj
(
const
std::string& strMethod,
const
UniValue
& params,
const
UniValue
&
id
);
23
UniValue
JSONRPCReplyObj
(
UniValue
result,
UniValue
error, std::optional<UniValue>
id
,
JSONRPCVersion
jsonrpc_version);
24
UniValue
JSONRPCError
(
int
code,
const
std::string& message);
25
26
enum class
GenerateAuthCookieResult
: uint8_t {
27
DISABLED
,
// -norpccookiefile
28
ERR
,
29
OK
,
30
};
31
41
GenerateAuthCookieResult
GenerateAuthCookie
(
const
std::optional<fs::perms>& cookie_perms,
42
std::string& user,
43
std::string& pass);
44
46
bool
GetAuthCookie
(std::string *cookie_out);
48
void
DeleteAuthCookie
();
50
std::vector<UniValue>
JSONRPCProcessBatchReply
(
const
UniValue
& in);
51
52
class
JSONRPCRequest
53
{
54
public
:
55
std::optional<UniValue>
id
=
UniValue::VNULL
;
56
std::string
strMethod
;
57
UniValue
params
;
58
enum
Mode
{
EXECUTE
,
GET_HELP
,
GET_ARGS
}
mode
=
EXECUTE
;
59
std::string
URI
;
60
std::string
authUser
;
61
std::string
peerAddr
;
62
std::any
context
;
63
JSONRPCVersion
m_json_version
=
JSONRPCVersion::V1_LEGACY
;
64
65
void
parse
(
const
UniValue
& valRequest);
66
[[nodiscard]]
bool
IsNotification
()
const
{
return
!
id
.has_value() &&
m_json_version
==
JSONRPCVersion::V2
; };
67
};
68
69
#endif
// BITCOIN_RPC_REQUEST_H
JSONRPCRequest
Definition
request.h:53
JSONRPCRequest::params
UniValue params
Definition
request.h:57
JSONRPCRequest::strMethod
std::string strMethod
Definition
request.h:56
JSONRPCRequest::m_json_version
JSONRPCVersion m_json_version
Definition
request.h:63
JSONRPCRequest::mode
enum JSONRPCRequest::Mode mode
JSONRPCRequest::Mode
Mode
Definition
request.h:58
JSONRPCRequest::EXECUTE
@ EXECUTE
Definition
request.h:58
JSONRPCRequest::GET_HELP
@ GET_HELP
Definition
request.h:58
JSONRPCRequest::GET_ARGS
@ GET_ARGS
Definition
request.h:58
JSONRPCRequest::IsNotification
bool IsNotification() const
Definition
request.h:66
JSONRPCRequest::peerAddr
std::string peerAddr
Definition
request.h:61
JSONRPCRequest::parse
void parse(const UniValue &valRequest)
Definition
request.cpp:199
JSONRPCRequest::URI
std::string URI
Definition
request.h:59
JSONRPCRequest::authUser
std::string authUser
Definition
request.h:60
JSONRPCRequest::context
std::any context
Definition
request.h:62
UniValue
Definition
univalue.h:22
UniValue::VNULL
@ VNULL
Definition
univalue.h:24
fs.h
GenerateAuthCookie
GenerateAuthCookieResult 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:100
JSONRPCProcessBatchReply
std::vector< UniValue > JSONRPCProcessBatchReply(const UniValue &in)
Parse JSON-RPC batch reply into a vector.
Definition
request.cpp:179
GetAuthCookie
bool GetAuthCookie(std::string *cookie_out)
Read the RPC authentication cookie from disk.
Definition
request.cpp:148
JSONRPCRequestObj
UniValue JSONRPCRequestObj(const std::string &strMethod, const UniValue ¶ms, const UniValue &id)
JSON-RPC 2.0 request, only used in bitcoin-cli.
Definition
request.cpp:41
JSONRPCError
UniValue JSONRPCError(int code, const std::string &message)
Definition
request.cpp:70
JSONRPCVersion
JSONRPCVersion
Definition
request.h:16
JSONRPCVersion::V2
@ V2
Definition
request.h:18
JSONRPCVersion::V1_LEGACY
@ V1_LEGACY
Definition
request.h:17
GenerateAuthCookieResult
GenerateAuthCookieResult
Definition
request.h:26
GenerateAuthCookieResult::DISABLED
@ DISABLED
Definition
request.h:27
GenerateAuthCookieResult::ERR
@ ERR
Definition
request.h:28
GenerateAuthCookieResult::OK
@ OK
Definition
request.h:29
JSONRPCReplyObj
UniValue JSONRPCReplyObj(UniValue result, UniValue error, std::optional< UniValue > id, JSONRPCVersion jsonrpc_version)
Definition
request.cpp:51
DeleteAuthCookie
void DeleteAuthCookie()
Delete RPC authentication cookie from disk.
Definition
request.cpp:167
univalue.h
Generated on
for Bitcoin Core by
1.17.0