pub trait TestingApiServer:
Sized
+ Send
+ Sync
+ 'static {
// Required methods
fn build_block_v1<'life0, 'async_trait>(
&'life0 self,
request: TestingBuildBlockRequestV1,
) -> Pin<Box<dyn Future<Output = Result<ExecutionPayloadEnvelopeV5, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait,
Self: 'async_trait;
fn commit_block_v1<'life0, 'async_trait>(
&'life0 self,
payload_attributes: PayloadAttributes,
transactions: Option<Vec<Bytes>>,
extra_data: Option<Bytes>,
) -> Pin<Box<dyn Future<Output = Result<FixedBytes<32>, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait,
Self: 'async_trait;
// Provided method
fn into_rpc(self) -> RpcModule<Self> { ... }
}Expand description
Server trait implementation for the TestingApi RPC API.
Required Methods§
Sourcefn build_block_v1<'life0, 'async_trait>(
&'life0 self,
request: TestingBuildBlockRequestV1,
) -> Pin<Box<dyn Future<Output = Result<ExecutionPayloadEnvelopeV5, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn build_block_v1<'life0, 'async_trait>(
&'life0 self,
request: TestingBuildBlockRequestV1,
) -> Pin<Box<dyn Future<Output = Result<ExecutionPayloadEnvelopeV5, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Builds a block using the provided parent, payload attributes, and transactions.
See https://github.com/marcindsobczak/execution-apis/blob/main/src/testing/testing_buildBlockV1.md
Sourcefn commit_block_v1<'life0, 'async_trait>(
&'life0 self,
payload_attributes: PayloadAttributes,
transactions: Option<Vec<Bytes>>,
extra_data: Option<Bytes>,
) -> Pin<Box<dyn Future<Output = Result<FixedBytes<32>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn commit_block_v1<'life0, 'async_trait>(
&'life0 self,
payload_attributes: PayloadAttributes,
transactions: Option<Vec<Bytes>>,
extra_data: Option<Bytes>,
) -> Pin<Box<dyn Future<Output = Result<FixedBytes<32>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Builds a block on top of the current canonical head, inserts it, and makes it canonical.
Provided Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementations on Foreign Types§
Source§impl<Eth, Evm, Payload> TestingApiServer for TestingApi<Eth, Evm, Payload>where
Eth: Call,
<Eth as RpcNodeCore>::Provider: BlockReader<Header = Header, Header = Header> + BlockReaderIdExt + ChainSpecProvider,
<<Eth as RpcNodeCore>::Provider as ChainSpecProvider>::ChainSpec: EthereumHardforks,
<Eth as RpcNodeCore>::Pool: TransactionPool,
<<Eth as RpcNodeCore>::Pool as TransactionPool>::Transaction: PoolTransaction<Consensus = <<Evm as ConfigureEvm>::Primitives as NodePrimitives>::SignedTx>,
Evm: ConfigureEvm<NextBlockEnvCtx = NextBlockEnvAttributes, Primitives = EthPrimitives> + 'static,
Payload: PayloadTypes,
<Payload as PayloadTypes>::ExecutionData: From<EthBuiltPayload>,
impl<Eth, Evm, Payload> TestingApiServer for TestingApi<Eth, Evm, Payload>where
Eth: Call,
<Eth as RpcNodeCore>::Provider: BlockReader<Header = Header, Header = Header> + BlockReaderIdExt + ChainSpecProvider,
<<Eth as RpcNodeCore>::Provider as ChainSpecProvider>::ChainSpec: EthereumHardforks,
<Eth as RpcNodeCore>::Pool: TransactionPool,
<<Eth as RpcNodeCore>::Pool as TransactionPool>::Transaction: PoolTransaction<Consensus = <<Evm as ConfigureEvm>::Primitives as NodePrimitives>::SignedTx>,
Evm: ConfigureEvm<NextBlockEnvCtx = NextBlockEnvAttributes, Primitives = EthPrimitives> + 'static,
Payload: PayloadTypes,
<Payload as PayloadTypes>::ExecutionData: From<EthBuiltPayload>,
Source§fn build_block_v1<'life0, 'async_trait>(
&'life0 self,
request: TestingBuildBlockRequestV1,
) -> Pin<Box<dyn Future<Output = Result<ExecutionPayloadEnvelopeV5, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
TestingApi<Eth, Evm, Payload>: 'async_trait,
fn build_block_v1<'life0, 'async_trait>(
&'life0 self,
request: TestingBuildBlockRequestV1,
) -> Pin<Box<dyn Future<Output = Result<ExecutionPayloadEnvelopeV5, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
TestingApi<Eth, Evm, Payload>: 'async_trait,
Handles testing_buildBlockV1 by gating concurrency via a semaphore and offloading heavy
work to the blocking pool to avoid stalling the async runtime.
Source§fn commit_block_v1<'life0, 'async_trait>(
&'life0 self,
payload_attributes: PayloadAttributes,
transactions: Option<Vec<Bytes>>,
extra_data: Option<Bytes>,
) -> Pin<Box<dyn Future<Output = Result<FixedBytes<32>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
TestingApi<Eth, Evm, Payload>: 'async_trait,
fn commit_block_v1<'life0, 'async_trait>(
&'life0 self,
payload_attributes: PayloadAttributes,
transactions: Option<Vec<Bytes>>,
extra_data: Option<Bytes>,
) -> Pin<Box<dyn Future<Output = Result<FixedBytes<32>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
TestingApi<Eth, Evm, Payload>: 'async_trait,
Handles testing_commitBlockV1 by building on the current canonical head, then submitting
the payload and advancing forkchoice through the same engine handle used by the Engine API.