1use serde::Deserialize;
2
3use crate::model::NumberString;
4
5#[derive(Debug, Clone, Default, Deserialize)]
7#[serde(rename_all = "camelCase")]
8#[non_exhaustive]
9pub struct Currency {
10 #[serde(default)]
12 pub ccy: String,
13 #[serde(default)]
15 pub name: String,
16 #[serde(default)]
18 pub chain: String,
19 #[serde(default, rename = "minWd")]
21 pub min_wd: NumberString,
22 #[serde(default, rename = "minDep")]
24 pub min_dep: NumberString,
25 #[serde(default, rename = "minFee")]
27 pub min_fee: NumberString,
28 #[serde(default, rename = "canDep")]
30 pub can_dep: bool,
31 #[serde(default, rename = "canWd")]
33 pub can_wd: bool,
34 #[serde(default, rename = "canInternal")]
36 pub can_internal: bool,
37}
38
39#[derive(Debug, Clone, Default, Deserialize)]
41#[serde(rename_all = "camelCase")]
42#[non_exhaustive]
43pub struct FundingBalance {
44 #[serde(default)]
46 pub ccy: String,
47 #[serde(default)]
49 pub bal: NumberString,
50 #[serde(default)]
52 pub frozen_bal: NumberString,
53 #[serde(default)]
55 pub avail_bal: NumberString,
56}
57
58#[derive(Debug, Clone, Default, Deserialize)]
60#[serde(rename_all = "camelCase")]
61#[non_exhaustive]
62pub struct NonTradableAsset {
63 #[serde(default)]
65 pub ccy: String,
66 #[serde(default)]
68 pub amt: NumberString,
69 #[serde(default, rename = "type")]
71 pub asset_type: String,
72}
73
74#[derive(Debug, Clone, Default, Deserialize)]
76#[serde(rename_all = "camelCase")]
77#[non_exhaustive]
78pub struct DepositAddress {
79 #[serde(default)]
81 pub ccy: String,
82 #[serde(default)]
84 pub chain: String,
85 #[serde(default)]
87 pub addr: String,
88 #[serde(default)]
90 pub tag: String,
91 #[serde(default)]
93 pub selected: bool,
94}
95
96#[derive(Debug, Clone, Default, Deserialize)]
98#[serde(rename_all = "camelCase")]
99#[non_exhaustive]
100pub struct TransferResult {
101 #[serde(default, rename = "transId")]
103 pub trans_id: String,
104 #[serde(default, rename = "clientId")]
106 pub client_id: String,
107 #[serde(default)]
109 pub ccy: String,
110 #[serde(default, rename = "from")]
112 pub from_account: String,
113 #[serde(default)]
115 pub amt: NumberString,
116 #[serde(default)]
118 pub to: String,
119}
120
121#[derive(Debug, Clone, Default, Deserialize)]
123#[serde(rename_all = "camelCase")]
124#[non_exhaustive]
125pub struct TransferState {
126 #[serde(default, rename = "transId")]
128 pub trans_id: String,
129 #[serde(default, rename = "clientId")]
131 pub client_id: String,
132 #[serde(default)]
134 pub ccy: String,
135 #[serde(default)]
137 pub amt: NumberString,
138 #[serde(default, rename = "type")]
140 pub transfer_type: String,
141 #[serde(default, rename = "from")]
143 pub from_account: String,
144 #[serde(default)]
146 pub to: String,
147 #[serde(default, rename = "subAcct")]
149 pub sub_account: String,
150 #[serde(default)]
152 pub state: String,
153}
154
155#[derive(Debug, Clone, Default, Deserialize)]
157#[serde(rename_all = "camelCase")]
158#[non_exhaustive]
159pub struct WithdrawalResult {
160 #[serde(default, rename = "wdId")]
162 pub wd_id: String,
163 #[serde(default, rename = "clientId")]
165 pub client_id: String,
166 #[serde(default)]
168 pub ccy: String,
169 #[serde(default)]
171 pub amt: NumberString,
172}
173
174#[derive(Debug, Clone, Default, Deserialize)]
176#[serde(rename_all = "camelCase")]
177#[non_exhaustive]
178pub struct DepositRecord {
179 #[serde(default, rename = "depId")]
181 pub dep_id: String,
182 #[serde(default, rename = "txId")]
184 pub tx_id: String,
185 #[serde(default)]
187 pub ccy: String,
188 #[serde(default)]
190 pub chain: String,
191 #[serde(default)]
193 pub amt: NumberString,
194 #[serde(default)]
196 pub state: String,
197 #[serde(default)]
199 pub ts: NumberString,
200}
201
202#[derive(Debug, Clone, Default, Deserialize)]
204#[serde(rename_all = "camelCase")]
205#[non_exhaustive]
206pub struct WithdrawalRecord {
207 #[serde(default, rename = "wdId")]
209 pub wd_id: String,
210 #[serde(default, rename = "clientId")]
212 pub client_id: String,
213 #[serde(default, rename = "txId")]
215 pub tx_id: String,
216 #[serde(default)]
218 pub ccy: String,
219 #[serde(default)]
221 pub chain: String,
222 #[serde(default)]
224 pub amt: NumberString,
225 #[serde(default)]
227 pub fee: NumberString,
228 #[serde(default)]
230 pub state: String,
231 #[serde(default)]
233 pub ts: NumberString,
234}
235
236#[derive(Debug, Clone, Default, Deserialize)]
238#[serde(rename_all = "camelCase")]
239#[non_exhaustive]
240pub struct FundingBill {
241 #[serde(default, rename = "billId")]
243 pub bill_id: String,
244 #[serde(default)]
246 pub ccy: String,
247 #[serde(default)]
249 pub bal_chg: NumberString,
250 #[serde(default)]
252 pub bal: NumberString,
253 #[serde(default, rename = "type")]
255 pub bill_type: String,
256 #[serde(default)]
258 pub ts: NumberString,
259}
260
261#[derive(Debug, Clone, Default, Deserialize)]
263#[serde(rename_all = "camelCase")]
264#[non_exhaustive]
265pub struct DepositLightning {
266 #[serde(default)]
268 pub ccy: String,
269 #[serde(default)]
271 pub amt: NumberString,
272 #[serde(default)]
274 pub invoice: String,
275 #[serde(default)]
277 pub to: String,
278}
279
280#[derive(Debug, Clone, Default, Deserialize)]
282#[serde(rename_all = "camelCase")]
283#[non_exhaustive]
284pub struct WithdrawalLightning {
285 #[serde(default)]
287 pub ccy: String,
288 #[serde(default)]
290 pub amt: NumberString,
291 #[serde(default, rename = "wdId")]
293 pub wd_id: String,
294}
295
296#[derive(Debug, Clone, Default, Deserialize)]
298#[serde(rename_all = "camelCase")]
299#[non_exhaustive]
300pub struct AssetValuation {
301 #[serde(default)]
303 pub details: AssetValuationDetails,
304 #[serde(default, rename = "totalBal")]
306 pub total_bal: NumberString,
307}
308
309#[derive(Debug, Clone, Default, Deserialize)]
311#[serde(rename_all = "camelCase")]
312#[non_exhaustive]
313pub struct AssetValuationDetails {
314 #[serde(default)]
316 pub funding: NumberString,
317 #[serde(default)]
319 pub trading: NumberString,
320 #[serde(default)]
322 pub earn: NumberString,
323 #[serde(default)]
325 pub classic: NumberString,
326}
327
328#[derive(Debug, Clone, Default, Deserialize)]
330#[serde(rename_all = "camelCase")]
331#[non_exhaustive]
332pub struct DepositWithdrawStatus {
333 #[serde(default, rename = "wdId")]
335 pub wd_id: String,
336 #[serde(default, rename = "txId")]
338 pub tx_id: String,
339 #[serde(default)]
341 pub ccy: String,
342 #[serde(default)]
344 pub chain: String,
345 #[serde(default)]
347 pub to: String,
348 #[serde(default)]
350 pub state: String,
351}
352
353#[derive(Debug, Clone, Default, Deserialize)]
355#[serde(rename_all = "camelCase")]
356#[non_exhaustive]
357pub struct ConvertDustAssetsResult {
358 #[serde(default)]
360 pub ccy: String,
361 #[serde(default)]
363 pub amt: NumberString,
364}
365
366#[derive(Debug, Clone, Default, Deserialize)]
368#[serde(rename_all = "camelCase")]
369#[non_exhaustive]
370pub struct PurchaseRedemptResult {
371 #[serde(default)]
373 pub ccy: String,
374 #[serde(default)]
376 pub amt: NumberString,
377 #[serde(default)]
379 pub side: String,
380}