Module Mavryk_raw_protocol_alpha.Level_storage

val current : Raw_context.t -> Level_repr.t
val previous : Raw_context.t -> Level_repr.t

Fails with Negative_level_and_offset_sum if the sum of the raw_level and the offset is negative.

val pred : Raw_context.t -> Level_repr.t -> Level_repr.t option

When the given level is two or above, return its predecessor. When the given level is one or less, return None (because we cannot build the Level_repr.t for level zero).

val add : Raw_context.t -> Level_repr.t -> int -> Level_repr.t

i must be positive

val sub : Raw_context.t -> Level_repr.t -> int -> Level_repr.t option

sub c level i returns None if the level is before the first level of the Alpha family of protocol, otherwise it returns the expected level. i must be positive.

val first_level_in_cycle : Raw_context.t -> Cycle_repr.t -> Level_repr.t
val last_level_in_cycle : Raw_context.t -> Cycle_repr.t -> Level_repr.t
val levels_in_cycle : Raw_context.t -> Cycle_repr.t -> Level_repr.t list
val levels_in_current_cycle : Raw_context.t -> ?offset:int32 -> unit -> Level_repr.t list
val levels_with_commitments_in_cycle : Raw_context.t -> Cycle_repr.t -> Level_repr.t list
val last_preserved_block_level : Raw_context.t -> Raw_level_repr.t
val last_finalized_block_level : Raw_context.t -> Raw_level_repr.t
val dawn_of_a_new_cycle : Raw_context.t -> Cycle_repr.t option

Returns Some cycle if the current level represents the last level of cycle and None if the level is not the last level of a cycle.

val may_compute_randao : Raw_context.t -> bool

Returns true if RANDAO should be computed at the current level, that is if the current level, relative to the cycle's start, equals the nonce revelation period cut-off.