reth_transaction_pool/pool/
update.rs
1use crate::{
4 identifier::TransactionId, pool::state::SubPool, PoolTransaction, ValidPoolTransaction,
5};
6use alloy_primitives::TxHash;
7use std::sync::Arc;
8
9#[derive(Debug)]
13pub(crate) struct PoolUpdate {
14 pub(crate) id: TransactionId,
16 pub(crate) hash: TxHash,
18 pub(crate) current: SubPool,
20 pub(crate) destination: Destination,
22}
23
24#[derive(Debug)]
26pub(crate) enum Destination {
27 Discard,
29 Pool(SubPool),
31}
32
33impl From<SubPool> for Destination {
34 fn from(sub_pool: SubPool) -> Self {
35 Self::Pool(sub_pool)
36 }
37}
38
39#[derive(Debug)]
41pub(crate) struct UpdateOutcome<T: PoolTransaction> {
42 pub(crate) promoted: Vec<Arc<ValidPoolTransaction<T>>>,
44 pub(crate) discarded: Vec<Arc<ValidPoolTransaction<T>>>,
46}
47
48impl<T: PoolTransaction> Default for UpdateOutcome<T> {
49 fn default() -> Self {
50 Self { promoted: vec![], discarded: vec![] }
51 }
52}