From cc70cd2c464345fe2781b3de864448c4d6dd8866 Mon Sep 17 00:00:00 2001 From: Larry Ruane Date: Tue, 21 Sep 2021 11:45:59 -0600 Subject: [PATCH] add -orchardwallet experimental feature flag Also, temporarily don't allow -orchardwallet if running mainnet. --- src/experimental_features.cpp | 6 ++++++ src/experimental_features.h | 1 + src/init.cpp | 6 ++++++ 3 files changed, 13 insertions(+) diff --git a/src/experimental_features.cpp b/src/experimental_features.cpp index 67afbf7fc..bd1f3c3a5 100644 --- a/src/experimental_features.cpp +++ b/src/experimental_features.cpp @@ -11,6 +11,7 @@ bool fExperimentalDeveloperSetPoolSizeZero = false; bool fExperimentalPaymentDisclosure = false; bool fExperimentalInsightExplorer = false; bool fExperimentalLightWalletd = false; +bool fExperimentalOrchardWallet = false; std::optional InitExperimentalMode() { @@ -20,6 +21,7 @@ std::optional InitExperimentalMode() fExperimentalPaymentDisclosure = GetBoolArg("-paymentdisclosure", false); fExperimentalInsightExplorer = GetBoolArg("-insightexplorer", false); fExperimentalLightWalletd = GetBoolArg("-lightwalletd", false); + fExperimentalOrchardWallet = GetBoolArg("-orchardwallet", false); // Fail if user has set experimental options without the global flag if (!fExperimentalMode) { @@ -33,6 +35,8 @@ std::optional InitExperimentalMode() return _("Insight explorer requires -experimentalfeatures."); } else if (fExperimentalLightWalletd) { return _("Light Walletd requires -experimentalfeatures."); + } else if (fExperimentalOrchardWallet) { + return _("Orchard-enabled wallet requires -experimentalfeatures."); } } return std::nullopt; @@ -51,6 +55,8 @@ std::vector GetExperimentalFeatures() experimentalfeatures.push_back("insightexplorer"); if (fExperimentalLightWalletd) experimentalfeatures.push_back("lightwalletd"); + if (fExperimentalOrchardWallet) + experimentalfeatures.push_back("orchardwallet"); return experimentalfeatures; } diff --git a/src/experimental_features.h b/src/experimental_features.h index d607f1d53..d2197be48 100644 --- a/src/experimental_features.h +++ b/src/experimental_features.h @@ -14,6 +14,7 @@ extern bool fExperimentalDeveloperSetPoolSizeZero; extern bool fExperimentalPaymentDisclosure; extern bool fExperimentalInsightExplorer; extern bool fExperimentalLightWalletd; +extern bool fExperimentalOrchardWallet; std::optional InitExperimentalMode(); std::vector GetExperimentalFeatures(); diff --git a/src/init.cpp b/src/init.cpp index 158c58bd9..fedf8563b 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -947,6 +947,12 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler) return InitError(err.value()); } + // Just temporarily (until fully functional), don't allow the Orchard wallet + // extensions if we're on mainnet + if (fExperimentalOrchardWallet && chainparams.NetworkIDString() == "main") { + return InitError(_("The -orchardwallet setting is not yet available on mainnet.")); + } + // if using block pruning, then disable txindex if (GetArg("-prune", 0)) { if (GetBoolArg("-txindex", DEFAULT_TXINDEX))