Branch data Line data Source code
1 : : // Copyright (c) 2016-2021 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 : 6 : inline std::string DeploymentName(Consensus::DeploymentPos pos)
28 : : {
29 [ - + ]: 6 : assert(Consensus::ValidDeployment(pos));
30 : 6 : return VersionBitsDeploymentInfo[pos].name;
31 : : }
32 : :
33 : : std::optional<Consensus::BuriedDeployment> GetBuriedDeployment(const std::string_view deployment_name);
34 : :
35 : : #endif // BITCOIN_DEPLOYMENTINFO_H
|