package tezos-protocol-012-Psithaca
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=dbc3b675aee59c2c574e5d0a771193a2ecfca31e7a5bc5aed66598080596ce1c
sha512=b97ed762b9d24744305c358af0d20f394376b64bfdd758dd4a81775326caf445caa57c4f6445da3dd6468ff492de18e4c14af6f374dfcbb7e4d64b7b720e5e2a
doc/tezos-protocol-012-Psithaca.protocol/Tezos_protocol_012_Psithaca/Protocol/index.html
Module Tezos_protocol_012_Psithaca.ProtocolSource
include module type of struct include Tezos_raw_protocol_012_Psithaca end
module Alpha_context = Tezos_raw_protocol_012_Psithaca.Alpha_contextmodule Alpha_services = Tezos_raw_protocol_012_Psithaca.Alpha_servicesmodule Amendment = Tezos_raw_protocol_012_Psithaca.Amendmentmodule Apply = Tezos_raw_protocol_012_Psithaca.Applymodule Apply_results = Tezos_raw_protocol_012_Psithaca.Apply_resultsmodule Baking = Tezos_raw_protocol_012_Psithaca.Bakingmodule Blinded_public_key_hash =
Tezos_raw_protocol_012_Psithaca.Blinded_public_key_hashmodule Block_header_repr = Tezos_raw_protocol_012_Psithaca.Block_header_reprmodule Block_payload_hash = Tezos_raw_protocol_012_Psithaca.Block_payload_hashmodule Block_payload_repr = Tezos_raw_protocol_012_Psithaca.Block_payload_reprmodule Bootstrap_storage = Tezos_raw_protocol_012_Psithaca.Bootstrap_storagemodule Cache_memory_helpers =
Tezos_raw_protocol_012_Psithaca.Cache_memory_helpersmodule Cache_repr = Tezos_raw_protocol_012_Psithaca.Cache_reprmodule Commitment_repr = Tezos_raw_protocol_012_Psithaca.Commitment_reprmodule Commitment_storage = Tezos_raw_protocol_012_Psithaca.Commitment_storagemodule Constants_repr = Tezos_raw_protocol_012_Psithaca.Constants_reprmodule Constants_services = Tezos_raw_protocol_012_Psithaca.Constants_servicesmodule Constants_storage = Tezos_raw_protocol_012_Psithaca.Constants_storagemodule Contract_delegate_storage =
Tezos_raw_protocol_012_Psithaca.Contract_delegate_storagemodule Contract_hash = Tezos_raw_protocol_012_Psithaca.Contract_hashmodule Contract_manager_storage =
Tezos_raw_protocol_012_Psithaca.Contract_manager_storagemodule Contract_repr = Tezos_raw_protocol_012_Psithaca.Contract_reprmodule Contract_services = Tezos_raw_protocol_012_Psithaca.Contract_servicesmodule Contract_storage = Tezos_raw_protocol_012_Psithaca.Contract_storagemodule Cycle_repr = Tezos_raw_protocol_012_Psithaca.Cycle_reprmodule Delegate_activation_storage =
Tezos_raw_protocol_012_Psithaca.Delegate_activation_storagemodule Delegate_services = Tezos_raw_protocol_012_Psithaca.Delegate_servicesmodule Delegate_storage = Tezos_raw_protocol_012_Psithaca.Delegate_storagemodule Fees_storage = Tezos_raw_protocol_012_Psithaca.Fees_storagemodule Fitness_repr = Tezos_raw_protocol_012_Psithaca.Fitness_reprmodule Fixed_point_repr = Tezos_raw_protocol_012_Psithaca.Fixed_point_reprmodule Frozen_deposits_storage =
Tezos_raw_protocol_012_Psithaca.Frozen_deposits_storagemodule Gas_limit_repr = Tezos_raw_protocol_012_Psithaca.Gas_limit_reprmodule Gas_monad = Tezos_raw_protocol_012_Psithaca.Gas_monadmodule Global_constants_costs =
Tezos_raw_protocol_012_Psithaca.Global_constants_costsmodule Global_constants_storage =
Tezos_raw_protocol_012_Psithaca.Global_constants_storagemodule Init_storage = Tezos_raw_protocol_012_Psithaca.Init_storagemodule Lazy_storage_diff = Tezos_raw_protocol_012_Psithaca.Lazy_storage_diffmodule Lazy_storage_kind = Tezos_raw_protocol_012_Psithaca.Lazy_storage_kindmodule Level_repr = Tezos_raw_protocol_012_Psithaca.Level_reprmodule Level_storage = Tezos_raw_protocol_012_Psithaca.Level_storagemodule Liquidity_baking_cpmm =
Tezos_raw_protocol_012_Psithaca.Liquidity_baking_cpmmmodule Liquidity_baking_lqt =
Tezos_raw_protocol_012_Psithaca.Liquidity_baking_lqtmodule Liquidity_baking_migration =
Tezos_raw_protocol_012_Psithaca.Liquidity_baking_migrationmodule Liquidity_baking_repr =
Tezos_raw_protocol_012_Psithaca.Liquidity_baking_reprmodule Local_gas_counter = Tezos_raw_protocol_012_Psithaca.Local_gas_countermodule Main = Tezos_raw_protocol_012_Psithaca.Mainmodule Manager_repr = Tezos_raw_protocol_012_Psithaca.Manager_reprmodule Michelson_v1_gas = Tezos_raw_protocol_012_Psithaca.Michelson_v1_gasmodule Michelson_v1_primitives =
Tezos_raw_protocol_012_Psithaca.Michelson_v1_primitivesmodule Migration_repr = Tezos_raw_protocol_012_Psithaca.Migration_reprmodule Misc = Tezos_raw_protocol_012_Psithaca.Miscmodule Non_empty_string = Tezos_raw_protocol_012_Psithaca.Non_empty_stringmodule Nonce_hash = Tezos_raw_protocol_012_Psithaca.Nonce_hashmodule Nonce_storage = Tezos_raw_protocol_012_Psithaca.Nonce_storagemodule Operation_repr = Tezos_raw_protocol_012_Psithaca.Operation_reprmodule Parameters_repr = Tezos_raw_protocol_012_Psithaca.Parameters_reprmodule Path_encoding = Tezos_raw_protocol_012_Psithaca.Path_encodingmodule Period_repr = Tezos_raw_protocol_012_Psithaca.Period_reprmodule Raw_context = Tezos_raw_protocol_012_Psithaca.Raw_contextmodule Raw_context_intf = Tezos_raw_protocol_012_Psithaca.Raw_context_intfmodule Raw_level_repr = Tezos_raw_protocol_012_Psithaca.Raw_level_reprmodule Receipt_repr = Tezos_raw_protocol_012_Psithaca.Receipt_reprmodule Roll_repr_legacy = Tezos_raw_protocol_012_Psithaca.Roll_repr_legacymodule Roll_storage_legacy =
Tezos_raw_protocol_012_Psithaca.Roll_storage_legacymodule Round_repr = Tezos_raw_protocol_012_Psithaca.Round_reprmodule Sampler = Tezos_raw_protocol_012_Psithaca.Samplermodule Sapling_repr = Tezos_raw_protocol_012_Psithaca.Sapling_reprmodule Sapling_services = Tezos_raw_protocol_012_Psithaca.Sapling_servicesmodule Sapling_storage = Tezos_raw_protocol_012_Psithaca.Sapling_storagemodule Sapling_validator = Tezos_raw_protocol_012_Psithaca.Sapling_validatormodule Saturation_repr = Tezos_raw_protocol_012_Psithaca.Saturation_reprmodule Script_cache = Tezos_raw_protocol_012_Psithaca.Script_cachemodule Script_comparable = Tezos_raw_protocol_012_Psithaca.Script_comparablemodule Script_expr_hash = Tezos_raw_protocol_012_Psithaca.Script_expr_hashmodule Script_int_repr = Tezos_raw_protocol_012_Psithaca.Script_int_reprmodule Script_interpreter = Tezos_raw_protocol_012_Psithaca.Script_interpretermodule Script_interpreter_defs =
Tezos_raw_protocol_012_Psithaca.Script_interpreter_defsmodule Script_ir_annot = Tezos_raw_protocol_012_Psithaca.Script_ir_annotmodule Script_ir_translator =
Tezos_raw_protocol_012_Psithaca.Script_ir_translatormodule Script_list = Tezos_raw_protocol_012_Psithaca.Script_listmodule Script_map = Tezos_raw_protocol_012_Psithaca.Script_mapmodule Script_repr = Tezos_raw_protocol_012_Psithaca.Script_reprmodule Script_set = Tezos_raw_protocol_012_Psithaca.Script_setmodule Script_string_repr = Tezos_raw_protocol_012_Psithaca.Script_string_reprmodule Script_tc_errors = Tezos_raw_protocol_012_Psithaca.Script_tc_errorsmodule Script_tc_errors_registration =
Tezos_raw_protocol_012_Psithaca.Script_tc_errors_registrationmodule Script_timestamp_repr =
Tezos_raw_protocol_012_Psithaca.Script_timestamp_reprmodule Script_typed_ir = Tezos_raw_protocol_012_Psithaca.Script_typed_irmodule Script_typed_ir_size =
Tezos_raw_protocol_012_Psithaca.Script_typed_ir_sizemodule Script_typed_ir_size_costs =
Tezos_raw_protocol_012_Psithaca.Script_typed_ir_size_costsmodule Seed_repr = Tezos_raw_protocol_012_Psithaca.Seed_reprmodule Seed_storage = Tezos_raw_protocol_012_Psithaca.Seed_storagemodule Services_registration =
Tezos_raw_protocol_012_Psithaca.Services_registrationmodule Slot_repr = Tezos_raw_protocol_012_Psithaca.Slot_reprmodule Stake_storage = Tezos_raw_protocol_012_Psithaca.Stake_storagemodule State_hash = Tezos_raw_protocol_012_Psithaca.State_hashmodule Storage = Tezos_raw_protocol_012_Psithaca.Storagemodule Storage_costs = Tezos_raw_protocol_012_Psithaca.Storage_costsmodule Storage_description =
Tezos_raw_protocol_012_Psithaca.Storage_descriptionmodule Storage_functors = Tezos_raw_protocol_012_Psithaca.Storage_functorsmodule Storage_sigs = Tezos_raw_protocol_012_Psithaca.Storage_sigsmodule Tez_repr = Tezos_raw_protocol_012_Psithaca.Tez_reprmodule Ticket_balance_key = Tezos_raw_protocol_012_Psithaca.Ticket_balance_keymodule Ticket_costs = Tezos_raw_protocol_012_Psithaca.Ticket_costsmodule Ticket_scanner = Tezos_raw_protocol_012_Psithaca.Ticket_scannermodule Ticket_storage = Tezos_raw_protocol_012_Psithaca.Ticket_storagemodule Time_repr = Tezos_raw_protocol_012_Psithaca.Time_reprmodule Token = Tezos_raw_protocol_012_Psithaca.Tokenmodule Vote_repr = Tezos_raw_protocol_012_Psithaca.Vote_reprmodule Vote_storage = Tezos_raw_protocol_012_Psithaca.Vote_storagemodule Voting_period_repr = Tezos_raw_protocol_012_Psithaca.Voting_period_reprmodule Voting_period_storage =
Tezos_raw_protocol_012_Psithaca.Voting_period_storagemodule Voting_services = Tezos_raw_protocol_012_Psithaca.Voting_servicesinclude 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_data =
Tezos_raw_protocol_012_Psithaca.Alpha_context.packed_protocol_datatype 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.tcheck_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.tprecheck_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
val validation_passes :
Tezos_protocol_environment_012_Psithaca.Updater.quota listtype block_header_data =
Tezos_raw_protocol_012_Psithaca.Alpha_context.Block_header.protocol_dataval block_header_data_encoding :
block_header_data Tezos_protocol_environment_012_Psithaca.Data_encoding.ttype 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;
}type block_header_metadata =
Tezos_raw_protocol_012_Psithaca.Apply_results.block_metadataval block_header_metadata_encoding :
block_header_metadata Tezos_protocol_environment_012_Psithaca.Data_encoding.ttype operation_receipt =
Tezos_raw_protocol_012_Psithaca.Apply_results.packed_operation_metadataval operation_data_encoding :
operation_data Tezos_protocol_environment_012_Psithaca.Data_encoding.tval operation_receipt_encoding :
operation_receipt Tezos_protocol_environment_012_Psithaca.Data_encoding.tval operation_data_and_receipt_encoding :
(operation_data * operation_receipt)
Tezos_protocol_environment_012_Psithaca.Data_encoding.tval acceptable_passes : operation -> int listval 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.tval 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.tval 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.tval 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.tval 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.tval 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