forked from Bitcoin-ABC/bitcoin-abc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchainparamsbase.cpp
50 lines (41 loc) · 1.77 KB
/
chainparamsbase.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// Copyright (c) 2010 Satoshi Nakamoto
// Copyright (c) 2009-2015 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 <tinyformat.h>
#include <util/system.h>
#include <cassert>
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<CBaseChainParams> globalChainBaseParams;
const CBaseChainParams &BaseParams() {
assert(globalChainBaseParams);
return *globalChainBaseParams;
}
std::unique_ptr<CBaseChainParams>
CreateBaseChainParams(const std::string &chain) {
if (chain == CBaseChainParams::MAIN)
return std::make_unique<CBaseChainParams>("", 8332);
else if (chain == CBaseChainParams::TESTNET)
return std::make_unique<CBaseChainParams>("testnet3", 18332);
else if (chain == CBaseChainParams::REGTEST)
return std::make_unique<CBaseChainParams>("regtest", 18443);
else
throw std::runtime_error(
strprintf("%s: Unknown chain %s.", __func__, chain));
}
void SelectBaseParams(const std::string &chain) {
globalChainBaseParams = CreateBaseChainParams(chain);
gArgs.SelectConfigNetwork(chain);
}