1use alloy_rpc_types_mev::{EthBundleHash, MevSendBundle, SimBundleOverrides, SimBundleResponse};
2use jsonrpsee::proc_macros::rpc;
3
4#[cfg_attr(not(feature = "client"), rpc(server, namespace = "mev"))]
6#[cfg_attr(feature = "client", rpc(server, client, namespace = "mev"))]
7pub trait MevSimApi {
8 #[method(name = "simBundle")]
11 async fn sim_bundle(
12 &self,
13 bundle: MevSendBundle,
14 sim_overrides: SimBundleOverrides,
15 ) -> jsonrpsee::core::RpcResult<SimBundleResponse>;
16}
17
18#[cfg_attr(not(feature = "client"), rpc(server, namespace = "mev"))]
20#[cfg_attr(feature = "client", rpc(server, client, namespace = "mev"))]
21pub trait MevFullApi {
22 #[method(name = "sendBundle")]
25 async fn send_bundle(
26 &self,
27 request: MevSendBundle,
28 ) -> jsonrpsee::core::RpcResult<EthBundleHash>;
29
30 #[method(name = "simBundle")]
33 async fn sim_bundle(
34 &self,
35 bundle: MevSendBundle,
36 sim_overrides: SimBundleOverrides,
37 ) -> jsonrpsee::core::RpcResult<SimBundleResponse>;
38}