aboutsummaryrefslogtreecommitdiff
path: root/src/chainparamsbase.cpp
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2014-06-19 15:10:04 +0200
committerWladimir J. van der Laan <laanwj@gmail.com>2014-06-25 10:31:35 +0200
commit84ce18ca9339901f65d77a5821eb65f771316558 (patch)
tree61012d3d9743d5ce8d0e9510c36f60856752c883 /src/chainparamsbase.cpp
parent14f888ca804386b111b07e8988753d67f507ba30 (diff)
Remove unnecessary dependencies for bitcoin-cli
This commit removes all the unnecessary dependencies (key, core, netbase, sync, ...) from bitcoin-cli. To do this it shards the chain parameters into BaseParams, which contains just the RPC port and data directory (as used by utils and bitcoin-cli) and Params, with the rest.
Diffstat (limited to 'src/chainparamsbase.cpp')
-rw-r--r--src/chainparamsbase.cpp93
1 files changed, 93 insertions, 0 deletions
diff --git a/src/chainparamsbase.cpp b/src/chainparamsbase.cpp
new file mode 100644
index 0000000000..19a9e72cc9
--- /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 = &regTestParams;
+ 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;
+}