Struct sc_transaction_pool::BasicPool [−][src]
pub struct BasicPool<PoolApi, Block> where
Block: BlockT,
PoolApi: ChainApi<Block = Block>, { /* fields omitted */ }Expand description
Basic implementation of transaction pool that can be customized by providing PoolApi.
Implementations
Create new basic transaction pool with provided api, for tests.
pub fn with_revalidation_type(
options: Options,
is_validator: IsValidator,
pool_api: Arc<PoolApi>,
prometheus: Option<&PrometheusRegistry>,
revalidation_type: RevalidationType,
spawner: impl SpawnEssentialNamed,
best_block_number: NumberFor<Block>
) -> Self
pub fn with_revalidation_type(
options: Options,
is_validator: IsValidator,
pool_api: Arc<PoolApi>,
prometheus: Option<&PrometheusRegistry>,
revalidation_type: RevalidationType,
spawner: impl SpawnEssentialNamed,
best_block_number: NumberFor<Block>
) -> SelfCreate new basic transaction pool with provided api and custom revalidation type.
impl<Block, Client, Fetcher> BasicPool<LightChainApi<Client, Fetcher, Block>, Block> where
Block: BlockT,
Client: HeaderBackend<Block> + UsageProvider<Block> + 'static,
Fetcher: Fetcher<Block> + 'static,
impl<Block, Client, Fetcher> BasicPool<LightChainApi<Client, Fetcher, Block>, Block> where
Block: BlockT,
Client: HeaderBackend<Block> + UsageProvider<Block> + 'static,
Fetcher: Fetcher<Block> + 'static, impl<Block, Client> BasicPool<FullChainApi<Client, Block>, Block> where
Block: BlockT,
Client: ProvideRuntimeApi<Block> + BlockBackend<Block> + HeaderBackend<Block> + BlockIdTo<Block> + ExecutorProvider<Block> + UsageProvider<Block> + Send + Sync + 'static,
Client::Api: TaggedTransactionQueue<Block>,
impl<Block, Client> BasicPool<FullChainApi<Client, Block>, Block> where
Block: BlockT,
Client: ProvideRuntimeApi<Block> + BlockBackend<Block> + HeaderBackend<Block> + BlockIdTo<Block> + ExecutorProvider<Block> + UsageProvider<Block> + Send + Sync + 'static,
Client::Api: TaggedTransactionQueue<Block>, Trait Implementations
impl<Block, Client> LocalTransactionPool for BasicPool<FullChainApi<Client, Block>, Block> where
Block: BlockT,
Client: ProvideRuntimeApi<Block> + BlockBackend<Block> + HeaderBackend<Block> + BlockIdTo<Block>,
Client: Send + Sync + 'static,
Client::Api: TaggedTransactionQueue<Block>,
impl<Block, Client> LocalTransactionPool for BasicPool<FullChainApi<Client, Block>, Block> where
Block: BlockT,
Client: ProvideRuntimeApi<Block> + BlockBackend<Block> + HeaderBackend<Block> + BlockIdTo<Block>,
Client: Send + Sync + 'static,
Client::Api: TaggedTransactionQueue<Block>, type Block = Block
type Block = BlockBlock type.
type Error = <FullChainApi<Client, Block> as ChainApi>::Error
type Error = <FullChainApi<Client, Block> as ChainApi>::ErrorError type.
fn submit_local(
&self,
at: &BlockId<Self::Block>,
xt: LocalTransactionFor<Self>
) -> Result<Self::Hash, Self::Error>
fn submit_local(
&self,
at: &BlockId<Self::Block>,
xt: LocalTransactionFor<Self>
) -> Result<Self::Hash, Self::Error>Submits the given local unverified transaction to the pool blocking the
current thread for any necessary pre-verification.
NOTE: It MUST NOT be used for transactions that originate from the
network or RPC, since the validation is performed with
TransactionSource::Local. Read more
impl<PoolApi, Block> MaintainedTransactionPool for BasicPool<PoolApi, Block> where
Block: BlockT,
PoolApi: 'static + ChainApi<Block = Block>,
impl<PoolApi, Block> MaintainedTransactionPool for BasicPool<PoolApi, Block> where
Block: BlockT,
PoolApi: 'static + ChainApi<Block = Block>, Measure the heap usage of all descendant heap-allocated structures, but
not the space taken up by the value itself.
If T::size_of is a constant, consider implementing constant_size as well. Read more
fn constant_size() -> Option<usize>
fn constant_size() -> Option<usize>Used to optimize MallocSizeOf implementation for collections
like Vec and HashMap to avoid iterating over them unnecessarily.
The Self: Sized bound is for object safety. Read more
impl<PoolApi, Block> TransactionPool for BasicPool<PoolApi, Block> where
Block: BlockT,
PoolApi: 'static + ChainApi<Block = Block>,
impl<PoolApi, Block> TransactionPool for BasicPool<PoolApi, Block> where
Block: BlockT,
PoolApi: 'static + ChainApi<Block = Block>, type InPoolTransaction = Transaction<TxHash<Self>, TransactionFor<Self>>
type InPoolTransaction = Transaction<TxHash<Self>, TransactionFor<Self>>In-pool transaction type.
fn submit_at(
&self,
at: &BlockId<Self::Block>,
source: TransactionSource,
xts: Vec<TransactionFor<Self>>
) -> PoolFuture<Vec<Result<TxHash<Self>, Self::Error>>, Self::Error>
fn submit_at(
&self,
at: &BlockId<Self::Block>,
source: TransactionSource,
xts: Vec<TransactionFor<Self>>
) -> PoolFuture<Vec<Result<TxHash<Self>, Self::Error>>, Self::Error>Returns a future that imports a bunch of unverified transactions to the pool.
fn submit_one(
&self,
at: &BlockId<Self::Block>,
source: TransactionSource,
xt: TransactionFor<Self>
) -> PoolFuture<TxHash<Self>, Self::Error>
fn submit_one(
&self,
at: &BlockId<Self::Block>,
source: TransactionSource,
xt: TransactionFor<Self>
) -> PoolFuture<TxHash<Self>, Self::Error>Returns a future that imports one unverified transaction to the pool.
fn submit_and_watch(
&self,
at: &BlockId<Self::Block>,
source: TransactionSource,
xt: TransactionFor<Self>
) -> PoolFuture<Box<TransactionStatusStreamFor<Self>>, Self::Error>
fn submit_and_watch(
&self,
at: &BlockId<Self::Block>,
source: TransactionSource,
xt: TransactionFor<Self>
) -> PoolFuture<Box<TransactionStatusStreamFor<Self>>, Self::Error>Returns a future that import a single transaction and starts to watch their progress in the pool. Read more
Remove transactions identified by given hashes (and dependent transactions) from the pool.
Returns pool status.
Return an event stream of transactions imported to the pool.
Returns transaction hash
Notify the pool about transactions broadcast.
Return specific ready transaction by hash, if there is one.
Get an iterator for ready transactions ordered by priority. Read more
Auto Trait Implementations
impl<PoolApi, Block> !RefUnwindSafe for BasicPool<PoolApi, Block>impl<PoolApi, Block> !UnwindSafe for BasicPool<PoolApi, Block>Blanket Implementations
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any, Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more
Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s. Read more
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s. Read more
Instruments this type with the provided Span, returning an
Instrumented wrapper. Read more
Instruments this type with the provided Span, returning an
Instrumented wrapper. Read more
fn malloc_size_of(&self) -> usize
fn malloc_size_of(&self) -> usizeMethod to launch a heapsize measurement with a fresh state. Read more
type Output = T
type Output = TShould always be Self
The counterpart to unchecked_from.
Consume self to return an equivalent value of T.
pub fn vzip(self) -> VAttaches the provided Subscriber to this type, returning a
WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more