diff --git a/crates/revm/src/db/states/account_status.rs b/crates/revm/src/db/states/account_status.rs index aaf0b5b48e..5902ed9819 100644 --- a/crates/revm/src/db/states/account_status.rs +++ b/crates/revm/src/db/states/account_status.rs @@ -2,6 +2,7 @@ /// while we execute multiple transaction and even blocks over account that is in memory. /// This structure models all possible states that account can be in. #[derive(Clone, Copy, Default, Debug, PartialEq, Eq, Hash)] +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub enum AccountStatus { #[default] LoadedNotExisting, diff --git a/crates/revm/src/db/states/bundle_account.rs b/crates/revm/src/db/states/bundle_account.rs index 9916139d12..5abf397bf7 100644 --- a/crates/revm/src/db/states/bundle_account.rs +++ b/crates/revm/src/db/states/bundle_account.rs @@ -15,6 +15,7 @@ use revm_precompile::HashMap; /// /// On selfdestruct storage original value is ignored. #[derive(Clone, Debug, PartialEq, Eq)] +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub struct BundleAccount { pub info: Option, pub original_info: Option, diff --git a/crates/revm/src/db/states/bundle_state.rs b/crates/revm/src/db/states/bundle_state.rs index 0b5c655c6d..22797c8761 100644 --- a/crates/revm/src/db/states/bundle_state.rs +++ b/crates/revm/src/db/states/bundle_state.rs @@ -393,6 +393,7 @@ impl BundleRetention { /// Reverts and created when TransitionState is applied to BundleState. /// And can be used to revert BundleState to the state before transition. #[derive(Default, Clone, Debug, PartialEq, Eq)] +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub struct BundleState { /// Account state. pub state: HashMap, diff --git a/crates/revm/src/db/states/reverts.rs b/crates/revm/src/db/states/reverts.rs index 5be2c932fd..4d8d3f402d 100644 --- a/crates/revm/src/db/states/reverts.rs +++ b/crates/revm/src/db/states/reverts.rs @@ -8,6 +8,7 @@ use std::vec::Vec; /// Contains reverts of multiple account in multiple transitions (Transitions as a block). #[derive(Clone, Debug, Default, PartialEq, Eq)] +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub struct Reverts(Vec>); impl Deref for Reverts { @@ -80,6 +81,7 @@ impl Reverts { /// AccountRevert is structured in this way as we need to save it inside database. /// And we need to be able to read it from database. #[derive(Clone, Default, Debug, PartialEq, Eq)] +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub struct AccountRevert { pub account: AccountInfoRevert, pub storage: HashMap, @@ -182,6 +184,7 @@ impl AccountRevert { /// Depending on previous state of account info this /// will tell us what to do on revert. #[derive(Clone, Default, Debug, PartialEq, Eq, Hash)] +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub enum AccountInfoRevert { #[default] /// Nothing changed @@ -200,6 +203,7 @@ pub enum AccountInfoRevert { /// Note: It is completely different state if Storage is Zero or Some or if Storage was /// Destroyed. Because if it is destroyed, previous values can be found in database or it can be zero. #[derive(Clone, Debug, Copy, PartialEq, Eq, Hash)] +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub enum RevertToSlot { Some(U256), Destroyed,