TARAXA
Loading...
Searching...
No Matches
config.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <boost/program_options.hpp>
4#include <string>
5
6#include "config/config.hpp"
7
8namespace taraxa::cli {
9
10namespace bpo = boost::program_options;
11
12static constexpr const char* CONFIG = "config";
13static constexpr const char* GENESIS = "genesis";
14static constexpr const char* DATA_DIR = "data-dir";
15static constexpr const char* CHAIN_ID = "chain-id";
16static constexpr const char* CHAIN = "chain";
17static constexpr const char* COMMAND = "command";
18static constexpr const char* DESTROY_DB = "destroy-db";
19static constexpr const char* REBUILD_NETWORK = "rebuild-network";
20static constexpr const char* REBUILD_DB = "rebuild-db";
21static constexpr const char* REBUILD_DB_PERIOD = "rebuild-db-period";
22static constexpr const char* REVERT_TO_PERIOD = "revert-to-period";
23static constexpr const char* LIGHT = "light";
24static constexpr const char* HELP = "help";
25static constexpr const char* VERSION = "version";
26static constexpr const char* PLUGINS = "plugins";
27static constexpr const char* WALLET = "wallet";
28static constexpr const char* PRUNE_STATE_DB = "prune-state-db";
29
30static constexpr const char* NODE_COMMAND = "node";
31static constexpr const char* ACCOUNT_COMMAND = "account";
32static constexpr const char* VRF_COMMAND = "vrf";
33static constexpr const char* CONFIG_COMMAND = "config";
34static constexpr const char* BOOT_NODES = "boot-nodes";
35static constexpr const char* PUBLIC_IP = "public-ip";
36static constexpr const char* PORT = "port";
37static constexpr const char* LOG_CHANNELS = "log-channels";
38static constexpr const char* LOG_CONFIGURATIONS = "log-configurations";
39static constexpr const char* BOOT_NODES_APPEND = "boot-nodes-append";
40static constexpr const char* LOG_CHANNELS_APPEND = "log-channels-append";
41static constexpr const char* NODE_SECRET = "node-secret";
42static constexpr const char* VRF_SECRET = "vrf-secret";
43static constexpr const char* OVERWRITE_CONFIG = "overwrite-config";
44static constexpr const char* MIGRATE_ONLY = "migrate-only";
45static constexpr const char* MIGRATE_RECEIPTS_BY_PERIOD = "migrate-receipts-by-period";
46
47class Config {
48 public:
49 Config();
50 void parseCommandLine(int argc, const char* argv[], const std::string& available_plugins = {});
51
52 // Returns true if node configuration is loaded successfully and command is node
53 bool nodeConfigured() const;
54
55 // Retrieves loaded node configuration
57
58 // Returns the parsed command line options
59 const bpo::variables_map& getCliOptions() const { return cli_options_; }
60
61 const std::vector<std::string>& getEnabledPlugins() const { return plugins_; }
62
63 // Adding cli allowed options to the config
64 void addCliOptions(const bpo::options_description& options);
67
68 protected:
69 bpo::options_description plugins_options_;
71 std::vector<std::string> plugins_ = {"RPC"};
72 bool node_configured_ = false;
73
74 std::string dirNameFromFile(const std::string& file);
75 bpo::options_description makeMainOptions();
76 bpo::options_description makeNodeOptions(const std::string& available_plugins);
77
78 bpo::variables_map cli_options_;
79
81 std::string data_dir;
82 std::string genesis;
83 std::string config;
84 std::vector<std::string> wallets;
85};
86
87} // namespace taraxa::cli
Definition config.hpp:47
bpo::options_description makeNodeOptions(const std::string &available_plugins)
Definition config.cpp:267
std::vector< std::string > plugins_
Definition config.hpp:71
std::string genesis
Definition config.hpp:82
static constexpr ChainIdType DEFAULT_CHAIN_ID
Definition config.hpp:66
std::string dirNameFromFile(const std::string &file)
Definition config.cpp:245
bpo::options_description plugins_options_
Definition config.hpp:69
Config()
Definition config.cpp:14
const std::vector< std::string > & getEnabledPlugins() const
Definition config.hpp:61
FullNodeConfig getNodeConfiguration() const
Definition config.cpp:243
std::string data_dir
Definition config.hpp:81
bpo::variables_map cli_options_
Definition config.hpp:78
bpo::options_description makeMainOptions()
Definition config.cpp:250
bool node_configured_
Definition config.hpp:72
bool nodeConfigured() const
Definition config.cpp:241
ChainIdType
Definition config.hpp:65
FullNodeConfig node_config_
Definition config.hpp:70
std::string config
Definition config.hpp:83
bool overwrite_config
Definition config.hpp:80
void parseCommandLine(int argc, const char *argv[], const std::string &available_plugins={})
Definition config.cpp:18
void addCliOptions(const bpo::options_description &options)
Definition config.cpp:16
std::vector< std::string > wallets
Definition config.hpp:84
const bpo::variables_map & getCliOptions() const
Definition config.hpp:59
Definition config.hpp:8
static constexpr const char * WALLET
Definition config.hpp:27
static constexpr const char * MIGRATE_RECEIPTS_BY_PERIOD
Definition config.hpp:45
static constexpr const char * HELP
Definition config.hpp:24
static constexpr const char * LOG_CHANNELS
Definition config.hpp:37
static constexpr const char * REBUILD_DB
Definition config.hpp:20
static constexpr const char * BOOT_NODES
Definition config.hpp:34
static constexpr const char * MIGRATE_ONLY
Definition config.hpp:44
static constexpr const char * CHAIN_ID
Definition config.hpp:15
static constexpr const char * NODE_SECRET
Definition config.hpp:41
static constexpr const char * VRF_COMMAND
Definition config.hpp:32
static constexpr const char * PLUGINS
Definition config.hpp:26
static constexpr const char * CONFIG_COMMAND
Definition config.hpp:33
static constexpr const char * PORT
Definition config.hpp:36
static constexpr const char * BOOT_NODES_APPEND
Definition config.hpp:39
static constexpr const char * CHAIN
Definition config.hpp:16
static constexpr const char * REBUILD_DB_PERIOD
Definition config.hpp:21
static constexpr const char * PUBLIC_IP
Definition config.hpp:35
static constexpr const char * REBUILD_NETWORK
Definition config.hpp:19
static constexpr const char * GENESIS
Definition config.hpp:13
static constexpr const char * LIGHT
Definition config.hpp:23
static constexpr const char * OVERWRITE_CONFIG
Definition config.hpp:43
static constexpr const char * LOG_CHANNELS_APPEND
Definition config.hpp:40
static constexpr const char * PRUNE_STATE_DB
Definition config.hpp:28
static constexpr const char * NODE_COMMAND
Definition config.hpp:30
static constexpr const char * DATA_DIR
Definition config.hpp:14
static constexpr const char * REVERT_TO_PERIOD
Definition config.hpp:22
static constexpr const char * ACCOUNT_COMMAND
Definition config.hpp:31
static constexpr const char * LOG_CONFIGURATIONS
Definition config.hpp:38
static constexpr const char * CONFIG
Definition config.hpp:12
static constexpr const char * COMMAND
Definition config.hpp:17
static constexpr const char * VRF_SECRET
Definition config.hpp:42
static constexpr const char * DESTROY_DB
Definition config.hpp:18
static constexpr const char * VERSION
Definition config.hpp:25
Definition config.hpp:41