diff --git a/Cargo.lock b/Cargo.lock index 1bbfbbd30..3fbcc7514 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2562,7 +2562,9 @@ dependencies = [ "reth-evm-ethereum", "reth-primitives", "reth-provider", + "reth-revm", "reth-stages", + "revm", "serde", "serde_json", "thiserror", @@ -7937,10 +7939,12 @@ dependencies = [ "reth-payload-builder", "reth-primitives", "reth-provider", + "reth-revm", "reth-rpc", "reth-tasks", "reth-tracing", "reth-transaction-pool", + "revm", "serde_json", "tokio", ] @@ -8163,6 +8167,7 @@ dependencies = [ "reth-rpc-types-compat", "reth-tracing", "reth-transaction-pool", + "revm", "serde", "serde_json", "thiserror", diff --git a/Cargo.toml b/Cargo.toml index 2068f02bb..f734fd44c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -381,7 +381,7 @@ reth-primitives-traits = { path = "crates/primitives-traits", default-features = reth-provider = { path = "crates/storage/provider" } reth-prune = { path = "crates/prune/prune" } reth-prune-types = { path = "crates/prune/types" } -reth-revm = { path = "crates/revm" } +reth-revm = { path = "crates/revm", default-features = false } reth-rpc = { path = "crates/rpc/rpc" } reth-rpc-api = { path = "crates/rpc/rpc-api" } reth-rpc-api-testing-util = { path = "crates/rpc/rpc-testing-util" } @@ -412,8 +412,6 @@ reth-trie-parallel = { path = "crates/trie/parallel" } # revm revm = { version = "14.0.3", features = [ "std", - "secp256k1", - "blst", ], default-features = false } revm-inspectors = "0.8.1" revm-primitives = { version = "10.0.0", features = [ diff --git a/crates/ethereum/evm/src/lib.rs b/crates/ethereum/evm/src/lib.rs index 8ea39f93d..cede8008b 100644 --- a/crates/ethereum/evm/src/lib.rs +++ b/crates/ethereum/evm/src/lib.rs @@ -1,4 +1,10 @@ //! EVM config for vanilla ethereum. +//! +//! # Revm features +//! +//! This crate does __not__ enforce specific revm features such as `blst` or `c-kzg`, which are +//! critical for revm's evm internals, it is the responsibility of the implementer to ensure the +//! proper features are selected. #![doc( html_logo_url = "https://raw.githubusercontent.com/paradigmxyz/reth/main/assets/reth-docs.png", diff --git a/crates/ethereum/node/Cargo.toml b/crates/ethereum/node/Cargo.toml index 145a96683..7a323f91d 100644 --- a/crates/ethereum/node/Cargo.toml +++ b/crates/ethereum/node/Cargo.toml @@ -29,6 +29,10 @@ reth-rpc.workspace = true reth-node-api.workspace = true reth-chainspec.workspace = true reth-primitives.workspace = true +reth-revm = { workspace = true, features = ["std"] } + +# revm with required ethereum features +revm = { workspace = true, features = ["secp256k1", "blst", "c-kzg"] } # misc eyre.workspace = true diff --git a/crates/ethereum/node/src/lib.rs b/crates/ethereum/node/src/lib.rs index 44ec6836c..37ebc33c2 100644 --- a/crates/ethereum/node/src/lib.rs +++ b/crates/ethereum/node/src/lib.rs @@ -8,6 +8,9 @@ #![cfg_attr(not(test), warn(unused_crate_dependencies))] #![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))] +use reth_revm as _; +use revm as _; + pub use reth_ethereum_engine_primitives::EthEngineTypes; pub mod evm; diff --git a/crates/evm/src/lib.rs b/crates/evm/src/lib.rs index e0d45f04c..66026a07c 100644 --- a/crates/evm/src/lib.rs +++ b/crates/evm/src/lib.rs @@ -1,4 +1,10 @@ //! Traits for configuring an EVM specifics. +//! +//! # Revm features +//! +//! This crate does __not__ enforce specific revm features such as `blst` or `c-kzg`, which are +//! critical for revm's evm internals, it is the responsibility of the implementer to ensure the +//! proper features are selected. #![doc( html_logo_url = "https://raw.githubusercontent.com/paradigmxyz/reth/main/assets/reth-docs.png", diff --git a/crates/optimism/node/Cargo.toml b/crates/optimism/node/Cargo.toml index 0902d7858..f9e038a3d 100644 --- a/crates/optimism/node/Cargo.toml +++ b/crates/optimism/node/Cargo.toml @@ -27,7 +27,7 @@ reth-provider.workspace = true reth-transaction-pool.workspace = true reth-network.workspace = true reth-evm.workspace = true -reth-revm.workspace = true +reth-revm = { workspace = true, features = ["std"] } reth-beacon-consensus.workspace = true reth-discv5.workspace = true reth-rpc-eth-types.workspace = true @@ -42,6 +42,9 @@ reth-optimism-chainspec.workspace = true reth-optimism-consensus.workspace = true reth-optimism-forks.workspace = true +# revm with required optimism features +revm = { workspace = true, features = ["secp256k1", "blst", "c-kzg"] } + # ethereum alloy-eips.workspace = true alloy-primitives.workspace = true @@ -85,6 +88,7 @@ optimism = [ "reth-optimism-payload-builder/optimism", "reth-beacon-consensus/optimism", "reth-revm/optimism", + "revm/optimism", "reth-auto-seal-consensus/optimism", "reth-optimism-rpc/optimism", "reth-engine-local/optimism", diff --git a/testing/ef-tests/Cargo.toml b/testing/ef-tests/Cargo.toml index ca23ffcce..df68f5154 100644 --- a/testing/ef-tests/Cargo.toml +++ b/testing/ef-tests/Cargo.toml @@ -23,6 +23,9 @@ reth-db-api.workspace = true reth-provider = { workspace = true, features = ["test-utils"] } reth-stages.workspace = true reth-evm-ethereum.workspace = true +reth-revm = { workspace = true, features = ["std"] } + +revm = { workspace = true, features = ["secp256k1", "blst", "c-kzg"] } alloy-rlp.workspace = true alloy-primitives.workspace = true diff --git a/testing/ef-tests/src/lib.rs b/testing/ef-tests/src/lib.rs index 45f296d1f..ca5e47d2d 100644 --- a/testing/ef-tests/src/lib.rs +++ b/testing/ef-tests/src/lib.rs @@ -7,6 +7,9 @@ )] #![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))] +use reth_revm as _; +use revm as _; + pub mod case; pub mod result; pub mod suite;