Trait sc_transaction_graph::ChainApi
source · [−]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
type Error: From<Error> + IntoPoolError
type Error: From<Error> + IntoPoolError
Error type.
type ValidationFuture: Future<Output = Result<TransactionValidity, Self::Error>> + Send + Unpin
type ValidationFuture: Future<Output = Result<TransactionValidity, Self::Error>> + Send + Unpin
Validate transaction future.
Required methods
fn validate_transaction(
&self,
at: &BlockId<Self::Block>,
source: TransactionSource,
uxt: ExtrinsicFor<Self>
) -> Self::ValidationFuture
fn validate_transaction(
&self,
at: &BlockId<Self::Block>,
source: TransactionSource,
uxt: ExtrinsicFor<Self>
) -> Self::ValidationFuture
Verify extrinsic at given block.
Returns a block number given the block id.
Returns a block hash given the block id.
fn hash_and_length(
&self,
uxt: &ExtrinsicFor<Self>
) -> (ExtrinsicHash<Self>, usize)
fn hash_and_length(
&self,
uxt: &ExtrinsicFor<Self>
) -> (ExtrinsicHash<Self>, usize)
Returns hash and encoding length of the extrinsic.
fn block_body(&self, at: &BlockId<Self::Block>) -> Self::BodyFuture
fn block_body(&self, at: &BlockId<Self::Block>) -> Self::BodyFuture
Returns a block body given the block id.