ccxt 4.4.47 → 4.4.48
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/bitget.js +4 -2
- 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 +67 -1
- 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/gate.js +10 -1
- package/dist/cjs/src/htx.js +10 -2
- package/dist/cjs/src/hyperliquid.js +6 -1
- package/dist/cjs/src/independentreserve.js +60 -0
- package/dist/cjs/src/kraken.js +1 -1
- package/dist/cjs/src/krakenfutures.js +4 -4
- package/dist/cjs/src/okx.js +9 -1
- package/dist/cjs/src/paradex.js +5 -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/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/bitget.js +4 -2
- 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 +1 -1
- package/js/src/coinsph.js +67 -1
- 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/gate.d.ts +1 -0
- package/js/src/gate.js +10 -1
- package/js/src/htx.d.ts +1 -0
- package/js/src/htx.js +10 -2
- package/js/src/hyperliquid.js +6 -1
- package/js/src/independentreserve.js +60 -0
- package/js/src/kraken.js +1 -1
- package/js/src/krakenfutures.js +4 -4
- package/js/src/okx.d.ts +1 -0
- package/js/src/okx.js +9 -1
- package/js/src/paradex.js +5 -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/upbit.js +61 -0
- package/js/src/woo.js +6 -1
- package/package.json +1 -1
package/dist/cjs/src/coinone.js
CHANGED
|
@@ -190,6 +190,62 @@ class coinone extends coinone$1 {
|
|
|
190
190
|
'maker': 0.002,
|
|
191
191
|
},
|
|
192
192
|
},
|
|
193
|
+
'features': {
|
|
194
|
+
'spot': {
|
|
195
|
+
'sandbox': false,
|
|
196
|
+
'createOrder': {
|
|
197
|
+
'marginMode': false,
|
|
198
|
+
'triggerPrice': false,
|
|
199
|
+
'triggerPriceType': undefined,
|
|
200
|
+
'triggerDirection': false,
|
|
201
|
+
'stopLossPrice': false,
|
|
202
|
+
'takeProfitPrice': false,
|
|
203
|
+
'attachedStopLossTakeProfit': undefined,
|
|
204
|
+
'timeInForce': {
|
|
205
|
+
'IOC': false,
|
|
206
|
+
'FOK': false,
|
|
207
|
+
'PO': false,
|
|
208
|
+
'GTD': false,
|
|
209
|
+
},
|
|
210
|
+
'hedged': false,
|
|
211
|
+
'trailing': false,
|
|
212
|
+
'leverage': false,
|
|
213
|
+
'marketBuyByCost': false,
|
|
214
|
+
'marketBuyRequiresPrice': false,
|
|
215
|
+
'selfTradePrevention': false,
|
|
216
|
+
'iceberg': false,
|
|
217
|
+
},
|
|
218
|
+
'createOrders': undefined,
|
|
219
|
+
'fetchMyTrades': {
|
|
220
|
+
'marginMode': false,
|
|
221
|
+
'limit': 100,
|
|
222
|
+
'daysBack': 100000,
|
|
223
|
+
'untilDays': 100000, // todo implement
|
|
224
|
+
},
|
|
225
|
+
'fetchOrder': {
|
|
226
|
+
'marginMode': false,
|
|
227
|
+
'trigger': false,
|
|
228
|
+
'trailing': false,
|
|
229
|
+
},
|
|
230
|
+
'fetchOpenOrders': {
|
|
231
|
+
'marginMode': false,
|
|
232
|
+
'limit': undefined,
|
|
233
|
+
'trigger': false,
|
|
234
|
+
'trailing': false,
|
|
235
|
+
},
|
|
236
|
+
'fetchOrders': undefined,
|
|
237
|
+
'fetchClosedOrders': undefined,
|
|
238
|
+
'fetchOHLCV': undefined, // todo implement
|
|
239
|
+
},
|
|
240
|
+
'swap': {
|
|
241
|
+
'linear': undefined,
|
|
242
|
+
'inverse': undefined,
|
|
243
|
+
},
|
|
244
|
+
'future': {
|
|
245
|
+
'linear': undefined,
|
|
246
|
+
'inverse': undefined,
|
|
247
|
+
},
|
|
248
|
+
},
|
|
193
249
|
'precisionMode': number.TICK_SIZE,
|
|
194
250
|
'exceptions': {
|
|
195
251
|
'104': errors.OrderNotFound,
|
package/dist/cjs/src/coinsph.js
CHANGED
|
@@ -295,6 +295,72 @@ class coinsph extends coinsph$1 {
|
|
|
295
295
|
'ARB': 'ARBITRUM',
|
|
296
296
|
},
|
|
297
297
|
},
|
|
298
|
+
'features': {
|
|
299
|
+
'spot': {
|
|
300
|
+
'sandbox': false,
|
|
301
|
+
'createOrder': {
|
|
302
|
+
'marginMode': false,
|
|
303
|
+
'triggerPrice': true,
|
|
304
|
+
'triggerPriceType': undefined,
|
|
305
|
+
'triggerDirection': false,
|
|
306
|
+
'stopLossPrice': false,
|
|
307
|
+
'takeProfitPrice': false,
|
|
308
|
+
'attachedStopLossTakeProfit': undefined,
|
|
309
|
+
'timeInForce': {
|
|
310
|
+
'IOC': true,
|
|
311
|
+
'FOK': true,
|
|
312
|
+
'PO': false,
|
|
313
|
+
'GTD': false,
|
|
314
|
+
},
|
|
315
|
+
'hedged': false,
|
|
316
|
+
'trailing': false,
|
|
317
|
+
'leverage': false,
|
|
318
|
+
'marketBuyByCost': true,
|
|
319
|
+
'marketBuyRequiresPrice': false,
|
|
320
|
+
'selfTradePrevention': true,
|
|
321
|
+
'iceberg': false,
|
|
322
|
+
},
|
|
323
|
+
'createOrders': undefined,
|
|
324
|
+
'fetchMyTrades': {
|
|
325
|
+
'marginMode': false,
|
|
326
|
+
'limit': 1000,
|
|
327
|
+
'daysBack': 100000,
|
|
328
|
+
'untilDays': 100000, // todo implement
|
|
329
|
+
},
|
|
330
|
+
'fetchOrder': {
|
|
331
|
+
'marginMode': false,
|
|
332
|
+
'trigger': false,
|
|
333
|
+
'trailing': false,
|
|
334
|
+
},
|
|
335
|
+
'fetchOpenOrders': {
|
|
336
|
+
'marginMode': false,
|
|
337
|
+
'limit': undefined,
|
|
338
|
+
'trigger': false,
|
|
339
|
+
'trailing': false,
|
|
340
|
+
},
|
|
341
|
+
'fetchOrders': undefined,
|
|
342
|
+
'fetchClosedOrders': {
|
|
343
|
+
'marginMode': false,
|
|
344
|
+
'limit': 1000,
|
|
345
|
+
'daysBack': 100000,
|
|
346
|
+
'daysBackCanceled': 1,
|
|
347
|
+
'untilDays': 100000,
|
|
348
|
+
'trigger': false,
|
|
349
|
+
'trailing': false,
|
|
350
|
+
},
|
|
351
|
+
'fetchOHLCV': {
|
|
352
|
+
'limit': 1000,
|
|
353
|
+
},
|
|
354
|
+
},
|
|
355
|
+
'swap': {
|
|
356
|
+
'linear': undefined,
|
|
357
|
+
'inverse': undefined,
|
|
358
|
+
},
|
|
359
|
+
'future': {
|
|
360
|
+
'linear': undefined,
|
|
361
|
+
'inverse': undefined,
|
|
362
|
+
},
|
|
363
|
+
},
|
|
298
364
|
// https://coins-docs.github.io/errors/
|
|
299
365
|
'exceptions': {
|
|
300
366
|
'exact': {
|
|
@@ -1246,7 +1312,7 @@ class coinsph extends coinsph$1 {
|
|
|
1246
1312
|
* @method
|
|
1247
1313
|
* @name coinsph#fetchOpenOrders
|
|
1248
1314
|
* @description fetch all unfilled currently open orders
|
|
1249
|
-
* @see https://coins-docs.github.io/rest-api/#
|
|
1315
|
+
* @see https://coins-docs.github.io/rest-api/#current-open-orders-user_data
|
|
1250
1316
|
* @param {string} symbol unified market symbol
|
|
1251
1317
|
* @param {int} [since] the earliest time in ms to fetch open orders for
|
|
1252
1318
|
* @param {int} [limit] the maximum number of open orders structures to retrieve
|
package/dist/cjs/src/coinspot.js
CHANGED
|
@@ -141,6 +141,53 @@ class coinspot extends coinspot$1 {
|
|
|
141
141
|
'options': {
|
|
142
142
|
'fetchBalance': 'private_post_my_balances',
|
|
143
143
|
},
|
|
144
|
+
'features': {
|
|
145
|
+
'spot': {
|
|
146
|
+
'sandbox': false,
|
|
147
|
+
'createOrder': {
|
|
148
|
+
'marginMode': false,
|
|
149
|
+
'triggerPrice': false,
|
|
150
|
+
'triggerPriceType': undefined,
|
|
151
|
+
'triggerDirection': false,
|
|
152
|
+
'stopLossPrice': false,
|
|
153
|
+
'takeProfitPrice': false,
|
|
154
|
+
'attachedStopLossTakeProfit': undefined,
|
|
155
|
+
'timeInForce': {
|
|
156
|
+
'IOC': false,
|
|
157
|
+
'FOK': false,
|
|
158
|
+
'PO': false,
|
|
159
|
+
'GTD': false,
|
|
160
|
+
},
|
|
161
|
+
'hedged': false,
|
|
162
|
+
'trailing': false,
|
|
163
|
+
'leverage': false,
|
|
164
|
+
'marketBuyByCost': false,
|
|
165
|
+
'marketBuyRequiresPrice': false,
|
|
166
|
+
'selfTradePrevention': false,
|
|
167
|
+
'iceberg': false,
|
|
168
|
+
},
|
|
169
|
+
'createOrders': undefined,
|
|
170
|
+
'fetchMyTrades': {
|
|
171
|
+
'marginMode': false,
|
|
172
|
+
'limit': undefined,
|
|
173
|
+
'daysBack': 100000,
|
|
174
|
+
'untilDays': 100000, // todo implement
|
|
175
|
+
},
|
|
176
|
+
'fetchOrder': undefined,
|
|
177
|
+
'fetchOpenOrders': undefined,
|
|
178
|
+
'fetchOrders': undefined,
|
|
179
|
+
'fetchClosedOrders': undefined,
|
|
180
|
+
'fetchOHLCV': undefined,
|
|
181
|
+
},
|
|
182
|
+
'swap': {
|
|
183
|
+
'linear': undefined,
|
|
184
|
+
'inverse': undefined,
|
|
185
|
+
},
|
|
186
|
+
'future': {
|
|
187
|
+
'linear': undefined,
|
|
188
|
+
'inverse': undefined,
|
|
189
|
+
},
|
|
190
|
+
},
|
|
144
191
|
'precisionMode': number.TICK_SIZE,
|
|
145
192
|
});
|
|
146
193
|
}
|
|
@@ -248,6 +248,78 @@ class currencycom extends currencycom$1 {
|
|
|
248
248
|
'leverage_markets_suffix': '_LEVERAGE',
|
|
249
249
|
'collateralCurrencies': ['USD', 'EUR', 'USDT'],
|
|
250
250
|
},
|
|
251
|
+
'features': {
|
|
252
|
+
'default': {
|
|
253
|
+
'sandbox': true,
|
|
254
|
+
'createOrder': {
|
|
255
|
+
'marginMode': true,
|
|
256
|
+
'triggerPrice': true,
|
|
257
|
+
'triggerPriceType': undefined,
|
|
258
|
+
'triggerDirection': false,
|
|
259
|
+
'stopLossPrice': false,
|
|
260
|
+
'takeProfitPrice': false,
|
|
261
|
+
'attachedStopLossTakeProfit': {
|
|
262
|
+
'triggerPriceType': undefined,
|
|
263
|
+
'price': false,
|
|
264
|
+
},
|
|
265
|
+
'timeInForce': {
|
|
266
|
+
'IOC': true,
|
|
267
|
+
'FOK': true,
|
|
268
|
+
'PO': false,
|
|
269
|
+
'GTD': true,
|
|
270
|
+
},
|
|
271
|
+
'hedged': false,
|
|
272
|
+
'selfTradePrevention': false,
|
|
273
|
+
'trailing': false,
|
|
274
|
+
'iceberg': false,
|
|
275
|
+
'leverage': true,
|
|
276
|
+
'marketBuyByCost': false,
|
|
277
|
+
'marketBuyRequiresPrice': false,
|
|
278
|
+
},
|
|
279
|
+
'createOrders': undefined,
|
|
280
|
+
'fetchMyTrades': {
|
|
281
|
+
'marginMode': false,
|
|
282
|
+
'limit': 500,
|
|
283
|
+
'daysBack': 100000,
|
|
284
|
+
'untilDays': 100000, // todo implementation
|
|
285
|
+
},
|
|
286
|
+
'fetchOrder': {
|
|
287
|
+
'marginMode': false,
|
|
288
|
+
'trigger': false,
|
|
289
|
+
'trailing': false,
|
|
290
|
+
},
|
|
291
|
+
'fetchOpenOrders': {
|
|
292
|
+
'marginMode': true,
|
|
293
|
+
'limit': 100,
|
|
294
|
+
'trigger': false,
|
|
295
|
+
'trailing': false,
|
|
296
|
+
},
|
|
297
|
+
'fetchOrders': undefined,
|
|
298
|
+
'fetchClosedOrders': undefined,
|
|
299
|
+
'fetchOHLCV': {
|
|
300
|
+
'limit': 1000,
|
|
301
|
+
},
|
|
302
|
+
},
|
|
303
|
+
'spot': {
|
|
304
|
+
'extends': 'default',
|
|
305
|
+
},
|
|
306
|
+
'swap': {
|
|
307
|
+
'linear': {
|
|
308
|
+
'extends': 'default',
|
|
309
|
+
},
|
|
310
|
+
'inverse': {
|
|
311
|
+
'extends': 'default',
|
|
312
|
+
},
|
|
313
|
+
},
|
|
314
|
+
'future': {
|
|
315
|
+
'linear': {
|
|
316
|
+
'extends': 'default',
|
|
317
|
+
},
|
|
318
|
+
'inverse': {
|
|
319
|
+
'extends': 'default',
|
|
320
|
+
},
|
|
321
|
+
},
|
|
322
|
+
},
|
|
251
323
|
'exceptions': {
|
|
252
324
|
'broad': {
|
|
253
325
|
'FIELD_VALIDATION_ERROR Cancel is available only for LIMIT order': errors.InvalidOrder,
|
package/dist/cjs/src/defx.js
CHANGED
|
@@ -250,6 +250,87 @@ class defx extends defx$1 {
|
|
|
250
250
|
'options': {
|
|
251
251
|
'sandboxMode': false,
|
|
252
252
|
},
|
|
253
|
+
'features': {
|
|
254
|
+
'spot': undefined,
|
|
255
|
+
'forDerivatives': {
|
|
256
|
+
'sandbox': true,
|
|
257
|
+
'createOrder': {
|
|
258
|
+
'marginMode': false,
|
|
259
|
+
'triggerPrice': true,
|
|
260
|
+
// todo implement
|
|
261
|
+
'triggerPriceType': {
|
|
262
|
+
'last': true,
|
|
263
|
+
'mark': true,
|
|
264
|
+
'index': false,
|
|
265
|
+
},
|
|
266
|
+
'triggerDirection': false,
|
|
267
|
+
'stopLossPrice': false,
|
|
268
|
+
'takeProfitPrice': false,
|
|
269
|
+
'attachedStopLossTakeProfit': undefined,
|
|
270
|
+
'timeInForce': {
|
|
271
|
+
'IOC': true,
|
|
272
|
+
'FOK': true,
|
|
273
|
+
'PO': true,
|
|
274
|
+
'GTD': false,
|
|
275
|
+
},
|
|
276
|
+
'hedged': false,
|
|
277
|
+
'selfTradePrevention': false,
|
|
278
|
+
'trailing': false,
|
|
279
|
+
'iceberg': false,
|
|
280
|
+
'leverage': false,
|
|
281
|
+
'marketBuyByCost': false,
|
|
282
|
+
'marketBuyRequiresPrice': false,
|
|
283
|
+
},
|
|
284
|
+
'createOrders': undefined,
|
|
285
|
+
'fetchMyTrades': {
|
|
286
|
+
'marginMode': false,
|
|
287
|
+
'limit': 1000,
|
|
288
|
+
'daysBack': undefined,
|
|
289
|
+
'untilDays': undefined,
|
|
290
|
+
},
|
|
291
|
+
'fetchOrder': {
|
|
292
|
+
'marginMode': false,
|
|
293
|
+
'trigger': false,
|
|
294
|
+
'trailing': false,
|
|
295
|
+
},
|
|
296
|
+
'fetchOpenOrders': {
|
|
297
|
+
'marginMode': true,
|
|
298
|
+
'limit': 100,
|
|
299
|
+
'trigger': false,
|
|
300
|
+
'trailing': false,
|
|
301
|
+
},
|
|
302
|
+
'fetchOrders': {
|
|
303
|
+
'marginMode': false,
|
|
304
|
+
'limit': 500,
|
|
305
|
+
'daysBack': 100000,
|
|
306
|
+
'untilDays': 100000,
|
|
307
|
+
'trigger': false,
|
|
308
|
+
'trailing': false,
|
|
309
|
+
},
|
|
310
|
+
'fetchClosedOrders': {
|
|
311
|
+
'marginMode': false,
|
|
312
|
+
'limit': 500,
|
|
313
|
+
'daysBack': 100000,
|
|
314
|
+
'daysBackCanceled': 1,
|
|
315
|
+
'untilDays': 100000,
|
|
316
|
+
'trigger': false,
|
|
317
|
+
'trailing': false,
|
|
318
|
+
},
|
|
319
|
+
'fetchOHLCV': {
|
|
320
|
+
'limit': 1000,
|
|
321
|
+
},
|
|
322
|
+
},
|
|
323
|
+
'swap': {
|
|
324
|
+
'linear': {
|
|
325
|
+
'extends': 'forDerivatives',
|
|
326
|
+
},
|
|
327
|
+
'inverse': undefined,
|
|
328
|
+
},
|
|
329
|
+
'future': {
|
|
330
|
+
'linear': undefined,
|
|
331
|
+
'inverse': undefined,
|
|
332
|
+
},
|
|
333
|
+
},
|
|
253
334
|
'commonCurrencies': {},
|
|
254
335
|
'exceptions': {
|
|
255
336
|
'exact': {
|
|
@@ -1660,8 +1741,10 @@ class defx extends defx$1 {
|
|
|
1660
1741
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
1661
1742
|
*/
|
|
1662
1743
|
async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
1663
|
-
|
|
1664
|
-
|
|
1744
|
+
const req = {
|
|
1745
|
+
'statuses': 'OPEN',
|
|
1746
|
+
};
|
|
1747
|
+
return await this.fetchOrders(symbol, since, limit, this.extend(req, params));
|
|
1665
1748
|
}
|
|
1666
1749
|
/**
|
|
1667
1750
|
* @method
|
|
@@ -1676,8 +1759,10 @@ class defx extends defx$1 {
|
|
|
1676
1759
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
1677
1760
|
*/
|
|
1678
1761
|
async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
1679
|
-
|
|
1680
|
-
|
|
1762
|
+
const req = {
|
|
1763
|
+
'statuses': 'FILLED',
|
|
1764
|
+
};
|
|
1765
|
+
return await this.fetchOrders(symbol, since, limit, this.extend(req, params));
|
|
1681
1766
|
}
|
|
1682
1767
|
/**
|
|
1683
1768
|
* @method
|
|
@@ -1692,8 +1777,10 @@ class defx extends defx$1 {
|
|
|
1692
1777
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
1693
1778
|
*/
|
|
1694
1779
|
async fetchCanceledOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
1695
|
-
|
|
1696
|
-
|
|
1780
|
+
const req = {
|
|
1781
|
+
'statuses': 'CANCELED',
|
|
1782
|
+
};
|
|
1783
|
+
return await this.fetchOrders(symbol, since, limit, this.extend(req, params));
|
|
1697
1784
|
}
|
|
1698
1785
|
/**
|
|
1699
1786
|
* @method
|
package/dist/cjs/src/delta.js
CHANGED
|
@@ -219,6 +219,88 @@ class delta extends delta$1 {
|
|
|
219
219
|
'BEP20': 'BEP20(BSC)',
|
|
220
220
|
},
|
|
221
221
|
},
|
|
222
|
+
'features': {
|
|
223
|
+
'default': {
|
|
224
|
+
'sandbox': true,
|
|
225
|
+
'createOrder': {
|
|
226
|
+
'marginMode': false,
|
|
227
|
+
'triggerPrice': true,
|
|
228
|
+
// todo implement
|
|
229
|
+
'triggerPriceType': {
|
|
230
|
+
'last': true,
|
|
231
|
+
'mark': true,
|
|
232
|
+
'index': true,
|
|
233
|
+
},
|
|
234
|
+
'triggerDirection': false,
|
|
235
|
+
'stopLossPrice': false,
|
|
236
|
+
'takeProfitPrice': false,
|
|
237
|
+
'attachedStopLossTakeProfit': {
|
|
238
|
+
'triggerPriceType': undefined,
|
|
239
|
+
'price': true,
|
|
240
|
+
},
|
|
241
|
+
// todo implementation
|
|
242
|
+
'timeInForce': {
|
|
243
|
+
'IOC': true,
|
|
244
|
+
'FOK': true,
|
|
245
|
+
'PO': true,
|
|
246
|
+
'GTD': false,
|
|
247
|
+
},
|
|
248
|
+
'hedged': false,
|
|
249
|
+
'selfTradePrevention': false,
|
|
250
|
+
'trailing': false,
|
|
251
|
+
'iceberg': false,
|
|
252
|
+
'leverage': false,
|
|
253
|
+
'marketBuyByCost': false,
|
|
254
|
+
'marketBuyRequiresPrice': false,
|
|
255
|
+
},
|
|
256
|
+
'createOrders': undefined,
|
|
257
|
+
'fetchMyTrades': {
|
|
258
|
+
'marginMode': false,
|
|
259
|
+
'limit': 100,
|
|
260
|
+
'daysBack': 100000,
|
|
261
|
+
'untilDays': 100000,
|
|
262
|
+
},
|
|
263
|
+
'fetchOrder': undefined,
|
|
264
|
+
'fetchOpenOrders': {
|
|
265
|
+
'marginMode': false,
|
|
266
|
+
'limit': 100,
|
|
267
|
+
'trigger': false,
|
|
268
|
+
'trailing': false,
|
|
269
|
+
},
|
|
270
|
+
'fetchOrders': undefined,
|
|
271
|
+
'fetchClosedOrders': {
|
|
272
|
+
'marginMode': false,
|
|
273
|
+
'limit': 500,
|
|
274
|
+
'daysBack': 100000,
|
|
275
|
+
'daysBackCanceled': 1,
|
|
276
|
+
'untilDays': 100000,
|
|
277
|
+
'trigger': false,
|
|
278
|
+
'trailing': false,
|
|
279
|
+
},
|
|
280
|
+
'fetchOHLCV': {
|
|
281
|
+
'limit': 2000, // todo: recheck
|
|
282
|
+
},
|
|
283
|
+
},
|
|
284
|
+
'spot': {
|
|
285
|
+
'extends': 'default',
|
|
286
|
+
},
|
|
287
|
+
'swap': {
|
|
288
|
+
'linear': {
|
|
289
|
+
'extends': 'default',
|
|
290
|
+
},
|
|
291
|
+
'inverse': {
|
|
292
|
+
'extends': 'default',
|
|
293
|
+
},
|
|
294
|
+
},
|
|
295
|
+
'future': {
|
|
296
|
+
'linear': {
|
|
297
|
+
'extends': 'default',
|
|
298
|
+
},
|
|
299
|
+
'inverse': {
|
|
300
|
+
'extends': 'default',
|
|
301
|
+
},
|
|
302
|
+
},
|
|
303
|
+
},
|
|
222
304
|
'precisionMode': number.TICK_SIZE,
|
|
223
305
|
'requiredCredentials': {
|
|
224
306
|
'apiKey': true,
|
|
@@ -3485,7 +3567,7 @@ class delta extends delta$1 {
|
|
|
3485
3567
|
'timestamp': timestamp,
|
|
3486
3568
|
};
|
|
3487
3569
|
let auth = method + timestamp + requestPath;
|
|
3488
|
-
if (
|
|
3570
|
+
if (method === 'GET') {
|
|
3489
3571
|
if (Object.keys(query).length) {
|
|
3490
3572
|
const queryString = '?' + this.urlencode(query);
|
|
3491
3573
|
auth += queryString;
|
package/dist/cjs/src/gate.js
CHANGED
|
@@ -647,6 +647,8 @@ class gate extends gate$1 {
|
|
|
647
647
|
'X-Gate-Channel-Id': 'ccxt',
|
|
648
648
|
},
|
|
649
649
|
'options': {
|
|
650
|
+
'timeDifference': 0,
|
|
651
|
+
'adjustForTimeDifference': false,
|
|
650
652
|
'sandboxMode': false,
|
|
651
653
|
'unifiedAccount': undefined,
|
|
652
654
|
'createOrder': {
|
|
@@ -1160,6 +1162,9 @@ class gate extends gate$1 {
|
|
|
1160
1162
|
* @returns {object[]} an array of objects representing market data
|
|
1161
1163
|
*/
|
|
1162
1164
|
async fetchMarkets(params = {}) {
|
|
1165
|
+
if (this.options['adjustForTimeDifference']) {
|
|
1166
|
+
await this.loadTimeDifference();
|
|
1167
|
+
}
|
|
1163
1168
|
const sandboxMode = this.safeBool(this.options, 'sandboxMode', false);
|
|
1164
1169
|
let rawPromises = [
|
|
1165
1170
|
this.fetchContractMarkets(params),
|
|
@@ -6664,6 +6669,9 @@ class gate extends gate$1 {
|
|
|
6664
6669
|
'datetime': this.iso8601(timestamp),
|
|
6665
6670
|
};
|
|
6666
6671
|
}
|
|
6672
|
+
nonce() {
|
|
6673
|
+
return this.milliseconds() - this.options['timeDifference'];
|
|
6674
|
+
}
|
|
6667
6675
|
sign(path, api = [], method = 'GET', params = {}, headers = undefined, body = undefined) {
|
|
6668
6676
|
const authentication = api[0]; // public, private
|
|
6669
6677
|
const type = api[1]; // spot, margin, future, delivery
|
|
@@ -6737,7 +6745,8 @@ class gate extends gate$1 {
|
|
|
6737
6745
|
}
|
|
6738
6746
|
const bodyPayload = (body === undefined) ? '' : body;
|
|
6739
6747
|
const bodySignature = this.hash(this.encode(bodyPayload), sha512.sha512);
|
|
6740
|
-
const
|
|
6748
|
+
const nonce = this.nonce();
|
|
6749
|
+
const timestamp = this.parseToInt(nonce / 1000);
|
|
6741
6750
|
const timestampString = timestamp.toString();
|
|
6742
6751
|
const signaturePath = '/api/' + this.version + entirePath;
|
|
6743
6752
|
const payloadArray = [method.toUpperCase(), signaturePath, queryString, bodySignature, timestampString];
|
package/dist/cjs/src/htx.js
CHANGED
|
@@ -950,6 +950,8 @@ class htx extends htx$1 {
|
|
|
950
950
|
'inverse': true,
|
|
951
951
|
},
|
|
952
952
|
},
|
|
953
|
+
'timeDifference': 0,
|
|
954
|
+
'adjustForTimeDifference': false,
|
|
953
955
|
'fetchOHLCV': {
|
|
954
956
|
'useHistoricalEndpointForSpot': true,
|
|
955
957
|
},
|
|
@@ -1768,6 +1770,9 @@ class htx extends htx$1 {
|
|
|
1768
1770
|
* @returns {object[]} an array of objects representing market data
|
|
1769
1771
|
*/
|
|
1770
1772
|
async fetchMarkets(params = {}) {
|
|
1773
|
+
if (this.options['adjustForTimeDifference']) {
|
|
1774
|
+
await this.loadTimeDifference();
|
|
1775
|
+
}
|
|
1771
1776
|
let types = undefined;
|
|
1772
1777
|
[types, params] = this.handleOptionAndParams(params, 'fetchMarkets', 'types', {});
|
|
1773
1778
|
let allMarkets = [];
|
|
@@ -7448,6 +7453,9 @@ class htx extends htx$1 {
|
|
|
7448
7453
|
'datetime': this.iso8601(timestamp),
|
|
7449
7454
|
};
|
|
7450
7455
|
}
|
|
7456
|
+
nonce() {
|
|
7457
|
+
return this.milliseconds() - this.options['timeDifference'];
|
|
7458
|
+
}
|
|
7451
7459
|
sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
|
|
7452
7460
|
let url = '/';
|
|
7453
7461
|
const query = this.omit(params, this.extractParams(path));
|
|
@@ -7462,7 +7470,7 @@ class htx extends htx$1 {
|
|
|
7462
7470
|
url += '/' + this.implodeParams(path, params);
|
|
7463
7471
|
if (api === 'private' || api === 'v2Private') {
|
|
7464
7472
|
this.checkRequiredCredentials();
|
|
7465
|
-
const timestamp = this.ymdhms(this.
|
|
7473
|
+
const timestamp = this.ymdhms(this.nonce(), 'T');
|
|
7466
7474
|
let request = {
|
|
7467
7475
|
'SignatureMethod': 'HmacSHA256',
|
|
7468
7476
|
'SignatureVersion': '2',
|
|
@@ -7542,7 +7550,7 @@ class htx extends htx$1 {
|
|
|
7542
7550
|
}
|
|
7543
7551
|
}
|
|
7544
7552
|
}
|
|
7545
|
-
const timestamp = this.ymdhms(this.
|
|
7553
|
+
const timestamp = this.ymdhms(this.nonce(), 'T');
|
|
7546
7554
|
let request = {
|
|
7547
7555
|
'SignatureMethod': 'HmacSHA256',
|
|
7548
7556
|
'SignatureVersion': '2',
|
|
@@ -691,6 +691,11 @@ class hyperliquid extends hyperliquid$1 {
|
|
|
691
691
|
const price = this.safeNumber(market, 'markPx', 0);
|
|
692
692
|
const pricePrecision = this.calculatePricePrecision(price, amountPrecision, 6);
|
|
693
693
|
const pricePrecisionStr = this.numberToString(pricePrecision);
|
|
694
|
+
const isDelisted = this.safeBool(market, 'isDelisted');
|
|
695
|
+
let active = true;
|
|
696
|
+
if (isDelisted !== undefined) {
|
|
697
|
+
active = !isDelisted;
|
|
698
|
+
}
|
|
694
699
|
return this.safeMarketStructure({
|
|
695
700
|
'id': baseId,
|
|
696
701
|
'symbol': symbol,
|
|
@@ -706,7 +711,7 @@ class hyperliquid extends hyperliquid$1 {
|
|
|
706
711
|
'swap': swap,
|
|
707
712
|
'future': false,
|
|
708
713
|
'option': false,
|
|
709
|
-
'active':
|
|
714
|
+
'active': active,
|
|
710
715
|
'contract': contract,
|
|
711
716
|
'linear': true,
|
|
712
717
|
'inverse': false,
|