Skip to main content

binance_common/spot/model/response/
trade.rs

1use serde::{Deserialize, Serialize};
2use serde_with::{DisplayFromStr, serde_as};
3
4#[derive(Clone, Debug, Deserialize, Serialize)]
5#[serde(rename_all = "camelCase")]
6pub struct AckResponse {
7    symbol: String,
8    order_id: u64,
9    order_list_id: i64,
10    client_order_id: String,
11    transact_time: u64,
12}
13
14#[derive(Clone, Debug)]
15pub enum NewOrderResponse {
16    Ack(AckResponse),
17    Result(ResultResponse),
18    Full(FullResponse),
19}
20
21#[serde_as]
22#[derive(Debug, Clone, Deserialize, Serialize)]
23#[serde(rename_all = "camelCase")]
24pub struct ResultResponse {
25    pub symbol: String,
26    pub order_id: u64,
27    pub order_list_id: i64,
28    pub client_order_id: String,
29    pub transact_time: u64,
30
31    #[serde_as(as = "DisplayFromStr")]
32    pub price: f64,
33
34    #[serde_as(as = "DisplayFromStr")]
35    pub orig_qty: f64,
36
37    #[serde_as(as = "DisplayFromStr")]
38    pub executed_qty: f64,
39
40    #[serde_as(as = "DisplayFromStr")]
41    pub orig_quote_order_qty: f64,
42
43    #[serde_as(as = "DisplayFromStr")]
44    pub cummulative_quote_qty: f64,
45
46    pub status: String,
47    pub time_in_force: String,
48    pub r#type: String,
49    pub side: String,
50    pub working_time: u64,
51    pub self_trade_prevention_mode: String,
52}
53
54#[serde_as]
55#[derive(Debug, Clone, Deserialize, Serialize)]
56#[serde(rename_all = "camelCase")]
57pub struct FullResponse {
58    pub symbol: String,
59    pub order_id: u64,
60    pub order_list_id: i64,
61    pub client_order_id: String,
62    pub transact_time: u64,
63
64    #[serde_as(as = "DisplayFromStr")]
65    pub price: f64,
66
67    #[serde_as(as = "DisplayFromStr")]
68    pub orig_qty: f64,
69
70    #[serde_as(as = "DisplayFromStr")]
71    pub executed_qty: f64,
72
73    #[serde_as(as = "DisplayFromStr")]
74    pub orig_quote_order_qty: f64,
75
76    #[serde_as(as = "DisplayFromStr")]
77    pub cummulative_quote_qty: f64,
78
79    pub status: String,
80    pub time_in_force: String,
81    pub r#type: String,
82    pub side: String,
83    pub working_time: u64,
84    pub self_trade_prevention_mode: String,
85    pub fills: Vec<Fill>,
86}
87
88#[serde_as]
89#[derive(Debug, Clone, Deserialize, Serialize)]
90#[serde(rename_all = "camelCase")]
91pub struct Fill {
92    #[serde_as(as = "DisplayFromStr")]
93    pub price: f64,
94
95    #[serde_as(as = "DisplayFromStr")]
96    pub qty: f64,
97
98    #[serde_as(as = "DisplayFromStr")]
99    pub commission: f64,
100
101    pub commission_asset: String,
102    pub trade_id: u64,
103}
104
105#[serde_as]
106#[derive(Debug, Clone, Deserialize, Serialize)]
107#[serde(rename_all = "camelCase")]
108pub struct OrderIdResponse {
109    pub symbol: String,
110    pub order_id: u64,
111    pub order_list_id: i64,
112    pub client_order_id: String,
113
114    #[serde_as(as = "DisplayFromStr")]
115    pub price: f64,
116
117    #[serde_as(as = "DisplayFromStr")]
118    pub orig_qty: f64,
119
120    #[serde_as(as = "DisplayFromStr")]
121    pub executed_qty: f64,
122
123    #[serde_as(as = "DisplayFromStr")]
124    pub cummulative_quote_qty: f64,
125
126    pub status: String,
127    pub time_in_force: String,
128
129    #[serde(rename = "type")]
130    pub order_type: String,
131
132    pub side: String,
133    pub time: u64,
134    pub update_time: u64,
135    pub is_working: bool,
136    pub working_time: u64,
137    // #[serde_as(as = "DisplayFromStr")]
138    // #[serde(default)]
139    // pub stop_price: Option<f64>,
140
141    // #[serde_as(as = "DisplayFromStr")]
142    // #[serde(default)]
143    // pub iceberg_qty: Option<f64>,
144
145    // #[serde_as(as = "DisplayFromStr")]
146    // #[serde(default)]
147    // pub orig_quote_order_qty: Option<f64>,
148
149    // #[serde(default)]
150    // pub prevented_match_id: Option<u64>,
151
152    // #[serde_as(as = "DisplayFromStr")]
153    // #[serde(default)]
154    // pub prevented_quantity: Option<f64>,
155
156    // #[serde(default)]
157    // pub strategy_id: Option<u64>,
158
159    // #[serde(default)]
160    // pub strategy_type: Option<u64>,
161
162    // #[serde(default)]
163    // pub trailing_delta: Option<u64>,
164
165    // #[serde(default)]
166    // pub trailing_time: Option<i64>,
167
168    // #[serde(default)]
169    // pub used_sor: Option<bool>,
170
171    // #[serde(default)]
172    // pub working_floor: Option<String>,
173}
174
175#[serde_as]
176#[derive(Clone, Debug, Deserialize, Serialize)]
177#[serde(rename_all = "camelCase")]
178pub struct CancelOrderResponse {
179    pub symbol: String,
180    pub orig_client_order_id: String,
181    pub order_id: u64,
182    pub order_list_id: i64,
183    pub client_order_id: String,
184    pub transact_time: u64,
185
186    #[serde_as(as = "DisplayFromStr")]
187    pub price: f64,
188
189    #[serde_as(as = "DisplayFromStr")]
190    pub orig_qty: f64,
191
192    #[serde_as(as = "DisplayFromStr")]
193    pub executed_qty: f64,
194
195    #[serde_as(as = "DisplayFromStr")]
196    pub cummulative_quote_qty: f64,
197
198    pub status: String,
199    pub time_in_force: String,
200    pub r#type: String,
201    pub side: String,
202    pub self_trade_prevention_mode: String,
203}
204
205#[serde_as]
206#[derive(Clone, Debug, Deserialize, Serialize)]
207#[serde(rename_all = "camelCase")]
208pub struct OrderResponse {
209    pub symbol: String,
210    pub order_id: u64,
211    pub order_list_id: i64,
212    pub client_order_id: String,
213
214    #[serde_as(as = "DisplayFromStr")]
215    pub price: f64,
216
217    #[serde_as(as = "DisplayFromStr")]
218    pub orig_qty: f64,
219
220    #[serde_as(as = "DisplayFromStr")]
221    pub executed_qty: f64,
222
223    #[serde_as(as = "DisplayFromStr")]
224    pub cummulative_quote_qty: f64,
225
226    pub status: String,
227    pub time_in_force: String,
228    pub r#type: String,
229    pub side: String,
230
231    #[serde_as(as = "DisplayFromStr")]
232    pub stop_price: f64,
233
234    #[serde_as(as = "DisplayFromStr")]
235    pub iceberg_qty: f64,
236
237    pub time: u64,
238    pub update_time: u64,
239    pub is_working: bool,
240
241    #[serde_as(as = "DisplayFromStr")]
242    pub orig_quote_order_qty: f64,
243
244    pub working_time: u64,
245    pub self_trade_prevention_mode: String,
246}