package tezos-protocol-012-Psithaca
Defines a Michelson expression representation as a Micheline node with canonical (int
) location and Michelson_v1_primitives.prim
as content.
Types expr
and node
both define representation of Michelson expressions and are indeed the same type internally, although this is not visible outside Micheline due to interface abstraction.
Locations are used by Micheline mostly for error-reporting and pretty- printing expressions. canonical_location
is simply an int
.
Annotations attached to Michelson expressions.
type expr =
Michelson_v1_primitives.prim
Tezos_protocol_environment_012_Psithaca.Micheline.canonical
Represents a Michelson expression as canonical Micheline.
type lazy_expr =
expr Tezos_protocol_environment_012_Psithaca.Data_encoding.lazy_t
A record containing either an underlying serialized representation of an expression or a deserialized one, or both. If either is absent, it will be computed on-demand.
type 'location michelson_node =
('location, Michelson_v1_primitives.prim)
Tezos_protocol_environment_012_Psithaca.Micheline.node
type unlocated_michelson_node = unit michelson_node
type node = location michelson_node
Same as expr
, but used in different contexts, as required by Micheline's abstract interface.
val location_encoding :
location Tezos_protocol_environment_012_Psithaca.Data_encoding.t
val expr_encoding :
expr Tezos_protocol_environment_012_Psithaca.Data_encoding.t
val lazy_expr_encoding :
lazy_expr Tezos_protocol_environment_012_Psithaca.Data_encoding.t
Type t
joins the contract's code and storage in a single record.
val encoding : t Tezos_protocol_environment_012_Psithaca.Data_encoding.encoding
val deserialization_cost_estimated_from_bytes : int -> Gas_limit_repr.cost
val deserialized_cost : expr -> Gas_limit_repr.cost
val serialized_cost : bytes -> Gas_limit_repr.cost
val bytes_node_cost : bytes -> Gas_limit_repr.cost
val force_decode_cost : lazy_expr -> Gas_limit_repr.cost
Returns (a lower bound on) the cost to deserialize a lazy_expr
. If the expression has already been deserialized (i.e. the lazy expression contains the deserialized value or both the bytes representation and the deserialized value) then the cost is free.
val stable_force_decode_cost : lazy_expr -> Gas_limit_repr.cost
Like force_decode_cost
, excepted that the returned cost does not depend on the internal state of the lazy_expr. This means that the cost is never free (excepted for zero bytes expressions).
val force_decode :
lazy_expr ->
expr Tezos_protocol_environment_012_Psithaca.Error_monad.tzresult
val force_bytes_cost : lazy_expr -> Gas_limit_repr.cost
Returns the cost to serialize a lazy_expr
. If the expression has already been deserialized (i.e. le lazy expression contains the bytes representation or both the bytes representation and the deserialized value) then the cost is free.
val force_bytes :
lazy_expr ->
bytes Tezos_protocol_environment_012_Psithaca.Error_monad.tzresult
val unit_parameter : lazy_expr
val is_unit_parameter : lazy_expr -> bool
val strip_locations_cost : _ michelson_node -> Gas_limit_repr.cost
val strip_annotations_cost : node -> Gas_limit_repr.cost
module Micheline_size : sig ... end
val micheline_nodes : node -> int
micheline_nodes root
returns the number of internal nodes in the micheline expression held from root
.