// Copyright (c) 2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #include "chainparamsbase.h" #include "util.h" #include #include using namespace boost::assign; // // Main network // class CBaseMainParams : public CBaseChainParams { public: CBaseMainParams() { networkID = CBaseChainParams::MAIN; nRPCPort = 8332; } }; static CBaseMainParams mainParams; // // Testnet (v3) // class CBaseTestNetParams : public CBaseMainParams { public: CBaseTestNetParams() { networkID = CBaseChainParams::TESTNET; nRPCPort = 18332; strDataDir = "testnet3"; } }; static CBaseTestNetParams testNetParams; // // Regression test // class CBaseRegTestParams : public CBaseTestNetParams { public: CBaseRegTestParams() { networkID = CBaseChainParams::REGTEST; strDataDir = "regtest"; } }; static CBaseRegTestParams regTestParams; 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; default: assert(false && "Unimplemented network"); return; } } CBaseChainParams::Network CBaseChainParams::NetworkIdFromCommandLine() { bool fRegTest = GetBoolArg("-regtest", false); bool fTestNet = GetBoolArg("-testnet", false); if (fTestNet && fRegTest) return MAX_NETWORK_TYPES; if (fRegTest) return REGTEST; if (fTestNet) return TESTNET; return MAIN; } bool SelectBaseParamsFromCommandLine() { CBaseChainParams::Network network = CBaseChainParams::NetworkIdFromCommandLine(); if (network == CBaseChainParams::MAX_NETWORK_TYPES) return false; SelectBaseParams(network); return true; } bool AreBaseParamsConfigured() { return pCurrentBaseParams != NULL; }