coreum_wasm_sdk/deprecated/
nft.rs1use cosmwasm_schema::QueryResponses;
2use cosmwasm_std::Binary;
3use schemars::JsonSchema;
4use serde::{Deserialize, Serialize};
5
6use crate::deprecated::pagination::{PageRequest, PageResponse};
7
8#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
9#[serde(rename_all = "snake_case")]
10pub struct NFT {
11 pub class_id: String,
12 pub id: String,
13 pub uri: Option<String>,
14 pub uri_hash: Option<String>,
15 pub data: Option<Binary>,
16}
17
18#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
19#[serde(rename_all = "snake_case")]
20pub struct Class {
21 pub id: String,
22 pub name: Option<String>,
23 pub symbol: Option<String>,
24 pub description: Option<String>,
25 pub uri: Option<String>,
26 pub uri_hash: Option<String>,
27 pub data: Option<Binary>,
28}
29
30#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
31#[serde(rename_all = "snake_case")]
32pub struct BalanceResponse {
33 pub amount: u64,
34}
35
36#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
37#[serde(rename_all = "snake_case")]
38pub struct OwnerResponse {
39 pub owner: String,
40}
41
42#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
43#[serde(rename_all = "snake_case")]
44pub struct SupplyResponse {
45 pub amount: u64,
46}
47
48#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
49#[serde(rename_all = "snake_case")]
50pub struct NFTResponse {
51 pub nft: NFT,
52}
53
54#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
55#[serde(rename_all = "snake_case")]
56pub struct NFTsResponse {
57 pub nfts: Vec<NFT>,
58 pub pagination: PageResponse,
59}
60
61#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
62#[serde(rename_all = "snake_case")]
63pub struct ClassResponse {
64 pub class: Class,
65}
66
67#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
68#[serde(rename_all = "snake_case")]
69pub struct ClassesResponse {
70 pub classes: Vec<Class>,
71 pub pagination: PageResponse,
72}
73
74#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
75pub enum Msg {
76 Send {
77 class_id: String,
78 id: String,
79 receiver: String,
80 },
81}
82
83#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema, QueryResponses)]
84pub enum Query {
85 #[returns(BalanceResponse)]
86 Balance { class_id: String, owner: String },
87
88 #[returns(OwnerResponse)]
89 Owner { class_id: String, id: String },
90
91 #[returns(SupplyResponse)]
92 Supply { class_id: String },
93
94 #[returns(NFTResponse)]
95 NFT { class_id: String, id: String },
96
97 #[returns(NFTsResponse)]
98 NFTs {
99 class_id: Option<String>,
100 owner: Option<String>,
101 pagination: Option<PageRequest>,
102 },
103
104 #[returns(ClassResponse)]
105 Class { class_id: String },
106
107 #[returns(ClassesResponse)]
108 Classes { pagination: Option<PageRequest> },
109}