ccxt 4.1.13 → 4.1.16

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 (152) hide show
  1. package/CHANGELOG.md +219 -0
  2. package/CONTRIBUTING.md +1 -0
  3. package/README.md +3 -3
  4. package/dist/ccxt.browser.js +539 -189
  5. package/dist/ccxt.browser.min.js +9 -9
  6. package/dist/cjs/ccxt.js +1 -1
  7. package/dist/cjs/src/ascendex.js +1 -0
  8. package/dist/cjs/src/base/Exchange.js +3 -0
  9. package/dist/cjs/src/binance.js +6 -2
  10. package/dist/cjs/src/bingx.js +5 -3
  11. package/dist/cjs/src/bitget.js +357 -64
  12. package/dist/cjs/src/bitmart.js +2 -0
  13. package/dist/cjs/src/bitmex.js +6 -3
  14. package/dist/cjs/src/bittrex.js +7 -0
  15. package/dist/cjs/src/btcalpha.js +2 -1
  16. package/dist/cjs/src/btcturk.js +3 -0
  17. package/dist/cjs/src/cex.js +1 -0
  18. package/dist/cjs/src/coinbase.js +1 -0
  19. package/dist/cjs/src/coinbasepro.js +1 -0
  20. package/dist/cjs/src/coinex.js +2 -0
  21. package/dist/cjs/src/coinfalcon.js +1 -0
  22. package/dist/cjs/src/coinmate.js +1 -0
  23. package/dist/cjs/src/coinone.js +15 -5
  24. package/dist/cjs/src/cryptocom.js +25 -87
  25. package/dist/cjs/src/currencycom.js +1 -0
  26. package/dist/cjs/src/delta.js +1 -0
  27. package/dist/cjs/src/deribit.js +1 -0
  28. package/dist/cjs/src/digifinex.js +10 -8
  29. package/dist/cjs/src/exmo.js +1 -0
  30. package/dist/cjs/src/gate.js +3 -0
  31. package/dist/cjs/src/gemini.js +1 -0
  32. package/dist/cjs/src/hitbtc.js +1 -0
  33. package/dist/cjs/src/hollaex.js +1 -0
  34. package/dist/cjs/src/huobi.js +8 -0
  35. package/dist/cjs/src/huobijp.js +1 -0
  36. package/dist/cjs/src/idex.js +1 -0
  37. package/dist/cjs/src/independentreserve.js +1 -0
  38. package/dist/cjs/src/indodax.js +1 -0
  39. package/dist/cjs/src/kraken.js +10 -0
  40. package/dist/cjs/src/krakenfutures.js +1 -0
  41. package/dist/cjs/src/kucoin.js +1 -0
  42. package/dist/cjs/src/kucoinfutures.js +1 -0
  43. package/dist/cjs/src/kuna.js +1 -0
  44. package/dist/cjs/src/latoken.js +1 -0
  45. package/dist/cjs/src/lbank.js +1 -0
  46. package/dist/cjs/src/lbank2.js +2 -0
  47. package/dist/cjs/src/luno.js +1 -0
  48. package/dist/cjs/src/lykke.js +2 -1
  49. package/dist/cjs/src/mercado.js +1 -0
  50. package/dist/cjs/src/mexc.js +4 -1
  51. package/dist/cjs/src/ndax.js +1 -0
  52. package/dist/cjs/src/novadax.js +1 -0
  53. package/dist/cjs/src/oceanex.js +1 -0
  54. package/dist/cjs/src/phemex.js +2 -0
  55. package/dist/cjs/src/poloniex.js +1 -0
  56. package/dist/cjs/src/poloniexfutures.js +8 -2
  57. package/dist/cjs/src/pro/krakenfutures.js +14 -10
  58. package/dist/cjs/src/probit.js +1 -0
  59. package/dist/cjs/src/tidex.js +1 -0
  60. package/dist/cjs/src/timex.js +1 -0
  61. package/dist/cjs/src/tokocrypto.js +1 -0
  62. package/dist/cjs/src/upbit.js +1 -0
  63. package/dist/cjs/src/wavesexchange.js +1 -0
  64. package/dist/cjs/src/wazirx.js +2 -1
  65. package/dist/cjs/src/whitebit.js +1 -0
  66. package/dist/cjs/src/woo.js +1 -0
  67. package/dist/cjs/src/yobit.js +1 -0
  68. package/dist/cjs/src/zaif.js +1 -0
  69. package/dist/cjs/src/zonda.js +1 -0
  70. package/js/ccxt.d.ts +1 -1
  71. package/js/ccxt.js +1 -1
  72. package/js/src/abstract/binance.d.ts +4 -0
  73. package/js/src/abstract/binancecoinm.d.ts +4 -0
  74. package/js/src/abstract/binanceus.d.ts +4 -0
  75. package/js/src/abstract/binanceusdm.d.ts +4 -0
  76. package/js/src/abstract/btcturk.d.ts +3 -0
  77. package/js/src/abstract/kraken.d.ts +8 -0
  78. package/js/src/abstract/poloniexfutures.d.ts +6 -1
  79. package/js/src/ascendex.js +1 -0
  80. package/js/src/base/Exchange.d.ts +1 -0
  81. package/js/src/base/Exchange.js +3 -0
  82. package/js/src/binance.js +6 -2
  83. package/js/src/bingx.js +5 -3
  84. package/js/src/bitget.d.ts +28 -0
  85. package/js/src/bitget.js +357 -64
  86. package/js/src/bitmart.js +2 -0
  87. package/js/src/bitmex.js +6 -3
  88. package/js/src/bittrex.d.ts +2 -2
  89. package/js/src/bittrex.js +7 -0
  90. package/js/src/btcalpha.js +2 -1
  91. package/js/src/btcturk.js +3 -0
  92. package/js/src/cex.js +1 -0
  93. package/js/src/coinbase.js +1 -0
  94. package/js/src/coinbasepro.js +1 -0
  95. package/js/src/coinex.js +2 -0
  96. package/js/src/coinfalcon.js +1 -0
  97. package/js/src/coinmate.js +1 -0
  98. package/js/src/coinone.js +15 -5
  99. package/js/src/cryptocom.d.ts +0 -2
  100. package/js/src/cryptocom.js +25 -87
  101. package/js/src/currencycom.js +1 -0
  102. package/js/src/delta.js +1 -0
  103. package/js/src/deribit.js +1 -0
  104. package/js/src/digifinex.d.ts +3 -28
  105. package/js/src/digifinex.js +10 -8
  106. package/js/src/exmo.js +1 -0
  107. package/js/src/gate.d.ts +1 -0
  108. package/js/src/gate.js +3 -0
  109. package/js/src/gemini.d.ts +1 -0
  110. package/js/src/gemini.js +1 -0
  111. package/js/src/hitbtc.js +1 -0
  112. package/js/src/hollaex.js +1 -0
  113. package/js/src/huobi.js +8 -0
  114. package/js/src/huobijp.js +1 -0
  115. package/js/src/idex.js +1 -0
  116. package/js/src/independentreserve.js +1 -0
  117. package/js/src/indodax.js +1 -0
  118. package/js/src/kraken.js +10 -0
  119. package/js/src/krakenfutures.js +1 -0
  120. package/js/src/kucoin.js +1 -0
  121. package/js/src/kucoinfutures.js +1 -0
  122. package/js/src/kuna.js +1 -0
  123. package/js/src/latoken.js +1 -0
  124. package/js/src/lbank.js +1 -0
  125. package/js/src/lbank2.js +2 -0
  126. package/js/src/luno.js +1 -0
  127. package/js/src/lykke.js +2 -1
  128. package/js/src/mercado.js +1 -0
  129. package/js/src/mexc.js +4 -1
  130. package/js/src/ndax.js +1 -0
  131. package/js/src/novadax.js +1 -0
  132. package/js/src/oceanex.js +1 -0
  133. package/js/src/phemex.d.ts +2 -0
  134. package/js/src/phemex.js +2 -0
  135. package/js/src/poloniex.js +1 -0
  136. package/js/src/poloniexfutures.js +8 -2
  137. package/js/src/pro/krakenfutures.js +14 -10
  138. package/js/src/probit.js +1 -0
  139. package/js/src/tidex.js +1 -0
  140. package/js/src/timex.d.ts +1 -0
  141. package/js/src/timex.js +1 -0
  142. package/js/src/tokocrypto.js +1 -0
  143. package/js/src/upbit.js +1 -0
  144. package/js/src/wavesexchange.js +1 -0
  145. package/js/src/wazirx.js +2 -1
  146. package/js/src/whitebit.js +1 -0
  147. package/js/src/woo.js +1 -0
  148. package/js/src/yobit.js +1 -0
  149. package/js/src/zaif.js +1 -0
  150. package/js/src/zonda.js +1 -0
  151. package/package.json +1 -1
  152. package/skip-tests.json +141 -12
package/js/src/kraken.js CHANGED
@@ -156,6 +156,7 @@ export default class kraken extends Exchange {
156
156
  'Depth': 1,
157
157
  'OHLC': 1,
158
158
  'Spread': 1,
159
+ 'SystemStatus': 1,
159
160
  'Ticker': 1,
160
161
  'Time': 1,
161
162
  'Trades': 1,
@@ -168,6 +169,7 @@ export default class kraken extends Exchange {
168
169
  'AddExport': 3,
169
170
  'Balance': 3,
170
171
  'CancelAll': 3,
172
+ 'CancelAllOrdersAfter': 3,
171
173
  'CancelOrder': 0,
172
174
  'CancelOrderBatch': 0,
173
175
  'ClosedOrders': 6,
@@ -203,6 +205,13 @@ export default class kraken extends Exchange {
203
205
  // sub accounts
204
206
  'CreateSubaccount': 3,
205
207
  'AccountTransfer': 3,
208
+ // earn
209
+ 'Earn/Allocate': 3,
210
+ 'Earn/Deallocate': 3,
211
+ 'Earn/AllocateStatus': 3,
212
+ 'Earn/DeallocateStatus': 3,
213
+ 'Earn/Strategies': 3,
214
+ 'Earn/Allocations': 3,
206
215
  },
207
216
  },
208
217
  },
@@ -490,6 +499,7 @@ export default class kraken extends Exchange {
490
499
  'max': undefined,
491
500
  },
492
501
  },
502
+ 'created': undefined,
493
503
  'info': market,
494
504
  });
495
505
  }
@@ -388,6 +388,7 @@ export default class krakenfutures extends Exchange {
388
388
  'max': undefined,
389
389
  },
390
390
  },
391
+ 'created': this.parse8601(this.safeString(market, 'openingDate')),
391
392
  'info': market,
392
393
  });
393
394
  }
package/js/src/kucoin.js CHANGED
@@ -989,6 +989,7 @@ export default class kucoin extends Exchange {
989
989
  'max': this.safeNumber(market, 'quoteMaxSize'),
990
990
  },
991
991
  },
992
+ 'created': undefined,
992
993
  'info': market,
993
994
  });
994
995
  }
@@ -508,6 +508,7 @@ export default class kucoinfutures extends kucoin {
508
508
  'max': this.safeNumber(market, 'quoteMaxSize'),
509
509
  },
510
510
  },
511
+ 'created': this.safeInteger(market, 'firstOpenDate'),
511
512
  'info': market,
512
513
  });
513
514
  }
package/js/src/kuna.js CHANGED
@@ -454,6 +454,7 @@ export default class kuna extends Exchange {
454
454
  'max': undefined,
455
455
  },
456
456
  },
457
+ 'created': undefined,
457
458
  'info': undefined,
458
459
  });
459
460
  }
package/js/src/latoken.js CHANGED
@@ -367,6 +367,7 @@ export default class latoken extends Exchange {
367
367
  'max': this.safeNumber(market, 'maxOrderCost' + capitalizedQuote),
368
368
  },
369
369
  },
370
+ 'created': this.safeInteger(market, 'created'),
370
371
  'info': market,
371
372
  });
372
373
  }
package/js/src/lbank.js CHANGED
@@ -232,6 +232,7 @@ export default class lbank extends Exchange {
232
232
  'max': undefined,
233
233
  },
234
234
  },
235
+ 'created': undefined,
235
236
  'info': id,
236
237
  });
237
238
  }
package/js/src/lbank2.js CHANGED
@@ -424,6 +424,7 @@ export default class lbank2 extends Exchange {
424
424
  'max': undefined,
425
425
  },
426
426
  },
427
+ 'created': undefined,
427
428
  'info': market,
428
429
  });
429
430
  }
@@ -520,6 +521,7 @@ export default class lbank2 extends Exchange {
520
521
  'max': undefined,
521
522
  },
522
523
  },
524
+ 'created': undefined,
523
525
  'info': market,
524
526
  });
525
527
  }
package/js/src/luno.js CHANGED
@@ -243,6 +243,7 @@ export default class luno extends Exchange {
243
243
  'max': undefined,
244
244
  },
245
245
  },
246
+ 'created': undefined,
246
247
  'info': market,
247
248
  });
248
249
  }
package/js/src/lykke.js CHANGED
@@ -314,7 +314,6 @@ export default class lykke extends Exchange {
314
314
  'option': false,
315
315
  'contract': false,
316
316
  'active': true,
317
- 'info': market,
318
317
  'linear': undefined,
319
318
  'inverse': undefined,
320
319
  'contractSize': undefined,
@@ -344,6 +343,8 @@ export default class lykke extends Exchange {
344
343
  'max': undefined,
345
344
  },
346
345
  },
346
+ 'created': undefined,
347
+ 'info': market,
347
348
  });
348
349
  }
349
350
  return result;
package/js/src/mercado.js CHANGED
@@ -239,6 +239,7 @@ export default class mercado extends Exchange {
239
239
  'max': undefined,
240
240
  },
241
241
  },
242
+ 'created': undefined,
242
243
  'info': coin,
243
244
  });
244
245
  }
package/js/src/mexc.js CHANGED
@@ -1167,6 +1167,7 @@ export default class mexc extends Exchange {
1167
1167
  'max': maxQuoteAmount,
1168
1168
  },
1169
1169
  },
1170
+ 'created': undefined,
1170
1171
  'info': market,
1171
1172
  });
1172
1173
  }
@@ -1278,6 +1279,7 @@ export default class mexc extends Exchange {
1278
1279
  'max': undefined,
1279
1280
  },
1280
1281
  },
1282
+ 'created': undefined,
1281
1283
  'info': market,
1282
1284
  });
1283
1285
  }
@@ -2740,7 +2742,7 @@ export default class mexc extends Exchange {
2740
2742
  }
2741
2743
  const [marketType] = this.handleMarketTypeAndParams('fetchOrdersByState', market, params);
2742
2744
  if (marketType === 'spot') {
2743
- throw new BadRequest(this.id + ' fetchOrdersByState() is not supported for ' + marketType);
2745
+ throw new NotSupported(this.id + ' fetchOrdersByState() is not supported for ' + marketType);
2744
2746
  }
2745
2747
  else {
2746
2748
  request['states'] = state;
@@ -4045,6 +4047,7 @@ export default class mexc extends Exchange {
4045
4047
  * @returns {object} a dictionary of [leverage tiers structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#leverage-tiers-structure}, indexed by market symbols
4046
4048
  */
4047
4049
  await this.loadMarkets();
4050
+ symbols = this.marketSymbols(symbols, 'swap', true, true);
4048
4051
  const response = await this.contractPublicGetDetail(params);
4049
4052
  //
4050
4053
  // {
package/js/src/ndax.js CHANGED
@@ -514,6 +514,7 @@ export default class ndax extends Exchange {
514
514
  'max': undefined,
515
515
  },
516
516
  },
517
+ 'created': undefined,
517
518
  'info': market,
518
519
  });
519
520
  }
package/js/src/novadax.js CHANGED
@@ -303,6 +303,7 @@ export default class novadax extends Exchange {
303
303
  'max': undefined,
304
304
  },
305
305
  },
306
+ 'created': undefined,
306
307
  'info': market,
307
308
  });
308
309
  }
package/js/src/oceanex.js CHANGED
@@ -230,6 +230,7 @@ export default class oceanex extends Exchange {
230
230
  'max': undefined,
231
231
  },
232
232
  },
233
+ 'created': undefined,
233
234
  'info': market,
234
235
  });
235
236
  }
@@ -58,6 +58,7 @@ export default class phemex extends Exchange {
58
58
  max: number;
59
59
  };
60
60
  };
61
+ created: any;
61
62
  info: any;
62
63
  };
63
64
  parseSpotMarket(market: any): {
@@ -111,6 +112,7 @@ export default class phemex extends Exchange {
111
112
  max: any;
112
113
  };
113
114
  };
115
+ created: any;
114
116
  info: any;
115
117
  };
116
118
  fetchMarkets(params?: {}): Promise<any[]>;
package/js/src/phemex.js CHANGED
@@ -603,6 +603,7 @@ export default class phemex extends Exchange {
603
603
  'max': this.parseNumber(this.safeString(market, 'maxOrderQty')),
604
604
  },
605
605
  },
606
+ 'created': undefined,
606
607
  'info': market,
607
608
  };
608
609
  }
@@ -701,6 +702,7 @@ export default class phemex extends Exchange {
701
702
  'max': this.parseSafeNumber(this.safeString(market, 'maxOrderValue')),
702
703
  },
703
704
  },
705
+ 'created': undefined,
704
706
  'info': market,
705
707
  };
706
708
  }
@@ -555,6 +555,7 @@ export default class poloniex extends Exchange {
555
555
  'max': undefined,
556
556
  },
557
557
  },
558
+ 'created': this.safeInteger(market, 'tradableStartTime'),
558
559
  'info': market,
559
560
  });
560
561
  }
@@ -105,22 +105,27 @@ export default class poloniexfutures extends Exchange {
105
105
  'get': {
106
106
  'account-overview': 1,
107
107
  'transaction-history': 1,
108
+ 'maxActiveOrders': 1,
109
+ 'maxRiskLimit': 1,
110
+ 'userFeeRate': 1,
111
+ 'marginType/query': 1,
108
112
  'orders': 1,
109
113
  'stopOrders': 1,
110
114
  'recentDoneOrders': 1,
111
115
  'orders/{order-id}': 1,
116
+ 'clientOrderId/{clientOid}': 1,
112
117
  'fills': 1,
113
118
  'openOrderStatistics': 1,
114
119
  'position': 1.5,
115
120
  'positions': 1.5,
116
121
  'funding-history': 1,
117
- 'marginType/query': 1,
118
122
  },
119
123
  'post': {
120
124
  'orders': 1.5,
121
125
  'batchOrders': 1.5,
122
126
  'position/margin/auto-deposit-status': 1.5,
123
127
  'position/margin/deposit-margin': 1.5,
128
+ 'position/margin/withdraw-margin': 1.5,
124
129
  'bullet-private': 1,
125
130
  'marginType/change': 1,
126
131
  },
@@ -337,6 +342,7 @@ export default class poloniexfutures extends Exchange {
337
342
  'max': undefined,
338
343
  },
339
344
  },
345
+ 'created': this.safeInteger(market, 'firstOpenDate'),
340
346
  'info': market,
341
347
  });
342
348
  }
@@ -1261,7 +1267,7 @@ export default class poloniexfutures extends Exchange {
1261
1267
  }
1262
1268
  const request = {};
1263
1269
  if (!stop) {
1264
- request['status'] = status === 'open' ? 'active' : 'done';
1270
+ request['status'] = (status === 'open') ? 'active' : 'done';
1265
1271
  }
1266
1272
  else if (status !== 'open') {
1267
1273
  throw new BadRequest(this.id + ' fetchOrdersByStatus() can only fetch untriggered stop orders');
@@ -102,6 +102,9 @@ export default class krakenfutures extends krakenfuturesRest {
102
102
  };
103
103
  const marketIds = [];
104
104
  let messageHash = name;
105
+ if (symbols === undefined) {
106
+ symbols = [];
107
+ }
105
108
  for (let i = 0; i < symbols.length; i++) {
106
109
  const symbol = symbols[i];
107
110
  marketIds.push(this.marketId(symbol));
@@ -167,6 +170,7 @@ export default class krakenfutures extends krakenfuturesRest {
167
170
  const method = this.safeString(this.options, 'watchTickerMethod', 'ticker'); // or ticker_lite
168
171
  const name = this.safeString2(params, 'method', 'watchTickerMethod', method);
169
172
  params = this.omit(params, ['watchTickerMethod', 'method']);
173
+ symbols = this.marketSymbols(symbols, undefined, false);
170
174
  return await this.subscribePublic(name, symbols, params);
171
175
  }
172
176
  async watchTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -318,7 +322,7 @@ export default class krakenfutures extends krakenfuturesRest {
318
322
  // }
319
323
  //
320
324
  const channel = this.safeString(message, 'feed');
321
- const marketId = this.safeStringLower(message, 'product_id');
325
+ const marketId = this.safeString(message, 'product_id');
322
326
  if (marketId !== undefined) {
323
327
  const market = this.market(marketId);
324
328
  const symbol = market['symbol'];
@@ -359,7 +363,7 @@ export default class krakenfutures extends krakenfuturesRest {
359
363
  // "price": 34893
360
364
  // }
361
365
  //
362
- const marketId = this.safeStringLower(trade, 'product_id');
366
+ const marketId = this.safeString(trade, 'product_id');
363
367
  market = this.safeMarket(marketId, market);
364
368
  const timestamp = this.safeInteger(trade, 'time');
365
369
  return this.safeTrade({
@@ -412,7 +416,7 @@ export default class krakenfutures extends krakenfuturesRest {
412
416
  // }
413
417
  //
414
418
  const timestamp = this.safeInteger(trade, 'tradeTime');
415
- const marketId = this.safeStringLower(trade, 'symbol');
419
+ const marketId = this.safeString(trade, 'symbol');
416
420
  return this.safeTrade({
417
421
  'info': trade,
418
422
  'id': this.safeString(trade, 'tradeId'),
@@ -491,7 +495,7 @@ export default class krakenfutures extends krakenfuturesRest {
491
495
  }
492
496
  const order = this.safeValue(message, 'order');
493
497
  if (order !== undefined) {
494
- const marketId = this.safeStringLower(order, 'instrument');
498
+ const marketId = this.safeString(order, 'instrument');
495
499
  const messageHash = 'orders';
496
500
  const symbol = this.safeSymbol(marketId);
497
501
  const orderId = this.safeString(order, 'order_id');
@@ -684,7 +688,7 @@ export default class krakenfutures extends krakenfuturesRest {
684
688
  status = 'cancelled';
685
689
  }
686
690
  }
687
- const marketId = this.safeStringLower(unparsedOrder, 'instrument');
691
+ const marketId = this.safeString(unparsedOrder, 'instrument');
688
692
  const timestamp = this.safeString(unparsedOrder, 'time');
689
693
  const direction = this.safeInteger(unparsedOrder, 'direction');
690
694
  return this.safeOrder({
@@ -765,7 +769,7 @@ export default class krakenfutures extends krakenfuturesRest {
765
769
  // "volumeQuote": 6899673.0
766
770
  // }
767
771
  //
768
- const marketId = this.safeStringLower(message, 'product_id');
772
+ const marketId = this.safeString(message, 'product_id');
769
773
  const feed = this.safeString(message, 'feed');
770
774
  if (marketId !== undefined) {
771
775
  const ticker = this.parseWsTicker(message);
@@ -826,7 +830,7 @@ export default class krakenfutures extends krakenfuturesRest {
826
830
  // "volumeQuote": 6899673.0
827
831
  // }
828
832
  //
829
- const marketId = this.safeStringLower(ticker, 'product_id');
833
+ const marketId = this.safeString(ticker, 'product_id');
830
834
  market = this.safeMarket(marketId, market);
831
835
  const symbol = market['symbol'];
832
836
  const timestamp = this.parse8601(this.safeString(ticker, 'lastTime'));
@@ -884,7 +888,7 @@ export default class krakenfutures extends krakenfuturesRest {
884
888
  // ]
885
889
  // }
886
890
  //
887
- const marketId = this.safeStringLower(message, 'product_id');
891
+ const marketId = this.safeString(message, 'product_id');
888
892
  const market = this.safeMarket(marketId);
889
893
  const symbol = market['symbol'];
890
894
  const messageHash = 'book:' + symbol;
@@ -924,7 +928,7 @@ export default class krakenfutures extends krakenfuturesRest {
924
928
  // "timestamp": 1612269953629
925
929
  // }
926
930
  //
927
- const marketId = this.safeStringLower(message, 'product_id');
931
+ const marketId = this.safeString(message, 'product_id');
928
932
  const market = this.safeMarket(marketId);
929
933
  const symbol = market['symbol'];
930
934
  const messageHash = 'book:' + symbol;
@@ -1228,7 +1232,7 @@ export default class krakenfutures extends krakenfuturesRest {
1228
1232
  // }
1229
1233
  //
1230
1234
  const timestamp = this.safeInteger(trade, 'time');
1231
- const marketId = this.safeStringLower(trade, 'instrument');
1235
+ const marketId = this.safeString(trade, 'instrument');
1232
1236
  market = this.safeMarket(marketId, market);
1233
1237
  const isBuy = this.safeValue(trade, 'buy');
1234
1238
  const feeCurrencyId = this.safeString(trade, 'fee_currency');
package/js/src/probit.js CHANGED
@@ -337,6 +337,7 @@ export default class probit extends Exchange {
337
337
  'max': this.safeNumber(market, 'max_cost'),
338
338
  },
339
339
  },
340
+ 'created': undefined,
340
341
  'info': market,
341
342
  });
342
343
  }
package/js/src/tidex.js CHANGED
@@ -337,6 +337,7 @@ export default class tidex extends Exchange {
337
337
  'max': undefined,
338
338
  },
339
339
  },
340
+ 'created': undefined,
340
341
  'info': market,
341
342
  });
342
343
  }
package/js/src/timex.d.ts CHANGED
@@ -106,6 +106,7 @@ export default class timex extends Exchange {
106
106
  max: any;
107
107
  };
108
108
  };
109
+ created: any;
109
110
  info: any;
110
111
  };
111
112
  parseCurrency(currency: any): {
package/js/src/timex.js CHANGED
@@ -1237,6 +1237,7 @@ export default class timex extends Exchange {
1237
1237
  'max': undefined,
1238
1238
  },
1239
1239
  },
1240
+ 'created': undefined,
1240
1241
  'info': market,
1241
1242
  };
1242
1243
  }
@@ -738,6 +738,7 @@ export default class tokocrypto extends Exchange {
738
738
  'max': undefined,
739
739
  },
740
740
  },
741
+ 'created': undefined,
741
742
  'info': market,
742
743
  };
743
744
  if ('PRICE_FILTER' in filtersByType) {
package/js/src/upbit.js CHANGED
@@ -473,6 +473,7 @@ export default class upbit extends Exchange {
473
473
  'max': undefined,
474
474
  },
475
475
  },
476
+ 'created': undefined,
476
477
  'info': market,
477
478
  });
478
479
  }
@@ -581,6 +581,7 @@ export default class wavesexchange extends Exchange {
581
581
  'max': undefined,
582
582
  },
583
583
  },
584
+ 'created': undefined,
584
585
  'info': entry,
585
586
  });
586
587
  }
package/js/src/wazirx.js CHANGED
@@ -264,6 +264,7 @@ export default class wazirx extends Exchange {
264
264
  'max': undefined,
265
265
  },
266
266
  },
267
+ 'created': undefined,
267
268
  'info': market,
268
269
  });
269
270
  }
@@ -592,7 +593,7 @@ export default class wazirx extends Exchange {
592
593
  }, market);
593
594
  }
594
595
  parseBalance(response) {
595
- const result = {};
596
+ const result = { 'info': response };
596
597
  for (let i = 0; i < response.length; i++) {
597
598
  const balance = response[i];
598
599
  const id = this.safeString(balance, 'asset');
@@ -387,6 +387,7 @@ export default class whitebit extends Exchange {
387
387
  'max': this.safeNumber(market, 'maxTotal'),
388
388
  },
389
389
  },
390
+ 'created': undefined,
390
391
  'info': market,
391
392
  };
392
393
  result.push(entry);
package/js/src/woo.js CHANGED
@@ -403,6 +403,7 @@ export default class woo extends Exchange {
403
403
  'max': undefined,
404
404
  },
405
405
  },
406
+ 'created': this.safeIntegerProduct(market, 'created_time', 1000),
406
407
  'info': market,
407
408
  });
408
409
  }
package/js/src/yobit.js CHANGED
@@ -430,6 +430,7 @@ export default class yobit extends Exchange {
430
430
  'max': undefined,
431
431
  },
432
432
  },
433
+ 'created': undefined,
433
434
  'info': market,
434
435
  });
435
436
  }
package/js/src/zaif.js CHANGED
@@ -239,6 +239,7 @@ export default class zaif extends Exchange {
239
239
  'max': undefined,
240
240
  },
241
241
  },
242
+ 'created': undefined,
242
243
  'info': market,
243
244
  });
244
245
  }
package/js/src/zonda.js CHANGED
@@ -388,6 +388,7 @@ export default class zonda extends Exchange {
388
388
  'max': undefined,
389
389
  },
390
390
  },
391
+ 'created': undefined,
391
392
  'info': item,
392
393
  });
393
394
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccxt",
3
- "version": "4.1.13",
3
+ "version": "4.1.16",
4
4
  "description": "A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 130+ exchanges",
5
5
  "unpkg": "dist/ccxt.browser.js",
6
6
  "type": "module",