ccxt 4.2.31 → 4.2.35

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 (302) hide show
  1. package/.gitattributes +1 -0
  2. package/CONTRIBUTING.md +20 -1
  3. package/README.md +8 -7
  4. package/build.sh +9 -2
  5. package/cleanup.sh +3 -0
  6. package/dist/ccxt.browser.js +741 -501
  7. package/dist/ccxt.browser.min.js +3 -3
  8. package/dist/cjs/ccxt.js +1 -1
  9. package/dist/cjs/src/ace.js +3 -2
  10. package/dist/cjs/src/ascendex.js +1 -1
  11. package/dist/cjs/src/base/Exchange.js +62 -20
  12. package/dist/cjs/src/bigone.js +21 -1
  13. package/dist/cjs/src/binance.js +59 -15
  14. package/dist/cjs/src/bingx.js +4 -3
  15. package/dist/cjs/src/bit2c.js +12 -0
  16. package/dist/cjs/src/bitfinex2.js +12 -1
  17. package/dist/cjs/src/bitget.js +3 -3
  18. package/dist/cjs/src/bitmart.js +1 -1
  19. package/dist/cjs/src/bitrue.js +3 -3
  20. package/dist/cjs/src/blockchaincom.js +1 -1
  21. package/dist/cjs/src/bybit.js +1 -1
  22. package/dist/cjs/src/coinbase.js +2 -2
  23. package/dist/cjs/src/coinex.js +1 -1
  24. package/dist/cjs/src/cryptocom.js +10 -10
  25. package/dist/cjs/src/gate.js +34 -29
  26. package/dist/cjs/src/kraken.js +39 -0
  27. package/dist/cjs/src/krakenfutures.js +25 -3
  28. package/dist/cjs/src/kucoin.js +1 -1
  29. package/dist/cjs/src/mexc.js +2 -1
  30. package/dist/cjs/src/okx.js +4 -3
  31. package/dist/cjs/src/phemex.js +8 -8
  32. package/dist/cjs/src/pro/alpaca.js +8 -4
  33. package/dist/cjs/src/pro/ascendex.js +1 -2
  34. package/dist/cjs/src/pro/binance.js +17 -13
  35. package/dist/cjs/src/pro/bingx.js +1 -1
  36. package/dist/cjs/src/pro/bitfinex.js +21 -24
  37. package/dist/cjs/src/pro/bitfinex2.js +13 -17
  38. package/dist/cjs/src/pro/bitget.js +3 -1
  39. package/dist/cjs/src/pro/bitmart.js +3 -8
  40. package/dist/cjs/src/pro/bitmex.js +4 -7
  41. package/dist/cjs/src/pro/bitopro.js +2 -5
  42. package/dist/cjs/src/pro/bitrue.js +1 -1
  43. package/dist/cjs/src/pro/bitstamp.js +2 -3
  44. package/dist/cjs/src/pro/bitvavo.js +12 -5
  45. package/dist/cjs/src/pro/blockchaincom.js +22 -23
  46. package/dist/cjs/src/pro/bybit.js +5 -5
  47. package/dist/cjs/src/pro/cex.js +7 -7
  48. package/dist/cjs/src/pro/coinbase.js +3 -2
  49. package/dist/cjs/src/pro/coinbasepro.js +1 -1
  50. package/dist/cjs/src/pro/coinex.js +15 -13
  51. package/dist/cjs/src/pro/currencycom.js +5 -7
  52. package/dist/cjs/src/pro/deribit.js +4 -4
  53. package/dist/cjs/src/pro/exmo.js +15 -13
  54. package/dist/cjs/src/pro/gate.js +1 -1
  55. package/dist/cjs/src/pro/gemini.js +4 -2
  56. package/dist/cjs/src/pro/hitbtc.js +9 -8
  57. package/dist/cjs/src/pro/hollaex.js +2 -2
  58. package/dist/cjs/src/pro/htx.js +6 -7
  59. package/dist/cjs/src/pro/huobijp.js +3 -5
  60. package/dist/cjs/src/pro/idex.js +1 -1
  61. package/dist/cjs/src/pro/independentreserve.js +14 -13
  62. package/dist/cjs/src/pro/kraken.js +10 -16
  63. package/dist/cjs/src/pro/krakenfutures.js +10 -6
  64. package/dist/cjs/src/pro/kucoin.js +10 -11
  65. package/dist/cjs/src/pro/kucoinfutures.js +12 -11
  66. package/dist/cjs/src/pro/lbank.js +10 -10
  67. package/dist/cjs/src/pro/luno.js +12 -14
  68. package/dist/cjs/src/pro/mexc.js +3 -2
  69. package/dist/cjs/src/pro/ndax.js +7 -13
  70. package/dist/cjs/src/pro/okcoin.js +7 -12
  71. package/dist/cjs/src/pro/okx.js +6 -11
  72. package/dist/cjs/src/pro/onetrading.js +16 -15
  73. package/dist/cjs/src/pro/p2b.js +5 -3
  74. package/dist/cjs/src/pro/phemex.js +16 -11
  75. package/dist/cjs/src/pro/poloniex.js +6 -4
  76. package/dist/cjs/src/pro/poloniexfutures.js +14 -9
  77. package/dist/cjs/src/pro/probit.js +15 -11
  78. package/dist/cjs/src/pro/upbit.js +8 -8
  79. package/dist/cjs/src/pro/wazirx.js +6 -3
  80. package/dist/cjs/src/pro/woo.js +8 -6
  81. package/dist/cjs/src/probit.js +3 -3
  82. package/dist/cjs/src/tokocrypto.js +2 -2
  83. package/dist/cjs/src/wavesexchange.js +2 -1
  84. package/dist/cjs/src/woo.js +1 -1
  85. package/dist/cjs/src/yobit.js +39 -0
  86. package/js/ccxt.d.ts +1 -1
  87. package/js/ccxt.js +1 -1
  88. package/js/src/ace.d.ts +1 -1
  89. package/js/src/ace.js +3 -2
  90. package/js/src/alpaca.d.ts +1 -1
  91. package/js/src/ascendex.d.ts +5 -15
  92. package/js/src/ascendex.js +1 -1
  93. package/js/src/base/Exchange.d.ts +86 -78
  94. package/js/src/base/Exchange.js +62 -20
  95. package/js/src/base/types.d.ts +90 -6
  96. package/js/src/bigone.d.ts +5 -15
  97. package/js/src/bigone.js +21 -1
  98. package/js/src/binance.d.ts +13 -23
  99. package/js/src/binance.js +59 -15
  100. package/js/src/bingx.d.ts +6 -16
  101. package/js/src/bingx.js +4 -3
  102. package/js/src/bit2c.d.ts +1 -1
  103. package/js/src/bit2c.js +12 -0
  104. package/js/src/bitbank.d.ts +2 -2
  105. package/js/src/bitbns.d.ts +1 -1
  106. package/js/src/bitfinex.d.ts +5 -5
  107. package/js/src/bitfinex2.d.ts +7 -17
  108. package/js/src/bitfinex2.js +12 -1
  109. package/js/src/bitflyer.d.ts +5 -5
  110. package/js/src/bitforex.d.ts +1 -1
  111. package/js/src/bitget.d.ts +8 -38
  112. package/js/src/bitget.js +3 -3
  113. package/js/src/bithumb.d.ts +2 -2
  114. package/js/src/bitmart.d.ts +10 -21
  115. package/js/src/bitmart.js +1 -1
  116. package/js/src/bitmex.d.ts +3 -3
  117. package/js/src/bitopro.d.ts +2 -2
  118. package/js/src/bitrue.d.ts +5 -15
  119. package/js/src/bitrue.js +3 -3
  120. package/js/src/bitso.d.ts +4 -4
  121. package/js/src/bitstamp.d.ts +2 -2
  122. package/js/src/bitteam.d.ts +1 -1
  123. package/js/src/bitvavo.d.ts +3 -3
  124. package/js/src/bl3p.d.ts +1 -1
  125. package/js/src/blockchaincom.d.ts +2 -2
  126. package/js/src/blockchaincom.js +1 -1
  127. package/js/src/btcalpha.d.ts +1 -1
  128. package/js/src/btcbox.d.ts +1 -1
  129. package/js/src/btcmarkets.d.ts +3 -3
  130. package/js/src/btcturk.d.ts +1 -1
  131. package/js/src/bybit.d.ts +8 -8
  132. package/js/src/bybit.js +1 -1
  133. package/js/src/cex.d.ts +1 -1
  134. package/js/src/coinbase.d.ts +6 -50
  135. package/js/src/coinbase.js +2 -2
  136. package/js/src/coinbasepro.d.ts +2 -2
  137. package/js/src/coincheck.d.ts +1 -1
  138. package/js/src/coinex.d.ts +8 -8
  139. package/js/src/coinex.js +1 -1
  140. package/js/src/coinlist.d.ts +4 -14
  141. package/js/src/coinmate.d.ts +2 -2
  142. package/js/src/coinmetro.d.ts +2 -2
  143. package/js/src/coinone.d.ts +1 -1
  144. package/js/src/coinsph.d.ts +2 -2
  145. package/js/src/coinspot.d.ts +1 -1
  146. package/js/src/cryptocom.d.ts +4 -4
  147. package/js/src/cryptocom.js +10 -10
  148. package/js/src/currencycom.d.ts +2 -2
  149. package/js/src/delta.d.ts +2 -2
  150. package/js/src/deribit.d.ts +4 -14
  151. package/js/src/digifinex.d.ts +10 -38
  152. package/js/src/exmo.d.ts +2 -2
  153. package/js/src/gate.d.ts +8 -18
  154. package/js/src/gate.js +34 -29
  155. package/js/src/gemini.d.ts +2 -2
  156. package/js/src/hitbtc.d.ts +6 -16
  157. package/js/src/hollaex.d.ts +2 -2
  158. package/js/src/htx.d.ts +11 -21
  159. package/js/src/huobijp.d.ts +4 -4
  160. package/js/src/idex.d.ts +3 -3
  161. package/js/src/independentreserve.d.ts +2 -2
  162. package/js/src/indodax.d.ts +2 -2
  163. package/js/src/kraken.d.ts +5 -5
  164. package/js/src/kraken.js +39 -0
  165. package/js/src/krakenfutures.d.ts +7 -7
  166. package/js/src/krakenfutures.js +25 -3
  167. package/js/src/kucoin.d.ts +8 -29
  168. package/js/src/kucoin.js +1 -1
  169. package/js/src/kucoinfutures.d.ts +4 -4
  170. package/js/src/kuna.d.ts +2 -2
  171. package/js/src/latoken.d.ts +4 -14
  172. package/js/src/lbank.d.ts +2 -5
  173. package/js/src/luno.d.ts +1 -1
  174. package/js/src/lykke.d.ts +2 -2
  175. package/js/src/mercado.d.ts +2 -2
  176. package/js/src/mexc.d.ts +6 -6
  177. package/js/src/mexc.js +2 -1
  178. package/js/src/ndax.d.ts +2 -2
  179. package/js/src/novadax.d.ts +4 -15
  180. package/js/src/oceanex.d.ts +1 -1
  181. package/js/src/okcoin.d.ts +5 -15
  182. package/js/src/okx.d.ts +8 -18
  183. package/js/src/okx.js +4 -3
  184. package/js/src/onetrading.d.ts +2 -2
  185. package/js/src/p2b.d.ts +1 -1
  186. package/js/src/paymium.d.ts +3 -13
  187. package/js/src/phemex.d.ts +5 -5
  188. package/js/src/phemex.js +8 -8
  189. package/js/src/poloniex.d.ts +4 -14
  190. package/js/src/poloniexfutures.d.ts +1 -1
  191. package/js/src/pro/alpaca.d.ts +2 -2
  192. package/js/src/pro/alpaca.js +8 -4
  193. package/js/src/pro/ascendex.d.ts +2 -2
  194. package/js/src/pro/ascendex.js +1 -2
  195. package/js/src/pro/binance.d.ts +3 -3
  196. package/js/src/pro/binance.js +17 -13
  197. package/js/src/pro/bingx.d.ts +1 -1
  198. package/js/src/pro/bingx.js +1 -1
  199. package/js/src/pro/bitfinex.d.ts +2 -2
  200. package/js/src/pro/bitfinex.js +21 -24
  201. package/js/src/pro/bitfinex2.d.ts +2 -2
  202. package/js/src/pro/bitfinex2.js +13 -17
  203. package/js/src/pro/bitget.js +3 -1
  204. package/js/src/pro/bitmart.d.ts +3 -3
  205. package/js/src/pro/bitmart.js +3 -8
  206. package/js/src/pro/bitmex.d.ts +1 -1
  207. package/js/src/pro/bitmex.js +4 -7
  208. package/js/src/pro/bitopro.d.ts +1 -1
  209. package/js/src/pro/bitopro.js +2 -5
  210. package/js/src/pro/bitrue.js +1 -1
  211. package/js/src/pro/bitstamp.d.ts +1 -1
  212. package/js/src/pro/bitstamp.js +2 -3
  213. package/js/src/pro/bitvavo.d.ts +3 -3
  214. package/js/src/pro/bitvavo.js +12 -5
  215. package/js/src/pro/blockchaincom.d.ts +8 -8
  216. package/js/src/pro/blockchaincom.js +22 -23
  217. package/js/src/pro/bybit.d.ts +2 -2
  218. package/js/src/pro/bybit.js +5 -5
  219. package/js/src/pro/cex.d.ts +1 -1
  220. package/js/src/pro/cex.js +7 -7
  221. package/js/src/pro/coinbase.d.ts +1 -1
  222. package/js/src/pro/coinbase.js +3 -2
  223. package/js/src/pro/coinbasepro.d.ts +1 -1
  224. package/js/src/pro/coinbasepro.js +1 -1
  225. package/js/src/pro/coinex.d.ts +2 -2
  226. package/js/src/pro/coinex.js +15 -13
  227. package/js/src/pro/currencycom.d.ts +1 -1
  228. package/js/src/pro/currencycom.js +5 -7
  229. package/js/src/pro/deribit.d.ts +2 -2
  230. package/js/src/pro/deribit.js +4 -4
  231. package/js/src/pro/exmo.d.ts +2 -2
  232. package/js/src/pro/exmo.js +15 -13
  233. package/js/src/pro/gate.js +1 -1
  234. package/js/src/pro/gemini.d.ts +1 -1
  235. package/js/src/pro/gemini.js +4 -2
  236. package/js/src/pro/hitbtc.d.ts +2 -2
  237. package/js/src/pro/hitbtc.js +9 -8
  238. package/js/src/pro/hollaex.d.ts +2 -2
  239. package/js/src/pro/hollaex.js +2 -2
  240. package/js/src/pro/htx.d.ts +2 -2
  241. package/js/src/pro/htx.js +6 -7
  242. package/js/src/pro/huobijp.d.ts +1 -1
  243. package/js/src/pro/huobijp.js +3 -5
  244. package/js/src/pro/idex.js +1 -1
  245. package/js/src/pro/independentreserve.d.ts +1 -1
  246. package/js/src/pro/independentreserve.js +14 -13
  247. package/js/src/pro/kraken.d.ts +2 -2
  248. package/js/src/pro/kraken.js +10 -16
  249. package/js/src/pro/krakenfutures.d.ts +1 -1
  250. package/js/src/pro/krakenfutures.js +10 -6
  251. package/js/src/pro/kucoin.d.ts +3 -3
  252. package/js/src/pro/kucoin.js +10 -11
  253. package/js/src/pro/kucoinfutures.d.ts +3 -3
  254. package/js/src/pro/kucoinfutures.js +12 -11
  255. package/js/src/pro/lbank.d.ts +1 -1
  256. package/js/src/pro/lbank.js +10 -10
  257. package/js/src/pro/luno.d.ts +2 -2
  258. package/js/src/pro/luno.js +12 -14
  259. package/js/src/pro/mexc.d.ts +2 -2
  260. package/js/src/pro/mexc.js +3 -2
  261. package/js/src/pro/ndax.d.ts +3 -3
  262. package/js/src/pro/ndax.js +7 -13
  263. package/js/src/pro/okcoin.d.ts +1 -1
  264. package/js/src/pro/okcoin.js +7 -12
  265. package/js/src/pro/okx.d.ts +1 -1
  266. package/js/src/pro/okx.js +6 -11
  267. package/js/src/pro/onetrading.d.ts +1 -1
  268. package/js/src/pro/onetrading.js +16 -15
  269. package/js/src/pro/p2b.d.ts +1 -1
  270. package/js/src/pro/p2b.js +5 -3
  271. package/js/src/pro/phemex.d.ts +3 -3
  272. package/js/src/pro/phemex.js +16 -11
  273. package/js/src/pro/poloniex.d.ts +1 -1
  274. package/js/src/pro/poloniex.js +6 -4
  275. package/js/src/pro/poloniexfutures.d.ts +4 -4
  276. package/js/src/pro/poloniexfutures.js +13 -10
  277. package/js/src/pro/probit.d.ts +1 -1
  278. package/js/src/pro/probit.js +14 -12
  279. package/js/src/pro/upbit.js +8 -8
  280. package/js/src/pro/wazirx.d.ts +1 -1
  281. package/js/src/pro/wazirx.js +6 -3
  282. package/js/src/pro/woo.d.ts +3 -3
  283. package/js/src/pro/woo.js +8 -6
  284. package/js/src/probit.d.ts +3 -3
  285. package/js/src/probit.js +3 -3
  286. package/js/src/timex.d.ts +1 -1
  287. package/js/src/tokocrypto.d.ts +3 -3
  288. package/js/src/tokocrypto.js +2 -2
  289. package/js/src/upbit.d.ts +2 -2
  290. package/js/src/wavesexchange.d.ts +3 -4
  291. package/js/src/wavesexchange.js +2 -1
  292. package/js/src/wazirx.d.ts +1 -1
  293. package/js/src/whitebit.d.ts +5 -15
  294. package/js/src/woo.d.ts +5 -15
  295. package/js/src/woo.js +1 -1
  296. package/js/src/yobit.d.ts +21 -6
  297. package/js/src/yobit.js +39 -0
  298. package/js/src/zaif.d.ts +2 -2
  299. package/js/src/zonda.d.ts +4 -14
  300. package/package.json +22 -8
  301. package/skip-tests.json +9 -1
  302. package/tests-manager.sh +1 -2
@@ -3,7 +3,7 @@ import { // eslint-disable-line object-curly-newline
3
3
  ExchangeError, AuthenticationError, DDoSProtection, RequestTimeout, ExchangeNotAvailable, RateLimitExceeded } from "./errors.js";
4
4
  import WsClient from './ws/WsClient.js';
5
5
  import { OrderBook as WsOrderBook, IndexedOrderBook, CountedOrderBook } from './ws/OrderBook.js';
6
- import type { 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, Account } from './types.js';
6
+ import type { Market, Trade, Ticker, OHLCV, OHLCVC, Order, OrderBook, Balance, Balances, Dictionary, Transaction, DepositAddressResponse, Currency, MinMax, IndexType, Int, OrderType, OrderSide, Position, FundingRate, DepositWithdrawFeeNetwork, LedgerEntry, BorrowInterest, OpenInterest, LeverageTier, TransferEntry, FundingRateHistory, Liquidation, FundingHistory, OrderRequest, MarginMode, Tickers, Greeks, Str, Num, MarketInterface, CurrencyInterface, Account } from './types.js';
7
7
  export type { 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';
8
8
  /**
9
9
  * @class Exchange
@@ -12,6 +12,7 @@ export default class Exchange {
12
12
  options: {
13
13
  [key: string]: any;
14
14
  };
15
+ throttleProp: any;
15
16
  api: any;
16
17
  proxy: any;
17
18
  proxyUrl: string;
@@ -161,6 +162,7 @@ export default class Exchange {
161
162
  clients: {};
162
163
  newUpdates: boolean;
163
164
  streaming: {};
165
+ alias: boolean;
164
166
  deepExtend: (...xs: any[]) => any;
165
167
  isNode: boolean;
166
168
  keys: {
@@ -593,7 +595,7 @@ export default class Exchange {
593
595
  filterByValueSinceLimit(array: object[], field: IndexType, value?: any, since?: Int, limit?: Int, key?: string, tail?: boolean): any;
594
596
  setSandboxMode(enabled: any): void;
595
597
  sign(path: any, api?: any, method?: string, params?: {}, headers?: any, body?: any): {};
596
- fetchAccounts(params?: {}): Promise<any>;
598
+ fetchAccounts(params?: {}): Promise<{}>;
597
599
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
598
600
  fetchTradesWs(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
599
601
  watchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
@@ -602,39 +604,43 @@ export default class Exchange {
602
604
  watchOrdersForSymbols(symbols: string[], since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
603
605
  watchOHLCVForSymbols(symbolsAndTimeframes: string[][], since?: Int, limit?: Int, params?: {}): Promise<Dictionary<Dictionary<OHLCV[]>>>;
604
606
  watchOrderBookForSymbols(symbols: string[], limit?: Int, params?: {}): Promise<OrderBook>;
605
- fetchDepositAddresses(codes?: string[], params?: {}): Promise<any>;
607
+ fetchDepositAddresses(codes?: string[], params?: {}): Promise<{}>;
606
608
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
607
609
  fetchMarginMode(symbol?: string, params?: {}): Promise<MarginMode>;
608
610
  fetchRestOrderBookSafe(symbol: any, limit?: any, params?: {}): Promise<OrderBook>;
609
611
  watchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
610
612
  fetchTime(params?: {}): Promise<Int>;
611
- fetchTradingLimits(symbols?: string[], params?: {}): Promise<any>;
613
+ fetchTradingLimits(symbols?: string[], params?: {}): Promise<{}>;
612
614
  parseMarket(market: any): Market;
613
615
  parseMarkets(markets: any): Market[];
614
616
  parseTicker(ticker: object, market?: Market): Ticker;
615
- parseDepositAddress(depositAddress: any, currency?: Currency): void;
617
+ parseDepositAddress(depositAddress: any, currency?: Currency): object;
616
618
  parseTrade(trade: object, market?: Market): Trade;
617
- parseTransaction(transaction: any, currency?: Currency): void;
618
- parseTransfer(transfer: any, currency?: Currency): void;
619
- parseAccount(account: any): void;
620
- parseLedgerEntry(item: any, currency?: Currency): void;
619
+ parseTransaction(transaction: any, currency?: Currency): Transaction;
620
+ parseTransfer(transfer: any, currency?: Currency): object;
621
+ parseAccount(account: any): {};
622
+ parseLedgerEntry(item: any, currency?: Currency): object;
621
623
  parseOrder(order: any, market?: Market): Order;
622
- fetchCrossBorrowRates(params?: {}): Promise<any>;
623
- fetchIsolatedBorrowRates(params?: {}): Promise<any>;
624
- parseMarketLeverageTiers(info: any, market?: Market): void;
625
- fetchLeverageTiers(symbols?: string[], params?: {}): Promise<any>;
626
- parsePosition(position: any, market?: Market): void;
624
+ fetchCrossBorrowRates(params?: {}): Promise<{}>;
625
+ fetchIsolatedBorrowRates(params?: {}): Promise<{}>;
626
+ parseMarketLeverageTiers(info: any, market?: Market): object;
627
+ fetchLeverageTiers(symbols?: string[], params?: {}): Promise<Dictionary<LeverageTier>>;
628
+ parsePosition(position: any, market?: Market): Position;
627
629
  parseFundingRateHistory(info: any, market?: Market): FundingRateHistory;
628
- parseBorrowInterest(info: any, market?: Market): void;
630
+ parseBorrowInterest(info: any, market?: Market): BorrowInterest;
629
631
  parseWsTrade(trade: any, market?: Market): Trade;
630
632
  parseWsOrder(order: any, market?: Market): Order;
631
633
  parseWsOrderTrade(trade: any, market?: Market): Trade;
632
634
  parseWsOHLCV(ohlcv: any, market?: Market): OHLCV;
633
- fetchFundingRates(symbols?: string[], params?: {}): Promise<any>;
634
- transfer(code: string, amount: any, fromAccount: any, toAccount: any, params?: {}): Promise<any>;
635
- withdraw(code: string, amount: any, address: any, tag?: any, params?: {}): Promise<any>;
635
+ fetchFundingRates(symbols?: string[], params?: {}): Promise<{}>;
636
+ transfer(code: string, amount: number, fromAccount: string, toAccount: string, params?: {}): Promise<TransferEntry>;
637
+ withdraw(code: string, amount: number, address: string, tag?: any, params?: {}): Promise<Transaction>;
636
638
  createDepositAddress(code: string, params?: {}): Promise<DepositAddressResponse>;
637
- setLeverage(leverage: any, symbol?: string, params?: {}): Promise<any>;
639
+ setLeverage(leverage: Int, symbol?: string, params?: {}): Promise<{}>;
640
+ fetchOpenInterestHistory(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OpenInterest[]>;
641
+ fetchOpenInterest(symbol: string, params?: {}): Promise<OpenInterest>;
642
+ signIn(params?: {}): Promise<{}>;
643
+ fetchPaymentMethods(params?: {}): Promise<{}>;
638
644
  parseToInt(number: any): number;
639
645
  parseToNumeric(number: any): number;
640
646
  isRoundNumber(value: any): boolean;
@@ -687,13 +693,13 @@ export default class Exchange {
687
693
  invertFlatStringDictionary(dict: any): {};
688
694
  reduceFeesByCurrency(fees: any): any[];
689
695
  safeTicker(ticker: object, market?: Market): Ticker;
690
- fetchBorrowRate(code: string, amount: any, params?: {}): Promise<any>;
691
- repayCrossMargin(code: string, amount: any, params?: {}): Promise<any>;
692
- repayIsolatedMargin(symbol: string, code: string, amount: any, params?: {}): Promise<any>;
693
- borrowCrossMargin(code: string, amount: any, params?: {}): Promise<any>;
694
- borrowIsolatedMargin(symbol: string, code: string, amount: any, params?: {}): Promise<any>;
695
- borrowMargin(code: string, amount: any, symbol?: Str, params?: {}): Promise<any>;
696
- repayMargin(code: string, amount: any, symbol?: Str, params?: {}): Promise<any>;
696
+ fetchBorrowRate(code: string, amount: any, params?: {}): Promise<{}>;
697
+ repayCrossMargin(code: string, amount: any, params?: {}): Promise<{}>;
698
+ repayIsolatedMargin(symbol: string, code: string, amount: any, params?: {}): Promise<{}>;
699
+ borrowCrossMargin(code: string, amount: number, params?: {}): Promise<{}>;
700
+ borrowIsolatedMargin(symbol: string, code: string, amount: number, params?: {}): Promise<{}>;
701
+ borrowMargin(code: string, amount: any, symbol?: Str, params?: {}): Promise<{}>;
702
+ repayMargin(code: string, amount: any, symbol?: Str, params?: {}): Promise<{}>;
697
703
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
698
704
  fetchOHLCVWs(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
699
705
  watchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
@@ -723,7 +729,7 @@ export default class Exchange {
723
729
  parsePositions(positions: any, symbols?: string[], params?: {}): Position[];
724
730
  parseAccounts(accounts: any, params?: {}): any[];
725
731
  parseTrades(trades: any, market?: Market, since?: Int, limit?: Int, params?: {}): Trade[];
726
- parseTransactions(transactions: any, currency?: Currency, since?: Int, limit?: Int, params?: {}): any;
732
+ parseTransactions(transactions: any, currency?: Currency, since?: Int, limit?: Int, params?: {}): Transaction[];
727
733
  parseTransfers(transfers: any, currency?: Currency, since?: Int, limit?: Int, params?: {}): any;
728
734
  parseLedger(data: any, currency?: Currency, since?: Int, limit?: Int, params?: {}): any;
729
735
  nonce(): number;
@@ -737,12 +743,12 @@ export default class Exchange {
737
743
  loadAccounts(reload?: boolean, params?: {}): Promise<any>;
738
744
  buildOHLCVC(trades: Trade[], timeframe?: string, since?: number, limit?: number): OHLCVC[];
739
745
  parseTradingViewOHLCV(ohlcvs: any, market?: any, timeframe?: string, since?: Int, limit?: Int): OHLCV[];
740
- editLimitBuyOrder(id: any, symbol: any, amount: any, price?: any, params?: {}): Promise<Order>;
741
- editLimitSellOrder(id: any, symbol: any, amount: any, price?: any, params?: {}): Promise<Order>;
742
- editLimitOrder(id: any, symbol: any, side: any, amount: any, price?: any, params?: {}): Promise<Order>;
743
- editOrder(id: string, symbol: any, type: any, side: any, amount?: any, price?: any, params?: {}): Promise<Order>;
746
+ editLimitBuyOrder(id: any, symbol: any, amount: number, price?: number, params?: {}): Promise<Order>;
747
+ editLimitSellOrder(id: any, symbol: any, amount: number, price?: number, params?: {}): Promise<Order>;
748
+ editLimitOrder(id: any, symbol: any, side: any, amount: number, price?: number, params?: {}): Promise<Order>;
749
+ editOrder(id: string, symbol: string, type: OrderType, side: OrderSide, amount?: number, price?: number, params?: {}): Promise<Order>;
744
750
  editOrderWs(id: string, symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
745
- fetchPermissions(params?: {}): Promise<void>;
751
+ fetchPermissions(params?: {}): Promise<{}>;
746
752
  fetchPosition(symbol: string, params?: {}): Promise<Position>;
747
753
  watchPosition(symbol?: string, params?: {}): Promise<Position>;
748
754
  watchPositions(symbols?: string[], since?: Int, limit?: Int, params?: {}): Promise<Position[]>;
@@ -751,6 +757,9 @@ export default class Exchange {
751
757
  fetchPositions(symbols?: string[], params?: {}): Promise<Position[]>;
752
758
  fetchPositionsRisk(symbols?: string[], params?: {}): Promise<Position[]>;
753
759
  fetchBidsAsks(symbols?: string[], params?: {}): Promise<Dictionary<Ticker>>;
760
+ fetchBorrowInterest(code?: string, symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<BorrowInterest[]>;
761
+ fetchLedger(code?: string, since?: Int, limit?: Int, params?: {}): Promise<LedgerEntry[]>;
762
+ fetchLedgerEntry(id: string, code?: string, params?: {}): Promise<LedgerEntry>;
754
763
  parseBidAsk(bidask: any, priceKey?: IndexType, amountKey?: IndexType, countOrIdKey?: IndexType): number[];
755
764
  safeCurrency(currencyId: Str, currency?: Currency): CurrencyInterface;
756
765
  safeMarket(marketId: Str, market?: Market, delimiter?: Str, marketType?: Str): MarketInterface;
@@ -765,15 +774,15 @@ export default class Exchange {
765
774
  fetchUsedBalance(params?: {}): Promise<Balance>;
766
775
  fetchTotalBalance(params?: {}): Promise<Balance>;
767
776
  fetchStatus(params?: {}): Promise<any>;
768
- fetchFundingFee(code: string, params?: {}): Promise<any>;
769
- fetchFundingFees(codes?: string[], params?: {}): Promise<any>;
770
- fetchTransactionFee(code: string, params?: {}): Promise<any>;
771
- fetchTransactionFees(codes?: string[], params?: {}): Promise<any>;
772
- fetchDepositWithdrawFees(codes?: string[], params?: {}): Promise<any>;
773
- fetchDepositWithdrawFee(code: string, params?: {}): Promise<any>;
777
+ fetchFundingFee(code: string, params?: {}): Promise<{}>;
778
+ fetchFundingFees(codes?: string[], params?: {}): Promise<{}>;
779
+ fetchTransactionFee(code: string, params?: {}): Promise<{}>;
780
+ fetchTransactionFees(codes?: string[], params?: {}): Promise<{}>;
781
+ fetchDepositWithdrawFees(codes?: string[], params?: {}): Promise<Dictionary<DepositWithdrawFeeNetwork>>;
782
+ fetchDepositWithdrawFee(code: string, params?: {}): Promise<DepositWithdrawFeeNetwork>;
774
783
  getSupportedMapping(key: any, mapping?: {}): any;
775
- fetchCrossBorrowRate(code: string, params?: {}): Promise<any>;
776
- fetchIsolatedBorrowRate(symbol: string, params?: {}): Promise<any>;
784
+ fetchCrossBorrowRate(code: string, params?: {}): Promise<{}>;
785
+ fetchIsolatedBorrowRate(symbol: string, params?: {}): Promise<{}>;
777
786
  handleOptionAndParams(params: any, methodName: any, optionName: any, defaultValue?: any): any[];
778
787
  handleOptionAndParams2(params: any, methodName: any, methodName2: any, optionName: any, defaultValue?: any): any[];
779
788
  handleOption(methodName: any, optionName: any, defaultValue?: any): any;
@@ -794,24 +803,24 @@ export default class Exchange {
794
803
  fetchOrderWs(id: string, symbol?: string, params?: {}): Promise<Order>;
795
804
  fetchOrderStatus(id: string, symbol?: string, params?: {}): Promise<string>;
796
805
  fetchUnifiedOrder(order: any, params?: {}): Promise<Order>;
797
- createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
806
+ createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
798
807
  createTrailingAmountOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, trailingAmount?: any, trailingTriggerPrice?: any, params?: {}): Promise<Order>;
799
808
  createTrailingPercentOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, trailingPercent?: any, trailingTriggerPrice?: any, params?: {}): Promise<Order>;
800
- createMarketOrderWithCost(symbol: string, side: OrderSide, cost: any, params?: {}): Promise<Order>;
801
- createMarketBuyOrderWithCost(symbol: string, cost: any, params?: {}): Promise<Order>;
802
- createMarketSellOrderWithCost(symbol: string, cost: any, params?: {}): Promise<Order>;
809
+ createMarketOrderWithCost(symbol: string, side: OrderSide, cost: number, params?: {}): Promise<Order>;
810
+ createMarketBuyOrderWithCost(symbol: string, cost: number, params?: {}): Promise<Order>;
811
+ createMarketSellOrderWithCost(symbol: string, cost: number, params?: {}): Promise<Order>;
803
812
  createTriggerOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, triggerPrice?: any, params?: {}): Promise<Order>;
804
- createStopLossOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, stopLossPrice?: any, params?: {}): Promise<Order>;
805
- createTakeProfitOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, takeProfitPrice?: any, params?: {}): Promise<Order>;
806
- createOrderWithTakeProfitAndStopLoss(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, takeProfit?: any, stopLoss?: any, params?: {}): Promise<Order>;
813
+ createStopLossOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, stopLossPrice?: number, params?: {}): Promise<Order>;
814
+ createTakeProfitOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, takeProfitPrice?: number, params?: {}): Promise<Order>;
815
+ createOrderWithTakeProfitAndStopLoss(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, takeProfit?: number, stopLoss?: number, params?: {}): Promise<Order>;
807
816
  createOrders(orders: OrderRequest[], params?: {}): Promise<Order[]>;
808
817
  createOrderWs(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
809
- cancelOrder(id: string, symbol?: string, params?: {}): Promise<any>;
810
- cancelOrderWs(id: string, symbol?: string, params?: {}): Promise<any>;
811
- cancelOrdersWs(ids: string[], symbol?: string, params?: {}): Promise<any>;
812
- cancelAllOrders(symbol?: string, params?: {}): Promise<any>;
813
- cancelAllOrdersWs(symbol?: string, params?: {}): Promise<any>;
814
- cancelUnifiedOrder(order: any, params?: {}): Promise<any>;
818
+ cancelOrder(id: string, symbol?: string, params?: {}): Promise<{}>;
819
+ cancelOrderWs(id: string, symbol?: string, params?: {}): Promise<{}>;
820
+ cancelOrdersWs(ids: string[], symbol?: string, params?: {}): Promise<{}>;
821
+ cancelAllOrders(symbol?: string, params?: {}): Promise<{}>;
822
+ cancelAllOrdersWs(symbol?: string, params?: {}): Promise<{}>;
823
+ cancelUnifiedOrder(order: any, params?: {}): Promise<{}>;
815
824
  fetchOrders(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
816
825
  fetchOrdersWs(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
817
826
  fetchOrderTrades(id: string, symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
@@ -827,12 +836,11 @@ export default class Exchange {
827
836
  fetchMyTradesWs(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
828
837
  watchMyTrades(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
829
838
  fetchGreeks(symbol: string, params?: {}): Promise<Greeks>;
830
- fetchDepositsWithdrawals(code?: string, since?: Int, limit?: Int, params?: {}): Promise<any>;
831
- fetchDeposits(code?: string, since?: Int, limit?: Int, params?: {}): Promise<any>;
832
- fetchDepositsWs(code?: string, since?: Int, limit?: Int, params?: {}): Promise<any>;
833
- fetchWithdrawals(code?: string, since?: Int, limit?: Int, params?: {}): Promise<any>;
834
- fetchWithdrawalsWs(code?: string, since?: Int, limit?: Int, params?: {}): Promise<any>;
835
- fetchOpenInterest(symbol: string, params?: {}): Promise<OpenInterest>;
839
+ fetchDepositsWithdrawals(code?: string, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
840
+ fetchDeposits(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
841
+ fetchWithdrawals(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
842
+ fetchDepositsWs(code?: string, since?: Int, limit?: Int, params?: {}): Promise<{}>;
843
+ fetchWithdrawalsWs(code?: string, since?: Int, limit?: Int, params?: {}): Promise<{}>;
836
844
  fetchFundingRateHistory(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<FundingRateHistory[]>;
837
845
  fetchFundingHistory(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<FundingHistory[]>;
838
846
  closePosition(symbol: string, side?: OrderSide, params?: {}): Promise<Order>;
@@ -846,12 +854,12 @@ export default class Exchange {
846
854
  market(symbol: string): MarketInterface;
847
855
  createExpiredOptionMarket(symbol: string): MarketInterface;
848
856
  handleWithdrawTagAndParams(tag: any, params: any): any;
849
- createLimitOrder(symbol: string, side: OrderSide, amount: any, price: any, params?: {}): Promise<Order>;
850
- createMarketOrder(symbol: string, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
851
- createLimitBuyOrder(symbol: string, amount: any, price: any, params?: {}): Promise<Order>;
852
- createLimitSellOrder(symbol: string, amount: any, price: any, params?: {}): Promise<Order>;
853
- createMarketBuyOrder(symbol: string, amount: any, params?: {}): Promise<Order>;
854
- createMarketSellOrder(symbol: string, amount: any, params?: {}): Promise<Order>;
857
+ createLimitOrder(symbol: string, side: OrderSide, amount: number, price: number, params?: {}): Promise<Order>;
858
+ createMarketOrder(symbol: string, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
859
+ createLimitBuyOrder(symbol: string, amount: number, price: number, params?: {}): Promise<Order>;
860
+ createLimitSellOrder(symbol: string, amount: number, price: number, params?: {}): Promise<Order>;
861
+ createMarketBuyOrder(symbol: string, amount: number, params?: {}): Promise<Order>;
862
+ createMarketSellOrder(symbol: string, amount: number, params?: {}): Promise<Order>;
855
863
  costToPrecision(symbol: string, cost: any): any;
856
864
  priceToPrecision(symbol: string, price: any): string;
857
865
  amountToPrecision(symbol: string, amount: any): any;
@@ -867,11 +875,11 @@ export default class Exchange {
867
875
  loadTimeDifference(params?: {}): Promise<any>;
868
876
  implodeHostname(url: string): any;
869
877
  fetchMarketLeverageTiers(symbol: string, params?: {}): Promise<any>;
870
- createPostOnlyOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price: any, params?: {}): Promise<Order>;
871
- createReduceOnlyOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price: any, params?: {}): Promise<Order>;
872
- createStopOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, stopPrice?: any, params?: {}): Promise<Order>;
873
- createStopLimitOrder(symbol: string, side: OrderSide, amount: any, price: any, stopPrice: any, params?: {}): Promise<Order>;
874
- createStopMarketOrder(symbol: string, side: OrderSide, amount: any, stopPrice: any, params?: {}): Promise<Order>;
878
+ createPostOnlyOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
879
+ createReduceOnlyOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
880
+ createStopOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, stopPrice?: number, params?: {}): Promise<Order>;
881
+ createStopLimitOrder(symbol: string, side: OrderSide, amount: number, price: number, stopPrice: number, params?: {}): Promise<Order>;
882
+ createStopMarketOrder(symbol: string, side: OrderSide, amount: number, stopPrice: number, params?: {}): Promise<Order>;
875
883
  safeCurrencyCode(currencyId: Str, currency?: Currency): string;
876
884
  filterBySymbolSinceLimit(array: any, symbol?: string, since?: Int, limit?: Int, tail?: boolean): any;
877
885
  filterByCurrencySinceLimit(array: any, code?: any, since?: Int, limit?: Int, tail?: boolean): any;
@@ -882,18 +890,18 @@ export default class Exchange {
882
890
  parseBorrowInterests(response: any, market?: Market): any[];
883
891
  parseFundingRateHistories(response: any, market?: any, since?: Int, limit?: Int): FundingRateHistory[];
884
892
  safeSymbol(marketId: Str, market?: Market, delimiter?: Str, marketType?: Str): string;
885
- parseFundingRate(contract: string, market?: Market): void;
893
+ parseFundingRate(contract: string, market?: Market): object;
886
894
  parseFundingRates(response: any, market?: Market): {};
887
895
  isTriggerOrder(params: any): any[];
888
896
  isPostOnly(isMarketOrder: boolean, exchangeSpecificParam: any, params?: {}): boolean;
889
897
  handlePostOnly(isMarketOrder: boolean, exchangeSpecificPostOnlyOption: boolean, params?: any): any[];
890
- fetchLastPrices(symbols?: string[], params?: {}): Promise<void>;
891
- fetchTradingFees(params?: {}): Promise<any>;
892
- fetchTradingFeesWs(params?: {}): Promise<any>;
893
- fetchTradingFee(symbol: string, params?: {}): Promise<any>;
898
+ fetchLastPrices(symbols?: string[], params?: {}): Promise<{}>;
899
+ fetchTradingFees(params?: {}): Promise<{}>;
900
+ fetchTradingFeesWs(params?: {}): Promise<{}>;
901
+ fetchTradingFee(symbol: string, params?: {}): Promise<{}>;
894
902
  parseOpenInterest(interest: any, market?: Market): OpenInterest;
895
903
  parseOpenInterests(response: any, market?: any, since?: Int, limit?: Int): OpenInterest[];
896
- fetchFundingRate(symbol: string, params?: {}): Promise<any>;
904
+ fetchFundingRate(symbol: string, params?: {}): Promise<FundingRate>;
897
905
  fetchMarkOHLCV(symbol: any, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
898
906
  fetchIndexOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
899
907
  fetchPremiumIndexOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
@@ -905,11 +913,11 @@ export default class Exchange {
905
913
  parseDepositWithdrawFee(fee: any, currency?: Currency): any;
906
914
  depositWithdrawFee(info: any): any;
907
915
  assignDefaultDepositWithdrawFees(fee: any, currency?: any): any;
908
- parseIncome(info: any, market?: Market): void;
916
+ parseIncome(info: any, market?: Market): object;
909
917
  parseIncomes(incomes: any, market?: any, since?: Int, limit?: Int): FundingHistory[];
910
918
  getMarketFromSymbols(symbols?: string[]): MarketInterface;
911
919
  parseWsOHLCVs(ohlcvs: object[], market?: any, timeframe?: string, since?: Int, limit?: Int): any[];
912
- fetchTransactions(code?: string, since?: Int, limit?: Int, params?: {}): Promise<any>;
920
+ fetchTransactions(code?: string, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
913
921
  filterByArrayPositions(objects: any, key: IndexType, values?: any, indexed?: boolean): Position[];
914
922
  filterByArrayTickers(objects: any, key: IndexType, values?: any, indexed?: boolean): Dictionary<Ticker>;
915
923
  createOHLCVObject(symbol: string, timeframe: string, data: any): Dictionary<Dictionary<OHLCV[]>>;
@@ -27,6 +27,7 @@ import totp from './functions/totp.js';
27
27
  */
28
28
  export default class Exchange {
29
29
  constructor(userConfig = {}) {
30
+ this.throttleProp = undefined;
30
31
  this.api = undefined;
31
32
  this.userAgent = undefined;
32
33
  this.user_agent = undefined;
@@ -108,6 +109,7 @@ export default class Exchange {
108
109
  this.clients = {};
109
110
  this.newUpdates = true;
110
111
  this.streaming = {};
112
+ this.alias = false;
111
113
  this.deepExtend = deepExtend;
112
114
  this.isNode = isNode;
113
115
  this.keys = keysFunc;
@@ -689,7 +691,7 @@ export default class Exchange {
689
691
  // @ts-ignore
690
692
  this.httpProxyAgentModule = await import(/* webpackIgnore: true */ 'https-proxy-agent');
691
693
  }
692
- catch { }
694
+ catch (e) { }
693
695
  }
694
696
  if (this.socksProxyAgentModuleChecked === false) {
695
697
  this.socksProxyAgentModuleChecked = true;
@@ -951,7 +953,7 @@ export default class Exchange {
951
953
  const markets = await this.fetchMarkets(params);
952
954
  return this.setMarkets(markets, currencies);
953
955
  }
954
- loadMarkets(reload = false, params = {}) {
956
+ async loadMarkets(reload = false, params = {}) {
955
957
  // this method is async, it returns a promise
956
958
  if ((reload && !this.reloadingMarkets) || !this.marketsLoading) {
957
959
  this.reloadingMarkets = true;
@@ -965,28 +967,28 @@ export default class Exchange {
965
967
  }
966
968
  return this.marketsLoading;
967
969
  }
968
- fetchCurrencies(params = {}) {
970
+ async fetchCurrencies(params = {}) {
969
971
  // markets are returned as a list
970
972
  // currencies are returned as a dict
971
973
  // this is for historical reasons
972
974
  // and may be changed for consistency later
973
975
  return new Promise((resolve, reject) => resolve(this.currencies));
974
976
  }
975
- fetchCurrenciesWs(params = {}) {
977
+ async fetchCurrenciesWs(params = {}) {
976
978
  // markets are returned as a list
977
979
  // currencies are returned as a dict
978
980
  // this is for historical reasons
979
981
  // and may be changed for consistency later
980
982
  return new Promise((resolve, reject) => resolve(this.currencies));
981
983
  }
982
- fetchMarkets(params = {}) {
984
+ async fetchMarkets(params = {}) {
983
985
  // markets are returned as a list
984
986
  // currencies are returned as a dict
985
987
  // this is for historical reasons
986
988
  // and may be changed for consistency later
987
989
  return new Promise((resolve, reject) => resolve(Object.values(this.markets)));
988
990
  }
989
- fetchMarketsWs(params = {}) {
991
+ async fetchMarketsWs(params = {}) {
990
992
  // markets are returned as a list
991
993
  // currencies are returned as a dict
992
994
  // this is for historical reasons
@@ -1061,6 +1063,9 @@ export default class Exchange {
1061
1063
  }
1062
1064
  handleMessage(client, message) { } // stub to override
1063
1065
  // ping (client) {} // stub to override
1066
+ // ping (client) {
1067
+ // return undefined;
1068
+ // }
1064
1069
  client(url) {
1065
1070
  this.clients = this.clients || {};
1066
1071
  if (!this.clients[url]) {
@@ -1442,6 +1447,9 @@ export default class Exchange {
1442
1447
  * @returns {object | undefined}
1443
1448
  */
1444
1449
  const value = this.safeValueN(dictionaryOrList, keys, defaultValue);
1450
+ if (value === undefined) {
1451
+ return defaultValue;
1452
+ }
1445
1453
  if (typeof value === 'object') {
1446
1454
  return value;
1447
1455
  }
@@ -1473,6 +1481,9 @@ export default class Exchange {
1473
1481
  * @returns {Array | undefined}
1474
1482
  */
1475
1483
  const value = this.safeValueN(dictionaryOrList, keys, defaultValue);
1484
+ if (value === undefined) {
1485
+ return defaultValue;
1486
+ }
1476
1487
  if (Array.isArray(value)) {
1477
1488
  return value;
1478
1489
  }
@@ -1690,6 +1701,9 @@ export default class Exchange {
1690
1701
  }
1691
1702
  }
1692
1703
  if (fromStart) {
1704
+ if (limit > arrayLength) {
1705
+ limit = arrayLength;
1706
+ }
1693
1707
  array = ascending ? this.arraySlice(array, 0, limit) : this.arraySlice(array, -limit);
1694
1708
  }
1695
1709
  else {
@@ -1918,6 +1932,18 @@ export default class Exchange {
1918
1932
  async setLeverage(leverage, symbol = undefined, params = {}) {
1919
1933
  throw new NotSupported(this.id + ' setLeverage() is not supported yet');
1920
1934
  }
1935
+ async fetchOpenInterestHistory(symbol, timeframe = '1h', since = undefined, limit = undefined, params = {}) {
1936
+ throw new NotSupported(this.id + ' fetchOpenInterestHistory() is not supported yet');
1937
+ }
1938
+ async fetchOpenInterest(symbol, params = {}) {
1939
+ throw new NotSupported(this.id + ' fetchOpenInterest() is not supported yet');
1940
+ }
1941
+ async signIn(params = {}) {
1942
+ throw new NotSupported(this.id + ' signIn() is not supported yet');
1943
+ }
1944
+ async fetchPaymentMethods(params = {}) {
1945
+ throw new NotSupported(this.id + ' fetchPaymentMethods() is not supported yet');
1946
+ }
1921
1947
  parseToInt(number) {
1922
1948
  // Solve Common parseInt misuse ex: parseInt ((since / 1000).toString ())
1923
1949
  // using a number as parameter which is not valid in ts
@@ -3528,6 +3554,15 @@ export default class Exchange {
3528
3554
  async fetchBidsAsks(symbols = undefined, params = {}) {
3529
3555
  throw new NotSupported(this.id + ' fetchBidsAsks() is not supported yet');
3530
3556
  }
3557
+ async fetchBorrowInterest(code = undefined, symbol = undefined, since = undefined, limit = undefined, params = {}) {
3558
+ throw new NotSupported(this.id + ' fetchBorrowInterest() is not supported yet');
3559
+ }
3560
+ async fetchLedger(code = undefined, since = undefined, limit = undefined, params = {}) {
3561
+ throw new NotSupported(this.id + ' fetchLedger() is not supported yet');
3562
+ }
3563
+ async fetchLedgerEntry(id, code = undefined, params = {}) {
3564
+ throw new NotSupported(this.id + ' fetchLedgerEntry() is not supported yet');
3565
+ }
3531
3566
  parseBidAsk(bidask, priceKey = 0, amountKey = 1, countOrIdKey = 2) {
3532
3567
  const price = this.safeNumber(bidask, priceKey);
3533
3568
  const amount = this.safeNumber(bidask, amountKey);
@@ -3828,6 +3863,9 @@ export default class Exchange {
3828
3863
  return this.handleOptionAndParams(params, methodName, 'marginMode', defaultValue);
3829
3864
  }
3830
3865
  throwExactlyMatchedException(exact, string, message) {
3866
+ if (string === undefined) {
3867
+ return;
3868
+ }
3831
3869
  if (string in exact) {
3832
3870
  throw new exact[string](message);
3833
3871
  }
@@ -4251,21 +4289,18 @@ export default class Exchange {
4251
4289
  */
4252
4290
  throw new NotSupported(this.id + ' fetchDepositsWithdrawals() is not supported yet');
4253
4291
  }
4254
- async fetchDeposits(code = undefined, since = undefined, limit = undefined, params = {}) {
4292
+ async fetchDeposits(symbol = undefined, since = undefined, limit = undefined, params = {}) {
4255
4293
  throw new NotSupported(this.id + ' fetchDeposits() is not supported yet');
4256
4294
  }
4295
+ async fetchWithdrawals(symbol = undefined, since = undefined, limit = undefined, params = {}) {
4296
+ throw new NotSupported(this.id + ' fetchWithdrawals() is not supported yet');
4297
+ }
4257
4298
  async fetchDepositsWs(code = undefined, since = undefined, limit = undefined, params = {}) {
4258
4299
  throw new NotSupported(this.id + ' fetchDepositsWs() is not supported yet');
4259
4300
  }
4260
- async fetchWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
4261
- throw new NotSupported(this.id + ' fetchWithdrawals() is not supported yet');
4262
- }
4263
4301
  async fetchWithdrawalsWs(code = undefined, since = undefined, limit = undefined, params = {}) {
4264
4302
  throw new NotSupported(this.id + ' fetchWithdrawalsWs() is not supported yet');
4265
4303
  }
4266
- async fetchOpenInterest(symbol, params = {}) {
4267
- throw new NotSupported(this.id + ' fetchOpenInterest() is not supported yet');
4268
- }
4269
4304
  async fetchFundingRateHistory(symbol = undefined, since = undefined, limit = undefined, params = {}) {
4270
4305
  throw new NotSupported(this.id + ' fetchFundingRateHistory() is not supported yet');
4271
4306
  }
@@ -4353,7 +4388,7 @@ export default class Exchange {
4353
4388
  throw new NotSupported(this.id + ' createExpiredOptionMarket () is not supported yet');
4354
4389
  }
4355
4390
  handleWithdrawTagAndParams(tag, params) {
4356
- if (typeof tag === 'object') {
4391
+ if ((tag !== undefined) && (typeof tag === 'object')) {
4357
4392
  params = this.extend(tag, params);
4358
4393
  tag = undefined;
4359
4394
  }
@@ -4487,14 +4522,14 @@ export default class Exchange {
4487
4522
  throw new NotSupported(this.id + ' fetchMarketLeverageTiers() is not supported yet');
4488
4523
  }
4489
4524
  }
4490
- async createPostOnlyOrder(symbol, type, side, amount, price, params = {}) {
4525
+ async createPostOnlyOrder(symbol, type, side, amount, price = undefined, params = {}) {
4491
4526
  if (!this.has['createPostOnlyOrder']) {
4492
4527
  throw new NotSupported(this.id + 'createPostOnlyOrder() is not supported yet');
4493
4528
  }
4494
4529
  const query = this.extend(params, { 'postOnly': true });
4495
4530
  return await this.createOrder(symbol, type, side, amount, price, query);
4496
4531
  }
4497
- async createReduceOnlyOrder(symbol, type, side, amount, price, params = {}) {
4532
+ async createReduceOnlyOrder(symbol, type, side, amount, price = undefined, params = {}) {
4498
4533
  if (!this.has['createReduceOnlyOrder']) {
4499
4534
  throw new NotSupported(this.id + 'createReduceOnlyOrder() is not supported yet');
4500
4535
  }
@@ -5117,7 +5152,8 @@ export default class Exchange {
5117
5152
  const response = await this[method](symbol, undefined, maxEntriesPerRequest, params);
5118
5153
  const responseLength = response.length;
5119
5154
  if (this.verbose) {
5120
- this.log('Dynamic pagination call', calls, 'method', method, 'response length', responseLength, 'timestamp', paginationTimestamp);
5155
+ const backwardMessage = 'Dynamic pagination call ' + calls + ' method ' + method + ' response length ' + responseLength + ' timestamp ' + paginationTimestamp;
5156
+ this.log(backwardMessage);
5121
5157
  }
5122
5158
  if (responseLength === 0) {
5123
5159
  break;
@@ -5135,7 +5171,8 @@ export default class Exchange {
5135
5171
  const response = await this[method](symbol, paginationTimestamp, maxEntriesPerRequest, params);
5136
5172
  const responseLength = response.length;
5137
5173
  if (this.verbose) {
5138
- this.log('Dynamic pagination call', calls, 'method', method, 'response length', responseLength, 'timestamp', paginationTimestamp);
5174
+ const forwardMessage = 'Dynamic pagination call ' + calls + ' method ' + method + ' response length ' + responseLength + ' timestamp ' + paginationTimestamp;
5175
+ this.log(forwardMessage);
5139
5176
  }
5140
5177
  if (responseLength === 0) {
5141
5178
  break;
@@ -5181,6 +5218,7 @@ export default class Exchange {
5181
5218
  throw e;
5182
5219
  }
5183
5220
  }
5221
+ return undefined;
5184
5222
  }
5185
5223
  async fetchPaginatedCallDeterministic(method, symbol = undefined, since = undefined, limit = undefined, timeframe = undefined, params = {}, maxEntriesPerRequest = undefined) {
5186
5224
  let maxCalls = undefined;
@@ -5245,7 +5283,9 @@ export default class Exchange {
5245
5283
  errors = 0;
5246
5284
  const responseLength = response.length;
5247
5285
  if (this.verbose) {
5248
- this.log('Cursor pagination call', i + 1, 'method', method, 'response length', responseLength, 'cursor', cursorValue);
5286
+ const iteration = (i + 1).toString();
5287
+ const cursorMessage = 'Cursor pagination call ' + iteration + ' method ' + method + ' response length ' + responseLength.toString() + ' cursor ' + cursorValue;
5288
+ this.log(cursorMessage);
5249
5289
  }
5250
5290
  if (responseLength === 0) {
5251
5291
  break;
@@ -5289,7 +5329,9 @@ export default class Exchange {
5289
5329
  errors = 0;
5290
5330
  const responseLength = response.length;
5291
5331
  if (this.verbose) {
5292
- this.log('Incremental pagination call', i + 1, 'method', method, 'response length', responseLength);
5332
+ const iteration = (i + 1).toString();
5333
+ const incrementalMessage = 'Incremental pagination call ' + iteration + ' method ' + method + ' response length ' + responseLength.toString();
5334
+ this.log(incrementalMessage);
5293
5335
  }
5294
5336
  if (responseLength === 0) {
5295
5337
  break;