From 9da6f25aac6dbd95abe6857cf9b2d74a8294f1e1 Mon Sep 17 00:00:00 2001 From: evalir Date: Tue, 9 Sep 2025 11:55:14 -0400 Subject: [PATCH 1/2] feat(utils): Make `SlotCalculator` instantiable from a chain name Right now we have to do error-prone configs everywhere. With this, we won't. Closes ENG-1139 --- src/utils/calc.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/utils/calc.rs b/src/utils/calc.rs index 51a2df0..e1f8b1b 100644 --- a/src/utils/calc.rs +++ b/src/utils/calc.rs @@ -1,4 +1,7 @@ +use std::str::FromStr; + use crate::utils::from_env::FromEnv; +use signet_constants::KnownChains; /// A slot calculator, which can calculate slot numbers, windows, and offsets /// for a given chain. @@ -273,6 +276,22 @@ impl SlotCalculator { } } +impl From for SlotCalculator { + fn from(value: KnownChains) -> Self { + match value { + KnownChains::Pecorino => SlotCalculator::pecorino_host(), + } + } +} + +impl FromStr for SlotCalculator { + type Err = signet_constants::ParseChainError; + + fn from_str(s: &str) -> Result { + Ok(SlotCalculator::from(KnownChains::from_str(s)?)) + } +} + #[cfg(test)] mod tests { use super::*; From a8ad95e07022b54452a49fda37daba43485f3519 Mon Sep 17 00:00:00 2001 From: evalir Date: Wed, 10 Sep 2025 09:22:28 -0400 Subject: [PATCH 2/2] chore: rm newline --- src/utils/calc.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/utils/calc.rs b/src/utils/calc.rs index e1f8b1b..2285e45 100644 --- a/src/utils/calc.rs +++ b/src/utils/calc.rs @@ -1,7 +1,6 @@ -use std::str::FromStr; - use crate::utils::from_env::FromEnv; use signet_constants::KnownChains; +use std::str::FromStr; /// A slot calculator, which can calculate slot numbers, windows, and offsets /// for a given chain.