deploymentinfo.h raw
1 // Copyright (c) 2016-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 #ifndef BITCOIN_DEPLOYMENTINFO_H
6 #define BITCOIN_DEPLOYMENTINFO_H
7
8 #include <consensus/params.h>
9
10 #include <array>
11 #include <cassert>
12 #include <optional>
13 #include <string>
14 #include <string_view>
15
16 struct VBDeploymentInfo {
17 /** Deployment name */
18 const char *name;
19 /** Whether GBT clients can safely ignore this rule in simplified usage */
20 bool gbt_optional_rule;
21 };
22
23 extern const std::array<VBDeploymentInfo,Consensus::MAX_VERSION_BITS_DEPLOYMENTS> VersionBitsDeploymentInfo;
24
25 std::string DeploymentName(Consensus::BuriedDeployment dep);
26
27 inline std::string DeploymentName(Consensus::DeploymentPos pos)
28 {
29 assert(Consensus::ValidDeployment(pos));
30 return VersionBitsDeploymentInfo[pos].name;
31 }
32
33 std::optional<Consensus::BuriedDeployment> GetBuriedDeployment(std::string_view deployment_name);
34
35 #endif // BITCOIN_DEPLOYMENTINFO_H
36