Trait sc_transaction_pool::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;
// Required methods
fn validate_transaction(
&self,
at: <Self::Block as BlockT>::Hash,
source: TransactionSource,
uxt: Arc<<<Self as ChainApi>::Block as Block>::Extrinsic>,
) -> Self::ValidationFuture;
fn validate_transaction_blocking(
&self,
at: <Self::Block as BlockT>::Hash,
source: TransactionSource,
uxt: Arc<<<Self as ChainApi>::Block as Block>::Extrinsic>,
) -> Result<TransactionValidity, Self::Error>;
fn block_id_to_number(
&self,
at: &BlockId<Self::Block>,
) -> Result<Option<NumberFor<<Self as ChainApi>::Block>>, 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: &<<Self as ChainApi>::Block as Block>::Extrinsic,
) -> (<<Self as ChainApi>::Block as Block>::Hash, usize);
fn block_body(&self, at: <Self::Block as BlockT>::Hash) -> Self::BodyFuture;
fn block_header(
&self,
at: <Self::Block as BlockT>::Hash,
) -> Result<Option<<Self::Block as BlockT>::Header>, Self::Error>;
fn tree_route(
&self,
from: <Self::Block as BlockT>::Hash,
to: <Self::Block as BlockT>::Hash,
) -> Result<TreeRoute<Self::Block>, Self::Error>;
// Provided method
fn resolve_block_number(
&self,
at: <Self::Block as BlockT>::Hash,
) -> Result<NumberFor<<Self as ChainApi>::Block>, Self::Error> { ... }
}
Expand description
Concrete extrinsic validation and query logic.
Required Associated Types§
Required Methods§
sourcefn validate_transaction(
&self,
at: <Self::Block as BlockT>::Hash,
source: TransactionSource,
uxt: Arc<<<Self as ChainApi>::Block as Block>::Extrinsic>,
) -> Self::ValidationFuture
fn validate_transaction( &self, at: <Self::Block as BlockT>::Hash, source: TransactionSource, uxt: Arc<<<Self as ChainApi>::Block as Block>::Extrinsic>, ) -> Self::ValidationFuture
Asynchronously verify extrinsic at given block.
sourcefn validate_transaction_blocking(
&self,
at: <Self::Block as BlockT>::Hash,
source: TransactionSource,
uxt: Arc<<<Self as ChainApi>::Block as Block>::Extrinsic>,
) -> Result<TransactionValidity, Self::Error>
fn validate_transaction_blocking( &self, at: <Self::Block as BlockT>::Hash, source: TransactionSource, uxt: Arc<<<Self as ChainApi>::Block as Block>::Extrinsic>, ) -> Result<TransactionValidity, Self::Error>
Synchronously verify given extrinsic at given block.
Validates a transaction by calling into the runtime. Same as validate_transaction
but
blocks the current thread when performing validation.
sourcefn block_id_to_number(
&self,
at: &BlockId<Self::Block>,
) -> Result<Option<NumberFor<<Self as ChainApi>::Block>>, Self::Error>
fn block_id_to_number( &self, at: &BlockId<Self::Block>, ) -> Result<Option<NumberFor<<Self as ChainApi>::Block>>, Self::Error>
Returns a block number given the block id.
sourcefn block_id_to_hash(
&self,
at: &BlockId<Self::Block>,
) -> Result<Option<<Self::Block as BlockT>::Hash>, Self::Error>
fn block_id_to_hash( &self, at: &BlockId<Self::Block>, ) -> Result<Option<<Self::Block as BlockT>::Hash>, Self::Error>
Returns a block hash given the block id.
sourcefn hash_and_length(
&self,
uxt: &<<Self as ChainApi>::Block as Block>::Extrinsic,
) -> (<<Self as ChainApi>::Block as Block>::Hash, usize)
fn hash_and_length( &self, uxt: &<<Self as ChainApi>::Block as Block>::Extrinsic, ) -> (<<Self as ChainApi>::Block as Block>::Hash, usize)
Returns hash and encoding length of the extrinsic.
sourcefn block_body(&self, at: <Self::Block as BlockT>::Hash) -> Self::BodyFuture
fn block_body(&self, at: <Self::Block as BlockT>::Hash) -> Self::BodyFuture
Returns a block body given the block.