package tezos-protocol-012-Psithaca
val hash : Tezos_crypto.Hashed.Protocol_hash.t
include module type of struct include Tezos_raw_protocol_012_Psithaca end
module Alpha_context = Tezos_raw_protocol_012_Psithaca.Alpha_context
module Alpha_services = Tezos_raw_protocol_012_Psithaca.Alpha_services
module Amendment = Tezos_raw_protocol_012_Psithaca.Amendment
module Apply = Tezos_raw_protocol_012_Psithaca.Apply
module Apply_results = Tezos_raw_protocol_012_Psithaca.Apply_results
module Baking = Tezos_raw_protocol_012_Psithaca.Baking
module Blinded_public_key_hash =
Tezos_raw_protocol_012_Psithaca.Blinded_public_key_hash
module Block_header_repr = Tezos_raw_protocol_012_Psithaca.Block_header_repr
module Block_payload_hash = Tezos_raw_protocol_012_Psithaca.Block_payload_hash
module Block_payload_repr = Tezos_raw_protocol_012_Psithaca.Block_payload_repr
module Bootstrap_storage = Tezos_raw_protocol_012_Psithaca.Bootstrap_storage
module Cache_memory_helpers =
Tezos_raw_protocol_012_Psithaca.Cache_memory_helpers
module Cache_repr = Tezos_raw_protocol_012_Psithaca.Cache_repr
module Commitment_repr = Tezos_raw_protocol_012_Psithaca.Commitment_repr
module Commitment_storage = Tezos_raw_protocol_012_Psithaca.Commitment_storage
module Constants_repr = Tezos_raw_protocol_012_Psithaca.Constants_repr
module Constants_services = Tezos_raw_protocol_012_Psithaca.Constants_services
module Constants_storage = Tezos_raw_protocol_012_Psithaca.Constants_storage
module Contract_delegate_storage =
Tezos_raw_protocol_012_Psithaca.Contract_delegate_storage
module Contract_hash = Tezos_raw_protocol_012_Psithaca.Contract_hash
module Contract_manager_storage =
Tezos_raw_protocol_012_Psithaca.Contract_manager_storage
module Contract_repr = Tezos_raw_protocol_012_Psithaca.Contract_repr
module Contract_services = Tezos_raw_protocol_012_Psithaca.Contract_services
module Contract_storage = Tezos_raw_protocol_012_Psithaca.Contract_storage
module Cycle_repr = Tezos_raw_protocol_012_Psithaca.Cycle_repr
module Delegate_activation_storage =
Tezos_raw_protocol_012_Psithaca.Delegate_activation_storage
module Delegate_services = Tezos_raw_protocol_012_Psithaca.Delegate_services
module Delegate_storage = Tezos_raw_protocol_012_Psithaca.Delegate_storage
module Fees_storage = Tezos_raw_protocol_012_Psithaca.Fees_storage
module Fitness_repr = Tezos_raw_protocol_012_Psithaca.Fitness_repr
module Fixed_point_repr = Tezos_raw_protocol_012_Psithaca.Fixed_point_repr
module Frozen_deposits_storage =
Tezos_raw_protocol_012_Psithaca.Frozen_deposits_storage
module Gas_limit_repr = Tezos_raw_protocol_012_Psithaca.Gas_limit_repr
module Gas_monad = Tezos_raw_protocol_012_Psithaca.Gas_monad
module Global_constants_costs =
Tezos_raw_protocol_012_Psithaca.Global_constants_costs
module Global_constants_storage =
Tezos_raw_protocol_012_Psithaca.Global_constants_storage
module Init_storage = Tezos_raw_protocol_012_Psithaca.Init_storage
module Lazy_storage_diff = Tezos_raw_protocol_012_Psithaca.Lazy_storage_diff
module Lazy_storage_kind = Tezos_raw_protocol_012_Psithaca.Lazy_storage_kind
module Level_repr = Tezos_raw_protocol_012_Psithaca.Level_repr
module Level_storage = Tezos_raw_protocol_012_Psithaca.Level_storage
module Liquidity_baking_cpmm =
Tezos_raw_protocol_012_Psithaca.Liquidity_baking_cpmm
module Liquidity_baking_lqt =
Tezos_raw_protocol_012_Psithaca.Liquidity_baking_lqt
module Liquidity_baking_migration =
Tezos_raw_protocol_012_Psithaca.Liquidity_baking_migration
module Liquidity_baking_repr =
Tezos_raw_protocol_012_Psithaca.Liquidity_baking_repr
module Local_gas_counter = Tezos_raw_protocol_012_Psithaca.Local_gas_counter
module Main = Tezos_raw_protocol_012_Psithaca.Main
module Manager_repr = Tezos_raw_protocol_012_Psithaca.Manager_repr
module Michelson_v1_gas = Tezos_raw_protocol_012_Psithaca.Michelson_v1_gas
module Michelson_v1_primitives =
Tezos_raw_protocol_012_Psithaca.Michelson_v1_primitives
module Migration_repr = Tezos_raw_protocol_012_Psithaca.Migration_repr
module Misc = Tezos_raw_protocol_012_Psithaca.Misc
module Non_empty_string = Tezos_raw_protocol_012_Psithaca.Non_empty_string
module Nonce_hash = Tezos_raw_protocol_012_Psithaca.Nonce_hash
module Nonce_storage = Tezos_raw_protocol_012_Psithaca.Nonce_storage
module Operation_repr = Tezos_raw_protocol_012_Psithaca.Operation_repr
module Parameters_repr = Tezos_raw_protocol_012_Psithaca.Parameters_repr
module Path_encoding = Tezos_raw_protocol_012_Psithaca.Path_encoding
module Period_repr = Tezos_raw_protocol_012_Psithaca.Period_repr
module Raw_context = Tezos_raw_protocol_012_Psithaca.Raw_context
module Raw_context_intf = Tezos_raw_protocol_012_Psithaca.Raw_context_intf
module Raw_level_repr = Tezos_raw_protocol_012_Psithaca.Raw_level_repr
module Receipt_repr = Tezos_raw_protocol_012_Psithaca.Receipt_repr
module Roll_repr_legacy = Tezos_raw_protocol_012_Psithaca.Roll_repr_legacy
module Roll_storage_legacy =
Tezos_raw_protocol_012_Psithaca.Roll_storage_legacy
module Round_repr = Tezos_raw_protocol_012_Psithaca.Round_repr
module Sampler = Tezos_raw_protocol_012_Psithaca.Sampler
module Sapling_repr = Tezos_raw_protocol_012_Psithaca.Sapling_repr
module Sapling_services = Tezos_raw_protocol_012_Psithaca.Sapling_services
module Sapling_storage = Tezos_raw_protocol_012_Psithaca.Sapling_storage
module Sapling_validator = Tezos_raw_protocol_012_Psithaca.Sapling_validator
module Saturation_repr = Tezos_raw_protocol_012_Psithaca.Saturation_repr
module Script_cache = Tezos_raw_protocol_012_Psithaca.Script_cache
module Script_comparable = Tezos_raw_protocol_012_Psithaca.Script_comparable
module Script_expr_hash = Tezos_raw_protocol_012_Psithaca.Script_expr_hash
module Script_int_repr = Tezos_raw_protocol_012_Psithaca.Script_int_repr
module Script_interpreter = Tezos_raw_protocol_012_Psithaca.Script_interpreter
module Script_interpreter_defs =
Tezos_raw_protocol_012_Psithaca.Script_interpreter_defs
module Script_ir_annot = Tezos_raw_protocol_012_Psithaca.Script_ir_annot
module Script_ir_translator =
Tezos_raw_protocol_012_Psithaca.Script_ir_translator
module Script_list = Tezos_raw_protocol_012_Psithaca.Script_list
module Script_map = Tezos_raw_protocol_012_Psithaca.Script_map
module Script_repr = Tezos_raw_protocol_012_Psithaca.Script_repr
module Script_set = Tezos_raw_protocol_012_Psithaca.Script_set
module Script_string_repr = Tezos_raw_protocol_012_Psithaca.Script_string_repr
module Script_tc_errors = Tezos_raw_protocol_012_Psithaca.Script_tc_errors
module Script_tc_errors_registration =
Tezos_raw_protocol_012_Psithaca.Script_tc_errors_registration
module Script_timestamp_repr =
Tezos_raw_protocol_012_Psithaca.Script_timestamp_repr
module Script_typed_ir = Tezos_raw_protocol_012_Psithaca.Script_typed_ir
module Script_typed_ir_size =
Tezos_raw_protocol_012_Psithaca.Script_typed_ir_size
module Script_typed_ir_size_costs =
Tezos_raw_protocol_012_Psithaca.Script_typed_ir_size_costs
module Seed_repr = Tezos_raw_protocol_012_Psithaca.Seed_repr
module Seed_storage = Tezos_raw_protocol_012_Psithaca.Seed_storage
module Services_registration =
Tezos_raw_protocol_012_Psithaca.Services_registration
module Slot_repr = Tezos_raw_protocol_012_Psithaca.Slot_repr
module Stake_storage = Tezos_raw_protocol_012_Psithaca.Stake_storage
module State_hash = Tezos_raw_protocol_012_Psithaca.State_hash
module Storage = Tezos_raw_protocol_012_Psithaca.Storage
module Storage_costs = Tezos_raw_protocol_012_Psithaca.Storage_costs
module Storage_description =
Tezos_raw_protocol_012_Psithaca.Storage_description
module Storage_functors = Tezos_raw_protocol_012_Psithaca.Storage_functors
module Storage_sigs = Tezos_raw_protocol_012_Psithaca.Storage_sigs
module Tez_repr = Tezos_raw_protocol_012_Psithaca.Tez_repr
module Ticket_balance_key = Tezos_raw_protocol_012_Psithaca.Ticket_balance_key
module Ticket_costs = Tezos_raw_protocol_012_Psithaca.Ticket_costs
module Ticket_scanner = Tezos_raw_protocol_012_Psithaca.Ticket_scanner
module Ticket_storage = Tezos_raw_protocol_012_Psithaca.Ticket_storage
module Time_repr = Tezos_raw_protocol_012_Psithaca.Time_repr
module Token = Tezos_raw_protocol_012_Psithaca.Token
module Vote_repr = Tezos_raw_protocol_012_Psithaca.Vote_repr
module Vote_storage = Tezos_raw_protocol_012_Psithaca.Vote_storage
module Voting_period_repr = Tezos_raw_protocol_012_Psithaca.Voting_period_repr
module Voting_period_storage =
Tezos_raw_protocol_012_Psithaca.Voting_period_storage
module Voting_services = Tezos_raw_protocol_012_Psithaca.Voting_services
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_data =
Tezos_raw_protocol_012_Psithaca.Alpha_context.packed_protocol_data
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
val validation_passes :
Tezos_protocol_environment_012_Psithaca.Updater.quota list
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;
}
type block_header_metadata =
Tezos_raw_protocol_012_Psithaca.Apply_results.block_metadata
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 acceptable_passes : operation -> int list
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