aboutsummaryrefslogtreecommitdiff
path: root/src/cryptonote_config.h
diff options
context:
space:
mode:
authorstoffu <stoffu@protonmail.ch>2018-06-11 12:16:29 +0900
committerstoffu <stoffu@protonmail.ch>2018-06-11 20:17:02 +0900
commit08b85a8e00c0b3e5bb7c4d05861f8a42593cecf1 (patch)
treece324669f3a27cecf55e4d538081135186a2e552 /src/cryptonote_config.h
parentMerge pull request #3340 (diff)
downloadmonero-08b85a8e00c0b3e5bb7c4d05861f8a42593cecf1.tar.xz
cryptonote_config: add get_config to refactor x = testnet ? config::testnet::X : stagenet ? config::stagenet::X : config::X
Diffstat (limited to 'src/cryptonote_config.h')
-rw-r--r--src/cryptonote_config.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/cryptonote_config.h b/src/cryptonote_config.h
index 3e64073dd..a0dcf2df1 100644
--- a/src/cryptonote_config.h
+++ b/src/cryptonote_config.h
@@ -203,4 +203,60 @@ namespace cryptonote
FAKECHAIN,
UNDEFINED = 255
};
+ struct config_t
+ {
+ uint64_t const CRYPTONOTE_PUBLIC_ADDRESS_BASE58_PREFIX;
+ uint64_t const CRYPTONOTE_PUBLIC_INTEGRATED_ADDRESS_BASE58_PREFIX;
+ uint64_t const CRYPTONOTE_PUBLIC_SUBADDRESS_BASE58_PREFIX;
+ uint16_t const P2P_DEFAULT_PORT;
+ uint16_t const RPC_DEFAULT_PORT;
+ uint16_t const ZMQ_RPC_DEFAULT_PORT;
+ boost::uuids::uuid const NETWORK_ID;
+ std::string const GENESIS_TX;
+ uint32_t const GENESIS_NONCE;
+ };
+ inline const config_t& get_config(network_type nettype)
+ {
+ static const config_t mainnet = {
+ ::config::CRYPTONOTE_PUBLIC_ADDRESS_BASE58_PREFIX,
+ ::config::CRYPTONOTE_PUBLIC_INTEGRATED_ADDRESS_BASE58_PREFIX,
+ ::config::CRYPTONOTE_PUBLIC_SUBADDRESS_BASE58_PREFIX,
+ ::config::P2P_DEFAULT_PORT,
+ ::config::RPC_DEFAULT_PORT,
+ ::config::ZMQ_RPC_DEFAULT_PORT,
+ ::config::NETWORK_ID,
+ ::config::GENESIS_TX,
+ ::config::GENESIS_NONCE
+ };
+ static const config_t testnet = {
+ ::config::testnet::CRYPTONOTE_PUBLIC_ADDRESS_BASE58_PREFIX,
+ ::config::testnet::CRYPTONOTE_PUBLIC_INTEGRATED_ADDRESS_BASE58_PREFIX,
+ ::config::testnet::CRYPTONOTE_PUBLIC_SUBADDRESS_BASE58_PREFIX,
+ ::config::testnet::P2P_DEFAULT_PORT,
+ ::config::testnet::RPC_DEFAULT_PORT,
+ ::config::testnet::ZMQ_RPC_DEFAULT_PORT,
+ ::config::testnet::NETWORK_ID,
+ ::config::testnet::GENESIS_TX,
+ ::config::testnet::GENESIS_NONCE
+ };
+ static const config_t stagenet = {
+ ::config::stagenet::CRYPTONOTE_PUBLIC_ADDRESS_BASE58_PREFIX,
+ ::config::stagenet::CRYPTONOTE_PUBLIC_INTEGRATED_ADDRESS_BASE58_PREFIX,
+ ::config::stagenet::CRYPTONOTE_PUBLIC_SUBADDRESS_BASE58_PREFIX,
+ ::config::stagenet::P2P_DEFAULT_PORT,
+ ::config::stagenet::RPC_DEFAULT_PORT,
+ ::config::stagenet::ZMQ_RPC_DEFAULT_PORT,
+ ::config::stagenet::NETWORK_ID,
+ ::config::stagenet::GENESIS_TX,
+ ::config::stagenet::GENESIS_NONCE
+ };
+ switch (nettype)
+ {
+ case MAINNET: return mainnet;
+ case TESTNET: return testnet;
+ case STAGENET: return stagenet;
+ case FAKECHAIN: return mainnet;
+ default: throw std::runtime_error("Invalid network type");
+ }
+ };
}