diff --git a/binaries/cuprated/src/blockchain/fast_sync.rs b/binaries/cuprated/src/blockchain/fast_sync.rs index 33bf9b3a..21d99778 100644 --- a/binaries/cuprated/src/blockchain/fast_sync.rs +++ b/binaries/cuprated/src/blockchain/fast_sync.rs @@ -5,6 +5,8 @@ use cuprate_helper::network::Network; /// The hashes of the compiled in fast sync file. static FAST_SYNC_HASHES: &[[u8; 32]] = unsafe { let bytes = include_bytes!("./fast_sync/fast_sync_hashes.bin"); + + #[expect(clippy::manual_assert, reason = "assert is not const")] if bytes.len() % 32 != 0 { panic!() } diff --git a/binaries/cuprated/src/blockchain/manager.rs b/binaries/cuprated/src/blockchain/manager.rs index b18d1456..782e6efe 100644 --- a/binaries/cuprated/src/blockchain/manager.rs +++ b/binaries/cuprated/src/blockchain/manager.rs @@ -116,7 +116,7 @@ impl BlockchainManager { batch, ).await; - drop(permit) + drop(permit); } Some(incoming_command) = command_rx.recv() => { self.handle_command(incoming_command).await; diff --git a/binaries/cuprated/src/blockchain/syncer.rs b/binaries/cuprated/src/blockchain/syncer.rs index 52b3def5..8a2c218f 100644 --- a/binaries/cuprated/src/blockchain/syncer.rs +++ b/binaries/cuprated/src/blockchain/syncer.rs @@ -30,6 +30,7 @@ pub enum SyncerError { /// The syncer tasks that makes sure we are fully synchronised with our connected peers. #[instrument(level = "debug", skip_all)] +#[expect(clippy::significant_drop_tightening)] pub async fn syncer<CN>( mut context_svc: BlockchainContextService, our_chain: CN, @@ -56,7 +57,7 @@ where let semaphore = Arc::new(Semaphore::new(1)); - let mut sync_permit = Arc::new(semaphore.clone().acquire_owned().await.unwrap()); + let mut sync_permit = Arc::new(Arc::clone(&semaphore).acquire_owned().await.unwrap()); loop { check_sync_interval.tick().await; @@ -80,7 +81,7 @@ where tracing::info!("Received stop signal, stopping block downloader"); drop(sync_permit); - sync_permit = Arc::new(semaphore.clone().acquire_owned().await.unwrap()); + sync_permit = Arc::new(Arc::clone(&semaphore).acquire_owned().await.unwrap()); break; } @@ -89,7 +90,7 @@ where // Wait for all references to the permit have been dropped (which means all blocks in the queue // have been handled before checking if we are synced. drop(sync_permit); - sync_permit = Arc::new(semaphore.clone().acquire_owned().await.unwrap()); + sync_permit = Arc::new(Arc::clone(&semaphore).acquire_owned().await.unwrap()); let blockchain_context = context_svc.blockchain_context(); diff --git a/consensus/fast-sync/src/create.rs b/consensus/fast-sync/src/create.rs index bd25acbf..31938d13 100644 --- a/consensus/fast-sync/src/create.rs +++ b/consensus/fast-sync/src/create.rs @@ -29,9 +29,8 @@ async fn read_batch( let response_channel = handle.ready().await?.call(request); let response = response_channel.await?; - let block_ids = match response { - BlockchainResponse::BlockHashInRange(block_id) => block_id, - _ => unreachable!(), + let BlockchainResponse::BlockHashInRange(block_ids) = response else { + unreachable!() }; Ok(block_ids) @@ -67,7 +66,7 @@ async fn main() { } height += BATCH_SIZE; - println!("height: {}", height); + println!("height: {height}"); } drop(read_handle); diff --git a/consensus/fast-sync/src/fast_sync.rs b/consensus/fast-sync/src/fast_sync.rs index 44e5eddb..f1a7a8c2 100644 --- a/consensus/fast-sync/src/fast_sync.rs +++ b/consensus/fast-sync/src/fast_sync.rs @@ -112,7 +112,7 @@ pub async fn validate_entries<N: NetworkZone>( .ids .drain((back.ids.len() - hashes_stop_diff_last_height)..) .collect(), - peer: back.peer.clone(), + peer: back.peer, handle: back.handle.clone(), }); @@ -169,7 +169,7 @@ pub async fn validate_entries<N: NetworkZone>( } /// Get the index of the hash that contains this block in the fast sync hashes. -fn get_hash_index_for_height(height: usize) -> usize { +const fn get_hash_index_for_height(height: usize) -> usize { height / FAST_SYNC_BATCH_LEN } @@ -191,9 +191,10 @@ pub fn block_to_verified_block_information( panic!("fast sync block invalid"); }; - if *height != blockchin_ctx.chain_height { - panic!("fast sync block invalid"); - } + assert_eq!( + *height, blockchin_ctx.chain_height, + "fast sync block invalid" + ); let mut txs = txs .into_iter() diff --git a/p2p/p2p/src/block_downloader/chain_tracker.rs b/p2p/p2p/src/block_downloader/chain_tracker.rs index cdd524cf..778c881d 100644 --- a/p2p/p2p/src/block_downloader/chain_tracker.rs +++ b/p2p/p2p/src/block_downloader/chain_tracker.rs @@ -50,7 +50,7 @@ pub(crate) enum ChainTrackerError { NewEntryIsEmpty, /// The new chain entry does not follow from the top of our chain tracker. NewEntryDoesNotFollowChain, - #[allow(dead_code)] // This is used for logging + #[expect(dead_code)] // This is used for logging ChainSvcError(tower::BoxError), } diff --git a/storage/blockchain/src/service/read.rs b/storage/blockchain/src/service/read.rs index 6309a30f..c922465c 100644 --- a/storage/blockchain/src/service/read.rs +++ b/storage/blockchain/src/service/read.rs @@ -285,12 +285,12 @@ fn block_hash_in_range(env: &ConcreteEnv, range: Range<usize>, chain: Chain) -> .map(|block_height| { let tx_ro = tx_ro.get_or_try(|| env_inner.tx_ro())?; - let table_block_infos = env_inner.open_db_ro::<BlockInfos>(&tx_ro)?; + let table_block_infos = env_inner.open_db_ro::<BlockInfos>(tx_ro)?; let block_hash = match chain { Chain::Main => get_block_info(&block_height, &table_block_infos)?.block_hash, Chain::Alt(chain) => { - get_alt_block_hash(&block_height, chain, &env_inner.open_tables(&tx_ro)?)? + get_alt_block_hash(&block_height, chain, &env_inner.open_tables(tx_ro)?)? } };