use crate::base::{
ExecuteMsg as EndpointExecMsg, InstantiateMsg as EndpointInstantiateMsg,
MigrateMsg as EndpointMigrateMsg, QueryMsg as EndpointQueryMsg,
};
pub type ExecuteMsg<ModuleMsg = Empty, ReceiveMsg = Empty> =
EndpointExecMsg<BaseExecuteMsg, ModuleMsg, ReceiveMsg>;
pub type QueryMsg<ModuleMsg = Empty> = EndpointQueryMsg<BaseQueryMsg, ModuleMsg>;
pub type InstantiateMsg<ModuleMsg = Empty> = EndpointInstantiateMsg<BaseInstantiateMsg, ModuleMsg>;
pub type MigrateMsg<ModuleMsg = Empty> = EndpointMigrateMsg<BaseMigrateMsg, ModuleMsg>;
use cosmwasm_schema::QueryResponses;
use cosmwasm_std::{Addr, Empty};
#[allow(unused_imports)]
use cw_controllers::AdminResponse;
use serde::Serialize;
pub trait AppExecuteMsg: Serialize {}
impl<T: AppExecuteMsg, R: Serialize> From<T> for ExecuteMsg<T, R> {
fn from(app: T) -> Self {
Self::Module(app)
}
}
impl AppExecuteMsg for Empty {}
pub trait AppQueryMsg: Serialize {}
impl<T: AppQueryMsg> From<T> for QueryMsg<T> {
fn from(app: T) -> Self {
Self::Module(app)
}
}
impl AppQueryMsg for Empty {}
#[cosmwasm_schema::cw_serde]
pub struct BaseInstantiateMsg {
pub ans_host_address: String,
}
#[cosmwasm_schema::cw_serde]
#[cfg_attr(feature = "boot", derive(boot_core::ExecuteFns))]
#[cfg_attr(feature = "boot", impl_into(ExecuteMsg<T>))]
pub enum BaseExecuteMsg {
UpdateConfig { ans_host_address: Option<String> },
}
impl<T> From<BaseExecuteMsg> for ExecuteMsg<T> {
fn from(base: BaseExecuteMsg) -> Self {
Self::Base(base)
}
}
#[cosmwasm_schema::cw_serde]
#[derive(QueryResponses)]
#[cfg_attr(feature = "boot", derive(boot_core::QueryFns))]
#[cfg_attr(feature = "boot", impl_into(QueryMsg < ModuleMsg >))]
pub enum BaseQueryMsg {
#[returns(AppConfigResponse)]
Config {},
#[returns(AdminResponse)]
Admin {},
}
impl<T> From<BaseQueryMsg> for QueryMsg<T> {
fn from(base: BaseQueryMsg) -> Self {
Self::Base(base)
}
}
#[cosmwasm_schema::cw_serde]
pub struct AppConfigResponse {
pub proxy_address: Addr,
pub ans_host_address: Addr,
pub manager_address: Addr,
}
#[cosmwasm_schema::cw_serde]
pub struct BaseMigrateMsg {}