reth_rpc_api/
validation.rs

1//! API for block submission validation.
2
3use alloy_rpc_types_beacon::relay::{
4    BuilderBlockValidationRequest, BuilderBlockValidationRequestV2,
5    BuilderBlockValidationRequestV3, BuilderBlockValidationRequestV4,
6    BuilderBlockValidationRequestV5,
7};
8use jsonrpsee::proc_macros::rpc;
9
10/// Block validation rpc interface.
11#[cfg_attr(not(feature = "client"), rpc(server, namespace = "flashbots"))]
12#[cfg_attr(feature = "client", rpc(server, client, namespace = "flashbots"))]
13pub trait BlockSubmissionValidationApi {
14    /// A Request to validate a block submission.
15    #[method(name = "validateBuilderSubmissionV1")]
16    async fn validate_builder_submission_v1(
17        &self,
18        request: BuilderBlockValidationRequest,
19    ) -> jsonrpsee::core::RpcResult<()>;
20
21    /// A Request to validate a block submission.
22    #[method(name = "validateBuilderSubmissionV2")]
23    async fn validate_builder_submission_v2(
24        &self,
25        request: BuilderBlockValidationRequestV2,
26    ) -> jsonrpsee::core::RpcResult<()>;
27
28    /// A Request to validate a block submission.
29    #[method(name = "validateBuilderSubmissionV3")]
30    async fn validate_builder_submission_v3(
31        &self,
32        request: BuilderBlockValidationRequestV3,
33    ) -> jsonrpsee::core::RpcResult<()>;
34
35    /// A Request to validate a block submission.
36    #[method(name = "validateBuilderSubmissionV4")]
37    async fn validate_builder_submission_v4(
38        &self,
39        request: BuilderBlockValidationRequestV4,
40    ) -> jsonrpsee::core::RpcResult<()>;
41
42    /// A Request to validate a block submission.
43    #[method(name = "validateBuilderSubmissionV5")]
44    async fn validate_builder_submission_v5(
45        &self,
46        request: BuilderBlockValidationRequestV5,
47    ) -> jsonrpsee::core::RpcResult<()>;
48}