open_edition_minter/
msg.rs

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