ccxt 4.5.39 → 4.5.41

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 (138) hide show
  1. package/README.md +6 -5
  2. package/dist/ccxt.browser.min.js +18 -18
  3. package/dist/cjs/ccxt.js +6 -1
  4. package/dist/cjs/src/abstract/lighter.js +11 -0
  5. package/dist/cjs/src/ascendex.js +73 -1
  6. package/dist/cjs/src/base/Exchange.js +211 -22
  7. package/dist/cjs/src/base/functions/generic.js +1 -0
  8. package/dist/cjs/src/base/functions/io.js +160 -0
  9. package/dist/cjs/src/base/functions.js +6 -0
  10. package/dist/cjs/src/base/ws/Client.js +1 -0
  11. package/dist/cjs/src/base/ws/WsClient.js +1 -0
  12. package/dist/cjs/src/binance.js +143 -0
  13. package/dist/cjs/src/bingx.js +150 -123
  14. package/dist/cjs/src/bitmart.js +20 -6
  15. package/dist/cjs/src/bitmex.js +436 -0
  16. package/dist/cjs/src/blofin.js +86 -1
  17. package/dist/cjs/src/bybit.js +135 -0
  18. package/dist/cjs/src/coinspot.js +7 -2
  19. package/dist/cjs/src/delta.js +367 -0
  20. package/dist/cjs/src/gate.js +11 -4
  21. package/dist/cjs/src/gemini.js +76 -1
  22. package/dist/cjs/src/htx.js +266 -3
  23. package/dist/cjs/src/hyperliquid.js +20 -7
  24. package/dist/cjs/src/independentreserve.js +7 -7
  25. package/dist/cjs/src/kraken.js +1 -1
  26. package/dist/cjs/src/krakenfutures.js +96 -5
  27. package/dist/cjs/src/kucoin.js +3 -3
  28. package/dist/cjs/src/kucoinfutures.js +121 -0
  29. package/dist/cjs/src/lighter.js +2931 -0
  30. package/dist/cjs/src/mexc.js +9 -2
  31. package/dist/cjs/src/phemex.js +359 -0
  32. package/dist/cjs/src/poloniex.js +5 -0
  33. package/dist/cjs/src/pro/binance.js +2 -2
  34. package/dist/cjs/src/pro/bingx.js +248 -35
  35. package/dist/cjs/src/pro/bitget.js +49 -90
  36. package/dist/cjs/src/pro/bitmart.js +68 -0
  37. package/dist/cjs/src/pro/blofin.js +52 -1
  38. package/dist/cjs/src/pro/coinbaseinternational.js +5 -2
  39. package/dist/cjs/src/pro/defx.js +1 -1
  40. package/dist/cjs/src/pro/kucoinfutures.js +1 -1
  41. package/dist/cjs/src/pro/lighter.js +787 -0
  42. package/dist/cjs/src/pro/mexc.js +73 -1
  43. package/dist/cjs/src/pro/okx.js +7 -4
  44. package/dist/cjs/src/pro/paradex.js +138 -1
  45. package/dist/cjs/src/pro/woo.js +43 -0
  46. package/dist/cjs/src/static_dependencies/ethers/abi-coder.js +1 -0
  47. package/dist/cjs/src/static_dependencies/ethers/address/address.js +1 -0
  48. package/dist/cjs/src/static_dependencies/ethers/coders/abstract-coder.js +1 -0
  49. package/dist/cjs/src/static_dependencies/ethers/coders/address.js +1 -0
  50. package/dist/cjs/src/static_dependencies/ethers/coders/array.js +1 -0
  51. package/dist/cjs/src/static_dependencies/ethers/coders/bytes.js +1 -0
  52. package/dist/cjs/src/static_dependencies/ethers/coders/fixed-bytes.js +1 -0
  53. package/dist/cjs/src/static_dependencies/ethers/coders/number.js +1 -0
  54. package/dist/cjs/src/static_dependencies/ethers/fragments.js +1 -0
  55. package/dist/cjs/src/static_dependencies/ethers/index.js +1 -0
  56. package/dist/cjs/src/static_dependencies/ethers/interface.js +1 -0
  57. package/dist/cjs/src/static_dependencies/ethers/typed.js +1 -0
  58. package/dist/cjs/src/static_dependencies/ethers/utils/index.js +1 -0
  59. package/dist/cjs/src/whitebit.js +118 -16
  60. package/dist/cjs/src/woo.js +103 -3
  61. package/js/ccxt.d.ts +9 -3
  62. package/js/ccxt.js +6 -2
  63. package/js/src/abstract/gemini.d.ts +27 -0
  64. package/js/src/abstract/lighter.d.ts +53 -0
  65. package/js/src/abstract/lighter.js +5 -0
  66. package/js/src/ascendex.d.ts +12 -1
  67. package/js/src/ascendex.js +73 -1
  68. package/js/src/base/Exchange.d.ts +29 -14
  69. package/js/src/base/Exchange.js +216 -23
  70. package/js/src/base/functions/generic.js +1 -0
  71. package/js/src/base/functions/io.d.ts +32 -0
  72. package/js/src/base/functions/io.js +131 -0
  73. package/js/src/base/functions.d.ts +1 -0
  74. package/js/src/base/functions.js +1 -0
  75. package/js/src/base/types.d.ts +9 -0
  76. package/js/src/binance.d.ts +27 -1
  77. package/js/src/binance.js +143 -0
  78. package/js/src/bingx.d.ts +113 -108
  79. package/js/src/bingx.js +150 -123
  80. package/js/src/bitmart.js +20 -6
  81. package/js/src/bitmex.d.ts +50 -1
  82. package/js/src/bitmex.js +436 -0
  83. package/js/src/blofin.d.ts +12 -1
  84. package/js/src/blofin.js +86 -1
  85. package/js/src/bybit.d.ts +12 -1
  86. package/js/src/bybit.js +135 -0
  87. package/js/src/coinspot.js +7 -2
  88. package/js/src/delta.d.ts +12 -1
  89. package/js/src/delta.js +367 -0
  90. package/js/src/gate.d.ts +1 -0
  91. package/js/src/gate.js +11 -4
  92. package/js/src/gemini.d.ts +11 -0
  93. package/js/src/gemini.js +76 -1
  94. package/js/src/htx.d.ts +15 -1
  95. package/js/src/htx.js +266 -3
  96. package/js/src/hyperliquid.js +20 -7
  97. package/js/src/independentreserve.js +7 -7
  98. package/js/src/kraken.js +1 -1
  99. package/js/src/krakenfutures.d.ts +1 -1
  100. package/js/src/krakenfutures.js +96 -5
  101. package/js/src/kucoin.d.ts +3 -3
  102. package/js/src/kucoin.js +3 -3
  103. package/js/src/kucoinfutures.d.ts +12 -1
  104. package/js/src/kucoinfutures.js +121 -0
  105. package/js/src/lighter.d.ts +424 -0
  106. package/js/src/lighter.js +2924 -0
  107. package/js/src/mexc.js +9 -2
  108. package/js/src/phemex.d.ts +16 -1
  109. package/js/src/phemex.js +359 -0
  110. package/js/src/poloniex.js +5 -0
  111. package/js/src/pro/binance.js +2 -2
  112. package/js/src/pro/bingx.d.ts +50 -34
  113. package/js/src/pro/bingx.js +249 -36
  114. package/js/src/pro/bitget.d.ts +6 -6
  115. package/js/src/pro/bitget.js +49 -90
  116. package/js/src/pro/bitmart.d.ts +22 -1
  117. package/js/src/pro/bitmart.js +69 -1
  118. package/js/src/pro/blofin.d.ts +12 -1
  119. package/js/src/pro/blofin.js +52 -1
  120. package/js/src/pro/coinbaseinternational.d.ts +2 -2
  121. package/js/src/pro/coinbaseinternational.js +6 -3
  122. package/js/src/pro/defx.js +1 -1
  123. package/js/src/pro/kucoinfutures.js +1 -1
  124. package/js/src/pro/lighter.d.ts +161 -0
  125. package/js/src/pro/lighter.js +780 -0
  126. package/js/src/pro/mexc.d.ts +22 -1
  127. package/js/src/pro/mexc.js +73 -1
  128. package/js/src/pro/okx.d.ts +4 -4
  129. package/js/src/pro/okx.js +7 -4
  130. package/js/src/pro/paradex.d.ts +23 -1
  131. package/js/src/pro/paradex.js +138 -1
  132. package/js/src/pro/woo.d.ts +12 -1
  133. package/js/src/pro/woo.js +43 -0
  134. package/js/src/whitebit.d.ts +2 -1
  135. package/js/src/whitebit.js +118 -16
  136. package/js/src/woo.d.ts +12 -1
  137. package/js/src/woo.js +103 -3
  138. package/package.json +1 -1
package/js/src/woo.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/woo.js';
2
- import type { TransferEntry, Balances, Conversion, Currency, FundingRateHistory, Int, Market, MarginModification, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Dict, Strings, Trade, Transaction, Leverage, Account, Currencies, TradingFees, int, FundingHistory, LedgerEntry, FundingRate, FundingRates, DepositAddress, Position, TradingFeeInterface } from './base/types.js';
2
+ import type { TransferEntry, Balances, Conversion, Currency, FundingRateHistory, Int, Market, MarginModification, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Dict, Strings, Trade, Transaction, Leverage, Account, Currencies, TradingFees, int, FundingHistory, LedgerEntry, FundingRate, FundingRates, DepositAddress, Position, TradingFeeInterface, ADL } from './base/types.js';
3
3
  /**
4
4
  * @class woo
5
5
  * @augments Exchange
@@ -722,6 +722,17 @@ export default class woo extends Exchange {
722
722
  * @returns {object} an associative dictionary of currencies
723
723
  */
724
724
  fetchConvertCurrencies(params?: {}): Promise<Currencies>;
725
+ /**
726
+ * @method
727
+ * @name woo#fetchPositionsADLRank
728
+ * @description fetches the auto deleveraging rank and risk percentage for a list of symbols
729
+ * @see https://docs.woox.io/#get-all-position-info-new
730
+ * @param {string[]} [symbols] a list of unified market symbols
731
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
732
+ * @returns {object[]} an array of [auto de leverage structures]{@link https://docs.ccxt.com/?id=auto-de-leverage-structure}
733
+ */
734
+ fetchPositionsADLRank(symbols?: Strings, params?: {}): Promise<ADL[]>;
735
+ parseADLRank(info: Dict, market?: Market): ADL;
725
736
  defaultNetworkCodeForCurrency(code: any): any;
726
737
  setSandboxMode(enable: boolean): void;
727
738
  }
package/js/src/woo.js CHANGED
@@ -89,9 +89,11 @@ export default class woo extends Exchange {
89
89
  'fetchOrders': true,
90
90
  'fetchOrderTrades': true,
91
91
  'fetchPosition': true,
92
+ 'fetchPositionADLRank': true,
92
93
  'fetchPositionHistory': false,
93
94
  'fetchPositionMode': false,
94
95
  'fetchPositions': true,
96
+ 'fetchPositionsADLRank': true,
95
97
  'fetchPositionsHistory': false,
96
98
  'fetchPremiumIndexOHLCV': false,
97
99
  'fetchStatus': true,
@@ -3282,12 +3284,24 @@ export default class woo extends Exchange {
3282
3284
  // "estFundingIntervalHours": 8
3283
3285
  // }
3284
3286
  //
3287
+ // watchFundingRate
3288
+ //
3289
+ // {
3290
+ // "symbol": "PERP_BTC_USDT",
3291
+ // "fundingRate": 0.0001,
3292
+ // "fundingTs": 1771488000000
3293
+ // }
3294
+ //
3285
3295
  const symbol = this.safeString(fundingRate, 'symbol');
3286
3296
  market = this.market(symbol);
3287
- const nextFundingTimestamp = this.safeInteger(fundingRate, 'nextFundingTime');
3297
+ const nextFundingTimestamp = this.safeInteger2(fundingRate, 'nextFundingTime', 'fundingTs');
3288
3298
  const estFundingRateTimestamp = this.safeInteger(fundingRate, 'estFundingRateTimestamp');
3289
3299
  const lastFundingRateTimestamp = this.safeInteger(fundingRate, 'lastFundingRateTimestamp');
3290
3300
  const intervalString = this.safeString(fundingRate, 'estFundingIntervalHours');
3301
+ let interval = undefined;
3302
+ if (intervalString !== undefined) {
3303
+ interval = intervalString + 'h';
3304
+ }
3291
3305
  return {
3292
3306
  'info': fundingRate,
3293
3307
  'symbol': market['symbol'],
@@ -3297,7 +3311,7 @@ export default class woo extends Exchange {
3297
3311
  'estimatedSettlePrice': undefined,
3298
3312
  'timestamp': estFundingRateTimestamp,
3299
3313
  'datetime': this.iso8601(estFundingRateTimestamp),
3300
- 'fundingRate': this.safeNumber(fundingRate, 'estFundingRate'),
3314
+ 'fundingRate': this.safeNumber2(fundingRate, 'estFundingRate', 'fundingRate'),
3301
3315
  'fundingTimestamp': nextFundingTimestamp,
3302
3316
  'fundingDatetime': this.iso8601(nextFundingTimestamp),
3303
3317
  'nextFundingRate': undefined,
@@ -3306,7 +3320,7 @@ export default class woo extends Exchange {
3306
3320
  'previousFundingRate': this.safeNumber(fundingRate, 'lastFundingRate'),
3307
3321
  'previousFundingTimestamp': lastFundingRateTimestamp,
3308
3322
  'previousFundingDatetime': this.iso8601(lastFundingRateTimestamp),
3309
- 'interval': intervalString + 'h',
3323
+ 'interval': interval,
3310
3324
  };
3311
3325
  }
3312
3326
  /**
@@ -4198,6 +4212,92 @@ export default class woo extends Exchange {
4198
4212
  }
4199
4213
  return result;
4200
4214
  }
4215
+ /**
4216
+ * @method
4217
+ * @name woo#fetchPositionsADLRank
4218
+ * @description fetches the auto deleveraging rank and risk percentage for a list of symbols
4219
+ * @see https://docs.woox.io/#get-all-position-info-new
4220
+ * @param {string[]} [symbols] a list of unified market symbols
4221
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
4222
+ * @returns {object[]} an array of [auto de leverage structures]{@link https://docs.ccxt.com/?id=auto-de-leverage-structure}
4223
+ */
4224
+ async fetchPositionsADLRank(symbols = undefined, params = {}) {
4225
+ await this.loadMarkets();
4226
+ symbols = this.marketSymbols(symbols, undefined, true, true, true);
4227
+ const response = await this.v3PrivateGetFuturesPositions(params);
4228
+ //
4229
+ // {
4230
+ // "success": true,
4231
+ // "data": {
4232
+ // "positions": [
4233
+ // {
4234
+ // "symbol": "PERP_BTC_USDT",
4235
+ // "holding": "0.001",
4236
+ // "pendingLongQty": "0",
4237
+ // "pendingShortQty": "0",
4238
+ // "settlePrice": "90732",
4239
+ // "averageOpenPrice": "90732",
4240
+ // "pnl24H": "-0.001",
4241
+ // "fee24H": "0.1360115",
4242
+ // "markPrice": "90736",
4243
+ // "estLiqPrice": "0",
4244
+ // "timestamp": 1768049379264,
4245
+ // "adlQuantile": 3,
4246
+ // "positionSide": "BOTH",
4247
+ // "marginMode": "CROSS",
4248
+ // "isolatedMarginToken": "",
4249
+ // "isolatedMarginAmount": "0",
4250
+ // "isolatedFrozenLong": "0",
4251
+ // "isolatedFrozenShort": "0",
4252
+ // "leverage": 10
4253
+ // },
4254
+ // ]
4255
+ // },
4256
+ // "timestamp": 1768049428472
4257
+ // }
4258
+ //
4259
+ const result = this.safeDict(response, 'data', {});
4260
+ const positions = this.safeList(result, 'positions', []);
4261
+ return this.parseADLRanks(positions, symbols);
4262
+ }
4263
+ parseADLRank(info, market = undefined) {
4264
+ //
4265
+ // fetchPositionsADLRank
4266
+ //
4267
+ // {
4268
+ // "symbol": "PERP_BTC_USDT",
4269
+ // "holding": "0.001",
4270
+ // "pendingLongQty": "0",
4271
+ // "pendingShortQty": "0",
4272
+ // "settlePrice": "90732",
4273
+ // "averageOpenPrice": "90732",
4274
+ // "pnl24H": "-0.001",
4275
+ // "fee24H": "0.1360115",
4276
+ // "markPrice": "90736",
4277
+ // "estLiqPrice": "0",
4278
+ // "timestamp": 1768049379264,
4279
+ // "adlQuantile": 3,
4280
+ // "positionSide": "BOTH",
4281
+ // "marginMode": "CROSS",
4282
+ // "isolatedMarginToken": "",
4283
+ // "isolatedMarginAmount": "0",
4284
+ // "isolatedFrozenLong": "0",
4285
+ // "isolatedFrozenShort": "0",
4286
+ // "leverage": 10
4287
+ // }
4288
+ //
4289
+ const marketId = this.safeString(info, 'symbol');
4290
+ const timestamp = this.safeInteger(info, 'timestamp');
4291
+ return {
4292
+ 'info': info,
4293
+ 'symbol': this.safeSymbol(marketId, market, undefined, 'contract'),
4294
+ 'rank': this.safeNumber(info, 'adlQuantile'),
4295
+ 'rating': undefined,
4296
+ 'percentage': undefined,
4297
+ 'timestamp': timestamp,
4298
+ 'datetime': this.iso8601(timestamp),
4299
+ };
4300
+ }
4201
4301
  defaultNetworkCodeForCurrency(code) {
4202
4302
  const currencyItem = this.currency(code);
4203
4303
  const networks = currencyItem['networks'];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccxt",
3
- "version": "4.5.39",
3
+ "version": "4.5.41",
4
4
  "description": "A cryptocurrency trading API with more than 100 exchanges in JavaScript / TypeScript / Python / C# / PHP / Go",
5
5
  "unpkg": "dist/ccxt.browser.min.js",
6
6
  "type": "module",