abstract_cw20_ics20/
msg.rs1use abstract_cw20::Cw20ReceiveMsg;
2use cosmwasm_schema::{cw_serde, QueryResponses};
3
4use crate::amount::Amount;
5use crate::state::ChannelInfo;
6
7#[cw_serde]
8pub struct InitMsg {
9 pub default_timeout: u64,
11 pub gov_contract: String,
13 pub allowlist: Vec<AllowMsg>,
15 pub default_gas_limit: Option<u64>,
18}
19
20#[cw_serde]
21pub struct AllowMsg {
22 pub contract: String,
23 pub gas_limit: Option<u64>,
24}
25
26#[cw_serde]
27pub struct MigrateMsg {
28 pub default_gas_limit: Option<u64>,
29}
30
31#[cw_serde]
32#[derive(cw_orch::ExecuteFns)]
33pub enum ExecuteMsg {
34 Receive(Cw20ReceiveMsg),
36 Transfer(TransferMsg),
38 Allow(AllowMsg),
40 UpdateAdmin { admin: String },
42}
43
44#[cw_serde]
46pub struct TransferMsg {
47 pub channel: String,
49 pub remote_address: String,
53 pub timeout: Option<u64>,
55 pub memo: Option<String>,
57}
58
59#[cw_serde]
60#[derive(QueryResponses, cw_orch::QueryFns)]
61pub enum QueryMsg {
62 #[returns(PortResponse)]
64 Port {},
65 #[returns(ListChannelsResponse)]
67 ListChannels {},
68 #[returns(ChannelResponse)]
70 Channel { id: String },
71 #[returns(ConfigResponse)]
73 Config {},
74 #[returns(cw_controllers::AdminResponse)]
75 Admin {},
76 #[returns(AllowedResponse)]
78 Allowed { contract: String },
79 #[returns(ListAllowedResponse)]
81 ListAllowed {
82 start_after: Option<String>,
83 limit: Option<u32>,
84 },
85}
86
87#[cw_serde]
88pub struct ListChannelsResponse {
89 pub channels: Vec<ChannelInfo>,
90}
91
92#[cw_serde]
93pub struct ChannelResponse {
94 pub info: ChannelInfo,
96 pub balances: Vec<Amount>,
98 pub total_sent: Vec<Amount>,
101}
102
103#[cw_serde]
104pub struct PortResponse {
105 pub port_id: String,
106}
107
108#[cw_serde]
109pub struct ConfigResponse {
110 pub default_timeout: u64,
111 pub default_gas_limit: Option<u64>,
112 pub gov_contract: String,
113}
114
115#[cw_serde]
116pub struct AllowedResponse {
117 pub is_allowed: bool,
118 pub gas_limit: Option<u64>,
119}
120
121#[cw_serde]
122pub struct ListAllowedResponse {
123 pub allow: Vec<AllowedInfo>,
124}
125
126#[cw_serde]
127pub struct AllowedInfo {
128 pub contract: String,
129 pub gas_limit: Option<u64>,
130}