feat(execution): Delete Base Execution Evm Crate#1602
Conversation
🟡 Heimdall Review Status
|
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
| use base_consensus_genesis::{L1ChainConfig, RollupConfig, SystemConfig}; | ||
| use base_execution_chainspec::OpChainSpecBuilder; | ||
| use base_execution_evm::OpEvmConfig; | ||
| use base_revm::OpEvmConfig; |
There was a problem hiding this comment.
OpEvmConfig is defined and exported from base-alloy-evm (behind the execution feature), not from base-revm. This import will fail to compile.
| use base_revm::OpEvmConfig; | |
| use base_alloy_evm::OpEvmConfig; |
The Cargo.toml for this crate also needs base-alloy-evm added as a dependency (with the execution feature enabled).
| use base_bundles::{BundleExtensions, BundleTxs, ParsedBundle, TransactionResult}; | ||
| use base_execution_chainspec::OpChainSpec; | ||
| use base_execution_evm::{OpEvmConfig, OpNextBlockEnvAttributes}; | ||
| use base_revm::{OpEvmConfig, OpNextBlockEnvAttributes}; |
There was a problem hiding this comment.
OpEvmConfig is exported from base-alloy-evm, not base-revm. OpNextBlockEnvAttributes is correctly in base-revm. This needs to be split:
| use base_revm::{OpEvmConfig, OpNextBlockEnvAttributes}; | |
| use base_alloy_evm::OpEvmConfig; | |
| use base_revm::OpNextBlockEnvAttributes; |
The crate's Cargo.toml also needs base-alloy-evm added as a dependency with the execution feature.
| use base_alloy_consensus::OpBlock; | ||
| use base_execution_chainspec::OpChainSpec; | ||
| use base_execution_evm::{OpEvmConfig, OpNextBlockEnvAttributes}; | ||
| use base_revm::{OpEvmConfig, OpNextBlockEnvAttributes}; |
There was a problem hiding this comment.
Same issue as in meter.rs: OpEvmConfig is exported from base-alloy-evm, not base-revm.
| use base_revm::{OpEvmConfig, OpNextBlockEnvAttributes}; | |
| use base_alloy_evm::OpEvmConfig; | |
| use base_revm::OpNextBlockEnvAttributes; |
| use base_alloy_evm::{OpBlockExecutorFactory, OpEvm, OpEvmFactory}; | ||
| use base_execution_chainspec::{BASE_MAINNET, BASE_SEPOLIA, OpChainSpec}; | ||
| use base_execution_evm::{OpEvmConfig, OpRethReceiptBuilder}; | ||
| use base_revm::{OpEvmConfig, OpRethReceiptBuilder}; |
There was a problem hiding this comment.
Neither OpEvmConfig nor OpRethReceiptBuilder is exported from base-revm — both are in base-alloy-evm.
| use base_revm::{OpEvmConfig, OpRethReceiptBuilder}; | |
| use base_alloy_evm::{OpEvmConfig, OpRethReceiptBuilder}; |
| //! }; | ||
| //! use base_execution_chainspec::BASE_SEPOLIA; | ||
| //! use base_execution_evm::OpEvmConfig; | ||
| //! use base_revm::OpEvmConfig; |
There was a problem hiding this comment.
Doc example references base_revm::OpEvmConfig but OpEvmConfig is exported from base_alloy_evm, not base_revm. This doc example won't compile if tested with cargo test --doc.
| //! use base_revm::OpEvmConfig; | |
| //! use base_alloy_evm::OpEvmConfig; |
97f345d to
31e4593
Compare
Review SummaryThe crate consolidation is well-structured: lower-level execution types ( Blocking: Wrong import paths (5 files)These are already flagged in inline comments but are compilation-breaking —
No other issues found. The module organization, feature flag design, dependency direction, trait impl relocation (orphan-rule-correct move of |
Summary
Merges
base-execution-evmintobase-revmandbase-alloy-evmbehind anexecutionfeature flag, eliminating the redundant crate entirely. The split between the two crates was required to avoid abase-revm ↔ base-alloy-evmdependency cycle: lower-level execution types (error,l1_reth,next_block) live inbase-revm[execution]while the EVM config, block assembler, and receipt builder live inbase-alloy-evm[execution]. All consumers previously depending onbase-execution-evmhave been updated to depend on the appropriate crate with theexecutionfeature enabled.