[][src]Trait sc_service::TransactionPool

pub trait TransactionPool: Send + Sync where
    <Self::InPoolTransaction as InPoolTransaction>::Transaction == <Self::Block as Block>::Extrinsic,
    <Self::InPoolTransaction as InPoolTransaction>::Hash == Self::Hash
{ type Block: Block; type Hash: Eq + Hash + Member + Serialize; type InPoolTransaction: InPoolTransaction; type Error: IntoPoolError + From<Error>; fn submit_at(
        &self,
        at: &BlockId<Self::Block>,
        xts: Vec<<Self::Block as Block>::Extrinsic>
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Result<Self::Hash, Self::Error>>, Self::Error>> + 'static + Send>>;
fn submit_one(
        &self,
        at: &BlockId<Self::Block>,
        xt: <Self::Block as Block>::Extrinsic
    ) -> Pin<Box<dyn Future<Output = Result<Self::Hash, Self::Error>> + 'static + Send>>;
fn submit_and_watch(
        &self,
        at: &BlockId<Self::Block>,
        xt: <Self::Block as Block>::Extrinsic
    ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Stream<Item = TransactionStatus<Self::Hash, <Self::Block as Block>::Hash>> + 'static + Send + Unpin>, Self::Error>> + 'static + Send>>;
fn ready(
        &self
    ) -> Box<dyn Iterator<Item = Arc<Self::InPoolTransaction>> + 'static>;
fn remove_invalid(
        &self,
        hashes: &[Self::Hash]
    ) -> Vec<Arc<Self::InPoolTransaction>>;
fn status(&self) -> PoolStatus;
fn import_notification_stream(&self) -> UnboundedReceiver<Self::Hash>;
fn on_broadcasted(
        &self,
        propagations: HashMap<Self::Hash, Vec<String>, RandomState>
    );
fn hash_of(&self, xt: &<Self::Block as Block>::Extrinsic) -> Self::Hash;
fn ready_transaction(
        &self,
        hash: &Self::Hash
    ) -> Option<Arc<Self::InPoolTransaction>>; }

Transaction pool interface.

Associated Types

type Block: Block

Block type.

type Hash: Eq + Hash + Member + Serialize

Transaction hash type.

type InPoolTransaction: InPoolTransaction

In-pool transaction type.

type Error: IntoPoolError + From<Error>

Error type.

Loading content...

Required methods

fn submit_at(
    &self,
    at: &BlockId<Self::Block>,
    xts: Vec<<Self::Block as Block>::Extrinsic>
) -> Pin<Box<dyn Future<Output = Result<Vec<Result<Self::Hash, Self::Error>>, Self::Error>> + 'static + Send>>

Returns a future that imports a bunch of unverified transactions to the pool.

fn submit_one(
    &self,
    at: &BlockId<Self::Block>,
    xt: <Self::Block as Block>::Extrinsic
) -> Pin<Box<dyn Future<Output = Result<Self::Hash, Self::Error>> + 'static + Send>>

Returns a future that imports one unverified transaction to the pool.

fn submit_and_watch(
    &self,
    at: &BlockId<Self::Block>,
    xt: <Self::Block as Block>::Extrinsic
) -> Pin<Box<dyn Future<Output = Result<Box<dyn Stream<Item = TransactionStatus<Self::Hash, <Self::Block as Block>::Hash>> + 'static + Send + Unpin>, Self::Error>> + 'static + Send>>

Returns a future that import a single transaction and starts to watch their progress in the pool.

fn ready(
    &self
) -> Box<dyn Iterator<Item = Arc<Self::InPoolTransaction>> + 'static>

Get an iterator for ready transactions ordered by priority

fn remove_invalid(
    &self,
    hashes: &[Self::Hash]
) -> Vec<Arc<Self::InPoolTransaction>>

Remove transactions identified by given hashes (and dependent transactions) from the pool.

fn status(&self) -> PoolStatus

Returns pool status.

fn import_notification_stream(&self) -> UnboundedReceiver<Self::Hash>

Return an event stream of transactions imported to the pool.

fn on_broadcasted(
    &self,
    propagations: HashMap<Self::Hash, Vec<String>, RandomState>
)

Notify the pool about transactions broadcast.

fn hash_of(&self, xt: &<Self::Block as Block>::Extrinsic) -> Self::Hash

Returns transaction hash

fn ready_transaction(
    &self,
    hash: &Self::Hash
) -> Option<Arc<Self::InPoolTransaction>>

Return specific ready transaction by hash, if there is one.

Loading content...

Implementations on Foreign Types

impl<PoolApi, Block> TransactionPool for BasicPool<PoolApi, Block> where
    Block: Block,
    PoolApi: 'static + ChainApi<Block = Block, Hash = <Block as Block>::Hash>, 
[src]

type Block = <PoolApi as ChainApi>::Block

type Hash = <PoolApi as ChainApi>::Hash

type InPoolTransaction = Transaction<<BasicPool<PoolApi, Block> as TransactionPool>::Hash, <<BasicPool<PoolApi, Block> as TransactionPool>::Block as Block>::Extrinsic>

type Error = <PoolApi as ChainApi>::Error

Loading content...

Implementors

Loading content...