whisky_pallas/wrapper/transaction_body/
network_id.rs1use 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}