// Copyright (c) 2010 Satoshi Nakamoto // Copyright (c) 2009-2018 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 #include #include #include #include const std::string CBaseChainParams::MAIN = "main"; const std::string CBaseChainParams::TESTNET = "test"; const std::string CBaseChainParams::REGTEST = "regtest"; void SetupChainParamsBaseOptions() { gArgs.AddArg("-regtest", "Enter regression test mode, which uses a special chain in which blocks can be solved instantly. " "This is intended for regression testing tools and app development.", true, OptionsCategory::CHAINPARAMS); gArgs.AddArg("-testnet", "Use the test chain", false, OptionsCategory::CHAINPARAMS); } static std::unique_ptr globalChainBaseParams; const CBaseChainParams& BaseParams() { assert(globalChainBaseParams); return *globalChainBaseParams; } std::unique_ptr CreateBaseChainParams(const std::string& chain) { if (chain == CBaseChainParams::MAIN) return MakeUnique("", 22555); else if (chain == CBaseChainParams::TESTNET) return MakeUnique("testnet3", 44555); else if (chain == CBaseChainParams::REGTEST) return MakeUnique("regtest", 66555); else throw std::runtime_error(strprintf("%s: Unknown chain %s.", __func__, chain)); } void SelectBaseParams(const std::string& chain) { globalChainBaseParams = CreateBaseChainParams(chain); gArgs.SelectConfigNetwork(chain); }