[][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>,
        source: TransactionSource,
        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>,
        source: TransactionSource,
        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>,
        source: TransactionSource,
        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_at(
        &self,
        at: <<Self::Block as Block>::Header as Header>::Number
    ) -> Pin<Box<dyn Future<Output = Box<dyn Iterator<Item = Arc<Self::InPoolTransaction>> + 'static + Send>> + 'static + Send>>;
fn ready(
        &self
    ) -> Box<dyn Iterator<Item = Arc<Self::InPoolTransaction>> + 'static + Send>;
fn remove_invalid(
        &self,
        hashes: &[Self::Hash]
    ) -> Vec<Arc<Self::InPoolTransaction>>;
fn status(&self) -> PoolStatus;
fn import_notification_stream(&self) -> Receiver<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>,
    source: TransactionSource,
    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>,
    source: TransactionSource,
    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>,
    source: TransactionSource,
    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_at(
    &self,
    at: <<Self::Block as Block>::Header as Header>::Number
) -> Pin<Box<dyn Future<Output = Box<dyn Iterator<Item = Arc<Self::InPoolTransaction>> + 'static + Send>> + 'static + Send>>

Get an iterator for ready transactions ordered by priority.

Guarantees to return only when transaction pool got updated at at block. Guarantees to return immediately when None is passed.

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

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) -> Receiver<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>, 
[src]

type Block = <PoolApi as ChainApi>::Block

type Hash = <<PoolApi as ChainApi>::Block as Block>::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...