From 0b6397217ca47fe7cd7f5d30963564f8e63dead8 Mon Sep 17 00:00:00 2001 From: Matthias Seitz Date: Tue, 15 Oct 2024 10:24:10 +0200 Subject: [PATCH] chore: rm optimism feature from chainspec (#11722) --- Cargo.lock | 1 - crates/chainspec/Cargo.toml | 4 ---- crates/chainspec/src/api.rs | 2 +- crates/chainspec/src/lib.rs | 2 +- crates/chainspec/src/spec.rs | 18 ------------------ crates/consensus/beacon/Cargo.toml | 5 ++--- crates/consensus/beacon/src/engine/mod.rs | 3 +-- crates/optimism/chainspec/Cargo.toml | 2 +- crates/optimism/chainspec/src/lib.rs | 3 +++ crates/optimism/evm/src/lib.rs | 2 +- crates/optimism/node/Cargo.toml | 1 - crates/optimism/payload/Cargo.toml | 1 - crates/optimism/rpc/src/eth/receipt.rs | 22 +--------------------- 13 files changed, 11 insertions(+), 55 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7cbb3e937..1bbfbbd30 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6532,7 +6532,6 @@ dependencies = [ "once_cell", "reth-ethereum-forks", "reth-network-peers", - "reth-optimism-forks", "reth-primitives-traits", "reth-trie-common", "serde_json", diff --git a/crates/chainspec/Cargo.toml b/crates/chainspec/Cargo.toml index 80636d139..b44a606b6 100644 --- a/crates/chainspec/Cargo.toml +++ b/crates/chainspec/Cargo.toml @@ -17,9 +17,6 @@ reth-network-peers.workspace = true reth-trie-common.workspace = true reth-primitives-traits.workspace = true -# op-reth -reth-optimism-forks = { workspace = true, optional = true } - # ethereum alloy-chains = { workspace = true, features = ["serde", "rlp"] } alloy-eips = { workspace = true, features = ["serde"] } @@ -42,7 +39,6 @@ alloy-genesis.workspace = true [features] default = ["std"] -optimism = ["reth-optimism-forks"] std = [ "alloy-chains/std", "alloy-eips/std", diff --git a/crates/chainspec/src/api.rs b/crates/chainspec/src/api.rs index e481fbede..39a6716ee 100644 --- a/crates/chainspec/src/api.rs +++ b/crates/chainspec/src/api.rs @@ -99,6 +99,6 @@ impl EthChainSpec for ChainSpec { } fn is_optimism(&self) -> bool { - Self::is_optimism(self) + self.chain.is_optimism() } } diff --git a/crates/chainspec/src/lib.rs b/crates/chainspec/src/lib.rs index 81aadb834..2e97caba0 100644 --- a/crates/chainspec/src/lib.rs +++ b/crates/chainspec/src/lib.rs @@ -33,7 +33,7 @@ pub use reth_ethereum_forks::*; pub use api::EthChainSpec; pub use info::ChainInfo; -#[cfg(feature = "test-utils")] +#[cfg(any(test, feature = "test-utils"))] pub use spec::test_fork_ids; pub use spec::{ BaseFeeParams, BaseFeeParamsKind, ChainSpec, ChainSpecBuilder, ChainSpecProvider, diff --git a/crates/chainspec/src/spec.rs b/crates/chainspec/src/spec.rs index f78fcbb61..e6e8a67d7 100644 --- a/crates/chainspec/src/spec.rs +++ b/crates/chainspec/src/spec.rs @@ -239,21 +239,6 @@ impl ChainSpec { self.chain.is_ethereum() } - /// Returns `true` if this chain contains Optimism configuration. - #[inline] - #[cfg(feature = "optimism")] - pub fn is_optimism(&self) -> bool { - self.chain.is_optimism() || - self.hardforks.get(reth_optimism_forks::OptimismHardfork::Bedrock).is_some() - } - - /// Returns `true` if this chain contains Optimism configuration. - #[inline] - #[cfg(not(feature = "optimism"))] - pub const fn is_optimism(&self) -> bool { - self.chain.is_optimism() - } - /// Returns `true` if this chain is Optimism mainnet. #[inline] pub fn is_optimism_mainnet(&self) -> bool { @@ -706,9 +691,6 @@ impl EthereumHardforks for ChainSpec { } } -#[cfg(feature = "optimism")] -impl reth_optimism_forks::OptimismHardforks for ChainSpec {} - /// A trait for reading the current chainspec. #[auto_impl::auto_impl(&, Arc)] pub trait ChainSpecProvider: Send + Sync { diff --git a/crates/consensus/beacon/Cargo.toml b/crates/consensus/beacon/Cargo.toml index f62c6fbf2..f13668126 100644 --- a/crates/consensus/beacon/Cargo.toml +++ b/crates/consensus/beacon/Cargo.toml @@ -28,6 +28,7 @@ reth-tokio-util.workspace = true reth-engine-primitives.workspace = true reth-network-p2p.workspace = true reth-node-types.workspace = true +reth-chainspec = { workspace = true, optional = true } # ethereum alloy-primitives.workspace = true @@ -48,8 +49,6 @@ thiserror.workspace = true schnellru.workspace = true itertools.workspace = true -reth-chainspec = { workspace = true, optional = true } - [dev-dependencies] # reth reth-payload-builder = { workspace = true, features = ["test-utils"] } @@ -78,8 +77,8 @@ assert_matches.workspace = true [features] optimism = [ + "reth-chainspec", "reth-primitives/optimism", "reth-provider/optimism", "reth-blockchain-tree/optimism", - "reth-chainspec" ] diff --git a/crates/consensus/beacon/src/engine/mod.rs b/crates/consensus/beacon/src/engine/mod.rs index 5774d4da2..ccea982bf 100644 --- a/crates/consensus/beacon/src/engine/mod.rs +++ b/crates/consensus/beacon/src/engine/mod.rs @@ -462,8 +462,7 @@ where ) -> bool { // On Optimism, the proposers are allowed to reorg their own chain at will. #[cfg(feature = "optimism")] - if reth_chainspec::EthChainSpec::chain(self.blockchain.chain_spec().as_ref()).is_optimism() - { + if reth_chainspec::EthChainSpec::is_optimism(&self.blockchain.chain_spec()) { debug!( target: "consensus::engine", fcu_head_num=?header.number, diff --git a/crates/optimism/chainspec/Cargo.toml b/crates/optimism/chainspec/Cargo.toml index 30590d4e8..c9f951c8d 100644 --- a/crates/optimism/chainspec/Cargo.toml +++ b/crates/optimism/chainspec/Cargo.toml @@ -13,7 +13,7 @@ workspace = true [dependencies] # reth -reth-chainspec = { workspace = true, features = ["optimism"] } +reth-chainspec.workspace = true reth-ethereum-forks.workspace = true reth-primitives-traits.workspace = true reth-network-peers.workspace = true diff --git a/crates/optimism/chainspec/src/lib.rs b/crates/optimism/chainspec/src/lib.rs index a18614240..98c6589d1 100644 --- a/crates/optimism/chainspec/src/lib.rs +++ b/crates/optimism/chainspec/src/lib.rs @@ -36,6 +36,7 @@ use reth_chainspec::{ }; use reth_ethereum_forks::{ChainHardforks, EthereumHardfork, ForkCondition, Hardfork}; use reth_network_peers::NodeRecord; +use reth_optimism_forks::OptimismHardforks; use reth_primitives_traits::Header; #[cfg(feature = "std")] pub(crate) use std::sync::LazyLock; @@ -267,6 +268,8 @@ impl EthereumHardforks for OpChainSpec { } } +impl OptimismHardforks for OpChainSpec {} + impl From for OpChainSpec { fn from(genesis: Genesis) -> Self { use reth_optimism_forks::OptimismHardfork; diff --git a/crates/optimism/evm/src/lib.rs b/crates/optimism/evm/src/lib.rs index 158ed2e89..63d0ee6b4 100644 --- a/crates/optimism/evm/src/lib.rs +++ b/crates/optimism/evm/src/lib.rs @@ -124,7 +124,7 @@ impl ConfigureEvmEnv for OptimismEvmConfig { cfg_env.perf_analyse_created_bytecodes = AnalysisKind::Analyse; cfg_env.handler_cfg.spec_id = spec_id; - cfg_env.handler_cfg.is_optimism = self.chain_spec.is_optimism(); + cfg_env.handler_cfg.is_optimism = true; } fn next_cfg_and_block_env( diff --git a/crates/optimism/node/Cargo.toml b/crates/optimism/node/Cargo.toml index 4675029b6..0902d7858 100644 --- a/crates/optimism/node/Cargo.toml +++ b/crates/optimism/node/Cargo.toml @@ -79,7 +79,6 @@ op-alloy-consensus.workspace = true [features] optimism = [ - "reth-chainspec/optimism", "reth-primitives/optimism", "reth-provider/optimism", "reth-optimism-evm/optimism", diff --git a/crates/optimism/payload/Cargo.toml b/crates/optimism/payload/Cargo.toml index d5f8b520e..414b2c358 100644 --- a/crates/optimism/payload/Cargo.toml +++ b/crates/optimism/payload/Cargo.toml @@ -49,7 +49,6 @@ sha2.workspace = true [features] optimism = [ - "reth-chainspec/optimism", "reth-primitives/optimism", "reth-provider/optimism", "reth-optimism-evm/optimism", diff --git a/crates/optimism/rpc/src/eth/receipt.rs b/crates/optimism/rpc/src/eth/receipt.rs index cc6851041..200b626d8 100644 --- a/crates/optimism/rpc/src/eth/receipt.rs +++ b/crates/optimism/rpc/src/eth/receipt.rs @@ -4,7 +4,6 @@ use alloy_eips::eip2718::Encodable2718; use alloy_rpc_types::{AnyReceiptEnvelope, Log, TransactionReceipt}; use op_alloy_consensus::{OpDepositReceipt, OpDepositReceiptWithBloom, OpReceiptEnvelope}; use op_alloy_rpc_types::{receipt::L1BlockInfo, OpTransactionReceipt, OpTransactionReceiptFields}; -use reth_chainspec::ChainSpec; use reth_node_api::{FullNodeComponents, NodeTypes}; use reth_optimism_chainspec::OpChainSpec; use reth_optimism_evm::RethL1BlockInfo; @@ -55,25 +54,6 @@ where } } -impl OpEthApi -where - N: FullNodeComponents>, -{ - /// Builds a receipt w.r.t. chain spec. - pub fn build_op_receipt_meta( - &self, - tx: &TransactionSigned, - l1_block_info: revm::L1BlockInfo, - receipt: &Receipt, - ) -> Result { - Ok(OpReceiptFieldsBuilder::default() - .l1_block_info(&self.inner.provider().chain_spec(), tx, l1_block_info)? - .deposit_nonce(receipt.deposit_nonce) - .deposit_version(receipt.deposit_receipt_version) - .build()) - } -} - /// L1 fee and data gas for a non-deposit transaction, or deposit nonce and receipt version for a /// deposit transaction. #[derive(Debug, Default, Clone)] @@ -113,7 +93,7 @@ impl OpReceiptFieldsBuilder { /// Applies [`L1BlockInfo`](revm::L1BlockInfo). pub fn l1_block_info( mut self, - chain_spec: &ChainSpec, + chain_spec: &OpChainSpec, tx: &TransactionSigned, l1_block_info: revm::L1BlockInfo, ) -> Result {