From 0213e8841f8eb0354a618c1ab8d46026fd9c5a4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A5vard=20Anda=20Estensen?= Date: Tue, 10 Sep 2024 12:51:43 +0200 Subject: [PATCH] optimism: replace reth-primitive imports (#10800) --- Cargo.lock | 2 ++ crates/optimism/cli/Cargo.toml | 8 +++----- crates/optimism/cli/src/commands/import_receipts.rs | 2 +- crates/optimism/cli/src/receipt_file_codec.rs | 6 ++++-- crates/optimism/consensus/Cargo.toml | 6 ++++-- crates/optimism/consensus/src/lib.rs | 5 ++--- crates/optimism/consensus/src/proof.rs | 3 ++- crates/optimism/consensus/src/validation.rs | 5 ++--- crates/optimism/evm/Cargo.toml | 3 +++ crates/optimism/evm/src/error.rs | 2 +- crates/optimism/evm/src/execute.rs | 7 ++++--- crates/optimism/evm/src/l1.rs | 6 ++++-- crates/optimism/evm/src/lib.rs | 6 ++++-- crates/optimism/node/Cargo.toml | 3 +++ crates/optimism/node/src/txpool.rs | 5 +++-- crates/optimism/node/tests/e2e/utils.rs | 2 +- crates/optimism/payload/Cargo.toml | 1 + crates/optimism/payload/src/builder.rs | 3 ++- crates/optimism/payload/src/error.rs | 2 +- crates/optimism/payload/src/payload.rs | 4 ++-- crates/optimism/rpc/Cargo.toml | 4 ++-- crates/optimism/rpc/src/eth/call.rs | 6 ++---- crates/optimism/rpc/src/eth/pending_block.rs | 3 ++- crates/optimism/rpc/src/eth/rpc.rs | 2 +- 24 files changed, 56 insertions(+), 40 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0c9a5a854..56618a3ea 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7206,6 +7206,7 @@ dependencies = [ name = "reth-evm-optimism" version = "1.0.6" dependencies = [ + "alloy-primitives", "reth-chainspec", "reth-ethereum-forks", "reth-evm", @@ -7941,6 +7942,7 @@ dependencies = [ name = "reth-optimism-payload-builder" version = "1.0.6" dependencies = [ + "alloy-primitives", "alloy-rlp", "reth-basic-payload-builder", "reth-chain-state", diff --git a/crates/optimism/cli/Cargo.toml b/crates/optimism/cli/Cargo.toml index 41135d4a2..338518ba0 100644 --- a/crates/optimism/cli/Cargo.toml +++ b/crates/optimism/cli/Cargo.toml @@ -42,12 +42,10 @@ reth-cli-runner.workspace = true reth-node-builder.workspace = true reth-tracing.workspace = true - # eth alloy-primitives.workspace = true alloy-rlp.workspace = true - # misc futures-util.workspace = true clap = { workspace = true, features = ["derive", "env"] } @@ -68,10 +66,10 @@ tempfile.workspace = true reth-stages = { workspace = true, features = ["test-utils"] } reth-db-common.workspace = true -[features] - optimism = [ +[features] + optimism = [ "reth-primitives/optimism", "reth-evm-optimism/optimism", "reth-provider/optimism", "reth-node-optimism/optimism", - ] + ] diff --git a/crates/optimism/cli/src/commands/import_receipts.rs b/crates/optimism/cli/src/commands/import_receipts.rs index efc815dc4..d84296d84 100644 --- a/crates/optimism/cli/src/commands/import_receipts.rs +++ b/crates/optimism/cli/src/commands/import_receipts.rs @@ -252,8 +252,8 @@ pub struct ImportReceiptsResult { #[cfg(test)] mod test { + use alloy_primitives::hex; use reth_db_common::init::init_genesis; - use reth_primitives::hex; use reth_stages::test_utils::TestStageDB; use tempfile::tempfile; use tokio::{ diff --git a/crates/optimism/cli/src/receipt_file_codec.rs b/crates/optimism/cli/src/receipt_file_codec.rs index b2643b840..c86bfa12a 100644 --- a/crates/optimism/cli/src/receipt_file_codec.rs +++ b/crates/optimism/cli/src/receipt_file_codec.rs @@ -1,9 +1,10 @@ //! Codec for reading raw receipts from a file. +use alloy_primitives::B256; use alloy_rlp::{Decodable, RlpDecodable}; use reth_primitives::{ bytes::{Buf, BytesMut}, - Address, Bloom, Bytes, Log, Receipt, TxType, B256, + Address, Bloom, Bytes, Log, Receipt, TxType, }; use tokio_util::codec::Decoder; @@ -94,7 +95,8 @@ impl TryFrom for ReceiptWithBlockNumber { #[cfg(test)] pub(crate) mod test { - use reth_primitives::{alloy_primitives::LogData, hex}; + use alloy_primitives::hex; + use reth_primitives::alloy_primitives::LogData; use super::*; diff --git a/crates/optimism/consensus/Cargo.toml b/crates/optimism/consensus/Cargo.toml index cf522bfb8..a77a50cad 100644 --- a/crates/optimism/consensus/Cargo.toml +++ b/crates/optimism/consensus/Cargo.toml @@ -19,12 +19,14 @@ reth-consensus.workspace = true reth-primitives.workspace = true reth-trie-common.workspace = true +# ethereum +alloy-primitives.workspace = true + tracing.workspace = true [dev-dependencies] alloy-primitives.workspace = true reth-optimism-chainspec.workspace = true - [features] -optimism = ["reth-primitives/optimism"] \ No newline at end of file +optimism = ["reth-primitives/optimism"] diff --git a/crates/optimism/consensus/src/lib.rs b/crates/optimism/consensus/src/lib.rs index abf5d8599..e603f1d91 100644 --- a/crates/optimism/consensus/src/lib.rs +++ b/crates/optimism/consensus/src/lib.rs @@ -9,6 +9,7 @@ // The `optimism` feature must be enabled to use this crate. #![cfg(feature = "optimism")] +use alloy_primitives::U256; use reth_chainspec::{ChainSpec, EthereumHardforks, OptimismHardforks}; use reth_consensus::{Consensus, ConsensusError, PostExecutionInput}; use reth_consensus_common::validation::{ @@ -17,9 +18,7 @@ use reth_consensus_common::validation::{ validate_block_pre_execution, validate_header_base_fee, validate_header_extradata, validate_header_gas, }; -use reth_primitives::{ - BlockWithSenders, Header, SealedBlock, SealedHeader, EMPTY_OMMER_ROOT_HASH, U256, -}; +use reth_primitives::{BlockWithSenders, Header, SealedBlock, SealedHeader, EMPTY_OMMER_ROOT_HASH}; use std::{sync::Arc, time::SystemTime}; mod proof; diff --git a/crates/optimism/consensus/src/proof.rs b/crates/optimism/consensus/src/proof.rs index 8f9b83866..d11244293 100644 --- a/crates/optimism/consensus/src/proof.rs +++ b/crates/optimism/consensus/src/proof.rs @@ -1,7 +1,8 @@ //! Helper function for Receipt root calculation for Optimism hardforks. +use alloy_primitives::B256; use reth_chainspec::{ChainSpec, OptimismHardfork}; -use reth_primitives::{ReceiptWithBloom, B256}; +use reth_primitives::ReceiptWithBloom; use reth_trie_common::root::ordered_trie_root_with_encoder; /// Calculates the receipt root for a header. diff --git a/crates/optimism/consensus/src/validation.rs b/crates/optimism/consensus/src/validation.rs index a3cd1627e..3a76ec138 100644 --- a/crates/optimism/consensus/src/validation.rs +++ b/crates/optimism/consensus/src/validation.rs @@ -1,9 +1,8 @@ use crate::proof::calculate_receipt_root_optimism; +use alloy_primitives::{Bloom, B256}; use reth_chainspec::{ChainSpec, EthereumHardforks}; use reth_consensus::ConsensusError; -use reth_primitives::{ - gas_spent_by_transactions, BlockWithSenders, Bloom, GotExpected, Receipt, B256, -}; +use reth_primitives::{gas_spent_by_transactions, BlockWithSenders, GotExpected, Receipt}; /// Validate a block with regard to execution results: /// diff --git a/crates/optimism/evm/Cargo.toml b/crates/optimism/evm/Cargo.toml index 6e06a280a..48282cdaf 100644 --- a/crates/optimism/evm/Cargo.toml +++ b/crates/optimism/evm/Cargo.toml @@ -21,6 +21,9 @@ reth-execution-errors.workspace = true reth-execution-types.workspace = true reth-prune-types.workspace = true +# ethereum +alloy-primitives.workspace = true + # Optimism reth-optimism-consensus.workspace = true diff --git a/crates/optimism/evm/src/error.rs b/crates/optimism/evm/src/error.rs index 57958b5ec..c5c6a0a4a 100644 --- a/crates/optimism/evm/src/error.rs +++ b/crates/optimism/evm/src/error.rs @@ -19,7 +19,7 @@ pub enum OptimismBlockExecutionError { BlobTransactionRejected, /// Thrown when a database account could not be loaded. #[error("failed to load account {0}")] - AccountLoadFailed(reth_primitives::Address), + AccountLoadFailed(alloy_primitives::Address), } impl From for BlockExecutionError { diff --git a/crates/optimism/evm/src/execute.rs b/crates/optimism/evm/src/execute.rs index 3b18f4389..659d7128c 100644 --- a/crates/optimism/evm/src/execute.rs +++ b/crates/optimism/evm/src/execute.rs @@ -1,6 +1,7 @@ //! Optimism block executor. use crate::{l1::ensure_create2_deployer, OptimismBlockExecutionError, OptimismEvmConfig}; +use alloy_primitives::{BlockNumber, U256}; use reth_chainspec::{ChainSpec, EthereumHardforks, OptimismHardfork}; use reth_evm::{ execute::{ @@ -12,7 +13,7 @@ use reth_evm::{ }; use reth_execution_types::ExecutionOutcome; use reth_optimism_consensus::validate_block_post_execution; -use reth_primitives::{BlockNumber, BlockWithSenders, Header, Receipt, Receipts, TxType, U256}; +use reth_primitives::{BlockWithSenders, Header, Receipt, Receipts, TxType}; use reth_prune_types::PruneModes; use reth_revm::{ batch::BlockBatchRecord, db::states::bundle_state::BundleRetention, @@ -441,10 +442,10 @@ where #[cfg(test)] mod tests { use super::*; + use alloy_primitives::{b256, Address, StorageKey, StorageValue}; use reth_chainspec::ChainSpecBuilder; use reth_primitives::{ - b256, Account, Address, Block, Signature, StorageKey, StorageValue, Transaction, - TransactionSigned, TxEip1559, BASE_MAINNET, + Account, Block, Signature, Transaction, TransactionSigned, TxEip1559, BASE_MAINNET, }; use reth_revm::{ database::StateProviderDatabase, test_utils::StateProviderTest, L1_BLOCK_CONTRACT, diff --git a/crates/optimism/evm/src/l1.rs b/crates/optimism/evm/src/l1.rs index f9f952788..20d1ec854 100644 --- a/crates/optimism/evm/src/l1.rs +++ b/crates/optimism/evm/src/l1.rs @@ -1,9 +1,10 @@ //! Optimism-specific implementation and utilities for the executor use crate::OptimismBlockExecutionError; +use alloy_primitives::{address, b256, hex, Address, Bytes, B256, U256}; use reth_chainspec::{ChainSpec, OptimismHardfork}; use reth_execution_errors::BlockExecutionError; -use reth_primitives::{address, b256, hex, Address, Block, Bytes, B256, U256}; +use reth_primitives::Block; use revm::{ primitives::{Bytecode, HashMap, SpecId}, DatabaseCommit, L1BlockInfo, @@ -303,7 +304,8 @@ mod tests { #[test] fn sanity_l1_block() { - use reth_primitives::{hex_literal::hex, Bytes, Header, TransactionSigned}; + use alloy_primitives::{hex_literal::hex, Bytes}; + use reth_primitives::{Header, TransactionSigned}; let bytes = Bytes::from_static(&hex!("7ef9015aa044bae9d41b8380d781187b426c6fe43df5fb2fb57bd4466ef6a701e1f01e015694deaddeaddeaddeaddeaddeaddeaddeaddead000194420000000000000000000000000000000000001580808408f0d18001b90104015d8eb900000000000000000000000000000000000000000000000000000000008057650000000000000000000000000000000000000000000000000000000063d96d10000000000000000000000000000000000000000000000000000000000009f35273d89754a1e0387b89520d989d3be9c37c1f32495a88faf1ea05c61121ab0d1900000000000000000000000000000000000000000000000000000000000000010000000000000000000000002d679b567db6187c0c8323fa982cfb88b74dbcc7000000000000000000000000000000000000000000000000000000000000083400000000000000000000000000000000000000000000000000000000000f4240")); let l1_info_tx = TransactionSigned::decode_enveloped(&mut bytes.as_ref()).unwrap(); diff --git a/crates/optimism/evm/src/lib.rs b/crates/optimism/evm/src/lib.rs index f55616df2..0e46e3464 100644 --- a/crates/optimism/evm/src/lib.rs +++ b/crates/optimism/evm/src/lib.rs @@ -9,12 +9,13 @@ // The `optimism` feature must be enabled to use this crate. #![cfg(feature = "optimism")] +use alloy_primitives::{Address, U256}; use reth_chainspec::ChainSpec; use reth_evm::{ConfigureEvm, ConfigureEvmEnv}; use reth_primitives::{ revm_primitives::{AnalysisKind, CfgEnvWithHandlerCfg, TxEnv}, transaction::FillTxEnv, - Address, Head, Header, TransactionSigned, U256, + Head, Header, TransactionSigned, }; use reth_revm::{inspector_handle_register, Database, Evm, EvmBuilder, GetInspector}; @@ -136,11 +137,12 @@ impl ConfigureEvm for OptimismEvmConfig { #[cfg(test)] mod tests { use super::*; + use alloy_primitives::{B256, U256}; use reth_chainspec::{Chain, ChainSpec}; use reth_evm::execute::ProviderError; use reth_primitives::{ revm_primitives::{BlockEnv, CfgEnv, SpecId}, - Genesis, Header, B256, KECCAK_EMPTY, U256, + Genesis, Header, KECCAK_EMPTY, }; use reth_revm::{ db::{CacheDB, EmptyDBTyped}, diff --git a/crates/optimism/node/Cargo.toml b/crates/optimism/node/Cargo.toml index 3e963a238..3d23740a6 100644 --- a/crates/optimism/node/Cargo.toml +++ b/crates/optimism/node/Cargo.toml @@ -39,6 +39,9 @@ reth-optimism-rpc.workspace = true reth-rpc.workspace = true reth-optimism-chainspec.workspace = true +# ethereum +alloy-primitives.workspace = true + # async async-trait.workspace = true reqwest = { workspace = true, features = ["rustls-tls-native-roots"] } diff --git a/crates/optimism/node/src/txpool.rs b/crates/optimism/node/src/txpool.rs index f4849d2d4..b489c4c3b 100644 --- a/crates/optimism/node/src/txpool.rs +++ b/crates/optimism/node/src/txpool.rs @@ -224,10 +224,11 @@ pub struct OpL1BlockInfo { #[cfg(test)] mod tests { use crate::txpool::OpTransactionValidator; + use alloy_primitives::{TxKind, U256}; + use reth::primitives::Signature; use reth_chainspec::MAINNET; use reth_primitives::{ - Signature, Transaction, TransactionSigned, TransactionSignedEcRecovered, TxDeposit, TxKind, - U256, + Transaction, TransactionSigned, TransactionSignedEcRecovered, TxDeposit, }; use reth_provider::test_utils::MockEthProvider; use reth_transaction_pool::{ diff --git a/crates/optimism/node/tests/e2e/utils.rs b/crates/optimism/node/tests/e2e/utils.rs index 89933af63..6b8e07a42 100644 --- a/crates/optimism/node/tests/e2e/utils.rs +++ b/crates/optimism/node/tests/e2e/utils.rs @@ -1,6 +1,7 @@ use std::sync::Arc; use alloy_genesis::Genesis; +use alloy_primitives::{Address, B256}; use reth::{rpc::types::engine::PayloadAttributes, tasks::TaskManager}; use reth_chainspec::ChainSpecBuilder; use reth_e2e_test_utils::{transaction::TransactionTestContext, wallet::Wallet, NodeHelperType}; @@ -9,7 +10,6 @@ use reth_node_optimism::{ }; use reth_optimism_chainspec::BASE_MAINNET; use reth_payload_builder::EthPayloadBuilderAttributes; -use reth_primitives::{Address, B256}; use tokio::sync::Mutex; /// Optimism Node Helper type diff --git a/crates/optimism/payload/Cargo.toml b/crates/optimism/payload/Cargo.toml index 23900295e..39cf8263f 100644 --- a/crates/optimism/payload/Cargo.toml +++ b/crates/optimism/payload/Cargo.toml @@ -31,6 +31,7 @@ reth-chain-state.workspace = true # ethereum revm.workspace = true +alloy-primitives.workspace = true alloy-rlp.workspace = true # misc diff --git a/crates/optimism/payload/src/builder.rs b/crates/optimism/payload/src/builder.rs index 818e10df6..883d085a1 100644 --- a/crates/optimism/payload/src/builder.rs +++ b/crates/optimism/payload/src/builder.rs @@ -4,6 +4,7 @@ use crate::{ error::OptimismPayloadBuilderError, payload::{OptimismBuiltPayload, OptimismPayloadBuilderAttributes}, }; +use alloy_primitives::U256; use reth_basic_payload_builder::*; use reth_chain_state::ExecutedBlock; use reth_chainspec::{EthereumHardforks, OptimismHardfork}; @@ -13,7 +14,7 @@ use reth_payload_builder::error::PayloadBuilderError; use reth_primitives::{ constants::{BEACON_NONCE, EMPTY_RECEIPTS, EMPTY_TRANSACTIONS}, eip4844::calculate_excess_blob_gas, - proofs, Block, Header, IntoRecoveredTransaction, Receipt, TxType, EMPTY_OMMER_ROOT_HASH, U256, + proofs, Block, Header, IntoRecoveredTransaction, Receipt, TxType, EMPTY_OMMER_ROOT_HASH, }; use reth_provider::StateProviderFactory; use reth_revm::database::StateProviderDatabase; diff --git a/crates/optimism/payload/src/error.rs b/crates/optimism/payload/src/error.rs index 38f5bb10b..2016fdc6d 100644 --- a/crates/optimism/payload/src/error.rs +++ b/crates/optimism/payload/src/error.rs @@ -13,7 +13,7 @@ pub enum OptimismPayloadBuilderError { L1BlockInfoParseFailed, /// Thrown when a database account could not be loaded. #[error("failed to load account {0}")] - AccountLoadFailed(reth_primitives::Address), + AccountLoadFailed(alloy_primitives::Address), /// Thrown when force deploy of create2deployer code fails. #[error("failed to force create2deployer account code")] ForceCreate2DeployerFail, diff --git a/crates/optimism/payload/src/payload.rs b/crates/optimism/payload/src/payload.rs index 1746b6649..62c559b32 100644 --- a/crates/optimism/payload/src/payload.rs +++ b/crates/optimism/payload/src/payload.rs @@ -2,6 +2,7 @@ //! Optimism builder support +use alloy_primitives::{Address, B256, U256}; use alloy_rlp::Encodable; use reth_chain_state::ExecutedBlock; use reth_chainspec::{ChainSpec, EthereumHardforks}; @@ -11,8 +12,7 @@ use reth_payload_primitives::{BuiltPayload, PayloadBuilderAttributes}; use reth_primitives::{ revm_primitives::{BlobExcessGasAndPrice, BlockEnv, CfgEnv, CfgEnvWithHandlerCfg, SpecId}, transaction::WithEncoded, - Address, BlobTransactionSidecar, Header, SealedBlock, TransactionSigned, Withdrawals, B256, - U256, + BlobTransactionSidecar, Header, SealedBlock, TransactionSigned, Withdrawals, }; /// Re-export for use in downstream arguments. pub use reth_rpc_types::optimism::OptimismPayloadAttributes; diff --git a/crates/optimism/rpc/Cargo.toml b/crates/optimism/rpc/Cargo.toml index f82483590..3778b7713 100644 --- a/crates/optimism/rpc/Cargo.toml +++ b/crates/optimism/rpc/Cargo.toml @@ -32,8 +32,8 @@ reth-chainspec.workspace = true # ethereum alloy-primitives.workspace = true op-alloy-network.workspace = true -revm.workspace = true op-alloy-rpc-types.workspace = true +revm.workspace = true # async parking_lot.workspace = true @@ -58,4 +58,4 @@ optimism = [ "reth-provider/optimism", "reth-rpc-eth-api/optimism", "revm/optimism", -] \ No newline at end of file +] diff --git a/crates/optimism/rpc/src/eth/call.rs b/crates/optimism/rpc/src/eth/call.rs index f910ef990..40e7a6aa2 100644 --- a/crates/optimism/rpc/src/eth/call.rs +++ b/crates/optimism/rpc/src/eth/call.rs @@ -1,10 +1,8 @@ +use alloy_primitives::{Bytes, TxKind, U256}; use reth_chainspec::ChainSpec; use reth_evm::ConfigureEvm; use reth_node_api::{FullNodeComponents, NodeTypes}; -use reth_primitives::{ - revm_primitives::{BlockEnv, OptimismFields, TxEnv}, - Bytes, TxKind, U256, -}; +use reth_primitives::revm_primitives::{BlockEnv, OptimismFields, TxEnv}; use reth_rpc_eth_api::{ helpers::{Call, EthCall, LoadState, SpawnBlocking}, FromEthApiError, IntoEthApiError, diff --git a/crates/optimism/rpc/src/eth/pending_block.rs b/crates/optimism/rpc/src/eth/pending_block.rs index fb0981b13..3b9fe2e20 100644 --- a/crates/optimism/rpc/src/eth/pending_block.rs +++ b/crates/optimism/rpc/src/eth/pending_block.rs @@ -1,10 +1,11 @@ //! Loads OP pending block for a RPC response. +use alloy_primitives::{BlockNumber, B256}; use reth_chainspec::ChainSpec; use reth_evm::ConfigureEvm; use reth_node_api::{FullNodeComponents, NodeTypes}; use reth_primitives::{ - revm_primitives::BlockEnv, BlockNumber, BlockNumberOrTag, Receipt, SealedBlockWithSenders, B256, + revm_primitives::BlockEnv, BlockNumberOrTag, Receipt, SealedBlockWithSenders, }; use reth_provider::{ BlockReader, BlockReaderIdExt, ChainSpecProvider, EvmEnvProvider, ExecutionOutcome, diff --git a/crates/optimism/rpc/src/eth/rpc.rs b/crates/optimism/rpc/src/eth/rpc.rs index 02f227cbe..747e36a3c 100644 --- a/crates/optimism/rpc/src/eth/rpc.rs +++ b/crates/optimism/rpc/src/eth/rpc.rs @@ -73,7 +73,7 @@ impl SequencerClient { let body = serde_json::to_string(&serde_json::json!({ "jsonrpc": "2.0", "method": "eth_sendRawTransaction", - "params": [format!("0x{}", reth_primitives::hex::encode(tx))], + "params": [format!("0x{}", alloy_primitives::hex::encode(tx))], "id": self.next_request_id() })) .map_err(|_| {