Skip to main content

vending_minter/
msg.rs

1use cosmwasm_schema::cw_serde;
2use cosmwasm_std::{Coin, Timestamp};
3use vending_factory::{msg::VendingMinterCreateMsg, state::VendingMinterParams};
4
5#[cw_serde]
6pub struct InstantiateMsg {
7    pub create_msg: VendingMinterCreateMsg,
8    pub params: VendingMinterParams,
9}
10
11#[cw_serde]
12pub enum ExecuteMsg {
13    Mint {},
14    SetWhitelist {
15        whitelist: String,
16    },
17    Purge {},
18    UpdateMintPrice {
19        price: u128,
20    },
21    UpdateStartTime(Timestamp),
22    /// Runs custom checks against TradingStartTime on VendingMinter, then updates by calling sg721-base
23    UpdateStartTradingTime(Option<Timestamp>),
24    UpdatePerAddressLimit {
25        per_address_limit: u32,
26    },
27    MintTo {
28        recipient: String,
29    },
30    MintFor {
31        token_id: u32,
32        recipient: String,
33    },
34    Shuffle {},
35    BurnRemaining {},
36    UpdateDiscountPrice {
37        price: u128,
38    },
39    RemoveDiscountPrice {},
40}
41
42#[cw_serde]
43pub enum QueryMsg {
44    Config {},
45    MintableNumTokens {},
46    StartTime {},
47    MintPrice {},
48    MintCount { address: String },
49    Status {},
50}
51
52#[cw_serde]
53pub struct ConfigResponse {
54    pub admin: String,
55    pub base_token_uri: String,
56    pub num_tokens: u32,
57    pub per_address_limit: u32,
58    pub sg721_address: String,
59    pub sg721_code_id: u64,
60    pub start_time: Timestamp,
61    pub mint_price: Coin,
62    pub whitelist: Option<String>,
63    pub factory: String,
64    pub discount_price: Option<Coin>,
65}
66
67#[cw_serde]
68pub struct MintableNumTokensResponse {
69    pub count: u32,
70}
71
72#[cw_serde]
73pub struct StartTimeResponse {
74    pub start_time: String,
75}
76
77#[cw_serde]
78pub struct MintPriceResponse {
79    pub public_price: Coin,
80    pub airdrop_price: Coin,
81    pub whitelist_price: Option<Coin>,
82    pub current_price: Coin,
83    pub discount_price: Option<Coin>,
84}
85
86#[cw_serde]
87pub struct MintCountResponse {
88    pub address: String,
89    pub count: u32,
90}