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
@@ -543,6 +543,8 @@ export default class bitflyer extends Exchange {
543
543
  'symbol': market['symbol'],
544
544
  'maker': fee,
545
545
  'taker': fee,
546
+ 'percentage': undefined,
547
+ 'tierBased': undefined,
546
548
  };
547
549
  }
548
550
  async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bitget.js';
2
- import type { Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory, OrderRequest, FundingHistory, Balances, Str, Transaction, Ticker, OrderBook, Tickers, Market, Strings, Currency, Position, Liquidation, TransferEntry, Leverage, MarginMode, Num, MarginModification } from './base/types.js';
2
+ import type { Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory, OrderRequest, FundingHistory, Balances, Str, Transaction, Ticker, OrderBook, Tickers, Market, Strings, Currency, Position, Liquidation, TransferEntry, Leverage, MarginMode, Num, MarginModification, TradingFeeInterface, Currencies, TradingFees } from './base/types.js';
3
3
  /**
4
4
  * @class bitget
5
5
  * @augments Exchange
@@ -13,7 +13,7 @@ export default class bitget extends Exchange {
13
13
  fetchMarkets(params?: {}): Promise<Market[]>;
14
14
  parseMarket(market: any): Market;
15
15
  fetchMarketsByType(type: any, params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
16
- fetchCurrencies(params?: {}): Promise<{}>;
16
+ fetchCurrencies(params?: {}): Promise<Currencies>;
17
17
  fetchMarketLeverageTiers(symbol: string, params?: {}): Promise<any[]>;
18
18
  parseMarketLeverageTiers(info: any, market?: Market): any[];
19
19
  fetchDeposits(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
@@ -41,18 +41,15 @@ export default class bitget extends Exchange {
41
41
  fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
42
42
  parseTrade(trade: any, market?: Market): Trade;
43
43
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
44
- fetchTradingFee(symbol: string, params?: {}): Promise<{
45
- info: any;
46
- symbol: string;
47
- maker: number;
48
- taker: number;
49
- }>;
50
- fetchTradingFees(params?: {}): Promise<{}>;
44
+ fetchTradingFee(symbol: string, params?: {}): Promise<TradingFeeInterface>;
45
+ fetchTradingFees(params?: {}): Promise<TradingFees>;
51
46
  parseTradingFee(data: any, market?: Market): {
52
47
  info: any;
53
48
  symbol: string;
54
49
  maker: number;
55
50
  taker: number;
51
+ percentage: any;
52
+ tierBased: any;
56
53
  };
57
54
  parseOHLCV(ohlcv: any, market?: Market): OHLCV;
58
55
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
package/js/src/bitget.js CHANGED
@@ -87,6 +87,7 @@ export default class bitget extends Exchange {
87
87
  'fetchLeverage': true,
88
88
  'fetchLeverageTiers': false,
89
89
  'fetchLiquidations': false,
90
+ 'fetchMarginAdjustmentHistory': false,
90
91
  'fetchMarginMode': true,
91
92
  'fetchMarketLeverageTiers': true,
92
93
  'fetchMarkets': true,
@@ -2627,7 +2628,11 @@ export default class bitget extends Exchange {
2627
2628
  //
2628
2629
  const marketId = this.safeString(ticker, 'symbol');
2629
2630
  const close = this.safeString(ticker, 'lastPr');
2630
- const timestamp = this.safeInteger(ticker, 'ts');
2631
+ const timestampString = this.omitZero(this.safeString(ticker, 'ts')); // exchange sometimes provided 0
2632
+ let timestamp = undefined;
2633
+ if (timestampString !== undefined) {
2634
+ timestamp = this.parseToInt(timestampString);
2635
+ }
2631
2636
  const change = this.safeString(ticker, 'change24h');
2632
2637
  const open24 = this.safeString(ticker, 'open24');
2633
2638
  const open = this.safeString(ticker, 'open');
@@ -3280,6 +3285,8 @@ export default class bitget extends Exchange {
3280
3285
  'symbol': this.safeSymbol(marketId, market),
3281
3286
  'maker': this.safeNumber(data, 'makerFeeRate'),
3282
3287
  'taker': this.safeNumber(data, 'takerFeeRate'),
3288
+ 'percentage': undefined,
3289
+ 'tierBased': undefined,
3283
3290
  };
3284
3291
  }
3285
3292
  parseOHLCV(ohlcv, market = undefined) {
@@ -6981,6 +6988,7 @@ export default class bitget extends Exchange {
6981
6988
  'info': data,
6982
6989
  'symbol': market['symbol'],
6983
6990
  'type': undefined,
6991
+ 'marginMode': 'isolated',
6984
6992
  'amount': undefined,
6985
6993
  'total': undefined,
6986
6994
  'code': market['settle'],
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bitmart.js';
2
- import type { Int, OrderSide, Balances, OrderType, OHLCV, Order, Str, Trade, Transaction, Ticker, OrderBook, Tickers, Strings, Currency, Market, TransferEntry, Num } from './base/types.js';
2
+ import type { Int, OrderSide, Balances, OrderType, OHLCV, Order, Str, Trade, Transaction, Ticker, OrderBook, Tickers, Strings, Currency, Market, TransferEntry, Num, TradingFeeInterface, Currencies } from './base/types.js';
3
3
  /**
4
4
  * @class bitmart
5
5
  * @augments Exchange
@@ -17,7 +17,7 @@ export default class bitmart extends Exchange {
17
17
  fetchSpotMarkets(params?: {}): Promise<any[]>;
18
18
  fetchContractMarkets(params?: {}): Promise<any[]>;
19
19
  fetchMarkets(params?: {}): Promise<Market[]>;
20
- fetchCurrencies(params?: {}): Promise<{}>;
20
+ fetchCurrencies(params?: {}): Promise<Currencies>;
21
21
  fetchTransactionFee(code: string, params?: {}): Promise<{
22
22
  info: any;
23
23
  withdraw: {};
@@ -49,18 +49,8 @@ export default class bitmart extends Exchange {
49
49
  customParseBalance(response: any, marketType: any): Balances;
50
50
  parseBalanceHelper(entry: any): import("./base/types.js").BalanceAccount;
51
51
  fetchBalance(params?: {}): Promise<Balances>;
52
- parseTradingFee(fee: any, market?: Market): {
53
- info: any;
54
- symbol: string;
55
- maker: number;
56
- taker: number;
57
- };
58
- fetchTradingFee(symbol: string, params?: {}): Promise<{
59
- info: any;
60
- symbol: string;
61
- maker: number;
62
- taker: number;
63
- }>;
52
+ parseTradingFee(fee: any, market?: Market): TradingFeeInterface;
53
+ fetchTradingFee(symbol: string, params?: {}): Promise<TradingFeeInterface>;
64
54
  parseOrder(order: any, market?: Market): Order;
65
55
  parseOrderSide(side: any): string;
66
56
  parseOrderStatusByType(type: any, status: any): string;
package/js/src/bitmart.js CHANGED
@@ -2098,6 +2098,8 @@ export default class bitmart extends Exchange {
2098
2098
  'symbol': symbol,
2099
2099
  'maker': this.safeNumber(fee, 'maker_fee_rate'),
2100
2100
  'taker': this.safeNumber(fee, 'taker_fee_rate'),
2101
+ 'percentage': undefined,
2102
+ 'tierBased': undefined,
2101
2103
  };
2102
2104
  }
2103
2105
  async fetchTradingFee(symbol, params = {}) {
@@ -1,12 +1,12 @@
1
1
  import Exchange from './abstract/bitmex.js';
2
- import type { Int, OrderSide, OrderType, Trade, OHLCV, Order, Liquidation, OrderBook, Balances, Str, Transaction, Ticker, Tickers, Market, Strings, Currency, Leverage, Leverages, Num } from './base/types.js';
2
+ import type { Int, OrderSide, OrderType, Trade, OHLCV, Order, Liquidation, OrderBook, Balances, Str, Transaction, Ticker, Tickers, Market, Strings, Currency, Leverage, Leverages, Num, Currencies } from './base/types.js';
3
3
  /**
4
4
  * @class bitmex
5
5
  * @augments Exchange
6
6
  */
7
7
  export default class bitmex extends Exchange {
8
8
  describe(): any;
9
- fetchCurrencies(params?: {}): Promise<{}>;
9
+ fetchCurrencies(params?: {}): Promise<Currencies>;
10
10
  convertFromRealAmount(code: any, amount: any): number;
11
11
  convertToRealAmount(code: Str, amount: Str): string;
12
12
  amountToPrecision(symbol: any, amount: any): any;
package/js/src/bitmex.js CHANGED
@@ -66,6 +66,7 @@ export default class bitmex extends Exchange {
66
66
  'fetchLeverages': true,
67
67
  'fetchLeverageTiers': false,
68
68
  'fetchLiquidations': true,
69
+ 'fetchMarginAdjustmentHistory': false,
69
70
  'fetchMarketLeverageTiers': false,
70
71
  'fetchMarkets': true,
71
72
  'fetchMarkOHLCV': false,
@@ -1,12 +1,12 @@
1
1
  import Exchange from './abstract/bitopro.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, Currencies, Currency, Int, Market, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class bitopro
5
5
  * @augments Exchange
6
6
  */
7
7
  export default class bitopro extends Exchange {
8
8
  describe(): any;
9
- fetchCurrencies(params?: {}): Promise<{}>;
9
+ fetchCurrencies(params?: {}): Promise<Currencies>;
10
10
  fetchMarkets(params?: {}): Promise<Market[]>;
11
11
  parseMarket(market: any): Market;
12
12
  parseTicker(ticker: any, market?: Market): Ticker;
@@ -15,7 +15,7 @@ export default class bitopro extends Exchange {
15
15
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
16
16
  parseTrade(trade: any, market?: Market): Trade;
17
17
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
18
- fetchTradingFees(params?: {}): Promise<{}>;
18
+ fetchTradingFees(params?: {}): Promise<TradingFees>;
19
19
  parseOHLCV(ohlcv: any, market?: Market): OHLCV;
20
20
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
21
21
  insertMissingCandles(candles: any, distance: any, since: any, limit: any): any;
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bitrue.js';
2
- import type { Balances, Currency, Int, MarginModification, Market, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry } from './base/types.js';
2
+ import type { Balances, Currencies, Currency, Int, MarginModification, Market, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry } from './base/types.js';
3
3
  /**
4
4
  * @class bitrue
5
5
  * @augments Exchange
@@ -17,7 +17,7 @@ export default class bitrue extends Exchange {
17
17
  }>;
18
18
  fetchTime(params?: {}): Promise<number>;
19
19
  safeNetwork(networkId: any): string;
20
- fetchCurrencies(params?: {}): Promise<{}>;
20
+ fetchCurrencies(params?: {}): Promise<Currencies>;
21
21
  fetchMarkets(params?: {}): Promise<Market[]>;
22
22
  parseMarket(market: any): Market;
23
23
  parseBalance(response: any): Balances;
package/js/src/bitrue.js CHANGED
@@ -3053,6 +3053,7 @@ export default class bitrue extends Exchange {
3053
3053
  'info': data,
3054
3054
  'symbol': market['symbol'],
3055
3055
  'type': undefined,
3056
+ 'marginMode': 'isolated',
3056
3057
  'amount': undefined,
3057
3058
  'total': undefined,
3058
3059
  'code': undefined,
package/js/src/bitso.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bitso.js';
2
- import type { Balances, Currency, Int, Market, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Trade, Transaction } from './base/types.js';
2
+ import type { Balances, Currency, Int, Market, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Trade, TradingFees, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class bitso
5
5
  * @augments Exchange
@@ -35,7 +35,7 @@ export default class bitso extends Exchange {
35
35
  parseOHLCV(ohlcv: any, market?: Market): OHLCV;
36
36
  parseTrade(trade: any, market?: Market): Trade;
37
37
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
38
- fetchTradingFees(params?: {}): Promise<{}>;
38
+ fetchTradingFees(params?: {}): Promise<TradingFees>;
39
39
  fetchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
40
40
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Promise<Order>;
41
41
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bitstamp.js';
2
- import type { Balances, Currency, Int, Market, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry } from './base/types.js';
2
+ import type { Balances, Currencies, Currency, Int, Market, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry } from './base/types.js';
3
3
  /**
4
4
  * @class bitstamp
5
5
  * @augments Exchange
@@ -39,7 +39,7 @@ export default class bitstamp extends Exchange {
39
39
  networks: {};
40
40
  };
41
41
  fetchMarketsFromCache(params?: {}): Promise<any>;
42
- fetchCurrencies(params?: {}): Promise<{}>;
42
+ fetchCurrencies(params?: {}): Promise<Currencies>;
43
43
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
44
44
  parseTicker(ticker: any, market?: Market): Ticker;
45
45
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
@@ -52,28 +52,16 @@ export default class bitstamp extends Exchange {
52
52
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
53
53
  parseBalance(response: any): Balances;
54
54
  fetchBalance(params?: {}): Promise<Balances>;
55
- fetchTradingFee(symbol: string, params?: {}): Promise<{
56
- info: any;
57
- symbol: string;
58
- maker: number;
59
- taker: number;
60
- }>;
61
- parseTradingFee(fee: any, market?: Market): {
62
- info: any;
63
- symbol: string;
64
- maker: number;
65
- taker: number;
66
- };
55
+ fetchTradingFee(symbol: string, params?: {}): Promise<TradingFeeInterface>;
56
+ parseTradingFee(fee: any, market?: Market): TradingFeeInterface;
67
57
  parseTradingFees(fees: any): {
68
58
  info: any;
69
59
  };
70
- fetchTradingFees(params?: {}): Promise<{
71
- info: any;
72
- }>;
60
+ fetchTradingFees(params?: {}): Promise<TradingFees>;
73
61
  fetchTransactionFees(codes?: string[], params?: {}): Promise<{}>;
74
62
  parseTransactionFees(response: any, codes?: any): {};
75
- fetchDepositWithdrawFees(codes?: Strings, params?: {}): Promise<{}>;
76
- parseDepositWithdrawFees(response: any, codes?: any, currencyIdKey?: any): {};
63
+ fetchDepositWithdrawFees(codes?: any, params?: {}): Promise<any>;
64
+ parseDepositWithdrawFee(fee: any, currency?: any): any;
77
65
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Promise<Order>;
78
66
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
79
67
  cancelAllOrders(symbol?: Str, params?: {}): Promise<any>;
@@ -431,6 +431,30 @@ export default class bitstamp extends Exchange {
431
431
  'commonCurrencies': {
432
432
  'UST': 'USTC',
433
433
  },
434
+ // exchange-specific options
435
+ 'options': {
436
+ 'networksById': {
437
+ 'bitcoin-cash': 'BCH',
438
+ 'bitcoin': 'BTC',
439
+ 'ethereum': 'ERC20',
440
+ 'litecoin': 'LTC',
441
+ 'stellar': 'XLM',
442
+ 'xrpl': 'XRP',
443
+ 'tron': 'TRC20',
444
+ 'algorand': 'ALGO',
445
+ 'flare': 'FLR',
446
+ 'hedera': 'HBAR',
447
+ 'cardana': 'ADA',
448
+ 'songbird': 'FLR',
449
+ 'avalanche-c-chain': 'AVAX',
450
+ 'solana': 'SOL',
451
+ 'polkadot': 'DOT',
452
+ 'near': 'NEAR',
453
+ 'doge': 'DOGE',
454
+ 'sui': 'SUI',
455
+ 'casper': 'CSRP',
456
+ },
457
+ },
434
458
  'exceptions': {
435
459
  'exact': {
436
460
  'No permission found': PermissionDenied,
@@ -1203,6 +1227,8 @@ export default class bitstamp extends Exchange {
1203
1227
  'symbol': this.safeSymbol(marketId, market),
1204
1228
  'maker': this.safeNumber(fees, 'maker'),
1205
1229
  'taker': this.safeNumber(fees, 'taker'),
1230
+ 'percentage': undefined,
1231
+ 'tierBased': undefined,
1206
1232
  };
1207
1233
  }
1208
1234
  parseTradingFees(fees) {
@@ -1248,60 +1274,41 @@ export default class bitstamp extends Exchange {
1248
1274
  * @name bitstamp#fetchTransactionFees
1249
1275
  * @deprecated
1250
1276
  * @description please use fetchDepositWithdrawFees instead
1251
- * @see https://www.bitstamp.net/api/#balance
1277
+ * @see https://www.bitstamp.net/api/#tag/Fees
1252
1278
  * @param {string[]|undefined} codes list of unified currency codes
1253
1279
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1254
1280
  * @returns {object[]} a list of [fee structures]{@link https://docs.ccxt.com/#/?id=fee-structure}
1255
1281
  */
1256
1282
  await this.loadMarkets();
1257
- const balance = await this.privatePostBalance(params);
1258
- return this.parseTransactionFees(balance);
1283
+ const response = await this.privatePostFeesWithdrawal(params);
1284
+ //
1285
+ // [
1286
+ // {
1287
+ // "currency": "btc",
1288
+ // "fee": "0.00015000",
1289
+ // "network": "bitcoin"
1290
+ // }
1291
+ // ...
1292
+ // ]
1293
+ //
1294
+ return this.parseTransactionFees(response);
1259
1295
  }
1260
1296
  parseTransactionFees(response, codes = undefined) {
1261
- //
1262
- // {
1263
- // "yfi_available": "0.00000000",
1264
- // "yfi_balance": "0.00000000",
1265
- // "yfi_reserved": "0.00000000",
1266
- // "yfi_withdrawal_fee": "0.00070000",
1267
- // "yfieur_fee": "0.000",
1268
- // "yfiusd_fee": "0.000",
1269
- // "zrx_available": "0.00000000",
1270
- // "zrx_balance": "0.00000000",
1271
- // "zrx_reserved": "0.00000000",
1272
- // "zrx_withdrawal_fee": "12.00000000",
1273
- // "zrxeur_fee": "0.000",
1274
- // "zrxusd_fee": "0.000",
1275
- // ...
1276
- // }
1277
- //
1278
- if (codes === undefined) {
1279
- codes = Object.keys(this.currencies);
1280
- }
1281
1297
  const result = {};
1282
- let mainCurrencyId = undefined;
1283
- const ids = Object.keys(response);
1298
+ const currencies = this.indexBy(response, 'currency');
1299
+ const ids = Object.keys(currencies);
1284
1300
  for (let i = 0; i < ids.length; i++) {
1285
1301
  const id = ids[i];
1286
- const currencyId = id.split('_')[0];
1287
- const code = this.safeCurrencyCode(currencyId);
1288
- if (codes !== undefined && !this.inArray(code, codes)) {
1302
+ const fees = this.safeValue(response, i, {});
1303
+ const code = this.safeCurrencyCode(id);
1304
+ if ((codes !== undefined) && !this.inArray(code, codes)) {
1289
1305
  continue;
1290
1306
  }
1291
- if (id.indexOf('_available') >= 0) {
1292
- mainCurrencyId = currencyId;
1293
- result[code] = {
1294
- 'deposit': undefined,
1295
- 'withdraw': undefined,
1296
- 'info': {},
1297
- };
1298
- }
1299
- if (currencyId === mainCurrencyId) {
1300
- result[code]['info'][id] = this.safeNumber(response, id);
1301
- }
1302
- if (id.indexOf('_withdrawal_fee') >= 0) {
1303
- result[code]['withdraw'] = this.safeNumber(response, id);
1304
- }
1307
+ result[code] = {
1308
+ 'withdraw_fee': this.safeNumber(fees, 'fee'),
1309
+ 'deposit': {},
1310
+ 'info': this.safeDict(currencies, id),
1311
+ };
1305
1312
  }
1306
1313
  return result;
1307
1314
  }
@@ -1316,64 +1323,41 @@ export default class bitstamp extends Exchange {
1316
1323
  * @returns {object[]} a list of [fee structures]{@link https://docs.ccxt.com/#/?id=fee-structure}
1317
1324
  */
1318
1325
  await this.loadMarkets();
1319
- const response = await this.privatePostBalance(params);
1320
- //
1321
- // {
1322
- // "yfi_available": "0.00000000",
1323
- // "yfi_balance": "0.00000000",
1324
- // "yfi_reserved": "0.00000000",
1325
- // "yfi_withdrawal_fee": "0.00070000",
1326
- // "yfieur_fee": "0.000",
1327
- // "yfiusd_fee": "0.000",
1328
- // "zrx_available": "0.00000000",
1329
- // "zrx_balance": "0.00000000",
1330
- // "zrx_reserved": "0.00000000",
1331
- // "zrx_withdrawal_fee": "12.00000000",
1332
- // "zrxeur_fee": "0.000",
1333
- // "zrxusd_fee": "0.000",
1334
- // ...
1335
- // }
1336
- //
1337
- return this.parseDepositWithdrawFees(response, codes);
1338
- }
1339
- parseDepositWithdrawFees(response, codes = undefined, currencyIdKey = undefined) {
1340
- //
1341
- // {
1342
- // "yfi_available": "0.00000000",
1343
- // "yfi_balance": "0.00000000",
1344
- // "yfi_reserved": "0.00000000",
1345
- // "yfi_withdrawal_fee": "0.00070000",
1346
- // "yfieur_fee": "0.000",
1347
- // "yfiusd_fee": "0.000",
1348
- // "zrx_available": "0.00000000",
1349
- // "zrx_balance": "0.00000000",
1350
- // "zrx_reserved": "0.00000000",
1351
- // "zrx_withdrawal_fee": "12.00000000",
1352
- // "zrxeur_fee": "0.000",
1353
- // "zrxusd_fee": "0.000",
1354
- // ...
1355
- // }
1326
+ const response = await this.privatePostFeesWithdrawal(params);
1356
1327
  //
1357
- const result = {};
1358
- const ids = Object.keys(response);
1359
- for (let i = 0; i < ids.length; i++) {
1360
- const id = ids[i];
1361
- const currencyId = id.split('_')[0];
1362
- const code = this.safeCurrencyCode(currencyId);
1363
- const dictValue = this.safeNumber(response, id);
1364
- if (codes !== undefined && !this.inArray(code, codes)) {
1365
- continue;
1366
- }
1367
- if (id.indexOf('_available') >= 0) {
1368
- result[code] = this.depositWithdrawFee({});
1369
- }
1370
- if (id.indexOf('_withdrawal_fee') >= 0) {
1371
- result[code]['withdraw']['fee'] = dictValue;
1372
- }
1373
- const resultValue = this.safeValue(result, code);
1374
- if (resultValue !== undefined) {
1375
- result[code]['info'][id] = dictValue;
1376
- }
1328
+ // [
1329
+ // {
1330
+ // "currency": "btc",
1331
+ // "fee": "0.00015000",
1332
+ // "network": "bitcoin"
1333
+ // }
1334
+ // ...
1335
+ // ]
1336
+ //
1337
+ const responseByCurrencyId = this.groupBy(response, 'currency');
1338
+ return this.parseDepositWithdrawFees(responseByCurrencyId, codes);
1339
+ }
1340
+ parseDepositWithdrawFee(fee, currency = undefined) {
1341
+ const result = this.depositWithdrawFee(fee);
1342
+ for (let j = 0; j < fee.length; j++) {
1343
+ const networkEntry = fee[j];
1344
+ const networkId = this.safeString(networkEntry, 'network');
1345
+ const networkCode = this.networkIdToCode(networkId);
1346
+ const withdrawFee = this.safeNumber(networkEntry, 'fee');
1347
+ result['withdraw'] = {
1348
+ 'fee': withdrawFee,
1349
+ 'percentage': undefined,
1350
+ };
1351
+ result['networks'][networkCode] = {
1352
+ 'withdraw': {
1353
+ 'fee': withdrawFee,
1354
+ 'percentage': undefined,
1355
+ },
1356
+ 'deposit': {
1357
+ 'fee': undefined,
1358
+ 'percentage': undefined,
1359
+ },
1360
+ };
1377
1361
  }
1378
1362
  return result;
1379
1363
  }
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bitteam.js';
2
- import { Balances, Currency, Int, Market, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
2
+ import { Balances, Currencies, Currency, Int, Market, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class bitteam
5
5
  * @augments Exchange
@@ -8,7 +8,7 @@ export default class bitteam extends Exchange {
8
8
  describe(): any;
9
9
  fetchMarkets(params?: {}): Promise<Market[]>;
10
10
  parseMarket(market: any): Market;
11
- fetchCurrencies(params?: {}): Promise<{}>;
11
+ fetchCurrencies(params?: {}): Promise<Currencies>;
12
12
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
13
13
  parseOHLCV(ohlcv: any, market?: Market): OHLCV;
14
14
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bitvavo.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, Currencies, Currency, Int, Market, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class bitvavo
5
5
  * @augments Exchange
@@ -12,14 +12,14 @@ export default class bitvavo extends Exchange {
12
12
  fetchTime(params?: {}): Promise<number>;
13
13
  fetchMarkets(params?: {}): Promise<Market[]>;
14
14
  parseMarkets(markets: any): any[];
15
- fetchCurrencies(params?: {}): Promise<{}>;
15
+ fetchCurrencies(params?: {}): Promise<Currencies>;
16
16
  parseCurrencies(currencies: any): {};
17
17
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
18
18
  parseTicker(ticker: any, market?: Market): Ticker;
19
19
  fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
20
20
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
21
21
  parseTrade(trade: any, market?: Market): Trade;
22
- fetchTradingFees(params?: {}): Promise<{}>;
22
+ fetchTradingFees(params?: {}): Promise<TradingFees>;
23
23
  parseTradingFees(fees: any, market?: any): {};
24
24
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
25
25
  parseOHLCV(ohlcv: any, market?: Market): OHLCV;
package/js/src/bl3p.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bl3p.js';
2
- import type { Balances, Int, Market, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, IndexType, Currency, Num } from './base/types.js';
2
+ import type { Balances, Int, Market, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, IndexType, Currency, Num, TradingFees } from './base/types.js';
3
3
  /**
4
4
  * @class bl3p
5
5
  * @augments Exchange
@@ -14,7 +14,7 @@ export default class bl3p extends Exchange {
14
14
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
15
15
  parseTrade(trade: any, market?: Market): Trade;
16
16
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
17
- fetchTradingFees(params?: {}): Promise<{}>;
17
+ fetchTradingFees(params?: {}): Promise<TradingFees>;
18
18
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Promise<import("./base/types.js").Order>;
19
19
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
20
20
  createDepositAddress(code: string, params?: {}): Promise<{
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/blockchaincom.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, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class blockchaincom
5
5
  * @augments Exchange
@@ -24,7 +24,7 @@ export default class blockchaincom extends Exchange {
24
24
  symbol: string;
25
25
  info: any;
26
26
  }>;
27
- fetchTradingFees(params?: {}): Promise<{}>;
27
+ fetchTradingFees(params?: {}): Promise<TradingFees>;
28
28
  fetchCanceledOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
29
29
  fetchClosedOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
30
30
  fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/blofin.js';
2
- import type { Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory, OrderRequest, Str, Transaction, Ticker, OrderBook, Balances, Tickers, Market, Strings, Currency, Position, TransferEntry, Leverage, Leverages, MarginMode, Num } from './base/types.js';
2
+ import type { Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory, OrderRequest, Str, Transaction, Ticker, OrderBook, Balances, Tickers, Market, Strings, Currency, Position, TransferEntry, Leverage, Leverages, MarginMode, Num, TradingFeeInterface } from './base/types.js';
3
3
  /**
4
4
  * @class blofin
5
5
  * @augments Exchange
@@ -58,12 +58,7 @@ export default class blofin extends Exchange {
58
58
  parseBalanceByType(type: any, response: any): Balances;
59
59
  parseTradingBalance(response: any): Balances;
60
60
  parseFundingBalance(response: any): Balances;
61
- parseTradingFee(fee: any, market?: Market): {
62
- info: any;
63
- symbol: string;
64
- maker: number;
65
- taker: number;
66
- };
61
+ parseTradingFee(fee: any, market?: Market): TradingFeeInterface;
67
62
  fetchBalance(params?: {}): Promise<Balances>;
68
63
  createOrderRequest(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): any;
69
64
  parseOrderStatus(status: any): string;
package/js/src/blofin.js CHANGED
@@ -944,6 +944,8 @@ export default class blofin extends Exchange {
944
944
  // blofin returns the fees as negative values opposed to other exchanges, so the sign needs to be flipped
945
945
  'maker': this.parseNumber(Precise.stringNeg(this.safeString2(fee, 'maker', 'makerU'))),
946
946
  'taker': this.parseNumber(Precise.stringNeg(this.safeString2(fee, 'taker', 'takerU'))),
947
+ 'percentage': undefined,
948
+ 'tierBased': undefined,
947
949
  };
948
950
  }
949
951
  async fetchBalance(params = {}) {