LCOV - code coverage report
Current view: top level - src - chainparamsbase.cpp (source / functions) Hit Total Coverage
Test: fuzz_coverage.info Lines: 26 27 96.3 %
Date: 2023-09-26 12:08:55 Functions: 5 5 100.0 %

          Line data    Source code
       1             : // Copyright (c) 2010 Satoshi Nakamoto
       2             : // Copyright (c) 2009-2021 The Bitcoin Core developers
       3             : // Distributed under the MIT software license, see the accompanying
       4             : // file COPYING or http://www.opensource.org/licenses/mit-license.php.
       5             : 
       6             : #include <chainparamsbase.h>
       7             : 
       8             : #include <common/args.h>
       9             : #include <tinyformat.h>
      10             : #include <util/chaintype.h>
      11             : 
      12             : #include <assert.h>
      13             : 
      14           1 : void SetupChainParamsBaseOptions(ArgsManager& argsman)
      15             : {
      16           1 :     argsman.AddArg("-chain=<chain>", "Use the chain <chain> (default: main). Allowed values: main, test, signet, regtest", ArgsManager::ALLOW_ANY, OptionsCategory::CHAINPARAMS);
      17           1 :     argsman.AddArg("-regtest", "Enter regression test mode, which uses a special chain in which blocks can be solved instantly. "
      18           1 :                  "This is intended for regression testing tools and app development. Equivalent to -chain=regtest.", ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::CHAINPARAMS);
      19           1 :     argsman.AddArg("-testactivationheight=name@height.", "Set the activation height of 'name' (segwit, bip34, dersig, cltv, csv). (regtest-only)", ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::DEBUG_TEST);
      20           1 :     argsman.AddArg("-testnet", "Use the test chain. Equivalent to -chain=test.", ArgsManager::ALLOW_ANY, OptionsCategory::CHAINPARAMS);
      21           1 :     argsman.AddArg("-vbparams=deployment:start:end[:min_activation_height]", "Use given start/end times and min_activation_height for specified version bits deployment (regtest-only)", ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::CHAINPARAMS);
      22           1 :     argsman.AddArg("-signet", "Use the signet chain. Equivalent to -chain=signet. Note that the network is defined by the -signetchallenge parameter", ArgsManager::ALLOW_ANY, OptionsCategory::CHAINPARAMS);
      23           1 :     argsman.AddArg("-signetchallenge", "Blocks must satisfy the given script to be considered valid (only for signet networks; defaults to the global default signet test network challenge)", ArgsManager::ALLOW_ANY | ArgsManager::DISALLOW_NEGATION, OptionsCategory::CHAINPARAMS);
      24           1 :     argsman.AddArg("-signetseednode", "Specify a seed node for the signet network, in the hostname[:port] format, e.g. sig.net:1234 (may be used multiple times to specify multiple seed nodes; defaults to the global default signet test network seed node(s))", ArgsManager::ALLOW_ANY | ArgsManager::DISALLOW_NEGATION, OptionsCategory::CHAINPARAMS);
      25           1 : }
      26             : 
      27             : static std::unique_ptr<CBaseChainParams> globalChainBaseParams;
      28             : 
      29           6 : const CBaseChainParams& BaseParams()
      30             : {
      31           6 :     assert(globalChainBaseParams);
      32           6 :     return *globalChainBaseParams;
      33             : }
      34             : 
      35             : /**
      36             :  * Port numbers for incoming Tor connections (8334, 18334, 38334, 18445) have
      37             :  * been chosen arbitrarily to keep ranges of used ports tight.
      38             :  */
      39           5 : std::unique_ptr<CBaseChainParams> CreateBaseChainParams(const ChainType chain)
      40             : {
      41           5 :     switch (chain) {
      42             :     case ChainType::MAIN:
      43           1 :         return std::make_unique<CBaseChainParams>("", 8332, 8334);
      44             :     case ChainType::TESTNET:
      45           1 :         return std::make_unique<CBaseChainParams>("testnet3", 18332, 18334);
      46             :     case ChainType::SIGNET:
      47           1 :         return std::make_unique<CBaseChainParams>("signet", 38332, 38334);
      48             :     case ChainType::REGTEST:
      49           2 :         return std::make_unique<CBaseChainParams>("regtest", 18443, 18445);
      50             :     }
      51           0 :     assert(false);
      52           5 : }
      53             : 
      54           1 : void SelectBaseParams(const ChainType chain)
      55             : {
      56           1 :     globalChainBaseParams = CreateBaseChainParams(chain);
      57           1 :     gArgs.SelectConfigNetwork(ChainTypeToString(chain));
      58           1 : }

Generated by: LCOV version 1.14