Bitcoin Core
31.0.0
P2P Digital Currency
Loading...
Searching...
No Matches
src
deploymentstatus.cpp
Go to the documentation of this file.
1
// Copyright (c) 2020-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 <
deploymentstatus.h
>
6
7
#include <
consensus/params.h
>
8
#include <
versionbits.h
>
9
10
#include <type_traits>
11
12
/* Basic sanity checking for BuriedDeployment/DeploymentPos enums and
13
* ValidDeployment check */
14
15
static_assert
(
ValidDeployment
(
Consensus::DEPLOYMENT_TESTDUMMY
),
"sanity check of DeploymentPos failed (TESTDUMMY not valid)"
);
16
static_assert
(!
ValidDeployment
(
Consensus::MAX_VERSION_BITS_DEPLOYMENTS
),
"sanity check of DeploymentPos failed (MAX value considered valid)"
);
17
static_assert
(!
ValidDeployment
(
static_cast<
Consensus::BuriedDeployment
>
(
Consensus::DEPLOYMENT_TESTDUMMY
)),
"sanity check of BuriedDeployment failed (overlaps with DeploymentPos)"
);
18
19
/* ValidDeployment only checks upper bounds for ensuring validity.
20
* This checks that the lowest possible value or the type is also a
21
* (specific) valid deployment so that lower bounds don't need to be checked.
22
*/
23
24
template
<
typename
T, T x>
25
static
constexpr
bool
is_minimum
()
26
{
27
using
U = std::underlying_type_t<T>;
28
return
x == std::numeric_limits<U>::min();
29
}
30
31
static_assert
(
is_minimum<Consensus::BuriedDeployment, Consensus::DEPLOYMENT_HEIGHTINCB>
(),
"heightincb is not minimum value for BuriedDeployment"
);
32
static_assert
(
is_minimum<Consensus::DeploymentPos, Consensus::DEPLOYMENT_TESTDUMMY>
(),
"testdummy is not minimum value for DeploymentPos"
);
is_minimum
static constexpr bool is_minimum()
Definition
deploymentstatus.cpp:25
deploymentstatus.h
Consensus::ValidDeployment
constexpr bool ValidDeployment(BuriedDeployment dep)
Definition
params.h:32
Consensus::DEPLOYMENT_TESTDUMMY
@ DEPLOYMENT_TESTDUMMY
Definition
params.h:35
Consensus::MAX_VERSION_BITS_DEPLOYMENTS
@ MAX_VERSION_BITS_DEPLOYMENTS
Definition
params.h:38
Consensus::BuriedDeployment
BuriedDeployment
A buried deployment is one where the height of the activation has been hardcoded into the client impl...
Definition
params.h:24
params.h
versionbits.h
Generated on
for Bitcoin Core by
1.16.1