Bitcoin ABC  0.29.2
P2P Digital Currency
Classes | Macros | Typedefs | Functions | Variables
bitcoin-cli.cpp File Reference
#include <chainparamsbase.h>
#include <clientversion.h>
#include <currencyunit.h>
#include <rpc/client.h>
#include <rpc/mining.h>
#include <rpc/protocol.h>
#include <rpc/request.h>
#include <support/events.h>
#include <tinyformat.h>
#include <util/strencodings.h>
#include <util/system.h>
#include <util/translation.h>
#include <event2/buffer.h>
#include <event2/keyvalq_struct.h>
#include <compat/stdin.h>
#include <univalue.h>
#include <algorithm>
#include <chrono>
#include <cmath>
#include <cstdio>
#include <functional>
#include <memory>
#include <string>
#include <tuple>
Include dependency graph for bitcoin-cli.cpp:

Go to the source code of this file.

Classes

class  CConnectionFailed
 
struct  HTTPReply
 Reply structure for request_done to fill in. More...
 
class  BaseRequestHandler
 Class that handles the conversion from a command-line to a JSON-RPC request, as well as converting back to a JSON object that can be shown as result. More...
 
class  GetinfoRequestHandler
 Process getinfo requests. More...
 
class  NetinfoRequestHandler
 Process netinfo requests. More...
 
struct  NetinfoRequestHandler::Peer
 
class  GenerateToAddressRequestHandler
 Process RPC generatetoaddress request. More...
 
class  DefaultRequestHandler
 Process default single requests. More...
 

Macros

#define EVENT_LOG_ERR   _EVENT_LOG_ERR
 

Typedefs

using CliClock = std::chrono::system_clock
 

Functions

static void SetupCliArgs (ArgsManager &argsman)
 
static void libevent_log_cb (int severity, const char *msg)
 libevent event log callback More...
 
static int AppInitRPC (int argc, char *argv[])
 
static std::string http_errorstring (int code)
 
static void http_request_done (struct evhttp_request *req, void *ctx)
 
static UniValue CallRPC (BaseRequestHandler *rh, const std::string &strMethod, const std::vector< std::string > &args, const std::optional< std::string > &rpcwallet={})
 
static UniValue ConnectAndCallRPC (BaseRequestHandler *rh, const std::string &strMethod, const std::vector< std::string > &args, const std::optional< std::string > &rpcwallet={})
 ConnectAndCallRPC wraps CallRPC with -rpcwait and an exception handler. More...
 
static void ParseResult (const UniValue &result, std::string &strPrint)
 Parse UniValue result to update the message to print to std::cout. More...
 
static void ParseError (const UniValue &error, std::string &strPrint, int &nRet)
 Parse UniValue error to update the message to print to std::cerr and the code to return. More...
 
static void GetWalletBalances (UniValue &result)
 GetWalletBalances calls listwallets; if more than one wallet is loaded, it then fetches mine.trusted balances for each loaded wallet and pushes them to result. More...
 
static UniValue GetNewAddress ()
 Call RPC getnewaddress. More...
 
static void SetGenerateToAddressArgs (const std::string &address, std::vector< std::string > &args)
 Check bounds and set up args for RPC generatetoaddress params: nblocks, address, maxtries. More...
 
static int CommandLineRPC (int argc, char *argv[])
 
int main (int argc, char *argv[])
 

Variables

const std::function< std::string(const char *)> G_TRANSLATION_FUN = nullptr
 Translate string to current locale using Qt. More...
 
static const char DEFAULT_RPCCONNECT [] = "127.0.0.1"
 
static const int DEFAULT_HTTP_CLIENT_TIMEOUT = 900
 
static const bool DEFAULT_NAMED = false
 
static const int CONTINUE_EXECUTION = -1
 
static const std::string DEFAULT_NBLOCKS = "1"
 Default number of blocks to generate for RPC generatetoaddress. More...
 

Macro Definition Documentation

◆ EVENT_LOG_ERR

#define EVENT_LOG_ERR   _EVENT_LOG_ERR

Typedef Documentation

◆ CliClock

using CliClock = std::chrono::system_clock

Definition at line 41 of file bitcoin-cli.cpp.

Function Documentation

◆ AppInitRPC()

static int AppInitRPC ( int  argc,
char *  argv[] 
)
static

Definition at line 194 of file bitcoin-cli.cpp.

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

◆ CallRPC()

static UniValue CallRPC ( BaseRequestHandler rh,
const std::string &  strMethod,
const std::vector< std::string > &  args,
const std::optional< std::string > &  rpcwallet = {} 
)
static

Definition at line 708 of file bitcoin-cli.cpp.

◆ CommandLineRPC()

static int CommandLineRPC ( int  argc,
char *  argv[] 
)
static

Definition at line 998 of file bitcoin-cli.cpp.

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

◆ ConnectAndCallRPC()

static UniValue ConnectAndCallRPC ( BaseRequestHandler rh,
const std::string &  strMethod,
const std::vector< std::string > &  args,
const std::optional< std::string > &  rpcwallet = {} 
)
static

ConnectAndCallRPC wraps CallRPC with -rpcwait and an exception handler.

Parameters
[in]rhPointer to RequestHandler.
[in]strMethodReference to const string method to forward to CallRPC.
[in]rpcwalletReference to const optional string wallet name to forward to CallRPC.
Returns
the RPC response as a UniValue object.
Exceptions
aCConnectionFailed std::runtime_error if connection failed or RPC server still in warmup.

Definition at line 868 of file bitcoin-cli.cpp.

Here is the caller graph for this function:

◆ GetNewAddress()

static UniValue GetNewAddress ( )
static

Call RPC getnewaddress.

Returns
getnewaddress response as a UniValue object.

Definition at line 966 of file bitcoin-cli.cpp.

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

◆ GetWalletBalances()

static void GetWalletBalances ( UniValue result)
static

GetWalletBalances calls listwallets; if more than one wallet is loaded, it then fetches mine.trusted balances for each loaded wallet and pushes them to result.

Parameters
resultReference to UniValue object the wallet names and balances are pushed to.

Definition at line 938 of file bitcoin-cli.cpp.

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

◆ http_errorstring()

static std::string http_errorstring ( int  code)
static

Definition at line 260 of file bitcoin-cli.cpp.

◆ http_request_done()

static void http_request_done ( struct evhttp_request *  req,
void *  ctx 
)
static

If req is nullptr, it means an error occurred while connecting: the error code will have been passed to http_error_cb.

Definition at line 281 of file bitcoin-cli.cpp.

◆ libevent_log_cb()

static void libevent_log_cb ( int  severity,
const char *  msg 
)
static

libevent event log callback

Definition at line 164 of file bitcoin-cli.cpp.

Here is the caller graph for this function:

◆ main()

int main ( int  argc,
char *  argv[] 
)

Definition at line 1131 of file bitcoin-cli.cpp.

Here is the call graph for this function:

◆ ParseError()

static void ParseError ( const UniValue error,
std::string &  strPrint,
int &  nRet 
)
static

Parse UniValue error to update the message to print to std::cerr and the code to return.

Definition at line 908 of file bitcoin-cli.cpp.

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

◆ ParseResult()

static void ParseResult ( const UniValue result,
std::string &  strPrint 
)
static

Parse UniValue result to update the message to print to std::cout.

Definition at line 897 of file bitcoin-cli.cpp.

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

◆ SetGenerateToAddressArgs()

static void SetGenerateToAddressArgs ( const std::string &  address,
std::vector< std::string > &  args 
)
static

Check bounds and set up args for RPC generatetoaddress params: nblocks, address, maxtries.

Parameters
[in]addressReference to const string address to insert into the args.
argsReference to vector of string args to modify.

Definition at line 982 of file bitcoin-cli.cpp.

Here is the caller graph for this function:

◆ SetupCliArgs()

static void SetupCliArgs ( ArgsManager argsman)
static

Definition at line 52 of file bitcoin-cli.cpp.

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

Variable Documentation

◆ CONTINUE_EXECUTION

const int CONTINUE_EXECUTION = -1
static

Definition at line 48 of file bitcoin-cli.cpp.

◆ DEFAULT_HTTP_CLIENT_TIMEOUT

const int DEFAULT_HTTP_CLIENT_TIMEOUT = 900
static

Definition at line 46 of file bitcoin-cli.cpp.

◆ DEFAULT_NAMED

const bool DEFAULT_NAMED = false
static

Definition at line 47 of file bitcoin-cli.cpp.

◆ DEFAULT_NBLOCKS

const std::string DEFAULT_NBLOCKS = "1"
static

Default number of blocks to generate for RPC generatetoaddress.

Definition at line 50 of file bitcoin-cli.cpp.

◆ DEFAULT_RPCCONNECT

const char DEFAULT_RPCCONNECT[] = "127.0.0.1"
static

Definition at line 45 of file bitcoin-cli.cpp.

◆ G_TRANSLATION_FUN

const std::function<std::string(const char *)> G_TRANSLATION_FUN = nullptr

Translate string to current locale using Qt.

Translate a message to the native language of the user.

Definition at line 43 of file bitcoin-cli.cpp.