Struct fuel_txpool::txpool::TxPool
source · 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.