ccxt 4.4.48 → 4.4.49

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.
Files changed (75) hide show
  1. package/README.md +3 -3
  2. package/dist/ccxt.browser.min.js +12 -12
  3. package/dist/cjs/ccxt.js +1 -1
  4. package/dist/cjs/src/bingx.js +88 -30
  5. package/dist/cjs/src/bitget.js +12 -10
  6. package/dist/cjs/src/coinsph.js +18 -9
  7. package/dist/cjs/src/deribit.js +82 -0
  8. package/dist/cjs/src/digifinex.js +131 -11
  9. package/dist/cjs/src/ellipx.js +61 -0
  10. package/dist/cjs/src/exmo.js +58 -0
  11. package/dist/cjs/src/hitbtc.js +99 -0
  12. package/dist/cjs/src/hollaex.js +73 -0
  13. package/dist/cjs/src/huobijp.js +73 -0
  14. package/dist/cjs/src/hyperliquid.js +22 -1
  15. package/dist/cjs/src/idex.js +71 -0
  16. package/dist/cjs/src/independentreserve.js +64 -0
  17. package/dist/cjs/src/indodax.js +61 -0
  18. package/dist/cjs/src/kuna.js +60 -1
  19. package/dist/cjs/src/latoken.js +64 -0
  20. package/dist/cjs/src/lbank.js +70 -0
  21. package/dist/cjs/src/luno.js +73 -0
  22. package/dist/cjs/src/lykke.js +64 -0
  23. package/dist/cjs/src/mercado.js +65 -0
  24. package/dist/cjs/src/mexc.js +1 -1
  25. package/dist/cjs/src/myokx.js +10 -0
  26. package/dist/cjs/src/ndax.js +71 -0
  27. package/dist/cjs/src/novadax.js +74 -0
  28. package/dist/cjs/src/oceanex.js +69 -0
  29. package/dist/cjs/src/okcoin.js +79 -2
  30. package/dist/cjs/src/onetrading.js +66 -0
  31. package/dist/cjs/src/oxfun.js +66 -0
  32. package/dist/cjs/src/p2b.js +63 -1
  33. package/dist/cjs/src/paradex.js +68 -0
  34. package/dist/cjs/src/pro/bitmart.js +6 -0
  35. package/js/ccxt.d.ts +1 -1
  36. package/js/ccxt.js +1 -1
  37. package/js/src/bingx.d.ts +8 -0
  38. package/js/src/bingx.js +88 -30
  39. package/js/src/bitget.d.ts +1 -0
  40. package/js/src/bitget.js +12 -10
  41. package/js/src/coinsph.d.ts +1 -0
  42. package/js/src/coinsph.js +18 -9
  43. package/js/src/deribit.js +82 -0
  44. package/js/src/digifinex.d.ts +1 -0
  45. package/js/src/digifinex.js +131 -11
  46. package/js/src/ellipx.d.ts +1 -0
  47. package/js/src/ellipx.js +61 -0
  48. package/js/src/exmo.js +58 -0
  49. package/js/src/hitbtc.js +99 -0
  50. package/js/src/hollaex.js +73 -0
  51. package/js/src/huobijp.js +73 -0
  52. package/js/src/hyperliquid.d.ts +1 -0
  53. package/js/src/hyperliquid.js +22 -1
  54. package/js/src/idex.js +71 -0
  55. package/js/src/independentreserve.js +64 -0
  56. package/js/src/indodax.js +61 -0
  57. package/js/src/kuna.js +60 -1
  58. package/js/src/latoken.js +64 -0
  59. package/js/src/lbank.js +70 -0
  60. package/js/src/luno.js +73 -0
  61. package/js/src/lykke.js +64 -0
  62. package/js/src/mercado.js +65 -0
  63. package/js/src/mexc.js +1 -1
  64. package/js/src/myokx.js +10 -0
  65. package/js/src/ndax.js +71 -0
  66. package/js/src/novadax.js +74 -0
  67. package/js/src/oceanex.js +69 -0
  68. package/js/src/okcoin.js +79 -2
  69. package/js/src/onetrading.js +66 -0
  70. package/js/src/oxfun.js +66 -0
  71. package/js/src/p2b.js +63 -1
  72. package/js/src/paradex.js +68 -0
  73. package/js/src/pro/bitmart.d.ts +1 -0
  74. package/js/src/pro/bitmart.js +6 -0
  75. package/package.json +2 -2
package/js/src/luno.js CHANGED
@@ -183,6 +183,79 @@ export default class luno extends Exchange {
183
183
  },
184
184
  },
185
185
  'precisionMode': TICK_SIZE,
186
+ 'features': {
187
+ 'spot': {
188
+ 'sandbox': false,
189
+ 'createOrder': {
190
+ 'marginMode': false,
191
+ 'triggerPrice': true,
192
+ 'triggerPriceType': undefined,
193
+ 'triggerDirection': true,
194
+ 'stopLossPrice': false,
195
+ 'takeProfitPrice': false,
196
+ 'attachedStopLossTakeProfit': undefined,
197
+ 'timeInForce': {
198
+ 'IOC': true,
199
+ 'FOK': true,
200
+ 'PO': true,
201
+ 'GTD': false,
202
+ },
203
+ 'hedged': false,
204
+ 'trailing': false,
205
+ 'leverage': false,
206
+ 'marketBuyByCost': true,
207
+ 'marketBuyRequiresPrice': false,
208
+ 'selfTradePrevention': false,
209
+ 'iceberg': false,
210
+ },
211
+ 'createOrders': undefined,
212
+ 'fetchMyTrades': {
213
+ 'marginMode': false,
214
+ 'limit': 1000,
215
+ 'daysBack': 100000,
216
+ 'untilDays': 100000, // todo
217
+ },
218
+ 'fetchOrder': {
219
+ 'marginMode': false,
220
+ 'trigger': false,
221
+ 'trailing': false,
222
+ },
223
+ 'fetchOpenOrders': {
224
+ 'marginMode': false,
225
+ 'limit': 1000,
226
+ 'trigger': false,
227
+ 'trailing': false,
228
+ },
229
+ 'fetchOrders': {
230
+ 'marginMode': false,
231
+ 'limit': 1000,
232
+ 'daysBack': 100000,
233
+ 'untilDays': undefined,
234
+ 'trigger': false,
235
+ 'trailing': false,
236
+ },
237
+ 'fetchClosedOrders': {
238
+ 'marginMode': false,
239
+ 'limit': 1000,
240
+ 'daysBack': 100000,
241
+ 'daysBackCanceled': 1,
242
+ 'untilDays': undefined,
243
+ 'trigger': false,
244
+ 'trailing': false,
245
+ },
246
+ 'fetchOHLCV': {
247
+ 'limit': undefined,
248
+ },
249
+ },
250
+ 'swap': {
251
+ 'linear': undefined,
252
+ 'inverse': undefined,
253
+ },
254
+ 'future': {
255
+ 'linear': undefined,
256
+ 'inverse': undefined,
257
+ },
258
+ },
186
259
  });
187
260
  }
188
261
  /**
package/js/src/lykke.js CHANGED
@@ -187,6 +187,70 @@ export default class lykke extends Exchange {
187
187
  'broad': {},
188
188
  },
189
189
  'commonCurrencies': {},
190
+ 'features': {
191
+ 'spot': {
192
+ 'sandbox': false,
193
+ 'createOrder': {
194
+ 'marginMode': false,
195
+ 'triggerPrice': false,
196
+ 'triggerPriceType': undefined,
197
+ 'triggerDirection': false,
198
+ 'stopLossPrice': false,
199
+ 'takeProfitPrice': false,
200
+ 'attachedStopLossTakeProfit': undefined,
201
+ 'timeInForce': {
202
+ 'IOC': false,
203
+ 'FOK': false,
204
+ 'PO': false,
205
+ 'GTD': false,
206
+ },
207
+ 'hedged': false,
208
+ 'trailing': false,
209
+ 'leverage': false,
210
+ 'marketBuyByCost': false,
211
+ 'marketBuyRequiresPrice': false,
212
+ 'selfTradePrevention': false,
213
+ 'iceberg': false,
214
+ },
215
+ 'createOrders': undefined,
216
+ 'fetchMyTrades': {
217
+ 'marginMode': false,
218
+ 'limit': 1000,
219
+ 'daysBack': 100000,
220
+ 'untilDays': 100000, // todo
221
+ },
222
+ 'fetchOrder': {
223
+ 'marginMode': false,
224
+ 'trigger': false,
225
+ 'trailing': false,
226
+ },
227
+ 'fetchOpenOrders': {
228
+ 'marginMode': false,
229
+ 'limit': 1000,
230
+ 'trigger': false,
231
+ 'trailing': false,
232
+ },
233
+ 'fetchOrders': undefined,
234
+ 'fetchClosedOrders': {
235
+ 'marginMode': false,
236
+ 'limit': 1000,
237
+ 'daysBack': undefined,
238
+ 'daysBackCanceled': undefined,
239
+ 'untilDays': undefined,
240
+ 'trigger': false,
241
+ 'trailing': false,
242
+ },
243
+ 'fetchOHLCV': undefined,
244
+ },
245
+ 'swap': {
246
+ 'linear': undefined,
247
+ 'inverse': undefined,
248
+ },
249
+ 'future': {
250
+ 'linear': undefined,
251
+ 'inverse': undefined,
252
+ },
253
+ },
190
254
  });
191
255
  }
192
256
  /**
package/js/src/mercado.js CHANGED
@@ -161,6 +161,71 @@ export default class mercado extends Exchange {
161
161
  'XRP': 0.1,
162
162
  },
163
163
  },
164
+ 'features': {
165
+ 'spot': {
166
+ 'sandbox': false,
167
+ 'createOrder': {
168
+ 'marginMode': false,
169
+ 'triggerPrice': false,
170
+ 'triggerPriceType': undefined,
171
+ 'triggerDirection': false,
172
+ 'stopLossPrice': false,
173
+ 'takeProfitPrice': false,
174
+ 'attachedStopLossTakeProfit': undefined,
175
+ 'timeInForce': {
176
+ 'IOC': false,
177
+ 'FOK': false,
178
+ 'PO': true,
179
+ 'GTD': false,
180
+ },
181
+ 'hedged': false,
182
+ 'trailing': false,
183
+ 'leverage': false,
184
+ 'marketBuyByCost': true,
185
+ 'marketBuyRequiresPrice': true,
186
+ 'selfTradePrevention': false,
187
+ 'iceberg': false,
188
+ },
189
+ 'createOrders': undefined,
190
+ 'fetchMyTrades': {
191
+ 'marginMode': false,
192
+ 'limit': undefined,
193
+ 'daysBack': 100000,
194
+ 'untilDays': 100000, // todo
195
+ },
196
+ 'fetchOrder': {
197
+ 'marginMode': false,
198
+ 'trigger': false,
199
+ 'trailing': false,
200
+ },
201
+ 'fetchOpenOrders': {
202
+ 'marginMode': false,
203
+ 'limit': undefined,
204
+ 'trigger': false,
205
+ 'trailing': false,
206
+ },
207
+ 'fetchOrders': {
208
+ 'marginMode': false,
209
+ 'limit': 500,
210
+ 'daysBack': 100000,
211
+ 'untilDays': 100000,
212
+ 'trigger': false,
213
+ 'trailing': false,
214
+ },
215
+ 'fetchClosedOrders': undefined,
216
+ 'fetchOHLCV': {
217
+ 'limit': 1000,
218
+ },
219
+ },
220
+ 'swap': {
221
+ 'linear': undefined,
222
+ 'inverse': undefined,
223
+ },
224
+ 'future': {
225
+ 'linear': undefined,
226
+ 'inverse': undefined,
227
+ },
228
+ },
164
229
  'precisionMode': TICK_SIZE,
165
230
  });
166
231
  }
package/js/src/mexc.js CHANGED
@@ -4698,7 +4698,7 @@ export default class mexc extends Exchange {
4698
4698
  return {
4699
4699
  'info': depositAddress,
4700
4700
  'currency': this.safeCurrencyCode(currencyId, currency),
4701
- 'network': this.networkIdToCode(networkId),
4701
+ 'network': this.networkIdToCode(networkId, currencyId),
4702
4702
  'address': address,
4703
4703
  'tag': this.safeString(depositAddress, 'memo'),
4704
4704
  };
package/js/src/myokx.js CHANGED
@@ -39,6 +39,16 @@ export default class myokx extends okx {
39
39
  'future': false,
40
40
  'option': false,
41
41
  },
42
+ 'features': {
43
+ 'swap': {
44
+ 'linear': undefined,
45
+ 'inverse': undefined,
46
+ },
47
+ 'future': {
48
+ 'linear': undefined,
49
+ 'inverse': undefined,
50
+ },
51
+ },
42
52
  });
43
53
  }
44
54
  }
package/js/src/ndax.js CHANGED
@@ -261,6 +261,77 @@ export default class ndax extends Exchange {
261
261
  },
262
262
  },
263
263
  },
264
+ 'features': {
265
+ 'spot': {
266
+ 'sandbox': true,
267
+ 'createOrder': {
268
+ 'marginMode': false,
269
+ 'triggerPrice': true,
270
+ 'triggerDirection': false,
271
+ 'triggerPriceType': {
272
+ 'last': true,
273
+ 'mark': false,
274
+ 'index': false,
275
+ // bid & ask
276
+ },
277
+ 'stopLossPrice': false,
278
+ 'takeProfitPrice': false,
279
+ 'attachedStopLossTakeProfit': undefined,
280
+ // todo
281
+ 'timeInForce': {
282
+ 'IOC': true,
283
+ 'FOK': true,
284
+ 'PO': true,
285
+ 'GTD': false,
286
+ },
287
+ 'hedged': false,
288
+ 'trailing': false,
289
+ 'leverage': false,
290
+ 'marketBuyByCost': false,
291
+ 'marketBuyRequiresPrice': false,
292
+ 'selfTradePrevention': false,
293
+ 'iceberg': true, // todo
294
+ },
295
+ 'createOrders': undefined,
296
+ 'fetchMyTrades': {
297
+ 'marginMode': false,
298
+ 'limit': 100,
299
+ 'daysBack': 100000,
300
+ 'untilDays': 100000, // todo
301
+ },
302
+ 'fetchOrder': {
303
+ 'marginMode': false,
304
+ 'trigger': false,
305
+ 'trailing': false,
306
+ },
307
+ 'fetchOpenOrders': {
308
+ 'marginMode': false,
309
+ 'limit': undefined,
310
+ 'trigger': false,
311
+ 'trailing': false,
312
+ },
313
+ 'fetchOrders': {
314
+ 'marginMode': false,
315
+ 'limit': undefined,
316
+ 'daysBack': undefined,
317
+ 'untilDays': undefined,
318
+ 'trigger': false,
319
+ 'trailing': false,
320
+ },
321
+ 'fetchClosedOrders': undefined,
322
+ 'fetchOHLCV': {
323
+ 'limit': undefined,
324
+ },
325
+ },
326
+ 'swap': {
327
+ 'linear': undefined,
328
+ 'inverse': undefined,
329
+ },
330
+ 'future': {
331
+ 'linear': undefined,
332
+ 'inverse': undefined,
333
+ },
334
+ },
264
335
  'fees': {
265
336
  'trading': {
266
337
  'tierBased': false,
package/js/src/novadax.js CHANGED
@@ -211,6 +211,80 @@ export default class novadax extends Exchange {
211
211
  'fillResponseFromRequest': true,
212
212
  },
213
213
  },
214
+ 'features': {
215
+ 'spot': {
216
+ 'sandbox': false,
217
+ 'createOrder': {
218
+ 'marginMode': false,
219
+ 'triggerPrice': true,
220
+ 'triggerDirection': true,
221
+ 'triggerPriceType': undefined,
222
+ 'stopLossPrice': false,
223
+ 'takeProfitPrice': false,
224
+ 'attachedStopLossTakeProfit': undefined,
225
+ // todo
226
+ 'timeInForce': {
227
+ 'IOC': false,
228
+ 'FOK': false,
229
+ 'PO': false,
230
+ 'GTD': false,
231
+ },
232
+ 'hedged': false,
233
+ 'trailing': false,
234
+ 'leverage': false,
235
+ 'marketBuyByCost': true,
236
+ 'marketBuyRequiresPrice': false,
237
+ 'selfTradePrevention': false,
238
+ 'iceberg': true, // todo
239
+ },
240
+ 'createOrders': undefined,
241
+ 'fetchMyTrades': {
242
+ 'marginMode': false,
243
+ 'limit': 100,
244
+ 'daysBack': 100000,
245
+ 'untilDays': 100000, // todo
246
+ },
247
+ 'fetchOrder': {
248
+ 'marginMode': false,
249
+ 'trigger': false,
250
+ 'trailing': false,
251
+ },
252
+ 'fetchOpenOrders': {
253
+ 'marginMode': false,
254
+ 'limit': undefined,
255
+ 'trigger': false,
256
+ 'trailing': false,
257
+ },
258
+ 'fetchOrders': {
259
+ 'marginMode': false,
260
+ 'limit': 100,
261
+ 'daysBack': 100000,
262
+ 'untilDays': 100000,
263
+ 'trigger': false,
264
+ 'trailing': false,
265
+ },
266
+ 'fetchClosedOrders': {
267
+ 'marginMode': false,
268
+ 'limit': 100,
269
+ 'daysBack': 100000,
270
+ 'daysBackCanceled': 1,
271
+ 'untilDays': 100000,
272
+ 'trigger': false,
273
+ 'trailing': false,
274
+ },
275
+ 'fetchOHLCV': {
276
+ 'limit': undefined, // todo max 3000
277
+ },
278
+ },
279
+ 'swap': {
280
+ 'linear': undefined,
281
+ 'inverse': undefined,
282
+ },
283
+ 'future': {
284
+ 'linear': undefined,
285
+ 'inverse': undefined,
286
+ },
287
+ },
214
288
  });
215
289
  }
216
290
  /**
package/js/src/oceanex.js CHANGED
@@ -135,6 +135,75 @@ export default class oceanex extends Exchange {
135
135
  'PLA': 'Plair',
136
136
  },
137
137
  'precisionMode': TICK_SIZE,
138
+ 'features': {
139
+ 'spot': {
140
+ 'sandbox': false,
141
+ 'createOrder': {
142
+ 'marginMode': false,
143
+ 'triggerPrice': true,
144
+ 'triggerDirection': true,
145
+ 'triggerPriceType': undefined,
146
+ 'stopLossPrice': false,
147
+ 'takeProfitPrice': false,
148
+ 'attachedStopLossTakeProfit': undefined,
149
+ 'timeInForce': {
150
+ 'IOC': false,
151
+ 'FOK': false,
152
+ 'PO': false,
153
+ 'GTD': false,
154
+ },
155
+ 'hedged': false,
156
+ 'trailing': false,
157
+ 'leverage': false,
158
+ 'marketBuyByCost': false,
159
+ 'marketBuyRequiresPrice': false,
160
+ 'selfTradePrevention': false,
161
+ 'iceberg': false,
162
+ },
163
+ 'createOrders': undefined,
164
+ 'fetchMyTrades': undefined,
165
+ 'fetchOrder': {
166
+ 'marginMode': false,
167
+ 'trigger': false,
168
+ 'trailing': false,
169
+ },
170
+ 'fetchOpenOrders': {
171
+ 'marginMode': false,
172
+ 'limit': 100,
173
+ 'trigger': false,
174
+ 'trailing': false,
175
+ },
176
+ 'fetchOrders': {
177
+ 'marginMode': false,
178
+ 'limit': 100,
179
+ 'daysBack': 100000,
180
+ 'untilDays': 100000,
181
+ 'trigger': false,
182
+ 'trailing': false,
183
+ },
184
+ 'fetchClosedOrders': {
185
+ 'marginMode': false,
186
+ 'limit': 100,
187
+ 'daysBack': 100000,
188
+ 'daysBackCanceled': 1,
189
+ 'untilDays': 100000,
190
+ 'trigger': false,
191
+ 'trailing': false,
192
+ },
193
+ 'fetchOHLCV': {
194
+ 'limit': 100,
195
+ },
196
+ },
197
+ // todo implement swap
198
+ 'swap': {
199
+ 'linear': undefined,
200
+ 'inverse': undefined,
201
+ },
202
+ 'future': {
203
+ 'linear': undefined,
204
+ 'inverse': undefined,
205
+ },
206
+ },
138
207
  'exceptions': {
139
208
  'codes': {
140
209
  '-1': BadRequest,
package/js/src/okcoin.js CHANGED
@@ -204,6 +204,83 @@ export default class okcoin extends Exchange {
204
204
  },
205
205
  },
206
206
  },
207
+ 'features': {
208
+ 'spot': {
209
+ 'sandbox': false,
210
+ 'createOrder': {
211
+ 'marginMode': true,
212
+ 'triggerPrice': true,
213
+ 'triggerDirection': true,
214
+ 'triggerPriceType': {
215
+ 'last': true,
216
+ 'mark': false,
217
+ 'index': false,
218
+ },
219
+ 'stopLossPrice': true,
220
+ 'takeProfitPrice': true,
221
+ 'attachedStopLossTakeProfit': {
222
+ 'triggerPriceType': {
223
+ 'last': true,
224
+ 'mark': false,
225
+ 'index': false,
226
+ },
227
+ 'price': true,
228
+ },
229
+ 'timeInForce': {
230
+ 'IOC': true,
231
+ 'FOK': true,
232
+ 'PO': true,
233
+ 'GTD': false,
234
+ },
235
+ 'hedged': false,
236
+ 'trailing': true,
237
+ 'leverage': false,
238
+ 'marketBuyByCost': true,
239
+ 'marketBuyRequiresPrice': true,
240
+ 'selfTradePrevention': false,
241
+ 'iceberg': true, // todo
242
+ },
243
+ 'createOrders': undefined,
244
+ 'fetchMyTrades': {
245
+ 'marginMode': false,
246
+ 'limit': 100,
247
+ 'daysBack': 90,
248
+ 'untilDays': 90, // todo
249
+ },
250
+ 'fetchOrder': {
251
+ 'marginMode': false,
252
+ 'trigger': true,
253
+ 'trailing': true, // todo
254
+ },
255
+ 'fetchOpenOrders': {
256
+ 'marginMode': false,
257
+ 'limit': 100,
258
+ 'trigger': true,
259
+ 'trailing': true,
260
+ },
261
+ 'fetchOrders': undefined,
262
+ 'fetchClosedOrders': {
263
+ 'marginMode': false,
264
+ 'limit': 100,
265
+ 'daysBack': 90,
266
+ 'daysBackCanceled': 1 / 12,
267
+ 'untilDays': 90,
268
+ 'trigger': true,
269
+ 'trailing': true,
270
+ },
271
+ 'fetchOHLCV': {
272
+ 'limit': 100, // 300 is only possible for 'recent' 1440 candles, which does not make much sense
273
+ },
274
+ },
275
+ 'swap': {
276
+ 'linear': undefined,
277
+ 'inverse': undefined,
278
+ },
279
+ 'future': {
280
+ 'linear': undefined,
281
+ 'inverse': undefined,
282
+ },
283
+ },
207
284
  'fees': {
208
285
  'trading': {
209
286
  'taker': 0.002,
@@ -1513,7 +1590,7 @@ export default class okcoin extends Exchange {
1513
1590
  if (stopLossDefined) {
1514
1591
  const stopLossTriggerPrice = this.safeValueN(stopLoss, ['triggerPrice', 'stopPrice', 'slTriggerPx']);
1515
1592
  if (stopLossTriggerPrice === undefined) {
1516
- throw new InvalidOrder(this.id + ' createOrder() requires a trigger price in params["stopLoss"]["triggerPrice"], or params["stopLoss"]["stopPrice"], or params["stopLoss"]["slTriggerPx"] for a stop loss order');
1593
+ throw new InvalidOrder(this.id + ' createOrder() requires a trigger price in params["stopLoss"]["triggerPrice"] for a stop loss order');
1517
1594
  }
1518
1595
  request['slTriggerPx'] = this.priceToPrecision(symbol, stopLossTriggerPrice);
1519
1596
  const stopLossLimitPrice = this.safeValueN(stopLoss, ['price', 'stopLossPrice', 'slOrdPx']);
@@ -1526,7 +1603,7 @@ export default class okcoin extends Exchange {
1526
1603
  }
1527
1604
  else if (stopLossLimitOrderType) {
1528
1605
  if (stopLossLimitPrice === undefined) {
1529
- throw new InvalidOrder(this.id + ' createOrder() requires a limit price in params["stopLoss"]["price"] or params["stopLoss"]["slOrdPx"] for a stop loss limit order');
1606
+ throw new InvalidOrder(this.id + ' createOrder() requires a limit price in params["stopLoss"]["price"] for a stop loss limit order');
1530
1607
  }
1531
1608
  else {
1532
1609
  request['slOrdPx'] = this.priceToPrecision(symbol, stopLossLimitPrice);
@@ -292,6 +292,72 @@ export default class onetrading extends Exchange {
292
292
  },
293
293
  'fiat': ['EUR', 'CHF'],
294
294
  },
295
+ 'features': {
296
+ 'spot': {
297
+ 'sandbox': false,
298
+ 'createOrder': {
299
+ 'marginMode': false,
300
+ 'triggerPrice': false,
301
+ 'triggerDirection': false,
302
+ 'triggerPriceType': undefined,
303
+ 'stopLossPrice': false,
304
+ 'takeProfitPrice': false,
305
+ 'attachedStopLossTakeProfit': undefined,
306
+ 'timeInForce': {
307
+ 'IOC': true,
308
+ 'FOK': true,
309
+ 'PO': true,
310
+ 'GTD': false,
311
+ },
312
+ 'hedged': false,
313
+ 'trailing': false,
314
+ 'leverage': false,
315
+ 'marketBuyByCost': false,
316
+ 'marketBuyRequiresPrice': false,
317
+ 'selfTradePrevention': false,
318
+ 'iceberg': false,
319
+ },
320
+ 'createOrders': undefined,
321
+ 'fetchMyTrades': {
322
+ 'marginMode': false,
323
+ 'limit': 100,
324
+ 'daysBack': 100000,
325
+ 'untilDays': 100000, // todo
326
+ },
327
+ 'fetchOrder': {
328
+ 'marginMode': false,
329
+ 'trigger': false,
330
+ 'trailing': false,
331
+ },
332
+ 'fetchOpenOrders': {
333
+ 'marginMode': false,
334
+ 'limit': 100,
335
+ 'trigger': false,
336
+ 'trailing': false,
337
+ },
338
+ 'fetchOrders': undefined,
339
+ 'fetchClosedOrders': {
340
+ 'marginMode': false,
341
+ 'limit': 100,
342
+ 'daysBack': 100000,
343
+ 'daysBackCanceled': 1 / 12,
344
+ 'untilDays': 100000,
345
+ 'trigger': false,
346
+ 'trailing': false,
347
+ },
348
+ 'fetchOHLCV': {
349
+ 'limit': 5000,
350
+ },
351
+ },
352
+ 'swap': {
353
+ 'linear': undefined,
354
+ 'inverse': undefined,
355
+ },
356
+ 'future': {
357
+ 'linear': undefined,
358
+ 'inverse': undefined,
359
+ },
360
+ },
295
361
  });
296
362
  }
297
363
  /**