Skip to main content

rust_okx/api/account/responses/
borrowing.rs

1use serde::Deserialize;
2
3use crate::model::NumberString;
4
5/// Maximum loan amount available for an instrument or currency.
6#[derive(Debug, Clone, Deserialize)]
7#[serde(rename_all = "camelCase")]
8#[non_exhaustive]
9pub struct MaxLoan {
10    /// Instrument ID.
11    #[serde(default)]
12    pub inst_id: String,
13    /// Margin mode.
14    #[serde(default)]
15    pub mgn_mode: String,
16    /// Margin currency.
17    #[serde(default)]
18    pub mgn_ccy: String,
19    /// Maximum loan amount.
20    #[serde(default)]
21    pub max_loan: NumberString,
22}
23
24/// Interest accrued by account borrowing.
25#[derive(Debug, Clone, Deserialize)]
26#[serde(rename_all = "camelCase")]
27#[non_exhaustive]
28pub struct InterestAccrued {
29    /// Instrument ID.
30    #[serde(default)]
31    pub inst_id: String,
32    /// Currency.
33    #[serde(default)]
34    pub ccy: String,
35    /// Margin mode.
36    #[serde(default)]
37    pub mgn_mode: String,
38    /// Accrued interest.
39    #[serde(default)]
40    pub interest: NumberString,
41    /// Interest rate.
42    #[serde(default)]
43    pub interest_rate: NumberString,
44    /// Liability.
45    #[serde(default)]
46    pub liab: NumberString,
47    /// Timestamp (Unix milliseconds).
48    #[serde(default)]
49    pub ts: NumberString,
50}
51
52/// Account borrowing interest rate.
53#[derive(Debug, Clone, Deserialize)]
54#[serde(rename_all = "camelCase")]
55#[non_exhaustive]
56pub struct InterestRate {
57    /// Currency.
58    #[serde(default)]
59    pub ccy: String,
60    /// Interest rate.
61    #[serde(default)]
62    pub interest_rate: NumberString,
63}
64
65/// Result of a borrow/repay request.
66#[derive(Debug, Clone, Deserialize)]
67#[serde(rename_all = "camelCase")]
68#[non_exhaustive]
69pub struct BorrowRepayResult {
70    /// Currency.
71    #[serde(default)]
72    pub ccy: String,
73    /// Borrow or repay side.
74    #[serde(default)]
75    pub side: String,
76    /// Requested amount.
77    #[serde(default)]
78    pub amt: NumberString,
79    /// OKX borrow/repay order ID.
80    #[serde(default)]
81    pub ord_id: String,
82}
83
84/// Borrow/repay history row.
85#[derive(Debug, Clone, Deserialize)]
86#[serde(rename_all = "camelCase")]
87#[non_exhaustive]
88pub struct BorrowRepayHistory {
89    /// Currency.
90    #[serde(default)]
91    pub ccy: String,
92    /// Borrow or repay side.
93    #[serde(default)]
94    pub side: String,
95    /// Amount.
96    #[serde(default)]
97    pub amt: NumberString,
98    /// OKX borrow/repay order ID.
99    #[serde(default)]
100    pub ord_id: String,
101    /// OKX state value.
102    #[serde(default)]
103    pub state: String,
104    /// Timestamp (Unix milliseconds).
105    #[serde(default)]
106    pub ts: NumberString,
107}
108
109/// Borrowing interest limit information.
110#[derive(Debug, Clone, Deserialize)]
111#[serde(rename_all = "camelCase")]
112#[non_exhaustive]
113pub struct InterestLimit {
114    /// Currency.
115    #[serde(default)]
116    pub ccy: String,
117    /// Interest rate.
118    #[serde(default)]
119    pub rate: NumberString,
120    /// Loan quota.
121    #[serde(default)]
122    pub loan_quota: NumberString,
123    /// Used loan quota.
124    #[serde(default)]
125    pub used_loan: NumberString,
126}