pub trait ChainApi: Send + Sync {
    type Block: BlockT;
    type Error: From<Error> + IntoPoolError;
    type ValidationFuture: Future<Output = Result<TransactionValidity, Self::Error>> + Send + Unpin;
    type BodyFuture: Future<Output = Result<Option<Vec<<Self::Block as Block>::Extrinsic>>, Self::Error>> + Unpin + Send + 'static;
    fn validate_transaction(
        &self,
        at: &BlockId<Self::Block>,
        source: TransactionSource,
        uxt: ExtrinsicFor<Self>
    ) -> Self::ValidationFuture;
fn block_id_to_number(
        &self,
        at: &BlockId<Self::Block>
    ) -> Result<Option<NumberFor<Self>>, Self::Error>;
fn block_id_to_hash(
        &self,
        at: &BlockId<Self::Block>
    ) -> Result<Option<<Self::Block as BlockT>::Hash>, Self::Error>;
fn hash_and_length(
        &self,
        uxt: &ExtrinsicFor<Self>
    ) -> (ExtrinsicHash<Self>, usize);
fn block_body(&self, at: &BlockId<Self::Block>) -> Self::BodyFuture; }
Expand description

Concrete extrinsic validation and query logic.

Associated Types

Block type.

Error type.

Validate transaction future.

Body future (since block body might be remote)

Required methods

Verify extrinsic at given block.

Returns a block number given the block id.

Returns a block hash given the block id.

Returns hash and encoding length of the extrinsic.

Returns a block body given the block id.

Implementors