pub trait TestingApiServer:
Sized
+ Send
+ Sync
+ 'static {
// Required method
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;
// 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
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> TestingApiServer for TestingApi<Eth, Evm>where
<Eth as RpcNodeCore>::Provider: ChainSpecProvider + BlockReader<Header = Header>,
<<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,
Eth: Call,
impl<Eth, Evm> TestingApiServer for TestingApi<Eth, Evm>where
<Eth as RpcNodeCore>::Provider: ChainSpecProvider + BlockReader<Header = Header>,
<<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,
Eth: Call,
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>: '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>: '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.