ccxt 4.4.90 → 4.4.91

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 (55) hide show
  1. package/README.md +5 -6
  2. package/dist/ccxt.browser.min.js +2 -2
  3. package/dist/cjs/ccxt.js +1 -4
  4. package/dist/cjs/src/base/Exchange.js +9 -11
  5. package/dist/cjs/src/base/ws/Client.js +4 -34
  6. package/dist/cjs/src/binance.js +1 -1
  7. package/dist/cjs/src/bitmex.js +2 -1
  8. package/dist/cjs/src/cex.js +61 -0
  9. package/dist/cjs/src/cryptocom.js +21 -2
  10. package/dist/cjs/src/cryptomus.js +1 -1
  11. package/dist/cjs/src/exmo.js +14 -7
  12. package/dist/cjs/src/fmfwio.js +1 -1
  13. package/dist/cjs/src/gate.js +2 -2
  14. package/dist/cjs/src/hyperliquid.js +115 -59
  15. package/dist/cjs/src/kraken.js +29 -1
  16. package/dist/cjs/src/mexc.js +1 -0
  17. package/dist/cjs/src/modetrade.js +2 -2
  18. package/dist/cjs/src/paradex.js +1 -1
  19. package/dist/cjs/src/pro/bitstamp.js +1 -1
  20. package/dist/cjs/src/pro/bybit.js +6 -143
  21. package/dist/cjs/src/pro/kraken.js +251 -264
  22. package/dist/cjs/src/pro/mexc.js +0 -1
  23. package/js/ccxt.d.ts +2 -5
  24. package/js/ccxt.js +2 -4
  25. package/js/src/base/Exchange.d.ts +2 -1
  26. package/js/src/base/Exchange.js +10 -12
  27. package/js/src/base/ws/Client.d.ts +0 -2
  28. package/js/src/base/ws/Client.js +4 -34
  29. package/js/src/binance.js +1 -1
  30. package/js/src/bitmex.js +2 -1
  31. package/js/src/cex.js +61 -0
  32. package/js/src/cryptocom.js +21 -2
  33. package/js/src/cryptomus.js +1 -1
  34. package/js/src/exmo.js +14 -7
  35. package/js/src/fmfwio.js +2 -2
  36. package/js/src/gate.js +2 -2
  37. package/js/src/hyperliquid.d.ts +1 -0
  38. package/js/src/hyperliquid.js +115 -59
  39. package/js/src/kraken.js +29 -1
  40. package/js/src/mexc.js +1 -0
  41. package/js/src/modetrade.js +2 -2
  42. package/js/src/p2b.d.ts +1 -2
  43. package/js/src/paradex.js +1 -1
  44. package/js/src/pro/bitstamp.js +1 -1
  45. package/js/src/pro/bybit.d.ts +0 -1
  46. package/js/src/pro/bybit.js +6 -143
  47. package/js/src/pro/kraken.d.ts +17 -17
  48. package/js/src/pro/kraken.js +251 -264
  49. package/js/src/pro/mexc.js +0 -1
  50. package/js/src/tradeogre.d.ts +1 -2
  51. package/package.json +1 -1
  52. package/js/src/abstract/coinlist.d.ts +0 -60
  53. package/js/src/abstract/coinlist.js +0 -11
  54. package/js/src/coinlist.d.ts +0 -384
  55. package/js/src/coinlist.js +0 -2610
@@ -1380,7 +1380,20 @@ class kraken extends kraken$1 {
1380
1380
  // "maker": false
1381
1381
  // }
1382
1382
  //
1383
+ // watchTrades
1384
+ //
1385
+ // {
1386
+ // "symbol": "BTC/USD",
1387
+ // "side": "buy",
1388
+ // "price": 109601.2,
1389
+ // "qty": 0.04561994,
1390
+ // "ord_type": "market",
1391
+ // "trade_id": 83449369,
1392
+ // "timestamp": "2025-05-27T11:24:03.847761Z"
1393
+ // }
1394
+ //
1383
1395
  let timestamp = undefined;
1396
+ let datetime = undefined;
1384
1397
  let side = undefined;
1385
1398
  let type = undefined;
1386
1399
  let price = undefined;
@@ -1431,6 +1444,15 @@ class kraken extends kraken$1 {
1431
1444
  };
1432
1445
  }
1433
1446
  }
1447
+ else {
1448
+ symbol = this.safeString(trade, 'symbol');
1449
+ datetime = this.safeString(trade, 'timestamp');
1450
+ id = this.safeString(trade, 'trade_id');
1451
+ side = this.safeString(trade, 'side');
1452
+ type = this.safeString(trade, 'ord_type');
1453
+ price = this.safeString(trade, 'price');
1454
+ amount = this.safeString(trade, 'qty');
1455
+ }
1434
1456
  if (market !== undefined) {
1435
1457
  symbol = market['symbol'];
1436
1458
  }
@@ -1440,12 +1462,18 @@ class kraken extends kraken$1 {
1440
1462
  if (maker !== undefined) {
1441
1463
  takerOrMaker = maker ? 'maker' : 'taker';
1442
1464
  }
1465
+ if (datetime === undefined) {
1466
+ datetime = this.iso8601(timestamp);
1467
+ }
1468
+ else {
1469
+ timestamp = this.parse8601(datetime);
1470
+ }
1443
1471
  return this.safeTrade({
1444
1472
  'id': id,
1445
1473
  'order': orderId,
1446
1474
  'info': trade,
1447
1475
  'timestamp': timestamp,
1448
- 'datetime': this.iso8601(timestamp),
1476
+ 'datetime': datetime,
1449
1477
  'symbol': symbol,
1450
1478
  'type': type,
1451
1479
  'side': side,
@@ -840,6 +840,7 @@ class mexc extends mexc$1 {
840
840
  'PROS': 'PROSFINANCE',
841
841
  'SIN': 'SINCITYTOKEN',
842
842
  'SOUL': 'SOULSWAP',
843
+ 'XBT': 'XBT', // restore original mapping
843
844
  },
844
845
  'exceptions': {
845
846
  'exact': {
@@ -1702,7 +1702,7 @@ class modetrade extends modetrade$1 {
1702
1702
  //
1703
1703
  // {
1704
1704
  // "success": true,
1705
- // "timestamp": 1702989203989,
1705
+ // "timestamp": 1702989203988,
1706
1706
  // "data": {
1707
1707
  // "status": "CANCEL_SENT"
1708
1708
  // }
@@ -1710,7 +1710,7 @@ class modetrade extends modetrade$1 {
1710
1710
  //
1711
1711
  // {
1712
1712
  // "success": true,
1713
- // "timestamp": 1702989203989,
1713
+ // "timestamp": 1702989203988,
1714
1714
  // "status": "CANCEL_SENT"
1715
1715
  // }
1716
1716
  //
@@ -789,7 +789,7 @@ class paradex extends paradex$1 {
789
789
  // "ask": "69578.2",
790
790
  // "volume_24h": "5815541.397939004",
791
791
  // "total_volume": "584031465.525259686",
792
- // "created_at": 1718170156580,
792
+ // "created_at": 1718170156581,
793
793
  // "underlying_price": "67367.37268422",
794
794
  // "open_interest": "162.272",
795
795
  // "funding_rate": "0.01629574927887",
@@ -520,7 +520,7 @@ class bitstamp extends bitstamp$1 {
520
520
  //
521
521
  const sessionToken = this.safeString(response, 'token');
522
522
  if (sessionToken !== undefined) {
523
- const userId = this.safeNumber(response, 'user_id');
523
+ const userId = this.safeString(response, 'user_id');
524
524
  const validity = this.safeIntegerProduct(response, 'valid_sec', 1000);
525
525
  this.options['expiresIn'] = this.sum(time, validity);
526
526
  this.options['userId'] = userId;
@@ -1867,13 +1867,12 @@ class bybit extends bybit$1 {
1867
1867
  }
1868
1868
  const symbols = {};
1869
1869
  for (let i = 0; i < rawOrders.length; i++) {
1870
- let parsed = undefined;
1871
- if (isSpot) {
1872
- parsed = this.parseWsSpotOrder(rawOrders[i]);
1873
- }
1874
- else {
1875
- parsed = this.parseOrder(rawOrders[i]);
1876
- }
1870
+ const parsed = this.parseOrder(rawOrders[i]);
1871
+ // if (isSpot) {
1872
+ // parsed = this.parseWsSpotOrder (rawOrders[i]);
1873
+ // } else {
1874
+ // parsed = this.parseOrder (rawOrders[i]);
1875
+ // }
1877
1876
  const symbol = parsed['symbol'];
1878
1877
  symbols[symbol] = true;
1879
1878
  orders.append(parsed);
@@ -1886,142 +1885,6 @@ class bybit extends bybit$1 {
1886
1885
  const messageHash = 'orders';
1887
1886
  client.resolve(orders, messageHash);
1888
1887
  }
1889
- parseWsSpotOrder(order, market = undefined) {
1890
- //
1891
- // {
1892
- // "e": "executionReport",
1893
- // "E": "1653297251061", // timestamp
1894
- // "s": "LTCUSDT", // symbol
1895
- // "c": "1653297250740", // user id
1896
- // "S": "SELL", // side
1897
- // "o": "MARKET_OF_BASE", // order type
1898
- // "f": "GTC", // time in force
1899
- // "q": "0.16233", // quantity
1900
- // "p": "0", // price
1901
- // "X": "NEW", // status
1902
- // "i": "1162336018974750208", // order id
1903
- // "M": "0",
1904
- // "l": "0", // last filled
1905
- // "z": "0", // total filled
1906
- // "L": "0", // last traded price
1907
- // "n": "0", // trading fee
1908
- // "N": '', // fee asset
1909
- // "u": true,
1910
- // "w": true,
1911
- // "m": false, // is limit_maker
1912
- // "O": "1653297251042", // order creation
1913
- // "Z": "0", // total filled
1914
- // "A": "0", // account id
1915
- // "C": false, // is close
1916
- // "v": "0", // leverage
1917
- // "d": "NO_LIQ"
1918
- // }
1919
- // v5
1920
- // {
1921
- // "category":"spot",
1922
- // "symbol":"LTCUSDT",
1923
- // "orderId":"1474764674982492160",
1924
- // "orderLinkId":"1690541649154749",
1925
- // "blockTradeId":"",
1926
- // "side":"Buy",
1927
- // "positionIdx":0,
1928
- // "orderStatus":"Cancelled",
1929
- // "cancelType":"UNKNOWN",
1930
- // "rejectReason":"EC_NoError",
1931
- // "timeInForce":"GTC",
1932
- // "isLeverage":"0",
1933
- // "price":"0",
1934
- // "qty":"5.00000",
1935
- // "avgPrice":"0",
1936
- // "leavesQty":"0.00000",
1937
- // "leavesValue":"5.0000000",
1938
- // "cumExecQty":"0.00000",
1939
- // "cumExecValue":"0.0000000",
1940
- // "cumExecFee":"",
1941
- // "orderType":"Market",
1942
- // "stopOrderType":"",
1943
- // "orderIv":"",
1944
- // "triggerPrice":"0.000",
1945
- // "takeProfit":"",
1946
- // "stopLoss":"",
1947
- // "triggerBy":"",
1948
- // "tpTriggerBy":"",
1949
- // "slTriggerBy":"",
1950
- // "triggerDirection":0,
1951
- // "placeType":"",
1952
- // "lastPriceOnCreated":"0.000",
1953
- // "closeOnTrigger":false,
1954
- // "reduceOnly":false,
1955
- // "smpGroup":0,
1956
- // "smpType":"None",
1957
- // "smpOrderId":"",
1958
- // "createdTime":"1690541649160",
1959
- // "updatedTime":"1690541649168"
1960
- // }
1961
- //
1962
- const id = this.safeString2(order, 'i', 'orderId');
1963
- const marketId = this.safeString2(order, 's', 'symbol');
1964
- const symbol = this.safeSymbol(marketId, market, undefined, 'spot');
1965
- const timestamp = this.safeInteger2(order, 'O', 'createdTime');
1966
- let price = this.safeString2(order, 'p', 'price');
1967
- if (price === '0') {
1968
- price = undefined; // market orders
1969
- }
1970
- const filled = this.safeString2(order, 'z', 'cumExecQty');
1971
- const status = this.parseOrderStatus(this.safeString2(order, 'X', 'orderStatus'));
1972
- const side = this.safeStringLower2(order, 'S', 'side');
1973
- const lastTradeTimestamp = this.safeString2(order, 'E', 'updatedTime');
1974
- const timeInForce = this.safeString2(order, 'f', 'timeInForce');
1975
- let amount = undefined;
1976
- const cost = this.safeString2(order, 'Z', 'cumExecValue');
1977
- let type = this.safeStringLower2(order, 'o', 'orderType');
1978
- if ((type !== undefined) && (type.indexOf('market') >= 0)) {
1979
- type = 'market';
1980
- }
1981
- if (type === 'market' && side === 'buy') {
1982
- amount = filled;
1983
- }
1984
- else {
1985
- amount = this.safeString2(order, 'orderQty', 'qty');
1986
- }
1987
- let fee = undefined;
1988
- const feeCost = this.safeString2(order, 'n', 'cumExecFee');
1989
- if (feeCost !== undefined && feeCost !== '0') {
1990
- const feeCurrencyId = this.safeString(order, 'N');
1991
- const feeCurrencyCode = this.safeCurrencyCode(feeCurrencyId);
1992
- fee = {
1993
- 'cost': feeCost,
1994
- 'currency': feeCurrencyCode,
1995
- };
1996
- }
1997
- const triggerPrice = this.omitZero(this.safeString(order, 'triggerPrice'));
1998
- return this.safeOrder({
1999
- 'info': order,
2000
- 'id': id,
2001
- 'clientOrderId': this.safeString2(order, 'c', 'orderLinkId'),
2002
- 'timestamp': timestamp,
2003
- 'datetime': this.iso8601(timestamp),
2004
- 'lastTradeTimestamp': lastTradeTimestamp,
2005
- 'symbol': symbol,
2006
- 'type': type,
2007
- 'timeInForce': timeInForce,
2008
- 'postOnly': undefined,
2009
- 'side': side,
2010
- 'price': price,
2011
- 'stopPrice': triggerPrice,
2012
- 'triggerPrice': triggerPrice,
2013
- 'takeProfitPrice': this.safeString(order, 'takeProfit'),
2014
- 'stopLossPrice': this.safeString(order, 'stopLoss'),
2015
- 'reduceOnly': this.safeValue(order, 'reduceOnly'),
2016
- 'amount': amount,
2017
- 'cost': cost,
2018
- 'average': this.safeString(order, 'avgPrice'),
2019
- 'filled': filled,
2020
- 'remaining': undefined,
2021
- 'status': status,
2022
- 'fee': fee,
2023
- }, market);
2024
- }
2025
1888
  /**
2026
1889
  * @method
2027
1890
  * @name bybit#watchBalance