ccxt 4.1.53 → 4.1.55

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 (185) hide show
  1. package/README.md +8 -7
  2. package/dist/ccxt.browser.js +2329 -818
  3. package/dist/ccxt.browser.min.js +10 -10
  4. package/dist/cjs/ccxt.js +4 -1
  5. package/dist/cjs/src/abstract/p2b.js +9 -0
  6. package/dist/cjs/src/ace.js +2 -2
  7. package/dist/cjs/src/alpaca.js +1 -1
  8. package/dist/cjs/src/base/Exchange.js +25 -62
  9. package/dist/cjs/src/base/errors.js +1 -1
  10. package/dist/cjs/src/bigone.js +1 -6
  11. package/dist/cjs/src/binance.js +10 -3
  12. package/dist/cjs/src/bingx.js +1 -1
  13. package/dist/cjs/src/bitget.js +670 -405
  14. package/dist/cjs/src/bitmart.js +29 -62
  15. package/dist/cjs/src/bitmex.js +2 -2
  16. package/dist/cjs/src/bittrex.js +1 -3
  17. package/dist/cjs/src/coinbase.js +53 -3
  18. package/dist/cjs/src/coinex.js +23 -33
  19. package/dist/cjs/src/coinone.js +2 -2
  20. package/dist/cjs/src/digifinex.js +2 -2
  21. package/dist/cjs/src/idex.js +2 -2
  22. package/dist/cjs/src/kuna.js +6 -0
  23. package/dist/cjs/src/p2b.js +1246 -0
  24. package/dist/cjs/src/phemex.js +8 -8
  25. package/dist/cjs/src/poloniex.js +3 -2
  26. package/dist/cjs/src/poloniexfutures.js +1 -1
  27. package/dist/cjs/src/pro/hitbtc.js +1 -1
  28. package/dist/cjs/src/tidex.js +2 -2
  29. package/dist/cjs/src/timex.js +1 -1
  30. package/dist/cjs/src/whitebit.js +2 -2
  31. package/js/ccxt.d.ts +5 -2
  32. package/js/ccxt.js +4 -2
  33. package/js/src/abstract/binance.d.ts +1 -0
  34. package/js/src/abstract/binancecoinm.d.ts +1 -0
  35. package/js/src/abstract/binanceus.d.ts +1 -0
  36. package/js/src/abstract/binanceusdm.d.ts +1 -0
  37. package/js/src/abstract/bitget.d.ts +495 -254
  38. package/js/src/abstract/coinbase.d.ts +2 -0
  39. package/js/src/abstract/p2b.d.ts +25 -0
  40. package/js/src/abstract/p2b.js +11 -0
  41. package/js/src/ace.d.ts +7 -7
  42. package/js/src/ace.js +2 -2
  43. package/js/src/alpaca.d.ts +4 -4
  44. package/js/src/alpaca.js +1 -1
  45. package/js/src/ascendex.d.ts +26 -26
  46. package/js/src/base/Exchange.d.ts +48 -48
  47. package/js/src/base/Exchange.js +25 -62
  48. package/js/src/base/Precise.d.ts +13 -12
  49. package/js/src/base/errorHierarchy.d.ts +10 -9
  50. package/js/src/base/errorHierarchy.js +10 -9
  51. package/js/src/base/errors.d.ts +1 -1
  52. package/js/src/base/errors.js +1 -1
  53. package/js/src/base/functions/type.d.ts +18 -18
  54. package/js/src/base/types.d.ts +27 -23
  55. package/js/src/bigone.d.ts +9 -9
  56. package/js/src/bigone.js +1 -6
  57. package/js/src/binance.d.ts +57 -100
  58. package/js/src/binance.js +10 -3
  59. package/js/src/binancecoinm.d.ts +2 -2
  60. package/js/src/binanceusdm.d.ts +2 -2
  61. package/js/src/bingx.d.ts +22 -22
  62. package/js/src/bingx.js +1 -1
  63. package/js/src/bit2c.d.ts +7 -7
  64. package/js/src/bitbank.d.ts +7 -7
  65. package/js/src/bitbns.d.ts +6 -6
  66. package/js/src/bitfinex.d.ts +12 -12
  67. package/js/src/bitfinex2.d.ts +19 -19
  68. package/js/src/bitflyer.d.ts +8 -8
  69. package/js/src/bitforex.d.ts +5 -5
  70. package/js/src/bitget.d.ts +44 -44
  71. package/js/src/bitget.js +670 -405
  72. package/js/src/bithumb.d.ts +8 -8
  73. package/js/src/bitmart.d.ts +41 -36
  74. package/js/src/bitmart.js +29 -62
  75. package/js/src/bitmex.d.ts +21 -21
  76. package/js/src/bitmex.js +2 -2
  77. package/js/src/bitopro.d.ts +10 -10
  78. package/js/src/bitpanda.d.ts +10 -10
  79. package/js/src/bitrue.d.ts +11 -11
  80. package/js/src/bitso.d.ts +9 -9
  81. package/js/src/bitstamp.d.ts +13 -13
  82. package/js/src/bittrex.d.ts +14 -14
  83. package/js/src/bittrex.js +1 -3
  84. package/js/src/bitvavo.d.ts +9 -9
  85. package/js/src/bl3p.d.ts +3 -3
  86. package/js/src/blockchaincom.d.ts +6 -6
  87. package/js/src/btcalpha.d.ts +8 -8
  88. package/js/src/btcbox.d.ts +4 -4
  89. package/js/src/btcmarkets.d.ts +7 -7
  90. package/js/src/btcturk.d.ts +7 -7
  91. package/js/src/bybit.d.ts +36 -79
  92. package/js/src/cex.d.ts +6 -6
  93. package/js/src/coinbase.d.ts +16 -15
  94. package/js/src/coinbase.js +53 -3
  95. package/js/src/coinbasepro.d.ts +10 -10
  96. package/js/src/coincheck.d.ts +5 -5
  97. package/js/src/coinex.d.ts +52 -46
  98. package/js/src/coinex.js +23 -33
  99. package/js/src/coinlist.d.ts +14 -14
  100. package/js/src/coinmate.d.ts +5 -5
  101. package/js/src/coinone.d.ts +5 -5
  102. package/js/src/coinone.js +2 -2
  103. package/js/src/coinsph.d.ts +13 -13
  104. package/js/src/coinspot.d.ts +4 -4
  105. package/js/src/cryptocom.d.ts +19 -19
  106. package/js/src/currencycom.d.ts +14 -14
  107. package/js/src/delta.d.ts +29 -72
  108. package/js/src/deribit.d.ts +21 -21
  109. package/js/src/digifinex.d.ts +39 -39
  110. package/js/src/digifinex.js +2 -2
  111. package/js/src/exmo.d.ts +15 -15
  112. package/js/src/gate.d.ts +46 -89
  113. package/js/src/gemini.d.ts +8 -8
  114. package/js/src/hitbtc.d.ts +28 -28
  115. package/js/src/hollaex.d.ts +13 -13
  116. package/js/src/htx.d.ts +38 -38
  117. package/js/src/huobijp.d.ts +10 -10
  118. package/js/src/idex.d.ts +7 -7
  119. package/js/src/idex.js +2 -2
  120. package/js/src/independentreserve.d.ts +4 -4
  121. package/js/src/indodax.d.ts +7 -7
  122. package/js/src/kraken.d.ts +17 -17
  123. package/js/src/krakenfutures.d.ts +15 -15
  124. package/js/src/kucoin.d.ts +24 -24
  125. package/js/src/kucoinfutures.d.ts +16 -16
  126. package/js/src/kuna.d.ts +11 -11
  127. package/js/src/kuna.js +2 -2
  128. package/js/src/latoken.d.ts +11 -11
  129. package/js/src/lbank.d.ts +11 -11
  130. package/js/src/luno.d.ts +7 -7
  131. package/js/src/lykke.d.ts +6 -6
  132. package/js/src/mercado.d.ts +6 -6
  133. package/js/src/mexc.d.ts +25 -25
  134. package/js/src/ndax.d.ts +10 -10
  135. package/js/src/novadax.d.ts +13 -13
  136. package/js/src/oceanex.d.ts +8 -8
  137. package/js/src/okcoin.d.ts +16 -16
  138. package/js/src/okx.d.ts +50 -93
  139. package/js/src/p2b.d.ts +35 -0
  140. package/js/src/p2b.js +1246 -0
  141. package/js/src/paymium.d.ts +10 -10
  142. package/js/src/phemex.d.ts +34 -34
  143. package/js/src/phemex.js +8 -8
  144. package/js/src/poloniex.d.ts +14 -14
  145. package/js/src/poloniex.js +3 -2
  146. package/js/src/poloniexfutures.d.ts +10 -10
  147. package/js/src/poloniexfutures.js +1 -1
  148. package/js/src/pro/binance.d.ts +5 -5
  149. package/js/src/pro/bitget.d.ts +3 -3
  150. package/js/src/pro/bitpanda.d.ts +3 -3
  151. package/js/src/pro/bybit.d.ts +4 -4
  152. package/js/src/pro/cex.d.ts +2 -2
  153. package/js/src/pro/coinbasepro.d.ts +4 -4
  154. package/js/src/pro/coinex.d.ts +2 -2
  155. package/js/src/pro/cryptocom.d.ts +3 -3
  156. package/js/src/pro/currencycom.d.ts +1 -1
  157. package/js/src/pro/gate.d.ts +4 -4
  158. package/js/src/pro/hitbtc.d.ts +2 -2
  159. package/js/src/pro/hitbtc.js +1 -1
  160. package/js/src/pro/htx.d.ts +2 -2
  161. package/js/src/pro/kraken.d.ts +1 -1
  162. package/js/src/pro/krakenfutures.d.ts +3 -3
  163. package/js/src/pro/kucoin.d.ts +2 -2
  164. package/js/src/pro/okx.d.ts +4 -4
  165. package/js/src/pro/poloniex.d.ts +2 -2
  166. package/js/src/pro/poloniexfutures.d.ts +1 -1
  167. package/js/src/pro/wazirx.d.ts +2 -2
  168. package/js/src/pro/woo.d.ts +2 -2
  169. package/js/src/probit.d.ts +13 -13
  170. package/js/src/tidex.d.ts +7 -7
  171. package/js/src/tidex.js +2 -2
  172. package/js/src/timex.d.ts +13 -13
  173. package/js/src/timex.js +1 -1
  174. package/js/src/tokocrypto.d.ts +8 -8
  175. package/js/src/upbit.d.ts +21 -21
  176. package/js/src/wavesexchange.d.ts +10 -10
  177. package/js/src/wazirx.d.ts +7 -7
  178. package/js/src/whitebit.d.ts +17 -17
  179. package/js/src/whitebit.js +2 -2
  180. package/js/src/woo.d.ts +23 -23
  181. package/js/src/yobit.d.ts +6 -6
  182. package/js/src/zaif.d.ts +6 -6
  183. package/js/src/zonda.d.ts +16 -16
  184. package/package.json +11 -6
  185. package/skip-tests.json +7 -0
@@ -59,6 +59,8 @@ interface Exchange {
59
59
  v3PrivateGetBrokerageBestBidAsk(params?: {}): Promise<implicitReturnType>;
60
60
  v3PrivatePostBrokerageOrders(params?: {}): Promise<implicitReturnType>;
61
61
  v3PrivatePostBrokerageOrdersBatchCancel(params?: {}): Promise<implicitReturnType>;
62
+ v3PrivatePostBrokerageOrdersEdit(params?: {}): Promise<implicitReturnType>;
63
+ v3PrivatePostBrokerageOrdersEditPreview(params?: {}): Promise<implicitReturnType>;
62
64
  }
63
65
  declare abstract class Exchange extends _Exchange {
64
66
  }
@@ -0,0 +1,25 @@
1
+ import { implicitReturnType } from '../base/types.js';
2
+ import { Exchange as _Exchange } from '../base/Exchange.js';
3
+ interface Exchange {
4
+ publicGetMarkets(params?: {}): Promise<implicitReturnType>;
5
+ publicGetMarket(params?: {}): Promise<implicitReturnType>;
6
+ publicGetTickers(params?: {}): Promise<implicitReturnType>;
7
+ publicGetTicker(params?: {}): Promise<implicitReturnType>;
8
+ publicGetBook(params?: {}): Promise<implicitReturnType>;
9
+ publicGetHistory(params?: {}): Promise<implicitReturnType>;
10
+ publicGetDepthResult(params?: {}): Promise<implicitReturnType>;
11
+ publicGetMarketKline(params?: {}): Promise<implicitReturnType>;
12
+ privatePostAccountBalances(params?: {}): Promise<implicitReturnType>;
13
+ privatePostAccountBalance(params?: {}): Promise<implicitReturnType>;
14
+ privatePostOrderNew(params?: {}): Promise<implicitReturnType>;
15
+ privatePostOrderCancel(params?: {}): Promise<implicitReturnType>;
16
+ privatePostOrders(params?: {}): Promise<implicitReturnType>;
17
+ privatePostAccountMarketOrderHistory(params?: {}): Promise<implicitReturnType>;
18
+ privatePostAccountMarketDealHistory(params?: {}): Promise<implicitReturnType>;
19
+ privatePostAccountOrder(params?: {}): Promise<implicitReturnType>;
20
+ privatePostAccountOrderHistory(params?: {}): Promise<implicitReturnType>;
21
+ privatePostAccountExecutedHistory(params?: {}): Promise<implicitReturnType>;
22
+ }
23
+ declare abstract class Exchange extends _Exchange {
24
+ }
25
+ export default Exchange;
@@ -0,0 +1,11 @@
1
+ // ----------------------------------------------------------------------------
2
+
3
+ // PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
4
+ // https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
5
+ // EDIT THE CORRESPONDENT .ts FILE INSTEAD
6
+
7
+ // -------------------------------------------------------------------------------
8
+ import { Exchange as _Exchange } from '../base/Exchange.js';
9
+ class Exchange extends _Exchange {
10
+ }
11
+ export default Exchange;
package/js/src/ace.d.ts CHANGED
@@ -1,26 +1,26 @@
1
1
  import Exchange from './abstract/ace.js';
2
- import { Balances, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Tickers, Trade } from './base/types.js';
2
+ import { Balances, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade } from './base/types.js';
3
3
  /**
4
4
  * @class ace
5
5
  * @extends Exchange
6
6
  */
7
7
  export default class ace extends Exchange {
8
8
  describe(): any;
9
- fetchMarkets(params?: {}): Promise<Market[]>;
9
+ fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
10
10
  parseMarket(market: any): Market;
11
- parseTicker(ticker: any, market?: any): Ticker;
11
+ parseTicker(ticker: any, market?: Market): Ticker;
12
12
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
13
- fetchTickers(symbols?: string[], params?: {}): Promise<Tickers>;
13
+ fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
14
14
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
15
- parseOHLCV(ohlcv: any, market?: any): OHLCV;
15
+ parseOHLCV(ohlcv: any, market?: Market): OHLCV;
16
16
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
17
17
  parseOrderStatus(status: any): string;
18
- parseOrder(order: any, market?: any): Order;
18
+ parseOrder(order: any, market?: Market): Order;
19
19
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
20
20
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
21
21
  fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
22
22
  fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
23
- parseTrade(trade: any, market?: any): Trade;
23
+ parseTrade(trade: any, market?: Market): Trade;
24
24
  fetchOrderTrades(id: string, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
25
25
  fetchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
26
26
  parseBalance(response: any): Balances;
package/js/src/ace.js CHANGED
@@ -514,7 +514,7 @@ export default class ace extends Exchange {
514
514
  // "type": 1
515
515
  // }
516
516
  //
517
- let id = undefined;
517
+ let id;
518
518
  let timestamp = undefined;
519
519
  let symbol = undefined;
520
520
  let price = undefined;
@@ -794,7 +794,7 @@ export default class ace extends Exchange {
794
794
  symbol = baseId + '/' + quoteId;
795
795
  }
796
796
  let side = undefined;
797
- const tradeSide = this.safeNumber(trade, 'buyOrSell');
797
+ const tradeSide = this.safeInteger(trade, 'buyOrSell');
798
798
  if (tradeSide !== undefined) {
799
799
  side = (tradeSide === 1) ? 'buy' : 'sell';
800
800
  }
@@ -6,20 +6,20 @@ import { Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Trade
6
6
  */
7
7
  export default class alpaca extends Exchange {
8
8
  describe(): any;
9
- fetchMarkets(params?: {}): Promise<Market[]>;
9
+ fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
10
10
  parseMarket(asset: any): Market;
11
11
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
12
12
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
13
13
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
14
- parseOHLCV(ohlcv: any, market?: any): OHLCV;
14
+ parseOHLCV(ohlcv: any, market?: Market): OHLCV;
15
15
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
16
16
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
17
17
  fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
18
18
  fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
19
- parseOrder(order: any, market?: any): Order;
19
+ parseOrder(order: any, market?: Market): Order;
20
20
  parseOrderStatus(status: any): string;
21
21
  parseTimeInForce(timeInForce: any): string;
22
- parseTrade(trade: any, market?: any): Trade;
22
+ parseTrade(trade: any, market?: Market): Trade;
23
23
  sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
24
24
  url: any;
25
25
  method: string;
package/js/src/alpaca.js CHANGED
@@ -764,7 +764,7 @@ export default class alpaca extends Exchange {
764
764
  const datetime = this.safeString(trade, 't');
765
765
  const timestamp = this.parse8601(datetime);
766
766
  const alpacaSide = this.safeString(trade, 'tks');
767
- let side = undefined;
767
+ let side;
768
768
  if (alpacaSide === 'B') {
769
769
  side = 'buy';
770
770
  }
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/ascendex.js';
2
- import { FundingHistory, Int, OHLCV, Order, OrderSide, OrderType, OrderRequest, Str, Trade, Balances, Transaction, Ticker, OrderBook, Tickers } from './base/types.js';
2
+ import { FundingHistory, Int, OHLCV, Order, OrderSide, OrderType, OrderRequest, Str, Trade, Balances, Transaction, Ticker, OrderBook, Tickers, Strings, Currency, Market } from './base/types.js';
3
3
  /**
4
4
  * @class ascendex
5
5
  * @extends Exchange
@@ -21,15 +21,15 @@ export default class ascendex extends Exchange {
21
21
  parseSwapBalance(response: any): Balances;
22
22
  fetchBalance(params?: {}): Promise<Balances>;
23
23
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
24
- parseTicker(ticker: any, market?: any): Ticker;
24
+ parseTicker(ticker: any, market?: Market): Ticker;
25
25
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
26
- fetchTickers(symbols?: string[], params?: {}): Promise<Tickers>;
27
- parseOHLCV(ohlcv: any, market?: any): OHLCV;
26
+ fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
27
+ parseOHLCV(ohlcv: any, market?: Market): OHLCV;
28
28
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
29
- parseTrade(trade: any, market?: any): Trade;
29
+ parseTrade(trade: any, market?: Market): Trade;
30
30
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
31
31
  parseOrderStatus(status: any): string;
32
- parseOrder(order: any, market?: any): Order;
32
+ parseOrder(order: any, market?: Market): Order;
33
33
  fetchTradingFees(params?: {}): Promise<{}>;
34
34
  createOrderRequest(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): any;
35
35
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
@@ -39,8 +39,8 @@ export default class ascendex extends Exchange {
39
39
  fetchClosedOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
40
40
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
41
41
  cancelAllOrders(symbol?: Str, params?: {}): Promise<any>;
42
- parseDepositAddress(depositAddress: any, currency?: any): {
43
- currency: any;
42
+ parseDepositAddress(depositAddress: any, currency?: Currency): {
43
+ currency: string;
44
44
  address: string;
45
45
  tag: string;
46
46
  network: string;
@@ -52,12 +52,12 @@ export default class ascendex extends Exchange {
52
52
  fetchWithdrawals(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
53
53
  fetchDepositsWithdrawals(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
54
54
  parseTransactionStatus(status: any): string;
55
- parseTransaction(transaction: any, currency?: any): Transaction;
56
- fetchPositions(symbols?: string[], params?: {}): Promise<import("./base/types.js").Position[]>;
57
- parsePosition(position: any, market?: any): import("./base/types.js").Position;
58
- parseFundingRate(contract: any, market?: any): {
55
+ parseTransaction(transaction: any, currency?: Currency): Transaction;
56
+ fetchPositions(symbols?: Strings, params?: {}): Promise<import("./base/types.js").Position[]>;
57
+ parsePosition(position: any, market?: Market): import("./base/types.js").Position;
58
+ parseFundingRate(contract: any, market?: Market): {
59
59
  info: any;
60
- symbol: any;
60
+ symbol: string;
61
61
  markPrice: number;
62
62
  indexPrice: number;
63
63
  interestRate: number;
@@ -74,23 +74,23 @@ export default class ascendex extends Exchange {
74
74
  fundingTimestamp: number;
75
75
  fundingDatetime: string;
76
76
  };
77
- fetchFundingRates(symbols?: string[], params?: {}): Promise<any>;
77
+ fetchFundingRates(symbols?: Strings, params?: {}): Promise<any>;
78
78
  modifyMarginHelper(symbol: string, amount: any, type: any, params?: {}): Promise<any>;
79
- parseMarginModification(data: any, market?: any): {
79
+ parseMarginModification(data: any, market?: Market): {
80
80
  info: any;
81
81
  type: any;
82
82
  amount: any;
83
- code: any;
84
- symbol: any;
83
+ code: string;
84
+ symbol: string;
85
85
  status: string;
86
86
  };
87
87
  reduceMargin(symbol: string, amount: any, params?: {}): Promise<any>;
88
88
  addMargin(symbol: string, amount: any, params?: {}): Promise<any>;
89
89
  setLeverage(leverage: any, symbol?: Str, params?: {}): Promise<any>;
90
90
  setMarginMode(marginMode: any, symbol?: Str, params?: {}): Promise<any>;
91
- fetchLeverageTiers(symbols?: string[], params?: {}): Promise<{}>;
92
- parseMarketLeverageTiers(info: any, market?: any): any[];
93
- parseDepositWithdrawFee(fee: any, currency?: any): {
91
+ fetchLeverageTiers(symbols?: Strings, params?: {}): Promise<{}>;
92
+ parseMarketLeverageTiers(info: any, market?: Market): any[];
93
+ parseDepositWithdrawFee(fee: any, currency?: Currency): {
94
94
  info: any;
95
95
  withdraw: {
96
96
  fee: any;
@@ -102,24 +102,24 @@ export default class ascendex extends Exchange {
102
102
  };
103
103
  networks: {};
104
104
  };
105
- fetchDepositWithdrawFees(codes?: string[], params?: {}): Promise<any>;
105
+ fetchDepositWithdrawFees(codes?: Strings, params?: {}): Promise<any>;
106
106
  transfer(code: string, amount: any, fromAccount: any, toAccount: any, params?: {}): Promise<{
107
107
  info: any;
108
108
  id: any;
109
109
  timestamp: number;
110
110
  datetime: string;
111
- currency: any;
111
+ currency: string;
112
112
  amount: any;
113
113
  fromAccount: any;
114
114
  toAccount: any;
115
115
  status: string;
116
116
  }>;
117
- parseTransfer(transfer: any, currency?: any): {
117
+ parseTransfer(transfer: any, currency?: Currency): {
118
118
  info: any;
119
119
  id: any;
120
120
  timestamp: number;
121
121
  datetime: string;
122
- currency: any;
122
+ currency: string;
123
123
  amount: any;
124
124
  fromAccount: any;
125
125
  toAccount: any;
@@ -127,9 +127,9 @@ export default class ascendex extends Exchange {
127
127
  };
128
128
  parseTransferStatus(status: any): "ok" | "failed";
129
129
  fetchFundingHistory(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<FundingHistory[]>;
130
- parseIncome(income: any, market?: any): {
130
+ parseIncome(income: any, market?: Market): {
131
131
  info: any;
132
- symbol: any;
132
+ symbol: string;
133
133
  code: string;
134
134
  timestamp: number;
135
135
  datetime: string;
@@ -4,7 +4,7 @@ ExchangeError, AuthenticationError, DDoSProtection, RequestTimeout, ExchangeNotA
4
4
  import WsClient from './ws/WsClient.js';
5
5
  import { Future } from './ws/Future.js';
6
6
  import { OrderBook as WsOrderBook, IndexedOrderBook, CountedOrderBook } from './ws/OrderBook.js';
7
- import { Market, Trade, Ticker, OHLCV, OHLCVC, Order, OrderBook, Balance, Balances, Dictionary, DepositAddressResponse, Currency, MinMax, IndexType, Int, OrderType, OrderSide, Position, FundingRateHistory, OpenInterest, Liquidation, OrderRequest, FundingHistory, MarginMode, Tickers, Greeks } from './types.js';
7
+ import { Market, Trade, Ticker, OHLCV, OHLCVC, Order, OrderBook, Balance, Balances, Dictionary, DepositAddressResponse, Currency, MinMax, IndexType, Int, OrderType, OrderSide, Position, FundingRateHistory, OpenInterest, Liquidation, OrderRequest, FundingHistory, MarginMode, Tickers, Greeks, Str, Num, MarketInterface, CurrencyInterface } from './types.js';
8
8
  export { Market, Trade, Fee, Ticker, OHLCV, OHLCVC, Order, OrderBook, Balance, Balances, Dictionary, Transaction, DepositAddressResponse, Currency, MinMax, IndexType, Int, OrderType, OrderSide, Position, FundingRateHistory, Liquidation, FundingHistory, Greeks } from './types.js';
9
9
  /**
10
10
  * @class Exchange
@@ -44,7 +44,7 @@ export default class Exchange {
44
44
  minFundingAddressLength: number;
45
45
  substituteCommonCurrencyCodes: boolean;
46
46
  quoteJsonNumbers: boolean;
47
- number: NumberConstructor;
47
+ number: (numberString: string) => number;
48
48
  handleContentTypeApplicationZip: boolean;
49
49
  reduceFees: boolean;
50
50
  fetchImplementation: any;
@@ -555,24 +555,24 @@ export default class Exchange {
555
555
  fetchTradingLimits(symbols?: string[], params?: {}): Promise<any>;
556
556
  parseMarket(market: any): Market;
557
557
  parseMarkets(markets: any): Market[];
558
- parseTicker(ticker: object, market?: any): Ticker;
559
- parseDepositAddress(depositAddress: any, currency?: any): void;
560
- parseTrade(trade: object, market?: any): Trade;
561
- parseTransaction(transaction: any, currency?: any): void;
562
- parseTransfer(transfer: any, currency?: any): void;
558
+ parseTicker(ticker: object, market?: Market): Ticker;
559
+ parseDepositAddress(depositAddress: any, currency?: Currency): void;
560
+ parseTrade(trade: object, market?: Market): Trade;
561
+ parseTransaction(transaction: any, currency?: Currency): void;
562
+ parseTransfer(transfer: any, currency?: Currency): void;
563
563
  parseAccount(account: any): void;
564
- parseLedgerEntry(item: any, currency?: any): void;
565
- parseOrder(order: any, market?: any): Order;
564
+ parseLedgerEntry(item: any, currency?: Currency): void;
565
+ parseOrder(order: any, market?: Market): Order;
566
566
  fetchBorrowRates(params?: {}): Promise<any>;
567
- parseMarketLeverageTiers(info: any, market?: any): void;
567
+ parseMarketLeverageTiers(info: any, market?: Market): void;
568
568
  fetchLeverageTiers(symbols?: string[], params?: {}): Promise<any>;
569
- parsePosition(position: any, market?: any): void;
570
- parseFundingRateHistory(info: any, market?: any): FundingRateHistory;
571
- parseBorrowInterest(info: any, market?: any): void;
572
- parseWsTrade(trade: any, market?: any): Trade;
573
- parseWsOrder(order: any, market?: any): Order;
574
- parseWsOrderTrade(trade: any, market?: any): Trade;
575
- parseWsOHLCV(ohlcv: any, market?: any): OHLCV;
569
+ parsePosition(position: any, market?: Market): void;
570
+ parseFundingRateHistory(info: any, market?: Market): FundingRateHistory;
571
+ parseBorrowInterest(info: any, market?: Market): void;
572
+ parseWsTrade(trade: any, market?: Market): Trade;
573
+ parseWsOrder(order: any, market?: Market): Order;
574
+ parseWsOrderTrade(trade: any, market?: Market): Trade;
575
+ parseWsOHLCV(ohlcv: any, market?: Market): OHLCV;
576
576
  fetchFundingRates(symbols?: string[], params?: {}): Promise<any>;
577
577
  transfer(code: string, amount: any, fromAccount: any, toAccount: any, params?: {}): Promise<any>;
578
578
  withdraw(code: string, amount: any, address: any, tag?: any, params?: {}): Promise<any>;
@@ -595,7 +595,7 @@ export default class Exchange {
595
595
  };
596
596
  };
597
597
  };
598
- safeLedgerEntry(entry: object, currency?: object): {
598
+ safeLedgerEntry(entry: object, currency?: Currency): {
599
599
  id: string;
600
600
  timestamp: number;
601
601
  datetime: string;
@@ -604,7 +604,7 @@ export default class Exchange {
604
604
  referenceId: string;
605
605
  referenceAccount: string;
606
606
  type: string;
607
- currency: any;
607
+ currency: string;
608
608
  amount: number;
609
609
  before: number;
610
610
  after: number;
@@ -613,22 +613,22 @@ export default class Exchange {
613
613
  info: object;
614
614
  };
615
615
  safeCurrencyStructure(currency: object): any;
616
- safeMarketStructure(market?: object): any;
616
+ safeMarketStructure(market?: any): MarketInterface;
617
617
  setMarkets(markets: any, currencies?: any): Dictionary<any>;
618
618
  safeBalance(balance: object): Balances;
619
- safeOrder(order: object, market?: object): Order;
620
- parseOrders(orders: object, market?: object, since?: Int, limit?: Int, params?: {}): Order[];
619
+ safeOrder(order: object, market?: Market): Order;
620
+ parseOrders(orders: object, market?: Market, since?: Int, limit?: Int, params?: {}): Order[];
621
621
  calculateFee(symbol: string, type: string, side: string, amount: number, price: number, takerOrMaker?: string, params?: {}): {
622
622
  type: string;
623
623
  currency: any;
624
624
  rate: number;
625
625
  cost: number;
626
626
  };
627
- safeLiquidation(liquidation: object, market?: object): Liquidation;
628
- safeTrade(trade: object, market?: object): Trade;
627
+ safeLiquidation(liquidation: object, market?: Market): Liquidation;
628
+ safeTrade(trade: object, market?: Market): Trade;
629
629
  invertFlatStringDictionary(dict: any): {};
630
630
  reduceFeesByCurrency(fees: any): any[];
631
- safeTicker(ticker: object, market?: any): Ticker;
631
+ safeTicker(ticker: object, market?: Market): Ticker;
632
632
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
633
633
  watchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
634
634
  convertTradingViewToOHLCV(ohlcvs: any, timestamp?: string, open?: string, high?: string, low?: string, close?: string, volume?: string, ms?: boolean): any[];
@@ -640,7 +640,7 @@ export default class Exchange {
640
640
  parseBidsAsks(bidasks: any, priceKey?: IndexType, amountKey?: IndexType): any[];
641
641
  fetchL2OrderBook(symbol: string, limit?: Int, params?: {}): Promise<any>;
642
642
  filterBySymbol(objects: any, symbol?: string): any;
643
- parseOHLCV(ohlcv: any, market?: any): OHLCV;
643
+ parseOHLCV(ohlcv: any, market?: Market): OHLCV;
644
644
  networkCodeToId(networkCode: any, currencyCode?: any): string;
645
645
  networkIdToCode(networkId: any, currencyCode?: any): string;
646
646
  handleNetworkCodeAndParams(params: any): any[];
@@ -656,10 +656,10 @@ export default class Exchange {
656
656
  safePosition(position: any): Position;
657
657
  parsePositions(positions: any, symbols?: string[], params?: {}): Position[];
658
658
  parseAccounts(accounts: any, params?: {}): any[];
659
- parseTrades(trades: any, market?: object, since?: Int, limit?: Int, params?: {}): Trade[];
660
- parseTransactions(transactions: any, currency?: object, since?: Int, limit?: Int, params?: {}): any;
661
- parseTransfers(transfers: any, currency?: object, since?: Int, limit?: Int, params?: {}): any;
662
- parseLedger(data: any, currency?: object, since?: Int, limit?: Int, params?: {}): any;
659
+ parseTrades(trades: any, market?: Market, since?: Int, limit?: Int, params?: {}): Trade[];
660
+ parseTransactions(transactions: any, currency?: Currency, since?: Int, limit?: Int, params?: {}): any;
661
+ parseTransfers(transfers: any, currency?: Currency, since?: Int, limit?: Int, params?: {}): any;
662
+ parseLedger(data: any, currency?: Currency, since?: Int, limit?: Int, params?: {}): any;
663
663
  nonce(): number;
664
664
  setHeaders(headers: any): any;
665
665
  marketId(symbol: string): string;
@@ -686,8 +686,8 @@ export default class Exchange {
686
686
  fetchPositionsRisk(symbols?: string[], params?: {}): Promise<Position[]>;
687
687
  fetchBidsAsks(symbols?: string[], params?: {}): Promise<Dictionary<Ticker>>;
688
688
  parseBidAsk(bidask: any, priceKey?: IndexType, amountKey?: IndexType): number[];
689
- safeCurrency(currencyId?: string, currency?: any): any;
690
- safeMarket(marketId?: any, market?: any, delimiter?: any, marketType?: any): any;
689
+ safeCurrency(currencyId: Str, currency?: Currency): CurrencyInterface;
690
+ safeMarket(marketId: Str, market?: Market, delimiter?: Str, marketType?: Str): MarketInterface;
691
691
  checkRequiredCredentials(error?: boolean): boolean;
692
692
  oath(): string;
693
693
  fetchBalance(params?: {}): Promise<Balances>;
@@ -754,12 +754,12 @@ export default class Exchange {
754
754
  fetchOpenInterest(symbol: string, params?: {}): Promise<OpenInterest>;
755
755
  fetchFundingRateHistory(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<FundingRateHistory[]>;
756
756
  fetchFundingHistory(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<FundingHistory[]>;
757
- parseLastPrice(price: any, market?: any): any;
757
+ parseLastPrice(price: any, market?: Market): any;
758
758
  fetchDepositAddress(code: string, params?: {}): Promise<any>;
759
759
  account(): Balance;
760
760
  commonCurrencyCode(currency: string): string;
761
761
  currency(code: any): any;
762
- market(symbol: string): any;
762
+ market(symbol: string): MarketInterface;
763
763
  handleWithdrawTagAndParams(tag: any, params: any): any;
764
764
  createLimitOrder(symbol: string, side: OrderSide, amount: any, price: any, params?: {}): Promise<Order>;
765
765
  createMarketOrder(symbol: string, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
@@ -776,8 +776,8 @@ export default class Exchange {
776
776
  isTickPrecision(): boolean;
777
777
  isDecimalPrecision(): boolean;
778
778
  isSignificantPrecision(): boolean;
779
- safeNumber(obj: object, key: IndexType, defaultNumber?: number): number;
780
- safeNumberN(obj: object, arr: IndexType[], defaultNumber?: number): number;
779
+ safeNumber(obj: object, key: IndexType, defaultNumber?: number): Num;
780
+ safeNumberN(obj: object, arr: IndexType[], defaultNumber?: number): Num;
781
781
  parsePrecision(precision?: string): string;
782
782
  loadTimeDifference(params?: {}): Promise<any>;
783
783
  implodeHostname(url: string): any;
@@ -787,25 +787,25 @@ export default class Exchange {
787
787
  createStopOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, stopPrice?: any, params?: {}): Promise<Order>;
788
788
  createStopLimitOrder(symbol: string, side: OrderSide, amount: any, price: any, stopPrice: any, params?: {}): Promise<Order>;
789
789
  createStopMarketOrder(symbol: string, side: OrderSide, amount: any, stopPrice: any, params?: {}): Promise<Order>;
790
- safeCurrencyCode(currencyId?: string, currency?: any): any;
790
+ safeCurrencyCode(currencyId: Str, currency?: Currency): string;
791
791
  filterBySymbolSinceLimit(array: any, symbol?: string, since?: Int, limit?: Int, tail?: boolean): any;
792
792
  filterByCurrencySinceLimit(array: any, code?: any, since?: Int, limit?: Int, tail?: boolean): any;
793
793
  filterBySymbolsSinceLimit(array: any, symbols?: string[], since?: Int, limit?: Int, tail?: boolean): any;
794
794
  parseLastPrices(pricesData: any, symbols?: string[], params?: {}): any;
795
795
  parseTickers(tickers: any, symbols?: string[], params?: {}): Dictionary<Ticker>;
796
796
  parseDepositAddresses(addresses: any, codes?: string[], indexed?: boolean, params?: {}): {};
797
- parseBorrowInterests(response: any, market?: any): any[];
797
+ parseBorrowInterests(response: any, market?: Market): any[];
798
798
  parseFundingRateHistories(response: any, market?: any, since?: Int, limit?: Int): FundingRateHistory[];
799
- safeSymbol(marketId: any, market?: any, delimiter?: any, marketType?: any): any;
800
- parseFundingRate(contract: string, market?: any): void;
801
- parseFundingRates(response: any, market?: any): {};
799
+ safeSymbol(marketId: Str, market?: Market, delimiter?: Str, marketType?: Str): string;
800
+ parseFundingRate(contract: string, market?: Market): void;
801
+ parseFundingRates(response: any, market?: Market): {};
802
802
  isTriggerOrder(params: any): any[];
803
803
  isPostOnly(isMarketOrder: boolean, exchangeSpecificParam: any, params?: {}): boolean;
804
804
  handlePostOnly(isMarketOrder: boolean, exchangeSpecificPostOnlyOption: boolean, params?: any): any[];
805
805
  fetchLastPrices(symbols?: string[], params?: {}): Promise<void>;
806
806
  fetchTradingFees(params?: {}): Promise<any>;
807
807
  fetchTradingFee(symbol: string, params?: {}): Promise<any>;
808
- parseOpenInterest(interest: any, market?: any): OpenInterest;
808
+ parseOpenInterest(interest: any, market?: Market): OpenInterest;
809
809
  parseOpenInterests(response: any, market?: any, since?: Int, limit?: Int): OpenInterest[];
810
810
  fetchFundingRate(symbol: string, params?: {}): Promise<any>;
811
811
  fetchMarkOHLCV(symbol: any, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
@@ -817,12 +817,12 @@ export default class Exchange {
817
817
  checkRequiredMarginArgument(methodName: string, symbol: string, marginMode: string): void;
818
818
  checkRequiredSymbol(methodName: string, symbol: string): void;
819
819
  parseDepositWithdrawFees(response: any, codes?: string[], currencyIdKey?: any): any;
820
- parseDepositWithdrawFee(fee: any, currency?: any): any;
820
+ parseDepositWithdrawFee(fee: any, currency?: Currency): any;
821
821
  depositWithdrawFee(info: any): any;
822
822
  assignDefaultDepositWithdrawFees(fee: any, currency?: any): any;
823
- parseIncome(info: any, market?: any): void;
823
+ parseIncome(info: any, market?: Market): void;
824
824
  parseIncomes(incomes: any, market?: any, since?: Int, limit?: Int): FundingHistory[];
825
- getMarketFromSymbols(symbols?: string[]): any;
825
+ getMarketFromSymbols(symbols?: string[]): MarketInterface;
826
826
  parseWsOHLCVs(ohlcvs: object[], market?: any, timeframe?: string, since?: Int, limit?: Int): any[];
827
827
  fetchTransactions(code?: string, since?: Int, limit?: Int, params?: {}): Promise<any>;
828
828
  filterByArrayPositions(objects: any, key: IndexType, values?: any, indexed?: boolean): Position[];
@@ -839,9 +839,9 @@ export default class Exchange {
839
839
  sortCursorPaginatedResult(result: any): any;
840
840
  removeRepeatedElementsFromArray(input: any): any;
841
841
  handleUntilOption(key: any, request: any, params: any, multiplier?: number): any[];
842
- safeOpenInterest(interest: any, market?: any): OpenInterest;
843
- parseLiquidation(liquidation: any, market?: any): Liquidation;
842
+ safeOpenInterest(interest: any, market?: Market): OpenInterest;
843
+ parseLiquidation(liquidation: any, market?: Market): Liquidation;
844
844
  parseLiquidations(liquidations: any, market?: any, since?: Int, limit?: Int): Liquidation[];
845
- parseGreeks(greeks: any, market?: any): Greeks;
845
+ parseGreeks(greeks: any, market?: Market): Greeks;
846
846
  }
847
847
  export { Exchange, };
@@ -1655,7 +1655,7 @@ export default class Exchange {
1655
1655
  else {
1656
1656
  this.markets_by_id[value['id']] = [value];
1657
1657
  }
1658
- const market = this.deepExtend(this.safeMarket(), {
1658
+ const market = this.deepExtend(this.safeMarketStructure(), {
1659
1659
  'precision': this.precision,
1660
1660
  'limits': this.limits,
1661
1661
  }, this.fees['trading'], value);
@@ -3026,53 +3026,14 @@ export default class Exchange {
3026
3026
  return {
3027
3027
  'id': currencyId,
3028
3028
  'code': code,
3029
+ 'precision': undefined,
3029
3030
  };
3030
3031
  }
3031
- safeMarket(marketId = undefined, market = undefined, delimiter = undefined, marketType = undefined) {
3032
- const result = {
3033
- 'id': marketId,
3032
+ safeMarket(marketId, market = undefined, delimiter = undefined, marketType = undefined) {
3033
+ const result = this.safeMarketStructure({
3034
3034
  'symbol': marketId,
3035
- 'base': undefined,
3036
- 'quote': undefined,
3037
- 'baseId': undefined,
3038
- 'quoteId': undefined,
3039
- 'active': undefined,
3040
- 'type': undefined,
3041
- 'linear': undefined,
3042
- 'inverse': undefined,
3043
- 'spot': false,
3044
- 'swap': false,
3045
- 'future': false,
3046
- 'option': false,
3047
- 'margin': false,
3048
- 'contract': false,
3049
- 'contractSize': undefined,
3050
- 'expiry': undefined,
3051
- 'expiryDatetime': undefined,
3052
- 'optionType': undefined,
3053
- 'strike': undefined,
3054
- 'settle': undefined,
3055
- 'settleId': undefined,
3056
- 'precision': {
3057
- 'amount': undefined,
3058
- 'price': undefined,
3059
- },
3060
- 'limits': {
3061
- 'amount': {
3062
- 'min': undefined,
3063
- 'max': undefined,
3064
- },
3065
- 'price': {
3066
- 'min': undefined,
3067
- 'max': undefined,
3068
- },
3069
- 'cost': {
3070
- 'min': undefined,
3071
- 'max': undefined,
3072
- },
3073
- },
3074
- 'info': undefined,
3075
- };
3035
+ 'marketId': marketId,
3036
+ });
3076
3037
  if (marketId !== undefined) {
3077
3038
  if ((this.markets_by_id !== undefined) && (marketId in this.markets_by_id)) {
3078
3039
  const markets = this.markets_by_id[marketId];
@@ -3081,13 +3042,17 @@ export default class Exchange {
3081
3042
  return markets[0];
3082
3043
  }
3083
3044
  else {
3084
- if ((marketType === undefined) && (market === undefined)) {
3085
- throw new ArgumentsRequired(this.id + ' safeMarket() requires a fourth argument for ' + marketId + ' to disambiguate between different markets with the same market id');
3045
+ if (marketType === undefined) {
3046
+ if (market === undefined) {
3047
+ throw new ArgumentsRequired(this.id + ' safeMarket() requires a fourth argument for ' + marketId + ' to disambiguate between different markets with the same market id');
3048
+ }
3049
+ else {
3050
+ marketType = market['type'];
3051
+ }
3086
3052
  }
3087
- const inferredMarketType = (marketType === undefined) ? market['type'] : marketType;
3088
3053
  for (let i = 0; i < markets.length; i++) {
3089
3054
  const currentMarket = markets[i];
3090
- if (currentMarket[inferredMarketType]) {
3055
+ if (currentMarket[marketType]) {
3091
3056
  return currentMarket;
3092
3057
  }
3093
3058
  }
@@ -3520,21 +3485,19 @@ export default class Exchange {
3520
3485
  if (this.markets === undefined) {
3521
3486
  throw new ExchangeError(this.id + ' markets not loaded');
3522
3487
  }
3523
- if (typeof symbol === 'string') {
3524
- if (symbol in this.markets) {
3525
- return this.markets[symbol];
3526
- }
3527
- else if (symbol in this.markets_by_id) {
3528
- const markets = this.markets_by_id[symbol];
3529
- const defaultType = this.safeString2(this.options, 'defaultType', 'defaultSubType', 'spot');
3530
- for (let i = 0; i < markets.length; i++) {
3531
- const market = markets[i];
3532
- if (market[defaultType]) {
3533
- return market;
3534
- }
3488
+ if (symbol in this.markets) {
3489
+ return this.markets[symbol];
3490
+ }
3491
+ else if (symbol in this.markets_by_id) {
3492
+ const markets = this.markets_by_id[symbol];
3493
+ const defaultType = this.safeString2(this.options, 'defaultType', 'defaultSubType', 'spot');
3494
+ for (let i = 0; i < markets.length; i++) {
3495
+ const market = markets[i];
3496
+ if (market[defaultType]) {
3497
+ return market;
3535
3498
  }
3536
- return markets[0];
3537
3499
  }
3500
+ return markets[0];
3538
3501
  }
3539
3502
  throw new BadSymbol(this.id + ' does not have market symbol ' + symbol);
3540
3503
  }