olympus_pro/
custom_treasury.rs

1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3
4use cosmwasm_std::Uint128;
5
6use terraswap::asset::Asset;
7
8#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
9pub struct InstantiateMsg {
10    pub payout_token: String,
11    pub initial_owner: String,
12}
13
14#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
15#[serde(rename_all = "snake_case")]
16pub enum ExecuteMsg {
17    UpdateConfig { policy: Option<String> },
18    SendPayoutTokens { amount: Uint128 },
19    Withdraw { asset: Asset, recipient: String },
20    WhitelistBond { bond: String, whitelist: bool },
21}
22
23#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
24#[serde(rename_all = "snake_case")]
25pub struct MigrateMsg {}
26
27#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
28#[serde(rename_all = "snake_case")]
29pub enum QueryMsg {
30    Config {},
31    BondWhitelist { bond: String },
32}
33
34// We define a custom struct for each query response
35#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
36pub struct ConfigResponse {
37    pub payout_token: String,
38    pub policy: String,
39}