pub struct TransactionPoolWrapper<Block, Client>(pub Box<dyn FullClientTransactionPool<Block, Client>>)
where
Block: BlockT,
Client: ProvideRuntimeApi<Block> + BlockBackend<Block> + HeaderBackend<Block> + BlockIdTo<Block> + HeaderMetadata<Block, Error = Error> + 'static,
Client::Api: TaggedTransactionQueue<Block>;
Expand description
The wrapper for actual object providing implementation of TransactionPool.
This wraps actual implementation of the TransactionPool, e.g. fork-aware or single-state.
Tuple Fields§
§0: Box<dyn FullClientTransactionPool<Block, Client>>
Trait Implementations§
Source§impl<Block, Client> LocalTransactionPool for TransactionPoolWrapper<Block, Client>where
Block: BlockT,
Client: ProvideRuntimeApi<Block> + BlockBackend<Block> + HeaderBackend<Block> + BlockIdTo<Block> + HeaderMetadata<Block, Error = Error> + 'static,
Client::Api: TaggedTransactionQueue<Block>,
impl<Block, Client> LocalTransactionPool for TransactionPoolWrapper<Block, Client>where
Block: BlockT,
Client: ProvideRuntimeApi<Block> + BlockBackend<Block> + HeaderBackend<Block> + BlockIdTo<Block> + HeaderMetadata<Block, Error = Error> + 'static,
Client::Api: TaggedTransactionQueue<Block>,
Source§type Hash = <<FullChainApi<Client, Block> as ChainApi>::Block as Block>::Hash
type Hash = <<FullChainApi<Client, Block> as ChainApi>::Block as Block>::Hash
Transaction hash type.
Source§fn submit_local(
&self,
at: <Self::Block as BlockT>::Hash,
xt: LocalTransactionFor<Self>,
) -> Result<Self::Hash, Self::Error>
fn submit_local( &self, at: <Self::Block as BlockT>::Hash, 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
.Source§impl<Block, Client> MaintainedTransactionPool for TransactionPoolWrapper<Block, Client>where
Block: BlockT,
Client: ProvideRuntimeApi<Block> + BlockBackend<Block> + HeaderBackend<Block> + BlockIdTo<Block> + HeaderMetadata<Block, Error = Error> + 'static,
Client::Api: TaggedTransactionQueue<Block>,
impl<Block, Client> MaintainedTransactionPool for TransactionPoolWrapper<Block, Client>where
Block: BlockT,
Client: ProvideRuntimeApi<Block> + BlockBackend<Block> + HeaderBackend<Block> + BlockIdTo<Block> + HeaderMetadata<Block, Error = Error> + 'static,
Client::Api: TaggedTransactionQueue<Block>,
Source§impl<Block, Client> TransactionPool for TransactionPoolWrapper<Block, Client>where
Block: BlockT,
Client: ProvideRuntimeApi<Block> + BlockBackend<Block> + HeaderBackend<Block> + BlockIdTo<Block> + HeaderMetadata<Block, Error = Error> + 'static,
Client::Api: TaggedTransactionQueue<Block>,
impl<Block, Client> TransactionPool for TransactionPoolWrapper<Block, Client>where
Block: BlockT,
Client: ProvideRuntimeApi<Block> + BlockBackend<Block> + HeaderBackend<Block> + BlockIdTo<Block> + HeaderMetadata<Block, Error = Error> + 'static,
Client::Api: TaggedTransactionQueue<Block>,
Source§type Hash = <<FullChainApi<Client, Block> as ChainApi>::Block as Block>::Hash
type Hash = <<FullChainApi<Client, Block> as ChainApi>::Block as Block>::Hash
Transaction hash type.
Source§type InPoolTransaction = Transaction<<<FullChainApi<Client, Block> as ChainApi>::Block as Block>::Hash, Arc<<<FullChainApi<Client, Block> as ChainApi>::Block as Block>::Extrinsic>>
type InPoolTransaction = Transaction<<<FullChainApi<Client, Block> as ChainApi>::Block as Block>::Hash, Arc<<<FullChainApi<Client, Block> as ChainApi>::Block as Block>::Extrinsic>>
In-pool transaction type.
Source§fn submit_at<'life0, 'async_trait>(
&'life0 self,
at: <Self::Block as BlockT>::Hash,
source: TransactionSource,
xts: Vec<TransactionFor<Self>>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Result<TxHash<Self>, Self::Error>>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn submit_at<'life0, 'async_trait>(
&'life0 self,
at: <Self::Block as BlockT>::Hash,
source: TransactionSource,
xts: Vec<TransactionFor<Self>>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Result<TxHash<Self>, Self::Error>>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Asynchronously imports a bunch of unverified transactions to the pool.
Source§fn submit_one<'life0, 'async_trait>(
&'life0 self,
at: <Self::Block as BlockT>::Hash,
source: TransactionSource,
xt: TransactionFor<Self>,
) -> Pin<Box<dyn Future<Output = Result<TxHash<Self>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn submit_one<'life0, 'async_trait>(
&'life0 self,
at: <Self::Block as BlockT>::Hash,
source: TransactionSource,
xt: TransactionFor<Self>,
) -> Pin<Box<dyn Future<Output = Result<TxHash<Self>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Asynchronously imports one unverified transaction to the pool.
Source§fn submit_and_watch<'life0, 'async_trait>(
&'life0 self,
at: <Self::Block as BlockT>::Hash,
source: TransactionSource,
xt: TransactionFor<Self>,
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<TransactionStatusStreamFor<Self>>>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn submit_and_watch<'life0, 'async_trait>(
&'life0 self,
at: <Self::Block as BlockT>::Hash,
source: TransactionSource,
xt: TransactionFor<Self>,
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<TransactionStatusStreamFor<Self>>>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Asynchronously imports a single transaction and starts to watch their progress in the
pool.
Source§fn ready_at<'life0, 'async_trait>(
&'life0 self,
at: <Self::Block as BlockT>::Hash,
) -> Pin<Box<dyn Future<Output = Box<dyn ReadyTransactions<Item = Arc<Transaction<<<FullChainApi<Client, Block> as ChainApi>::Block as Block>::Hash, Arc<<<FullChainApi<Client, Block> as ChainApi>::Block as Block>::Extrinsic>>>> + Send>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn ready_at<'life0, 'async_trait>(
&'life0 self,
at: <Self::Block as BlockT>::Hash,
) -> Pin<Box<dyn Future<Output = Box<dyn ReadyTransactions<Item = Arc<Transaction<<<FullChainApi<Client, Block> as ChainApi>::Block as Block>::Hash, Arc<<<FullChainApi<Client, Block> as ChainApi>::Block as Block>::Extrinsic>>>> + Send>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get an iterator for ready transactions ordered by priority. Read more
Source§fn ready(
&self,
) -> Box<dyn ReadyTransactions<Item = Arc<Self::InPoolTransaction>> + Send>
fn ready( &self, ) -> Box<dyn ReadyTransactions<Item = Arc<Self::InPoolTransaction>> + Send>
Get an iterator for ready transactions ordered by priority.
Source§fn report_invalid(
&self,
at: Option<<Self::Block as BlockT>::Hash>,
invalid_tx_errors: TxInvalidityReportMap<TxHash<Self>>,
) -> Vec<Arc<Self::InPoolTransaction>>
fn report_invalid( &self, at: Option<<Self::Block as BlockT>::Hash>, invalid_tx_errors: TxInvalidityReportMap<TxHash<Self>>, ) -> Vec<Arc<Self::InPoolTransaction>>
Reports invalid transactions to the transaction pool. Read more
Source§fn futures(&self) -> Vec<Self::InPoolTransaction>
fn futures(&self) -> Vec<Self::InPoolTransaction>
Get futures transaction list.
Source§fn status(&self) -> PoolStatus
fn status(&self) -> PoolStatus
Returns pool status.
Source§fn import_notification_stream(&self) -> ImportNotificationStream<TxHash<Self>>
fn import_notification_stream(&self) -> ImportNotificationStream<TxHash<Self>>
Return an event stream of transactions imported to the pool.
Source§fn on_broadcasted(&self, propagations: HashMap<TxHash<Self>, Vec<String>>)
fn on_broadcasted(&self, propagations: HashMap<TxHash<Self>, Vec<String>>)
Notify the pool about transactions broadcast.
Source§fn hash_of(&self, xt: &TransactionFor<Self>) -> TxHash<Self>
fn hash_of(&self, xt: &TransactionFor<Self>) -> TxHash<Self>
Returns transaction hash
Source§fn ready_transaction(
&self,
hash: &TxHash<Self>,
) -> Option<Arc<Self::InPoolTransaction>>
fn ready_transaction( &self, hash: &TxHash<Self>, ) -> Option<Arc<Self::InPoolTransaction>>
Return specific ready transaction by hash, if there is one.
Source§fn ready_at_with_timeout<'life0, 'async_trait>(
&'life0 self,
at: <Self::Block as BlockT>::Hash,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Box<dyn ReadyTransactions<Item = Arc<Transaction<<<FullChainApi<Client, Block> as ChainApi>::Block as Block>::Hash, Arc<<<FullChainApi<Client, Block> as ChainApi>::Block as Block>::Extrinsic>>>> + Send>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn ready_at_with_timeout<'life0, 'async_trait>(
&'life0 self,
at: <Self::Block as BlockT>::Hash,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Box<dyn ReadyTransactions<Item = Arc<Transaction<<<FullChainApi<Client, Block> as ChainApi>::Block as Block>::Hash, Arc<<<FullChainApi<Client, Block> as ChainApi>::Block as Block>::Extrinsic>>>> + Send>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Asynchronously returns a set of ready transaction at given block within given timeout. Read more
Auto Trait Implementations§
impl<Block, Client> Freeze for TransactionPoolWrapper<Block, Client>
impl<Block, Client> !RefUnwindSafe for TransactionPoolWrapper<Block, Client>
impl<Block, Client> Send for TransactionPoolWrapper<Block, Client>
impl<Block, Client> Sync for TransactionPoolWrapper<Block, Client>
impl<Block, Client> Unpin for TransactionPoolWrapper<Block, Client>
impl<Block, Client> !UnwindSafe for TransactionPoolWrapper<Block, Client>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<Src, Dest> IntoTuple<Dest> for Srcwhere
Dest: FromTuple<Src>,
impl<Src, Dest> IntoTuple<Dest> for Srcwhere
Dest: FromTuple<Src>,
fn into_tuple(self) -> Dest
Source§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
Source§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
Source§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
Consume self to return an equivalent value of
T
. Read moreSource§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
Source§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
The counterpart to
unchecked_from
.Source§impl<T, S> UniqueSaturatedInto<T> for S
impl<T, S> UniqueSaturatedInto<T> for S
Source§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
Consume self to return an equivalent value of
T
.