tcbs-api 0.0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- tcbs_api/__init__.py +8 -0
- tcbs_api/dto/__init__.py +18 -0
- tcbs_api/dto/account/__init__.py +3 -0
- tcbs_api/dto/account/account_information_response.py +79 -0
- tcbs_api/dto/auth/__init__.py +3 -0
- tcbs_api/dto/auth/token_response_dto.py +10 -0
- tcbs_api/dto/derivative_dto/__init__.py +3 -0
- tcbs_api/dto/derivative_dto/derivative_dto.py +378 -0
- tcbs_api/dto/money/__init__.py +3 -0
- tcbs_api/dto/money/money.py +62 -0
- tcbs_api/dto/stock_normal/__init__.py +3 -0
- tcbs_api/dto/stock_normal/stock_normal_dto.py +263 -0
- tcbs_api/py.typed +0 -0
- tcbs_api/service/__init__.py +14 -0
- tcbs_api/service/account/__init__.py +3 -0
- tcbs_api/service/account/account.py +19 -0
- tcbs_api/service/auth/__init__.py +3 -0
- tcbs_api/service/auth/token.py +18 -0
- tcbs_api/service/derivative/__init__.py +3 -0
- tcbs_api/service/derivative/derivative.py +237 -0
- tcbs_api/service/money/__init__.py +5 -0
- tcbs_api/service/money/money.py +44 -0
- tcbs_api/service/stock_normal/__init__.py +3 -0
- tcbs_api/service/stock_normal/normal.py +132 -0
- tcbs_api/utils/__init__.py +6 -0
- tcbs_api/utils/constant.py +9 -0
- tcbs_api/utils/request_api.py +81 -0
- tcbs_api-0.0.1.dist-info/METADATA +274 -0
- tcbs_api-0.0.1.dist-info/RECORD +31 -0
- tcbs_api-0.0.1.dist-info/WHEEL +4 -0
- tcbs_api-0.0.1.dist-info/licenses/LICENSE +21 -0
tcbs_api/__init__.py
ADDED
tcbs_api/dto/__init__.py
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"""Request and response models, grouped by API domain.
|
|
2
|
+
|
|
3
|
+
Every model is a plain ``dataclass`` whose field names match the JSON keys TCBS sends and
|
|
4
|
+
expects, keeping their original camelCase — ``OrderInfo.orderID`` and
|
|
5
|
+
``TotalCashDerivativeResponse.cashavaiwithdraw`` are spelled the way the API spells them
|
|
6
|
+
rather than the way Python normally would. That keeps the mapping between code and API
|
|
7
|
+
payloads obvious, and is why responses can be decoded straight onto these classes.
|
|
8
|
+
|
|
9
|
+
Sub-packages:
|
|
10
|
+
|
|
11
|
+
* :mod:`tcbs_api.dto.account` — profile information for a sub-account
|
|
12
|
+
* :mod:`tcbs_api.dto.auth` — the JWT token response
|
|
13
|
+
* :mod:`tcbs_api.dto.money` — cash transfers, margin deposit and withdrawal
|
|
14
|
+
* :mod:`tcbs_api.dto.stock_normal` — stock orders, purchasing power, assets and cash
|
|
15
|
+
* :mod:`tcbs_api.dto.derivative_dto` — derivatives cash, positions, orders and market data
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
from __future__ import annotations
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"""Profile information for a sub-account, as returned by ``get_subaccount_info``.
|
|
2
|
+
|
|
3
|
+
``BasicInfo``, ``PersonalInfo``, ``BankAccount`` and ``BankSubAccount`` are only populated
|
|
4
|
+
when they are named in the endpoint's ``fields`` query parameter; the others come back as
|
|
5
|
+
``None``.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
from dataclasses import dataclass, field
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@dataclass
|
|
14
|
+
class BasicInfo:
|
|
15
|
+
tcbsId: str | None = None
|
|
16
|
+
code105C: str | None = None
|
|
17
|
+
status: str | None = None
|
|
18
|
+
type: str | None = None
|
|
19
|
+
depository: bool | None = None
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@dataclass
|
|
23
|
+
class PersonalInfo:
|
|
24
|
+
fullName: str | None = None
|
|
25
|
+
fullNameNoAccent: str | None = None
|
|
26
|
+
firstName: str | None = None
|
|
27
|
+
lastName: str | None = None
|
|
28
|
+
email: str | None = None
|
|
29
|
+
phoneNumber: str | None = None
|
|
30
|
+
gender: str | None = None
|
|
31
|
+
birthday: str | None = None
|
|
32
|
+
contactAddress: str | None = None
|
|
33
|
+
permanentAddress: str | None = None
|
|
34
|
+
nationality: str | None = None
|
|
35
|
+
nationalityName: str | None = None
|
|
36
|
+
taxIdNumber: str | None = None
|
|
37
|
+
acronym: str | None = None
|
|
38
|
+
createdDate: str | None = None
|
|
39
|
+
updatedDate: str | None = None
|
|
40
|
+
flowOpenAccount: str | None = None
|
|
41
|
+
avatarUrl: str | None = None
|
|
42
|
+
businessType: str | None = None
|
|
43
|
+
ppBusinessType: str | None = None
|
|
44
|
+
ppBusinessField: str | None = None
|
|
45
|
+
ppBusinessTypeName: str | None = None
|
|
46
|
+
ppBusinessFieldName: str | None = None
|
|
47
|
+
identityCard: dict | None = None
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
@dataclass
|
|
51
|
+
class BankAccount:
|
|
52
|
+
accountNo: str | None = None
|
|
53
|
+
accountName: str | None = None
|
|
54
|
+
accountNameNoAccent: str | None = None
|
|
55
|
+
bankCode: str | None = None
|
|
56
|
+
bankName: str | None = None
|
|
57
|
+
branchCode: str | None = None
|
|
58
|
+
bankType: str | None = None
|
|
59
|
+
bankSys: str | None = None
|
|
60
|
+
authorized: bool | None = None
|
|
61
|
+
bankAccountType: str | None = None
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
@dataclass
|
|
65
|
+
class BankSubAccount:
|
|
66
|
+
accountNo: str | None = None
|
|
67
|
+
accountName: str | None = None
|
|
68
|
+
accountType: str | None = None
|
|
69
|
+
accountTypeName: str | None = None
|
|
70
|
+
status: str | None = None
|
|
71
|
+
isDefault: str | None = None
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
@dataclass
|
|
75
|
+
class AccountInformationResponse:
|
|
76
|
+
basicInfo: BasicInfo | None = None
|
|
77
|
+
personalInfo: PersonalInfo | None = None
|
|
78
|
+
bankAccounts: list[BankAccount] | None = field(default_factory=list)
|
|
79
|
+
bankSubAccounts: list[BankSubAccount] | None = field(default_factory=list)
|
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
"""Derivatives models, including the envelope that every derivative endpoint returns.
|
|
2
|
+
|
|
3
|
+
``DerivativeResponse[T]`` is that envelope — ``{cmd, rc, rs, oID, data}``. The response
|
|
4
|
+
models used as its ``T`` carry ``@dataclass_json`` so they can be decoded with
|
|
5
|
+
``from_json()``; the remaining classes are request bodies, plus two market-information
|
|
6
|
+
models that are decoded with ``dacite`` like the rest of the library.
|
|
7
|
+
|
|
8
|
+
Beware that a field annotated ``Optional[...]`` is not optional at decode time unless it
|
|
9
|
+
also has a ``= None`` default — ``from_dict``/``from_json`` raise ``KeyError`` for a field
|
|
10
|
+
the API omits. See the README's known limitations.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
from __future__ import annotations
|
|
14
|
+
|
|
15
|
+
from dataclasses import dataclass
|
|
16
|
+
from typing import Generic, TypeVar
|
|
17
|
+
|
|
18
|
+
from dataclasses_json import dataclass_json
|
|
19
|
+
|
|
20
|
+
T = TypeVar("T")
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
@dataclass_json
|
|
24
|
+
@dataclass
|
|
25
|
+
class DerivativeResponse(Generic[T]):
|
|
26
|
+
"""The ``{cmd, rc, rs, oID, data}`` envelope every derivative endpoint returns.
|
|
27
|
+
|
|
28
|
+
``T`` is the response model for the endpoint. It is not applied at runtime — see this
|
|
29
|
+
module's docstring and the README's known limitations.
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
cmd: str
|
|
33
|
+
rc: str
|
|
34
|
+
rs: str
|
|
35
|
+
oID: str
|
|
36
|
+
data: T
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
@dataclass_json
|
|
40
|
+
@dataclass
|
|
41
|
+
class TotalCashDerivativeResponse:
|
|
42
|
+
"""Derivatives cash, margin and collateral summary."""
|
|
43
|
+
|
|
44
|
+
cash: float | None
|
|
45
|
+
stock: float | None
|
|
46
|
+
collateral: float | None
|
|
47
|
+
type: str | None
|
|
48
|
+
net: float | None
|
|
49
|
+
tyle: float | None
|
|
50
|
+
im: float | None
|
|
51
|
+
vm: float | None
|
|
52
|
+
dm: float | None
|
|
53
|
+
mr: float | None
|
|
54
|
+
avaiCash: float | None
|
|
55
|
+
avaiColla: float | None
|
|
56
|
+
vmunpay: float | None
|
|
57
|
+
info: str | None
|
|
58
|
+
color: str | None
|
|
59
|
+
vm_eod: float | None
|
|
60
|
+
others: float | None
|
|
61
|
+
tax: float | None
|
|
62
|
+
feeCTCK: float | None
|
|
63
|
+
feeHNX: float | None
|
|
64
|
+
cashWithdraw: float | None
|
|
65
|
+
tienbosung: float | None
|
|
66
|
+
cashavaiwithdraw: float | None
|
|
67
|
+
assets: float | None
|
|
68
|
+
nav: float | None
|
|
69
|
+
cashOut: float | None
|
|
70
|
+
unrelizeVM: float | None
|
|
71
|
+
feePos: float | None
|
|
72
|
+
feeMan: float | None
|
|
73
|
+
product: str | None
|
|
74
|
+
status: str | None
|
|
75
|
+
debt: float | None
|
|
76
|
+
w1: float | None
|
|
77
|
+
w2: float | None
|
|
78
|
+
limit: float | None
|
|
79
|
+
package: str | None
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
@dataclass_json
|
|
83
|
+
@dataclass
|
|
84
|
+
class AssetPositionCloseDerivativeResponse:
|
|
85
|
+
symbol: str
|
|
86
|
+
side: str
|
|
87
|
+
openPrice: float
|
|
88
|
+
closePrice: float
|
|
89
|
+
closePosition: str
|
|
90
|
+
fee: float
|
|
91
|
+
tax: float
|
|
92
|
+
closeVM: float
|
|
93
|
+
unrealize: float
|
|
94
|
+
closePC: float
|
|
95
|
+
time: str
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
@dataclass_json
|
|
99
|
+
@dataclass
|
|
100
|
+
class AssetPositionOpenDerivativeResponse:
|
|
101
|
+
symbol: str
|
|
102
|
+
im: str
|
|
103
|
+
deliver: str
|
|
104
|
+
receive: str
|
|
105
|
+
net: int
|
|
106
|
+
side: str
|
|
107
|
+
account: str
|
|
108
|
+
wasp: float
|
|
109
|
+
wapb: float
|
|
110
|
+
lastPrice: float
|
|
111
|
+
imValue: float
|
|
112
|
+
vmValue: float
|
|
113
|
+
mrValue: float
|
|
114
|
+
duedate: str
|
|
115
|
+
netoffvol: int
|
|
116
|
+
avg_remain: float
|
|
117
|
+
vm_remain: float
|
|
118
|
+
pc_remain: str
|
|
119
|
+
stoploss: str | None
|
|
120
|
+
takeprofit: str | None
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
@dataclass_json
|
|
124
|
+
@dataclass
|
|
125
|
+
class ListOrderNormalDerivativeResponse:
|
|
126
|
+
orderNo: str
|
|
127
|
+
pk_orderNo: str
|
|
128
|
+
orderTime: str
|
|
129
|
+
accountCode: str
|
|
130
|
+
side: str
|
|
131
|
+
symbol: str
|
|
132
|
+
volume: int
|
|
133
|
+
showPrice: float
|
|
134
|
+
matchVolume: int
|
|
135
|
+
matchPriceBQ: float
|
|
136
|
+
status: str
|
|
137
|
+
orderStatus: str
|
|
138
|
+
channel: str
|
|
139
|
+
group: str
|
|
140
|
+
cancelTime: str | None
|
|
141
|
+
isCancel: bool
|
|
142
|
+
isAmend: bool
|
|
143
|
+
info: str | None
|
|
144
|
+
maxPrice: float | None
|
|
145
|
+
matchValue: float | None
|
|
146
|
+
quote: str | None
|
|
147
|
+
autoType: str | None
|
|
148
|
+
product: str | None
|
|
149
|
+
orderType: str | None
|
|
150
|
+
source: str | None
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
@dataclass_json
|
|
154
|
+
@dataclass
|
|
155
|
+
class ListOrderConditionDerivativeResponse:
|
|
156
|
+
orderNo: str
|
|
157
|
+
groupOrder: str
|
|
158
|
+
pk_orderNo: str
|
|
159
|
+
accountCode: str
|
|
160
|
+
side: str
|
|
161
|
+
symbol: str
|
|
162
|
+
showPrice: float
|
|
163
|
+
volume: int
|
|
164
|
+
condition: str
|
|
165
|
+
result: str
|
|
166
|
+
active_time: str
|
|
167
|
+
send_time: str
|
|
168
|
+
cancel_time: str | None
|
|
169
|
+
group: str
|
|
170
|
+
channel: str
|
|
171
|
+
maxPrice: float | None
|
|
172
|
+
soPrice: float
|
|
173
|
+
orderType: str
|
|
174
|
+
from_time: str
|
|
175
|
+
exp_time: str
|
|
176
|
+
status: str
|
|
177
|
+
details: str
|
|
178
|
+
notes: str
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
@dataclass_json
|
|
182
|
+
@dataclass
|
|
183
|
+
class OrderNormalDerivativeResponse:
|
|
184
|
+
symbol: str
|
|
185
|
+
status: str
|
|
186
|
+
msg_type: str
|
|
187
|
+
showPrice: float
|
|
188
|
+
orderTime: str
|
|
189
|
+
type: str
|
|
190
|
+
accountCode: str
|
|
191
|
+
orderNo: str
|
|
192
|
+
matchVolume: float
|
|
193
|
+
side: str
|
|
194
|
+
volume: float
|
|
195
|
+
pk_orderNo: str
|
|
196
|
+
channel: str
|
|
197
|
+
group: str
|
|
198
|
+
quote: str
|
|
199
|
+
accType: str | None = None
|
|
200
|
+
shareStatus: str | None = None
|
|
201
|
+
market: str | None = None
|
|
202
|
+
refID: str | None = None
|
|
203
|
+
autoType: str | None = None
|
|
204
|
+
product: str | None = None
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
@dataclass
|
|
208
|
+
class PlaceOrderDto:
|
|
209
|
+
accountId: str
|
|
210
|
+
subAccountId: str
|
|
211
|
+
side: str
|
|
212
|
+
symbol: str
|
|
213
|
+
price: float
|
|
214
|
+
volume: int
|
|
215
|
+
refId: str
|
|
216
|
+
orderType: str
|
|
217
|
+
advance: int | None = None
|
|
218
|
+
pin: str | None = None
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
@dataclass
|
|
222
|
+
class OrderConditionDerivativeRequestDTO:
|
|
223
|
+
subAccountId: str
|
|
224
|
+
accountId: str
|
|
225
|
+
side: str
|
|
226
|
+
symbol: str
|
|
227
|
+
price: float
|
|
228
|
+
volume: float
|
|
229
|
+
orderType: str
|
|
230
|
+
callbackPoint: float
|
|
231
|
+
activationPrice: float
|
|
232
|
+
soPrice: float
|
|
233
|
+
advance: str | None = None
|
|
234
|
+
refId: str | None = None
|
|
235
|
+
pin: str | None = None
|
|
236
|
+
type: str | None = None
|
|
237
|
+
cmd: str | None = None
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
@dataclass_json
|
|
241
|
+
@dataclass
|
|
242
|
+
class OrderConditionDerivativeResponseDTO:
|
|
243
|
+
symbol: str
|
|
244
|
+
status: str
|
|
245
|
+
msg_type: str
|
|
246
|
+
showPrice: float
|
|
247
|
+
orderTime: str
|
|
248
|
+
type: str
|
|
249
|
+
accountCode: str
|
|
250
|
+
orderNo: int
|
|
251
|
+
matchVolume: float
|
|
252
|
+
side: str
|
|
253
|
+
volume: float
|
|
254
|
+
pk_orderNo: str
|
|
255
|
+
channel: str
|
|
256
|
+
group: str
|
|
257
|
+
quote: str
|
|
258
|
+
shareStatus: str | None = None
|
|
259
|
+
market: str | None = None
|
|
260
|
+
refID: str | None = None
|
|
261
|
+
accType: str | None = None
|
|
262
|
+
autoType: str | None = None
|
|
263
|
+
product: str | None = None
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
@dataclass
|
|
267
|
+
class EditOrderNormalDerivativeRequestDTO:
|
|
268
|
+
accountId: str
|
|
269
|
+
subAccountId: str
|
|
270
|
+
orderNo: str
|
|
271
|
+
refId: str
|
|
272
|
+
nvol: float
|
|
273
|
+
nprice: float
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
@dataclass_json
|
|
277
|
+
@dataclass
|
|
278
|
+
class EditOrderNormalDerivativeResponseDTO:
|
|
279
|
+
orderNo: str
|
|
280
|
+
msg_type: str
|
|
281
|
+
status: str
|
|
282
|
+
pk_orderNo: str
|
|
283
|
+
volume: float
|
|
284
|
+
showPrice: float
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
@dataclass
|
|
288
|
+
class EditOrderConditionDerivativeRequestDTO:
|
|
289
|
+
accountId: str
|
|
290
|
+
pkOrderNo: str
|
|
291
|
+
type: str
|
|
292
|
+
refId: str
|
|
293
|
+
soPrice: float
|
|
294
|
+
cmd: str | None = None
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
@dataclass_json
|
|
298
|
+
@dataclass
|
|
299
|
+
class EditOrderConditionDerivativeResponseDTO:
|
|
300
|
+
showPrice: str
|
|
301
|
+
price: str
|
|
302
|
+
volume: str
|
|
303
|
+
pkOrderNo: str
|
|
304
|
+
notes: str
|
|
305
|
+
|
|
306
|
+
|
|
307
|
+
@dataclass
|
|
308
|
+
class CancelOrderNormalDerivativeRequestDTO:
|
|
309
|
+
accountId: str
|
|
310
|
+
orderNo: str
|
|
311
|
+
cmd: str | None = None
|
|
312
|
+
pin: str | None = None
|
|
313
|
+
refId: str | None = None
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
@dataclass_json
|
|
317
|
+
@dataclass
|
|
318
|
+
class CancelOrderNormalDerivativeResponseDTO:
|
|
319
|
+
orderNo: str
|
|
320
|
+
msg_type: str | None = None
|
|
321
|
+
status: str | None = None
|
|
322
|
+
pk_orderNo: str | None = None
|
|
323
|
+
cancelTime: str | None = None
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
@dataclass
|
|
327
|
+
class CancelOrderConditionDerivativeRequestDTO:
|
|
328
|
+
accountId: str
|
|
329
|
+
orderNo: str
|
|
330
|
+
subAccountId: str | None = None
|
|
331
|
+
|
|
332
|
+
|
|
333
|
+
@dataclass_json
|
|
334
|
+
@dataclass
|
|
335
|
+
class CancelOrderConditionDerivativeResponseDTO:
|
|
336
|
+
"""Intentionally empty: for this operation TCBS reports only the surrounding envelope."""
|
|
337
|
+
|
|
338
|
+
pass
|
|
339
|
+
|
|
340
|
+
|
|
341
|
+
@dataclass
|
|
342
|
+
class MarketInformationDerivativeResponseDTO:
|
|
343
|
+
symbol: str | None = None
|
|
344
|
+
ceilPrice: float | None = None
|
|
345
|
+
floorPrice: float | None = None
|
|
346
|
+
refPrice: float | None = None
|
|
347
|
+
bidPrice01: float | None = None
|
|
348
|
+
bidPrice02: float | None = None
|
|
349
|
+
bidPrice03: float | None = None
|
|
350
|
+
bidQtty01: float | None = None
|
|
351
|
+
bidQtty02: float | None = None
|
|
352
|
+
bidQtty03: float | None = None
|
|
353
|
+
offerPrice01: float | None = None
|
|
354
|
+
offerPrice02: float | None = None
|
|
355
|
+
offerPrice03: float | None = None
|
|
356
|
+
offerQtty01: float | None = None
|
|
357
|
+
offerQtty02: float | None = None
|
|
358
|
+
offerQtty03: float | None = None
|
|
359
|
+
matchPrice: float | None = None
|
|
360
|
+
matchQtty: float | None = None
|
|
361
|
+
change: float | None = None
|
|
362
|
+
changePercent: float | None = None
|
|
363
|
+
open: float | None = None
|
|
364
|
+
high: float | None = None
|
|
365
|
+
low: float | None = None
|
|
366
|
+
totalVol: float | None = None
|
|
367
|
+
openVol: float | None = None
|
|
368
|
+
buyForeignQtty: float | None = None
|
|
369
|
+
sellForeignQtty: float | None = None
|
|
370
|
+
expiryDate: str | None = None
|
|
371
|
+
avg: float | None = None
|
|
372
|
+
|
|
373
|
+
|
|
374
|
+
@dataclass
|
|
375
|
+
class MarketInformationResponseDTO:
|
|
376
|
+
"""Price board for every derivatives symbol."""
|
|
377
|
+
|
|
378
|
+
data: list[MarketInformationDerivativeResponseDTO]
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"""Cash-transfer and margin deposit/withdrawal models.
|
|
2
|
+
|
|
3
|
+
The ``*RequestDTO`` models are the bodies sent to TCBS, serialized with
|
|
4
|
+
:func:`dataclasses.asdict`; the ``*ResponseDTO`` models are what comes back.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
from dataclasses import dataclass
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@dataclass
|
|
13
|
+
class TransferBetweenSubaccountRequestDTO:
|
|
14
|
+
sourceAccountNumber: str
|
|
15
|
+
destinationAccountNumber: str
|
|
16
|
+
amount: float
|
|
17
|
+
description: str
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
@dataclass
|
|
21
|
+
class TransferBetweenSubaccountResponseDTO:
|
|
22
|
+
code: str
|
|
23
|
+
message: str
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@dataclass
|
|
27
|
+
class WithdrawalDerivativeRequestDTO:
|
|
28
|
+
accountId: str
|
|
29
|
+
subAccountId: str
|
|
30
|
+
amount: float
|
|
31
|
+
paymentContent: str
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
@dataclass
|
|
35
|
+
class WithdrawalDerivativeResponseDTO:
|
|
36
|
+
cmd: str
|
|
37
|
+
rc: str
|
|
38
|
+
rs: str
|
|
39
|
+
oID: str
|
|
40
|
+
data: list
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
@dataclass
|
|
44
|
+
class DepositDerivativeRequestDTO:
|
|
45
|
+
accountId: str
|
|
46
|
+
subAccountId: str
|
|
47
|
+
amount: float
|
|
48
|
+
paymentContent: str
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
@dataclass
|
|
52
|
+
class DepositDerivativeResponseDTO:
|
|
53
|
+
transactionId: str
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
@dataclass
|
|
57
|
+
class DepositDerivativeMarginResponseDTO:
|
|
58
|
+
cmd: str
|
|
59
|
+
rc: str
|
|
60
|
+
rs: str
|
|
61
|
+
oID: str
|
|
62
|
+
data: list[DepositDerivativeResponseDTO]
|