From e6aa1593bfdcf9bff6c98f5e085c32ef8617f684 Mon Sep 17 00:00:00 2001 From: refcell Date: Sun, 1 Sep 2024 09:03:15 -0400 Subject: [PATCH 1/2] feat(primitives): more arbitrary impls --- crates/primitives/src/genesis.rs | 1 + crates/primitives/src/system_config.rs | 2 ++ 2 files changed, 3 insertions(+) diff --git a/crates/primitives/src/genesis.rs b/crates/primitives/src/genesis.rs index bd5ce84..da9dc56 100644 --- a/crates/primitives/src/genesis.rs +++ b/crates/primitives/src/genesis.rs @@ -7,6 +7,7 @@ use alloy_primitives::Bytes; /// Chain genesis information. #[derive(Debug, Clone, Default, Hash, Eq, PartialEq)] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[cfg_attr(any(test, feature = "arbitrary"), derive(arbitrary::Arbitrary))] pub struct ChainGenesis { /// L1 genesis block #[cfg_attr(feature = "serde", serde(rename = "L1"))] diff --git a/crates/primitives/src/system_config.rs b/crates/primitives/src/system_config.rs index d8d8e4d..3a9fc4b 100644 --- a/crates/primitives/src/system_config.rs +++ b/crates/primitives/src/system_config.rs @@ -17,6 +17,7 @@ pub const CONFIG_UPDATE_EVENT_VERSION_0: B256 = B256::ZERO; #[derive(Debug, Clone, Default, Hash, Eq, PartialEq)] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] #[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))] +#[cfg_attr(any(test, feature = "arbitrary"), derive(arbitrary::Arbitrary))] pub struct SystemConfig { /// Batcher address #[cfg_attr(feature = "serde", serde(rename = "batcherAddr"))] @@ -219,6 +220,7 @@ impl SystemConfig { /// System accounts #[derive(Debug, Clone, Copy, PartialEq, Eq)] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[cfg_attr(any(test, feature = "arbitrary"), derive(arbitrary::Arbitrary))] pub struct SystemAccounts { /// The address that can deposit attributes pub attributes_depositor: Address, From 3062e4bff8bcdefd064688dcde0539afb9c314ef Mon Sep 17 00:00:00 2001 From: refcell Date: Sun, 1 Sep 2024 09:13:23 -0400 Subject: [PATCH 2/2] feat(primitives): other arbitrary impls --- crates/primitives/src/chain_config.rs | 3 +++ crates/primitives/src/superchain.rs | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/crates/primitives/src/chain_config.rs b/crates/primitives/src/chain_config.rs index 6471466..6b5d2ec 100644 --- a/crates/primitives/src/chain_config.rs +++ b/crates/primitives/src/chain_config.rs @@ -9,6 +9,7 @@ use alloy_primitives::Address; /// AltDA configuration. #[derive(Debug, Clone, Default, Hash, Eq, PartialEq)] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[cfg_attr(any(test, feature = "arbitrary"), derive(arbitrary::Arbitrary))] pub struct AltDAConfig { /// AltDA challenge address pub da_challenge_address: Option
, @@ -21,6 +22,7 @@ pub struct AltDAConfig { /// Hardfork configuration. #[derive(Debug, Clone, Default, Hash, Eq, PartialEq)] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[cfg_attr(any(test, feature = "arbitrary"), derive(arbitrary::Arbitrary))] pub struct HardForkConfiguration { /// Canyon hardfork activation time pub canyon_time: Option, @@ -39,6 +41,7 @@ pub struct HardForkConfiguration { /// A chain configuration. #[derive(Debug, Clone, Default, Hash, Eq, PartialEq)] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[cfg_attr(any(test, feature = "arbitrary"), derive(arbitrary::Arbitrary))] pub struct ChainConfig { /// Chain name (e.g. "Base") #[cfg_attr(feature = "serde", serde(rename = "Name"))] diff --git a/crates/primitives/src/superchain.rs b/crates/primitives/src/superchain.rs index bf17987..4762a14 100644 --- a/crates/primitives/src/superchain.rs +++ b/crates/primitives/src/superchain.rs @@ -9,6 +9,7 @@ use crate::HardForkConfiguration; /// A superchain configuration. #[derive(Debug, Clone, Default, Hash, Eq, PartialEq)] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[cfg_attr(any(test, feature = "arbitrary"), derive(arbitrary::Arbitrary))] pub struct Superchain { /// Superchain identifier, without capitalization or display changes. pub name: String, @@ -21,6 +22,7 @@ pub struct Superchain { /// A superchain configuration file format #[derive(Debug, Clone, Default, Hash, Eq, PartialEq)] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[cfg_attr(any(test, feature = "arbitrary"), derive(arbitrary::Arbitrary))] pub struct SuperchainConfig { /// Superchain name (e.g. "Mainnet") #[cfg_attr(feature = "serde", serde(rename = "Name"))] @@ -42,6 +44,7 @@ pub struct SuperchainConfig { /// Superchain L1 anchor information #[derive(Debug, Clone, Default, Hash, Eq, PartialEq)] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[cfg_attr(any(test, feature = "arbitrary"), derive(arbitrary::Arbitrary))] pub struct SuperchainL1Info { /// L1 chain ID #[cfg_attr(feature = "serde", serde(rename = "ChainID"))] @@ -60,6 +63,7 @@ pub struct SuperchainL1Info { feature = "serde", derive(serde_repr::Serialize_repr, serde_repr::Deserialize_repr) )] +#[cfg_attr(any(test, feature = "arbitrary"), derive(arbitrary::Arbitrary))] #[repr(u8)] pub enum SuperchainLevel { /// Frontier chains are chains with customizations beyond the