From fe624723fd6483a2649617974c81281c7a8ea270 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ole=20Kr=C3=BCger?= Date: Fri, 3 Mar 2023 12:44:14 +0000 Subject: [PATCH 1/6] Proto: update protocol code --- src/proto_016_PtMumbai/lib_protocol/main.ml | 2 +- .../lib_protocol/michelson_v1_gas_costs.ml | 8 +- .../lib_protocol/script_ir_translator.ml | 169 +++++++++++-- .../lib_protocol/script_ir_unparser.ml | 10 +- .../lib_protocol/script_ir_unparser.mli | 29 ++- .../lib_protocol/skip_list_costs.ml | 7 +- .../test/integration/michelson/main.ml | 1 + .../michelson/test_lambda_normalization.ml | 238 ++++++++++++++++++ 8 files changed, 430 insertions(+), 34 deletions(-) create mode 100644 src/proto_016_PtMumbai/lib_protocol/test/integration/michelson/test_lambda_normalization.ml diff --git a/src/proto_016_PtMumbai/lib_protocol/main.ml b/src/proto_016_PtMumbai/lib_protocol/main.ml index 5e436a4dfa1d..e13b397c1556 100644 --- a/src/proto_016_PtMumbai/lib_protocol/main.ml +++ b/src/proto_016_PtMumbai/lib_protocol/main.ml @@ -422,4 +422,4 @@ module Mempool = struct ~grandparent_round) end -(* Vanity nonce: 8708389802966759 *) +(* Vanity nonce: 7019123279060222 *) diff --git a/src/proto_016_PtMumbai/lib_protocol/michelson_v1_gas_costs.ml b/src/proto_016_PtMumbai/lib_protocol/michelson_v1_gas_costs.ml index fde9a3ab4fa6..eeeaa93335bb 100644 --- a/src/proto_016_PtMumbai/lib_protocol/michelson_v1_gas_costs.ml +++ b/src/proto_016_PtMumbai/lib_protocol/michelson_v1_gas_costs.ml @@ -55,13 +55,15 @@ let cost_N_IEdiv_teznat = S.safe_int 70 Such code can't be generated by the current Snoop. *) (* model N_ISapling_verify_update *) +(* Inferred cost (without cost_N_IBlake2b) is: + fun size1 -> fun size2 -> ((432200.469784 + (5738377.05148 * size1)) + (4634026.28586 * size2)) *) let cost_N_ISapling_verify_update size1 size2 bound_data = let open S.Syntax in let v1 = S.safe_int size1 in let v2 = S.safe_int size2 in - cost_N_IBlake2b bound_data + S.safe_int 310_000 - + (S.safe_int 5_575_000 * v1) - + (S.safe_int 5_075_000 * v2) + cost_N_IBlake2b bound_data + S.safe_int 432_500 + + (S.safe_int 5_740_000 * v1) + + (S.safe_int 4_635_000 * v2) (* N_IApply The current generated model receives int as a flag, diff --git a/src/proto_016_PtMumbai/lib_protocol/script_ir_translator.ml b/src/proto_016_PtMumbai/lib_protocol/script_ir_translator.ml index 530862f52801..eb6b3db37bf5 100644 --- a/src/proto_016_PtMumbai/lib_protocol/script_ir_translator.ml +++ b/src/proto_016_PtMumbai/lib_protocol/script_ir_translator.ml @@ -1865,6 +1865,16 @@ let parse_toplevel : Script_ir_annot.error_unexpected_annot sloc sannot >|? fun () -> ({code_field = c; arg_type; views; storage_type = s}, ctxt)) +(* Normalize lambdas during parsing *) + +let normalized_lam ~unparse_code_rec ~stack_depth ctxt kdescr code_field = + unparse_code_rec ctxt ~stack_depth:(stack_depth + 1) Optimized code_field + >|=? fun (code_field, ctxt) -> (Lam (kdescr, code_field), ctxt) + +let normalized_lam_rec ~unparse_code_rec ~stack_depth ctxt kdescr code_field = + unparse_code_rec ctxt ~stack_depth:(stack_depth + 1) Optimized code_field + >|=? fun (code_field, ctxt) -> (LamRec (kdescr, code_field), ctxt) + (* -- parse data of any type -- *) (* @@ -1882,6 +1892,7 @@ let parse_toplevel : let rec parse_data : type a ac. + unparse_code_rec:Script_ir_unparser.unparse_code_rec -> elab_conf:elab_conf -> stack_depth:int -> context -> @@ -1889,13 +1900,14 @@ let rec parse_data : (a, ac) ty -> Script.node -> (a * context) tzresult Lwt.t = - fun ~elab_conf ~stack_depth ctxt ~allow_forged ty script_data -> + fun ~unparse_code_rec ~elab_conf ~stack_depth ctxt ~allow_forged ty script_data -> Gas.consume ctxt Typecheck_costs.parse_data_cycle >>?= fun ctxt -> let non_terminal_recursion ctxt ty script_data = if Compare.Int.(stack_depth > 10_000) then tzfail Typechecking_too_many_recursive_calls else parse_data + ~unparse_code_rec ~elab_conf ~stack_depth:(stack_depth + 1) ctxt @@ -2071,6 +2083,7 @@ let rec parse_data : | Lambda_t (ta, tr, _ty_name), (Seq (_loc, _) as script_instr) -> traced @@ parse_kdescr + ~unparse_code_rec Tc_context.data ~elab_conf ~stack_depth:(stack_depth + 1) @@ -2078,12 +2091,19 @@ let rec parse_data : ta tr script_instr - >|=? fun (kdescr, ctxt) -> (Lam (kdescr, script_instr), ctxt) + >>=? fun (kdescr, ctxt) -> + (normalized_lam [@ocaml.tailcall]) + ~unparse_code_rec + ctxt + ~stack_depth + kdescr + script_instr | ( Lambda_t (ta, tr, _ty_name), Prim (loc, D_Lambda_rec, [(Seq (_loc, _) as script_instr)], []) ) -> traced @@ ( lambda_t loc ta tr >>?= fun lambda_rec_ty -> parse_lam_rec + ~unparse_code_rec Tc_context.(add_lambda data) ~elab_conf ~stack_depth:(stack_depth + 1) @@ -2325,12 +2345,17 @@ let rec parse_data : and parse_view : type storage storagec. + unparse_code_rec:Script_ir_unparser.unparse_code_rec -> elab_conf:elab_conf -> context -> (storage, storagec) ty -> view -> (storage typed_view * context) tzresult Lwt.t = - fun ~elab_conf ctxt storage_type {input_ty; output_ty; view_code} -> + fun ~unparse_code_rec + ~elab_conf + ctxt + storage_type + {input_ty; output_ty; view_code} -> let legacy = elab_conf.legacy in let input_ty_loc = location input_ty in record_trace_eval @@ -2348,6 +2373,7 @@ and parse_view : >>?= fun (Ex_ty output_ty, ctxt) -> pair_t input_ty_loc input_ty storage_type >>?= fun (Ty_ex_c pair_ty) -> parse_instr + ~unparse_code_rec ~elab_conf ~stack_depth:0 Tc_context.view @@ -2388,22 +2414,25 @@ and parse_view : and parse_views : type storage storagec. + unparse_code_rec:Script_ir_unparser.unparse_code_rec -> elab_conf:elab_conf -> context -> (storage, storagec) ty -> view_map -> (storage typed_view_map * context) tzresult Lwt.t = - fun ~elab_conf ctxt storage_type views -> + fun ~unparse_code_rec ~elab_conf ctxt storage_type views -> let aux ctxt name cur_view = Gas.consume ctxt (Michelson_v1_gas.Cost_of.Interpreter.view_update name views) - >>?= fun ctxt -> parse_view ~elab_conf ctxt storage_type cur_view + >>?= fun ctxt -> + parse_view ~unparse_code_rec ~elab_conf ctxt storage_type cur_view in Script_map.map_es_in_context aux ctxt views and parse_kdescr : type arg argc ret retc. + unparse_code_rec:Script_ir_unparser.unparse_code_rec -> elab_conf:elab_conf -> stack_depth:int -> tc_context -> @@ -2412,8 +2441,16 @@ and parse_kdescr : (ret, retc) ty -> Script.node -> ((arg, end_of_stack, ret, end_of_stack) kdescr * context) tzresult Lwt.t = - fun ~elab_conf ~stack_depth tc_context ctxt arg ret script_instr -> + fun ~unparse_code_rec + ~elab_conf + ~stack_depth + tc_context + ctxt + arg + ret + script_instr -> parse_instr + ~unparse_code_rec ~elab_conf tc_context ctxt @@ -2446,6 +2483,7 @@ and parse_kdescr : and parse_lam_rec : type arg argc ret retc. + unparse_code_rec:Script_ir_unparser.unparse_code_rec -> elab_conf:elab_conf -> stack_depth:int -> tc_context -> @@ -2455,8 +2493,17 @@ and parse_lam_rec : ((arg, ret) lambda, _) ty -> Script.node -> ((arg, ret) lambda * context) tzresult Lwt.t = - fun ~elab_conf ~stack_depth tc_context ctxt arg ret lambda_rec_ty script_instr -> + fun ~unparse_code_rec + ~elab_conf + ~stack_depth + tc_context + ctxt + arg + ret + lambda_rec_ty + script_instr -> parse_instr + ~unparse_code_rec ~elab_conf tc_context ctxt @@ -2475,19 +2522,31 @@ and parse_lam_rec : @@ ty_eq ~error_details ty ret >>? fun (eq, ctxt) -> eq >|? fun Eq -> - ((LamRec (close_descr descr, script_instr) : (arg, ret) lambda), ctxt)) + ( (close_descr descr + : (arg, (arg, ret) lambda * end_of_stack, ret, end_of_stack) kdescr), + ctxt )) + >>=? fun (closed_descr, ctxt) -> + (normalized_lam_rec [@ocaml.tailcall]) + ~unparse_code_rec + ~stack_depth + ctxt + closed_descr + script_instr | Typed {loc; aft = stack_ty; _}, ctxt -> let ret = serialize_ty_for_error ret in let stack_ty = serialize_stack_for_error ctxt stack_ty in tzfail @@ Bad_return (loc, stack_ty, ret) | Failed {descr}, ctxt -> - return - ( (LamRec (close_descr (descr (Item_t (ret, Bot_t))), script_instr) - : (arg, ret) lambda), - ctxt ) + (normalized_lam_rec [@ocaml.tailcall]) + ~unparse_code_rec + ~stack_depth + ctxt + (close_descr (descr (Item_t (ret, Bot_t)))) + script_instr and parse_instr : type a s. + unparse_code_rec:Script_ir_unparser.unparse_code_rec -> elab_conf:elab_conf -> stack_depth:int -> tc_context -> @@ -2495,7 +2554,13 @@ and parse_instr : Script.node -> (a, s) stack_ty -> ((a, s) judgement * context) tzresult Lwt.t = - fun ~elab_conf ~stack_depth tc_context ctxt script_instr stack_ty -> + fun ~unparse_code_rec + ~elab_conf + ~stack_depth + tc_context + ctxt + script_instr + stack_ty -> let for_logging_only x = if elab_conf.keep_extra_types_for_interpreter_logging then Some x else None in @@ -2534,6 +2599,7 @@ and parse_instr : tzfail Typechecking_too_many_recursive_calls else parse_instr + ~unparse_code_rec ~elab_conf tc_context ctxt @@ -2668,6 +2734,7 @@ and parse_instr : parse_packable_ty ctxt ~stack_depth:(stack_depth + 1) ~legacy t >>?= fun (Ex_ty t, ctxt) -> parse_data + ~unparse_code_rec ~elab_conf ~stack_depth:(stack_depth + 1) ctxt @@ -3365,6 +3432,7 @@ and parse_instr : check_kind [Seq_kind] code >>?= fun () -> check_var_annot loc annot >>?= fun () -> parse_kdescr + ~unparse_code_rec (Tc_context.add_lambda tc_context) ~elab_conf ~stack_depth:(stack_depth + 1) @@ -3373,6 +3441,8 @@ and parse_instr : ret code >>=? fun (kdescr, ctxt) -> + (* No need to normalize the unparsed component to Optimized mode here + because the script is already normalized in Optimized mode. *) let instr = {apply = (fun k -> ILambda (loc, Lam (kdescr, code), k))} in lambda_t loc arg ret >>?= fun ty -> let stack = Item_t (ty, stack) in @@ -3387,6 +3457,10 @@ and parse_instr : check_var_annot loc annot >>?= fun () -> lambda_t loc arg ret >>?= fun lambda_rec_ty -> parse_lam_rec + ~unparse_code_rec:(fun ctxt ~stack_depth:_ _unparsing_mode node -> + return (node, ctxt)) + (* No need to normalize the unparsed component to Optimized mode here + because the script is already normalized in Optimized mode. *) Tc_context.(add_lambda tc_context) ~elab_conf ~stack_depth:(stack_depth + 1) @@ -3982,6 +4056,7 @@ and parse_instr : trace (Ill_typed_contract (canonical_code, [])) (parse_kdescr + ~unparse_code_rec (Tc_context.toplevel ~storage_type ~param_type:arg_type ~entrypoints) ctxt ~elab_conf @@ -3991,7 +4066,9 @@ and parse_instr : code_field) >>=? function | {kbef = Item_t (arg, Bot_t); kaft = Item_t (ret, Bot_t); _}, ctxt -> - let views_result = parse_views ctxt ~elab_conf storage_type views in + let views_result = + parse_views ~unparse_code_rec ctxt ~elab_conf storage_type views + in trace (Ill_typed_contract (canonical_code, [])) views_result >>=? fun (_typed_views, ctxt) -> (let error_details = Informative loc in @@ -4726,11 +4803,12 @@ let code_size ctxt code views = >|? fun ctxt -> (code_size, ctxt) let parse_code : + unparse_code_rec:Script_ir_unparser.unparse_code_rec -> elab_conf:elab_conf -> context -> code:lazy_expr -> (ex_code * context) tzresult Lwt.t = - fun ~elab_conf ctxt ~code -> + fun ~unparse_code_rec ~elab_conf ctxt ~code -> Script.force_decode_in_context ~consume_deserialization_gas:When_needed ctxt @@ -4757,6 +4835,7 @@ let parse_code : trace (Ill_typed_contract (code, [])) (parse_kdescr + ~unparse_code_rec Tc_context.(toplevel ~storage_type ~param_type:arg_type ~entrypoints) ~elab_conf ctxt @@ -4774,13 +4853,14 @@ let parse_code : ctxt ) ) let parse_storage : + unparse_code_rec:Script_ir_unparser.unparse_code_rec -> elab_conf:elab_conf -> context -> allow_forged:bool -> ('storage, _) ty -> storage:lazy_expr -> ('storage * context) tzresult Lwt.t = - fun ~elab_conf ctxt ~allow_forged storage_type ~storage -> + fun ~unparse_code_rec ~elab_conf ctxt ~allow_forged storage_type ~storage -> Script.force_decode_in_context ~consume_deserialization_gas:When_needed ctxt @@ -4791,6 +4871,7 @@ let parse_storage : let storage_type = serialize_ty_for_error storage_type in Ill_typed_data (None, storage, storage_type)) (parse_data + ~unparse_code_rec ~elab_conf ~stack_depth:0 ctxt @@ -4799,18 +4880,20 @@ let parse_storage : (root storage)) let parse_script : + unparse_code_rec:Script_ir_unparser.unparse_code_rec -> elab_conf:elab_conf -> context -> allow_forged_in_storage:bool -> Script.t -> (ex_script * context) tzresult Lwt.t = - fun ~elab_conf ctxt ~allow_forged_in_storage {code; storage} -> - parse_code ~elab_conf ctxt ~code + fun ~unparse_code_rec ~elab_conf ctxt ~allow_forged_in_storage {code; storage} -> + parse_code ~unparse_code_rec ~elab_conf ctxt ~code >>=? fun ( Ex_code (Code {code; arg_type; storage_type; views; entrypoints; code_size}), ctxt ) -> parse_storage + ~unparse_code_rec ~elab_conf ctxt ~allow_forged:allow_forged_in_storage @@ -4834,12 +4917,13 @@ type typechecked_code_internal = -> typechecked_code_internal let typecheck_code : + unparse_code_rec:Script_ir_unparser.unparse_code_rec -> legacy:bool -> show_types:bool -> context -> Script.expr -> (typechecked_code_internal * context) tzresult Lwt.t = - fun ~legacy ~show_types ctxt code -> + fun ~unparse_code_rec ~legacy ~show_types ctxt code -> (* Constants need to be expanded or [parse_toplevel] may fail. *) Global_constants_storage.expand ctxt code >>=? fun (ctxt, code) -> parse_toplevel ctxt ~legacy code >>?= fun (toplevel, ctxt) -> @@ -4867,6 +4951,7 @@ let typecheck_code : let elab_conf = Script_ir_translator_config.make ~legacy ?type_logger () in let result = parse_kdescr + ~unparse_code_rec (Tc_context.toplevel ~storage_type ~param_type:arg_type ~entrypoints) ctxt ~elab_conf @@ -4877,7 +4962,9 @@ let typecheck_code : in trace (Ill_typed_contract (code, !type_map)) result >>=? fun ((_ : (_, _, _, _) kdescr), ctxt) -> - let views_result = parse_views ctxt ~elab_conf storage_type views in + let views_result = + parse_views ~unparse_code_rec ctxt ~elab_conf storage_type views + in trace (Ill_typed_contract (code, !type_map)) views_result >|=? fun (typed_views, ctxt) -> ( Typechecked_code_internal @@ -4946,6 +5033,11 @@ include Data_unparser (struct let parse_data = parse_data end) +let unparse_code_rec : unparse_code_rec = + fun ctxt ~stack_depth mode node -> + unparse_code ctxt ~stack_depth mode node >>=? fun (code, ctxt) -> + return (Micheline.root code, ctxt) + let parse_and_unparse_script_unaccounted ctxt ~legacy ~allow_forged_in_storage mode ~normalize_types {code; storage} = Script.force_decode_in_context @@ -4953,7 +5045,7 @@ let parse_and_unparse_script_unaccounted ctxt ~legacy ~allow_forged_in_storage ctxt code >>?= fun (code, ctxt) -> - typecheck_code ~legacy ~show_types:false ctxt code + typecheck_code ~unparse_code_rec ~legacy ~show_types:false ctxt code >>=? fun ( Typechecked_code_internal { toplevel = @@ -4971,6 +5063,7 @@ let parse_and_unparse_script_unaccounted ctxt ~legacy ~allow_forged_in_storage }, ctxt ) -> parse_storage + ~unparse_code_rec ~elab_conf:(Script_ir_translator_config.make ~legacy ()) ctxt ~allow_forged:allow_forged_in_storage @@ -5414,12 +5507,31 @@ let extract_lazy_storage_diff ctxt mode ~temporary ~to_duplicate ~to_update ty v let list_of_big_map_ids ids = Lazy_storage.IdSet.fold Big_map (fun id acc -> id :: acc) ids [] -let parse_data = parse_data ~stack_depth:0 +let parse_data ~elab_conf ctxt ~allow_forged ty t = + parse_data ~unparse_code_rec ~elab_conf ~allow_forged ~stack_depth:0 ctxt ty t + +let parse_view ~elab_conf ctxt ty view = + parse_view ~unparse_code_rec ~elab_conf ctxt ty view + +let parse_views ~elab_conf ctxt ty views = + parse_views ~unparse_code_rec ~elab_conf ctxt ty views + +let parse_code ~elab_conf ctxt ~code = + parse_code ~unparse_code_rec ~elab_conf ctxt ~code + +let parse_storage ~elab_conf ctxt ~allow_forged ty ~storage = + parse_storage ~unparse_code_rec ~elab_conf ctxt ~allow_forged ty ~storage -let parse_comparable_data ?type_logger = +let parse_script ~elab_conf ctxt ~allow_forged_in_storage script = + parse_script ~unparse_code_rec ~elab_conf ctxt ~allow_forged_in_storage script + +let parse_comparable_data ?type_logger ctxt ty t = parse_data ~elab_conf:Script_ir_translator_config.(make ~legacy:false ?type_logger ()) ~allow_forged:false + ctxt + ty + t let parse_instr : type a s. @@ -5430,7 +5542,14 @@ let parse_instr : (a, s) stack_ty -> ((a, s) judgement * context) tzresult Lwt.t = fun ~elab_conf tc_context ctxt script_instr stack_ty -> - parse_instr ~elab_conf ~stack_depth:0 tc_context ctxt script_instr stack_ty + parse_instr + ~unparse_code_rec + ~elab_conf + ~stack_depth:0 + tc_context + ctxt + script_instr + stack_ty let unparse_data = unparse_data ~stack_depth:0 @@ -5526,5 +5645,5 @@ let script_size (Saturation_repr.(add code_size storage_size |> to_int), cost) let typecheck_code ~legacy ~show_types ctxt code = - typecheck_code ~legacy ~show_types ctxt code + typecheck_code ~unparse_code_rec ~legacy ~show_types ctxt code >|=? fun (Typechecked_code_internal {type_map; _}, ctxt) -> (type_map, ctxt) diff --git a/src/proto_016_PtMumbai/lib_protocol/script_ir_unparser.ml b/src/proto_016_PtMumbai/lib_protocol/script_ir_unparser.ml index 6315ff10db35..55ef408b9180 100644 --- a/src/proto_016_PtMumbai/lib_protocol/script_ir_unparser.ml +++ b/src/proto_016_PtMumbai/lib_protocol/script_ir_unparser.ml @@ -451,7 +451,12 @@ let account_for_future_serialization_cost unparsed_data ctxt = Gas.consume ctxt (Script.micheline_serialization_cost unparsed_data) >|? fun ctxt -> (unparsed_data, ctxt) -(* -- Unparsing data of any type -- *) +type unparse_code_rec = + t -> + stack_depth:int -> + unparsing_mode -> + Script.node -> + ((canonical_location, prim) node * t, error trace) result Lwt.t module type MICHELSON_PARSER = sig val opened_ticket_type : @@ -468,6 +473,7 @@ module type MICHELSON_PARSER = sig (ex_ty * context) tzresult val parse_data : + unparse_code_rec:unparse_code_rec -> elab_conf:Script_ir_translator_config.elab_config -> stack_depth:int -> context -> @@ -480,6 +486,7 @@ end module Data_unparser (P : MICHELSON_PARSER) = struct open Script_tc_errors + (* -- Unparsing data of any type -- *) let rec unparse_data_rec : type a ac. context -> @@ -714,6 +721,7 @@ module Data_unparser (P : MICHELSON_PARSER) = struct as all packable values are also forgeable. *) in P.parse_data + ~unparse_code_rec ~elab_conf ctxt ~stack_depth:(stack_depth + 1) diff --git a/src/proto_016_PtMumbai/lib_protocol/script_ir_unparser.mli b/src/proto_016_PtMumbai/lib_protocol/script_ir_unparser.mli index 908fd7cdeaf0..304774b48d46 100644 --- a/src/proto_016_PtMumbai/lib_protocol/script_ir_unparser.mli +++ b/src/proto_016_PtMumbai/lib_protocol/script_ir_unparser.mli @@ -141,11 +141,37 @@ val unparse_contract : 'b typed_contract -> ('loc Script.michelson_node * context, error trace) result -(** [MICHESLON_PARSER] signature describes a set of dependencies required to +(** Lambdas are normalized at parsing and also at unparsing. These + normalizations require to parse and unparse data appearing inside + PUSH and introduces a mutual dependency between this module and + [Script_ir_translator] which is resolved as follows: + - [Script_ir_translator.parse_data] takes the normalization function + [unparse_code_rec] as argument, + - the unparsing function [unparse_data_rec] and the normalization + function [unparse_code_rec] are mutually defined in a functor + parameterized by the missing bits from [Script_ir_translator]; see the + module signature [MICHELSON_PARSER] below. + *) + +(** The [unparse_code_rec] function is not exported (except through + the [Internal_for_benchmarking] module), but needs to be called by + [parse_data] to normalize lambdas so it is passed as argument to + the [parse_data] of the [MICHELSON_PARSER] signature below and to + several functions of [Script_ir_translator]. To avoid repeating the + signature of this function we define a type alias for it. *) +type unparse_code_rec = + context -> + stack_depth:int -> + unparsing_mode -> + Script.node -> + (Script.node * context) tzresult Lwt.t + +(** [MICHELSON_PARSER] signature describes a set of dependencies required to unparse arbitrary values in the IR. Because some of those values contain just a Michelson code that does not need to be parsed immediately, unparsing them requires extracting information from that code – that's why we depend on the parser here. *) + module type MICHELSON_PARSER = sig val opened_ticket_type : Script.location -> @@ -161,6 +187,7 @@ module type MICHELSON_PARSER = sig (ex_ty * context) tzresult val parse_data : + unparse_code_rec:unparse_code_rec -> elab_conf:Script_ir_translator_config.elab_config -> stack_depth:int -> context -> diff --git a/src/proto_016_PtMumbai/lib_protocol/skip_list_costs.ml b/src/proto_016_PtMumbai/lib_protocol/skip_list_costs.ml index fea0afed7bb8..e442f6872aee 100644 --- a/src/proto_016_PtMumbai/lib_protocol/skip_list_costs.ml +++ b/src/proto_016_PtMumbai/lib_protocol/skip_list_costs.ml @@ -32,11 +32,12 @@ let model_next ~length = let length = S.safe_z length in S.safe_int 20 * log2 (S.safe_int 1 + length) -(* Inferred from model model_hash_cell in file skip_list_benchmarks.ml *) -(* fun size -> (0. + (93.5015799571 * size)) *) +(* Inferred from model proto/alpha/skip_list/hash_cell in file + skip_list_benchmarks.ml *) +(* fun size -> (242.202299543 + (56.9693504823 * size)) *) let model_hash_cell backpointers_count = let open S.Syntax in - S.safe_int 95 * backpointers_count + S.safe_int 250 + (S.safe_int 57 * backpointers_count) let model_hash_cell_computed_backpointers_count ~index = model_hash_cell (S.Syntax.log2 (S.safe_z index)) diff --git a/src/proto_016_PtMumbai/lib_protocol/test/integration/michelson/main.ml b/src/proto_016_PtMumbai/lib_protocol/test/integration/michelson/main.ml index dd1a9f76fe0f..f93799c4d484 100644 --- a/src/proto_016_PtMumbai/lib_protocol/test/integration/michelson/main.ml +++ b/src/proto_016_PtMumbai/lib_protocol/test/integration/michelson/main.ml @@ -55,5 +55,6 @@ let () = ("annotations", Test_annotations.tests); ("event logging", Test_contract_event.tests); ("patched contracts", Test_patched_contracts.tests); + ("lambda normalization", Test_lambda_normalization.tests); ] |> Lwt_main.run diff --git a/src/proto_016_PtMumbai/lib_protocol/test/integration/michelson/test_lambda_normalization.ml b/src/proto_016_PtMumbai/lib_protocol/test/integration/michelson/test_lambda_normalization.ml new file mode 100644 index 000000000000..fcd9152f277d --- /dev/null +++ b/src/proto_016_PtMumbai/lib_protocol/test/integration/michelson/test_lambda_normalization.ml @@ -0,0 +1,238 @@ +(*****************************************************************************) +(* *) +(* Open Source License *) +(* Copyright (c) 2023 Nomadic Labs, *) +(* *) +(* Permission is hereby granted, free of charge, to any person obtaining a *) +(* copy of this software and associated documentation files (the "Software"),*) +(* to deal in the Software without restriction, including without limitation *) +(* the rights to use, copy, modify, merge, publish, distribute, sublicense, *) +(* and/or sell copies of the Software, and to permit persons to whom the *) +(* Software is furnished to do so, subject to the following conditions: *) +(* *) +(* The above copyright notice and this permission notice shall be included *) +(* in all copies or substantial portions of the Software. *) +(* *) +(* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR*) +(* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *) +(* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL *) +(* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER*) +(* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING *) +(* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER *) +(* DEALINGS IN THE SOFTWARE. *) +(* *) +(*****************************************************************************) + +(** Testing + ------- + Component: Protocol (Michelson) + Invocation: dune exec \ + src/proto_alpha/lib_protocol/test/integration/michelson/main.exe \ + -- test "^lambda normalization" + Subject: Test that lambdas are normalized to optimized format at elaboration +*) + +open Protocol +open Alpha_context +open Script_typed_ir + +let new_ctxt () = + let open Lwt_result_syntax in + let* block, _contract = Context.init1 () in + let+ incr = Incremental.begin_construction block in + Incremental.alpha_ctxt incr + +let parse_and_project (ty : ((_, _) lambda, _) ty) (node : Script.node) = + let open Lwt_result_syntax in + let* ctxt = new_ctxt () in + let elab_conf = Script_ir_translator_config.make ~legacy:false () in + let* lam, _ctxt = + Script_ir_translator.parse_data ~elab_conf ctxt ~allow_forged:false ty node + |> Lwt.map Environment.wrap_tzresult + in + match lam with + | Lam (_kdescr, node) -> return node + | LamRec (_kdescr, node) -> + return + Micheline.( + Prim (dummy_location, Michelson_v1_primitives.D_Lambda_rec, [node], [])) + +let node_of_string str = + let open Lwt_result_syntax in + let*? parsed = + Micheline_parser.no_parsing_error + @@ Michelson_v1_parser.parse_expression ~check:false str + in + return @@ Micheline.root parsed.expanded + +let node_to_string node = + Format.asprintf + "%a" + Micheline_printer.print_expr + ((Micheline_printer.printable Michelson_v1_primitives.string_of_prim) + (Micheline.strip_locations node)) + +let assert_lambda_normalizes_to ~loc ty str expected = + let open Lwt_result_syntax in + let* node = node_of_string str in + let* node_normalized = parse_and_project ty node in + let str_normalized = node_to_string node_normalized in + let* expected_node = node_of_string expected in + let expected = node_to_string expected_node in + Assert.equal_string ~loc expected str_normalized + +let assert_normalizes_to ~loc ty str expected = + let open Lwt_result_syntax in + let* () = assert_lambda_normalizes_to ~loc ty str expected in + let* () = + assert_lambda_normalizes_to + ~loc + ty + ("Lambda_rec " ^ str) + ("Lambda_rec " ^ expected) + in + return_unit + +let test_lambda_normalization () = + let open Lwt_result_syntax in + let* ty = + Script_typed_ir.(lambda_t Micheline.dummy_location unit_t never_t) + |> Environment.wrap_tzresult |> Lwt.return + in + let* lam_unit_unit = + Script_typed_ir.(lambda_t Micheline.dummy_location unit_t unit_t) + |> Environment.wrap_tzresult |> Lwt.return + in + let* () = + (* Empty sequence normalizes to itself. *) + assert_lambda_normalizes_to ~loc:__LOC__ lam_unit_unit "{}" "{}" + in + let* () = + (* Another example normalizing to itself. *) + assert_normalizes_to ~loc:__LOC__ ty "{FAILWITH}" "{FAILWITH}" + in + let* () = + (* Readable address normalizes to optimized. *) + assert_normalizes_to + ~loc:__LOC__ + ty + {|{PUSH address "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx"; FAILWITH}|} + {|{PUSH address 0x000002298c03ed7d454a101eb7022bc95f7e5f41ac78; FAILWITH}|} + in + let* () = + (* Binary pair normalizes to itself. *) + assert_normalizes_to + ~loc:__LOC__ + ty + {|{PUSH (pair nat nat) (Pair 0 0); FAILWITH}|} + {|{PUSH (pair nat nat) (Pair 0 0); FAILWITH}|} + in + let* () = + (* Ternary pair normalizes to nested binary pairs. Type is unchanged. *) + assert_normalizes_to + ~loc:__LOC__ + ty + {|{PUSH (pair nat nat nat) (Pair 0 0 0); FAILWITH}|} + {|{PUSH (pair nat nat nat) (Pair 0 (Pair 0 0)); FAILWITH}|} + in + let* () = + (* Same with nested pairs in type. Type is still unchanged. *) + assert_normalizes_to + ~loc:__LOC__ + ty + {|{PUSH (pair nat (pair nat nat)) (Pair 0 0 0); FAILWITH}|} + {|{PUSH (pair nat (pair nat nat)) (Pair 0 (Pair 0 0)); FAILWITH}|} + in + let* () = + (* Quadrary pair normalizes to sequence. Type is unchanged. *) + assert_normalizes_to + ~loc:__LOC__ + ty + {|{PUSH (pair nat nat nat nat) (Pair 0 0 0 0); FAILWITH}|} + {|{PUSH (pair nat nat nat nat) {0; 0; 0; 0}; FAILWITH}|} + in + let* () = + (* Code inside LAMBDA is normalized too. *) + assert_normalizes_to + ~loc:__LOC__ + ty + {|{LAMBDA unit never + {PUSH address "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx"; FAILWITH}; + FAILWITH}|} + {|{LAMBDA unit never + {PUSH address 0x000002298c03ed7d454a101eb7022bc95f7e5f41ac78; FAILWITH}; + FAILWITH}|} + in + let* () = + (* Same with LAMBDA replaced by PUSH. *) + assert_normalizes_to + ~loc:__LOC__ + ty + {|{PUSH (lambda unit never) + {PUSH address "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx"; FAILWITH}; + FAILWITH}|} + {|{PUSH (lambda unit never) + {PUSH address 0x000002298c03ed7d454a101eb7022bc95f7e5f41ac78; FAILWITH}; + FAILWITH}|} + in + let* () = + (* Code inside LAMBDA_REC is normalized too. *) + assert_normalizes_to + ~loc:__LOC__ + ty + {|{LAMBDA_REC unit never + {PUSH address "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx"; + FAILWITH}; + FAILWITH}|} + {|{LAMBDA_REC unit never + {PUSH address 0x000002298c03ed7d454a101eb7022bc95f7e5f41ac78; + FAILWITH}; + FAILWITH}|} + in + let* () = + (* Same with LAMBDA_REC replaced by PUSH. *) + assert_normalizes_to + ~loc:__LOC__ + ty + {|{PUSH (lambda unit never) + (Lambda_rec + {PUSH address "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx"; + FAILWITH}); + FAILWITH}|} + {|{PUSH (lambda unit never) + (Lambda_rec + {PUSH address 0x000002298c03ed7d454a101eb7022bc95f7e5f41ac78; + FAILWITH}); + FAILWITH}|} + in + let* () = + (* Code inside CREATE_CONTRACT is normalized too. *) + assert_normalizes_to + ~loc:__LOC__ + ty + {|{PUSH mutez 0; + NONE key_hash; + CREATE_CONTRACT + {parameter unit; + storage unit; + code { PUSH address "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx"; FAILWITH}}; + DROP; + FAILWITH}|} + {|{PUSH mutez 0; + NONE key_hash; + CREATE_CONTRACT + {parameter unit; + storage unit; + code { PUSH address 0x000002298c03ed7d454a101eb7022bc95f7e5f41ac78; FAILWITH}}; + DROP; + FAILWITH}|} + in + return_unit + +let tests = + [ + Tztest.tztest + "Test that lambdas are normalized to optimized format during elaboration" + `Quick + test_lambda_normalization; + ] -- GitLab From 292e8ec1b25e44bacfdf7897b3136e7052a5b8ba Mon Sep 17 00:00:00 2001 From: Pierre Boutillier Date: Sat, 4 Mar 2023 12:58:36 +0100 Subject: [PATCH 2/6] Everywhere: update protocol hash --- docs/Makefile | 2 +- docs/doc_gen/rpc_doc.ml | 2 +- docs/mumbai/rpc.rst | 52 +++++++++---------- docs/mumbai/smart_rollups.rst | 4 +- .../final_protocol_versions | 2 +- .../lib_protocol/TEZOS_PROTOCOL | 2 +- src/proto_016_PtMumbai/lib_protocol/dune | 2 +- tests_python/tools/constants.py | 2 +- tezt/lib_tezos/protocol.ml | 2 +- ... client) RPC regression tests- mempool.out | 34 ++++++------ ...e proxy) RPC regression tests- mempool.out | 34 ++++++------ ....tz--storage125992234--input254251340-.out | 2 +- ....tz--storage125992234--input420401245-.out | 2 +- ....tz--storage125992234--input680650890-.out | 2 +- ....tz--storage125992234--input125992234-.out | 2 +- ....tz--storage921624073--input322109491-.out | 2 +- ....tz--storage921624073--input461261325-.out | 2 +- ....tz--storage921624073--input530006774-.out | 2 +- ....tz--storage921624073--input712570300-.out | 2 +- ....tz--storage921624073--input249636002-.out | 2 +- ....tz--storage921624073--input267363182-.out | 2 +- ....tz--storage921624073--input438561129-.out | 2 +- ....tz--storage921624073--input249636002-.out | 2 +- ....tz--storage921624073--input307538219-.out | 2 +- ....tz--storage921624073--input373737581-.out | 2 +- ....tz--storage921624073--input117475800-.out | 2 +- ....tz--storage921624073--input106930123-.out | 2 +- ....tz--storage921624073--input181204719-.out | 2 +- ....tz--storage921624073--input223774825-.out | 2 +- ....tz--storage921624073--input908807505-.out | 2 +- ....tz--storage125992234--input125992234-.out | 2 +- ....tz--storage125992234--input125992234-.out | 2 +- ....tz--storage570553153--input106930123-.out | 2 +- ....tz--storage570553153--input181204719-.out | 2 +- ....tz--storage570553153--input223774825-.out | 2 +- ....tz--storage570553153--input908807505-.out | 2 +- ....tz--storage492856247--input125992234-.out | 2 +- ....tz--storage495706788--input453441034-.out | 2 +- ...t.tz--storage56274299--input453441034-.out | 2 +- ...t.tz--storage56274299--input564400327-.out | 2 +- ...t.tz--storage56274299--input654274102-.out | 2 +- ....tz--storage690637660--input453441034-.out | 2 +- ....tz--storage806237530--input453441034-.out | 2 +- ...tz--storage109689253--input1071610051-.out | 2 +- ....tz--storage109689253--input700475845-.out | 2 +- ....tz--storage109689253--input905318451-.out | 2 +- ....tz--storage495706788--input700475845-.out | 2 +- ....tz--storage915708427--input700475845-.out | 2 +- ....tz--storage936682951--input905318451-.out | 2 +- ...ot_padded.tz--storage921624073--input1.out | 2 +- ....tz--storage921624073--input125992234-.out | 2 +- ...tz--storage680650890--input1043734173-.out | 2 +- ....tz--storage680650890--input151303925-.out | 2 +- ....tz--storage680650890--input520610122-.out | 2 +- ....tz--storage680650890--input558805129-.out | 2 +- ....tz--storage680650890--input229402968-.out | 2 +- ...tz--storage287336412--input1019409032-.out | 2 +- ....tz--storage698210250--input949526473-.out | 2 +- ....tz--storage739946440--input166435292-.out | 2 +- ....tz--storage739946440--input583291483-.out | 2 +- ...tz--storage994282947--input1055524890-.out | 2 +- ....tz--storage994282947--input453441034-.out | 2 +- ....tz--storage994282947--input564400327-.out | 2 +- ....tz--storage994282947--input585234482-.out | 2 +- ....tz--storage994282947--input680650890-.out | 2 +- ....tz--storage994282947--input701858804-.out | 2 +- ...tz--storage287336412--input1019409032-.out | 2 +- ....tz--storage698210250--input949526473-.out | 2 +- ....tz--storage739946440--input166435292-.out | 2 +- ....tz--storage739946440--input583291483-.out | 2 +- ...tz--storage994282947--input1055524890-.out | 2 +- ....tz--storage994282947--input453441034-.out | 2 +- ....tz--storage994282947--input564400327-.out | 2 +- ....tz--storage994282947--input680650890-.out | 2 +- ...tz--storage287336412--input1019409032-.out | 2 +- ....tz--storage698210250--input949526473-.out | 2 +- ....tz--storage739946440--input166435292-.out | 2 +- ....tz--storage739946440--input583291483-.out | 2 +- ...tz--storage994282947--input1055524890-.out | 2 +- ....tz--storage994282947--input453441034-.out | 2 +- ....tz--storage994282947--input564400327-.out | 2 +- ....tz--storage994282947--input585234482-.out | 2 +- ....tz--storage994282947--input680650890-.out | 2 +- ....tz--storage994282947--input701858804-.out | 2 +- ...tz--storage287336412--input1019409032-.out | 2 +- ....tz--storage698210250--input949526473-.out | 2 +- ....tz--storage739946440--input166435292-.out | 2 +- ....tz--storage739946440--input583291483-.out | 2 +- ...tz--storage994282947--input1055524890-.out | 2 +- ....tz--storage994282947--input453441034-.out | 2 +- ....tz--storage994282947--input564400327-.out | 2 +- ....tz--storage994282947--input680650890-.out | 2 +- ....tz--storage125992234--input125992234-.out | 2 +- ....tz--storage125992234--input125992234-.out | 2 +- ....tz--storage680650890--input783124233-.out | 2 +- ....tz--storage680650890--input783124233-.out | 2 +- ....tz--storage109160754--input125992234-.out | 2 +- ....tz--storage921624073--input125992234-.out | 2 +- ....tz--storage981066851--input125992234-.out | 2 +- ....tz--storage125992234--input186507116-.out | 2 +- ....tz--storage921624073--input186507116-.out | 2 +- ....tz--storage186507116--input125992234-.out | 2 +- ....tz--storage950292965--input125992234-.out | 2 +- ....tz--storage125992234--input125992234-.out | 2 +- ....tz--storage457300675--input281780712-.out | 2 +- ....tz--storage457300675--input392583650-.out | 2 +- ....tz--storage457300675--input457300675-.out | 2 +- ....tz--storage457300675--input640104625-.out | 2 +- ....tz--storage457300675--input354091714-.out | 2 +- ....tz--storage457300675--input441061063-.out | 2 +- ....tz--storage457300675--input457300675-.out | 2 +- ...t.tz--storage79230375--input264787654-.out | 2 +- ...t.tz--storage79230375--input316676251-.out | 2 +- ...t.tz--storage79230375--input457300675-.out | 2 +- ....tz--storage457300675--input798141440-.out | 2 +- ....tz--storage581876226--input166122047-.out | 2 +- ....tz--storage793461282--input781487591-.out | 2 +- ....tz--storage921624073--input315650912-.out | 2 +- ...l.tz--storage921624073--input51111414-.out | 2 +- ....tz--storage921624073--input545734274-.out | 2 +- ....tz--storage921624073--input772794967-.out | 2 +- ....tz--storage921624073--input917967660-.out | 2 +- ....tz--storage921624073--input964818218-.out | 2 +- ....tz--storage125992234--input117475800-.out | 2 +- ....tz--storage921624073--input125992234-.out | 2 +- ...tz--storage492856247--input1011138251-.out | 2 +- ...tz--storage492856247--input1018564342-.out | 2 +- ...tz--storage492856247--input1031049988-.out | 2 +- ....tz--storage492856247--input685590443-.out | 2 +- ....tz--storage125992234--input246866101-.out | 2 +- ...q.tz--storage125992234--input26856104-.out | 2 +- ....tz--storage680650890--input529388602-.out | 2 +- ...tz--storage1011138251--input590117173-.out | 2 +- ...tz--storage1011138251--input850887554-.out | 2 +- ....tz--storage680650890--input529388602-.out | 2 +- ....tz--storage680650890--input529388602-.out | 2 +- ....tz--storage680650890--input529388602-.out | 2 +- ....tz--storage125992234--input125992234-.out | 2 +- ....tz--storage994417987--input247451205-.out | 2 +- ....tz--storage994417987--input250545589-.out | 2 +- ...v.tz--storage994417987--input79625541-.out | 2 +- ....tz--storage977883604--input147133089-.out | 2 +- ....tz--storage977883604--input215785357-.out | 2 +- ....tz--storage977883604--input389351431-.out | 2 +- ...z.tz--storage977883604--input44513000-.out | 2 +- ....tz--storage977883604--input635398196-.out | 2 +- ....tz--storage977883604--input734264738-.out | 2 +- ....tz--storage977883604--input993071382-.out | 2 +- ....tz--storage125992234--input125992234-.out | 2 +- ....tz--storage457300675--input125992234-.out | 2 +- ....tz--storage398998998--input246262487-.out | 2 +- ...t.tz--storage398998998--input79230375-.out | 2 +- ....tz--storage492856247--input478406404-.out | 2 +- ....tz--storage492856247--input962874972-.out | 2 +- ...tz--storage1026405794--input329240220-.out | 2 +- ....tz--storage382368661--input329240220-.out | 2 +- ....tz--storage496578814--input329240220-.out | 2 +- ....tz--storage496578814--input507231566-.out | 2 +- ....tz--storage547821324--input329240220-.out | 2 +- ....tz--storage796012494--input156280093-.out | 2 +- ....tz--storage796012494--input228164856-.out | 2 +- ....tz--storage139236239--input329240220-.out | 2 +- ...e.tz--storage139236239--input79230375-.out | 2 +- ....tz--storage329396864--input156280093-.out | 2 +- ...tz--storage921624073--input1040351577-.out | 2 +- ....tz--storage921624073--input153350004-.out | 2 +- ...ng.tz--storage151303925--input3431716-.out | 2 +- ....tz--storage151303925--input535018041-.out | 2 +- ....tz--storage921624073--input570553153-.out | 2 +- ....tz--storage921624073--input954397288-.out | 2 +- ....tz--storage398998998--input288201633-.out | 2 +- ....tz--storage398998998--input921624073-.out | 2 +- ....tz--storage921624073--input453441034-.out | 2 +- ....tz--storage921624073--input535454136-.out | 2 +- ....tz--storage921624073--input680650890-.out | 2 +- ...tz--storage921624073--input1008262038-.out | 2 +- ...ht.tz--storage4177631--input202098045-.out | 2 +- ...ght.tz--storage4177631--input44576556-.out | 2 +- ....tz--storage492856247--input125992234-.out | 2 +- ....tz--storage717096222--input457300675-.out | 2 +- ....tz--storage717096222--input546523343-.out | 2 +- ....tz--storage149262694--input220724351-.out | 2 +- ....tz--storage149262694--input457300675-.out | 2 +- ...s.tz--storage65410082--input457300675-.out | 2 +- ....tz--storage726220441--input972761363-.out | 2 +- ....tz--storage528921618--input264787654-.out | 2 +- ....tz--storage528921618--input457300675-.out | 2 +- ....tz--storage528921618--input656499821-.out | 2 +- ....tz--storage528921618--input264787654-.out | 2 +- ....tz--storage528921618--input457300675-.out | 2 +- ....tz--storage528921618--input656499821-.out | 2 +- ....tz--storage680650890--input568817463-.out | 2 +- ....tz--storage680650890--input737923774-.out | 2 +- ....tz--storage907453363--input457300675-.out | 2 +- ....tz--storage907453363--input648737279-.out | 2 +- ....tz--storage907453363--input908379154-.out | 2 +- ....tz--storage492856247--input403499055-.out | 2 +- ....tz--storage492856247--input457300675-.out | 2 +- ....tz--storage492856247--input469078912-.out | 2 +- ....tz--storage492856247--input802622031-.out | 2 +- ....tz--storage528921618--input457300675-.out | 2 +- ....tz--storage528921618--input851203613-.out | 2 +- ....tz--storage125992234--input125992234-.out | 2 +- ....tz--storage125992234--input125992234-.out | 2 +- ...tz--storage457300675--input1027566226-.out | 2 +- ....tz--storage457300675--input276660554-.out | 2 +- ....tz--storage457300675--input599923743-.out | 2 +- ...tz--storage1011138251--input403579222-.out | 2 +- ...tz--storage1011138251--input532072758-.out | 2 +- ....tz--storage457300675--input798141440-.out | 2 +- ....tz--storage794999348--input152441147-.out | 2 +- ...p.tz--storage88008216--input798141440-.out | 2 +- ....tz--storage495706788--input453441034-.out | 2 +- ...t.tz--storage56274299--input453441034-.out | 2 +- ...t.tz--storage56274299--input564400327-.out | 2 +- ...t.tz--storage56274299--input654274102-.out | 2 +- ....tz--storage690637660--input453441034-.out | 2 +- ....tz--storage806237530--input453441034-.out | 2 +- ...tz--storage109689253--input1071610051-.out | 2 +- ....tz--storage109689253--input700475845-.out | 2 +- ....tz--storage109689253--input905318451-.out | 2 +- ....tz--storage495706788--input700475845-.out | 2 +- ....tz--storage915708427--input700475845-.out | 2 +- ....tz--storage936682951--input905318451-.out | 2 +- ...e.tz--storage492856247--input15265129-.out | 2 +- ....tz--storage492856247--input158311065-.out | 2 +- ....tz--storage492856247--input456982702-.out | 2 +- ....tz--storage492856247--input457300675-.out | 2 +- ....tz--storage125992234--input125992234-.out | 2 +- ....tz--storage151303925--input216277421-.out | 2 +- ....tz--storage287799761--input485842614-.out | 2 +- ...tz--storage680650890--input1067298059-.out | 2 +- ....tz--storage680650890--input380029349-.out | 2 +- ....tz--storage680650890--input563503226-.out | 2 +- ....tz--storage680650890--input788662499-.out | 2 +- ....tz--storage680650890--input972832189-.out | 2 +- ...e.tz--storage11179311--input125992234-.out | 2 +- ....tz--storage921624073--input570553153-.out | 2 +- ....tz--storage921624073--input954397288-.out | 2 +- ...tz--storage921624073--input1051197453-.out | 2 +- ....tz--storage921624073--input123939249-.out | 2 +- ...y.tz--storage921624073--input24243730-.out | 2 +- ....tz--storage921624073--input518945720-.out | 2 +- ....tz--storage921624073--input788662499-.out | 2 +- ....tz--storage921624073--input906118781-.out | 2 +- ....tz--storage921624073--input921874253-.out | 2 +- ....tz--storage921624073--input972832189-.out | 2 +- ....tz--storage125992234--input125992234-.out | 2 +- ....tz--storage921624073--input106930123-.out | 2 +- ....tz--storage921624073--input181204719-.out | 2 +- ....tz--storage921624073--input223774825-.out | 2 +- ....tz--storage921624073--input908807505-.out | 2 +- ...tz--storage921624073--input1056991424-.out | 2 +- ....tz--storage921624073--input375993021-.out | 2 +- ....tz--storage921624073--input673240563-.out | 2 +- ....tz--storage921624073--input747448890-.out | 2 +- ....tz--storage921624073--input832403787-.out | 2 +- ....tz--storage921624073--input858098961-.out | 2 +- ....tz--storage125992234--input125992234-.out | 2 +- ....tz--storage125992234--input305844558-.out | 2 +- ....tz--storage125992234--input646365167-.out | 2 +- ...tz--storage125992234--input1028781121-.out | 2 +- ....tz--storage125992234--input802670583-.out | 2 +- ....tz--storage921624073--input106930123-.out | 2 +- ....tz--storage921624073--input181204719-.out | 2 +- ....tz--storage921624073--input223774825-.out | 2 +- ....tz--storage921624073--input908807505-.out | 2 +- ...tz--storage256947135--input1050356042-.out | 2 +- ....tz--storage197120858--input179371027-.out | 2 +- ....tz--storage921624073--input125992234-.out | 2 +- ....tz--storage528921618--input457300675-.out | 2 +- ....tz--storage528921618--input851203613-.out | 2 +- ....tz--storage528921618--input457300675-.out | 2 +- ....tz--storage528921618--input851203613-.out | 2 +- ....tz--storage457300675--input125992234-.out | 2 +- ....tz--storage125992234--input125992234-.out | 2 +- ...int.tz--storage125992234--input1259922.out | 2 +- ....tz--storage125992234--input289072903-.out | 2 +- ....tz--storage224747103--input620760059-.out | 2 +- ....tz--storage224747103--input717096222-.out | 2 +- ...r.tz--storage224747103--input79230375-.out | 2 +- ....tz--storage205576101--input654274102-.out | 2 +- ....tz--storage224747103--input453441034-.out | 2 +- ....tz--storage611418174--input967284912-.out | 2 +- ....tz--storage457300675--input264787654-.out | 2 +- ....tz--storage457300675--input457300675-.out | 2 +- ....tz--storage457300675--input989507347-.out | 2 +- ....tz--storage492856247--input457300675-.out | 2 +- ....tz--storage492856247--input701684511-.out | 2 +- ....tz--storage492856247--input802622031-.out | 2 +- ...r.tz--storage495706788--input33757838-.out | 2 +- ...r.tz--storage550087893--input79230375-.out | 2 +- ...r.tz--storage605111220--input33757838-.out | 2 +- ....tz--storage492856247--input403499055-.out | 2 +- ....tz--storage492856247--input457300675-.out | 2 +- ....tz--storage492856247--input469078912-.out | 2 +- ....tz--storage492856247--input802622031-.out | 2 +- ...tz--storage921624073--input1008262038-.out | 2 +- ....tz--storage921624073--input115382786-.out | 2 +- ....tz--storage921624073--input271566295-.out | 2 +- ....tz--storage921624073--input340971987-.out | 2 +- ....tz--storage921624073--input374168553-.out | 2 +- ....tz--storage921624073--input413621582-.out | 2 +- ....tz--storage921624073--input424849461-.out | 2 +- ....tz--storage921624073--input485030042-.out | 2 +- ....tz--storage921624073--input705767726-.out | 2 +- ....tz--storage921624073--input769385932-.out | 2 +- ....tz--storage921624073--input913715337-.out | 2 +- ...e.tz--storage351480851--input65907686-.out | 2 +- ....tz--storage364922380--input198821575-.out | 2 +- ....tz--storage364922380--input359592843-.out | 2 +- ....tz--storage364922380--input551316239-.out | 2 +- ....tz--storage364922380--input722749044-.out | 2 +- ....tz--storage364922380--input839234860-.out | 2 +- ....tz--storage364922380--input919180079-.out | 2 +- ....tz--storage921624073--input551316239-.out | 2 +- ....tz--storage229749865--input198821575-.out | 2 +- ....tz--storage229749865--input462551352-.out | 2 +- ....tz--storage229749865--input489157380-.out | 2 +- ....tz--storage229749865--input551316239-.out | 2 +- ....tz--storage229749865--input669330759-.out | 2 +- ....tz--storage229749865--input743596105-.out | 2 +- ....tz--storage229749865--input839234860-.out | 2 +- ...s.tz--storage504917929--input65907686-.out | 2 +- ....tz--storage921624073--input462551352-.out | 2 +- ...tz--storage921624073--input1016369050-.out | 2 +- ...d.tz--storage921624073--input93477117-.out | 2 +- ....tz--storage492856247--input249636002-.out | 2 +- ....tz--storage492856247--input307538219-.out | 2 +- ....tz--storage492856247--input831449542-.out | 2 +- ....tz--storage921624073--input706350605-.out | 2 +- ....tz--storage921624073--input856198194-.out | 2 +- ....tz--storage680650890--input394061083-.out | 2 +- ....tz--storage125992234--input125992234-.out | 2 +- ...z--storage1011138251--input1040351577-.out | 2 +- ...tz--storage921624073--input1058477720-.out | 2 +- ...tz--storage921624073--input1073176155-.out | 2 +- ....tz--storage921624073--input246594902-.out | 2 +- ....tz--storage921624073--input506603577-.out | 2 +- ....tz--storage921624073--input576248088-.out | 2 +- ....tz--storage921624073--input612012282-.out | 2 +- ....tz--storage921624073--input617591686-.out | 2 +- ....tz--storage921624073--input639311176-.out | 2 +- ....tz--storage921624073--input688315180-.out | 2 +- ....tz--storage921624073--input967929605-.out | 2 +- ....tz--storage125992234--input125992234-.out | 2 +- ...python-contracts_016-attic-accounts.tz.out | 2 +- ...sts_python-contracts_016-attic-add1.tz.out | 2 +- ...ython-contracts_016-attic-add1_list.tz.out | 2 +- ...-contracts_016-attic-after_strategy.tz.out | 2 +- ...s_python-contracts_016-attic-always.tz.out | 2 +- ...s_python-contracts_016-attic-append.tz.out | 2 +- ...python-contracts_016-attic-at_least.tz.out | 2 +- ..._python-contracts_016-attic-auction.tz.out | 2 +- ...thon-contracts_016-attic-bad_lockup.tz.out | 2 +- ...n-contracts_016-attic-big_map_union.tz.out | 2 +- ...contracts_016-attic-cadr_annotation.tz.out | 2 +- ...s_python-contracts_016-attic-concat.tz.out | 2 +- ...on-contracts_016-attic-conditionals.tz.out | 2 +- ...thon-contracts_016-attic-cons_twice.tz.out | 2 +- ...python-contracts_016-attic-cps_fact.tz.out | 2 +- ...ntracts_016-attic-create_add1_lists.tz.out | 2 +- ...-contracts_016-attic-data_publisher.tz.out | 2 +- ...python-contracts_016-attic-dispatch.tz.out | 2 +- ...ts_python-contracts_016-attic-empty.tz.out | 2 +- ...hon-contracts_016-attic-fail_amount.tz.out | 2 +- ...s_python-contracts_016-attic-faucet.tz.out | 2 +- ..._python-contracts_016-attic-forward.tz.out | 2 +- ...tests_python-contracts_016-attic-id.tz.out | 2 +- ...n-contracts_016-attic-infinite_loop.tz.out | 2 +- ...-contracts_016-attic-insertion_sort.tz.out | 2 +- ...n-contracts_016-attic-int_publisher.tz.out | 2 +- ...hon-contracts_016-attic-king_of_tez.tz.out | 2 +- ...acts_016-attic-list_of_transactions.tz.out | 2 +- ...ts_python-contracts_016-attic-queue.tz.out | 2 +- ...thon-contracts_016-attic-reduce_map.tz.out | 2 +- ...thon-contracts_016-attic-reentrancy.tz.out | 2 +- ...ython-contracts_016-attic-reservoir.tz.out | 2 +- ...racts_016-attic-scrutable_reservoir.tz.out | 2 +- ...ontracts_016-attic-spawn_identities.tz.out | 2 +- ...016-entrypoints-big_map_entrypoints.tz.out | 2 +- ..._016-entrypoints-delegatable_target.tz.out | 2 +- ...n-contracts_016-entrypoints-manager.tz.out | 2 +- ...s_016-entrypoints-no_default_target.tz.out | 2 +- ...16-entrypoints-no_entrypoint_target.tz.out | 2 +- ...racts_016-entrypoints-rooted_target.tz.out | 2 +- ..._016-entrypoints-simple_entrypoints.tz.out | 2 +- ..._python-contracts_016-macros-assert.tz.out | 2 +- ...n-contracts_016-macros-assert_cmpeq.tz.out | 2 +- ...n-contracts_016-macros-assert_cmpge.tz.out | 2 +- ...n-contracts_016-macros-assert_cmpgt.tz.out | 2 +- ...n-contracts_016-macros-assert_cmple.tz.out | 2 +- ...n-contracts_016-macros-assert_cmplt.tz.out | 2 +- ...-contracts_016-macros-assert_cmpneq.tz.out | 2 +- ...thon-contracts_016-macros-assert_eq.tz.out | 2 +- ...thon-contracts_016-macros-assert_ge.tz.out | 2 +- ...thon-contracts_016-macros-assert_gt.tz.out | 2 +- ...thon-contracts_016-macros-assert_le.tz.out | 2 +- ...thon-contracts_016-macros-assert_lt.tz.out | 2 +- ...hon-contracts_016-macros-assert_neq.tz.out | 2 +- ...ontracts_016-macros-big_map_get_add.tz.out | 2 +- ...on-contracts_016-macros-big_map_mem.tz.out | 2 +- ...hon-contracts_016-macros-build_list.tz.out | 2 +- ...-contracts_016-macros-carn_and_cdrn.tz.out | 2 +- ...python-contracts_016-macros-compare.tz.out | 2 +- ...-contracts_016-macros-compare_bytes.tz.out | 2 +- ...ts_python-contracts_016-macros-fail.tz.out | 2 +- ...thon-contracts_016-macros-guestbook.tz.out | 2 +- ...tracts_016-macros-macro_annotations.tz.out | 2 +- ...n-contracts_016-macros-map_caddaadr.tz.out | 2 +- ...on-contracts_016-macros-max_in_list.tz.out | 2 +- ...sts_python-contracts_016-macros-min.tz.out | 2 +- ...hon-contracts_016-macros-pair_macro.tz.out | 2 +- ...n-contracts_016-macros-set_caddaadr.tz.out | 2 +- ...-contracts_016-macros-take_my_money.tz.out | 2 +- ...n-contracts_016-macros-unpair_macro.tz.out | 2 +- ...16-mini_scenarios-add_clear_tickets.tz.out | 2 +- ...s_016-mini_scenarios-authentication.tz.out | 2 +- ...-mini_scenarios-big_map_entrypoints.tz.out | 2 +- ...ts_016-mini_scenarios-big_map_magic.tz.out | 2 +- ...cts_016-mini_scenarios-big_map_read.tz.out | 2 +- ...ts_016-mini_scenarios-big_map_store.tz.out | 2 +- ...ts_016-mini_scenarios-big_map_write.tz.out | 2 +- ..._016-mini_scenarios-create_contract.tz.out | 2 +- ...ni_scenarios-create_contract_simple.tz.out | 2 +- ..._016-mini_scenarios-default_account.tz.out | 2 +- ..._scenarios-execution_order_appender.tz.out | 2 +- ...ni_scenarios-execution_order_caller.tz.out | 2 +- ...ni_scenarios-execution_order_storer.tz.out | 2 +- ...s_016-mini_scenarios-fa12_reference.tz.out | 2 +- ...016-mini_scenarios-generic_multisig.tz.out | 2 +- ...ontracts_016-mini_scenarios-groth16.tz.out | 2 +- ...tracts_016-mini_scenarios-hardlimit.tz.out | 2 +- ..._016-mini_scenarios-legacy_multisig.tz.out | 2 +- ...contracts_016-mini_scenarios-lockup.tz.out | 2 +- ...s_016-mini_scenarios-lqt_fa12.mligo.tz.out | 2 +- ...cts_016-mini_scenarios-multiple_en2.tz.out | 2 +- ..._scenarios-multiple_entrypoints_counte.out | 2 +- ...6-mini_scenarios-originate_contract.tz.out | 2 +- ...ni_scenarios-parameterized_multisig.tz.out | 2 +- ..._scenarios-receive_tickets_in_big_map..out | 2 +- ...contracts_016-mini_scenarios-replay.tz.out | 2 +- ...ni_scenarios-reveal_signed_preimage.tz.out | 2 +- ...ini_scenarios-self_address_receiver.tz.out | 2 +- ...-mini_scenarios-self_address_sender.tz.out | 2 +- ...i_scenarios-send_tickets_in_big_map.tz.out | 2 +- ...i_scenarios-ticket_builder_fungible.tz.out | 2 +- ..._scenarios-ticket_builder_non_fungible.out | 2 +- ...ni_scenarios-ticket_wallet_fungible.tz.out | 2 +- ..._scenarios-ticket_wallet_non_fungible..out | 2 +- ...16-mini_scenarios-vote_for_delegate.tz.out | 2 +- ...16-mini_scenarios-weather_insurance.tz.out | 2 +- ...n-contracts_016-mini_scenarios-xcat.tz.out | 2 +- ...tracts_016-mini_scenarios-xcat_dapp.tz.out | 2 +- ...ontracts_016-non_regression-262_bug.tz.out | 2 +- ...ontracts_016-non_regression-843_bug.tz.out | 2 +- ...6-non_regression-bad_annot_contract.tz.out | 2 +- ...acts_016-non_regression-pairk_annot.tz.out | 2 +- ...ts_python-contracts_016-opcodes-abs.tz.out | 2 +- ...ts_python-contracts_016-opcodes-add.tz.out | 2 +- ...tracts_016-opcodes-add_bls12_381_fr.tz.out | 2 +- ...tracts_016-opcodes-add_bls12_381_g1.tz.out | 2 +- ...tracts_016-opcodes-add_bls12_381_g2.tz.out | 2 +- ...cts_016-opcodes-add_delta_timestamp.tz.out | 2 +- ...cts_016-opcodes-add_timestamp_delta.tz.out | 2 +- ...ython-contracts_016-opcodes-address.tz.out | 2 +- ...s_016-opcodes-amount_after_fib_view.tz.out | 2 +- ...codes-amount_after_nonexistent_view.tz.out | 2 +- ...racts_016-opcodes-amount_after_view.tz.out | 2 +- ...ts_python-contracts_016-opcodes-and.tz.out | 2 +- ...on-contracts_016-opcodes-and_binary.tz.out | 2 +- ...hon-contracts_016-opcodes-and_bytes.tz.out | 2 +- ...contracts_016-opcodes-and_logical_1.tz.out | 2 +- ...ython-contracts_016-opcodes-balance.tz.out | 2 +- ..._016-opcodes-balance_after_fib_view.tz.out | 2 +- ...odes-balance_after_nonexistent_view.tz.out | 2 +- ...acts_016-opcodes-balance_after_view.tz.out | 2 +- ...ntracts_016-opcodes-big_map_mem_nat.tz.out | 2 +- ...acts_016-opcodes-big_map_mem_string.tz.out | 2 +- ...ntracts_016-opcodes-big_map_to_self.tz.out | 2 +- ...des-bls12_381_fr_push_bytes_not_padded.out | 2 +- ...s_016-opcodes-bls12_381_fr_push_nat.tz.out | 2 +- ...cts_016-opcodes-bls12_381_fr_to_int.tz.out | 2 +- ...s_016-opcodes-bls12_381_fr_to_mutez.tz.out | 2 +- ...acts_016-opcodes-bls12_381_fr_z_int.tz.out | 2 +- ...acts_016-opcodes-bls12_381_fr_z_nat.tz.out | 2 +- ...acts_016-opcodes-bls12_381_z_fr_int.tz.out | 2 +- ...acts_016-opcodes-bls12_381_z_fr_nat.tz.out | 2 +- ..._python-contracts_016-opcodes-bytes.tz.out | 2 +- ...-contracts_016-opcodes-bytes_of_int.tz.out | 2 +- ...-contracts_016-opcodes-bytes_of_nat.tz.out | 2 +- ...ts_python-contracts_016-opcodes-car.tz.out | 2 +- ...ts_python-contracts_016-opcodes-cdr.tz.out | 2 +- ...thon-contracts_016-opcodes-chain_id.tz.out | 2 +- ...ontracts_016-opcodes-chain_id_store.tz.out | 2 +- ...ntracts_016-opcodes-check_signature.tz.out | 2 +- ...thon-contracts_016-opcodes-comb-get.tz.out | 2 +- ...contracts_016-opcodes-comb-literals.tz.out | 2 +- ...on-contracts_016-opcodes-comb-set-2.tz.out | 2 +- ...thon-contracts_016-opcodes-comb-set.tz.out | 2 +- ...s_python-contracts_016-opcodes-comb.tz.out | 2 +- ...ython-contracts_016-opcodes-compare.tz.out | 2 +- ...tracts_016-opcodes-compare_big_type.tz.out | 2 +- ...racts_016-opcodes-compare_big_type2.tz.out | 2 +- ...n-contracts_016-opcodes-comparisons.tz.out | 2 +- ...-contracts_016-opcodes-concat_hello.tz.out | 2 +- ...acts_016-opcodes-concat_hello_bytes.tz.out | 2 +- ...n-contracts_016-opcodes-concat_list.tz.out | 2 +- ...s_python-contracts_016-opcodes-cons.tz.out | 2 +- ...-contracts_016-opcodes-contains_all.tz.out | 2 +- ...thon-contracts_016-opcodes-contract.tz.out | 2 +- ...ntracts_016-opcodes-create_contract.tz.out | 2 +- ...16-opcodes-create_contract_rootname.tz.out | 2 +- ...pcodes-create_contract_rootname_alt.tz.out | 2 +- ...6-opcodes-create_contract_with_view.tz.out | 2 +- ...ntracts_016-opcodes-diff_timestamps.tz.out | 2 +- ...python-contracts_016-opcodes-dig_eq.tz.out | 2 +- ...s_python-contracts_016-opcodes-dign.tz.out | 2 +- ...ts_python-contracts_016-opcodes-dip.tz.out | 2 +- ...s_python-contracts_016-opcodes-dipn.tz.out | 2 +- ..._python-contracts_016-opcodes-dropn.tz.out | 2 +- ...s_python-contracts_016-opcodes-dugn.tz.out | 2 +- ..._python-contracts_016-opcodes-dup-n.tz.out | 2 +- ...s_python-contracts_016-opcodes-ediv.tz.out | 2 +- ...on-contracts_016-opcodes-ediv_mutez.tz.out | 2 +- ...s_python-contracts_016-opcodes-emit.tz.out | 2 +- ...hon-contracts_016-opcodes-empty_map.tz.out | 2 +- ...n-contracts_016-opcodes-exec_concat.tz.out | 2 +- ...s_python-contracts_016-opcodes-fact.tz.out | 2 +- ..._python-contracts_016-opcodes-first.tz.out | 2 +- ..._016-opcodes-get_and_update_big_map.tz.out | 2 +- ...acts_016-opcodes-get_and_update_map.tz.out | 2 +- ...racts_016-opcodes-get_big_map_value.tz.out | 2 +- ...contracts_016-opcodes-get_map_value.tz.out | 2 +- ...16-opcodes-hash_consistency_checker.tz.out | 2 +- ...thon-contracts_016-opcodes-hash_key.tz.out | 2 +- ...n-contracts_016-opcodes-hash_string.tz.out | 2 +- ...sts_python-contracts_016-opcodes-if.tz.out | 2 +- ...ython-contracts_016-opcodes-if_some.tz.out | 2 +- ...ts_python-contracts_016-opcodes-int.tz.out | 2 +- ...hon-contracts_016-opcodes-iter_fail.tz.out | 2 +- ...python-contracts_016-opcodes-keccak.tz.out | 2 +- ...on-contracts_016-opcodes-left_right.tz.out | 2 +- ..._python-contracts_016-opcodes-level.tz.out | 2 +- ...n-contracts_016-opcodes-list_concat.tz.out | 2 +- ...racts_016-opcodes-list_concat_bytes.tz.out | 2 +- ...ython-contracts_016-opcodes-list_id.tz.out | 2 +- ...n-contracts_016-opcodes-list_id_map.tz.out | 2 +- ...hon-contracts_016-opcodes-list_iter.tz.out | 2 +- ...ontracts_016-opcodes-list_map_block.tz.out | 2 +- ...hon-contracts_016-opcodes-list_size.tz.out | 2 +- ...contracts_016-opcodes-loop_failwith.tz.out | 2 +- ...hon-contracts_016-opcodes-loop_left.tz.out | 2 +- ...acts_016-opcodes-loop_left_failwith.tz.out | 2 +- ...hon-contracts_016-opcodes-lsl_bytes.tz.out | 2 +- ...hon-contracts_016-opcodes-lsr_bytes.tz.out | 2 +- ...ython-contracts_016-opcodes-map_car.tz.out | 2 +- ...python-contracts_016-opcodes-map_id.tz.out | 2 +- ...thon-contracts_016-opcodes-map_iter.tz.out | 2 +- ...ython-contracts_016-opcodes-map_map.tz.out | 2 +- ...acts_016-opcodes-map_map_sideeffect.tz.out | 2 +- ...n-contracts_016-opcodes-map_mem_nat.tz.out | 2 +- ...ontracts_016-opcodes-map_mem_string.tz.out | 2 +- ...thon-contracts_016-opcodes-map_size.tz.out | 2 +- ..._016-opcodes-merge_comparable_pairs.tz.out | 2 +- ...ts_python-contracts_016-opcodes-mul.tz.out | 2 +- ...tracts_016-opcodes-mul_bls12_381_fr.tz.out | 2 +- ...tracts_016-opcodes-mul_bls12_381_g1.tz.out | 2 +- ...tracts_016-opcodes-mul_bls12_381_g2.tz.out | 2 +- ...-contracts_016-opcodes-mul_overflow.tz.out | 2 +- ..._python-contracts_016-opcodes-munch.tz.out | 2 +- ...s_016-opcodes-mutez_to_bls12_381_fr.tz.out | 2 +- ...ts_python-contracts_016-opcodes-neg.tz.out | 2 +- ...tracts_016-opcodes-neg_bls12_381_fr.tz.out | 2 +- ...tracts_016-opcodes-neg_bls12_381_g1.tz.out | 2 +- ...tracts_016-opcodes-neg_bls12_381_g2.tz.out | 2 +- ...s_python-contracts_016-opcodes-none.tz.out | 2 +- ...s_python-contracts_016-opcodes-noop.tz.out | 2 +- ...ts_python-contracts_016-opcodes-not.tz.out | 2 +- ...on-contracts_016-opcodes-not_binary.tz.out | 2 +- ...hon-contracts_016-opcodes-not_bytes.tz.out | 2 +- ...sts_python-contracts_016-opcodes-or.tz.out | 2 +- ...hon-contracts_016-opcodes-or_binary.tz.out | 2 +- ...thon-contracts_016-opcodes-or_bytes.tz.out | 2 +- ...racts_016-opcodes-originate_big_map.tz.out | 2 +- ...on-contracts_016-opcodes-packunpack.tz.out | 2 +- ...ontracts_016-opcodes-packunpack_rev.tz.out | 2 +- ...acts_016-opcodes-packunpack_rev_cty.tz.out | 2 +- ...ython-contracts_016-opcodes-pair_id.tz.out | 2 +- ...contracts_016-opcodes-pairing_check.tz.out | 2 +- ..._python-contracts_016-opcodes-pexec.tz.out | 2 +- ...ython-contracts_016-opcodes-pexec_2.tz.out | 2 +- ..._python-contracts_016-opcodes-proxy.tz.out | 2 +- ...ython-contracts_016-opcodes-ret_int.tz.out | 2 +- ...ython-contracts_016-opcodes-reverse.tz.out | 2 +- ...-contracts_016-opcodes-reverse_loop.tz.out | 2 +- ...cts_016-opcodes-sapling_empty_state.tz.out | 2 +- ...s_python-contracts_016-opcodes-self.tz.out | 2 +- ...-contracts_016-opcodes-self_address.tz.out | 2 +- ...opcodes-self_address_after_fib_view.tz.out | 2 +- ...des-self_address_after_nonexistent_vie.out | 2 +- ...016-opcodes-self_address_after_view.tz.out | 2 +- ...cts_016-opcodes-self_after_fib_view.tz.out | 2 +- ...opcodes-self_after_nonexistent_view.tz.out | 2 +- ...ntracts_016-opcodes-self_after_view.tz.out | 2 +- ...pcodes-self_with_default_entrypoint.tz.out | 2 +- ...ts_016-opcodes-self_with_entrypoint.tz.out | 2 +- ...python-contracts_016-opcodes-sender.tz.out | 2 +- ...s_016-opcodes-sender_after_fib_view.tz.out | 2 +- ...codes-sender_after_nonexistent_view.tz.out | 2 +- ...racts_016-opcodes-sender_after_view.tz.out | 2 +- ...ython-contracts_016-opcodes-set_car.tz.out | 2 +- ...ython-contracts_016-opcodes-set_cdr.tz.out | 2 +- ...-contracts_016-opcodes-set_delegate.tz.out | 2 +- ...python-contracts_016-opcodes-set_id.tz.out | 2 +- ...thon-contracts_016-opcodes-set_iter.tz.out | 2 +- ...on-contracts_016-opcodes-set_member.tz.out | 2 +- ...thon-contracts_016-opcodes-set_size.tz.out | 2 +- ...s_python-contracts_016-opcodes-sets.tz.out | 2 +- ...s_python-contracts_016-opcodes-sha3.tz.out | 2 +- ...python-contracts_016-opcodes-shifts.tz.out | 2 +- ..._python-contracts_016-opcodes-slice.tz.out | 2 +- ...n-contracts_016-opcodes-slice_bytes.tz.out | 2 +- ...python-contracts_016-opcodes-slices.tz.out | 2 +- ...python-contracts_016-opcodes-source.tz.out | 2 +- ...n-contracts_016-opcodes-split_bytes.tz.out | 2 +- ...-contracts_016-opcodes-split_string.tz.out | 2 +- ...acts_016-opcodes-store_bls12_381_fr.tz.out | 2 +- ...acts_016-opcodes-store_bls12_381_g1.tz.out | 2 +- ...acts_016-opcodes-store_bls12_381_g2.tz.out | 2 +- ...n-contracts_016-opcodes-store_input.tz.out | 2 +- ...hon-contracts_016-opcodes-store_now.tz.out | 2 +- ...python-contracts_016-opcodes-str_id.tz.out | 2 +- ...cts_016-opcodes-sub_timestamp_delta.tz.out | 2 +- ...python-contracts_016-opcodes-subset.tz.out | 2 +- ...n-contracts_016-opcodes-tez_add_sub.tz.out | 2 +- ...on-contracts_016-opcodes-ticket_bad.tz.out | 2 +- ...tracts_016-opcodes-ticket_big_store.tz.out | 2 +- ...n-contracts_016-opcodes-ticket_join.tz.out | 2 +- ...n-contracts_016-opcodes-ticket_read.tz.out | 2 +- ...-contracts_016-opcodes-ticket_split.tz.out | 2 +- ...ontracts_016-opcodes-ticket_store-2.tz.out | 2 +- ...-contracts_016-opcodes-ticket_store.tz.out | 2 +- ...on-contracts_016-opcodes-ticketer-2.tz.out | 2 +- ...thon-contracts_016-opcodes-ticketer.tz.out | 2 +- ...ntracts_016-opcodes-transfer_amount.tz.out | 2 +- ...ntracts_016-opcodes-transfer_tokens.tz.out | 2 +- ...python-contracts_016-opcodes-uncomb.tz.out | 2 +- ...python-contracts_016-opcodes-unpair.tz.out | 2 +- ...des-unpair_field_annotation_mismatch.t.out | 2 +- ...ontracts_016-opcodes-update_big_map.tz.out | 2 +- ...hon-contracts_016-opcodes-utxo_read.tz.out | 2 +- ..._python-contracts_016-opcodes-utxor.tz.out | 2 +- ...thon-contracts_016-opcodes-view_fib.tz.out | 2 +- ...s_016-opcodes-view_mutual_recursion.tz.out | 2 +- ...n-contracts_016-opcodes-view_op_add.tz.out | 2 +- ...tracts_016-opcodes-view_op_constant.tz.out | 2 +- ...on-contracts_016-opcodes-view_op_id.tz.out | 2 +- ...16-opcodes-view_op_nonexistent_addr.tz.out | 2 +- ...16-opcodes-view_op_nonexistent_func.tz.out | 2 +- ...-opcodes-view_op_test_step_contants.tz.out | 2 +- ...des-view_op_toplevel_inconsistent_inpu.out | 2 +- ...des-view_op_toplevel_inconsistent_outp.out | 2 +- ...thon-contracts_016-opcodes-view_rec.tz.out | 2 +- ...racts_016-opcodes-view_toplevel_lib.tz.out | 2 +- ...-contracts_016-opcodes-voting_power.tz.out | 2 +- ...ts_python-contracts_016-opcodes-xor.tz.out | 2 +- ...hon-contracts_016-opcodes-xor_bytes.tz.out | 2 +- 668 files changed, 726 insertions(+), 726 deletions(-) diff --git a/docs/Makefile b/docs/Makefile index b88746a64e09..4f20f44a1906 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -20,7 +20,7 @@ PROTOCOLS = $(NAMED_PROTOS) alpha # The following variables names are lowercase, so their names can be computed # from the names of the corresponding protocol directories lima_long = PtLimaPtLMwfNinJi9rCfDPWea8dFgTZ1MeJ9f1m2SRic6ayiwW -mumbai_long = PtMumbaiiFFEGbew1rRjzSPyzRbA51Tm3RVZL5suHPxSZYDhCEc +mumbai_long = PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1 alpha_long = ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK lima_short = PtLimaPt diff --git a/docs/doc_gen/rpc_doc.ml b/docs/doc_gen/rpc_doc.ml index 6c10d89e5beb..c40116a10f26 100644 --- a/docs/doc_gen/rpc_doc.ml +++ b/docs/doc_gen/rpc_doc.ml @@ -40,7 +40,7 @@ let protocols = ( "mumbai", "Mumbai", Some "/include/rpc_introduction.rst.inc", - "PtMumbaiiFFEGbew1rRjzSPyzRbA51Tm3RVZL5suHPxSZYDhCEc" ); + "PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1" ); ] let pp_name ppf = function diff --git a/docs/mumbai/rpc.rst b/docs/mumbai/rpc.rst index 7a5f8c6880f4..f2081d03d92e 100644 --- a/docs/mumbai/rpc.rst +++ b/docs/mumbai/rpc.rst @@ -319,7 +319,7 @@ Protocol Mumbai
-    { "protocol": "PtMumbaiiFFEGbew1rRjzSPyzRbA51Tm3RVZL5suHPxSZYDhCEc",
+    { "protocol": "PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1",
       "chain_id": $Chain_id,
       "hash": $block_hash,
       "header": $raw_block_header,
@@ -2854,8 +2854,8 @@ Protocol Mumbai
       /* A block identifier (Base58Check-encoded) */
       $unistring
     $block_header_metadata:
-      { "protocol": "PtMumbaiiFFEGbew1rRjzSPyzRbA51Tm3RVZL5suHPxSZYDhCEc",
-        "next_protocol": "PtMumbaiiFFEGbew1rRjzSPyzRbA51Tm3RVZL5suHPxSZYDhCEc",
+      { "protocol": "PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1",
+        "next_protocol": "PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1",
         "test_chain_status": $test_chain_status,
         "max_operations_ttl": integer ∈ [-2^30, 2^30],
         "max_operation_data_length": integer ∈ [-2^30, 2^30],
@@ -2963,7 +2963,7 @@ Protocol Mumbai
            "annots"?: [ $unistring ... ] }
     $operation:
       { /* An operation's shell header. */
-        "protocol": "PtMumbaiiFFEGbew1rRjzSPyzRbA51Tm3RVZL5suHPxSZYDhCEc",
+        "protocol": "PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1",
         "chain_id": $Chain_id,
         "hash": $Operation_hash,
         "branch": $block_hash,
@@ -2971,14 +2971,14 @@ Protocol Mumbai
         "signature"?: $Signature.V1,
         "metadata": "too large" }
       || { /* An operation's shell header. */
-           "protocol": "PtMumbaiiFFEGbew1rRjzSPyzRbA51Tm3RVZL5suHPxSZYDhCEc",
+           "protocol": "PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1",
            "chain_id": $Chain_id,
            "hash": $Operation_hash,
            "branch": $block_hash,
            "contents": [ $016-PtMumbai.operation.alpha.contents ... ],
            "signature"?: $Signature.V1 }
       || { /* An operation's shell header. */
-           "protocol": "PtMumbaiiFFEGbew1rRjzSPyzRbA51Tm3RVZL5suHPxSZYDhCEc",
+           "protocol": "PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1",
            "chain_id": $Chain_id,
            "hash": $Operation_hash,
            "branch": $block_hash,
@@ -2986,7 +2986,7 @@ Protocol Mumbai
              [ $016-PtMumbai.operation.alpha.operation_contents_and_result ... ],
            "signature"?: $Signature.V1 }
       || { /* An operation's shell header. */
-           "protocol": "PtMumbaiiFFEGbew1rRjzSPyzRbA51Tm3RVZL5suHPxSZYDhCEc",
+           "protocol": "PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1",
            "chain_id": $Chain_id,
            "hash": $Operation_hash,
            "branch": $block_hash,
@@ -23793,7 +23793,7 @@ Protocol Mumbai
     { /* Shell header
          Block header's shell-related content. It contains information such as
          the block level, its predecessor and timestamp. */
-      "protocol": "PtMumbaiiFFEGbew1rRjzSPyzRbA51Tm3RVZL5suHPxSZYDhCEc",
+      "protocol": "PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1",
       "chain_id": $Chain_id,
       "hash": $block_hash,
       "level": integer ∈ [-2^31-1, 2^31],
@@ -23923,7 +23923,7 @@ Protocol Mumbai
             
-    { "protocol": "PtMumbaiiFFEGbew1rRjzSPyzRbA51Tm3RVZL5suHPxSZYDhCEc",
+    { "protocol": "PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1",
       "payload_hash": $value_hash,
       "payload_round": integer ∈ [-2^31-1, 2^31],
       "proof_of_work_nonce": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
@@ -24312,7 +24312,7 @@ Protocol Mumbai
   
     { "protocol_data":
-        { "protocol": "PtMumbaiiFFEGbew1rRjzSPyzRbA51Tm3RVZL5suHPxSZYDhCEc",
+        { "protocol": "PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1",
           "payload_hash": $value_hash,
           "payload_round": integer ∈ [-2^31-1, 2^31],
           "proof_of_work_nonce": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
@@ -25077,7 +25077,7 @@ Protocol Mumbai
            "annots"?: [ $unistring ... ] }
     $next_operation:
       /* An operation's shell header. */
-      { "protocol": "PtMumbaiiFFEGbew1rRjzSPyzRbA51Tm3RVZL5suHPxSZYDhCEc",
+      { "protocol": "PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1",
         "branch": $block_hash,
         "contents": [ $016-PtMumbai.operation.alpha.contents ... ],
         "signature"?: $Signature.V1 }
@@ -28687,7 +28687,7 @@ Protocol Mumbai
            "annots"?: [ $unistring ... ] }
     $next_operation:
       /* An operation's shell header. */
-      { "protocol": "PtMumbaiiFFEGbew1rRjzSPyzRbA51Tm3RVZL5suHPxSZYDhCEc",
+      { "protocol": "PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1",
         "branch": $block_hash,
         "contents": [ $016-PtMumbai.operation.alpha.contents ... ],
         "signature"?: $Signature.V1 }
@@ -39961,8 +39961,8 @@ Protocol Mumbai