Skip to content

Commit c07c1ca

Browse files
committed
fixes
1 parent 036b2e9 commit c07c1ca

File tree

2 files changed

+22
-19
lines changed

2 files changed

+22
-19
lines changed

crates/common/src/config/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use std::path::PathBuf;
33
use eyre::Result;
44
use serde::{Deserialize, Serialize};
55

6-
use crate::types::{load_chain_from_file, Chain, ChainLoader};
6+
use crate::types::{load_chain_from_file, Chain, ChainLoader, ForkVersion};
77

88
mod constants;
99
mod log;
@@ -63,7 +63,7 @@ impl CommitBoostConfig {
6363
}
6464
ChainLoader::Known(known) => Chain::from(known),
6565
ChainLoader::Custom { genesis_time_secs, slot_time_secs, genesis_fork_version } => {
66-
let genesis_fork_version: [u8; 4] = genesis_fork_version.as_ref().try_into()?;
66+
let genesis_fork_version: ForkVersion = genesis_fork_version.as_ref().try_into()?;
6767
Chain::Custom { genesis_time_secs, slot_time_secs, genesis_fork_version }
6868
}
6969
};

crates/common/src/types.rs

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,11 @@ pub enum Chain {
2323
Holesky,
2424
Sepolia,
2525
Helder,
26-
Custom { genesis_time_secs: u64, slot_time_secs: u64, genesis_fork_version: [u8; 4] },
26+
Custom { genesis_time_secs: u64, slot_time_secs: u64, genesis_fork_version: ForkVersion },
2727
}
2828

29+
pub type ForkVersion = [u8; 4];
30+
2931
impl std::fmt::Debug for Chain {
3032
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3133
match self {
@@ -54,7 +56,7 @@ impl Chain {
5456
}
5557
}
5658

57-
pub fn genesis_fork_version(&self) -> [u8; 4] {
59+
pub fn genesis_fork_version(&self) -> ForkVersion {
5860
match self {
5961
Chain::Mainnet => KnownChain::Mainnet.genesis_fork_version(),
6062
Chain::Holesky => KnownChain::Holesky.genesis_fork_version(),
@@ -120,7 +122,7 @@ impl KnownChain {
120122
}
121123
}
122124

123-
pub fn genesis_fork_version(&self) -> [u8; 4] {
125+
pub fn genesis_fork_version(&self) -> ForkVersion {
124126
match self {
125127
KnownChain::Mainnet => hex!("00000000"),
126128
KnownChain::Holesky => hex!("01017000"),
@@ -216,7 +218,7 @@ impl<'de> Deserialize<'de> for Chain {
216218
Ok(Chain::Custom { genesis_time_secs, slot_time_secs, genesis_fork_version })
217219
}
218220
ChainLoader::Custom { genesis_time_secs, slot_time_secs, genesis_fork_version } => {
219-
let genesis_fork_version: [u8; 4] =
221+
let genesis_fork_version: ForkVersion =
220222
genesis_fork_version.as_ref().try_into().map_err(serde::de::Error::custom)?;
221223
Ok(Chain::Custom { genesis_time_secs, slot_time_secs, genesis_fork_version })
222224
}
@@ -230,7 +232,7 @@ impl<'de> Deserialize<'de> for Chain {
230232
/// - JSON as return the getSpec endpoint, either with or without the `data`
231233
/// field
232234
/// - YAML as used e.g. in Kurtosis/Ethereum Package
233-
pub fn load_chain_from_file(path: PathBuf) -> eyre::Result<(u64, [u8; 4])> {
235+
pub fn load_chain_from_file(path: PathBuf) -> eyre::Result<(u64, ForkVersion)> {
234236
#[derive(Deserialize)]
235237
#[serde(rename_all = "UPPERCASE")]
236238
struct QuotedSpecFile {
@@ -240,8 +242,9 @@ pub fn load_chain_from_file(path: PathBuf) -> eyre::Result<(u64, [u8; 4])> {
240242
}
241243

242244
impl QuotedSpecFile {
243-
fn to_chain(&self) -> eyre::Result<(u64, [u8; 4])> {
244-
let genesis_fork_version: [u8; 4] = self.genesis_fork_version.as_ref().try_into()?;
245+
fn to_chain(&self) -> eyre::Result<(u64, ForkVersion)> {
246+
let genesis_fork_version: ForkVersion =
247+
self.genesis_fork_version.as_ref().try_into()?;
245248
Ok((self.seconds_per_slot, genesis_fork_version))
246249
}
247250
}
@@ -259,8 +262,8 @@ pub fn load_chain_from_file(path: PathBuf) -> eyre::Result<(u64, [u8; 4])> {
259262
}
260263

261264
impl SpecFile {
262-
fn to_chain(&self) -> (u64, [u8; 4]) {
263-
let genesis_fork_version: [u8; 4] = self.genesis_fork_version.to_be_bytes();
265+
fn to_chain(&self) -> (u64, ForkVersion) {
266+
let genesis_fork_version: ForkVersion = self.genesis_fork_version.to_be_bytes();
264267
(self.seconds_per_slot, genesis_fork_version)
265268
}
266269
}
@@ -315,11 +318,11 @@ mod tests {
315318
path.pop();
316319
path.push("tests/data/mainnet_spec_data.json");
317320

318-
let s = format!("chain = {path:?}");
321+
let s = format!("chain = {{ genesis_time_secs = 1, path = {path:?}}}");
319322

320323
let decoded: MockConfig = toml::from_str(&s).unwrap();
321324

322-
// see fixme in load_chain_from_file
325+
assert_eq!(decoded.chain.genesis_time_sec(), 1);
323326
assert_eq!(decoded.chain.slot_time_sec(), KnownChain::Mainnet.slot_time_sec());
324327
assert_eq!(
325328
decoded.chain.genesis_fork_version(),
@@ -336,11 +339,11 @@ mod tests {
336339
path.pop();
337340
path.push("tests/data/holesky_spec.json");
338341

339-
let s = format!("chain = {path:?}");
342+
let s = format!("chain = {{ genesis_time_secs = 1, path = {path:?}}}");
340343

341344
let decoded: MockConfig = toml::from_str(&s).unwrap();
342345
assert_eq!(decoded.chain, Chain::Custom {
343-
genesis_time_secs: KnownChain::Holesky.genesis_time_sec(),
346+
genesis_time_secs: 1,
344347
slot_time_secs: KnownChain::Holesky.slot_time_sec(),
345348
genesis_fork_version: KnownChain::Holesky.genesis_fork_version()
346349
})
@@ -355,11 +358,11 @@ mod tests {
355358
path.pop();
356359
path.push("tests/data/sepolia_spec_data.json");
357360

358-
let s = format!("chain = {path:?}");
361+
let s = format!("chain = {{ genesis_time_secs = 1, path = {path:?}}}");
359362

360363
let decoded: MockConfig = toml::from_str(&s).unwrap();
361364
assert_eq!(decoded.chain, Chain::Custom {
362-
genesis_time_secs: KnownChain::Sepolia.genesis_time_sec(),
365+
genesis_time_secs: 1,
363366
slot_time_secs: KnownChain::Sepolia.slot_time_sec(),
364367
genesis_fork_version: KnownChain::Sepolia.genesis_fork_version()
365368
})
@@ -374,11 +377,11 @@ mod tests {
374377
path.pop();
375378
path.push("tests/data/helder_spec.yml");
376379

377-
let s = format!("chain = {path:?}");
380+
let s = format!("chain = {{ genesis_time_secs = 1, path = {path:?}}}");
378381

379382
let decoded: MockConfig = toml::from_str(&s).unwrap();
380383
assert_eq!(decoded.chain, Chain::Custom {
381-
genesis_time_secs: KnownChain::Helder.genesis_time_sec(),
384+
genesis_time_secs: 1,
382385
slot_time_secs: KnownChain::Helder.slot_time_sec(),
383386
genesis_fork_version: KnownChain::Helder.genesis_fork_version()
384387
})

0 commit comments

Comments
 (0)