Skip to content

Commit

Permalink
Remove unnecessary ChainInfo enum
Browse files Browse the repository at this point in the history
  • Loading branch information
SebastienGllmt committed May 6, 2024
1 parent ef9f84c commit c795ff1
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 43 deletions.
51 changes: 10 additions & 41 deletions blockchain-source/src/cardano/configuration.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,51 +2,20 @@ use super::{time::Era, Point};
use dcspark_core::{BlockId, SlotNumber};
use std::borrow::Cow;

#[derive(Clone, Debug, serde::Deserialize)]
#[serde(rename_all = "snake_case")]
#[serde(deny_unknown_fields)]
#[derive(Clone, Debug)]
pub struct NetworkConfiguration {
pub chain_info: ChainInfo,
pub chain_info: cml_chain::genesis::network_info::NetworkInfo,
pub relay: (Cow<'static, str>, u16),
pub from: Point,
pub genesis_parent: BlockId,
pub genesis: BlockId,
pub shelley_era_config: Era,
}

#[derive(Clone, Debug, serde::Deserialize)]
pub enum ChainInfo {
Mainnet,
Preprod,
Preview,
Testnet,
SanchoNet,
Custom { protocol_magic: u64, network_id: u8 },
}

impl From<ChainInfo> for cml_chain::genesis::network_info::NetworkInfo {
fn from(info: ChainInfo) -> Self {
match info {
ChainInfo::Mainnet => cml_chain::genesis::network_info::NetworkInfo::mainnet(),
ChainInfo::Preprod => cml_chain::genesis::network_info::NetworkInfo::preprod(),
ChainInfo::Testnet => cml_chain::genesis::network_info::NetworkInfo::testnet(),
ChainInfo::Preview => cml_chain::genesis::network_info::NetworkInfo::preview(),
ChainInfo::SanchoNet => cml_chain::genesis::network_info::NetworkInfo::sancho_testnet(),
ChainInfo::Custom {
protocol_magic,
network_id,
} => cml_chain::genesis::network_info::NetworkInfo {
protocol_magic: cml_core::network::ProtocolMagic::from(protocol_magic as u32),
network_id,
},
}
}
}

impl NetworkConfiguration {
pub fn mainnet() -> Self {
Self {
chain_info: ChainInfo::Mainnet,
chain_info: cml_chain::genesis::network_info::NetworkInfo::mainnet(),
relay: (Cow::Borrowed("relays-new.cardano-mainnet.iohk.io."), 3001),
from: Point::BlockHeader {
slot_nb: SlotNumber::new(4492800),
Expand All @@ -66,7 +35,7 @@ impl NetworkConfiguration {

pub fn testnet() -> Self {
Self {
chain_info: ChainInfo::Testnet,
chain_info: cml_chain::genesis::network_info::NetworkInfo::testnet(),
relay: (
Cow::Borrowed("relays-new.cardano-testnet.iohkdev.io."),
3001,
Expand All @@ -89,7 +58,7 @@ impl NetworkConfiguration {

pub fn preprod() -> Self {
Self {
chain_info: ChainInfo::Preprod,
chain_info: cml_chain::genesis::network_info::NetworkInfo::preprod(),
relay: (Cow::Borrowed("preprod-node.world.dev.cardano.org."), 30000),
from: Point::BlockHeader {
slot_nb: SlotNumber::new(86400),
Expand All @@ -109,7 +78,7 @@ impl NetworkConfiguration {

pub fn preview() -> Self {
Self {
chain_info: ChainInfo::Preview,
chain_info: cml_chain::genesis::network_info::NetworkInfo::preview(),
relay: (Cow::Borrowed("preview-node.world.dev.cardano.org."), 30002),
from: Point::BlockHeader {
slot_nb: SlotNumber::new(25400),
Expand All @@ -129,10 +98,10 @@ impl NetworkConfiguration {

pub fn sancho() -> Self {
Self {
chain_info: ChainInfo::Custom {
protocol_magic: 4,
network_id: 1,
},
chain_info: cml_chain::genesis::network_info::NetworkInfo::new(
1,
cml_core::network::ProtocolMagic::from(4),
),
relay: (
Cow::Borrowed("sanchonet-node.world.dev.cardano.org."),
30004,
Expand Down
8 changes: 6 additions & 2 deletions blockchain-source/src/cardano/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ use anyhow::{Context as _, Result};
use cardano_net::{NetworkDescription, NetworkHandle};
pub use cardano_sdk::protocol::Tip;
use cardano_sdk::protocol::Version;
pub use configuration::{ChainInfo, NetworkConfiguration};
pub use configuration::{NetworkConfiguration};
use dcspark_core::critical_error;
pub use point::*;
use tokio::sync::{mpsc, oneshot};
Expand Down Expand Up @@ -99,7 +99,11 @@ impl CardanoSource {

let config = NetworkDescription {
anchor_hosts: vec![(url.to_string(), *port)],
chain_info: network_config.chain_info.clone().into(),
chain_info: cardano_sdk::chaininfo::ChainInfo {
protocol_magic: cardano_sdk::protocol::Magic(u32::from(network_config.chain_info.protocol_magic()) as u64),
network_id: network_config.chain_info.network_id(),
bech32_hrp_address: if network_config.chain_info == cml_chain::genesis::network_info::NetworkInfo::mainnet() { "addr" } else { "addr_test" },
},
net_versions: vec![Version::V6, Version::V7, Version::V8],
known_points: vec![],
};
Expand Down

0 comments on commit c795ff1

Please sign in to comment.