diff --git a/.github/workflows/checks.yaml b/.github/workflows/checks.yaml index 5037d44ed..181c84e15 100644 --- a/.github/workflows/checks.yaml +++ b/.github/workflows/checks.yaml @@ -20,7 +20,7 @@ jobs: strategy: matrix: toolchain: - - stable + - nightly features: - "" steps: @@ -32,6 +32,7 @@ jobs: uses: dtolnay/rust-toolchain@stable with: toolchain: ${{ matrix.toolchain }} + components: "rustfmt,clippy" # https://github.com/swatinem/rust-cache - name: Run Swatinem/rust-cache@v2 diff --git a/Makefile b/Makefile index 4e80bca3d..6ca9c8a36 100644 --- a/Makefile +++ b/Makefile @@ -28,9 +28,13 @@ build: ## Build (debug version) cargo build --features "$(FEATURES)" .PHONY: docker-image-rbuilder -docker-image-rubilder: ## Build a rbuilder Docker image +docker-image-rbuilder: ## Build a rbuilder Docker image docker build --platform linux/amd64 --target rbuilder-runtime --build-arg FEATURES="$(FEATURES)" . -t rbuilder +.PHONY: docker-image-op-rbuilder +docker-image-op-rbuilder: ## Build a rbuilder Docker image + docker build --platform linux/amd64 --target rbuilder-runtime --build-arg FEATURES="$(FEATURES)" --file Dockerfile.op-rbuilder . -t op-rbuilder + .PHONY: docker-image-test-relay docker-image-test-relay: ## Build a test relay Docker image docker build --platform linux/amd64 --target test-relay-runtime --build-arg FEATURES="$(FEATURES)" . -t test-relay @@ -39,9 +43,9 @@ docker-image-test-relay: ## Build a test relay Docker image .PHONY: lint lint: ## Run the linters - cargo fmt -- --check - cargo clippy --features "$(FEATURES)" -- -D warnings - cargo clippy -p op-rbuilder --features "$(FEATURES)" -- -D warnings + cargo +nightly fmt -- --check + cargo +nightly clippy --features "$(FEATURES)" -- -D warnings + cargo +nightly clippy -p op-rbuilder --features "$(FEATURES)" -- -D warnings .PHONY: test test: ## Run the tests for rbuilder and op-rbuilder @@ -54,10 +58,10 @@ lt: lint test ## Run "lint" and "test" .PHONY: fmt fmt: ## Format the code - cargo fmt - cargo fix --allow-staged - cargo clippy --features "$(FEATURES)" --fix --allow-staged - cargo clippy -p op-rbuilder --features "$(FEATURES)" --fix --allow-staged + cargo +nightly fmt + cargo +nightly fix --allow-staged + cargo +nightly clippy --features "$(FEATURES)" --fix --allow-staged + cargo +nightly clippy -p op-rbuilder --features "$(FEATURES)" --fix --allow-staged .PHONY: bench bench: ## Run benchmarks diff --git a/crates/eth-sparse-mpt/src/reth_sparse_trie/hash.rs b/crates/eth-sparse-mpt/src/reth_sparse_trie/hash.rs index 3c96c2125..dc43134cb 100644 --- a/crates/eth-sparse-mpt/src/reth_sparse_trie/hash.rs +++ b/crates/eth-sparse-mpt/src/reth_sparse_trie/hash.rs @@ -54,6 +54,7 @@ pub enum RootHashError { HashingAccountsTrie { err: ErrSparseNodeNotFound }, } +#[expect(clippy::result_large_err)] impl EthSparseTries { pub fn calculate_root_hash( &mut self, @@ -172,6 +173,7 @@ impl EthSparseTries { } } +#[expect(clippy::result_large_err)] fn hash_storage_trie( storage_trie: &mut DiffTrie, account: &Bytes, diff --git a/crates/eth-sparse-mpt/src/reth_sparse_trie/mod.rs b/crates/eth-sparse-mpt/src/reth_sparse_trie/mod.rs index 6fe27a082..5560e23b8 100644 --- a/crates/eth-sparse-mpt/src/reth_sparse_trie/mod.rs +++ b/crates/eth-sparse-mpt/src/reth_sparse_trie/mod.rs @@ -6,8 +6,10 @@ use reth_provider::{ providers::ConsistentDbView, BlockReader, DatabaseProviderFactory, ExecutionOutcome, StateCommitmentProvider, }; -use std::sync::Arc; -use std::time::{Duration, Instant}; +use std::{ + sync::Arc, + time::{Duration, Instant}, +}; pub mod change_set; pub mod hash; @@ -75,6 +77,7 @@ impl ChangedAccountData { } } +#[expect(clippy::result_large_err)] /// Prefetches data pub fn prefetch_tries_for_accounts<'a, Provider>( consistent_db_view: ConsistentDbView, diff --git a/crates/eth-sparse-mpt/src/reth_sparse_trie/shared_cache.rs b/crates/eth-sparse-mpt/src/reth_sparse_trie/shared_cache.rs index 45668f73c..33ecbbbbd 100644 --- a/crates/eth-sparse-mpt/src/reth_sparse_trie/shared_cache.rs +++ b/crates/eth-sparse-mpt/src/reth_sparse_trie/shared_cache.rs @@ -5,8 +5,7 @@ use crate::{ sparse_mpt::{AddNodeError, FixedTrie}, utils::HashMap, }; -use alloy_primitives::Bytes; -use alloy_primitives::B256; +use alloy_primitives::{Bytes, B256}; use alloy_trie::Nibbles; /// SparseTrieSharedCache is a storage for fetched parts of the ethereum tries diff --git a/crates/op-rbuilder/src/generator.rs b/crates/op-rbuilder/src/generator.rs index 7dc9670b7..7a9c48fe8 100644 --- a/crates/op-rbuilder/src/generator.rs +++ b/crates/op-rbuilder/src/generator.rs @@ -1,23 +1,24 @@ -use futures_util::Future; -use futures_util::FutureExt; -use reth::providers::BlockReaderIdExt; -use reth::{providers::StateProviderFactory, tasks::TaskSpawner}; -use reth_basic_payload_builder::HeaderForPayload; -use reth_basic_payload_builder::{BasicPayloadJobGeneratorConfig, PayloadConfig}; -use reth_node_api::PayloadBuilderAttributes; -use reth_node_api::PayloadKind; -use reth_payload_builder::PayloadJobGenerator; -use reth_payload_builder::{KeepPayloadJobAlive, PayloadBuilderError, PayloadJob}; +use futures_util::{Future, FutureExt}; +use reth::{ + providers::{BlockReaderIdExt, StateProviderFactory}, + tasks::TaskSpawner, +}; +use reth_basic_payload_builder::{BasicPayloadJobGeneratorConfig, HeaderForPayload, PayloadConfig}; +use reth_node_api::{PayloadBuilderAttributes, PayloadKind}; +use reth_payload_builder::{ + KeepPayloadJobAlive, PayloadBuilderError, PayloadJob, PayloadJobGenerator, +}; use reth_payload_primitives::BuiltPayload; use reth_primitives_traits::HeaderTy; use reth_revm::cached::CachedReads; -use std::sync::{Arc, Mutex}; -use std::time::SystemTime; -use std::time::UNIX_EPOCH; -use tokio::sync::oneshot; -use tokio::sync::Notify; -use tokio::time::Duration; -use tokio::time::Sleep; +use std::{ + sync::{Arc, Mutex}, + time::{SystemTime, UNIX_EPOCH}, +}; +use tokio::{ + sync::{oneshot, Notify}, + time::{Duration, Sleep}, +}; use tokio_util::sync::CancellationToken; use tracing::info; @@ -424,14 +425,15 @@ mod tests { use reth::tasks::TokioTaskExecutor; use reth_chain_state::ExecutedBlockWithTrieUpdates; use reth_node_api::NodePrimitives; - use reth_optimism_payload_builder::payload::OpPayloadBuilderAttributes; - use reth_optimism_payload_builder::OpPayloadPrimitives; + use reth_optimism_payload_builder::{payload::OpPayloadBuilderAttributes, OpPayloadPrimitives}; use reth_optimism_primitives::OpPrimitives; use reth_primitives::SealedBlock; use reth_provider::test_utils::MockEthProvider; use reth_testing_utils::generators::{random_block_range, BlockRangeParams}; - use tokio::task; - use tokio::time::{sleep, Duration}; + use tokio::{ + task, + time::{sleep, Duration}, + }; #[tokio::test] async fn test_block_cell_wait_for_value() { diff --git a/crates/op-rbuilder/src/integration/mod.rs b/crates/op-rbuilder/src/integration/mod.rs index 26a86d354..1fbb006c7 100644 --- a/crates/op-rbuilder/src/integration/mod.rs +++ b/crates/op-rbuilder/src/integration/mod.rs @@ -1,10 +1,9 @@ -use std::future::Future; -use std::path::Path; use std::{ fs::{File, OpenOptions}, + future::Future, io, io::prelude::*, - path::PathBuf, + path::{Path, PathBuf}, process::{Child, Command}, time::{Duration, SystemTime}, }; diff --git a/crates/op-rbuilder/src/main.rs b/crates/op-rbuilder/src/main.rs index 58c0e9c8a..380c83272 100644 --- a/crates/op-rbuilder/src/main.rs +++ b/crates/op-rbuilder/src/main.rs @@ -2,8 +2,7 @@ use clap::Parser; use monitoring::Monitoring; use reth::providers::CanonStateSubscriptions; use reth_optimism_cli::{chainspec::OpChainSpecParser, Cli}; -use reth_optimism_node::node::OpAddOnsBuilder; -use reth_optimism_node::OpNode; +use reth_optimism_node::{node::OpAddOnsBuilder, OpNode}; #[cfg(feature = "flashblocks")] use payload_builder::CustomOpPayloadBuilder; diff --git a/crates/op-rbuilder/src/metrics.rs b/crates/op-rbuilder/src/metrics.rs index 83659aa98..b83f5162f 100644 --- a/crates/op-rbuilder/src/metrics.rs +++ b/crates/op-rbuilder/src/metrics.rs @@ -1,4 +1,7 @@ -use reth_metrics::{metrics::Counter, metrics::Gauge, metrics::Histogram, Metrics}; +use reth_metrics::{ + metrics::{Counter, Gauge, Histogram}, + Metrics, +}; /// op-rbuilder metrics #[derive(Metrics, Clone)] diff --git a/crates/op-rbuilder/src/tester/mod.rs b/crates/op-rbuilder/src/tester/mod.rs index ecfde1a2c..0b879700c 100644 --- a/crates/op-rbuilder/src/tester/mod.rs +++ b/crates/op-rbuilder/src/tester/mod.rs @@ -18,8 +18,7 @@ use reth_node_api::{EngineTypes, PayloadTypes}; use reth_optimism_node::OpEngineTypes; use reth_payload_builder::PayloadId; use reth_rpc_layer::{AuthClientLayer, AuthClientService, JwtSecret}; -use rollup_boost::Flashblocks; -use rollup_boost::FlashblocksService; +use rollup_boost::{Flashblocks, FlashblocksService}; use serde_json::Value; use std::{ str::FromStr, diff --git a/crates/rbuilder/src/building/block_orders/prioritized_order_store.rs b/crates/rbuilder/src/building/block_orders/prioritized_order_store.rs index 91c5e45a6..4950f3028 100644 --- a/crates/rbuilder/src/building/block_orders/prioritized_order_store.rs +++ b/crates/rbuilder/src/building/block_orders/prioritized_order_store.rs @@ -16,11 +16,11 @@ use super::{OrderPriority, SimulatedOrderSink}; /// Order must implement BlockOrdersOrder which has priority(). This priority is used to sort the simulated orders. /// Usage: /// - Add new order (a little bit complex): -/// ALWAYS BE SURE THAT YOU CALLED update_onchain_nonces and updated the current state of all the needed nonces by the order -/// call insert_order +/// ALWAYS BE SURE THAT YOU CALLED update_onchain_nonces and updated the current state of all the needed nonces by the order +/// call insert_order /// - Get best order to execute -/// call pop_order to get the best order -/// if the order is executed call update_onchain_nonces to update all the changed nonces. +/// call pop_order to get the best order +/// if the order is executed call update_onchain_nonces to update all the changed nonces. /// - Remove orders: remove_orders. This is useful if we think this orders are no really good (failed to execute to often) #[derive(Debug, Clone)] pub struct PrioritizedOrderStore { diff --git a/crates/rbuilder/src/building/builders/block_building_helper.rs b/crates/rbuilder/src/building/builders/block_building_helper.rs index 294a14fa1..c86574171 100644 --- a/crates/rbuilder/src/building/builders/block_building_helper.rs +++ b/crates/rbuilder/src/building/builders/block_building_helper.rs @@ -55,11 +55,13 @@ pub trait BlockBuildingHelper: Send + Sync { /// This is the maximum profit that can reach the final fee recipient (max bid!). /// Maximum payout_tx_value value to pass to finalize_block. /// The main reason to get an error is if profit is so low that we can't pay the payout tx (that would mean negative block value!). + #[expect(clippy::result_large_err)] fn true_block_value(&self) -> Result; /// Eats the BlockBuildingHelper since once it's finished you should not use it anymore. /// payout_tx_value: If Some, added at the end of the block from coinbase to the final fee recipient. /// This only works if can_add_payout_tx. + #[expect(clippy::result_large_err)] fn finalize_block( self: Box, local_ctx: &mut ThreadBlockBuildingContext, @@ -94,6 +96,7 @@ impl Clone for BiddableUnfinishedBlock { } impl BiddableUnfinishedBlock { + #[expect(clippy::result_large_err)] pub fn new(block: Box) -> Result { let true_block_value = block.true_block_value()?; Ok(Self { @@ -185,7 +188,7 @@ impl BlockBuildingHelperFromProvider { /// - Query fee_recipient_balance_start. /// - pre_block_call. /// - Estimate payout tx cost. - #[allow(clippy::too_many_arguments)] + #[expect(clippy::result_large_err)] pub fn new( state_provider: Arc, building_ctx: BlockBuildingContext, @@ -272,6 +275,7 @@ impl BlockBuildingHelperFromProvider { } /// Inserts payout tx if necessary and updates built_block_trace. + #[expect(clippy::result_large_err)] fn finalize_block_execution( &mut self, local_ctx: &mut ThreadBlockBuildingContext, diff --git a/crates/rbuilder/src/building/builders/mock_block_building_helper.rs b/crates/rbuilder/src/building/builders/mock_block_building_helper.rs index c9085d38b..dc3fb85d3 100644 --- a/crates/rbuilder/src/building/builders/mock_block_building_helper.rs +++ b/crates/rbuilder/src/building/builders/mock_block_building_helper.rs @@ -1,17 +1,14 @@ -use crate::building::ThreadBlockBuildingContext; -use crate::live_builder::simulation::SimulatedOrderCommand; -use crate::primitives::SimValue; -use crate::provider::RootHasher; -use crate::roothash::RootHashError; use crate::{ building::{ BlockBuildingContext, BuiltBlockTrace, CriticalCommitOrderError, ExecutionError, - ExecutionResult, + ExecutionResult, ThreadBlockBuildingContext, }, - primitives::SimulatedOrder, + live_builder::simulation::SimulatedOrderCommand, + primitives::{SimValue, SimulatedOrder}, + provider::RootHasher, + roothash::RootHashError, }; -use alloy_primitives::B256; -use alloy_primitives::U256; +use alloy_primitives::{B256, U256}; use reth::providers::ExecutionOutcome; use reth_primitives::SealedBlock; use time::OffsetDateTime; diff --git a/crates/rbuilder/src/building/builders/parallel_builder/conflict_resolving_pool.rs b/crates/rbuilder/src/building/builders/parallel_builder/conflict_resolving_pool.rs index 85c9c4dbb..28805d529 100644 --- a/crates/rbuilder/src/building/builders/parallel_builder/conflict_resolving_pool.rs +++ b/crates/rbuilder/src/building/builders/parallel_builder/conflict_resolving_pool.rs @@ -15,8 +15,7 @@ use super::{ simulation_cache::SharedSimulationCache, ConflictGroup, ConflictResolutionResultPerGroup, ConflictTask, GroupId, ResolutionResult, TaskPriority, }; -use crate::building::BlockBuildingContext; -use crate::provider::StateProviderFactory; +use crate::{building::BlockBuildingContext, provider::StateProviderFactory}; pub type TaskQueue = Arc>; diff --git a/crates/rbuilder/src/building/builders/parallel_builder/conflict_task_generator.rs b/crates/rbuilder/src/building/builders/parallel_builder/conflict_task_generator.rs index 982021069..f71f2bcb7 100644 --- a/crates/rbuilder/src/building/builders/parallel_builder/conflict_task_generator.rs +++ b/crates/rbuilder/src/building/builders/parallel_builder/conflict_task_generator.rs @@ -65,7 +65,7 @@ impl ConflictTaskGenerator { self.add_processed_groups(&new_group, &mut processed_groups); // Remove all subset groups - if new_group.conflicting_group_ids.len() > 0 { + if !new_group.conflicting_group_ids.is_empty() { self.remove_conflicting_subset_groups(&new_group); } } diff --git a/crates/rbuilder/src/building/mod.rs b/crates/rbuilder/src/building/mod.rs index d22d64193..3fc032a01 100644 --- a/crates/rbuilder/src/building/mod.rs +++ b/crates/rbuilder/src/building/mod.rs @@ -635,6 +635,7 @@ impl PartialBlock { } /// returns (requests, withdrawals_root) + #[expect(clippy::result_large_err)] pub fn process_requests( &self, state: &mut BlockState, @@ -697,7 +698,7 @@ impl PartialBlock { } /// Mostly based on reth's (v1.2) default_ethereum_payload_builder. - #[allow(clippy::too_many_arguments)] + #[expect(clippy::result_large_err)] pub fn finalize( self, state: &mut BlockState, diff --git a/crates/rbuilder/src/building/sim.rs b/crates/rbuilder/src/building/sim.rs index afec8be3e..79f934315 100644 --- a/crates/rbuilder/src/building/sim.rs +++ b/crates/rbuilder/src/building/sim.rs @@ -22,6 +22,7 @@ use std::{ }; use tracing::{error, trace}; +#[expect(clippy::large_enum_variant)] #[derive(Debug)] pub enum OrderSimResult { Success(SimulatedOrder, Vec<(Address, u64)>), diff --git a/crates/rbuilder/src/live_builder/block_output/bidding/wallet_balance_watcher.rs b/crates/rbuilder/src/live_builder/block_output/bidding/wallet_balance_watcher.rs index db4468c57..7ea5881b1 100644 --- a/crates/rbuilder/src/live_builder/block_output/bidding/wallet_balance_watcher.rs +++ b/crates/rbuilder/src/live_builder/block_output/bidding/wallet_balance_watcher.rs @@ -6,8 +6,10 @@ use time::{error, OffsetDateTime}; use tracing::{error, info, warn}; use super::interfaces::LandedBlockInfo; -use crate::provider::StateProviderFactory; -use crate::telemetry::{add_subsidy_value, inc_subsidized_blocks}; +use crate::{ + provider::StateProviderFactory, + telemetry::{add_subsidy_value, inc_subsidized_blocks}, +}; /// Allows to monitor the evolution of our wallet for the landed blocks. /// It's useful for bidders to detect profit and subsidies. diff --git a/crates/rbuilder/src/live_builder/config.rs b/crates/rbuilder/src/live_builder/config.rs index 9ae04aeab..2d6851820 100644 --- a/crates/rbuilder/src/live_builder/config.rs +++ b/crates/rbuilder/src/live_builder/config.rs @@ -62,8 +62,8 @@ use reth_primitives::StaticFileSegment; use reth_provider::StaticFileProviderFactory; use serde::Deserialize; use serde_with::{serde_as, OneOrMany}; -use std::collections::HashMap; use std::{ + collections::HashMap, fmt::Debug, path::{Path, PathBuf}, str::FromStr, diff --git a/crates/rbuilder/src/live_builder/order_input/mod.rs b/crates/rbuilder/src/live_builder/order_input/mod.rs index 827566675..8342e6a26 100644 --- a/crates/rbuilder/src/live_builder/order_input/mod.rs +++ b/crates/rbuilder/src/live_builder/order_input/mod.rs @@ -11,14 +11,20 @@ use self::{ orderpool::{OrderPool, OrderPoolSubscriptionId}, replaceable_order_sink::ReplaceableOrderSink, }; -use crate::primitives::{serialize::CancelShareBundle, BundleReplacementData, Order}; -use crate::provider::StateProviderFactory; -use crate::telemetry::{set_current_block, set_ordepool_count}; +use crate::{ + primitives::{serialize::CancelShareBundle, BundleReplacementData, Order}, + provider::StateProviderFactory, + telemetry::{set_current_block, set_ordepool_count}, +}; use alloy_consensus::Header; use jsonrpsee::RpcModule; use parking_lot::Mutex; -use std::{net::Ipv4Addr, path::PathBuf, sync::Arc, time::Duration}; -use std::{path::Path, time::Instant}; +use std::{ + net::Ipv4Addr, + path::{Path, PathBuf}, + sync::Arc, + time::{Duration, Instant}, +}; use tokio::{sync::mpsc, task::JoinHandle}; use tokio_util::sync::CancellationToken; use tracing::{debug, error, info, trace, warn}; @@ -165,6 +171,7 @@ impl OrderInputConfig { } /// Commands we can get from RPC or mempool fetcher. +#[expect(clippy::large_enum_variant)] #[derive(Debug, Clone)] pub enum ReplaceableOrderPoolCommand { /// New or update order diff --git a/crates/rbuilder/src/live_builder/order_input/order_sink.rs b/crates/rbuilder/src/live_builder/order_input/order_sink.rs index ae8bd6b00..372326a52 100644 --- a/crates/rbuilder/src/live_builder/order_input/order_sink.rs +++ b/crates/rbuilder/src/live_builder/order_input/order_sink.rs @@ -46,7 +46,7 @@ impl Drop for OrderPrinter { } /////////////////////// - +#[expect(clippy::large_enum_variant)] #[derive(Debug, Clone)] pub enum OrderPoolCommand { //OrderSink::insert_order diff --git a/crates/rbuilder/src/mev_boost/sign_payload.rs b/crates/rbuilder/src/mev_boost/sign_payload.rs index 360f601d1..de7e6d4f7 100644 --- a/crates/rbuilder/src/mev_boost/sign_payload.rs +++ b/crates/rbuilder/src/mev_boost/sign_payload.rs @@ -3,13 +3,12 @@ use super::submission::{ SubmitBlockRequest, }; use crate::utils::u256decimal_serde_helper; -use alloy_eips::eip7685::Requests; -use alloy_eips::{eip2718::Encodable2718, eip4844::BlobTransactionSidecar}; +use alloy_eips::{eip2718::Encodable2718, eip4844::BlobTransactionSidecar, eip7685::Requests}; use alloy_primitives::{Address, BlockHash, Bytes, FixedBytes, B256, U256}; -use alloy_rpc_types_beacon::requests::ExecutionRequestsV4; use alloy_rpc_types_beacon::{ events::PayloadAttributesData, relay::{BidTrace, SignedBidSubmissionV2, SignedBidSubmissionV3, SignedBidSubmissionV4}, + requests::ExecutionRequestsV4, BlsPublicKey, }; use alloy_rpc_types_engine::{ diff --git a/crates/rbuilder/src/primitives/mod.rs b/crates/rbuilder/src/primitives/mod.rs index 2ab3fa9bb..51b80ab9c 100644 --- a/crates/rbuilder/src/primitives/mod.rs +++ b/crates/rbuilder/src/primitives/mod.rs @@ -339,6 +339,7 @@ impl ShareBundleTx { /// Body element of a mev share bundle. /// [`ShareBundleInner::body`] is formed by several of these. +#[expect(clippy::large_enum_variant)] #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub enum ShareBundleBody { Tx(ShareBundleTx), diff --git a/crates/rbuilder/src/primitives/order_builder.rs b/crates/rbuilder/src/primitives/order_builder.rs index 8fed70ccd..972dc7bde 100644 --- a/crates/rbuilder/src/primitives/order_builder.rs +++ b/crates/rbuilder/src/primitives/order_builder.rs @@ -7,6 +7,7 @@ use super::{ }; /// Helper object to build Orders for testing. +#[expect(clippy::large_enum_variant)] #[derive(Debug)] pub enum OrderBuilder { MempoolTx(Option), diff --git a/crates/rbuilder/src/provider/mod.rs b/crates/rbuilder/src/provider/mod.rs index 08f47d6da..0df1ea9df 100644 --- a/crates/rbuilder/src/provider/mod.rs +++ b/crates/rbuilder/src/provider/mod.rs @@ -1,5 +1,4 @@ -use crate::live_builder::simulation::SimulatedOrderCommand; -use crate::roothash::RootHashError; +use crate::{live_builder::simulation::SimulatedOrderCommand, roothash::RootHashError}; use alloy_consensus::Header; use alloy_eips::BlockNumHash; use alloy_primitives::{BlockHash, BlockNumber, B256}; @@ -49,6 +48,7 @@ pub trait RootHasher: std::fmt::Debug + Send + Sync { cancel: CancellationToken, ); + #[expect(clippy::result_large_err)] /// State root for changes outcome on top of parent block. fn state_root(&self, outcome: &ExecutionOutcome) -> Result; } diff --git a/crates/rbuilder/src/provider/reth_prov.rs b/crates/rbuilder/src/provider/reth_prov.rs index ab89d9656..282a0a666 100644 --- a/crates/rbuilder/src/provider/reth_prov.rs +++ b/crates/rbuilder/src/provider/reth_prov.rs @@ -1,11 +1,11 @@ -use crate::roothash::RootHashContext; -use crate::utils::RootHasherImpl; +use crate::{roothash::RootHashContext, utils::RootHasherImpl}; use alloy_consensus::Header; use alloy_eips::BlockNumHash; use alloy_primitives::{BlockHash, BlockNumber, B256}; use reth_errors::ProviderResult; -use reth_provider::{BlockReader, DatabaseProviderFactory, HeaderProvider}; -use reth_provider::{StateCommitmentProvider, StateProviderBox}; +use reth_provider::{ + BlockReader, DatabaseProviderFactory, HeaderProvider, StateCommitmentProvider, StateProviderBox, +}; use tracing::error; use super::{RootHasher, StateProviderFactory}; diff --git a/crates/rbuilder/src/roothash/mod.rs b/crates/rbuilder/src/roothash/mod.rs index 8dcaa6614..3ad63dfb3 100644 --- a/crates/rbuilder/src/roothash/mod.rs +++ b/crates/rbuilder/src/roothash/mod.rs @@ -109,7 +109,7 @@ where parallel_root_calculator.incremental_root() } -#[allow(clippy::too_many_arguments)] +#[expect(clippy::result_large_err)] pub fn calculate_state_root( provider: P, hasher: &HasherType, diff --git a/crates/rbuilder/src/telemetry/servers/mod.rs b/crates/rbuilder/src/telemetry/servers/mod.rs index 94665cfda..16ed23a2a 100644 --- a/crates/rbuilder/src/telemetry/servers/mod.rs +++ b/crates/rbuilder/src/telemetry/servers/mod.rs @@ -1,9 +1,9 @@ //! Telemetry contains two servers. //! //! - [full]: verbose server exposing detailed operational information about the -//! builder. +//! builder. //! - [redacted]: deliberately redacted server serves information suitable for -//! tdx builders to expose in real-time. +//! tdx builders to expose in real-time. //! //! The redacted server is seperate from the debug server because it may be desirable //! to expose debug and redacted data differently in tdx builders. e.g. redacted data diff --git a/crates/test-relay/src/relay.rs b/crates/test-relay/src/relay.rs index 42da66c37..b3558f311 100644 --- a/crates/test-relay/src/relay.rs +++ b/crates/test-relay/src/relay.rs @@ -20,15 +20,19 @@ use rbuilder::{ primitives::mev_boost::MevBoostRelaySlotInfoProvider, }; use serde::{Deserialize, Serialize}; -use std::time::Instant; -use std::{collections::hash_map::Entry, sync::Arc, time::Duration}; -use std::{io::Read, net::SocketAddr}; +use std::{ + collections::hash_map::Entry, + io::Read, + net::SocketAddr, + sync::Arc, + time::{Duration, Instant}, +}; use time::OffsetDateTime; use tokio::sync::mpsc; use tokio_util::sync::CancellationToken; use tracing::{debug, error, info, warn}; -use warp::body; use warp::{ + body, http::status::StatusCode, query, reply::{self, Reply},