[−][src]Trait sc_service::TransactionPool
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.
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>>
&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>>
&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 + Unpin + Send>, Self::Error>> + 'static + Send>>
&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 + Unpin + Send>, 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>>
&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>
&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>>
&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) -> TracingUnboundedReceiver<Self::Hash>
Return an event stream of transactions imported to the pool.
fn on_broadcasted(
&self,
propagations: HashMap<Self::Hash, Vec<String>, RandomState>
)
&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>>
&self,
hash: &Self::Hash
) -> Option<Arc<Self::InPoolTransaction>>
Return specific ready transaction by hash, if there is one.
Implementations on Foreign Types
impl<PoolApi, Block> TransactionPool for BasicPool<PoolApi, Block> where
Block: Block,
PoolApi: 'static + ChainApi<Block = Block>,
[src]
Block: Block,
PoolApi: 'static + ChainApi<Block = Block>,
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
fn submit_at(
&self,
at: &BlockId<<BasicPool<PoolApi, Block> as TransactionPool>::Block>,
source: TransactionSource,
xts: Vec<<<BasicPool<PoolApi, Block> as TransactionPool>::Block as Block>::Extrinsic>
) -> Pin<Box<dyn Future<Output = Result<Vec<Result<<BasicPool<PoolApi, Block> as TransactionPool>::Hash, <BasicPool<PoolApi, Block> as TransactionPool>::Error>>, <BasicPool<PoolApi, Block> as TransactionPool>::Error>> + 'static + Send>>
[src]
&self,
at: &BlockId<<BasicPool<PoolApi, Block> as TransactionPool>::Block>,
source: TransactionSource,
xts: Vec<<<BasicPool<PoolApi, Block> as TransactionPool>::Block as Block>::Extrinsic>
) -> Pin<Box<dyn Future<Output = Result<Vec<Result<<BasicPool<PoolApi, Block> as TransactionPool>::Hash, <BasicPool<PoolApi, Block> as TransactionPool>::Error>>, <BasicPool<PoolApi, Block> as TransactionPool>::Error>> + 'static + Send>>
fn submit_one(
&self,
at: &BlockId<<BasicPool<PoolApi, Block> as TransactionPool>::Block>,
source: TransactionSource,
xt: <<BasicPool<PoolApi, Block> as TransactionPool>::Block as Block>::Extrinsic
) -> Pin<Box<dyn Future<Output = Result<<BasicPool<PoolApi, Block> as TransactionPool>::Hash, <BasicPool<PoolApi, Block> as TransactionPool>::Error>> + 'static + Send>>
[src]
&self,
at: &BlockId<<BasicPool<PoolApi, Block> as TransactionPool>::Block>,
source: TransactionSource,
xt: <<BasicPool<PoolApi, Block> as TransactionPool>::Block as Block>::Extrinsic
) -> Pin<Box<dyn Future<Output = Result<<BasicPool<PoolApi, Block> as TransactionPool>::Hash, <BasicPool<PoolApi, Block> as TransactionPool>::Error>> + 'static + Send>>
fn submit_and_watch(
&self,
at: &BlockId<<BasicPool<PoolApi, Block> as TransactionPool>::Block>,
source: TransactionSource,
xt: <<BasicPool<PoolApi, Block> as TransactionPool>::Block as Block>::Extrinsic
) -> Pin<Box<dyn Future<Output = Result<Box<dyn Stream<Item = TransactionStatus<<BasicPool<PoolApi, Block> as TransactionPool>::Hash, <<BasicPool<PoolApi, Block> as TransactionPool>::Block as Block>::Hash>> + 'static + Unpin + Send>, <BasicPool<PoolApi, Block> as TransactionPool>::Error>> + 'static + Send>>
[src]
&self,
at: &BlockId<<BasicPool<PoolApi, Block> as TransactionPool>::Block>,
source: TransactionSource,
xt: <<BasicPool<PoolApi, Block> as TransactionPool>::Block as Block>::Extrinsic
) -> Pin<Box<dyn Future<Output = Result<Box<dyn Stream<Item = TransactionStatus<<BasicPool<PoolApi, Block> as TransactionPool>::Hash, <<BasicPool<PoolApi, Block> as TransactionPool>::Block as Block>::Hash>> + 'static + Unpin + Send>, <BasicPool<PoolApi, Block> as TransactionPool>::Error>> + 'static + Send>>
fn remove_invalid(
&self,
hashes: &[<BasicPool<PoolApi, Block> as TransactionPool>::Hash]
) -> Vec<Arc<<BasicPool<PoolApi, Block> as TransactionPool>::InPoolTransaction>>
[src]
&self,
hashes: &[<BasicPool<PoolApi, Block> as TransactionPool>::Hash]
) -> Vec<Arc<<BasicPool<PoolApi, Block> as TransactionPool>::InPoolTransaction>>
fn status(&self) -> PoolStatus
[src]
fn import_notification_stream(
&self
) -> TracingUnboundedReceiver<<BasicPool<PoolApi, Block> as TransactionPool>::Hash>
[src]
&self
) -> TracingUnboundedReceiver<<BasicPool<PoolApi, Block> as TransactionPool>::Hash>
fn hash_of(
&self,
xt: &<<BasicPool<PoolApi, Block> as TransactionPool>::Block as Block>::Extrinsic
) -> <BasicPool<PoolApi, Block> as TransactionPool>::Hash
[src]
&self,
xt: &<<BasicPool<PoolApi, Block> as TransactionPool>::Block as Block>::Extrinsic
) -> <BasicPool<PoolApi, Block> as TransactionPool>::Hash
fn on_broadcasted(
&self,
propagations: HashMap<<BasicPool<PoolApi, Block> as TransactionPool>::Hash, Vec<String>, RandomState>
)
[src]
&self,
propagations: HashMap<<BasicPool<PoolApi, Block> as TransactionPool>::Hash, Vec<String>, RandomState>
)
fn ready_transaction(
&self,
hash: &<BasicPool<PoolApi, Block> as TransactionPool>::Hash
) -> Option<Arc<<BasicPool<PoolApi, Block> as TransactionPool>::InPoolTransaction>>
[src]
&self,
hash: &<BasicPool<PoolApi, Block> as TransactionPool>::Hash
) -> Option<Arc<<BasicPool<PoolApi, Block> as TransactionPool>::InPoolTransaction>>
fn ready_at(
&self,
at: <<<BasicPool<PoolApi, Block> as TransactionPool>::Block as Block>::Header as Header>::Number
) -> Pin<Box<dyn Future<Output = Box<dyn Iterator<Item = Arc<Transaction<<<PoolApi as ChainApi>::Block as Block>::Hash, <<PoolApi as ChainApi>::Block as Block>::Extrinsic>>> + 'static + Send>> + 'static + Send>>
[src]
&self,
at: <<<BasicPool<PoolApi, Block> as TransactionPool>::Block as Block>::Header as Header>::Number
) -> Pin<Box<dyn Future<Output = Box<dyn Iterator<Item = Arc<Transaction<<<PoolApi as ChainApi>::Block as Block>::Hash, <<PoolApi as ChainApi>::Block as Block>::Extrinsic>>> + 'static + Send>> + 'static + Send>>
fn ready(
&self
) -> Box<dyn Iterator<Item = Arc<Transaction<<<PoolApi as ChainApi>::Block as Block>::Hash, <<PoolApi as ChainApi>::Block as Block>::Extrinsic>>> + 'static + Send>
[src]
&self
) -> Box<dyn Iterator<Item = Arc<Transaction<<<PoolApi as ChainApi>::Block as Block>::Hash, <<PoolApi as ChainApi>::Block as Block>::Extrinsic>>> + 'static + Send>