use futures::future; use reth_db::test_utils::create_test_rw_db; use reth_exex::ExExContext; use reth_node_api::FullNodeComponents; use reth_node_builder::{NodeBuilder, NodeConfig}; use reth_node_ethereum::{node::EthereumAddOns, EthereumNode}; use std::{ future::Future, pin::Pin, task::{Context, Poll}, }; struct DummyExEx { _ctx: ExExContext, } impl Future for DummyExEx where Node: FullNodeComponents, { type Output = eyre::Result<()>; fn poll(self: Pin<&mut Self>, _: &mut Context<'_>) -> Poll { Poll::Pending } } #[test] fn basic_exex() { let config = NodeConfig::test(); let db = create_test_rw_db(); let _builder = NodeBuilder::new(config) .with_database(db) .with_types::() .with_components(EthereumNode::components()) .with_add_ons::() .install_exex("dummy", move |ctx| future::ok(DummyExEx { _ctx: ctx })) .check_launch(); }