abstract_os/
base.rs

1use abstract_ica::IbcResponseMsg;
2use cosmwasm_std::Empty;
3
4/// Wrapper around all possible messages that can be sent to the contract.
5#[cosmwasm_schema::cw_serde]
6pub enum ExecuteMsg<BaseMsg, AppMsg, ReceiveMsg = Empty> {
7    /// A configuration message, defined by the base.
8    Base(BaseMsg),
9    /// An app request defined by a base consumer.
10    App(AppMsg),
11    /// IbcReceive to process IBC callbacks
12    IbcCallback(IbcResponseMsg),
13    /// Receive endpoint for CW20 / external service integrations
14    Receive(ReceiveMsg),
15}
16
17#[cosmwasm_schema::cw_serde]
18pub struct InstantiateMsg<BaseMsg, AppMsg = Empty> {
19    /// base instantiate information
20    pub base: BaseMsg,
21    /// custom instantiate msg
22    pub app: AppMsg,
23}
24
25#[cosmwasm_schema::cw_serde]
26pub enum QueryMsg<BaseMsg, AppMsg = Empty> {
27    /// A query to the base.
28    Base(BaseMsg),
29    /// Custom query
30    App(AppMsg),
31}
32
33#[cosmwasm_schema::cw_serde]
34pub struct MigrateMsg<BaseMsg = Empty, AppMsg = Empty> {
35    /// base migrate information
36    pub base: BaseMsg,
37    /// custom migrate msg
38    pub app: AppMsg,
39}