cardano_sdk/chain/byron/
addr.rs

1//! byron address support coming from
2//! <https://github.com/input-output-hk/chain-libs/blob/master/cardano-legacy-address/src/address.rs>
3
4use super::utils::base58;
5use cbored::CborRepr;
6use cbored::{tagged::EncodedCBOR, CborDataOf};
7use std::fmt;
8
9#[derive(Clone, CborRepr, PartialEq, Eq)]
10#[cborrepr(structure = "flat")]
11pub struct Addr(CborDataOf<SerializedAddress>);
12
13impl fmt::Debug for Addr {
14    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
15        write!(f, "{}", base58::encode(self.0.as_ref()))
16    }
17}
18
19impl fmt::Display for Addr {
20    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
21        write!(f, "{}", base58::encode(self.0.as_ref()))
22    }
23}
24
25#[derive(Debug, Clone, CborRepr, PartialEq, Eq)]
26#[cborrepr(structure = "array")]
27pub struct SerializedAddress {
28    inner: EncodedCBOR,
29    crc: u32,
30}