mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
Add helper trait (#14394)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
This commit is contained in:
18
crates/optimism/txpool/src/conditional.rs
Normal file
18
crates/optimism/txpool/src/conditional.rs
Normal 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
|
||||
}
|
||||
}
|
||||
@ -13,6 +13,7 @@
|
||||
mod validator;
|
||||
pub use validator::{OpL1BlockInfo, OpTransactionValidator};
|
||||
|
||||
pub mod conditional;
|
||||
mod transaction;
|
||||
pub use transaction::OpPooledTransaction;
|
||||
|
||||
|
||||
@ -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>,
|
||||
|
||||
Reference in New Issue
Block a user