use jsonrpsee::{core::RpcResult as Result, proc_macros::rpc}; use reth_primitives::H64; use reth_rpc_types::engine::{ ExecutionPayload, ForkchoiceState, ForkchoiceUpdated, PayloadAttributes, PayloadStatus, TransitionConfiguration, }; #[cfg_attr(not(feature = "client"), rpc(server))] #[cfg_attr(feature = "client", rpc(server, client))] pub trait EngineApi { /// See also #[method(name = "engine_newPayloadV1")] async fn new_payload(&self, payload: ExecutionPayload) -> Result; /// See also #[method(name = "engine_forkchoiceUpdatedV1")] async fn fork_choice_updated( &self, fork_choice_state: ForkchoiceState, payload_attributes: Option, ) -> Result; /// See also #[method(name = "engine_getPayloadV1")] async fn get_payload(&self, payload_id: H64) -> Result; /// See also #[method(name = "engine_exchangeTransitionConfigurationV1")] async fn exchange_transition_configuration( &self, transition_configuration: TransitionConfiguration, ) -> Result; }