helios/config/src/networks.rs

103 lines
2.6 KiB
Rust

use common::utils::hex_str_to_bytes;
use serde::{Deserialize, Serialize};
use strum::{Display, EnumIter};
use crate::base::BaseConfig;
use crate::types::{ChainConfig, Fork, Forks};
#[derive(
Debug,
Clone,
Copy,
Serialize,
Deserialize,
EnumIter,
Display,
Hash,
Eq,
PartialEq,
PartialOrd,
Ord,
)]
pub enum Network {
MAINNET,
GOERLI,
}
impl Network {
pub fn to_base_config(&self) -> BaseConfig {
match self {
Self::MAINNET => mainnet(),
Self::GOERLI => goerli(),
}
}
}
pub fn mainnet() -> BaseConfig {
BaseConfig {
checkpoint: hex_str_to_bytes(
"0x766647f3c4e1fc91c0db9a9374032ae038778411fbff222974e11f2e3ce7dadf",
)
.unwrap(),
rpc_port: 8545,
consensus_rpc: Some("https://www.lightclientdata.org".to_string()),
chain: ChainConfig {
chain_id: 1,
genesis_time: 1606824023,
genesis_root: hex_str_to_bytes(
"0x4b363db94e286120d76eb905340fdd4e54bfe9f06bf33ff6cf5ad27f511bfe95",
)
.unwrap(),
},
forks: Forks {
genesis: Fork {
epoch: 0,
fork_version: hex_str_to_bytes("0x00000000").unwrap(),
},
altair: Fork {
epoch: 74240,
fork_version: hex_str_to_bytes("0x01000000").unwrap(),
},
bellatrix: Fork {
epoch: 144896,
fork_version: hex_str_to_bytes("0x02000000").unwrap(),
},
},
max_checkpoint_age: 1_209_600, // 14 days
}
}
pub fn goerli() -> BaseConfig {
BaseConfig {
checkpoint: hex_str_to_bytes(
"0xd4344682866dbede543395ecf5adf9443a27f423a4b00f270458e7932686ced1",
)
.unwrap(),
rpc_port: 8545,
consensus_rpc: None,
chain: ChainConfig {
chain_id: 5,
genesis_time: 1616508000,
genesis_root: hex_str_to_bytes(
"0x043db0d9a83813551ee2f33450d23797757d430911a9320530ad8a0eabc43efb",
)
.unwrap(),
},
forks: Forks {
genesis: Fork {
epoch: 0,
fork_version: hex_str_to_bytes("0x00001020").unwrap(),
},
altair: Fork {
epoch: 36660,
fork_version: hex_str_to_bytes("0x01001020").unwrap(),
},
bellatrix: Fork {
epoch: 112260,
fork_version: hex_str_to_bytes("0x02001020").unwrap(),
},
},
max_checkpoint_age: 1_209_600, // 14 days
}
}