PIVX Core  5.6.99
P2P Digital Currency
Enumerations | Functions
protocol.h File Reference
#include "fs.h"
#include <list>
#include <map>
#include <stdint.h>
#include <string>
#include <univalue.h>
Include dependency graph for protocol.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Enumerations

enum  HTTPStatusCode {
  HTTP_OK = 200 , HTTP_BAD_REQUEST = 400 , HTTP_UNAUTHORIZED = 401 , HTTP_FORBIDDEN = 403 ,
  HTTP_NOT_FOUND = 404 , HTTP_BAD_METHOD = 405 , HTTP_INTERNAL_SERVER_ERROR = 500 , HTTP_SERVICE_UNAVAILABLE = 503
}
 HTTP status codes. More...
 
enum  RPCErrorCode {
  RPC_INVALID_REQUEST = -32600 , RPC_METHOD_NOT_FOUND = -32601 , RPC_INVALID_PARAMS = -32602 , RPC_INTERNAL_ERROR = -32603 ,
  RPC_PARSE_ERROR = -32700 , RPC_MISC_ERROR = -1 , RPC_FORBIDDEN_BY_SAFE_MODE = -2 , RPC_TYPE_ERROR = -3 ,
  RPC_INVALID_ADDRESS_OR_KEY = -5 , RPC_OUT_OF_MEMORY = -7 , RPC_INVALID_PARAMETER = -8 , RPC_DATABASE_ERROR = -20 ,
  RPC_DESERIALIZATION_ERROR = -22 , RPC_VERIFY_ERROR = -25 , RPC_VERIFY_REJECTED = -26 , RPC_VERIFY_ALREADY_IN_CHAIN = -27 ,
  RPC_IN_WARMUP = -28 , RPC_METHOD_DEPRECATED = -32 , RPC_TRANSACTION_ERROR = RPC_VERIFY_ERROR , RPC_TRANSACTION_REJECTED = RPC_VERIFY_REJECTED ,
  RPC_TRANSACTION_ALREADY_IN_CHAIN = RPC_VERIFY_ALREADY_IN_CHAIN , RPC_CLIENT_NOT_CONNECTED = -9 , RPC_CLIENT_IN_INITIAL_DOWNLOAD = -10 , RPC_CLIENT_NODE_ALREADY_ADDED = -23 ,
  RPC_CLIENT_NODE_NOT_ADDED = -24 , RPC_CLIENT_NODE_NOT_CONNECTED = -29 , RPC_CLIENT_INVALID_IP_OR_SUBNET = -30 , RPC_CLIENT_P2P_DISABLED = -31 ,
  RPC_WALLET_ERROR = -4 , RPC_WALLET_INSUFFICIENT_FUNDS = -6 , RPC_WALLET_INVALID_LABEL_NAME = -11 , RPC_WALLET_KEYPOOL_RAN_OUT = -12 ,
  RPC_WALLET_UNLOCK_NEEDED = -13 , RPC_WALLET_PASSPHRASE_INCORRECT = -14 , RPC_WALLET_WRONG_ENC_STATE = -15 , RPC_WALLET_ENCRYPTION_FAILED = -16 ,
  RPC_WALLET_ALREADY_UNLOCKED = -17 , RPC_WALLET_NOT_FOUND = -18 , RPC_WALLET_NOT_SPECIFIED = -19
}
 PIVX RPC error codes. More...
 

Functions

UniValue JSONRPCRequestObj (const std::string &strMethod, const UniValue &params, const UniValue &id)
 JSON-RPC protocol. More...
 
UniValue JSONRPCReplyObj (const UniValue &result, const UniValue &error, const UniValue &id)
 
std::string JSONRPCReply (const UniValue &result, const UniValue &error, const UniValue &id)
 
UniValue JSONRPCError (int code, const std::string &message)
 
fs::path GetAuthCookieFile ()
 Get name of RPC authentication cookie file. More...
 
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...
 

Enumeration Type Documentation

◆ HTTPStatusCode

HTTP status codes.

Enumerator
HTTP_OK 
HTTP_BAD_REQUEST 
HTTP_UNAUTHORIZED 
HTTP_FORBIDDEN 
HTTP_NOT_FOUND 
HTTP_BAD_METHOD 
HTTP_INTERNAL_SERVER_ERROR 
HTTP_SERVICE_UNAVAILABLE 

Definition at line 20 of file protocol.h.

◆ RPCErrorCode

PIVX RPC error codes.

Enumerator
RPC_INVALID_REQUEST 

Standard JSON-RPC 2.0 errors.

RPC_METHOD_NOT_FOUND 
RPC_INVALID_PARAMS 
RPC_INTERNAL_ERROR 
RPC_PARSE_ERROR 
RPC_MISC_ERROR 

General application defined errors.

RPC_FORBIDDEN_BY_SAFE_MODE 

std::exception thrown in command handling

RPC_TYPE_ERROR 

Server is in safe mode, and command is not allowed in safe mode.

RPC_INVALID_ADDRESS_OR_KEY 

Unexpected type was passed as parameter.

RPC_OUT_OF_MEMORY 

Invalid address or key.

RPC_INVALID_PARAMETER 

Ran out of memory during operation.

RPC_DATABASE_ERROR 

Invalid, missing or duplicate parameter.

RPC_DESERIALIZATION_ERROR 

Database error.

RPC_VERIFY_ERROR 

Error parsing or validating structure in raw format.

RPC_VERIFY_REJECTED 

General error during transaction or block submission.

RPC_VERIFY_ALREADY_IN_CHAIN 

Transaction or block was rejected by network rules.

RPC_IN_WARMUP 

Transaction already in chain.

RPC_METHOD_DEPRECATED 

Client still warming up.

RPC_TRANSACTION_ERROR 

RPC method is deprecated.

Aliases for backward compatibility

RPC_TRANSACTION_REJECTED 
RPC_TRANSACTION_ALREADY_IN_CHAIN 
RPC_CLIENT_NOT_CONNECTED 

P2P client errors.

RPC_CLIENT_IN_INITIAL_DOWNLOAD 

PIVX is not connected.

RPC_CLIENT_NODE_ALREADY_ADDED 

Still downloading initial blocks.

RPC_CLIENT_NODE_NOT_ADDED 

Node is already added.

RPC_CLIENT_NODE_NOT_CONNECTED 

Node has not been added before.

RPC_CLIENT_INVALID_IP_OR_SUBNET 

Node to disconnect not found in connected nodes.

RPC_CLIENT_P2P_DISABLED 

Invalid IP/Subnet.

RPC_WALLET_ERROR 

No valid connection manager instance found.

Wallet errors

RPC_WALLET_INSUFFICIENT_FUNDS 

Unspecified problem with wallet (key not found etc.)

RPC_WALLET_INVALID_LABEL_NAME 

Not enough funds in wallet.

RPC_WALLET_KEYPOOL_RAN_OUT 

Invalid label name.

RPC_WALLET_UNLOCK_NEEDED 

Keypool ran out, call keypoolrefill first.

RPC_WALLET_PASSPHRASE_INCORRECT 

Enter the wallet passphrase with walletpassphrase first.

RPC_WALLET_WRONG_ENC_STATE 

The wallet passphrase entered was incorrect.

RPC_WALLET_ENCRYPTION_FAILED 

Command given in wrong wallet encryption state (encrypting an encrypted wallet etc.)

RPC_WALLET_ALREADY_UNLOCKED 

Failed to encrypt the wallet.

RPC_WALLET_NOT_FOUND 

Wallet is already unlocked.

Invalid wallet specified

RPC_WALLET_NOT_SPECIFIED 

No wallet specified (error when there are multiple wallets loaded)

Definition at line 32 of file protocol.h.

Function Documentation

◆ DeleteAuthCookie()

void DeleteAuthCookie ( )

Delete RPC authentication cookie from disk.

Definition at line 116 of file protocol.cpp.

Here is the call 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 077 in init.cpp unless overridden with -sysperms.

Definition at line 74 of file protocol.cpp.

Here is the call graph for this function:

◆ GetAuthCookie()

bool GetAuthCookie ( std::string *  cookie_out)

Read the RPC authentication cookie from disk.

Definition at line 100 of file protocol.cpp.

Here is the call graph for this function:

◆ GetAuthCookieFile()

fs::path GetAuthCookieFile ( )

Get name of RPC authentication cookie file.

Definition at line 68 of file protocol.cpp.

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

◆ JSONRPCError()

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

Definition at line 53 of file protocol.cpp.

Here is the call graph for this function:

◆ JSONRPCReply()

std::string JSONRPCReply ( const UniValue result,
const UniValue error,
const UniValue id 
)

Definition at line 47 of file protocol.cpp.

Here is the call graph for this function:

◆ JSONRPCReplyObj()

UniValue JSONRPCReplyObj ( const UniValue result,
const UniValue error,
const UniValue id 
)

Definition at line 35 of file protocol.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.

PIVX 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 http://www.codeproject.com/KB/recipes/JSON_Spirit.aspx

Definition at line 26 of file protocol.cpp.

Here is the call graph for this function: