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};
7use jsonrpsee::proc_macros::rpc;
8
9/// Block validation rpc interface.
10#[cfg_attr(not(feature = "client"), rpc(server, namespace = "flashbots"))]
11#[cfg_attr(feature = "client", rpc(server, client, namespace = "flashbots"))]
12pub trait BlockSubmissionValidationApi {
13    /// A Request to validate a block submission.
14    #[method(name = "validateBuilderSubmissionV1")]
15    async fn validate_builder_submission_v1(
16        &self,
17        request: BuilderBlockValidationRequest,
18    ) -> jsonrpsee::core::RpcResult<()>;
19
20    /// A Request to validate a block submission.
21    #[method(name = "validateBuilderSubmissionV2")]
22    async fn validate_builder_submission_v2(
23        &self,
24        request: BuilderBlockValidationRequestV2,
25    ) -> jsonrpsee::core::RpcResult<()>;
26
27    /// A Request to validate a block submission.
28    #[method(name = "validateBuilderSubmissionV3")]
29    async fn validate_builder_submission_v3(
30        &self,
31        request: BuilderBlockValidationRequestV3,
32    ) -> jsonrpsee::core::RpcResult<()>;
33
34    /// A Request to validate a block submission.
35    #[method(name = "validateBuilderSubmissionV4")]
36    async fn validate_builder_submission_v4(
37        &self,
38        request: BuilderBlockValidationRequestV4,
39    ) -> jsonrpsee::core::RpcResult<()>;
40}