Add serde-bincode-compat for receipt (#14399)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
This commit is contained in:
Joseph Zhao
2025-02-15 04:33:13 +08:00
committed by GitHub
parent 16c3c5b733
commit 113a87b4f8
4 changed files with 21 additions and 2 deletions

View File

@ -34,7 +34,7 @@ reth-engine-local.workspace = true
reth-tasks.workspace = true reth-tasks.workspace = true
# currently need to enable this for workspace level # currently need to enable this for workspace level
reth-optimism-primitives = { workspace = true, features = ["arbitrary", "serde"] } reth-optimism-primitives = { workspace = true, features = ["arbitrary", "serde", "serde-bincode-compat"] }
# rpc # rpc
jsonrpsee.workspace = true jsonrpsee.workspace = true

View File

@ -193,6 +193,15 @@ impl InMemorySize for Receipt {
impl reth_primitives_traits::Receipt for Receipt {} impl reth_primitives_traits::Receipt for Receipt {}
#[cfg(feature = "serde-bincode-compat")]
impl reth_primitives_traits::serde_bincode_compat::SerdeBincodeCompat for Receipt {
type BincodeRepr<'a> = Self;
fn as_repr(&self) -> Self::BincodeRepr<'_> {
self.clone()
}
}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;

View File

@ -211,6 +211,15 @@ impl InMemorySize for OpReceipt {
impl reth_primitives_traits::Receipt for OpReceipt {} impl reth_primitives_traits::Receipt for OpReceipt {}
#[cfg(feature = "serde-bincode-compat")]
impl reth_primitives_traits::serde_bincode_compat::SerdeBincodeCompat for OpReceipt {
type BincodeRepr<'a> = Self;
fn as_repr(&self) -> Self::BincodeRepr<'_> {
self.clone()
}
}
/// Trait for deposit receipt. /// Trait for deposit receipt.
pub trait DepositReceipt: reth_primitives_traits::Receipt { pub trait DepositReceipt: reth_primitives_traits::Receipt {
/// Returns deposit receipt if it is a deposit transaction. /// Returns deposit receipt if it is a deposit transaction.

View File

@ -1,6 +1,6 @@
//! Receipt abstraction //! Receipt abstraction
use crate::{InMemorySize, MaybeCompact, MaybeSerde}; use crate::{InMemorySize, MaybeCompact, MaybeSerde, MaybeSerdeBincodeCompat};
use alloc::vec::Vec; use alloc::vec::Vec;
use alloy_consensus::{ use alloy_consensus::{
Eip2718EncodableReceipt, RlpDecodableReceipt, RlpEncodableReceipt, TxReceipt, Typed2718, Eip2718EncodableReceipt, RlpDecodableReceipt, RlpEncodableReceipt, TxReceipt, Typed2718,
@ -27,6 +27,7 @@ pub trait Receipt:
+ Typed2718 + Typed2718
+ MaybeSerde + MaybeSerde
+ InMemorySize + InMemorySize
+ MaybeSerdeBincodeCompat
{ {
} }