From e263daebce0d2f903521e1fdc8fa4407d18b11a7 Mon Sep 17 00:00:00 2001 From: Matthias Seitz Date: Fri, 11 Jul 2025 00:04:24 +0200 Subject: [PATCH] chore: broadcast raw tx for opethapi (#17342) --- Cargo.lock | 1 - crates/optimism/rpc/Cargo.toml | 1 - crates/optimism/rpc/src/eth/mod.rs | 9 --------- crates/optimism/rpc/src/eth/transaction.rs | 4 ++++ 4 files changed, 4 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7e0b4a9e5e..b9c9b7dc48 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9420,7 +9420,6 @@ dependencies = [ "op-revm", "parking_lot", "reqwest", - "reth-chain-state", "reth-chainspec", "reth-evm", "reth-metrics", diff --git a/crates/optimism/rpc/Cargo.toml b/crates/optimism/rpc/Cargo.toml index d31de8a0b4..954722b3fd 100644 --- a/crates/optimism/rpc/Cargo.toml +++ b/crates/optimism/rpc/Cargo.toml @@ -16,7 +16,6 @@ workspace = true reth-evm.workspace = true reth-primitives-traits.workspace = true reth-storage-api.workspace = true -reth-chain-state.workspace = true reth-rpc-eth-api = { workspace = true, features = ["op"] } reth-rpc-eth-types.workspace = true reth-rpc-server-types.workspace = true diff --git a/crates/optimism/rpc/src/eth/mod.rs b/crates/optimism/rpc/src/eth/mod.rs index 29384e3aa0..6f2bc1b0b1 100644 --- a/crates/optimism/rpc/src/eth/mod.rs +++ b/crates/optimism/rpc/src/eth/mod.rs @@ -13,7 +13,6 @@ use alloy_primitives::U256; use eyre::WrapErr; use op_alloy_network::Optimism; pub use receipt::{OpReceiptBuilder, OpReceiptFieldsBuilder}; -use reth_chain_state::CanonStateSubscriptions; use reth_chainspec::{ChainSpecProvider, EthChainSpec, EthereumHardforks}; use reth_evm::ConfigureEvm; use reth_network_api::NetworkInfo; @@ -83,19 +82,11 @@ impl OpEthApi { tx_resp_builder: RpcConverter::with_mapper(OpTxInfoMapper::new(inner)), } } -} -impl OpEthApi -where - N: OpNodeCore< - Provider: BlockReaderIdExt + ChainSpecProvider + CanonStateSubscriptions + Clone + 'static, - >, -{ /// Returns a reference to the [`EthApiNodeBackend`]. pub fn eth_api(&self) -> &EthApiNodeBackend { self.inner.eth_api() } - /// Returns the configured sequencer client, if any. pub fn sequencer_client(&self) -> Option<&SequencerClient> { self.inner.sequencer_client() diff --git a/crates/optimism/rpc/src/eth/transaction.rs b/crates/optimism/rpc/src/eth/transaction.rs index 30422316ad..106fe85b1f 100644 --- a/crates/optimism/rpc/src/eth/transaction.rs +++ b/crates/optimism/rpc/src/eth/transaction.rs @@ -39,6 +39,10 @@ where /// Returns the hash of the transaction. async fn send_raw_transaction(&self, tx: Bytes) -> Result { let recovered = recover_raw_transaction(&tx)?; + + // broadcast raw transaction to subscribers if there is any. + self.eth_api().broadcast_raw_transaction(tx.clone()); + let pool_transaction = ::Transaction::from_pooled(recovered); // On optimism, transactions are forwarded directly to the sequencer to be included in