use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
use std::fmt;
use cosmwasm_std::{CosmosMsg, Empty, HumanAddr};
#[derive(Serialize, Deserialize, JsonSchema)]
pub struct InitMsg {
pub admins: Vec<HumanAddr>,
pub mutable: bool,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum HandleMsg<T = Empty>
where
T: Clone + fmt::Debug + PartialEq + JsonSchema,
{
Execute { msgs: Vec<CosmosMsg<T>> },
Freeze {},
UpdateAdmins { admins: Vec<HumanAddr> },
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum QueryMsg<T = Empty>
where
T: Clone + fmt::Debug + PartialEq + JsonSchema,
{
AdminList {},
CanExecute {
sender: HumanAddr,
msg: CosmosMsg<T>,
},
}
#[derive(Serialize, Deserialize, Clone, PartialEq, JsonSchema, Debug)]
pub struct AdminListResponse {
pub admins: Vec<HumanAddr>,
pub mutable: bool,
}