Skip to main content

juno_querier/
oracle_querier.rs

1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3
4use cosmwasm_std::{CustomQuery, Decimal};
5
6#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
7pub struct InstantiateMsg {}
8
9#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
10#[serde(rename_all = "snake_case")]
11pub enum ExecuteMsg {
12    SetExchangeRate { denom: String },
13}
14
15#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
16#[serde(rename_all = "snake_case")]
17pub enum QueryMsg {
18    ExchangeRate { denom: String },
19    ExchangeRateStarGate { address: String, denom: String },
20}
21
22#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
23#[serde(rename_all = "snake_case")]
24pub enum UltraQuery {
25    Oracle(OracleQuery),
26}
27
28impl CustomQuery for UltraQuery {}
29
30#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
31#[serde(rename_all = "snake_case")]
32pub enum OracleQuery {
33    // ExchangeRate will return the rate of this denom.
34    ExchangeRate { denom: String },
35    // ExchangeRates will return the exchange rate between offer denom and all supported asks
36}
37
38#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
39pub struct ExchangeRateResponse {
40    pub rate: Decimal,
41}
42
43#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
44pub struct QueryBalanceRequest {
45    pub address: String,
46    pub denom: String,
47}
48
49#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
50pub struct MigrateMsg {}