helius_rust_client/models/
structs.rs1use serde::Deserialize;
2
3#[derive(Deserialize, Debug, PartialEq)]
4#[serde(rename_all = "camelCase")]
5pub struct TokenMetadata {
6 pub mint: String,
7 pub on_chain_data: Option<OnChainMetadata>,
8 pub off_chain_data: Option<OffChainMetadata>,
9}
10
11#[derive(Deserialize, Debug, PartialEq)]
12#[serde(rename_all = "camelCase")]
13pub struct OnChainMetadata {
14 pub key: String,
15 pub mint: String,
16 pub update_authority: String,
17 pub data: OnChainData,
18 pub token_standard: String,
19 pub primary_sale_happened: bool,
20 pub is_mutable: bool,
21 pub edition_nonce: i32,
22 pub collection: Option<Collection>,
23 pub collection_details: Option<CollectionDetails>,
24 pub uses: Uses,
25}
26
27#[derive(Deserialize, Debug, PartialEq)]
28#[serde(rename = "data")]
29#[serde(rename_all = "camelCase")]
30pub struct OnChainData {
31 pub name: String,
32 pub symbol: String,
33 pub uri: String,
34 pub seller_fee_basis_points: i32,
35 pub creators: Option<Vec<Creator>>,
36}
37
38#[derive(Deserialize, Debug, PartialEq)]
39#[serde(rename_all = "camelCase")]
40pub struct Creator {
41 pub address: String,
42 pub share: u64,
43 pub verified: Option<bool>,
44}
45
46#[derive(Deserialize, Debug, PartialEq)]
47#[serde(rename_all = "camelCase")]
48pub struct Collection {
49 pub key: String,
50 pub verified: bool,
51}
52
53#[derive(Deserialize, Debug, PartialEq)]
54#[serde(rename_all = "camelCase")]
55pub struct CollectionDetails {
56 pub size: i32,
57}
58
59#[derive(Deserialize, Debug, PartialEq)]
60#[serde(rename_all = "camelCase")]
61pub struct Uses {
62 pub use_method: String,
63 pub remaining: i32,
64 pub total: i32,
65}
66
67#[derive(Deserialize, Debug, PartialEq)]
68#[serde(rename_all = "camelCase")]
69pub struct OffChainMetadata {
70 pub name: String,
71 pub symbol: String,
72 pub attributes: Vec<Attribute>,
73 pub seller_fee_basis_points: i32,
74 pub image: String,
75 pub properties: Properties,
76}
77
78#[derive(Deserialize, Debug, PartialEq)]
79#[serde(rename_all = "camelCase")]
80pub struct Attribute {
81 pub trait_type: String,
82 pub value: String,
83}
84
85#[derive(Deserialize, Debug, PartialEq)]
86#[serde(rename_all = "camelCase")]
87pub struct Properties {
88 pub category: String,
89 pub files: Vec<File>,
90 pub creators: Vec<Creator>,
91}
92
93#[derive(Deserialize, Debug, PartialEq)]
94#[serde(rename_all = "camelCase")]
95pub struct File {
96 pub uri: String,
97 #[serde(rename = "type")]
98 pub file_type: String,
99}