Bitcoin Core
28.0.0
P2P Digital Currency
Loading...
Searching...
No Matches
src
deploymentstatus.cpp
Go to the documentation of this file.
1
// Copyright (c) 2020-2022 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 =
typename
std::underlying_type<T>::type;
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:30
Consensus::DEPLOYMENT_TESTDUMMY
@ DEPLOYMENT_TESTDUMMY
Definition
params.h:33
Consensus::MAX_VERSION_BITS_DEPLOYMENTS
@ MAX_VERSION_BITS_DEPLOYMENTS
Definition
params.h:36
Consensus::BuriedDeployment
BuriedDeployment
A buried deployment is one where the height of the activation has been hardcoded into the client impl...
Definition
params.h:22
params.h
versionbits.h
Generated on Thu Oct 3 2024 09:20:15 for Bitcoin Core by
1.12.0