use libipld::{Cid, DagCbor};
use serde::{Deserialize, Serialize};
use crate::pubkey::PublicKey;
use super::UNSAccount;
#[derive(Default, Debug, Clone, DagCbor, Serialize, Deserialize)]
pub struct MNSAccount {
pub uns: UNSAccount,
pub r#type: MNSTypes,
pub pub_key: PublicKey,
pub quota: u64,
pub lease: u64,
pub client_id: Cid,
}
#[derive(Debug, Serialize, DagCbor, Deserialize, Clone)]
#[serde(rename_all = "camelCase")]
pub enum MNSTypes {
Unicast,
Multicast,
ServiceProvider,
}
impl Default for MNSTypes {
fn default() -> Self {
Self::Unicast
}
}