Skip to content

Commit 1a69d3a

Browse files
committed
address comments
1 parent 4b92f77 commit 1a69d3a

File tree

1 file changed

+161
-143
lines changed
  • crates/scroll/chainspec/src

1 file changed

+161
-143
lines changed

crates/scroll/chainspec/src/lib.rs

+161-143
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,19 @@ impl ScrollChainSpecBuilder {
8888
self
8989
}
9090

91+
/// Enable Archimedes at genesis
92+
pub fn archimedes_activated(mut self) -> Self {
93+
self.inner = self.inner.london_activated();
94+
self.inner = self
95+
.inner
96+
.with_fork(reth_scroll_forks::ScrollHardfork::Archimedes, ForkCondition::Block(0));
97+
self
98+
}
99+
91100
/// Enable Bernoulli at genesis
92101
pub fn bernoulli_activated(mut self) -> Self {
93-
self.inner = self.inner.cancun_activated();
102+
self = self.archimedes_activated();
103+
self.inner = self.inner.with_fork(EthereumHardfork::Shanghai, ForkCondition::Timestamp(0));
94104
self.inner = self
95105
.inner
96106
.with_fork(reth_scroll_forks::ScrollHardfork::Bernoulli, ForkCondition::Block(0));
@@ -100,9 +110,8 @@ impl ScrollChainSpecBuilder {
100110
/// Enable Curie at genesis
101111
pub fn curie_activated(mut self) -> Self {
102112
self = self.bernoulli_activated();
103-
self.inner = self
104-
.inner
105-
.with_fork(reth_scroll_forks::ScrollHardfork::Curie, ForkCondition::Timestamp(0));
113+
self.inner =
114+
self.inner.with_fork(reth_scroll_forks::ScrollHardfork::Curie, ForkCondition::Block(0));
106115
self
107116
}
108117

@@ -312,147 +321,156 @@ impl ScrollConfigInfo {
312321
mod tests {
313322
use crate::*;
314323
use alloy_genesis::{ChainConfig, Genesis};
315-
use reth_ethereum_forks::EthereumHardfork;
324+
use alloy_primitives::b256;
325+
use reth_chainspec::test_fork_ids;
326+
use reth_ethereum_forks::{EthereumHardfork, ForkHash};
316327
use reth_scroll_forks::ScrollHardfork;
317328

318-
// #[test]
319-
// fn scroll_mainnet_forkids() {
320-
// let scroll_mainnet = ScrollChainSpecBuilder::scroll_mainnet().build();
321-
// let _ =
322-
// scroll_mainnet.genesis_hash.set(SCROLL_MAINNET.genesis_hash.get().copied().unwrap());
323-
// test_fork_ids(
324-
// &SCROLL_MAINNET,
325-
// &[
326-
// (
327-
// Head { number: 0, ..Default::default() },
328-
// ForkId { hash: ForkHash([0x67, 0xda, 0x02, 0x60]), next: 1704992401 },
329-
// ),
330-
// (
331-
// Head { number: 0, timestamp: 1704992400, ..Default::default() },
332-
// ForkId { hash: ForkHash([0x67, 0xda, 0x02, 0x60]), next: 1704992401 },
333-
// ),
334-
// (
335-
// Head { number: 0, timestamp: 1704992401, ..Default::default() },
336-
// ForkId { hash: ForkHash([0x3c, 0x28, 0x3c, 0xb3]), next: 1710374401 },
337-
// ),
338-
// (
339-
// Head { number: 0, timestamp: 1710374400, ..Default::default() },
340-
// ForkId { hash: ForkHash([0x3c, 0x28, 0x3c, 0xb3]), next: 1710374401 },
341-
// ),
342-
// (
343-
// Head { number: 0, timestamp: 1710374401, ..Default::default() },
344-
// ForkId { hash: ForkHash([0x51, 0xcc, 0x98, 0xb3]), next: 1720627201 },
345-
// ),
346-
// (
347-
// Head { number: 0, timestamp: 1720627200, ..Default::default() },
348-
// ForkId { hash: ForkHash([0x51, 0xcc, 0x98, 0xb3]), next: 1720627201 },
349-
// ),
350-
// (
351-
// Head { number: 0, timestamp: 1720627201, ..Default::default() },
352-
// ForkId { hash: ForkHash([0xe4, 0x01, 0x0e, 0xb9]), next: 1726070401 },
353-
// ),
354-
// (
355-
// Head { number: 0, timestamp: 1726070401, ..Default::default() },
356-
// ForkId { hash: ForkHash([0xbc, 0x38, 0xf9, 0xca]), next: 0 },
357-
// ),
358-
// ],
359-
// );
360-
// }
361-
//
362-
// #[test]
363-
// fn scroll_sepolia_forkids() {
364-
// test_fork_ids(
365-
// &SCROLL_SEPOLIA,
366-
// &[
367-
// (
368-
// Head { number: 0, ..Default::default() },
369-
// ForkId { hash: ForkHash([0x67, 0xa4, 0x03, 0x28]), next: 1699981200 },
370-
// ),
371-
// (
372-
// Head { number: 0, timestamp: 1699981199, ..Default::default() },
373-
// ForkId { hash: ForkHash([0x67, 0xa4, 0x03, 0x28]), next: 1699981200 },
374-
// ),
375-
// (
376-
// Head { number: 0, timestamp: 1699981200, ..Default::default() },
377-
// ForkId { hash: ForkHash([0xa4, 0x8d, 0x6a, 0x00]), next: 1708534800 },
378-
// ),
379-
// (
380-
// Head { number: 0, timestamp: 1708534799, ..Default::default() },
381-
// ForkId { hash: ForkHash([0xa4, 0x8d, 0x6a, 0x00]), next: 1708534800 },
382-
// ),
383-
// (
384-
// Head { number: 0, timestamp: 1708534800, ..Default::default() },
385-
// ForkId { hash: ForkHash([0xcc, 0x17, 0xc7, 0xeb]), next: 1716998400 },
386-
// ),
387-
// (
388-
// Head { number: 0, timestamp: 1716998399, ..Default::default() },
389-
// ForkId { hash: ForkHash([0xcc, 0x17, 0xc7, 0xeb]), next: 1716998400 },
390-
// ),
391-
// (
392-
// Head { number: 0, timestamp: 1716998400, ..Default::default() },
393-
// ForkId { hash: ForkHash([0x54, 0x0a, 0x8c, 0x5d]), next: 1723478400 },
394-
// ),
395-
// (
396-
// Head { number: 0, timestamp: 1723478399, ..Default::default() },
397-
// ForkId { hash: ForkHash([0x54, 0x0a, 0x8c, 0x5d]), next: 1723478400 },
398-
// ),
399-
// (
400-
// Head { number: 0, timestamp: 1723478400, ..Default::default() },
401-
// ForkId { hash: ForkHash([0x75, 0xde, 0xa4, 0x1e]), next: 1732633200 },
402-
// ),
403-
// (
404-
// Head { number: 0, timestamp: 1732633200, ..Default::default() },
405-
// ForkId { hash: ForkHash([0x4a, 0x1c, 0x79, 0x2e]), next: 0 },
406-
// ),
407-
// ],
408-
// );
409-
// }
410-
411-
// #[test]
412-
// fn scroll_mainnet_genesis() {
413-
// let genesis = SCROLL_MAINNET.genesis_header();
414-
// println!("{:?}", genesis);
415-
// assert_eq!(
416-
// genesis.hash_slow(),
417-
// b256!("bbc05efd412b7cd47a2ed0e5ddfcf87af251e414ea4c801d78b6784513180a80")
418-
// );
419-
// let base_fee = genesis
420-
// .next_block_base_fee(SCROLL_MAINNET.base_fee_params_at_timestamp(genesis.timestamp))
421-
// .unwrap();
422-
// // <https://scrollscan.com/block/1>
423-
// assert_eq!(base_fee, 980000000);
424-
// }
425-
426-
// #[test]
427-
// fn scroll_sepolia_genesis() {
428-
// let genesis = SCROLL_SEPOLIA.genesis_header();
429-
// assert_eq!(
430-
// genesis.hash_slow(),
431-
// b256!("aa62d1a8b2bffa9e5d2368b63aae0d98d54928bd713125e3fd9e5c896c68592c")
432-
// );
433-
// let base_fee = genesis
434-
// .next_block_base_fee(SCROLL_SEPOLIA.base_fee_params_at_timestamp(genesis.timestamp))
435-
// .unwrap();
436-
// // <https://base-sepolia.blockscout.com/block/1>
437-
// assert_eq!(base_fee, 980000000);
438-
// }
439-
// #[test]
440-
// fn latest_scroll_mainnet_fork_id() {
441-
// let a = SCROLL_MAINNET.latest_fork_id();
442-
// assert_eq!(
443-
// ForkId { hash: ForkHash([0xbc, 0x38, 0xf9, 0xca]), next: 0 },
444-
// SCROLL_MAINNET.latest_fork_id()
445-
// )
446-
// }
447-
//
448-
// #[test]
449-
// fn latest_scroll_mainnet_fork_id_with_builder() {
450-
// let scroll_mainnet = ScrollChainSpecBuilder::scroll_mainnet().build();
451-
// assert_eq!(
452-
// ForkId { hash: ForkHash([0xbc, 0x38, 0xf9, 0xca]), next: 0 },
453-
// scroll_mainnet.latest_fork_id()
454-
// )
455-
// }
329+
#[ignore = "waiting on https://github.com/scroll-tech/reth/pull/36"]
330+
#[test]
331+
fn scroll_mainnet_forkids() {
332+
let scroll_mainnet = ScrollChainSpecBuilder::scroll_mainnet().build();
333+
let _ =
334+
scroll_mainnet.genesis_hash.set(SCROLL_MAINNET.genesis_hash.get().copied().unwrap());
335+
test_fork_ids(
336+
&SCROLL_MAINNET,
337+
&[
338+
(
339+
Head { number: 0, ..Default::default() },
340+
ForkId { hash: ForkHash([0x67, 0xda, 0x02, 0x60]), next: 1704992401 },
341+
),
342+
(
343+
Head { number: 0, timestamp: 1704992400, ..Default::default() },
344+
ForkId { hash: ForkHash([0x67, 0xda, 0x02, 0x60]), next: 1704992401 },
345+
),
346+
(
347+
Head { number: 0, timestamp: 1704992401, ..Default::default() },
348+
ForkId { hash: ForkHash([0x3c, 0x28, 0x3c, 0xb3]), next: 1710374401 },
349+
),
350+
(
351+
Head { number: 0, timestamp: 1710374400, ..Default::default() },
352+
ForkId { hash: ForkHash([0x3c, 0x28, 0x3c, 0xb3]), next: 1710374401 },
353+
),
354+
(
355+
Head { number: 0, timestamp: 1710374401, ..Default::default() },
356+
ForkId { hash: ForkHash([0x51, 0xcc, 0x98, 0xb3]), next: 1720627201 },
357+
),
358+
(
359+
Head { number: 0, timestamp: 1720627200, ..Default::default() },
360+
ForkId { hash: ForkHash([0x51, 0xcc, 0x98, 0xb3]), next: 1720627201 },
361+
),
362+
(
363+
Head { number: 0, timestamp: 1720627201, ..Default::default() },
364+
ForkId { hash: ForkHash([0xe4, 0x01, 0x0e, 0xb9]), next: 1726070401 },
365+
),
366+
(
367+
Head { number: 0, timestamp: 1726070401, ..Default::default() },
368+
ForkId { hash: ForkHash([0xbc, 0x38, 0xf9, 0xca]), next: 0 },
369+
),
370+
],
371+
);
372+
}
373+
374+
#[ignore = "waiting on https://github.com/scroll-tech/reth/pull/36"]
375+
#[test]
376+
fn scroll_sepolia_forkids() {
377+
test_fork_ids(
378+
&SCROLL_SEPOLIA,
379+
&[
380+
(
381+
Head { number: 0, ..Default::default() },
382+
ForkId { hash: ForkHash([0x67, 0xa4, 0x03, 0x28]), next: 1699981200 },
383+
),
384+
(
385+
Head { number: 0, timestamp: 1699981199, ..Default::default() },
386+
ForkId { hash: ForkHash([0x67, 0xa4, 0x03, 0x28]), next: 1699981200 },
387+
),
388+
(
389+
Head { number: 0, timestamp: 1699981200, ..Default::default() },
390+
ForkId { hash: ForkHash([0xa4, 0x8d, 0x6a, 0x00]), next: 1708534800 },
391+
),
392+
(
393+
Head { number: 0, timestamp: 1708534799, ..Default::default() },
394+
ForkId { hash: ForkHash([0xa4, 0x8d, 0x6a, 0x00]), next: 1708534800 },
395+
),
396+
(
397+
Head { number: 0, timestamp: 1708534800, ..Default::default() },
398+
ForkId { hash: ForkHash([0xcc, 0x17, 0xc7, 0xeb]), next: 1716998400 },
399+
),
400+
(
401+
Head { number: 0, timestamp: 1716998399, ..Default::default() },
402+
ForkId { hash: ForkHash([0xcc, 0x17, 0xc7, 0xeb]), next: 1716998400 },
403+
),
404+
(
405+
Head { number: 0, timestamp: 1716998400, ..Default::default() },
406+
ForkId { hash: ForkHash([0x54, 0x0a, 0x8c, 0x5d]), next: 1723478400 },
407+
),
408+
(
409+
Head { number: 0, timestamp: 1723478399, ..Default::default() },
410+
ForkId { hash: ForkHash([0x54, 0x0a, 0x8c, 0x5d]), next: 1723478400 },
411+
),
412+
(
413+
Head { number: 0, timestamp: 1723478400, ..Default::default() },
414+
ForkId { hash: ForkHash([0x75, 0xde, 0xa4, 0x1e]), next: 1732633200 },
415+
),
416+
(
417+
Head { number: 0, timestamp: 1732633200, ..Default::default() },
418+
ForkId { hash: ForkHash([0x4a, 0x1c, 0x79, 0x2e]), next: 0 },
419+
),
420+
],
421+
);
422+
}
423+
424+
#[ignore = "waiting on https://github.com/scroll-tech/reth/pull/36"]
425+
#[test]
426+
fn scroll_mainnet_genesis() {
427+
let genesis = SCROLL_MAINNET.genesis_header();
428+
println!("{:?}", genesis);
429+
assert_eq!(
430+
genesis.hash_slow(),
431+
b256!("bbc05efd412b7cd47a2ed0e5ddfcf87af251e414ea4c801d78b6784513180a80")
432+
);
433+
let base_fee = genesis
434+
.next_block_base_fee(SCROLL_MAINNET.base_fee_params_at_timestamp(genesis.timestamp))
435+
.unwrap();
436+
// <https://scrollscan.com/block/1>
437+
assert_eq!(base_fee, 980000000);
438+
}
439+
440+
#[ignore = "waiting on https://github.com/scroll-tech/reth/pull/36"]
441+
#[test]
442+
fn scroll_sepolia_genesis() {
443+
let genesis = SCROLL_SEPOLIA.genesis_header();
444+
assert_eq!(
445+
genesis.hash_slow(),
446+
b256!("aa62d1a8b2bffa9e5d2368b63aae0d98d54928bd713125e3fd9e5c896c68592c")
447+
);
448+
let base_fee = genesis
449+
.next_block_base_fee(SCROLL_SEPOLIA.base_fee_params_at_timestamp(genesis.timestamp))
450+
.unwrap();
451+
// <https://base-sepolia.blockscout.com/block/1>
452+
assert_eq!(base_fee, 980000000);
453+
}
454+
455+
#[ignore = "waiting on https://github.com/scroll-tech/reth/pull/36"]
456+
#[test]
457+
fn latest_scroll_mainnet_fork_id() {
458+
assert_eq!(
459+
ForkId { hash: ForkHash([0xbc, 0x38, 0xf9, 0xca]), next: 0 },
460+
SCROLL_MAINNET.latest_fork_id()
461+
)
462+
}
463+
464+
#[ignore = "waiting on https://github.com/scroll-tech/reth/pull/36"]
465+
#[test]
466+
fn latest_scroll_mainnet_fork_id_with_builder() {
467+
let scroll_mainnet = ScrollChainSpecBuilder::scroll_mainnet().build();
468+
assert_eq!(
469+
ForkId { hash: ForkHash([0xbc, 0x38, 0xf9, 0xca]), next: 0 },
470+
scroll_mainnet.latest_fork_id()
471+
)
472+
}
473+
456474
#[test]
457475
fn is_bernoulli_active() {
458476
let scroll_mainnet = ScrollChainSpecBuilder::scroll_mainnet().build();

0 commit comments

Comments
 (0)