From 33fda95f3a6e525b396d624293f819c2359ef74a Mon Sep 17 00:00:00 2001 From: "iguerNL@Functori" Date: Thu, 15 Feb 2024 14:47:47 +0100 Subject: [PATCH 1/7] Proto/Dal: add function check_is_in_range for DAL pages --- .../lib_protocol/alpha_context.mli | 4 +++ src/proto_alpha/lib_protocol/dal_slot_repr.ml | 30 +++++++++++++++++++ .../lib_protocol/dal_slot_repr.mli | 8 ++++- 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/proto_alpha/lib_protocol/alpha_context.mli b/src/proto_alpha/lib_protocol/alpha_context.mli index c216f7941a12..69538d8d9a34 100644 --- a/src/proto_alpha/lib_protocol/alpha_context.mli +++ b/src/proto_alpha/lib_protocol/alpha_context.mli @@ -2796,6 +2796,10 @@ module Dal : sig val compare : int -> int -> int val equal : int -> int -> bool + + type error += Invalid_page_index of {given : int; min : int; max : int} + + val check_is_in_range : number_of_pages:int -> t -> unit tzresult end type t = {slot_id : slot_id; page_index : Index.t} diff --git a/src/proto_alpha/lib_protocol/dal_slot_repr.ml b/src/proto_alpha/lib_protocol/dal_slot_repr.ml index 21b383c08b7b..a5d848ae8392 100644 --- a/src/proto_alpha/lib_protocol/dal_slot_repr.ml +++ b/src/proto_alpha/lib_protocol/dal_slot_repr.ml @@ -137,6 +137,36 @@ module Page = struct let compare = Compare.Int.compare let equal = Compare.Int.equal + + type error += Invalid_page_index of {given : int; min : int; max : int} + + let () = + let open Data_encoding in + register_error_kind + `Permanent + ~id:"dal_page_index_repr.index.invalid_index" + ~title:"Invalid Dal page index" + ~description: + "The given index is out of range of representable page indices" + ~pp:(fun ppf (given, min, max) -> + Format.fprintf + ppf + "The given index %d is out of range of representable page indices \ + [%d, %d]" + given + min + max) + (obj3 (req "given" int31) (req "min" int31) (req "max" int31)) + (function + | Invalid_page_index {given; min; max} -> Some (given, min, max) + | _ -> None) + (fun (given, min, max) -> Invalid_page_index {given; min; max}) + + let check_is_in_range ~number_of_pages page_id = + error_unless + Compare.Int.(0 <= page_id && page_id < number_of_pages) + (Invalid_page_index + {given = page_id; min = zero; max = number_of_pages - 1}) end type t = {slot_id : Header.id; page_index : Index.t} diff --git a/src/proto_alpha/lib_protocol/dal_slot_repr.mli b/src/proto_alpha/lib_protocol/dal_slot_repr.mli index 0c4b0eec52ca..40c8f94c91f0 100644 --- a/src/proto_alpha/lib_protocol/dal_slot_repr.mli +++ b/src/proto_alpha/lib_protocol/dal_slot_repr.mli @@ -138,6 +138,12 @@ module Page : sig val compare : int -> int -> int val equal : int -> int -> bool + + type error += Invalid_page_index of {given : int; min : int; max : int} + + (** [is_in_range ~number_of_pages page_id] returns true if and only if the + provided [page_id] is within the bounds of allowed pages. *) + val check_is_in_range : number_of_pages:int -> int -> unit tzresult end (** Encoding for page contents. *) @@ -223,7 +229,7 @@ module History : sig {!Raw_level_repr.root} as published level and no attested slots. Since Dal is not necessarily activated in the genesis block (e.g. this will be the case on mainnet), the skip list is reset at the first call to - {!add_confirmed_slot_headers} to enforce the invariant that there are no gaps + {!add_confirmed_slot_headers} to enforce the invariant that there are no gaps in the levels of the cells of the skip list. So, a skip list is initialized with this genesis cell. It's then replaced -- GitLab From 0aa6af6346f480903a0767337c7b28556360c56f Mon Sep 17 00:00:00 2001 From: "iguerNL@Functori" Date: Thu, 15 Feb 2024 15:04:50 +0100 Subject: [PATCH 2/7] Proto/Dal: expose function check_is_in_range for Slot_index --- src/proto_alpha/lib_protocol/alpha_context.mli | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/proto_alpha/lib_protocol/alpha_context.mli b/src/proto_alpha/lib_protocol/alpha_context.mli index 69538d8d9a34..6d986b788629 100644 --- a/src/proto_alpha/lib_protocol/alpha_context.mli +++ b/src/proto_alpha/lib_protocol/alpha_context.mli @@ -2738,6 +2738,8 @@ module Dal : sig val slots_range_opt : number_of_slots:int -> lower:int -> upper:int -> t list option + + val check_is_in_range : number_of_slots:int -> t -> unit tzresult end (** This module re-exports definitions from {!Dal_attestation_repr} and -- GitLab From 5ea62cb93e18ac9d5cbfc3acfa01103b6bcdfc89 Mon Sep 17 00:00:00 2001 From: "iguerNL@Functori" Date: Thu, 15 Feb 2024 15:31:09 +0100 Subject: [PATCH 3/7] Proto/Dal: directly provide dal parameters to dal_pages_request --- .../lib_sc_rollup_node/dal_pages_request.ml | 32 +++++++++++-------- .../lib_sc_rollup_node/dal_pages_request.mli | 6 ++-- .../lib_sc_rollup_node/fueled_pvm.ml | 10 ++---- .../refutation_game_helpers.ml | 7 ++-- 4 files changed, 25 insertions(+), 30 deletions(-) diff --git a/src/proto_alpha/lib_sc_rollup_node/dal_pages_request.ml b/src/proto_alpha/lib_sc_rollup_node/dal_pages_request.ml index 427cbe5ac733..feaa04b249ec 100644 --- a/src/proto_alpha/lib_sc_rollup_node/dal_pages_request.ml +++ b/src/proto_alpha/lib_sc_rollup_node/dal_pages_request.ml @@ -110,25 +110,29 @@ let storage_invariant_broken published_level index = Raw_level.pp published_level -let slot_id_is_valid ~dal_activation_level ~dal_attestation_lag - ~dal_number_of_slots ~origination_level ~inbox_level slot_id +let slot_id_is_valid + (dal_constants : Octez_smart_rollup.Rollup_constants.dal_constants) + ~dal_activation_level ~origination_level ~inbox_level slot_id ~dal_attested_slots_validity_lag = + let open Alpha_context in let origination_level_res = Raw_level.of_int32 origination_level in let commit_inbox_level_res = Raw_level.of_int32 inbox_level in match (origination_level_res, commit_inbox_level_res) with | Ok origination_level, Ok commit_inbox_level -> Alpha_context.Sc_rollup.Proof.Dal_helpers.valid_slot_id ~dal_activation_level - ~dal_attestation_lag + ~dal_attestation_lag:dal_constants.attestation_lag ~origination_level ~commit_inbox_level - ~dal_number_of_slots + ~dal_number_of_slots:dal_constants.number_of_slots ~dal_attested_slots_validity_lag slot_id | _ -> false -let slot_pages ~dal_activation_level ~dal_attestation_lag ~dal_number_of_slots - ~inbox_level node_ctxt slot_id ~dal_attested_slots_validity_lag = +let slot_pages + (dal_constants : Octez_smart_rollup.Rollup_constants.dal_constants) + ~dal_activation_level ~inbox_level node_ctxt slot_id + ~dal_attested_slots_validity_lag = let open Lwt_result_syntax in let Node_context.{genesis_info = {level = origination_level; _}; _} = node_ctxt @@ -137,18 +141,17 @@ let slot_pages ~dal_activation_level ~dal_attestation_lag ~dal_number_of_slots if not @@ slot_id_is_valid + dal_constants ~dal_activation_level - ~dal_attestation_lag ~origination_level ~inbox_level - ~dal_number_of_slots ~dal_attested_slots_validity_lag slot_id then return_none else let* confirmed_in_block_hash = store_entry_from_published_level - ~dal_attestation_lag + ~dal_attestation_lag:dal_constants.attestation_lag ~published_level node_ctxt in @@ -165,8 +168,10 @@ let slot_pages ~dal_activation_level ~dal_attestation_lag ~dal_number_of_slots | Some `Unconfirmed -> return_none | None -> storage_invariant_broken published_level index -let page_content ~dal_activation_level ~dal_attestation_lag ~dal_number_of_slots - ~inbox_level node_ctxt page_id ~dal_attested_slots_validity_lag = +let page_content + (dal_constants : Octez_smart_rollup.Rollup_constants.dal_constants) + ~dal_activation_level ~inbox_level node_ctxt page_id + ~dal_attested_slots_validity_lag = let open Lwt_result_syntax in let Dal.Page.{slot_id; page_index} = page_id in let Dal.Slot.Header.{published_level; index} = slot_id in @@ -176,18 +181,17 @@ let page_content ~dal_activation_level ~dal_attestation_lag ~dal_number_of_slots if not @@ slot_id_is_valid + dal_constants ~dal_activation_level - ~dal_attestation_lag ~origination_level ~inbox_level - ~dal_number_of_slots ~dal_attested_slots_validity_lag slot_id then return_none else let* confirmed_in_block_hash = store_entry_from_published_level - ~dal_attestation_lag + ~dal_attestation_lag:dal_constants.attestation_lag ~published_level node_ctxt in diff --git a/src/proto_alpha/lib_sc_rollup_node/dal_pages_request.mli b/src/proto_alpha/lib_sc_rollup_node/dal_pages_request.mli index 5109dfa209ce..e365e98fb5b8 100644 --- a/src/proto_alpha/lib_sc_rollup_node/dal_pages_request.mli +++ b/src/proto_alpha/lib_sc_rollup_node/dal_pages_request.mli @@ -54,9 +54,8 @@ type error += Dal_slot_not_found_in_store of Dal.Slot.Header.id [dal_attestation_lag] is used to retrieve the correct entry in [store]. *) val slot_pages : + Octez_smart_rollup.Rollup_constants.dal_constants -> dal_activation_level:Raw_level.t option -> - dal_attestation_lag:int -> - dal_number_of_slots:int -> inbox_level:int32 -> _ Node_context.t -> Dal.slot_id -> @@ -74,9 +73,8 @@ val slot_pages : [dal_attestation_lag] is used to retrieve the correct entry in [store]. *) val page_content : + Octez_smart_rollup.Rollup_constants.dal_constants -> dal_activation_level:Raw_level.t option -> - dal_attestation_lag:int -> - dal_number_of_slots:int -> inbox_level:int32 -> _ Node_context.t -> Dal.Page.t -> diff --git a/src/proto_alpha/lib_sc_rollup_node/fueled_pvm.ml b/src/proto_alpha/lib_sc_rollup_node/fueled_pvm.ml index 95589aca0df5..8473f1d49ffa 100644 --- a/src/proto_alpha/lib_sc_rollup_node/fueled_pvm.ml +++ b/src/proto_alpha/lib_sc_rollup_node/fueled_pvm.ml @@ -93,8 +93,6 @@ module Make_fueled (F : Fuel.S) : FUELED_PVM with type fuel = F.t = struct in let module PVM = (val Pvm.of_kind node_ctxt.kind) in let metadata = metadata node_ctxt in - let dal_attestation_lag = constants.dal.attestation_lag in - let dal_number_of_slots = constants.dal.number_of_slots in let dal_attested_slots_validity_lag = match constants.sc_rollup.reveal_activation_level with | Some reveal_activation_level when constants.dal.feature_enable -> @@ -117,7 +115,7 @@ module Make_fueled (F : Fuel.S) : FUELED_PVM with type fuel = F.t = struct Sc_rollup.Dal_parameters. { number_of_slots = Int64.of_int constants.dal.number_of_slots; - attestation_lag = Int64.of_int dal_attestation_lag; + attestation_lag = Int64.of_int constants.dal.attestation_lag; slot_size = Int64.of_int constants.dal.cryptobox_parameters.slot_size; page_size = Int64.of_int constants.dal.cryptobox_parameters.page_size; } @@ -148,11 +146,10 @@ module Make_fueled (F : Fuel.S) : FUELED_PVM with type fuel = F.t = struct | Request_dal_page dal_page -> ( let*! content = Dal_pages_request.page_content + constants.dal ~dal_activation_level ~dal_attested_slots_validity_lag ~inbox_level:(Int32.of_int level) - ~dal_attestation_lag - ~dal_number_of_slots node_ctxt dal_page in @@ -275,10 +272,9 @@ module Make_fueled (F : Fuel.S) : FUELED_PVM with type fuel = F.t = struct | Needs_reveal (Request_dal_page page_id) -> ( let* content_opt = Dal_pages_request.page_content + constants.dal ~inbox_level:(Int32.of_int level) ~dal_activation_level - ~dal_attestation_lag - ~dal_number_of_slots ~dal_attested_slots_validity_lag node_ctxt page_id diff --git a/src/proto_alpha/lib_sc_rollup_node/refutation_game_helpers.ml b/src/proto_alpha/lib_sc_rollup_node/refutation_game_helpers.ml index 409e62a64838..fbb435cba3b7 100644 --- a/src/proto_alpha/lib_sc_rollup_node/refutation_game_helpers.ml +++ b/src/proto_alpha/lib_sc_rollup_node/refutation_game_helpers.ml @@ -70,10 +70,8 @@ let page_membership_proof params page_index slot_data = let page_info_from_pvm_state constants (node_ctxt : _ Node_context.t) ~inbox_level (dal_params : Dal.parameters) start_state = let open Lwt_result_syntax in - let dal_attestation_lag = constants.Rollup_constants.dal.attestation_lag in - let dal_number_of_slots = constants.Rollup_constants.dal.number_of_slots in let is_reveal_enabled = - match constants.sc_rollup.reveal_activation_level with + match constants.Rollup_constants.sc_rollup.reveal_activation_level with | Some reveal_activation_level -> Sc_rollup.is_reveal_enabled_predicate (Sc_rollup_proto_types.Constants.reveal_activation_level_of_octez @@ -107,9 +105,8 @@ let page_info_from_pvm_state constants (node_ctxt : _ Node_context.t) let Dal.Page.{slot_id; page_index} = page_id in let* pages = Dal_pages_request.slot_pages + constants.Rollup_constants.dal ~dal_activation_level - ~dal_attestation_lag - ~dal_number_of_slots ~dal_attested_slots_validity_lag ~inbox_level node_ctxt -- GitLab From cf4e4d48afa967fdd9f0f9f808859cbce7073872 Mon Sep 17 00:00:00 2001 From: "iguerNL@Functori" Date: Thu, 15 Feb 2024 15:35:39 +0100 Subject: [PATCH 4/7] Proto/Dal: prepare simplification of slots validity: check slot id locally --- src/proto_alpha/lib_sc_rollup_node/dal_pages_request.ml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/proto_alpha/lib_sc_rollup_node/dal_pages_request.ml b/src/proto_alpha/lib_sc_rollup_node/dal_pages_request.ml index feaa04b249ec..4704e77bd9de 100644 --- a/src/proto_alpha/lib_sc_rollup_node/dal_pages_request.ml +++ b/src/proto_alpha/lib_sc_rollup_node/dal_pages_request.ml @@ -115,6 +115,11 @@ let slot_id_is_valid ~dal_activation_level ~origination_level ~inbox_level slot_id ~dal_attested_slots_validity_lag = let open Alpha_context in + Result.is_ok + (Dal.Slot_index.check_is_in_range + ~number_of_slots:dal_constants.number_of_slots + slot_id.Dal.index) + && let origination_level_res = Raw_level.of_int32 origination_level in let commit_inbox_level_res = Raw_level.of_int32 inbox_level in match (origination_level_res, commit_inbox_level_res) with -- GitLab From 1e89b19bf540cbd9675d2241ae6fe491d9dd0850 Mon Sep 17 00:00:00 2001 From: "iguerNL@Functori" Date: Thu, 15 Feb 2024 15:38:13 +0100 Subject: [PATCH 5/7] Proto/Alpha: check for page validity when the page index is given --- .../lib_sc_rollup_node/dal_pages_request.ml | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/proto_alpha/lib_sc_rollup_node/dal_pages_request.ml b/src/proto_alpha/lib_sc_rollup_node/dal_pages_request.ml index 4704e77bd9de..30d749418e9a 100644 --- a/src/proto_alpha/lib_sc_rollup_node/dal_pages_request.ml +++ b/src/proto_alpha/lib_sc_rollup_node/dal_pages_request.ml @@ -134,6 +134,23 @@ let slot_id_is_valid slot_id | _ -> false +let page_id_is_valid + (dal_constants : Octez_smart_rollup.Rollup_constants.dal_constants) + ~dal_activation_level ~origination_level ~inbox_level + Dal.Page.{slot_id; page_index} ~dal_attested_slots_validity_lag = + Result.is_ok + (Dal.Page.Index.check_is_in_range + ~number_of_pages: + (Dal.Page.pages_per_slot dal_constants.cryptobox_parameters) + page_index) + && slot_id_is_valid + dal_constants + ~dal_activation_level + ~origination_level + ~inbox_level + slot_id + ~dal_attested_slots_validity_lag + let slot_pages (dal_constants : Octez_smart_rollup.Rollup_constants.dal_constants) ~dal_activation_level ~inbox_level node_ctxt slot_id @@ -185,13 +202,13 @@ let page_content in if not - @@ slot_id_is_valid + @@ page_id_is_valid dal_constants ~dal_activation_level ~origination_level ~inbox_level ~dal_attested_slots_validity_lag - slot_id + page_id then return_none else let* confirmed_in_block_hash = -- GitLab From d36b232e9a0002819b9c1945711871f3c5a013e8 Mon Sep 17 00:00:00 2001 From: "iguerNL@Functori" Date: Thu, 15 Feb 2024 15:45:14 +0100 Subject: [PATCH 6/7] Proto/Dal: auxiliary function page_id_is_valid for indexes & bounds checks --- .../lib_protocol/sc_rollup_proof_repr.ml | 33 ++++++++++++++++--- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/src/proto_alpha/lib_protocol/sc_rollup_proof_repr.ml b/src/proto_alpha/lib_protocol/sc_rollup_proof_repr.ml index d0396d90b035..bc14037c6c92 100644 --- a/src/proto_alpha/lib_protocol/sc_rollup_proof_repr.ml +++ b/src/proto_alpha/lib_protocol/sc_rollup_proof_repr.ml @@ -274,18 +274,42 @@ module Dal_helpers = struct dal_was_activated && slot_published_after_origination && not_too_recent && index_is_valid && ttl_not_expired + let page_id_is_valid ~dal_number_of_slots ~dal_activation_level + ~dal_attestation_lag ~origination_level ~commit_inbox_level + cryptobox_parameters + Dal_slot_repr.Page.{slot_id = {published_level; index}; page_index} + ~dal_attested_slots_validity_lag = + let open Dal_slot_repr in + Result.is_ok + (Page.Index.check_is_in_range + ~number_of_pages:(Page.pages_per_slot cryptobox_parameters) + page_index) + && Result.is_ok + (Dal_slot_index_repr.check_is_in_range + ~number_of_slots:dal_number_of_slots + index) + && valid_slot_id + ~dal_number_of_slots + ~dal_activation_level + ~dal_attestation_lag + ~origination_level + ~commit_inbox_level + Dal_slot_repr.Header.{published_level; index} + ~dal_attested_slots_validity_lag + let verify ~metadata ~dal_activation_level ~dal_attestation_lag ~dal_number_of_slots ~commit_inbox_level dal_parameters page_id dal_snapshot proof ~dal_attested_slots_validity_lag = let open Result_syntax in if - valid_slot_id + page_id_is_valid + dal_parameters ~dal_activation_level ~origination_level:metadata.Sc_rollup_metadata_repr.origination_level ~dal_attestation_lag ~commit_inbox_level ~dal_number_of_slots - Dal_slot_repr.(page_id.Page.slot_id) + page_id ~dal_attested_slots_validity_lag then let* input = @@ -303,13 +327,14 @@ module Dal_helpers = struct ~get_history confirmed_slots_history ~dal_attested_slots_validity_lag = let open Lwt_result_syntax in if - valid_slot_id + page_id_is_valid + dal_parameters ~dal_number_of_slots ~dal_activation_level ~origination_level:metadata.Sc_rollup_metadata_repr.origination_level ~dal_attestation_lag ~commit_inbox_level - Dal_slot_repr.(page_id.Page.slot_id) + page_id ~dal_attested_slots_validity_lag then let* proof, content_opt = -- GitLab From 2a183c8856d67698972962a52076aebc63bb8246 Mon Sep 17 00:00:00 2001 From: "iguerNL@Functori" Date: Thu, 15 Feb 2024 15:59:50 +0100 Subject: [PATCH 7/7] Proto/Dal: rename Sc_rollup.*.valid_slot_id to import_level_is_valid --- src/proto_alpha/lib_protocol/alpha_context.mli | 5 ++--- .../lib_protocol/sc_rollup_proof_repr.ml | 18 +++++------------- .../lib_protocol/sc_rollup_proof_repr.mli | 5 ++--- .../lib_sc_rollup_node/dal_pages_request.ml | 5 ++--- 4 files changed, 11 insertions(+), 22 deletions(-) diff --git a/src/proto_alpha/lib_protocol/alpha_context.mli b/src/proto_alpha/lib_protocol/alpha_context.mli index 6d986b788629..196a13c37333 100644 --- a/src/proto_alpha/lib_protocol/alpha_context.mli +++ b/src/proto_alpha/lib_protocol/alpha_context.mli @@ -3879,13 +3879,12 @@ module Sc_rollup : sig serialized t tzresult Lwt.t module Dal_helpers : sig - val valid_slot_id : - dal_number_of_slots:int -> + val import_level_is_valid : dal_activation_level:Raw_level.t option -> dal_attestation_lag:int -> origination_level:Raw_level.t -> commit_inbox_level:Raw_level.t -> - Dal.Slot.Header.id -> + published_level:Raw_level.t -> dal_attested_slots_validity_lag:int -> bool end diff --git a/src/proto_alpha/lib_protocol/sc_rollup_proof_repr.ml b/src/proto_alpha/lib_protocol/sc_rollup_proof_repr.ml index bc14037c6c92..562fa70d00ca 100644 --- a/src/proto_alpha/lib_protocol/sc_rollup_proof_repr.ml +++ b/src/proto_alpha/lib_protocol/sc_rollup_proof_repr.ml @@ -238,9 +238,8 @@ module Dal_helpers = struct The current DAL refutation integration is not resilient to DAL parameters changes when upgrading the protocol. The code needs to be adapted. *) - let valid_slot_id ~dal_number_of_slots ~dal_activation_level - ~dal_attestation_lag ~origination_level ~commit_inbox_level - Dal_slot_repr.Header.{published_level; index} + let import_level_is_valid ~dal_activation_level ~dal_attestation_lag + ~origination_level ~commit_inbox_level ~published_level ~dal_attested_slots_validity_lag = (* [dal_attestation_lag] is supposed to be positive. *) let open Raw_level_repr in @@ -255,12 +254,6 @@ module Dal_helpers = struct let not_too_recent = add published_level dal_attestation_lag <= commit_inbox_level in - let index_is_valid = - Result.is_ok - @@ Dal_slot_index_repr.check_is_in_range - ~number_of_slots:dal_number_of_slots - index - in (* An attested slot is not expired if its attested level (equal to [published_level + dal_attestation_lag]) is not further than [dal_attested_slots_validity_lag] from the given inbox level. *) @@ -272,7 +265,7 @@ module Dal_helpers = struct >= commit_inbox_level) in dal_was_activated && slot_published_after_origination && not_too_recent - && index_is_valid && ttl_not_expired + && ttl_not_expired let page_id_is_valid ~dal_number_of_slots ~dal_activation_level ~dal_attestation_lag ~origination_level ~commit_inbox_level @@ -288,13 +281,12 @@ module Dal_helpers = struct (Dal_slot_index_repr.check_is_in_range ~number_of_slots:dal_number_of_slots index) - && valid_slot_id - ~dal_number_of_slots + && import_level_is_valid ~dal_activation_level ~dal_attestation_lag ~origination_level ~commit_inbox_level - Dal_slot_repr.Header.{published_level; index} + ~published_level ~dal_attested_slots_validity_lag let verify ~metadata ~dal_activation_level ~dal_attestation_lag diff --git a/src/proto_alpha/lib_protocol/sc_rollup_proof_repr.mli b/src/proto_alpha/lib_protocol/sc_rollup_proof_repr.mli index 6862b3b7d548..968d4d2aebe1 100644 --- a/src/proto_alpha/lib_protocol/sc_rollup_proof_repr.mli +++ b/src/proto_alpha/lib_protocol/sc_rollup_proof_repr.mli @@ -292,13 +292,12 @@ module Dal_helpers : sig before producing the related commitment. We also check that the given slot ID's index is within the range of allowed slots thanks to [dal_number_of_slots]. *) - val valid_slot_id : - dal_number_of_slots:int -> + val import_level_is_valid : dal_activation_level:Raw_level_repr.t option -> dal_attestation_lag:int -> origination_level:Raw_level_repr.t -> commit_inbox_level:Raw_level_repr.t -> - Dal_slot_repr.Header.id -> + published_level:Raw_level_repr.t -> dal_attested_slots_validity_lag:int -> bool end diff --git a/src/proto_alpha/lib_sc_rollup_node/dal_pages_request.ml b/src/proto_alpha/lib_sc_rollup_node/dal_pages_request.ml index 30d749418e9a..9cdcee56c686 100644 --- a/src/proto_alpha/lib_sc_rollup_node/dal_pages_request.ml +++ b/src/proto_alpha/lib_sc_rollup_node/dal_pages_request.ml @@ -124,14 +124,13 @@ let slot_id_is_valid let commit_inbox_level_res = Raw_level.of_int32 inbox_level in match (origination_level_res, commit_inbox_level_res) with | Ok origination_level, Ok commit_inbox_level -> - Alpha_context.Sc_rollup.Proof.Dal_helpers.valid_slot_id + Alpha_context.Sc_rollup.Proof.Dal_helpers.import_level_is_valid ~dal_activation_level ~dal_attestation_lag:dal_constants.attestation_lag ~origination_level ~commit_inbox_level - ~dal_number_of_slots:dal_constants.number_of_slots ~dal_attested_slots_validity_lag - slot_id + ~published_level:slot_id.published_level | _ -> false let page_id_is_valid -- GitLab