astroport_types/
maker.rs

1use crate::asset::{Asset, AssetInfo};
2use crate::factory::UpdateAddr;
3use cosmwasm_schema::cw_serde;
4use cosmwasm_std::{Addr, Decimal, Uint128, Uint64};
5use schemars::JsonSchema;
6use serde::{Deserialize, Serialize};
7
8#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
9pub struct InstantiateMsg {
10    pub owner: String,
11    pub astro_token_contract: String,
12    pub factory_contract: String,
13    pub staking_contract: String,
14    pub governance_contract: Option<String>,
15    pub governance_percent: Option<Uint64>,
16    pub max_spread: Option<Decimal>,
17}
18
19#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
20#[serde(rename_all = "snake_case")]
21pub enum ExecuteMsg {
22    Collect {
23        assets: Vec<AssetWithLimit>,
24    },
25    UpdateConfig {
26        factory_contract: Option<String>,
27        staking_contract: Option<String>,
28        governance_contract: Option<UpdateAddr>,
29        governance_percent: Option<Uint64>,
30        max_spread: Option<Decimal>,
31    },
32    UpdateBridges {
33        add: Option<Vec<(AssetInfo, AssetInfo)>>,
34        remove: Option<Vec<AssetInfo>>,
35    },
36    SwapBridgeAssets {
37        assets: Vec<AssetInfo>,
38        depth: u64,
39    },
40    ProposeNewOwner {
41        owner: String,
42        expires_in: u64,
43    },
44    DropOwnershipProposal {},
45    ClaimOwnership {},
46    EnableRewards {
47        blocks: u64,
48    },
49}
50
51#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
52#[serde(rename_all = "snake_case")]
53pub enum QueryMsg {
54    Config {},
55    Balances { assets: Vec<AssetInfo> },
56    Bridges {},
57}
58
59// We define a custom struct for each query response
60#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
61pub struct ConfigResponse {
62    pub owner: Addr,
63    pub astro_token_contract: Addr,
64    pub factory_contract: Addr,
65    pub staking_contract: Addr,
66    pub governance_contract: Option<Addr>,
67    pub governance_percent: Uint64,
68    pub max_spread: Decimal,
69    pub remainder_reward: Uint128,
70    pub pre_upgrade_astro_amount: Uint128,
71}
72
73// We define a custom struct for each query response
74#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
75pub struct BalancesResponse {
76    pub balances: Vec<Asset>,
77}
78
79#[cw_serde]
80pub struct AssetWithLimit {
81    pub info: AssetInfo,
82    pub limit: Option<Uint128>,
83}