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 <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 }