diff --git a/crates/config/Cargo.toml b/crates/config/Cargo.toml index a186b8407..0232aecc6 100644 --- a/crates/config/Cargo.toml +++ b/crates/config/Cargo.toml @@ -14,7 +14,7 @@ workspace = true # reth reth-network-types = { workspace = true, features = ["serde"] } reth-prune-types.workspace = true -reth-stages-types.workspace = true +reth-stages-types = { workspace = true, features = ["serde"] } # serde serde.workspace = true diff --git a/crates/stages/types/Cargo.toml b/crates/stages/types/Cargo.toml index 8e880dfc7..5a1cd489d 100644 --- a/crates/stages/types/Cargo.toml +++ b/crates/stages/types/Cargo.toml @@ -16,7 +16,7 @@ reth-codecs = { workspace = true, optional = true } reth-trie-common.workspace = true alloy-primitives.workspace = true -serde.workspace = true +serde = { workspace = true, optional = true } arbitrary = { workspace = true, features = ["derive"], optional = true } bytes = { workspace = true, optional = true } @@ -50,3 +50,11 @@ arbitrary = [ "reth-codecs?/arbitrary", "reth-trie-common/arbitrary", ] +serde = [ + "dep:serde", + "alloy-primitives/serde", + "bytes?/serde", + "rand/serde", + "reth-codecs?/serde", + "reth-trie-common/serde", +] diff --git a/crates/stages/types/src/checkpoints.rs b/crates/stages/types/src/checkpoints.rs index 160c901e1..bd03a5ba6 100644 --- a/crates/stages/types/src/checkpoints.rs +++ b/crates/stages/types/src/checkpoints.rs @@ -3,7 +3,6 @@ use alloc::vec::Vec; use alloy_primitives::{Address, BlockNumber, B256}; use core::ops::RangeInclusive; use reth_trie_common::{hash_builder::HashBuilderState, StoredSubNode}; -use serde::{Deserialize, Serialize}; /// Saves the progress of Merkle stage. #[derive(Default, Debug, Clone, PartialEq, Eq)] @@ -75,10 +74,11 @@ impl reth_codecs::Compact for MerkleCheckpoint { } /// Saves the progress of AccountHashing stage. -#[derive(Default, Debug, Copy, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Default, Debug, Copy, Clone, PartialEq, Eq)] #[cfg_attr(any(test, feature = "test-utils"), derive(arbitrary::Arbitrary))] #[cfg_attr(any(test, feature = "reth-codec"), derive(reth_codecs::Compact))] #[cfg_attr(any(test, feature = "reth-codec"), reth_codecs::add_arbitrary_tests(compact))] +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub struct AccountHashingCheckpoint { /// The next account to start hashing from. pub address: Option
, @@ -89,10 +89,11 @@ pub struct AccountHashingCheckpoint { } /// Saves the progress of StorageHashing stage. -#[derive(Default, Debug, Copy, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Default, Debug, Copy, Clone, PartialEq, Eq)] #[cfg_attr(any(test, feature = "test-utils"), derive(arbitrary::Arbitrary))] #[cfg_attr(any(test, feature = "reth-codec"), derive(reth_codecs::Compact))] #[cfg_attr(any(test, feature = "reth-codec"), reth_codecs::add_arbitrary_tests(compact))] +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub struct StorageHashingCheckpoint { /// The next account to start hashing from. pub address: Option, @@ -105,10 +106,11 @@ pub struct StorageHashingCheckpoint { } /// Saves the progress of Execution stage. -#[derive(Default, Debug, Copy, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Default, Debug, Copy, Clone, PartialEq, Eq)] #[cfg_attr(any(test, feature = "test-utils"), derive(arbitrary::Arbitrary))] #[cfg_attr(any(test, feature = "reth-codec"), derive(reth_codecs::Compact))] #[cfg_attr(any(test, feature = "reth-codec"), reth_codecs::add_arbitrary_tests(compact))] +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub struct ExecutionCheckpoint { /// Block range which this checkpoint is valid for. pub block_range: CheckpointBlockRange, @@ -117,10 +119,11 @@ pub struct ExecutionCheckpoint { } /// Saves the progress of Headers stage. -#[derive(Default, Debug, Copy, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Default, Debug, Copy, Clone, PartialEq, Eq)] #[cfg_attr(any(test, feature = "test-utils"), derive(arbitrary::Arbitrary))] #[cfg_attr(any(test, feature = "reth-codec"), derive(reth_codecs::Compact))] #[cfg_attr(any(test, feature = "reth-codec"), reth_codecs::add_arbitrary_tests(compact))] +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub struct HeadersCheckpoint { /// Block range which this checkpoint is valid for. pub block_range: CheckpointBlockRange, @@ -129,10 +132,11 @@ pub struct HeadersCheckpoint { } /// Saves the progress of Index History stages. -#[derive(Default, Debug, Copy, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Default, Debug, Copy, Clone, PartialEq, Eq)] #[cfg_attr(any(test, feature = "test-utils"), derive(arbitrary::Arbitrary))] #[cfg_attr(any(test, feature = "reth-codec"), derive(reth_codecs::Compact))] #[cfg_attr(any(test, feature = "reth-codec"), reth_codecs::add_arbitrary_tests(compact))] +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub struct IndexHistoryCheckpoint { /// Block range which this checkpoint is valid for. pub block_range: CheckpointBlockRange, @@ -141,10 +145,11 @@ pub struct IndexHistoryCheckpoint { } /// Saves the progress of abstract stage iterating over or downloading entities. -#[derive(Debug, Default, PartialEq, Eq, Clone, Copy, Serialize, Deserialize)] +#[derive(Debug, Default, PartialEq, Eq, Clone, Copy)] #[cfg_attr(any(test, feature = "test-utils"), derive(arbitrary::Arbitrary))] #[cfg_attr(any(test, feature = "reth-codec"), derive(reth_codecs::Compact))] #[cfg_attr(any(test, feature = "reth-codec"), reth_codecs::add_arbitrary_tests(compact))] +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub struct EntitiesCheckpoint { /// Number of entities already processed. pub processed: u64, @@ -171,10 +176,11 @@ impl EntitiesCheckpoint { /// Saves the block range. Usually, it's used to check the validity of some stage checkpoint across /// multiple executions. -#[derive(Default, Debug, Copy, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Default, Debug, Copy, Clone, PartialEq, Eq)] #[cfg_attr(any(test, feature = "test-utils"), derive(arbitrary::Arbitrary))] #[cfg_attr(any(test, feature = "reth-codec"), derive(reth_codecs::Compact))] #[cfg_attr(any(test, feature = "reth-codec"), reth_codecs::add_arbitrary_tests(compact))] +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub struct CheckpointBlockRange { /// The first block of the range, inclusive. pub from: BlockNumber, @@ -195,10 +201,11 @@ impl From<&RangeInclusive