PRCYCoin  2.0.0.7rc1
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_INVALID_BLOCK_HEIGHT = -225, 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_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,
  RPC_PRIVACY_WALLET_EXISTED = -18, RPC_PRIVACY_DECOY_MIN = -100, RPC_ERROR_CODE_UNKNOWN_ERROR
}
 PRCY RPC error codes. More...
 

Functions

std::string JSONRPCRequest (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 19 of file protocol.h.

◆ RPCErrorCode

PRCY 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_INVALID_BLOCK_HEIGHT 

Client still warming up.

RPC_TRANSACTION_ERROR 

Invalid block height.

Aliases for backward compatibility

RPC_TRANSACTION_REJECTED 
RPC_TRANSACTION_ALREADY_IN_CHAIN 
RPC_CLIENT_NOT_CONNECTED 

P2P client errors.

RPC_CLIENT_IN_INITIAL_DOWNLOAD 

PRCY 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_WALLET_ERROR 

Invalid IP/Subnet.

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 unlockwallet 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_PRIVACY_WALLET_EXISTED 

Wallet is already unlocked.

RPC_PRIVACY_DECOY_MIN 

Privacy wallet is existed.

RPC_ERROR_CODE_UNKNOWN_ERROR 

Definition at line 31 of file protocol.h.

Function Documentation

◆ DeleteAuthCookie()

void DeleteAuthCookie ( )

Delete RPC authentication cookie from disk.

Definition at line 123 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 82 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 107 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 76 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 60 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 54 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 42 of file protocol.cpp.

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

◆ JSONRPCRequest()

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

JSON-RPC protocol.

PRCY 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 33 of file protocol.cpp.

Here is the call graph for this function: