mars_params/
msg.rs

1use cosmwasm_schema::{cw_serde, QueryResponses};
2use cosmwasm_std::Decimal;
3use mars_owner::OwnerUpdate;
4
5use crate::types::{asset::AssetParamsUnchecked, vault::VaultConfigUnchecked};
6
7#[cw_serde]
8pub struct InstantiateMsg {
9    /// Contract's owner
10    pub owner: String,
11    /// Determines the ideal HF a position should be left at immediately after the position has been liquidated.
12    pub target_health_factor: Decimal,
13}
14
15#[cw_serde]
16pub enum ExecuteMsg {
17    UpdateOwner(OwnerUpdate),
18    UpdateTargetHealthFactor(Decimal),
19    UpdateAssetParams(AssetParamsUpdate),
20    UpdateVaultConfig(VaultConfigUpdate),
21    EmergencyUpdate(EmergencyUpdate),
22}
23
24#[cw_serde]
25#[derive(QueryResponses)]
26pub enum QueryMsg {
27    #[returns(mars_owner::OwnerResponse)]
28    Owner {},
29
30    #[returns(crate::types::asset::AssetParams)]
31    AssetParams {
32        denom: String,
33    },
34
35    #[returns(Vec<crate::types::asset::AssetParams>)]
36    AllAssetParams {
37        start_after: Option<String>,
38        limit: Option<u32>,
39    },
40
41    #[returns(crate::types::vault::VaultConfig)]
42    VaultConfig {
43        /// Address of vault
44        address: String,
45    },
46
47    #[returns(Vec<crate::types::vault::VaultConfig>)]
48    AllVaultConfigs {
49        start_after: Option<String>,
50        limit: Option<u32>,
51    },
52
53    #[returns(Decimal)]
54    TargetHealthFactor {},
55}
56
57#[cw_serde]
58pub enum AssetParamsUpdate {
59    AddOrUpdate {
60        params: AssetParamsUnchecked,
61    },
62}
63
64#[cw_serde]
65pub enum VaultConfigUpdate {
66    AddOrUpdate {
67        config: VaultConfigUnchecked,
68    },
69}
70
71#[cw_serde]
72pub enum CmEmergencyUpdate {
73    SetZeroMaxLtvOnVault(String),
74    SetZeroDepositCapOnVault(String),
75    DisallowCoin(String),
76}
77
78#[cw_serde]
79pub enum RedBankEmergencyUpdate {
80    DisableBorrowing(String),
81}
82
83#[cw_serde]
84pub enum EmergencyUpdate {
85    CreditManager(CmEmergencyUpdate),
86    RedBank(RedBankEmergencyUpdate),
87}