reth::rpc::api

Trait EngineApiServer

Source
pub trait EngineApiServer<Engine>:
    Sized
    + Send
    + Sync
    + 'static
where Engine: EngineTypes,
{
Show 18 methods // Required methods fn new_payload_v1<'life0, 'async_trait>( &'life0 self, payload: ExecutionPayloadV1, ) -> Pin<Box<dyn Future<Output = Result<PayloadStatus, ErrorObject<'static>>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn new_payload_v2<'life0, 'async_trait>( &'life0 self, payload: ExecutionPayloadInputV2, ) -> Pin<Box<dyn Future<Output = Result<PayloadStatus, ErrorObject<'static>>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn new_payload_v3<'life0, 'async_trait>( &'life0 self, payload: ExecutionPayloadV3, versioned_hashes: Vec<FixedBytes<32>>, parent_beacon_block_root: FixedBytes<32>, ) -> Pin<Box<dyn Future<Output = Result<PayloadStatus, ErrorObject<'static>>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn new_payload_v4<'life0, 'async_trait>( &'life0 self, payload: ExecutionPayloadV3, versioned_hashes: Vec<FixedBytes<32>>, parent_beacon_block_root: FixedBytes<32>, execution_requests: Requests, ) -> Pin<Box<dyn Future<Output = Result<PayloadStatus, ErrorObject<'static>>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn fork_choice_updated_v1<'life0, 'async_trait>( &'life0 self, fork_choice_state: ForkchoiceState, payload_attributes: Option<<Engine as PayloadTypes>::PayloadAttributes>, ) -> Pin<Box<dyn Future<Output = Result<ForkchoiceUpdated, ErrorObject<'static>>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn fork_choice_updated_v2<'life0, 'async_trait>( &'life0 self, fork_choice_state: ForkchoiceState, payload_attributes: Option<<Engine as PayloadTypes>::PayloadAttributes>, ) -> Pin<Box<dyn Future<Output = Result<ForkchoiceUpdated, ErrorObject<'static>>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn fork_choice_updated_v3<'life0, 'async_trait>( &'life0 self, fork_choice_state: ForkchoiceState, payload_attributes: Option<<Engine as PayloadTypes>::PayloadAttributes>, ) -> Pin<Box<dyn Future<Output = Result<ForkchoiceUpdated, ErrorObject<'static>>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn get_payload_v1<'life0, 'async_trait>( &'life0 self, payload_id: PayloadId, ) -> Pin<Box<dyn Future<Output = Result<<Engine as EngineTypes>::ExecutionPayloadEnvelopeV1, ErrorObject<'static>>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn get_payload_v2<'life0, 'async_trait>( &'life0 self, payload_id: PayloadId, ) -> Pin<Box<dyn Future<Output = Result<<Engine as EngineTypes>::ExecutionPayloadEnvelopeV2, ErrorObject<'static>>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn get_payload_v3<'life0, 'async_trait>( &'life0 self, payload_id: PayloadId, ) -> Pin<Box<dyn Future<Output = Result<<Engine as EngineTypes>::ExecutionPayloadEnvelopeV3, ErrorObject<'static>>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn get_payload_v4<'life0, 'async_trait>( &'life0 self, payload_id: PayloadId, ) -> Pin<Box<dyn Future<Output = Result<<Engine as EngineTypes>::ExecutionPayloadEnvelopeV4, ErrorObject<'static>>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn get_payload_bodies_by_hash_v1<'life0, 'async_trait>( &'life0 self, block_hashes: Vec<FixedBytes<32>>, ) -> Pin<Box<dyn Future<Output = Result<Vec<Option<ExecutionPayloadBodyV1>>, ErrorObject<'static>>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn get_payload_bodies_by_range_v1<'life0, 'async_trait>( &'life0 self, start: Uint<64, 1>, count: Uint<64, 1>, ) -> Pin<Box<dyn Future<Output = Result<Vec<Option<ExecutionPayloadBodyV1>>, ErrorObject<'static>>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn exchange_transition_configuration<'life0, 'async_trait>( &'life0 self, transition_configuration: TransitionConfiguration, ) -> Pin<Box<dyn Future<Output = Result<TransitionConfiguration, ErrorObject<'static>>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn get_client_version_v1<'life0, 'async_trait>( &'life0 self, client_version: ClientVersionV1, ) -> Pin<Box<dyn Future<Output = Result<Vec<ClientVersionV1>, ErrorObject<'static>>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn exchange_capabilities<'life0, 'async_trait>( &'life0 self, capabilities: Vec<String>, ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, ErrorObject<'static>>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn get_blobs_v1<'life0, 'async_trait>( &'life0 self, versioned_hashes: Vec<FixedBytes<32>>, ) -> Pin<Box<dyn Future<Output = Result<Vec<Option<BlobAndProofV1>>, ErrorObject<'static>>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; // Provided method fn into_rpc(self) -> RpcModule<Self> where <Engine as PayloadTypes>::PayloadAttributes: DeserializeOwned { ... }
}
Expand description

Server trait implementation for the EngineApi RPC API.

Required Methods§

Source

fn new_payload_v1<'life0, 'async_trait>( &'life0 self, payload: ExecutionPayloadV1, ) -> Pin<Box<dyn Future<Output = Result<PayloadStatus, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Source

fn new_payload_v2<'life0, 'async_trait>( &'life0 self, payload: ExecutionPayloadInputV2, ) -> Pin<Box<dyn Future<Output = Result<PayloadStatus, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Source

fn new_payload_v3<'life0, 'async_trait>( &'life0 self, payload: ExecutionPayloadV3, versioned_hashes: Vec<FixedBytes<32>>, parent_beacon_block_root: FixedBytes<32>, ) -> Pin<Box<dyn Future<Output = Result<PayloadStatus, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Source

fn new_payload_v4<'life0, 'async_trait>( &'life0 self, payload: ExecutionPayloadV3, versioned_hashes: Vec<FixedBytes<32>>, parent_beacon_block_root: FixedBytes<32>, execution_requests: Requests, ) -> Pin<Box<dyn Future<Output = Result<PayloadStatus, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Source

fn fork_choice_updated_v1<'life0, 'async_trait>( &'life0 self, fork_choice_state: ForkchoiceState, payload_attributes: Option<<Engine as PayloadTypes>::PayloadAttributes>, ) -> Pin<Box<dyn Future<Output = Result<ForkchoiceUpdated, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

See also https://github.com/ethereum/execution-apis/blob/6709c2a795b707202e93c4f2867fa0bf2640a84f/src/engine/paris.md#engine_forkchoiceupdatedv1

Caution: This should not accept the withdrawals field in the payload attributes.

Source

fn fork_choice_updated_v2<'life0, 'async_trait>( &'life0 self, fork_choice_state: ForkchoiceState, payload_attributes: Option<<Engine as PayloadTypes>::PayloadAttributes>, ) -> Pin<Box<dyn Future<Output = Result<ForkchoiceUpdated, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Post Shanghai forkchoice update handler

This is the same as forkchoiceUpdatedV1, but expects an additional withdrawals field in the payloadAttributes, if payload attributes are provided.

See also https://github.com/ethereum/execution-apis/blob/6709c2a795b707202e93c4f2867fa0bf2640a84f/src/engine/shanghai.md#engine_forkchoiceupdatedv2

Caution: This should not accept the parentBeaconBlockRoot field in the payload attributes.

Source

fn fork_choice_updated_v3<'life0, 'async_trait>( &'life0 self, fork_choice_state: ForkchoiceState, payload_attributes: Option<<Engine as PayloadTypes>::PayloadAttributes>, ) -> Pin<Box<dyn Future<Output = Result<ForkchoiceUpdated, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Post Cancun forkchoice update handler

This is the same as forkchoiceUpdatedV2, but expects an additional parentBeaconBlockRoot field in the payloadAttributes, if payload attributes are provided.

See also https://github.com/ethereum/execution-apis/blob/main/src/engine/cancun.md#engine_forkchoiceupdatedv3

Source

fn get_payload_v1<'life0, 'async_trait>( &'life0 self, payload_id: PayloadId, ) -> Pin<Box<dyn Future<Output = Result<<Engine as EngineTypes>::ExecutionPayloadEnvelopeV1, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

See also https://github.com/ethereum/execution-apis/blob/6709c2a795b707202e93c4f2867fa0bf2640a84f/src/engine/paris.md#engine_getpayloadv1

Returns the most recent version of the payload that is available in the corresponding payload build process at the time of receiving this call.

Caution: This should not return the withdrawals field

Note:

Provider software MAY stop the corresponding build process after serving this call.

Source

fn get_payload_v2<'life0, 'async_trait>( &'life0 self, payload_id: PayloadId, ) -> Pin<Box<dyn Future<Output = Result<<Engine as EngineTypes>::ExecutionPayloadEnvelopeV2, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

See also https://github.com/ethereum/execution-apis/blob/6709c2a795b707202e93c4f2867fa0bf2640a84f/src/engine/shanghai.md#engine_getpayloadv2

Returns the most recent version of the payload that is available in the corresponding payload build process at the time of receiving this call. Note:

Provider software MAY stop the corresponding build process after serving this call.

Source

fn get_payload_v3<'life0, 'async_trait>( &'life0 self, payload_id: PayloadId, ) -> Pin<Box<dyn Future<Output = Result<<Engine as EngineTypes>::ExecutionPayloadEnvelopeV3, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Post Cancun payload handler which also returns a blobs bundle.

See also https://github.com/ethereum/execution-apis/blob/main/src/engine/cancun.md#engine_getpayloadv3

Returns the most recent version of the payload that is available in the corresponding payload build process at the time of receiving this call. Note:

Provider software MAY stop the corresponding build process after serving this call.

Source

fn get_payload_v4<'life0, 'async_trait>( &'life0 self, payload_id: PayloadId, ) -> Pin<Box<dyn Future<Output = Result<<Engine as EngineTypes>::ExecutionPayloadEnvelopeV4, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Post Prague payload handler.

See also https://github.com/ethereum/execution-apis/blob/main/src/engine/prague.md#engine_getpayloadv4

Returns the most recent version of the payload that is available in the corresponding payload build process at the time of receiving this call. Note:

Provider software MAY stop the corresponding build process after serving this call.

Source

fn get_payload_bodies_by_hash_v1<'life0, 'async_trait>( &'life0 self, block_hashes: Vec<FixedBytes<32>>, ) -> Pin<Box<dyn Future<Output = Result<Vec<Option<ExecutionPayloadBodyV1>>, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Source

fn get_payload_bodies_by_range_v1<'life0, 'async_trait>( &'life0 self, start: Uint<64, 1>, count: Uint<64, 1>, ) -> Pin<Box<dyn Future<Output = Result<Vec<Option<ExecutionPayloadBodyV1>>, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

See also https://github.com/ethereum/execution-apis/blob/6452a6b194d7db269bf1dbd087a267251d3cc7f8/src/engine/shanghai.md#engine_getpayloadbodiesbyrangev1

Returns the execution payload bodies by the range starting at start, containing count blocks.

WARNING: This method is associated with the BeaconBlocksByRange message in the consensus layer p2p specification, meaning the input should be treated as untrusted or potentially adversarial.

Implementers should take care when acting on the input to this method, specifically ensuring that the range is limited properly, and that the range boundaries are computed correctly and without panics.

Source

fn exchange_transition_configuration<'life0, 'async_trait>( &'life0 self, transition_configuration: TransitionConfiguration, ) -> Pin<Box<dyn Future<Output = Result<TransitionConfiguration, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

See also https://github.com/ethereum/execution-apis/blob/6709c2a795b707202e93c4f2867fa0bf2640a84f/src/engine/paris.md#engine_exchangetransitionconfigurationv1

Note: This method will be deprecated after the cancun hardfork:

Consensus and execution layer clients MAY remove support of this method after Cancun. If no longer supported, this method MUST be removed from the engine_exchangeCapabilities request or response list depending on whether it is consensus or execution layer client.

Source

fn get_client_version_v1<'life0, 'async_trait>( &'life0 self, client_version: ClientVersionV1, ) -> Pin<Box<dyn Future<Output = Result<Vec<ClientVersionV1>, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

This function will return the ClientVersionV1 object. See also: https://github.com/ethereum/execution-apis/blob/03911ffc053b8b806123f1fc237184b0092a485a/src/engine/identification.md#engine_getclientversionv1make fmt

  • When connected to a single execution client, the consensus client MUST receive an array with a single ClientVersionV1 object.
  • When connected to multiple execution clients via a multiplexer, the multiplexer MUST concatenate the responses from each execution client into a single, flat array before returning the response to the consensus client.
Source

fn exchange_capabilities<'life0, 'async_trait>( &'life0 self, capabilities: Vec<String>, ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Source

fn get_blobs_v1<'life0, 'async_trait>( &'life0 self, versioned_hashes: Vec<FixedBytes<32>>, ) -> Pin<Box<dyn Future<Output = Result<Vec<Option<BlobAndProofV1>>, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Fetch blobs for the consensus layer from the in-memory blob cache.

Provided Methods§

Source

fn into_rpc(self) -> RpcModule<Self>

Collects all the methods and subscriptions defined in the trait and adds them into a single RpcModule.

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.

Implementations on Foreign Types§

Source§

impl<Provider, EngineT, Pool, Validator, ChainSpec> EngineApiServer<EngineT> for EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>
where Provider: HeaderProvider + BlockReader + StateProviderFactory + EvmEnvProvider + 'static, EngineT: EngineTypes, Pool: TransactionPool + 'static, Validator: EngineValidator<EngineT>, ChainSpec: EthereumHardforks + Send + Sync + 'static,

Source§

fn new_payload_v1<'life0, 'async_trait>( &'life0 self, payload: ExecutionPayloadV1, ) -> Pin<Box<dyn Future<Output = Result<PayloadStatus, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,

Handler for engine_newPayloadV1 See also https://github.com/ethereum/execution-apis/blob/3d627c95a4d3510a8187dd02e0250ecb4331d27e/src/engine/paris.md#engine_newpayloadv1 Caution: This should not accept the withdrawals field

Source§

fn new_payload_v2<'life0, 'async_trait>( &'life0 self, payload: ExecutionPayloadInputV2, ) -> Pin<Box<dyn Future<Output = Result<PayloadStatus, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,

Source§

fn new_payload_v3<'life0, 'async_trait>( &'life0 self, payload: ExecutionPayloadV3, versioned_hashes: Vec<FixedBytes<32>>, parent_beacon_block_root: FixedBytes<32>, ) -> Pin<Box<dyn Future<Output = Result<PayloadStatus, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,

Source§

fn new_payload_v4<'life0, 'async_trait>( &'life0 self, payload: ExecutionPayloadV3, versioned_hashes: Vec<FixedBytes<32>>, parent_beacon_block_root: FixedBytes<32>, execution_requests: Requests, ) -> Pin<Box<dyn Future<Output = Result<PayloadStatus, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,

Source§

fn fork_choice_updated_v1<'life0, 'async_trait>( &'life0 self, fork_choice_state: ForkchoiceState, payload_attributes: Option<<EngineT as PayloadTypes>::PayloadAttributes>, ) -> Pin<Box<dyn Future<Output = Result<ForkchoiceUpdated, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,

Handler for engine_forkchoiceUpdatedV1 See also https://github.com/ethereum/execution-apis/blob/3d627c95a4d3510a8187dd02e0250ecb4331d27e/src/engine/paris.md#engine_forkchoiceupdatedv1

Caution: This should not accept the withdrawals field

Source§

fn fork_choice_updated_v2<'life0, 'async_trait>( &'life0 self, fork_choice_state: ForkchoiceState, payload_attributes: Option<<EngineT as PayloadTypes>::PayloadAttributes>, ) -> Pin<Box<dyn Future<Output = Result<ForkchoiceUpdated, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,

Source§

fn fork_choice_updated_v3<'life0, 'async_trait>( &'life0 self, fork_choice_state: ForkchoiceState, payload_attributes: Option<<EngineT as PayloadTypes>::PayloadAttributes>, ) -> Pin<Box<dyn Future<Output = Result<ForkchoiceUpdated, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,

Source§

fn get_payload_v1<'life0, 'async_trait>( &'life0 self, payload_id: PayloadId, ) -> Pin<Box<dyn Future<Output = Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV1, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,

Handler for engine_getPayloadV1

Returns the most recent version of the payload that is available in the corresponding payload build process at the time of receiving this call.

See also https://github.com/ethereum/execution-apis/blob/3d627c95a4d3510a8187dd02e0250ecb4331d27e/src/engine/paris.md#engine_getPayloadV1

Caution: This should not return the withdrawals field

Note:

Provider software MAY stop the corresponding build process after serving this call.

Source§

fn get_payload_v2<'life0, 'async_trait>( &'life0 self, payload_id: PayloadId, ) -> Pin<Box<dyn Future<Output = Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV2, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,

Handler for engine_getPayloadV2

Returns the most recent version of the payload that is available in the corresponding payload build process at the time of receiving this call.

See also https://github.com/ethereum/execution-apis/blob/3d627c95a4d3510a8187dd02e0250ecb4331d27e/src/engine/shanghai.md#engine_getpayloadv2

Note:

Provider software MAY stop the corresponding build process after serving this call.

Source§

fn get_payload_v3<'life0, 'async_trait>( &'life0 self, payload_id: PayloadId, ) -> Pin<Box<dyn Future<Output = Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV3, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,

Handler for engine_getPayloadV3

Returns the most recent version of the payload that is available in the corresponding payload build process at the time of receiving this call.

See also https://github.com/ethereum/execution-apis/blob/fe8e13c288c592ec154ce25c534e26cb7ce0530d/src/engine/cancun.md#engine_getpayloadv3

Note:

Provider software MAY stop the corresponding build process after serving this call.

Source§

fn get_payload_v4<'life0, 'async_trait>( &'life0 self, payload_id: PayloadId, ) -> Pin<Box<dyn Future<Output = Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV4, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,

Handler for engine_getPayloadV4

Returns the most recent version of the payload that is available in the corresponding payload build process at the time of receiving this call.

See also https://github.com/ethereum/execution-apis/blob/main/src/engine/prague.md#engine_getpayloadv4

Note:

Provider software MAY stop the corresponding build process after serving this call.

Source§

fn get_payload_bodies_by_hash_v1<'life0, 'async_trait>( &'life0 self, block_hashes: Vec<FixedBytes<32>>, ) -> Pin<Box<dyn Future<Output = Result<Vec<Option<ExecutionPayloadBodyV1>>, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,

Source§

fn get_payload_bodies_by_range_v1<'life0, 'async_trait>( &'life0 self, start: Uint<64, 1>, count: Uint<64, 1>, ) -> Pin<Box<dyn Future<Output = Result<Vec<Option<ExecutionPayloadBodyV1>>, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,

Handler for engine_getPayloadBodiesByRangeV1

See also https://github.com/ethereum/execution-apis/blob/6452a6b194d7db269bf1dbd087a267251d3cc7f8/src/engine/shanghai.md#engine_getpayloadbodiesbyrangev1

Returns the execution payload bodies by the range starting at start, containing count blocks.

WARNING: This method is associated with the BeaconBlocksByRange message in the consensus layer p2p specification, meaning the input should be treated as untrusted or potentially adversarial.

Implementers should take care when acting on the input to this method, specifically ensuring that the range is limited properly, and that the range boundaries are computed correctly and without panics.

Note: If a block is pre shanghai, withdrawals field will be null.

Source§

fn exchange_transition_configuration<'life0, 'async_trait>( &'life0 self, config: TransitionConfiguration, ) -> Pin<Box<dyn Future<Output = Result<TransitionConfiguration, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,

Source§

fn get_client_version_v1<'life0, 'async_trait>( &'life0 self, client: ClientVersionV1, ) -> Pin<Box<dyn Future<Output = Result<Vec<ClientVersionV1>, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,

Source§

fn exchange_capabilities<'life0, 'async_trait>( &'life0 self, _capabilities: Vec<String>, ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,

Source§

fn get_blobs_v1<'life0, 'async_trait>( &'life0 self, versioned_hashes: Vec<FixedBytes<32>>, ) -> Pin<Box<dyn Future<Output = Result<Vec<Option<BlobAndProofV1>>, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait, EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,

Implementors§