From 29b1e73d5b7566d76f44b5ecd59d0681de513452 Mon Sep 17 00:00:00 2001 From: evalir Date: Mon, 29 Sep 2025 14:10:54 +0200 Subject: [PATCH 1/6] feat(deps): bump reth & related deps to 1.8.1 release spec --- Cargo.toml | 57 ++++++++++++++++++----------------- crates/db/src/provider.rs | 2 +- crates/node-types/Cargo.toml | 1 - crates/node-types/src/lib.rs | 3 -- crates/rpc/examples/filler.rs | 1 + crates/rpc/src/ctx.rs | 24 +++++++-------- crates/rpc/src/receipts.rs | 13 ++++---- 7 files changed, 51 insertions(+), 50 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index d068038..b031ffa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -41,48 +41,48 @@ signet-rpc = { version = "0.9.0", path = "crates/rpc" } init4-bin-base = { version = "0.10.0", features = ["alloy"] } -signet-bundle = "0.9.0" -signet-constants = "0.9.0" -signet-evm = "0.9.0" -signet-extract = "0.9.0" -signet-tx-cache = "0.9.0" -signet-types = "0.9.0" -signet-zenith = "0.9.0" +signet-bundle = "0.11.0" +signet-constants = "0.11.0" +signet-evm = "0.11.0" +signet-extract = "0.11.0" +signet-tx-cache = "0.11.0" +signet-types = "0.11.0" +signet-zenith = "0.11.0" # ajj ajj = { version = "0.3.4" } # trevm -trevm = { version = "0.27.0", features = ["full_env_cfg"] } +trevm = { version = "0.29.0", features = ["full_env_cfg"] } # Alloy periphery crates -alloy = { version = "1.0.19", features = [ +alloy-core = { version = "1.4" } +alloy = { version = "1.0.35", features = [ "full", "rpc-types-beacon", "rpc-types-mev", "genesis", "arbitrary", ] } -alloy-contract = { version = "1.0.19", features = ["pubsub"] } +alloy-contract = { version = "1.0.35", features = ["pubsub"] } # Reth -reth = { git = "https://github.com/paradigmxyz/reth", tag = "v1.5.1" } -reth-ethereum = { git = "https://github.com/paradigmxyz/reth", tag = "v1.5.1" } -reth-chainspec = { git = "https://github.com/paradigmxyz/reth", tag = "v1.5.1" } -reth-db = { git = "https://github.com/paradigmxyz/reth", tag = "v1.5.1" } -reth-db-common = { git = "https://github.com/paradigmxyz/reth", tag = "v1.5.1" } -reth-eth-wire-types = { git = "https://github.com/paradigmxyz/reth", tag = "v1.5.1" } -reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth", tag = "v1.5.1" } -reth-exex = { git = "https://github.com/paradigmxyz/reth", tag = "v1.5.1" } -reth-exex-test-utils = { git = "https://github.com/paradigmxyz/reth", tag = "v1.5.1" } -reth-network-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.5.1" } -reth-network-peers = { git = "https://github.com/paradigmxyz/reth", tag = "v1.5.1" } -reth-node-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.5.1" } -reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", tag = "v1.5.1" } -reth-prune-types = { git = "https://github.com/paradigmxyz/reth", tag = "v1.5.1" } -reth-rpc-eth-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.5.1" } -reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", tag = "v1.5.1" } -reth-trie-db = { git = "https://github.com/paradigmxyz/reth", tag = "v1.5.1" } +reth = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-ethereum = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-chainspec = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-db = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-db-common = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-eth-wire-types = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-exex = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-exex-test-utils = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-network-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-network-peers = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-node-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-prune-types = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-rpc-eth-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } +reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", tag = "v1.8.1" } # Foundry periphery foundry-blob-explorers = "0.17" @@ -117,3 +117,6 @@ uuid = "1.16.0" # Test Utils alloy-rlp = "0.3.11" tempfile = "3.17.0" + +[patch.crates-io] +init4-bin-base = {path = "../bin-base" } \ No newline at end of file diff --git a/crates/db/src/provider.rs b/crates/db/src/provider.rs index 9096f9a..5b74de6 100644 --- a/crates/db/src/provider.rs +++ b/crates/db/src/provider.rs @@ -445,7 +445,7 @@ where // // last reviewed at tag v1.5.1 - let BlockResult { sealed_block: block, execution_outcome } = block_result; + let BlockResult { sealed_block: block, execution_outcome, .. } = block_result; let ru_height = block.number(); self.insert_signet_block(header, block, journal_hash, StorageLocation::Database)?; diff --git a/crates/node-types/Cargo.toml b/crates/node-types/Cargo.toml index 41d509c..80a65f2 100644 --- a/crates/node-types/Cargo.toml +++ b/crates/node-types/Cargo.toml @@ -14,6 +14,5 @@ reth-chainspec.workspace = true reth-db.workspace = true reth-node-api.workspace = true reth-node-ethereum.workspace = true -reth-trie-db.workspace = true tokio.workspace = true \ No newline at end of file diff --git a/crates/node-types/src/lib.rs b/crates/node-types/src/lib.rs index 71fb7bf..43a28a4 100644 --- a/crates/node-types/src/lib.rs +++ b/crates/node-types/src/lib.rs @@ -24,7 +24,6 @@ use reth::{ use reth_chainspec::ChainSpec; use reth_node_api::{NodePrimitives, NodeTypes, NodeTypesWithDB}; use reth_node_ethereum::EthEngineTypes; -use reth_trie_db::MerklePatriciaTrie; use std::marker::PhantomData; use tokio::sync::broadcast::error::SendError; @@ -85,8 +84,6 @@ where type ChainSpec = ChainSpec; - type StateCommitment = MerklePatriciaTrie; - type Storage = EthStorage; type Payload = EthEngineTypes; diff --git a/crates/rpc/examples/filler.rs b/crates/rpc/examples/filler.rs index 6fdf906..b1d9c6e 100644 --- a/crates/rpc/examples/filler.rs +++ b/crates/rpc/examples/filler.rs @@ -137,6 +137,7 @@ where replacement_uuid: None, // optional if implementing strategies that replace or cancel bundles ..Default::default() // all other options are not used. }, + host_txs: vec![], }; // submit the Bundle to the transaction cache diff --git a/crates/rpc/src/ctx.rs b/crates/rpc/src/ctx.rs index 80a77c7..38672c8 100644 --- a/crates/rpc/src/ctx.rs +++ b/crates/rpc/src/ctx.rs @@ -13,11 +13,11 @@ use alloy::{ }; use reth::{ core::primitives::SignerRecoverable, - primitives::{Block, Receipt, Recovered, RecoveredBlock, TransactionSigned}, + primitives::{Block, EthPrimitives, Receipt, Recovered, RecoveredBlock, TransactionSigned}, providers::{ BlockHashReader, BlockIdReader, BlockNumReader, CanonStateSubscriptions, HeaderProvider, - ProviderBlock, ProviderError, ProviderFactory, ProviderReceipt, ProviderResult, - ReceiptProvider, StateProviderFactory, TransactionsProvider, providers::BlockchainProvider, + ProviderError, ProviderFactory, ProviderResult, ReceiptProvider, StateProviderFactory, + TransactionsProvider, providers::BlockchainProvider, }, revm::{database::StateProviderDatabase, primitives::hardfork::SpecId}, rpc::{ @@ -29,6 +29,7 @@ use reth::{ calculate_reward_percentiles_for_block, fee_history_cache_new_blocks_task, }, logs_utils::{self, ProviderOrBlock, append_matching_block_logs}, + receipt::EthReceiptConverter, }, types::{FilterBlockOption, FilteredParams}, }, @@ -194,10 +195,7 @@ where // State stuff factory: ProviderFactory, provider: BlockchainProvider, - cache: EthStateCache< - ProviderBlock>, - ProviderReceipt>, - >, + cache: EthStateCache, // Gas stuff gas_oracle: GasPriceOracle>, @@ -347,8 +345,8 @@ where } /// Create a transaction response builder for the RPC API. - pub const fn tx_resp_builder(&self) -> EthRpcConverter { - EthRpcConverter::new() + pub fn tx_resp_builder(&self) -> EthRpcConverter { + EthRpcConverter::new(EthReceiptConverter::new(self.chain_spec())) } /// Get the block for a given block, formatting the block for @@ -368,9 +366,11 @@ where (*block) .clone() - .into_rpc_block(full.unwrap_or_default().into(), |tx, tx_info| { - self.tx_resp_builder().fill(tx, tx_info) - }) + .into_rpc_block( + full.unwrap_or_default().into(), + |tx, tx_info| self.tx_resp_builder().fill(tx, tx_info), + |header, size| self.tx_resp_builder().convert_header(header, size), + ) .map(Some) } diff --git a/crates/rpc/src/receipts.rs b/crates/rpc/src/receipts.rs index 90c4031..69ccec5 100644 --- a/crates/rpc/src/receipts.rs +++ b/crates/rpc/src/receipts.rs @@ -1,12 +1,13 @@ //! Signet RPC receipt response builder. -use alloy::consensus::Transaction; -use alloy::consensus::{ReceiptEnvelope, TxReceipt, transaction::TransactionMeta}; -use alloy::primitives::{Address, TxKind}; -use alloy::rpc::types::eth::{Log, ReceiptWithBloom, TransactionReceipt}; -use reth::core::primitives::SignerRecoverable; -use reth::primitives::{Receipt, TransactionSigned, TxType}; +use alloy::{ + consensus::{ReceiptEnvelope, Transaction, TxReceipt, transaction::TransactionMeta}, + primitives::{Address, TxKind}, + rpc::types::eth::{Log, ReceiptWithBloom, TransactionReceipt}, +}; +use reth::primitives::{Receipt, TransactionSigned}; use reth::rpc::server_types::eth::{EthApiError, EthResult}; +use reth::{core::primitives::SignerRecoverable, primitives::TxType}; use signet_types::MagicSig; /// Builds an [`TransactionReceipt`] obtaining the inner receipt envelope from the given closure. From e5d1b1d71c2744d37c929bdc31c8f964c3451b9b Mon Sep 17 00:00:00 2001 From: evalir Date: Mon, 29 Sep 2025 14:25:21 +0200 Subject: [PATCH 2/6] fixup more stuff --- crates/rpc/Cargo.toml | 2 +- crates/rpc/src/ctx/full.rs | 2 +- crates/rpc/src/ctx/signet.rs | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/rpc/Cargo.toml b/crates/rpc/Cargo.toml index 1ae8e49..c06b86f 100644 --- a/crates/rpc/Cargo.toml +++ b/crates/rpc/Cargo.toml @@ -42,7 +42,7 @@ tracing.workspace = true serde_json.workspace = true futures-util = "0.3.31" itertools.workspace = true -revm-inspectors = "0.26.5" +revm-inspectors = "0.30.0" signet-db.workspace = true [dev-dependencies] diff --git a/crates/rpc/src/ctx/full.rs b/crates/rpc/src/ctx/full.rs index 76efb68..2bc62bd 100644 --- a/crates/rpc/src/ctx/full.rs +++ b/crates/rpc/src/ctx/full.rs @@ -185,7 +185,7 @@ where where Tasks: TaskSpawner + Clone + 'static, { - SignetCtx::new(constants, provider, eth_config, tx_cache, spawner).map(|signet| Self { + SignetCtx::new(constants, provider, eth_config.clone(), tx_cache, spawner).map(|signet| Self { host, signet, shared: SharedContext { diff --git a/crates/rpc/src/ctx/signet.rs b/crates/rpc/src/ctx/signet.rs index f1b0077..9dddcae 100644 --- a/crates/rpc/src/ctx/signet.rs +++ b/crates/rpc/src/ctx/signet.rs @@ -15,10 +15,10 @@ use alloy::{ use futures_util::StreamExt; use reth::{ core::primitives::SignerRecoverable, - primitives::{Block, EthPrimitives, Receipt, Recovered, RecoveredBlock, TransactionSigned}, + primitives::{Block, Receipt, Recovered, RecoveredBlock, TransactionSigned}, providers::{ BlockHashReader, BlockIdReader, BlockNumReader, CanonStateSubscriptions, HeaderProvider, - ProviderError, ProviderFactory, ProviderResult, ReceiptProvider, StateProviderFactory, + ProviderError, ProviderResult, ReceiptProvider, StateProviderFactory, TransactionsProvider, providers::BlockchainProvider, }, revm::{database::StateProviderDatabase, primitives::hardfork::SpecId}, From 6f8ef752eda0fedb1171d05220543533b5318108 Mon Sep 17 00:00:00 2001 From: evalir Date: Mon, 29 Sep 2025 15:24:46 +0200 Subject: [PATCH 3/6] chore: bump deps --- Cargo.toml | 20 ++++++++++---------- crates/rpc/src/ctx/full.rs | 14 ++++++++------ crates/rpc/src/ctx/signet.rs | 4 ++-- 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 37162b8..91fe2ac 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -40,16 +40,16 @@ signet-db = { version = "0.10", path = "crates/db" } signet-node-types = { version = "0.10", path = "crates/node-types" } signet-rpc = { version = "0.10", path = "crates/rpc" } -init4-bin-base = { version = "0.13.0", features = ["alloy"] } - -signet-bundle = "0.11.0" -signet-constants = "0.11.0" -signet-evm = "0.11.0" -signet-extract = "0.11.0" -signet-tx-cache = "0.11.0" -signet-types = "0.11.0" -signet-zenith = "0.11.0" -signet-journal = "0.11.0" +init4-bin-base = { version = "0.13.1", features = ["alloy"] } + +signet-bundle = "0.11.1" +signet-constants = "0.11.1" +signet-evm = "0.11.1" +signet-extract = "0.11.1" +signet-tx-cache = "0.11.1" +signet-types = "0.11.1" +signet-zenith = "0.11.1" +signet-journal = "0.11.1" # ajj ajj = { version = "0.3.4" } diff --git a/crates/rpc/src/ctx/full.rs b/crates/rpc/src/ctx/full.rs index 2bc62bd..35cb3f6 100644 --- a/crates/rpc/src/ctx/full.rs +++ b/crates/rpc/src/ctx/full.rs @@ -185,12 +185,14 @@ where where Tasks: TaskSpawner + Clone + 'static, { - SignetCtx::new(constants, provider, eth_config.clone(), tx_cache, spawner).map(|signet| Self { - host, - signet, - shared: SharedContext { - tracing_semaphores: Semaphore::new(eth_config.max_tracing_requests).into(), - }, + SignetCtx::new(constants, provider, eth_config.clone(), tx_cache, spawner).map(|signet| { + Self { + host, + signet, + shared: SharedContext { + tracing_semaphores: Semaphore::new(eth_config.max_tracing_requests).into(), + }, + } }) } diff --git a/crates/rpc/src/ctx/signet.rs b/crates/rpc/src/ctx/signet.rs index 9dddcae..02661d0 100644 --- a/crates/rpc/src/ctx/signet.rs +++ b/crates/rpc/src/ctx/signet.rs @@ -18,8 +18,8 @@ use reth::{ primitives::{Block, Receipt, Recovered, RecoveredBlock, TransactionSigned}, providers::{ BlockHashReader, BlockIdReader, BlockNumReader, CanonStateSubscriptions, HeaderProvider, - ProviderError, ProviderResult, ReceiptProvider, StateProviderFactory, - TransactionsProvider, providers::BlockchainProvider, + ProviderError, ProviderResult, ReceiptProvider, StateProviderFactory, TransactionsProvider, + providers::BlockchainProvider, }, revm::{database::StateProviderDatabase, primitives::hardfork::SpecId}, rpc::{ From 602199fd44b3784d66696e366c6665f8e19f935e Mon Sep 17 00:00:00 2001 From: evalir Date: Mon, 29 Sep 2025 16:23:37 +0200 Subject: [PATCH 4/6] fix: increment target block on take/remove --- Cargo.toml | 12 ++++++------ crates/db/src/provider.rs | 34 +++++++++++++++++++--------------- 2 files changed, 25 insertions(+), 21 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 91fe2ac..8755144 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ members = ["crates/*"] resolver = "2" [workspace.package] -version = "0.10.4" +version = "0.11.0" edition = "2024" rust-version = "1.88" authors = ["init4"] @@ -34,11 +34,11 @@ debug = false incremental = false [workspace.dependencies] -signet-blobber = { version = "0.10", path = "crates/blobber" } -signet-block-processor = { version = "0.10", path = "crates/block-processor" } -signet-db = { version = "0.10", path = "crates/db" } -signet-node-types = { version = "0.10", path = "crates/node-types" } -signet-rpc = { version = "0.10", path = "crates/rpc" } +signet-blobber = { version = "0.11", path = "crates/blobber" } +signet-block-processor = { version = "0.11", path = "crates/block-processor" } +signet-db = { version = "0.11", path = "crates/db" } +signet-node-types = { version = "0.11", path = "crates/node-types" } +signet-rpc = { version = "0.11", path = "crates/rpc" } init4-bin-base = { version = "0.13.1", features = ["alloy"] } diff --git a/crates/db/src/provider.rs b/crates/db/src/provider.rs index 25b245a..74c2a6b 100644 --- a/crates/db/src/provider.rs +++ b/crates/db/src/provider.rs @@ -151,12 +151,16 @@ where // in `reth/crates/storage/provider/src/providers/database/provider.rs` // duration metrics have been removed // - // Last reviewed at tag v1.5.1 + // Last reviewed at tag v1.8.1 let block_number = block.number(); + + // SIGNET-SPECIFIC + // Put journal hash into the DB if let Some(header) = header { self.insert_signet_header(header, block_number)?; } + // SIGNET-SPECIFIC // Put journal hash into the DB self.tx_ref().put::(block_number, journal_hash)?; @@ -226,7 +230,7 @@ where // duration metrics have been removed, and the implementation has been // modified to work with a single signet block. // - // last reviewed at tag v1.5.1 + // last reviewed at tag v1.8.1 let sf = self.static_file_provider(); @@ -415,7 +419,7 @@ where // in `reth/crates/storage/provider/src/providers/database/provider.rs` // duration metrics have been removed // - // last reviewed at tag v1.5.1 + // last reviewed at tag v1.8.1 let BlockResult { sealed_block: block, execution_outcome, .. } = block_result; @@ -467,13 +471,13 @@ where // `BlockExecutionWriter::take_block_and_execution_above` // in `reth/crates/storage/provider/src/providers/database/provider.rs` // - // last reviewed at tag v1.5.1 + // last reviewed at tag v1.8.1 - let range = target..=self.last_block_number()?; + let range = target + 1..=self.last_block_number()?; // This block is copied from `unwind_trie_state_range` // - // last reviewed at tag v1.5.1 + // last reviewed at tag v1.8.1 { let changed_accounts = self .tx_ref() @@ -537,7 +541,7 @@ where #[instrument(skip(self))] fn ru_remove_blocks_and_execution_above( &self, - target: BlockNumber, + block: BlockNumber, remove_from: StorageLocation, ) -> ProviderResult<()> { // Implementation largely copied from @@ -545,13 +549,13 @@ where // in `reth/crates/storage/provider/src/providers/database/provider.rs` // duration metrics have been removed // - // last reviewed at tag v1.5.1 + // last reviewed at tag v1.8.1 // This block is copied from `unwind_trie_state_range` // - // last reviewed at tag v1.5.1 + // last reviewed at tag v1.8.1 { - let range = target..=self.last_block_number()?; + let range = block + 1..=self.last_block_number()?; let changed_accounts = self .tx_ref() .cursor_read::()? @@ -572,14 +576,14 @@ where self.unwind_storage_history_indices(changed_storages.iter().copied())?; } - self.remove_state_above(target, remove_from)?; - self.remove_blocks_above(target, remove_from)?; + self.remove_state_above(block, remove_from)?; + self.remove_blocks_above(block, remove_from)?; // Signet specific: - self.remove_extraction_results_above(target, remove_from)?; + self.remove_extraction_results_above(block, remove_from)?; // Update pipeline stages - self.update_pipeline_stages(target, true)?; + self.update_pipeline_stages(block, true)?; Ok(()) } @@ -594,7 +598,7 @@ where // `StateWriter::write_state` for `DatabaseProvider` // in `reth/crates/storage/provider/src/providers/database/provider.rs` // - // Last reviewed at tag v1.5.1 + // Last reviewed at tag v1.8.1 let first_block = execution_outcome.first_block(); let block_count = execution_outcome.len() as u64; let last_block = execution_outcome.last_block(); From f5e776156728ee86aab0936a27b5ada0db46f990 Mon Sep 17 00:00:00 2001 From: evalir Date: Mon, 29 Sep 2025 16:40:18 +0200 Subject: [PATCH 5/6] fix(db): properly increment target for `above_` methods --- crates/db/src/provider.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/db/src/provider.rs b/crates/db/src/provider.rs index 74c2a6b..fa9d17a 100644 --- a/crates/db/src/provider.rs +++ b/crates/db/src/provider.rs @@ -337,7 +337,7 @@ where let mut items = Vec::new(); trace!(target: "signet_db_lifecycle", "taking zenith headers"); let mut cursor_write = self.tx_ref().cursor_write::()?; - let mut walker = cursor_write.walk_range(target..)?; + let mut walker = cursor_write.walk_range(target + 1..)?; while let Some((k, DbZenithHeader(e))) = walker.next().transpose()? { walker.delete_current()?; items.push((k, e)) @@ -352,7 +352,7 @@ where target: BlockNumber, _remove_from: StorageLocation, ) -> ProviderResult<()> { - self.remove::(target..)?; + self.remove::(target + 1..)?; Ok(()) } @@ -375,7 +375,7 @@ where target: BlockNumber, remove_from: StorageLocation, ) -> ProviderResult> { - let range = target..=(1 + self.last_block_number()?); + let range = target + 1..=self.last_block_number()?; let items = self.get_signet_events(range)?; self.remove_signet_events_above(target, remove_from)?; Ok(items) @@ -390,7 +390,7 @@ where target: BlockNumber, _remove_from: StorageLocation, ) -> ProviderResult<()> { - self.remove::(target..)?; + self.remove::(target + 1..)?; Ok(()) } From 7e83bc74f75ebccbf8efa78f43a609503c6af625 Mon Sep 17 00:00:00 2001 From: evalir Date: Mon, 29 Sep 2025 16:51:57 +0200 Subject: [PATCH 6/6] rm unnecessary clone --- crates/rpc/src/ctx/full.rs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/crates/rpc/src/ctx/full.rs b/crates/rpc/src/ctx/full.rs index 35cb3f6..90648c7 100644 --- a/crates/rpc/src/ctx/full.rs +++ b/crates/rpc/src/ctx/full.rs @@ -185,14 +185,12 @@ where where Tasks: TaskSpawner + Clone + 'static, { - SignetCtx::new(constants, provider, eth_config.clone(), tx_cache, spawner).map(|signet| { - Self { - host, - signet, - shared: SharedContext { - tracing_semaphores: Semaphore::new(eth_config.max_tracing_requests).into(), - }, - } + let tracing_semaphores = Semaphore::new(eth_config.max_tracing_requests).into(); + + SignetCtx::new(constants, provider, eth_config, tx_cache, spawner).map(|signet| Self { + host, + signet, + shared: SharedContext { tracing_semaphores }, }) }