Add helper trait (#14394)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
This commit is contained in:
Veer Chaurasia
2025-02-11 15:49:54 +05:30
committed by GitHub
parent 0d64c40edc
commit c9ea4231ff
3 changed files with 26 additions and 0 deletions

View File

@ -0,0 +1,18 @@
//! Additional support for pooled transactions with [`TransactionConditional`]
use alloy_rpc_types_eth::erc4337::TransactionConditional;
/// Helper trait that allows attaching a [`TransactionConditional`].
pub trait MaybeConditionalTransaction {
/// Attach a [`TransactionConditional`].
fn set_conditional(&mut self, conditional: TransactionConditional);
/// Helper that sets the conditional and returns the instance again
fn with_conditional(mut self, conditional: TransactionConditional) -> Self
where
Self: Sized,
{
self.set_conditional(conditional);
self
}
}

View File

@ -13,6 +13,7 @@
mod validator;
pub use validator::{OpL1BlockInfo, OpTransactionValidator};
pub mod conditional;
mod transaction;
pub use transaction::OpPooledTransaction;

View File

@ -1,3 +1,4 @@
use crate::conditional::MaybeConditionalTransaction;
use alloy_consensus::{
transaction::Recovered, BlobTransactionSidecar, BlobTransactionValidationError, Typed2718,
};
@ -66,6 +67,12 @@ impl<Cons: SignedTransaction, Pooled> OpPooledTransaction<Cons, Pooled> {
}
}
impl<Cons, Pooled> MaybeConditionalTransaction for OpPooledTransaction<Cons, Pooled> {
fn set_conditional(&mut self, conditional: TransactionConditional) {
self.conditional = Some(Box::new(conditional))
}
}
impl<Cons, Pooled> PoolTransaction for OpPooledTransaction<Cons, Pooled>
where
Cons: SignedTransaction + From<Pooled>,