ccxt 4.4.47 → 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.
- package/README.md +3 -3
- package/dist/ccxt.browser.min.js +16 -16
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/ace.js +1 -1
- package/dist/cjs/src/binance.js +18 -14
- package/dist/cjs/src/bingx.js +88 -30
- package/dist/cjs/src/bitget.js +16 -12
- package/dist/cjs/src/bitmart.js +7 -2
- package/dist/cjs/src/bitmex.js +8 -5
- package/dist/cjs/src/bybit.js +7 -2
- package/dist/cjs/src/coinbase.js +11 -1
- package/dist/cjs/src/coincatch.js +86 -2
- package/dist/cjs/src/coincheck.js +52 -0
- package/dist/cjs/src/coinlist.js +77 -0
- package/dist/cjs/src/coinmate.js +63 -0
- package/dist/cjs/src/coinmetro.js +68 -0
- package/dist/cjs/src/coinone.js +56 -0
- package/dist/cjs/src/coinsph.js +85 -10
- package/dist/cjs/src/coinspot.js +47 -0
- package/dist/cjs/src/currencycom.js +72 -0
- package/dist/cjs/src/defx.js +93 -6
- package/dist/cjs/src/delta.js +83 -1
- package/dist/cjs/src/deribit.js +82 -0
- package/dist/cjs/src/digifinex.js +131 -11
- package/dist/cjs/src/ellipx.js +61 -0
- package/dist/cjs/src/exmo.js +58 -0
- package/dist/cjs/src/gate.js +10 -1
- package/dist/cjs/src/hitbtc.js +99 -0
- package/dist/cjs/src/hollaex.js +73 -0
- package/dist/cjs/src/htx.js +10 -2
- package/dist/cjs/src/huobijp.js +73 -0
- package/dist/cjs/src/hyperliquid.js +28 -2
- package/dist/cjs/src/idex.js +71 -0
- package/dist/cjs/src/independentreserve.js +124 -0
- package/dist/cjs/src/indodax.js +61 -0
- package/dist/cjs/src/kraken.js +1 -1
- package/dist/cjs/src/krakenfutures.js +4 -4
- package/dist/cjs/src/kuna.js +60 -1
- package/dist/cjs/src/latoken.js +64 -0
- package/dist/cjs/src/lbank.js +70 -0
- package/dist/cjs/src/luno.js +73 -0
- package/dist/cjs/src/lykke.js +64 -0
- package/dist/cjs/src/mercado.js +65 -0
- package/dist/cjs/src/mexc.js +1 -1
- package/dist/cjs/src/myokx.js +10 -0
- package/dist/cjs/src/ndax.js +71 -0
- package/dist/cjs/src/novadax.js +74 -0
- package/dist/cjs/src/oceanex.js +69 -0
- package/dist/cjs/src/okcoin.js +79 -2
- package/dist/cjs/src/okx.js +9 -1
- package/dist/cjs/src/onetrading.js +66 -0
- package/dist/cjs/src/oxfun.js +66 -0
- package/dist/cjs/src/p2b.js +63 -1
- package/dist/cjs/src/paradex.js +73 -2
- package/dist/cjs/src/phemex.js +103 -0
- package/dist/cjs/src/poloniex.js +61 -0
- package/dist/cjs/src/poloniexfutures.js +74 -0
- package/dist/cjs/src/pro/bitmart.js +6 -0
- package/dist/cjs/src/upbit.js +61 -0
- package/dist/cjs/src/woo.js +6 -1
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/abstract/independentreserve.d.ts +6 -0
- package/js/src/ace.js +1 -1
- package/js/src/binance.d.ts +7 -0
- package/js/src/binance.js +18 -14
- package/js/src/bingx.d.ts +8 -0
- package/js/src/bingx.js +88 -30
- package/js/src/bitget.d.ts +1 -0
- package/js/src/bitget.js +16 -12
- package/js/src/bitmart.js +7 -2
- package/js/src/bitmex.js +8 -5
- package/js/src/bybit.d.ts +1 -1
- package/js/src/bybit.js +7 -2
- package/js/src/coinbase.d.ts +1 -0
- package/js/src/coinbase.js +11 -1
- package/js/src/coincatch.d.ts +1 -2
- package/js/src/coincatch.js +86 -2
- package/js/src/coincheck.js +52 -0
- package/js/src/coinlist.js +77 -0
- package/js/src/coinmate.js +63 -0
- package/js/src/coinmetro.js +68 -0
- package/js/src/coinone.js +56 -0
- package/js/src/coinsph.d.ts +2 -1
- package/js/src/coinsph.js +85 -10
- package/js/src/coinspot.js +47 -0
- package/js/src/currencycom.js +72 -0
- package/js/src/defx.js +93 -6
- package/js/src/delta.js +83 -1
- package/js/src/deribit.js +82 -0
- package/js/src/digifinex.d.ts +1 -0
- package/js/src/digifinex.js +131 -11
- package/js/src/ellipx.d.ts +1 -0
- package/js/src/ellipx.js +61 -0
- package/js/src/exmo.js +58 -0
- package/js/src/gate.d.ts +1 -0
- package/js/src/gate.js +10 -1
- package/js/src/hitbtc.js +99 -0
- package/js/src/hollaex.js +73 -0
- package/js/src/htx.d.ts +1 -0
- package/js/src/htx.js +10 -2
- package/js/src/huobijp.js +73 -0
- package/js/src/hyperliquid.d.ts +1 -0
- package/js/src/hyperliquid.js +28 -2
- package/js/src/idex.js +71 -0
- package/js/src/independentreserve.js +124 -0
- package/js/src/indodax.js +61 -0
- package/js/src/kraken.js +1 -1
- package/js/src/krakenfutures.js +4 -4
- package/js/src/kuna.js +60 -1
- package/js/src/latoken.js +64 -0
- package/js/src/lbank.js +70 -0
- package/js/src/luno.js +73 -0
- package/js/src/lykke.js +64 -0
- package/js/src/mercado.js +65 -0
- package/js/src/mexc.js +1 -1
- package/js/src/myokx.js +10 -0
- package/js/src/ndax.js +71 -0
- package/js/src/novadax.js +74 -0
- package/js/src/oceanex.js +69 -0
- package/js/src/okcoin.js +79 -2
- package/js/src/okx.d.ts +1 -0
- package/js/src/okx.js +9 -1
- package/js/src/onetrading.js +66 -0
- package/js/src/oxfun.js +66 -0
- package/js/src/p2b.js +63 -1
- package/js/src/paradex.js +73 -2
- package/js/src/phemex.js +103 -0
- package/js/src/poloniex.js +61 -0
- package/js/src/poloniexfutures.js +74 -0
- package/js/src/pro/bitmart.d.ts +1 -0
- package/js/src/pro/bitmart.js +6 -0
- package/js/src/upbit.js +61 -0
- package/js/src/woo.js +6 -1
- package/package.json +2 -2
package/js/src/coinone.js
CHANGED
|
@@ -193,6 +193,62 @@ export default class coinone extends Exchange {
|
|
|
193
193
|
'maker': 0.002,
|
|
194
194
|
},
|
|
195
195
|
},
|
|
196
|
+
'features': {
|
|
197
|
+
'spot': {
|
|
198
|
+
'sandbox': false,
|
|
199
|
+
'createOrder': {
|
|
200
|
+
'marginMode': false,
|
|
201
|
+
'triggerPrice': false,
|
|
202
|
+
'triggerPriceType': undefined,
|
|
203
|
+
'triggerDirection': false,
|
|
204
|
+
'stopLossPrice': false,
|
|
205
|
+
'takeProfitPrice': false,
|
|
206
|
+
'attachedStopLossTakeProfit': undefined,
|
|
207
|
+
'timeInForce': {
|
|
208
|
+
'IOC': false,
|
|
209
|
+
'FOK': false,
|
|
210
|
+
'PO': false,
|
|
211
|
+
'GTD': false,
|
|
212
|
+
},
|
|
213
|
+
'hedged': false,
|
|
214
|
+
'trailing': false,
|
|
215
|
+
'leverage': false,
|
|
216
|
+
'marketBuyByCost': false,
|
|
217
|
+
'marketBuyRequiresPrice': false,
|
|
218
|
+
'selfTradePrevention': false,
|
|
219
|
+
'iceberg': false,
|
|
220
|
+
},
|
|
221
|
+
'createOrders': undefined,
|
|
222
|
+
'fetchMyTrades': {
|
|
223
|
+
'marginMode': false,
|
|
224
|
+
'limit': 100,
|
|
225
|
+
'daysBack': 100000,
|
|
226
|
+
'untilDays': 100000, // todo implement
|
|
227
|
+
},
|
|
228
|
+
'fetchOrder': {
|
|
229
|
+
'marginMode': false,
|
|
230
|
+
'trigger': false,
|
|
231
|
+
'trailing': false,
|
|
232
|
+
},
|
|
233
|
+
'fetchOpenOrders': {
|
|
234
|
+
'marginMode': false,
|
|
235
|
+
'limit': undefined,
|
|
236
|
+
'trigger': false,
|
|
237
|
+
'trailing': false,
|
|
238
|
+
},
|
|
239
|
+
'fetchOrders': undefined,
|
|
240
|
+
'fetchClosedOrders': undefined,
|
|
241
|
+
'fetchOHLCV': undefined, // todo implement
|
|
242
|
+
},
|
|
243
|
+
'swap': {
|
|
244
|
+
'linear': undefined,
|
|
245
|
+
'inverse': undefined,
|
|
246
|
+
},
|
|
247
|
+
'future': {
|
|
248
|
+
'linear': undefined,
|
|
249
|
+
'inverse': undefined,
|
|
250
|
+
},
|
|
251
|
+
},
|
|
196
252
|
'precisionMode': TICK_SIZE,
|
|
197
253
|
'exceptions': {
|
|
198
254
|
'104': OrderNotFound,
|
package/js/src/coinsph.d.ts
CHANGED
|
@@ -86,6 +86,7 @@ export default class coinsph extends Exchange {
|
|
|
86
86
|
* @param {int} [since] timestamp in ms of the earliest candle to fetch
|
|
87
87
|
* @param {int} [limit] the maximum amount of candles to fetch (default 500, max 1000)
|
|
88
88
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
89
|
+
* @param {int} [params.until] timestamp in ms of the latest candle to fetch
|
|
89
90
|
* @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
|
|
90
91
|
*/
|
|
91
92
|
fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
|
|
@@ -169,7 +170,7 @@ export default class coinsph extends Exchange {
|
|
|
169
170
|
* @method
|
|
170
171
|
* @name coinsph#fetchOpenOrders
|
|
171
172
|
* @description fetch all unfilled currently open orders
|
|
172
|
-
* @see https://coins-docs.github.io/rest-api/#
|
|
173
|
+
* @see https://coins-docs.github.io/rest-api/#current-open-orders-user_data
|
|
173
174
|
* @param {string} symbol unified market symbol
|
|
174
175
|
* @param {int} [since] the earliest time in ms to fetch open orders for
|
|
175
176
|
* @param {int} [limit] the maximum number of open orders structures to retrieve
|
package/js/src/coinsph.js
CHANGED
|
@@ -297,6 +297,72 @@ export default class coinsph extends Exchange {
|
|
|
297
297
|
'ARB': 'ARBITRUM',
|
|
298
298
|
},
|
|
299
299
|
},
|
|
300
|
+
'features': {
|
|
301
|
+
'spot': {
|
|
302
|
+
'sandbox': false,
|
|
303
|
+
'createOrder': {
|
|
304
|
+
'marginMode': false,
|
|
305
|
+
'triggerPrice': true,
|
|
306
|
+
'triggerPriceType': undefined,
|
|
307
|
+
'triggerDirection': false,
|
|
308
|
+
'stopLossPrice': false,
|
|
309
|
+
'takeProfitPrice': false,
|
|
310
|
+
'attachedStopLossTakeProfit': undefined,
|
|
311
|
+
'timeInForce': {
|
|
312
|
+
'IOC': true,
|
|
313
|
+
'FOK': true,
|
|
314
|
+
'PO': false,
|
|
315
|
+
'GTD': false,
|
|
316
|
+
},
|
|
317
|
+
'hedged': false,
|
|
318
|
+
'trailing': false,
|
|
319
|
+
'leverage': false,
|
|
320
|
+
'marketBuyByCost': true,
|
|
321
|
+
'marketBuyRequiresPrice': false,
|
|
322
|
+
'selfTradePrevention': true,
|
|
323
|
+
'iceberg': false,
|
|
324
|
+
},
|
|
325
|
+
'createOrders': undefined,
|
|
326
|
+
'fetchMyTrades': {
|
|
327
|
+
'marginMode': false,
|
|
328
|
+
'limit': 1000,
|
|
329
|
+
'daysBack': 100000,
|
|
330
|
+
'untilDays': 100000, // todo implement
|
|
331
|
+
},
|
|
332
|
+
'fetchOrder': {
|
|
333
|
+
'marginMode': false,
|
|
334
|
+
'trigger': false,
|
|
335
|
+
'trailing': false,
|
|
336
|
+
},
|
|
337
|
+
'fetchOpenOrders': {
|
|
338
|
+
'marginMode': false,
|
|
339
|
+
'limit': undefined,
|
|
340
|
+
'trigger': false,
|
|
341
|
+
'trailing': false,
|
|
342
|
+
},
|
|
343
|
+
'fetchOrders': undefined,
|
|
344
|
+
'fetchClosedOrders': {
|
|
345
|
+
'marginMode': false,
|
|
346
|
+
'limit': 1000,
|
|
347
|
+
'daysBack': 100000,
|
|
348
|
+
'daysBackCanceled': 1,
|
|
349
|
+
'untilDays': 100000,
|
|
350
|
+
'trigger': false,
|
|
351
|
+
'trailing': false,
|
|
352
|
+
},
|
|
353
|
+
'fetchOHLCV': {
|
|
354
|
+
'limit': 1000,
|
|
355
|
+
},
|
|
356
|
+
},
|
|
357
|
+
'swap': {
|
|
358
|
+
'linear': undefined,
|
|
359
|
+
'inverse': undefined,
|
|
360
|
+
},
|
|
361
|
+
'future': {
|
|
362
|
+
'linear': undefined,
|
|
363
|
+
'inverse': undefined,
|
|
364
|
+
},
|
|
365
|
+
},
|
|
300
366
|
// https://coins-docs.github.io/errors/
|
|
301
367
|
'exceptions': {
|
|
302
368
|
'exact': {
|
|
@@ -810,33 +876,42 @@ export default class coinsph extends Exchange {
|
|
|
810
876
|
* @param {int} [since] timestamp in ms of the earliest candle to fetch
|
|
811
877
|
* @param {int} [limit] the maximum amount of candles to fetch (default 500, max 1000)
|
|
812
878
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
879
|
+
* @param {int} [params.until] timestamp in ms of the latest candle to fetch
|
|
813
880
|
* @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
|
|
814
881
|
*/
|
|
815
882
|
async fetchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
|
|
816
883
|
await this.loadMarkets();
|
|
817
884
|
const market = this.market(symbol);
|
|
818
885
|
const interval = this.safeString(this.timeframes, timeframe);
|
|
886
|
+
const until = this.safeInteger(params, 'until');
|
|
819
887
|
const request = {
|
|
820
888
|
'symbol': market['id'],
|
|
821
889
|
'interval': interval,
|
|
822
890
|
};
|
|
891
|
+
if (limit === undefined) {
|
|
892
|
+
limit = 1000;
|
|
893
|
+
}
|
|
823
894
|
if (since !== undefined) {
|
|
824
895
|
request['startTime'] = since;
|
|
825
|
-
request['limit'] = 1000;
|
|
826
896
|
// since work properly only when it is "younger" than last "limit" candle
|
|
827
|
-
if (
|
|
828
|
-
|
|
829
|
-
request['endTime'] = this.sum(since, duration * (limit - 1));
|
|
897
|
+
if (until !== undefined) {
|
|
898
|
+
request['endTime'] = until;
|
|
830
899
|
}
|
|
831
900
|
else {
|
|
832
|
-
|
|
901
|
+
const duration = this.parseTimeframe(timeframe) * 1000;
|
|
902
|
+
const endTimeByLimit = this.sum(since, duration * (limit - 1));
|
|
903
|
+
const now = this.milliseconds();
|
|
904
|
+
request['endTime'] = Math.min(endTimeByLimit, now);
|
|
833
905
|
}
|
|
834
906
|
}
|
|
835
|
-
else {
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
907
|
+
else if (until !== undefined) {
|
|
908
|
+
request['endTime'] = until;
|
|
909
|
+
// since work properly only when it is "younger" than last "limit" candle
|
|
910
|
+
const duration = this.parseTimeframe(timeframe) * 1000;
|
|
911
|
+
request['startTime'] = until - (duration * (limit - 1));
|
|
839
912
|
}
|
|
913
|
+
request['limit'] = limit;
|
|
914
|
+
params = this.omit(params, 'until');
|
|
840
915
|
const response = await this.publicGetOpenapiQuoteV1Klines(this.extend(request, params));
|
|
841
916
|
//
|
|
842
917
|
// [
|
|
@@ -1248,7 +1323,7 @@ export default class coinsph extends Exchange {
|
|
|
1248
1323
|
* @method
|
|
1249
1324
|
* @name coinsph#fetchOpenOrders
|
|
1250
1325
|
* @description fetch all unfilled currently open orders
|
|
1251
|
-
* @see https://coins-docs.github.io/rest-api/#
|
|
1326
|
+
* @see https://coins-docs.github.io/rest-api/#current-open-orders-user_data
|
|
1252
1327
|
* @param {string} symbol unified market symbol
|
|
1253
1328
|
* @param {int} [since] the earliest time in ms to fetch open orders for
|
|
1254
1329
|
* @param {int} [limit] the maximum number of open orders structures to retrieve
|
package/js/src/coinspot.js
CHANGED
|
@@ -144,6 +144,53 @@ export default class coinspot extends Exchange {
|
|
|
144
144
|
'options': {
|
|
145
145
|
'fetchBalance': 'private_post_my_balances',
|
|
146
146
|
},
|
|
147
|
+
'features': {
|
|
148
|
+
'spot': {
|
|
149
|
+
'sandbox': false,
|
|
150
|
+
'createOrder': {
|
|
151
|
+
'marginMode': false,
|
|
152
|
+
'triggerPrice': false,
|
|
153
|
+
'triggerPriceType': undefined,
|
|
154
|
+
'triggerDirection': false,
|
|
155
|
+
'stopLossPrice': false,
|
|
156
|
+
'takeProfitPrice': false,
|
|
157
|
+
'attachedStopLossTakeProfit': undefined,
|
|
158
|
+
'timeInForce': {
|
|
159
|
+
'IOC': false,
|
|
160
|
+
'FOK': false,
|
|
161
|
+
'PO': false,
|
|
162
|
+
'GTD': false,
|
|
163
|
+
},
|
|
164
|
+
'hedged': false,
|
|
165
|
+
'trailing': false,
|
|
166
|
+
'leverage': false,
|
|
167
|
+
'marketBuyByCost': false,
|
|
168
|
+
'marketBuyRequiresPrice': false,
|
|
169
|
+
'selfTradePrevention': false,
|
|
170
|
+
'iceberg': false,
|
|
171
|
+
},
|
|
172
|
+
'createOrders': undefined,
|
|
173
|
+
'fetchMyTrades': {
|
|
174
|
+
'marginMode': false,
|
|
175
|
+
'limit': undefined,
|
|
176
|
+
'daysBack': 100000,
|
|
177
|
+
'untilDays': 100000, // todo implement
|
|
178
|
+
},
|
|
179
|
+
'fetchOrder': undefined,
|
|
180
|
+
'fetchOpenOrders': undefined,
|
|
181
|
+
'fetchOrders': undefined,
|
|
182
|
+
'fetchClosedOrders': undefined,
|
|
183
|
+
'fetchOHLCV': undefined,
|
|
184
|
+
},
|
|
185
|
+
'swap': {
|
|
186
|
+
'linear': undefined,
|
|
187
|
+
'inverse': undefined,
|
|
188
|
+
},
|
|
189
|
+
'future': {
|
|
190
|
+
'linear': undefined,
|
|
191
|
+
'inverse': undefined,
|
|
192
|
+
},
|
|
193
|
+
},
|
|
147
194
|
'precisionMode': TICK_SIZE,
|
|
148
195
|
});
|
|
149
196
|
}
|
package/js/src/currencycom.js
CHANGED
|
@@ -251,6 +251,78 @@ export default class currencycom extends Exchange {
|
|
|
251
251
|
'leverage_markets_suffix': '_LEVERAGE',
|
|
252
252
|
'collateralCurrencies': ['USD', 'EUR', 'USDT'],
|
|
253
253
|
},
|
|
254
|
+
'features': {
|
|
255
|
+
'default': {
|
|
256
|
+
'sandbox': true,
|
|
257
|
+
'createOrder': {
|
|
258
|
+
'marginMode': true,
|
|
259
|
+
'triggerPrice': true,
|
|
260
|
+
'triggerPriceType': undefined,
|
|
261
|
+
'triggerDirection': false,
|
|
262
|
+
'stopLossPrice': false,
|
|
263
|
+
'takeProfitPrice': false,
|
|
264
|
+
'attachedStopLossTakeProfit': {
|
|
265
|
+
'triggerPriceType': undefined,
|
|
266
|
+
'price': false,
|
|
267
|
+
},
|
|
268
|
+
'timeInForce': {
|
|
269
|
+
'IOC': true,
|
|
270
|
+
'FOK': true,
|
|
271
|
+
'PO': false,
|
|
272
|
+
'GTD': true,
|
|
273
|
+
},
|
|
274
|
+
'hedged': false,
|
|
275
|
+
'selfTradePrevention': false,
|
|
276
|
+
'trailing': false,
|
|
277
|
+
'iceberg': false,
|
|
278
|
+
'leverage': true,
|
|
279
|
+
'marketBuyByCost': false,
|
|
280
|
+
'marketBuyRequiresPrice': false,
|
|
281
|
+
},
|
|
282
|
+
'createOrders': undefined,
|
|
283
|
+
'fetchMyTrades': {
|
|
284
|
+
'marginMode': false,
|
|
285
|
+
'limit': 500,
|
|
286
|
+
'daysBack': 100000,
|
|
287
|
+
'untilDays': 100000, // todo implementation
|
|
288
|
+
},
|
|
289
|
+
'fetchOrder': {
|
|
290
|
+
'marginMode': false,
|
|
291
|
+
'trigger': false,
|
|
292
|
+
'trailing': false,
|
|
293
|
+
},
|
|
294
|
+
'fetchOpenOrders': {
|
|
295
|
+
'marginMode': true,
|
|
296
|
+
'limit': 100,
|
|
297
|
+
'trigger': false,
|
|
298
|
+
'trailing': false,
|
|
299
|
+
},
|
|
300
|
+
'fetchOrders': undefined,
|
|
301
|
+
'fetchClosedOrders': undefined,
|
|
302
|
+
'fetchOHLCV': {
|
|
303
|
+
'limit': 1000,
|
|
304
|
+
},
|
|
305
|
+
},
|
|
306
|
+
'spot': {
|
|
307
|
+
'extends': 'default',
|
|
308
|
+
},
|
|
309
|
+
'swap': {
|
|
310
|
+
'linear': {
|
|
311
|
+
'extends': 'default',
|
|
312
|
+
},
|
|
313
|
+
'inverse': {
|
|
314
|
+
'extends': 'default',
|
|
315
|
+
},
|
|
316
|
+
},
|
|
317
|
+
'future': {
|
|
318
|
+
'linear': {
|
|
319
|
+
'extends': 'default',
|
|
320
|
+
},
|
|
321
|
+
'inverse': {
|
|
322
|
+
'extends': 'default',
|
|
323
|
+
},
|
|
324
|
+
},
|
|
325
|
+
},
|
|
254
326
|
'exceptions': {
|
|
255
327
|
'broad': {
|
|
256
328
|
'FIELD_VALIDATION_ERROR Cancel is available only for LIMIT order': InvalidOrder,
|
package/js/src/defx.js
CHANGED
|
@@ -253,6 +253,87 @@ export default class defx extends Exchange {
|
|
|
253
253
|
'options': {
|
|
254
254
|
'sandboxMode': false,
|
|
255
255
|
},
|
|
256
|
+
'features': {
|
|
257
|
+
'spot': undefined,
|
|
258
|
+
'forDerivatives': {
|
|
259
|
+
'sandbox': true,
|
|
260
|
+
'createOrder': {
|
|
261
|
+
'marginMode': false,
|
|
262
|
+
'triggerPrice': true,
|
|
263
|
+
// todo implement
|
|
264
|
+
'triggerPriceType': {
|
|
265
|
+
'last': true,
|
|
266
|
+
'mark': true,
|
|
267
|
+
'index': false,
|
|
268
|
+
},
|
|
269
|
+
'triggerDirection': false,
|
|
270
|
+
'stopLossPrice': false,
|
|
271
|
+
'takeProfitPrice': false,
|
|
272
|
+
'attachedStopLossTakeProfit': undefined,
|
|
273
|
+
'timeInForce': {
|
|
274
|
+
'IOC': true,
|
|
275
|
+
'FOK': true,
|
|
276
|
+
'PO': true,
|
|
277
|
+
'GTD': false,
|
|
278
|
+
},
|
|
279
|
+
'hedged': false,
|
|
280
|
+
'selfTradePrevention': false,
|
|
281
|
+
'trailing': false,
|
|
282
|
+
'iceberg': false,
|
|
283
|
+
'leverage': false,
|
|
284
|
+
'marketBuyByCost': false,
|
|
285
|
+
'marketBuyRequiresPrice': false,
|
|
286
|
+
},
|
|
287
|
+
'createOrders': undefined,
|
|
288
|
+
'fetchMyTrades': {
|
|
289
|
+
'marginMode': false,
|
|
290
|
+
'limit': 1000,
|
|
291
|
+
'daysBack': undefined,
|
|
292
|
+
'untilDays': undefined,
|
|
293
|
+
},
|
|
294
|
+
'fetchOrder': {
|
|
295
|
+
'marginMode': false,
|
|
296
|
+
'trigger': false,
|
|
297
|
+
'trailing': false,
|
|
298
|
+
},
|
|
299
|
+
'fetchOpenOrders': {
|
|
300
|
+
'marginMode': true,
|
|
301
|
+
'limit': 100,
|
|
302
|
+
'trigger': false,
|
|
303
|
+
'trailing': false,
|
|
304
|
+
},
|
|
305
|
+
'fetchOrders': {
|
|
306
|
+
'marginMode': false,
|
|
307
|
+
'limit': 500,
|
|
308
|
+
'daysBack': 100000,
|
|
309
|
+
'untilDays': 100000,
|
|
310
|
+
'trigger': false,
|
|
311
|
+
'trailing': false,
|
|
312
|
+
},
|
|
313
|
+
'fetchClosedOrders': {
|
|
314
|
+
'marginMode': false,
|
|
315
|
+
'limit': 500,
|
|
316
|
+
'daysBack': 100000,
|
|
317
|
+
'daysBackCanceled': 1,
|
|
318
|
+
'untilDays': 100000,
|
|
319
|
+
'trigger': false,
|
|
320
|
+
'trailing': false,
|
|
321
|
+
},
|
|
322
|
+
'fetchOHLCV': {
|
|
323
|
+
'limit': 1000,
|
|
324
|
+
},
|
|
325
|
+
},
|
|
326
|
+
'swap': {
|
|
327
|
+
'linear': {
|
|
328
|
+
'extends': 'forDerivatives',
|
|
329
|
+
},
|
|
330
|
+
'inverse': undefined,
|
|
331
|
+
},
|
|
332
|
+
'future': {
|
|
333
|
+
'linear': undefined,
|
|
334
|
+
'inverse': undefined,
|
|
335
|
+
},
|
|
336
|
+
},
|
|
256
337
|
'commonCurrencies': {},
|
|
257
338
|
'exceptions': {
|
|
258
339
|
'exact': {
|
|
@@ -1663,8 +1744,10 @@ export default class defx extends Exchange {
|
|
|
1663
1744
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
1664
1745
|
*/
|
|
1665
1746
|
async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
1666
|
-
|
|
1667
|
-
|
|
1747
|
+
const req = {
|
|
1748
|
+
'statuses': 'OPEN',
|
|
1749
|
+
};
|
|
1750
|
+
return await this.fetchOrders(symbol, since, limit, this.extend(req, params));
|
|
1668
1751
|
}
|
|
1669
1752
|
/**
|
|
1670
1753
|
* @method
|
|
@@ -1679,8 +1762,10 @@ export default class defx extends Exchange {
|
|
|
1679
1762
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
1680
1763
|
*/
|
|
1681
1764
|
async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
1682
|
-
|
|
1683
|
-
|
|
1765
|
+
const req = {
|
|
1766
|
+
'statuses': 'FILLED',
|
|
1767
|
+
};
|
|
1768
|
+
return await this.fetchOrders(symbol, since, limit, this.extend(req, params));
|
|
1684
1769
|
}
|
|
1685
1770
|
/**
|
|
1686
1771
|
* @method
|
|
@@ -1695,8 +1780,10 @@ export default class defx extends Exchange {
|
|
|
1695
1780
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
1696
1781
|
*/
|
|
1697
1782
|
async fetchCanceledOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
1698
|
-
|
|
1699
|
-
|
|
1783
|
+
const req = {
|
|
1784
|
+
'statuses': 'CANCELED',
|
|
1785
|
+
};
|
|
1786
|
+
return await this.fetchOrders(symbol, since, limit, this.extend(req, params));
|
|
1700
1787
|
}
|
|
1701
1788
|
/**
|
|
1702
1789
|
* @method
|
package/js/src/delta.js
CHANGED
|
@@ -222,6 +222,88 @@ export default class delta extends Exchange {
|
|
|
222
222
|
'BEP20': 'BEP20(BSC)',
|
|
223
223
|
},
|
|
224
224
|
},
|
|
225
|
+
'features': {
|
|
226
|
+
'default': {
|
|
227
|
+
'sandbox': true,
|
|
228
|
+
'createOrder': {
|
|
229
|
+
'marginMode': false,
|
|
230
|
+
'triggerPrice': true,
|
|
231
|
+
// todo implement
|
|
232
|
+
'triggerPriceType': {
|
|
233
|
+
'last': true,
|
|
234
|
+
'mark': true,
|
|
235
|
+
'index': true,
|
|
236
|
+
},
|
|
237
|
+
'triggerDirection': false,
|
|
238
|
+
'stopLossPrice': false,
|
|
239
|
+
'takeProfitPrice': false,
|
|
240
|
+
'attachedStopLossTakeProfit': {
|
|
241
|
+
'triggerPriceType': undefined,
|
|
242
|
+
'price': true,
|
|
243
|
+
},
|
|
244
|
+
// todo implementation
|
|
245
|
+
'timeInForce': {
|
|
246
|
+
'IOC': true,
|
|
247
|
+
'FOK': true,
|
|
248
|
+
'PO': true,
|
|
249
|
+
'GTD': false,
|
|
250
|
+
},
|
|
251
|
+
'hedged': false,
|
|
252
|
+
'selfTradePrevention': false,
|
|
253
|
+
'trailing': false,
|
|
254
|
+
'iceberg': false,
|
|
255
|
+
'leverage': false,
|
|
256
|
+
'marketBuyByCost': false,
|
|
257
|
+
'marketBuyRequiresPrice': false,
|
|
258
|
+
},
|
|
259
|
+
'createOrders': undefined,
|
|
260
|
+
'fetchMyTrades': {
|
|
261
|
+
'marginMode': false,
|
|
262
|
+
'limit': 100,
|
|
263
|
+
'daysBack': 100000,
|
|
264
|
+
'untilDays': 100000,
|
|
265
|
+
},
|
|
266
|
+
'fetchOrder': undefined,
|
|
267
|
+
'fetchOpenOrders': {
|
|
268
|
+
'marginMode': false,
|
|
269
|
+
'limit': 100,
|
|
270
|
+
'trigger': false,
|
|
271
|
+
'trailing': false,
|
|
272
|
+
},
|
|
273
|
+
'fetchOrders': undefined,
|
|
274
|
+
'fetchClosedOrders': {
|
|
275
|
+
'marginMode': false,
|
|
276
|
+
'limit': 500,
|
|
277
|
+
'daysBack': 100000,
|
|
278
|
+
'daysBackCanceled': 1,
|
|
279
|
+
'untilDays': 100000,
|
|
280
|
+
'trigger': false,
|
|
281
|
+
'trailing': false,
|
|
282
|
+
},
|
|
283
|
+
'fetchOHLCV': {
|
|
284
|
+
'limit': 2000, // todo: recheck
|
|
285
|
+
},
|
|
286
|
+
},
|
|
287
|
+
'spot': {
|
|
288
|
+
'extends': 'default',
|
|
289
|
+
},
|
|
290
|
+
'swap': {
|
|
291
|
+
'linear': {
|
|
292
|
+
'extends': 'default',
|
|
293
|
+
},
|
|
294
|
+
'inverse': {
|
|
295
|
+
'extends': 'default',
|
|
296
|
+
},
|
|
297
|
+
},
|
|
298
|
+
'future': {
|
|
299
|
+
'linear': {
|
|
300
|
+
'extends': 'default',
|
|
301
|
+
},
|
|
302
|
+
'inverse': {
|
|
303
|
+
'extends': 'default',
|
|
304
|
+
},
|
|
305
|
+
},
|
|
306
|
+
},
|
|
225
307
|
'precisionMode': TICK_SIZE,
|
|
226
308
|
'requiredCredentials': {
|
|
227
309
|
'apiKey': true,
|
|
@@ -3488,7 +3570,7 @@ export default class delta extends Exchange {
|
|
|
3488
3570
|
'timestamp': timestamp,
|
|
3489
3571
|
};
|
|
3490
3572
|
let auth = method + timestamp + requestPath;
|
|
3491
|
-
if (
|
|
3573
|
+
if (method === 'GET') {
|
|
3492
3574
|
if (Object.keys(query).length) {
|
|
3493
3575
|
const queryString = '?' + this.urlencode(query);
|
|
3494
3576
|
auth += queryString;
|
package/js/src/deribit.js
CHANGED
|
@@ -281,6 +281,88 @@ export default class deribit extends Exchange {
|
|
|
281
281
|
},
|
|
282
282
|
},
|
|
283
283
|
},
|
|
284
|
+
'features': {
|
|
285
|
+
'default': {
|
|
286
|
+
'sandbox': true,
|
|
287
|
+
'createOrder': {
|
|
288
|
+
'marginMode': false,
|
|
289
|
+
'triggerPrice': true,
|
|
290
|
+
// todo implement
|
|
291
|
+
'triggerPriceType': {
|
|
292
|
+
'last': true,
|
|
293
|
+
'mark': true,
|
|
294
|
+
'index': true,
|
|
295
|
+
},
|
|
296
|
+
'triggerDirection': false,
|
|
297
|
+
'stopLossPrice': false,
|
|
298
|
+
'takeProfitPrice': false,
|
|
299
|
+
'attachedStopLossTakeProfit': undefined,
|
|
300
|
+
'timeInForce': {
|
|
301
|
+
'IOC': true,
|
|
302
|
+
'FOK': true,
|
|
303
|
+
'PO': true,
|
|
304
|
+
'GTD': true,
|
|
305
|
+
},
|
|
306
|
+
'hedged': false,
|
|
307
|
+
'selfTradePrevention': false,
|
|
308
|
+
'trailing': true,
|
|
309
|
+
'leverage': false,
|
|
310
|
+
'marketBuyByCost': true,
|
|
311
|
+
'marketBuyRequiresPrice': false,
|
|
312
|
+
'iceberg': true, // todo
|
|
313
|
+
},
|
|
314
|
+
'createOrders': undefined,
|
|
315
|
+
'fetchMyTrades': {
|
|
316
|
+
'marginMode': false,
|
|
317
|
+
'limit': 100,
|
|
318
|
+
'daysBack': 100000,
|
|
319
|
+
'untilDays': 100000,
|
|
320
|
+
},
|
|
321
|
+
'fetchOrder': {
|
|
322
|
+
'marginMode': false,
|
|
323
|
+
'trigger': false,
|
|
324
|
+
'trailing': false,
|
|
325
|
+
},
|
|
326
|
+
'fetchOpenOrders': {
|
|
327
|
+
'marginMode': false,
|
|
328
|
+
'limit': undefined,
|
|
329
|
+
'trigger': false,
|
|
330
|
+
'trailing': false,
|
|
331
|
+
},
|
|
332
|
+
'fetchOrders': undefined,
|
|
333
|
+
'fetchClosedOrders': {
|
|
334
|
+
'marginMode': false,
|
|
335
|
+
'limit': 100,
|
|
336
|
+
'daysBack': 100000,
|
|
337
|
+
'daysBackCanceled': 1,
|
|
338
|
+
'untilDays': 100000,
|
|
339
|
+
'trigger': false,
|
|
340
|
+
'trailing': false,
|
|
341
|
+
},
|
|
342
|
+
'fetchOHLCV': {
|
|
343
|
+
'limit': 1000, // todo: recheck
|
|
344
|
+
},
|
|
345
|
+
},
|
|
346
|
+
'spot': {
|
|
347
|
+
'extends': 'default',
|
|
348
|
+
},
|
|
349
|
+
'swap': {
|
|
350
|
+
'linear': {
|
|
351
|
+
'extends': 'default',
|
|
352
|
+
},
|
|
353
|
+
'inverse': {
|
|
354
|
+
'extends': 'default',
|
|
355
|
+
},
|
|
356
|
+
},
|
|
357
|
+
'future': {
|
|
358
|
+
'linear': {
|
|
359
|
+
'extends': 'default',
|
|
360
|
+
},
|
|
361
|
+
'inverse': {
|
|
362
|
+
'extends': 'default',
|
|
363
|
+
},
|
|
364
|
+
},
|
|
365
|
+
},
|
|
284
366
|
'exceptions': {
|
|
285
367
|
// 0 or absent Success, No error.
|
|
286
368
|
'9999': PermissionDenied,
|
package/js/src/digifinex.d.ts
CHANGED
|
@@ -119,6 +119,7 @@ export default class digifinex extends Exchange {
|
|
|
119
119
|
* @param {int} [since] timestamp in ms of the earliest candle to fetch
|
|
120
120
|
* @param {int} [limit] the maximum amount of candles to fetch
|
|
121
121
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
122
|
+
* @param {int} [params.until] timestamp in ms of the latest candle to fetch
|
|
122
123
|
* @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
|
|
123
124
|
*/
|
|
124
125
|
fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
|