ccxt 4.4.5 → 4.4.7

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 (45) hide show
  1. package/README.md +3 -3
  2. package/dist/ccxt.browser.min.js +2 -2
  3. package/dist/cjs/ccxt.js +1 -1
  4. package/dist/cjs/src/base/Exchange.js +21 -2
  5. package/dist/cjs/src/bingx.js +3 -0
  6. package/dist/cjs/src/bitflyer.js +2 -2
  7. package/dist/cjs/src/bitget.js +19 -7
  8. package/dist/cjs/src/bitmart.js +310 -128
  9. package/dist/cjs/src/bybit.js +25 -11
  10. package/dist/cjs/src/coinbase.js +6 -8
  11. package/dist/cjs/src/gate.js +3 -0
  12. package/dist/cjs/src/kraken.js +6 -1
  13. package/dist/cjs/src/kucoin.js +2 -2
  14. package/dist/cjs/src/mexc.js +127 -19
  15. package/dist/cjs/src/pro/bitget.js +66 -0
  16. package/dist/cjs/src/pro/htx.js +14 -0
  17. package/dist/cjs/src/pro/kraken.js +60 -0
  18. package/dist/cjs/src/pro/okx.js +11 -5
  19. package/examples/js/cli.js +2 -0
  20. package/js/ccxt.d.ts +1 -1
  21. package/js/ccxt.js +1 -1
  22. package/js/src/abstract/bitmart.d.ts +4 -0
  23. package/js/src/base/Exchange.d.ts +4 -0
  24. package/js/src/base/Exchange.js +21 -2
  25. package/js/src/bingx.js +3 -0
  26. package/js/src/bitflyer.js +2 -2
  27. package/js/src/bitget.d.ts +1 -0
  28. package/js/src/bitget.js +19 -7
  29. package/js/src/bitmart.d.ts +1 -0
  30. package/js/src/bitmart.js +310 -128
  31. package/js/src/bybit.js +25 -11
  32. package/js/src/coinbase.js +6 -8
  33. package/js/src/gate.js +3 -0
  34. package/js/src/kraken.js +6 -1
  35. package/js/src/kucoin.js +2 -2
  36. package/js/src/mexc.d.ts +3 -0
  37. package/js/src/mexc.js +127 -19
  38. package/js/src/pro/bitget.d.ts +3 -0
  39. package/js/src/pro/bitget.js +66 -0
  40. package/js/src/pro/htx.js +14 -0
  41. package/js/src/pro/kraken.d.ts +3 -0
  42. package/js/src/pro/kraken.js +60 -0
  43. package/js/src/pro/okx.d.ts +1 -0
  44. package/js/src/pro/okx.js +11 -5
  45. package/package.json +1 -1
package/dist/cjs/ccxt.js CHANGED
@@ -194,7 +194,7 @@ var xt$1 = require('./src/pro/xt.js');
194
194
 
195
195
  //-----------------------------------------------------------------------------
196
196
  // this is updated by vss.js when building
197
- const version = '4.4.5';
197
+ const version = '4.4.7';
198
198
  Exchange["default"].ccxtVersion = version;
199
199
  const exchanges = {
200
200
  'ace': ace,
@@ -1237,6 +1237,13 @@ class Exchange {
1237
1237
  rng$1.nextBytes(x);
1238
1238
  return Buffer.from(x).toString('hex');
1239
1239
  }
1240
+ randNumber(size) {
1241
+ let number = '';
1242
+ for (let i = 0; i < size; i++) {
1243
+ number += Math.floor(Math.random() * 10);
1244
+ }
1245
+ return parseInt(number, 10);
1246
+ }
1240
1247
  /* eslint-enable */
1241
1248
  // ------------------------------------------------------------------------
1242
1249
  // ########################################################################
@@ -2265,6 +2272,7 @@ class Exchange {
2265
2272
  'ETH': { 'ERC20': 'ETH' },
2266
2273
  'TRX': { 'TRC20': 'TRX' },
2267
2274
  'CRO': { 'CRC20': 'CRONOS' },
2275
+ 'BRC20': { 'BRC20': 'BTC' },
2268
2276
  },
2269
2277
  };
2270
2278
  }
@@ -6122,8 +6130,19 @@ class Exchange {
6122
6130
  break;
6123
6131
  }
6124
6132
  result = this.arrayConcat(result, response);
6125
- const last = this.safeValue(response, responseLength - 1);
6126
- cursorValue = this.safeValue(last['info'], cursorReceived);
6133
+ const last = this.safeDict(response, responseLength - 1);
6134
+ // cursorValue = this.safeValue (last['info'], cursorReceived);
6135
+ cursorValue = undefined; // search for the cursor
6136
+ for (let j = 0; j < responseLength; j++) {
6137
+ const index = responseLength - j - 1;
6138
+ const entry = this.safeDict(response, index);
6139
+ const info = this.safeDict(entry, 'info');
6140
+ const cursor = this.safeValue(info, cursorReceived);
6141
+ if (cursor !== undefined) {
6142
+ cursorValue = cursor;
6143
+ break;
6144
+ }
6145
+ }
6127
6146
  if (cursorValue === undefined) {
6128
6147
  break;
6129
6148
  }
@@ -488,6 +488,9 @@ class bingx extends bingx$1 {
488
488
  'BTC': 'BTC',
489
489
  'LTC': 'LTC',
490
490
  },
491
+ 'networks': {
492
+ 'ARB': 'ARBITRUM',
493
+ },
491
494
  },
492
495
  });
493
496
  }
@@ -1062,10 +1062,10 @@ class bitflyer extends bitflyer$1 {
1062
1062
  const feedback = this.id + ' ' + body;
1063
1063
  // i.e. {"status":-2,"error_message":"Under maintenance","data":null}
1064
1064
  const errorMessage = this.safeString(response, 'error_message');
1065
- const statusCode = this.safeNumber(response, 'status');
1065
+ const statusCode = this.safeInteger(response, 'status');
1066
1066
  if (errorMessage !== undefined) {
1067
1067
  this.throwExactlyMatchedException(this.exceptions['exact'], statusCode, feedback);
1068
- this.throwBroadlyMatchedException(this.exceptions['broad'], errorMessage, feedback);
1068
+ throw new errors.ExchangeError(feedback);
1069
1069
  }
1070
1070
  return undefined;
1071
1071
  }
@@ -1315,6 +1315,8 @@ class bitget extends bitget$1 {
1315
1315
  'TONCOIN': 'TON',
1316
1316
  },
1317
1317
  'options': {
1318
+ 'timeDifference': 0,
1319
+ 'adjustForTimeDifference': false,
1318
1320
  'timeframes': {
1319
1321
  'spot': {
1320
1322
  '1m': '1min',
@@ -1413,12 +1415,13 @@ class bitget extends bitget$1 {
1413
1415
  'networks': {
1414
1416
  'TRX': 'TRC20',
1415
1417
  'ETH': 'ERC20',
1416
- 'BSC': 'BEP20',
1417
- },
1418
- 'networksById': {
1419
- 'TRC20': 'TRX',
1420
- 'BSC': 'BEP20',
1418
+ 'BEP20': 'BSC',
1419
+ 'ZKSYNC': 'zkSyncEra',
1420
+ 'STARKNET': 'Starknet',
1421
+ 'OPTIMISM': 'Optimism',
1422
+ 'ARBITRUM': 'Arbitrum',
1421
1423
  },
1424
+ 'networksById': {},
1422
1425
  'fetchPositions': {
1423
1426
  'method': 'privateMixGetV2MixPositionAllPosition', // or privateMixGetV2MixPositionHistoryPosition
1424
1427
  },
@@ -1537,6 +1540,9 @@ class bitget extends bitget$1 {
1537
1540
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1538
1541
  * @returns {object[]} an array of objects representing market data
1539
1542
  */
1543
+ if (this.options['adjustForTimeDifference']) {
1544
+ await this.loadTimeDifference();
1545
+ }
1540
1546
  const sandboxMode = this.safeBool(this.options, 'sandboxMode', false);
1541
1547
  let types = this.safeValue(this.options, 'fetchMarkets', ['spot', 'swap']);
1542
1548
  if (sandboxMode) {
@@ -1857,7 +1863,10 @@ class bitget extends bitget$1 {
1857
1863
  for (let j = 0; j < chains.length; j++) {
1858
1864
  const chain = chains[j];
1859
1865
  const networkId = this.safeString(chain, 'chain');
1860
- const network = this.safeCurrencyCode(networkId);
1866
+ let network = this.networkIdToCode(networkId, code);
1867
+ if (network !== undefined) {
1868
+ network = network.toUpperCase();
1869
+ }
1861
1870
  const withdrawEnabled = this.safeString(chain, 'withdrawable');
1862
1871
  const canWithdraw = withdrawEnabled === 'true';
1863
1872
  withdraw = (canWithdraw) ? canWithdraw : withdraw;
@@ -8822,6 +8831,9 @@ class bitget extends bitget$1 {
8822
8831
  }
8823
8832
  return undefined;
8824
8833
  }
8834
+ nonce() {
8835
+ return this.milliseconds() - this.options['timeDifference'];
8836
+ }
8825
8837
  sign(path, api = [], method = 'GET', params = {}, headers = undefined, body = undefined) {
8826
8838
  const signed = api[0] === 'private';
8827
8839
  const endpoint = api[1];
@@ -8839,7 +8851,7 @@ class bitget extends bitget$1 {
8839
8851
  }
8840
8852
  if (signed) {
8841
8853
  this.checkRequiredCredentials();
8842
- const timestamp = this.milliseconds().toString();
8854
+ const timestamp = this.nonce().toString();
8843
8855
  let auth = timestamp + method + payload;
8844
8856
  if (method === 'POST') {
8845
8857
  body = this.json(params);