From b4ad28dfb4e049a54969513d6c4552783f7f4b4f Mon Sep 17 00:00:00 2001 From: greged93 <82421016+greged93@users.noreply.github.com> Date: Sat, 21 Sep 2024 22:20:42 +0200 Subject: [PATCH] chore: reth payload without reth rpc types (#11097) --- Cargo.lock | 7 ++++--- crates/payload/builder/Cargo.toml | 2 +- crates/payload/builder/src/lib.rs | 4 ++-- crates/payload/builder/src/service.rs | 2 +- crates/payload/primitives/Cargo.toml | 3 ++- crates/payload/primitives/src/payload.rs | 4 ++-- crates/payload/primitives/src/traits.rs | 10 +++++----- crates/payload/validator/Cargo.toml | 4 +++- crates/payload/validator/src/lib.rs | 4 ++-- 9 files changed, 22 insertions(+), 18 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3c3aa3a19..d8cb12886 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8142,6 +8142,7 @@ name = "reth-payload-builder" version = "1.0.7" dependencies = [ "alloy-primitives", + "alloy-rpc-types", "async-trait", "futures-util", "metrics", @@ -8151,7 +8152,6 @@ dependencies = [ "reth-payload-primitives", "reth-primitives", "reth-provider", - "reth-rpc-types", "revm", "tokio", "tokio-stream", @@ -8163,13 +8163,14 @@ name = "reth-payload-primitives" version = "1.0.7" dependencies = [ "alloy-primitives", + "alloy-rpc-types", "async-trait", + "op-alloy-rpc-types-engine", "pin-project", "reth-chain-state", "reth-chainspec", "reth-errors", "reth-primitives", - "reth-rpc-types", "reth-transaction-pool", "serde", "thiserror", @@ -8182,9 +8183,9 @@ dependencies = [ name = "reth-payload-validator" version = "1.0.7" dependencies = [ + "alloy-rpc-types", "reth-chainspec", "reth-primitives", - "reth-rpc-types", "reth-rpc-types-compat", ] diff --git a/crates/payload/builder/Cargo.toml b/crates/payload/builder/Cargo.toml index c96b9ae3d..71f63ce34 100644 --- a/crates/payload/builder/Cargo.toml +++ b/crates/payload/builder/Cargo.toml @@ -14,13 +14,13 @@ workspace = true [dependencies] # reth reth-primitives.workspace = true -reth-rpc-types.workspace = true reth-provider.workspace = true reth-payload-primitives.workspace = true reth-ethereum-engine-primitives.workspace = true reth-chain-state = { workspace = true, optional = true } # alloy +alloy-rpc-types = { workspace = true, features = ["engine"] } alloy-primitives.workspace = true # async diff --git a/crates/payload/builder/src/lib.rs b/crates/payload/builder/src/lib.rs index 64f5f93db..51f9efd30 100644 --- a/crates/payload/builder/src/lib.rs +++ b/crates/payload/builder/src/lib.rs @@ -1,6 +1,6 @@ //! This crate defines abstractions to create and update payloads (blocks): //! - [`PayloadJobGenerator`]: a type that knows how to create new jobs for creating payloads based -//! on [`PayloadAttributes`](reth_rpc_types::engine::PayloadAttributes). +//! on [`PayloadAttributes`](alloy_rpc_types::engine::PayloadAttributes). //! - [`PayloadJob`]: a type that yields (better) payloads over time. //! //! This crate comes with the generic [`PayloadBuilderService`] responsible for managing payload @@ -110,8 +110,8 @@ pub mod noop; #[cfg(any(test, feature = "test-utils"))] pub mod test_utils; +pub use alloy_rpc_types::engine::PayloadId; pub use reth_payload_primitives::PayloadBuilderError; -pub use reth_rpc_types::engine::PayloadId; pub use service::{ PayloadBuilderHandle, PayloadBuilderService, PayloadServiceCommand, PayloadStore, }; diff --git a/crates/payload/builder/src/service.rs b/crates/payload/builder/src/service.rs index e5c88f554..7de256c7b 100644 --- a/crates/payload/builder/src/service.rs +++ b/crates/payload/builder/src/service.rs @@ -7,13 +7,13 @@ use crate::{ metrics::PayloadBuilderServiceMetrics, traits::PayloadJobGenerator, KeepPayloadJobAlive, PayloadJob, }; +use alloy_rpc_types::engine::PayloadId; use futures_util::{future::FutureExt, Stream, StreamExt}; use reth_payload_primitives::{ BuiltPayload, Events, PayloadBuilder, PayloadBuilderAttributes, PayloadBuilderError, PayloadEvents, PayloadTypes, }; use reth_provider::CanonStateNotification; -use reth_rpc_types::engine::PayloadId; use std::{ fmt, future::Future, diff --git a/crates/payload/primitives/Cargo.toml b/crates/payload/primitives/Cargo.toml index 33c38cab9..27418ccd8 100644 --- a/crates/payload/primitives/Cargo.toml +++ b/crates/payload/primitives/Cargo.toml @@ -17,11 +17,12 @@ reth-chainspec.workspace = true reth-errors.workspace = true reth-primitives.workspace = true reth-transaction-pool.workspace = true -reth-rpc-types.workspace = true reth-chain-state.workspace = true # alloy alloy-primitives.workspace = true +alloy-rpc-types = { workspace = true, features = ["engine"] } +op-alloy-rpc-types-engine.workspace = true # async async-trait.workspace = true diff --git a/crates/payload/primitives/src/payload.rs b/crates/payload/primitives/src/payload.rs index cbaccac36..41c2ef1ef 100644 --- a/crates/payload/primitives/src/payload.rs +++ b/crates/payload/primitives/src/payload.rs @@ -1,6 +1,6 @@ use crate::{MessageValidationKind, PayloadAttributes}; use alloy_primitives::B256; -use reth_rpc_types::engine::ExecutionPayload; +use alloy_rpc_types::engine::ExecutionPayload; /// Either an [`ExecutionPayload`] or a types that implements the [`PayloadAttributes`] trait. #[derive(Debug)] @@ -30,7 +30,7 @@ where } /// Return the withdrawals for the payload or attributes. - pub fn withdrawals(&self) -> Option<&Vec> { + pub fn withdrawals(&self) -> Option<&Vec> { match self { Self::ExecutionPayload { payload, .. } => payload.withdrawals(), Self::PayloadAttributes(attributes) => attributes.withdrawals(), diff --git a/crates/payload/primitives/src/traits.rs b/crates/payload/primitives/src/traits.rs index 60210efe7..6e97ec2b9 100644 --- a/crates/payload/primitives/src/traits.rs +++ b/crates/payload/primitives/src/traits.rs @@ -3,14 +3,14 @@ use crate::{ PayloadBuilderError, PayloadEvents, PayloadTypes, }; use alloy_primitives::{Address, B256, U256}; +use alloy_rpc_types::{ + engine::{PayloadAttributes as EthPayloadAttributes, PayloadId}, + Withdrawal, +}; +use op_alloy_rpc_types_engine::OptimismPayloadAttributes; use reth_chain_state::ExecutedBlock; use reth_chainspec::ChainSpec; use reth_primitives::{SealedBlock, Withdrawals}; -use reth_rpc_types::{ - engine::{PayloadAttributes as EthPayloadAttributes, PayloadId}, - optimism::OptimismPayloadAttributes, - Withdrawal, -}; use std::{future::Future, pin::Pin}; use tokio::sync::oneshot; diff --git a/crates/payload/validator/Cargo.toml b/crates/payload/validator/Cargo.toml index 66efe865c..2662b987f 100644 --- a/crates/payload/validator/Cargo.toml +++ b/crates/payload/validator/Cargo.toml @@ -15,5 +15,7 @@ workspace = true # reth reth-chainspec.workspace = true reth-primitives.workspace = true -reth-rpc-types.workspace = true reth-rpc-types-compat.workspace = true + +# alloy +alloy-rpc-types = { workspace = true, features = ["engine"] } diff --git a/crates/payload/validator/src/lib.rs b/crates/payload/validator/src/lib.rs index 4f83343f8..a9e686b1e 100644 --- a/crates/payload/validator/src/lib.rs +++ b/crates/payload/validator/src/lib.rs @@ -8,9 +8,9 @@ #![cfg_attr(not(test), warn(unused_crate_dependencies))] #![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))] +use alloy_rpc_types::engine::{ExecutionPayload, MaybeCancunPayloadFields, PayloadError}; use reth_chainspec::EthereumHardforks; use reth_primitives::SealedBlock; -use reth_rpc_types::{engine::MaybeCancunPayloadFields, ExecutionPayload, PayloadError}; use reth_rpc_types_compat::engine::payload::try_into_block; use std::sync::Arc; @@ -102,7 +102,7 @@ impl ExecutionPayloadValidator { /// /// If the cancun fields are provided this also validates that the versioned hashes in the block /// match the versioned hashes passed in the - /// [`CancunPayloadFields`](reth_rpc_types::engine::CancunPayloadFields), if the cancun payload + /// [`CancunPayloadFields`](alloy_rpc_types::engine::CancunPayloadFields), if the cancun payload /// fields are provided. If the payload fields are not provided, but versioned hashes exist /// in the block, this is considered an error: [`PayloadError::InvalidVersionedHashes`]. ///