mirror_protocol/
community.rs

1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3
4use cosmwasm_std::Uint128;
5
6#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
7pub struct InstantiateMsg {
8    pub owner: String,        // mirror gov contract
9    pub mirror_token: String, // mirror token address
10    pub spend_limit: Uint128, // spend limit per each `spend` request
11}
12
13#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
14#[serde(rename_all = "snake_case")]
15pub enum ExecuteMsg {
16    UpdateConfig {
17        owner: Option<String>,
18        spend_limit: Option<Uint128>,
19    },
20    Spend {
21        recipient: String,
22        amount: Uint128,
23    },
24}
25
26/// We currently take no arguments for migrations
27#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
28pub struct MigrateMsg {}
29
30#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
31#[serde(rename_all = "snake_case")]
32pub enum QueryMsg {
33    Config {},
34}
35
36// We define a custom struct for each query response
37#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
38pub struct ConfigResponse {
39    pub owner: String,
40    pub mirror_token: String,
41    pub spend_limit: Uint128,
42}