diff --git a/Cargo.lock b/Cargo.lock index 440633218..e2ff8b51d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3622,7 +3622,6 @@ dependencies = [ "color-eyre", "flashblocks-p2p", "flashblocks-primitives", - "flashblocks-provider", "futures", "jsonrpsee", "jsonrpsee-core", @@ -3696,7 +3695,6 @@ dependencies = [ "flashblocks-p2p", "flashblocks-payload", "flashblocks-primitives", - "flashblocks-provider", "flashblocks-rpc", "futures-util", "hex", @@ -3822,15 +3820,6 @@ dependencies = [ "thiserror 1.0.69", ] -[[package]] -name = "flashblocks-provider" -version = "0.1.0" -dependencies = [ - "reth-chain-state", - "reth-node-api", - "reth-provider", -] - [[package]] name = "flashblocks-rpc" version = "0.1.0" @@ -3841,7 +3830,6 @@ dependencies = [ "alloy-rpc-types-engine", "color-eyre", "flashblocks-primitives", - "flashblocks-provider", "jsonrpsee", "jsonrpsee-core", "op-alloy-network", @@ -13830,7 +13818,6 @@ dependencies = [ "flashblocks-node", "flashblocks-p2p", "flashblocks-primitives", - "flashblocks-provider", "flashblocks-rpc", "futures", "hex", @@ -14007,7 +13994,6 @@ dependencies = [ "chrono", "flashblocks-cli", "flashblocks-primitives", - "flashblocks-provider", "futures", "op-alloy-consensus", "parking_lot", diff --git a/Cargo.toml b/Cargo.toml index 074048ebb..cdfe56790 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,7 +19,6 @@ members = [ "crates/flashblocks/payload", "crates/flashblocks/node", "crates/flashblocks/cli", - "crates/flashblocks/provider", ] default-members = [ "crates/flashblocks/p2p", @@ -29,7 +28,6 @@ default-members = [ "crates/flashblocks/payload", "crates/flashblocks/node", "crates/flashblocks/cli", - "crates/flashblocks/provider", "crates/world/bin", "crates/world/node", "crates/world/payload", @@ -56,7 +54,6 @@ flashblocks-rpc = { path = "crates/flashblocks/rpc" } flashblocks-builder = { path = "crates/flashblocks/builder" } flashblocks-payload = { path = "crates/flashblocks/payload" } flashblocks-cli = { path = "crates/flashblocks/cli" } -flashblocks-provider = { path = "crates/flashblocks/provider" } # Internal world-chain-node = { path = "crates/world/node" } diff --git a/crates/flashblocks/builder/Cargo.toml b/crates/flashblocks/builder/Cargo.toml index cde896e98..e3eff9275 100644 --- a/crates/flashblocks/builder/Cargo.toml +++ b/crates/flashblocks/builder/Cargo.toml @@ -7,9 +7,6 @@ license.workspace = true [dependencies] -# internal -flashblocks-provider.workspace = true - # reth reth.workspace = true reth-basic-payload-builder.workspace = true @@ -68,4 +65,5 @@ jsonrpsee.workspace = true futures.workspace = true serde.workspace = true serde_json.workspace = true -eyre.workspace = true \ No newline at end of file +eyre.workspace = true + diff --git a/crates/flashblocks/builder/src/executor.rs b/crates/flashblocks/builder/src/executor.rs index 168501cfa..9a432f466 100644 --- a/crates/flashblocks/builder/src/executor.rs +++ b/crates/flashblocks/builder/src/executor.rs @@ -6,10 +6,10 @@ use alloy_op_evm::block::receipt_builder::OpReceiptBuilder; use alloy_op_evm::{OpBlockExecutionCtx, OpBlockExecutorFactory, OpEvmFactory}; use alloy_primitives::{address, b256, hex, Address, Bytes, B256}; use alloy_rpc_types_engine::PayloadId; +use eyre::eyre::OptionExt as _; use flashblocks_p2p::protocol::handler::FlashblocksHandle; use flashblocks_primitives::p2p::AuthorizedPayload; use flashblocks_primitives::primitives::FlashblocksPayloadV1; -use flashblocks_provider::InMemoryState; use futures::StreamExt as _; use op_alloy_consensus::{encode_holocene_extra_data, OpDepositReceipt, OpTxEnvelope}; use parking_lot::RwLock; @@ -705,9 +705,7 @@ impl FlashblocksStateExecutor { ) where Pool: TransactionPool + 'static, Node: FullNodeTypes, - Node::Provider: InMemoryState - + StateProviderFactory - + HeaderProvider
, + Node::Provider: StateProviderFactory + HeaderProvider
, Node::Types: NodeTypes, P: PayloadBuilderCtxBuilder + 'static, { @@ -802,10 +800,8 @@ fn process_flashblock( pending_block: tokio::sync::watch::Sender>>, ) -> eyre::Result<()> where - Provider: InMemoryState - + StateProviderFactory - + HeaderProvider
- + Clone, + Provider: StateProviderFactory + HeaderProvider
+ Clone, + Pool: TransactionPool + 'static, P: PayloadBuilderCtxBuilder + 'static, { @@ -876,53 +872,46 @@ where eip_1559_params: Some(eip1559[1..=8].try_into()?), }; - let state_provider = provider.state_by_block_hash(base.parent_hash)?; - // The header either exists in the in memory state (has not been persisted to disk) or exists within // the database. First check the in memory state, then fall back to the database. - // TODO: Figure out a way to see if there is a writer on the DB and avoid crashing the node by reading - // the header from disk if - let sealed_header = provider.in_memory_state().header_by_hash(base.parent_hash); - - if let Some(sealed_header) = sealed_header { - let config = PayloadConfig::new(Arc::new(sealed_header), attributes); - let builder_ctx = payload_builder_ctx_builder.build( - provider.clone(), - evm_config.clone(), - state_executor.da_config.clone(), - config, - &cancel, - latest_payload.as_ref().map(|p| p.0.clone()), - ); + let sealed_header = provider + .sealed_header_by_hash(base.parent_hash)? + .ok_or_eyre("missing sealed header")?; - let best = |_| BestPayloadTransactions::new(vec![].into_iter()); - let db = StateProviderDatabase::new(&state_provider); - - let outcome = FlashblockBuilder::new(best).build( - pool.clone(), - db, - &state_provider, - &builder_ctx, - latest_payload.as_ref().map(|p| p.0.clone()), - )?; - - let payload = match outcome { - BuildOutcomeKind::Better { payload } => payload, - BuildOutcomeKind::Freeze(payload) => payload, - _ => return Ok(()), - }; + let state_provider = provider.state_by_block_hash(base.parent_hash)?; - trace!(target: "flashblocks::state_executor", hash = %payload.block().hash(), "setting latest payload"); + let config = PayloadConfig::new(Arc::new(sealed_header), attributes); + let builder_ctx = payload_builder_ctx_builder.build( + provider.clone(), + evm_config.clone(), + state_executor.da_config.clone(), + config, + &cancel, + latest_payload.as_ref().map(|p| p.0.clone()), + ); + + let best = |_| BestPayloadTransactions::new(vec![].into_iter()); + let db = StateProviderDatabase::new(&state_provider); + + let outcome = FlashblockBuilder::new(best).build( + pool.clone(), + db, + &state_provider, + &builder_ctx, + latest_payload.as_ref().map(|p| p.0.clone()), + )?; - *latest_payload = Some((payload.clone(), flashblock.index)); + let payload = match outcome { + BuildOutcomeKind::Better { payload } => payload, + BuildOutcomeKind::Freeze(payload) => payload, + _ => return Ok(()), + }; - pending_block.send_replace(payload.executed_block()); - } else { - error!(target: "flashblocks::state_executor", hash = %base.parent_hash, "parent header not found in memory or database"); - } + trace!(target: "flashblocks::state_executor", hash = %payload.block().hash(), "setting latest payload"); + + *latest_payload = Some((payload.clone(), flashblock.index)); - // The default engine api implementation should reset the in memory pending - // state on new_payload. + pending_block.send_replace(payload.executed_block()); Ok(()) } diff --git a/crates/flashblocks/node/Cargo.toml b/crates/flashblocks/node/Cargo.toml index b89919a38..205067bce 100644 --- a/crates/flashblocks/node/Cargo.toml +++ b/crates/flashblocks/node/Cargo.toml @@ -11,7 +11,6 @@ flashblocks-primitives.workspace = true flashblocks-cli.workspace = true flashblocks-builder.workspace = true flashblocks-payload.workspace = true -flashblocks-provider.workspace = true reth.workspace = true reth-optimism-node.workspace = true diff --git a/crates/flashblocks/node/src/lib.rs b/crates/flashblocks/node/src/lib.rs index 1270db341..f57a5a77b 100644 --- a/crates/flashblocks/node/src/lib.rs +++ b/crates/flashblocks/node/src/lib.rs @@ -7,7 +7,6 @@ use flashblocks_builder::{ use flashblocks_cli::FlashblocksArgs; use flashblocks_p2p::{net::FlashblocksNetworkBuilder, protocol::handler::FlashblocksHandle}; use flashblocks_primitives::p2p::Authorization; -use flashblocks_provider::InMemoryState; use flashblocks_rpc::eth::FlashblocksEthApiBuilder; use op_alloy_consensus::OpTxEnvelope; use reth::chainspec::EthChainSpec; @@ -83,7 +82,6 @@ pub trait FlashblocksProvider: + ChainSpecProvider + Clone + DatabaseProviderFactory> - + InMemoryState { } @@ -92,7 +90,6 @@ impl FlashblocksProvider for T where + ChainSpecProvider + Clone + DatabaseProviderFactory> - + InMemoryState { } @@ -197,8 +194,7 @@ where + ChainSpecProvider + HeaderProvider
+ Clone - + DatabaseProviderFactory> - + InMemoryState, + + DatabaseProviderFactory>, N::Types: NodeTypes< ChainSpec = OpChainSpec, Payload: PayloadTypes< @@ -301,8 +297,7 @@ where + ChainSpecProvider + HeaderProvider
+ Clone - + DatabaseProviderFactory> - + InMemoryState, + + DatabaseProviderFactory>, N::Types: NodeTypes< ChainSpec = OpChainSpec, Payload: PayloadTypes< diff --git a/crates/flashblocks/node/src/payload.rs b/crates/flashblocks/node/src/payload.rs index a9c4acc1f..1d8b4c855 100644 --- a/crates/flashblocks/node/src/payload.rs +++ b/crates/flashblocks/node/src/payload.rs @@ -2,7 +2,6 @@ use flashblocks_builder::executor::FlashblocksStateExecutor; use flashblocks_builder::traits::context::PayloadBuilderCtx; use flashblocks_builder::traits::context_builder::PayloadBuilderCtxBuilder; use flashblocks_builder::FlashblocksPayloadBuilder; -use flashblocks_provider::InMemoryState; use op_alloy_consensus::OpTxEnvelope; use reth::builder::components::PayloadBuilderBuilder; use reth::builder::{BuilderContext, FullNodeTypes}; @@ -11,7 +10,6 @@ use reth_optimism_chainspec::OpChainSpec; use reth_optimism_node::txpool::OpPooledTx; use reth_optimism_node::{OpBuiltPayload, OpEvmConfig, OpPayloadBuilderAttributes}; use reth_optimism_payload_builder::config::{OpBuilderConfig, OpDAConfig}; -use reth_optimism_primitives::OpPrimitives; use reth_provider::{ ChainSpecProvider, DatabaseProviderFactory, HeaderProvider, StateProviderFactory, }; @@ -49,7 +47,6 @@ where + ChainSpecProvider + Clone + DatabaseProviderFactory> - + InMemoryState + HeaderProvider
, Node::Types: NodeTypes< ChainSpec = OpChainSpec, diff --git a/crates/flashblocks/node/src/payload_service.rs b/crates/flashblocks/node/src/payload_service.rs index 25cef18a2..71404dfee 100644 --- a/crates/flashblocks/node/src/payload_service.rs +++ b/crates/flashblocks/node/src/payload_service.rs @@ -5,7 +5,6 @@ use flashblocks_payload::generator::{ }; use flashblocks_payload::metrics::PayloadBuilderMetrics; use flashblocks_primitives::p2p::Authorization; -use flashblocks_provider::InMemoryState; use reth::payload::{PayloadBuilderHandle, PayloadBuilderService}; use reth_node_api::{FullNodeTypes, NodeTypes, PayloadTypes}; use reth_node_builder::{ @@ -14,7 +13,6 @@ use reth_node_builder::{ }; use reth_optimism_chainspec::OpChainSpec; use reth_optimism_node::{OpBuiltPayload, OpPayloadBuilderAttributes}; -use reth_optimism_primitives::OpPrimitives; use reth_provider::{ CanonStateSubscriptions, ChainSpecProvider, DatabaseProviderFactory, HeaderProvider, StateProviderFactory, @@ -55,8 +53,7 @@ where + ChainSpecProvider + HeaderProvider
+ Clone - + DatabaseProviderFactory> - + InMemoryState, + + DatabaseProviderFactory>, Node::Types: NodeTypes< ChainSpec = OpChainSpec, Payload: PayloadTypes< diff --git a/crates/flashblocks/provider/Cargo.toml b/crates/flashblocks/provider/Cargo.toml deleted file mode 100644 index 696a4822c..000000000 --- a/crates/flashblocks/provider/Cargo.toml +++ /dev/null @@ -1,13 +0,0 @@ -[package] -name = "flashblocks-provider" -version.workspace = true -edition.workspace = true -rust-version.workspace = true -license.workspace = true - - -[dependencies] -# reth -reth-chain-state.workspace = true -reth-node-api.workspace = true -reth-provider.workspace = true diff --git a/crates/flashblocks/provider/src/lib.rs b/crates/flashblocks/provider/src/lib.rs deleted file mode 100644 index da93f7910..000000000 --- a/crates/flashblocks/provider/src/lib.rs +++ /dev/null @@ -1,22 +0,0 @@ -#![cfg_attr(not(test), warn(unused_crate_dependencies))] - -pub use reth_chain_state::CanonicalInMemoryState; -use reth_node_api::NodePrimitives; -use reth_provider::providers::{BlockchainProvider, ProviderNodeTypes}; - -pub trait InMemoryState { - type Primitives: NodePrimitives; - - fn in_memory_state(&self) -> CanonicalInMemoryState; -} - -impl InMemoryState for BlockchainProvider -where - N: ProviderNodeTypes, -{ - type Primitives = ::Primitives; - - fn in_memory_state(&self) -> CanonicalInMemoryState { - self.canonical_in_memory_state() - } -} diff --git a/crates/flashblocks/rpc/Cargo.toml b/crates/flashblocks/rpc/Cargo.toml index 5e1d88f99..1bbd658e7 100644 --- a/crates/flashblocks/rpc/Cargo.toml +++ b/crates/flashblocks/rpc/Cargo.toml @@ -8,7 +8,6 @@ license.workspace = true [dependencies] # internal flashblocks-primitives.workspace = true -flashblocks-provider.workspace = true # reth reth.workspace = true diff --git a/crates/flashblocks/rpc/src/eth/block.rs b/crates/flashblocks/rpc/src/eth/block.rs index b05d7717f..fe30849e8 100644 --- a/crates/flashblocks/rpc/src/eth/block.rs +++ b/crates/flashblocks/rpc/src/eth/block.rs @@ -1,7 +1,6 @@ //! Loads and formats OP block RPC response. use alloy_eips::BlockId; -use flashblocks_provider::InMemoryState; use reth_optimism_primitives::OpPrimitives; use reth_optimism_rpc::{OpEthApi, OpEthApiError}; use reth_primitives::RecoveredBlock; @@ -19,11 +18,11 @@ use crate::eth::FlashblocksEthApi; impl EthBlocks for FlashblocksEthApi where - N: RpcNodeCore, Primitives = OpPrimitives>, + N: RpcNodeCore, Rpc: RpcConvert, OpEthApiError: FromEvmError, OpEthApi: EthBlocks - + RpcNodeCore, Primitives = OpPrimitives> + + RpcNodeCore + EthApiTypes + Clone, { @@ -31,11 +30,11 @@ where impl LoadBlock for FlashblocksEthApi where - N: RpcNodeCore, Primitives = OpPrimitives>, + N: RpcNodeCore, Rpc: RpcConvert, OpEthApiError: FromEvmError, OpEthApi: LoadBlock - + RpcNodeCore, Primitives = OpPrimitives> + + RpcNodeCore + EthApiTypes + Clone, { diff --git a/crates/flashblocks/rpc/src/eth/call.rs b/crates/flashblocks/rpc/src/eth/call.rs index b6401a4f6..75fe590f7 100644 --- a/crates/flashblocks/rpc/src/eth/call.rs +++ b/crates/flashblocks/rpc/src/eth/call.rs @@ -1,4 +1,3 @@ -use flashblocks_provider::InMemoryState; use reth_optimism_primitives::OpPrimitives; use reth_optimism_rpc::{OpEthApi, OpEthApiError}; use reth_rpc_eth_api::{ @@ -10,11 +9,11 @@ use crate::eth::FlashblocksEthApi; impl EthCall for FlashblocksEthApi where - N: RpcNodeCore, Primitives = OpPrimitives>, + N: RpcNodeCore, Rpc: RpcConvert, OpEthApiError: FromEvmError, OpEthApi: EthCall - + RpcNodeCore, Primitives = OpPrimitives> + + RpcNodeCore + EthApiTypes + Clone, { @@ -22,25 +21,23 @@ where impl EstimateCall for FlashblocksEthApi where - N: RpcNodeCore, Primitives = OpPrimitives>, + N: RpcNodeCore, Rpc: RpcConvert, OpEthApiError: FromEvmError, OpEthApi: EstimateCall + EthApiTypes - + RpcNodeCore, Primitives = OpPrimitives> + + RpcNodeCore + Clone, { } impl Call for FlashblocksEthApi where - N: RpcNodeCore, Primitives = OpPrimitives>, + N: RpcNodeCore, Rpc: RpcConvert, OpEthApiError: FromEvmError, - OpEthApi: Call - + RpcNodeCore, Primitives = OpPrimitives> - + EthApiTypes - + Clone, + OpEthApi: + Call + RpcNodeCore + EthApiTypes + Clone, { #[inline] fn call_gas_limit(&self) -> u64 { diff --git a/crates/flashblocks/rpc/src/eth/mod.rs b/crates/flashblocks/rpc/src/eth/mod.rs index 1251e4260..2dc17bd30 100644 --- a/crates/flashblocks/rpc/src/eth/mod.rs +++ b/crates/flashblocks/rpc/src/eth/mod.rs @@ -8,7 +8,6 @@ mod call; mod pending_block; use alloy_primitives::U256; -use flashblocks_provider::InMemoryState; use op_alloy_network::Optimism; use reth_chain_state::ExecutedBlockWithTrieUpdates; use reth_evm::ConfigureEvm; @@ -171,11 +170,10 @@ where impl LoadFee for FlashblocksEthApi where - N: RpcNodeCore, Primitives = OpPrimitives>, + N: RpcNodeCore, Rpc: RpcConvert, - OpEthApi: RpcNodeCore, Primitives = OpPrimitives> - + EthApiTypes - + LoadFee, + OpEthApi: + RpcNodeCore + EthApiTypes + LoadFee, OpEthApiError: FromEvmError, { #[inline] @@ -195,13 +193,11 @@ where } } -impl< - N: RpcNodeCore, Primitives = OpPrimitives>, - Rpc: RpcConvert, - > LoadState for FlashblocksEthApi +impl, Rpc: RpcConvert> LoadState + for FlashblocksEthApi where OpEthApiError: FromEvmError, - OpEthApi: RpcNodeCore, Primitives = OpPrimitives> + OpEthApi: RpcNodeCore + LoadPendingBlock + EthApiTypes + LoadState @@ -212,10 +208,10 @@ where impl EthState for FlashblocksEthApi where - N: RpcNodeCore, Primitives = OpPrimitives>, + N: RpcNodeCore, Rpc: RpcConvert, OpEthApiError: FromEvmError, - OpEthApi: RpcNodeCore, Primitives = OpPrimitives> + OpEthApi: RpcNodeCore + EthApiTypes + EthState + Clone, @@ -228,10 +224,10 @@ where impl EthFees for FlashblocksEthApi where - N: RpcNodeCore, Primitives = OpPrimitives>, + N: RpcNodeCore, Rpc: RpcConvert, OpEthApiError: FromEvmError, - OpEthApi: RpcNodeCore, Primitives = OpPrimitives> + OpEthApi: RpcNodeCore + EthApiTypes + EthFees + Clone, @@ -240,12 +236,12 @@ where impl Trace for FlashblocksEthApi where - N: RpcNodeCore, Primitives = OpPrimitives>, + N: RpcNodeCore, Rpc: RpcConvert, OpEthApiError: FromEvmError, OpEthApi: Trace + SpawnBlocking - + RpcNodeCore, Primitives = OpPrimitives> + + RpcNodeCore + EthApiTypes + Clone, { diff --git a/crates/flashblocks/rpc/src/eth/pending_block.rs b/crates/flashblocks/rpc/src/eth/pending_block.rs index 9724ba3bb..7dbcab2a3 100644 --- a/crates/flashblocks/rpc/src/eth/pending_block.rs +++ b/crates/flashblocks/rpc/src/eth/pending_block.rs @@ -1,7 +1,6 @@ //! Loads OP pending block for a RPC response. use alloy_eips::BlockNumberOrTag; -use flashblocks_provider::InMemoryState; use reth_optimism_primitives::OpPrimitives; use reth_optimism_rpc::OpEthApi; use reth_optimism_rpc::OpEthApiError; @@ -21,10 +20,10 @@ use crate::eth::FlashblocksEthApi; impl LoadPendingBlock for FlashblocksEthApi where - N: RpcNodeCore, Primitives = OpPrimitives>, + N: RpcNodeCore, Rpc: RpcConvert, OpEthApiError: FromEvmError, - OpEthApi: RpcNodeCore, Primitives = OpPrimitives> + OpEthApi: RpcNodeCore + LoadPendingBlock + Clone + SpawnBlocking diff --git a/crates/flashblocks/rpc/src/eth/transaction.rs b/crates/flashblocks/rpc/src/eth/transaction.rs index da99be531..d0c3665f2 100644 --- a/crates/flashblocks/rpc/src/eth/transaction.rs +++ b/crates/flashblocks/rpc/src/eth/transaction.rs @@ -20,17 +20,16 @@ use reth_rpc_eth_api::{ }; use reth_rpc_eth_types::block::BlockAndReceipts; -use flashblocks_provider::InMemoryState; use std::future::Future; use crate::eth::FlashblocksEthApi; impl EthTransactions for FlashblocksEthApi where - N: RpcNodeCore, Primitives = OpPrimitives>, + N: RpcNodeCore, Rpc: RpcConvert, OpEthApiError: FromEvmError, - OpEthApi: RpcNodeCore, Primitives = OpPrimitives> + OpEthApi: RpcNodeCore + LoadPendingBlock + EthApiTypes + EthTransactions diff --git a/crates/world/node/Cargo.toml b/crates/world/node/Cargo.toml index 1fd1b8f2f..ea8eddc2d 100644 --- a/crates/world/node/Cargo.toml +++ b/crates/world/node/Cargo.toml @@ -13,7 +13,6 @@ workspace = true [dependencies] world-chain-payload.workspace = true world-chain-pool.workspace = true -flashblocks-provider.workspace = true flashblocks-p2p.workspace = true flashblocks-primitives.workspace = true diff --git a/crates/world/node/src/context.rs b/crates/world/node/src/context.rs index c8f0fd99c..dc9719166 100644 --- a/crates/world/node/src/context.rs +++ b/crates/world/node/src/context.rs @@ -16,7 +16,6 @@ use flashblocks_node::{ }; use flashblocks_p2p::{net::FlashblocksNetworkBuilder, protocol::handler::FlashblocksHandle}; use flashblocks_primitives::p2p::Authorization; -use flashblocks_provider::InMemoryState; use flashblocks_rpc::eth::FlashblocksEthApiBuilder; use reth_node_api::{FullNodeTypes, NodeTypes}; use reth_node_builder::{ @@ -29,7 +28,6 @@ use reth_optimism_node::{ args::RollupArgs, OpAddOns, OpConsensusBuilder, OpEngineApiBuilder, OpEngineValidatorBuilder, OpExecutorBuilder, OpNetworkBuilder, }; -use reth_optimism_primitives::OpPrimitives; use reth_optimism_rpc::OpEthApiBuilder; use world_chain_payload::context::WorldChainPayloadBuilderCtxBuilder; @@ -44,8 +42,8 @@ impl From for BasicContext { } } -impl>> - WorldChainNodeContext for BasicContext +impl>> WorldChainNodeContext + for BasicContext where BasicPayloadServiceBuilder: PayloadServiceBuilder< N, @@ -128,12 +126,8 @@ pub struct FlashblocksContext { components_context: FlashblocksComponentsContext, } -impl< - N: FullNodeTypes< - Provider: InMemoryState, - Types = WorldChainNode, - >, - > WorldChainNodeContext for FlashblocksContext +impl>> WorldChainNodeContext + for FlashblocksContext where FlashblocksPayloadServiceBuilder< FlashblocksPayloadBuilderBuilder, diff --git a/crates/world/test/Cargo.toml b/crates/world/test/Cargo.toml index b32a9e2fd..f1b5fdb7b 100644 --- a/crates/world/test/Cargo.toml +++ b/crates/world/test/Cargo.toml @@ -14,7 +14,6 @@ workspace = true world-chain-pbh.workspace = true world-chain-pool.workspace = true world-chain-node.workspace = true -flashblocks-provider.workspace = true flashblocks-primitives.workspace = true flashblocks-cli.workspace = true diff --git a/crates/world/test/src/pool.rs b/crates/world/test/src/pool.rs index 12472772a..55be6887d 100644 --- a/crates/world/test/src/pool.rs +++ b/crates/world/test/src/pool.rs @@ -1,8 +1,5 @@ use crate::{DEV_WORLD_ID, PBH_DEV_ENTRYPOINT, PBH_DEV_SIGNATURE_AGGREGATOR}; -use flashblocks_provider::InMemoryState; -use reth_chain_state::CanonicalInMemoryState; use reth_optimism_node::txpool::OpTransactionValidator; -use reth_primitives::EthPrimitives; use reth_transaction_pool::blobstore::InMemoryBlobStore; use reth_transaction_pool::validate::EthTransactionValidatorBuilder; use revm_primitives::U256; @@ -42,11 +39,3 @@ pub fn world_chain_validator( ) .expect("failed to create world chain validator") } - -impl InMemoryState for MockEthProvider { - type Primitives = EthPrimitives; - - fn in_memory_state(&self) -> CanonicalInMemoryState { - unimplemented!() - } -}