diff --git a/src/proto_alpha/bin_sc_rollup_node/context.ml b/src/proto_alpha/bin_sc_rollup_node/context.ml index d1093b01c8b1eb7ccc30406af260fabb87b9e561..d4ff0301ba5143104bbea8d979122a5c0324e83f 100644 --- a/src/proto_alpha/bin_sc_rollup_node/context.ml +++ b/src/proto_alpha/bin_sc_rollup_node/context.ml @@ -175,6 +175,7 @@ end module Inbox = struct include Sc_rollup.Inbox + module Message = Sc_rollup.Inbox_message include Sc_rollup.Inbox.Make_hashing_scheme (struct include diff --git a/src/proto_alpha/bin_sc_rollup_node/context.mli b/src/proto_alpha/bin_sc_rollup_node/context.mli index ae3cd8e94fd59b0d77a3306ce9d6581272ad2622..5e9aa163dd268185f39807fe0860430f8309a285 100644 --- a/src/proto_alpha/bin_sc_rollup_node/context.mli +++ b/src/proto_alpha/bin_sc_rollup_node/context.mli @@ -146,7 +146,7 @@ end module Inbox : sig type t = Sc_rollup.Inbox.t - module Message : module type of Sc_rollup.Inbox.Message + module Message : module type of Sc_rollup.Inbox_message val pp : Format.formatter -> t -> unit diff --git a/src/proto_alpha/bin_sc_rollup_node/inbox.ml b/src/proto_alpha/bin_sc_rollup_node/inbox.ml index 65eb6bd66be222dbaef9abd74462e59a3a82fa8d..31f3f208cfe86070922bf46cd70d495bc69f98d5 100644 --- a/src/proto_alpha/bin_sc_rollup_node/inbox.ml +++ b/src/proto_alpha/bin_sc_rollup_node/inbox.ml @@ -114,7 +114,7 @@ let get_messages Node_context.{l1_ctxt; rollup_address; _} head = when Sc_rollup.Address.(rollup = rollup_address) -> let messages = List.map - (fun message -> Sc_rollup.Inbox.Message.External message) + (fun message -> Sc_rollup.Inbox_message.External message) messages in List.rev_append messages accu @@ -137,8 +137,8 @@ let get_messages Node_context.{l1_ctxt; rollup_address; _} head = let+ payload = Environment.wrap_tzresult @@ Script_repr.force_decode parameters in - let message = Sc_rollup.Inbox.Message.{payload; sender; source} in - Sc_rollup.Inbox.Message.Internal message :: accu + let message = Sc_rollup.Inbox_message.{payload; sender; source} in + Sc_rollup.Inbox_message.Internal message :: accu | _ -> return accu in let*? messages = @@ -194,7 +194,7 @@ let process_head node_ctxt Layer1.(Head {level; hash = head_hash} as head) = lift @@ let*? level = Raw_level.of_int32 level in let*? messages = - List.map_e Sc_rollup.Inbox.Message.serialize messages + List.map_e Sc_rollup.Inbox_message.serialize messages in if messages = [] then return (history, inbox, ctxt) else diff --git a/src/proto_alpha/bin_sc_rollup_node/interpreter.ml b/src/proto_alpha/bin_sc_rollup_node/interpreter.ml index 6ebad14c0cb80f7022d7e8dd77663c529a3a5dc4..76e058a80523e2faac086888d89c810494f24430 100644 --- a/src/proto_alpha/bin_sc_rollup_node/interpreter.ml +++ b/src/proto_alpha/bin_sc_rollup_node/interpreter.ml @@ -106,7 +106,7 @@ module Make (PVM : Pvm.S) : S with module PVM = PVM = struct (** [mutate input] corrupts the payload of [input] for testing purposes. *) let mutate input = - let payload = Inbox.Message.unsafe_of_string "0xC4C4" in + let payload = Sc_rollup.Inbox_message.unsafe_of_string "0xC4C4" in {input with Sc_rollup.payload} (** [feed_input level message_index ~fuel ~failing_ticks state @@ -163,7 +163,7 @@ module Make (PVM : Pvm.S) : S with module PVM = PVM = struct List.fold_left_i_es (fun message_counter (state, fuel) message -> let*? payload = - Sc_rollup.Inbox.Message.( + Sc_rollup.Inbox_message.( message |> serialize |> Environment.wrap_tzresult) in let input = diff --git a/src/proto_alpha/bin_sc_rollup_node/store.ml b/src/proto_alpha/bin_sc_rollup_node/store.ml index 2aab02f4ac21e8fa7b49fe8298d3b1c0bfb20992..8670a2dfe964e9006f2dc5a4c6e315b580aa9792 100644 --- a/src/proto_alpha/bin_sc_rollup_node/store.ml +++ b/src/proto_alpha/bin_sc_rollup_node/store.ml @@ -293,10 +293,10 @@ module Messages = Make_append_only_map (struct let string_of_key = Block_hash.to_b58check - type value = Sc_rollup.Inbox.Message.t list + type value = Sc_rollup.Inbox_message.t list let value_encoding = - Data_encoding.(list @@ dynamic_size Sc_rollup.Inbox.Message.encoding) + Data_encoding.(list @@ dynamic_size Sc_rollup.Inbox_message.encoding) end) (** Inbox state for each block *) diff --git a/src/proto_alpha/lib_protocol/alpha_context.ml b/src/proto_alpha/lib_protocol/alpha_context.ml index 43d36fd849f9991200c281e2d0beec2574367658..92decb272643ab93e20339653d7bb7419ba11163 100644 --- a/src/proto_alpha/lib_protocol/alpha_context.ml +++ b/src/proto_alpha/lib_protocol/alpha_context.ml @@ -59,11 +59,11 @@ module Sc_rollup = struct include Sc_rollup_PVM_sig module ArithPVM = Sc_rollup_arith module Wasm_2_0_0PVM = Sc_rollup_wasm.V2_0_0 + module Inbox_message = Sc_rollup_inbox_message_repr module Inbox = struct include Sc_rollup_inbox_repr include Sc_rollup_inbox_storage - module Message = Sc_rollup_inbox_message_repr module Internal_for_tests = struct include Sc_rollup_inbox_repr.Internal_for_tests diff --git a/src/proto_alpha/lib_protocol/alpha_context.mli b/src/proto_alpha/lib_protocol/alpha_context.mli index 988d6ad409905fe30f89e87bb5320c27e669e39d..48b4e04fb96b8c67c620b6bdfa615dfd05d076ce 100644 --- a/src/proto_alpha/lib_protocol/alpha_context.mli +++ b/src/proto_alpha/lib_protocol/alpha_context.mli @@ -2917,29 +2917,48 @@ module Sc_rollup : sig val hash_string : unreachable -> t end - module Inbox : sig - type t + (** See {!Sc_rollup_inbox_message_repr}. *) + module Inbox_message : sig + type internal_inbox_message = { + payload : Script.expr; + sender : Contract_hash.t; + source : public_key_hash; + } - (** See {!Sc_rollup_inbox_message_repr}. *) - module Message : sig - type internal_inbox_message = { - payload : Script.expr; - sender : Contract_hash.t; - source : public_key_hash; - } + type t = Internal of internal_inbox_message | External of string - type t = Internal of internal_inbox_message | External of string + type serialized = private string - type serialized = private string + val encoding : t Data_encoding.t - val encoding : t Data_encoding.t + val unsafe_of_string : string -> serialized - val unsafe_of_string : string -> serialized + val serialize : t -> serialized tzresult - val serialize : t -> serialized tzresult + val deserialize : serialized -> t tzresult + end - val deserialize : serialized -> t tzresult - end + type input = { + inbox_level : Raw_level.t; + message_counter : Z.t; + payload : Inbox_message.serialized; + } + + val input_equal : input -> input -> bool + + val input_encoding : input Data_encoding.t + + type input_request = + | No_input_required + | Initial + | First_after of Raw_level.t * Z.t + + val input_request_encoding : input_request Data_encoding.t + + val input_request_equal : input_request -> input_request -> bool + + module Inbox : sig + type t val pp : Format.formatter -> t -> unit @@ -2985,7 +3004,7 @@ module Sc_rollup : sig History.t -> t -> Raw_level.t -> - Message.serialized list -> + Inbox_message.serialized list -> tree option -> (tree * History.t * t) tzresult Lwt.t @@ -2993,12 +3012,12 @@ module Sc_rollup : sig inbox_context -> t -> Raw_level.t -> - Message.serialized list -> + Inbox_message.serialized list -> tree option -> (tree * t) tzresult Lwt.t val get_message_payload : - tree -> Z.t -> Sc_rollup_inbox_message_repr.serialized option Lwt.t + tree -> Z.t -> Inbox_message.serialized option Lwt.t val form_history_proof : inbox_context -> @@ -3032,18 +3051,17 @@ module Sc_rollup : sig Raw_level.t * Z.t -> history_proof -> proof -> - Sc_rollup_PVM_sig.input option tzresult Lwt.t + input option tzresult Lwt.t val produce_proof : inbox_context -> History.t -> history_proof -> Raw_level.t * Z.t -> - (proof * Sc_rollup_PVM_sig.input option) tzresult Lwt.t + (proof * input option) tzresult Lwt.t val empty : inbox_context -> Sc_rollup_repr.t -> Raw_level.t -> t Lwt.t - (*xx*) module Internal_for_tests : sig val eq_tree : tree -> tree -> bool @@ -3105,25 +3123,6 @@ module Sc_rollup : sig val inbox : context -> rollup -> (t * context) tzresult Lwt.t end - type input = { - inbox_level : Raw_level.t; - message_counter : Z.t; - payload : Inbox.Message.serialized; - } - - val input_equal : input -> input -> bool - - val input_encoding : input Data_encoding.t - - type input_request = - | No_input_required - | Initial - | First_after of Raw_level.t * Z.t - - val input_request_encoding : input_request Data_encoding.t - - val input_request_equal : input_request -> input_request -> bool - module Outbox : sig (** See {!Sc_rollup_outbox_message_repr}. *) module Message : sig @@ -3457,7 +3456,7 @@ module Sc_rollup : sig Raw_level.t -> pvm_name:string -> t -> - (bool * Sc_rollup_PVM_sig.input option) tzresult Lwt.t + (bool * input option) tzresult Lwt.t val produce : (module PVM_with_context_and_state) -> Raw_level.t -> t tzresult Lwt.t diff --git a/src/proto_alpha/lib_protocol/sc_rollup_management_protocol.ml b/src/proto_alpha/lib_protocol/sc_rollup_management_protocol.ml index 0118f102407fc71f992819d0e83883186a2635bc..575a60114f3e226d5d82d54d0ff53b1b6c34e5d0 100644 --- a/src/proto_alpha/lib_protocol/sc_rollup_management_protocol.ml +++ b/src/proto_alpha/lib_protocol/sc_rollup_management_protocol.ml @@ -64,7 +64,7 @@ let make_internal_inbox_message ctxt ty ~payload ~sender ~source = payload in let payload = Micheline.strip_locations payload in - (Sc_rollup.Inbox.Message.Internal {payload; sender; source}, ctxt) + (Sc_rollup.Inbox_message.Internal {payload; sender; source}, ctxt) let transactions_batch_of_internal ctxt transactions = let open Lwt_tzresult_syntax in @@ -167,5 +167,5 @@ module Internal_for_tests = struct Sc_rollup.Outbox.Message.Internal_for_tests.serialize output_message_internal - let deserialize_inbox_message = Sc_rollup.Inbox.Message.deserialize + let deserialize_inbox_message = Sc_rollup.Inbox_message.deserialize end diff --git a/src/proto_alpha/lib_protocol/sc_rollup_management_protocol.mli b/src/proto_alpha/lib_protocol/sc_rollup_management_protocol.mli index 688fd402cd86a99f90f5a3fbf931069d7d56610c..817068a8a2208c24b077d61ba6b9d3075d7acfd9 100644 --- a/src/proto_alpha/lib_protocol/sc_rollup_management_protocol.mli +++ b/src/proto_alpha/lib_protocol/sc_rollup_management_protocol.mli @@ -69,7 +69,7 @@ val make_internal_inbox_message : payload:'a -> sender:Contract_hash.t -> source:public_key_hash -> - (Sc_rollup.Inbox.Message.t * context) tzresult Lwt.t + (Sc_rollup.Inbox_message.t * context) tzresult Lwt.t (** [outbox_message_of_outbox_message_repr ctxt msg] returns a typed version of of the given outbox message [msg]. @@ -108,5 +108,5 @@ module Internal_for_tests : sig (** [deserialize_inbox_message bs] decodes an inbox message from the given data [bs]. *) val deserialize_inbox_message : - Sc_rollup.Inbox.Message.serialized -> Sc_rollup.Inbox.Message.t tzresult + Sc_rollup.Inbox_message.serialized -> Sc_rollup.Inbox_message.t tzresult end diff --git a/src/proto_alpha/lib_protocol/test/integration/test_sc_rollup_wasm.ml b/src/proto_alpha/lib_protocol/test/integration/test_sc_rollup_wasm.ml index 02f3faa28eb1d1ac51d3b153ed6799b46ec06596..a56433f603b7b0e5650fff85882aa084acb227a8 100644 --- a/src/proto_alpha/lib_protocol/test/integration/test_sc_rollup_wasm.ml +++ b/src/proto_alpha/lib_protocol/test/integration/test_sc_rollup_wasm.ml @@ -237,7 +237,7 @@ let should_boot_complete_boot_sector boot_sector () = return_unit let arbitrary_input i payload = - match Sc_rollup.Inbox.Message.serialize (External payload) with + match Sc_rollup.Inbox_message.serialize (External payload) with | Ok payload -> Sc_rollup. { diff --git a/src/proto_alpha/lib_protocol/test/pbt/test_refutation_game.ml b/src/proto_alpha/lib_protocol/test/pbt/test_refutation_game.ml index 795bc63b1510abfcc06daf04355aa2fba18b4aa9..d111bd4599319cd359eb895170b6ae04865a68a2 100644 --- a/src/proto_alpha/lib_protocol/test/pbt/test_refutation_game.ml +++ b/src/proto_alpha/lib_protocol/test/pbt/test_refutation_game.ml @@ -65,7 +65,7 @@ let number_of_ticks_of_int64_exn ?(__LOC__ = __LOC__) n = let make_external_inbox_message str = WithExceptions.Result.get_ok ~loc:__LOC__ - Inbox.Message.(External str |> serialize) + Inbox_message.(External str |> serialize) let game_status_of_refute_op_result = function | [ diff --git a/src/proto_alpha/lib_protocol/test/unit/test_sc_rollup_management_protocol.ml b/src/proto_alpha/lib_protocol/test/unit/test_sc_rollup_management_protocol.ml index 5cd6c391bd54fdfdbfcbf718260ccf8cc8324e63..186f88bb2f884b49ba14994a0a7dcb263eae0fdc 100644 --- a/src/proto_alpha/lib_protocol/test/unit/test_sc_rollup_management_protocol.ml +++ b/src/proto_alpha/lib_protocol/test/unit/test_sc_rollup_management_protocol.ml @@ -40,14 +40,14 @@ let check_encode_decode_inbox_message message = let open Lwt_result_syntax in let open Sc_rollup_management_protocol in let*? bytes = - Environment.wrap_tzresult @@ Sc_rollup.Inbox.Message.serialize message + Environment.wrap_tzresult @@ Sc_rollup.Inbox_message.serialize message in let*? message' = Environment.wrap_tzresult @@ Internal_for_tests.deserialize_inbox_message bytes in let*? bytes' = - Environment.wrap_tzresult @@ Sc_rollup.Inbox.Message.serialize message' + Environment.wrap_tzresult @@ Sc_rollup.Inbox_message.serialize message' in Assert.equal_string ~loc:__LOC__ (bytes :> string) (bytes' :> string) @@ -144,10 +144,10 @@ let test_encode_decode_internal_inbox_message () = let test_encode_decode_external_inbox_message () = let open Lwt_result_syntax in let assert_prefix message = - let inbox_message = Sc_rollup.Inbox.Message.External message in + let inbox_message = Sc_rollup.Inbox_message.External message in let*? real_encoding = Environment.wrap_tzresult - @@ Sc_rollup.Inbox.Message.serialize inbox_message + @@ Sc_rollup.Inbox_message.serialize inbox_message in let real_encoding = (real_encoding :> string) in (* The prefix consists of a tag (0 for internal, 1 for external). *) @@ -167,7 +167,7 @@ let test_encode_decode_external_inbox_message () = let* () = assert_prefix "0123456789" in let* () = assert_prefix (String.init 256 (Fun.const 'A')) in let assert_encoding_failure message = - let inbox_message = Sc_rollup.Inbox.Message.External message in + let inbox_message = Sc_rollup.Inbox_message.External message in let*! res = check_encode_decode_inbox_message inbox_message in assert_encoding_failure ~loc:__LOC__ res in