rust_okx/api/finance/responses/
staking.rs1use crate::model::NumberString;
2use serde::Deserialize;
3
4#[derive(Debug, Clone, Deserialize)]
6#[serde(rename_all = "camelCase")]
7#[non_exhaustive]
8pub struct StakingDefiInvestData {
9 #[serde(default)]
11 pub ccy: String,
12 #[serde(default)]
14 pub amt: NumberString,
15 #[serde(default)]
17 pub earnings: NumberString,
18}
19
20#[derive(Debug, Clone, Deserialize)]
22#[serde(rename_all = "camelCase")]
23#[non_exhaustive]
24pub struct StakingDefiOffer {
25 #[serde(default)]
27 pub product_id: String,
28 #[serde(default)]
30 pub protocol_type: String,
31 #[serde(default)]
33 pub name: String,
34 #[serde(default)]
36 pub ccy: String,
37 #[serde(default)]
39 pub term: String,
40 #[serde(default)]
42 pub apy: NumberString,
43 #[serde(default)]
45 pub state: String,
46 #[serde(default)]
48 pub invest_data: Vec<StakingDefiInvestData>,
49}
50
51#[derive(Debug, Clone, Deserialize)]
53#[serde(rename_all = "camelCase")]
54#[non_exhaustive]
55pub struct StakingDefiOrder {
56 #[serde(default)]
58 pub ord_id: String,
59 #[serde(default)]
61 pub product_id: String,
62 #[serde(default)]
64 pub protocol_type: String,
65 #[serde(default)]
67 pub ccy: String,
68 #[serde(default)]
70 pub amt: NumberString,
71 #[serde(default)]
73 pub state: String,
74 #[serde(default)]
76 pub term: String,
77 #[serde(default)]
79 pub apy: NumberString,
80 #[serde(default)]
82 pub c_time: NumberString,
83 #[serde(default)]
85 pub u_time: NumberString,
86}
87
88#[derive(Debug, Clone, Deserialize)]
90#[serde(rename_all = "camelCase")]
91#[non_exhaustive]
92pub struct StakingProductInfo {
93 #[serde(default)]
96 pub fast_redemption_daily_limit: NumberString,
97 #[serde(default)]
99 pub rate: NumberString,
100 #[serde(default)]
102 pub redempt_days: NumberString,
103 #[serde(default)]
105 pub min_amt: NumberString,
106 #[serde(default)]
109 pub fast_redemption_avail: Option<NumberString>,
110}
111
112#[derive(Debug, Clone, Deserialize)]
114#[serde(rename_all = "camelCase")]
115#[non_exhaustive]
116pub struct StakingOrder {
117 #[serde(default)]
119 pub ord_id: String,
120 #[serde(default)]
122 pub ccy: String,
123 #[serde(default)]
125 pub amt: NumberString,
126 #[serde(default)]
128 pub state: String,
129 #[serde(default, rename = "type")]
131 pub order_type: String,
132 #[serde(default)]
134 pub c_time: NumberString,
135}
136
137#[derive(Debug, Clone, Deserialize)]
139#[serde(rename_all = "camelCase")]
140#[non_exhaustive]
141pub struct CancelRedeem {
142 #[serde(default)]
144 pub ord_id: String,
145}
146
147#[derive(Debug, Clone, Deserialize)]
149#[serde(rename_all = "camelCase")]
150#[non_exhaustive]
151pub struct StakingBalance {
152 #[serde(default)]
154 pub ccy: String,
155 #[serde(default)]
157 pub amt: NumberString,
158 #[serde(default)]
160 pub earnings: NumberString,
161}
162
163#[derive(Debug, Clone, Deserialize)]
165#[serde(rename_all = "camelCase")]
166#[non_exhaustive]
167pub struct StakingHistory {
168 #[serde(default)]
170 pub ccy: String,
171 #[serde(default)]
173 pub amt: NumberString,
174 #[serde(default, rename = "type")]
176 pub event_type: String,
177 #[serde(default)]
179 pub state: String,
180 #[serde(default)]
182 pub ts: NumberString,
183}
184
185#[derive(Debug, Clone, Deserialize)]
187#[serde(rename_all = "camelCase")]
188#[non_exhaustive]
189pub struct StakingApyHistory {
190 #[serde(default)]
192 pub ccy: String,
193 #[serde(default)]
195 pub apy: NumberString,
196 #[serde(default)]
198 pub ts: NumberString,
199}