helius_rust_client/models/
structs.rs

1use 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}