/ src / util / chaintype.cpp
chaintype.cpp
 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 <cassert>
 8  #include <optional>
 9  #include <string>
10  
11  std::string ChainTypeToString(ChainType chain)
12  {
13      switch (chain) {
14      case ChainType::MAIN:
15          return "main";
16      case ChainType::TESTNET:
17          return "test";
18      case ChainType::TESTNET4:
19          return "testnet4";
20      case ChainType::SIGNET:
21          return "signet";
22      case ChainType::REGTEST:
23          return "regtest";
24      }
25      assert(false);
26  }
27  
28  std::optional<ChainType> ChainTypeFromString(std::string_view chain)
29  {
30      if (chain == "main") {
31          return ChainType::MAIN;
32      } else if (chain == "test") {
33          return ChainType::TESTNET;
34      } else if (chain == "testnet4") {
35          return ChainType::TESTNET4;
36      } else if (chain == "signet") {
37          return ChainType::SIGNET;
38      } else if (chain == "regtest") {
39          return ChainType::REGTEST;
40      } else {
41          return std::nullopt;
42      }
43  }