package tezos-protocol-011-PtHangz2
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=7062cd57addd452852598a2214ade393130efa087b99068d53713bdf912b3680
sha512=08e4091144a03ce3c107fb91a66501bd8b65ca3278917c455a2eaac6df3e108ade63f6ab8340a4bb152d60f404326e464d0ec95d26cafe8e82f870465d24a5fc
doc/tezos-protocol-011-PtHangz2.raw/Tezos_raw_protocol_011_PtHangz2/Script_ir_translator/index.html
Module Tezos_raw_protocol_011_PtHangz2.Script_ir_translatorSource
type ex_comparable_ty = | Ex_comparable_ty : 'a Script_typed_ir.comparable_ty -> ex_comparable_ty
type toplevel = {code_field : Alpha_context.Script.node;arg_type : Alpha_context.Script.node;storage_type : Alpha_context.Script.node;views : Script_typed_ir.view Script_typed_ir.SMap.t;root_name : Script_typed_ir.field_annot option;
}type ('arg, 'storage) code = {code : (('arg, 'storage) Script_typed_ir.pair, (Script_typed_ir.operation Script_typed_ir.boxed_list, 'storage) Script_typed_ir.pair) Script_typed_ir.lambda;arg_type : 'arg Script_typed_ir.ty;storage_type : 'storage Script_typed_ir.ty;views : Script_typed_ir.view Script_typed_ir.SMap.t;root_name : Script_typed_ir.field_annot option;code_size : Cache_memory_helpers.sint;(*This is an over-approximation of the value size in memory, in bytes, of the contract's static part, that is its source code. This includes the code of the contract as well as the code of the views. The storage size is not taken into account by this field as it has a dynamic size.
*)
}type 'storage ex_view = | Ex_view : ('input * 'storage, 'output) Script_typed_ir.lambda -> 'storage ex_view
type ('a, 's, 'b, 'u) cinstr = {apply : 'r 'f. ('a, 's) Script_typed_ir.kinfo -> ('b, 'u, 'r, 'f) Script_typed_ir.kinstr -> ('a, 's, 'r, 'f) Script_typed_ir.kinstr;
}type ('a, 's, 'b, 'u) descr = {loc : Alpha_context.Script.location;bef : ('a, 's) Script_typed_ir.stack_ty;aft : ('b, 'u) Script_typed_ir.stack_ty;instr : ('a, 's, 'b, 'u) cinstr;
}type tc_context = | Lambda : tc_context| Dip : ('a, 's) Script_typed_ir.stack_ty * tc_context -> tc_context| Toplevel : {storage_type : 'sto Script_typed_ir.ty;param_type : 'param Script_typed_ir.ty;root_name : Script_typed_ir.field_annot option;legacy_create_contract_literal : bool;
} -> tc_context
type type_logger =
int ->
(Alpha_context.Script.expr * Alpha_context.Script.annot) list ->
(Alpha_context.Script.expr * Alpha_context.Script.annot) list ->
unitval empty_big_map :
'a Script_typed_ir.comparable_ty ->
'b Script_typed_ir.ty ->
('a, 'b) Script_typed_ir.big_mapCreate an empty big_map
val big_map_mem :
Alpha_context.context ->
'key ->
('key, 'value) Script_typed_ir.big_map ->
(bool * Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresult
Tezos_protocol_environment_011_PtHangz2.Lwt.tval big_map_get :
Alpha_context.context ->
'key ->
('key, 'value) Script_typed_ir.big_map ->
('value option * Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresult
Tezos_protocol_environment_011_PtHangz2.Lwt.tval big_map_update :
Alpha_context.context ->
'key ->
'value option ->
('key, 'value) Script_typed_ir.big_map ->
(('key, 'value) Script_typed_ir.big_map * Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresult
Tezos_protocol_environment_011_PtHangz2.Lwt.tUpdate a big map. See big_map_get_and_update for details.
val big_map_get_and_update :
Alpha_context.context ->
'key ->
'value option ->
('key, 'value) Script_typed_ir.big_map ->
(('value option * ('key, 'value) Script_typed_ir.big_map)
* Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresult
Tezos_protocol_environment_011_PtHangz2.Lwt.tUpdate a big map, returning the old value of the given key and the new map.
This does not modify the underlying storage, only the diff table.
val ty_eq :
Alpha_context.context ->
Alpha_context.Script.location ->
'ta Script_typed_ir.ty ->
'tb Script_typed_ir.ty ->
(('ta Script_typed_ir.ty, 'tb Script_typed_ir.ty) eq * Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresultval merge_types :
legacy:bool ->
merge_type_error_flag:merge_type_error_flag ->
Alpha_context.Script.location ->
'a Script_typed_ir.ty ->
'b Script_typed_ir.ty ->
(('a Script_typed_ir.ty, 'b Script_typed_ir.ty) eq * 'a Script_typed_ir.ty)
Gas_monad.tval parse_comparable_data :
?type_logger:type_logger ->
Alpha_context.context ->
'a Script_typed_ir.comparable_ty ->
Alpha_context.Script.node ->
('a * Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresult
Tezos_protocol_environment_011_PtHangz2.Lwt.tval parse_data :
?type_logger:type_logger ->
Alpha_context.context ->
legacy:bool ->
allow_forged:bool ->
'a Script_typed_ir.ty ->
Alpha_context.Script.node ->
('a * Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresult
Tezos_protocol_environment_011_PtHangz2.Lwt.tval parse_instr :
?type_logger:type_logger ->
tc_context ->
Alpha_context.context ->
legacy:bool ->
Alpha_context.Script.node ->
('a, 's) Script_typed_ir.stack_ty ->
(('a, 's) judgement * Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresult
Tezos_protocol_environment_011_PtHangz2.Lwt.tval parse_big_map_value_ty :
Alpha_context.context ->
legacy:bool ->
Alpha_context.Script.node ->
(ex_ty * Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresultparse_ty specialized for the right-hand side part of a big map type, i.e. the `value` in `big_map key value`.
val parse_packable_ty :
Alpha_context.context ->
legacy:bool ->
Alpha_context.Script.node ->
(ex_ty * Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresultval parse_parameter_ty :
Alpha_context.context ->
legacy:bool ->
Alpha_context.Script.node ->
(ex_ty * Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresultval parse_comparable_ty :
Alpha_context.context ->
Alpha_context.Script.node ->
(ex_comparable_ty * Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresultval parse_view_input_ty :
Alpha_context.context ->
stack_depth:int ->
legacy:bool ->
Alpha_context.Script.node ->
(ex_ty * Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresultval parse_view_output_ty :
Alpha_context.context ->
stack_depth:int ->
legacy:bool ->
Alpha_context.Script.node ->
(ex_ty * Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresultval parse_view_returning :
?type_logger:type_logger ->
Alpha_context.context ->
legacy:bool ->
'storage Script_typed_ir.ty ->
Script_typed_ir.view ->
('storage ex_view * Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresult
Tezos_protocol_environment_011_PtHangz2.Lwt.tval typecheck_views :
?type_logger:type_logger ->
Alpha_context.context ->
legacy:bool ->
'storage Script_typed_ir.ty ->
Script_typed_ir.view Script_typed_ir.SMap.t ->
Alpha_context.context
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresult
Tezos_protocol_environment_011_PtHangz2.Lwt.tval parse_any_ty :
Alpha_context.context ->
legacy:bool ->
Alpha_context.Script.node ->
(ex_ty * Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresultparse_ty allowing big_map values, operations, contract and tickets.
val parse_ty :
Alpha_context.context ->
legacy:bool ->
allow_lazy_storage:bool ->
allow_operation:bool ->
allow_contract:bool ->
allow_ticket:bool ->
Alpha_context.Script.node ->
(ex_ty * Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresultWe expose parse_ty for convenience to external tools. Please use specialized versions such as parse_packable_ty, parse_parameter_ty, parse_comparable_ty, or parse_big_map_value_ty if possible.
val parse_toplevel :
Alpha_context.context ->
legacy:bool ->
Alpha_context.Script.expr ->
(toplevel * Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresult
Tezos_protocol_environment_011_PtHangz2.Lwt.tval add_field_annot :
Script_typed_ir.field_annot option ->
Script_typed_ir.var_annot option ->
Alpha_context.Script.node ->
Alpha_context.Script.nodeval typecheck_code :
legacy:bool ->
Alpha_context.context ->
Alpha_context.Script.expr ->
(Script_tc_errors.type_map * Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresult
Tezos_protocol_environment_011_PtHangz2.Lwt.tval serialize_ty_for_error :
Alpha_context.context ->
'a Script_typed_ir.ty ->
(Alpha_context.Script.expr * Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresultval parse_code :
?type_logger:type_logger ->
Alpha_context.context ->
legacy:bool ->
code:Alpha_context.Script.lazy_expr ->
(ex_code * Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresult
Tezos_protocol_environment_011_PtHangz2.Lwt.tval parse_storage :
?type_logger:type_logger ->
Alpha_context.context ->
legacy:bool ->
allow_forged:bool ->
'storage Script_typed_ir.ty ->
storage:Alpha_context.Script.lazy_expr ->
('storage * Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresult
Tezos_protocol_environment_011_PtHangz2.Lwt.tval parse_script :
?type_logger:type_logger ->
Alpha_context.context ->
legacy:bool ->
allow_forged_in_storage:bool ->
Alpha_context.Script.t ->
(ex_script * Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresult
Tezos_protocol_environment_011_PtHangz2.Lwt.tCombines parse_code and parse_storage
val parse_contract :
legacy:bool ->
Alpha_context.context ->
Alpha_context.Script.location ->
'a Script_typed_ir.ty ->
Alpha_context.Contract.t ->
entrypoint:string ->
(Alpha_context.context * 'a Script_typed_ir.typed_contract)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresult
Tezos_protocol_environment_011_PtHangz2.Lwt.tval parse_contract_for_script :
Alpha_context.context ->
Alpha_context.Script.location ->
'a Script_typed_ir.ty ->
Alpha_context.Contract.t ->
entrypoint:string ->
(Alpha_context.context * 'a Script_typed_ir.typed_contract option)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresult
Tezos_protocol_environment_011_PtHangz2.Lwt.tval find_entrypoint :
't Script_typed_ir.ty ->
root_name:Script_typed_ir.field_annot option ->
string ->
((Alpha_context.Script.node -> Alpha_context.Script.node) * ex_ty)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresultval list_entrypoints :
't Script_typed_ir.ty ->
Alpha_context.context ->
root_name:Script_typed_ir.field_annot option ->
(Michelson_v1_primitives.prim list list
* (Michelson_v1_primitives.prim list * Alpha_context.Script.node)
Entrypoints_map.t)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresultval pack_data :
Alpha_context.context ->
'a Script_typed_ir.ty ->
'a ->
(bytes * Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresult
Tezos_protocol_environment_011_PtHangz2.Lwt.tval hash_comparable_data :
Alpha_context.context ->
'a Script_typed_ir.comparable_ty ->
'a ->
(Script_expr_hash.t * Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresult
Tezos_protocol_environment_011_PtHangz2.Lwt.tval collect_lazy_storage :
Alpha_context.context ->
'a Script_typed_ir.ty ->
'a ->
(lazy_storage_ids * Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresultTraverse the given type, producing a lazy_storage_ids for use with extract_lazy_storage_diff.
val extract_lazy_storage_diff :
Alpha_context.context ->
unparsing_mode ->
temporary:bool ->
to_duplicate:lazy_storage_ids ->
to_update:lazy_storage_ids ->
'a Script_typed_ir.ty ->
'a ->
('a * Alpha_context.Lazy_storage.diffs option * Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresult
Tezos_protocol_environment_011_PtHangz2.Lwt.tProduce a lazy storage diff, containing in-memory writes to lazy data structures such as big_maps yet to be committed.
The resulting diff can be committed to the underlying storage (context) using Lazy_storage_diff.apply.
val get_single_sapling_state :
Alpha_context.context ->
'a Script_typed_ir.ty ->
'a ->
(Alpha_context.Sapling.Id.t option * Alpha_context.context)
Tezos_protocol_environment_011_PtHangz2.Error_monad.tzresultscript_size script returns an overapproximation of the size of the in-memory representation of script as well as the cost associated to computing that overapproximation.