1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3
4use anone_cw721::msg::InstantiateMsg as An721InstantiateMsg;
5
6#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
7pub struct InstantiateMsg {
8 pub base_token_uri: String,
9 pub num_tokens: u32,
10 pub an721_code_id: u64,
11 pub an721_instantiate_msg: An721InstantiateMsg,
12 pub per_address_limit: u32,
13}
14
15#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
16#[serde(rename_all = "snake_case")]
17pub enum ExecuteMsg {
18 Mint {},
19 UpdatePerAddressLimit { per_address_limit: u32 },
20 MintTo { recipient: String },
21 MintFor { token_id: u32, recipient: String },
22}
23
24#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
25#[serde(rename_all = "snake_case")]
26pub enum QueryMsg {
27 Config {},
28 MintableNumTokens {},
29 MintCount { address: String },
30}
31
32#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
33pub struct ConfigResponse {
34 pub admin: String,
35 pub base_token_uri: String,
36 pub num_tokens: u32,
37 pub per_address_limit: u32,
38 pub an721_address: String,
39 pub an721_code_id: u64,
40}
41
42#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
43pub struct MintableNumTokensResponse {
44 pub count: u32,
45}
46
47#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
48pub struct MintCountResponse {
49 pub address: String,
50 pub count: u32,
51}