From a4ed303acf9f5ac951e286684a1ecfc11d517927 Mon Sep 17 00:00:00 2001 From: Alex Tsokurov Date: Mon, 25 Aug 2025 18:30:23 +0200 Subject: [PATCH] Fix Network -> ExtendedNetwork mapping --- client/src/config.rs | 11 +++++++++++ client/src/rpc.rs | 18 ++++++++++-------- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/client/src/config.rs b/client/src/config.rs index e501a14..657cf18 100644 --- a/client/src/config.rs +++ b/client/src/config.rs @@ -106,6 +106,17 @@ impl ExtendedNetwork { ExtendedNetwork::Testnet4 => Network::Testnet, } } + + pub fn from_core_arg(arg: &str) -> Result { + match arg.to_lowercase().as_str() { + "main" => Ok(ExtendedNetwork::Mainnet), + "test" => Ok(ExtendedNetwork::Testnet), + "testnet4" => Ok(ExtendedNetwork::Testnet4), + "signet" => Ok(ExtendedNetwork::Signet), + "regtest" => Ok(ExtendedNetwork::Regtest), + _ => Err(()), + } + } } impl Args { diff --git a/client/src/rpc.rs b/client/src/rpc.rs index cc6a71d..447a583 100644 --- a/client/src/rpc.rs +++ b/client/src/rpc.rs @@ -69,7 +69,7 @@ pub(crate) type Responder = oneshot::Sender; #[derive(Debug, Clone, Serialize, Deserialize)] pub struct ServerInfo { - pub network: String, + pub network: ExtendedNetwork, pub tip: ChainAnchor, pub chain: ChainInfo, pub ready: bool, @@ -1632,16 +1632,18 @@ async fn get_server_info( .await .map_err(|e| anyhow!("Could not retrieve blockchain info ({})", e))?; - let start_block = if info.chain == "main" { - 871_222 - } else if info.chain.starts_with("test") { - 50_000 - } else { - 0 + let network = info.chain; + let network = ExtendedNetwork::from_core_arg(&network) + .map_err(|_| anyhow!("Unknown network ({})", &network))?; + + let start_block = match network { + ExtendedNetwork::Mainnet => 871_222, + ExtendedNetwork::Testnet | ExtendedNetwork::Testnet4 => 50_000, + _ => 0, }; Ok(ServerInfo { - network: info.chain, + network, tip, chain: ChainInfo { blocks: info.blocks,