pub struct TxPool { /* private fields */ }
Implementations§
Source§impl TxPool
impl TxPool
pub fn new(config: Config) -> Self
pub fn txs(&self) -> &HashMap<TxId, TxInfo>
pub fn dependency(&self) -> &Dependency
Sourcepub fn sorted_includable(&self) -> Vec<ArcPoolTx>
pub fn sorted_includable(&self) -> Vec<ArcPoolTx>
Return all sorted transactions that are includable in next block.
pub fn remove_inner(&mut self, tx: &ArcPoolTx) -> Vec<ArcPoolTx>
Sourcepub fn remove_by_tx_id(&mut self, tx_id: &TxId) -> Vec<ArcPoolTx>
pub fn remove_by_tx_id(&mut self, tx_id: &TxId) -> Vec<ArcPoolTx>
remove transaction from pool needed on user demand. Low priority
Sourcepub async fn insert(
txpool: &RwLock<Self>,
db: &dyn TxPoolDb,
tx_status_sender: &TxStatusChange,
txs: &[Arc<Transaction>],
) -> Vec<Result<InsertionResult>>
pub async fn insert( txpool: &RwLock<Self>, db: &dyn TxPoolDb, tx_status_sender: &TxStatusChange, txs: &[Arc<Transaction>], ) -> Vec<Result<InsertionResult>>
Import a set of transactions from network gossip or GraphQL endpoints.
Sourcepub async fn find(txpool: &RwLock<Self>, hashes: &[TxId]) -> Vec<Option<TxInfo>>
pub async fn find(txpool: &RwLock<Self>, hashes: &[TxId]) -> Vec<Option<TxInfo>>
find all tx by its hash
pub async fn find_one(txpool: &RwLock<Self>, hash: &TxId) -> Option<TxInfo>
Sourcepub async fn find_dependent(
txpool: &RwLock<Self>,
hashes: &[TxId],
) -> Vec<ArcPoolTx>
pub async fn find_dependent( txpool: &RwLock<Self>, hashes: &[TxId], ) -> Vec<ArcPoolTx>
find all dependent tx and return them with requested dependencies in one list sorted by Price.
Sourcepub async fn filter_by_negative(
txpool: &RwLock<Self>,
tx_ids: &[TxId],
) -> Vec<TxId>
pub async fn filter_by_negative( txpool: &RwLock<Self>, tx_ids: &[TxId], ) -> Vec<TxId>
Iterate over hashes
and return all hashes that we don’t have.
Sourcepub async fn pending_number(txpool: &RwLock<Self>) -> usize
pub async fn pending_number(txpool: &RwLock<Self>) -> usize
The number of pending transaction in the pool.
Sourcepub async fn consumable_gas(txpool: &RwLock<Self>) -> u64
pub async fn consumable_gas(txpool: &RwLock<Self>) -> u64
The amount of gas in all includable transactions combined
Sourcepub async fn includable(txpool: &RwLock<Self>) -> Vec<ArcPoolTx>
pub async fn includable(txpool: &RwLock<Self>) -> Vec<ArcPoolTx>
Return all sorted transactions that are includable in next block. This is going to be heavy operation, use it only when needed.
Sourcepub async fn block_update(
txpool: &RwLock<Self>,
tx_status_sender: &TxStatusChange,
block: Arc<FuelBlock>,
)
pub async fn block_update( txpool: &RwLock<Self>, tx_status_sender: &TxStatusChange, block: Arc<FuelBlock>, )
When block is updated we need to receive all spend outputs and remove them from txpool.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for TxPool
impl RefUnwindSafe for TxPool
impl Send for TxPool
impl Sync for TxPool
impl Unpin for TxPool
impl UnwindSafe for TxPool
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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 more