Electroneum
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
cryptonote::core_rpc_server Class Reference

#include <core_rpc_server.h>

Inheritance diagram for cryptonote::core_rpc_server:
Inheritance graph
[legend]
Collaboration diagram for cryptonote::core_rpc_server:
Collaboration graph
[legend]

Public Types

typedef epee::net_utils::connection_context_base connection_context
 

Public Member Functions

 core_rpc_server (core &cr, nodetool::node_server< cryptonote::t_cryptonote_protocol_handler< cryptonote::core > > &p2p)
 
bool init (const boost::program_options::variables_map &vm, const bool restricted, const std::string &port)
 
network_type nettype () const
 
 CHAIN_HTTP_TO_MAP2 (connection_context)
 
bool on_get_height (const COMMAND_RPC_GET_HEIGHT::request &req, COMMAND_RPC_GET_HEIGHT::response &res, const connection_context *ctx=NULL)
 
bool on_get_blocks (const COMMAND_RPC_GET_BLOCKS_FAST::request &req, COMMAND_RPC_GET_BLOCKS_FAST::response &res, const connection_context *ctx=NULL)
 
bool on_get_alt_blocks_hashes (const COMMAND_RPC_GET_ALT_BLOCKS_HASHES::request &req, COMMAND_RPC_GET_ALT_BLOCKS_HASHES::response &res, const connection_context *ctx=NULL)
 
bool on_get_blocks_by_height (const COMMAND_RPC_GET_BLOCKS_BY_HEIGHT::request &req, COMMAND_RPC_GET_BLOCKS_BY_HEIGHT::response &res, const connection_context *ctx=NULL)
 
bool on_get_hashes (const COMMAND_RPC_GET_HASHES_FAST::request &req, COMMAND_RPC_GET_HASHES_FAST::response &res, const connection_context *ctx=NULL)
 
bool on_get_transactions (const COMMAND_RPC_GET_TRANSACTIONS::request &req, COMMAND_RPC_GET_TRANSACTIONS::response &res, const connection_context *ctx=NULL)
 
bool on_is_key_image_spent (const COMMAND_RPC_IS_KEY_IMAGE_SPENT::request &req, COMMAND_RPC_IS_KEY_IMAGE_SPENT::response &res, const connection_context *ctx=NULL)
 
bool on_get_indexes (const COMMAND_RPC_GET_TX_GLOBAL_OUTPUTS_INDEXES::request &req, COMMAND_RPC_GET_TX_GLOBAL_OUTPUTS_INDEXES::response &res, const connection_context *ctx=NULL)
 
bool on_send_raw_tx (const COMMAND_RPC_SEND_RAW_TX::request &req, COMMAND_RPC_SEND_RAW_TX::response &res, const connection_context *ctx=NULL)
 
bool on_start_mining (const COMMAND_RPC_START_MINING::request &req, COMMAND_RPC_START_MINING::response &res, const connection_context *ctx=NULL)
 
bool on_stop_mining (const COMMAND_RPC_STOP_MINING::request &req, COMMAND_RPC_STOP_MINING::response &res, const connection_context *ctx=NULL)
 
bool on_mining_status (const COMMAND_RPC_MINING_STATUS::request &req, COMMAND_RPC_MINING_STATUS::response &res, const connection_context *ctx=NULL)
 
bool on_get_outs_bin (const COMMAND_RPC_GET_OUTPUTS_BIN::request &req, COMMAND_RPC_GET_OUTPUTS_BIN::response &res, const connection_context *ctx=NULL)
 
bool on_get_outs (const COMMAND_RPC_GET_OUTPUTS::request &req, COMMAND_RPC_GET_OUTPUTS::response &res, const connection_context *ctx=NULL)
 
bool on_get_info (const COMMAND_RPC_GET_INFO::request &req, COMMAND_RPC_GET_INFO::response &res, const connection_context *ctx=NULL)
 
bool on_get_net_stats (const COMMAND_RPC_GET_NET_STATS::request &req, COMMAND_RPC_GET_NET_STATS::response &res, const connection_context *ctx=NULL)
 
bool on_save_bc (const COMMAND_RPC_SAVE_BC::request &req, COMMAND_RPC_SAVE_BC::response &res, const connection_context *ctx=NULL)
 
bool on_get_peer_list (const COMMAND_RPC_GET_PEER_LIST::request &req, COMMAND_RPC_GET_PEER_LIST::response &res, const connection_context *ctx=NULL)
 
bool on_set_log_hash_rate (const COMMAND_RPC_SET_LOG_HASH_RATE::request &req, COMMAND_RPC_SET_LOG_HASH_RATE::response &res, const connection_context *ctx=NULL)
 
bool on_set_log_level (const COMMAND_RPC_SET_LOG_LEVEL::request &req, COMMAND_RPC_SET_LOG_LEVEL::response &res, const connection_context *ctx=NULL)
 
bool on_set_log_categories (const COMMAND_RPC_SET_LOG_CATEGORIES::request &req, COMMAND_RPC_SET_LOG_CATEGORIES::response &res, const connection_context *ctx=NULL)
 
bool on_get_transaction_pool (const COMMAND_RPC_GET_TRANSACTION_POOL::request &req, COMMAND_RPC_GET_TRANSACTION_POOL::response &res, const connection_context *ctx=NULL)
 
bool on_get_transaction_pool_hashes_bin (const COMMAND_RPC_GET_TRANSACTION_POOL_HASHES_BIN::request &req, COMMAND_RPC_GET_TRANSACTION_POOL_HASHES_BIN::response &res, const connection_context *ctx=NULL)
 
bool on_get_transaction_pool_hashes (const COMMAND_RPC_GET_TRANSACTION_POOL_HASHES::request &req, COMMAND_RPC_GET_TRANSACTION_POOL_HASHES::response &res, const connection_context *ctx=NULL)
 
bool on_get_transaction_pool_stats (const COMMAND_RPC_GET_TRANSACTION_POOL_STATS::request &req, COMMAND_RPC_GET_TRANSACTION_POOL_STATS::response &res, const connection_context *ctx=NULL)
 
bool on_stop_daemon (const COMMAND_RPC_STOP_DAEMON::request &req, COMMAND_RPC_STOP_DAEMON::response &res, const connection_context *ctx=NULL)
 
bool on_get_limit (const COMMAND_RPC_GET_LIMIT::request &req, COMMAND_RPC_GET_LIMIT::response &res, const connection_context *ctx=NULL)
 
bool on_set_limit (const COMMAND_RPC_SET_LIMIT::request &req, COMMAND_RPC_SET_LIMIT::response &res, const connection_context *ctx=NULL)
 
bool on_out_peers (const COMMAND_RPC_OUT_PEERS::request &req, COMMAND_RPC_OUT_PEERS::response &res, const connection_context *ctx=NULL)
 
bool on_in_peers (const COMMAND_RPC_IN_PEERS::request &req, COMMAND_RPC_IN_PEERS::response &res, const connection_context *ctx=NULL)
 
bool on_start_save_graph (const COMMAND_RPC_START_SAVE_GRAPH::request &req, COMMAND_RPC_START_SAVE_GRAPH::response &res, const connection_context *ctx=NULL)
 
bool on_stop_save_graph (const COMMAND_RPC_STOP_SAVE_GRAPH::request &req, COMMAND_RPC_STOP_SAVE_GRAPH::response &res, const connection_context *ctx=NULL)
 
bool on_update (const COMMAND_RPC_UPDATE::request &req, COMMAND_RPC_UPDATE::response &res, const connection_context *ctx=NULL)
 
bool on_get_output_distribution_bin (const COMMAND_RPC_GET_OUTPUT_DISTRIBUTION::request &req, COMMAND_RPC_GET_OUTPUT_DISTRIBUTION::response &res, const connection_context *ctx=NULL)
 
bool on_pop_blocks (const COMMAND_RPC_POP_BLOCKS::request &req, COMMAND_RPC_POP_BLOCKS::response &res, const connection_context *ctx=NULL)
 
bool on_getblockcount (const COMMAND_RPC_GETBLOCKCOUNT::request &req, COMMAND_RPC_GETBLOCKCOUNT::response &res, const connection_context *ctx=NULL)
 
bool on_getblockhash (const COMMAND_RPC_GETBLOCKHASH::request &req, COMMAND_RPC_GETBLOCKHASH::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_getblocktemplate (const COMMAND_RPC_GETBLOCKTEMPLATE::request &req, COMMAND_RPC_GETBLOCKTEMPLATE::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_submitblock (const COMMAND_RPC_SUBMITBLOCK::request &req, COMMAND_RPC_SUBMITBLOCK::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_generateblocks (const COMMAND_RPC_GENERATEBLOCKS::request &req, COMMAND_RPC_GENERATEBLOCKS::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_get_last_block_header (const COMMAND_RPC_GET_LAST_BLOCK_HEADER::request &req, COMMAND_RPC_GET_LAST_BLOCK_HEADER::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_get_block_header_by_hash (const COMMAND_RPC_GET_BLOCK_HEADER_BY_HASH::request &req, COMMAND_RPC_GET_BLOCK_HEADER_BY_HASH::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_get_block_header_by_height (const COMMAND_RPC_GET_BLOCK_HEADER_BY_HEIGHT::request &req, COMMAND_RPC_GET_BLOCK_HEADER_BY_HEIGHT::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_get_block_headers_range (const COMMAND_RPC_GET_BLOCK_HEADERS_RANGE::request &req, COMMAND_RPC_GET_BLOCK_HEADERS_RANGE::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_get_block (const COMMAND_RPC_GET_BLOCK::request &req, COMMAND_RPC_GET_BLOCK::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_get_connections (const COMMAND_RPC_GET_CONNECTIONS::request &req, COMMAND_RPC_GET_CONNECTIONS::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_get_info_json (const COMMAND_RPC_GET_INFO::request &req, COMMAND_RPC_GET_INFO::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_hard_fork_info (const COMMAND_RPC_HARD_FORK_INFO::request &req, COMMAND_RPC_HARD_FORK_INFO::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_set_bans (const COMMAND_RPC_SETBANS::request &req, COMMAND_RPC_SETBANS::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_get_bans (const COMMAND_RPC_GETBANS::request &req, COMMAND_RPC_GETBANS::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_flush_txpool (const COMMAND_RPC_FLUSH_TRANSACTION_POOL::request &req, COMMAND_RPC_FLUSH_TRANSACTION_POOL::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_get_output_histogram (const COMMAND_RPC_GET_OUTPUT_HISTOGRAM::request &req, COMMAND_RPC_GET_OUTPUT_HISTOGRAM::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_get_version (const COMMAND_RPC_GET_VERSION::request &req, COMMAND_RPC_GET_VERSION::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_get_coinbase_tx_sum (const COMMAND_RPC_GET_COINBASE_TX_SUM::request &req, COMMAND_RPC_GET_COINBASE_TX_SUM::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_get_base_fee_estimate (const COMMAND_RPC_GET_BASE_FEE_ESTIMATE::request &req, COMMAND_RPC_GET_BASE_FEE_ESTIMATE::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_get_alternate_chains (const COMMAND_RPC_GET_ALTERNATE_CHAINS::request &req, COMMAND_RPC_GET_ALTERNATE_CHAINS::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_relay_tx (const COMMAND_RPC_RELAY_TX::request &req, COMMAND_RPC_RELAY_TX::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_sync_info (const COMMAND_RPC_SYNC_INFO::request &req, COMMAND_RPC_SYNC_INFO::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_get_txpool_backlog (const COMMAND_RPC_GET_TRANSACTION_POOL_BACKLOG::request &req, COMMAND_RPC_GET_TRANSACTION_POOL_BACKLOG::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_get_output_distribution (const COMMAND_RPC_GET_OUTPUT_DISTRIBUTION::request &req, COMMAND_RPC_GET_OUTPUT_DISTRIBUTION::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_prune_blockchain (const COMMAND_RPC_PRUNE_BLOCKCHAIN::request &req, COMMAND_RPC_PRUNE_BLOCKCHAIN::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_set_validator_key (const COMMAND_RPC_SET_VALIDATOR_KEY::request &req, COMMAND_RPC_SET_VALIDATOR_KEY::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_generate_ed25519_keypair (const COMMAND_RPC_GENERATE_ED25519_KEYPAIR::request &req, COMMAND_RPC_GENERATE_ED25519_KEYPAIR::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_sign_message (const COMMAND_RPC_SIGN_MESSAGE::request &req, COMMAND_RPC_SIGN_MESSAGE::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 
bool on_inject_emergency_vlist (const COMMAND_RPC_INJECT_EMERGENCY_VLIST::request &req, COMMAND_RPC_INJECT_EMERGENCY_VLIST::response &res, epee::json_rpc::error &error_resp, const connection_context *ctx=NULL)
 

Static Public Member Functions

static void init_options (boost::program_options::options_description &desc)
 

Static Public Attributes

static const command_line::arg_descriptor< boolarg_public_node
 
static const command_line::arg_descriptor< std::string, false, true, 2 > arg_rpc_bind_port
 
static const command_line::arg_descriptor< std::string > arg_rpc_restricted_bind_port
 
static const command_line::arg_descriptor< boolarg_restricted_rpc
 
static const command_line::arg_descriptor< std::string > arg_rpc_ssl
 
static const command_line::arg_descriptor< std::string > arg_rpc_ssl_private_key
 
static const command_line::arg_descriptor< std::string > arg_rpc_ssl_certificate
 
static const command_line::arg_descriptor< std::string > arg_rpc_ssl_ca_certificates
 
static const command_line::arg_descriptor< std::vector< std::string > > arg_rpc_ssl_allowed_fingerprints
 
static const command_line::arg_descriptor< boolarg_rpc_ssl_allow_any_cert
 
static const command_line::arg_descriptor< std::string > arg_bootstrap_daemon_address
 
static const command_line::arg_descriptor< std::string > arg_bootstrap_daemon_login
 

Private Types

enum  invoke_http_mode { JON , BIN , JON_RPC }
 

Private Member Functions

bool check_core_busy ()
 
bool check_core_ready ()
 
uint64_t get_block_reward (const block &blk)
 
bool fill_block_header_response (const block &blk, bool orphan_status, uint64_t height, const crypto::hash &hash, block_header_response &response, bool fill_pow_hash)
 
template<typename COMMAND_TYPE >
bool use_bootstrap_daemon_if_necessary (const invoke_http_mode &mode, const std::string &command_name, const typename COMMAND_TYPE::request &req, typename COMMAND_TYPE::response &res, bool &r)
 

Private Attributes

corem_core
 
nodetool::node_server< cryptonote::t_cryptonote_protocol_handler< cryptonote::core > > & m_p2p
 
std::string m_bootstrap_daemon_address
 
epee::net_utils::http::http_simple_client m_http_client
 
boost::shared_mutex m_bootstrap_daemon_mutex
 
bool m_should_use_bootstrap_daemon
 
std::chrono::system_clock::time_point m_bootstrap_height_check_time
 
bool m_was_bootstrap_ever_used
 
network_type m_nettype
 
bool m_restricted
 

Member Typedef Documentation

◆ connection_context

typedef epee::net_utils::connection_context_base cryptonote::core_rpc_server::connection_context

Member Enumeration Documentation

◆ invoke_http_mode

Enumerator
JON 
BIN 
JON_RPC 

Constructor & Destructor Documentation

◆ core_rpc_server()

cryptonote::core_rpc_server::core_rpc_server ( core cr,
nodetool::node_server< cryptonote::t_cryptonote_protocol_handler< cryptonote::core > > &  p2p 
)

Member Function Documentation

◆ CHAIN_HTTP_TO_MAP2()

cryptonote::core_rpc_server::CHAIN_HTTP_TO_MAP2 ( connection_context  )

◆ check_core_busy()

bool cryptonote::core_rpc_server::check_core_busy ( )
private

◆ check_core_ready()

bool cryptonote::core_rpc_server::check_core_ready ( )
private

◆ fill_block_header_response()

bool cryptonote::core_rpc_server::fill_block_header_response ( const block blk,
bool  orphan_status,
uint64_t  height,
const crypto::hash hash,
block_header_response response,
bool  fill_pow_hash 
)
private

◆ get_block_reward()

uint64_t cryptonote::core_rpc_server::get_block_reward ( const block blk)
private

◆ init()

bool cryptonote::core_rpc_server::init ( const boost::program_options::variables_map &  vm,
const bool  restricted,
const std::string &  port 
)

◆ init_options()

void cryptonote::core_rpc_server::init_options ( boost::program_options::options_description &  desc)
static

◆ nettype()

network_type cryptonote::core_rpc_server::nettype ( ) const
inline

◆ on_flush_txpool()

bool cryptonote::core_rpc_server::on_flush_txpool ( const COMMAND_RPC_FLUSH_TRANSACTION_POOL::request req,
COMMAND_RPC_FLUSH_TRANSACTION_POOL::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_generate_ed25519_keypair()

bool cryptonote::core_rpc_server::on_generate_ed25519_keypair ( const COMMAND_RPC_GENERATE_ED25519_KEYPAIR::request req,
COMMAND_RPC_GENERATE_ED25519_KEYPAIR::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_generateblocks()

bool cryptonote::core_rpc_server::on_generateblocks ( const COMMAND_RPC_GENERATEBLOCKS::request req,
COMMAND_RPC_GENERATEBLOCKS::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_get_alt_blocks_hashes()

bool cryptonote::core_rpc_server::on_get_alt_blocks_hashes ( const COMMAND_RPC_GET_ALT_BLOCKS_HASHES::request req,
COMMAND_RPC_GET_ALT_BLOCKS_HASHES::response res,
const connection_context ctx = NULL 
)

◆ on_get_alternate_chains()

bool cryptonote::core_rpc_server::on_get_alternate_chains ( const COMMAND_RPC_GET_ALTERNATE_CHAINS::request req,
COMMAND_RPC_GET_ALTERNATE_CHAINS::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_get_bans()

bool cryptonote::core_rpc_server::on_get_bans ( const COMMAND_RPC_GETBANS::request req,
COMMAND_RPC_GETBANS::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_get_base_fee_estimate()

bool cryptonote::core_rpc_server::on_get_base_fee_estimate ( const COMMAND_RPC_GET_BASE_FEE_ESTIMATE::request req,
COMMAND_RPC_GET_BASE_FEE_ESTIMATE::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_get_block()

bool cryptonote::core_rpc_server::on_get_block ( const COMMAND_RPC_GET_BLOCK::request req,
COMMAND_RPC_GET_BLOCK::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_get_block_header_by_hash()

bool cryptonote::core_rpc_server::on_get_block_header_by_hash ( const COMMAND_RPC_GET_BLOCK_HEADER_BY_HASH::request req,
COMMAND_RPC_GET_BLOCK_HEADER_BY_HASH::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_get_block_header_by_height()

bool cryptonote::core_rpc_server::on_get_block_header_by_height ( const COMMAND_RPC_GET_BLOCK_HEADER_BY_HEIGHT::request req,
COMMAND_RPC_GET_BLOCK_HEADER_BY_HEIGHT::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_get_block_headers_range()

bool cryptonote::core_rpc_server::on_get_block_headers_range ( const COMMAND_RPC_GET_BLOCK_HEADERS_RANGE::request req,
COMMAND_RPC_GET_BLOCK_HEADERS_RANGE::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_get_blocks()

bool cryptonote::core_rpc_server::on_get_blocks ( const COMMAND_RPC_GET_BLOCKS_FAST::request req,
COMMAND_RPC_GET_BLOCKS_FAST::response res,
const connection_context ctx = NULL 
)

◆ on_get_blocks_by_height()

bool cryptonote::core_rpc_server::on_get_blocks_by_height ( const COMMAND_RPC_GET_BLOCKS_BY_HEIGHT::request req,
COMMAND_RPC_GET_BLOCKS_BY_HEIGHT::response res,
const connection_context ctx = NULL 
)

◆ on_get_coinbase_tx_sum()

bool cryptonote::core_rpc_server::on_get_coinbase_tx_sum ( const COMMAND_RPC_GET_COINBASE_TX_SUM::request req,
COMMAND_RPC_GET_COINBASE_TX_SUM::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_get_connections()

bool cryptonote::core_rpc_server::on_get_connections ( const COMMAND_RPC_GET_CONNECTIONS::request req,
COMMAND_RPC_GET_CONNECTIONS::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_get_hashes()

bool cryptonote::core_rpc_server::on_get_hashes ( const COMMAND_RPC_GET_HASHES_FAST::request req,
COMMAND_RPC_GET_HASHES_FAST::response res,
const connection_context ctx = NULL 
)

◆ on_get_height()

bool cryptonote::core_rpc_server::on_get_height ( const COMMAND_RPC_GET_HEIGHT::request req,
COMMAND_RPC_GET_HEIGHT::response res,
const connection_context ctx = NULL 
)

◆ on_get_indexes()

bool cryptonote::core_rpc_server::on_get_indexes ( const COMMAND_RPC_GET_TX_GLOBAL_OUTPUTS_INDEXES::request req,
COMMAND_RPC_GET_TX_GLOBAL_OUTPUTS_INDEXES::response res,
const connection_context ctx = NULL 
)

◆ on_get_info()

bool cryptonote::core_rpc_server::on_get_info ( const COMMAND_RPC_GET_INFO::request req,
COMMAND_RPC_GET_INFO::response res,
const connection_context ctx = NULL 
)

◆ on_get_info_json()

bool cryptonote::core_rpc_server::on_get_info_json ( const COMMAND_RPC_GET_INFO::request req,
COMMAND_RPC_GET_INFO::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_get_last_block_header()

bool cryptonote::core_rpc_server::on_get_last_block_header ( const COMMAND_RPC_GET_LAST_BLOCK_HEADER::request req,
COMMAND_RPC_GET_LAST_BLOCK_HEADER::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_get_limit()

bool cryptonote::core_rpc_server::on_get_limit ( const COMMAND_RPC_GET_LIMIT::request req,
COMMAND_RPC_GET_LIMIT::response res,
const connection_context ctx = NULL 
)

◆ on_get_net_stats()

bool cryptonote::core_rpc_server::on_get_net_stats ( const COMMAND_RPC_GET_NET_STATS::request req,
COMMAND_RPC_GET_NET_STATS::response res,
const connection_context ctx = NULL 
)

◆ on_get_output_distribution()

bool cryptonote::core_rpc_server::on_get_output_distribution ( const COMMAND_RPC_GET_OUTPUT_DISTRIBUTION::request req,
COMMAND_RPC_GET_OUTPUT_DISTRIBUTION::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_get_output_distribution_bin()

bool cryptonote::core_rpc_server::on_get_output_distribution_bin ( const COMMAND_RPC_GET_OUTPUT_DISTRIBUTION::request req,
COMMAND_RPC_GET_OUTPUT_DISTRIBUTION::response res,
const connection_context ctx = NULL 
)

◆ on_get_output_histogram()

bool cryptonote::core_rpc_server::on_get_output_histogram ( const COMMAND_RPC_GET_OUTPUT_HISTOGRAM::request req,
COMMAND_RPC_GET_OUTPUT_HISTOGRAM::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_get_outs()

bool cryptonote::core_rpc_server::on_get_outs ( const COMMAND_RPC_GET_OUTPUTS::request req,
COMMAND_RPC_GET_OUTPUTS::response res,
const connection_context ctx = NULL 
)

◆ on_get_outs_bin()

bool cryptonote::core_rpc_server::on_get_outs_bin ( const COMMAND_RPC_GET_OUTPUTS_BIN::request req,
COMMAND_RPC_GET_OUTPUTS_BIN::response res,
const connection_context ctx = NULL 
)

◆ on_get_peer_list()

bool cryptonote::core_rpc_server::on_get_peer_list ( const COMMAND_RPC_GET_PEER_LIST::request req,
COMMAND_RPC_GET_PEER_LIST::response res,
const connection_context ctx = NULL 
)

◆ on_get_transaction_pool()

bool cryptonote::core_rpc_server::on_get_transaction_pool ( const COMMAND_RPC_GET_TRANSACTION_POOL::request req,
COMMAND_RPC_GET_TRANSACTION_POOL::response res,
const connection_context ctx = NULL 
)

◆ on_get_transaction_pool_hashes()

bool cryptonote::core_rpc_server::on_get_transaction_pool_hashes ( const COMMAND_RPC_GET_TRANSACTION_POOL_HASHES::request req,
COMMAND_RPC_GET_TRANSACTION_POOL_HASHES::response res,
const connection_context ctx = NULL 
)

◆ on_get_transaction_pool_hashes_bin()

bool cryptonote::core_rpc_server::on_get_transaction_pool_hashes_bin ( const COMMAND_RPC_GET_TRANSACTION_POOL_HASHES_BIN::request req,
COMMAND_RPC_GET_TRANSACTION_POOL_HASHES_BIN::response res,
const connection_context ctx = NULL 
)

◆ on_get_transaction_pool_stats()

bool cryptonote::core_rpc_server::on_get_transaction_pool_stats ( const COMMAND_RPC_GET_TRANSACTION_POOL_STATS::request req,
COMMAND_RPC_GET_TRANSACTION_POOL_STATS::response res,
const connection_context ctx = NULL 
)

◆ on_get_transactions()

bool cryptonote::core_rpc_server::on_get_transactions ( const COMMAND_RPC_GET_TRANSACTIONS::request req,
COMMAND_RPC_GET_TRANSACTIONS::response res,
const connection_context ctx = NULL 
)

◆ on_get_txpool_backlog()

bool cryptonote::core_rpc_server::on_get_txpool_backlog ( const COMMAND_RPC_GET_TRANSACTION_POOL_BACKLOG::request req,
COMMAND_RPC_GET_TRANSACTION_POOL_BACKLOG::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_get_version()

bool cryptonote::core_rpc_server::on_get_version ( const COMMAND_RPC_GET_VERSION::request req,
COMMAND_RPC_GET_VERSION::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_getblockcount()

bool cryptonote::core_rpc_server::on_getblockcount ( const COMMAND_RPC_GETBLOCKCOUNT::request req,
COMMAND_RPC_GETBLOCKCOUNT::response res,
const connection_context ctx = NULL 
)

◆ on_getblockhash()

bool cryptonote::core_rpc_server::on_getblockhash ( const COMMAND_RPC_GETBLOCKHASH::request req,
COMMAND_RPC_GETBLOCKHASH::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_getblocktemplate()

bool cryptonote::core_rpc_server::on_getblocktemplate ( const COMMAND_RPC_GETBLOCKTEMPLATE::request req,
COMMAND_RPC_GETBLOCKTEMPLATE::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_hard_fork_info()

bool cryptonote::core_rpc_server::on_hard_fork_info ( const COMMAND_RPC_HARD_FORK_INFO::request req,
COMMAND_RPC_HARD_FORK_INFO::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_in_peers()

bool cryptonote::core_rpc_server::on_in_peers ( const COMMAND_RPC_IN_PEERS::request req,
COMMAND_RPC_IN_PEERS::response res,
const connection_context ctx = NULL 
)

◆ on_inject_emergency_vlist()

bool cryptonote::core_rpc_server::on_inject_emergency_vlist ( const COMMAND_RPC_INJECT_EMERGENCY_VLIST::request req,
COMMAND_RPC_INJECT_EMERGENCY_VLIST::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_is_key_image_spent()

bool cryptonote::core_rpc_server::on_is_key_image_spent ( const COMMAND_RPC_IS_KEY_IMAGE_SPENT::request req,
COMMAND_RPC_IS_KEY_IMAGE_SPENT::response res,
const connection_context ctx = NULL 
)

◆ on_mining_status()

bool cryptonote::core_rpc_server::on_mining_status ( const COMMAND_RPC_MINING_STATUS::request req,
COMMAND_RPC_MINING_STATUS::response res,
const connection_context ctx = NULL 
)

◆ on_out_peers()

bool cryptonote::core_rpc_server::on_out_peers ( const COMMAND_RPC_OUT_PEERS::request req,
COMMAND_RPC_OUT_PEERS::response res,
const connection_context ctx = NULL 
)

◆ on_pop_blocks()

bool cryptonote::core_rpc_server::on_pop_blocks ( const COMMAND_RPC_POP_BLOCKS::request req,
COMMAND_RPC_POP_BLOCKS::response res,
const connection_context ctx = NULL 
)

◆ on_prune_blockchain()

bool cryptonote::core_rpc_server::on_prune_blockchain ( const COMMAND_RPC_PRUNE_BLOCKCHAIN::request req,
COMMAND_RPC_PRUNE_BLOCKCHAIN::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_relay_tx()

bool cryptonote::core_rpc_server::on_relay_tx ( const COMMAND_RPC_RELAY_TX::request req,
COMMAND_RPC_RELAY_TX::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_save_bc()

bool cryptonote::core_rpc_server::on_save_bc ( const COMMAND_RPC_SAVE_BC::request req,
COMMAND_RPC_SAVE_BC::response res,
const connection_context ctx = NULL 
)

◆ on_send_raw_tx()

bool cryptonote::core_rpc_server::on_send_raw_tx ( const COMMAND_RPC_SEND_RAW_TX::request req,
COMMAND_RPC_SEND_RAW_TX::response res,
const connection_context ctx = NULL 
)

◆ on_set_bans()

bool cryptonote::core_rpc_server::on_set_bans ( const COMMAND_RPC_SETBANS::request req,
COMMAND_RPC_SETBANS::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_set_limit()

bool cryptonote::core_rpc_server::on_set_limit ( const COMMAND_RPC_SET_LIMIT::request req,
COMMAND_RPC_SET_LIMIT::response res,
const connection_context ctx = NULL 
)

◆ on_set_log_categories()

bool cryptonote::core_rpc_server::on_set_log_categories ( const COMMAND_RPC_SET_LOG_CATEGORIES::request req,
COMMAND_RPC_SET_LOG_CATEGORIES::response res,
const connection_context ctx = NULL 
)

◆ on_set_log_hash_rate()

bool cryptonote::core_rpc_server::on_set_log_hash_rate ( const COMMAND_RPC_SET_LOG_HASH_RATE::request req,
COMMAND_RPC_SET_LOG_HASH_RATE::response res,
const connection_context ctx = NULL 
)

◆ on_set_log_level()

bool cryptonote::core_rpc_server::on_set_log_level ( const COMMAND_RPC_SET_LOG_LEVEL::request req,
COMMAND_RPC_SET_LOG_LEVEL::response res,
const connection_context ctx = NULL 
)

◆ on_set_validator_key()

bool cryptonote::core_rpc_server::on_set_validator_key ( const COMMAND_RPC_SET_VALIDATOR_KEY::request req,
COMMAND_RPC_SET_VALIDATOR_KEY::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_sign_message()

bool cryptonote::core_rpc_server::on_sign_message ( const COMMAND_RPC_SIGN_MESSAGE::request req,
COMMAND_RPC_SIGN_MESSAGE::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_start_mining()

bool cryptonote::core_rpc_server::on_start_mining ( const COMMAND_RPC_START_MINING::request req,
COMMAND_RPC_START_MINING::response res,
const connection_context ctx = NULL 
)

◆ on_start_save_graph()

bool cryptonote::core_rpc_server::on_start_save_graph ( const COMMAND_RPC_START_SAVE_GRAPH::request req,
COMMAND_RPC_START_SAVE_GRAPH::response res,
const connection_context ctx = NULL 
)

◆ on_stop_daemon()

bool cryptonote::core_rpc_server::on_stop_daemon ( const COMMAND_RPC_STOP_DAEMON::request req,
COMMAND_RPC_STOP_DAEMON::response res,
const connection_context ctx = NULL 
)

◆ on_stop_mining()

bool cryptonote::core_rpc_server::on_stop_mining ( const COMMAND_RPC_STOP_MINING::request req,
COMMAND_RPC_STOP_MINING::response res,
const connection_context ctx = NULL 
)

◆ on_stop_save_graph()

bool cryptonote::core_rpc_server::on_stop_save_graph ( const COMMAND_RPC_STOP_SAVE_GRAPH::request req,
COMMAND_RPC_STOP_SAVE_GRAPH::response res,
const connection_context ctx = NULL 
)

◆ on_submitblock()

bool cryptonote::core_rpc_server::on_submitblock ( const COMMAND_RPC_SUBMITBLOCK::request req,
COMMAND_RPC_SUBMITBLOCK::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_sync_info()

bool cryptonote::core_rpc_server::on_sync_info ( const COMMAND_RPC_SYNC_INFO::request req,
COMMAND_RPC_SYNC_INFO::response res,
epee::json_rpc::error &  error_resp,
const connection_context ctx = NULL 
)

◆ on_update()

bool cryptonote::core_rpc_server::on_update ( const COMMAND_RPC_UPDATE::request req,
COMMAND_RPC_UPDATE::response res,
const connection_context ctx = NULL 
)

◆ use_bootstrap_daemon_if_necessary()

template<typename COMMAND_TYPE >
bool cryptonote::core_rpc_server::use_bootstrap_daemon_if_necessary ( const invoke_http_mode mode,
const std::string &  command_name,
const typename COMMAND_TYPE::request &  req,
typename COMMAND_TYPE::response &  res,
bool r 
)
private

Member Data Documentation

◆ arg_bootstrap_daemon_address

const command_line::arg_descriptor< std::string > cryptonote::core_rpc_server::arg_bootstrap_daemon_address
static
Initial value:
= {
"bootstrap-daemon-address"
, "URL of a 'bootstrap' remote daemon that the connected wallets can use while this daemon is still not fully synced"
, ""
}

◆ arg_bootstrap_daemon_login

const command_line::arg_descriptor< std::string > cryptonote::core_rpc_server::arg_bootstrap_daemon_login
static
Initial value:
= {
"bootstrap-daemon-login"
, "Specify username:password for the bootstrap daemon login"
, ""
}

◆ arg_public_node

const command_line::arg_descriptor<bool> cryptonote::core_rpc_server::arg_public_node
static

◆ arg_restricted_rpc

const command_line::arg_descriptor< bool > cryptonote::core_rpc_server::arg_restricted_rpc
static
Initial value:
= {
"restricted-rpc"
, "Restrict RPC to view only commands and do not return privacy sensitive data in RPC calls"
, false
}

◆ arg_rpc_bind_port

const command_line::arg_descriptor< std::string, false, true, 2 > cryptonote::core_rpc_server::arg_rpc_bind_port
static
Initial value:
= {
"rpc-bind-port"
, "Port for RPC server"
, std::to_string(config::RPC_DEFAULT_PORT)
, [](std::array<bool, 2> testnet_stagenet, bool defaulted, std::string val)->std::string {
if (testnet_stagenet[0] && defaulted)
return std::to_string(config::testnet::RPC_DEFAULT_PORT);
else if (testnet_stagenet[1] && defaulted)
return std::to_string(config::stagenet::RPC_DEFAULT_PORT);
return val;
}
}
uint16_t const RPC_DEFAULT_PORT
Definition: cryptonote_config.h:230
uint16_t const RPC_DEFAULT_PORT
Definition: cryptonote_config.h:215
uint16_t const RPC_DEFAULT_PORT
Definition: cryptonote_config.h:201
const command_line::arg_descriptor< bool, false > arg_testnet_on
Definition: cryptonote_core.cpp:71
const command_line::arg_descriptor< bool, false > arg_stagenet_on
Definition: cryptonote_core.cpp:76

◆ arg_rpc_restricted_bind_port

const command_line::arg_descriptor< std::string > cryptonote::core_rpc_server::arg_rpc_restricted_bind_port
static
Initial value:
= {
"rpc-restricted-bind-port"
, "Port for restricted RPC server"
, ""
}

◆ arg_rpc_ssl

const command_line::arg_descriptor<std::string> cryptonote::core_rpc_server::arg_rpc_ssl
static

◆ arg_rpc_ssl_allow_any_cert

const command_line::arg_descriptor<bool> cryptonote::core_rpc_server::arg_rpc_ssl_allow_any_cert
static

◆ arg_rpc_ssl_allowed_fingerprints

const command_line::arg_descriptor<std::vector<std::string> > cryptonote::core_rpc_server::arg_rpc_ssl_allowed_fingerprints
static

◆ arg_rpc_ssl_ca_certificates

const command_line::arg_descriptor<std::string> cryptonote::core_rpc_server::arg_rpc_ssl_ca_certificates
static

◆ arg_rpc_ssl_certificate

const command_line::arg_descriptor<std::string> cryptonote::core_rpc_server::arg_rpc_ssl_certificate
static

◆ arg_rpc_ssl_private_key

const command_line::arg_descriptor<std::string> cryptonote::core_rpc_server::arg_rpc_ssl_private_key
static

◆ m_bootstrap_daemon_address

std::string cryptonote::core_rpc_server::m_bootstrap_daemon_address
private

◆ m_bootstrap_daemon_mutex

boost::shared_mutex cryptonote::core_rpc_server::m_bootstrap_daemon_mutex
private

◆ m_bootstrap_height_check_time

std::chrono::system_clock::time_point cryptonote::core_rpc_server::m_bootstrap_height_check_time
private

◆ m_core

core& cryptonote::core_rpc_server::m_core
private

◆ m_http_client

epee::net_utils::http::http_simple_client cryptonote::core_rpc_server::m_http_client
private

◆ m_nettype

network_type cryptonote::core_rpc_server::m_nettype
private

◆ m_p2p

◆ m_restricted

bool cryptonote::core_rpc_server::m_restricted
private

◆ m_should_use_bootstrap_daemon

bool cryptonote::core_rpc_server::m_should_use_bootstrap_daemon
private

◆ m_was_bootstrap_ever_used

bool cryptonote::core_rpc_server::m_was_bootstrap_ever_used
private

The documentation for this class was generated from the following files: