Branch data Line data Source code
1 : : // Copyright (c) 2023 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 : 382037 : std::string ChainTypeToString(ChainType chain)
12 : : {
13 [ + + + + : 382037 : switch (chain) {
+ - ]
14 : 358311 : case ChainType::MAIN:
15 : 358311 : return "main";
16 : 7959 : case ChainType::TESTNET:
17 : 7959 : return "test";
18 : 7524 : case ChainType::TESTNET4:
19 : 7524 : return "testnet4";
20 : 7629 : case ChainType::SIGNET:
21 : 7629 : return "signet";
22 : 614 : case ChainType::REGTEST:
23 : 614 : return "regtest";
24 : : }
25 : 0 : assert(false);
26 : : }
27 : :
28 : 140 : std::optional<ChainType> ChainTypeFromString(std::string_view chain)
29 : : {
30 [ + + ]: 140 : if (chain == "main") {
31 : 36 : return ChainType::MAIN;
32 [ + + ]: 104 : } else if (chain == "test") {
33 : 36 : return ChainType::TESTNET;
34 [ - + ]: 68 : } else if (chain == "testnet4") {
35 : 0 : return ChainType::TESTNET4;
36 [ + + ]: 68 : } else if (chain == "signet") {
37 : 36 : return ChainType::SIGNET;
38 [ + - ]: 32 : } else if (chain == "regtest") {
39 : 32 : return ChainType::REGTEST;
40 : : } else {
41 : 0 : return std::nullopt;
42 : : }
43 : : }
|