package tezos-protocol-012-Psithaca
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=7062cd57addd452852598a2214ade393130efa087b99068d53713bdf912b3680
sha512=08e4091144a03ce3c107fb91a66501bd8b65ca3278917c455a2eaac6df3e108ade63f6ab8340a4bb152d60f404326e464d0ec95d26cafe8e82f870465d24a5fc
doc/tezos-protocol-012-Psithaca/Tezos_protocol_012_Psithaca/Protocol/index.html
Module Tezos_protocol_012_Psithaca.Protocol
Source
include module type of struct include Tezos_raw_protocol_012_Psithaca end
module Delegate_activation_storage =
Tezos_raw_protocol_012_Psithaca.Delegate_activation_storage
module Liquidity_baking_migration =
Tezos_raw_protocol_012_Psithaca.Liquidity_baking_migration
module Script_tc_errors_registration =
Tezos_raw_protocol_012_Psithaca.Script_tc_errors_registration
module Script_typed_ir_size_costs =
Tezos_raw_protocol_012_Psithaca.Script_typed_ir_size_costs
include module type of struct include Tezos_raw_protocol_012_Psithaca.Main end
type validation_mode = Tezos_raw_protocol_012_Psithaca.Main.validation_mode =
| Application of {
block_header : Tezos_raw_protocol_012_Psithaca.Alpha_context.Block_header.t;
fitness : Tezos_raw_protocol_012_Psithaca.Alpha_context.Fitness.t;
payload_producer : Tezos_raw_protocol_012_Psithaca.Alpha_context.public_key_hash;
block_producer : Tezos_raw_protocol_012_Psithaca.Alpha_context.public_key_hash;
predecessor_round : Tezos_raw_protocol_012_Psithaca.Alpha_context.Round.t;
predecessor_level : Tezos_raw_protocol_012_Psithaca.Alpha_context.Level.t;
}
| Partial_application of {
block_header : Tezos_raw_protocol_012_Psithaca.Alpha_context.Block_header.t;
fitness : Tezos_raw_protocol_012_Psithaca.Alpha_context.Fitness.t;
payload_producer : Tezos_raw_protocol_012_Psithaca.Alpha_context.public_key_hash;
block_producer : Tezos_raw_protocol_012_Psithaca.Alpha_context.public_key_hash;
predecessor_level : Tezos_raw_protocol_012_Psithaca.Alpha_context.Level.t;
predecessor_round : Tezos_raw_protocol_012_Psithaca.Alpha_context.Round.t;
}
| Partial_construction of {
predecessor : Tezos_protocol_environment_012_Psithaca.Block_hash.t;
predecessor_fitness : Tezos_protocol_environment_012_Psithaca.Fitness.t;
predecessor_level : Tezos_raw_protocol_012_Psithaca.Alpha_context.Level.t;
predecessor_round : Tezos_raw_protocol_012_Psithaca.Alpha_context.Round.t;
}
| Full_construction of {
predecessor : Tezos_protocol_environment_012_Psithaca.Block_hash.t;
payload_producer : Tezos_raw_protocol_012_Psithaca.Alpha_context.public_key_hash;
block_producer : Tezos_raw_protocol_012_Psithaca.Alpha_context.public_key_hash;
protocol_data_contents : Tezos_raw_protocol_012_Psithaca.Alpha_context.Block_header.contents;
level : Tezos_protocol_environment_012_Psithaca.Int32.t;
round : Tezos_raw_protocol_012_Psithaca.Alpha_context.Round.t;
predecessor_level : Tezos_raw_protocol_012_Psithaca.Alpha_context.Level.t;
predecessor_round : Tezos_raw_protocol_012_Psithaca.Alpha_context.Round.t;
}
type validation_state = Tezos_raw_protocol_012_Psithaca.Main.validation_state = {
mode : validation_mode;
chain_id : Tezos_protocol_environment_012_Psithaca.Chain_id.t;
ctxt : Tezos_raw_protocol_012_Psithaca.Alpha_context.t;
op_count : int;
migration_balance_updates : Tezos_raw_protocol_012_Psithaca.Alpha_context.Receipt.balance_updates;
liquidity_baking_escape_ema : Tezos_protocol_environment_012_Psithaca.Int32.t;
implicit_operations_results : Tezos_raw_protocol_012_Psithaca.Apply_results.packed_successful_manager_operation_result list;
}
type operation = Tezos_raw_protocol_012_Psithaca.Alpha_context.packed_operation =
{
shell : Tezos_protocol_environment_012_Psithaca.Operation.shell_header;
protocol_data : operation_data;
}
val check_manager_signature :
validation_state ->
'b Tezos_raw_protocol_012_Psithaca.Alpha_context.Kind.manager
Tezos_raw_protocol_012_Psithaca.Alpha_context.contents_list ->
'a Tezos_raw_protocol_012_Psithaca.Alpha_context.operation ->
unit Tezos_protocol_environment_012_Psithaca.Error_monad.tzresult
Tezos_protocol_environment_012_Psithaca.Lwt.t
check_manager_signature validation_state op raw_operation
The function starts by retrieving the public key hash pkh
of the manager operation. In case the operation is batched, the function also checks that the sources are all the same. Once the pkh
is retrieved, the function looks for its associated public key. For that, the manager operation is inspected to check if it contains a public key revelation. If not, the public key is searched in the context.
val precheck_manager :
validation_state ->
'a Tezos_raw_protocol_012_Psithaca.Alpha_context.Kind.manager
Tezos_raw_protocol_012_Psithaca.Alpha_context.contents_list ->
unit Tezos_protocol_environment_012_Psithaca.Error_monad.tzresult
Tezos_protocol_environment_012_Psithaca.Lwt.t
precheck_manager validation_state op
returns ()
if the manager operation op
is solveable, returns an error otherwise. An operation is solveable if it is well-formed and can pay the fees to be included in a block with either a success or a failure status. This function uses Apply.precheck_manager_contents_list
but discard the context and balance update
include Tezos_protocol_environment_012_Psithaca.Updater.PROTOCOL
with type block_header_data =
Tezos_raw_protocol_012_Psithaca.Alpha_context.Block_header.protocol_data
and type block_header_metadata =
Tezos_raw_protocol_012_Psithaca.Apply_results.block_metadata
and type block_header =
Tezos_raw_protocol_012_Psithaca.Alpha_context.Block_header.t
and type operation_data := operation_data
and type operation_receipt =
Tezos_raw_protocol_012_Psithaca.Apply_results.packed_operation_metadata
and type operation := operation
and type validation_state := validation_state
type block_header_data =
Tezos_raw_protocol_012_Psithaca.Alpha_context.Block_header.protocol_data
val block_header_data_encoding :
block_header_data Tezos_protocol_environment_012_Psithaca.Data_encoding.t
type block_header =
Tezos_raw_protocol_012_Psithaca.Alpha_context.Block_header.t =
{
shell : Tezos_protocol_environment_012_Psithaca.Block_header.shell_header;
protocol_data : block_header_data;
}
val block_header_metadata_encoding :
block_header_metadata Tezos_protocol_environment_012_Psithaca.Data_encoding.t
type operation_receipt =
Tezos_raw_protocol_012_Psithaca.Apply_results.packed_operation_metadata
val operation_data_encoding :
operation_data Tezos_protocol_environment_012_Psithaca.Data_encoding.t
val operation_receipt_encoding :
operation_receipt Tezos_protocol_environment_012_Psithaca.Data_encoding.t
val operation_data_and_receipt_encoding :
(operation_data * operation_receipt)
Tezos_protocol_environment_012_Psithaca.Data_encoding.t
val begin_partial_application :
chain_id:Tezos_protocol_environment_012_Psithaca.Chain_id.t ->
ancestor_context:Tezos_protocol_environment_012_Psithaca.Context.t ->
predecessor_timestamp:Tezos_protocol_environment_012_Psithaca.Time.t ->
predecessor_fitness:Tezos_protocol_environment_012_Psithaca.Fitness.t ->
block_header ->
validation_state Tezos_protocol_environment_012_Psithaca.Error_monad.tzresult
Tezos_protocol_environment_012_Psithaca.Lwt.t
val begin_application :
chain_id:Tezos_protocol_environment_012_Psithaca.Chain_id.t ->
predecessor_context:Tezos_protocol_environment_012_Psithaca.Context.t ->
predecessor_timestamp:Tezos_protocol_environment_012_Psithaca.Time.t ->
predecessor_fitness:Tezos_protocol_environment_012_Psithaca.Fitness.t ->
block_header ->
validation_state Tezos_protocol_environment_012_Psithaca.Error_monad.tzresult
Tezos_protocol_environment_012_Psithaca.Lwt.t
val begin_construction :
chain_id:Tezos_protocol_environment_012_Psithaca.Chain_id.t ->
predecessor_context:Tezos_protocol_environment_012_Psithaca.Context.t ->
predecessor_timestamp:Tezos_protocol_environment_012_Psithaca.Time.t ->
predecessor_level:Tezos_protocol_environment_012_Psithaca.Int32.t ->
predecessor_fitness:Tezos_protocol_environment_012_Psithaca.Fitness.t ->
predecessor:Tezos_protocol_environment_012_Psithaca.Block_hash.t ->
timestamp:Tezos_protocol_environment_012_Psithaca.Time.t ->
?protocol_data:block_header_data ->
unit ->
validation_state Tezos_protocol_environment_012_Psithaca.Error_monad.tzresult
Tezos_protocol_environment_012_Psithaca.Lwt.t
val finalize_block :
validation_state ->
Tezos_protocol_environment_012_Psithaca.Block_header.shell_header option ->
(Tezos_protocol_environment_012_Psithaca.Updater.validation_result
* block_header_metadata)
Tezos_protocol_environment_012_Psithaca.Error_monad.tzresult
Tezos_protocol_environment_012_Psithaca.Lwt.t
val init :
Tezos_protocol_environment_012_Psithaca.Context.t ->
Tezos_protocol_environment_012_Psithaca.Block_header.shell_header ->
Tezos_protocol_environment_012_Psithaca.Updater.validation_result
Tezos_protocol_environment_012_Psithaca.Error_monad.tzresult
Tezos_protocol_environment_012_Psithaca.Lwt.t
val value_of_key :
chain_id:Tezos_protocol_environment_012_Psithaca.Chain_id.t ->
predecessor_context:Tezos_protocol_environment_012_Psithaca.Context.t ->
predecessor_timestamp:Tezos_protocol_environment_012_Psithaca.Time.t ->
predecessor_level:Tezos_protocol_environment_012_Psithaca.Int32.t ->
predecessor_fitness:Tezos_protocol_environment_012_Psithaca.Fitness.t ->
predecessor:Tezos_protocol_environment_012_Psithaca.Block_hash.t ->
timestamp:Tezos_protocol_environment_012_Psithaca.Time.t ->
(Tezos_protocol_environment_012_Psithaca.Context.Cache.key ->
Tezos_protocol_environment_012_Psithaca.Context.Cache.value
Tezos_protocol_environment_012_Psithaca.Error_monad.tzresult
Tezos_protocol_environment_012_Psithaca.Lwt.t)
Tezos_protocol_environment_012_Psithaca.Error_monad.tzresult
Tezos_protocol_environment_012_Psithaca.Lwt.t