injective_cosmwasm/oracle/
volatility.rs

1use injective_math::FPDecimal;
2use schemars::JsonSchema;
3use serde::{Deserialize, Serialize};
4
5#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
6pub struct MetadataStatistics {
7    pub group_count: u32,
8    pub records_sample_size: u32,
9    pub mean: FPDecimal,
10    pub twap: FPDecimal,
11    pub first_timestamp: i64,
12    pub last_timestamp: i64,
13    pub min_price: FPDecimal,
14    pub max_price: FPDecimal,
15    pub median_price: FPDecimal,
16}
17
18#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
19pub struct TradeHistoryOptions {
20    pub trade_grouping_sec: u64,
21    pub max_age: u64,
22    pub include_raw_history: bool,
23    pub include_metadata: bool,
24}
25
26#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
27pub struct PriceRecord {
28    timestamp: i64,
29    price: FPDecimal,
30}
31
32#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
33pub struct TradeRecord {
34    timestamp: i64,
35    price: FPDecimal,
36    quantity: FPDecimal,
37}