olympus_pro/
custom_treasury.rs1use 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#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
36pub struct ConfigResponse {
37 pub payout_token: String,
38 pub policy: String,
39}