package tezos-protocol-012-Psithaca
include Raw_context.CONSENSUS
with type t := t
and type slot := Slot.t
and type 'a slot_map := 'a Slot.Map.t
and type slot_set := Slot.Set.t
and type round := Round.t
val allowed_endorsements :
t ->
(Tezos_protocol_environment_012_Psithaca.Signature.Public_key.t
* Tezos_protocol_environment_012_Psithaca.Signature.Public_key_hash.t
* int)
Slot.Map.t
Returns a map where each endorser's pkh is associated to the list of its endorsing slots (in decreasing order) for a given level.
val allowed_preendorsements :
t ->
(Tezos_protocol_environment_012_Psithaca.Signature.Public_key.t
* Tezos_protocol_environment_012_Psithaca.Signature.Public_key_hash.t
* int)
Slot.Map.t
Returns a map where each endorser's pkh is associated to the list of its endorsing slots (in decreasing order) for a given level.
val current_endorsement_power : t -> int
endorsement power ctx
returns the endorsement power of the current block.
val initialize_consensus_operation :
t ->
allowed_endorsements:
(Tezos_protocol_environment_012_Psithaca.Signature.Public_key.t
* Tezos_protocol_environment_012_Psithaca.Signature.Public_key_hash.t
* int)
Slot.Map.t ->
allowed_preendorsements:
(Tezos_protocol_environment_012_Psithaca.Signature.Public_key.t
* Tezos_protocol_environment_012_Psithaca.Signature.Public_key_hash.t
* int)
Slot.Map.t ->
t
Initializes the map of allowed endorsements and preendorsements, this function must be called only once and before applying any consensus operation.
val record_grand_parent_endorsement :
t ->
Tezos_protocol_environment_012_Psithaca.Signature.Public_key_hash.t ->
t Tezos_protocol_environment_012_Psithaca.Error_monad.tzresult
record_grand_parent_endorsement ctx pkh
records an grand_parent_endorsement for the current block. This is only useful for the partial construction mode.
val record_endorsement :
t ->
initial_slot:Slot.t ->
power:int ->
t Tezos_protocol_environment_012_Psithaca.Error_monad.tzresult
record_endorsement ctx ~initial_slot ~power
records an endorsement for the current block.
The endorsement should be valid in the sense that Int_map.find_opt initial_slot allowed_endorsement ctx = Some
(pkh, power)
.
val record_preendorsement :
t ->
initial_slot:Slot.t ->
power:int ->
Round.t ->
t Tezos_protocol_environment_012_Psithaca.Error_monad.tzresult
record_preendorsement ctx ~initial_slot ~power round
payload_hash power
records a preendorsement for a proposal at round
with payload payload_hash
.
The preendorsement should be valid in the sense that Int_map.find_opt initial_slot allowed_preendorsement ctx = Some
(pkh, power)
.
val endorsements_seen : t -> Slot.Set.t
get_preendorsements_quorum_round ctx
returns None
if no preendorsement are included in the current block. Otherwise, return Some r
where r
is the round of the preendorsements included in the block.
set_preendorsements_quorum_round ctx round
sets the round for preendorsements included in this block. This function should be called only once.
This function is only used in Full_construction
mode.
locked_round_evidence ctx
returns the round of the recorded preendorsements as well as their power.
val set_endorsement_branch :
t ->
(Tezos_protocol_environment_012_Psithaca.Block_hash.t * Block_payload_hash.t) ->
t
val endorsement_branch :
t ->
(Tezos_protocol_environment_012_Psithaca.Block_hash.t * Block_payload_hash.t)
option
val set_grand_parent_branch :
t ->
(Tezos_protocol_environment_012_Psithaca.Block_hash.t * Block_payload_hash.t) ->
t
val grand_parent_branch :
t ->
(Tezos_protocol_environment_012_Psithaca.Block_hash.t * Block_payload_hash.t)
option
val store_endorsement_branch :
context ->
(Tezos_protocol_environment_012_Psithaca.Block_hash.t * Block_payload_hash.t) ->
context Tezos_protocol_environment_012_Psithaca.Lwt.t
val store_grand_parent_branch :
context ->
(Tezos_protocol_environment_012_Psithaca.Block_hash.t * Block_payload_hash.t) ->
context Tezos_protocol_environment_012_Psithaca.Lwt.t