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>
) -> Self
Create 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 = Block
Block type.
type Error = <FullChainApi<Client, Block> as ChainApi>::Error
type Error = <FullChainApi<Client, Block> as ChainApi>::Error
Error 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) -> 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