solid_moneymarket/
distribution_model.rs1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3
4use cosmwasm_std::Decimal256;
5
6#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
7pub struct InstantiateMsg {
8 pub owner: String,
9 pub emission_cap: Decimal256,
10 pub emission_floor: Decimal256,
11 pub increment_multiplier: Decimal256,
12 pub decrement_multiplier: Decimal256,
13}
14
15#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
16#[serde(rename_all = "snake_case")]
17pub enum ExecuteMsg {
18 UpdateConfig {
19 owner: Option<String>,
20 emission_cap: Option<Decimal256>,
21 emission_floor: Option<Decimal256>,
22 increment_multiplier: Option<Decimal256>,
23 decrement_multiplier: Option<Decimal256>,
24 },
25}
26
27#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
28#[serde(rename_all = "snake_case")]
29pub enum QueryMsg {
30 Config {},
31 AncEmissionRate {
32 deposit_rate: Decimal256,
33 target_deposit_rate: Decimal256,
34 threshold_deposit_rate: Decimal256,
35 current_emission_rate: Decimal256,
36 },
37}
38
39#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
41pub struct ConfigResponse {
42 pub owner: String,
43 pub emission_cap: Decimal256,
44 pub emission_floor: Decimal256,
45 pub increment_multiplier: Decimal256,
46 pub decrement_multiplier: Decimal256,
47}
48
49#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
51pub struct AncEmissionRateResponse {
52 pub emission_rate: Decimal256,
53}