blockfrost_openapi/models/
asset.rs1use crate::models;
2use serde::{Deserialize, Serialize};
3
4#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5pub struct Asset {
6 #[serde(rename = "asset")]
8 pub asset: String,
9 #[serde(rename = "policy_id")]
11 pub policy_id: String,
12 #[serde(rename = "asset_name", deserialize_with = "Option::deserialize")]
14 pub asset_name: Option<String>,
15 #[serde(rename = "fingerprint")]
17 pub fingerprint: String,
18 #[serde(rename = "quantity")]
20 pub quantity: String,
21 #[serde(rename = "initial_mint_tx_hash")]
23 pub initial_mint_tx_hash: String,
24 #[serde(rename = "mint_or_burn_count")]
26 pub mint_or_burn_count: i32,
27 #[serde(rename = "onchain_metadata", deserialize_with = "Option::deserialize")]
29 pub onchain_metadata: Option<std::collections::HashMap<String, serde_json::Value>>,
30 #[serde(rename = "onchain_metadata_standard", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
32 pub onchain_metadata_standard: Option<Option<OnchainMetadataStandard>>,
33 #[serde(rename = "onchain_metadata_extra", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
35 pub onchain_metadata_extra: Option<Option<String>>,
36 #[serde(rename = "metadata", deserialize_with = "Option::deserialize")]
37 pub metadata: Option<Box<models::AssetMetadata>>,
38}
39
40impl Asset {
41 pub fn new(asset: String, policy_id: String, asset_name: Option<String>, fingerprint: String, quantity: String, initial_mint_tx_hash: String, mint_or_burn_count: i32, onchain_metadata: Option<std::collections::HashMap<String, serde_json::Value>>, metadata: Option<models::AssetMetadata>) -> Asset {
42 Asset {
43 asset,
44 policy_id,
45 asset_name,
46 fingerprint,
47 quantity,
48 initial_mint_tx_hash,
49 mint_or_burn_count,
50 onchain_metadata,
51 onchain_metadata_standard: None,
52 onchain_metadata_extra: None,
53 metadata: if let Some(x) = metadata {Some(Box::new(x))} else {None},
54 }
55 }
56}
57#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
59pub enum OnchainMetadataStandard {
60 #[serde(rename = "CIP25v1")]
61 Cip25v1,
62 #[serde(rename = "CIP25v2")]
63 Cip25v2,
64 #[serde(rename = "CIP68v1")]
65 Cip68v1,
66 #[serde(rename = "CIP68v2")]
67 Cip68v2,
68 #[serde(rename = "CIP68v3")]
69 Cip68v3,
70}
71
72impl Default for OnchainMetadataStandard {
73 fn default() -> OnchainMetadataStandard {
74 Self::Cip25v1
75 }
76}
77