Bitcoin Core  27.99.0
P2P Digital Currency
Classes | Enumerations | Functions
request.h File Reference
#include <any>
#include <optional>
#include <string>
#include <univalue.h>
Include dependency graph for request.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  JSONRPCRequest
 

Enumerations

enum class  JSONRPCVersion { V1_LEGACY , V2 }
 

Functions

UniValue JSONRPCRequestObj (const std::string &strMethod, const UniValue &params, const UniValue &id)
 JSON-RPC protocol. More...
 
UniValue JSONRPCReplyObj (UniValue result, UniValue error, std::optional< UniValue > id, JSONRPCVersion jsonrpc_version)
 
UniValue JSONRPCError (int code, const std::string &message)
 
bool GenerateAuthCookie (std::string *cookie_out)
 Generate a new RPC authentication cookie and write it to disk. More...
 
bool GetAuthCookie (std::string *cookie_out)
 Read the RPC authentication cookie from disk. More...
 
void DeleteAuthCookie ()
 Delete RPC authentication cookie from disk. More...
 
std::vector< UniValueJSONRPCProcessBatchReply (const UniValue &in)
 Parse JSON-RPC batch reply into a vector. More...
 

Enumeration Type Documentation

◆ JSONRPCVersion

enum JSONRPCVersion
strong
Enumerator
V1_LEGACY 
V2 

Definition at line 15 of file request.h.

Function Documentation

◆ DeleteAuthCookie()

void DeleteAuthCookie ( )

Delete RPC authentication cookie from disk.

Definition at line 146 of file request.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GenerateAuthCookie()

bool GenerateAuthCookie ( std::string *  cookie_out)

Generate a new RPC authentication cookie and write it to disk.

the umask determines what permissions are used to create this file - these are set to 0077 in common/system.cpp.

Definition at line 97 of file request.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetAuthCookie()

bool GetAuthCookie ( std::string *  cookie_out)

Read the RPC authentication cookie from disk.

Definition at line 130 of file request.cpp.

Here is the call graph for this function:

◆ JSONRPCError()

UniValue JSONRPCError ( int  code,
const std::string &  message 
)

Definition at line 70 of file request.cpp.

Here is the call graph for this function:

◆ JSONRPCProcessBatchReply()

std::vector<UniValue> JSONRPCProcessBatchReply ( const UniValue in)

Parse JSON-RPC batch reply into a vector.

Definition at line 158 of file request.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSONRPCReplyObj()

UniValue JSONRPCReplyObj ( UniValue  result,
UniValue  error,
std::optional< UniValue id,
JSONRPCVersion  jsonrpc_version 
)

Definition at line 51 of file request.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSONRPCRequestObj()

UniValue JSONRPCRequestObj ( const std::string &  strMethod,
const UniValue params,
const UniValue id 
)

JSON-RPC protocol.

Bitcoin speaks version 1.0 for maximum compatibility, but uses JSON-RPC 1.1/2.0 standards for parts of the 1.0 standard that were unspecified (HTTP errors and contents of 'error').

1.0 spec: http://json-rpc.org/wiki/specification 1.2 spec: http://jsonrpc.org/historical/json-rpc-over-http.html

If the server receives a request with the JSON-RPC 2.0 marker {"jsonrpc": "2.0"} then Bitcoin will respond with a strictly specified response. It will only return an HTTP error code if an actual HTTP error is encountered such as the endpoint is not found (404) or the request is not formatted correctly (500). Otherwise the HTTP code is always OK (200) and RPC errors will be included in the response body.

2.0 spec: https://www.jsonrpc.org/specification

Also see http://www.simple-is-better.org/rpc/#differences-between-1-0-and-2-0

Definition at line 42 of file request.cpp.

Here is the call graph for this function:
Here is the caller graph for this function: