diff options
Diffstat (limited to 'src/node/chainstatemanager_args.cpp')
-rw-r--r-- | src/node/chainstatemanager_args.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/node/chainstatemanager_args.cpp b/src/node/chainstatemanager_args.cpp index 811d812e9f..4716be46b5 100644 --- a/src/node/chainstatemanager_args.cpp +++ b/src/node/chainstatemanager_args.cpp @@ -4,16 +4,32 @@ #include <node/chainstatemanager_args.h> +#include <arith_uint256.h> +#include <tinyformat.h> +#include <uint256.h> +#include <util/strencodings.h> #include <util/system.h> +#include <util/translation.h> +#include <validation.h> #include <chrono> #include <optional> +#include <string> namespace node { -void ApplyArgsManOptions(const ArgsManager& args, ChainstateManager::Options& opts) +std::optional<bilingual_str> ApplyArgsManOptions(const ArgsManager& args, ChainstateManager::Options& opts) { + if (auto value{args.GetArg("-minimumchainwork")}) { + if (!IsHexNumber(*value)) { + return strprintf(Untranslated("Invalid non-hex (%s) minimum chain work value specified"), *value); + } + opts.minimum_chain_work = UintToArith256(uint256S(*value)); + } + if (auto value{args.GetArg("-assumevalid")}) opts.assumed_valid_block = uint256S(*value); if (auto value{args.GetIntArg("-maxtipage")}) opts.max_tip_age = std::chrono::seconds{*value}; + + return std::nullopt; } } // namespace node |