diff --git a/Cargo.lock b/Cargo.lock
index 7b6f168e40..52fef5230a 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -7853,7 +7853,6 @@ dependencies = [
"reth-execution-errors",
"reth-execution-types",
"reth-metrics",
- "reth-primitives",
"reth-primitives-traits",
"reth-storage-api",
"reth-storage-errors",
diff --git a/crates/evm/Cargo.toml b/crates/evm/Cargo.toml
index 8d6e065e32..83dbef27f1 100644
--- a/crates/evm/Cargo.toml
+++ b/crates/evm/Cargo.toml
@@ -17,12 +17,13 @@ reth-consensus-common.workspace = true
reth-execution-errors.workspace = true
reth-execution-types.workspace = true
reth-metrics = { workspace = true, optional = true }
-reth-primitives.workspace = true
reth-primitives-traits.workspace = true
reth-storage-api.workspace = true
reth-storage-errors.workspace = true
reth-trie-common.workspace = true
+reth-ethereum-primitives = { workspace = true, optional = true }
+
revm.workspace = true
revm-database.workspace = true
op-revm = { workspace = true, optional = true }
@@ -40,23 +41,22 @@ metrics = { workspace = true, optional = true }
parking_lot = { workspace = true, optional = true }
[dev-dependencies]
-parking_lot.workspace = true
reth-ethereum-forks.workspace = true
+reth-ethereum-primitives.workspace = true
+parking_lot.workspace = true
alloy-consensus.workspace = true
metrics-util = { workspace = true, features = ["debugging"] }
-reth-ethereum-primitives.workspace = true
[features]
default = ["std"]
std = [
- "reth-primitives/std",
"reth-primitives-traits/std",
"alloy-eips/std",
"alloy-primitives/std",
"alloy-consensus/std",
"revm/std",
"reth-ethereum-forks/std",
- "reth-ethereum-primitives/std",
+ "reth-ethereum-primitives?/std",
"reth-chainspec/std",
"reth-consensus-common/std",
"alloy-evm/std",
@@ -77,9 +77,9 @@ metrics = [
]
test-utils = [
"dep:parking_lot",
+ "dep:reth-ethereum-primitives",
"reth-chainspec/test-utils",
"reth-ethereum-primitives/test-utils",
- "reth-primitives/test-utils",
"reth-primitives-traits/test-utils",
"revm/test-utils",
"reth-trie-common/test-utils",
diff --git a/crates/evm/src/either.rs b/crates/evm/src/either.rs
index 7aaded54c4..45767eef61 100644
--- a/crates/evm/src/either.rs
+++ b/crates/evm/src/either.rs
@@ -9,7 +9,7 @@ use crate::{
// re-export Either
pub use futures_util::future::Either;
use reth_execution_types::{BlockExecutionOutput, BlockExecutionResult};
-use reth_primitives::{NodePrimitives, RecoveredBlock};
+use reth_primitives_traits::{NodePrimitives, RecoveredBlock};
impl BlockExecutorProvider for Either
where
diff --git a/crates/evm/src/execute.rs b/crates/evm/src/execute.rs
index 00fd1b9bbd..486c8983c0 100644
--- a/crates/evm/src/execute.rs
+++ b/crates/evm/src/execute.rs
@@ -18,10 +18,10 @@ pub use reth_execution_errors::{
};
use reth_execution_types::BlockExecutionResult;
pub use reth_execution_types::{BlockExecutionOutput, ExecutionOutcome};
-use reth_primitives::{
- HeaderTy, NodePrimitives, Receipt, Recovered, RecoveredBlock, SealedBlock, SealedHeader,
+use reth_primitives_traits::{
+ BlockTy, HeaderTy, NodePrimitives, ReceiptTy, Recovered, RecoveredBlock, SealedBlock,
+ SealedHeader, TxTy,
};
-use reth_primitives_traits::{BlockTy, ReceiptTy, TxTy};
pub use reth_storage_errors::provider::ProviderError;
use revm::{
context::result::ExecutionResult,
@@ -167,7 +167,7 @@ pub trait BlockExecutorProvider: Send + Sync + Clone + Unpin + 'static {
/// Helper type for the output of executing a block.
#[derive(Debug, Clone)]
-pub struct ExecuteOutput {
+pub struct ExecuteOutput {
/// Receipts obtained after executing a block.
pub receipts: Vec,
/// Cumulative gas used in the block execution.
@@ -698,7 +698,7 @@ mod tests {
use alloy_consensus::constants::KECCAK_EMPTY;
use alloy_primitives::{address, U256};
use core::marker::PhantomData;
- use reth_primitives::EthPrimitives;
+ use reth_ethereum_primitives::EthPrimitives;
use revm::state::AccountInfo;
use revm_database::{CacheDB, EmptyDB};
diff --git a/crates/evm/src/metrics.rs b/crates/evm/src/metrics.rs
index e5895b50cc..4bc1b1356c 100644
--- a/crates/evm/src/metrics.rs
+++ b/crates/evm/src/metrics.rs
@@ -11,8 +11,7 @@ use alloy_consensus::BlockHeader;
use metrics::{Counter, Gauge, Histogram};
use reth_execution_types::BlockExecutionOutput;
use reth_metrics::Metrics;
-use reth_primitives::RecoveredBlock;
-use reth_primitives_traits::NodePrimitives;
+use reth_primitives_traits::{NodePrimitives, RecoveredBlock};
use revm::state::EvmState;
use std::time::Instant;
@@ -146,8 +145,8 @@ mod tests {
use alloy_eips::eip7685::Requests;
use alloy_primitives::{B256, U256};
use metrics_util::debugging::{DebugValue, DebuggingRecorder, Snapshotter};
+ use reth_ethereum_primitives::EthPrimitives;
use reth_execution_types::BlockExecutionResult;
- use reth_primitives::EthPrimitives;
use revm::{
database_interface::EmptyDB,
state::{Account, AccountInfo, AccountStatus, EvmStorage, EvmStorageSlot},
diff --git a/crates/evm/src/noop.rs b/crates/evm/src/noop.rs
index b76daead74..e522f2a95d 100644
--- a/crates/evm/src/noop.rs
+++ b/crates/evm/src/noop.rs
@@ -7,7 +7,7 @@ use crate::{
};
use reth_execution_errors::BlockExecutionError;
use reth_execution_types::BlockExecutionResult;
-use reth_primitives::{NodePrimitives, RecoveredBlock};
+use reth_primitives_traits::{NodePrimitives, RecoveredBlock};
const UNAVAILABLE_FOR_NOOP: &str = "execution unavailable for noop";
diff --git a/crates/evm/src/test_utils.rs b/crates/evm/src/test_utils.rs
index c7546ac532..5432358f99 100644
--- a/crates/evm/src/test_utils.rs
+++ b/crates/evm/src/test_utils.rs
@@ -8,9 +8,10 @@ use crate::{
use alloc::{sync::Arc, vec::Vec};
use alloy_eips::eip7685::Requests;
use parking_lot::Mutex;
+use reth_ethereum_primitives::EthPrimitives;
use reth_execution_errors::BlockExecutionError;
use reth_execution_types::{BlockExecutionResult, ExecutionOutcome};
-use reth_primitives::{EthPrimitives, NodePrimitives, RecoveredBlock};
+use reth_primitives_traits::{NodePrimitives, RecoveredBlock};
use revm_database::State;
/// A [`BlockExecutorProvider`] that returns mocked execution results.