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