nym_pool_contract_common/
msg.rs1use crate::{Allowance, TransferRecipient};
5use cosmwasm_schema::cw_serde;
6use cosmwasm_std::Coin;
7use std::collections::HashMap;
8
9#[cfg(feature = "schema")]
10use crate::types::{
11 AvailableTokensResponse, GrantResponse, GranterResponse, GrantersPagedResponse,
12 GrantsPagedResponse, LockedTokensPagedResponse, LockedTokensResponse,
13 TotalLockedTokensResponse,
14};
15
16#[cw_serde]
17pub struct InstantiateMsg {
18 pub pool_denomination: String,
19
20 pub grants: HashMap<String, Allowance>,
22}
23
24#[cw_serde]
25pub enum ExecuteMsg {
26 UpdateAdmin {
28 admin: String,
29 update_granter_set: Option<bool>,
34 },
35
36 GrantAllowance {
38 grantee: String,
39 allowance: Box<Allowance>,
40 },
41
42 RevokeAllowance { grantee: String },
44
45 UseAllowance { recipients: Vec<TransferRecipient> },
47
48 WithdrawAllowance { amount: Coin },
50
51 LockAllowance { amount: Coin },
53
54 UnlockAllowance { amount: Coin },
56
57 UseLockedAllowance { recipients: Vec<TransferRecipient> },
59
60 WithdrawLockedAllowance { amount: Coin },
62
63 AddNewGranter { granter: String },
65
66 RevokeGranter { granter: String },
68
69 RemoveExpiredGrant { grantee: String },
71}
72
73#[cw_serde]
74#[cfg_attr(feature = "schema", derive(cosmwasm_schema::QueryResponses))]
75pub enum QueryMsg {
76 #[cfg_attr(feature = "schema", returns(cw_controllers::AdminResponse))]
77 Admin {},
78
79 #[cfg_attr(feature = "schema", returns(AvailableTokensResponse))]
80 GetAvailableTokens {},
81
82 #[cfg_attr(feature = "schema", returns(TotalLockedTokensResponse))]
83 GetTotalLockedTokens {},
84
85 #[cfg_attr(feature = "schema", returns(LockedTokensResponse))]
86 GetLockedTokens { grantee: String },
87
88 #[cfg_attr(feature = "schema", returns(GrantResponse))]
89 GetGrant { grantee: String },
90
91 #[cfg_attr(feature = "schema", returns(GranterResponse))]
92 GetGranter { granter: String },
93
94 #[cfg_attr(feature = "schema", returns(LockedTokensPagedResponse))]
95 GetLockedTokensPaged {
96 limit: Option<u32>,
98
99 start_after: Option<String>,
101 },
102
103 #[cfg_attr(feature = "schema", returns(GrantersPagedResponse))]
104 GetGrantersPaged {
105 limit: Option<u32>,
107
108 start_after: Option<String>,
110 },
111
112 #[cfg_attr(feature = "schema", returns(GrantsPagedResponse))]
113 GetGrantsPaged {
114 limit: Option<u32>,
116
117 start_after: Option<String>,
119 },
120}
121
122#[cw_serde]
123pub struct MigrateMsg {
124 }