ccxt 4.4.49 → 4.4.53

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 (158) hide show
  1. package/README.md +6 -3
  2. package/dist/ccxt.browser.min.js +3 -3
  3. package/dist/cjs/ccxt.js +1 -1
  4. package/dist/cjs/src/alpaca.js +65 -2
  5. package/dist/cjs/src/base/Exchange.js +112 -3
  6. package/dist/cjs/src/binance.js +42 -19
  7. package/dist/cjs/src/bitfinex1.js +22 -22
  8. package/dist/cjs/src/blofin.js +6 -2
  9. package/dist/cjs/src/bybit.js +2 -2
  10. package/dist/cjs/src/coinex.js +5 -5
  11. package/dist/cjs/src/coinmetro.js +21 -4
  12. package/dist/cjs/src/defx.js +1 -1
  13. package/dist/cjs/src/deribit.js +23 -4
  14. package/dist/cjs/src/ellipx.js +1 -0
  15. package/dist/cjs/src/gate.js +2 -2
  16. package/dist/cjs/src/hollaex.js +15 -20
  17. package/dist/cjs/src/htx.js +6 -4
  18. package/dist/cjs/src/hyperliquid.js +4 -4
  19. package/dist/cjs/src/krakenfutures.js +1 -1
  20. package/dist/cjs/src/kucoin.js +52 -74
  21. package/dist/cjs/src/kuna.js +1 -1
  22. package/dist/cjs/src/mexc.js +29 -8
  23. package/dist/cjs/src/okcoin.js +13 -5
  24. package/dist/cjs/src/okx.js +1 -1
  25. package/dist/cjs/src/onetrading.js +1 -1
  26. package/dist/cjs/src/paradex.js +2 -2
  27. package/dist/cjs/src/paymium.js +42 -0
  28. package/dist/cjs/src/pro/binance.js +2 -0
  29. package/dist/cjs/src/pro/bitfinex1.js +4 -4
  30. package/dist/cjs/src/pro/bitvavo.js +1 -1
  31. package/dist/cjs/src/pro/blofin.js +9 -1
  32. package/dist/cjs/src/pro/bybit.js +1 -1
  33. package/dist/cjs/src/pro/coincatch.js +2 -2
  34. package/dist/cjs/src/pro/coinex.js +4 -1
  35. package/dist/cjs/src/pro/cryptocom.js +2 -2
  36. package/dist/cjs/src/pro/defx.js +1 -1
  37. package/dist/cjs/src/pro/exmo.js +1 -1
  38. package/dist/cjs/src/pro/gemini.js +1 -1
  39. package/dist/cjs/src/pro/hashkey.js +2 -2
  40. package/dist/cjs/src/pro/htx.js +8 -8
  41. package/dist/cjs/src/pro/hyperliquid.js +2 -2
  42. package/dist/cjs/src/pro/kucoin.js +1 -1
  43. package/dist/cjs/src/pro/okx.js +1 -1
  44. package/dist/cjs/src/pro/oxfun.js +1 -1
  45. package/dist/cjs/src/probit.js +77 -9
  46. package/dist/cjs/src/timex.js +67 -0
  47. package/dist/cjs/src/tokocrypto.js +82 -5
  48. package/dist/cjs/src/tradeogre.js +55 -2
  49. package/dist/cjs/src/vertex.js +65 -2
  50. package/dist/cjs/src/wavesexchange.js +73 -0
  51. package/dist/cjs/src/wazirx.js +59 -3
  52. package/dist/cjs/src/whitebit.js +80 -4
  53. package/dist/cjs/src/xt.js +112 -0
  54. package/dist/cjs/src/yobit.js +56 -0
  55. package/dist/cjs/src/zaif.js +55 -0
  56. package/dist/cjs/src/zonda.js +56 -0
  57. package/examples/README.md +6 -0
  58. package/js/ccxt.d.ts +1 -1
  59. package/js/ccxt.js +1 -1
  60. package/js/src/abstract/binance.d.ts +1 -0
  61. package/js/src/abstract/binancecoinm.d.ts +1 -0
  62. package/js/src/abstract/binanceus.d.ts +1 -0
  63. package/js/src/abstract/binanceusdm.d.ts +1 -0
  64. package/js/src/alpaca.d.ts +35 -0
  65. package/js/src/alpaca.js +65 -2
  66. package/js/src/base/Exchange.d.ts +2 -0
  67. package/js/src/base/Exchange.js +112 -3
  68. package/js/src/binance.d.ts +4 -1
  69. package/js/src/binance.js +42 -19
  70. package/js/src/bitfinex1.d.ts +22 -22
  71. package/js/src/bitfinex1.js +22 -22
  72. package/js/src/blofin.d.ts +1 -1
  73. package/js/src/blofin.js +6 -2
  74. package/js/src/bybit.d.ts +2 -2
  75. package/js/src/bybit.js +2 -2
  76. package/js/src/coinex.js +5 -5
  77. package/js/src/coinmetro.d.ts +1 -1
  78. package/js/src/coinmetro.js +21 -4
  79. package/js/src/defx.d.ts +1 -1
  80. package/js/src/defx.js +1 -1
  81. package/js/src/deribit.d.ts +1 -1
  82. package/js/src/deribit.js +23 -4
  83. package/js/src/ellipx.d.ts +1 -0
  84. package/js/src/ellipx.js +1 -0
  85. package/js/src/gate.d.ts +1 -1
  86. package/js/src/gate.js +2 -2
  87. package/js/src/hollaex.d.ts +2 -1
  88. package/js/src/hollaex.js +15 -20
  89. package/js/src/htx.d.ts +1 -1
  90. package/js/src/htx.js +6 -4
  91. package/js/src/hyperliquid.d.ts +3 -3
  92. package/js/src/hyperliquid.js +4 -4
  93. package/js/src/krakenfutures.d.ts +1 -1
  94. package/js/src/krakenfutures.js +1 -1
  95. package/js/src/kucoin.js +52 -74
  96. package/js/src/kuna.d.ts +1 -1
  97. package/js/src/kuna.js +1 -1
  98. package/js/src/mexc.d.ts +1 -1
  99. package/js/src/mexc.js +29 -8
  100. package/js/src/okcoin.js +13 -5
  101. package/js/src/okx.d.ts +1 -1
  102. package/js/src/okx.js +1 -1
  103. package/js/src/onetrading.d.ts +1 -1
  104. package/js/src/onetrading.js +1 -1
  105. package/js/src/paradex.d.ts +1 -1
  106. package/js/src/paradex.js +2 -2
  107. package/js/src/paymium.js +42 -0
  108. package/js/src/pro/binance.js +2 -0
  109. package/js/src/pro/bitfinex1.d.ts +4 -4
  110. package/js/src/pro/bitfinex1.js +4 -4
  111. package/js/src/pro/bitvavo.d.ts +1 -1
  112. package/js/src/pro/bitvavo.js +1 -1
  113. package/js/src/pro/blofin.d.ts +1 -1
  114. package/js/src/pro/blofin.js +9 -1
  115. package/js/src/pro/bybit.d.ts +1 -1
  116. package/js/src/pro/bybit.js +1 -1
  117. package/js/src/pro/coincatch.d.ts +2 -2
  118. package/js/src/pro/coincatch.js +2 -2
  119. package/js/src/pro/coinex.js +4 -1
  120. package/js/src/pro/cryptocom.d.ts +2 -2
  121. package/js/src/pro/cryptocom.js +2 -2
  122. package/js/src/pro/defx.d.ts +1 -1
  123. package/js/src/pro/defx.js +1 -1
  124. package/js/src/pro/exmo.d.ts +1 -1
  125. package/js/src/pro/exmo.js +1 -1
  126. package/js/src/pro/gemini.d.ts +1 -1
  127. package/js/src/pro/gemini.js +1 -1
  128. package/js/src/pro/hashkey.d.ts +2 -2
  129. package/js/src/pro/hashkey.js +2 -2
  130. package/js/src/pro/htx.d.ts +8 -8
  131. package/js/src/pro/htx.js +8 -8
  132. package/js/src/pro/hyperliquid.d.ts +2 -2
  133. package/js/src/pro/hyperliquid.js +2 -2
  134. package/js/src/pro/kucoin.d.ts +1 -1
  135. package/js/src/pro/kucoin.js +1 -1
  136. package/js/src/pro/okx.d.ts +1 -1
  137. package/js/src/pro/okx.js +1 -1
  138. package/js/src/pro/oxfun.d.ts +1 -1
  139. package/js/src/pro/oxfun.js +1 -1
  140. package/js/src/probit.d.ts +1 -0
  141. package/js/src/probit.js +77 -9
  142. package/js/src/timex.js +67 -0
  143. package/js/src/tokocrypto.d.ts +2 -3
  144. package/js/src/tokocrypto.js +82 -5
  145. package/js/src/tradeogre.d.ts +4 -2
  146. package/js/src/tradeogre.js +55 -2
  147. package/js/src/vertex.js +65 -2
  148. package/js/src/wavesexchange.js +73 -0
  149. package/js/src/wazirx.js +59 -3
  150. package/js/src/whitebit.js +80 -4
  151. package/js/src/xt.js +112 -0
  152. package/js/src/yobit.js +56 -0
  153. package/js/src/zaif.js +55 -0
  154. package/js/src/zonda.d.ts +1 -0
  155. package/js/src/zonda.js +56 -0
  156. package/package.json +2 -2
  157. package/js/src/hitbtc3.d.ts +0 -8
  158. package/js/src/hitbtc3.js +0 -20
package/js/src/timex.js CHANGED
@@ -270,6 +270,73 @@ export default class timex extends Exchange {
270
270
  'defaultSort': 'timestamp,asc',
271
271
  'defaultSortOrders': 'createdAt,asc',
272
272
  },
273
+ 'features': {
274
+ 'spot': {
275
+ 'sandbox': false,
276
+ 'createOrder': {
277
+ 'marginMode': false,
278
+ 'triggerPrice': false,
279
+ 'triggerDirection': false,
280
+ 'triggerPriceType': undefined,
281
+ 'stopLossPrice': false,
282
+ 'takeProfitPrice': false,
283
+ 'attachedStopLossTakeProfit': undefined,
284
+ // todo
285
+ 'timeInForce': {
286
+ 'IOC': true,
287
+ 'FOK': true,
288
+ 'PO': false,
289
+ 'GTD': true,
290
+ },
291
+ 'hedged': false,
292
+ 'trailing': false,
293
+ 'leverage': false,
294
+ 'marketBuyByCost': false,
295
+ 'marketBuyRequiresPrice': false,
296
+ 'selfTradePrevention': false,
297
+ 'iceberg': false,
298
+ },
299
+ 'createOrders': undefined,
300
+ 'fetchMyTrades': {
301
+ 'marginMode': false,
302
+ 'limit': 100,
303
+ 'daysBack': 100000,
304
+ 'untilDays': 100000, // todo
305
+ },
306
+ 'fetchOrder': {
307
+ 'marginMode': false,
308
+ 'trigger': false,
309
+ 'trailing': false,
310
+ },
311
+ 'fetchOpenOrders': {
312
+ 'marginMode': false,
313
+ 'limit': 100,
314
+ 'trigger': false,
315
+ 'trailing': false,
316
+ },
317
+ 'fetchOrders': undefined,
318
+ 'fetchClosedOrders': {
319
+ 'marginMode': false,
320
+ 'limit': 100,
321
+ 'daysBack': 100000,
322
+ 'daysBackCanceled': 1,
323
+ 'untilDays': 100000,
324
+ 'trigger': false,
325
+ 'trailing': false,
326
+ },
327
+ 'fetchOHLCV': {
328
+ 'limit': undefined,
329
+ },
330
+ },
331
+ 'swap': {
332
+ 'linear': undefined,
333
+ 'inverse': undefined,
334
+ },
335
+ 'future': {
336
+ 'linear': undefined,
337
+ 'inverse': undefined,
338
+ },
339
+ },
273
340
  });
274
341
  }
275
342
  /**
@@ -119,7 +119,6 @@ export default class tokocrypto extends Exchange {
119
119
  * @name tokocrypto#createOrder
120
120
  * @description create a trade order
121
121
  * @see https://www.tokocrypto.com/apidocs/#new-order--signed
122
- * @see https://www.tokocrypto.com/apidocs/#account-trade-list-signed
123
122
  * @param {string} symbol unified symbol of the market to create an order in
124
123
  * @param {string} type 'market' or 'limit'
125
124
  * @param {string} side 'buy' or 'sell'
@@ -134,7 +133,7 @@ export default class tokocrypto extends Exchange {
134
133
  /**
135
134
  * @method
136
135
  * @name tokocrypto#fetchOrder
137
- * @see https://www.tokocrypto.com/apidocs/#all-orders-signed
136
+ * @see https://www.tokocrypto.com/apidocs/#query-order-signed
138
137
  * @description fetches information on an order made by the user
139
138
  * @param {string} id order id
140
139
  * @param {string} symbol unified symbol of the market the order was made in
@@ -240,7 +239,7 @@ export default class tokocrypto extends Exchange {
240
239
  parseTransaction(transaction: Dict, currency?: Currency): Transaction;
241
240
  /**
242
241
  * @method
243
- * @name bybit#withdraw
242
+ * @name tokocrypto#withdraw
244
243
  * @see https://www.tokocrypto.com/apidocs/#withdraw-signed
245
244
  * @description make a withdrawal
246
245
  * @param {string} code unified currency code
@@ -598,6 +598,79 @@ export default class tokocrypto extends Exchange {
598
598
  'MAX_POSITION': InvalidOrder, // {"code":-2010,"msg":"Filter failure: MAX_POSITION"}
599
599
  },
600
600
  },
601
+ 'features': {
602
+ 'spot': {
603
+ 'sandbox': false,
604
+ 'createOrder': {
605
+ 'marginMode': false,
606
+ 'triggerPrice': true,
607
+ 'triggerDirection': false,
608
+ 'triggerPriceType': undefined,
609
+ 'stopLossPrice': false,
610
+ 'takeProfitPrice': false,
611
+ 'attachedStopLossTakeProfit': undefined,
612
+ 'timeInForce': {
613
+ 'IOC': true,
614
+ 'FOK': true,
615
+ 'PO': true,
616
+ 'GTD': false,
617
+ },
618
+ 'hedged': false,
619
+ 'trailing': false,
620
+ 'leverage': false,
621
+ 'marketBuyByCost': true,
622
+ 'marketBuyRequiresPrice': true,
623
+ 'selfTradePrevention': true,
624
+ 'iceberg': true, // todo
625
+ },
626
+ 'createOrders': undefined,
627
+ 'fetchMyTrades': {
628
+ 'marginMode': false,
629
+ 'limit': 1000,
630
+ 'daysBack': 100000,
631
+ 'untilDays': 100000, // todo
632
+ },
633
+ 'fetchOrder': {
634
+ 'marginMode': false,
635
+ 'trigger': false,
636
+ 'trailing': false,
637
+ },
638
+ 'fetchOpenOrders': {
639
+ 'marginMode': false,
640
+ 'limit': 1000,
641
+ 'trigger': false,
642
+ 'trailing': false,
643
+ },
644
+ 'fetchOrders': {
645
+ 'marginMode': false,
646
+ 'limit': 1000,
647
+ 'daysBack': 100000,
648
+ 'untilDays': 100000,
649
+ 'trigger': false,
650
+ 'trailing': false,
651
+ },
652
+ 'fetchClosedOrders': {
653
+ 'marginMode': false,
654
+ 'limit': 1000,
655
+ 'daysBack': 100000,
656
+ 'daysBackCanceled': 1,
657
+ 'untilDays': 100000,
658
+ 'trigger': false,
659
+ 'trailing': false,
660
+ },
661
+ 'fetchOHLCV': {
662
+ 'limit': 1000,
663
+ },
664
+ },
665
+ 'swap': {
666
+ 'linear': undefined,
667
+ 'inverse': undefined,
668
+ },
669
+ 'future': {
670
+ 'linear': undefined,
671
+ 'inverse': undefined,
672
+ },
673
+ },
601
674
  });
602
675
  }
603
676
  nonce() {
@@ -614,9 +687,14 @@ export default class tokocrypto extends Exchange {
614
687
  async fetchTime(params = {}) {
615
688
  const response = await this.publicGetOpenV1CommonTime(params);
616
689
  //
690
+ // {
691
+ // "code": 0,
692
+ // "msg": "Success",
693
+ // "data": null,
694
+ // "timestamp": 1737378074159
695
+ // }
617
696
  //
618
- //
619
- return this.safeInteger(response, 'serverTime');
697
+ return this.safeInteger(response, 'timestamp');
620
698
  }
621
699
  /**
622
700
  * @method
@@ -1591,7 +1669,6 @@ export default class tokocrypto extends Exchange {
1591
1669
  * @name tokocrypto#createOrder
1592
1670
  * @description create a trade order
1593
1671
  * @see https://www.tokocrypto.com/apidocs/#new-order--signed
1594
- * @see https://www.tokocrypto.com/apidocs/#account-trade-list-signed
1595
1672
  * @param {string} symbol unified symbol of the market to create an order in
1596
1673
  * @param {string} type 'market' or 'limit'
1597
1674
  * @param {string} side 'buy' or 'sell'
@@ -1781,7 +1858,7 @@ export default class tokocrypto extends Exchange {
1781
1858
  /**
1782
1859
  * @method
1783
1860
  * @name tokocrypto#fetchOrder
1784
- * @see https://www.tokocrypto.com/apidocs/#all-orders-signed
1861
+ * @see https://www.tokocrypto.com/apidocs/#query-order-signed
1785
1862
  * @description fetches information on an order made by the user
1786
1863
  * @param {string} id order id
1787
1864
  * @param {string} symbol unified symbol of the market the order was made in
@@ -2346,7 +2423,7 @@ export default class tokocrypto extends Exchange {
2346
2423
  }
2347
2424
  /**
2348
2425
  * @method
2349
- * @name bybit#withdraw
2426
+ * @name tokocrypto#withdraw
2350
2427
  * @see https://www.tokocrypto.com/apidocs/#withdraw-signed
2351
2428
  * @description make a withdrawal
2352
2429
  * @param {string} code unified currency code
@@ -63,6 +63,7 @@ export default class tradeogre extends Exchange {
63
63
  * @method
64
64
  * @name tradeogre#createOrder
65
65
  * @description create a trade order
66
+ * @see https://tradeogre.com/help/api#:~:text=u%20%27%7Bpublic%7D%3A%7Bprivate%7D%27-,Submit%20Buy%20Order
66
67
  * @param {string} symbol unified symbol of the market to create an order in
67
68
  * @param {string} type must be 'limit'
68
69
  * @param {string} side 'buy' or 'sell'
@@ -95,6 +96,7 @@ export default class tradeogre extends Exchange {
95
96
  * @method
96
97
  * @name tradeogre#fetchOpenOrders
97
98
  * @description fetch all unfilled currently open orders
99
+ * @see https://tradeogre.com/help/api#:~:text=%7B%22success%22%3Atrue%7D-,Get%20Orders,-Method%20(POST)
98
100
  * @param {string} symbol unified market symbol of the market orders were made in
99
101
  * @param {int} [since] the earliest time in ms to fetch orders for
100
102
  * @param {int} [limit] the maximum number of order structures to retrieve
@@ -104,9 +106,9 @@ export default class tradeogre extends Exchange {
104
106
  fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
105
107
  /**
106
108
  * @method
107
- * @name ace#fetchOrder
109
+ * @name tradeogre#fetchOrder
108
110
  * @description fetches information on an order made by the user
109
- * @see https://github.com/ace-exchange/ace-official-api-docs/blob/master/api_v2.md#open-api---order-status
111
+ * @see https://tradeogre.com/help/api#:~:text=market%22%3A%22XMR%2DBTC%22%7D%5D-,Get%20Order,-Method%20(GET)
110
112
  * @param {string} id order id
111
113
  * @param {string} symbol unified symbol of the market the order was made in
112
114
  * @param {object} [params] extra parameters specific to the exchange API endpoint
@@ -159,6 +159,57 @@ export default class tradeogre extends Exchange {
159
159
  },
160
160
  },
161
161
  'options': {},
162
+ 'features': {
163
+ 'spot': {
164
+ 'sandbox': false,
165
+ 'createOrder': {
166
+ 'marginMode': false,
167
+ 'triggerPrice': false,
168
+ 'triggerDirection': false,
169
+ 'triggerPriceType': undefined,
170
+ 'stopLossPrice': false,
171
+ 'takeProfitPrice': false,
172
+ 'attachedStopLossTakeProfit': undefined,
173
+ 'timeInForce': {
174
+ 'IOC': false,
175
+ 'FOK': false,
176
+ 'PO': false,
177
+ 'GTD': false,
178
+ },
179
+ 'hedged': false,
180
+ 'trailing': false,
181
+ 'leverage': false,
182
+ 'marketBuyByCost': false,
183
+ 'marketBuyRequiresPrice': false,
184
+ 'selfTradePrevention': false,
185
+ 'iceberg': false,
186
+ },
187
+ 'createOrders': undefined,
188
+ 'fetchMyTrades': undefined,
189
+ 'fetchOrder': {
190
+ 'marginMode': false,
191
+ 'trigger': false,
192
+ 'trailing': false,
193
+ },
194
+ 'fetchOpenOrders': {
195
+ 'marginMode': false,
196
+ 'limit': undefined,
197
+ 'trigger': false,
198
+ 'trailing': false,
199
+ },
200
+ 'fetchOrders': undefined,
201
+ 'fetchClosedOrders': undefined,
202
+ 'fetchOHLCV': undefined, // todo
203
+ },
204
+ 'swap': {
205
+ 'linear': undefined,
206
+ 'inverse': undefined,
207
+ },
208
+ 'future': {
209
+ 'linear': undefined,
210
+ 'inverse': undefined,
211
+ },
212
+ },
162
213
  });
163
214
  }
164
215
  /**
@@ -449,6 +500,7 @@ export default class tradeogre extends Exchange {
449
500
  * @method
450
501
  * @name tradeogre#createOrder
451
502
  * @description create a trade order
503
+ * @see https://tradeogre.com/help/api#:~:text=u%20%27%7Bpublic%7D%3A%7Bprivate%7D%27-,Submit%20Buy%20Order
452
504
  * @param {string} symbol unified symbol of the market to create an order in
453
505
  * @param {string} type must be 'limit'
454
506
  * @param {string} side 'buy' or 'sell'
@@ -516,6 +568,7 @@ export default class tradeogre extends Exchange {
516
568
  * @method
517
569
  * @name tradeogre#fetchOpenOrders
518
570
  * @description fetch all unfilled currently open orders
571
+ * @see https://tradeogre.com/help/api#:~:text=%7B%22success%22%3Atrue%7D-,Get%20Orders,-Method%20(POST)
519
572
  * @param {string} symbol unified market symbol of the market orders were made in
520
573
  * @param {int} [since] the earliest time in ms to fetch orders for
521
574
  * @param {int} [limit] the maximum number of order structures to retrieve
@@ -537,9 +590,9 @@ export default class tradeogre extends Exchange {
537
590
  }
538
591
  /**
539
592
  * @method
540
- * @name ace#fetchOrder
593
+ * @name tradeogre#fetchOrder
541
594
  * @description fetches information on an order made by the user
542
- * @see https://github.com/ace-exchange/ace-official-api-docs/blob/master/api_v2.md#open-api---order-status
595
+ * @see https://tradeogre.com/help/api#:~:text=market%22%3A%22XMR%2DBTC%22%7D%5D-,Get%20Order,-Method%20(GET)
543
596
  * @param {string} id order id
544
597
  * @param {string} symbol unified symbol of the market the order was made in
545
598
  * @param {object} [params] extra parameters specific to the exchange API endpoint
package/js/src/vertex.js CHANGED
@@ -324,6 +324,69 @@ export default class vertex extends Exchange {
324
324
  'timeDifference': 0,
325
325
  'brokerId': 5930043274845996,
326
326
  },
327
+ 'features': {
328
+ 'default': {
329
+ 'sandbox': true,
330
+ 'createOrder': {
331
+ 'marginMode': false,
332
+ 'triggerPrice': true,
333
+ 'triggerDirection': false,
334
+ 'triggerPriceType': undefined,
335
+ 'stopLossPrice': true,
336
+ 'takeProfitPrice': true,
337
+ 'attachedStopLossTakeProfit': undefined,
338
+ 'timeInForce': {
339
+ 'IOC': false,
340
+ 'FOK': false,
341
+ 'PO': true,
342
+ 'GTD': true,
343
+ },
344
+ 'hedged': false,
345
+ 'trailing': false,
346
+ 'leverage': false,
347
+ 'marketBuyByCost': true,
348
+ 'marketBuyRequiresPrice': true,
349
+ 'selfTradePrevention': false,
350
+ 'iceberg': false,
351
+ },
352
+ 'createOrders': undefined,
353
+ 'fetchMyTrades': {
354
+ 'marginMode': false,
355
+ 'limit': 500,
356
+ 'daysBack': 100000,
357
+ 'untilDays': undefined,
358
+ },
359
+ 'fetchOrder': {
360
+ 'marginMode': false,
361
+ 'trigger': false,
362
+ 'trailing': false,
363
+ },
364
+ 'fetchOpenOrders': {
365
+ 'marginMode': false,
366
+ 'limit': 500,
367
+ 'trigger': true,
368
+ 'trailing': false,
369
+ },
370
+ 'fetchOrders': undefined,
371
+ 'fetchClosedOrders': undefined,
372
+ 'fetchOHLCV': {
373
+ 'limit': 1000,
374
+ },
375
+ },
376
+ 'spot': {
377
+ 'extends': 'default',
378
+ },
379
+ 'swap': {
380
+ 'linear': {
381
+ 'extends': 'default',
382
+ },
383
+ 'inverse': undefined,
384
+ },
385
+ 'future': {
386
+ 'linear': undefined,
387
+ 'inverse': undefined,
388
+ },
389
+ },
327
390
  });
328
391
  }
329
392
  setSandboxMode(enabled) {
@@ -2169,7 +2232,7 @@ export default class vertex extends Exchange {
2169
2232
  // "product_id": 1,
2170
2233
  // "orders": [
2171
2234
  // {
2172
- // "product_id": 1,
2235
+ // "product_id": 2,
2173
2236
  // "sender": "0x7a5ec2748e9065794491a8d29dcf3f9edb8d7c43000000000000000000000000",
2174
2237
  // "price_x18": "1000000000000000000",
2175
2238
  // "amount": "1000000000000000000",
@@ -2178,7 +2241,7 @@ export default class vertex extends Exchange {
2178
2241
  // "order_type": "default",
2179
2242
  // "unfilled_amount": "1000000000000000000",
2180
2243
  // "digest": "0x0000000000000000000000000000000000000000000000000000000000000000",
2181
- // "placed_at": 1682437739,
2244
+ // "placed_at": 1682437737,
2182
2245
  // "order_type": "ioc"
2183
2246
  // }
2184
2247
  // ]
@@ -347,6 +347,79 @@ export default class wavesexchange extends Exchange {
347
347
  'BEP20': 'BSC',
348
348
  },
349
349
  },
350
+ 'features': {
351
+ 'spot': {
352
+ 'sandbox': true,
353
+ 'createOrder': {
354
+ 'marginMode': false,
355
+ 'triggerPrice': true,
356
+ 'triggerDirection': false,
357
+ 'triggerPriceType': undefined,
358
+ 'stopLossPrice': false,
359
+ 'takeProfitPrice': false,
360
+ 'attachedStopLossTakeProfit': undefined,
361
+ 'timeInForce': {
362
+ 'IOC': false,
363
+ 'FOK': false,
364
+ 'PO': false,
365
+ 'GTD': true, // todo
366
+ },
367
+ 'hedged': false,
368
+ 'trailing': false,
369
+ 'leverage': false,
370
+ 'marketBuyByCost': false,
371
+ 'marketBuyRequiresPrice': true,
372
+ 'selfTradePrevention': false,
373
+ 'iceberg': false,
374
+ },
375
+ 'createOrders': undefined,
376
+ 'fetchMyTrades': {
377
+ 'marginMode': false,
378
+ 'limit': 100,
379
+ 'daysBack': 100000,
380
+ 'untilDays': 100000, // todo
381
+ },
382
+ 'fetchOrder': {
383
+ 'marginMode': false,
384
+ 'trigger': false,
385
+ 'trailing': false,
386
+ },
387
+ 'fetchOpenOrders': {
388
+ 'marginMode': false,
389
+ 'limit': 100,
390
+ 'trigger': false,
391
+ 'trailing': false,
392
+ },
393
+ 'fetchOrders': {
394
+ 'marginMode': false,
395
+ 'limit': 100,
396
+ 'daysBack': undefined,
397
+ 'untilDays': undefined,
398
+ 'trigger': false,
399
+ 'trailing': false,
400
+ },
401
+ 'fetchClosedOrders': {
402
+ 'marginMode': false,
403
+ 'limit': 100,
404
+ 'daysBack': 100000,
405
+ 'daysBackCanceled': 1,
406
+ 'untilDays': 100000,
407
+ 'trigger': false,
408
+ 'trailing': false,
409
+ },
410
+ 'fetchOHLCV': {
411
+ 'limit': undefined, // todo
412
+ },
413
+ },
414
+ 'swap': {
415
+ 'linear': undefined,
416
+ 'inverse': undefined,
417
+ },
418
+ 'future': {
419
+ 'linear': undefined,
420
+ 'inverse': undefined,
421
+ },
422
+ },
350
423
  'commonCurrencies': {
351
424
  'EGG': 'Waves Ducks',
352
425
  },
package/js/src/wazirx.js CHANGED
@@ -209,6 +209,62 @@ export default class wazirx extends Exchange {
209
209
  // You can get network from fetchCurrencies
210
210
  },
211
211
  },
212
+ 'features': {
213
+ 'spot': {
214
+ 'sandbox': false,
215
+ 'createOrder': {
216
+ 'marginMode': false,
217
+ 'triggerPrice': true,
218
+ 'triggerDirection': false,
219
+ 'triggerPriceType': undefined,
220
+ 'stopLossPrice': false,
221
+ 'takeProfitPrice': false,
222
+ 'attachedStopLossTakeProfit': undefined,
223
+ 'timeInForce': {
224
+ 'IOC': false,
225
+ 'FOK': false,
226
+ 'PO': false,
227
+ 'GTD': false,
228
+ },
229
+ 'hedged': false,
230
+ 'trailing': false,
231
+ 'leverage': false,
232
+ 'marketBuyByCost': false,
233
+ 'marketBuyRequiresPrice': false,
234
+ 'selfTradePrevention': false,
235
+ 'iceberg': false,
236
+ },
237
+ 'createOrders': undefined,
238
+ 'fetchMyTrades': undefined,
239
+ 'fetchOrder': undefined,
240
+ 'fetchOpenOrders': {
241
+ 'marginMode': false,
242
+ 'limit': undefined,
243
+ 'trigger': false,
244
+ 'trailing': false,
245
+ },
246
+ 'fetchOrders': {
247
+ 'marginMode': false,
248
+ 'limit': 1000,
249
+ 'daysBack': 100000,
250
+ 'untilDays': 100000,
251
+ 'trigger': false,
252
+ 'trailing': false,
253
+ },
254
+ 'fetchClosedOrders': undefined,
255
+ 'fetchOHLCV': {
256
+ 'limit': 2000,
257
+ },
258
+ },
259
+ 'swap': {
260
+ 'linear': undefined,
261
+ 'inverse': undefined,
262
+ },
263
+ 'future': {
264
+ 'linear': undefined,
265
+ 'inverse': undefined,
266
+ },
267
+ },
212
268
  });
213
269
  }
214
270
  /**
@@ -889,10 +945,10 @@ export default class wazirx extends Exchange {
889
945
  'type': 'limit',
890
946
  };
891
947
  request['price'] = this.priceToPrecision(symbol, price);
892
- const stopPrice = this.safeString(params, 'stopPrice');
893
- if (stopPrice !== undefined) {
948
+ const triggerPrice = this.safeString2(params, 'triggerPrice', 'stopPrice');
949
+ if (triggerPrice !== undefined) {
894
950
  request['type'] = 'stop_limit';
895
- request['stopPrice'] = this.priceToPrecision(symbol, stopPrice);
951
+ request['stopPrice'] = this.priceToPrecision(symbol, triggerPrice);
896
952
  }
897
953
  const response = await this.privatePostOrder(this.extend(request, params));
898
954
  // {