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
@@ -4,6 +4,7 @@ var poloniexfutures$1 = require('../poloniexfutures.js');
4
4
  var errors = require('../base/errors.js');
5
5
  var Cache = require('../base/ws/Cache.js');
6
6
 
7
+ // ---------------------------------------------------------------------------
7
8
  // ---------------------------------------------------------------------------
8
9
  class poloniexfutures extends poloniexfutures$1 {
9
10
  describe() {
@@ -59,18 +60,21 @@ class poloniexfutures extends poloniexfutures$1 {
59
60
  },
60
61
  });
61
62
  }
62
- negotiate(privateChannel, params = {}) {
63
+ async negotiate(privateChannel, params = {}) {
63
64
  const connectId = privateChannel ? 'private' : 'public';
64
65
  const urls = this.safeValue(this.options, 'urls', {});
65
66
  if (connectId in urls) {
66
- return urls[connectId];
67
+ // return urls[connectId];
68
+ const storedFuture = urls[connectId];
69
+ return await storedFuture;
67
70
  }
68
71
  // we store an awaitable to the url
69
72
  // so that multiple calls don't asynchronously
70
73
  // fetch different urls and overwrite each other
71
74
  urls[connectId] = this.spawn(this.negotiateHelper, privateChannel, params);
72
75
  this.options['urls'] = urls;
73
- return urls[connectId];
76
+ const future = urls[connectId];
77
+ return await future;
74
78
  }
75
79
  async negotiateHelper(privateChannel, params = {}) {
76
80
  let response = undefined;
@@ -708,7 +712,7 @@ class poloniexfutures extends poloniexfutures$1 {
708
712
  const messageHash = this.safeString(message, 'topic');
709
713
  const subject = this.safeString(message, 'subject');
710
714
  if (subject === 'received') {
711
- return message;
715
+ return;
712
716
  }
713
717
  // At the time of writting this, there is no implementation to easily convert each order into the orderbook so raw messages are returned
714
718
  client.resolve(message, messageHash);
@@ -727,9 +731,10 @@ class poloniexfutures extends poloniexfutures$1 {
727
731
  const topic = this.safeString(message, 'topic');
728
732
  const isSnapshot = topic.indexOf('Depth') >= 0;
729
733
  if (isSnapshot) {
730
- return this.handeL2Snapshot(client, message);
734
+ this.handeL2Snapshot(client, message);
735
+ return;
731
736
  }
732
- return this.handleL2OrderBook(client, message);
737
+ this.handleL2OrderBook(client, message);
733
738
  }
734
739
  handleL2OrderBook(client, message) {
735
740
  //
@@ -766,7 +771,7 @@ class poloniexfutures extends poloniexfutures$1 {
766
771
  const snapshotDelay = this.handleOption('watchOrderBook', 'snapshotDelay', 5);
767
772
  if (cacheLength === snapshotDelay) {
768
773
  const limit = 0;
769
- this.spawn(this.loadOrderBook, client, messageHash, symbol, limit);
774
+ this.spawn(this.loadOrderBook, client, messageHash, symbol, limit, {});
770
775
  }
771
776
  orderBook.cache.push(data);
772
777
  return;
@@ -954,7 +959,7 @@ class poloniexfutures extends poloniexfutures$1 {
954
959
  };
955
960
  const method = this.safeValue(methods, subject);
956
961
  if (method !== undefined) {
957
- return method.call(this, client, message);
962
+ method.call(this, client, message);
958
963
  }
959
964
  }
960
965
  ping(client) {
@@ -990,7 +995,7 @@ class poloniexfutures extends poloniexfutures$1 {
990
995
  };
991
996
  const method = this.safeValue(methods, type);
992
997
  if (method !== undefined) {
993
- return method.call(this, client, message);
998
+ method.call(this, client, message);
994
999
  }
995
1000
  }
996
1001
  handleAuthenticate(client, message) {
@@ -4,6 +4,7 @@ var probit$1 = require('../probit.js');
4
4
  var errors = require('../base/errors.js');
5
5
  var Cache = require('../base/ws/Cache.js');
6
6
 
7
+ // ---------------------------------------------------------------------------
7
8
  // ---------------------------------------------------------------------------
8
9
  class probit extends probit$1 {
9
10
  describe() {
@@ -449,20 +450,20 @@ class probit extends probit$1 {
449
450
  const symbol = this.safeSymbol(marketId);
450
451
  const dataBySide = this.groupBy(orderBook, 'side');
451
452
  const messageHash = 'orderbook:' + symbol;
452
- let storedOrderBook = this.safeValue(this.orderbooks, symbol);
453
- if (storedOrderBook === undefined) {
454
- storedOrderBook = this.orderBook({});
455
- this.orderbooks[symbol] = storedOrderBook;
453
+ let orderbook = this.safeValue(this.orderbooks, symbol);
454
+ if (orderbook === undefined) {
455
+ orderbook = this.orderBook({});
456
+ this.orderbooks[symbol] = orderbook;
456
457
  }
457
458
  const reset = this.safeBool(message, 'reset', false);
458
459
  if (reset) {
459
460
  const snapshot = this.parseOrderBook(dataBySide, symbol, undefined, 'buy', 'sell', 'price', 'quantity');
460
- storedOrderBook.reset(snapshot);
461
+ orderbook.reset(snapshot);
461
462
  }
462
463
  else {
463
- this.handleDelta(storedOrderBook, dataBySide);
464
+ this.handleDelta(orderbook, dataBySide);
464
465
  }
465
- client.resolve(storedOrderBook, messageHash);
466
+ client.resolve(orderbook, messageHash);
466
467
  }
467
468
  handleBidAsks(bookSide, bidAsks) {
468
469
  for (let i = 0; i < bidAsks.length; i++) {
@@ -535,11 +536,13 @@ class probit extends probit$1 {
535
536
  //
536
537
  const errorCode = this.safeString(message, 'errorCode');
537
538
  if (errorCode !== undefined) {
538
- return this.handleErrorMessage(client, message);
539
+ this.handleErrorMessage(client, message);
540
+ return;
539
541
  }
540
542
  const type = this.safeString(message, 'type');
541
543
  if (type === 'authorization') {
542
- return this.handleAuthenticate(client, message);
544
+ this.handleAuthenticate(client, message);
545
+ return;
543
546
  }
544
547
  const handlers = {
545
548
  'marketdata': this.handleMarketData,
@@ -551,7 +554,8 @@ class probit extends probit$1 {
551
554
  const channel = this.safeString(message, 'channel');
552
555
  const handler = this.safeValue(handlers, channel);
553
556
  if (handler !== undefined) {
554
- return handler.call(this, client, message);
557
+ handler.call(this, client, message);
558
+ return;
555
559
  }
556
560
  const error = new errors.NotSupported(this.id + ' handleMessage: unknown message: ' + this.json(message));
557
561
  client.reject(error);
@@ -579,7 +583,7 @@ class probit extends probit$1 {
579
583
  future = this.watch(url, messageHash, this.extend(request, params));
580
584
  client.subscriptions[messageHash] = future;
581
585
  }
582
- return await future;
586
+ return future;
583
587
  }
584
588
  }
585
589
 
@@ -163,15 +163,15 @@ class upbit extends upbit$1 {
163
163
  if (type === 'SNAPSHOT') {
164
164
  this.orderbooks[symbol] = this.orderBook({}, limit);
165
165
  }
166
- const orderBook = this.orderbooks[symbol];
166
+ const orderbook = this.orderbooks[symbol];
167
167
  // upbit always returns a snapshot of 15 topmost entries
168
168
  // the "REALTIME" deltas are not incremental
169
169
  // therefore we reset the orderbook on each update
170
170
  // and reinitialize it again with new bidasks
171
- orderBook.reset({});
172
- orderBook['symbol'] = symbol;
173
- const bids = orderBook['bids'];
174
- const asks = orderBook['asks'];
171
+ orderbook.reset({});
172
+ orderbook['symbol'] = symbol;
173
+ const bids = orderbook['bids'];
174
+ const asks = orderbook['asks'];
175
175
  const data = this.safeValue(message, 'orderbook_units', []);
176
176
  for (let i = 0; i < data.length; i++) {
177
177
  const entry = data[i];
@@ -184,10 +184,10 @@ class upbit extends upbit$1 {
184
184
  }
185
185
  const timestamp = this.safeInteger(message, 'timestamp');
186
186
  const datetime = this.iso8601(timestamp);
187
- orderBook['timestamp'] = timestamp;
188
- orderBook['datetime'] = datetime;
187
+ orderbook['timestamp'] = timestamp;
188
+ orderbook['datetime'] = datetime;
189
189
  const messageHash = 'orderbook:' + marketId;
190
- client.resolve(orderBook, messageHash);
190
+ client.resolve(orderbook, messageHash);
191
191
  }
192
192
  handleTrades(client, message) {
193
193
  // { type: "trade",
@@ -720,7 +720,8 @@ class wazirx extends wazirx$1 {
720
720
  handleMessage(client, message) {
721
721
  const status = this.safeString(message, 'status');
722
722
  if (status === 'error') {
723
- return this.handleError(client, message);
723
+ this.handleError(client, message);
724
+ return;
724
725
  }
725
726
  const event = this.safeString(message, 'event');
726
727
  const eventHandlers = {
@@ -730,7 +731,8 @@ class wazirx extends wazirx$1 {
730
731
  };
731
732
  const eventHandler = this.safeValue(eventHandlers, event);
732
733
  if (eventHandler !== undefined) {
733
- return eventHandler.call(this, client, message);
734
+ eventHandler.call(this, client, message);
735
+ return;
734
736
  }
735
737
  const stream = this.safeString(message, 'stream', '');
736
738
  const streamHandlers = {
@@ -746,7 +748,8 @@ class wazirx extends wazirx$1 {
746
748
  for (let i = 0; i < streams.length; i++) {
747
749
  if (this.inArray(streams[i], stream)) {
748
750
  const handler = streamHandlers[streams[i]];
749
- return handler.call(this, client, message);
751
+ handler.call(this, client, message);
752
+ return;
750
753
  }
751
754
  }
752
755
  throw new errors.NotSupported(this.id + ' this message type is not supported yet. Message: ' + this.json(message));
@@ -410,7 +410,7 @@ class woo extends woo$1 {
410
410
  }
411
411
  return true;
412
412
  }
413
- authenticate(params = {}) {
413
+ async authenticate(params = {}) {
414
414
  this.checkRequiredCredentials();
415
415
  const url = this.urls['api']['ws']['private'] + '/' + this.uid;
416
416
  const client = this.client(url);
@@ -816,13 +816,15 @@ class woo extends woo$1 {
816
816
  const event = this.safeString(message, 'event');
817
817
  let method = this.safeValue(methods, event);
818
818
  if (method !== undefined) {
819
- return method.call(this, client, message);
819
+ method.call(this, client, message);
820
+ return;
820
821
  }
821
822
  const topic = this.safeString(message, 'topic');
822
823
  if (topic !== undefined) {
823
824
  method = this.safeValue(methods, topic);
824
825
  if (method !== undefined) {
825
- return method.call(this, client, message);
826
+ method.call(this, client, message);
827
+ return;
826
828
  }
827
829
  const splitTopic = topic.split('@');
828
830
  const splitLength = splitTopic.length;
@@ -830,19 +832,19 @@ class woo extends woo$1 {
830
832
  const name = this.safeString(splitTopic, 1);
831
833
  method = this.safeValue(methods, name);
832
834
  if (method !== undefined) {
833
- return method.call(this, client, message);
835
+ method.call(this, client, message);
836
+ return;
834
837
  }
835
838
  const splitName = name.split('_');
836
839
  const splitNameLength = splitTopic.length;
837
840
  if (splitNameLength === 2) {
838
841
  method = this.safeValue(methods, this.safeString(splitName, 0));
839
842
  if (method !== undefined) {
840
- return method.call(this, client, message);
843
+ method.call(this, client, message);
841
844
  }
842
845
  }
843
846
  }
844
847
  }
845
- return message;
846
848
  }
847
849
  ping(client) {
848
850
  return { 'event': 'ping' };
@@ -422,8 +422,8 @@ class probit extends probit$1 {
422
422
  const networkList = {};
423
423
  for (let j = 0; j < platformsByPriority.length; j++) {
424
424
  const network = platformsByPriority[j];
425
- const networkId = this.safeString(network, 'id');
426
- const networkCode = this.networkIdToCode(networkId);
425
+ const idInner = this.safeString(network, 'id');
426
+ const networkCode = this.networkIdToCode(idInner);
427
427
  const currentDepositSuspended = this.safeValue(network, 'deposit_suspended');
428
428
  const currentWithdrawalSuspended = this.safeValue(network, 'withdrawal_suspended');
429
429
  const currentDeposit = !currentDepositSuspended;
@@ -444,7 +444,7 @@ class probit extends probit$1 {
444
444
  }
445
445
  }
446
446
  networkList[networkCode] = {
447
- 'id': networkId,
447
+ 'id': idInner,
448
448
  'network': networkCode,
449
449
  'active': currentActive,
450
450
  'deposit': currentDeposit,
@@ -1362,9 +1362,9 @@ class tokocrypto extends tokocrypto$1 {
1362
1362
  // "timestamp":1659666786943
1363
1363
  // }
1364
1364
  //
1365
- return this.parseBalance(response, type, marginMode);
1365
+ return this.parseBalanceCustom(response, type, marginMode);
1366
1366
  }
1367
- parseBalance(response, type = undefined, marginMode = undefined) {
1367
+ parseBalanceCustom(response, type = undefined, marginMode = undefined) {
1368
1368
  const timestamp = this.safeInteger(response, 'updateTime');
1369
1369
  const result = {
1370
1370
  'info': response,
@@ -1253,7 +1253,8 @@ class wavesexchange extends wavesexchange$1 {
1253
1253
  // precise.decimals should be integer
1254
1254
  precise.decimals = this.parseToInt(Precise["default"].stringSub(this.numberToString(precise.decimals), this.numberToString(scale)));
1255
1255
  precise.reduce();
1256
- return precise;
1256
+ const stringValue = precise.toString();
1257
+ return stringValue;
1257
1258
  }
1258
1259
  currencyFromPrecision(currency, amount) {
1259
1260
  const scale = this.currencies[currency]['precision'];
@@ -856,7 +856,7 @@ class woo extends woo$1 {
856
856
  const stopLoss = this.safeValue(params, 'stopLoss');
857
857
  const takeProfit = this.safeValue(params, 'takeProfit');
858
858
  const algoType = this.safeString(params, 'algoType');
859
- const trailingTriggerPrice = this.safeString2(params, 'trailingTriggerPrice', 'activatedPrice', price);
859
+ const trailingTriggerPrice = this.safeString2(params, 'trailingTriggerPrice', 'activatedPrice', this.numberToString(price));
860
860
  const trailingAmount = this.safeString2(params, 'trailingAmount', 'callbackValue');
861
861
  const trailingPercent = this.safeString2(params, 'trailingPercent', 'callbackRate');
862
862
  const isTrailingAmountOrder = trailingAmount !== undefined;
@@ -1177,11 +1177,29 @@ class yobit extends yobit$1 {
1177
1177
  const address = this.safeString(response['return'], 'address');
1178
1178
  this.checkAddress(address);
1179
1179
  return {
1180
+ 'id': undefined,
1180
1181
  'currency': code,
1181
1182
  'address': address,
1182
1183
  'tag': undefined,
1183
1184
  'network': undefined,
1184
1185
  'info': response,
1186
+ 'txid': undefined,
1187
+ 'type': undefined,
1188
+ 'amount': undefined,
1189
+ 'status': undefined,
1190
+ 'timestamp': undefined,
1191
+ 'datetime': undefined,
1192
+ 'addressFrom': undefined,
1193
+ 'addressTo': undefined,
1194
+ 'tagFrom': undefined,
1195
+ 'tagTo': undefined,
1196
+ 'updated': undefined,
1197
+ 'comment': undefined,
1198
+ 'fee': {
1199
+ 'currency': undefined,
1200
+ 'cost': undefined,
1201
+ 'rate': undefined,
1202
+ },
1185
1203
  };
1186
1204
  }
1187
1205
  async withdraw(code, amount, address, tag = undefined, params = {}) {
@@ -1214,6 +1232,27 @@ class yobit extends yobit$1 {
1214
1232
  return {
1215
1233
  'info': response,
1216
1234
  'id': undefined,
1235
+ 'txid': undefined,
1236
+ 'type': undefined,
1237
+ 'currency': undefined,
1238
+ 'network': undefined,
1239
+ 'amount': undefined,
1240
+ 'status': undefined,
1241
+ 'timestamp': undefined,
1242
+ 'datetime': undefined,
1243
+ 'address': undefined,
1244
+ 'addressFrom': undefined,
1245
+ 'addressTo': undefined,
1246
+ 'tag': undefined,
1247
+ 'tagFrom': undefined,
1248
+ 'tagTo': undefined,
1249
+ 'updated': undefined,
1250
+ 'comment': undefined,
1251
+ 'fee': {
1252
+ 'currency': undefined,
1253
+ 'cost': undefined,
1254
+ 'rate': undefined,
1255
+ },
1217
1256
  };
1218
1257
  }
1219
1258
  sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
package/js/ccxt.d.ts CHANGED
@@ -4,7 +4,7 @@ import * as functions from './src/base/functions.js';
4
4
  import * as errors from './src/base/errors.js';
5
5
  import type { Market, Trade, Fee, Ticker, OrderBook, Order, Transaction, Tickers, Currency, Balance, DepositAddress, WithdrawalResponse, DepositAddressResponse, OHLCV, Balances, PartialBalances, Dictionary, MinMax, Position, FundingRateHistory, Liquidation, FundingHistory, MarginMode, Greeks } from './src/base/types.js';
6
6
  import { BaseError, ExchangeError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, MarginModeAlreadySet, BadResponse, NullResponse, InsufficientFunds, InvalidAddress, InvalidOrder, OrderNotFound, OrderNotCached, CancelPending, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, NotSupported, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, AuthenticationError, AddressPending, NoChange } from './src/base/errors.js';
7
- declare const version = "4.2.30";
7
+ declare const version = "4.2.34";
8
8
  import ace from './src/ace.js';
9
9
  import alpaca from './src/alpaca.js';
10
10
  import ascendex from './src/ascendex.js';
package/js/ccxt.js CHANGED
@@ -38,7 +38,7 @@ import * as errors from './src/base/errors.js';
38
38
  import { BaseError, ExchangeError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, MarginModeAlreadySet, BadResponse, NullResponse, InsufficientFunds, InvalidAddress, InvalidOrder, OrderNotFound, OrderNotCached, CancelPending, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, NotSupported, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, AuthenticationError, AddressPending, NoChange } from './src/base/errors.js';
39
39
  //-----------------------------------------------------------------------------
40
40
  // this is updated by vss.js when building
41
- const version = '4.2.31';
41
+ const version = '4.2.35';
42
42
  Exchange.ccxtVersion = version;
43
43
  //-----------------------------------------------------------------------------
44
44
  import ace from './src/ace.js';
package/js/src/ace.d.ts CHANGED
@@ -16,7 +16,7 @@ export default class ace extends Exchange {
16
16
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
17
17
  parseOrderStatus(status: any): string;
18
18
  parseOrder(order: any, market?: Market): Order;
19
- createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
19
+ createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
20
20
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
21
21
  fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
22
22
  fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
package/js/src/ace.js CHANGED
@@ -1051,8 +1051,9 @@ export default class ace extends Exchange {
1051
1051
  const feedback = this.id + ' ' + body;
1052
1052
  const status = this.safeNumber(response, 'status', 200);
1053
1053
  if (status > 200) {
1054
- this.throwExactlyMatchedException(this.exceptions['exact'], status, feedback);
1055
- this.throwBroadlyMatchedException(this.exceptions['broad'], status, feedback);
1054
+ const statusStr = status.toString();
1055
+ this.throwExactlyMatchedException(this.exceptions['exact'], statusStr, feedback);
1056
+ this.throwBroadlyMatchedException(this.exceptions['broad'], statusStr, feedback);
1056
1057
  }
1057
1058
  return undefined;
1058
1059
  }
@@ -13,7 +13,7 @@ export default class alpaca extends Exchange {
13
13
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
14
14
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
15
15
  parseOHLCV(ohlcv: any, market?: Market): OHLCV;
16
- createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
16
+ createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
17
17
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
18
18
  cancelAllOrders(symbol?: Str, params?: {}): Promise<any>;
19
19
  fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/ascendex.js';
2
- import type { FundingHistory, Int, OHLCV, Order, OrderSide, OrderType, OrderRequest, Str, Trade, Balances, Transaction, Ticker, OrderBook, Tickers, Strings, Currency, Market } from './base/types.js';
2
+ import type { TransferEntry, FundingHistory, Int, OHLCV, Order, OrderSide, OrderType, OrderRequest, Str, Trade, Balances, Transaction, Ticker, OrderBook, Tickers, Strings, Currency, Market } from './base/types.js';
3
3
  /**
4
4
  * @class ascendex
5
5
  * @augments Exchange
@@ -31,8 +31,8 @@ export default class ascendex extends Exchange {
31
31
  parseOrderStatus(status: any): string;
32
32
  parseOrder(order: any, market?: Market): Order;
33
33
  fetchTradingFees(params?: {}): Promise<{}>;
34
- createOrderRequest(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): any;
35
- createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
34
+ createOrderRequest(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): any;
35
+ createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
36
36
  createOrders(orders: OrderRequest[], params?: {}): Promise<Order[]>;
37
37
  fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
38
38
  fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
@@ -86,7 +86,7 @@ export default class ascendex extends Exchange {
86
86
  };
87
87
  reduceMargin(symbol: string, amount: any, params?: {}): Promise<any>;
88
88
  addMargin(symbol: string, amount: any, params?: {}): Promise<any>;
89
- setLeverage(leverage: any, symbol?: Str, params?: {}): Promise<any>;
89
+ setLeverage(leverage: Int, symbol?: Str, params?: {}): Promise<any>;
90
90
  setMarginMode(marginMode: any, symbol?: Str, params?: {}): Promise<any>;
91
91
  fetchLeverageTiers(symbols?: Strings, params?: {}): Promise<{}>;
92
92
  parseMarketLeverageTiers(info: any, market?: Market): any[];
@@ -103,17 +103,7 @@ export default class ascendex extends Exchange {
103
103
  networks: {};
104
104
  };
105
105
  fetchDepositWithdrawFees(codes?: Strings, params?: {}): Promise<any>;
106
- transfer(code: string, amount: any, fromAccount: any, toAccount: any, params?: {}): Promise<{
107
- info: any;
108
- id: any;
109
- timestamp: number;
110
- datetime: string;
111
- currency: string;
112
- amount: any;
113
- fromAccount: any;
114
- toAccount: any;
115
- status: string;
116
- }>;
106
+ transfer(code: string, amount: number, fromAccount: any, toAccount: any, params?: {}): Promise<TransferEntry>;
117
107
  parseTransfer(transfer: any, currency?: Currency): {
118
108
  info: any;
119
109
  id: any;
@@ -3133,7 +3133,7 @@ export default class ascendex extends Exchange {
3133
3133
  * @method
3134
3134
  * @name ascendex#transfer
3135
3135
  * @description transfer currency internally between wallets on the same account
3136
- * @param {string} code unified currency code
3136
+ * @param {string} code unified currency codeåå
3137
3137
  * @param {float} amount amount to transfer
3138
3138
  * @param {string} fromAccount account to transfer from
3139
3139
  * @param {string} toAccount account to transfer to