use cosmwasm_schema::{cw_serde, QueryResponses};
use cosmwasm_std::Decimal;
use mars_owner::OwnerUpdate;
use crate::types::{AssetParamsUpdate, EmergencyUpdate, VaultConfigUpdate};
#[cw_serde]
pub struct InstantiateMsg {
pub owner: String,
pub max_close_factor: Decimal,
}
#[cw_serde]
pub enum ExecuteMsg {
UpdateOwner(OwnerUpdate),
UpdateMaxCloseFactor(Decimal),
UpdateAssetParams(AssetParamsUpdate),
UpdateVaultConfig(VaultConfigUpdate),
EmergencyUpdate(EmergencyUpdate),
}
#[cw_serde]
#[derive(QueryResponses)]
pub enum QueryMsg {
#[returns(mars_owner::OwnerResponse)]
Owner {},
#[returns(crate::types::AssetParams)]
AssetParams {
denom: String,
},
#[returns(Vec<crate::types::AssetParams>)]
AllAssetParams {
start_after: Option<String>,
limit: Option<u32>,
},
#[returns(crate::types::VaultConfig)]
VaultConfig {
address: String,
},
#[returns(Vec<crate::types::VaultConfig>)]
AllVaultConfigs {
start_after: Option<String>,
limit: Option<u32>,
},
#[returns(Decimal)]
MaxCloseFactor {},
}