whisky_provider/blockfrost/models/
asset.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4pub struct AssetAddresses {
5 #[serde(rename = "address")]
7 pub address: String,
8 #[serde(rename = "quantity")]
10 pub quantity: String,
11}
12
13#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
14pub struct BlockfrostAsset {
15 #[serde(rename = "asset")]
17 pub asset: String,
18 #[serde(rename = "policy_id")]
20 pub policy_id: String,
21 #[serde(rename = "asset_name", deserialize_with = "Option::deserialize")]
23 pub asset_name: Option<String>,
24 #[serde(rename = "fingerprint")]
26 pub fingerprint: String,
27 #[serde(rename = "quantity")]
29 pub quantity: String,
30 #[serde(rename = "initial_mint_tx_hash")]
32 pub initial_mint_tx_hash: String,
33 #[serde(rename = "mint_or_burn_count")]
35 pub mint_or_burn_count: i32,
36 #[serde(rename = "onchain_metadata", deserialize_with = "Option::deserialize")]
38 pub onchain_metadata: Option<std::collections::HashMap<String, serde_json::Value>>,
39 pub onchain_metadata_standard: Option<Option<OnchainMetadataStandard>>,
41 pub onchain_metadata_extra: Option<Option<String>>,
43 #[serde(rename = "metadata", deserialize_with = "Option::deserialize")]
44 pub metadata: Option<Box<AssetMetadata>>,
45}
46
47#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
48pub enum OnchainMetadataStandard {
49 #[serde(rename = "CIP25v1")]
50 Cip25v1,
51 #[serde(rename = "CIP25v2")]
52 Cip25v2,
53 #[serde(rename = "CIP68v1")]
54 Cip68v1,
55 #[serde(rename = "CIP68v2")]
56 Cip68v2,
57 #[serde(rename = "CIP68v3")]
58 Cip68v3,
59}
60
61impl Default for OnchainMetadataStandard {
62 fn default() -> OnchainMetadataStandard {
63 Self::Cip25v1
64 }
65}
66
67#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
69pub struct AssetMetadata {
70 #[serde(rename = "name")]
72 pub name: String,
73 #[serde(rename = "description")]
75 pub description: String,
76 #[serde(rename = "ticker", deserialize_with = "Option::deserialize")]
77 pub ticker: Option<String>,
78 #[serde(rename = "url", deserialize_with = "Option::deserialize")]
80 pub url: Option<String>,
81 #[serde(rename = "logo", deserialize_with = "Option::deserialize")]
83 pub logo: Option<String>,
84 #[serde(rename = "decimals", deserialize_with = "Option::deserialize")]
86 pub decimals: Option<i32>,
87}
88
89#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
90pub struct AssetPolicy {
91 #[serde(rename = "asset")]
93 pub asset: String,
94 #[serde(rename = "quantity")]
96 pub quantity: String,
97}