From cf38ff540137692a2e1beb01500551638815c3d7 Mon Sep 17 00:00:00 2001 From: Thomas Coratger <60488569+tcoratger@users.noreply.github.com> Date: Tue, 15 Oct 2024 10:02:00 +0200 Subject: [PATCH] primitive: introduce reth `Transaction` trait (#11728) --- crates/primitives-traits/src/lib.rs | 3 +++ crates/primitives-traits/src/transaction.rs | 26 +++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 crates/primitives-traits/src/transaction.rs diff --git a/crates/primitives-traits/src/lib.rs b/crates/primitives-traits/src/lib.rs index 9c244226b2..dd68607f59 100644 --- a/crates/primitives-traits/src/lib.rs +++ b/crates/primitives-traits/src/lib.rs @@ -23,6 +23,9 @@ pub use account::{Account, Bytecode}; pub mod receipt; pub use receipt::Receipt; +pub mod transaction; +pub use transaction::Transaction; + mod integer_list; pub use integer_list::{IntegerList, IntegerListError}; diff --git a/crates/primitives-traits/src/transaction.rs b/crates/primitives-traits/src/transaction.rs new file mode 100644 index 0000000000..93645ead82 --- /dev/null +++ b/crates/primitives-traits/src/transaction.rs @@ -0,0 +1,26 @@ +//! Transaction abstraction + +use alloc::fmt; + +use reth_codecs::Compact; +use serde::{Deserialize, Serialize}; + +/// Helper trait that unifies all behaviour required by transaction to support full node operations. +pub trait FullTransaction: Transaction + Compact {} + +impl FullTransaction for T where T: Transaction + Compact {} + +/// Abstraction of a transaction. +pub trait Transaction: + alloy_consensus::Transaction + + Clone + + fmt::Debug + + PartialEq + + Eq + + Default + + alloy_rlp::Encodable + + alloy_rlp::Decodable + + Serialize + + for<'de> Deserialize<'de> +{ +}