diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 2445c379eb..7130141c1c 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -582,20 +582,40 @@ const CChainParams &Params() { return *globalChainParams; } +std::unique_ptr CChainParams::SigNet(const SigNetOptions& options) +{ + return std::make_unique(options); +} + +std::unique_ptr CChainParams::RegTest(const RegTestOptions& options) +{ + return std::make_unique(options); +} + +std::unique_ptr CChainParams::Main() +{ + return std::make_unique(); +} + +std::unique_ptr CChainParams::TestNet() +{ + return std::make_unique(); +} + std::unique_ptr CreateChainParams(const ArgsManager& args, const std::string& chain) { if (chain == CBaseChainParams::MAIN) { - return std::unique_ptr(new CMainParams()); + return CChainParams::Main(); } else if (chain == CBaseChainParams::TESTNET) { - return std::unique_ptr(new CTestNetParams()); + return CChainParams::TestNet(); } else if (chain == CBaseChainParams::SIGNET) { auto opts = CChainParams::SigNetOptions{}; ReadSigNetArgs(args, opts); - return std::make_unique(opts); + return CChainParams::SigNet(opts); } else if (chain == CBaseChainParams::REGTEST) { auto opts = CChainParams::RegTestOptions{}; ReadRegTestArgs(args, opts); - return std::make_unique(opts); + return CChainParams::RegTest(opts); } throw std::runtime_error(strprintf("%s: Unknown chain %s.", __func__, chain)); } diff --git a/src/chainparams.h b/src/chainparams.h index f2e2eb8bc0..30488510d7 100644 --- a/src/chainparams.h +++ b/src/chainparams.h @@ -151,6 +151,11 @@ public: bool fastprune{false}; }; + static std::unique_ptr RegTest(const RegTestOptions& options); + static std::unique_ptr SigNet(const SigNetOptions& options); + static std::unique_ptr Main(); + static std::unique_ptr TestNet(); + protected: CChainParams() {}