Mavryk_raw_protocol_alpha.Delegate_activation_storage
This module deals with delegates' activity. Typically, the provided functions can be used to deactivate a delegate that has not shown activity for a certain number of cycles, and to reactivate it when appropriate.
This module is responsible for maintaining the following tables:
val last_cycle_before_deactivation :
Raw_context.t ->
Mavryk_protocol_environment_alpha.Signature.Public_key_hash.t ->
Cycle_repr.t Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.t
last_cycle_before_deactivation ctxt delegate
is the cycle at which the delegate is scheduled to become inactive.
val set_inactive :
Raw_context.t ->
Mavryk_protocol_environment_alpha.Signature.Public_key_hash.t ->
Raw_context.t Mavryk_protocol_environment_alpha.Lwt.t
set_inactive context delegate
adds delegate
to the set of inactive contracts.
val set_active :
Raw_context.t ->
Mavryk_protocol_environment_alpha.Signature.Public_key_hash.t ->
(Raw_context.t * bool) Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.t
set_active ctxt delegate
returns a pair (new_ctxt, is_inactive)
where:
new_ctxt
is a new context, updated from ctxt
, where the delegate
's last active cycle has been updatedis_inactive
represents the state of delegate
, prior to the update.