goldrush_sdk/models/
nfts.rs1use serde::Deserialize;
2
3#[derive(Debug, Clone, Deserialize)]
5pub struct NftItem {
6 pub contract_address: String,
8
9 pub token_id: String,
11
12 pub token_balance: Option<String>,
14
15 pub token_url: Option<String>,
17
18 pub contract_name: Option<String>,
20
21 pub contract_ticker_symbol: Option<String>,
23
24 pub supports_erc: Option<Vec<String>>,
26
27 pub nft_data: Option<NftMetadata>,
29}
30
31#[derive(Debug, Clone, Deserialize)]
33pub struct NftMetadata {
34 pub token_uri: Option<String>,
36
37 pub external_data: Option<ExternalNftData>,
39
40 pub original_owner: Option<String>,
42
43 pub current_owner: Option<String>,
45
46 pub asset_original_url: Option<String>,
48 pub asset_cached_url: Option<String>,
49 pub asset_file_extension: Option<String>,
50 pub asset_mime_type: Option<String>,
51}
52
53#[derive(Debug, Clone, Deserialize)]
55pub struct ExternalNftData {
56 pub name: Option<String>,
58
59 pub description: Option<String>,
61
62 pub image: Option<String>,
64
65 pub animation_url: Option<String>,
67
68 pub external_url: Option<String>,
70
71 pub attributes: Option<Vec<NftAttribute>>,
73}
74
75#[derive(Debug, Clone, Deserialize)]
77pub struct NftAttribute {
78 pub trait_type: Option<String>,
80
81 pub value: Option<serde_json::Value>,
83
84 pub display_type: Option<String>,
86}
87
88#[derive(Debug, Clone, Deserialize)]
90pub struct NftsData {
91 pub address: Option<String>,
93
94 pub chain_id: Option<u64>,
96
97 pub chain_name: Option<String>,
99
100 pub items: Vec<NftItem>,
102}
103
104pub type NftsResponse = crate::models::ApiResponse<NftsData>;
106
107#[derive(Debug, Clone, Deserialize)]
109pub struct NftMetadataItem {
110 pub contract_address: String,
112
113 pub token_id: String,
115
116 pub token_uri: Option<String>,
118
119 pub metadata: Option<serde_json::Value>,
121
122 pub external_data: Option<ExternalNftData>,
124
125 pub asset_original_url: Option<String>,
127 pub asset_cached_url: Option<String>,
128 pub asset_file_extension: Option<String>,
129 pub asset_mime_type: Option<String>,
130}
131
132pub type NftMetadataResponse = crate::models::ApiResponse<Vec<NftMetadataItem>>;