diff --git a/src/kernel_sdk/CHANGES.md b/src/kernel_sdk/CHANGES.md index afa4ef52cc5dcc6bf423bc2ad6ef2d34882e2ea4..195c351ed47e2969012bbef10aa408e692f841c9 100644 --- a/src/kernel_sdk/CHANGES.md +++ b/src/kernel_sdk/CHANGES.md @@ -13,6 +13,7 @@ - `tezos-smart-rollup-installer-config`: add `eval_config_instr` and `upgrade_reveal_flow` functions to simplify kernel upgrades. - Update `Runtime::store_write` to write the whole slice; previously errored on slices longer than 2KB. +- Remove uses of `proto-nairobi` feature flag. Feature flag remains on crates, but does nothing. ### Installer client/kernel diff --git a/src/kernel_sdk/core/src/rollup_host.rs b/src/kernel_sdk/core/src/rollup_host.rs index d959c19e45c4053c8f952f76f95316bf8615f6a3..72b7f10e4443a5369ee409cca2d91aef54bd5ded 100644 --- a/src/kernel_sdk/core/src/rollup_host.rs +++ b/src/kernel_sdk/core/src/rollup_host.rs @@ -82,7 +82,6 @@ unsafe impl SmartRollupCore for RollupHost { core::store_delete(path, len) } - #[cfg(feature = "proto-nairobi")] unsafe fn store_delete_value(&self, path: *const u8, len: usize) -> i32 { core::store_delete_value(path, len) } diff --git a/src/kernel_sdk/core/src/smart_rollup_core.rs b/src/kernel_sdk/core/src/smart_rollup_core.rs index d8a10130b6115d293ea3e6ac540e4a875ed1a80d..ded5cf213da454d07652c5361c5ac9575326b171 100644 --- a/src/kernel_sdk/core/src/smart_rollup_core.rs +++ b/src/kernel_sdk/core/src/smart_rollup_core.rs @@ -231,7 +231,6 @@ pub unsafe trait SmartRollupCore { /// # Safety /// - `path` must be a ptr to a correctly path-encoded slice of bytes. /// - `len` must be the length of that slice. - #[cfg(feature = "proto-nairobi")] unsafe fn store_delete_value(&self, path: *const u8, len: usize) -> i32; /// See [store_list_size]. diff --git a/src/kernel_sdk/host/src/runtime.rs b/src/kernel_sdk/host/src/runtime.rs index d86b2925aad7a13bd421ed8094d82a7c45445337..ab9cccdfdc8147bffc240fe557974537868f7750 100644 --- a/src/kernel_sdk/host/src/runtime.rs +++ b/src/kernel_sdk/host/src/runtime.rs @@ -140,7 +140,6 @@ pub trait Runtime { /// /// Contrary to `store_write`, this replaces the value (if any) that /// was previously stored at `path`. - #[cfg(feature = "proto-nairobi")] fn store_write_all( &mut self, path: &T, @@ -151,7 +150,6 @@ pub trait Runtime { fn store_delete(&mut self, path: &T) -> Result<(), RuntimeError>; /// Delete value under `path` from storage. - #[cfg(feature = "proto-nairobi")] fn store_delete_value(&mut self, path: &T) -> Result<(), RuntimeError>; /// Count the number of subkeys under `prefix`. @@ -446,7 +444,6 @@ where } } - #[cfg(feature = "proto-nairobi")] fn store_write_all( &mut self, path: &T, @@ -480,7 +477,6 @@ where } } - #[cfg(feature = "proto-nairobi")] fn store_delete_value(&mut self, path: &T) -> Result<(), RuntimeError> { let res = unsafe { SmartRollupCore::store_delete_value(self, path.as_ptr(), path.size()) @@ -1126,7 +1122,6 @@ mod tests { } #[test] - #[cfg(feature = "proto-nairobi")] fn store_delete_value() { // Arrange const PATH: RefPath<'static> = diff --git a/src/kernel_sdk/mock/src/host.rs b/src/kernel_sdk/mock/src/host.rs index c900d38525ccade03eaeb5a5c8820a07efe4050d..06cc55d98cf01d4e7a5aabe1bcf47af29b51a3b4 100644 --- a/src/kernel_sdk/mock/src/host.rs +++ b/src/kernel_sdk/mock/src/host.rs @@ -143,7 +143,6 @@ unsafe impl SmartRollupCore for MockHost { .unwrap_or_else(Error::code) } - #[cfg(feature = "proto-nairobi")] unsafe fn store_delete_value(&self, path: *const u8, len: usize) -> i32 { let path = from_raw_parts(path, len); diff --git a/src/kernel_sdk/mock/src/lib.rs b/src/kernel_sdk/mock/src/lib.rs index 1f57bba9d7ce671e7fae1fa0fffb310efd1eb640..f9240c5f7ae18a182c31964031ba99c5746b0ca1 100644 --- a/src/kernel_sdk/mock/src/lib.rs +++ b/src/kernel_sdk/mock/src/lib.rs @@ -39,10 +39,10 @@ const TOO_MANY_REBOOT_FLAG_KEY: &str = "/readonly/kernel/env/too_many_reboot"; /// with a given inbox. Written as i32 (little-endian). const REBOOT_COUNTER_KEY: &str = "/readonly/kernel/env/reboot_counter"; -const MUMBAI_ACTIVATION_LEVEL: u32 = 3_268_609; -const MUMBAI_BLOCK_TIME: i64 = 15; -// Mumbai activates approximately at 2:24PM UTC on March 29th 2023. -const MUMBAI_ACTIVATION_TIMESTAMP: i64 = 1_680_096_240; +const NAIROBI_ACTIVATION_LEVEL: u32 = 3_760_129; +const NAIROBI_BLOCK_TIME: i64 = 15; +// Nairobi activated approximately at 0:07AM UTC on June 24th 2023. +const NAIROBI_ACTIVATION_TIMESTAMP: i64 = 1_687_561_630; /// The runtime host when _not_ running in **wasm**. #[derive(Debug)] @@ -105,10 +105,10 @@ impl MockHost { let mut state = HostState::default_with_metadata(RollupMetadata { raw_rollup_address, - origination_level: MUMBAI_ACTIVATION_LEVEL, + origination_level: NAIROBI_ACTIVATION_LEVEL, }); - state.curr_level = MUMBAI_ACTIVATION_LEVEL; + state.curr_level = NAIROBI_ACTIVATION_LEVEL; let info = info_for_level(state.curr_level as i32); @@ -259,9 +259,9 @@ impl MockHost { } fn info_for_level(level: i32) -> inbox::InfoPerLevel { - let timestamp = (level as i64 - 1 - (MUMBAI_ACTIVATION_LEVEL as i64)) - * MUMBAI_BLOCK_TIME - + MUMBAI_ACTIVATION_TIMESTAMP; + let timestamp = (level as i64 - 1 - (NAIROBI_ACTIVATION_LEVEL as i64)) + * NAIROBI_BLOCK_TIME + + NAIROBI_ACTIVATION_TIMESTAMP; let hash = crypto::blake2b::digest_256(×tamp.to_le_bytes()).unwrap(); diff --git a/src/kernel_sdk/mock/src/state/mod.rs b/src/kernel_sdk/mock/src/state/mod.rs index be306b583a4a2bb0e3e5cda96544585a753ee5e9..47c1bae677decbe650d2526ac0fc04c726cf2baf 100644 --- a/src/kernel_sdk/mock/src/state/mod.rs +++ b/src/kernel_sdk/mock/src/state/mod.rs @@ -53,12 +53,12 @@ impl Default for HostState { let metadata = RollupMetadata { raw_rollup_address, - origination_level: crate::MUMBAI_ACTIVATION_LEVEL, + origination_level: crate::NAIROBI_ACTIVATION_LEVEL, }; Self { store, metadata, - curr_level: crate::MUMBAI_ACTIVATION_LEVEL, + curr_level: crate::NAIROBI_ACTIVATION_LEVEL, curr_input_id: 0, input: vec![], } @@ -222,7 +222,6 @@ impl HostState { Ok(()) } - #[cfg(feature = "proto-nairobi")] pub(crate) fn handle_store_delete_value( &mut self, prefix: &[u8], diff --git a/src/kernel_sdk/mock/src/state/store.rs b/src/kernel_sdk/mock/src/state/store.rs index 79974e08180dbb2b983be6cb60756b6508de29db..56ec29c522b14860ff600c1dfdc8fb7024d5a429 100644 --- a/src/kernel_sdk/mock/src/state/store.rs +++ b/src/kernel_sdk/mock/src/state/store.rs @@ -149,7 +149,6 @@ impl Store { } } - #[cfg(feature = "proto-nairobi")] pub fn delete_value(&mut self, path: &str) { if let Some(mut node) = self.node_from_path_mut(path) { node.value = None; diff --git a/src/kernel_sdk/sdk/README.md b/src/kernel_sdk/sdk/README.md index c8040da5ee33d45a78a0236a87e49d6989dd96e0..e70e357e92b9340fbdd337617ff596d3cdd204db 100644 --- a/src/kernel_sdk/sdk/README.md +++ b/src/kernel_sdk/sdk/README.md @@ -61,7 +61,6 @@ export CC=clang | `dlmalloc` | ✅ | | Enables `dlmalloc` as default allocator | | `crypto` | ✅ | `tezos_crypto_rs` | Integration with `tezos_crypto_rs` types | | `data-encoding` | ✅ | `tezos_data_encoding` | Integration with `tezos_data_encoding` traits | -| `proto-nairobi` | ❌ | | Enables host functions introduced in `Nairobi` | | `testing` | ❌ | `crypto`, `tezos_smart_rollup_mock` | Enables `MockHost` for writing tests | ## Usage diff --git a/src/kernel_sequencer/src/sequencer_runtime.rs b/src/kernel_sequencer/src/sequencer_runtime.rs index af7c39a1939de47a599340dfcd446d70524bea92..13811f397b845776ac05a673b411d976c3fb6cd5 100644 --- a/src/kernel_sequencer/src/sequencer_runtime.rs +++ b/src/kernel_sequencer/src/sequencer_runtime.rs @@ -109,11 +109,21 @@ where self.host.store_write(&path, src, at_offset) } + fn store_write_all(&mut self, path: &T, src: &[u8]) -> Result<(), RuntimeError> { + let path = map_user_path(path)?; + self.host.store_write_all(&path, src) + } + fn store_delete(&mut self, path: &T) -> Result<(), RuntimeError> { let path = map_user_path(path)?; self.host.store_delete(&path) } + fn store_delete_value(&mut self, path: &T) -> Result<(), RuntimeError> { + let path = map_user_path(path)?; + self.host.store_delete_value(&path) + } + fn store_count_subkeys(&self, prefix: &T) -> Result { let prefix = map_user_path(prefix)?; self.host.store_count_subkeys(&prefix)