pub trait VersionbitsConditionChecker {
// Required methods
fn start(&self) -> EpochNumber;
fn timeout(&self) -> EpochNumber;
fn active_mode(&self) -> ActiveMode;
fn condition<I: VersionbitsIndexer>(
&self,
header: &HeaderView,
indexer: &I,
) -> bool;
fn min_activation_epoch(&self) -> EpochNumber;
fn period(&self) -> EpochNumber;
fn threshold(&self) -> Ratio;
// Provided methods
fn get_state<I: VersionbitsIndexer>(
&self,
header: &HeaderView,
cache: &Cache,
indexer: &I,
) -> Option<ThresholdState> { ... }
fn get_state_since_epoch<I: VersionbitsIndexer>(
&self,
header: &HeaderView,
cache: &Cache,
indexer: &I,
) -> Option<EpochNumber> { ... }
}
Expand description
Trait that implements versionbits threshold logic, and caches results.
Required Methods§
Sourcefn start(&self) -> EpochNumber
fn start(&self) -> EpochNumber
Specifies the first epoch in which the bit gains meaning.
Sourcefn timeout(&self) -> EpochNumber
fn timeout(&self) -> EpochNumber
Specifies an epoch at which the miner signaling ends. Once this epoch has been reached, if the softfork has not yet locked_in (excluding this epoch block’s bit state), the deployment is considered failed on all descendants of the block.
Sourcefn active_mode(&self) -> ActiveMode
fn active_mode(&self) -> ActiveMode
Active mode for testing.
Sourcefn condition<I: VersionbitsIndexer>(
&self,
header: &HeaderView,
indexer: &I,
) -> bool
fn condition<I: VersionbitsIndexer>( &self, header: &HeaderView, indexer: &I, ) -> bool
Determines whether bit in the version
field of the block is to be used to signal
Sourcefn min_activation_epoch(&self) -> EpochNumber
fn min_activation_epoch(&self) -> EpochNumber
Specifies the epoch at which the softfork is allowed to become active.
Sourcefn period(&self) -> EpochNumber
fn period(&self) -> EpochNumber
The period for signal statistics are counted
Provided Methods§
Sourcefn get_state<I: VersionbitsIndexer>(
&self,
header: &HeaderView,
cache: &Cache,
indexer: &I,
) -> Option<ThresholdState>
fn get_state<I: VersionbitsIndexer>( &self, header: &HeaderView, cache: &Cache, indexer: &I, ) -> Option<ThresholdState>
Returns the state for a header. Applies any state transition if conditions are present. Caches state from first block of period.
Sourcefn get_state_since_epoch<I: VersionbitsIndexer>(
&self,
header: &HeaderView,
cache: &Cache,
indexer: &I,
) -> Option<EpochNumber>
fn get_state_since_epoch<I: VersionbitsIndexer>( &self, header: &HeaderView, cache: &Cache, indexer: &I, ) -> Option<EpochNumber>
Returns the first epoch which the state applies
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.