anchor_token/
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 gov_contract: String, // anchor gov contract
9    pub anchor_token: String, // anchor 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 { spend_limit: Option<Uint128> },
17    Spend { recipient: String, amount: Uint128 },
18}
19
20/// We currently take no arguments for migrations
21#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
22pub struct MigrateMsg {}
23
24#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
25#[serde(rename_all = "snake_case")]
26pub enum QueryMsg {
27    Config {},
28}
29
30// We define a custom struct for each query response
31#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
32pub struct ConfigResponse {
33    pub gov_contract: String,
34    pub anchor_token: String,
35    pub spend_limit: Uint128,
36}