diff --git a/src/lib_context/disk/context.ml b/src/lib_context/disk/context.ml index 30b026d9e7e88711a5aaf236c2ff49f339fd8afe..c0c0429270a5479a6708c119af9e119a442910f6 100644 --- a/src/lib_context/disk/context.ml +++ b/src/lib_context/disk/context.ml @@ -545,7 +545,7 @@ module Make (Encoding : module type of Tezos_context_encoding.Context) = struct ~uniq:`False ~contents tree - (Tezos_context_memory.make_empty_tree ()) + (Tezos_context_memory.Context.make_empty_tree ()) let to_memory_tree (ctxt : t) (key : string list) : Tezos_context_memory.Context.tree option Lwt.t = diff --git a/src/lib_context/memory/test/test.ml b/src/lib_context/memory/test/test.ml index 7d73860e28e5e225108523de417951ffefe885f5..e3fe33fc438164c1cbe63db8c95b5fdcc2fc0f32 100644 --- a/src/lib_context/memory/test/test.ml +++ b/src/lib_context/memory/test/test.ml @@ -66,7 +66,8 @@ end module M = struct include Tezos_context_memory.Context - let make_context () = Lwt.return (Tezos_context_memory.make_empty_context ()) + let make_context () = + Lwt.return (Tezos_context_memory.Context.make_empty_context ()) end module Make (A : sig diff --git a/src/lib_context/memory/tezos_context_memory.ml b/src/lib_context/memory/tezos_context_memory.ml index d3d4c77b29ca97f1a9bbaf23baaf8fd2da0015cf..1f24ac9bd76cd3fd1f9715a95e72bdd60d823883 100644 --- a/src/lib_context/memory/tezos_context_memory.ml +++ b/src/lib_context/memory/tezos_context_memory.ml @@ -25,25 +25,29 @@ (** See [src/lib_context/tezos_context.ml] for some information. *) -(** Variant of [Tezos_context.Context_binary] purely in-memory. *) -module Context_binary = Context.Make (Tezos_context_encoding.Context_binary) +module Make (Encoding : module type of Tezos_context_encoding.Context) = struct + include Context.Make (Encoding) -(** Variant of [Tezos_context.Context] purely in-memory. *) -module Context = Context.Make (Tezos_context_encoding.Context) + let make_empty_context ?(root = "/tmp") () = + let open Lwt_syntax in + let context_promise = + let+ index = init root in + empty index + in + match Lwt.state context_promise with + | Lwt.Return result -> result + | Lwt.Fail exn -> raise exn + | Lwt.Sleep -> + (* The in-memory context should never block *) + assert false -let make_empty_context ?(root = "/tmp") () = - let open Lwt_syntax in - let context_promise = - let+ index = Context.init root in - Context.empty index - in - match Lwt.state context_promise with - | Lwt.Return result -> result - | Lwt.Fail exn -> raise exn - | Lwt.Sleep -> - (* The in-memory context should never block *) - assert false + let make_empty_tree = + let dummy_context = make_empty_context ~root:"dummy" () in + fun () -> Tree.empty dummy_context +end -let make_empty_tree = - let dummy_context = make_empty_context ~root:"dummy" () in - fun () -> Context.Tree.empty dummy_context +(** Variant of [Tezos_context.Context_binary] purely in-memory. *) +module Context_binary = Make (Tezos_context_encoding.Context_binary) + +(** Variant of [Tezos_context.Context] purely in-memory. *) +module Context = Make (Tezos_context_encoding.Context) diff --git a/src/lib_protocol_environment/memory_context.ml b/src/lib_protocol_environment/memory_context.ml index 7401b463bd88507226a54f21dd83dc747c0041d3..2b723f1bbd629230489aaee81397b4a9da919f63 100644 --- a/src/lib_protocol_environment/memory_context.ml +++ b/src/lib_protocol_environment/memory_context.ml @@ -52,7 +52,7 @@ let project : Context.t -> t = let inject : t -> Context.t = fun ctxt -> Context.make ~ops ~ctxt ~kind:Context ~equality_witness ~impl_name -let empty = inject (Tezos_context_memory.make_empty_context ()) +let empty = inject (Tezos_context_memory.Context.make_empty_context ()) let encoding : Context.t Data_encoding.t = let open Data_encoding in diff --git a/src/lib_protocol_environment/proxy_context.ml b/src/lib_protocol_environment/proxy_context.ml index 8e6aa836e7b1e01b40a7f0afa05abcc4c9bf6094..6324e992a4bdbac9aafed0f58f4bd17913b0f241 100644 --- a/src/lib_protocol_environment/proxy_context.ml +++ b/src/lib_protocol_environment/proxy_context.ml @@ -36,7 +36,7 @@ module M = struct behave like [Memory_context]. *) type t = {proxy : Proxy_delegate.t option; local : Local.t} - let empty = Tezos_context_memory.make_empty_tree () + let empty = Tezos_context_memory.Context.make_empty_tree () end module C = struct @@ -401,7 +401,7 @@ include Environment_context.Register (C) let proxy_impl_name = "proxy" let empty proxy = - let local = Tezos_context_memory.make_empty_context () in + let local = Tezos_context_memory.Context.make_empty_context () in let ctxt = M.{proxy; local} in Context.make ~ops diff --git a/src/lib_protocol_environment/test_shell_context/test_proxy_context.ml b/src/lib_protocol_environment/test_shell_context/test_proxy_context.ml index 8f29a28e713eaba2b191cf2bce3716b25d7a5ede..98323bc4f0212eb6d3450b07170ad2d92f69e0ce 100644 --- a/src/lib_protocol_environment/test_shell_context/test_proxy_context.ml +++ b/src/lib_protocol_environment/test_shell_context/test_proxy_context.ml @@ -56,7 +56,7 @@ let key_to_string : String.t list -> String.t = String.concat ";" (* Initialize the Context before starting the tests *) let init_contexts (f : Context.t -> unit Lwt.t) _ () : 'a Lwt.t = let open Lwt_syntax in - let ctxt = Tezos_context_memory.make_empty_context () in + let ctxt = Tezos_context_memory.Context.make_empty_context () in let* ctxt = create_block ctxt in let proxy : Context.t = Tezos_protocol_environment.Proxy_context.empty diff --git a/src/lib_proxy/light_core.ml b/src/lib_proxy/light_core.ml index 9e1e6e9b150e782bcdf9bd081de8a548866245da..502765cadb3ae2725d0efb5e50ee20b4d98c8c6c 100644 --- a/src/lib_proxy/light_core.ml +++ b/src/lib_proxy/light_core.ml @@ -73,7 +73,7 @@ let get_core (module Light_proto : Light_proto.PROTO_RPCS) let open Lwt_syntax in let+ repo = Store.Tree.make_repo () in let root = - Store.Tree.empty (Tezos_context_memory.make_empty_context ()) + Store.Tree.empty (Tezos_context_memory.Context.make_empty_context ()) in {repo; root} diff --git a/src/lib_proxy/proxy_getter.ml b/src/lib_proxy/proxy_getter.ml index e23914b5ce7e6c25563605156b281792817ba923..e3745c61c1cf6bb60dad9d30196ac2ee706c428e 100644 --- a/src/lib_proxy/proxy_getter.ml +++ b/src/lib_proxy/proxy_getter.ml @@ -106,7 +106,7 @@ let rec raw_context_to_tree (raw : Proof.raw_context) : Local.tree option Lwt.t String.Map.bindings map |> List.fold_left_s add_to_tree - (Tezos_context_memory.make_empty_tree ()) + (Tezos_context_memory.Context.make_empty_tree ()) in if Local.Tree.is_empty dir then return_none else return_some dir @@ -170,7 +170,8 @@ struct type key = Local.key - let empty = Local.Tree.empty (Tezos_context_memory.make_empty_context ()) + let empty = + Local.Tree.empty (Tezos_context_memory.Context.make_empty_context ()) let get = Local.Tree.find_tree diff --git a/src/lib_proxy/test_helpers/shell_services/test_helpers_shell_services.ml b/src/lib_proxy/test_helpers/shell_services/test_helpers_shell_services.ml index 93a955294377ae14ddbe80055d5e266a4cba48c2..48563c7e7ec37ce1c2599369896679f7f7f2cb31 100644 --- a/src/lib_proxy/test_helpers/shell_services/test_helpers_shell_services.ml +++ b/src/lib_proxy/test_helpers/shell_services/test_helpers_shell_services.ml @@ -53,7 +53,7 @@ let print_raw_context = Format.asprintf "%a" Proof.pp_raw_context module Store = Tezos_context_memory.Context -let empty = Tezos_context_memory.make_empty_context () +let empty = Tezos_context_memory.Context.make_empty_context () (* Stolen from src/lib_proxy/test/test_fuzzing_light.ml *) let irmin_tree_gen = diff --git a/src/proto_015_PtLimaPt/lib_client/client_proto_rollups.ml b/src/proto_015_PtLimaPt/lib_client/client_proto_rollups.ml index f41391a9c48c2ae19edc0f15c846f2eda7ebe03f..055d068c8be8c4a9124860d3d0e0c7996edc52a1 100644 --- a/src/proto_015_PtLimaPt/lib_client/client_proto_rollups.ml +++ b/src/proto_015_PtLimaPt/lib_client/client_proto_rollups.ml @@ -152,7 +152,7 @@ module ScRollup = struct let aux = function | Sc_rollup.Kind.Example_arith -> let open Lwt_result_syntax in - let context = Tezos_context_memory.make_empty_context () in + let context = Tezos_context_memory.Context.make_empty_context () in let* proof = Arith_pvm.produce_origination_proof context boot_sector in @@ -165,7 +165,7 @@ module ScRollup = struct end)) | Sc_rollup.Kind.Wasm_2_0_0 -> let open Lwt_result_syntax in - let context = Tezos_context_memory.make_empty_context () in + let context = Tezos_context_memory.Context.make_empty_context () in let* proof = Wasm_pvm.produce_origination_proof context boot_sector in return (Sc_rollup.Wasm_2_0_0_pvm_with_proof diff --git a/src/proto_016_PtMumbai/lib_protocol/test/helpers/sc_rollup_helpers.ml b/src/proto_016_PtMumbai/lib_protocol/test/helpers/sc_rollup_helpers.ml index 9831d1fafba0087df4eadb8cb19d385e5197da5f..5ce360934fc68213190b1aabb85a9f4b92dfe3c3 100644 --- a/src/proto_016_PtMumbai/lib_protocol/test/helpers/sc_rollup_helpers.ml +++ b/src/proto_016_PtMumbai/lib_protocol/test/helpers/sc_rollup_helpers.ml @@ -167,7 +167,7 @@ let origination_proof ~boot_sector = function about the arity of its trees. *) let wrong_arith_origination_proof ~alter_binary_bit ~boot_sector = let open Lwt_syntax in - let context = Tezos_context_memory.make_empty_context () in + let context = Tezos_context_memory.Context.make_empty_context () in let+ proof = Wrong_arith_pvm.produce_origination_proof context boot_sector in let proof = WithExceptions.Result.get_ok ~loc:__LOC__ proof in let proof = diff --git a/src/proto_017_PtNairob/lib_protocol/test/helpers/sc_rollup_helpers.ml b/src/proto_017_PtNairob/lib_protocol/test/helpers/sc_rollup_helpers.ml index 401d5dfe7837cf07960eb693a29e7002dd3b919c..71123093c6bdaa644eeaad608d6bc2fd0bde3e2e 100644 --- a/src/proto_017_PtNairob/lib_protocol/test/helpers/sc_rollup_helpers.ml +++ b/src/proto_017_PtNairob/lib_protocol/test/helpers/sc_rollup_helpers.ml @@ -167,7 +167,7 @@ let compute_origination_proof ~boot_sector = function about the arity of its trees. *) let wrong_arith_origination_proof ~alter_binary_bit ~boot_sector = let open Lwt_syntax in - let context = Tezos_context_memory.make_empty_context () in + let context = Tezos_context_memory.Context.make_empty_context () in let+ proof = Wrong_arith_pvm.produce_origination_proof context boot_sector in let proof = WithExceptions.Result.get_ok ~loc:__LOC__ proof in let proof = diff --git a/src/proto_alpha/lib_protocol/test/helpers/sc_rollup_helpers.ml b/src/proto_alpha/lib_protocol/test/helpers/sc_rollup_helpers.ml index 401d5dfe7837cf07960eb693a29e7002dd3b919c..c36c33eb5abe70e03e8a3c7da5f5396e371c8d81 100644 --- a/src/proto_alpha/lib_protocol/test/helpers/sc_rollup_helpers.ml +++ b/src/proto_alpha/lib_protocol/test/helpers/sc_rollup_helpers.ml @@ -122,26 +122,9 @@ module Wasm_pvm : Tezos_context_memory.Context.Proof.t = Sc_rollup.Wasm_2_0_0PVM.Make (Environment.Wasm_2_0_0.Make) (In_memory_context) -(* TODO: https://gitlab.com/tezos/tezos/-/issues/4386 - Extracted and adapted from {!Tezos_context_memory}. *) -let make_empty_context ?(root = "/tmp") () = - let open Lwt_syntax in - let context_promise = - let+ index = Tezos_context_memory.Context_binary.init root in - Tezos_context_memory.Context_binary.empty index - in - match Lwt.state context_promise with - | Lwt.Return result -> result - | Lwt.Fail exn -> raise exn - | Lwt.Sleep -> - (* The in-memory context should never block *) - assert false - -(* TODO: https://gitlab.com/tezos/tezos/-/issues/4386 - Extracted and adapted from {!Tezos_context_memory}. *) -let make_empty_tree = - let dummy_context = make_empty_context ~root:"dummy" () in - fun () -> Tezos_context_memory.Context_binary.Tree.empty dummy_context +let make_empty_context = Tezos_context_memory.Context_binary.make_empty_context + +let make_empty_tree = Tezos_context_memory.Context_binary.make_empty_tree let compute_origination_proof ~boot_sector = function | Sc_rollup.Kind.Example_arith -> @@ -167,7 +150,7 @@ let compute_origination_proof ~boot_sector = function about the arity of its trees. *) let wrong_arith_origination_proof ~alter_binary_bit ~boot_sector = let open Lwt_syntax in - let context = Tezos_context_memory.make_empty_context () in + let context = Tezos_context_memory.Context.make_empty_context () in let+ proof = Wrong_arith_pvm.produce_origination_proof context boot_sector in let proof = WithExceptions.Result.get_ok ~loc:__LOC__ proof in let proof = diff --git a/src/proto_alpha/lib_sc_rollup/context_helpers.ml b/src/proto_alpha/lib_sc_rollup/context_helpers.ml index 122bb2ca52fdb9dcaca05d49ff7276bb4c20d28c..2ab44f26d043bd2b8a6555207e4353249d3af583 100644 --- a/src/proto_alpha/lib_sc_rollup/context_helpers.ml +++ b/src/proto_alpha/lib_sc_rollup/context_helpers.ml @@ -73,18 +73,6 @@ module In_memory = struct Tezos_context_merkle_proof_encoding.Merkle_proof_encoding.V2.Tree2 .tree_proof_encoding - (* TODO: https://gitlab.com/tezos/tezos/-/issues/4386 - Extracted and adapted from {!Tezos_context_memory}. *) - let make_empty_context ?(root = "/tmp") () = - let open Lwt_syntax in - let context_promise = - let+ index = Tezos_context_memory.Context_binary.init root in - Tezos_context_memory.Context_binary.empty index - in - match Lwt.state context_promise with - | Lwt.Return result -> result - | Lwt.Fail exn -> raise exn - | Lwt.Sleep -> - (* The in-memory context should never block *) - assert false + let make_empty_context = + Tezos_context_memory.Context_binary.make_empty_context end