mars_core/
treasury.rs

1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3
4use cosmwasm_std::Addr;
5
6/// Treasury global configuration
7#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
8pub struct Config {
9    pub owner: Addr,
10}
11
12pub mod msg {
13    use schemars::JsonSchema;
14    use serde::{Deserialize, Serialize};
15
16    use cosmwasm_std::CosmosMsg;
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
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        Config {},
37    }
38}