chaintype.cpp raw

   1  // Copyright (c) 2023-present The Bitcoin Core developers
   2  // Distributed under the MIT software license, see the accompanying
   3  // file COPYING or http://www.opensource.org/licenses/mit-license.php.
   4  
   5  #include <util/chaintype.h>
   6  
   7  #include <util/check.h>
   8  
   9  #include <optional>
  10  #include <string>
  11  
  12  std::string ChainTypeToString(ChainType chain)
  13  {
  14      switch (chain) {
  15      case ChainType::MAIN:
  16          return "main";
  17      case ChainType::TESTNET:
  18          return "test";
  19      case ChainType::TESTNET4:
  20          return "testnet4";
  21      case ChainType::SIGNET:
  22          return "signet";
  23      case ChainType::REGTEST:
  24          return "regtest";
  25      }
  26      assert(false);
  27  }
  28  
  29  std::optional<ChainType> ChainTypeFromString(std::string_view chain)
  30  {
  31      if (chain == "main") {
  32          return ChainType::MAIN;
  33      } else if (chain == "test") {
  34          return ChainType::TESTNET;
  35      } else if (chain == "testnet4") {
  36          return ChainType::TESTNET4;
  37      } else if (chain == "signet") {
  38          return ChainType::SIGNET;
  39      } else if (chain == "regtest") {
  40          return ChainType::REGTEST;
  41      } else {
  42          return std::nullopt;
  43      }
  44  }
  45