pub trait EngineTypes:
PayloadTypes
+ DeserializeOwned
+ Serializewhere
Self::BuiltPayload: TryInto<Self::ExecutionPayloadEnvelopeV1> + TryInto<Self::ExecutionPayloadEnvelopeV2> + TryInto<Self::ExecutionPayloadEnvelopeV3> + TryInto<Self::ExecutionPayloadEnvelopeV4>,{
type ExecutionPayloadEnvelopeV1: DeserializeOwned + Serialize + Clone + Unpin + Send + Sync + 'static;
type ExecutionPayloadEnvelopeV2: DeserializeOwned + Serialize + Clone + Unpin + Send + Sync + 'static;
type ExecutionPayloadEnvelopeV3: DeserializeOwned + Serialize + Clone + Unpin + Send + Sync + 'static;
type ExecutionPayloadEnvelopeV4: DeserializeOwned + Serialize + Clone + Unpin + Send + Sync + 'static;
}
Expand description
This type defines the versioned types of the engine API based on the ethereum engine API.
This includes the execution payload types and payload attributes that are used to trigger a
payload job. Hence this trait is also PayloadTypes
.
Implementations of this type are intended to be stateless and just define the types as associated types. This type is intended for non-ethereum chains that closely mirror the ethereum engine API spec, but may have different payload, for example opstack, but structurally equivalent otherwise (same engine API RPC endpoints for example).
Required Associated Types§
Sourcetype ExecutionPayloadEnvelopeV1: DeserializeOwned + Serialize + Clone + Unpin + Send + Sync + 'static
type ExecutionPayloadEnvelopeV1: DeserializeOwned + Serialize + Clone + Unpin + Send + Sync + 'static
Execution Payload V1 envelope type.
Sourcetype ExecutionPayloadEnvelopeV2: DeserializeOwned + Serialize + Clone + Unpin + Send + Sync + 'static
type ExecutionPayloadEnvelopeV2: DeserializeOwned + Serialize + Clone + Unpin + Send + Sync + 'static
Execution Payload V2 envelope type.
Sourcetype ExecutionPayloadEnvelopeV3: DeserializeOwned + Serialize + Clone + Unpin + Send + Sync + 'static
type ExecutionPayloadEnvelopeV3: DeserializeOwned + Serialize + Clone + Unpin + Send + Sync + 'static
Execution Payload V3 envelope type.
Sourcetype ExecutionPayloadEnvelopeV4: DeserializeOwned + Serialize + Clone + Unpin + Send + Sync + 'static
type ExecutionPayloadEnvelopeV4: DeserializeOwned + Serialize + Clone + Unpin + Send + Sync + 'static
Execution Payload V4 envelope type.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.