diff options
| author | Wladimir J. van der Laan <[email protected]> | 2014-06-25 16:51:49 +0200 |
|---|---|---|
| committer | Wladimir J. van der Laan <[email protected]> | 2014-06-25 17:00:09 +0200 |
| commit | 343feecf562a39e7d898ece2fd745fcb9d4c90e9 (patch) | |
| tree | f780cbfe1b73ae0765d1930595e59cf7b13b53d6 /src/chainparamsbase.cpp | |
| parent | Merge pull request #3839 (diff) | |
| parent | Move coins.cpp and keystore.cpp to libbitcoin_common (diff) | |
| download | discoin-343feecf562a39e7d898ece2fd745fcb9d4c90e9.tar.xz discoin-343feecf562a39e7d898ece2fd745fcb9d4c90e9.zip | |
Merge pull request #4368
75c82d4 Move coins.cpp and keystore.cpp to libbitcoin_common (Wladimir J. van der Laan)
84ce18c Remove unnecessary dependencies for bitcoin-cli (Wladimir J. van der Laan)
14f888c Move network-time related functions to timedata.cpp/h (Wladimir J. van der Laan)
Diffstat (limited to 'src/chainparamsbase.cpp')
| -rw-r--r-- | src/chainparamsbase.cpp | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/src/chainparamsbase.cpp b/src/chainparamsbase.cpp new file mode 100644 index 000000000..19a9e72cc --- /dev/null +++ b/src/chainparamsbase.cpp @@ -0,0 +1,93 @@ +// 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 "assert.h" +#include "util.h" + +#include <boost/assign/list_of.hpp> + +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; + } +} + +bool SelectBaseParamsFromCommandLine() { + bool fRegTest = GetBoolArg("-regtest", false); + bool fTestNet = GetBoolArg("-testnet", false); + + if (fTestNet && fRegTest) { + return false; + } + + if (fRegTest) { + SelectBaseParams(CBaseChainParams::REGTEST); + } else if (fTestNet) { + SelectBaseParams(CBaseChainParams::TESTNET); + } else { + SelectBaseParams(CBaseChainParams::MAIN); + } + return true; +} |