From 9e39f13c29788e66645ea57f623555c4b36b8aff Mon Sep 17 00:00:00 2001 From: Marcin M <128217157+mm-zk@users.noreply.github.com> Date: Wed, 5 Jun 2024 10:54:59 +0200 Subject: [PATCH] feat!: updated boojum and nightly rust compiler (#2126) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## What ❔ * Updated boojum version, which allows us to update nightly rust compiler. ## Why ❔ * Our rust nightly is quite old (around 1 year) --- .dockerignore | 1 + .../build-contract-verifier-template.yml | 2 +- .github/workflows/build-core-template.yml | 2 +- Cargo.lock | 19 ++------ core/bin/external_node/src/helpers.rs | 12 +++-- core/lib/basic_types/src/web3/mod.rs | 44 +++++++++---------- .../src/eip712_signature/struct_builder.rs | 4 +- core/lib/dal/src/events_dal.rs | 4 +- core/lib/dal/src/models/mod.rs | 1 - .../lib/dal/src/models/storage_fee_monitor.rs | 16 ------- core/lib/dal/src/pruning_dal/tests.rs | 4 +- core/lib/eth_client/src/clients/mock.rs | 6 +-- core/lib/mempool/src/mempool_store.rs | 2 +- core/lib/merkle_tree/src/storage/patch.rs | 2 +- core/lib/mini_merkle_tree/src/lib.rs | 2 +- .../src/versions/vm_1_3_2/event_sink.rs | 3 +- .../versions/vm_1_3_2/oracles/tracer/utils.rs | 2 +- core/lib/multivm/src/versions/vm_1_3_2/vm.rs | 3 +- .../versions/vm_1_4_1/old_vm/event_sink.rs | 3 +- .../src/versions/vm_1_4_1/old_vm/utils.rs | 3 ++ .../src/versions/vm_1_4_1/tracers/utils.rs | 2 +- .../versions/vm_1_4_2/old_vm/event_sink.rs | 3 +- .../src/versions/vm_1_4_2/old_vm/utils.rs | 3 ++ .../src/versions/vm_1_4_2/tracers/utils.rs | 2 +- .../old_vm/event_sink.rs | 3 +- .../vm_boojum_integration/old_vm/utils.rs | 3 ++ .../vm_boojum_integration/tracers/utils.rs | 2 +- .../versions/vm_latest/old_vm/event_sink.rs | 3 +- .../src/versions/vm_latest/old_vm/utils.rs | 3 ++ .../vm_latest/tests/require_eip712.rs | 6 +-- .../src/versions/vm_latest/tracers/utils.rs | 2 +- .../multivm/src/versions/vm_m5/event_sink.rs | 3 +- .../src/versions/vm_m5/oracles/tracer.rs | 2 +- .../multivm/src/versions/vm_m6/event_sink.rs | 3 +- .../versions/vm_m6/oracles/tracer/utils.rs | 2 +- core/lib/multivm/src/versions/vm_m6/vm.rs | 3 +- .../old_vm/event_sink.rs | 3 +- .../vm_refunds_enhancement/old_vm/utils.rs | 3 ++ .../vm_refunds_enhancement/tracers/utils.rs | 2 +- .../vm_virtual_blocks/old_vm/event_sink.rs | 3 +- .../vm_virtual_blocks/old_vm/utils.rs | 3 ++ .../vm_virtual_blocks/tracers/traits.rs | 1 + .../vm_virtual_blocks/tracers/utils.rs | 2 +- core/lib/protobuf_config/src/secrets.rs | 2 +- core/lib/snapshots_applier/src/tests/mod.rs | 3 +- core/lib/state/src/shadow_storage.rs | 1 + core/lib/types/src/l1/mod.rs | 2 +- core/lib/types/src/protocol_upgrade.rs | 2 +- .../types/src/storage_writes_deduplicator.rs | 2 +- core/lib/types/src/transaction_request.rs | 2 +- core/node/eth_sender/src/publish_criterion.rs | 1 + core/node/eth_watch/src/lib.rs | 2 +- .../src/batch_status_updater/tests.rs | 4 +- core/node/node_sync/src/tests.rs | 2 +- .../src/request_processor.rs | 8 ++-- .../io/seal_logic/l2_block_seal_subtasks.rs | 2 +- core/tests/loadnext/src/sdk/mod.rs | 5 +-- docker/build-base/Dockerfile | 4 +- docker/proof-fri-gpu-compressor/Dockerfile | 4 +- docker/prover-gpu-fri/Dockerfile | 4 +- .../20.04_amd64_cuda_11_8.Dockerfile | 2 +- .../20.04_amd64_cuda_12_0.Dockerfile | 2 +- docker/zk-environment/Dockerfile | 4 +- prover/Cargo.lock | 19 ++------ prover/proof_fri_compressor/README.md | 2 +- prover/rust-toolchain | 2 +- prover/witness_vector_generator/README.md | 2 +- rust-toolchain | 2 +- 68 files changed, 135 insertions(+), 147 deletions(-) delete mode 100644 core/lib/dal/src/models/storage_fee_monitor.rs diff --git a/.dockerignore b/.dockerignore index 88f241c5275..ee2e8af78dd 100644 --- a/.dockerignore +++ b/.dockerignore @@ -46,3 +46,4 @@ contracts/.git !etc/env/dev.toml !etc/env/consensus_secrets.yaml !etc/env/consensus_config.yaml +!rust-toolchain diff --git a/.github/workflows/build-contract-verifier-template.yml b/.github/workflows/build-contract-verifier-template.yml index f4f6939389b..3c2e8377129 100644 --- a/.github/workflows/build-contract-verifier-template.yml +++ b/.github/workflows/build-contract-verifier-template.yml @@ -138,7 +138,7 @@ jobs: COMPONENT: ${{ matrix.components }} PLATFORM: ${{ matrix.platforms }} run: | - ci_run rustup default nightly-2023-08-21 + ci_run rustup default nightly-2024-05-07 platform=$(echo $PLATFORM | tr '/' '-') ci_run zk docker $DOCKER_ACTION --custom-tag=${IMAGE_TAG_SUFFIX} --platform=${PLATFORM} $COMPONENT - name: Show sccache stats diff --git a/.github/workflows/build-core-template.yml b/.github/workflows/build-core-template.yml index de8ab1505d8..1a8d4e610bb 100644 --- a/.github/workflows/build-core-template.yml +++ b/.github/workflows/build-core-template.yml @@ -147,7 +147,7 @@ jobs: COMPONENT: ${{ matrix.components }} PLATFORM: ${{ matrix.platforms }} run: | - ci_run rustup default nightly-2023-08-21 + ci_run rustup default nightly-2024-05-07 platform=$(echo $PLATFORM | tr '/' '-') ci_run zk docker $DOCKER_ACTION --custom-tag=${IMAGE_TAG_SUFFIX} --platform=${PLATFORM} $COMPONENT - name: Show sccache stats diff --git a/Cargo.lock b/Cargo.lock index af0d4d35220..fd45d942b14 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -692,7 +692,7 @@ dependencies = [ [[package]] name = "boojum" version = "0.2.0" -source = "git+https://github.com/matter-labs/era-boojum.git?branch=main#cd631c9a1d61ec21d7bd22eb74949d43ecfad0fd" +source = "git+https://github.com/matter-labs/era-boojum.git?branch=main#4bcb11f0610302110ae8109af01d5b652191b2f6" dependencies = [ "arrayvec 0.7.4", "bincode", @@ -709,7 +709,6 @@ dependencies = [ "lazy_static", "num-modular", "num_cpus", - "packed_simd", "pairing_ce 0.28.5 (git+https://github.com/matter-labs/pairing.git)", "rand 0.8.5", "rayon", @@ -1533,7 +1532,7 @@ dependencies = [ [[package]] name = "cs_derive" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-boojum.git?branch=main#cd631c9a1d61ec21d7bd22eb74949d43ecfad0fd" +source = "git+https://github.com/matter-labs/era-boojum.git?branch=main#4bcb11f0610302110ae8109af01d5b652191b2f6" dependencies = [ "proc-macro-error", "proc-macro2 1.0.69", @@ -1562,9 +1561,9 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.1.1" +version = "4.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348" dependencies = [ "cfg-if 1.0.0", "cpufeatures", @@ -4208,16 +4207,6 @@ dependencies = [ "sha2 0.10.8", ] -[[package]] -name = "packed_simd" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f9f08af0c877571712e2e3e686ad79efad9657dbf0f7c3c8ba943ff6c38932d" -dependencies = [ - "cfg-if 1.0.0", - "num-traits", -] - [[package]] name = "pairing_ce" version = "0.28.5" diff --git a/core/bin/external_node/src/helpers.rs b/core/bin/external_node/src/helpers.rs index 3cac556e1d7..1290428a231 100644 --- a/core/bin/external_node/src/helpers.rs +++ b/core/bin/external_node/src/helpers.rs @@ -176,13 +176,11 @@ impl ValidateChainIdsTask { .fuse(); let main_node_l2_check = Self::check_l2_chain_using_main_node(self.main_node_client, self.l2_chain_id).fuse(); - loop { - tokio::select! { - Err(err) = eth_client_check => return Err(err), - Err(err) = main_node_l1_check => return Err(err), - Err(err) = main_node_l2_check => return Err(err), - _ = stop_receiver.changed() => return Ok(()), - } + tokio::select! { + Err(err) = eth_client_check => Err(err), + Err(err) = main_node_l1_check => Err(err), + Err(err) = main_node_l2_check => Err(err), + _ = stop_receiver.changed() => Ok(()), } } } diff --git a/core/lib/basic_types/src/web3/mod.rs b/core/lib/basic_types/src/web3/mod.rs index d684b9b6c7b..af9cd1eea3f 100644 --- a/core/lib/basic_types/src/web3/mod.rs +++ b/core/lib/basic_types/src/web3/mod.rs @@ -867,6 +867,28 @@ pub enum SyncState { NotSyncing, } +// Sync info from subscription has a different key format +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "PascalCase")] +struct SubscriptionSyncInfo { + /// The block at which import began. + pub starting_block: U256, + /// The highest currently synced block. + pub current_block: U256, + /// The estimated highest block. + pub highest_block: U256, +} + +impl From for SyncInfo { + fn from(s: SubscriptionSyncInfo) -> Self { + Self { + starting_block: s.starting_block, + current_block: s.current_block, + highest_block: s.highest_block, + } + } +} + // The `eth_syncing` method returns either `false` or an instance of the sync info object. // This doesn't play particularly well with the features exposed by `serde_derive`, // so we use the custom impls below to ensure proper behavior. @@ -875,28 +897,6 @@ impl<'de> Deserialize<'de> for SyncState { where D: Deserializer<'de>, { - // Sync info from subscription has a different key format - #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] - #[serde(rename_all = "PascalCase")] - struct SubscriptionSyncInfo { - /// The block at which import began. - pub starting_block: U256, - /// The highest currently synced block. - pub current_block: U256, - /// The estimated highest block. - pub highest_block: U256, - } - - impl From for SyncInfo { - fn from(s: SubscriptionSyncInfo) -> Self { - Self { - starting_block: s.starting_block, - current_block: s.current_block, - highest_block: s.highest_block, - } - } - } - #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] struct SubscriptionSyncState { pub syncing: bool, diff --git a/core/lib/crypto_primitives/src/eip712_signature/struct_builder.rs b/core/lib/crypto_primitives/src/eip712_signature/struct_builder.rs index 74bf13c91e8..655e2d2d933 100644 --- a/core/lib/crypto_primitives/src/eip712_signature/struct_builder.rs +++ b/core/lib/crypto_primitives/src/eip712_signature/struct_builder.rs @@ -61,13 +61,13 @@ impl OuterTypeBuilder { let mut result = BTreeMap::new(); while let Some(front_element) = self.inner_members_queue.pop_front() { - if result.get(&front_element.member_type).is_some() { + if result.contains_key(&front_element.member_type) { continue; } result.insert(front_element.member_type.clone(), front_element.clone()); for inner_member in front_element.inner_members { - if inner_member.is_reference_type && result.get(&inner_member.member_type).is_none() + if inner_member.is_reference_type && !result.contains_key(&inner_member.member_type) { self.inner_members_queue.push_back(inner_member); } diff --git a/core/lib/dal/src/events_dal.rs b/core/lib/dal/src/events_dal.rs index 3a6b86afee9..ebe159577bb 100644 --- a/core/lib/dal/src/events_dal.rs +++ b/core/lib/dal/src/events_dal.rs @@ -84,7 +84,7 @@ impl EventsDal<'_, '_> { write_str!( &mut buffer, r"\\x{topic0:x}|\\x{topic1:x}|\\x{topic2:x}|\\x{topic3:x}|", - topic0 = EventTopic(event.indexed_topics.get(0)), + topic0 = EventTopic(event.indexed_topics.first()), topic1 = EventTopic(event.indexed_topics.get(1)), topic2 = EventTopic(event.indexed_topics.get(2)), topic3 = EventTopic(event.indexed_topics.get(3)) @@ -454,7 +454,7 @@ mod tests { tx_index_in_l2_block: 0, tx_initiator_address: Address::default(), }; - let first_events = vec![create_vm_event(0, 0), create_vm_event(1, 4)]; + let first_events = [create_vm_event(0, 0), create_vm_event(1, 4)]; let second_location = IncludedTxLocation { tx_hash: H256([2; 32]), tx_index_in_l2_block: 1, diff --git a/core/lib/dal/src/models/mod.rs b/core/lib/dal/src/models/mod.rs index 66ab73040d6..bc0e2c657da 100644 --- a/core/lib/dal/src/models/mod.rs +++ b/core/lib/dal/src/models/mod.rs @@ -5,7 +5,6 @@ use zksync_types::{ProtocolVersionId, H160, H256}; pub mod storage_eth_tx; pub mod storage_event; -pub mod storage_fee_monitor; pub mod storage_log; pub mod storage_oracle_info; pub mod storage_protocol_version; diff --git a/core/lib/dal/src/models/storage_fee_monitor.rs b/core/lib/dal/src/models/storage_fee_monitor.rs deleted file mode 100644 index 989308f79fe..00000000000 --- a/core/lib/dal/src/models/storage_fee_monitor.rs +++ /dev/null @@ -1,16 +0,0 @@ -#[derive(Debug, Clone, sqlx::FromRow)] -pub struct StorageBlockGasData { - pub number: i64, - - pub commit_gas: Option, - pub commit_base_gas_price: Option, - pub commit_priority_gas_price: Option, - - pub prove_gas: Option, - pub prove_base_gas_price: Option, - pub prove_priority_gas_price: Option, - - pub execute_gas: Option, - pub execute_base_gas_price: Option, - pub execute_priority_gas_price: Option, -} diff --git a/core/lib/dal/src/pruning_dal/tests.rs b/core/lib/dal/src/pruning_dal/tests.rs index ab976f52d21..7583065a8ec 100644 --- a/core/lib/dal/src/pruning_dal/tests.rs +++ b/core/lib/dal/src/pruning_dal/tests.rs @@ -44,7 +44,7 @@ async fn insert_l2_to_l1_logs(conn: &mut Connection<'_, Core>, l2_block_number: tx_index_in_l2_block: 0, tx_initiator_address: Address::default(), }; - let first_logs = vec![mock_l2_to_l1_log(), mock_l2_to_l1_log()]; + let first_logs = [mock_l2_to_l1_log(), mock_l2_to_l1_log()]; let second_location = IncludedTxLocation { tx_hash: H256([2; 32]), tx_index_in_l2_block: 1, @@ -71,7 +71,7 @@ async fn insert_events(conn: &mut Connection<'_, Core>, l2_block_number: L2Block tx_index_in_l2_block: 0, tx_initiator_address: Address::default(), }; - let first_events = vec![mock_vm_event(0), mock_vm_event(1)]; + let first_events = [mock_vm_event(0), mock_vm_event(1)]; let second_location = IncludedTxLocation { tx_hash: H256([2; 32]), tx_index_in_l2_block: 1, diff --git a/core/lib/eth_client/src/clients/mock.rs b/core/lib/eth_client/src/clients/mock.rs index a3f9dde7c6e..03162c2cfeb 100644 --- a/core/lib/eth_client/src/clients/mock.rs +++ b/core/lib/eth_client/src/clients/mock.rs @@ -31,9 +31,9 @@ impl From> for MockTx { fn from(tx: Vec) -> Self { let len = tx.len(); let recipient = Address::from_slice(&tx[len - 116..len - 96]); - let max_fee_per_gas = U256::try_from(&tx[len - 96..len - 64]).unwrap(); - let max_priority_fee_per_gas = U256::try_from(&tx[len - 64..len - 32]).unwrap(); - let nonce = U256::try_from(&tx[len - 32..]).unwrap().as_u64(); + let max_fee_per_gas = U256::from(&tx[len - 96..len - 64]); + let max_priority_fee_per_gas = U256::from(&tx[len - 64..len - 32]); + let nonce = U256::from(&tx[len - 32..]).as_u64(); let hash = { let mut buffer = [0_u8; 32]; buffer.copy_from_slice(&tx[..32]); diff --git a/core/lib/mempool/src/mempool_store.rs b/core/lib/mempool/src/mempool_store.rs index 51a8d708a74..334a4783a76 100644 --- a/core/lib/mempool/src/mempool_store.rs +++ b/core/lib/mempool/src/mempool_store.rs @@ -124,7 +124,7 @@ impl MempoolStore { /// Returns `true` if there is a transaction in the mempool satisfying the filter. pub fn has_next(&self, filter: &L2TxFilter) -> bool { - self.l1_transactions.get(&self.next_priority_id).is_some() + self.l1_transactions.contains_key(&self.next_priority_id) || self .l2_priority_queue .iter() diff --git a/core/lib/merkle_tree/src/storage/patch.rs b/core/lib/merkle_tree/src/storage/patch.rs index 21371dc51ca..329f748a891 100644 --- a/core/lib/merkle_tree/src/storage/patch.rs +++ b/core/lib/merkle_tree/src/storage/patch.rs @@ -305,7 +305,7 @@ impl WorkingPatchSet { if nibble_count == 0 { // Copy the root node to all parts. for part in &mut parts { - part.changes_by_nibble_count[0] = level.clone(); + part.changes_by_nibble_count[0].clone_from(&level); } } else { for (nibbles, node) in level { diff --git a/core/lib/mini_merkle_tree/src/lib.rs b/core/lib/mini_merkle_tree/src/lib.rs index f4f66d8fe61..deb92951876 100644 --- a/core/lib/mini_merkle_tree/src/lib.rs +++ b/core/lib/mini_merkle_tree/src/lib.rs @@ -79,7 +79,7 @@ where assert!( tree_depth_by_size(binary_tree_size) <= MAX_TREE_DEPTH, "Tree contains more than {} items; this is not supported", - 1 << MAX_TREE_DEPTH + 1u64 << MAX_TREE_DEPTH ); Self { diff --git a/core/lib/multivm/src/versions/vm_1_3_2/event_sink.rs b/core/lib/multivm/src/versions/vm_1_3_2/event_sink.rs index b9aea7e09af..7f7b44071a1 100644 --- a/core/lib/multivm/src/versions/vm_1_3_2/event_sink.rs +++ b/core/lib/multivm/src/versions/vm_1_3_2/event_sink.rs @@ -74,7 +74,8 @@ impl InMemoryEventSink { // since if rollbacks of parents were not appended anywhere we just still keep them for el in history { // we are time ordered here in terms of rollbacks - if tmp.get(&el.timestamp.0).is_some() { + #[allow(clippy::map_entry)] + if tmp.contains_key(&el.timestamp.0) { assert!(el.rollback); tmp.remove(&el.timestamp.0); } else { diff --git a/core/lib/multivm/src/versions/vm_1_3_2/oracles/tracer/utils.rs b/core/lib/multivm/src/versions/vm_1_3_2/oracles/tracer/utils.rs index 5ee8d8554b6..86ed02365a9 100644 --- a/core/lib/multivm/src/versions/vm_1_3_2/oracles/tracer/utils.rs +++ b/core/lib/multivm/src/versions/vm_1_3_2/oracles/tracer/utils.rs @@ -88,7 +88,7 @@ pub(crate) fn get_debug_log( let data = U256::from_big_endian(&data); // For long data, it is better to use hex-encoding for greater readability - let data_str = if data > U256::from(u64::max_value()) { + let data_str = if data > U256::from(u64::MAX) { let mut bytes = [0u8; 32]; data.to_big_endian(&mut bytes); format!("0x{}", hex::encode(bytes)) diff --git a/core/lib/multivm/src/versions/vm_1_3_2/vm.rs b/core/lib/multivm/src/versions/vm_1_3_2/vm.rs index a672811cefa..d76704f892b 100644 --- a/core/lib/multivm/src/versions/vm_1_3_2/vm.rs +++ b/core/lib/multivm/src/versions/vm_1_3_2/vm.rs @@ -213,7 +213,8 @@ impl VmInterface for Vm { }); let compressed_bytecodes: Vec<_> = filtered_deps.collect(); - self.last_tx_compressed_bytecodes = compressed_bytecodes.clone(); + self.last_tx_compressed_bytecodes + .clone_from(&compressed_bytecodes); crate::vm_1_3_2::vm_with_bootloader::push_transaction_to_bootloader_memory( &mut self.vm, &tx, diff --git a/core/lib/multivm/src/versions/vm_1_4_1/old_vm/event_sink.rs b/core/lib/multivm/src/versions/vm_1_4_1/old_vm/event_sink.rs index 5886ea06776..0c9d1bb01cb 100644 --- a/core/lib/multivm/src/versions/vm_1_4_1/old_vm/event_sink.rs +++ b/core/lib/multivm/src/versions/vm_1_4_1/old_vm/event_sink.rs @@ -164,7 +164,8 @@ impl InMemoryEventSink { // since if rollbacks of parents were not appended anywhere we just still keep them for el in history { // we are time ordered here in terms of rollbacks - if tmp.get(&el.timestamp.0).is_some() { + #[allow(clippy::map_entry)] + if tmp.contains_key(&el.timestamp.0) { assert!(el.rollback); tmp.remove(&el.timestamp.0); } else { diff --git a/core/lib/multivm/src/versions/vm_1_4_1/old_vm/utils.rs b/core/lib/multivm/src/versions/vm_1_4_1/old_vm/utils.rs index 3f63e9377c9..ef73f9a54c1 100644 --- a/core/lib/multivm/src/versions/vm_1_4_1/old_vm/utils.rs +++ b/core/lib/multivm/src/versions/vm_1_4_1/old_vm/utils.rs @@ -16,6 +16,7 @@ pub(crate) enum VmExecutionResult { Ok(Vec), Revert(Vec), Panic, + #[allow(dead_code)] MostLikelyDidNotFinish(Address, u16), } @@ -31,6 +32,7 @@ pub(crate) const fn aux_heap_page_from_base(base: MemoryPage) -> MemoryPage { MemoryPage(base.0 + 3) } +#[allow(dead_code)] pub(crate) trait FixedLengthIterator<'a, I: 'a, const N: usize>: Iterator where Self: 'a, @@ -42,6 +44,7 @@ where pub(crate) trait IntoFixedLengthByteIterator { type IntoIter: FixedLengthIterator<'static, u8, N>; + #[allow(dead_code)] fn into_le_iter(self) -> Self::IntoIter; fn into_be_iter(self) -> Self::IntoIter; } diff --git a/core/lib/multivm/src/versions/vm_1_4_1/tracers/utils.rs b/core/lib/multivm/src/versions/vm_1_4_1/tracers/utils.rs index 86becfbbc96..7b24e482b72 100644 --- a/core/lib/multivm/src/versions/vm_1_4_1/tracers/utils.rs +++ b/core/lib/multivm/src/versions/vm_1_4_1/tracers/utils.rs @@ -99,7 +99,7 @@ pub(crate) fn get_debug_log( let data = U256::from_big_endian(&data); // For long data, it is better to use hex-encoding for greater readability - let data_str = if data > U256::from(u64::max_value()) { + let data_str = if data > U256::from(u64::MAX) { let mut bytes = [0u8; 32]; data.to_big_endian(&mut bytes); format!("0x{}", hex::encode(bytes)) diff --git a/core/lib/multivm/src/versions/vm_1_4_2/old_vm/event_sink.rs b/core/lib/multivm/src/versions/vm_1_4_2/old_vm/event_sink.rs index a85259bbc2b..ce946ba77c8 100644 --- a/core/lib/multivm/src/versions/vm_1_4_2/old_vm/event_sink.rs +++ b/core/lib/multivm/src/versions/vm_1_4_2/old_vm/event_sink.rs @@ -164,7 +164,8 @@ impl InMemoryEventSink { // since if rollbacks of parents were not appended anywhere we just still keep them for el in history { // we are time ordered here in terms of rollbacks - if tmp.get(&el.timestamp.0).is_some() { + #[allow(clippy::map_entry)] + if tmp.contains_key(&el.timestamp.0) { assert!(el.rollback); tmp.remove(&el.timestamp.0); } else { diff --git a/core/lib/multivm/src/versions/vm_1_4_2/old_vm/utils.rs b/core/lib/multivm/src/versions/vm_1_4_2/old_vm/utils.rs index a7d592c4853..4ea0a526f6e 100644 --- a/core/lib/multivm/src/versions/vm_1_4_2/old_vm/utils.rs +++ b/core/lib/multivm/src/versions/vm_1_4_2/old_vm/utils.rs @@ -16,6 +16,7 @@ pub(crate) enum VmExecutionResult { Ok(Vec), Revert(Vec), Panic, + #[allow(dead_code)] MostLikelyDidNotFinish(Address, u16), } @@ -31,6 +32,7 @@ pub(crate) const fn aux_heap_page_from_base(base: MemoryPage) -> MemoryPage { MemoryPage(base.0 + 3) } +#[allow(dead_code)] pub(crate) trait FixedLengthIterator<'a, I: 'a, const N: usize>: Iterator where Self: 'a, @@ -42,6 +44,7 @@ where pub(crate) trait IntoFixedLengthByteIterator { type IntoIter: FixedLengthIterator<'static, u8, N>; + #[allow(dead_code)] fn into_le_iter(self) -> Self::IntoIter; fn into_be_iter(self) -> Self::IntoIter; } diff --git a/core/lib/multivm/src/versions/vm_1_4_2/tracers/utils.rs b/core/lib/multivm/src/versions/vm_1_4_2/tracers/utils.rs index 35f916d3c45..5832241d262 100644 --- a/core/lib/multivm/src/versions/vm_1_4_2/tracers/utils.rs +++ b/core/lib/multivm/src/versions/vm_1_4_2/tracers/utils.rs @@ -99,7 +99,7 @@ pub(crate) fn get_debug_log( let data = U256::from_big_endian(&data); // For long data, it is better to use hex-encoding for greater readability - let data_str = if data > U256::from(u64::max_value()) { + let data_str = if data > U256::from(u64::MAX) { let mut bytes = [0u8; 32]; data.to_big_endian(&mut bytes); format!("0x{}", hex::encode(bytes)) diff --git a/core/lib/multivm/src/versions/vm_boojum_integration/old_vm/event_sink.rs b/core/lib/multivm/src/versions/vm_boojum_integration/old_vm/event_sink.rs index 6638057643d..2bd932d42b7 100644 --- a/core/lib/multivm/src/versions/vm_boojum_integration/old_vm/event_sink.rs +++ b/core/lib/multivm/src/versions/vm_boojum_integration/old_vm/event_sink.rs @@ -164,7 +164,8 @@ impl InMemoryEventSink { // since if rollbacks of parents were not appended anywhere we just still keep them for el in history { // we are time ordered here in terms of rollbacks - if tmp.get(&el.timestamp.0).is_some() { + #[allow(clippy::map_entry)] + if tmp.contains_key(&el.timestamp.0) { assert!(el.rollback); tmp.remove(&el.timestamp.0); } else { diff --git a/core/lib/multivm/src/versions/vm_boojum_integration/old_vm/utils.rs b/core/lib/multivm/src/versions/vm_boojum_integration/old_vm/utils.rs index 342cc64ea2a..130bad49e38 100644 --- a/core/lib/multivm/src/versions/vm_boojum_integration/old_vm/utils.rs +++ b/core/lib/multivm/src/versions/vm_boojum_integration/old_vm/utils.rs @@ -19,6 +19,7 @@ pub(crate) enum VmExecutionResult { Ok(Vec), Revert(Vec), Panic, + #[allow(dead_code)] MostLikelyDidNotFinish(Address, u16), } @@ -34,6 +35,7 @@ pub(crate) const fn aux_heap_page_from_base(base: MemoryPage) -> MemoryPage { MemoryPage(base.0 + 3) } +#[allow(dead_code)] pub(crate) trait FixedLengthIterator<'a, I: 'a, const N: usize>: Iterator where Self: 'a, @@ -45,6 +47,7 @@ where pub(crate) trait IntoFixedLengthByteIterator { type IntoIter: FixedLengthIterator<'static, u8, N>; + #[allow(dead_code)] fn into_le_iter(self) -> Self::IntoIter; fn into_be_iter(self) -> Self::IntoIter; } diff --git a/core/lib/multivm/src/versions/vm_boojum_integration/tracers/utils.rs b/core/lib/multivm/src/versions/vm_boojum_integration/tracers/utils.rs index 58264d89c8e..aafdab9ee42 100644 --- a/core/lib/multivm/src/versions/vm_boojum_integration/tracers/utils.rs +++ b/core/lib/multivm/src/versions/vm_boojum_integration/tracers/utils.rs @@ -99,7 +99,7 @@ pub(crate) fn get_debug_log( let data = U256::from_big_endian(&data); // For long data, it is better to use hex-encoding for greater readability - let data_str = if data > U256::from(u64::max_value()) { + let data_str = if data > U256::from(u64::MAX) { let mut bytes = [0u8; 32]; data.to_big_endian(&mut bytes); format!("0x{}", hex::encode(bytes)) diff --git a/core/lib/multivm/src/versions/vm_latest/old_vm/event_sink.rs b/core/lib/multivm/src/versions/vm_latest/old_vm/event_sink.rs index e0569f3586d..58fad96dec8 100644 --- a/core/lib/multivm/src/versions/vm_latest/old_vm/event_sink.rs +++ b/core/lib/multivm/src/versions/vm_latest/old_vm/event_sink.rs @@ -164,7 +164,8 @@ impl InMemoryEventSink { // since if rollbacks of parents were not appended anywhere we just still keep them for el in history { // we are time ordered here in terms of rollbacks - if tmp.get(&el.timestamp.0).is_some() { + #[allow(clippy::map_entry)] + if tmp.contains_key(&el.timestamp.0) { assert!(el.rollback); tmp.remove(&el.timestamp.0); } else { diff --git a/core/lib/multivm/src/versions/vm_latest/old_vm/utils.rs b/core/lib/multivm/src/versions/vm_latest/old_vm/utils.rs index dd354e983d9..f7933b4f603 100644 --- a/core/lib/multivm/src/versions/vm_latest/old_vm/utils.rs +++ b/core/lib/multivm/src/versions/vm_latest/old_vm/utils.rs @@ -18,6 +18,7 @@ pub(crate) enum VmExecutionResult { Ok(Vec), Revert(Vec), Panic, + #[allow(dead_code)] MostLikelyDidNotFinish(Address, u16), } @@ -33,6 +34,7 @@ pub(crate) const fn aux_heap_page_from_base(base: MemoryPage) -> MemoryPage { MemoryPage(base.0 + 3) } +#[allow(dead_code)] pub(crate) trait FixedLengthIterator<'a, I: 'a, const N: usize>: Iterator where Self: 'a, @@ -44,6 +46,7 @@ where pub(crate) trait IntoFixedLengthByteIterator { type IntoIter: FixedLengthIterator<'static, u8, N>; + #[allow(dead_code)] fn into_le_iter(self) -> Self::IntoIter; fn into_be_iter(self) -> Self::IntoIter; } diff --git a/core/lib/multivm/src/versions/vm_latest/tests/require_eip712.rs b/core/lib/multivm/src/versions/vm_latest/tests/require_eip712.rs index e55aa407507..719d2a393af 100644 --- a/core/lib/multivm/src/versions/vm_latest/tests/require_eip712.rs +++ b/core/lib/multivm/src/versions/vm_latest/tests/require_eip712.rs @@ -1,5 +1,3 @@ -use std::convert::TryInto; - use ethabi::Token; use zksync_eth_signer::{EthereumSigner, TransactionParameters}; use zksync_system_constants::L2_BASE_TOKEN_ADDRESS; @@ -104,7 +102,7 @@ async fn test_require_eip712() { l2_tx.set_input(aa_tx, hash); // Pretend that operator is malicious and sets the initiator to the AA account. l2_tx.common_data.initiator_address = account_abstraction.address; - let transaction: Transaction = l2_tx.try_into().unwrap(); + let transaction: Transaction = l2_tx.into(); vm.vm.push_transaction(transaction); let result = vm.vm.execute(VmExecutionMode::OneTx); @@ -153,7 +151,7 @@ async fn test_require_eip712() { let mut l2_tx = L2Tx::from_request(aa_txn_request, 100000).unwrap(); l2_tx.set_input(encoded_tx, aa_hash); - let transaction: Transaction = l2_tx.try_into().unwrap(); + let transaction: Transaction = l2_tx.into(); vm.vm.push_transaction(transaction); vm.vm.execute(VmExecutionMode::OneTx); diff --git a/core/lib/multivm/src/versions/vm_latest/tracers/utils.rs b/core/lib/multivm/src/versions/vm_latest/tracers/utils.rs index 2aa827b8463..bad09617b8f 100644 --- a/core/lib/multivm/src/versions/vm_latest/tracers/utils.rs +++ b/core/lib/multivm/src/versions/vm_latest/tracers/utils.rs @@ -102,7 +102,7 @@ pub(crate) fn get_debug_log( let data = U256::from_big_endian(&data); // For long data, it is better to use hex-encoding for greater readability - let data_str = if data > U256::from(u64::max_value()) { + let data_str = if data > U256::from(u64::MAX) { let mut bytes = [0u8; 32]; data.to_big_endian(&mut bytes); format!("0x{}", hex::encode(bytes)) diff --git a/core/lib/multivm/src/versions/vm_m5/event_sink.rs b/core/lib/multivm/src/versions/vm_m5/event_sink.rs index 0bb1ee498f6..782aa1d662f 100644 --- a/core/lib/multivm/src/versions/vm_m5/event_sink.rs +++ b/core/lib/multivm/src/versions/vm_m5/event_sink.rs @@ -75,7 +75,8 @@ impl InMemoryEventSink { // since if rollbacks of parents were not appended anywhere we just still keep them for el in history.into_iter() { // we are time ordered here in terms of rollbacks - if tmp.get(&el.timestamp.0).is_some() { + #[allow(clippy::map_entry)] + if tmp.contains_key(&el.timestamp.0) { assert!(el.rollback); tmp.remove(&el.timestamp.0); } else { diff --git a/core/lib/multivm/src/versions/vm_m5/oracles/tracer.rs b/core/lib/multivm/src/versions/vm_m5/oracles/tracer.rs index 7094fb6f068..45f8ed88f83 100644 --- a/core/lib/multivm/src/versions/vm_m5/oracles/tracer.rs +++ b/core/lib/multivm/src/versions/vm_m5/oracles/tracer.rs @@ -799,7 +799,7 @@ fn get_debug_log(state: &VmLocalStateData<'_>, memory: &SimpleMemory) -> String let data = U256::from_big_endian(&data); // For long data, it is better to use hex-encoding for greater readability - let data_str = if data > U256::from(u64::max_value()) { + let data_str = if data > U256::from(u64::MAX) { let mut bytes = [0u8; 32]; data.to_big_endian(&mut bytes); format!("0x{}", hex::encode(bytes)) diff --git a/core/lib/multivm/src/versions/vm_m6/event_sink.rs b/core/lib/multivm/src/versions/vm_m6/event_sink.rs index 2fb5d934e96..56fe8dcb11e 100644 --- a/core/lib/multivm/src/versions/vm_m6/event_sink.rs +++ b/core/lib/multivm/src/versions/vm_m6/event_sink.rs @@ -67,7 +67,8 @@ impl InMemoryEventSink { // since if rollbacks of parents were not appended anywhere we just still keep them for el in history { // we are time ordered here in terms of rollbacks - if tmp.get(&el.timestamp.0).is_some() { + #[allow(clippy::map_entry)] + if tmp.contains_key(&el.timestamp.0) { assert!(el.rollback); tmp.remove(&el.timestamp.0); } else { diff --git a/core/lib/multivm/src/versions/vm_m6/oracles/tracer/utils.rs b/core/lib/multivm/src/versions/vm_m6/oracles/tracer/utils.rs index 2df22aa2d3f..4d963d08952 100644 --- a/core/lib/multivm/src/versions/vm_m6/oracles/tracer/utils.rs +++ b/core/lib/multivm/src/versions/vm_m6/oracles/tracer/utils.rs @@ -88,7 +88,7 @@ pub(crate) fn get_debug_log( let data = U256::from_big_endian(&data); // For long data, it is better to use hex-encoding for greater readability - let data_str = if data > U256::from(u64::max_value()) { + let data_str = if data > U256::from(u64::MAX) { let mut bytes = [0u8; 32]; data.to_big_endian(&mut bytes); format!("0x{}", hex::encode(bytes)) diff --git a/core/lib/multivm/src/versions/vm_m6/vm.rs b/core/lib/multivm/src/versions/vm_m6/vm.rs index 9f29fa995b6..36303c57744 100644 --- a/core/lib/multivm/src/versions/vm_m6/vm.rs +++ b/core/lib/multivm/src/versions/vm_m6/vm.rs @@ -241,7 +241,8 @@ impl VmInterface for Vm { }); let compressed_bytecodes: Vec<_> = filtered_deps.collect(); - self.last_tx_compressed_bytecodes = compressed_bytecodes.clone(); + self.last_tx_compressed_bytecodes + .clone_from(&compressed_bytecodes); crate::vm_m6::vm_with_bootloader::push_transaction_to_bootloader_memory( &mut self.vm, &tx, diff --git a/core/lib/multivm/src/versions/vm_refunds_enhancement/old_vm/event_sink.rs b/core/lib/multivm/src/versions/vm_refunds_enhancement/old_vm/event_sink.rs index 74dca71d10f..2af642d358d 100644 --- a/core/lib/multivm/src/versions/vm_refunds_enhancement/old_vm/event_sink.rs +++ b/core/lib/multivm/src/versions/vm_refunds_enhancement/old_vm/event_sink.rs @@ -74,7 +74,8 @@ impl InMemoryEventSink { // since if rollbacks of parents were not appended anywhere we just still keep them for el in history { // we are time ordered here in terms of rollbacks - if tmp.get(&el.timestamp.0).is_some() { + #[allow(clippy::map_entry)] + if tmp.contains_key(&el.timestamp.0) { assert!(el.rollback); tmp.remove(&el.timestamp.0); } else { diff --git a/core/lib/multivm/src/versions/vm_refunds_enhancement/old_vm/utils.rs b/core/lib/multivm/src/versions/vm_refunds_enhancement/old_vm/utils.rs index c2478edf7a8..6d7ab7e7a2d 100644 --- a/core/lib/multivm/src/versions/vm_refunds_enhancement/old_vm/utils.rs +++ b/core/lib/multivm/src/versions/vm_refunds_enhancement/old_vm/utils.rs @@ -19,6 +19,7 @@ pub(crate) enum VmExecutionResult { Ok(Vec), Revert(Vec), Panic, + #[allow(dead_code)] MostLikelyDidNotFinish(Address, u16), } @@ -34,6 +35,7 @@ pub(crate) const fn aux_heap_page_from_base(base: MemoryPage) -> MemoryPage { MemoryPage(base.0 + 3) } +#[allow(dead_code)] pub(crate) trait FixedLengthIterator<'a, I: 'a, const N: usize>: Iterator where Self: 'a, @@ -45,6 +47,7 @@ where pub(crate) trait IntoFixedLengthByteIterator { type IntoIter: FixedLengthIterator<'static, u8, N>; + #[allow(dead_code)] fn into_le_iter(self) -> Self::IntoIter; fn into_be_iter(self) -> Self::IntoIter; } diff --git a/core/lib/multivm/src/versions/vm_refunds_enhancement/tracers/utils.rs b/core/lib/multivm/src/versions/vm_refunds_enhancement/tracers/utils.rs index ccacea0cd7e..1d3e9a27276 100644 --- a/core/lib/multivm/src/versions/vm_refunds_enhancement/tracers/utils.rs +++ b/core/lib/multivm/src/versions/vm_refunds_enhancement/tracers/utils.rs @@ -96,7 +96,7 @@ pub(crate) fn get_debug_log( let data = U256::from_big_endian(&data); // For long data, it is better to use hex-encoding for greater readability - let data_str = if data > U256::from(u64::max_value()) { + let data_str = if data > U256::from(u64::MAX) { let mut bytes = [0u8; 32]; data.to_big_endian(&mut bytes); format!("0x{}", hex::encode(bytes)) diff --git a/core/lib/multivm/src/versions/vm_virtual_blocks/old_vm/event_sink.rs b/core/lib/multivm/src/versions/vm_virtual_blocks/old_vm/event_sink.rs index 00a03ca0adb..eadfe70d0a7 100644 --- a/core/lib/multivm/src/versions/vm_virtual_blocks/old_vm/event_sink.rs +++ b/core/lib/multivm/src/versions/vm_virtual_blocks/old_vm/event_sink.rs @@ -74,7 +74,8 @@ impl InMemoryEventSink { // since if rollbacks of parents were not appended anywhere we just still keep them for el in history { // we are time ordered here in terms of rollbacks - if tmp.get(&el.timestamp.0).is_some() { + #[allow(clippy::map_entry)] + if tmp.contains_key(&el.timestamp.0) { assert!(el.rollback); tmp.remove(&el.timestamp.0); } else { diff --git a/core/lib/multivm/src/versions/vm_virtual_blocks/old_vm/utils.rs b/core/lib/multivm/src/versions/vm_virtual_blocks/old_vm/utils.rs index 5be62e38437..834b9988f69 100644 --- a/core/lib/multivm/src/versions/vm_virtual_blocks/old_vm/utils.rs +++ b/core/lib/multivm/src/versions/vm_virtual_blocks/old_vm/utils.rs @@ -19,6 +19,7 @@ pub(crate) enum VmExecutionResult { Ok(Vec), Revert(Vec), Panic, + #[allow(dead_code)] MostLikelyDidNotFinish(Address, u16), } @@ -34,6 +35,7 @@ pub(crate) const fn aux_heap_page_from_base(base: MemoryPage) -> MemoryPage { MemoryPage(base.0 + 3) } +#[allow(dead_code)] pub(crate) trait FixedLengthIterator<'a, I: 'a, const N: usize>: Iterator where Self: 'a, @@ -45,6 +47,7 @@ where pub(crate) trait IntoFixedLengthByteIterator { type IntoIter: FixedLengthIterator<'static, u8, N>; + #[allow(dead_code)] fn into_le_iter(self) -> Self::IntoIter; fn into_be_iter(self) -> Self::IntoIter; } diff --git a/core/lib/multivm/src/versions/vm_virtual_blocks/tracers/traits.rs b/core/lib/multivm/src/versions/vm_virtual_blocks/tracers/traits.rs index 6d8fdab4e66..ed6ad67b5dc 100644 --- a/core/lib/multivm/src/versions/vm_virtual_blocks/tracers/traits.rs +++ b/core/lib/multivm/src/versions/vm_virtual_blocks/tracers/traits.rs @@ -49,6 +49,7 @@ pub trait VmTracer: } pub trait ToTracerPointer { + #[allow(dead_code)] fn into_tracer_pointer(self) -> TracerPointer; } diff --git a/core/lib/multivm/src/versions/vm_virtual_blocks/tracers/utils.rs b/core/lib/multivm/src/versions/vm_virtual_blocks/tracers/utils.rs index 1f3d27d9d20..ef8219ec2b4 100644 --- a/core/lib/multivm/src/versions/vm_virtual_blocks/tracers/utils.rs +++ b/core/lib/multivm/src/versions/vm_virtual_blocks/tracers/utils.rs @@ -96,7 +96,7 @@ pub(crate) fn get_debug_log( let data = U256::from_big_endian(&data); // For long data, it is better to use hex-encoding for greater readability - let data_str = if data > U256::from(u64::max_value()) { + let data_str = if data > U256::from(u64::MAX) { let mut bytes = [0u8; 32]; data.to_big_endian(&mut bytes); format!("0x{}", hex::encode(bytes)) diff --git a/core/lib/protobuf_config/src/secrets.rs b/core/lib/protobuf_config/src/secrets.rs index d67178534ec..91a05b31f19 100644 --- a/core/lib/protobuf_config/src/secrets.rs +++ b/core/lib/protobuf_config/src/secrets.rs @@ -48,7 +48,7 @@ impl ProtoRepr for proto::DatabaseSecrets { .transpose() .context("replica_url")?; if server_replica_url.is_none() { - server_replica_url = server_url.clone(); + server_replica_url.clone_from(&server_url) } let prover_url = self .prover_url diff --git a/core/lib/snapshots_applier/src/tests/mod.rs b/core/lib/snapshots_applier/src/tests/mod.rs index e61f7645537..4dcc6684193 100644 --- a/core/lib/snapshots_applier/src/tests/mod.rs +++ b/core/lib/snapshots_applier/src/tests/mod.rs @@ -493,7 +493,8 @@ async fn recovering_tokens() { }); } let (object_store, mut client) = prepare_clients(&expected_status, &storage_logs).await; - client.tokens_response = tokens.clone(); + + client.tokens_response.clone_from(&tokens); let task = SnapshotsApplierTask::new( SnapshotsApplierConfig::for_tests(), diff --git a/core/lib/state/src/shadow_storage.rs b/core/lib/state/src/shadow_storage.rs index 0a2bd0fa43e..9ef1aacca15 100644 --- a/core/lib/state/src/shadow_storage.rs +++ b/core/lib/state/src/shadow_storage.rs @@ -3,6 +3,7 @@ use zksync_types::{L1BatchNumber, StorageKey, StorageValue, H256}; use crate::ReadStorage; +#[allow(clippy::struct_field_names)] #[derive(Debug, Metrics)] #[metrics(prefix = "shadow_storage")] struct ShadowStorageMetrics { diff --git a/core/lib/types/src/l1/mod.rs b/core/lib/types/src/l1/mod.rs index 615574278d2..50d2bd9310e 100644 --- a/core/lib/types/src/l1/mod.rs +++ b/core/lib/types/src/l1/mod.rs @@ -147,7 +147,7 @@ impl serde::Serialize for L1TxCommonData { to_mint: self.to_mint, refund_recipient: self.refund_recipient, - /// DEPRECATED. + // DEPRECATED. deadline_block: 0, eth_hash: H256::default(), eth_block: self.eth_block, diff --git a/core/lib/types/src/protocol_upgrade.rs b/core/lib/types/src/protocol_upgrade.rs index 804a4083a82..2cd5953bd73 100644 --- a/core/lib/types/src/protocol_upgrade.rs +++ b/core/lib/types/src/protocol_upgrade.rs @@ -531,7 +531,7 @@ impl serde::Serialize for ProtocolUpgradeTxCommonData { to_mint: self.to_mint, refund_recipient: self.refund_recipient, - /// DEPRECATED. + // DEPRECATED. eth_hash: H256::default(), eth_block: self.eth_block, } diff --git a/core/lib/types/src/storage_writes_deduplicator.rs b/core/lib/types/src/storage_writes_deduplicator.rs index 19bf51b6eb0..a67686a7dc7 100644 --- a/core/lib/types/src/storage_writes_deduplicator.rs +++ b/core/lib/types/src/storage_writes_deduplicator.rs @@ -97,7 +97,7 @@ impl StorageWritesDeduplicator { .initial_values .entry(key) .or_insert(log.log_query.read_value); - let was_key_modified = self.modified_key_values.get(&key).is_some(); + let was_key_modified = self.modified_key_values.contains_key(&key); let modified_value = if log.log_query.rollback { (initial_value != log.log_query.read_value).then_some(log.log_query.read_value) } else { diff --git a/core/lib/types/src/transaction_request.rs b/core/lib/types/src/transaction_request.rs index c2526cc3ed6..f64cbbaa9c0 100644 --- a/core/lib/types/src/transaction_request.rs +++ b/core/lib/types/src/transaction_request.rs @@ -870,7 +870,7 @@ impl From for CallRequest { custom_signature: Some(tx.common_data.signature.clone()), paymaster_params: Some(tx.common_data.paymaster_params.clone()), }; - meta.factory_deps = tx.execute.factory_deps.clone(); + meta.factory_deps.clone_from(&tx.execute.factory_deps); let mut request = CallRequestBuilder::default() .from(tx.initiator_account()) .gas(tx.common_data.fee.gas_limit) diff --git a/core/node/eth_sender/src/publish_criterion.rs b/core/node/eth_sender/src/publish_criterion.rs index 6607c33eb90..52d861ce0af 100644 --- a/core/node/eth_sender/src/publish_criterion.rs +++ b/core/node/eth_sender/src/publish_criterion.rs @@ -16,6 +16,7 @@ use super::{metrics::METRICS, utils::agg_l1_batch_base_cost}; #[async_trait] pub trait L1BatchPublishCriterion: fmt::Debug + Send + Sync { + #[allow(dead_code)] // Takes `&self` receiver for the trait to be object-safe fn name(&self) -> &'static str; diff --git a/core/node/eth_watch/src/lib.rs b/core/node/eth_watch/src/lib.rs index d91427dafcb..7cb0064c3d7 100644 --- a/core/node/eth_watch/src/lib.rs +++ b/core/node/eth_watch/src/lib.rs @@ -184,7 +184,7 @@ impl EthWatch { let relevant_topic = processor.relevant_topic(); let processor_events = events .iter() - .filter(|event| event.topics.get(0) == Some(&relevant_topic)) + .filter(|event| event.topics.first() == Some(&relevant_topic)) .cloned() .collect(); processor diff --git a/core/node/node_sync/src/batch_status_updater/tests.rs b/core/node/node_sync/src/batch_status_updater/tests.rs index f3850ccfe36..e1386f985a0 100644 --- a/core/node/node_sync/src/batch_status_updater/tests.rs +++ b/core/node/node_sync/src/batch_status_updater/tests.rs @@ -64,9 +64,7 @@ impl L1BatchStagesMap { } fn get(&self, number: L1BatchNumber) -> Option { - let Some(index) = number.0.checked_sub(self.first_batch_number.0) else { - return None; - }; + let index = number.0.checked_sub(self.first_batch_number.0)?; self.stages.get(index as usize).copied() } diff --git a/core/node/node_sync/src/tests.rs b/core/node/node_sync/src/tests.rs index 2b15db9e24c..1d278d1af38 100644 --- a/core/node/node_sync/src/tests.rs +++ b/core/node/node_sync/src/tests.rs @@ -260,7 +260,7 @@ async fn external_io_basics(snapshot_recovery: bool) { .get_transaction_receipts(&[tx_hash]) .await .unwrap() - .get(0) + .first() .cloned() .expect("Transaction not persisted"); assert_eq!( diff --git a/core/node/proof_data_handler/src/request_processor.rs b/core/node/proof_data_handler/src/request_processor.rs index 010b805a472..582cb78f70c 100644 --- a/core/node/proof_data_handler/src/request_processor.rs +++ b/core/node/proof_data_handler/src/request_processor.rs @@ -110,7 +110,7 @@ impl RequestProcessor { .get_l1_batch_header(l1_batch_number) .await .unwrap() - .expect(&format!("Missing header for {}", l1_batch_number)); + .unwrap_or_else(|| panic!("Missing header for {}", l1_batch_number)); let minor_version = header.protocol_version.unwrap(); let protocol_version = self @@ -122,9 +122,9 @@ impl RequestProcessor { .get_protocol_version_with_latest_patch(minor_version) .await .unwrap() - .expect(&format!( - "Missing l1 verifier info for protocol version {minor_version}", - )); + .unwrap_or_else(|| { + panic!("Missing l1 verifier info for protocol version {minor_version}") + }); let batch_header = self .pool diff --git a/core/node/state_keeper/src/io/seal_logic/l2_block_seal_subtasks.rs b/core/node/state_keeper/src/io/seal_logic/l2_block_seal_subtasks.rs index 48d4696c57a..68fbd62bd97 100644 --- a/core/node/state_keeper/src/io/seal_logic/l2_block_seal_subtasks.rs +++ b/core/node/state_keeper/src/io/seal_logic/l2_block_seal_subtasks.rs @@ -517,7 +517,7 @@ mod tests { .get_transaction_receipts(&[tx_hash]) .await .unwrap() - .get(0) + .first() .cloned(); assert!(tx_receipt.is_none()); diff --git a/core/tests/loadnext/src/sdk/mod.rs b/core/tests/loadnext/src/sdk/mod.rs index b2abf133b5c..26c11eb7a2a 100644 --- a/core/tests/loadnext/src/sdk/mod.rs +++ b/core/tests/loadnext/src/sdk/mod.rs @@ -1,7 +1,6 @@ -pub use zksync_types::{self, ethabi, network::Network, web3}; +pub use zksync_types::{self, ethabi, web3}; pub use zksync_web3_decl::{ - jsonrpsee::http_client::*, - namespaces::{EthNamespaceClient, NetNamespaceClient, Web3NamespaceClient, ZksNamespaceClient}, + namespaces::{EthNamespaceClient, ZksNamespaceClient}, types, }; diff --git a/docker/build-base/Dockerfile b/docker/build-base/Dockerfile index 1fec4cca7e0..436843eed3d 100644 --- a/docker/build-base/Dockerfile +++ b/docker/build-base/Dockerfile @@ -9,7 +9,7 @@ ENV RUSTUP_HOME=/usr/local/rustup \ PATH=/usr/local/cargo/bin:$PATH RUN curl https://sh.rustup.rs -sSf | bash -s -- -y && \ - rustup install nightly-2023-08-21 && \ - rustup default nightly-2023-08-21 + rustup install nightly-2024-05-07 && \ + rustup default nightly-2024-05-07 RUN cargo install sqlx-cli --version 0.7.3 diff --git a/docker/proof-fri-gpu-compressor/Dockerfile b/docker/proof-fri-gpu-compressor/Dockerfile index ead48f6af6b..8249f123081 100644 --- a/docker/proof-fri-gpu-compressor/Dockerfile +++ b/docker/proof-fri-gpu-compressor/Dockerfile @@ -15,8 +15,8 @@ ENV RUSTUP_HOME=/usr/local/rustup \ PATH=/usr/local/cargo/bin:$PATH RUN curl https://sh.rustup.rs -sSf | bash -s -- -y && \ - rustup install nightly-2023-08-21 && \ - rustup default nightly-2023-08-21 + rustup install nightly-2024-05-07 && \ + rustup default nightly-2024-05-07 RUN curl -Lo cmake-3.24.2-linux-x86_64.sh https://github.com/Kitware/CMake/releases/download/v3.24.2/cmake-3.24.2-linux-x86_64.sh && \ chmod +x cmake-3.24.2-linux-x86_64.sh && \ diff --git a/docker/prover-gpu-fri/Dockerfile b/docker/prover-gpu-fri/Dockerfile index 152e768d298..1093ed9e4eb 100644 --- a/docker/prover-gpu-fri/Dockerfile +++ b/docker/prover-gpu-fri/Dockerfile @@ -14,8 +14,8 @@ ENV RUSTUP_HOME=/usr/local/rustup \ PATH=/usr/local/cargo/bin:$PATH RUN curl https://sh.rustup.rs -sSf | bash -s -- -y && \ - rustup install nightly-2023-08-21 && \ - rustup default nightly-2023-08-21 + rustup install nightly-2024-05-07 && \ + rustup default nightly-2024-05-07 RUN curl -Lo cmake-3.24.2-linux-x86_64.sh https://github.com/Kitware/CMake/releases/download/v3.24.2/cmake-3.24.2-linux-x86_64.sh && \ chmod +x cmake-3.24.2-linux-x86_64.sh && \ diff --git a/docker/zk-environment/20.04_amd64_cuda_11_8.Dockerfile b/docker/zk-environment/20.04_amd64_cuda_11_8.Dockerfile index bd77e680d5f..a50587e9a83 100644 --- a/docker/zk-environment/20.04_amd64_cuda_11_8.Dockerfile +++ b/docker/zk-environment/20.04_amd64_cuda_11_8.Dockerfile @@ -73,7 +73,7 @@ RUN echo "deb http://packages.cloud.google.com/apt cloud-sdk main" > /etc/apt/so gcloud config set metrics/environment github_docker_image RUN wget -c -O - https://sh.rustup.rs | bash -s -- -y -RUN rustup install nightly-2023-08-21 +RUN rustup install nightly-2024-05-07 RUN rustup default stable RUN cargo install --version=0.7.3 sqlx-cli RUN cargo install cargo-nextest diff --git a/docker/zk-environment/20.04_amd64_cuda_12_0.Dockerfile b/docker/zk-environment/20.04_amd64_cuda_12_0.Dockerfile index d0bb05fed16..9e56613f9ea 100644 --- a/docker/zk-environment/20.04_amd64_cuda_12_0.Dockerfile +++ b/docker/zk-environment/20.04_amd64_cuda_12_0.Dockerfile @@ -71,7 +71,7 @@ RUN echo "deb http://packages.cloud.google.com/apt cloud-sdk main" > /etc/apt/so gcloud config set metrics/environment github_docker_image RUN wget -c -O - https://sh.rustup.rs | bash -s -- -y -RUN rustup install nightly-2023-08-21 +RUN rustup install nightly-2024-05-07 RUN rustup default stable RUN cargo install --version=0.7.3 sqlx-cli RUN cargo install cargo-nextest diff --git a/docker/zk-environment/Dockerfile b/docker/zk-environment/Dockerfile index 1ed60f4b95f..9c9393ed518 100644 --- a/docker/zk-environment/Dockerfile +++ b/docker/zk-environment/Dockerfile @@ -138,5 +138,5 @@ ENV RUSTC_WRAPPER=/usr/local/cargo/bin/sccache FROM rust-lightweight as rust-lightweight-nightly -RUN rustup install nightly-2023-08-21 && \ - rustup default nightly-2023-08-21 +RUN rustup install nightly-2024-05-07 && \ + rustup default nightly-2024-05-07 diff --git a/prover/Cargo.lock b/prover/Cargo.lock index 733fdab1926..f6f0425fa3e 100644 --- a/prover/Cargo.lock +++ b/prover/Cargo.lock @@ -666,7 +666,7 @@ dependencies = [ [[package]] name = "boojum" version = "0.2.0" -source = "git+https://github.com/matter-labs/era-boojum?branch=main#cd631c9a1d61ec21d7bd22eb74949d43ecfad0fd" +source = "git+https://github.com/matter-labs/era-boojum?branch=main#4bcb11f0610302110ae8109af01d5b652191b2f6" dependencies = [ "arrayvec 0.7.4", "bincode", @@ -683,7 +683,6 @@ dependencies = [ "lazy_static", "num-modular", "num_cpus", - "packed_simd", "pairing_ce 0.28.5 (git+https://github.com/matter-labs/pairing.git)", "rand 0.8.5", "rayon", @@ -1435,7 +1434,7 @@ dependencies = [ [[package]] name = "cs_derive" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-boojum?branch=main#cd631c9a1d61ec21d7bd22eb74949d43ecfad0fd" +source = "git+https://github.com/matter-labs/era-boojum?branch=main#4bcb11f0610302110ae8109af01d5b652191b2f6" dependencies = [ "proc-macro-error", "proc-macro2 1.0.78", @@ -1516,9 +1515,9 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.1.1" +version = "4.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348" dependencies = [ "cfg-if 1.0.0", "cpufeatures", @@ -4103,16 +4102,6 @@ dependencies = [ "sha2 0.10.8", ] -[[package]] -name = "packed_simd" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f9f08af0c877571712e2e3e686ad79efad9657dbf0f7c3c8ba943ff6c38932d" -dependencies = [ - "cfg-if 1.0.0", - "num-traits", -] - [[package]] name = "pairing_ce" version = "0.28.5" diff --git a/prover/proof_fri_compressor/README.md b/prover/proof_fri_compressor/README.md index 3da29b08e7c..097a59e5d09 100644 --- a/prover/proof_fri_compressor/README.md +++ b/prover/proof_fri_compressor/README.md @@ -4,4 +4,4 @@ Used to compress FRI proof to Bellman proof that gets sent to L1. ## running -`zk f cargo +nightly-2023-08-21 run --release --bin zksync_proof_fri_compressor` +`zk f cargo +nightly-2024-05-07 run --release --bin zksync_proof_fri_compressor` diff --git a/prover/rust-toolchain b/prover/rust-toolchain index d7aace133ac..5aaef38cd79 100644 --- a/prover/rust-toolchain +++ b/prover/rust-toolchain @@ -1 +1 @@ -nightly-2024-02-01 +nightly-2024-05-07 diff --git a/prover/witness_vector_generator/README.md b/prover/witness_vector_generator/README.md index e287e4d53b2..dde192533db 100644 --- a/prover/witness_vector_generator/README.md +++ b/prover/witness_vector_generator/README.md @@ -4,4 +4,4 @@ Used to generate witness vectors using circuit and sending them to prover over T ## running -`zk f cargo +nightly-2023-08-21 run --release --bin zksync_witness_vector_generator` +`zk f cargo +nightly-2024-05-07 run --release --bin zksync_witness_vector_generator` diff --git a/rust-toolchain b/rust-toolchain index 9a87fb21ccf..5aaef38cd79 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1 +1 @@ -nightly-2023-08-21 +nightly-2024-05-07