diff --git a/Cargo.lock b/Cargo.lock index 99c736fc96d..aed9ab3ecc2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -112,9 +112,9 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645b546d63ffd10bb90ec85bbd1365e99cf613273dd10968dbaf0c26264eca4f" +checksum = "6bf3c28aa7a5765042739f964e335408e434819b96fdda97f12eb1beb46dead0" dependencies = [ "alloy-eips", "alloy-primitives", @@ -132,15 +132,16 @@ dependencies = [ "rand 0.8.5", "secp256k1 0.30.0", "serde", + "serde_json", "serde_with", "thiserror 2.0.16", ] [[package]] name = "alloy-consensus-any" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5b549704e83c09f66a199508b9d34ee7d0f964e6d49e7913e5e8a25a64de341" +checksum = "bbfda7b14f1664b6c23d7f38bca2b73c460f2497cf93dd1589753890cb0da158" dependencies = [ "alloy-consensus", "alloy-eips", @@ -153,9 +154,9 @@ dependencies = [ [[package]] name = "alloy-contract" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8f7ab0f7ea0b4844dd2039cfa0f0b26232c51b31aa74a1c444361e1ca043404" +checksum = "6cb079f711129dd32d6c3a0581013c927eb30d32e929d606cd8c0fe1022ec041" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -236,9 +237,9 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b26a4df894e5665f0c5c9beeedd6db6c2aa3642686a8c37c350df50d1271b611" +checksum = "72e57928382e5c7890ef90ded9f814d85a1c3db79ceb4a3c5079f1be4cadeeb4" dependencies = [ "alloy-eip2124", "alloy-eip2930", @@ -281,9 +282,9 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6678a61059c150bb94139ba726f86f6f7b31d53c6b5e251060f94dba3d17d8eb" +checksum = "ca3419410cdd67fb7d5d016d9d16cf3ea8cc365fcbcf15d086afdd02eaef17e4" dependencies = [ "alloy-eips", "alloy-primitives", @@ -295,9 +296,9 @@ dependencies = [ [[package]] name = "alloy-hardforks" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d66cfdf265bf52c0c4a952960c854c3683c71ff2fc02c9b8c317c691fd3bc28" +checksum = "889eb3949b58368a09d4f16931c660275ef5fb08e5fbd4a96573b19c7085c41f" dependencies = [ "alloy-chains", "alloy-eip2124", @@ -321,9 +322,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658d9d65768ba57c1aa40bb47e4ecc54db744fa9f843baa339359ed9c6476247" +checksum = "17248e392e79658b1faca7946bfe59825b891c3f6e382044499d99c57ba36a89" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -336,9 +337,9 @@ dependencies = [ [[package]] name = "alloy-network" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "785b8736204e6a8dcde9b491aa7eac333b5e14f1e57bd5f81888b8a251cfbff8" +checksum = "fe43d21867dc0dcf71aacffc891ae75fd587154f0d907ceb7340fc5f0271276d" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -362,9 +363,9 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e17985b9e55fcd27d751b5824ac2bfebf64a4823b43e02db953b5c57229f282" +checksum = "67f3b37447082a47289f26e26c0686ac6407710fdd4e818043d9b6d37f2ab55c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -392,12 +393,13 @@ dependencies = [ [[package]] name = "alloy-op-hardforks" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8a2823360cd87c008df4b8b78794924948c3508e745dfed7d2b685774cb473e" +checksum = "599c1d7dfbccb66603cb93fde00980d12848d32fe5e814f50562104a92df6487" dependencies = [ "alloy-chains", "alloy-hardforks", + "alloy-primitives", "auto_impl", "serde", ] @@ -434,9 +436,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43c041912a8ccafeb36d685569ebfa852b2bb07d8576d14804a31cb117a02338" +checksum = "1b6377212f3e659173b939e8d3ec3292e246cb532eafd5a4f91e57fdb104b43c" dependencies = [ "alloy-chains", "alloy-consensus", @@ -479,9 +481,9 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6393c95e4e46b18d5e19247c357e2e0adb9c7f42951f9276b0b9f151549a9fbe" +checksum = "d27b4f1ac3a0388065f933f957f80e03d06c47ce6a4389ac8cb9f72c30d8d823" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -523,9 +525,9 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2af7e7532b1c86b7c0d6b5bc0ebdf8d45ce0750d9383a622ea546b42f8d5403" +checksum = "3b80c8cafc1735ce6776bccc25f0c3b7583074897b8ec4f3a129e4d25e09d65c" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -549,9 +551,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c94b05986216575532c618a05d9fb590e1802f224003df8018f65420929ec08" +checksum = "3bc0818982bb868acc877f2623ad1fc8f2a4b244074919212bfe476fcadca6d3" dependencies = [ "alloy-primitives", "alloy-rpc-types-engine", @@ -562,9 +564,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-admin" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a5f95577dd61dad55c2a2d3e1bd9dd6a0859c68fa0988327631f48f5c8de56a" +checksum = "9359aabfc2ae906ea9f904c6cf6a63d12fc6510e655a64c38aa601a739602e84" dependencies = [ "alloy-genesis", "alloy-primitives", @@ -574,9 +576,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-anvil" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c265bdbd7477d24e41cd594dd7a2022a14c9a4c58785af4bf15020ef51da075" +checksum = "410403528db87ab4618e7f517b0f54e493c8a17bb61102cbccbb7a35e8719b5b" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -586,9 +588,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96414c5385381b4b9d19ed1ee8f3a9c24a9a084c509ef66a235b5a45221fa6a9" +checksum = "af8448a1eb2c81115fc8d9d50da24156c9ce8fca78a19a997184dcd81f99c229" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", @@ -597,9 +599,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-beacon" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a441ffba3dab8bd1dc0608b39a37a0d89cef0203161f12b931c097e451fb41f9" +checksum = "9c20f653a4c1ab8289470e8eed55fe4f11354865b730685bb70b69a375524b27" dependencies = [ "alloy-eips", "alloy-primitives", @@ -616,9 +618,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-debug" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a03f03ff78bc274f9434c19871e7e041c604eab04d7751c8a8429aba5539fadb" +checksum = "8fb22d465e02c015648138bc0d46951d267827551fc85922b60f58caa6a0e9c9" dependencies = [ "alloy-primitives", "derive_more", @@ -628,9 +630,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301962bdc2f084bf25e86abe64d41c8a3ca1398d41d6f3416b6fffe2fe1620fc" +checksum = "4b968beee2ada53ef150fd90fbd2b7a3e5bcb66650e4d01757ff769c8af3d5ee" dependencies = [ "alloy-consensus", "alloy-eips", @@ -649,9 +651,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17d6b2bfc7e6b29f4ebc2e86cfa520c77d4cd0d08ed54332d2f5116df8357fd7" +checksum = "cd7c1bc07b6c9222c4ad822da3cea0fbbfcbe2876cf5d4780e147a0da6fe2862" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -671,9 +673,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-mev" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "742b354553a8bfba383abafce809e36ac998ca86445995769d455b28c448651e" +checksum = "ad56da776d84940f075f6cdb27c95c17f5d8947ed89947d61b686247ec4e2200" dependencies = [ "alloy-consensus", "alloy-eips", @@ -686,9 +688,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-trace" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb5c7e2f70d1ed7e117e5a4d6b13d547ef31c238162e46f2147ff5c45dd4326" +checksum = "7e54b3f616d9f30e11bc73e685f71da6f1682da5a3c2ca5206ec47f1d3bc96c7" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -700,9 +702,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-txpool" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ca69c1bb9cb4cb6b80cfbdec98813acaa50101d6298a4604fb24b9176b3ad2" +checksum = "15fc6b7b9465393a5b3fd38aba979f44438f172d9d0e6de732243c17d4246060" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -712,9 +714,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b253eb23896e22d0cf8117fc915383d4ecf8efdedd57f590a13c8716a7347f2" +checksum = "8603b89af4ba0acb94465319e506b8c0b40a5daf563046bedd58d26c98dbd62c" dependencies = [ "alloy-primitives", "arbitrary", @@ -724,9 +726,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a60d6c651c73df18766997bf2073b2a7e1875fec3f4fe5eef1ca6a38b6e81ff2" +checksum = "78ddbea0531837cc7784ae6669b4a66918e6fb34c2daa2a7a888549dd565151c" dependencies = [ "alloy-primitives", "async-trait", @@ -739,9 +741,9 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "621eafdbf1b1646c70d3b55959635c59e66ed7ad83a8b495fd9b948db09fe6c2" +checksum = "3497f79c8a818f736d8de1c157a1ec66c0ce1da3fbb2f54c005097798282e59b" dependencies = [ "alloy-consensus", "alloy-network", @@ -828,9 +830,9 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a68c445bf2a3b0124203cd45bdc0950968a131eb53ba85a5f0fd09eb610fe467" +checksum = "d259738315db0a2460581e22a1ca73ff02ef44687b43c0dad0834999090b3e7e" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -852,9 +854,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c4d2c0052de0d82fcb2acea16bf3fe105fd4c37d108a331c777942648e8711" +checksum = "c6332f6d470e465bf00f9306743ff172f54b83e7e31edfe28f1444c085ccb0e4" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -867,9 +869,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5345c71ff720219e30b0fc8d8931b2384390134a4c38bff4b5d87b4cc275e06d" +checksum = "865c13b9ce32b1a5227ac0f796faa9c08416aa4ea4e22b3a61a21ef110bda5ad" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -887,9 +889,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c335f772dbae8d4d17cc0ea86de3dacad245b876e6c0b951f48fd48f76d3d144" +checksum = "da655a5099cc037cad636425cec389320a694b6ec0302472a74f71b3637d842d" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -925,9 +927,9 @@ dependencies = [ [[package]] name = "alloy-tx-macros" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d998c2f0e95079fdc8798cb48b9ea985dab225ed02005f724e66788aaf614" +checksum = "2765badc6f621e1fc26aa70c520315866f0db6b8bd6bf3c560920d4fb33b08de" dependencies = [ "alloy-primitives", "darling 0.21.3", diff --git a/Cargo.toml b/Cargo.toml index 369506adec1..b74581bc4bd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -484,39 +484,39 @@ alloy-sol-macro = "1.3.1" alloy-sol-types = { version = "1.3.1", default-features = false } alloy-trie = { version = "0.9.1", default-features = false } -alloy-hardforks = "0.3.1" - -alloy-consensus = { version = "1.0.30", default-features = false } -alloy-contract = { version = "1.0.30", default-features = false } -alloy-eips = { version = "1.0.30", default-features = false } -alloy-genesis = { version = "1.0.30", default-features = false } -alloy-json-rpc = { version = "1.0.30", default-features = false } -alloy-network = { version = "1.0.30", default-features = false } -alloy-network-primitives = { version = "1.0.30", default-features = false } -alloy-provider = { version = "1.0.30", features = ["reqwest"], default-features = false } -alloy-pubsub = { version = "1.0.30", default-features = false } -alloy-rpc-client = { version = "1.0.30", default-features = false } -alloy-rpc-types = { version = "1.0.30", features = ["eth"], default-features = false } -alloy-rpc-types-admin = { version = "1.0.30", default-features = false } -alloy-rpc-types-anvil = { version = "1.0.30", default-features = false } -alloy-rpc-types-beacon = { version = "1.0.30", default-features = false } -alloy-rpc-types-debug = { version = "1.0.30", default-features = false } -alloy-rpc-types-engine = { version = "1.0.30", default-features = false } -alloy-rpc-types-eth = { version = "1.0.30", default-features = false } -alloy-rpc-types-mev = { version = "1.0.30", default-features = false } -alloy-rpc-types-trace = { version = "1.0.30", default-features = false } -alloy-rpc-types-txpool = { version = "1.0.30", default-features = false } -alloy-serde = { version = "1.0.30", default-features = false } -alloy-signer = { version = "1.0.30", default-features = false } -alloy-signer-local = { version = "1.0.30", default-features = false } -alloy-transport = { version = "1.0.30" } -alloy-transport-http = { version = "1.0.30", features = ["reqwest-rustls-tls"], default-features = false } -alloy-transport-ipc = { version = "1.0.30", default-features = false } -alloy-transport-ws = { version = "1.0.30", default-features = false } +alloy-hardforks = "0.3.5" + +alloy-consensus = { version = "1.0.35", default-features = false } +alloy-contract = { version = "1.0.35", default-features = false } +alloy-eips = { version = "1.0.35", default-features = false } +alloy-genesis = { version = "1.0.35", default-features = false } +alloy-json-rpc = { version = "1.0.35", default-features = false } +alloy-network = { version = "1.0.35", default-features = false } +alloy-network-primitives = { version = "1.0.35", default-features = false } +alloy-provider = { version = "1.0.35", features = ["reqwest"], default-features = false } +alloy-pubsub = { version = "1.0.35", default-features = false } +alloy-rpc-client = { version = "1.0.35", default-features = false } +alloy-rpc-types = { version = "1.0.35", features = ["eth"], default-features = false } +alloy-rpc-types-admin = { version = "1.0.35", default-features = false } +alloy-rpc-types-anvil = { version = "1.0.35", default-features = false } +alloy-rpc-types-beacon = { version = "1.0.35", default-features = false } +alloy-rpc-types-debug = { version = "1.0.35", default-features = false } +alloy-rpc-types-engine = { version = "1.0.35", default-features = false } +alloy-rpc-types-eth = { version = "1.0.35", default-features = false } +alloy-rpc-types-mev = { version = "1.0.35", default-features = false } +alloy-rpc-types-trace = { version = "1.0.35", default-features = false } +alloy-rpc-types-txpool = { version = "1.0.35", default-features = false } +alloy-serde = { version = "1.0.35", default-features = false } +alloy-signer = { version = "1.0.35", default-features = false } +alloy-signer-local = { version = "1.0.35", default-features = false } +alloy-transport = { version = "1.0.35" } +alloy-transport-http = { version = "1.0.35", features = ["reqwest-rustls-tls"], default-features = false } +alloy-transport-ipc = { version = "1.0.35", default-features = false } +alloy-transport-ws = { version = "1.0.35", default-features = false } # op alloy-op-evm = { version = "0.21.0", default-features = false } -alloy-op-hardforks = "0.3.1" +alloy-op-hardforks = "0.3.5" op-alloy-rpc-types = { version = "0.20.0", default-features = false } op-alloy-rpc-types-engine = { version = "0.20.0", default-features = false } op-alloy-network = { version = "0.20.0", default-features = false } diff --git a/crates/chainspec/src/spec.rs b/crates/chainspec/src/spec.rs index 0323222d984..02b199220b0 100644 --- a/crates/chainspec/src/spec.rs +++ b/crates/chainspec/src/spec.rs @@ -3,7 +3,7 @@ use alloy_evm::eth::spec::EthExecutorSpec; use crate::{ constants::{MAINNET_DEPOSIT_CONTRACT, MAINNET_PRUNE_DELETE_LIMIT}, - EthChainSpec, + holesky, hoodi, mainnet, sepolia, EthChainSpec, }; use alloc::{boxed::Box, sync::Arc, vec::Vec}; use alloy_chains::{Chain, NamedChain}; @@ -15,7 +15,8 @@ use alloy_consensus::{ Header, }; use alloy_eips::{ - eip1559::INITIAL_BASE_FEE, eip7685::EMPTY_REQUESTS_HASH, eip7892::BlobScheduleBlobParams, + eip1559::INITIAL_BASE_FEE, eip7685::EMPTY_REQUESTS_HASH, eip7840::BlobParams, + eip7892::BlobScheduleBlobParams, }; use alloy_genesis::Genesis; use alloy_primitives::{address, b256, Address, BlockNumber, B256, U256}; @@ -107,7 +108,10 @@ pub static MAINNET: LazyLock> = LazyLock::new(|| { deposit_contract: Some(MAINNET_DEPOSIT_CONTRACT), base_fee_params: BaseFeeParamsKind::Constant(BaseFeeParams::ethereum()), prune_delete_limit: MAINNET_PRUNE_DELETE_LIMIT, - blob_params: BlobScheduleBlobParams::default(), + blob_params: BlobScheduleBlobParams::default().with_scheduled([ + (mainnet::MAINNET_BPO1_TIMESTAMP, BlobParams::bpo1()), + (mainnet::MAINNET_BPO2_TIMESTAMP, BlobParams::bpo2()), + ]), }; spec.genesis.config.dao_fork_support = true; spec.into() @@ -136,7 +140,10 @@ pub static SEPOLIA: LazyLock> = LazyLock::new(|| { )), base_fee_params: BaseFeeParamsKind::Constant(BaseFeeParams::ethereum()), prune_delete_limit: 10000, - blob_params: BlobScheduleBlobParams::default(), + blob_params: BlobScheduleBlobParams::default().with_scheduled([ + (sepolia::SEPOLIA_BPO1_TIMESTAMP, BlobParams::bpo1()), + (sepolia::SEPOLIA_BPO2_TIMESTAMP, BlobParams::bpo2()), + ]), }; spec.genesis.config.dao_fork_support = true; spec.into() @@ -163,7 +170,10 @@ pub static HOLESKY: LazyLock> = LazyLock::new(|| { )), base_fee_params: BaseFeeParamsKind::Constant(BaseFeeParams::ethereum()), prune_delete_limit: 10000, - blob_params: BlobScheduleBlobParams::default(), + blob_params: BlobScheduleBlobParams::default().with_scheduled([ + (holesky::HOLESKY_BPO1_TIMESTAMP, BlobParams::bpo1()), + (holesky::HOLESKY_BPO2_TIMESTAMP, BlobParams::bpo2()), + ]), }; spec.genesis.config.dao_fork_support = true; spec.into() @@ -192,7 +202,10 @@ pub static HOODI: LazyLock> = LazyLock::new(|| { )), base_fee_params: BaseFeeParamsKind::Constant(BaseFeeParams::ethereum()), prune_delete_limit: 10000, - blob_params: BlobScheduleBlobParams::default(), + blob_params: BlobScheduleBlobParams::default().with_scheduled([ + (hoodi::HOODI_BPO1_TIMESTAMP, BlobParams::bpo1()), + (hoodi::HOODI_BPO2_TIMESTAMP, BlobParams::bpo2()), + ]), }; spec.genesis.config.dao_fork_support = true; spec.into() @@ -1088,7 +1101,10 @@ Merge hard forks: Post-merge hard forks (timestamp based): - Shanghai @1681338455 - Cancun @1710338135 -- Prague @1746612311" +- Prague @1746612311 +- Osaka @1764798551 +- Bpo1 @1765978199 +- Bpo2 @1767747671" ); } @@ -1332,7 +1348,10 @@ Post-merge hard forks (timestamp based): ), ( EthereumHardfork::Prague, - ForkId { hash: ForkHash([0xc3, 0x76, 0xcf, 0x8b]), next: 0 }, + ForkId { + hash: ForkHash([0xc3, 0x76, 0xcf, 0x8b]), + next: mainnet::MAINNET_OSAKA_TIMESTAMP, + }, ), ], ); @@ -1397,7 +1416,10 @@ Post-merge hard forks (timestamp based): ), ( EthereumHardfork::Prague, - ForkId { hash: ForkHash([0xed, 0x88, 0xb5, 0xfd]), next: 0 }, + ForkId { + hash: ForkHash([0xed, 0x88, 0xb5, 0xfd]), + next: sepolia::SEPOLIA_OSAKA_TIMESTAMP, + }, ), ], ); @@ -1473,12 +1495,22 @@ Post-merge hard forks (timestamp based): // First Prague block ( Head { number: 20000002, timestamp: 1746612311, ..Default::default() }, - ForkId { hash: ForkHash([0xc3, 0x76, 0xcf, 0x8b]), next: 0 }, + ForkId { + hash: ForkHash([0xc3, 0x76, 0xcf, 0x8b]), + next: mainnet::MAINNET_OSAKA_TIMESTAMP, + }, ), - // Future Prague block + // Osaka block ( - Head { number: 20000002, timestamp: 2000000000, ..Default::default() }, - ForkId { hash: ForkHash([0xc3, 0x76, 0xcf, 0x8b]), next: 0 }, + Head { + number: 20000002, + timestamp: mainnet::MAINNET_OSAKA_TIMESTAMP, + ..Default::default() + }, + ForkId { + hash: ForkHash(hex!("0x5167e2a6")), + next: mainnet::MAINNET_BPO1_TIMESTAMP, + }, ), ], ); @@ -1496,7 +1528,22 @@ Post-merge hard forks (timestamp based): // First Prague block ( Head { number: 0, timestamp: 1742999833, ..Default::default() }, - ForkId { hash: ForkHash([0x09, 0x29, 0xe2, 0x4e]), next: 0 }, + ForkId { + hash: ForkHash([0x09, 0x29, 0xe2, 0x4e]), + next: hoodi::HOODI_OSAKA_TIMESTAMP, + }, + ), + // First Osaka block + ( + Head { + number: 0, + timestamp: hoodi::HOODI_OSAKA_TIMESTAMP, + ..Default::default() + }, + ForkId { + hash: ForkHash(hex!("0xe7e0e7ff")), + next: hoodi::HOODI_BPO1_TIMESTAMP, + }, ), ], ) @@ -1544,7 +1591,22 @@ Post-merge hard forks (timestamp based): // First Prague block ( Head { number: 123, timestamp: 1740434112, ..Default::default() }, - ForkId { hash: ForkHash([0xdf, 0xbd, 0x9b, 0xed]), next: 0 }, + ForkId { + hash: ForkHash([0xdf, 0xbd, 0x9b, 0xed]), + next: holesky::HOLESKY_OSAKA_TIMESTAMP, + }, + ), + // First Osaka block + ( + Head { + number: 123, + timestamp: holesky::HOLESKY_OSAKA_TIMESTAMP, + ..Default::default() + }, + ForkId { + hash: ForkHash(hex!("0x783def52")), + next: holesky::HOLESKY_BPO1_TIMESTAMP, + }, ), ], ) @@ -1594,7 +1656,22 @@ Post-merge hard forks (timestamp based): // First Prague block ( Head { number: 1735377, timestamp: 1741159776, ..Default::default() }, - ForkId { hash: ForkHash([0xed, 0x88, 0xb5, 0xfd]), next: 0 }, + ForkId { + hash: ForkHash([0xed, 0x88, 0xb5, 0xfd]), + next: sepolia::SEPOLIA_OSAKA_TIMESTAMP, + }, + ), + // First Osaka block + ( + Head { + number: 1735377, + timestamp: sepolia::SEPOLIA_OSAKA_TIMESTAMP, + ..Default::default() + }, + ForkId { + hash: ForkHash(hex!("0xe2ae4999")), + next: sepolia::SEPOLIA_BPO1_TIMESTAMP, + }, ), ], ); @@ -1742,11 +1819,22 @@ Post-merge hard forks (timestamp based): ), // First Prague block ( Head { number: 20000004, timestamp: 1746612311, ..Default::default() }, - ForkId { hash: ForkHash([0xc3, 0x76, 0xcf, 0x8b]), next: 0 }, - ), // Future Prague block + ForkId { + hash: ForkHash([0xc3, 0x76, 0xcf, 0x8b]), + next: mainnet::MAINNET_OSAKA_TIMESTAMP, + }, + ), + // Osaka block ( - Head { number: 20000004, timestamp: 2000000000, ..Default::default() }, - ForkId { hash: ForkHash([0xc3, 0x76, 0xcf, 0x8b]), next: 0 }, + Head { + number: 20000004, + timestamp: mainnet::MAINNET_OSAKA_TIMESTAMP, + ..Default::default() + }, + ForkId { + hash: ForkHash(hex!("0x5167e2a6")), + next: mainnet::MAINNET_BPO1_TIMESTAMP, + }, ), ], ); @@ -2403,10 +2491,26 @@ Post-merge hard forks (timestamp based): #[test] fn latest_eth_mainnet_fork_id() { - assert_eq!( - ForkId { hash: ForkHash([0xc3, 0x76, 0xcf, 0x8b]), next: 0 }, - MAINNET.latest_fork_id() - ) + // BPO2 + assert_eq!(ForkId { hash: ForkHash(hex!("0xfd414558")), next: 0 }, MAINNET.latest_fork_id()) + } + + #[test] + fn latest_hoodi_mainnet_fork_id() { + // BPO2 + assert_eq!(ForkId { hash: ForkHash(hex!("0x23aa1351")), next: 0 }, HOODI.latest_fork_id()) + } + + #[test] + fn latest_holesky_mainnet_fork_id() { + // BPO2 + assert_eq!(ForkId { hash: ForkHash(hex!("0x9bc6cb31")), next: 0 }, HOLESKY.latest_fork_id()) + } + + #[test] + fn latest_sepolia_mainnet_fork_id() { + // BPO2 + assert_eq!(ForkId { hash: ForkHash(hex!("0x268956b6")), next: 0 }, SEPOLIA.latest_fork_id()) } #[test]