Skip to main content

liquid_finance/treasury/
query_msg.rs

1use archway_bindings::Coins;
2use cosmwasm_schema::QueryResponses;
3use schemars::JsonSchema;
4use serde::{Deserialize, Serialize};
5
6use super::handle_msg::{ArchwayRewardsPercentage, AssetInfo, SendingInfo};
7
8#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema, QueryResponses)]
9#[serde(rename_all = "snake_case")]
10pub enum QueryMsg {
11    /// Returns the configuration of the contract.
12    #[returns(ConfigResponse)]
13    ConfigInfo {},
14    /// Returns the claimable rewards of the contract.
15    #[returns(OutstandingRewardsResponse)]
16    OutstandingRewards {},
17    /// Returns the detail of distribution for unclaimed archway rewards.
18    #[returns(UnclaimedRewardsDistributionResponse)]
19    UnclaimedRewardsDistribution {},
20}
21
22// We define a custom struct for each query response
23#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
24pub struct ConfigResponse {
25    pub admin: String,
26    pub archway_rewards: Vec<ArchwayRewardsPercentage>,
27}
28
29#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
30pub struct OutstandingRewardsResponse {
31    pub rewards_balance: Coins,
32    pub total_records: u64,
33}
34
35#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
36pub struct UnclaimedRewardsDistributionResponse {
37    pub asset_info: AssetInfo,
38    pub to: Vec<SendingInfo>
39}