Mavryk_raw_protocol_alpha.Level_repr
This module defines the protocol representation of a level. Besides the "raw level", which is the shell's notion of the level, this representation also contains additional information, like the cycle the level belongs to.
type t = private {
level : Raw_level_repr.t;
The level of the block relative to genesis. This is also the Shell's notion of level.
*)level_position : int32;
The level of the block relative to the block that starts the alpha family of protocols.
*)cycle : Cycle_repr.t;
The current cycle's number. Note that cycles are a protocol-specific notion. As a result, the cycle number starts at 0 with the first block of the first version of protocol alpha.
*)cycle_position : int32;
The current level of the block relative to the first block of the current cycle.
*)expected_commitment : bool;
}
type level = t
include Mavryk_protocol_environment_alpha.Compare.S with type t := level
val encoding : level Mavryk_protocol_environment_alpha.Data_encoding.t
val pp : Mavryk_protocol_environment_alpha.Format.formatter -> level -> unit
val pp_full :
Mavryk_protocol_environment_alpha.Format.formatter ->
level ->
unit
type cycle_era = {
first_level : Raw_level_repr.t;
The first level of a cycle era.
*)first_cycle : Cycle_repr.t;
The first cycle of a cycle era.
*)blocks_per_cycle : int32;
The value of the blocks_per_cycle constant used during the cycle era starting with first_level.
*)blocks_per_commitment : int32;
The value of the blocks_per_commitment constant used during the cycle era starting with first_level.
*)}
A cycle era is a chunk of cycles having the same number of levels per cycle and the same number of blocks per commitment.
val cycle_eras_encoding :
cycle_eras Mavryk_protocol_environment_alpha.Data_encoding.t
val create_cycle_eras :
cycle_era list ->
cycle_eras Mavryk_protocol_environment_alpha.Error_monad.tzresult
Preconditions on the input list of cycle eras:
val add_cycle_era :
cycle_era ->
cycle_eras ->
cycle_eras Mavryk_protocol_environment_alpha.Error_monad.tzresult
Add a new cycle era
val current_era : cycle_eras -> cycle_era
Returns the current era
val root_level : cycle_eras -> level
Returns the first level of the oldest era
val cycle_from_raw : cycle_eras:cycle_eras -> Raw_level_repr.t -> Cycle_repr.t
Returns the cycle corresponding to a raw level
val level_from_raw : cycle_eras:cycle_eras -> Raw_level_repr.t -> level
Returns the annotated level corresponding to a raw level
val level_from_raw_with_offset :
cycle_eras:cycle_eras ->
offset:int32 ->
Raw_level_repr.t ->
level Mavryk_protocol_environment_alpha.Error_monad.tzresult
Returns the annotated level corresponding to a raw level and an offset. A positive offset corresponds to a higher level. Fails with Negative_level_and_offset_sum
if the sum of the raw_level and the offset is negative. Fails with Level_not_in_alpha
if the sum of the raw_level and the offset is a level before the first level in the Alpha family of protocols.
val first_level_in_cycle_from_eras :
cycle_eras:cycle_eras ->
Cycle_repr.t ->
level
Returns the first level of the given cycle.
val last_of_cycle : cycle_eras:cycle_eras -> level -> bool
Returns true if the given level is the last of a cycle.
module Internal_for_tests : sig ... end