reth_e2e_test_utils/
traits.rs

1use alloy_rpc_types_engine::{
2    ExecutionPayloadEnvelopeV3, ExecutionPayloadEnvelopeV4, ExecutionPayloadV3,
3};
4
5#[cfg(feature = "optimism")]
6use op_alloy_rpc_types_engine::{OpExecutionPayloadEnvelopeV3, OpExecutionPayloadEnvelopeV4};
7
8/// The execution payload envelope type.
9pub trait PayloadEnvelopeExt: Send + Sync + std::fmt::Debug {
10    /// Returns the execution payload V3 from the payload
11    fn execution_payload(&self) -> ExecutionPayloadV3;
12}
13
14#[cfg(feature = "optimism")]
15impl PayloadEnvelopeExt for OpExecutionPayloadEnvelopeV3 {
16    fn execution_payload(&self) -> ExecutionPayloadV3 {
17        self.execution_payload.clone()
18    }
19}
20
21#[cfg(feature = "optimism")]
22impl PayloadEnvelopeExt for OpExecutionPayloadEnvelopeV4 {
23    fn execution_payload(&self) -> ExecutionPayloadV3 {
24        self.execution_payload.clone()
25    }
26}
27
28impl PayloadEnvelopeExt for ExecutionPayloadEnvelopeV3 {
29    fn execution_payload(&self) -> ExecutionPayloadV3 {
30        self.execution_payload.clone()
31    }
32}
33
34impl PayloadEnvelopeExt for ExecutionPayloadEnvelopeV4 {
35    fn execution_payload(&self) -> ExecutionPayloadV3 {
36        self.execution_payload.clone()
37    }
38}