aboutsummaryrefslogtreecommitdiff
path: root/src/chainparamsbase.h
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.h
parent14f888ca804386b111b07e8988753d67f507ba30 (diff)
downloadbitcoin-84ce18ca9339901f65d77a5821eb65f771316558.tar.xz
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.h')
-rw-r--r--src/chainparamsbase.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/chainparamsbase.h b/src/chainparamsbase.h
new file mode 100644
index 0000000000..4a3b268909
--- /dev/null
+++ b/src/chainparamsbase.h
@@ -0,0 +1,52 @@
+// Copyright (c) 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.
+
+#ifndef BITCOIN_CHAIN_PARAMS_BASE_H
+#define BITCOIN_CHAIN_PARAMS_BASE_H
+
+#include <vector>
+#include <string>
+
+/**
+ * CBaseChainParams defines the base parameters (shared between bitcoin-cli and bitcoind)
+ * of a given instance of the Bitcoin system.
+ */
+class CBaseChainParams
+{
+public:
+ enum Network {
+ MAIN,
+ TESTNET,
+ REGTEST,
+
+ MAX_NETWORK_TYPES
+ };
+
+ const std::string& DataDir() const { return strDataDir; }
+ int RPCPort() const { return nRPCPort; }
+ Network NetworkID() const { return networkID; }
+protected:
+ CBaseChainParams() {}
+
+ int nRPCPort;
+ std::string strDataDir;
+ Network networkID;
+};
+
+/**
+ * Return the currently selected parameters. This won't change after app startup
+ * outside of the unit tests.
+ */
+const CBaseChainParams &BaseParams();
+
+/** Sets the params returned by Params() to those for the given network. */
+void SelectBaseParams(CBaseChainParams::Network network);
+
+/**
+ * Looks for -regtest or -testnet and then calls SelectParams as appropriate.
+ * Returns false if an invalid combination is given.
+ */
+bool SelectBaseParamsFromCommandLine();
+
+#endif