1use cosmwasm_schema::{cw_serde, QueryResponses};
2use cosmwasm_std::Addr;
3use sg_controllers::ContractInstantiateMsg;
4
5#[cw_serde]
6pub enum Group {
7 Cw4Instantiate(ContractInstantiateMsg),
8 Cw4Address(String),
9}
10
11#[cw_serde]
12pub struct InstantiateMsg {
13 pub admin: Option<String>,
14 pub group: Group,
15}
16
17#[cw_serde]
18pub enum ExecuteMsg {
19 UpdateAdmin { admin: Option<String> },
20 Distribute { denom_list: Option<Vec<String>> },
21}
22
23#[cw_serde]
24#[derive(QueryResponses)]
25pub enum QueryMsg {
26 #[returns(cw_controllers::AdminResponse)]
27 Admin {},
28
29 #[returns(Addr)]
30 Group {},
31
32 #[returns(cw4::MemberResponse)]
33 Member { address: String },
34
35 #[returns(cw4::MemberListResponse)]
36 ListMembers {
37 start_after: Option<String>,
38 limit: Option<u32>,
39 },
40}