use crate::IcaAction;
use abstract_sdk::std::objects::TruncatedChainId;
use cosmwasm_schema::QueryResponses;
use cosmwasm_std::{Addr, CosmosMsg};
use cw_ownable::{cw_ownable_execute, cw_ownable_query};
#[cosmwasm_schema::cw_serde]
pub struct InstantiateMsg {
pub ans_host_address: String,
pub registry_address: String,
}
#[cosmwasm_schema::cw_serde]
pub enum MigrateMsg {
Instantiate(InstantiateMsg),
Migrate {},
}
#[cw_ownable_execute]
#[cosmwasm_schema::cw_serde]
#[derive(cw_orch::ExecuteFns)]
pub enum ExecuteMsg {}
#[cw_ownable_query]
#[cosmwasm_schema::cw_serde]
#[derive(QueryResponses, cw_orch::QueryFns)]
pub enum QueryMsg {
#[returns(ConfigResponse)]
Config {},
#[returns(IcaActionResult)]
IcaAction {
account_address: String,
chain: TruncatedChainId,
actions: Vec<IcaAction>,
},
}
#[cosmwasm_schema::cw_serde]
pub struct ConfigResponse {
pub ans_host: Addr,
pub registry_address: Addr,
}
#[cosmwasm_schema::cw_serde]
pub struct IcaActionResult {
pub msgs: Vec<CosmosMsg>,
}