[][src]Trait sc_transaction_graph::ChainApi

pub trait ChainApi: Send + Sync {
    type Block: Block;
    type Hash: Hash + Eq + Member + Serialize;
    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>,
        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<BlockHash<Self>>, Self::Error>;
fn hash_and_length(&self, uxt: &ExtrinsicFor<Self>) -> (Self::Hash, usize);
fn block_body(&self, at: &BlockId<Self::Block>) -> Self::BodyFuture; }

Concrete extrinsic validation and query logic.

Associated Types

type Block: Block

Block type.

type Hash: Hash + Eq + Member + Serialize

Transaction Hash type

type Error: From<Error> + IntoPoolError

Error type.

type ValidationFuture: Future<Output = Result<TransactionValidity, Self::Error>> + Send + Unpin

Validate transaction future.

type BodyFuture: Future<Output = Result<Option<Vec<<Self::Block as Block>::Extrinsic>>, Self::Error>> + Unpin + Send + 'static

Body future (since block body might be remote)

Loading content...

Required methods

fn validate_transaction(
    &self,
    at: &BlockId<Self::Block>,
    uxt: ExtrinsicFor<Self>
) -> Self::ValidationFuture

Verify extrinsic at given block.

fn block_id_to_number(
    &self,
    at: &BlockId<Self::Block>
) -> Result<Option<NumberFor<Self>>, Self::Error>

Returns a block number given the block id.

fn block_id_to_hash(
    &self,
    at: &BlockId<Self::Block>
) -> Result<Option<BlockHash<Self>>, Self::Error>

Returns a block hash given the block id.

fn hash_and_length(&self, uxt: &ExtrinsicFor<Self>) -> (Self::Hash, usize)

Returns hash and encoding length of the extrinsic.

fn block_body(&self, at: &BlockId<Self::Block>) -> Self::BodyFuture

Returns a block body given the block id.

Loading content...

Implementors

Loading content...