Files
reth/crates/optimism/chainspec/src/dev.rs
Emilia Hane c0a30f051e feat(op): isthmus genesis header (#14560)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-18 15:29:59 +00:00

39 lines
1.4 KiB
Rust

//! Chain specification in dev mode for custom chain.
use alloc::sync::Arc;
use alloy_chains::Chain;
use alloy_consensus::constants::DEV_GENESIS_HASH;
use alloy_primitives::U256;
use reth_chainspec::{BaseFeeParams, BaseFeeParamsKind, ChainSpec};
use reth_optimism_forks::DEV_HARDFORKS;
use reth_primitives_traits::SealedHeader;
use crate::{make_op_genesis_header, LazyLock, OpChainSpec};
/// OP dev testnet specification
///
/// Includes 20 prefunded accounts with `10_000` ETH each derived from mnemonic "test test test test
/// test test test test test test test junk".
pub static OP_DEV: LazyLock<Arc<OpChainSpec>> = LazyLock::new(|| {
let genesis = serde_json::from_str(include_str!("../res/genesis/dev.json"))
.expect("Can't deserialize Dev testnet genesis json");
let hardforks = DEV_HARDFORKS.clone();
OpChainSpec {
inner: ChainSpec {
chain: Chain::dev(),
genesis_header: SealedHeader::new(
make_op_genesis_header(&genesis, &hardforks),
DEV_GENESIS_HASH,
),
genesis,
paris_block_and_final_difficulty: Some((0, U256::from(0))),
hardforks,
base_fee_params: BaseFeeParamsKind::Constant(BaseFeeParams::ethereum()),
deposit_contract: None, // TODO: do we even have?
..Default::default()
},
}
.into()
});