whitelist_updatable/
msg.rs1use cosmwasm_schema::{cw_serde, QueryResponses};
2
3use crate::state::Config;
4
5#[cw_serde]
6pub struct InstantiateMsg {
7 pub addresses: Vec<String>,
8 pub per_address_limit: u32,
9 pub mint_discount_bps: Option<u64>,
10}
11
12#[cw_serde]
13pub enum ExecuteMsg {
14 UpdateAdmin {
15 new_admin: String,
16 },
17 AddAddresses {
18 addresses: Vec<String>,
19 },
20 RemoveAddresses {
21 addresses: Vec<String>,
22 },
23 ProcessAddress {
25 address: String,
26 },
27 UpdatePerAddressLimit {
28 limit: u32,
29 },
30 UpdateMinterContract {
31 minter_contract: String,
32 },
33 Purge {},
34}
35
36#[cw_serde]
37#[derive(QueryResponses)]
38pub enum QueryMsg {
39 #[returns(ConfigResponse)]
40 Config {},
41 #[returns(bool)]
42 IncludesAddress { address: String },
43 #[returns(u64)]
44 MintCount { address: String },
45 #[returns(IsProcessableResponse)]
47 IsProcessable { address: String },
48 #[returns(cw_controllers::AdminResponse)]
49 Admin {},
50 #[returns(u64)]
51 AddressCount {},
52 #[returns(PerAddressLimitResponse)]
53 PerAddressLimit {},
54}
55
56#[cw_serde]
57pub struct ConfigResponse {
58 pub config: Config,
59}
60
61#[cw_serde]
62pub struct PerAddressLimitResponse {
63 pub limit: u64,
64}
65
66#[cw_serde]
67pub struct IsProcessableResponse {
68 pub processable: bool,
69}