TARAXA
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 
8 namespace taraxa::cli {
9 
10 class Config {
11  public:
12  Config(int argc, const char* argv[]);
13 
14  // Returns true if node configuration is loaded successfully and command is node
15  bool nodeConfigured();
16 
17  // Retrieves loaded node configuration
19 
20  enum class ChainIdType { Mainnet = 841, Testnet, Devnet, LastNetworkId };
22 
23  protected:
25  bool node_configured_ = false;
26 
27  static constexpr const char* CONFIG = "config";
28  static constexpr const char* GENESIS = "genesis";
29  static constexpr const char* DATA_DIR = "data-dir";
30  static constexpr const char* CHAIN_ID = "chain-id";
31  static constexpr const char* CHAIN = "chain";
32  static constexpr const char* COMMAND = "command";
33  static constexpr const char* DESTROY_DB = "destroy-db";
34  static constexpr const char* REBUILD_NETWORK = "rebuild-network";
35  static constexpr const char* REBUILD_DB = "rebuild-db";
36  static constexpr const char* REBUILD_DB_PERIOD = "rebuild-db-period";
37  static constexpr const char* REVERT_TO_PERIOD = "revert-to-period";
38  static constexpr const char* LIGHT = "light";
39  static constexpr const char* HELP = "help";
40  static constexpr const char* VERSION = "version";
41  static constexpr const char* WALLET = "wallet";
42  static constexpr const char* PRUNE_STATE_DB = "prune-state-db";
43 
44  static constexpr const char* NODE_COMMAND = "node";
45  static constexpr const char* ACCOUNT_COMMAND = "account";
46  static constexpr const char* VRF_COMMAND = "vrf";
47  static constexpr const char* CONFIG_COMMAND = "config";
48  static constexpr const char* BOOT_NODES = "boot-nodes";
49  static constexpr const char* PUBLIC_IP = "public-ip";
50  static constexpr const char* PORT = "port";
51  static constexpr const char* LOG_CHANNELS = "log-channels";
52  static constexpr const char* LOG_CONFIGURATIONS = "log-configurations";
53  static constexpr const char* BOOT_NODES_APPEND = "boot-nodes-append";
54  static constexpr const char* LOG_CHANNELS_APPEND = "log-channels-append";
55  static constexpr const char* NODE_SECRET = "node-secret";
56  static constexpr const char* VRF_SECRET = "vrf-secret";
57  static constexpr const char* OVERWRITE_CONFIG = "overwrite-config";
58  static constexpr const char* ENABLE_TEST_RPC = "enable-test-rpc";
59  static constexpr const char* ENABLE_DEBUG = "debug";
60  static constexpr const char* MIGRATE_ONLY = "migrate-only";
61  static constexpr const char* FIX_TRX_PERIOD = "fix-transactions-period";
62 
63  std::string dirNameFromFile(const std::string& file);
64 };
65 
66 } // namespace taraxa::cli
Definition: config.hpp:10
static constexpr const char * REBUILD_DB_PERIOD
Definition: config.hpp:36
static constexpr const char * CONFIG
Definition: config.hpp:27
static constexpr const char * OVERWRITE_CONFIG
Definition: config.hpp:57
static constexpr const char * NODE_SECRET
Definition: config.hpp:55
static constexpr const char * LIGHT
Definition: config.hpp:38
static constexpr const char * ENABLE_TEST_RPC
Definition: config.hpp:58
static constexpr const char * VERSION
Definition: config.hpp:40
static constexpr const char * GENESIS
Definition: config.hpp:28
static constexpr ChainIdType DEFAULT_CHAIN_ID
Definition: config.hpp:21
static constexpr const char * DESTROY_DB
Definition: config.hpp:33
std::string dirNameFromFile(const std::string &file)
Definition: config.cpp:301
static constexpr const char * BOOT_NODES
Definition: config.hpp:48
static constexpr const char * REBUILD_DB
Definition: config.hpp:35
static constexpr const char * LOG_CHANNELS_APPEND
Definition: config.hpp:54
static constexpr const char * DATA_DIR
Definition: config.hpp:29
static constexpr const char * CHAIN
Definition: config.hpp:31
static constexpr const char * REBUILD_NETWORK
Definition: config.hpp:34
static constexpr const char * MIGRATE_ONLY
Definition: config.hpp:60
Config(int argc, const char *argv[])
Definition: config.cpp:16
static constexpr const char * VRF_COMMAND
Definition: config.hpp:46
static constexpr const char * VRF_SECRET
Definition: config.hpp:56
static constexpr const char * NODE_COMMAND
Definition: config.hpp:44
static constexpr const char * PORT
Definition: config.hpp:50
static constexpr const char * COMMAND
Definition: config.hpp:32
static constexpr const char * HELP
Definition: config.hpp:39
static constexpr const char * WALLET
Definition: config.hpp:41
static constexpr const char * LOG_CHANNELS
Definition: config.hpp:51
static constexpr const char * ENABLE_DEBUG
Definition: config.hpp:59
static constexpr const char * PUBLIC_IP
Definition: config.hpp:49
bool node_configured_
Definition: config.hpp:25
static constexpr const char * BOOT_NODES_APPEND
Definition: config.hpp:53
static constexpr const char * FIX_TRX_PERIOD
Definition: config.hpp:61
FullNodeConfig getNodeConfiguration()
Definition: config.cpp:299
static constexpr const char * CHAIN_ID
Definition: config.hpp:30
static constexpr const char * LOG_CONFIGURATIONS
Definition: config.hpp:52
ChainIdType
Definition: config.hpp:20
bool nodeConfigured()
Definition: config.cpp:297
FullNodeConfig node_config_
Definition: config.hpp:24
static constexpr const char * REVERT_TO_PERIOD
Definition: config.hpp:37
static constexpr const char * PRUNE_STATE_DB
Definition: config.hpp:42
static constexpr const char * CONFIG_COMMAND
Definition: config.hpp:47
static constexpr const char * ACCOUNT_COMMAND
Definition: config.hpp:45
Definition: config.hpp:8
Definition: config.hpp:24