Struct sc_transaction_pool::test_helpers::Pool [−][src]
pub struct Pool<B: ChainApi> { /* fields omitted */ }
Expand description
Extrinsics pool that performs validation.
Implementations
Create a new transaction pool.
Imports a bunch of unverified extrinsics to the pool
pub async fn resubmit_at(
&self,
at: &BlockId<B::Block>,
source: TransactionSource,
xts: impl IntoIterator<Item = ExtrinsicFor<B>>
) -> Result<Vec<Result<<<B as ChainApi>::Block as Block>::Hash, B::Error>>, B::Error>
pub async fn resubmit_at(
&self,
at: &BlockId<B::Block>,
source: TransactionSource,
xts: impl IntoIterator<Item = ExtrinsicFor<B>>
) -> Result<Vec<Result<<<B as ChainApi>::Block as Block>::Hash, B::Error>>, B::Error>
Resubmit the given extrinsics to the pool.
This does not check if a transaction is banned, before we verify it again.
pub async fn submit_one(
&self,
at: &BlockId<B::Block>,
source: TransactionSource,
xt: ExtrinsicFor<B>
) -> Result<<<B as ChainApi>::Block as Block>::Hash, B::Error>
pub async fn submit_one(
&self,
at: &BlockId<B::Block>,
source: TransactionSource,
xt: ExtrinsicFor<B>
) -> Result<<<B as ChainApi>::Block as Block>::Hash, B::Error>
Imports one unverified extrinsic to the pool
Import a single extrinsic and starts to watch its progress in the pool.
Resubmit some transaction that were validated elsewhere.
Prunes known ready transactions.
Used to clear the pool from transactions that were part of recently imported block.
The main difference from the prune
is that we do not revalidate any transactions
and ignore unknown passed hashes.
Prunes ready transactions.
Used to clear the pool from transactions that were part of recently imported block.
To perform pruning we need the tags that each extrinsic provides and to avoid calling
into runtime too often we first lookup all extrinsics that are in the pool and get
their provided tags from there. Otherwise we query the runtime at the parent
block.
Prunes ready transactions that provide given list of tags.
Given tags are assumed to be always provided now, so all transactions in the Future Queue that require that particular tag (and have other requirements satisfied) are promoted to Ready Queue.
Moreover for each provided tag we remove transactions in the pool that:
- Provide that tag directly
- Are a dependency of pruned transaction.
Returns transactions that have been removed from the pool and must be reverified before reinserting to the pool.
By removing predecessor transactions as well we might actually end up
pruning too much, so all removed transactions are reverified against
the runtime (validate_transaction
) to make sure they are invalid.
However we avoid revalidating transactions that are contained within
the second parameter of known_imported_hashes
. These transactions
(if pruned) are not revalidated and become temporarily banned to
prevent importing them in the (near) future.
Returns transaction hash
get a reference to the underlying validated pool.
Trait Implementations
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
Auto Trait Implementations
impl<B> !RefUnwindSafe for Pool<B>
impl<B> !UnwindSafe for Pool<B>
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) -> usize
Method to launch a heapsize measurement with a fresh state. Read more
type Output = T
type Output = T
Should always be Self
The counterpart to unchecked_from
.
Consume self to return an equivalent value of T
.
pub fn vzip(self) -> V
Attaches 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