MCPcopy Create free account
hub / github.com/BTCGPU/BTCGPU / VersionBitsConditionChecker

Class VersionBitsConditionChecker

src/versionbits.cpp:182–200  ·  view source on GitHub ↗

* Class to implement versionbits logic. */

Source from the content-addressed store, hash-verified

180 * Class to implement versionbits logic.
181 */
182class VersionBitsConditionChecker : public AbstractThresholdConditionChecker {
183private:
184 const Consensus::DeploymentPos id;
185
186protected:
187 int64_t BeginTime(const Consensus::Params& params) const override { return params.vDeployments[id].nStartTime; }
188 int64_t EndTime(const Consensus::Params& params) const override { return params.vDeployments[id].nTimeout; }
189 int Period(const Consensus::Params& params) const override { return params.nMinerConfirmationWindow; }
190 int Threshold(const Consensus::Params& params) const override { return params.nRuleChangeActivationThreshold; }
191
192 bool Condition(const CBlockIndex* pindex, const Consensus::Params& params) const override
193 {
194 return (((pindex->nVersion & VERSIONBITS_TOP_MASK) == VERSIONBITS_TOP_BITS) && (pindex->nVersion & Mask(params)) != 0);
195 }
196
197public:
198 explicit VersionBitsConditionChecker(Consensus::DeploymentPos id_) : id(id_) {}
199 uint32_t Mask(const Consensus::Params& params) const { return ((uint32_t)1) << params.vDeployments[id].bit; }
200};
201
202} // namespace
203

Callers 4

VersionBitsStateFunction · 0.85
VersionBitsStatisticsFunction · 0.85
VersionBitsMaskFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected