ccxt 4.2.11 → 4.2.13

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 (392) hide show
  1. package/README.md +5 -5
  2. package/build.sh +2 -2
  3. package/dist/ccxt.browser.js +1347 -490
  4. package/dist/ccxt.browser.min.js +3 -3
  5. package/dist/cjs/_virtual/agent.js +7 -0
  6. package/dist/cjs/_virtual/parse-proxy-response.js +7 -0
  7. package/dist/cjs/_virtual/promisify.js +7 -0
  8. package/dist/cjs/ccxt.js +1 -1
  9. package/dist/cjs/js/ccxt.js +474 -0
  10. package/dist/cjs/js/src/abstract/ace.js +9 -0
  11. package/dist/cjs/js/src/abstract/alpaca.js +9 -0
  12. package/dist/cjs/js/src/abstract/ascendex.js +9 -0
  13. package/dist/cjs/js/src/abstract/bigone.js +9 -0
  14. package/dist/cjs/js/src/abstract/binance.js +9 -0
  15. package/dist/cjs/js/src/abstract/bingx.js +9 -0
  16. package/dist/cjs/js/src/abstract/bit2c.js +9 -0
  17. package/dist/cjs/js/src/abstract/bitbank.js +9 -0
  18. package/dist/cjs/js/src/abstract/bitbns.js +9 -0
  19. package/dist/cjs/js/src/abstract/bitfinex.js +9 -0
  20. package/dist/cjs/js/src/abstract/bitfinex2.js +9 -0
  21. package/dist/cjs/js/src/abstract/bitflyer.js +9 -0
  22. package/dist/cjs/js/src/abstract/bitforex.js +9 -0
  23. package/dist/cjs/js/src/abstract/bitget.js +9 -0
  24. package/dist/cjs/js/src/abstract/bithumb.js +9 -0
  25. package/dist/cjs/js/src/abstract/bitmart.js +9 -0
  26. package/dist/cjs/js/src/abstract/bitmex.js +9 -0
  27. package/dist/cjs/js/src/abstract/bitopro.js +9 -0
  28. package/dist/cjs/js/src/abstract/bitpanda.js +9 -0
  29. package/dist/cjs/js/src/abstract/bitrue.js +9 -0
  30. package/dist/cjs/js/src/abstract/bitso.js +9 -0
  31. package/dist/cjs/js/src/abstract/bitstamp.js +9 -0
  32. package/dist/cjs/js/src/abstract/bitteam.js +9 -0
  33. package/dist/cjs/js/src/abstract/bitvavo.js +9 -0
  34. package/dist/cjs/js/src/abstract/bl3p.js +9 -0
  35. package/dist/cjs/js/src/abstract/blockchaincom.js +9 -0
  36. package/dist/cjs/js/src/abstract/btcalpha.js +9 -0
  37. package/dist/cjs/js/src/abstract/btcbox.js +9 -0
  38. package/dist/cjs/js/src/abstract/btcmarkets.js +9 -0
  39. package/dist/cjs/js/src/abstract/btcturk.js +9 -0
  40. package/dist/cjs/js/src/abstract/bybit.js +9 -0
  41. package/dist/cjs/js/src/abstract/cex.js +9 -0
  42. package/dist/cjs/js/src/abstract/coinbase.js +9 -0
  43. package/dist/cjs/js/src/abstract/coinbasepro.js +9 -0
  44. package/dist/cjs/js/src/abstract/coincheck.js +9 -0
  45. package/dist/cjs/js/src/abstract/coinex.js +9 -0
  46. package/dist/cjs/js/src/abstract/coinlist.js +9 -0
  47. package/dist/cjs/js/src/abstract/coinmate.js +9 -0
  48. package/dist/cjs/js/src/abstract/coinone.js +9 -0
  49. package/dist/cjs/js/src/abstract/coinsph.js +9 -0
  50. package/dist/cjs/js/src/abstract/coinspot.js +9 -0
  51. package/dist/cjs/js/src/abstract/cryptocom.js +9 -0
  52. package/dist/cjs/js/src/abstract/currencycom.js +9 -0
  53. package/dist/cjs/js/src/abstract/delta.js +9 -0
  54. package/dist/cjs/js/src/abstract/deribit.js +9 -0
  55. package/dist/cjs/js/src/abstract/digifinex.js +9 -0
  56. package/dist/cjs/js/src/abstract/exmo.js +9 -0
  57. package/dist/cjs/js/src/abstract/gate.js +9 -0
  58. package/dist/cjs/js/src/abstract/gemini.js +9 -0
  59. package/dist/cjs/js/src/abstract/hitbtc.js +9 -0
  60. package/dist/cjs/js/src/abstract/hollaex.js +9 -0
  61. package/dist/cjs/js/src/abstract/htx.js +9 -0
  62. package/dist/cjs/js/src/abstract/huobijp.js +9 -0
  63. package/dist/cjs/js/src/abstract/idex.js +9 -0
  64. package/dist/cjs/js/src/abstract/independentreserve.js +9 -0
  65. package/dist/cjs/js/src/abstract/indodax.js +9 -0
  66. package/dist/cjs/js/src/abstract/kraken.js +9 -0
  67. package/dist/cjs/js/src/abstract/krakenfutures.js +9 -0
  68. package/dist/cjs/js/src/abstract/kucoin.js +9 -0
  69. package/dist/cjs/js/src/abstract/kucoinfutures.js +9 -0
  70. package/dist/cjs/js/src/abstract/kuna.js +9 -0
  71. package/dist/cjs/js/src/abstract/latoken.js +9 -0
  72. package/dist/cjs/js/src/abstract/lbank.js +9 -0
  73. package/dist/cjs/js/src/abstract/luno.js +9 -0
  74. package/dist/cjs/js/src/abstract/lykke.js +9 -0
  75. package/dist/cjs/js/src/abstract/mercado.js +9 -0
  76. package/dist/cjs/js/src/abstract/mexc.js +9 -0
  77. package/dist/cjs/js/src/abstract/ndax.js +9 -0
  78. package/dist/cjs/js/src/abstract/novadax.js +9 -0
  79. package/dist/cjs/js/src/abstract/oceanex.js +9 -0
  80. package/dist/cjs/js/src/abstract/okcoin.js +9 -0
  81. package/dist/cjs/js/src/abstract/okx.js +9 -0
  82. package/dist/cjs/js/src/abstract/p2b.js +9 -0
  83. package/dist/cjs/js/src/abstract/paymium.js +9 -0
  84. package/dist/cjs/js/src/abstract/phemex.js +9 -0
  85. package/dist/cjs/js/src/abstract/poloniex.js +9 -0
  86. package/dist/cjs/js/src/abstract/poloniexfutures.js +9 -0
  87. package/dist/cjs/js/src/abstract/probit.js +9 -0
  88. package/dist/cjs/js/src/abstract/timex.js +9 -0
  89. package/dist/cjs/js/src/abstract/tokocrypto.js +9 -0
  90. package/dist/cjs/js/src/abstract/upbit.js +9 -0
  91. package/dist/cjs/js/src/abstract/wavesexchange.js +9 -0
  92. package/dist/cjs/js/src/abstract/wazirx.js +9 -0
  93. package/dist/cjs/js/src/abstract/whitebit.js +9 -0
  94. package/dist/cjs/js/src/abstract/woo.js +9 -0
  95. package/dist/cjs/js/src/abstract/yobit.js +9 -0
  96. package/dist/cjs/js/src/abstract/zaif.js +9 -0
  97. package/dist/cjs/js/src/abstract/zonda.js +9 -0
  98. package/dist/cjs/js/src/ace.js +1058 -0
  99. package/dist/cjs/js/src/alpaca.js +1125 -0
  100. package/dist/cjs/js/src/ascendex.js +3360 -0
  101. package/dist/cjs/js/src/base/Exchange.js +5110 -0
  102. package/dist/cjs/js/src/base/Precise.js +263 -0
  103. package/dist/cjs/js/src/base/errors.js +299 -0
  104. package/dist/cjs/js/src/base/functions/crypto.js +78 -0
  105. package/dist/cjs/js/src/base/functions/encode.js +44 -0
  106. package/dist/cjs/js/src/base/functions/generic.js +193 -0
  107. package/dist/cjs/js/src/base/functions/misc.js +96 -0
  108. package/dist/cjs/js/src/base/functions/number.js +297 -0
  109. package/dist/cjs/js/src/base/functions/platform.js +28 -0
  110. package/dist/cjs/js/src/base/functions/rsa.js +34 -0
  111. package/dist/cjs/js/src/base/functions/string.js +48 -0
  112. package/dist/cjs/js/src/base/functions/throttle.js +66 -0
  113. package/dist/cjs/js/src/base/functions/time.js +187 -0
  114. package/dist/cjs/js/src/base/functions/totp.js +24 -0
  115. package/dist/cjs/js/src/base/functions/type.js +162 -0
  116. package/dist/cjs/js/src/base/functions.js +157 -0
  117. package/dist/cjs/js/src/base/ws/Cache.js +254 -0
  118. package/dist/cjs/js/src/base/ws/Client.js +299 -0
  119. package/dist/cjs/js/src/base/ws/Future.js +34 -0
  120. package/dist/cjs/js/src/base/ws/OrderBook.js +107 -0
  121. package/dist/cjs/js/src/base/ws/OrderBookSide.js +281 -0
  122. package/dist/cjs/js/src/base/ws/WsClient.js +69 -0
  123. package/dist/cjs/js/src/bequant.js +33 -0
  124. package/dist/cjs/js/src/bigone.js +2209 -0
  125. package/dist/cjs/js/src/binance.js +9736 -0
  126. package/dist/cjs/js/src/binancecoinm.js +45 -0
  127. package/dist/cjs/js/src/binanceus.js +84 -0
  128. package/dist/cjs/js/src/binanceusdm.js +58 -0
  129. package/dist/cjs/js/src/bingx.js +3807 -0
  130. package/dist/cjs/js/src/bit2c.js +916 -0
  131. package/dist/cjs/js/src/bitbank.js +1000 -0
  132. package/dist/cjs/js/src/bitbay.js +17 -0
  133. package/dist/cjs/js/src/bitbns.js +1220 -0
  134. package/dist/cjs/js/src/bitcoincom.js +17 -0
  135. package/dist/cjs/js/src/bitfinex.js +1670 -0
  136. package/dist/cjs/js/src/bitfinex2.js +2990 -0
  137. package/dist/cjs/js/src/bitflyer.js +1045 -0
  138. package/dist/cjs/js/src/bitforex.js +852 -0
  139. package/dist/cjs/js/src/bitget.js +8291 -0
  140. package/dist/cjs/js/src/bithumb.js +1090 -0
  141. package/dist/cjs/js/src/bitmart.js +4454 -0
  142. package/dist/cjs/js/src/bitmex.js +2884 -0
  143. package/dist/cjs/js/src/bitopro.js +1724 -0
  144. package/dist/cjs/js/src/bitpanda.js +2002 -0
  145. package/dist/cjs/js/src/bitrue.js +3253 -0
  146. package/dist/cjs/js/src/bitso.js +1753 -0
  147. package/dist/cjs/js/src/bitstamp.js +2188 -0
  148. package/dist/cjs/js/src/bitteam.js +2309 -0
  149. package/dist/cjs/js/src/bitvavo.js +1968 -0
  150. package/dist/cjs/js/src/bl3p.js +447 -0
  151. package/dist/cjs/js/src/blockchaincom.js +1160 -0
  152. package/dist/cjs/js/src/btcalpha.js +929 -0
  153. package/dist/cjs/js/src/btcbox.js +565 -0
  154. package/dist/cjs/js/src/btcmarkets.js +1237 -0
  155. package/dist/cjs/js/src/btcturk.js +929 -0
  156. package/dist/cjs/js/src/bybit.js +7646 -0
  157. package/dist/cjs/js/src/cex.js +1693 -0
  158. package/dist/cjs/js/src/coinbase.js +3424 -0
  159. package/dist/cjs/js/src/coinbasepro.js +1866 -0
  160. package/dist/cjs/js/src/coincheck.js +843 -0
  161. package/dist/cjs/js/src/coinex.js +5414 -0
  162. package/dist/cjs/js/src/coinlist.js +2329 -0
  163. package/dist/cjs/js/src/coinmate.js +989 -0
  164. package/dist/cjs/js/src/coinone.js +1185 -0
  165. package/dist/cjs/js/src/coinsph.js +1933 -0
  166. package/dist/cjs/js/src/coinspot.js +548 -0
  167. package/dist/cjs/js/src/cryptocom.js +3007 -0
  168. package/dist/cjs/js/src/currencycom.js +2015 -0
  169. package/dist/cjs/js/src/delta.js +3256 -0
  170. package/dist/cjs/js/src/deribit.js +3306 -0
  171. package/dist/cjs/js/src/digifinex.js +4307 -0
  172. package/dist/cjs/js/src/exmo.js +2645 -0
  173. package/dist/cjs/js/src/fmfwio.js +34 -0
  174. package/dist/cjs/js/src/gate.js +7072 -0
  175. package/dist/cjs/js/src/gateio.js +16 -0
  176. package/dist/cjs/js/src/gemini.js +1801 -0
  177. package/dist/cjs/js/src/hitbtc.js +3660 -0
  178. package/dist/cjs/js/src/hitbtc3.js +19 -0
  179. package/dist/cjs/js/src/hollaex.js +1882 -0
  180. package/dist/cjs/js/src/htx.js +9049 -0
  181. package/dist/cjs/js/src/huobi.js +16 -0
  182. package/dist/cjs/js/src/huobijp.js +1918 -0
  183. package/dist/cjs/js/src/idex.js +1770 -0
  184. package/dist/cjs/js/src/independentreserve.js +761 -0
  185. package/dist/cjs/js/src/indodax.js +1069 -0
  186. package/dist/cjs/js/src/kraken.js +2857 -0
  187. package/dist/cjs/js/src/krakenfutures.js +2407 -0
  188. package/dist/cjs/js/src/kucoin.js +4489 -0
  189. package/dist/cjs/js/src/kucoinfutures.js +2475 -0
  190. package/dist/cjs/js/src/kuna.js +1949 -0
  191. package/dist/cjs/js/src/latoken.js +1729 -0
  192. package/dist/cjs/js/src/lbank.js +2851 -0
  193. package/dist/cjs/js/src/luno.js +1044 -0
  194. package/dist/cjs/js/src/lykke.js +1303 -0
  195. package/dist/cjs/js/src/mercado.js +897 -0
  196. package/dist/cjs/js/src/mexc.js +5407 -0
  197. package/dist/cjs/js/src/ndax.js +2450 -0
  198. package/dist/cjs/js/src/novadax.js +1556 -0
  199. package/dist/cjs/js/src/oceanex.js +964 -0
  200. package/dist/cjs/js/src/okcoin.js +3115 -0
  201. package/dist/cjs/js/src/okx.js +7330 -0
  202. package/dist/cjs/js/src/p2b.js +1243 -0
  203. package/dist/cjs/js/src/paymium.js +597 -0
  204. package/dist/cjs/js/src/phemex.js +4722 -0
  205. package/dist/cjs/js/src/poloniex.js +2356 -0
  206. package/dist/cjs/js/src/poloniexfutures.js +1794 -0
  207. package/dist/cjs/js/src/pro/alpaca.js +714 -0
  208. package/dist/cjs/js/src/pro/ascendex.js +957 -0
  209. package/dist/cjs/js/src/pro/bequant.js +33 -0
  210. package/dist/cjs/js/src/pro/binance.js +2796 -0
  211. package/dist/cjs/js/src/pro/binancecoinm.js +23 -0
  212. package/dist/cjs/js/src/pro/binanceus.js +51 -0
  213. package/dist/cjs/js/src/pro/binanceusdm.js +32 -0
  214. package/dist/cjs/js/src/pro/bingx.js +944 -0
  215. package/dist/cjs/js/src/pro/bitcoincom.js +29 -0
  216. package/dist/cjs/js/src/pro/bitfinex.js +672 -0
  217. package/dist/cjs/js/src/pro/bitfinex2.js +1159 -0
  218. package/dist/cjs/js/src/pro/bitget.js +1733 -0
  219. package/dist/cjs/js/src/pro/bitmart.js +1486 -0
  220. package/dist/cjs/js/src/pro/bitmex.js +1576 -0
  221. package/dist/cjs/js/src/pro/bitopro.js +327 -0
  222. package/dist/cjs/js/src/pro/bitpanda.js +1341 -0
  223. package/dist/cjs/js/src/pro/bitrue.js +462 -0
  224. package/dist/cjs/js/src/pro/bitstamp.js +547 -0
  225. package/dist/cjs/js/src/pro/bitvavo.js +704 -0
  226. package/dist/cjs/js/src/pro/blockchaincom.js +794 -0
  227. package/dist/cjs/js/src/pro/bybit.js +1843 -0
  228. package/dist/cjs/js/src/pro/cex.js +1510 -0
  229. package/dist/cjs/js/src/pro/coinbase.js +561 -0
  230. package/dist/cjs/js/src/pro/coinbasepro.js +968 -0
  231. package/dist/cjs/js/src/pro/coinex.js +1095 -0
  232. package/dist/cjs/js/src/pro/cryptocom.js +1020 -0
  233. package/dist/cjs/js/src/pro/currencycom.js +563 -0
  234. package/dist/cjs/js/src/pro/deribit.js +825 -0
  235. package/dist/cjs/js/src/pro/exmo.js +658 -0
  236. package/dist/cjs/js/src/pro/gate.js +1316 -0
  237. package/dist/cjs/js/src/pro/gateio.js +16 -0
  238. package/dist/cjs/js/src/pro/gemini.js +649 -0
  239. package/dist/cjs/js/src/pro/hitbtc.js +1293 -0
  240. package/dist/cjs/js/src/pro/hollaex.js +597 -0
  241. package/dist/cjs/js/src/pro/htx.js +2383 -0
  242. package/dist/cjs/js/src/pro/huobi.js +16 -0
  243. package/dist/cjs/js/src/pro/huobijp.js +606 -0
  244. package/dist/cjs/js/src/pro/idex.js +714 -0
  245. package/dist/cjs/js/src/pro/independentreserve.js +280 -0
  246. package/dist/cjs/js/src/pro/kraken.js +1364 -0
  247. package/dist/cjs/js/src/pro/krakenfutures.js +1500 -0
  248. package/dist/cjs/js/src/pro/kucoin.js +1052 -0
  249. package/dist/cjs/js/src/pro/kucoinfutures.js +981 -0
  250. package/dist/cjs/js/src/pro/luno.js +322 -0
  251. package/dist/cjs/js/src/pro/mexc.js +1170 -0
  252. package/dist/cjs/js/src/pro/ndax.js +545 -0
  253. package/dist/cjs/js/src/pro/okcoin.js +760 -0
  254. package/dist/cjs/js/src/pro/okx.js +1608 -0
  255. package/dist/cjs/js/src/pro/phemex.js +1511 -0
  256. package/dist/cjs/js/src/pro/poloniex.js +1253 -0
  257. package/dist/cjs/js/src/pro/poloniexfutures.js +1014 -0
  258. package/dist/cjs/js/src/pro/probit.js +586 -0
  259. package/dist/cjs/js/src/pro/upbit.js +234 -0
  260. package/dist/cjs/js/src/pro/wazirx.js +776 -0
  261. package/dist/cjs/js/src/pro/whitebit.js +927 -0
  262. package/dist/cjs/js/src/pro/woo.js +769 -0
  263. package/dist/cjs/js/src/probit.js +1867 -0
  264. package/dist/cjs/js/src/static_dependencies/fflake/browser.js +401 -0
  265. package/dist/cjs/js/src/static_dependencies/jsencrypt/JSEncrypt.js +195 -0
  266. package/dist/cjs/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +308 -0
  267. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +554 -0
  268. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +94 -0
  269. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +70 -0
  270. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +91 -0
  271. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +16 -0
  272. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +1760 -0
  273. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +52 -0
  274. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +81 -0
  275. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +376 -0
  276. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/util.js +70 -0
  277. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +1580 -0
  278. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +74 -0
  279. package/dist/cjs/js/src/static_dependencies/noble-curves/_shortw_utils.js +24 -0
  280. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/curve.js +158 -0
  281. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/edwards.js +429 -0
  282. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +176 -0
  283. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/modular.js +324 -0
  284. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/montgomery.js +163 -0
  285. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/utils.js +245 -0
  286. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/weierstrass.js +1018 -0
  287. package/dist/cjs/js/src/static_dependencies/noble-curves/ed25519.js +383 -0
  288. package/dist/cjs/js/src/static_dependencies/noble-curves/secp256k1.js +258 -0
  289. package/dist/cjs/js/src/static_dependencies/noble-hashes/_assert.js +53 -0
  290. package/dist/cjs/js/src/static_dependencies/noble-hashes/_sha2.js +120 -0
  291. package/dist/cjs/js/src/static_dependencies/noble-hashes/_u64.js +69 -0
  292. package/dist/cjs/js/src/static_dependencies/noble-hashes/crypto.js +7 -0
  293. package/dist/cjs/js/src/static_dependencies/noble-hashes/hmac.js +83 -0
  294. package/dist/cjs/js/src/static_dependencies/noble-hashes/md5.js +240 -0
  295. package/dist/cjs/js/src/static_dependencies/noble-hashes/sha1.js +91 -0
  296. package/dist/cjs/js/src/static_dependencies/noble-hashes/sha256.js +130 -0
  297. package/dist/cjs/js/src/static_dependencies/noble-hashes/sha3.js +214 -0
  298. package/dist/cjs/js/src/static_dependencies/noble-hashes/sha512.js +239 -0
  299. package/dist/cjs/js/src/static_dependencies/noble-hashes/utils.js +93 -0
  300. package/dist/cjs/js/src/static_dependencies/node-fetch/body.js +354 -0
  301. package/dist/cjs/js/src/static_dependencies/node-fetch/errors/abort-error.js +16 -0
  302. package/dist/cjs/js/src/static_dependencies/node-fetch/errors/base.js +20 -0
  303. package/dist/cjs/js/src/static_dependencies/node-fetch/errors/fetch-error.js +30 -0
  304. package/dist/cjs/js/src/static_dependencies/node-fetch/headers.js +239 -0
  305. package/dist/cjs/js/src/static_dependencies/node-fetch/index.js +372 -0
  306. package/dist/cjs/js/src/static_dependencies/node-fetch/request.js +273 -0
  307. package/dist/cjs/js/src/static_dependencies/node-fetch/response.js +139 -0
  308. package/dist/cjs/js/src/static_dependencies/node-fetch/utils/get-search.js +14 -0
  309. package/dist/cjs/js/src/static_dependencies/node-fetch/utils/is-redirect.js +16 -0
  310. package/dist/cjs/js/src/static_dependencies/node-fetch/utils/is.js +81 -0
  311. package/dist/cjs/js/src/static_dependencies/node-fetch/utils/referrer.js +292 -0
  312. package/dist/cjs/js/src/static_dependencies/proxies/agent-base/index.js +103 -0
  313. package/dist/cjs/js/src/static_dependencies/proxies/http-proxy-agent/index.js +140 -0
  314. package/dist/cjs/js/src/static_dependencies/proxies/https-proxy-agent/index.js +175 -0
  315. package/dist/cjs/js/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +95 -0
  316. package/dist/cjs/js/src/static_dependencies/qs/index.cjs.js +7 -0
  317. package/dist/cjs/js/src/static_dependencies/scure-base/index.js +383 -0
  318. package/dist/cjs/js/src/timex.js +1562 -0
  319. package/dist/cjs/js/src/tokocrypto.js +2542 -0
  320. package/dist/cjs/js/src/upbit.js +1844 -0
  321. package/dist/cjs/js/src/wavesexchange.js +2607 -0
  322. package/dist/cjs/js/src/wazirx.js +953 -0
  323. package/dist/cjs/js/src/whitebit.js +2309 -0
  324. package/dist/cjs/js/src/woo.js +2765 -0
  325. package/dist/cjs/js/src/yobit.js +1314 -0
  326. package/dist/cjs/js/src/zaif.js +736 -0
  327. package/dist/cjs/js/src/zonda.js +1883 -0
  328. package/js/ccxt.d.ts +1 -1
  329. package/js/ccxt.js +1 -1
  330. package/js/src/abstract/bigone.d.ts +18 -0
  331. package/js/src/abstract/binance.d.ts +2 -0
  332. package/js/src/abstract/binancecoinm.d.ts +2 -0
  333. package/js/src/abstract/binanceus.d.ts +2 -0
  334. package/js/src/abstract/binanceusdm.d.ts +2 -0
  335. package/js/src/abstract/bingx.d.ts +2 -0
  336. package/js/src/abstract/bybit.d.ts +1 -0
  337. package/js/src/abstract/gate.d.ts +11 -0
  338. package/js/src/abstract/gateio.d.ts +11 -0
  339. package/js/src/abstract/okx.d.ts +1 -0
  340. package/js/src/alpaca.js +18 -18
  341. package/js/src/base/Exchange.d.ts +5 -1
  342. package/js/src/base/Exchange.js +101 -12
  343. package/js/src/bigone.d.ts +3 -2
  344. package/js/src/bigone.js +429 -167
  345. package/js/src/binance.js +48 -34
  346. package/js/src/bingx.js +115 -38
  347. package/js/src/bitfinex.d.ts +2 -2
  348. package/js/src/bitfinex.js +2 -3
  349. package/js/src/bitget.js +33 -13
  350. package/js/src/bitmart.d.ts +2 -2
  351. package/js/src/bitmart.js +5 -5
  352. package/js/src/bitmex.js +1 -0
  353. package/js/src/bybit.js +2 -0
  354. package/js/src/coinbase.d.ts +26 -3
  355. package/js/src/coinbase.js +176 -26
  356. package/js/src/coinlist.js +3 -4
  357. package/js/src/coinone.js +1 -1
  358. package/js/src/coinsph.js +2 -3
  359. package/js/src/deribit.js +1 -0
  360. package/js/src/gate.d.ts +4 -4
  361. package/js/src/gate.js +96 -59
  362. package/js/src/gemini.js +1 -1
  363. package/js/src/hitbtc.d.ts +4 -4
  364. package/js/src/hitbtc.js +2 -3
  365. package/js/src/htx.d.ts +1 -0
  366. package/js/src/htx.js +29 -7
  367. package/js/src/huobijp.js +2 -3
  368. package/js/src/independentreserve.js +7 -5
  369. package/js/src/kraken.js +3 -6
  370. package/js/src/lbank.js +59 -33
  371. package/js/src/mexc.js +2 -1
  372. package/js/src/oceanex.js +1 -1
  373. package/js/src/okx.js +14 -3
  374. package/js/src/phemex.js +9 -2
  375. package/js/src/pro/binance.d.ts +2 -23
  376. package/js/src/pro/binance.js +58 -22
  377. package/js/src/pro/coinbase.d.ts +2 -2
  378. package/js/src/pro/coinbase.js +4 -1
  379. package/js/src/pro/coinbasepro.d.ts +2 -2
  380. package/js/src/pro/hitbtc.d.ts +2 -2
  381. package/js/src/pro/kraken.js +1 -1
  382. package/js/src/pro/okx.d.ts +1 -0
  383. package/js/src/pro/okx.js +52 -2
  384. package/js/src/pro/poloniex.d.ts +2 -2
  385. package/js/src/probit.js +4 -2
  386. package/js/src/upbit.d.ts +3 -101
  387. package/js/src/upbit.js +12 -12
  388. package/js/src/wavesexchange.js +1 -1
  389. package/js/src/woo.d.ts +2 -0
  390. package/js/src/woo.js +52 -0
  391. package/package.json +1 -1
  392. package/skip-tests.json +5 -0
@@ -0,0 +1,563 @@
1
+ 'use strict';
2
+
3
+ var currencycom$1 = require('../currencycom.js');
4
+ var Precise = require('../base/Precise.js');
5
+ var Cache = require('../base/ws/Cache.js');
6
+ var sha256 = require('../static_dependencies/noble-hashes/sha256.js');
7
+
8
+ // ---------------------------------------------------------------------------
9
+ // ---------------------------------------------------------------------------
10
+ class currencycom extends currencycom$1 {
11
+ describe() {
12
+ return this.deepExtend(super.describe(), {
13
+ 'has': {
14
+ 'ws': true,
15
+ 'watchBalance': true,
16
+ 'watchTicker': true,
17
+ 'watchTickers': false,
18
+ 'watchTrades': true,
19
+ 'watchOrderBook': true,
20
+ // 'watchStatus': true,
21
+ // 'watchHeartbeat': true,
22
+ 'watchOHLCV': true,
23
+ },
24
+ 'urls': {
25
+ 'api': {
26
+ 'ws': 'wss://api-adapter.backend.currency.com/connect',
27
+ },
28
+ },
29
+ 'options': {
30
+ 'tradesLimit': 1000,
31
+ 'OHLCVLimit': 1000,
32
+ // WS timeframes differ from REST timeframes
33
+ 'timeframes': {
34
+ '1m': 'M1',
35
+ '3m': 'M3',
36
+ '5m': 'M5',
37
+ '15m': 'M15',
38
+ '30m': 'M30',
39
+ '1h': 'H1',
40
+ '4h': 'H4',
41
+ '1d': 'D1',
42
+ '1w': 'W1',
43
+ },
44
+ },
45
+ 'streaming': {
46
+ // okex does not support built-in ws protocol-level ping-pong
47
+ // instead it requires a custom text-based ping-pong
48
+ 'ping': this.ping,
49
+ 'keepAlive': 20000,
50
+ },
51
+ });
52
+ }
53
+ ping(client) {
54
+ // custom ping-pong
55
+ const requestId = this.requestId().toString();
56
+ return {
57
+ 'destination': 'ping',
58
+ 'correlationId': requestId,
59
+ 'payload': {},
60
+ };
61
+ }
62
+ handlePong(client, message) {
63
+ client.lastPong = this.milliseconds();
64
+ return message;
65
+ }
66
+ handleBalance(client, message, subscription) {
67
+ //
68
+ // {
69
+ // "status": "OK",
70
+ // "correlationId": "1",
71
+ // "payload": {
72
+ // "makerCommission": 0.2,
73
+ // "takerCommission": 0.2,
74
+ // "buyerCommission": 0.2,
75
+ // "sellerCommission": 0.2,
76
+ // "canTrade": true,
77
+ // "canWithdraw": true,
78
+ // "canDeposit": true,
79
+ // "updateTime": 1596742699,
80
+ // "balances": [
81
+ // {
82
+ // "accountId": 5470306579272968,
83
+ // "collateralCurrency": true,
84
+ // "asset": "ETH",
85
+ // "free": 0,
86
+ // "locked": 0,
87
+ // "default": false
88
+ // },
89
+ // {
90
+ // "accountId": 5470310874305732,
91
+ // "collateralCurrency": true,
92
+ // "asset": "USD",
93
+ // "free": 47.82576735,
94
+ // "locked": 1.187925,
95
+ // "default": true
96
+ // },
97
+ // ]
98
+ // }
99
+ // }
100
+ //
101
+ const payload = this.safeValue(message, 'payload');
102
+ const balance = this.parseBalance(payload);
103
+ this.balance = this.extend(this.balance, balance);
104
+ const messageHash = this.safeString(subscription, 'messageHash');
105
+ client.resolve(this.balance, messageHash);
106
+ if (messageHash in client.subscriptions) {
107
+ delete client.subscriptions[messageHash];
108
+ }
109
+ }
110
+ handleTicker(client, message, subscription) {
111
+ //
112
+ // {
113
+ // "status": "OK",
114
+ // "correlationId": "1",
115
+ // "payload": {
116
+ // "tickers": [
117
+ // {
118
+ // "symbol": "BTC/USD_LEVERAGE",
119
+ // "priceChange": "484.05",
120
+ // "priceChangePercent": "4.14",
121
+ // "weightedAvgPrice": "11682.83",
122
+ // "prevClosePrice": "11197.70",
123
+ // "lastPrice": "11682.80",
124
+ // "lastQty": "0.25",
125
+ // "bidPrice": "11682.80",
126
+ // "askPrice": "11682.85",
127
+ // "openPrice": "11197.70",
128
+ // "highPrice": "11734.05",
129
+ // "lowPrice": "11080.95",
130
+ // "volume": "299.133",
131
+ // "quoteVolume": "3488040.3465",
132
+ // "openTime": 1596585600000,
133
+ // "closeTime": 1596654452674
134
+ // }
135
+ // ]
136
+ // }
137
+ // }
138
+ //
139
+ const destination = '/api/v1/ticker/24hr';
140
+ const payload = this.safeValue(message, 'payload');
141
+ const tickers = this.safeValue(payload, 'tickers', []);
142
+ for (let i = 0; i < tickers.length; i++) {
143
+ const ticker = this.parseTicker(tickers[i]);
144
+ const symbol = ticker['symbol'];
145
+ this.tickers[symbol] = ticker;
146
+ const messageHash = destination + ':' + symbol;
147
+ client.resolve(ticker, messageHash);
148
+ if (messageHash in client.subscriptions) {
149
+ delete client.subscriptions[messageHash];
150
+ }
151
+ }
152
+ }
153
+ handleTrade(trade, market = undefined) {
154
+ //
155
+ // {
156
+ // "price": 11668.55,
157
+ // "size": 0.001,
158
+ // "id": 1600300736,
159
+ // "ts": 1596653426822,
160
+ // "symbol": "BTC/USD_LEVERAGE",
161
+ // "orderId": "00a02503-0079-54c4-0000-00004020163c",
162
+ // "clientOrderId": "00a02503-0079-54c4-0000-482f0000754f",
163
+ // "buyer": false
164
+ // }
165
+ //
166
+ const marketId = this.safeString(trade, 'symbol');
167
+ const symbol = this.safeSymbol(marketId, undefined, '/');
168
+ const timestamp = this.safeInteger(trade, 'ts');
169
+ const priceString = this.safeString(trade, 'price');
170
+ const amountString = this.safeString(trade, 'size');
171
+ const cost = this.parseNumber(Precise["default"].stringMul(priceString, amountString));
172
+ const price = this.parseNumber(priceString);
173
+ const amount = this.parseNumber(amountString);
174
+ const id = this.safeString(trade, 'id');
175
+ const orderId = this.safeString(trade, 'orderId');
176
+ const buyer = this.safeValue(trade, 'buyer');
177
+ const side = buyer ? 'buy' : 'sell';
178
+ return {
179
+ 'info': trade,
180
+ 'timestamp': timestamp,
181
+ 'datetime': this.iso8601(timestamp),
182
+ 'symbol': symbol,
183
+ 'id': id,
184
+ 'order': orderId,
185
+ 'type': undefined,
186
+ 'takerOrMaker': undefined,
187
+ 'side': side,
188
+ 'price': price,
189
+ 'amount': amount,
190
+ 'cost': cost,
191
+ 'fee': undefined,
192
+ };
193
+ }
194
+ handleTrades(client, message, subscription) {
195
+ //
196
+ // {
197
+ // "status": "OK",
198
+ // "destination": "internal.trade",
199
+ // "payload": {
200
+ // "price": 11668.55,
201
+ // "size": 0.001,
202
+ // "id": 1600300736,
203
+ // "ts": 1596653426822,
204
+ // "symbol": "BTC/USD_LEVERAGE",
205
+ // "orderId": "00a02503-0079-54c4-0000-00004020163c",
206
+ // "clientOrderId": "00a02503-0079-54c4-0000-482f0000754f",
207
+ // "buyer": false
208
+ // }
209
+ // }
210
+ //
211
+ const payload = this.safeValue(message, 'payload');
212
+ const parsed = this.handleTrade(payload);
213
+ const symbol = parsed['symbol'];
214
+ // const destination = this.safeString (message, 'destination');
215
+ const destination = 'trades.subscribe';
216
+ const messageHash = destination + ':' + symbol;
217
+ let stored = this.safeValue(this.trades, symbol);
218
+ if (stored === undefined) {
219
+ const limit = this.safeInteger(this.options, 'tradesLimit', 1000);
220
+ stored = new Cache.ArrayCache(limit);
221
+ this.trades[symbol] = stored;
222
+ }
223
+ stored.append(parsed);
224
+ client.resolve(stored, messageHash);
225
+ }
226
+ findTimeframe(timeframe, defaultTimeframes = undefined) {
227
+ const timeframes = this.safeValue(this.options, 'timeframes', defaultTimeframes);
228
+ const keys = Object.keys(timeframes);
229
+ for (let i = 0; i < keys.length; i++) {
230
+ const key = keys[i];
231
+ if (timeframes[key] === timeframe) {
232
+ return key;
233
+ }
234
+ }
235
+ return undefined;
236
+ }
237
+ handleOHLCV(client, message) {
238
+ //
239
+ // {
240
+ // "status": "OK",
241
+ // "destination": "ohlc.event",
242
+ // "payload": {
243
+ // "interval": "M1",
244
+ // "symbol": "BTC/USD_LEVERAGE",
245
+ // "t": 1596650940000,
246
+ // "h": 11670.05,
247
+ // "l": 11658.1,
248
+ // "o": 11668.55,
249
+ // "c": 11666.05
250
+ // }
251
+ // }
252
+ //
253
+ // const destination = this.safeString (message, 'destination');
254
+ const destination = 'OHLCMarketData.subscribe';
255
+ const payload = this.safeValue(message, 'payload', {});
256
+ const interval = this.safeString(payload, 'interval');
257
+ const timeframe = this.findTimeframe(interval);
258
+ const marketId = this.safeString(payload, 'symbol');
259
+ const market = this.safeMarket(marketId);
260
+ const symbol = market['symbol'];
261
+ const messageHash = destination + ':' + timeframe + ':' + symbol;
262
+ const result = [
263
+ this.safeInteger(payload, 't'),
264
+ this.safeNumber(payload, 'o'),
265
+ this.safeNumber(payload, 'h'),
266
+ this.safeNumber(payload, 'l'),
267
+ this.safeNumber(payload, 'c'),
268
+ undefined, // no volume v in OHLCV
269
+ ];
270
+ this.ohlcvs[symbol] = this.safeValue(this.ohlcvs, symbol, {});
271
+ let stored = this.safeValue(this.ohlcvs[symbol], timeframe);
272
+ if (stored === undefined) {
273
+ const limit = this.safeInteger(this.options, 'OHLCVLimit', 1000);
274
+ stored = new Cache.ArrayCacheByTimestamp(limit);
275
+ this.ohlcvs[symbol][timeframe] = stored;
276
+ }
277
+ stored.append(result);
278
+ client.resolve(stored, messageHash);
279
+ }
280
+ requestId() {
281
+ const reqid = this.sum(this.safeInteger(this.options, 'correlationId', 0), 1);
282
+ this.options['correlationId'] = reqid;
283
+ return reqid;
284
+ }
285
+ async watchPublic(destination, symbol, params = {}) {
286
+ await this.loadMarkets();
287
+ const market = this.market(symbol);
288
+ symbol = market['symbol'];
289
+ const messageHash = destination + ':' + symbol;
290
+ const url = this.urls['api']['ws'];
291
+ const requestId = this.requestId().toString();
292
+ const request = this.deepExtend({
293
+ 'destination': destination,
294
+ 'correlationId': requestId,
295
+ 'payload': {
296
+ 'symbols': [market['id']],
297
+ },
298
+ }, params);
299
+ const subscription = this.extend(request, {
300
+ 'messageHash': messageHash,
301
+ 'symbol': symbol,
302
+ });
303
+ return await this.watch(url, messageHash, request, messageHash, subscription);
304
+ }
305
+ async watchPrivate(destination, params = {}) {
306
+ await this.loadMarkets();
307
+ const messageHash = '/api/v1/account';
308
+ const url = this.urls['api']['ws'];
309
+ const requestId = this.requestId().toString();
310
+ const payload = {
311
+ 'timestamp': this.milliseconds(),
312
+ 'apiKey': this.apiKey,
313
+ };
314
+ const auth = this.urlencode(this.keysort(payload));
315
+ const request = this.deepExtend({
316
+ 'destination': destination,
317
+ 'correlationId': requestId,
318
+ 'payload': payload,
319
+ }, params);
320
+ request['payload']['signature'] = this.hmac(this.encode(auth), this.encode(this.secret), sha256.sha256);
321
+ const subscription = this.extend(request, {
322
+ 'messageHash': messageHash,
323
+ });
324
+ return await this.watch(url, messageHash, request, messageHash, subscription);
325
+ }
326
+ async watchBalance(params = {}) {
327
+ /**
328
+ * @method
329
+ * @name currencycom#watchBalance
330
+ * @description watch balance and get the amount of funds available for trading or funds locked in orders
331
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
332
+ * @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
333
+ */
334
+ await this.loadMarkets();
335
+ return await this.watchPrivate('/api/v1/account', params);
336
+ }
337
+ async watchTicker(symbol, params = {}) {
338
+ /**
339
+ * @method
340
+ * @name currencycom#watchTicker
341
+ * @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
342
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
343
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
344
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
345
+ */
346
+ await this.loadMarkets();
347
+ const market = this.market(symbol);
348
+ symbol = market['symbol'];
349
+ const destination = '/api/v1/ticker/24hr';
350
+ const messageHash = destination + ':' + symbol;
351
+ const url = this.urls['api']['ws'];
352
+ const requestId = this.requestId().toString();
353
+ const request = this.deepExtend({
354
+ 'destination': destination,
355
+ 'correlationId': requestId,
356
+ 'payload': {
357
+ 'symbol': market['id'],
358
+ },
359
+ }, params);
360
+ const subscription = this.extend(request, {
361
+ 'messageHash': messageHash,
362
+ 'symbol': symbol,
363
+ });
364
+ return await this.watch(url, messageHash, request, messageHash, subscription);
365
+ }
366
+ async watchTrades(symbol, since = undefined, limit = undefined, params = {}) {
367
+ /**
368
+ * @method
369
+ * @name currencycom#watchTrades
370
+ * @description get the list of most recent trades for a particular symbol
371
+ * @param {string} symbol unified symbol of the market to fetch trades for
372
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
373
+ * @param {int} [limit] the maximum amount of trades to fetch
374
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
375
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
376
+ */
377
+ await this.loadMarkets();
378
+ symbol = this.symbol(symbol);
379
+ const trades = await this.watchPublic('trades.subscribe', symbol, params);
380
+ if (this.newUpdates) {
381
+ limit = trades.getLimit(symbol, limit);
382
+ }
383
+ return this.filterBySinceLimit(trades, since, limit, 'timestamp', true);
384
+ }
385
+ async watchOrderBook(symbol, limit = undefined, params = {}) {
386
+ /**
387
+ * @method
388
+ * @name currencycom#watchOrderBook
389
+ * @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
390
+ * @param {string} symbol unified symbol of the market to fetch the order book for
391
+ * @param {int} [limit] the maximum amount of order book entries to return
392
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
393
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
394
+ */
395
+ await this.loadMarkets();
396
+ symbol = this.symbol(symbol);
397
+ const orderbook = await this.watchPublic('depthMarketData.subscribe', symbol, params);
398
+ return orderbook.limit();
399
+ }
400
+ async watchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
401
+ /**
402
+ * @method
403
+ * @name currencycom#watchOHLCV
404
+ * @description watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
405
+ * @param {string} symbol unified symbol of the market to fetch OHLCV data for
406
+ * @param {string} timeframe the length of time each candle represents
407
+ * @param {int} [since] timestamp in ms of the earliest candle to fetch
408
+ * @param {int} [limit] the maximum amount of candles to fetch
409
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
410
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
411
+ */
412
+ await this.loadMarkets();
413
+ symbol = this.symbol(symbol);
414
+ const destination = 'OHLCMarketData.subscribe';
415
+ const messageHash = destination + ':' + timeframe;
416
+ const timeframes = this.safeValue(this.options, 'timeframes');
417
+ const request = {
418
+ 'destination': destination,
419
+ 'payload': {
420
+ 'intervals': [
421
+ timeframes[timeframe],
422
+ ],
423
+ },
424
+ };
425
+ const ohlcv = await this.watchPublic(messageHash, symbol, this.extend(request, params));
426
+ if (this.newUpdates) {
427
+ limit = ohlcv.getLimit(symbol, limit);
428
+ }
429
+ return this.filterBySinceLimit(ohlcv, since, limit, 0, true);
430
+ }
431
+ handleDeltas(bookside, deltas) {
432
+ const prices = Object.keys(deltas);
433
+ for (let i = 0; i < prices.length; i++) {
434
+ const price = prices[i];
435
+ const amount = deltas[price];
436
+ bookside.store(parseFloat(price), parseFloat(amount));
437
+ }
438
+ }
439
+ handleOrderBook(client, message) {
440
+ //
441
+ // {
442
+ // "status": "OK",
443
+ // "destination": "marketdepth.event",
444
+ // "payload": {
445
+ // "data": "{"ts":1596235401337,"bid":{"11366.85":0.2500,"11366.1":5.0000,"11365.6":0.5000,"11363.0":2.0000},"ofr":{"11366.9":0.2500,"11367.65":5.0000,"11368.15":0.5000}}",
446
+ // "symbol": "BTC/USD_LEVERAGE"
447
+ // }
448
+ // }
449
+ //
450
+ const payload = this.safeValue(message, 'payload', {});
451
+ const data = this.safeValue(payload, 'data', {});
452
+ const marketId = this.safeString(payload, 'symbol');
453
+ const symbol = this.safeSymbol(marketId, undefined, '/');
454
+ // const destination = this.safeString (message, 'destination');
455
+ const destination = 'depthMarketData.subscribe';
456
+ const messageHash = destination + ':' + symbol;
457
+ const timestamp = this.safeInteger(data, 'ts');
458
+ let orderbook = this.safeValue(this.orderbooks, symbol);
459
+ if (orderbook === undefined) {
460
+ orderbook = this.orderBook();
461
+ }
462
+ orderbook.reset({
463
+ 'timestamp': timestamp,
464
+ 'datetime': this.iso8601(timestamp),
465
+ });
466
+ const bids = this.safeValue(data, 'bid', {});
467
+ const asks = this.safeValue(data, 'ofr', {});
468
+ this.handleDeltas(orderbook['bids'], bids);
469
+ this.handleDeltas(orderbook['asks'], asks);
470
+ this.orderbooks[symbol] = orderbook;
471
+ client.resolve(orderbook, messageHash);
472
+ }
473
+ handleMessage(client, message) {
474
+ //
475
+ // {
476
+ // "status": "OK",
477
+ // "correlationId": "1",
478
+ // "payload": {
479
+ // "tickers": [
480
+ // {
481
+ // "symbol": "1COV",
482
+ // "priceChange": "-0.29",
483
+ // "priceChangePercent": "-0.80",
484
+ // "prevClosePrice": "36.33",
485
+ // "lastPrice": "36.04",
486
+ // "openPrice": "36.33",
487
+ // "highPrice": "36.46",
488
+ // "lowPrice": "35.88",
489
+ // "openTime": 1595548800000,
490
+ // "closeTime": 1595795305401
491
+ // }
492
+ // ]
493
+ // }
494
+ // }
495
+ //
496
+ // {
497
+ // "status": "OK",
498
+ // "destination": "marketdepth.event",
499
+ // "payload": {
500
+ // "data": "{"ts":1596235401337,"bid":{"11366.85":0.2500,"11366.1":5.0000,"11365.6":0.5000,"11363.0":2.0000},"ofr":{"11366.9":0.2500,"11367.65":5.0000,"11368.15":0.5000}}",
501
+ // "symbol": "BTC/USD_LEVERAGE"
502
+ // }
503
+ // }
504
+ //
505
+ // {
506
+ // "status": "OK",
507
+ // "destination": "internal.trade",
508
+ // "payload": {
509
+ // "price": 11634.75,
510
+ // "size": 0.001,
511
+ // "id": 1605492357,
512
+ // "ts": 1596263802399,
513
+ // "instrumentId": 45076691096786110,
514
+ // "orderId": "00a02503-0079-54c4-0000-0000401fff51",
515
+ // "clientOrderId": "00a02503-0079-54c4-0000-482b00002f17",
516
+ // "buyer": false
517
+ // }
518
+ // }
519
+ //
520
+ const requestId = this.safeString(message, 'correlationId');
521
+ if (requestId !== undefined) {
522
+ const subscriptionsById = this.indexBy(client.subscriptions, 'correlationId');
523
+ const status = this.safeString(message, 'status');
524
+ const subscription = this.safeValue(subscriptionsById, requestId);
525
+ if (subscription !== undefined) {
526
+ if (status === 'OK') {
527
+ const subscriptionDestination = this.safeString(subscription, 'destination');
528
+ if (subscriptionDestination !== undefined) {
529
+ const methods = {
530
+ '/api/v1/ticker/24hr': this.handleTicker,
531
+ '/api/v1/account': this.handleBalance,
532
+ };
533
+ const method = this.safeValue(methods, subscriptionDestination);
534
+ if (method === undefined) {
535
+ return message;
536
+ }
537
+ else {
538
+ return method.call(this, client, message, subscription);
539
+ }
540
+ }
541
+ }
542
+ }
543
+ }
544
+ const destination = this.safeString(message, 'destination');
545
+ if (destination !== undefined) {
546
+ const methods = {
547
+ 'marketdepth.event': this.handleOrderBook,
548
+ 'internal.trade': this.handleTrades,
549
+ 'ohlc.event': this.handleOHLCV,
550
+ 'ping': this.handlePong,
551
+ };
552
+ const method = this.safeValue(methods, destination);
553
+ if (method === undefined) {
554
+ return message;
555
+ }
556
+ else {
557
+ return method.call(this, client, message);
558
+ }
559
+ }
560
+ }
561
+ }
562
+
563
+ module.exports = currencycom;