diff options
Diffstat (limited to 'src/chainparamsbase.cpp')
| -rw-r--r-- | src/chainparamsbase.cpp | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/src/chainparamsbase.cpp b/src/chainparamsbase.cpp new file mode 100644 index 000000000..c42fd106b --- /dev/null +++ b/src/chainparamsbase.cpp @@ -0,0 +1,121 @@ +// Copyright (c) 2010 Satoshi Nakamoto +// Copyright (c) 2009-2014 The Bitcoin Core developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "chainparamsbase.h" + +#include "util.h" + +#include <assert.h> + +/** + * Main network + */ +class CBaseMainParams : public CBaseChainParams +{ +public: + CBaseMainParams() + { + nRPCPort = 8332; + } +}; +static CBaseMainParams mainParams; + +/** + * Testnet (v3) + */ +class CBaseTestNetParams : public CBaseMainParams +{ +public: + CBaseTestNetParams() + { + nRPCPort = 18332; + strDataDir = "testnet3"; + } +}; +static CBaseTestNetParams testNetParams; + +/* + * Regression test + */ +class CBaseRegTestParams : public CBaseTestNetParams +{ +public: + CBaseRegTestParams() + { + strDataDir = "regtest"; + } +}; +static CBaseRegTestParams regTestParams; + +/* + * Unit test + */ +class CBaseUnitTestParams : public CBaseMainParams +{ +public: + CBaseUnitTestParams() + { + strDataDir = "unittest"; + } +}; +static CBaseUnitTestParams unitTestParams; + +static CBaseChainParams* pCurrentBaseParams = 0; + +const CBaseChainParams& BaseParams() +{ + assert(pCurrentBaseParams); + return *pCurrentBaseParams; +} + +void SelectBaseParams(CBaseChainParams::Network network) +{ + switch (network) { + case CBaseChainParams::MAIN: + pCurrentBaseParams = &mainParams; + break; + case CBaseChainParams::TESTNET: + pCurrentBaseParams = &testNetParams; + break; + case CBaseChainParams::REGTEST: + pCurrentBaseParams = ®TestParams; + break; + case CBaseChainParams::UNITTEST: + pCurrentBaseParams = &unitTestParams; + break; + default: + assert(false && "Unimplemented network"); + return; + } +} + +CBaseChainParams::Network NetworkIdFromCommandLine() +{ + bool fRegTest = GetBoolArg("-regtest", false); + bool fTestNet = GetBoolArg("-testnet", false); + + if (fTestNet && fRegTest) + return CBaseChainParams::MAX_NETWORK_TYPES; + if (fRegTest) + return CBaseChainParams::REGTEST; + if (fTestNet) + return CBaseChainParams::TESTNET; + return CBaseChainParams::MAIN; +} + +bool SelectBaseParamsFromCommandLine() +{ + CBaseChainParams::Network network = NetworkIdFromCommandLine(); + if (network == CBaseChainParams::MAX_NETWORK_TYPES) + return false; + + SelectBaseParams(network); + return true; +} + +bool AreBaseParamsConfigured() +{ + return pCurrentBaseParams != NULL; +} |