axos_primitives/chain/base/
goerli.rs1use crate::alloc::string::ToString;
2use alloy_primitives::{address, b256, B256, U256};
3
4use crate::BlockInfo;
5use crate::ChainConfig;
6use crate::Epoch;
7use crate::SystemConfig;
8
9impl ChainConfig {
10 pub fn base_goerli() -> Self {
12 Self {
13 network: "base-goerli".to_string(),
14 l1_chain_id: 5,
15 l2_chain_id: 84531,
16 l1_start_epoch: Epoch {
17 number: 8410981,
18 hash: b256!("73d89754a1e0387b89520d989d3be9c37c1f32495a88faf1ea05c61121ab0d19"),
19 timestamp: 1675193616,
20 },
21 l2_genesis: BlockInfo {
22 hash: b256!("a3ab140f15ea7f7443a4702da64c10314eb04d488e72974e02e2d728096b4f76"),
23 number: 0,
24 parent_hash: B256::ZERO,
25 timestamp: 1675193616,
26 },
27 system_config: SystemConfig {
28 batch_sender: address!("2d679b567db6187c0c8323fa982cfb88b74dbcc7"),
29 gas_limit: U256::from(25_000_000),
30 l1_fee_overhead: U256::from(2100),
31 l1_fee_scalar: U256::from(1000000),
32 unsafe_block_signer: address!("32a4e99A72c11E9DD3dC159909a2D7BD86C1Bc51"),
33 },
34 system_config_contract: address!("b15eea247ece011c68a614e4a77ad648ff495bc1"),
35 batch_inbox: address!("8453100000000000000000000000000000000000"),
36 deposit_contract: address!("e93c8cd0d409341205a592f8c4ac1a5fe5585cfa"),
37 l2_to_l1_message_passer: address!("4200000000000000000000000000000000000016"),
38 max_channel_size: 100_000_000,
39 channel_timeout: 100,
40 seq_window_size: 3600,
41 max_seq_drift: 600,
42 regolith_time: 1683219600,
43 blocktime: 2,
44 }
45 }
46}
47
48#[cfg(test)]
49mod test {
50 use super::*;
51
52 const BASE_GOERLI: &str = r#"
53 {
54 "network": "base-goerli",
55 "l1_chain_id": 5,
56 "l2_chain_id": 84531,
57 "l1_start_epoch": {
58 "number": 8410981,
59 "hash": "73d89754a1e0387b89520d989d3be9c37c1f32495a88faf1ea05c61121ab0d19",
60 "timestamp": 1675193616
61 },
62 "l2_genesis": {
63 "hash": "a3ab140f15ea7f7443a4702da64c10314eb04d488e72974e02e2d728096b4f76",
64 "number": 0,
65 "parent_hash": "0000000000000000000000000000000000000000000000000000000000000000",
66 "timestamp": 1675193616
67 },
68 "system_config": {
69 "batch_sender": "2d679b567db6187c0c8323fa982cfb88b74dbcc7",
70 "gas_limit": 25000000,
71 "l1_fee_overhead": 2100,
72 "l1_fee_scalar": 1000000,
73 "unsafe_block_signer": "32a4e99A72c11E9DD3dC159909a2D7BD86C1Bc51"
74 },
75 "system_config_contract": "b15eea247ece011c68a614e4a77ad648ff495bc1",
76 "batch_inbox": "8453100000000000000000000000000000000000",
77 "deposit_contract": "e93c8cd0d409341205a592f8c4ac1a5fe5585cfa",
78 "l2_to_l1_message_passer": "4200000000000000000000000000000000000016",
79 "max_channel_size": 100000000,
80 "channel_timeout": 100,
81 "seq_window_size": 3600,
82 "max_seq_drift": 600,
83 "regolith_time": 1683219600,
84 "blocktime": 2
85 }
86 "#;
87
88 #[test]
89 fn test_base_goerli() {
90 let config = ChainConfig::base_goerli();
91 let parsed = serde_json::from_str::<ChainConfig>(BASE_GOERLI).unwrap();
92 assert_eq!(config, parsed);
93 }
94}