mars_core/
safety_fund.rs

1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3
4use cosmwasm_std::Addr;
5
6/// Safety fund global configuration
7#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
8pub struct Config {
9    /// Contract owner (has permission to update contract params)
10    pub owner: Addr,
11}
12
13pub mod msg {
14    use cosmwasm_std::CosmosMsg;
15    use schemars::JsonSchema;
16    use serde::{Deserialize, Serialize};
17
18    #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
19    pub struct InstantiateMsg {
20        pub owner: String,
21    }
22
23    #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
24    #[serde(rename_all = "snake_case")]
25    pub enum ExecuteMsg {
26        /// Execute Cosmos msg (only callable by owner)
27        ExecuteCosmosMsg(CosmosMsg),
28
29        /// Update contract config (only callable by owner)
30        UpdateConfig { owner: Option<String> },
31    }
32
33    #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
34    #[serde(rename_all = "snake_case")]
35    pub enum QueryMsg {
36        /// Query contract config
37        Config {},
38    }
39}