Module Mavryk_raw_protocol_alpha.Sc_rollup_costs

This module contains constants and utility functions for gas metering functions used when handling SC rollups operations in context.

module Constants : sig ... end
val is_valid_parameters_ty_cost : ty_size:'a Saturation_repr.t -> Saturation_repr.may_saturate Saturation_repr.t

is_valid_parameters_ty_cost ty returns the cost of checking whether a type is a valid sc rollup parameter.

val cost_serialize_internal_inbox_message : Sc_rollup_inbox_message_repr.internal_inbox_message -> Gas_limit_repr.cost

cost_serialize_internal_inbox_message internal_inbox_message is the cost of the serialization of an internal inbox message. It's equal to the cost of serializing the script expression, with Script_repr.force_bytes_cost plus a fixed amount for the serialized addresses.

It traverses the payload expression to find the precise cost. It is safe to use Script_repr.force_bytes_cost because the payload of an internal inbox message is bounded.

val cost_deserialize_output_proof : bytes_len:int -> Gas_limit_repr.cost

cost_deserialize_output_proof ~bytes_len is the cost of the deserialization of an output proof.

val cost_serialize_external_inbox_message : bytes_len:int -> Gas_limit_repr.cost

cost_serialize_external_inbox_message ~bytes_len is the cost of the serialization of an external inbox message of length bytes_len. It is equal to the estimated cost of encoding a byte multiplied by bytes_len.

val cost_hash_bytes : bytes_len:int -> Gas_limit_repr.cost

cost_hash_bytes ~bytes_len is the cost of hashing bytes_len bytes.

val cost_check_dissection : number_of_states:int -> tick_size:int -> hash_size:int -> Gas_limit_repr.cost

cost_check_dissection ~number_of_states ~tick_size ~hash_size is the cost of checking that a dissection with a given number_of_states used in a refutation game is well-formed. This includes the comparison of a linear number of ticks as well as the verification of two hashes of given hash_size.

val cost_verify_output_proof : bytes_len:int -> Gas_limit_repr.cost

cost_verify_output_proof ~bytes_len is the cost of verifying an output proof of length bytes_len.

val cost_add_message : current_index:Mavryk_protocol_environment_alpha.Z.t -> msg_len:int -> Gas_limit_repr.cost

cost_add_message ~new_cell_index ~msg_len returns the cost of adding a message of length msg_len to a sc-rollup inbox. This function is used internally in the Sc_rollup_storage module and covers the function Sc_rollup_inbox_merkelized_payload_hashes_repr.add_payload

val cost_install_boot_sector_in_wasm_pvm : boot_sector_size_in_bytes:int -> Gas_limit_repr.cost

cost_install_boot_sector_in_wasm_pvm ~boot_sector_size_in_bytes returns the cost of installing a boot sector in an empty WASM PVM state. This function is used in the implementation of the origination.