ccxt 4.1.85 → 4.1.86

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 (295) hide show
  1. package/README.md +3 -3
  2. package/dist/ccxt.browser.js +724 -388
  3. package/dist/ccxt.browser.min.js +3 -3
  4. package/dist/cjs/ccxt.js +1 -1
  5. package/dist/cjs/src/ace.js +1 -1
  6. package/dist/cjs/src/alpaca.js +2 -2
  7. package/dist/cjs/src/ascendex.js +2 -2
  8. package/dist/cjs/src/base/Exchange.js +50 -20
  9. package/dist/cjs/src/bigone.js +1 -1
  10. package/dist/cjs/src/binance.js +2 -2
  11. package/dist/cjs/src/bingx.js +1 -1
  12. package/dist/cjs/src/bit2c.js +1 -1
  13. package/dist/cjs/src/bitbank.js +1 -1
  14. package/dist/cjs/src/bitbns.js +1 -1
  15. package/dist/cjs/src/bitfinex.js +1 -1
  16. package/dist/cjs/src/bitfinex2.js +1 -1
  17. package/dist/cjs/src/bitflyer.js +1 -1
  18. package/dist/cjs/src/bitforex.js +1 -1
  19. package/dist/cjs/src/bitget.js +2 -3
  20. package/dist/cjs/src/bithumb.js +1 -1
  21. package/dist/cjs/src/bitmart.js +1 -1
  22. package/dist/cjs/src/bitmex.js +2 -2
  23. package/dist/cjs/src/bitopro.js +1 -1
  24. package/dist/cjs/src/bitpanda.js +1 -1
  25. package/dist/cjs/src/bitrue.js +1 -1
  26. package/dist/cjs/src/bitso.js +1 -1
  27. package/dist/cjs/src/bitstamp.js +1 -1
  28. package/dist/cjs/src/bittrex.js +1 -1
  29. package/dist/cjs/src/bitvavo.js +1 -1
  30. package/dist/cjs/src/bl3p.js +1 -1
  31. package/dist/cjs/src/blockchaincom.js +1 -1
  32. package/dist/cjs/src/btcalpha.js +1 -1
  33. package/dist/cjs/src/btcbox.js +1 -1
  34. package/dist/cjs/src/btcmarkets.js +1 -1
  35. package/dist/cjs/src/btcturk.js +1 -1
  36. package/dist/cjs/src/bybit.js +3 -5
  37. package/dist/cjs/src/cex.js +1 -1
  38. package/dist/cjs/src/coinbase.js +1 -1
  39. package/dist/cjs/src/coinbasepro.js +1 -1
  40. package/dist/cjs/src/coincheck.js +1 -1
  41. package/dist/cjs/src/coinex.js +2 -2
  42. package/dist/cjs/src/coinlist.js +1 -1
  43. package/dist/cjs/src/coinmate.js +1 -1
  44. package/dist/cjs/src/coinone.js +1 -1
  45. package/dist/cjs/src/coinsph.js +1 -1
  46. package/dist/cjs/src/coinspot.js +1 -1
  47. package/dist/cjs/src/cryptocom.js +3 -3
  48. package/dist/cjs/src/currencycom.js +1 -1
  49. package/dist/cjs/src/delta.js +1 -1
  50. package/dist/cjs/src/deribit.js +1 -1
  51. package/dist/cjs/src/digifinex.js +160 -112
  52. package/dist/cjs/src/exmo.js +1 -1
  53. package/dist/cjs/src/gate.js +1 -1
  54. package/dist/cjs/src/gemini.js +1 -1
  55. package/dist/cjs/src/hitbtc.js +2 -2
  56. package/dist/cjs/src/hitbtc3.js +1 -1
  57. package/dist/cjs/src/hollaex.js +1 -1
  58. package/dist/cjs/src/htx.js +2 -2
  59. package/dist/cjs/src/huobijp.js +1 -1
  60. package/dist/cjs/src/idex.js +1 -1
  61. package/dist/cjs/src/independentreserve.js +1 -1
  62. package/dist/cjs/src/indodax.js +1 -1
  63. package/dist/cjs/src/kraken.js +2 -2
  64. package/dist/cjs/src/krakenfutures.js +3 -3
  65. package/dist/cjs/src/kucoin.js +2 -6
  66. package/dist/cjs/src/kuna.js +1 -1
  67. package/dist/cjs/src/latoken.js +2 -2
  68. package/dist/cjs/src/lbank.js +1 -1
  69. package/dist/cjs/src/luno.js +1 -1
  70. package/dist/cjs/src/lykke.js +1 -1
  71. package/dist/cjs/src/mercado.js +1 -1
  72. package/dist/cjs/src/mexc.js +102 -53
  73. package/dist/cjs/src/ndax.js +1 -1
  74. package/dist/cjs/src/novadax.js +1 -1
  75. package/dist/cjs/src/oceanex.js +1 -1
  76. package/dist/cjs/src/okcoin.js +1 -1
  77. package/dist/cjs/src/okx.js +4 -4
  78. package/dist/cjs/src/p2b.js +1 -3
  79. package/dist/cjs/src/paymium.js +1 -1
  80. package/dist/cjs/src/phemex.js +1 -1
  81. package/dist/cjs/src/poloniex.js +51 -51
  82. package/dist/cjs/src/poloniexfutures.js +1 -1
  83. package/dist/cjs/src/pro/bitget.js +1 -1
  84. package/dist/cjs/src/pro/bitmex.js +206 -0
  85. package/dist/cjs/src/pro/krakenfutures.js +6 -6
  86. package/dist/cjs/src/pro/mexc.js +1 -1
  87. package/dist/cjs/src/pro/poloniex.js +1 -1
  88. package/dist/cjs/src/pro/poloniexfutures.js +3 -3
  89. package/dist/cjs/src/probit.js +27 -19
  90. package/dist/cjs/src/static_dependencies/jsencrypt/JSEncrypt.js +1 -1
  91. package/dist/cjs/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +3 -3
  92. package/dist/cjs/src/timex.js +1 -1
  93. package/dist/cjs/src/tokocrypto.js +8 -4
  94. package/dist/cjs/src/upbit.js +1 -1
  95. package/dist/cjs/src/wavesexchange.js +1 -1
  96. package/dist/cjs/src/wazirx.js +1 -1
  97. package/dist/cjs/src/whitebit.js +1 -1
  98. package/dist/cjs/src/woo.js +1 -1
  99. package/dist/cjs/src/yobit.js +1 -1
  100. package/dist/cjs/src/zaif.js +1 -1
  101. package/dist/cjs/src/zonda.js +1 -1
  102. package/js/ccxt.d.ts +1 -1
  103. package/js/ccxt.js +1 -1
  104. package/js/src/ace.d.ts +1 -1
  105. package/js/src/ace.js +1 -1
  106. package/js/src/alpaca.d.ts +1 -1
  107. package/js/src/alpaca.js +2 -2
  108. package/js/src/ascendex.d.ts +1 -1
  109. package/js/src/ascendex.js +2 -2
  110. package/js/src/base/Exchange.d.ts +4 -0
  111. package/js/src/base/Exchange.js +50 -20
  112. package/js/src/base/types.d.ts +1 -0
  113. package/js/src/bigone.d.ts +1 -1
  114. package/js/src/bigone.js +1 -1
  115. package/js/src/binance.d.ts +1 -1
  116. package/js/src/binance.js +2 -2
  117. package/js/src/bingx.js +1 -1
  118. package/js/src/bit2c.d.ts +1 -1
  119. package/js/src/bit2c.js +1 -1
  120. package/js/src/bitbank.d.ts +1 -1
  121. package/js/src/bitbank.js +1 -1
  122. package/js/src/bitbns.d.ts +1 -1
  123. package/js/src/bitbns.js +1 -1
  124. package/js/src/bitfinex.d.ts +1 -1
  125. package/js/src/bitfinex.js +1 -1
  126. package/js/src/bitfinex2.d.ts +1 -1
  127. package/js/src/bitfinex2.js +1 -1
  128. package/js/src/bitflyer.d.ts +1 -1
  129. package/js/src/bitflyer.js +1 -1
  130. package/js/src/bitforex.d.ts +1 -1
  131. package/js/src/bitforex.js +1 -1
  132. package/js/src/bitget.d.ts +1 -1
  133. package/js/src/bitget.js +2 -3
  134. package/js/src/bithumb.d.ts +1 -1
  135. package/js/src/bithumb.js +1 -1
  136. package/js/src/bitmart.d.ts +1 -1
  137. package/js/src/bitmart.js +1 -1
  138. package/js/src/bitmex.d.ts +1 -1
  139. package/js/src/bitmex.js +2 -2
  140. package/js/src/bitopro.d.ts +1 -1
  141. package/js/src/bitopro.js +1 -1
  142. package/js/src/bitpanda.d.ts +1 -1
  143. package/js/src/bitpanda.js +1 -1
  144. package/js/src/bitrue.d.ts +1 -1
  145. package/js/src/bitrue.js +1 -1
  146. package/js/src/bitso.d.ts +1 -1
  147. package/js/src/bitso.js +1 -1
  148. package/js/src/bitstamp.d.ts +1 -1
  149. package/js/src/bitstamp.js +1 -1
  150. package/js/src/bittrex.d.ts +1 -1
  151. package/js/src/bittrex.js +1 -1
  152. package/js/src/bitvavo.d.ts +1 -1
  153. package/js/src/bitvavo.js +1 -1
  154. package/js/src/bl3p.d.ts +1 -1
  155. package/js/src/bl3p.js +1 -1
  156. package/js/src/blockchaincom.d.ts +1 -1
  157. package/js/src/blockchaincom.js +1 -1
  158. package/js/src/btcalpha.d.ts +1 -1
  159. package/js/src/btcalpha.js +1 -1
  160. package/js/src/btcbox.d.ts +1 -1
  161. package/js/src/btcbox.js +1 -1
  162. package/js/src/btcmarkets.d.ts +1 -1
  163. package/js/src/btcmarkets.js +1 -1
  164. package/js/src/btcturk.d.ts +1 -1
  165. package/js/src/btcturk.js +1 -1
  166. package/js/src/bybit.d.ts +1 -1
  167. package/js/src/bybit.js +3 -5
  168. package/js/src/cex.d.ts +1 -1
  169. package/js/src/cex.js +1 -1
  170. package/js/src/coinbase.d.ts +1 -1
  171. package/js/src/coinbase.js +1 -1
  172. package/js/src/coinbasepro.d.ts +1 -1
  173. package/js/src/coinbasepro.js +1 -1
  174. package/js/src/coincheck.d.ts +1 -1
  175. package/js/src/coincheck.js +1 -1
  176. package/js/src/coinex.d.ts +1 -1
  177. package/js/src/coinex.js +2 -2
  178. package/js/src/coinlist.d.ts +1 -1
  179. package/js/src/coinlist.js +1 -1
  180. package/js/src/coinmate.d.ts +1 -1
  181. package/js/src/coinmate.js +1 -1
  182. package/js/src/coinone.d.ts +1 -1
  183. package/js/src/coinone.js +1 -1
  184. package/js/src/coinsph.d.ts +1 -1
  185. package/js/src/coinsph.js +1 -1
  186. package/js/src/coinspot.d.ts +1 -1
  187. package/js/src/coinspot.js +1 -1
  188. package/js/src/cryptocom.d.ts +1 -1
  189. package/js/src/cryptocom.js +3 -3
  190. package/js/src/currencycom.d.ts +1 -1
  191. package/js/src/currencycom.js +1 -1
  192. package/js/src/delta.d.ts +1 -1
  193. package/js/src/delta.js +1 -1
  194. package/js/src/deribit.d.ts +1 -1
  195. package/js/src/deribit.js +1 -1
  196. package/js/src/digifinex.d.ts +1 -1
  197. package/js/src/digifinex.js +160 -112
  198. package/js/src/exmo.d.ts +1 -1
  199. package/js/src/exmo.js +1 -1
  200. package/js/src/gate.d.ts +1 -1
  201. package/js/src/gate.js +1 -1
  202. package/js/src/gemini.d.ts +1 -1
  203. package/js/src/gemini.js +1 -1
  204. package/js/src/hitbtc.d.ts +1 -1
  205. package/js/src/hitbtc.js +2 -2
  206. package/js/src/hitbtc3.d.ts +1 -1
  207. package/js/src/hitbtc3.js +1 -1
  208. package/js/src/hollaex.d.ts +1 -1
  209. package/js/src/hollaex.js +1 -1
  210. package/js/src/htx.d.ts +1 -1
  211. package/js/src/htx.js +2 -2
  212. package/js/src/huobijp.d.ts +1 -1
  213. package/js/src/huobijp.js +1 -1
  214. package/js/src/idex.d.ts +1 -1
  215. package/js/src/idex.js +1 -1
  216. package/js/src/independentreserve.d.ts +1 -1
  217. package/js/src/independentreserve.js +1 -1
  218. package/js/src/indodax.d.ts +1 -1
  219. package/js/src/indodax.js +1 -1
  220. package/js/src/kraken.d.ts +1 -1
  221. package/js/src/kraken.js +2 -2
  222. package/js/src/krakenfutures.d.ts +1 -1
  223. package/js/src/krakenfutures.js +3 -3
  224. package/js/src/kucoin.d.ts +1 -1
  225. package/js/src/kucoin.js +2 -6
  226. package/js/src/kuna.d.ts +1 -1
  227. package/js/src/kuna.js +1 -1
  228. package/js/src/latoken.d.ts +1 -1
  229. package/js/src/latoken.js +2 -2
  230. package/js/src/lbank.d.ts +1 -1
  231. package/js/src/lbank.js +1 -1
  232. package/js/src/luno.d.ts +1 -1
  233. package/js/src/luno.js +1 -1
  234. package/js/src/lykke.d.ts +1 -1
  235. package/js/src/lykke.js +1 -1
  236. package/js/src/mercado.d.ts +1 -1
  237. package/js/src/mercado.js +1 -1
  238. package/js/src/mexc.d.ts +1 -1
  239. package/js/src/mexc.js +102 -53
  240. package/js/src/ndax.d.ts +1 -1
  241. package/js/src/ndax.js +1 -1
  242. package/js/src/novadax.d.ts +1 -1
  243. package/js/src/novadax.js +1 -1
  244. package/js/src/oceanex.d.ts +1 -1
  245. package/js/src/oceanex.js +1 -1
  246. package/js/src/okcoin.d.ts +1 -1
  247. package/js/src/okcoin.js +1 -1
  248. package/js/src/okx.d.ts +1 -1
  249. package/js/src/okx.js +4 -4
  250. package/js/src/p2b.d.ts +1 -1
  251. package/js/src/p2b.js +1 -3
  252. package/js/src/paymium.d.ts +1 -1
  253. package/js/src/paymium.js +1 -1
  254. package/js/src/phemex.d.ts +1 -1
  255. package/js/src/phemex.js +1 -1
  256. package/js/src/poloniex.d.ts +1 -1
  257. package/js/src/poloniex.js +51 -51
  258. package/js/src/poloniexfutures.d.ts +1 -1
  259. package/js/src/poloniexfutures.js +1 -1
  260. package/js/src/pro/bitget.d.ts +1 -1
  261. package/js/src/pro/bitget.js +1 -1
  262. package/js/src/pro/bitmex.d.ts +3 -1
  263. package/js/src/pro/bitmex.js +207 -1
  264. package/js/src/pro/krakenfutures.js +6 -6
  265. package/js/src/pro/mexc.js +1 -1
  266. package/js/src/pro/poloniex.js +1 -1
  267. package/js/src/pro/poloniexfutures.js +3 -3
  268. package/js/src/probit.d.ts +1 -1
  269. package/js/src/probit.js +27 -19
  270. package/js/src/static_dependencies/jsencrypt/JSEncrypt.d.ts +1 -1
  271. package/js/src/static_dependencies/jsencrypt/JSEncrypt.js +1 -1
  272. package/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.d.ts +3 -3
  273. package/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +3 -3
  274. package/js/src/timex.d.ts +1 -1
  275. package/js/src/timex.js +1 -1
  276. package/js/src/tokocrypto.d.ts +1 -1
  277. package/js/src/tokocrypto.js +8 -4
  278. package/js/src/upbit.d.ts +1 -1
  279. package/js/src/upbit.js +1 -1
  280. package/js/src/wavesexchange.d.ts +1 -1
  281. package/js/src/wavesexchange.js +1 -1
  282. package/js/src/wazirx.d.ts +1 -1
  283. package/js/src/wazirx.js +1 -1
  284. package/js/src/whitebit.d.ts +1 -1
  285. package/js/src/whitebit.js +1 -1
  286. package/js/src/woo.d.ts +1 -1
  287. package/js/src/woo.js +1 -1
  288. package/js/src/yobit.d.ts +1 -1
  289. package/js/src/yobit.js +1 -1
  290. package/js/src/zaif.d.ts +1 -1
  291. package/js/src/zaif.js +1 -1
  292. package/js/src/zonda.d.ts +1 -1
  293. package/js/src/zonda.js +1 -1
  294. package/package.json +4 -3
  295. package/skip-tests.json +4 -0
package/dist/cjs/ccxt.js CHANGED
@@ -172,7 +172,7 @@ var woo$1 = require('./src/pro/woo.js');
172
172
 
173
173
  //-----------------------------------------------------------------------------
174
174
  // this is updated by vss.js when building
175
- const version = '4.1.85';
175
+ const version = '4.1.86';
176
176
  Exchange["default"].ccxtVersion = version;
177
177
  const exchanges = {
178
178
  'ace': ace,
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class ace
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class ace extends ace$1 {
16
16
  describe() {
@@ -8,7 +8,7 @@ var number = require('./base/functions/number.js');
8
8
  // ---------------------------------------------------------------------------xs
9
9
  /**
10
10
  * @class alpaca
11
- * @extends Exchange
11
+ * @augments Exchange
12
12
  */
13
13
  class alpaca extends alpaca$1 {
14
14
  describe() {
@@ -496,7 +496,7 @@ class alpaca extends alpaca$1 {
496
496
  * @param {object} [params] extra parameters specific to the exchange API endpoint
497
497
  * @param {string} [params.loc] crypto location, default: us
498
498
  * @returns {object} A dictionary of [order book structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-book-structure} indexed by market symbols
499
- */
499
+ */
500
500
  await this.loadMarkets();
501
501
  const market = this.market(symbol);
502
502
  const id = market['id'];
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class ascendex
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class ascendex extends ascendex$1 {
16
16
  describe() {
@@ -1661,7 +1661,7 @@ class ascendex extends ascendex$1 {
1661
1661
  * @description create a list of trade orders
1662
1662
  * @see https://ascendex.github.io/ascendex-pro-api/#place-batch-orders
1663
1663
  * @see https://ascendex.github.io/ascendex-futures-pro-api-v2/#place-batch-orders
1664
- * @param {array} orders list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
1664
+ * @param {Array} orders list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
1665
1665
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1666
1666
  * @param {string} [params.timeInForce] "GTC", "IOC", "FOK", or "PO"
1667
1667
  * @param {bool} [params.postOnly] true or false
@@ -705,6 +705,26 @@ class Exchange {
705
705
  }
706
706
  return chosenAgent;
707
707
  }
708
+ async loadHttpProxyAgent() {
709
+ // for `http://` protocol proxy-urls, we need to load `http` module only on first call
710
+ if (!this.httpAgent) {
711
+ const httpModule = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(/* webpackIgnore: true */ 'node:http')); });
712
+ this.httpAgent = new httpModule.Agent();
713
+ }
714
+ return this.httpAgent;
715
+ }
716
+ getHttpAgentIfNeeded(url) {
717
+ if (isNode) {
718
+ // only for non-ssl proxy
719
+ if (url.substring(0, 5) === 'ws://') {
720
+ if (this.httpAgent === undefined) {
721
+ throw new errors.NotSupported(this.id + ' to use proxy with non-ssl ws:// urls, at first run `await exchange.loadHttpProxyAgent()` method');
722
+ }
723
+ return this.httpAgent;
724
+ }
725
+ }
726
+ return undefined;
727
+ }
708
728
  async fetch(url, method = 'GET', headers = undefined, body = undefined) {
709
729
  // load node-http(s) modules only on first call
710
730
  if (isNode) {
@@ -718,18 +738,16 @@ class Exchange {
718
738
  headers = this.extend(this.headers, headers);
719
739
  // proxy-url
720
740
  const proxyUrl = this.checkProxyUrlSettings(url, method, headers, body);
721
- let isHttpAgentNeeded = false;
741
+ let httpProxyAgent = false;
722
742
  if (proxyUrl !== undefined) {
723
- // in node we need to set header to *
743
+ // part only for node-js
724
744
  if (isNode) {
745
+ // in node we need to set header to *
725
746
  headers = this.extend({ 'Origin': this.origin }, headers);
726
- if (proxyUrl.substring(0, 5) !== 'https') {
727
- // for `http://` protocol proxy-urls, we need to load `http` module only on first call
728
- if (!this.httpAgent) {
729
- const httpModule = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(/* webpackIgnore: true */ 'node:http')); });
730
- this.httpAgent = new httpModule.Agent();
731
- }
732
- isHttpAgentNeeded = true;
747
+ // only for http proxy
748
+ if (proxyUrl.substring(0, 5) === 'http:') {
749
+ await this.loadHttpProxyAgent();
750
+ httpProxyAgent = this.httpAgent;
733
751
  }
734
752
  }
735
753
  url = proxyUrl + url;
@@ -782,9 +800,9 @@ class Exchange {
782
800
  params['agent'] = this.agent;
783
801
  }
784
802
  // override agent, if needed
785
- if (isHttpAgentNeeded) {
786
- // if proxyUrl is being used, so we don't overwrite `this.agent` itself
787
- params['agent'] = this.httpAgent;
803
+ if (httpProxyAgent) {
804
+ // if proxyUrl is being used, then specifically in nodejs, we need http module, not https
805
+ params['agent'] = httpProxyAgent;
788
806
  }
789
807
  else if (chosenAgent) {
790
808
  // if http(s)Proxy is being used
@@ -993,7 +1011,9 @@ class Exchange {
993
1011
  // proxy agents
994
1012
  const [httpProxy, httpsProxy, socksProxy] = this.checkWsProxySettings();
995
1013
  const chosenAgent = this.setProxyAgents(httpProxy, httpsProxy, socksProxy);
996
- const finalAgent = chosenAgent ? chosenAgent : this.agent;
1014
+ // part only for node-js
1015
+ const httpProxyAgent = this.getHttpAgentIfNeeded(url);
1016
+ const finalAgent = chosenAgent ? chosenAgent : (httpProxyAgent ? httpProxyAgent : this.agent);
997
1017
  //
998
1018
  const options = this.deepExtend(this.streaming, {
999
1019
  'log': this.log ? this.log.bind(this) : this.log,
@@ -1341,7 +1361,8 @@ class Exchange {
1341
1361
  const usedProxies = [];
1342
1362
  let wsProxy = undefined;
1343
1363
  let wssProxy = undefined;
1344
- // wsProxy
1364
+ let wsSocksProxy = undefined;
1365
+ // ws proxy
1345
1366
  if (this.wsProxy !== undefined) {
1346
1367
  usedProxies.push('wsProxy');
1347
1368
  wsProxy = this.wsProxy;
@@ -1350,7 +1371,7 @@ class Exchange {
1350
1371
  usedProxies.push('ws_proxy');
1351
1372
  wsProxy = this.ws_proxy;
1352
1373
  }
1353
- // wsProxy
1374
+ // wss proxy
1354
1375
  if (this.wssProxy !== undefined) {
1355
1376
  usedProxies.push('wssProxy');
1356
1377
  wssProxy = this.wssProxy;
@@ -1359,13 +1380,22 @@ class Exchange {
1359
1380
  usedProxies.push('wss_proxy');
1360
1381
  wssProxy = this.wss_proxy;
1361
1382
  }
1383
+ // ws socks proxy
1384
+ if (this.wsSocksProxy !== undefined) {
1385
+ usedProxies.push('wsSocksProxy');
1386
+ wsSocksProxy = this.wsSocksProxy;
1387
+ }
1388
+ if (this.ws_socks_proxy !== undefined) {
1389
+ usedProxies.push('ws_socks_proxy');
1390
+ wsSocksProxy = this.ws_socks_proxy;
1391
+ }
1362
1392
  // check
1363
1393
  const length = usedProxies.length;
1364
1394
  if (length > 1) {
1365
1395
  const joinedProxyNames = usedProxies.join(',');
1366
- throw new errors.ExchangeError(this.id + ' you have multiple conflicting settings (' + joinedProxyNames + '), please use only one from: wsProxy, wssProxy');
1396
+ throw new errors.ExchangeError(this.id + ' you have multiple conflicting settings (' + joinedProxyNames + '), please use only one from: wsProxy, wssProxy, socksProxy');
1367
1397
  }
1368
- return [wsProxy, wssProxy];
1398
+ return [wsProxy, wssProxy, wsSocksProxy];
1369
1399
  }
1370
1400
  checkConflictingProxies(proxyAgentSet, proxyUrlSet) {
1371
1401
  if (proxyAgentSet && proxyUrlSet) {
@@ -4275,8 +4305,8 @@ class Exchange {
4275
4305
  /**
4276
4306
  * @ignore
4277
4307
  * @method
4278
- * * Must add timeInForce to this.options to use this method
4279
- * @return {string} returns the exchange specific value for timeInForce
4308
+ * Must add timeInForce to this.options to use this method
4309
+ * @returns {string} returns the exchange specific value for timeInForce
4280
4310
  */
4281
4311
  const timeInForce = this.safeStringUpper(params, 'timeInForce'); // supported values GTC, IOC, PO
4282
4312
  if (timeInForce !== undefined) {
@@ -4292,7 +4322,7 @@ class Exchange {
4292
4322
  /**
4293
4323
  * @ignore
4294
4324
  * @method
4295
- * * Must add accountsByType to this.options to use this method
4325
+ * Must add accountsByType to this.options to use this method
4296
4326
  * @param {string} account key for account name in this.options['accountsByType']
4297
4327
  * @returns the exchange specific account name or the isolated margin id for transfers
4298
4328
  */
@@ -11,7 +11,7 @@ var Precise = require('./base/Precise.js');
11
11
  // ---------------------------------------------------------------------------
12
12
  /**
13
13
  * @class bigone
14
- * @extends Exchange
14
+ * @augments Exchange
15
15
  */
16
16
  class bigone extends bigone$1 {
17
17
  describe() {
@@ -13,7 +13,7 @@ var ed25519 = require('./static_dependencies/noble-curves/ed25519.js');
13
13
  // ---------------------------------------------------------------------------
14
14
  /**
15
15
  * @class binance
16
- * @extends Exchange
16
+ * @augments Exchange
17
17
  */
18
18
  class binance extends binance$1 {
19
19
  describe() {
@@ -4393,7 +4393,7 @@ class binance extends binance$1 {
4393
4393
  * @name binance#createOrders
4394
4394
  * @description *contract only* create a list of trade orders
4395
4395
  * @see https://binance-docs.github.io/apidocs/futures/en/#place-multiple-orders-trade
4396
- * @param {array} orders list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
4396
+ * @param {Array} orders list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
4397
4397
  * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
4398
4398
  */
4399
4399
  await this.loadMarkets();
@@ -1815,7 +1815,7 @@ class bingx extends bingx$1 {
1815
1815
  * @description create a list of trade orders
1816
1816
  * @see https://bingx-api.github.io/docs/#/spot/trade-api.html#Batch%20Placing%20Orders
1817
1817
  * @see https://bingx-api.github.io/docs/#/swapV2/trade-api.html#Bulk%20order
1818
- * @param {array} orders list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
1818
+ * @param {Array} orders list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
1819
1819
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1820
1820
  * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1821
1821
  */
@@ -10,7 +10,7 @@ var sha512 = require('./static_dependencies/noble-hashes/sha512.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class bit2c
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class bit2c extends bit2c$1 {
16
16
  describe() {
@@ -9,7 +9,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
9
9
  // ---------------------------------------------------------------------------
10
10
  /**
11
11
  * @class bitbank
12
- * @extends Exchange
12
+ * @augments Exchange
13
13
  */
14
14
  class bitbank extends bitbank$1 {
15
15
  describe() {
@@ -10,7 +10,7 @@ var sha512 = require('./static_dependencies/noble-hashes/sha512.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class bitbns
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class bitbns extends bitbns$1 {
16
16
  describe() {
@@ -10,7 +10,7 @@ var sha512 = require('./static_dependencies/noble-hashes/sha512.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class bitfinex
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class bitfinex extends bitfinex$1 {
16
16
  describe() {
@@ -10,7 +10,7 @@ var sha512 = require('./static_dependencies/noble-hashes/sha512.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class bitfinex2
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class bitfinex2 extends bitfinex2$1 {
16
16
  describe() {
@@ -10,7 +10,7 @@ var Precise = require('./base/Precise.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class bitflyer
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class bitflyer extends bitflyer$1 {
16
16
  describe() {
@@ -9,7 +9,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
9
9
  // ---------------------------------------------------------------------------
10
10
  /**
11
11
  * @class bitforex
12
- * @extends Exchange
12
+ * @augments Exchange
13
13
  */
14
14
  class bitforex extends bitforex$1 {
15
15
  describe() {
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class bitget
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class bitget extends bitget$1 {
16
16
  describe() {
@@ -3727,7 +3727,7 @@ class bitget extends bitget$1 {
3727
3727
  * @see https://bitgetlimited.github.io/apidoc/en/mix/#batch-order
3728
3728
  * @see https://bitgetlimited.github.io/apidoc/en/margin/#isolated-batch-order
3729
3729
  * @see https://bitgetlimited.github.io/apidoc/en/margin/#cross-batch-order
3730
- * @param {array} orders list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
3730
+ * @param {Array} orders list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
3731
3731
  * @param {object} [params] extra parameters specific to the api endpoint
3732
3732
  * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
3733
3733
  */
@@ -5981,7 +5981,6 @@ class bitget extends bitget$1 {
5981
5981
  * @param {string} symbol not used by bitget setPositionMode ()
5982
5982
  * @param {object} [params] extra parameters specific to the exchange API endpoint
5983
5983
  * @returns {object} response from the exchange
5984
- *
5985
5984
  */
5986
5985
  await this.loadMarkets();
5987
5986
  const sandboxMode = this.safeValue(this.options, 'sandboxMode', false);
@@ -10,7 +10,7 @@ var sha512 = require('./static_dependencies/noble-hashes/sha512.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class bithumb
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class bithumb extends bithumb$1 {
16
16
  describe() {
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class bitmart
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class bitmart extends bitmart$1 {
16
16
  describe() {
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class bitmex
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class bitmex extends bitmex$1 {
16
16
  describe() {
@@ -2245,7 +2245,7 @@ class bitmex extends bitmex$1 {
2245
2245
  const datetime = this.safeString(position, 'timestamp');
2246
2246
  const crossMargin = this.safeValue(position, 'crossMargin');
2247
2247
  const marginMode = (crossMargin === true) ? 'cross' : 'isolated';
2248
- const notionalString = Precise["default"].stringAbs(this.safeString(position, 'foreignNotional', 'homeNotional'));
2248
+ const notionalString = Precise["default"].stringAbs(this.safeString2(position, 'foreignNotional', 'homeNotional'));
2249
2249
  const settleCurrencyCode = this.safeString(market, 'settle');
2250
2250
  const maintenanceMargin = this.convertToRealAmount(settleCurrencyCode, this.safeString(position, 'maintMargin'));
2251
2251
  const unrealisedPnl = this.convertToRealAmount(settleCurrencyCode, this.safeString(position, 'unrealisedPnl'));
@@ -10,7 +10,7 @@ var sha512 = require('./static_dependencies/noble-hashes/sha512.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class bitopro
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class bitopro extends bitopro$1 {
16
16
  describe() {
@@ -9,7 +9,7 @@ var number = require('./base/functions/number.js');
9
9
  // ---------------------------------------------------------------------------
10
10
  /**
11
11
  * @class bitpanda
12
- * @extends Exchange
12
+ * @augments Exchange
13
13
  */
14
14
  class bitpanda extends bitpanda$1 {
15
15
  describe() {
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class bitrue
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class bitrue extends bitrue$1 {
16
16
  describe() {
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class bitso
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class bitso extends bitso$1 {
16
16
  describe() {
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class bitstamp
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class bitstamp extends bitstamp$1 {
16
16
  describe() {
@@ -9,7 +9,7 @@ var sha512 = require('./static_dependencies/noble-hashes/sha512.js');
9
9
  // ---------------------------------------------------------------------------
10
10
  /**
11
11
  * @class bittrex
12
- * @extends Exchange
12
+ * @augments Exchange
13
13
  */
14
14
  class bittrex extends bittrex$1 {
15
15
  describe() {
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ----------------------------------------------------------------------------
11
11
  /**
12
12
  * @class bitvavo
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class bitvavo extends bitvavo$1 {
16
16
  describe() {
@@ -9,7 +9,7 @@ var sha512 = require('./static_dependencies/noble-hashes/sha512.js');
9
9
  // ---------------------------------------------------------------------------
10
10
  /**
11
11
  * @class bl3p
12
- * @extends Exchange
12
+ * @augments Exchange
13
13
  */
14
14
  class bl3p extends bl3p$1 {
15
15
  describe() {
@@ -9,7 +9,7 @@ var number = require('./base/functions/number.js');
9
9
  // ---------------------------------------------------------------------------
10
10
  /**
11
11
  * @class blockchaincom
12
- * @extends Exchange
12
+ * @augments Exchange
13
13
  */
14
14
  class blockchaincom extends blockchaincom$1 {
15
15
  describe() {
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class btcalpha
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class btcalpha extends btcalpha$1 {
16
16
  describe() {
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class btcbox
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class btcbox extends btcbox$1 {
16
16
  describe() {
@@ -10,7 +10,7 @@ var sha512 = require('./static_dependencies/noble-hashes/sha512.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class btcmarkets
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class btcmarkets extends btcmarkets$1 {
16
16
  describe() {
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class btcturk
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class btcturk extends btcturk$1 {
16
16
  describe() {
@@ -11,7 +11,7 @@ var rsa = require('./base/functions/rsa.js');
11
11
  // ---------------------------------------------------------------------------
12
12
  /**
13
13
  * @class bybit
14
- * @extends Exchange
14
+ * @augments Exchange
15
15
  */
16
16
  class bybit extends bybit$1 {
17
17
  describe() {
@@ -3690,7 +3690,7 @@ class bybit extends bybit$1 {
3690
3690
  * @name bybit#createOrders
3691
3691
  * @description create a list of trade orders
3692
3692
  * @see https://bybit-exchange.github.io/docs/v5/order/batch-place
3693
- * @param {array} orders list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
3693
+ * @param {Array} orders list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
3694
3694
  * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
3695
3695
  */
3696
3696
  await this.loadMarkets();
@@ -4728,7 +4728,6 @@ class bybit extends bybit$1 {
4728
4728
  * @param {int} [limit] the maximum number of trades to retrieve
4729
4729
  * @param {object} [params] extra parameters specific to the exchange API endpoint
4730
4730
  * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
4731
- *
4732
4731
  */
4733
4732
  const request = {};
4734
4733
  const clientOrderId = this.safeString2(params, 'clientOrderId', 'orderLinkId');
@@ -5014,12 +5013,11 @@ class bybit extends bybit$1 {
5014
5013
  * @param {int} [limit] the maximum number of deposits structures to retrieve, default = 50, max = 50
5015
5014
  * @param {object} [params] extra parameters specific to the exchange API endpoint
5016
5015
  * @param {int} [params.until] the latest time in ms to fetch deposits for, default = 30 days after since
5017
- *
5018
5016
  * EXCHANGE SPECIFIC PARAMETERS
5019
5017
  * @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [availble parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
5020
5018
  * @param {string} [params.cursor] used for pagination
5021
5019
  * @returns {object[]} a list of [transaction structures]{@link https://docs.ccxt.com/#/?id=transaction-structure}
5022
- */
5020
+ */
5023
5021
  await this.loadMarkets();
5024
5022
  let paginate = false;
5025
5023
  [paginate, params] = this.handleOptionAndParams(params, 'fetchDeposits', 'paginate');
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class cex
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class cex extends cex$1 {
16
16
  describe() {
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ----------------------------------------------------------------------------
11
11
  /**
12
12
  * @class coinbase
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class coinbase extends coinbase$1 {
16
16
  describe() {
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ----------------------------------------------------------------------------
11
11
  /**
12
12
  * @class coinbasepro
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class coinbasepro extends coinbasepro$1 {
16
16
  describe() {
@@ -9,7 +9,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
9
9
  // ---------------------------------------------------------------------------
10
10
  /**
11
11
  * @class coincheck
12
- * @extends Exchange
12
+ * @augments Exchange
13
13
  */
14
14
  class coincheck extends coincheck$1 {
15
15
  describe() {
@@ -11,7 +11,7 @@ var md5 = require('./static_dependencies/noble-hashes/md5.js');
11
11
  // ---------------------------------------------------------------------------
12
12
  /**
13
13
  * @class coinex
14
- * @extends Exchange
14
+ * @augments Exchange
15
15
  */
16
16
  class coinex extends coinex$1 {
17
17
  describe() {
@@ -2271,7 +2271,7 @@ class coinex extends coinex$1 {
2271
2271
  * @name coinex#createOrders
2272
2272
  * @description create a list of trade orders (all orders should be of the same symbol)
2273
2273
  * @see https://viabtc.github.io/coinex_api_en_doc/spot/#docsspot003_trade002_batch_limit_orders
2274
- * @param {array} orders list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
2274
+ * @param {Array} orders list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
2275
2275
  * @param {object} [params] extra parameters specific to the api endpoint
2276
2276
  * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
2277
2277
  */
@@ -8,7 +8,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
8
8
 
9
9
  /**
10
10
  * @class coinlist
11
- * @extends Exchange
11
+ * @augments Exchange
12
12
  */
13
13
  class coinlist extends coinlist$1 {
14
14
  describe() {
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class coinmate
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class coinmate extends coinmate$1 {
16
16
  describe() {
@@ -10,7 +10,7 @@ var sha512 = require('./static_dependencies/noble-hashes/sha512.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class coinone
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class coinone extends coinone$1 {
16
16
  describe() {