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.
Files changed (77) hide show
  1. package/README.md +3 -3
  2. package/dist/ccxt.browser.min.js +16 -16
  3. package/dist/cjs/ccxt.js +1 -1
  4. package/dist/cjs/src/ace.js +1 -1
  5. package/dist/cjs/src/binance.js +18 -14
  6. package/dist/cjs/src/bitget.js +4 -2
  7. package/dist/cjs/src/bitmart.js +7 -2
  8. package/dist/cjs/src/bitmex.js +8 -5
  9. package/dist/cjs/src/bybit.js +7 -2
  10. package/dist/cjs/src/coinbase.js +11 -1
  11. package/dist/cjs/src/coincatch.js +86 -2
  12. package/dist/cjs/src/coincheck.js +52 -0
  13. package/dist/cjs/src/coinlist.js +77 -0
  14. package/dist/cjs/src/coinmate.js +63 -0
  15. package/dist/cjs/src/coinmetro.js +68 -0
  16. package/dist/cjs/src/coinone.js +56 -0
  17. package/dist/cjs/src/coinsph.js +67 -1
  18. package/dist/cjs/src/coinspot.js +47 -0
  19. package/dist/cjs/src/currencycom.js +72 -0
  20. package/dist/cjs/src/defx.js +93 -6
  21. package/dist/cjs/src/delta.js +83 -1
  22. package/dist/cjs/src/gate.js +10 -1
  23. package/dist/cjs/src/htx.js +10 -2
  24. package/dist/cjs/src/hyperliquid.js +6 -1
  25. package/dist/cjs/src/independentreserve.js +60 -0
  26. package/dist/cjs/src/kraken.js +1 -1
  27. package/dist/cjs/src/krakenfutures.js +4 -4
  28. package/dist/cjs/src/okx.js +9 -1
  29. package/dist/cjs/src/paradex.js +5 -2
  30. package/dist/cjs/src/phemex.js +103 -0
  31. package/dist/cjs/src/poloniex.js +61 -0
  32. package/dist/cjs/src/poloniexfutures.js +74 -0
  33. package/dist/cjs/src/upbit.js +61 -0
  34. package/dist/cjs/src/woo.js +6 -1
  35. package/js/ccxt.d.ts +1 -1
  36. package/js/ccxt.js +1 -1
  37. package/js/src/abstract/independentreserve.d.ts +6 -0
  38. package/js/src/ace.js +1 -1
  39. package/js/src/binance.d.ts +7 -0
  40. package/js/src/binance.js +18 -14
  41. package/js/src/bitget.js +4 -2
  42. package/js/src/bitmart.js +7 -2
  43. package/js/src/bitmex.js +8 -5
  44. package/js/src/bybit.d.ts +1 -1
  45. package/js/src/bybit.js +7 -2
  46. package/js/src/coinbase.d.ts +1 -0
  47. package/js/src/coinbase.js +11 -1
  48. package/js/src/coincatch.d.ts +1 -2
  49. package/js/src/coincatch.js +86 -2
  50. package/js/src/coincheck.js +52 -0
  51. package/js/src/coinlist.js +77 -0
  52. package/js/src/coinmate.js +63 -0
  53. package/js/src/coinmetro.js +68 -0
  54. package/js/src/coinone.js +56 -0
  55. package/js/src/coinsph.d.ts +1 -1
  56. package/js/src/coinsph.js +67 -1
  57. package/js/src/coinspot.js +47 -0
  58. package/js/src/currencycom.js +72 -0
  59. package/js/src/defx.js +93 -6
  60. package/js/src/delta.js +83 -1
  61. package/js/src/gate.d.ts +1 -0
  62. package/js/src/gate.js +10 -1
  63. package/js/src/htx.d.ts +1 -0
  64. package/js/src/htx.js +10 -2
  65. package/js/src/hyperliquid.js +6 -1
  66. package/js/src/independentreserve.js +60 -0
  67. package/js/src/kraken.js +1 -1
  68. package/js/src/krakenfutures.js +4 -4
  69. package/js/src/okx.d.ts +1 -0
  70. package/js/src/okx.js +9 -1
  71. package/js/src/paradex.js +5 -2
  72. package/js/src/phemex.js +103 -0
  73. package/js/src/poloniex.js +61 -0
  74. package/js/src/poloniexfutures.js +74 -0
  75. package/js/src/upbit.js +61 -0
  76. package/js/src/woo.js +6 -1
  77. package/package.json +1 -1
@@ -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,
@@ -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/#query-order-user_data
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
@@ -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,
@@ -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
- params['statuses'] = 'OPEN';
1664
- return await this.fetchOrders(symbol, since, limit, params);
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
- params['statuses'] = 'FILLED';
1680
- return await this.fetchOrders(symbol, since, limit, params);
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
- params['statuses'] = 'CANCELED';
1696
- return await this.fetchOrders(symbol, since, limit, params);
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
@@ -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 ((method === 'GET') || (method === 'DELETE')) {
3570
+ if (method === 'GET') {
3489
3571
  if (Object.keys(query).length) {
3490
3572
  const queryString = '?' + this.urlencode(query);
3491
3573
  auth += queryString;
@@ -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 timestamp = this.seconds();
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];
@@ -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.milliseconds(), 'T');
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.milliseconds(), 'T');
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': true,
714
+ 'active': active,
710
715
  'contract': contract,
711
716
  'linear': true,
712
717
  'inverse': false,