whisky_pallas/wrapper/transaction_body/
network_id.rs

1use pallas::ledger::primitives::{Fragment, NetworkId as PallasNetworkId};
2
3pub enum NetworkIdKind {
4    Mainnet,
5    Testnet,
6}
7
8#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)]
9pub struct NetworkId {
10    pub inner: PallasNetworkId,
11}
12
13impl NetworkId {
14    pub fn new(network_id: NetworkIdKind) -> Self {
15        let pallas_network_id = match network_id {
16            NetworkIdKind::Mainnet => PallasNetworkId::Mainnet,
17            NetworkIdKind::Testnet => PallasNetworkId::Testnet,
18        };
19
20        Self {
21            inner: pallas_network_id,
22        }
23    }
24
25    pub fn encode(&self) -> String {
26        hex::encode(
27            self.inner
28                .encode_fragment()
29                .expect("encoding failed at NetworkId"),
30        )
31    }
32
33    pub fn decode_bytes(bytes: &[u8]) -> Result<Self, String> {
34        let inner = PallasNetworkId::decode_fragment(&bytes)
35            .map_err(|e| format!("Fragment decode error: {}", e.to_string()))?;
36        Ok(Self { inner })
37    }
38}