ccxt 4.2.88 → 4.2.90

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 (164) hide show
  1. package/README.md +3 -3
  2. package/build.sh +2 -2
  3. package/dist/ccxt.browser.js +1062 -241
  4. package/dist/ccxt.browser.min.js +6 -4
  5. package/dist/cjs/ccxt.js +1 -1
  6. package/dist/cjs/src/ascendex.js +3 -0
  7. package/dist/cjs/src/base/Exchange.js +53 -7
  8. package/dist/cjs/src/base/functions/crypto.js +37 -0
  9. package/dist/cjs/src/base/functions/rsa.js +19 -4
  10. package/dist/cjs/src/binance.js +92 -9
  11. package/dist/cjs/src/bingx.js +101 -1
  12. package/dist/cjs/src/bitfinex2.js +1 -0
  13. package/dist/cjs/src/bitflyer.js +2 -0
  14. package/dist/cjs/src/bitget.js +9 -1
  15. package/dist/cjs/src/bitmart.js +2 -0
  16. package/dist/cjs/src/bitmex.js +1 -0
  17. package/dist/cjs/src/bitrue.js +1 -0
  18. package/dist/cjs/src/bitstamp.js +83 -99
  19. package/dist/cjs/src/blofin.js +2 -0
  20. package/dist/cjs/src/bybit.js +63 -0
  21. package/dist/cjs/src/coinbase.js +48 -24
  22. package/dist/cjs/src/coinbaseinternational.js +1 -0
  23. package/dist/cjs/src/coinex.js +102 -8
  24. package/dist/cjs/src/coinsph.js +2 -0
  25. package/dist/cjs/src/cryptocom.js +1 -0
  26. package/dist/cjs/src/delta.js +1 -0
  27. package/dist/cjs/src/digifinex.js +3 -0
  28. package/dist/cjs/src/exmo.js +1 -0
  29. package/dist/cjs/src/gate.js +4 -0
  30. package/dist/cjs/src/gemini.js +10 -9
  31. package/dist/cjs/src/hitbtc.js +3 -0
  32. package/dist/cjs/src/htx.js +3 -0
  33. package/dist/cjs/src/hyperliquid.js +1 -0
  34. package/dist/cjs/src/kucoin.js +40 -15
  35. package/dist/cjs/src/kucoinfutures.js +34 -3
  36. package/dist/cjs/src/latoken.js +4 -0
  37. package/dist/cjs/src/lbank.js +3 -1
  38. package/dist/cjs/src/luno.js +2 -0
  39. package/dist/cjs/src/mexc.js +55 -6
  40. package/dist/cjs/src/okx.js +159 -8
  41. package/dist/cjs/src/phemex.js +1 -0
  42. package/dist/cjs/src/pro/bitget.js +2 -0
  43. package/dist/cjs/src/static_dependencies/noble-curves/p256.js +48 -0
  44. package/dist/cjs/src/timex.js +2 -0
  45. package/dist/cjs/src/woo.js +1 -0
  46. package/js/ccxt.d.ts +1 -1
  47. package/js/ccxt.js +1 -1
  48. package/js/src/abstract/bingx.d.ts +2 -0
  49. package/js/src/abstract/bybit.d.ts +2 -0
  50. package/js/src/ascendex.d.ts +3 -3
  51. package/js/src/ascendex.js +3 -0
  52. package/js/src/base/Exchange.d.ts +13 -8
  53. package/js/src/base/Exchange.js +53 -7
  54. package/js/src/base/functions/crypto.js +37 -0
  55. package/js/src/base/functions/rsa.d.ts +1 -1
  56. package/js/src/base/functions/rsa.js +21 -5
  57. package/js/src/base/types.d.ts +35 -1
  58. package/js/src/bigone.d.ts +2 -2
  59. package/js/src/binance.d.ts +6 -15
  60. package/js/src/binance.js +92 -9
  61. package/js/src/bingx.d.ts +3 -2
  62. package/js/src/bingx.js +101 -1
  63. package/js/src/bit2c.d.ts +2 -2
  64. package/js/src/bitbank.d.ts +2 -2
  65. package/js/src/bitfinex.d.ts +2 -2
  66. package/js/src/bitfinex2.d.ts +3 -3
  67. package/js/src/bitfinex2.js +1 -0
  68. package/js/src/bitflyer.d.ts +2 -7
  69. package/js/src/bitflyer.js +2 -0
  70. package/js/src/bitget.d.ts +6 -9
  71. package/js/src/bitget.js +9 -1
  72. package/js/src/bitmart.d.ts +4 -14
  73. package/js/src/bitmart.js +2 -0
  74. package/js/src/bitmex.d.ts +2 -2
  75. package/js/src/bitmex.js +1 -0
  76. package/js/src/bitopro.d.ts +3 -3
  77. package/js/src/bitrue.d.ts +2 -2
  78. package/js/src/bitrue.js +1 -0
  79. package/js/src/bitso.d.ts +2 -2
  80. package/js/src/bitstamp.d.ts +7 -19
  81. package/js/src/bitstamp.js +83 -99
  82. package/js/src/bitteam.d.ts +2 -2
  83. package/js/src/bitvavo.d.ts +3 -3
  84. package/js/src/bl3p.d.ts +2 -2
  85. package/js/src/blockchaincom.d.ts +2 -2
  86. package/js/src/blofin.d.ts +2 -7
  87. package/js/src/blofin.js +2 -0
  88. package/js/src/bybit.d.ts +7 -15
  89. package/js/src/bybit.js +63 -0
  90. package/js/src/cex.d.ts +3 -3
  91. package/js/src/coinbase.d.ts +2 -2
  92. package/js/src/coinbase.js +48 -24
  93. package/js/src/coinbaseinternational.d.ts +2 -2
  94. package/js/src/coinbaseinternational.js +1 -0
  95. package/js/src/coinbasepro.d.ts +3 -3
  96. package/js/src/coincheck.d.ts +2 -2
  97. package/js/src/coinex.d.ts +7 -19
  98. package/js/src/coinex.js +102 -8
  99. package/js/src/coinlist.d.ts +3 -3
  100. package/js/src/coinmate.d.ts +2 -9
  101. package/js/src/coinmetro.d.ts +2 -2
  102. package/js/src/coinone.d.ts +2 -2
  103. package/js/src/coinsph.d.ts +4 -14
  104. package/js/src/coinsph.js +2 -0
  105. package/js/src/cryptocom.js +1 -0
  106. package/js/src/currencycom.d.ts +3 -3
  107. package/js/src/delta.d.ts +2 -2
  108. package/js/src/delta.js +1 -0
  109. package/js/src/deribit.d.ts +3 -3
  110. package/js/src/digifinex.d.ts +4 -14
  111. package/js/src/digifinex.js +3 -0
  112. package/js/src/exmo.d.ts +3 -3
  113. package/js/src/exmo.js +1 -0
  114. package/js/src/gate.d.ts +6 -9
  115. package/js/src/gate.js +4 -0
  116. package/js/src/gemini.d.ts +3 -3
  117. package/js/src/gemini.js +10 -9
  118. package/js/src/hitbtc.d.ts +5 -15
  119. package/js/src/hitbtc.js +3 -0
  120. package/js/src/hollaex.d.ts +3 -3
  121. package/js/src/htx.d.ts +4 -14
  122. package/js/src/htx.js +3 -0
  123. package/js/src/huobijp.d.ts +2 -2
  124. package/js/src/hyperliquid.d.ts +2 -2
  125. package/js/src/hyperliquid.js +1 -0
  126. package/js/src/idex.d.ts +3 -3
  127. package/js/src/independentreserve.d.ts +2 -2
  128. package/js/src/kraken.d.ts +3 -10
  129. package/js/src/kucoin.d.ts +3 -10
  130. package/js/src/kucoin.js +40 -15
  131. package/js/src/kucoinfutures.d.ts +2 -9
  132. package/js/src/kucoinfutures.js +34 -3
  133. package/js/src/kuna.d.ts +2 -2
  134. package/js/src/latoken.d.ts +7 -8
  135. package/js/src/latoken.js +4 -0
  136. package/js/src/lbank.d.ts +4 -9
  137. package/js/src/lbank.js +3 -1
  138. package/js/src/luno.d.ts +2 -7
  139. package/js/src/luno.js +2 -0
  140. package/js/src/lykke.d.ts +2 -2
  141. package/js/src/mexc.d.ts +3 -3
  142. package/js/src/mexc.js +55 -6
  143. package/js/src/ndax.d.ts +2 -2
  144. package/js/src/oceanex.d.ts +2 -2
  145. package/js/src/okcoin.d.ts +2 -2
  146. package/js/src/okx.d.ts +5 -14
  147. package/js/src/okx.js +159 -8
  148. package/js/src/onetrading.d.ts +3 -3
  149. package/js/src/phemex.d.ts +2 -2
  150. package/js/src/phemex.js +1 -0
  151. package/js/src/poloniex.d.ts +3 -3
  152. package/js/src/pro/bitget.js +2 -0
  153. package/js/src/pro/bitvavo.d.ts +2 -2
  154. package/js/src/probit.d.ts +2 -2
  155. package/js/src/timex.d.ts +4 -14
  156. package/js/src/timex.js +2 -0
  157. package/js/src/upbit.d.ts +2 -9
  158. package/js/src/wazirx.d.ts +2 -2
  159. package/js/src/whitebit.d.ts +3 -3
  160. package/js/src/woo.d.ts +3 -3
  161. package/js/src/woo.js +1 -0
  162. package/js/src/yobit.d.ts +2 -2
  163. package/package.json +1 -1
  164. package/skip-tests.json +6 -1
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/kraken.js';
2
- import type { IndexType, Int, OrderSide, OrderType, OHLCV, Trade, Order, Balances, Str, Transaction, Ticker, OrderBook, Tickers, Strings, Currency, Market, TransferEntry, Num } from './base/types.js';
2
+ import type { IndexType, Int, OrderSide, OrderType, OHLCV, Trade, Order, Balances, Str, Transaction, Ticker, OrderBook, Tickers, Strings, Currency, Market, TransferEntry, Num, TradingFeeInterface, Currencies } from './base/types.js';
3
3
  /**
4
4
  * @class kraken
5
5
  * @augments Exchange
@@ -11,15 +11,8 @@ export default class kraken extends Exchange {
11
11
  fetchMarkets(params?: {}): Promise<Market[]>;
12
12
  safeCurrency(currencyId: any, currency?: Currency): import("./base/types.js").CurrencyInterface;
13
13
  appendInactiveMarkets(result: any): any;
14
- fetchCurrencies(params?: {}): Promise<{}>;
15
- fetchTradingFee(symbol: string, params?: {}): Promise<{
16
- info: any;
17
- symbol: any;
18
- maker: number;
19
- taker: number;
20
- percentage: boolean;
21
- tierBased: boolean;
22
- }>;
14
+ fetchCurrencies(params?: {}): Promise<Currencies>;
15
+ fetchTradingFee(symbol: string, params?: {}): Promise<TradingFeeInterface>;
23
16
  parseTradingFee(response: any, market: any): {
24
17
  info: any;
25
18
  symbol: any;
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/kucoin.js';
2
- import type { TransferEntry, Int, OrderSide, OrderType, Order, OHLCV, Trade, Balances, OrderRequest, Str, Transaction, Ticker, OrderBook, Tickers, Strings, Currency, Market, Num, Account } from './base/types.js';
2
+ import type { TransferEntry, Int, OrderSide, OrderType, Order, OHLCV, Trade, Balances, OrderRequest, Str, Transaction, Ticker, OrderBook, Tickers, Strings, Currency, Market, Num, Account, TradingFeeInterface, Currencies } from './base/types.js';
3
3
  /**
4
4
  * @class kucoin
5
5
  * @augments Exchange
@@ -16,7 +16,7 @@ export default class kucoin extends Exchange {
16
16
  info: any;
17
17
  }>;
18
18
  fetchMarkets(params?: {}): Promise<Market[]>;
19
- fetchCurrencies(params?: {}): Promise<{}>;
19
+ fetchCurrencies(params?: {}): Promise<Currencies>;
20
20
  fetchAccounts(params?: {}): Promise<Account[]>;
21
21
  fetchTransactionFee(code: string, params?: {}): Promise<{
22
22
  info: any;
@@ -85,14 +85,7 @@ export default class kucoin extends Exchange {
85
85
  fetchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
86
86
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
87
87
  parseTrade(trade: any, market?: Market): Trade;
88
- fetchTradingFee(symbol: string, params?: {}): Promise<{
89
- info: any;
90
- symbol: string;
91
- maker: number;
92
- taker: number;
93
- percentage: boolean;
94
- tierBased: boolean;
95
- }>;
88
+ fetchTradingFee(symbol: string, params?: {}): Promise<TradingFeeInterface>;
96
89
  withdraw(code: string, amount: number, address: any, tag?: any, params?: {}): Promise<Transaction>;
97
90
  parseTransactionStatus(status: any): string;
98
91
  parseTransaction(transaction: any, currency?: Currency): Transaction;
package/js/src/kucoin.js CHANGED
@@ -76,6 +76,7 @@ export default class kucoin extends Exchange {
76
76
  'fetchL3OrderBook': true,
77
77
  'fetchLedger': true,
78
78
  'fetchLeverageTiers': false,
79
+ 'fetchMarginAdjustmentHistory': false,
79
80
  'fetchMarginMode': false,
80
81
  'fetchMarketLeverageTiers': false,
81
82
  'fetchMarkets': true,
@@ -3527,9 +3528,9 @@ export default class kucoin extends Exchange {
3527
3528
  }
3528
3529
  parseBalanceHelper(entry) {
3529
3530
  const account = this.account();
3530
- account['used'] = this.safeString(entry, 'holdBalance');
3531
- account['free'] = this.safeString(entry, 'availableBalance');
3532
- account['total'] = this.safeString(entry, 'totalBalance');
3531
+ account['used'] = this.safeString2(entry, 'holdBalance', 'hold');
3532
+ account['free'] = this.safeString2(entry, 'availableBalance', 'available');
3533
+ account['total'] = this.safeString2(entry, 'totalBalance', 'total');
3533
3534
  const debt = this.safeString(entry, 'liability');
3534
3535
  const interest = this.safeString(entry, 'interest');
3535
3536
  account['debt'] = Precise.stringAdd(debt, interest);
@@ -3587,7 +3588,7 @@ export default class kucoin extends Exchange {
3587
3588
  response = await this.privateGetAccounts(this.extend(request, query));
3588
3589
  }
3589
3590
  //
3590
- // Spot and Cross
3591
+ // Spot
3591
3592
  //
3592
3593
  // {
3593
3594
  // "code": "200000",
@@ -3603,35 +3604,59 @@ export default class kucoin extends Exchange {
3603
3604
  // ]
3604
3605
  // }
3605
3606
  //
3607
+ // Cross
3608
+ //
3609
+ // {
3610
+ // "code": "200000",
3611
+ // "data": {
3612
+ // "debtRatio": "0",
3613
+ // "accounts": [
3614
+ // {
3615
+ // "currency": "USDT",
3616
+ // "totalBalance": "5",
3617
+ // "availableBalance": "5",
3618
+ // "holdBalance": "0",
3619
+ // "liability": "0",
3620
+ // "maxBorrowSize": "20"
3621
+ // },
3622
+ // ]
3623
+ // }
3624
+ // }
3625
+ //
3606
3626
  // Isolated
3607
3627
  //
3608
3628
  // {
3609
3629
  // "code": "200000",
3610
3630
  // "data": {
3611
- // "totalConversionBalance": "0",
3612
- // "liabilityConversionBalance": "0",
3631
+ // "totalAssetOfQuoteCurrency": "0",
3632
+ // "totalLiabilityOfQuoteCurrency": "0",
3633
+ // "timestamp": 1712085661155,
3613
3634
  // "assets": [
3614
3635
  // {
3615
3636
  // "symbol": "MANA-USDT",
3616
- // "status": "CLEAR",
3637
+ // "status": "EFFECTIVE",
3617
3638
  // "debtRatio": "0",
3618
3639
  // "baseAsset": {
3619
3640
  // "currency": "MANA",
3620
- // "totalBalance": "0",
3621
- // "holdBalance": "0",
3622
- // "availableBalance": "0",
3641
+ // "borrowEnabled": true,
3642
+ // "transferInEnabled": true,
3643
+ // "total": "0",
3644
+ // "hold": "0",
3645
+ // "available": "0",
3623
3646
  // "liability": "0",
3624
3647
  // "interest": "0",
3625
- // "borrowableAmount": "0"
3648
+ // "maxBorrowSize": "0"
3626
3649
  // },
3627
3650
  // "quoteAsset": {
3628
3651
  // "currency": "USDT",
3629
- // "totalBalance": "0",
3630
- // "holdBalance": "0",
3631
- // "availableBalance": "0",
3652
+ // "borrowEnabled": true,
3653
+ // "transferInEnabled": true,
3654
+ // "total": "0",
3655
+ // "hold": "0",
3656
+ // "available": "0",
3632
3657
  // "liability": "0",
3633
3658
  // "interest": "0",
3634
- // "borrowableAmount": "0"
3659
+ // "maxBorrowSize": "0"
3635
3660
  // }
3636
3661
  // },
3637
3662
  // ...
@@ -38,17 +38,10 @@ export default class kucoinfutures extends kucoin {
38
38
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
39
39
  cancelAllOrders(symbol?: Str, params?: {}): Promise<any>;
40
40
  addMargin(symbol: string, amount: any, params?: {}): Promise<MarginModification>;
41
- parseMarginModification(info: any, market?: Market): {
42
- info: any;
43
- direction: any;
44
- mode: string;
45
- amount: any;
46
- code: string;
47
- symbol: string;
48
- status: any;
49
- };
41
+ parseMarginModification(info: any, market?: Market): MarginModification;
50
42
  fetchOrdersByStatus(status: any, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
51
43
  fetchClosedOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
44
+ fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
52
45
  fetchOrder(id?: Str, symbol?: Str, params?: {}): Promise<Order>;
53
46
  parseOrder(order: any, market?: Market): Order;
54
47
  fetchFundingRate(symbol: string, params?: {}): Promise<{
@@ -70,6 +70,7 @@ export default class kucoinfutures extends kucoin {
70
70
  'fetchL3OrderBook': true,
71
71
  'fetchLedger': true,
72
72
  'fetchLeverageTiers': false,
73
+ 'fetchMarginAdjustmentHistory': false,
73
74
  'fetchMarginMode': false,
74
75
  'fetchMarketLeverageTiers': true,
75
76
  'fetchMarkets': true,
@@ -1616,14 +1617,18 @@ export default class kucoinfutures extends kucoin {
1616
1617
  const crossMode = this.safeValue(info, 'crossMode');
1617
1618
  const mode = crossMode ? 'cross' : 'isolated';
1618
1619
  const marketId = this.safeString(market, 'symbol');
1620
+ const timestamp = this.safeInteger(info, 'currentTimestamp');
1619
1621
  return {
1620
1622
  'info': info,
1621
- 'direction': undefined,
1622
- 'mode': mode,
1623
+ 'symbol': this.safeSymbol(marketId, market),
1624
+ 'type': undefined,
1625
+ 'marginMode': mode,
1623
1626
  'amount': undefined,
1627
+ 'total': undefined,
1624
1628
  'code': this.safeCurrencyCode(currencyId),
1625
- 'symbol': this.safeSymbol(marketId, market),
1626
1629
  'status': undefined,
1630
+ 'timestamp': timestamp,
1631
+ 'datetime': this.iso8601(timestamp),
1627
1632
  };
1628
1633
  }
1629
1634
  async fetchOrdersByStatus(status, symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -1764,6 +1769,32 @@ export default class kucoinfutures extends kucoin {
1764
1769
  }
1765
1770
  return await this.fetchOrdersByStatus('done', symbol, since, limit, params);
1766
1771
  }
1772
+ async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1773
+ /**
1774
+ * @method
1775
+ * @name kucoinfutures#fetchOpenOrders
1776
+ * @description fetches information on multiple open orders made by the user
1777
+ * @see https://docs.kucoin.com/futures/#get-order-list
1778
+ * @see https://docs.kucoin.com/futures/#get-untriggered-stop-order-list
1779
+ * @param {string} symbol unified market symbol of the market orders were made in
1780
+ * @param {int} [since] the earliest time in ms to fetch orders for
1781
+ * @param {int} [limit] the maximum number of order structures to retrieve
1782
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1783
+ * @param {int} [params.till] end time in ms
1784
+ * @param {string} [params.side] buy or sell
1785
+ * @param {string} [params.type] limit, or market
1786
+ * @param {boolean} [params.trigger] set to true to retrieve untriggered stop orders
1787
+ * @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [availble parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
1788
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1789
+ */
1790
+ await this.loadMarkets();
1791
+ let paginate = false;
1792
+ [paginate, params] = this.handleOptionAndParams(params, 'fetchOpenOrders', 'paginate');
1793
+ if (paginate) {
1794
+ return await this.fetchPaginatedCallDynamic('fetchOpenOrders', symbol, since, limit, params);
1795
+ }
1796
+ return await this.fetchOrdersByStatus('open', symbol, since, limit, params);
1797
+ }
1767
1798
  async fetchOrder(id = undefined, symbol = undefined, params = {}) {
1768
1799
  /**
1769
1800
  * @method
package/js/src/kuna.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/kuna.js';
2
- import type { Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
2
+ import type { Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class kuna
5
5
  * @augments Exchange
@@ -8,7 +8,7 @@ import type { Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide,
8
8
  export default class kuna extends Exchange {
9
9
  describe(): any;
10
10
  fetchTime(params?: {}): Promise<number>;
11
- fetchCurrencies(params?: {}): Promise<{}>;
11
+ fetchCurrencies(params?: {}): Promise<Currencies>;
12
12
  parseCurrencies(currencies: any, params?: {}): {};
13
13
  parseCurrency(currency: any): {
14
14
  info: any;
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/latoken.js';
2
- import type { TransferEntry, Balances, Currency, Int, Market, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, Num } from './base/types.js';
2
+ import type { TransferEntry, Balances, Currency, Int, Market, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, Num, TradingFeeInterface, Currencies } from './base/types.js';
3
3
  /**
4
4
  * @class latoken
5
5
  * @augments Exchange
@@ -10,7 +10,7 @@ export default class latoken extends Exchange {
10
10
  fetchTime(params?: {}): Promise<number>;
11
11
  fetchMarkets(params?: {}): Promise<Market[]>;
12
12
  fetchCurrenciesFromCache(params?: {}): Promise<any>;
13
- fetchCurrencies(params?: {}): Promise<{}>;
13
+ fetchCurrencies(params?: {}): Promise<Currencies>;
14
14
  fetchBalance(params?: {}): Promise<Balances>;
15
15
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
16
16
  parseTicker(ticker: any, market?: Market): Ticker;
@@ -18,23 +18,22 @@ export default class latoken extends Exchange {
18
18
  fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
19
19
  parseTrade(trade: any, market?: Market): Trade;
20
20
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
21
- fetchTradingFee(symbol: string, params?: {}): Promise<{
22
- info: any;
23
- symbol: string;
24
- maker: number;
25
- taker: number;
26
- }>;
21
+ fetchTradingFee(symbol: string, params?: {}): Promise<TradingFeeInterface>;
27
22
  fetchPublicTradingFee(symbol: string, params?: {}): Promise<{
28
23
  info: any;
29
24
  symbol: string;
30
25
  maker: number;
31
26
  taker: number;
27
+ percentage: any;
28
+ tierBased: any;
32
29
  }>;
33
30
  fetchPrivateTradingFee(symbol: string, params?: {}): Promise<{
34
31
  info: any;
35
32
  symbol: string;
36
33
  maker: number;
37
34
  taker: number;
35
+ percentage: any;
36
+ tierBased: any;
38
37
  }>;
39
38
  fetchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
40
39
  parseOrderStatus(status: any): string;
package/js/src/latoken.js CHANGED
@@ -878,6 +878,8 @@ export default class latoken extends Exchange {
878
878
  'symbol': market['symbol'],
879
879
  'maker': this.safeNumber(response, 'makerFee'),
880
880
  'taker': this.safeNumber(response, 'takerFee'),
881
+ 'percentage': undefined,
882
+ 'tierBased': undefined,
881
883
  };
882
884
  }
883
885
  async fetchPrivateTradingFee(symbol, params = {}) {
@@ -901,6 +903,8 @@ export default class latoken extends Exchange {
901
903
  'symbol': market['symbol'],
902
904
  'maker': this.safeNumber(response, 'makerFee'),
903
905
  'taker': this.safeNumber(response, 'takerFee'),
906
+ 'percentage': undefined,
907
+ 'tierBased': undefined,
904
908
  };
905
909
  }
906
910
  async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
package/js/src/lbank.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/lbank.js';
2
- import type { Balances, Currency, Int, Market, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
2
+ import type { Balances, Currency, Int, Market, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, TradingFees, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class lbank
5
5
  * @augments Exchange
@@ -20,14 +20,9 @@ export default class lbank extends Exchange {
20
20
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
21
21
  parseBalance(response: any): Balances;
22
22
  fetchBalance(params?: {}): Promise<Balances>;
23
- parseTradingFee(fee: any, market?: Market): {
24
- info: any;
25
- symbol: string;
26
- maker: number;
27
- taker: number;
28
- };
29
- fetchTradingFee(symbol: string, params?: {}): Promise<{}>;
30
- fetchTradingFees(params?: {}): Promise<{}>;
23
+ parseTradingFee(fee: any, market?: Market): TradingFeeInterface;
24
+ fetchTradingFee(symbol: string, params?: {}): Promise<TradingFeeInterface>;
25
+ fetchTradingFees(params?: {}): Promise<TradingFees>;
31
26
  createMarketBuyOrderWithCost(symbol: string, cost: number, params?: {}): Promise<Order>;
32
27
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Promise<Order>;
33
28
  parseOrderStatus(status: any): string;
package/js/src/lbank.js CHANGED
@@ -1244,6 +1244,8 @@ export default class lbank extends Exchange {
1244
1244
  'symbol': symbol,
1245
1245
  'maker': this.safeNumber(fee, 'makerCommission'),
1246
1246
  'taker': this.safeNumber(fee, 'takerCommission'),
1247
+ 'percentage': undefined,
1248
+ 'tierBased': undefined,
1247
1249
  };
1248
1250
  }
1249
1251
  async fetchTradingFee(symbol, params = {}) {
@@ -1258,7 +1260,7 @@ export default class lbank extends Exchange {
1258
1260
  */
1259
1261
  const market = this.market(symbol);
1260
1262
  const result = await this.fetchTradingFees(this.extend(params, { 'category': market['id'] }));
1261
- return result;
1263
+ return this.safeDict(result, symbol);
1262
1264
  }
1263
1265
  async fetchTradingFees(params = {}) {
1264
1266
  /**
package/js/src/luno.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/luno.js';
2
- import type { Balances, Currency, Int, Market, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, OHLCV, Num, Account } from './base/types.js';
2
+ import type { Balances, Currency, Int, Market, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, OHLCV, Num, Account, TradingFeeInterface } from './base/types.js';
3
3
  /**
4
4
  * @class luno
5
5
  * @augments Exchange
@@ -26,12 +26,7 @@ export default class luno extends Exchange {
26
26
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
27
27
  parseOHLCV(ohlcv: any, market?: Market): OHLCV;
28
28
  fetchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
29
- fetchTradingFee(symbol: string, params?: {}): Promise<{
30
- info: any;
31
- symbol: string;
32
- maker: number;
33
- taker: number;
34
- }>;
29
+ fetchTradingFee(symbol: string, params?: {}): Promise<TradingFeeInterface>;
35
30
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Promise<Order>;
36
31
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
37
32
  fetchLedgerByEntries(code?: Str, entry?: any, limit?: any, params?: {}): Promise<any>;
package/js/src/luno.js CHANGED
@@ -897,6 +897,8 @@ export default class luno extends Exchange {
897
897
  'symbol': symbol,
898
898
  'maker': this.safeNumber(response, 'maker_fee'),
899
899
  'taker': this.safeNumber(response, 'taker_fee'),
900
+ 'percentage': undefined,
901
+ 'tierBased': undefined,
900
902
  };
901
903
  }
902
904
  async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
package/js/src/lykke.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  import Exchange from './abstract/lykke.js';
2
- import type { IndexType, Balances, Currency, Int, Market, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, Num } from './base/types.js';
2
+ import type { IndexType, Balances, Currency, Int, Market, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, Num, Currencies } from './base/types.js';
3
3
  /**
4
4
  * @class lykke
5
5
  * @augments Exchange
6
6
  */
7
7
  export default class lykke extends Exchange {
8
8
  describe(): any;
9
- fetchCurrencies(params?: {}): Promise<{}>;
9
+ fetchCurrencies(params?: {}): Promise<Currencies>;
10
10
  fetchMarkets(params?: {}): Promise<Market[]>;
11
11
  parseTicker(ticker: any, market?: Market): Ticker;
12
12
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
package/js/src/mexc.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/mexc.js';
2
- import type { TransferEntry, IndexType, Int, OrderSide, Balances, OrderType, OHLCV, FundingRateHistory, Position, OrderBook, OrderRequest, FundingHistory, Order, Str, Trade, Transaction, Ticker, Tickers, Strings, Market, Currency, Leverage, Num, Account, MarginModification } from './base/types.js';
2
+ import type { TransferEntry, IndexType, Int, OrderSide, Balances, OrderType, OHLCV, FundingRateHistory, Position, OrderBook, OrderRequest, FundingHistory, Order, Str, Trade, Transaction, Ticker, Tickers, Strings, Market, Currency, Leverage, Num, Account, MarginModification, Currencies, TradingFees } from './base/types.js';
3
3
  /**
4
4
  * @class mexc
5
5
  * @augments Exchange
@@ -14,7 +14,7 @@ export default class mexc extends Exchange {
14
14
  info: any;
15
15
  }>;
16
16
  fetchTime(params?: {}): Promise<number>;
17
- fetchCurrencies(params?: {}): Promise<{}>;
17
+ fetchCurrencies(params?: {}): Promise<Currencies>;
18
18
  fetchMarkets(params?: {}): Promise<Market[]>;
19
19
  fetchSpotMarkets(params?: {}): Promise<any[]>;
20
20
  fetchSwapMarkets(params?: {}): Promise<any[]>;
@@ -52,7 +52,7 @@ export default class mexc extends Exchange {
52
52
  parseOrderTimeInForce(status: any): string;
53
53
  fetchAccountHelper(type: any, params: any): Promise<any>;
54
54
  fetchAccounts(params?: {}): Promise<Account[]>;
55
- fetchTradingFees(params?: {}): Promise<{}>;
55
+ fetchTradingFees(params?: {}): Promise<TradingFees>;
56
56
  customParseBalance(response: any, marketType: any): Balances;
57
57
  parseBalanceHelper(entry: any): import("./base/types.js").BalanceAccount;
58
58
  fetchBalance(params?: {}): Promise<Balances>;
package/js/src/mexc.js CHANGED
@@ -78,6 +78,7 @@ export default class mexc extends Exchange {
78
78
  'fetchLeverage': true,
79
79
  'fetchLeverages': false,
80
80
  'fetchLeverageTiers': true,
81
+ 'fetchMarginAdjustmentHistory': false,
81
82
  'fetchMarginMode': false,
82
83
  'fetchMarketLeverageTiers': undefined,
83
84
  'fetchMarkets': true,
@@ -4303,8 +4304,9 @@ export default class mexc extends Exchange {
4303
4304
  /**
4304
4305
  * @method
4305
4306
  * @name mexc#fetchLeverageTiers
4306
- * @description retrieve information on the maximum leverage, and maintenance margin for trades of varying trade sizes
4307
- * @param {string[]|undefined} symbols list of unified market symbols
4307
+ * @description retrieve information on the maximum leverage, and maintenance margin for trades of varying trade sizes, if a market has a leverage tier of 0, then the leverage tiers cannot be obtained for this market
4308
+ * @see https://mexcdevelop.github.io/apidocs/contract_v1_en/#get-the-contract-information
4309
+ * @param {string[]} [symbols] list of unified market symbols
4308
4310
  * @param {object} [params] extra parameters specific to the exchange API endpoint
4309
4311
  * @returns {object} a dictionary of [leverage tiers structures]{@link https://docs.ccxt.com/#/?id=leverage-tiers-structure}, indexed by market symbols
4310
4312
  */
@@ -4360,10 +4362,44 @@ export default class mexc extends Exchange {
4360
4362
  return this.parseLeverageTiers(data, symbols, 'symbol');
4361
4363
  }
4362
4364
  parseMarketLeverageTiers(info, market = undefined) {
4363
- /**
4364
- @param info {object} Exchange response for 1 market
4365
- @param market {object} CCXT market
4366
- */
4365
+ //
4366
+ // {
4367
+ // "symbol": "BTC_USDT",
4368
+ // "displayName": "BTC_USDT永续",
4369
+ // "displayNameEn": "BTC_USDT SWAP",
4370
+ // "positionOpenType": 3,
4371
+ // "baseCoin": "BTC",
4372
+ // "quoteCoin": "USDT",
4373
+ // "settleCoin": "USDT",
4374
+ // "contractSize": 0.0001,
4375
+ // "minLeverage": 1,
4376
+ // "maxLeverage": 125,
4377
+ // "priceScale": 2,
4378
+ // "volScale": 0,
4379
+ // "amountScale": 4,
4380
+ // "priceUnit": 0.5,
4381
+ // "volUnit": 1,
4382
+ // "minVol": 1,
4383
+ // "maxVol": 1000000,
4384
+ // "bidLimitPriceRate": 0.1,
4385
+ // "askLimitPriceRate": 0.1,
4386
+ // "takerFeeRate": 0.0006,
4387
+ // "makerFeeRate": 0.0002,
4388
+ // "maintenanceMarginRate": 0.004,
4389
+ // "initialMarginRate": 0.008,
4390
+ // "riskBaseVol": 10000,
4391
+ // "riskIncrVol": 200000,
4392
+ // "riskIncrMmr": 0.004,
4393
+ // "riskIncrImr": 0.004,
4394
+ // "riskLevelLimit": 5,
4395
+ // "priceCoefficientVariation": 0.1,
4396
+ // "indexOrigin": ["BINANCE","GATEIO","HUOBI","MXC"],
4397
+ // "state": 0, // 0 enabled, 1 delivery, 2 completed, 3 offline, 4 pause
4398
+ // "isNew": false,
4399
+ // "isHot": true,
4400
+ // "isHidden": false
4401
+ // }
4402
+ //
4367
4403
  let maintenanceMarginRate = this.safeString(info, 'maintenanceMarginRate');
4368
4404
  let initialMarginRate = this.safeString(info, 'initialMarginRate');
4369
4405
  const maxVol = this.safeString(info, 'maxVol');
@@ -4373,6 +4409,19 @@ export default class mexc extends Exchange {
4373
4409
  let floor = '0';
4374
4410
  const tiers = [];
4375
4411
  const quoteId = this.safeString(info, 'quoteCoin');
4412
+ if (riskIncrVol === '0') {
4413
+ return [
4414
+ {
4415
+ 'tier': 0,
4416
+ 'currency': this.safeCurrencyCode(quoteId),
4417
+ 'notionalFloor': undefined,
4418
+ 'notionalCap': undefined,
4419
+ 'maintenanceMarginRate': undefined,
4420
+ 'maxLeverage': this.safeNumber(info, 'maxLeverage'),
4421
+ 'info': info,
4422
+ },
4423
+ ];
4424
+ }
4376
4425
  while (Precise.stringLt(floor, maxVol)) {
4377
4426
  const cap = Precise.stringAdd(floor, riskIncrVol);
4378
4427
  tiers.push({
package/js/src/ndax.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/ndax.js';
2
- import type { IndexType, Balances, Currency, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, Transaction, Num, Account } from './base/types.js';
2
+ import type { IndexType, Balances, Currency, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, Transaction, Num, Account, Currencies } from './base/types.js';
3
3
  /**
4
4
  * @class ndax
5
5
  * @augments Exchange
@@ -7,7 +7,7 @@ import type { IndexType, Balances, Currency, Int, Market, OHLCV, Order, OrderBoo
7
7
  export default class ndax extends Exchange {
8
8
  describe(): any;
9
9
  signIn(params?: {}): Promise<any>;
10
- fetchCurrencies(params?: {}): Promise<{}>;
10
+ fetchCurrencies(params?: {}): Promise<Currencies>;
11
11
  fetchMarkets(params?: {}): Promise<Market[]>;
12
12
  parseMarket(market: any): Market;
13
13
  parseOrderBook(orderbook: any, symbol: any, timestamp?: any, bidsKey?: string, asksKey?: string, priceKey?: IndexType, amountKey?: IndexType, countOrIdKey?: IndexType): OrderBook;
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/oceanex.js';
2
- import type { Balances, Dictionary, Int, Market, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade } from './base/types.js';
2
+ import type { Balances, Dictionary, Int, Market, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees } from './base/types.js';
3
3
  /**
4
4
  * @class oceanex
5
5
  * @augments Exchange
@@ -16,7 +16,7 @@ export default class oceanex extends Exchange {
16
16
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
17
17
  parseTrade(trade: any, market?: Market): Trade;
18
18
  fetchTime(params?: {}): Promise<number>;
19
- fetchTradingFees(params?: {}): Promise<{}>;
19
+ fetchTradingFees(params?: {}): Promise<TradingFees>;
20
20
  fetchKey(params?: {}): Promise<any>;
21
21
  parseBalance(response: any): Balances;
22
22
  fetchBalance(params?: {}): Promise<Balances>;
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/okcoin.js';
2
- import type { TransferEntry, Balances, Currency, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, Num } from './base/types.js';
2
+ import type { TransferEntry, Balances, Currency, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, Num, Currencies } from './base/types.js';
3
3
  /**
4
4
  * @class okcoin
5
5
  * @augments Exchange
@@ -10,7 +10,7 @@ export default class okcoin extends Exchange {
10
10
  fetchMarkets(params?: {}): Promise<Market[]>;
11
11
  parseMarket(market: any): Market;
12
12
  safeNetwork(networkId: any): string;
13
- fetchCurrencies(params?: {}): Promise<{}>;
13
+ fetchCurrencies(params?: {}): Promise<Currencies>;
14
14
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
15
15
  parseTicker(ticker: any, market?: Market): Ticker;
16
16
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
package/js/src/okx.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/okx.js';
2
- import type { TransferEntry, Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory, OrderRequest, FundingHistory, Str, Transaction, Ticker, OrderBook, Balances, Tickers, Market, Greeks, Strings, MarketInterface, Currency, Leverage, Num, Account, OptionChain, Option, MarginModification } from './base/types.js';
2
+ import type { TransferEntry, Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory, OrderRequest, FundingHistory, Str, Transaction, Ticker, OrderBook, Balances, Tickers, Market, Greeks, Strings, MarketInterface, Currency, Leverage, Num, Account, OptionChain, Option, MarginModification, TradingFeeInterface, Currencies } from './base/types.js';
3
3
  /**
4
4
  * @class okx
5
5
  * @augments Exchange
@@ -23,7 +23,7 @@ export default class okx extends Exchange {
23
23
  parseMarket(market: any): Market;
24
24
  fetchMarketsByType(type: any, params?: {}): Promise<MarketInterface[]>;
25
25
  safeNetwork(networkId: any): string;
26
- fetchCurrencies(params?: {}): Promise<{}>;
26
+ fetchCurrencies(params?: {}): Promise<Currencies>;
27
27
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
28
28
  parseTicker(ticker: any, market?: Market): Ticker;
29
29
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
@@ -36,18 +36,8 @@ export default class okx extends Exchange {
36
36
  parseBalanceByType(type: any, response: any): Balances;
37
37
  parseTradingBalance(response: any): Balances;
38
38
  parseFundingBalance(response: any): Balances;
39
- parseTradingFee(fee: any, market?: Market): {
40
- info: any;
41
- symbol: string;
42
- maker: number;
43
- taker: number;
44
- };
45
- fetchTradingFee(symbol: string, params?: {}): Promise<{
46
- info: any;
47
- symbol: string;
48
- maker: number;
49
- taker: number;
50
- }>;
39
+ parseTradingFee(fee: any, market?: Market): TradingFeeInterface;
40
+ fetchTradingFee(symbol: string, params?: {}): Promise<TradingFeeInterface>;
51
41
  fetchBalance(params?: {}): Promise<Balances>;
52
42
  createMarketBuyOrderWithCost(symbol: string, cost: number, params?: {}): Promise<Order>;
53
43
  createMarketSellOrderWithCost(symbol: string, cost: number, params?: {}): Promise<Order>;
@@ -308,4 +298,5 @@ export default class okx extends Exchange {
308
298
  quoteVolume: any;
309
299
  };
310
300
  handleErrors(httpCode: any, reason: any, url: any, method: any, headers: any, body: any, response: any, requestHeaders: any, requestBody: any): any;
301
+ fetchMarginAdjustmentHistory(symbol?: Str, type?: Str, since?: Num, limit?: Num, params?: {}): Promise<MarginModification[]>;
311
302
  }