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"
15 class CBaseMainParams
: public CBaseChainParams
20 networkID
= CBaseChainParams::MAIN
;
24 static CBaseMainParams mainParams
;
29 class CBaseTestNetParams
: public CBaseMainParams
34 networkID
= CBaseChainParams::TESTNET
;
36 strDataDir
= "testnet3";
39 static CBaseTestNetParams testNetParams
;
44 class CBaseRegTestParams
: public CBaseTestNetParams
49 networkID
= CBaseChainParams::REGTEST
;
50 strDataDir
= "regtest";
53 static CBaseRegTestParams regTestParams
;
58 class CBaseUnitTestParams
: public CBaseMainParams
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
)
80 case CBaseChainParams::MAIN
:
81 pCurrentBaseParams
= &mainParams
;
83 case CBaseChainParams::TESTNET
:
84 pCurrentBaseParams
= &testNetParams
;
86 case CBaseChainParams::REGTEST
:
87 pCurrentBaseParams
= ®TestParams
;
89 case CBaseChainParams::UNITTEST
:
90 pCurrentBaseParams
= &unitTestParams
;
93 assert(false && "Unimplemented network");
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
;
106 return CBaseChainParams::REGTEST
;
108 return CBaseChainParams::TESTNET
;
109 return CBaseChainParams::MAIN
;
112 bool SelectBaseParamsFromCommandLine()
114 CBaseChainParams::Network network
= NetworkIdFromCommandLine();
115 if (network
== CBaseChainParams::MAX_NETWORK_TYPES
)
118 SelectBaseParams(network
);
122 bool AreBaseParamsConfigured()
124 return pCurrentBaseParams
!= NULL
;