diff --git a/etherlink/kernel_evm/kernel/src/dal.rs b/etherlink/kernel_evm/kernel/src/dal.rs index 67d5f7f8de307f807e9e55bd1c9626ea8caf96fa..24daa25bf51a61d0d7dff9a042bdbdb7516122c5 100644 --- a/etherlink/kernel_evm/kernel/src/dal.rs +++ b/etherlink/kernel_evm/kernel/src/dal.rs @@ -21,6 +21,9 @@ enum ParsedInput { Padding, } +// None means that we use DAL instead of Adaptive DAL +const ADAL_ATTESTATION_THRESHOLD_PER_MIL: Option = Some(210); + // Import all the pages of a DAL slot and concatenate them. fn import_dal_slot( host: &mut Host, @@ -40,17 +43,31 @@ fn import_dal_slot( let number_of_pages = (params.slot_size / params.page_size) as i16; let mut page_start = 0usize; for page_index in 0..number_of_pages { - let imported_page_len = host - // TODO/ADAL: Have a variant that uses ADAL at some moment - .reveal_dal_page2( - published_level as i32, - slot_index, - page_index, - &mut slot[page_start..page_start + page_size], - ) - .unwrap_or(0); + let imported_page_len = if let Some(attestation_threshold_per_mil) = ADAL_ATTESTATION_THRESHOLD_PER_MIL { + // Call reveal_adal_page when ADAL_ATTESTATION_THRESHOLD_PER_MIL is Some(value) + host + .reveal_adal_page( + published_level as i32, + slot_index, + page_index, + attestation_threshold_per_mil, + &mut slot[page_start..page_start + page_size], + ) + .unwrap_or(0) + } else { + // Call reveal_dal_page2 when ADAL_ATTESTATION_THRESHOLD_PER_MIL is None + host + .reveal_dal_page2( + published_level as i32, + slot_index, + page_index, + &mut slot[page_start..page_start + page_size], + ) + .unwrap_or(0) + }; + if imported_page_len == page_size { - page_start += imported_page_len + page_start += imported_page_len; } else { return None; }