Fabcoin Core  0.16.2
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_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,
  RPC_WALLET_NOT_FOUND = -18, RPC_WALLET_NOT_SPECIFIED = -19
}
 Fabcoin 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)
 
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

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.

Fabcoin 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.

std::exception thrown in command handling

RPC_FORBIDDEN_BY_SAFE_MODE 

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

RPC_TYPE_ERROR 

Unexpected type was passed as parameter.

RPC_INVALID_ADDRESS_OR_KEY 

Invalid address or key.

RPC_OUT_OF_MEMORY 

Ran out of memory during operation.

RPC_INVALID_PARAMETER 

Invalid, missing or duplicate parameter.

RPC_DATABASE_ERROR 

Database error.

RPC_DESERIALIZATION_ERROR 

Error parsing or validating structure in raw format.

RPC_VERIFY_ERROR 

General error during transaction or block submission.

RPC_VERIFY_REJECTED 

Transaction or block was rejected by network rules.

RPC_VERIFY_ALREADY_IN_CHAIN 

Transaction already in chain.

RPC_IN_WARMUP 

Client still warming up.

RPC_TRANSACTION_ERROR 

Aliases for backward compatibility.

RPC_TRANSACTION_REJECTED 
RPC_TRANSACTION_ALREADY_IN_CHAIN 
RPC_CLIENT_NOT_CONNECTED 

P2P client errors.

Fabcoin is not connected

RPC_CLIENT_IN_INITIAL_DOWNLOAD 

Still downloading initial blocks.

RPC_CLIENT_NODE_ALREADY_ADDED 

Node is already added.

RPC_CLIENT_NODE_NOT_ADDED 

Node has not been added before.

RPC_CLIENT_NODE_NOT_CONNECTED 

Node to disconnect not found in connected nodes.

RPC_CLIENT_INVALID_IP_OR_SUBNET 

Invalid IP/Subnet.

RPC_CLIENT_P2P_DISABLED 

No valid connection manager instance found.

RPC_WALLET_ERROR 

Wallet errors.

Unspecified problem with wallet (key not found etc.)

RPC_WALLET_INSUFFICIENT_FUNDS 

Not enough funds in wallet or account.

RPC_WALLET_INVALID_ACCOUNT_NAME 

Invalid account name.

RPC_WALLET_KEYPOOL_RAN_OUT 

Keypool ran out, call keypoolrefill first.

RPC_WALLET_UNLOCK_NEEDED 

Enter the wallet passphrase with walletpassphrase first.

RPC_WALLET_PASSPHRASE_INCORRECT 

The wallet passphrase entered was incorrect.

RPC_WALLET_WRONG_ENC_STATE 

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

RPC_WALLET_ENCRYPTION_FAILED 

Failed to encrypt the wallet.

RPC_WALLET_ALREADY_UNLOCKED 

Wallet is already unlocked.

RPC_WALLET_NOT_FOUND 

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

void DeleteAuthCookie ( )

Delete RPC authentication cookie from disk.

Definition at line 129 of file protocol.cpp.

Here is the caller graph for this function:

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

Here is the call graph for this function:

bool GetAuthCookie ( std::string *  cookie_out)

Read the RPC authentication cookie from disk.

Definition at line 113 of file protocol.cpp.

Here is the caller graph for this function:

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

Definition at line 54 of file protocol.cpp.

Here is the call graph for this function:

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

Definition at line 48 of file protocol.cpp.

Here is the call graph for this function:

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

Definition at line 36 of file protocol.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

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

JSON-RPC protocol.

Fabcoin 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

Definition at line 27 of file protocol.cpp.

Here is the call graph for this function:

Here is the caller graph for this function: