-
Notifications
You must be signed in to change notification settings - Fork 405
Expand file tree
/
Copy pathchaintype.cpp
More file actions
74 lines (66 loc) · 1.95 KB
/
Copy pathchaintype.cpp
File metadata and controls
74 lines (66 loc) · 1.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
// Copyright (c) 2023 The Bitcoin Core developers
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#if defined(HAVE_CONFIG_H)
#include <config/bitcoin-config.h>
#endif
#include <util/chaintype.h>
#include <cassert>
#include <optional>
#include <string>
std::string ChainTypeToString(ChainType chain)
{
switch (chain) {
case ChainType::MAIN:
return "main";
case ChainType::TESTNET:
return "test";
case ChainType::TESTNET4:
return "testnet4";
case ChainType::SIGNET:
return "signet";
case ChainType::REGTEST:
return "regtest";
case ChainType::LIQUID1:
return "liquidv1";
case ChainType::LIQUID1TEST:
return "liquidv1test";
case ChainType::LIQUIDTESTNET:
return "liquidtestnet";
case ChainType::CUSTOM:
return "custom";
}
assert(false);
}
std::optional<ChainType> ChainTypeFromString(std::string_view chain)
{
if (chain == "main") {
return ChainType::MAIN;
} else if (chain == "test") {
return ChainType::TESTNET;
} else if (chain == "testnet4") {
return ChainType::TESTNET4;
} else if (chain == "signet") {
return ChainType::SIGNET;
} else if (chain == "regtest") {
return ChainType::REGTEST;
} else if (chain == "liquidv1") {
return ChainType::LIQUID1;
} else if (chain == "liquidv1test") {
return ChainType::LIQUID1TEST;
} else if (chain == "liquidtestnet") {
return ChainType::LIQUIDTESTNET;
} else {
return std::nullopt;
}
}
// ELEMENTS
ChainTypeMeta ChainTypeMetaFrom(std::string chain_name) {
if (auto chain = ChainTypeFromString(chain_name)) {
return { *chain, chain_name };
}
return { ChainType::CUSTOM, chain_name };
}
ChainTypeMeta ChainTypeMetaFrom(ChainType chain_type) {
return { chain_type, ChainTypeToString(chain_type) };
}