namespace: drop most boost namespaces and a few header cleanups
[bitcoinplatinum.git] / src / chainparamsbase.cpp
blob09fd0df877226db298c0c3e79e380eafeeba156f
1 // Copyright (c) 2010 Satoshi Nakamoto
2 // Copyright (c) 2009-2014 The Bitcoin Core developers
3 // Distributed under the MIT software license, see the accompanying
4 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
6 #include "chainparamsbase.h"
8 #include "util.h"
10 #include <assert.h>
12 /**
13 * Main network
15 class CBaseMainParams : public CBaseChainParams
17 public:
18 CBaseMainParams()
20 networkID = CBaseChainParams::MAIN;
21 nRPCPort = 8332;
24 static CBaseMainParams mainParams;
26 /**
27 * Testnet (v3)
29 class CBaseTestNetParams : public CBaseMainParams
31 public:
32 CBaseTestNetParams()
34 networkID = CBaseChainParams::TESTNET;
35 nRPCPort = 18332;
36 strDataDir = "testnet3";
39 static CBaseTestNetParams testNetParams;
42 * Regression test
44 class CBaseRegTestParams : public CBaseTestNetParams
46 public:
47 CBaseRegTestParams()
49 networkID = CBaseChainParams::REGTEST;
50 strDataDir = "regtest";
53 static CBaseRegTestParams regTestParams;
56 * Unit test
58 class CBaseUnitTestParams : public CBaseMainParams
60 public:
61 CBaseUnitTestParams()
63 networkID = CBaseChainParams::UNITTEST;
64 strDataDir = "unittest";
67 static CBaseUnitTestParams unitTestParams;
69 static CBaseChainParams* pCurrentBaseParams = 0;
71 const CBaseChainParams& BaseParams()
73 assert(pCurrentBaseParams);
74 return *pCurrentBaseParams;
77 void SelectBaseParams(CBaseChainParams::Network network)
79 switch (network) {
80 case CBaseChainParams::MAIN:
81 pCurrentBaseParams = &mainParams;
82 break;
83 case CBaseChainParams::TESTNET:
84 pCurrentBaseParams = &testNetParams;
85 break;
86 case CBaseChainParams::REGTEST:
87 pCurrentBaseParams = &regTestParams;
88 break;
89 case CBaseChainParams::UNITTEST:
90 pCurrentBaseParams = &unitTestParams;
91 break;
92 default:
93 assert(false && "Unimplemented network");
94 return;
98 CBaseChainParams::Network NetworkIdFromCommandLine()
100 bool fRegTest = GetBoolArg("-regtest", false);
101 bool fTestNet = GetBoolArg("-testnet", false);
103 if (fTestNet && fRegTest)
104 return CBaseChainParams::MAX_NETWORK_TYPES;
105 if (fRegTest)
106 return CBaseChainParams::REGTEST;
107 if (fTestNet)
108 return CBaseChainParams::TESTNET;
109 return CBaseChainParams::MAIN;
112 bool SelectBaseParamsFromCommandLine()
114 CBaseChainParams::Network network = NetworkIdFromCommandLine();
115 if (network == CBaseChainParams::MAX_NETWORK_TYPES)
116 return false;
118 SelectBaseParams(network);
119 return true;
122 bool AreBaseParamsConfigured()
124 return pCurrentBaseParams != NULL;