diff --git a/Cargo.lock b/Cargo.lock index 1f645243b1..55206b1d3c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -111,7 +111,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5674914c2cfdb866c21cb0c09d82374ee39a1395cf512e7515f4c014083b3fff" dependencies = [ "alloy-primitives", + "arbitrary", "num_enum", + "proptest", "serde", "strum", ] @@ -4455,6 +4457,7 @@ dependencies = [ name = "kona-genesis" version = "0.3.0" dependencies = [ + "alloy-chains", "alloy-consensus", "alloy-eips", "alloy-hardforks", @@ -4633,6 +4636,7 @@ dependencies = [ name = "kona-node-service" version = "0.1.0" dependencies = [ + "alloy-chains", "alloy-eips", "alloy-primitives", "alloy-provider", @@ -4686,6 +4690,7 @@ dependencies = [ name = "kona-p2p" version = "0.1.0" dependencies = [ + "alloy-chains", "alloy-consensus", "alloy-eips", "alloy-primitives", diff --git a/bin/host/src/interop/cfg.rs b/bin/host/src/interop/cfg.rs index 7b39d87041..435314c576 100644 --- a/bin/host/src/interop/cfg.rs +++ b/bin/host/src/interop/cfg.rs @@ -223,7 +223,7 @@ impl InteropHost { // Deserialize the config and return it. let cfg: RollupConfig = serde_json::from_str(&ser_config)?; - acc.insert(cfg.l2_chain_id, cfg); + acc.insert(cfg.l2_chain_id.id(), cfg); Ok(acc) }) } diff --git a/bin/node/src/commands/node.rs b/bin/node/src/commands/node.rs index 811c424d01..3f4f25fc97 100644 --- a/bin/node/src/commands/node.rs +++ b/bin/node/src/commands/node.rs @@ -218,7 +218,7 @@ impl NodeCommand { info!( target: "rollup_node", - chain_id = cfg.l2_chain_id, + chain_id = cfg.l2_chain_id.id(), "Starting rollup node services" ); for hf in cfg.hardforks.to_string().lines() { diff --git a/bin/supervisor/src/flags/supervisor.rs b/bin/supervisor/src/flags/supervisor.rs index cc48636434..e535ef1faf 100644 --- a/bin/supervisor/src/flags/supervisor.rs +++ b/bin/supervisor/src/flags/supervisor.rs @@ -135,7 +135,7 @@ impl SupervisorArgs { rollup_config_set .add_from_rollup_config( - chain_id, + chain_id.id(), rollup_config, BlockInfo::new( l1_genesis.header.hash, diff --git a/crates/node/p2p/Cargo.toml b/crates/node/p2p/Cargo.toml index 1ec401f7a7..b0d47d25b6 100644 --- a/crates/node/p2p/Cargo.toml +++ b/crates/node/p2p/Cargo.toml @@ -62,6 +62,7 @@ kona-cli.workspace = true multihash.workspace = true alloy-eips.workspace = true serde_json.workspace = true +alloy-chains.workspace = true rand = { workspace = true, features = ["thread_rng"] } arbitrary = { workspace = true, features = ["derive"] } diff --git a/crates/node/p2p/src/gossip/behaviour.rs b/crates/node/p2p/src/gossip/behaviour.rs index 14b5a3f5f9..a145096ede 100644 --- a/crates/node/p2p/src/gossip/behaviour.rs +++ b/crates/node/p2p/src/gossip/behaviour.rs @@ -92,6 +92,7 @@ impl Behaviour { mod tests { use super::*; use crate::gossip::{config, handler::BlockHandler}; + use alloy_chains::Chain; use alloy_primitives::Address; use kona_genesis::RollupConfig; use libp2p::gossipsub::{IdentTopic, TopicHash}; @@ -118,8 +119,10 @@ mod tests { let key = libp2p::identity::Keypair::generate_secp256k1(); let cfg = config::default_config(); let (_, recv) = tokio::sync::watch::channel(Address::default()); - let block_handler = - BlockHandler::new(RollupConfig { l2_chain_id: 10, ..Default::default() }, recv); + let block_handler = BlockHandler::new( + RollupConfig { l2_chain_id: Chain::optimism_mainnet(), ..Default::default() }, + recv, + ); let handlers: Vec> = vec![Box::new(block_handler)]; let behaviour = Behaviour::new(key.public(), cfg, &handlers).unwrap(); let mut topics = behaviour.gossipsub.topics().cloned().collect::>(); diff --git a/crates/node/p2p/src/gossip/block_validity.rs b/crates/node/p2p/src/gossip/block_validity.rs index 8735f45a52..b395433b33 100644 --- a/crates/node/p2p/src/gossip/block_validity.rs +++ b/crates/node/p2p/src/gossip/block_validity.rs @@ -170,7 +170,7 @@ impl BlockHandler { } // CHECK: The signature is valid. - let msg = envelope.payload_hash.signature_message(self.rollup_config.l2_chain_id); + let msg = envelope.payload_hash.signature_message(self.rollup_config.l2_chain_id.id()); let block_signer = *self.signer_recv.borrow(); // The block has a valid signature. @@ -256,7 +256,9 @@ impl BlockHandler { #[cfg(test)] pub(crate) mod tests { + use super::*; + use alloy_chains::Chain; use alloy_consensus::{Block, EMPTY_OMMER_ROOT_HASH}; use alloy_eips::{eip2718::Encodable2718, eip4895::Withdrawal}; use alloy_primitives::{Address, B256, Bytes, Signature}; @@ -377,7 +379,7 @@ pub(crate) mod tests { let signer = envelope.signature.recover_address_from_prehash(&msg).unwrap(); let (_, unsafe_signer) = tokio::sync::watch::channel(signer); let mut handler = BlockHandler::new( - RollupConfig { l2_chain_id: 10, ..Default::default() }, + RollupConfig { l2_chain_id: Chain::optimism_mainnet(), ..Default::default() }, unsafe_signer, ); @@ -405,7 +407,7 @@ pub(crate) mod tests { let signer = envelope.signature.recover_address_from_prehash(&msg).unwrap(); let (_, unsafe_signer) = tokio::sync::watch::channel(signer); let mut handler = BlockHandler::new( - RollupConfig { l2_chain_id: 10, ..Default::default() }, + RollupConfig { l2_chain_id: Chain::optimism_mainnet(), ..Default::default() }, unsafe_signer, ); @@ -433,7 +435,7 @@ pub(crate) mod tests { let signer = envelope.signature.recover_address_from_prehash(&msg).unwrap(); let (_, unsafe_signer) = tokio::sync::watch::channel(signer); let mut handler = BlockHandler::new( - RollupConfig { l2_chain_id: 10, ..Default::default() }, + RollupConfig { l2_chain_id: Chain::optimism_mainnet(), ..Default::default() }, unsafe_signer, ); @@ -461,7 +463,7 @@ pub(crate) mod tests { let signer = envelope.signature.recover_address_from_prehash(&msg).unwrap(); let (_, unsafe_signer) = tokio::sync::watch::channel(signer); let mut handler = BlockHandler::new( - RollupConfig { l2_chain_id: 10, ..Default::default() }, + RollupConfig { l2_chain_id: Chain::optimism_mainnet(), ..Default::default() }, unsafe_signer, ); @@ -486,7 +488,7 @@ pub(crate) mod tests { let signer = envelope.signature.recover_address_from_prehash(&msg).unwrap(); let (_, unsafe_signer) = tokio::sync::watch::channel(signer); let mut handler = BlockHandler::new( - RollupConfig { l2_chain_id: 10, ..Default::default() }, + RollupConfig { l2_chain_id: Chain::optimism_mainnet(), ..Default::default() }, unsafe_signer, ); @@ -514,7 +516,7 @@ pub(crate) mod tests { let signer = envelope.signature.recover_address_from_prehash(&msg).unwrap(); let (_, unsafe_signer) = tokio::sync::watch::channel(signer); let mut handler = BlockHandler::new( - RollupConfig { l2_chain_id: 10, ..Default::default() }, + RollupConfig { l2_chain_id: Chain::optimism_mainnet(), ..Default::default() }, unsafe_signer, ); @@ -568,7 +570,7 @@ pub(crate) mod tests { let signer = envelope.signature.recover_address_from_prehash(&msg).unwrap(); let (_, unsafe_signer) = tokio::sync::watch::channel(signer); let mut handler = BlockHandler::new( - RollupConfig { l2_chain_id: 10, ..Default::default() }, + RollupConfig { l2_chain_id: Chain::optimism_mainnet(), ..Default::default() }, unsafe_signer, ); @@ -596,7 +598,7 @@ pub(crate) mod tests { let (_, unsafe_signer) = tokio::sync::watch::channel(Address::default()); let mut handler = BlockHandler::new( - RollupConfig { l2_chain_id: 10, ..Default::default() }, + RollupConfig { l2_chain_id: Chain::optimism_mainnet(), ..Default::default() }, unsafe_signer, ); @@ -624,7 +626,7 @@ pub(crate) mod tests { let signer = envelope.signature.recover_address_from_prehash(&msg).unwrap(); let (_, unsafe_signer) = tokio::sync::watch::channel(signer); let mut handler = BlockHandler::new( - RollupConfig { l2_chain_id: 10, ..Default::default() }, + RollupConfig { l2_chain_id: Chain::optimism_mainnet(), ..Default::default() }, unsafe_signer, ); @@ -646,7 +648,7 @@ pub(crate) mod tests { let signer = envelope.signature.recover_address_from_prehash(&msg).unwrap(); let (_, unsafe_signer) = tokio::sync::watch::channel(signer); let mut handler = BlockHandler::new( - RollupConfig { l2_chain_id: 10, ..Default::default() }, + RollupConfig { l2_chain_id: Chain::optimism_mainnet(), ..Default::default() }, unsafe_signer, ); @@ -671,7 +673,7 @@ pub(crate) mod tests { let signer = envelope.signature.recover_address_from_prehash(&msg).unwrap(); let (_, unsafe_signer) = tokio::sync::watch::channel(signer); let mut handler = BlockHandler::new( - RollupConfig { l2_chain_id: 10, ..Default::default() }, + RollupConfig { l2_chain_id: Chain::optimism_mainnet(), ..Default::default() }, unsafe_signer, ); @@ -701,7 +703,7 @@ pub(crate) mod tests { let signer = envelope.signature.recover_address_from_prehash(&msg).unwrap(); let (_, unsafe_signer) = tokio::sync::watch::channel(signer); let mut handler = BlockHandler::new( - RollupConfig { l2_chain_id: 10, ..Default::default() }, + RollupConfig { l2_chain_id: Chain::optimism_mainnet(), ..Default::default() }, unsafe_signer, ); @@ -731,7 +733,7 @@ pub(crate) mod tests { let signer = envelope.signature.recover_address_from_prehash(&msg).unwrap(); let (_, unsafe_signer) = tokio::sync::watch::channel(signer); let mut handler = BlockHandler::new( - RollupConfig { l2_chain_id: 10, ..Default::default() }, + RollupConfig { l2_chain_id: Chain::optimism_mainnet(), ..Default::default() }, unsafe_signer, ); @@ -763,7 +765,7 @@ pub(crate) mod tests { let signer = envelope.signature.recover_address_from_prehash(&msg).unwrap(); let (_, unsafe_signer) = tokio::sync::watch::channel(signer); let mut handler = BlockHandler::new( - RollupConfig { l2_chain_id: 10, ..Default::default() }, + RollupConfig { l2_chain_id: Chain::optimism_mainnet(), ..Default::default() }, unsafe_signer, ); @@ -794,7 +796,7 @@ pub(crate) mod tests { let signer = envelope.signature.recover_address_from_prehash(&msg).unwrap(); let (_, unsafe_signer) = tokio::sync::watch::channel(signer); let mut handler = BlockHandler::new( - RollupConfig { l2_chain_id: 10, ..Default::default() }, + RollupConfig { l2_chain_id: Chain::optimism_mainnet(), ..Default::default() }, unsafe_signer, ); @@ -842,7 +844,7 @@ pub(crate) mod tests { let signer = envelope.signature.recover_address_from_prehash(&msg).unwrap(); let (_, unsafe_signer) = tokio::sync::watch::channel(signer); let mut handler = BlockHandler::new( - RollupConfig { l2_chain_id: 10, ..Default::default() }, + RollupConfig { l2_chain_id: Chain::optimism_mainnet(), ..Default::default() }, unsafe_signer, ); diff --git a/crates/node/p2p/src/gossip/driver.rs b/crates/node/p2p/src/gossip/driver.rs index 6c6a50246b..eb4972c565 100644 --- a/crates/node/p2p/src/gossip/driver.rs +++ b/crates/node/p2p/src/gossip/driver.rs @@ -229,9 +229,9 @@ where /// Dials the given [`Enr`]. pub fn dial(&mut self, enr: Enr) { - let validation = EnrValidation::validate(&enr, self.handler.rollup_config.l2_chain_id); + let validation = EnrValidation::validate(&enr, self.handler.rollup_config.l2_chain_id.id()); if validation.is_invalid() { - trace!(target: "gossip", "Invalid OP Stack ENR for chain id {}: {}", self.handler.rollup_config.l2_chain_id, validation); + trace!(target: "gossip", "Invalid OP Stack ENR for chain id {}: {}", self.handler.rollup_config.l2_chain_id.id(), validation); return; } let Some(multiaddr) = enr_to_multiaddr(&enr) else { diff --git a/crates/node/p2p/src/gossip/handler.rs b/crates/node/p2p/src/gossip/handler.rs index 35ea0df625..82e27c551c 100644 --- a/crates/node/p2p/src/gossip/handler.rs +++ b/crates/node/p2p/src/gossip/handler.rs @@ -90,7 +90,7 @@ impl BlockHandler { /// /// Requires the chain ID and a receiver channel for the unsafe block signer. pub fn new(rollup_config: RollupConfig, signer_recv: Receiver
) -> Self { - let chain_id = rollup_config.l2_chain_id; + let chain_id = rollup_config.l2_chain_id.id(); Self { rollup_config, signer_recv, @@ -137,6 +137,7 @@ impl BlockHandler { #[cfg(test)] mod tests { + use alloy_chains::Chain; use alloy_rpc_types_engine::{ExecutionPayloadV2, ExecutionPayloadV3}; use op_alloy_rpc_types_engine::{OpExecutionPayload, OpExecutionPayloadV4, PayloadHash}; @@ -163,7 +164,7 @@ mod tests { let signer = envelope.signature.recover_address_from_prehash(&msg).unwrap(); let (_, unsafe_signer) = tokio::sync::watch::channel(signer); let mut handler = BlockHandler::new( - RollupConfig { l2_chain_id: 10, ..Default::default() }, + RollupConfig { l2_chain_id: Chain::optimism_mainnet(), ..Default::default() }, unsafe_signer, ); @@ -208,7 +209,7 @@ mod tests { let signer = envelope.signature.recover_address_from_prehash(&msg).unwrap(); let (_, unsafe_signer) = tokio::sync::watch::channel(signer); let mut handler = BlockHandler::new( - RollupConfig { l2_chain_id: 10, ..Default::default() }, + RollupConfig { l2_chain_id: Chain::optimism_mainnet(), ..Default::default() }, unsafe_signer, ); @@ -242,7 +243,7 @@ mod tests { let signer = envelope.signature.recover_address_from_prehash(&msg).unwrap(); let (_, unsafe_signer) = tokio::sync::watch::channel(signer); let mut handler = BlockHandler::new( - RollupConfig { l2_chain_id: 10, ..Default::default() }, + RollupConfig { l2_chain_id: Chain::optimism_mainnet(), ..Default::default() }, unsafe_signer, ); @@ -281,7 +282,7 @@ mod tests { let signer = envelope.signature.recover_address_from_prehash(&msg).unwrap(); let (_, unsafe_signer) = tokio::sync::watch::channel(signer); let mut handler = BlockHandler::new( - RollupConfig { l2_chain_id: 10, ..Default::default() }, + RollupConfig { l2_chain_id: Chain::optimism_mainnet(), ..Default::default() }, unsafe_signer, ); @@ -320,7 +321,7 @@ mod tests { let signer = envelope.signature.recover_address_from_prehash(&msg).unwrap(); let (_, unsafe_signer) = tokio::sync::watch::channel(signer); let mut handler = BlockHandler::new( - RollupConfig { l2_chain_id: 10, ..Default::default() }, + RollupConfig { l2_chain_id: Chain::optimism_mainnet(), ..Default::default() }, unsafe_signer, ); @@ -363,7 +364,7 @@ mod tests { let signer = envelope.signature.recover_address_from_prehash(&msg).unwrap(); let (_, unsafe_signer) = tokio::sync::watch::channel(signer); let mut handler = BlockHandler::new( - RollupConfig { l2_chain_id: 10, ..Default::default() }, + RollupConfig { l2_chain_id: Chain::optimism_mainnet(), ..Default::default() }, unsafe_signer, ); @@ -405,7 +406,7 @@ mod tests { let signer = envelope.signature.recover_address_from_prehash(&msg).unwrap(); let (_, unsafe_signer) = tokio::sync::watch::channel(signer); let mut handler = BlockHandler::new( - RollupConfig { l2_chain_id: 10, ..Default::default() }, + RollupConfig { l2_chain_id: Chain::optimism_mainnet(), ..Default::default() }, unsafe_signer, ); @@ -451,7 +452,7 @@ mod tests { let signer = envelope.signature.recover_address_from_prehash(&msg).unwrap(); let (_, unsafe_signer) = tokio::sync::watch::channel(signer); let mut handler = BlockHandler::new( - RollupConfig { l2_chain_id: 10, ..Default::default() }, + RollupConfig { l2_chain_id: Chain::optimism_mainnet(), ..Default::default() }, unsafe_signer, ); diff --git a/crates/node/p2p/tests/common/mod.rs b/crates/node/p2p/tests/common/mod.rs index f06513e362..2c0acc068b 100644 --- a/crates/node/p2p/tests/common/mod.rs +++ b/crates/node/p2p/tests/common/mod.rs @@ -1,5 +1,6 @@ //! Shared code for integration tests. +use alloy_chains::Chain; use alloy_primitives::Address; use kona_genesis::RollupConfig; use kona_p2p::{Behaviour, BlockHandler, ConnectionGater, GaterConfig, GossipDriver}; @@ -22,7 +23,7 @@ pub(crate) fn gossip_driver(port: u16) -> GossipDriver { let unsafe_block_signer = Address::default(); let (_, unsafe_block_signer_recv) = tokio::sync::watch::channel(unsafe_block_signer); let handler = BlockHandler::new( - RollupConfig { l2_chain_id: 10, ..Default::default() }, + RollupConfig { l2_chain_id: Chain::optimism_mainnet(), ..Default::default() }, unsafe_block_signer_recv, ); let behaviour = Behaviour::new(keypair.public(), config, &[Box::new(handler.clone())]) diff --git a/crates/node/service/Cargo.toml b/crates/node/service/Cargo.toml index 75c0d5e20d..c48cdc7a82 100644 --- a/crates/node/service/Cargo.toml +++ b/crates/node/service/Cargo.toml @@ -26,6 +26,7 @@ kona-peers.workspace = true kona-macros.workspace = true # alloy +alloy-chains.workspace = true alloy-signer.workspace = true alloy-signer-local.workspace = true alloy-primitives.workspace = true diff --git a/crates/node/service/src/actors/network/builder.rs b/crates/node/service/src/actors/network/builder.rs index e88b1ac4ca..481120ee90 100644 --- a/crates/node/service/src/actors/network/builder.rs +++ b/crates/node/service/src/actors/network/builder.rs @@ -61,7 +61,7 @@ impl NetworkBuilder { Self { discovery: Discv5Builder::new( discovery_address, - rollup_config.l2_chain_id, + rollup_config.l2_chain_id.id(), discovery_config, ), gossip: GossipDriverBuilder::new( @@ -159,6 +159,7 @@ impl NetworkBuilder { #[cfg(test)] mod tests { use super::*; + use alloy_chains::Chain; use discv5::{ConfigBuilder, ListenConfig, enr::CombinedKey}; use libp2p::gossipsub::IdentTopic; use std::net::{IpAddr, Ipv4Addr, SocketAddr}; @@ -216,7 +217,10 @@ mod tests { gossip_addr.push(libp2p::multiaddr::Protocol::Tcp(gossip.port())); let driver = network_builder(NetworkBuilderParams { - rollup_config: RollupConfig { l2_chain_id: 10, ..Default::default() }, + rollup_config: RollupConfig { + l2_chain_id: Chain::optimism_mainnet(), + ..Default::default() + }, signer, }) .with_gossip_address(gossip_addr.clone()) @@ -234,6 +238,7 @@ mod tests { // Block Handler Assertions assert_eq!(driver.gossip.handler.rollup_config.l2_chain_id, id); let v1 = IdentTopic::new(format!("/optimism/{}/0/blocks", id)); + println!("{:?}", driver.gossip.handler.blocks_v1_topic); assert_eq!(driver.gossip.handler.blocks_v1_topic.hash(), v1.hash()); let v2 = IdentTopic::new(format!("/optimism/{}/1/blocks", id)); assert_eq!(driver.gossip.handler.blocks_v2_topic.hash(), v2.hash()); diff --git a/crates/proof/executor/src/builder/env.rs b/crates/proof/executor/src/builder/env.rs index ace504d3b9..6842daaecc 100644 --- a/crates/proof/executor/src/builder/env.rs +++ b/crates/proof/executor/src/builder/env.rs @@ -41,7 +41,7 @@ where /// Returns the active [CfgEnv] for the executor. pub(crate) fn evm_cfg_env(&self, timestamp: u64) -> CfgEnv { CfgEnv::new() - .with_chain_id(self.config.l2_chain_id) + .with_chain_id(self.config.l2_chain_id.id()) .with_spec(self.config.spec_id(timestamp)) } diff --git a/crates/protocol/genesis/Cargo.toml b/crates/protocol/genesis/Cargo.toml index d554b99aaa..17e6e827d3 100644 --- a/crates/protocol/genesis/Cargo.toml +++ b/crates/protocol/genesis/Cargo.toml @@ -22,6 +22,7 @@ alloy-consensus.workspace = true alloy-eips.workspace = true alloy-hardforks.workspace = true alloy-op-hardforks.workspace = true +alloy-chains.workspace = true # Misc thiserror.workspace = true @@ -48,6 +49,7 @@ alloy-primitives = { workspace = true, features = ["rand", "arbitrary"] } default = [] revm = [ "dep:op-revm" ] std = [ + "alloy-chains/std", "alloy-consensus/std", "alloy-eips/std", "alloy-primitives/std", @@ -58,6 +60,7 @@ std = [ "thiserror/std", ] arbitrary = [ + "alloy-chains/arbitrary", "alloy-consensus/arbitrary", "alloy-eips/arbitrary", "alloy-primitives/arbitrary", @@ -67,6 +70,7 @@ arbitrary = [ "std", ] serde = [ + "alloy-chains/serde", "alloy-consensus/serde", "alloy-eips/serde", "alloy-primitives/serde", diff --git a/crates/protocol/genesis/src/chain/config.rs b/crates/protocol/genesis/src/chain/config.rs index 1424468218..9c99d6418a 100644 --- a/crates/protocol/genesis/src/chain/config.rs +++ b/crates/protocol/genesis/src/chain/config.rs @@ -1,6 +1,7 @@ //! Contains the chain config type. use alloc::string::String; +use alloy_chains::Chain; use alloy_eips::eip1559::BaseFeeParams; use alloy_primitives::Address; @@ -138,7 +139,7 @@ impl ChainConfig { RollupConfig { genesis: self.genesis, l1_chain_id: self.l1_chain_id, - l2_chain_id: self.chain_id, + l2_chain_id: Chain::from(self.chain_id), block_time: self.block_time, seq_window_size: self.seq_window_size, max_sequencer_drift: self.max_sequencer_drift, diff --git a/crates/protocol/genesis/src/rollup.rs b/crates/protocol/genesis/src/rollup.rs index 69d6185920..7546127451 100644 --- a/crates/protocol/genesis/src/rollup.rs +++ b/crates/protocol/genesis/src/rollup.rs @@ -1,6 +1,7 @@ //! Rollup Config Types use crate::{AltDAConfig, BaseFeeConfig, ChainGenesis, HardForkConfig, OP_MAINNET_BASE_FEE_CONFIG}; +use alloy_chains::Chain; use alloy_hardforks::{EthereumHardfork, EthereumHardforks, ForkCondition}; use alloy_op_hardforks::{OpHardfork, OpHardforks}; use alloy_primitives::Address; @@ -57,7 +58,7 @@ pub struct RollupConfig { /// The L1 chain ID pub l1_chain_id: u64, /// The L2 chain ID - pub l2_chain_id: u64, + pub l2_chain_id: Chain, /// Hardfork timestamps. #[cfg_attr(feature = "serde", serde(flatten))] pub hardforks: HardForkConfig, @@ -142,7 +143,7 @@ impl Default for RollupConfig { channel_timeout: 0, granite_channel_timeout: GRANITE_CHANNEL_TIMEOUT, l1_chain_id: 0, - l2_chain_id: 0, + l2_chain_id: Chain::from_id(0), hardforks: HardForkConfig::default(), batch_inbox_address: Address::ZERO, deposit_contract_address: Address::ZERO, @@ -802,7 +803,7 @@ mod tests { channel_timeout: 300, granite_channel_timeout: GRANITE_CHANNEL_TIMEOUT, l1_chain_id: 3151908, - l2_chain_id: 1337, + l2_chain_id: Chain::from_id(1337), hardforks: HardForkConfig { regolith_time: Some(0), canyon_time: Some(0), diff --git a/crates/protocol/protocol/src/batch/core.rs b/crates/protocol/protocol/src/batch/core.rs index 7874b1eb4a..4361137958 100644 --- a/crates/protocol/protocol/src/batch/core.rs +++ b/crates/protocol/protocol/src/batch/core.rs @@ -54,7 +54,7 @@ impl Batch { BatchType::Span => { let mut raw_span_batch = RawSpanBatch::decode(r)?; let span_batch = raw_span_batch - .derive(cfg.block_time, cfg.genesis.l2_time, cfg.l2_chain_id) + .derive(cfg.block_time, cfg.genesis.l2_time, cfg.l2_chain_id.id()) .map_err(BatchDecodingError::SpanBatchError)?; Ok(Self::Span(span_batch)) } diff --git a/crates/protocol/registry/src/test_utils/base_mainnet.rs b/crates/protocol/registry/src/test_utils/base_mainnet.rs index 691f428fea..8f9b7f7dc5 100644 --- a/crates/protocol/registry/src/test_utils/base_mainnet.rs +++ b/crates/protocol/registry/src/test_utils/base_mainnet.rs @@ -1,5 +1,6 @@ //! Base Mainnet Rollup Config. +use alloy_chains::Chain; use alloy_eips::BlockNumHash; use alloy_op_hardforks::{ BASE_MAINNET_CANYON_TIMESTAMP, BASE_MAINNET_ECOTONE_TIMESTAMP, BASE_MAINNET_FJORD_TIMESTAMP, @@ -43,7 +44,7 @@ pub const BASE_MAINNET_CONFIG: RollupConfig = RollupConfig { channel_timeout: 300, granite_channel_timeout: 50, l1_chain_id: 1, - l2_chain_id: 8453, + l2_chain_id: Chain::base_mainnet(), hardforks: HardForkConfig { regolith_time: None, canyon_time: Some(BASE_MAINNET_CANYON_TIMESTAMP), diff --git a/crates/protocol/registry/src/test_utils/base_sepolia.rs b/crates/protocol/registry/src/test_utils/base_sepolia.rs index 3c367c84d1..ae01fde068 100644 --- a/crates/protocol/registry/src/test_utils/base_sepolia.rs +++ b/crates/protocol/registry/src/test_utils/base_sepolia.rs @@ -1,5 +1,6 @@ //! Base Sepolia Rollup Config. +use alloy_chains::Chain; use alloy_eips::BlockNumHash; use alloy_op_hardforks::{ BASE_SEPOLIA_CANYON_TIMESTAMP, BASE_SEPOLIA_ECOTONE_TIMESTAMP, BASE_SEPOLIA_FJORD_TIMESTAMP, @@ -43,7 +44,7 @@ pub const BASE_SEPOLIA_CONFIG: RollupConfig = RollupConfig { channel_timeout: 300, granite_channel_timeout: 50, l1_chain_id: 11155111, - l2_chain_id: 84532, + l2_chain_id: Chain::base_sepolia(), chain_op_config: BASE_SEPOLIA_BASE_FEE_CONFIG, alt_da_config: None, hardforks: HardForkConfig { diff --git a/crates/protocol/registry/src/test_utils/op_mainnet.rs b/crates/protocol/registry/src/test_utils/op_mainnet.rs index 71495d3825..5797fff622 100644 --- a/crates/protocol/registry/src/test_utils/op_mainnet.rs +++ b/crates/protocol/registry/src/test_utils/op_mainnet.rs @@ -1,5 +1,6 @@ //! OP Mainnet Rollup Config. +use alloy_chains::Chain; use alloy_eips::BlockNumHash; use alloy_op_hardforks::{ OP_MAINNET_CANYON_TIMESTAMP, OP_MAINNET_ECOTONE_TIMESTAMP, OP_MAINNET_FJORD_TIMESTAMP, @@ -42,7 +43,7 @@ pub const OP_MAINNET_CONFIG: RollupConfig = RollupConfig { channel_timeout: 300_u64, granite_channel_timeout: 50, l1_chain_id: 1_u64, - l2_chain_id: 10_u64, + l2_chain_id: Chain::optimism_mainnet(), chain_op_config: OP_MAINNET_BASE_FEE_CONFIG, alt_da_config: None, hardforks: HardForkConfig { diff --git a/crates/protocol/registry/src/test_utils/op_sepolia.rs b/crates/protocol/registry/src/test_utils/op_sepolia.rs index f2647ee2b3..fb17de4abf 100644 --- a/crates/protocol/registry/src/test_utils/op_sepolia.rs +++ b/crates/protocol/registry/src/test_utils/op_sepolia.rs @@ -1,5 +1,6 @@ //! OP Sepolia Rollup Config. +use alloy_chains::Chain; use alloy_eips::BlockNumHash; use alloy_op_hardforks::{ OP_SEPOLIA_CANYON_TIMESTAMP, OP_SEPOLIA_ECOTONE_TIMESTAMP, OP_SEPOLIA_FJORD_TIMESTAMP, @@ -42,7 +43,7 @@ pub const OP_SEPOLIA_CONFIG: RollupConfig = RollupConfig { channel_timeout: 300, granite_channel_timeout: 50, l1_chain_id: 11155111, - l2_chain_id: 11155420, + l2_chain_id: Chain::optimism_sepolia(), chain_op_config: OP_SEPOLIA_BASE_FEE_CONFIG, alt_da_config: None, hardforks: HardForkConfig {