sg_whitelist/
msg.rs

1use cosmwasm_schema::cw_serde;
2use cosmwasm_std::{Coin, CosmosMsg, Empty, Timestamp};
3
4#[cw_serde]
5pub struct InstantiateMsg {
6    pub members: Vec<String>,
7    pub start_time: Timestamp,
8    pub end_time: Timestamp,
9    pub mint_price: Coin,
10    pub per_address_limit: u32,
11    pub member_limit: u32,
12    pub admins: Vec<String>,
13    pub admins_mutable: bool,
14}
15
16#[cw_serde]
17pub enum ExecuteMsg {
18    UpdateStartTime(Timestamp),
19    UpdateEndTime(Timestamp),
20    AddMembers(AddMembersMsg),
21    RemoveMembers(RemoveMembersMsg),
22    UpdatePerAddressLimit(u32),
23    IncreaseMemberLimit(u32),
24    UpdateAdmins { admins: Vec<String> },
25    Freeze {},
26}
27
28#[cw_serde]
29pub struct AdminListResponse {
30    pub admins: Vec<String>,
31    pub mutable: bool,
32}
33
34#[cw_serde]
35pub struct AddMembersMsg {
36    pub to_add: Vec<String>,
37}
38
39#[cw_serde]
40pub struct RemoveMembersMsg {
41    pub to_remove: Vec<String>,
42}
43
44#[cw_serde]
45pub enum QueryMsg {
46    HasStarted {},
47    HasEnded {},
48    IsActive {},
49    Members {
50        start_after: Option<String>,
51        limit: Option<u32>,
52    },
53    HasMember {
54        member: String,
55    },
56    Config {},
57
58    AdminList {},
59
60    CanExecute {
61        sender: String,
62        msg: CosmosMsg<Empty>,
63    },
64}
65
66#[cw_serde]
67pub struct MembersResponse {
68    pub members: Vec<String>,
69}
70
71#[cw_serde]
72pub struct HasMemberResponse {
73    pub has_member: bool,
74}
75
76#[cw_serde]
77pub struct HasEndedResponse {
78    pub has_ended: bool,
79}
80
81#[cw_serde]
82pub struct HasStartedResponse {
83    pub has_started: bool,
84}
85
86#[cw_serde]
87pub struct IsActiveResponse {
88    pub is_active: bool,
89}
90
91#[cw_serde]
92pub struct MintPriceResponse {
93    pub mint_price: Coin,
94}
95
96#[cw_serde]
97pub struct ConfigResponse {
98    pub num_members: u32,
99    pub per_address_limit: u32,
100    pub member_limit: u32,
101    pub start_time: Timestamp,
102    pub end_time: Timestamp,
103    pub mint_price: Coin,
104    pub is_active: bool,
105}
106
107#[cw_serde]
108pub enum SudoMsg {
109    /// Add a new operator
110    AddOperator { operator: String },
111    /// Remove operator
112    RemoveOperator { operator: String },
113}
114
115#[cw_serde]
116pub struct CanExecuteResponse {
117    pub can_execute: bool,
118}