Skip to main content

solid_moneymarket/
interest_model.rs

1use 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 base_rate: Decimal256,
10    pub base_peg: Decimal256,
11}
12
13#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
14#[serde(rename_all = "snake_case")]
15pub enum ExecuteMsg {
16    UpdateConfig {
17        owner: Option<String>,
18        base_rate: Option<Decimal256>,
19        base_peg: Option<Decimal256>,
20    },
21}
22
23#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
24#[serde(rename_all = "snake_case")]
25pub enum QueryMsg {
26    Config {},
27    BorrowRate { actual_peg: Decimal256 },
28}
29
30// We define a custom struct for each query response
31#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
32pub struct ConfigResponse {
33    pub owner: String,
34    pub base_rate: Decimal256,
35    pub base_peg: Decimal256,
36}
37
38// We define a custom struct for each query response
39#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
40pub struct BorrowRateResponse {
41    pub rate: Decimal256,
42}
43
44#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
45#[serde(rename_all = "snake_case")]
46pub struct MigrateMsg {}