use cosmwasm_schema::QueryResponses;
use cosmwasm_std::Empty;
use crate::ibc::{IbcResponseMsg, ModuleIbcMsg};
#[cosmwasm_schema::cw_serde]
pub enum ExecuteMsg<BaseMsg, CustomExecMsg> {
Base(BaseMsg),
Module(CustomExecMsg),
IbcCallback(IbcResponseMsg),
ModuleIbc(ModuleIbcMsg),
}
#[cosmwasm_schema::cw_serde]
pub struct InstantiateMsg<BaseMsg, CustomInitMsg = Empty> {
pub base: BaseMsg,
pub module: CustomInitMsg,
}
#[cosmwasm_schema::cw_serde]
#[derive(QueryResponses)]
#[query_responses(nested)]
pub enum QueryMsg<BaseMsg, CustomQueryMsg = Empty> {
Base(BaseMsg),
Module(CustomQueryMsg),
}
#[cosmwasm_schema::cw_serde]
pub struct MigrateMsg<BaseMsg = Empty, CustomMigrateMsg = Empty> {
pub base: BaseMsg,
pub module: CustomMigrateMsg,
}