ccxt 4.3.28__py2.py3-none-any.whl → 4.3.30__py2.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.

Potentially problematic release.


This version of ccxt might be problematic. Click here for more details.

@@ -447,6 +447,7 @@ class kucoin(Exchange, ImplicitAPI):
447
447
  'The withdrawal amount is below the minimum requirement.': ExchangeError, # {"code":"400100","msg":"The withdrawal amount is below the minimum requirement."}
448
448
  'Unsuccessful! Exceeded the max. funds out-transfer limit': InsufficientFunds, # {"code":"200000","msg":"Unsuccessful! Exceeded the max. funds out-transfer limit"}
449
449
  'The amount increment is invalid.': BadRequest,
450
+ 'The quantity is below the minimum requirement.': InvalidOrder, # {"msg":"The quantity is below the minimum requirement.","code":"400100"}
450
451
  '400': BadRequest,
451
452
  '401': AuthenticationError,
452
453
  '403': NotSupported,
@@ -45,6 +45,9 @@ class whitebit(Exchange, ImplicitAPI):
45
45
  'cancelAllOrdersAfter': True,
46
46
  'cancelOrder': True,
47
47
  'cancelOrders': False,
48
+ 'createMarketBuyOrderWithCost': True,
49
+ 'createMarketOrderWithCost': False,
50
+ 'createMarketSellOrderWithCost': False,
48
51
  'createOrder': True,
49
52
  'createStopLimitOrder': True,
50
53
  'createStopMarketOrder': True,
@@ -1162,6 +1165,29 @@ class whitebit(Exchange, ImplicitAPI):
1162
1165
  #
1163
1166
  return self.safe_integer(response, 'time')
1164
1167
 
1168
+ async def create_market_order_with_cost(self, symbol: str, side: OrderSide, cost: float, params={}):
1169
+ """
1170
+ create a market order by providing the symbol, side and cost
1171
+ :param str symbol: unified symbol of the market to create an order in
1172
+ :param str side: 'buy' or 'sell'
1173
+ :param float cost: how much you want to trade in units of the quote currency
1174
+ :param dict [params]: extra parameters specific to the exchange API endpoint
1175
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1176
+ """
1177
+ params['cost'] = cost
1178
+ # only buy side is supported
1179
+ return await self.create_order(symbol, 'market', side, 0, None, params)
1180
+
1181
+ async def create_market_buy_order_with_cost(self, symbol: str, cost: float, params={}) -> Order:
1182
+ """
1183
+ create a market buy order by providing the symbol and cost
1184
+ :param str symbol: unified symbol of the market to create an order in
1185
+ :param float cost: how much you want to trade in units of the quote currency
1186
+ :param dict [params]: extra parameters specific to the exchange API endpoint
1187
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1188
+ """
1189
+ return await self.create_market_order_with_cost(symbol, 'buy', cost, params)
1190
+
1165
1191
  async def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
1166
1192
  """
1167
1193
  create a trade order
@@ -1176,6 +1202,7 @@ class whitebit(Exchange, ImplicitAPI):
1176
1202
  :param float amount: how much of currency you want to trade in units of base currency
1177
1203
  :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1178
1204
  :param dict [params]: extra parameters specific to the exchange API endpoint
1205
+ :param float [params.cost]: *market orders only* the cost of the order in units of the base currency
1179
1206
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1180
1207
  """
1181
1208
  await self.load_markets()
@@ -1183,8 +1210,15 @@ class whitebit(Exchange, ImplicitAPI):
1183
1210
  request = {
1184
1211
  'market': market['id'],
1185
1212
  'side': side,
1186
- 'amount': self.amount_to_precision(symbol, amount),
1187
1213
  }
1214
+ cost = None
1215
+ cost, params = self.handle_param_string(params, 'cost')
1216
+ if cost is not None:
1217
+ if (side != 'buy') or (type != 'market'):
1218
+ raise InvalidOrder(self.id + ' createOrder() cost is only supported for market buy orders')
1219
+ request['amount'] = self.cost_to_precision(symbol, cost)
1220
+ else:
1221
+ request['amount'] = self.amount_to_precision(symbol, amount)
1188
1222
  clientOrderId = self.safe_string_2(params, 'clOrdId', 'clientOrderId')
1189
1223
  if clientOrderId is None:
1190
1224
  brokerId = self.safe_string(self.options, 'brokerId')
@@ -1232,7 +1266,10 @@ class whitebit(Exchange, ImplicitAPI):
1232
1266
  if useCollateralEndpoint:
1233
1267
  response = await self.v4PrivatePostOrderCollateralMarket(self.extend(request, params))
1234
1268
  else:
1235
- response = await self.v4PrivatePostOrderStockMarket(self.extend(request, params))
1269
+ if cost is not None:
1270
+ response = await self.v4PrivatePostOrderMarket(self.extend(request, params))
1271
+ else:
1272
+ response = await self.v4PrivatePostOrderStockMarket(self.extend(request, params))
1236
1273
  return self.parse_order(response)
1237
1274
 
1238
1275
  async def edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={}):
@@ -1388,7 +1425,7 @@ class whitebit(Exchange, ImplicitAPI):
1388
1425
  balance = response[id]
1389
1426
  if isinstance(balance, dict) and balance is not None:
1390
1427
  account = self.account()
1391
- account['free'] = self.safe_string(balance, 'available')
1428
+ account['free'] = self.safe_string_2(balance, 'available', 'main_balance')
1392
1429
  account['used'] = self.safe_string(balance, 'freeze')
1393
1430
  account['total'] = self.safe_string(balance, 'main_balance')
1394
1431
  result[code] = account
@@ -1601,6 +1638,9 @@ class whitebit(Exchange, ImplicitAPI):
1601
1638
  stopPrice = self.safe_number(order, 'activation_price')
1602
1639
  orderId = self.safe_string_2(order, 'orderId', 'id')
1603
1640
  type = self.safe_string(order, 'type')
1641
+ orderType = self.parse_order_type(type)
1642
+ if orderType == 'market':
1643
+ remaining = None
1604
1644
  amount = self.safe_string(order, 'amount')
1605
1645
  cost = self.safe_string(order, 'dealMoney')
1606
1646
  if (side == 'buy') and ((type == 'market') or (type == 'stop market')):
@@ -1627,7 +1667,7 @@ class whitebit(Exchange, ImplicitAPI):
1627
1667
  'status': None,
1628
1668
  'side': side,
1629
1669
  'price': price,
1630
- 'type': self.parse_order_type(type),
1670
+ 'type': orderType,
1631
1671
  'stopPrice': stopPrice,
1632
1672
  'triggerPrice': stopPrice,
1633
1673
  'amount': amount,
ccxt/base/exchange.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.28'
7
+ __version__ = '4.3.30'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -5712,6 +5712,8 @@ class Exchange(object):
5712
5712
 
5713
5713
  def parse_margin_modes(self, response: List[object], symbols: List[str] = None, symbolKey: Str = None, marketType: MarketType = None):
5714
5714
  marginModeStructures = {}
5715
+ if marketType is None:
5716
+ marketType = 'swap' # default to swap
5715
5717
  for i in range(0, len(response)):
5716
5718
  info = response[i]
5717
5719
  marketId = self.safe_string(info, symbolKey)
@@ -5725,6 +5727,8 @@ class Exchange(object):
5725
5727
 
5726
5728
  def parse_leverages(self, response: List[object], symbols: List[str] = None, symbolKey: Str = None, marketType: MarketType = None):
5727
5729
  leverageStructures = {}
5730
+ if marketType is None:
5731
+ marketType = 'swap' # default to swap
5728
5732
  for i in range(0, len(response)):
5729
5733
  info = response[i]
5730
5734
  marketId = self.safe_string(info, symbolKey)
ccxt/bingx.py CHANGED
@@ -32,8 +32,7 @@ class bingx(Exchange, ImplicitAPI):
32
32
  'id': 'bingx',
33
33
  'name': 'BingX',
34
34
  'countries': ['US'], # North America, Canada, the EU, Hong Kong and Taiwan
35
- # cheapest is 60 requests a minute = 1 requests per second on average =>( 1000ms / 1) = 1000 ms between requests on average
36
- 'rateLimit': 1000,
35
+ 'rateLimit': 100,
37
36
  'version': 'v1',
38
37
  'certified': True,
39
38
  'pro': True,
@@ -146,44 +145,54 @@ class bingx(Exchange, ImplicitAPI):
146
145
  'v1': {
147
146
  'public': {
148
147
  'get': {
149
- 'server/time': 3,
150
- 'common/symbols': 3,
151
- 'market/trades': 3,
152
- 'market/depth': 3,
153
- 'market/kline': 3,
148
+ 'server/time': 1,
149
+ 'common/symbols': 1,
150
+ 'market/trades': 1,
151
+ 'market/depth': 1,
152
+ 'market/kline': 1,
154
153
  'ticker/24hr': 1,
154
+ 'ticker/price': 1,
155
+ 'ticker/bookTicker': 1,
155
156
  },
156
157
  },
157
158
  'private': {
158
159
  'get': {
159
- 'trade/query': 3,
160
- 'trade/openOrders': 3,
161
- 'trade/historyOrders': 3,
162
- 'trade/myTrades': 3,
163
- 'user/commissionRate': 3,
164
- 'account/balance': 3,
160
+ 'trade/query': 1,
161
+ 'trade/openOrders': 1,
162
+ 'trade/historyOrders': 1,
163
+ 'trade/myTrades': 2,
164
+ 'user/commissionRate': 5,
165
+ 'account/balance': 2,
165
166
  },
166
167
  'post': {
167
- 'trade/order': 3,
168
- 'trade/cancel': 3,
169
- 'trade/batchOrders': 3,
170
- 'trade/order/cancelReplace': 3,
171
- 'trade/cancelOrders': 3,
172
- 'trade/cancelOpenOrders': 3,
173
- 'trade/cancelAllAfter': 1,
168
+ 'trade/order': 2,
169
+ 'trade/cancel': 2,
170
+ 'trade/batchOrders': 5,
171
+ 'trade/order/cancelReplace': 5,
172
+ 'trade/cancelOrders': 5,
173
+ 'trade/cancelOpenOrders': 5,
174
+ 'trade/cancelAllAfter': 5,
175
+ },
176
+ },
177
+ },
178
+ 'v2': {
179
+ 'public': {
180
+ 'get': {
181
+ 'market/depth': 1,
182
+ 'market/kline': 1,
174
183
  },
175
184
  },
176
185
  },
177
186
  'v3': {
178
187
  'private': {
179
188
  'get': {
180
- 'get/asset/transfer': 3,
181
- 'asset/transfer': 3,
182
- 'capital/deposit/hisrec': 3,
183
- 'capital/withdraw/history': 3,
189
+ 'get/asset/transfer': 1,
190
+ 'asset/transfer': 1,
191
+ 'capital/deposit/hisrec': 1,
192
+ 'capital/withdraw/history': 1,
184
193
  },
185
194
  'post': {
186
- 'post/asset/transfer': 3,
195
+ 'post/asset/transfer': 5,
187
196
  },
188
197
  },
189
198
  },
@@ -193,26 +202,27 @@ class bingx(Exchange, ImplicitAPI):
193
202
  'public': {
194
203
  'get': {
195
204
  'ticker/price': 1,
205
+ 'market/historicalTrades': 1,
196
206
  },
197
207
  },
198
208
  'private': {
199
209
  'get': {
200
- 'positionSide/dual': 1,
210
+ 'positionSide/dual': 5,
201
211
  'market/markPriceKlines': 1,
202
- 'trade/batchCancelReplace': 1,
203
- 'trade/fullOrder': 1,
212
+ 'trade/batchCancelReplace': 5,
213
+ 'trade/fullOrder': 2,
204
214
  },
205
215
  'post': {
206
- 'trade/cancelReplace': 1,
207
- 'positionSide/dual': 1,
208
- 'trade/closePosition': 1,
216
+ 'trade/cancelReplace': 2,
217
+ 'positionSide/dual': 5,
218
+ 'trade/closePosition': 2,
209
219
  },
210
220
  },
211
221
  },
212
222
  'v2': {
213
223
  'public': {
214
224
  'get': {
215
- 'server/time': 3,
225
+ 'server/time': 1,
216
226
  'quote/contracts': 1,
217
227
  'quote/price': 1,
218
228
  'quote/depth': 1,
@@ -227,35 +237,35 @@ class bingx(Exchange, ImplicitAPI):
227
237
  },
228
238
  'private': {
229
239
  'get': {
230
- 'user/balance': 3,
231
- 'user/positions': 3,
232
- 'user/income': 3,
233
- 'trade/openOrders': 3,
234
- 'trade/openOrder': 3,
235
- 'trade/order': 3,
236
- 'trade/marginType': 3,
237
- 'trade/leverage': 3,
238
- 'trade/forceOrders': 3,
239
- 'trade/allOrders': 3,
240
- 'trade/allFillOrders': 3,
241
- 'user/income/export': 3,
242
- 'user/commissionRate': 3,
243
- 'quote/bookTicker': 3,
240
+ 'user/balance': 2,
241
+ 'user/positions': 2,
242
+ 'user/income': 2,
243
+ 'trade/openOrders': 2,
244
+ 'trade/openOrder': 2,
245
+ 'trade/order': 2,
246
+ 'trade/marginType': 5,
247
+ 'trade/leverage': 2,
248
+ 'trade/forceOrders': 1,
249
+ 'trade/allOrders': 2,
250
+ 'trade/allFillOrders': 2,
251
+ 'user/income/export': 2,
252
+ 'user/commissionRate': 2,
253
+ 'quote/bookTicker': 1,
244
254
  },
245
255
  'post': {
246
- 'trade/order': 3,
247
- 'trade/batchOrders': 3,
248
- 'trade/closeAllPositions': 3,
249
- 'trade/cancelAllAfter': 3,
250
- 'trade/marginType': 3,
251
- 'trade/leverage': 3,
252
- 'trade/positionMargin': 3,
253
- 'trade/order/test': 3,
256
+ 'trade/order': 2,
257
+ 'trade/batchOrders': 2,
258
+ 'trade/closeAllPositions': 2,
259
+ 'trade/cancelAllAfter': 5,
260
+ 'trade/marginType': 5,
261
+ 'trade/leverage': 5,
262
+ 'trade/positionMargin': 5,
263
+ 'trade/order/test': 2,
254
264
  },
255
265
  'delete': {
256
- 'trade/order': 3,
257
- 'trade/batchOrders': 3,
258
- 'trade/allOpenOrders': 3,
266
+ 'trade/order': 2,
267
+ 'trade/batchOrders': 2,
268
+ 'trade/allOpenOrders': 2,
259
269
  },
260
270
  },
261
271
  },
@@ -271,9 +281,9 @@ class bingx(Exchange, ImplicitAPI):
271
281
  'v1': {
272
282
  'private': {
273
283
  'get': {
274
- 'allPosition': 3,
275
- 'allOrders': 3,
276
- 'balance': 3,
284
+ 'allPosition': 2,
285
+ 'allOrders': 2,
286
+ 'balance': 2,
277
287
  },
278
288
  },
279
289
  },
@@ -282,18 +292,19 @@ class bingx(Exchange, ImplicitAPI):
282
292
  'v1': {
283
293
  'private': {
284
294
  'get': {
285
- 'capital/config/getall': 3,
286
- 'capital/deposit/address': 1,
295
+ 'capital/config/getall': 5,
296
+ 'capital/deposit/address': 5,
287
297
  'capital/innerTransfer/records': 1,
288
- 'capital/subAccount/deposit/address': 1,
289
- 'capital/deposit/subHisrec': 1,
298
+ 'capital/subAccount/deposit/address': 5,
299
+ 'capital/deposit/subHisrec': 2,
290
300
  'capital/subAccount/innerTransfer/records': 1,
301
+ 'capital/deposit/riskRecords': 5,
291
302
  },
292
303
  'post': {
293
- 'capital/withdraw/apply': 3,
294
- 'capital/innerTransfer/apply': 3,
295
- 'capital/subAccountInnerTransfer/apply': 3,
296
- 'capital/deposit/createSubAddress': 1,
304
+ 'capital/withdraw/apply': 5,
305
+ 'capital/innerTransfer/apply': 5,
306
+ 'capital/subAccountInnerTransfer/apply': 2,
307
+ 'capital/deposit/createSubAddress': 2,
297
308
  },
298
309
  },
299
310
  },
@@ -302,15 +313,15 @@ class bingx(Exchange, ImplicitAPI):
302
313
  'v1': {
303
314
  'private': {
304
315
  'get': {
305
- 'list': 3,
306
- 'assets': 3,
316
+ 'list': 10,
317
+ 'assets': 2,
307
318
  },
308
319
  'post': {
309
- 'create': 3,
310
- 'apiKey/create': 3,
311
- 'apiKey/edit': 3,
312
- 'apiKey/del': 3,
313
- 'updateStatus': 3,
320
+ 'create': 10,
321
+ 'apiKey/create': 2,
322
+ 'apiKey/edit': 2,
323
+ 'apiKey/del': 2,
324
+ 'updateStatus': 10,
314
325
  },
315
326
  },
316
327
  },
@@ -320,10 +331,10 @@ class bingx(Exchange, ImplicitAPI):
320
331
  'private': {
321
332
  'get': {
322
333
  'uid': 1,
323
- 'apiKey/query': 1,
334
+ 'apiKey/query': 2,
324
335
  },
325
336
  'post': {
326
- 'innerTransfer/authorizeSubAccount': 3,
337
+ 'innerTransfer/authorizeSubAccount': 1,
327
338
  },
328
339
  },
329
340
  },
@@ -332,10 +343,13 @@ class bingx(Exchange, ImplicitAPI):
332
343
  'auth': {
333
344
  'private': {
334
345
  'post': {
335
- 'userDataStream': 1,
346
+ 'userDataStream': 2,
336
347
  },
337
348
  'put': {
338
- 'userDataStream': 1,
349
+ 'userDataStream': 2,
350
+ },
351
+ 'delete': {
352
+ 'userDataStream': 2,
339
353
  },
340
354
  },
341
355
  },
@@ -344,12 +358,12 @@ class bingx(Exchange, ImplicitAPI):
344
358
  'v1': {
345
359
  'private': {
346
360
  'get': {
347
- 'swap/trace/currentTrack': 1,
361
+ 'swap/trace/currentTrack': 2,
348
362
  },
349
363
  'post': {
350
- 'swap/trace/closeTrackOrder': 1,
351
- 'swap/trace/setTPSL': 1,
352
- 'spot/trader/sellOrder': 1,
364
+ 'swap/trace/closeTrackOrder': 2,
365
+ 'swap/trace/setTPSL': 2,
366
+ 'spot/trader/sellOrder': 10,
353
367
  },
354
368
  },
355
369
  },
@@ -2375,7 +2389,7 @@ class bingx(Exchange, ImplicitAPI):
2375
2389
  'stopLossPrice': stopLossPrice,
2376
2390
  'takeProfitPrice': takeProfitPrice,
2377
2391
  'average': self.safe_string_2(order, 'avgPrice', 'ap'),
2378
- 'cost': None,
2392
+ 'cost': self.safe_string(order, 'cummulativeQuoteQty'),
2379
2393
  'amount': self.safe_string_n(order, ['origQty', 'q', 'quantity']),
2380
2394
  'filled': self.safe_string_2(order, 'executedQty', 'z'),
2381
2395
  'remaining': None,
ccxt/bitmart.py CHANGED
@@ -6,7 +6,7 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.bitmart import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Currencies, Currency, Int, IsolatedBorrowRate, IsolatedBorrowRates, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, Transaction, TransferEntry, TransferEntries
9
+ from ccxt.base.types import Balances, Currencies, Currency, Int, IsolatedBorrowRate, IsolatedBorrowRates, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, Transaction, TransferEntry, TransferEntries
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import AuthenticationError
@@ -59,6 +59,7 @@ class bitmart(Exchange, ImplicitAPI):
59
59
  'createMarketOrderWithCost': False,
60
60
  'createMarketSellOrderWithCost': False,
61
61
  'createOrder': True,
62
+ 'createOrders': True,
62
63
  'createPostOnlyOrder': True,
63
64
  'createStopLimitOrder': False,
64
65
  'createStopMarketOrder': False,
@@ -243,6 +244,7 @@ class bitmart(Exchange, ImplicitAPI):
243
244
  'spot/v4/query/trades': 5, # 12 times/2 sec = 6/s => 30/6 = 5
244
245
  'spot/v4/query/order-trades': 5, # 12 times/2 sec = 6/s => 30/6 = 5
245
246
  'spot/v4/cancel_orders': 3,
247
+ 'spot/v4/batch_orders': 3,
246
248
  # newer endpoint
247
249
  'spot/v3/cancel_order': 1,
248
250
  'spot/v2/batch_orders': 1,
@@ -2292,6 +2294,68 @@ class bitmart(Exchange, ImplicitAPI):
2292
2294
  order['price'] = price
2293
2295
  return order
2294
2296
 
2297
+ def create_orders(self, orders: List[OrderRequest], params={}):
2298
+ """
2299
+ create a list of trade orders
2300
+ :see: https://developer-pro.bitmart.com/en/spot/#new-batch-order-v4-signed
2301
+ :param Array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
2302
+ :param dict [params]: extra parameters specific to the exchange API endpoint
2303
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
2304
+ """
2305
+ self.load_markets()
2306
+ ordersRequests = []
2307
+ symbol = None
2308
+ market = None
2309
+ for i in range(0, len(orders)):
2310
+ rawOrder = orders[i]
2311
+ marketId = self.safe_string(rawOrder, 'symbol')
2312
+ market = self.market(marketId)
2313
+ if not market['spot']:
2314
+ raise NotSupported(self.id + ' createOrders() supports spot orders only')
2315
+ if symbol is None:
2316
+ symbol = marketId
2317
+ else:
2318
+ if symbol != marketId:
2319
+ raise BadRequest(self.id + ' createOrders() requires all orders to have the same symbol')
2320
+ type = self.safe_string(rawOrder, 'type')
2321
+ side = self.safe_string(rawOrder, 'side')
2322
+ amount = self.safe_value(rawOrder, 'amount')
2323
+ price = self.safe_value(rawOrder, 'price')
2324
+ orderParams = self.safe_dict(rawOrder, 'params', {})
2325
+ orderRequest = self.create_spot_order_request(marketId, type, side, amount, price, orderParams)
2326
+ orderRequest = self.omit(orderRequest, ['symbol']) # not needed because it goes in the outter object
2327
+ ordersRequests.append(orderRequest)
2328
+ request = {
2329
+ 'symbol': market['id'],
2330
+ 'orderParams': ordersRequests,
2331
+ }
2332
+ response = self.privatePostSpotV4BatchOrders(request)
2333
+ #
2334
+ # {
2335
+ # "message": "OK",
2336
+ # "code": 1000,
2337
+ # "trace": "5fc697fb817a4b5396284786a9b2609a.263.17022620476480263",
2338
+ # "data": {
2339
+ # "code": 0,
2340
+ # "msg": "success",
2341
+ # "data": {
2342
+ # "orderIds": [
2343
+ # "212751308355553320"
2344
+ # ]
2345
+ # }
2346
+ # }
2347
+ # }
2348
+ #
2349
+ data = self.safe_dict(response, 'data', {})
2350
+ innderData = self.safe_dict(data, 'data', {})
2351
+ orderIds = self.safe_list(innderData, 'orderIds', [])
2352
+ parsedOrders = []
2353
+ for i in range(0, len(orderIds)):
2354
+ orderId = orderIds[i]
2355
+ order = self.safe_order({'id': orderId}, market)
2356
+ parsedOrders.append(order)
2357
+ return parsedOrders
2358
+
2295
2359
  def create_swap_order_request(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
2296
2360
  """
2297
2361
  * @ignore