diff --git a/docs/protocols/alpha.rst b/docs/protocols/alpha.rst index 888ef9287e50a894ee9d294f96b3922db7b5030f..4638f9e473ecd1232327e23ac0c52055015c93fe 100644 --- a/docs/protocols/alpha.rst +++ b/docs/protocols/alpha.rst @@ -26,3 +26,5 @@ Minor Changes Internal -------- + +- Make carbonated maps available to the Raw context (MRs :gl:`!4815`, `!4891`) diff --git a/src/proto_alpha/lib_protocol/carbonated_map.ml b/src/proto_alpha/lib_protocol/carbonated_map.ml index 4e62c663c1a82d37e8a1da4486c6e33365c7deba..a24528c66a9c365ae5f19929b48cdef452720892 100644 --- a/src/proto_alpha/lib_protocol/carbonated_map.ml +++ b/src/proto_alpha/lib_protocol/carbonated_map.ml @@ -91,112 +91,128 @@ module type COMPARABLE = sig val compare_cost : t -> Saturation_repr.may_saturate Saturation_repr.t end -module Make (G : GAS) (C : COMPARABLE) = struct +module Make_builder (C : COMPARABLE) = struct module M = Map.Make (C) - type context = G.context + type 'a t = {map : 'a M.t; size : int} + + module Make (G : GAS) : + S with type key = C.t and type context = G.context and type 'a t := 'a t = + struct + type key = C.t + + type context = G.context + + let empty = {map = M.empty; size = 0} + + let singleton key value = {map = M.singleton key value; size = 1} + + let size {size; _} = size + + let find_cost ~key ~size = + Carbonated_map_costs.find_cost + ~compare_key_cost:(C.compare_cost key) + ~size + + let update_cost ~key ~size = + Carbonated_map_costs.update_cost + ~compare_key_cost:(C.compare_cost key) + ~size + + let find ctxt key {map; size} = + G.consume ctxt (find_cost ~key ~size) >|? fun ctxt -> + (M.find key map, ctxt) + + let update ctxt key f {map; size} = + let find_cost = find_cost ~key ~size in + let update_cost = update_cost ~key ~size in + (* Consume gas for looking up the old value *) + G.consume ctxt find_cost >>? fun ctxt -> + let old_val_opt = M.find key map in + (* The call to [f] must also account for gas *) + f ctxt old_val_opt >>? fun (new_val_opt, ctxt) -> + match (old_val_opt, new_val_opt) with + | (Some _, Some new_val) -> + (* Consume gas for adding to the map *) + G.consume ctxt update_cost >|? fun ctxt -> + ({map = M.add key new_val map; size}, ctxt) + | (Some _, None) -> + (* Consume gas for removing from the map *) + G.consume ctxt update_cost >|? fun ctxt -> + ({map = M.remove key map; size = size - 1}, ctxt) + | (None, Some new_val) -> + (* Consume gas for adding to the map *) + G.consume ctxt update_cost >|? fun ctxt -> + ({map = M.add key new_val map; size = size + 1}, ctxt) + | (None, None) -> ok ({map; size}, ctxt) + + let to_list ctxt {map; size} = + G.consume ctxt (Carbonated_map_costs.fold_cost ~size) >|? fun ctxt -> + (M.bindings map, ctxt) + + let add ctxt ~merge_overlap key value {map; size} = + (* Consume gas for looking up the element *) + G.consume ctxt (find_cost ~key ~size) >>? fun ctxt -> + (* Consume gas for adding the element *) + G.consume ctxt (update_cost ~key ~size) >>? fun ctxt -> + match M.find key map with + | Some old_val -> + (* Invoking [merge_overlap] must also account for gas *) + merge_overlap ctxt old_val value >|? fun (new_value, ctxt) -> + ({map = M.add key new_value map; size}, ctxt) + | None -> Ok ({map = M.add key value map; size = size + 1}, ctxt) + + let add_key_values_to_map ctxt ~merge_overlap map key_values = + let accum (map, ctxt) (key, value) = + add ctxt ~merge_overlap key value map + in + (* Gas is paid at each step of the fold. *) + List.fold_left_e accum (map, ctxt) key_values + + let of_list ctxt ~merge_overlap = + add_key_values_to_map ctxt ~merge_overlap empty + + let merge ctxt ~merge_overlap map1 {map; size} = + (* To be on the safe side, pay an upfront gas cost for traversing the + map. Each step of the fold is accounted for separately. + *) + G.consume ctxt (Carbonated_map_costs.fold_cost ~size) >>? fun ctxt -> + M.fold_e + (fun key value (map, ctxt) -> add ctxt ~merge_overlap key value map) + map + (map1, ctxt) + + let fold ctxt f empty {map; size} = + G.consume ctxt (Carbonated_map_costs.fold_cost ~size) >>? fun ctxt -> + M.fold_e + (fun key value (acc, ctxt) -> + (* Invoking [f] must also account for gas. *) + f ctxt acc key value) + map + (empty, ctxt) + + let map ctxt f {map; size} = + (* We cannot use the standard map function because [f] also meters the gas + cost at each invocation. *) + fold + ctxt + (fun ctxt map key value -> + (* Invoking [f] must also account for gas. *) + f ctxt key value >>? fun (value, ctxt) -> + (* Consume gas for adding the element. *) + G.consume ctxt (update_cost ~key ~size) >|? fun ctxt -> + (M.add key value map, ctxt)) + M.empty + {map; size} + >|? fun (map, ctxt) -> ({map; size}, ctxt) + end +end - type key = C.t +module Make (G : GAS) (C : COMPARABLE) : + S with type key = C.t and type context = G.context = struct + module M = Make_builder (C) - type 'a t = {map : 'a M.t; size : int} + type 'a t = 'a M.t - let empty = {map = M.empty; size = 0} - - let singleton key value = {map = M.singleton key value; size = 1} - - let size {size; _} = size - - let find_cost ~key ~size = - Carbonated_map_costs.find_cost ~compare_key_cost:(C.compare_cost key) ~size - - let update_cost ~key ~size = - Carbonated_map_costs.update_cost - ~compare_key_cost:(C.compare_cost key) - ~size - - let find ctxt key {map; size} = - G.consume ctxt (find_cost ~key ~size) >|? fun ctxt -> (M.find key map, ctxt) - - let update ctxt key f {map; size} = - let find_cost = find_cost ~key ~size in - let update_cost = update_cost ~key ~size in - (* Consume gas for looking up the old value *) - G.consume ctxt find_cost >>? fun ctxt -> - let old_val_opt = M.find key map in - (* The call to [f] must also account for gas *) - f ctxt old_val_opt >>? fun (new_val_opt, ctxt) -> - match (old_val_opt, new_val_opt) with - | (Some _, Some new_val) -> - (* Consume gas for adding to the map *) - G.consume ctxt update_cost >|? fun ctxt -> - ({map = M.add key new_val map; size}, ctxt) - | (Some _, None) -> - (* Consume gas for removing from the map *) - G.consume ctxt update_cost >|? fun ctxt -> - ({map = M.remove key map; size = size - 1}, ctxt) - | (None, Some new_val) -> - (* Consume gas for adding to the map *) - G.consume ctxt update_cost >|? fun ctxt -> - ({map = M.add key new_val map; size = size + 1}, ctxt) - | (None, None) -> ok ({map; size}, ctxt) - - let to_list ctxt {map; size} = - G.consume ctxt (Carbonated_map_costs.fold_cost ~size) >|? fun ctxt -> - (M.bindings map, ctxt) - - let add ctxt ~merge_overlap key value {map; size} = - (* Consume gas for looking up the element *) - G.consume ctxt (find_cost ~key ~size) >>? fun ctxt -> - (* Consume gas for adding the element *) - G.consume ctxt (update_cost ~key ~size) >>? fun ctxt -> - match M.find key map with - | Some old_val -> - (* Invoking [merge_overlap] must also account for gas *) - merge_overlap ctxt old_val value >|? fun (new_value, ctxt) -> - ({map = M.add key new_value map; size}, ctxt) - | None -> Ok ({map = M.add key value map; size = size + 1}, ctxt) - - let add_key_values_to_map ctxt ~merge_overlap map key_values = - let accum (map, ctxt) (key, value) = - add ctxt ~merge_overlap key value map - in - (* Gas is paid at each step of the fold. *) - List.fold_left_e accum (map, ctxt) key_values - - let of_list ctxt ~merge_overlap = - add_key_values_to_map ctxt ~merge_overlap empty - - let merge ctxt ~merge_overlap map1 {map; size} = - (* To be on the safe side, pay an upfront gas cost for traversing the - map. Each step of the fold is accounted for separately. - *) - G.consume ctxt (Carbonated_map_costs.fold_cost ~size) >>? fun ctxt -> - M.fold_e - (fun key value (map, ctxt) -> add ctxt ~merge_overlap key value map) - map - (map1, ctxt) - - let fold ctxt f empty {map; size} = - G.consume ctxt (Carbonated_map_costs.fold_cost ~size) >>? fun ctxt -> - M.fold_e - (fun key value (acc, ctxt) -> - (* Invoking [f] must also account for gas. *) - f ctxt acc key value) - map - (empty, ctxt) - - let map ctxt f {map; size} = - (* We cannot use the standard map function because [f] also meters the gas - cost at each invocation. *) - fold - ctxt - (fun ctxt map key value -> - (* Invoking [f] must also account for gas. *) - f ctxt key value >>? fun (value, ctxt) -> - (* Consume gas for adding the element. *) - G.consume ctxt (update_cost ~key ~size) >|? fun ctxt -> - (M.add key value map, ctxt)) - M.empty - {map; size} - >|? fun (map, ctxt) -> ({map; size}, ctxt) + include M.Make (G) end diff --git a/src/proto_alpha/lib_protocol/carbonated_map.mli b/src/proto_alpha/lib_protocol/carbonated_map.mli index 71e7cb9f002dda79872d2fa84bf282c1f0a0b12e..60de5b15667c745e4808cb02b700519700675bce 100644 --- a/src/proto_alpha/lib_protocol/carbonated_map.mli +++ b/src/proto_alpha/lib_protocol/carbonated_map.mli @@ -136,6 +136,19 @@ module type COMPARABLE = sig val compare_cost : t -> Saturation_repr.may_saturate Saturation_repr.t end +(** A functor for exposing the type of a carbonated map before + the carbonated make is created. This is useful in scenarios where + the map that will need to be carbonated is defined before the + gas consuming functions for the carbonation are available. + See for example [Raw_context]. +*) +module Make_builder (C : COMPARABLE) : sig + type 'a t + + module Make (G : GAS) : + S with type key = C.t and type context = G.context and type 'a t := 'a t +end + (** A functor for building gas metered maps. When building a gas metered map via [Make(G)(C)], [C] is a [COMPARABLE] required to construct a the map while [G] is a module providing the gas consuming functions. The type of the diff --git a/src/proto_alpha/lib_protocol/raw_context.ml b/src/proto_alpha/lib_protocol/raw_context.ml index 8aca02e969812b5e236564fabe1651b8c753aefd..1d76c99145b0b6680f38a4226a91b9e7d52038c4 100644 --- a/src/proto_alpha/lib_protocol/raw_context.ml +++ b/src/proto_alpha/lib_protocol/raw_context.ml @@ -26,6 +26,23 @@ module Int_set = Set.Make (Compare.Int) +module Sc_rollup_address_comparable = struct + include Sc_rollup_repr.Address + + (* TODO: https://gitlab.com/tezos/tezos/-/issues/2648 + Fill in real benchmarked values. + Need to create benchmark and fill in values. + *) + let compare_cost _rollup = Saturation_repr.safe_int 15 +end + +(* This will not create the map yet, as functions to consume gas have not + been defined yet. However, it will make the type of the carbonated map + available to be used in the definition of type back. +*) +module Sc_rollup_address_map_builder = + Carbonated_map.Make_builder (Sc_rollup_address_comparable) + (* Gas levels maintenance @@ -229,7 +246,7 @@ type back = { Tez_repr.t Signature.Public_key_hash.Map.t option; tx_rollup_current_messages : Tx_rollup_inbox_repr.Merkle.tree Tx_rollup_repr.Map.t; - sc_rollup_current_messages : Context.tree Sc_rollup_repr.Address.Map.t; + sc_rollup_current_messages : Context.tree Sc_rollup_address_map_builder.t; } (* @@ -523,6 +540,19 @@ let gas_consumed ~since ~until = Gas_limit_repr.Arith.sub before after | (_, _) -> Gas_limit_repr.Arith.zero +(* Once gas consuming functions have been defined, + we can instantiate the carbonated map. + See [Sc_rollup_carbonated_map_maker] above. + *) + +module Gas = struct + type context = t + + let consume = consume_gas +end + +module Sc_rollup_carbonated_map = Sc_rollup_address_map_builder.Make (Gas) + type missing_key_kind = Get | Set | Del | Copy type storage_error = @@ -786,7 +816,7 @@ let prepare ~level ~predecessor_timestamp ~timestamp ctxt = sampler_state = Cycle_repr.Map.empty; stake_distribution_for_current_cycle = None; tx_rollup_current_messages = Tx_rollup_repr.Map.empty; - sc_rollup_current_messages = Sc_rollup_repr.Address.Map.empty; + sc_rollup_current_messages = Sc_rollup_carbonated_map.empty; }; } @@ -1399,16 +1429,24 @@ end *) module Sc_rollup_in_memory_inbox = struct let current_messages ctxt rollup = - Sc_rollup_repr.Address.Map.find rollup ctxt.back.sc_rollup_current_messages - |> function - | None -> Tree.empty ctxt - | Some tree -> tree + let open Tzresult_syntax in + let+ (messages, ctxt) = + Sc_rollup_carbonated_map.find + ctxt + rollup + ctxt.back.sc_rollup_current_messages + in + match messages with + | None -> (Tree.empty ctxt, ctxt) + | Some tree -> (tree, ctxt) let set_current_messages ctxt rollup tree = - let sc_rollup_current_messages = - Sc_rollup_repr.Address.Map.add + let open Tzresult_syntax in + let+ (sc_rollup_current_messages, ctxt) = + Sc_rollup_carbonated_map.update + ctxt rollup - tree + (fun ctxt _prev_tree -> return (Some tree, ctxt)) ctxt.back.sc_rollup_current_messages in let back = {ctxt.back with sc_rollup_current_messages} in diff --git a/src/proto_alpha/lib_protocol/raw_context.mli b/src/proto_alpha/lib_protocol/raw_context.mli index c7e306e2b3ec4aa7bd53d14f28cacb4d8f7da6cc..0d0be17ae4cd42b2860e8ed0b3375aa65f0c66fb 100644 --- a/src/proto_alpha/lib_protocol/raw_context.mli +++ b/src/proto_alpha/lib_protocol/raw_context.mli @@ -366,7 +366,7 @@ module Tx_rollup : sig end module Sc_rollup_in_memory_inbox : sig - val current_messages : t -> Sc_rollup_repr.t -> Context.tree + val current_messages : t -> Sc_rollup_repr.t -> (Context.tree * t) tzresult - val set_current_messages : t -> Sc_rollup_repr.t -> Context.tree -> t + val set_current_messages : t -> Sc_rollup_repr.t -> Context.tree -> t tzresult end diff --git a/src/proto_alpha/lib_protocol/sc_rollup_storage.ml b/src/proto_alpha/lib_protocol/sc_rollup_storage.ml index a8426e39d55aa564af0a51ef3e12a0dc64359a1a..7fd702c860a7dd9e7c7e82e711bb4352eb2aa70f 100644 --- a/src/proto_alpha/lib_protocol/sc_rollup_storage.ml +++ b/src/proto_alpha/lib_protocol/sc_rollup_storage.ml @@ -209,13 +209,6 @@ let () = (fun () -> Sc_rollup_bad_inbox_level) ; () -(** To be removed once [Lwt_tzresult_syntax] is in the environment. *) -module Lwt_tzresult_syntax = struct - let ( let* ) = ( >>=? ) - - let return = return -end - module Store = Storage.Sc_rollup module Commitment = Sc_rollup_repr.Commitment module Commitment_hash = Sc_rollup_repr.Commitment_hash @@ -283,6 +276,7 @@ let assert_inbox_size_ok ctxt next_size = Sc_rollup_max_number_of_available_messages_reached let add_messages ctxt rollup messages = + let open Lwt_tzresult_syntax in let open Raw_context in inbox ctxt rollup >>=? fun (inbox, ctxt) -> let next_size = @@ -291,19 +285,22 @@ let add_messages ctxt rollup messages = (Z.of_int (List.length messages)) in assert_inbox_size_ok ctxt next_size >>=? fun () -> - Sc_rollup_in_memory_inbox.current_messages ctxt rollup - |> fun current_messages -> + let*? (current_messages, ctxt) = + Sc_rollup_in_memory_inbox.current_messages ctxt rollup + in let {Level_repr.level; _} = Raw_context.current_level ctxt in (* Notice that the protocol is forgetful: it throws away the inbox history. On the contrary, the history is stored by the rollup node to produce inclusion proofs when needed. *) - Sc_rollup_inbox_repr.( - add_messages_no_history inbox level messages current_messages) - >>=? fun (current_messages, inbox) -> - Sc_rollup_in_memory_inbox.set_current_messages ctxt rollup current_messages - |> fun ctxt -> + let* (current_messages, inbox) = + Sc_rollup_inbox_repr.( + add_messages_no_history inbox level messages current_messages) + in + let*? ctxt = + Sc_rollup_in_memory_inbox.set_current_messages ctxt rollup current_messages + in Storage.Sc_rollup.Inbox.update ctxt rollup inbox >>=? fun (ctxt, size) -> return (inbox, Z.of_int size, ctxt) diff --git a/src/proto_alpha/lib_protocol/test/unit/test_sc_rollup_storage.ml b/src/proto_alpha/lib_protocol/test/unit/test_sc_rollup_storage.ml index 7449641f3fe83748e11d29e2b79405843a16dfbb..7fa91a47bde9f3f27a901bda2dc0e4a6556b5c62 100644 --- a/src/proto_alpha/lib_protocol/test/unit/test_sc_rollup_storage.ml +++ b/src/proto_alpha/lib_protocol/test/unit/test_sc_rollup_storage.ml @@ -1472,6 +1472,70 @@ let test_concurrent_refinement_cement () = in assert_commitment_hash_equal ~loc:__LOC__ ctxt c1 c2 +let check_gas_consumed ~since ~until = + let open Raw_context in + let as_cost = Gas_limit_repr.cost_of_gas @@ gas_consumed ~since ~until in + Saturation_repr.to_int as_cost + +(* Cost of compare key is currently free, which means that the lookup operation + on a map of size 1 will consume 50 gas units (base cost), plus 2 for the + traversal overhead, plus 15 for comparing the key, for a total of 67 gas units. +*) +let test_carbonated_memory_inbox_retrieval () = + let open Raw_context in + let* ctxt = new_context () in + let ctxt = + set_gas_limit ctxt (Gas_limit_repr.Arith.integral_of_int_exn 20_000) + in + let* (rollup, ctxt) = lift @@ new_sc_rollup ctxt in + let*? (_, ctxt') = + Environment.wrap_tzresult + @@ Sc_rollup_in_memory_inbox.current_messages ctxt rollup + in + let consumed_gas = check_gas_consumed ~since:ctxt ~until:ctxt' in + Assert.equal_int ~loc:__LOC__ consumed_gas 67 + +(* A bit ugly, as we repeat the logic for setting messages + defined in `Sc_rollup_storage`. However, this is necessary + since we want to capture the context before and after performing + the `set_current_messages` operation on the in-memory map of messages. + + Assuming that the cost of compare key is free, + we expect set_messages to consume 67 gas units for finding the key, + and 134 gas units for performing the update, for a total of 201 gas units. +*) +let test_carbonated_memory_inbox_set_messages () = + let open Raw_context in + let* ctxt = new_context () in + let ctxt = + set_gas_limit ctxt (Gas_limit_repr.Arith.integral_of_int_exn 20_000) + in + let* (rollup, ctxt) = lift @@ new_sc_rollup ctxt in + let* (inbox, ctxt) = lift @@ Sc_rollup_storage.inbox ctxt rollup in + let*? (current_messages, ctxt) = + Environment.wrap_tzresult + @@ Sc_rollup_in_memory_inbox.current_messages ctxt rollup + in + let {Level_repr.level; _} = Raw_context.current_level ctxt in + let* (current_messages, _) = + lift + @@ Sc_rollup_inbox_repr.( + add_messages_no_history + inbox + level + ["CAFEBABE"; "CAFEBABE"; "CAFEBABE"] + current_messages) + in + let*? ctxt' = + Environment.wrap_tzresult + @@ Sc_rollup_in_memory_inbox.set_current_messages + ctxt + rollup + current_messages + in + let consumed_gas = check_gas_consumed ~since:ctxt ~until:ctxt' in + Assert.equal_int ~loc:__LOC__ consumed_gas 201 + let tests = [ Tztest.tztest @@ -1646,6 +1710,14 @@ let tests = "Refinement operations are commutative (cement)" `Quick test_concurrent_refinement_cement; + Tztest.tztest + "Retrieval of in-memory message inbox consumes gas" + `Quick + test_carbonated_memory_inbox_retrieval; + Tztest.tztest + "Setting messages in in-memory message inbox consumes gas" + `Quick + test_carbonated_memory_inbox_set_messages; ] (* FIXME: https://gitlab.com/tezos/tezos/-/issues/2460 diff --git a/tezt/_regressions/sc_rollup_inbox.out b/tezt/_regressions/sc_rollup_inbox.out index 8630fcd245c38c2f09e034343e88a15dbaab1cd9..55eabdf9689ad76c6c338513722c1f1e5b7596f2 100644 --- a/tezt/_regressions/sc_rollup_inbox.out +++ b/tezt/_regressions/sc_rollup_inbox.out @@ -32,7 +32,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["CAFEBABE"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1650.756 units (will add 100 for safety) +Estimated gas: 1651.024 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -45,14 +45,14 @@ This sequence of operations was run: From: [PUBLIC_KEY_HASH] Fee to the baker: ꜩ0.000453 Expected counter: 2 - Gas limit: 1751 + Gas limit: 1752 Storage limit: 0 bytes Balance updates: [PUBLIC_KEY_HASH] ... -ꜩ0.000453 payload fees(the block proposer) ....... +ꜩ0.000453 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1650.884 + Consumed gas: 1651.152 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 3 @@ -69,7 +69,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["CAFEBABE", "CAFEBABE"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1650.948 units (will add 100 for safety) +Estimated gas: 1651.216 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -82,14 +82,14 @@ This sequence of operations was run: From: [PUBLIC_KEY_HASH] Fee to the baker: ꜩ0.000461 Expected counter: 3 - Gas limit: 1751 + Gas limit: 1752 Storage limit: 0 bytes Balance updates: [PUBLIC_KEY_HASH] ... -ꜩ0.000461 payload fees(the block proposer) ....... +ꜩ0.000461 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1651.076 + Consumed gas: 1651.344 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 4 @@ -107,7 +107,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["CAFEBABE", "CAFEBABE", "CAFEBABE"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1651.140 units (will add 100 for safety) +Estimated gas: 1651.408 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -127,7 +127,7 @@ This sequence of operations was run: payload fees(the block proposer) ....... +ꜩ0.000469 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1651.140 + Consumed gas: 1651.408 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 5 @@ -145,7 +145,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1651.140 units (will add 100 for safety) +Estimated gas: 1651.408 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -165,7 +165,7 @@ This sequence of operations was run: payload fees(the block proposer) ....... +ꜩ0.000477 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1651.268 + Consumed gas: 1651.536 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 6 @@ -184,7 +184,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1651.332 units (will add 100 for safety) +Estimated gas: 1651.600 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -204,7 +204,7 @@ This sequence of operations was run: payload fees(the block proposer) ....... +ꜩ0.000485 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1651.332 + Consumed gas: 1651.600 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 7 @@ -223,7 +223,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1651.332 units (will add 100 for safety) +Estimated gas: 1651.600 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -243,7 +243,7 @@ This sequence of operations was run: payload fees(the block proposer) ....... +ꜩ0.000493 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1651.332 + Consumed gas: 1651.600 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 8 @@ -262,7 +262,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1651.332 units (will add 100 for safety) +Estimated gas: 1651.600 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -282,7 +282,7 @@ This sequence of operations was run: payload fees(the block proposer) ....... +ꜩ0.000501 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1651.332 + Consumed gas: 1651.600 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 9 @@ -301,7 +301,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1651.332 units (will add 100 for safety) +Estimated gas: 1651.600 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -321,7 +321,7 @@ This sequence of operations was run: payload fees(the block proposer) ....... +ꜩ0.000509 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1651.460 + Consumed gas: 1651.728 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 10 @@ -341,7 +341,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1651.524 units (will add 100 for safety) +Estimated gas: 1651.792 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -361,7 +361,7 @@ This sequence of operations was run: payload fees(the block proposer) ....... +ꜩ0.000517 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1651.524 + Consumed gas: 1651.792 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 11 @@ -381,7 +381,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE", "CAFEBABE"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1651.524 units (will add 100 for safety) +Estimated gas: 1651.792 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -401,7 +401,7 @@ This sequence of operations was run: payload fees(the block proposer) ....... +ꜩ0.000525 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1651.524 + Consumed gas: 1651.792 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 12 diff --git a/tezt/_regressions/sc_rollup_inbox_of_rollup_node_basic.out b/tezt/_regressions/sc_rollup_inbox_of_rollup_node_basic.out index 3de4b4d4c95306e6044d8676db92ef2d84cd0411..2dc81b35c18f954a2677f27d160d92f1a7282a74 100644 --- a/tezt/_regressions/sc_rollup_inbox_of_rollup_node_basic.out +++ b/tezt/_regressions/sc_rollup_inbox_of_rollup_node_basic.out @@ -32,7 +32,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["CAFEBABE"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1650.756 units (will add 100 for safety) +Estimated gas: 1651.024 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -45,14 +45,14 @@ This sequence of operations was run: From: [PUBLIC_KEY_HASH] Fee to the baker: ꜩ0.000453 Expected counter: 2 - Gas limit: 1751 + Gas limit: 1752 Storage limit: 0 bytes Balance updates: [PUBLIC_KEY_HASH] ... -ꜩ0.000453 payload fees(the block proposer) ....... +ꜩ0.000453 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1650.884 + Consumed gas: 1651.152 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 3 @@ -69,7 +69,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["CAFEBABE", "CAFEBABE"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1650.948 units (will add 100 for safety) +Estimated gas: 1651.216 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -82,14 +82,14 @@ This sequence of operations was run: From: [PUBLIC_KEY_HASH] Fee to the baker: ꜩ0.000461 Expected counter: 3 - Gas limit: 1751 + Gas limit: 1752 Storage limit: 0 bytes Balance updates: [PUBLIC_KEY_HASH] ... -ꜩ0.000461 payload fees(the block proposer) ....... +ꜩ0.000461 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1651.076 + Consumed gas: 1651.344 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 4 diff --git a/tezt/_regressions/sc_rollup_inbox_of_rollup_node_handles_chain_reorg.out b/tezt/_regressions/sc_rollup_inbox_of_rollup_node_handles_chain_reorg.out index 98fe0bdfa379ea8b0449c7dc93708ff60f98a554..3b25d5517b96aba9680b8a2d310c0601dd88678c 100644 --- a/tezt/_regressions/sc_rollup_inbox_of_rollup_node_handles_chain_reorg.out +++ b/tezt/_regressions/sc_rollup_inbox_of_rollup_node_handles_chain_reorg.out @@ -32,7 +32,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["CAFEBABE"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1650.756 units (will add 100 for safety) +Estimated gas: 1651.024 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -45,14 +45,14 @@ This sequence of operations was run: From: [PUBLIC_KEY_HASH] Fee to the baker: ꜩ0.000453 Expected counter: 2 - Gas limit: 1751 + Gas limit: 1752 Storage limit: 0 bytes Balance updates: [PUBLIC_KEY_HASH] ... -ꜩ0.000453 payload fees(the block proposer) ....... +ꜩ0.000453 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1650.884 + Consumed gas: 1651.152 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 3 @@ -69,7 +69,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["CAFEBABE"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1650.948 units (will add 100 for safety) +Estimated gas: 1651.216 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -82,14 +82,14 @@ This sequence of operations was run: From: [PUBLIC_KEY_HASH] Fee to the baker: ꜩ0.000453 Expected counter: 3 - Gas limit: 1751 + Gas limit: 1752 Storage limit: 0 bytes Balance updates: [PUBLIC_KEY_HASH] ... -ꜩ0.000453 payload fees(the block proposer) ....... +ꜩ0.000453 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1651.076 + Consumed gas: 1651.344 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 4 @@ -107,7 +107,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["CAFEBABE"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1650.948 units (will add 100 for safety) +Estimated gas: 1651.216 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -120,14 +120,14 @@ This sequence of operations was run: From: [PUBLIC_KEY_HASH] Fee to the baker: ꜩ0.000453 Expected counter: 3 - Gas limit: 1751 + Gas limit: 1752 Storage limit: 0 bytes Balance updates: [PUBLIC_KEY_HASH] ... -ꜩ0.000453 payload fees(the block proposer) ....... +ꜩ0.000453 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1651.076 + Consumed gas: 1651.344 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 4 @@ -145,7 +145,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["CAFEBABE"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1651.140 units (will add 100 for safety) +Estimated gas: 1651.408 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -165,7 +165,7 @@ This sequence of operations was run: payload fees(the block proposer) ....... +ꜩ0.000453 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1651.140 + Consumed gas: 1651.408 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 5 diff --git a/tezt/_regressions/sc_rollup_inbox_of_rollup_node_stops.out b/tezt/_regressions/sc_rollup_inbox_of_rollup_node_stops.out index 3d6d4fdb5ede4ace918680860d1aa8067ac88a05..911659423846bf1fcb0daa2549b8f519fe14af5b 100644 --- a/tezt/_regressions/sc_rollup_inbox_of_rollup_node_stops.out +++ b/tezt/_regressions/sc_rollup_inbox_of_rollup_node_stops.out @@ -32,7 +32,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["CAFEBABE"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1650.756 units (will add 100 for safety) +Estimated gas: 1651.024 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -45,14 +45,14 @@ This sequence of operations was run: From: [PUBLIC_KEY_HASH] Fee to the baker: ꜩ0.000453 Expected counter: 2 - Gas limit: 1751 + Gas limit: 1752 Storage limit: 0 bytes Balance updates: [PUBLIC_KEY_HASH] ... -ꜩ0.000453 payload fees(the block proposer) ....... +ꜩ0.000453 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1650.884 + Consumed gas: 1651.152 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 3 @@ -69,7 +69,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["CAFEBABE", "CAFEBABE"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1650.948 units (will add 100 for safety) +Estimated gas: 1651.216 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -82,14 +82,14 @@ This sequence of operations was run: From: [PUBLIC_KEY_HASH] Fee to the baker: ꜩ0.000461 Expected counter: 3 - Gas limit: 1751 + Gas limit: 1752 Storage limit: 0 bytes Balance updates: [PUBLIC_KEY_HASH] ... -ꜩ0.000461 payload fees(the block proposer) ....... +ꜩ0.000461 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1651.076 + Consumed gas: 1651.344 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 4 @@ -107,7 +107,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["CAFEBABE"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1651.140 units (will add 100 for safety) +Estimated gas: 1651.408 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -127,7 +127,7 @@ This sequence of operations was run: payload fees(the block proposer) ....... +ꜩ0.000453 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1651.140 + Consumed gas: 1651.408 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 5 @@ -145,7 +145,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["CAFEBABE", "CAFEBABE"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1651.140 units (will add 100 for safety) +Estimated gas: 1651.408 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -165,7 +165,7 @@ This sequence of operations was run: payload fees(the block proposer) ....... +ꜩ0.000461 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1651.268 + Consumed gas: 1651.536 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 6 diff --git a/tezt/_regressions/sc_rollup_node_advances_pvm_state.out b/tezt/_regressions/sc_rollup_node_advances_pvm_state.out index 30eff9d8105bc3af7bbc6c0a19e7342867e6fb58..93566ad5dd52319d64deb890d102d50400ad8df7 100644 --- a/tezt/_regressions/sc_rollup_node_advances_pvm_state.out +++ b/tezt/_regressions/sc_rollup_node_advances_pvm_state.out @@ -41,7 +41,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["31","36","2b"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1650.756 units (will add 100 for safety) +Estimated gas: 1651.024 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -54,14 +54,14 @@ This sequence of operations was run: From: [PUBLIC_KEY_HASH] Fee to the baker: ꜩ0.00046 Expected counter: 2 - Gas limit: 1751 + Gas limit: 1752 Storage limit: 0 bytes Balance updates: [PUBLIC_KEY_HASH] ... -ꜩ0.00046 payload fees(the block proposer) ....... +ꜩ0.00046 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1650.884 + Consumed gas: 1651.152 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 3 @@ -90,7 +90,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["32","38","2b"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1650.948 units (will add 100 for safety) +Estimated gas: 1651.216 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -103,14 +103,14 @@ This sequence of operations was run: From: [PUBLIC_KEY_HASH] Fee to the baker: ꜩ0.00046 Expected counter: 3 - Gas limit: 1751 + Gas limit: 1752 Storage limit: 0 bytes Balance updates: [PUBLIC_KEY_HASH] ... -ꜩ0.00046 payload fees(the block proposer) ....... +ꜩ0.00046 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1651.076 + Consumed gas: 1651.344 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 4 @@ -140,7 +140,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["33","3130","2b"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1651.140 units (will add 100 for safety) +Estimated gas: 1651.408 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -160,7 +160,7 @@ This sequence of operations was run: payload fees(the block proposer) ....... +ꜩ0.000461 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1651.140 + Consumed gas: 1651.408 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 5 @@ -190,7 +190,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["34","3132","2b"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1651.140 units (will add 100 for safety) +Estimated gas: 1651.408 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -210,7 +210,7 @@ This sequence of operations was run: payload fees(the block proposer) ....... +ꜩ0.000461 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1651.268 + Consumed gas: 1651.536 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 6 @@ -241,7 +241,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["35","3134","2b"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1651.332 units (will add 100 for safety) +Estimated gas: 1651.600 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -261,7 +261,7 @@ This sequence of operations was run: payload fees(the block proposer) ....... +ꜩ0.000461 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1651.332 + Consumed gas: 1651.600 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 7 @@ -292,7 +292,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["36","3136","2b"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1651.332 units (will add 100 for safety) +Estimated gas: 1651.600 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -312,7 +312,7 @@ This sequence of operations was run: payload fees(the block proposer) ....... +ꜩ0.000461 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1651.332 + Consumed gas: 1651.600 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 8 @@ -343,7 +343,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["37","3138","2b"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1651.332 units (will add 100 for safety) +Estimated gas: 1651.600 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -363,7 +363,7 @@ This sequence of operations was run: payload fees(the block proposer) ....... +ꜩ0.000461 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1651.332 + Consumed gas: 1651.600 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 9 @@ -394,7 +394,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["38","3230","2b"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1651.332 units (will add 100 for safety) +Estimated gas: 1651.600 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -414,7 +414,7 @@ This sequence of operations was run: payload fees(the block proposer) ....... +ꜩ0.000461 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1651.460 + Consumed gas: 1651.728 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 10 @@ -446,7 +446,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["39","3232","2b"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1651.524 units (will add 100 for safety) +Estimated gas: 1651.792 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -466,7 +466,7 @@ This sequence of operations was run: payload fees(the block proposer) ....... +ꜩ0.000461 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1651.524 + Consumed gas: 1651.792 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 11 @@ -498,7 +498,7 @@ This sequence of operations was run: ./tezos-client --wait none send sc rollup message 'text:["3130","3234","2b"]' from bootstrap1 to '[SC_ROLLUP_HASH]' Node is bootstrapped. -Estimated gas: 1651.524 units (will add 100 for safety) +Estimated gas: 1651.792 units (will add 100 for safety) Estimated storage: no bytes added Operation successfully injected in the node. Operation hash is '[OPERATION_HASH]' @@ -518,7 +518,7 @@ This sequence of operations was run: payload fees(the block proposer) ....... +ꜩ0.000462 Add a message to the inbox of the smart contract rollup at address [SC_ROLLUP_HASH] This operation sending a message to a smart contract rollup was successfully applied - Consumed gas: 1651.524 + Consumed gas: 1651.792 Resulting inbox state: rollup = [SC_ROLLUP_HASH] level = 12