aboutsummaryrefslogtreecommitdiff
path: root/src/chainparamsbase.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/chainparamsbase.h')
-rw-r--r--src/chainparamsbase.h56
1 files changed, 30 insertions, 26 deletions
diff --git a/src/chainparamsbase.h b/src/chainparamsbase.h
index 4398f69548..fc101f5b77 100644
--- a/src/chainparamsbase.h
+++ b/src/chainparamsbase.h
@@ -1,12 +1,13 @@
-// Copyright (c) 2014 The Bitcoin developers
-// Distributed under the MIT/X11 software license, see the accompanying
+// Copyright (c) 2014-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.
-#ifndef BITCOIN_CHAIN_PARAMS_BASE_H
-#define BITCOIN_CHAIN_PARAMS_BASE_H
+#ifndef BITCOIN_CHAINPARAMSBASE_H
+#define BITCOIN_CHAINPARAMSBASE_H
-#include <vector>
+#include <memory>
#include <string>
+#include <vector>
/**
* CBaseChainParams defines the base parameters (shared between bitcoin-cli and bitcoind)
@@ -15,44 +16,47 @@
class CBaseChainParams
{
public:
- enum Network {
- MAIN,
- TESTNET,
- REGTEST,
-
- MAX_NETWORK_TYPES
- };
+ /** BIP70 chain name strings (main, test or regtest) */
+ static const std::string MAIN;
+ static const std::string TESTNET;
+ static const std::string REGTEST;
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.
+ * Creates and returns a std::unique_ptr<CBaseChainParams> of the chosen chain.
+ * @returns a CBaseChainParams* of the chosen chain.
+ * @throws a std::runtime_error if the chain is not supported.
*/
-const CBaseChainParams &BaseParams();
+std::unique_ptr<CBaseChainParams> CreateBaseChainParams(const std::string& chain);
-/** Sets the params returned by Params() to those for the given network. */
-void SelectBaseParams(CBaseChainParams::Network network);
+/**
+ * Append the help messages for the chainparams options to the
+ * parameter string.
+ */
+void AppendParamsHelpMessages(std::string& strUsage, bool debugHelp=true);
/**
- * Looks for -regtest or -testnet and then calls SelectParams as appropriate.
- * Returns false if an invalid combination is given.
+ * Return the currently selected parameters. This won't change after app
+ * startup, except for unit tests.
*/
-bool SelectBaseParamsFromCommandLine();
+const CBaseChainParams& BaseParams();
+
+/** Sets the params returned by Params() to those for the given network. */
+void SelectBaseParams(const std::string& chain);
/**
- * Return true if SelectBaseParamsFromCommandLine() has been called to select
- * a network.
+ * Looks for -regtest, -testnet and returns the appropriate BIP70 chain name.
+ * @return CBaseChainParams::MAX_NETWORK_TYPES if an invalid combination is given. CBaseChainParams::MAIN by default.
*/
-bool AreBaseParamsConfigured();
+std::string ChainNameFromCommandLine();
-#endif
+#endif // BITCOIN_CHAINPARAMSBASE_H