Electroneum
wallet_rpc_server.cpp File Reference
#include <boost/format.hpp>
#include <boost/asio/ip/address.hpp>
#include <boost/filesystem/operations.hpp>
#include <boost/algorithm/string.hpp>
#include <boost/preprocessor/stringize.hpp>
#include <cstdint>
#include "include_base_utils.h"
#include "wallet_rpc_server.h"
#include "wallet/wallet_args.h"
#include "common/command_line.h"
#include "common/i18n.h"
#include "cryptonote_config.h"
#include "cryptonote_basic/cryptonote_format_utils.h"
#include "cryptonote_basic/account.h"
#include "multisig/multisig.h"
#include "wallet_rpc_server_commands_defs.h"
#include "misc_language.h"
#include "string_coding.h"
#include "string_tools.h"
#include "crypto/hash.h"
#include "mnemonics/electrum-words.h"
#include "rpc/rpc_args.h"
#include "rpc/core_rpc_server_commands_defs.h"
#include "daemonizer/daemonizer.h"
Include dependency graph for wallet_rpc_server.cpp:

Go to the source code of this file.

Classes

class  t_daemon
 
class  t_executor
 

Namespaces

 tools
 Various Tools.
 

Macros

#define ELECTRONEUM_DEFAULT_LOG_CATEGORY   "wallet.rpc"
 
#define DEFAULT_AUTO_REFRESH_PERIOD   20
 
#define MKDIR(path, mode)   mkdir(path, mode)
 

Functions

int main (int argc, char **argv)
 

Macro Definition Documentation

◆ DEFAULT_AUTO_REFRESH_PERIOD

#define DEFAULT_AUTO_REFRESH_PERIOD   20

Definition at line 61 of file wallet_rpc_server.cpp.

◆ ELECTRONEUM_DEFAULT_LOG_CATEGORY

#define ELECTRONEUM_DEFAULT_LOG_CATEGORY   "wallet.rpc"

Definition at line 59 of file wallet_rpc_server.cpp.

◆ MKDIR

#define MKDIR (   path,
  mode 
)    mkdir(path, mode)

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 4453 of file wallet_rpc_server.cpp.

4453  {
4454  TRY_ENTRY();
4455 
4456  namespace po = boost::program_options;
4457 
4459  const auto arg_from_json = wallet_args::arg_generate_from_json();
4460 
4461  po::options_description hidden_options("Hidden");
4462 
4463  po::options_description desc_params(wallet_args::tr("Wallet options"));
4464  tools::wallet2::init_options(desc_params);
4465  command_line::add_arg(desc_params, arg_rpc_bind_port);
4466  command_line::add_arg(desc_params, arg_disable_rpc_login);
4467  command_line::add_arg(desc_params, arg_restricted);
4469  command_line::add_arg(desc_params, arg_wallet_file);
4470  command_line::add_arg(desc_params, arg_from_json);
4471  command_line::add_arg(desc_params, arg_wallet_dir);
4472  command_line::add_arg(desc_params, arg_prompt_for_password);
4473 
4474  daemonizer::init_options(hidden_options, desc_params);
4475  desc_params.add(hidden_options);
4476 
4477  boost::optional<po::variables_map> vm;
4478  bool should_terminate = false;
4479  std::tie(vm, should_terminate) = wallet_args::main(
4480  argc, argv,
4481  "electroneum-wallet-rpc [--wallet-file=<file>|--generate-from-json=<file>|--wallet-dir=<directory>] [--rpc-bind-port=<port>]",
4482  tools::wallet_rpc_server::tr("This is the RPC electroneum wallet. It needs to connect to a electroneum\ndaemon to work correctly."),
4483  desc_params,
4484  po::positional_options_description(),
4485  [](const std::string &s, bool emphasis){ epee::set_console_color(emphasis ? epee::console_color_white : epee::console_color_default, true); std::cout << s << std::endl; if (emphasis) epee::reset_console_color(); },
4486  "electroneum-wallet-rpc.log",
4487  true
4488  );
4489  if (!vm)
4490  {
4491  return 1;
4492  }
4493  if (should_terminate)
4494  {
4495  return 0;
4496  }
4497 
4498  return daemonizer::daemonize(argc, const_cast<const char**>(argv), t_executor{}, *vm) ? 0 : 1;
4499  CATCH_ENTRY_L0("main", 1);
4500 }
command_line::arg_descriptor< std::string > arg_wallet_file()
Definition: wallet_args.cpp:76
void init_options(boost::program_options::options_description &hidden_options, boost::program_options::options_description &normal_options)
::std::string string
Definition: gtest-port.h:1097
const char * tr(const char *str)
Definition: wallet_args.cpp:81
static void init_options(boost::program_options::options_description &desc, const bool any_cert_option=false)
Definition: rpc_args.cpp:108
void reset_console_color()
Definition: mlog.cpp:460
return true
#define TRY_ENTRY()
Definition: misc_log_ex.h:151
bool daemonize(int argc, char const *argv[], T_executor &&executor, boost::program_options::variables_map const &vm)
command_line::arg_descriptor< std::string > arg_generate_from_json()
Definition: wallet_args.cpp:72
static void init_options(boost::program_options::options_description &desc_params)
Definition: wallet2.cpp:1193
void add_arg(boost::program_options::options_description &description, const arg_descriptor< T, required, dependent, NUM_DEPS > &arg, bool unique=true)
Definition: command_line.h:188
void set_console_color(int color, bool bright)
Definition: mlog.cpp:341
std::pair< boost::optional< boost::program_options::variables_map >, bool > main(int argc, char **argv, const char *const usage, const char *const notice, boost::program_options::options_description desc_params, const boost::program_options::positional_options_description &positional_options, const std::function< void(const std::string &, bool)> &print, const char *default_log_name, bool log_to_console)
Definition: wallet_args.cpp:86
static const char * tr(const char *str)
#define CATCH_ENTRY_L0(lacation, return_val)
Definition: misc_log_ex.h:165
Here is the call graph for this function: