aboutsummaryrefslogtreecommitdiff
path: root/src/versionbits.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/versionbits.cpp')
-rw-r--r--src/versionbits.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/versionbits.cpp b/src/versionbits.cpp
index 0fbad0a64e..3497fc049e 100644
--- a/src/versionbits.cpp
+++ b/src/versionbits.cpp
@@ -212,6 +212,22 @@ uint32_t VersionBitsCache::Mask(const Consensus::Params& params, Consensus::Depl
return VersionBitsConditionChecker(pos).Mask(params);
}
+extern VersionBitsCache g_versionbitscache; // removed in next commit
+
+int32_t ComputeBlockVersion(const CBlockIndex* pindexPrev, const Consensus::Params& params)
+{
+ int32_t nVersion = VERSIONBITS_TOP_BITS;
+
+ for (int i = 0; i < (int)Consensus::MAX_VERSION_BITS_DEPLOYMENTS; i++) {
+ ThresholdState state = g_versionbitscache.State(pindexPrev, params, static_cast<Consensus::DeploymentPos>(i));
+ if (state == ThresholdState::LOCKED_IN || state == ThresholdState::STARTED) {
+ nVersion |= g_versionbitscache.Mask(params, static_cast<Consensus::DeploymentPos>(i));
+ }
+ }
+
+ return nVersion;
+}
+
void VersionBitsCache::Clear()
{
LOCK(m_mutex);