Dash Core  0.12.2.1
P2P Digital Currency
protocol.h File Reference
#include <list>
#include <map>
#include <stdint.h>
#include <string>
#include <boost/filesystem.hpp>
#include <univalue.h>

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_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_ACCOUNT_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
}
 Dash Core RPC error codes. More...
 

Functions

std::string JSONRPCRequest (const std::string &strMethod, const UniValue &params, const UniValue &id)
 
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)
 
boost::filesystem::path GetAuthCookieFile ()
 
bool GenerateAuthCookie (std::string *cookie_out)
 
bool GetAuthCookie (std::string *cookie_out)
 
void DeleteAuthCookie ()
 

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 18 of file protocol.h.

◆ RPCErrorCode

Dash Core 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_TRANSACTION_ERROR 

Client still warming up.

Aliases for backward compatibility

RPC_TRANSACTION_REJECTED 
RPC_TRANSACTION_ALREADY_IN_CHAIN 
RPC_CLIENT_NOT_CONNECTED 

P2P client errors.

RPC_CLIENT_IN_INITIAL_DOWNLOAD 

Dash Core 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.

No valid connection manager instance found

RPC_WALLET_ERROR 

Wallet errors.

RPC_WALLET_INSUFFICIENT_FUNDS 

Unspecified problem with wallet (key not found etc.)

RPC_WALLET_INVALID_ACCOUNT_NAME 

Not enough funds in wallet or account.

RPC_WALLET_KEYPOOL_RAN_OUT 

Invalid account 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.

Definition at line 31 of file protocol.h.

Function Documentation

◆ DeleteAuthCookie()

void DeleteAuthCookie ( )

Delete RPC authentication cookie from disk

Definition at line 122 of file protocol.cpp.

◆ 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 79 of file protocol.cpp.

Referenced by InitRPCAuthentication().

◆ GetAuthCookie()

bool GetAuthCookie ( std::string *  cookie_out)

Read the RPC authentication cookie from disk

Definition at line 106 of file protocol.cpp.

Referenced by CallRPC().

◆ GetAuthCookieFile()

boost::filesystem::path GetAuthCookieFile ( )

Get name of RPC authentication cookie file

Definition at line 72 of file protocol.cpp.

Referenced by DeleteAuthCookie(), GenerateAuthCookie(), and GetAuthCookie().

◆ JSONRPCError()

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

◆ JSONRPCReply()

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

Definition at line 51 of file protocol.cpp.

Referenced by HTTPReq_JSONRPC(), and JSONErrorReply().

◆ JSONRPCReplyObj()

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

Definition at line 39 of file protocol.cpp.

Referenced by JSONRPCExecOne(), and JSONRPCReply().

◆ JSONRPCRequest()

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