ccxt-ir 4.10.0 → 4.11.0

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 (1047) hide show
  1. package/README.md +4 -4
  2. package/dist/ccxt.browser.min.js +2 -2
  3. package/dist/cjs/ccxt.js +4 -1
  4. package/dist/cjs/src/abstract/bidarz.js +11 -0
  5. package/dist/cjs/src/bidarz.js +337 -0
  6. package/dist/cjs/src/bit24.js +4 -3
  7. package/js/ccxt.d.ts +5 -2
  8. package/js/ccxt.js +4 -2
  9. package/js/src/abstract/bidarz.d.ts +9 -0
  10. package/js/src/abstract/bidarz.js +11 -0
  11. package/js/src/bidarz.d.ts +22 -0
  12. package/js/src/bidarz.js +336 -0
  13. package/js/src/bit24.js +4 -3
  14. package/js/src/src/abantether.d.ts +21 -0
  15. package/js/src/src/abantether.js +353 -0
  16. package/js/src/src/abstract/abantether.d.ts +8 -0
  17. package/js/src/src/abstract/abantether.js +11 -0
  18. package/js/src/src/abstract/afratether.d.ts +9 -0
  19. package/js/src/src/abstract/afratether.js +11 -0
  20. package/js/src/src/abstract/alpaca.d.ts +77 -0
  21. package/js/src/src/abstract/alpaca.js +11 -0
  22. package/js/src/src/abstract/apex.d.ts +34 -0
  23. package/js/src/src/abstract/apex.js +11 -0
  24. package/js/src/src/abstract/arzinja.d.ts +8 -0
  25. package/js/src/src/abstract/arzinja.js +11 -0
  26. package/js/src/src/abstract/arzplus.d.ts +11 -0
  27. package/js/src/src/abstract/arzplus.js +11 -0
  28. package/js/src/src/abstract/ascendex.d.ts +80 -0
  29. package/js/src/src/abstract/ascendex.js +11 -0
  30. package/js/src/src/abstract/asretether.d.ts +8 -0
  31. package/js/src/src/abstract/asretether.js +11 -0
  32. package/js/src/src/abstract/bidarz.d.ts +9 -0
  33. package/js/src/src/abstract/bidarz.js +11 -0
  34. package/js/src/src/abstract/bigone.d.ts +48 -0
  35. package/js/src/src/abstract/bigone.js +11 -0
  36. package/js/src/src/abstract/binance.d.ts +773 -0
  37. package/js/src/src/abstract/binance.js +11 -0
  38. package/js/src/src/abstract/bingx.d.ts +165 -0
  39. package/js/src/src/abstract/bingx.js +11 -0
  40. package/js/src/src/abstract/bit24.d.ts +9 -0
  41. package/js/src/src/abstract/bit24.js +11 -0
  42. package/js/src/src/abstract/bit2c.d.ts +30 -0
  43. package/js/src/src/abstract/bit2c.js +11 -0
  44. package/js/src/src/abstract/bitbank.d.ts +35 -0
  45. package/js/src/src/abstract/bitbank.js +11 -0
  46. package/js/src/src/abstract/bitbarg.d.ts +8 -0
  47. package/js/src/src/abstract/bitbarg.js +11 -0
  48. package/js/src/src/abstract/bitbns.d.ts +43 -0
  49. package/js/src/src/abstract/bitbns.js +11 -0
  50. package/js/src/src/abstract/bitfinex.d.ts +143 -0
  51. package/js/src/src/abstract/bitfinex.js +11 -0
  52. package/js/src/src/abstract/bitflyer.d.ts +42 -0
  53. package/js/src/src/abstract/bitflyer.js +11 -0
  54. package/js/src/src/abstract/bitget.d.ts +578 -0
  55. package/js/src/src/abstract/bitget.js +11 -0
  56. package/js/src/src/abstract/bithumb.d.ts +35 -0
  57. package/js/src/src/abstract/bithumb.js +11 -0
  58. package/js/src/src/abstract/bitimen.d.ts +10 -0
  59. package/js/src/src/abstract/bitimen.js +11 -0
  60. package/js/src/src/abstract/bitir.d.ts +10 -0
  61. package/js/src/src/abstract/bitir.js +11 -0
  62. package/js/src/src/abstract/bitmart.d.ts +120 -0
  63. package/js/src/src/abstract/bitmart.js +11 -0
  64. package/js/src/src/abstract/bitmex.d.ts +100 -0
  65. package/js/src/src/abstract/bitmex.js +11 -0
  66. package/js/src/src/abstract/bitopro.d.ts +33 -0
  67. package/js/src/src/abstract/bitopro.js +11 -0
  68. package/js/src/src/abstract/bitpin.d.ts +11 -0
  69. package/js/src/src/abstract/bitpin.js +11 -0
  70. package/js/src/src/abstract/bitrue.d.ts +75 -0
  71. package/js/src/src/abstract/bitrue.js +11 -0
  72. package/js/src/src/abstract/bitso.d.ts +46 -0
  73. package/js/src/src/abstract/bitso.js +11 -0
  74. package/js/src/src/abstract/bitstamp.d.ts +262 -0
  75. package/js/src/src/abstract/bitstamp.js +11 -0
  76. package/js/src/src/abstract/bitteam.d.ts +32 -0
  77. package/js/src/src/abstract/bitteam.js +11 -0
  78. package/js/src/src/abstract/bittrade.d.ts +117 -0
  79. package/js/src/src/abstract/bittrade.js +11 -0
  80. package/js/src/src/abstract/bitunix.d.ts +9 -0
  81. package/js/src/src/abstract/bitunix.js +11 -0
  82. package/js/src/src/abstract/bitvavo.d.ts +30 -0
  83. package/js/src/src/abstract/bitvavo.js +11 -0
  84. package/js/src/src/abstract/blockchaincom.d.ts +31 -0
  85. package/js/src/src/abstract/blockchaincom.js +11 -0
  86. package/js/src/src/abstract/blofin.d.ts +70 -0
  87. package/js/src/src/abstract/blofin.js +11 -0
  88. package/js/src/src/abstract/btcalpha.d.ts +21 -0
  89. package/js/src/src/abstract/btcalpha.js +11 -0
  90. package/js/src/src/abstract/btcbox.d.ts +18 -0
  91. package/js/src/src/abstract/btcbox.js +11 -0
  92. package/js/src/src/abstract/btcmarkets.d.ts +42 -0
  93. package/js/src/src/abstract/btcmarkets.js +11 -0
  94. package/js/src/src/abstract/btcturk.d.ts +23 -0
  95. package/js/src/src/abstract/btcturk.js +11 -0
  96. package/js/src/src/abstract/bybit.d.ts +316 -0
  97. package/js/src/src/abstract/bybit.js +11 -0
  98. package/js/src/src/abstract/bydfi.d.ts +11 -0
  99. package/js/src/src/abstract/bydfi.js +11 -0
  100. package/js/src/src/abstract/cafearz.d.ts +8 -0
  101. package/js/src/src/abstract/cafearz.js +11 -0
  102. package/js/src/src/abstract/cex.d.ts +35 -0
  103. package/js/src/src/abstract/cex.js +11 -0
  104. package/js/src/src/abstract/coinbase.d.ts +97 -0
  105. package/js/src/src/abstract/coinbase.js +11 -0
  106. package/js/src/src/abstract/coinbaseexchange.d.ts +71 -0
  107. package/js/src/src/abstract/coinbaseexchange.js +11 -0
  108. package/js/src/src/abstract/coinbaseinternational.d.ts +42 -0
  109. package/js/src/src/abstract/coinbaseinternational.js +11 -0
  110. package/js/src/src/abstract/coincatch.d.ts +97 -0
  111. package/js/src/src/abstract/coincatch.js +11 -0
  112. package/js/src/src/abstract/coincheck.d.ts +36 -0
  113. package/js/src/src/abstract/coincheck.js +11 -0
  114. package/js/src/src/abstract/coinex.d.ts +240 -0
  115. package/js/src/src/abstract/coinex.js +11 -0
  116. package/js/src/src/abstract/coinmate.d.ts +65 -0
  117. package/js/src/src/abstract/coinmate.js +11 -0
  118. package/js/src/src/abstract/coinmetro.d.ts +37 -0
  119. package/js/src/src/abstract/coinmetro.js +11 -0
  120. package/js/src/src/abstract/coinone.d.ts +70 -0
  121. package/js/src/src/abstract/coinone.js +11 -0
  122. package/js/src/src/abstract/coinsph.d.ts +57 -0
  123. package/js/src/src/abstract/coinsph.js +11 -0
  124. package/js/src/src/abstract/coinspot.d.ts +31 -0
  125. package/js/src/src/abstract/coinspot.js +11 -0
  126. package/js/src/src/abstract/cryptocom.d.ts +126 -0
  127. package/js/src/src/abstract/cryptocom.js +11 -0
  128. package/js/src/src/abstract/cryptomus.d.ts +23 -0
  129. package/js/src/src/abstract/cryptomus.js +11 -0
  130. package/js/src/src/abstract/defx.d.ts +72 -0
  131. package/js/src/src/abstract/defx.js +11 -0
  132. package/js/src/src/abstract/delta.d.ts +53 -0
  133. package/js/src/src/abstract/delta.js +11 -0
  134. package/js/src/src/abstract/deribit.d.ts +129 -0
  135. package/js/src/src/abstract/deribit.js +11 -0
  136. package/js/src/src/abstract/derive.d.ts +120 -0
  137. package/js/src/src/abstract/derive.js +11 -0
  138. package/js/src/src/abstract/digifinex.d.ts +95 -0
  139. package/js/src/src/abstract/digifinex.js +11 -0
  140. package/js/src/src/abstract/ellipx.d.ts +28 -0
  141. package/js/src/src/abstract/ellipx.js +11 -0
  142. package/js/src/src/abstract/eterex.d.ts +8 -0
  143. package/js/src/src/abstract/eterex.js +11 -0
  144. package/js/src/src/abstract/excoino.d.ts +10 -0
  145. package/js/src/src/abstract/excoino.js +11 -0
  146. package/js/src/src/abstract/exir.d.ts +11 -0
  147. package/js/src/src/abstract/exir.js +11 -0
  148. package/js/src/src/abstract/exmo.d.ts +58 -0
  149. package/js/src/src/abstract/exmo.js +11 -0
  150. package/js/src/src/abstract/exnovin.d.ts +9 -0
  151. package/js/src/src/abstract/exnovin.js +11 -0
  152. package/js/src/src/abstract/farhadexchange.d.ts +8 -0
  153. package/js/src/src/abstract/farhadexchange.js +11 -0
  154. package/js/src/src/abstract/foxbit.d.ts +29 -0
  155. package/js/src/src/abstract/foxbit.js +11 -0
  156. package/js/src/src/abstract/gate.d.ts +287 -0
  157. package/js/src/src/abstract/gate.js +11 -0
  158. package/js/src/src/abstract/gemini.d.ts +62 -0
  159. package/js/src/src/abstract/gemini.js +11 -0
  160. package/js/src/src/abstract/hamtapay.d.ts +9 -0
  161. package/js/src/src/abstract/hamtapay.js +11 -0
  162. package/js/src/src/abstract/hashkey.d.ts +70 -0
  163. package/js/src/src/abstract/hashkey.js +11 -0
  164. package/js/src/src/abstract/hibachi.d.ts +29 -0
  165. package/js/src/src/abstract/hibachi.js +11 -0
  166. package/js/src/src/abstract/hitbtc.d.ts +118 -0
  167. package/js/src/src/abstract/hitbtc.js +11 -0
  168. package/js/src/src/abstract/hitobit.d.ts +11 -0
  169. package/js/src/src/abstract/hitobit.js +11 -0
  170. package/js/src/src/abstract/hollaex.d.ts +36 -0
  171. package/js/src/src/abstract/hollaex.js +11 -0
  172. package/js/src/src/abstract/htx.d.ts +551 -0
  173. package/js/src/src/abstract/htx.js +11 -0
  174. package/js/src/src/abstract/hyperliquid.d.ts +9 -0
  175. package/js/src/src/abstract/hyperliquid.js +11 -0
  176. package/js/src/src/abstract/independentreserve.d.ts +46 -0
  177. package/js/src/src/abstract/independentreserve.js +11 -0
  178. package/js/src/src/abstract/indodax.d.ts +29 -0
  179. package/js/src/src/abstract/indodax.js +11 -0
  180. package/js/src/src/abstract/iranexchange.d.ts +9 -0
  181. package/js/src/src/abstract/iranexchange.js +11 -0
  182. package/js/src/src/abstract/jibitex.d.ts +10 -0
  183. package/js/src/src/abstract/jibitex.js +11 -0
  184. package/js/src/src/abstract/kcex.d.ts +10 -0
  185. package/js/src/src/abstract/kcex.js +11 -0
  186. package/js/src/src/abstract/kifpoolme.d.ts +9 -0
  187. package/js/src/src/abstract/kifpoolme.js +11 -0
  188. package/js/src/src/abstract/kraken.d.ts +61 -0
  189. package/js/src/src/abstract/kraken.js +11 -0
  190. package/js/src/src/abstract/krakenfutures.d.ts +45 -0
  191. package/js/src/src/abstract/krakenfutures.js +11 -0
  192. package/js/src/src/abstract/kucoin.d.ts +227 -0
  193. package/js/src/src/abstract/kucoin.js +11 -0
  194. package/js/src/src/abstract/kucoinfutures.d.ts +254 -0
  195. package/js/src/src/abstract/kucoinfutures.js +11 -0
  196. package/js/src/src/abstract/latoken.d.ts +59 -0
  197. package/js/src/src/abstract/latoken.js +11 -0
  198. package/js/src/src/abstract/lbank.d.ts +65 -0
  199. package/js/src/src/abstract/lbank.js +11 -0
  200. package/js/src/src/abstract/luno.d.ts +41 -0
  201. package/js/src/src/abstract/luno.js +11 -0
  202. package/js/src/src/abstract/mazdax.d.ts +11 -0
  203. package/js/src/src/abstract/mazdax.js +11 -0
  204. package/js/src/src/abstract/mercado.d.ts +28 -0
  205. package/js/src/src/abstract/mercado.js +11 -0
  206. package/js/src/src/abstract/mexc.d.ts +183 -0
  207. package/js/src/src/abstract/mexc.js +11 -0
  208. package/js/src/src/abstract/modetrade.d.ts +122 -0
  209. package/js/src/src/abstract/modetrade.js +11 -0
  210. package/js/src/src/abstract/ndax.d.ts +100 -0
  211. package/js/src/src/abstract/ndax.js +11 -0
  212. package/js/src/src/abstract/nobitex.d.ts +10 -0
  213. package/js/src/src/abstract/nobitex.js +11 -0
  214. package/js/src/src/abstract/novadax.d.ts +32 -0
  215. package/js/src/src/abstract/novadax.js +11 -0
  216. package/js/src/src/abstract/oceanex.d.ts +30 -0
  217. package/js/src/src/abstract/oceanex.js +11 -0
  218. package/js/src/src/abstract/okcoin.d.ts +77 -0
  219. package/js/src/src/abstract/okcoin.js +11 -0
  220. package/js/src/src/abstract/okexchange.d.ts +11 -0
  221. package/js/src/src/abstract/okexchange.js +11 -0
  222. package/js/src/src/abstract/okx.d.ts +352 -0
  223. package/js/src/src/abstract/okx.js +11 -0
  224. package/js/src/src/abstract/ompfinex.d.ts +10 -0
  225. package/js/src/src/abstract/ompfinex.js +11 -0
  226. package/js/src/src/abstract/onetrading.d.ts +26 -0
  227. package/js/src/src/abstract/onetrading.js +11 -0
  228. package/js/src/src/abstract/oxfun.d.ts +37 -0
  229. package/js/src/src/abstract/oxfun.js +11 -0
  230. package/js/src/src/abstract/p2b.d.ts +25 -0
  231. package/js/src/src/abstract/p2b.js +11 -0
  232. package/js/src/src/abstract/paradex.d.ts +66 -0
  233. package/js/src/src/abstract/paradex.js +11 -0
  234. package/js/src/src/abstract/paymium.d.ts +31 -0
  235. package/js/src/src/abstract/paymium.js +11 -0
  236. package/js/src/src/abstract/phemex.d.ts +120 -0
  237. package/js/src/src/abstract/phemex.js +11 -0
  238. package/js/src/src/abstract/pingi.d.ts +9 -0
  239. package/js/src/src/abstract/pingi.js +11 -0
  240. package/js/src/src/abstract/poloniex.d.ts +108 -0
  241. package/js/src/src/abstract/poloniex.js +11 -0
  242. package/js/src/src/abstract/pooleno.d.ts +8 -0
  243. package/js/src/src/abstract/pooleno.js +11 -0
  244. package/js/src/src/abstract/probit.d.ts +26 -0
  245. package/js/src/src/abstract/probit.js +11 -0
  246. package/js/src/src/abstract/raastin.d.ts +11 -0
  247. package/js/src/src/abstract/raastin.js +11 -0
  248. package/js/src/src/abstract/ramzinex.d.ts +10 -0
  249. package/js/src/src/abstract/ramzinex.js +11 -0
  250. package/js/src/src/abstract/sarmayex.d.ts +8 -0
  251. package/js/src/src/abstract/sarmayex.js +11 -0
  252. package/js/src/src/abstract/sarrafex.d.ts +10 -0
  253. package/js/src/src/abstract/sarrafex.js +11 -0
  254. package/js/src/src/abstract/tabdeal.d.ts +10 -0
  255. package/js/src/src/abstract/tabdeal.js +11 -0
  256. package/js/src/src/abstract/tehran_exchange.d.ts +9 -0
  257. package/js/src/src/abstract/tehran_exchange.js +11 -0
  258. package/js/src/src/abstract/tetherland.d.ts +8 -0
  259. package/js/src/src/abstract/tetherland.js +11 -0
  260. package/js/src/src/abstract/timex.d.ts +65 -0
  261. package/js/src/src/abstract/timex.js +11 -0
  262. package/js/src/src/abstract/tokocrypto.d.ts +40 -0
  263. package/js/src/src/abstract/tokocrypto.js +11 -0
  264. package/js/src/src/abstract/toobit.d.ts +10 -0
  265. package/js/src/src/abstract/toobit.js +11 -0
  266. package/js/src/src/abstract/tradeogre.d.ts +21 -0
  267. package/js/src/src/abstract/tradeogre.js +11 -0
  268. package/js/src/src/abstract/twox.d.ts +8 -0
  269. package/js/src/src/abstract/twox.js +11 -0
  270. package/js/src/src/abstract/ubitex.d.ts +10 -0
  271. package/js/src/src/abstract/ubitex.js +11 -0
  272. package/js/src/src/abstract/upbit.d.ts +58 -0
  273. package/js/src/src/abstract/upbit.js +11 -0
  274. package/js/src/src/abstract/vertex.d.ts +22 -0
  275. package/js/src/src/abstract/vertex.js +11 -0
  276. package/js/src/src/abstract/wallex.d.ts +11 -0
  277. package/js/src/src/abstract/wallex.js +11 -0
  278. package/js/src/src/abstract/wavesexchange.d.ts +157 -0
  279. package/js/src/src/abstract/wavesexchange.js +11 -0
  280. package/js/src/src/abstract/whitebit.d.ts +117 -0
  281. package/js/src/src/abstract/whitebit.js +11 -0
  282. package/js/src/src/abstract/woo.d.ts +144 -0
  283. package/js/src/src/abstract/woo.js +11 -0
  284. package/js/src/src/abstract/woofipro.d.ts +122 -0
  285. package/js/src/src/abstract/woofipro.js +11 -0
  286. package/js/src/src/abstract/xt.d.ts +160 -0
  287. package/js/src/src/abstract/xt.js +11 -0
  288. package/js/src/src/abstract/yobit.d.ts +19 -0
  289. package/js/src/src/abstract/yobit.js +11 -0
  290. package/js/src/src/abstract/zaif.d.ts +41 -0
  291. package/js/src/src/abstract/zaif.js +11 -0
  292. package/js/src/src/abstract/zonda.d.ts +56 -0
  293. package/js/src/src/abstract/zonda.js +11 -0
  294. package/js/src/src/afratether.d.ts +21 -0
  295. package/js/src/src/afratether.js +356 -0
  296. package/js/src/src/alpaca.d.ts +332 -0
  297. package/js/src/src/alpaca.js +1908 -0
  298. package/js/src/src/apex.d.ts +333 -0
  299. package/js/src/src/apex.js +1942 -0
  300. package/js/src/src/arzinja.d.ts +21 -0
  301. package/js/src/src/arzinja.js +298 -0
  302. package/js/src/src/arzplus.d.ts +26 -0
  303. package/js/src/src/arzplus.js +581 -0
  304. package/js/src/src/ascendex.d.ts +424 -0
  305. package/js/src/src/ascendex.js +3699 -0
  306. package/js/src/src/asretether.d.ts +21 -0
  307. package/js/src/src/asretether.js +324 -0
  308. package/js/src/src/base/Exchange.d.ts +926 -0
  309. package/js/src/src/base/Exchange.js +7399 -0
  310. package/js/src/src/base/Precise.d.ts +42 -0
  311. package/js/src/src/base/Precise.js +275 -0
  312. package/js/src/src/base/errors.d.ts +168 -0
  313. package/js/src/src/base/errors.js +255 -0
  314. package/js/src/src/base/functions/crypto.d.ts +16 -0
  315. package/js/src/src/base/functions/crypto.js +131 -0
  316. package/js/src/src/base/functions/encode.d.ts +4 -0
  317. package/js/src/src/base/functions/encode.js +32 -0
  318. package/js/src/src/base/functions/generic.d.ts +29 -0
  319. package/js/src/src/base/functions/generic.js +203 -0
  320. package/js/src/src/base/functions/misc.d.ts +9 -0
  321. package/js/src/src/base/functions/misc.js +101 -0
  322. package/js/src/src/base/functions/number.d.ts +27 -0
  323. package/js/src/src/base/functions/number.js +313 -0
  324. package/js/src/src/base/functions/platform.d.ts +7 -0
  325. package/js/src/src/base/functions/platform.js +27 -0
  326. package/js/src/src/base/functions/rsa.d.ts +5 -0
  327. package/js/src/src/base/functions/rsa.js +49 -0
  328. package/js/src/src/base/functions/string.d.ts +7 -0
  329. package/js/src/src/base/functions/string.js +44 -0
  330. package/js/src/src/base/functions/throttle.d.ts +6 -0
  331. package/js/src/src/base/functions/throttle.js +67 -0
  332. package/js/src/src/base/functions/time.d.ts +21 -0
  333. package/js/src/src/base/functions/time.js +171 -0
  334. package/js/src/src/base/functions/totp.d.ts +3 -0
  335. package/js/src/src/base/functions/totp.js +25 -0
  336. package/js/src/src/base/functions/type.d.ts +37 -0
  337. package/js/src/src/base/functions/type.js +179 -0
  338. package/js/src/src/base/functions.d.ts +10 -0
  339. package/js/src/src/base/functions.js +18 -0
  340. package/js/src/src/base/types.d.ts +586 -0
  341. package/js/src/src/base/types.js +7 -0
  342. package/js/src/src/base/ws/Cache.d.ts +27 -0
  343. package/js/src/src/base/ws/Cache.js +260 -0
  344. package/js/src/src/base/ws/Client.d.ts +53 -0
  345. package/js/src/src/base/ws/Client.js +307 -0
  346. package/js/src/src/base/ws/Future.d.ts +8 -0
  347. package/js/src/src/base/ws/Future.js +35 -0
  348. package/js/src/src/base/ws/OrderBook.d.ts +25 -0
  349. package/js/src/src/base/ws/OrderBook.js +130 -0
  350. package/js/src/src/base/ws/OrderBookSide.d.ts +40 -0
  351. package/js/src/src/base/ws/OrderBookSide.js +286 -0
  352. package/js/src/src/base/ws/WsClient.d.ts +11 -0
  353. package/js/src/src/base/ws/WsClient.js +69 -0
  354. package/js/src/src/bequant.d.ts +4 -0
  355. package/js/src/src/bequant.js +35 -0
  356. package/js/src/src/bidarz.d.ts +16 -0
  357. package/js/src/src/bidarz.js +327 -0
  358. package/js/src/src/bigone.d.ts +296 -0
  359. package/js/src/src/bigone.js +2340 -0
  360. package/js/src/src/binance.d.ts +1667 -0
  361. package/js/src/src/binance.js +14400 -0
  362. package/js/src/src/binancecoinm.d.ts +6 -0
  363. package/js/src/src/binancecoinm.js +51 -0
  364. package/js/src/src/binanceus.d.ts +4 -0
  365. package/js/src/src/binanceus.js +225 -0
  366. package/js/src/src/binanceusdm.d.ts +6 -0
  367. package/js/src/src/binanceusdm.js +63 -0
  368. package/js/src/src/bingx.d.ts +778 -0
  369. package/js/src/src/bingx.js +6705 -0
  370. package/js/src/src/bit24.d.ts +24 -0
  371. package/js/src/src/bit24.js +520 -0
  372. package/js/src/src/bit2c.d.ts +146 -0
  373. package/js/src/src/bit2c.js +1029 -0
  374. package/js/src/src/bitbank.d.ts +181 -0
  375. package/js/src/src/bitbank.js +1146 -0
  376. package/js/src/src/bitbarg.d.ts +21 -0
  377. package/js/src/src/bitbarg.js +312 -0
  378. package/js/src/src/bitbns.d.ts +184 -0
  379. package/js/src/src/bitbns.js +1288 -0
  380. package/js/src/src/bitfinex.d.ts +516 -0
  381. package/js/src/src/bitfinex.js +3951 -0
  382. package/js/src/src/bitflyer.d.ts +229 -0
  383. package/js/src/src/bitflyer.js +1209 -0
  384. package/js/src/src/bitget.d.ts +1109 -0
  385. package/js/src/src/bitget.js +11033 -0
  386. package/js/src/src/bithumb.d.ts +165 -0
  387. package/js/src/src/bithumb.js +1257 -0
  388. package/js/src/src/bitimen.d.ts +23 -0
  389. package/js/src/src/bitimen.js +424 -0
  390. package/js/src/src/bitir.d.ts +23 -0
  391. package/js/src/src/bitir.js +521 -0
  392. package/js/src/src/bitmart.d.ts +736 -0
  393. package/js/src/src/bitmart.js +5639 -0
  394. package/js/src/src/bitmex.d.ts +395 -0
  395. package/js/src/src/bitmex.js +3088 -0
  396. package/js/src/src/bitopro.d.ts +295 -0
  397. package/js/src/src/bitopro.js +1892 -0
  398. package/js/src/src/bitpin.d.ts +23 -0
  399. package/js/src/src/bitpin.js +487 -0
  400. package/js/src/src/bitrue.d.ts +384 -0
  401. package/js/src/src/bitrue.js +3382 -0
  402. package/js/src/src/bitso.d.ts +270 -0
  403. package/js/src/src/bitso.js +1881 -0
  404. package/js/src/src/bitstamp.d.ts +355 -0
  405. package/js/src/src/bitstamp.js +2445 -0
  406. package/js/src/src/bitteam.d.ts +229 -0
  407. package/js/src/src/bitteam.js +2420 -0
  408. package/js/src/src/bittrade.d.ts +298 -0
  409. package/js/src/src/bittrade.js +2050 -0
  410. package/js/src/src/bitunix.d.ts +21 -0
  411. package/js/src/src/bitunix.js +326 -0
  412. package/js/src/src/bitvavo.d.ts +311 -0
  413. package/js/src/src/bitvavo.js +2204 -0
  414. package/js/src/src/blockchaincom.d.ts +256 -0
  415. package/js/src/src/blockchaincom.js +1259 -0
  416. package/js/src/src/blofin.d.ts +439 -0
  417. package/js/src/src/blofin.js +2576 -0
  418. package/js/src/src/btcalpha.d.ts +209 -0
  419. package/js/src/src/btcalpha.js +1056 -0
  420. package/js/src/src/btcbox.d.ts +144 -0
  421. package/js/src/src/btcbox.js +834 -0
  422. package/js/src/src/btcmarkets.d.ts +253 -0
  423. package/js/src/src/btcmarkets.js +1418 -0
  424. package/js/src/src/btcturk.d.ts +161 -0
  425. package/js/src/src/btcturk.js +1058 -0
  426. package/js/src/src/bybit.d.ts +1097 -0
  427. package/js/src/src/bybit.js +9382 -0
  428. package/js/src/src/bydfi.d.ts +23 -0
  429. package/js/src/src/bydfi.js +434 -0
  430. package/js/src/src/cafearz.d.ts +21 -0
  431. package/js/src/src/cafearz.js +346 -0
  432. package/js/src/src/cex.d.ts +286 -0
  433. package/js/src/src/cex.js +1799 -0
  434. package/js/src/src/coinbase.d.ts +623 -0
  435. package/js/src/src/coinbase.js +5220 -0
  436. package/js/src/src/coinbaseadvanced.d.ts +4 -0
  437. package/js/src/src/coinbaseadvanced.js +18 -0
  438. package/js/src/src/coinbaseexchange.d.ts +334 -0
  439. package/js/src/src/coinbaseexchange.js +2127 -0
  440. package/js/src/src/coinbaseinternational.d.ts +443 -0
  441. package/js/src/src/coinbaseinternational.js +2336 -0
  442. package/js/src/src/coincatch.d.ts +786 -0
  443. package/js/src/src/coincatch.js +5492 -0
  444. package/js/src/src/coincheck.d.ts +147 -0
  445. package/js/src/src/coincheck.js +962 -0
  446. package/js/src/src/coinex.d.ts +719 -0
  447. package/js/src/src/coinex.js +6166 -0
  448. package/js/src/src/coinmate.d.ts +202 -0
  449. package/js/src/src/coinmate.js +1215 -0
  450. package/js/src/src/coinmetro.d.ts +244 -0
  451. package/js/src/src/coinmetro.js +2024 -0
  452. package/js/src/src/coinone.d.ts +158 -0
  453. package/js/src/src/coinone.js +1278 -0
  454. package/js/src/src/coinsph.d.ts +310 -0
  455. package/js/src/src/coinsph.js +2203 -0
  456. package/js/src/src/coinspot.d.ts +108 -0
  457. package/js/src/src/coinspot.js +653 -0
  458. package/js/src/src/cryptocom.d.ts +463 -0
  459. package/js/src/src/cryptocom.js +3549 -0
  460. package/js/src/src/cryptomus.d.ts +158 -0
  461. package/js/src/src/cryptomus.js +1169 -0
  462. package/js/src/src/defx.d.ts +348 -0
  463. package/js/src/src/defx.js +2139 -0
  464. package/js/src/src/delta.d.ts +407 -0
  465. package/js/src/src/delta.js +3654 -0
  466. package/js/src/src/deribit.d.ts +516 -0
  467. package/js/src/src/deribit.js +3790 -0
  468. package/js/src/src/derive.d.ts +324 -0
  469. package/js/src/src/derive.js +2655 -0
  470. package/js/src/src/digifinex.d.ts +544 -0
  471. package/js/src/src/digifinex.js +4453 -0
  472. package/js/src/src/ellipx.d.ts +237 -0
  473. package/js/src/src/ellipx.js +2071 -0
  474. package/js/src/src/eterex.d.ts +21 -0
  475. package/js/src/src/eterex.js +299 -0
  476. package/js/src/src/excoino.d.ts +23 -0
  477. package/js/src/src/excoino.js +426 -0
  478. package/js/src/src/exir.d.ts +23 -0
  479. package/js/src/src/exir.js +403 -0
  480. package/js/src/src/exmo.d.ts +426 -0
  481. package/js/src/src/exmo.js +2825 -0
  482. package/js/src/src/exnovin.d.ts +22 -0
  483. package/js/src/src/exnovin.js +378 -0
  484. package/js/src/src/farhadexchange.d.ts +21 -0
  485. package/js/src/src/farhadexchange.js +280 -0
  486. package/js/src/src/fmfwio.d.ts +4 -0
  487. package/js/src/src/fmfwio.js +35 -0
  488. package/js/src/src/foxbit.d.ts +352 -0
  489. package/js/src/src/foxbit.js +2016 -0
  490. package/js/src/src/gate.d.ts +1071 -0
  491. package/js/src/src/gate.js +8282 -0
  492. package/js/src/src/gateio.d.ts +4 -0
  493. package/js/src/src/gateio.js +17 -0
  494. package/js/src/src/gemini.d.ts +257 -0
  495. package/js/src/src/gemini.js +2006 -0
  496. package/js/src/src/hamtapay.d.ts +21 -0
  497. package/js/src/src/hamtapay.js +303 -0
  498. package/js/src/src/hashkey.d.ts +628 -0
  499. package/js/src/src/hashkey.js +4363 -0
  500. package/js/src/src/hibachi.d.ts +346 -0
  501. package/js/src/src/hibachi.js +2137 -0
  502. package/js/src/src/hitbtc.d.ts +558 -0
  503. package/js/src/src/hitbtc.js +3847 -0
  504. package/js/src/src/hitobit.d.ts +23 -0
  505. package/js/src/src/hitobit.js +412 -0
  506. package/js/src/src/hollaex.d.ts +305 -0
  507. package/js/src/src/hollaex.js +2046 -0
  508. package/js/src/src/htx.d.ts +961 -0
  509. package/js/src/src/htx.js +9668 -0
  510. package/js/src/src/huobi.d.ts +4 -0
  511. package/js/src/src/huobi.js +17 -0
  512. package/js/src/src/hyperliquid.d.ts +651 -0
  513. package/js/src/src/hyperliquid.js +3937 -0
  514. package/js/src/src/independentreserve.d.ts +169 -0
  515. package/js/src/src/independentreserve.js +1115 -0
  516. package/js/src/src/indodax.d.ts +217 -0
  517. package/js/src/src/indodax.js +1454 -0
  518. package/js/src/src/iranexchange.d.ts +21 -0
  519. package/js/src/src/iranexchange.js +399 -0
  520. package/js/src/src/jibitex.d.ts +23 -0
  521. package/js/src/src/jibitex.js +416 -0
  522. package/js/src/src/kcex.d.ts +21 -0
  523. package/js/src/src/kcex.js +335 -0
  524. package/js/src/src/kifpoolme.d.ts +23 -0
  525. package/js/src/src/kifpoolme.js +410 -0
  526. package/js/src/src/kraken.d.ts +484 -0
  527. package/js/src/src/kraken.js +3518 -0
  528. package/js/src/src/krakenfutures.d.ts +362 -0
  529. package/js/src/src/krakenfutures.js +2885 -0
  530. package/js/src/src/kucoin.d.ts +759 -0
  531. package/js/src/src/kucoin.js +5153 -0
  532. package/js/src/src/kucoinfutures.d.ts +521 -0
  533. package/js/src/src/kucoinfutures.js +3381 -0
  534. package/js/src/src/latoken.d.ts +274 -0
  535. package/js/src/src/latoken.js +1824 -0
  536. package/js/src/src/lbank.d.ts +350 -0
  537. package/js/src/src/lbank.js +3146 -0
  538. package/js/src/src/luno.d.ts +252 -0
  539. package/js/src/src/luno.js +1479 -0
  540. package/js/src/src/mazdax.d.ts +23 -0
  541. package/js/src/src/mazdax.js +534 -0
  542. package/js/src/src/mercado.d.ts +160 -0
  543. package/js/src/src/mercado.js +1011 -0
  544. package/js/src/src/mexc.d.ts +768 -0
  545. package/js/src/src/mexc.js +6102 -0
  546. package/js/src/src/modetrade.d.ts +496 -0
  547. package/js/src/src/modetrade.js +2936 -0
  548. package/js/src/src/myokx.d.ts +4 -0
  549. package/js/src/src/myokx.js +54 -0
  550. package/js/src/src/ndax.d.ts +285 -0
  551. package/js/src/src/ndax.js +2598 -0
  552. package/js/src/src/nobitex.d.ts +23 -0
  553. package/js/src/src/nobitex.js +454 -0
  554. package/js/src/src/novadax.d.ts +279 -0
  555. package/js/src/src/novadax.js +1676 -0
  556. package/js/src/src/oceanex.d.ts +231 -0
  557. package/js/src/src/oceanex.js +1123 -0
  558. package/js/src/src/okcoin.d.ts +346 -0
  559. package/js/src/src/okcoin.js +3211 -0
  560. package/js/src/src/okexchange.d.ts +23 -0
  561. package/js/src/src/okexchange.js +373 -0
  562. package/js/src/src/okx.d.ts +1125 -0
  563. package/js/src/src/okx.js +9009 -0
  564. package/js/src/src/okxus.d.ts +4 -0
  565. package/js/src/src/okxus.js +54 -0
  566. package/js/src/src/ompfinex.d.ts +23 -0
  567. package/js/src/src/ompfinex.js +510 -0
  568. package/js/src/src/onetrading.d.ts +228 -0
  569. package/js/src/src/onetrading.js +1769 -0
  570. package/js/src/src/oxfun.d.ts +442 -0
  571. package/js/src/src/oxfun.js +2920 -0
  572. package/js/src/src/p2b.d.ts +189 -0
  573. package/js/src/src/p2b.js +1344 -0
  574. package/js/src/src/paradex.d.ts +389 -0
  575. package/js/src/src/paradex.js +2607 -0
  576. package/js/src/src/paymium.d.ts +133 -0
  577. package/js/src/src/paymium.js +644 -0
  578. package/js/src/src/phemex.d.ts +497 -0
  579. package/js/src/src/phemex.js +5333 -0
  580. package/js/src/src/pingi.d.ts +22 -0
  581. package/js/src/src/pingi.js +446 -0
  582. package/js/src/src/poloniex.d.ts +441 -0
  583. package/js/src/src/poloniex.js +3681 -0
  584. package/js/src/src/pooleno.d.ts +21 -0
  585. package/js/src/src/pooleno.js +347 -0
  586. package/js/src/src/pro/alpaca.d.ts +95 -0
  587. package/js/src/src/pro/alpaca.js +724 -0
  588. package/js/src/src/pro/apex.d.ts +160 -0
  589. package/js/src/src/pro/apex.js +1044 -0
  590. package/js/src/src/pro/ascendex.d.ts +99 -0
  591. package/js/src/src/pro/ascendex.js +1012 -0
  592. package/js/src/src/pro/bequant.d.ts +4 -0
  593. package/js/src/src/pro/bequant.js +42 -0
  594. package/js/src/src/pro/binance.d.ts +796 -0
  595. package/js/src/src/pro/binance.js +4373 -0
  596. package/js/src/src/pro/binancecoinm.d.ts +4 -0
  597. package/js/src/src/pro/binancecoinm.js +32 -0
  598. package/js/src/src/pro/binanceus.d.ts +4 -0
  599. package/js/src/src/pro/binanceus.js +52 -0
  600. package/js/src/src/pro/binanceusdm.d.ts +4 -0
  601. package/js/src/src/pro/binanceusdm.js +37 -0
  602. package/js/src/src/pro/bingx.d.ts +151 -0
  603. package/js/src/src/pro/bingx.js +1568 -0
  604. package/js/src/src/pro/bitfinex.d.ts +99 -0
  605. package/js/src/src/pro/bitfinex.js +1165 -0
  606. package/js/src/src/pro/bitget.d.ts +257 -0
  607. package/js/src/src/pro/bitget.js +2327 -0
  608. package/js/src/src/pro/bithumb.d.ts +59 -0
  609. package/js/src/src/pro/bithumb.js +395 -0
  610. package/js/src/src/pro/bitmart.d.ts +168 -0
  611. package/js/src/src/pro/bitmart.js +1686 -0
  612. package/js/src/src/pro/bitmex.d.ts +170 -0
  613. package/js/src/src/pro/bitmex.js +1760 -0
  614. package/js/src/src/pro/bitopro.d.ts +69 -0
  615. package/js/src/src/pro/bitopro.js +477 -0
  616. package/js/src/src/pro/bitrue.d.ts +40 -0
  617. package/js/src/src/pro/bitrue.js +461 -0
  618. package/js/src/src/pro/bitstamp.d.ts +53 -0
  619. package/js/src/src/pro/bitstamp.js +587 -0
  620. package/js/src/src/pro/bittrade.d.ts +66 -0
  621. package/js/src/src/pro/bittrade.js +606 -0
  622. package/js/src/src/pro/bitvavo.d.ts +321 -0
  623. package/js/src/src/pro/bitvavo.js +1451 -0
  624. package/js/src/src/pro/blockchaincom.d.ts +89 -0
  625. package/js/src/src/pro/blockchaincom.js +777 -0
  626. package/js/src/src/pro/blofin.d.ts +174 -0
  627. package/js/src/src/pro/blofin.js +743 -0
  628. package/js/src/src/pro/bybit.d.ts +397 -0
  629. package/js/src/src/pro/bybit.js +2519 -0
  630. package/js/src/src/pro/cex.d.ts +220 -0
  631. package/js/src/src/pro/cex.js +1535 -0
  632. package/js/src/src/pro/coinbase.d.ts +119 -0
  633. package/js/src/src/pro/coinbase.js +736 -0
  634. package/js/src/src/pro/coinbaseadvanced.d.ts +4 -0
  635. package/js/src/src/pro/coinbaseadvanced.js +18 -0
  636. package/js/src/src/pro/coinbaseexchange.d.ts +133 -0
  637. package/js/src/src/pro/coinbaseexchange.js +969 -0
  638. package/js/src/src/pro/coinbaseinternational.d.ts +143 -0
  639. package/js/src/src/pro/coinbaseinternational.js +804 -0
  640. package/js/src/src/pro/coincatch.d.ts +207 -0
  641. package/js/src/src/pro/coincatch.js +1562 -0
  642. package/js/src/src/pro/coincheck.d.ts +33 -0
  643. package/js/src/src/pro/coincheck.js +210 -0
  644. package/js/src/src/pro/coinex.d.ts +147 -0
  645. package/js/src/src/pro/coinex.js +1426 -0
  646. package/js/src/src/pro/coinone.d.ts +51 -0
  647. package/js/src/src/pro/coinone.js +413 -0
  648. package/js/src/src/pro/cryptocom.d.ts +300 -0
  649. package/js/src/src/pro/cryptocom.js +1414 -0
  650. package/js/src/src/pro/defx.d.ts +236 -0
  651. package/js/src/src/pro/defx.js +865 -0
  652. package/js/src/src/pro/deribit.d.ts +163 -0
  653. package/js/src/src/pro/deribit.js +1066 -0
  654. package/js/src/src/pro/derive.d.ts +100 -0
  655. package/js/src/src/pro/derive.js +753 -0
  656. package/js/src/src/pro/exmo.d.ts +97 -0
  657. package/js/src/src/pro/exmo.js +903 -0
  658. package/js/src/src/pro/gate.d.ts +360 -0
  659. package/js/src/src/pro/gate.js +2119 -0
  660. package/js/src/src/pro/gateio.d.ts +4 -0
  661. package/js/src/src/pro/gateio.js +17 -0
  662. package/js/src/src/pro/gemini.d.ts +106 -0
  663. package/js/src/src/pro/gemini.js +932 -0
  664. package/js/src/src/pro/hashkey.d.ts +121 -0
  665. package/js/src/src/pro/hashkey.js +843 -0
  666. package/js/src/src/pro/hitbtc.d.ts +235 -0
  667. package/js/src/src/pro/hitbtc.js +1400 -0
  668. package/js/src/src/pro/hollaex.d.ts +77 -0
  669. package/js/src/src/pro/hollaex.js +604 -0
  670. package/js/src/src/pro/htx.d.ts +141 -0
  671. package/js/src/src/pro/htx.js +2415 -0
  672. package/js/src/src/pro/huobi.d.ts +4 -0
  673. package/js/src/src/pro/huobi.js +17 -0
  674. package/js/src/src/pro/hyperliquid.d.ts +218 -0
  675. package/js/src/src/pro/hyperliquid.js +1126 -0
  676. package/js/src/src/pro/independentreserve.d.ts +36 -0
  677. package/js/src/src/pro/independentreserve.js +287 -0
  678. package/js/src/src/pro/kraken.d.ts +233 -0
  679. package/js/src/src/pro/kraken.js +1785 -0
  680. package/js/src/src/pro/krakenfutures.d.ts +178 -0
  681. package/js/src/src/pro/krakenfutures.js +1592 -0
  682. package/js/src/src/pro/kucoin.d.ts +221 -0
  683. package/js/src/src/pro/kucoin.js +1430 -0
  684. package/js/src/src/pro/kucoinfutures.d.ts +205 -0
  685. package/js/src/src/pro/kucoinfutures.js +1295 -0
  686. package/js/src/src/pro/lbank.d.ts +134 -0
  687. package/js/src/src/pro/lbank.js +950 -0
  688. package/js/src/src/pro/luno.d.ts +44 -0
  689. package/js/src/src/pro/luno.js +322 -0
  690. package/js/src/src/pro/mexc.d.ts +210 -0
  691. package/js/src/src/pro/mexc.js +2009 -0
  692. package/js/src/src/pro/modetrade.d.ts +155 -0
  693. package/js/src/src/pro/modetrade.js +1335 -0
  694. package/js/src/src/pro/myokx.d.ts +4 -0
  695. package/js/src/src/pro/myokx.js +39 -0
  696. package/js/src/src/pro/ndax.d.ts +60 -0
  697. package/js/src/src/pro/ndax.js +545 -0
  698. package/js/src/src/pro/okcoin.d.ts +91 -0
  699. package/js/src/src/pro/okcoin.js +763 -0
  700. package/js/src/src/pro/okx.d.ts +408 -0
  701. package/js/src/src/pro/okx.js +2479 -0
  702. package/js/src/src/pro/okxus.d.ts +4 -0
  703. package/js/src/src/pro/okxus.js +39 -0
  704. package/js/src/src/pro/onetrading.d.ts +107 -0
  705. package/js/src/src/pro/onetrading.js +1343 -0
  706. package/js/src/src/pro/oxfun.d.ts +234 -0
  707. package/js/src/src/pro/oxfun.js +1112 -0
  708. package/js/src/src/pro/p2b.d.ts +104 -0
  709. package/js/src/src/pro/p2b.js +506 -0
  710. package/js/src/src/pro/paradex.d.ts +54 -0
  711. package/js/src/src/pro/paradex.js +370 -0
  712. package/js/src/src/pro/phemex.d.ts +129 -0
  713. package/js/src/src/pro/phemex.js +1569 -0
  714. package/js/src/src/pro/poloniex.d.ts +214 -0
  715. package/js/src/src/pro/poloniex.js +1318 -0
  716. package/js/src/src/pro/probit.d.ts +91 -0
  717. package/js/src/src/pro/probit.js +593 -0
  718. package/js/src/src/pro/tradeogre.d.ts +49 -0
  719. package/js/src/src/pro/tradeogre.js +284 -0
  720. package/js/src/src/pro/upbit.d.ts +124 -0
  721. package/js/src/src/pro/upbit.js +689 -0
  722. package/js/src/src/pro/vertex.d.ts +104 -0
  723. package/js/src/src/pro/vertex.js +999 -0
  724. package/js/src/src/pro/whitebit.d.ts +123 -0
  725. package/js/src/src/pro/whitebit.js +971 -0
  726. package/js/src/src/pro/woo.d.ts +161 -0
  727. package/js/src/src/pro/woo.js +1351 -0
  728. package/js/src/src/pro/woofipro.d.ts +155 -0
  729. package/js/src/src/pro/woofipro.js +1335 -0
  730. package/js/src/src/pro/xt.d.ts +165 -0
  731. package/js/src/src/pro/xt.js +1230 -0
  732. package/js/src/src/probit.d.ts +283 -0
  733. package/js/src/src/probit.js +1935 -0
  734. package/js/src/src/protobuf/mexc/compiled.cjs +7186 -0
  735. package/js/src/src/protobuf/mexc/compiled.d.cts +8 -0
  736. package/js/src/src/raastin.d.ts +24 -0
  737. package/js/src/src/raastin.js +494 -0
  738. package/js/src/src/ramzinex.d.ts +23 -0
  739. package/js/src/src/ramzinex.js +510 -0
  740. package/js/src/src/sarmayex.d.ts +21 -0
  741. package/js/src/src/sarmayex.js +376 -0
  742. package/js/src/src/sarrafex.d.ts +23 -0
  743. package/js/src/src/sarrafex.js +501 -0
  744. package/js/src/src/static_dependencies/ethers/abi-coder.d.ts +50 -0
  745. package/js/src/src/static_dependencies/ethers/abi-coder.js +148 -0
  746. package/js/src/src/static_dependencies/ethers/address/address.d.ts +55 -0
  747. package/js/src/src/static_dependencies/ethers/address/address.js +162 -0
  748. package/js/src/src/static_dependencies/ethers/address/checks.d.ts +80 -0
  749. package/js/src/src/static_dependencies/ethers/address/checks.js +119 -0
  750. package/js/src/src/static_dependencies/ethers/address/contract-address.d.ts +47 -0
  751. package/js/src/src/static_dependencies/ethers/address/contract-address.js +73 -0
  752. package/js/src/src/static_dependencies/ethers/address/index.d.ts +48 -0
  753. package/js/src/src/static_dependencies/ethers/address/index.js +24 -0
  754. package/js/src/src/static_dependencies/ethers/bytes32.d.ts +14 -0
  755. package/js/src/src/static_dependencies/ethers/bytes32.js +45 -0
  756. package/js/src/src/static_dependencies/ethers/coders/abstract-coder.d.ts +120 -0
  757. package/js/src/src/static_dependencies/ethers/coders/abstract-coder.js +424 -0
  758. package/js/src/src/static_dependencies/ethers/coders/address.d.ts +12 -0
  759. package/js/src/src/static_dependencies/ethers/coders/address.js +34 -0
  760. package/js/src/src/static_dependencies/ethers/coders/anonymous.d.ts +14 -0
  761. package/js/src/src/static_dependencies/ethers/coders/anonymous.js +27 -0
  762. package/js/src/src/static_dependencies/ethers/coders/array.d.ts +24 -0
  763. package/js/src/src/static_dependencies/ethers/coders/array.js +162 -0
  764. package/js/src/src/static_dependencies/ethers/coders/boolean.d.ts +12 -0
  765. package/js/src/src/static_dependencies/ethers/coders/boolean.js +26 -0
  766. package/js/src/src/static_dependencies/ethers/coders/bytes.d.ts +18 -0
  767. package/js/src/src/static_dependencies/ethers/coders/bytes.js +39 -0
  768. package/js/src/src/static_dependencies/ethers/coders/fixed-bytes.d.ts +14 -0
  769. package/js/src/src/static_dependencies/ethers/coders/fixed-bytes.js +32 -0
  770. package/js/src/src/static_dependencies/ethers/coders/null.d.ts +11 -0
  771. package/js/src/src/static_dependencies/ethers/coders/null.js +29 -0
  772. package/js/src/src/static_dependencies/ethers/coders/number.d.ts +15 -0
  773. package/js/src/src/static_dependencies/ethers/coders/number.js +48 -0
  774. package/js/src/src/static_dependencies/ethers/coders/string.d.ts +12 -0
  775. package/js/src/src/static_dependencies/ethers/coders/string.js +26 -0
  776. package/js/src/src/static_dependencies/ethers/coders/tuple.d.ts +15 -0
  777. package/js/src/src/static_dependencies/ethers/coders/tuple.js +67 -0
  778. package/js/src/src/static_dependencies/ethers/fragments.d.ts +458 -0
  779. package/js/src/src/static_dependencies/ethers/fragments.js +1252 -0
  780. package/js/src/src/static_dependencies/ethers/hash/index.d.ts +10 -0
  781. package/js/src/src/static_dependencies/ethers/hash/index.js +15 -0
  782. package/js/src/src/static_dependencies/ethers/hash/solidity.d.ts +30 -0
  783. package/js/src/src/static_dependencies/ethers/hash/solidity.js +107 -0
  784. package/js/src/src/static_dependencies/ethers/hash/typed-data.d.ts +144 -0
  785. package/js/src/src/static_dependencies/ethers/hash/typed-data.js +490 -0
  786. package/js/src/src/static_dependencies/ethers/index.d.ts +19 -0
  787. package/js/src/src/static_dependencies/ethers/index.js +22 -0
  788. package/js/src/src/static_dependencies/ethers/interface.d.ts +380 -0
  789. package/js/src/src/static_dependencies/ethers/interface.js +990 -0
  790. package/js/src/src/static_dependencies/ethers/typed.d.ts +569 -0
  791. package/js/src/src/static_dependencies/ethers/typed.js +608 -0
  792. package/js/src/src/static_dependencies/ethers/utils/base58.d.ts +22 -0
  793. package/js/src/src/static_dependencies/ethers/utils/base58.js +68 -0
  794. package/js/src/src/static_dependencies/ethers/utils/base64.d.ts +39 -0
  795. package/js/src/src/static_dependencies/ethers/utils/base64.js +58 -0
  796. package/js/src/src/static_dependencies/ethers/utils/data.d.ts +92 -0
  797. package/js/src/src/static_dependencies/ethers/utils/data.js +175 -0
  798. package/js/src/src/static_dependencies/ethers/utils/errors.d.ts +509 -0
  799. package/js/src/src/static_dependencies/ethers/utils/errors.js +227 -0
  800. package/js/src/src/static_dependencies/ethers/utils/events.d.ts +76 -0
  801. package/js/src/src/static_dependencies/ethers/utils/events.js +52 -0
  802. package/js/src/src/static_dependencies/ethers/utils/fixednumber.d.ts +251 -0
  803. package/js/src/src/static_dependencies/ethers/utils/fixednumber.js +529 -0
  804. package/js/src/src/static_dependencies/ethers/utils/index.d.ts +30 -0
  805. package/js/src/src/static_dependencies/ethers/utils/index.js +38 -0
  806. package/js/src/src/static_dependencies/ethers/utils/maths.d.ts +65 -0
  807. package/js/src/src/static_dependencies/ethers/utils/maths.js +220 -0
  808. package/js/src/src/static_dependencies/ethers/utils/properties.d.ts +22 -0
  809. package/js/src/src/static_dependencies/ethers/utils/properties.js +59 -0
  810. package/js/src/src/static_dependencies/ethers/utils/rlp-decode.d.ts +5 -0
  811. package/js/src/src/static_dependencies/ethers/utils/rlp-decode.js +84 -0
  812. package/js/src/src/static_dependencies/ethers/utils/rlp-encode.d.ts +5 -0
  813. package/js/src/src/static_dependencies/ethers/utils/rlp-encode.js +54 -0
  814. package/js/src/src/static_dependencies/ethers/utils/rlp.d.ts +16 -0
  815. package/js/src/src/static_dependencies/ethers/utils/rlp.js +14 -0
  816. package/js/src/src/static_dependencies/ethers/utils/units.d.ts +23 -0
  817. package/js/src/src/static_dependencies/ethers/utils/units.js +88 -0
  818. package/js/src/src/static_dependencies/ethers/utils/utf8.d.ts +95 -0
  819. package/js/src/src/static_dependencies/ethers/utils/utf8.js +225 -0
  820. package/js/src/src/static_dependencies/ethers/utils/uuid.d.ts +7 -0
  821. package/js/src/src/static_dependencies/ethers/utils/uuid.js +35 -0
  822. package/js/src/src/static_dependencies/fflake/browser.d.ts +222 -0
  823. package/js/src/src/static_dependencies/fflake/browser.js +2578 -0
  824. package/js/src/src/static_dependencies/jsencrypt/JSEncrypt.d.ts +116 -0
  825. package/js/src/src/static_dependencies/jsencrypt/JSEncrypt.js +194 -0
  826. package/js/src/src/static_dependencies/jsencrypt/JSEncryptRSAKey.d.ts +142 -0
  827. package/js/src/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +307 -0
  828. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/asn1.d.ts +51 -0
  829. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +565 -0
  830. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/base64.d.ts +5 -0
  831. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +94 -0
  832. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/hex.d.ts +3 -0
  833. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +70 -0
  834. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/int10.d.ts +9 -0
  835. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +91 -0
  836. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/base64.d.ts +3 -0
  837. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +25 -0
  838. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +101 -0
  839. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +1757 -0
  840. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/prng4.d.ts +10 -0
  841. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +50 -0
  842. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rng.d.ts +3 -0
  843. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +80 -0
  844. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rsa.d.ts +23 -0
  845. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +377 -0
  846. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/util.d.ts +7 -0
  847. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/util.js +64 -0
  848. package/js/src/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.d.ts +24 -0
  849. package/js/src/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +1627 -0
  850. package/js/src/src/static_dependencies/noble-curves/_shortw_utils.d.ts +60 -0
  851. package/js/src/src/static_dependencies/noble-curves/_shortw_utils.js +22 -0
  852. package/js/src/src/static_dependencies/noble-curves/abstract/curve.d.ts +67 -0
  853. package/js/src/src/static_dependencies/noble-curves/abstract/curve.js +157 -0
  854. package/js/src/src/static_dependencies/noble-curves/abstract/edwards.d.ts +79 -0
  855. package/js/src/src/static_dependencies/noble-curves/abstract/edwards.js +432 -0
  856. package/js/src/src/static_dependencies/noble-curves/abstract/hash-to-curve.d.ts +56 -0
  857. package/js/src/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +171 -0
  858. package/js/src/src/static_dependencies/noble-curves/abstract/modular.d.ts +68 -0
  859. package/js/src/src/static_dependencies/noble-curves/abstract/modular.js +351 -0
  860. package/js/src/src/static_dependencies/noble-curves/abstract/montgomery.d.ts +25 -0
  861. package/js/src/src/static_dependencies/noble-curves/abstract/montgomery.js +162 -0
  862. package/js/src/src/static_dependencies/noble-curves/abstract/poseidon.d.ts +29 -0
  863. package/js/src/src/static_dependencies/noble-curves/abstract/poseidon.js +115 -0
  864. package/js/src/src/static_dependencies/noble-curves/abstract/utils.d.ts +53 -0
  865. package/js/src/src/static_dependencies/noble-curves/abstract/utils.js +227 -0
  866. package/js/src/src/static_dependencies/noble-curves/abstract/weierstrass.d.ts +204 -0
  867. package/js/src/src/static_dependencies/noble-curves/abstract/weierstrass.js +1016 -0
  868. package/js/src/src/static_dependencies/noble-curves/ed25519.d.ts +53 -0
  869. package/js/src/src/static_dependencies/noble-curves/ed25519.js +402 -0
  870. package/js/src/src/static_dependencies/noble-curves/p256.d.ts +103 -0
  871. package/js/src/src/static_dependencies/noble-curves/p256.js +47 -0
  872. package/js/src/src/static_dependencies/noble-curves/secp256k1.d.ts +91 -0
  873. package/js/src/src/static_dependencies/noble-curves/secp256k1.js +257 -0
  874. package/js/src/src/static_dependencies/noble-hashes/_assert.d.ts +21 -0
  875. package/js/src/src/static_dependencies/noble-hashes/_assert.js +48 -0
  876. package/js/src/src/static_dependencies/noble-hashes/_sha2.d.ts +23 -0
  877. package/js/src/src/static_dependencies/noble-hashes/_sha2.js +119 -0
  878. package/js/src/src/static_dependencies/noble-hashes/_u64.d.ts +35 -0
  879. package/js/src/src/static_dependencies/noble-hashes/_u64.js +66 -0
  880. package/js/src/src/static_dependencies/noble-hashes/crypto.d.ts +1 -0
  881. package/js/src/src/static_dependencies/noble-hashes/crypto.js +7 -0
  882. package/js/src/src/static_dependencies/noble-hashes/hmac.d.ts +26 -0
  883. package/js/src/src/static_dependencies/noble-hashes/hmac.js +82 -0
  884. package/js/src/src/static_dependencies/noble-hashes/md5.d.ts +18 -0
  885. package/js/src/src/static_dependencies/noble-hashes/md5.js +242 -0
  886. package/js/src/src/static_dependencies/noble-hashes/sha1.d.ts +21 -0
  887. package/js/src/src/static_dependencies/noble-hashes/sha1.js +90 -0
  888. package/js/src/src/static_dependencies/noble-hashes/sha256.d.ts +34 -0
  889. package/js/src/src/static_dependencies/noble-hashes/sha256.js +129 -0
  890. package/js/src/src/static_dependencies/noble-hashes/sha3.d.ts +97 -0
  891. package/js/src/src/static_dependencies/noble-hashes/sha3.js +211 -0
  892. package/js/src/src/static_dependencies/noble-hashes/sha512.d.ts +66 -0
  893. package/js/src/src/static_dependencies/noble-hashes/sha512.js +236 -0
  894. package/js/src/src/static_dependencies/noble-hashes/utils.d.ts +77 -0
  895. package/js/src/src/static_dependencies/noble-hashes/utils.js +147 -0
  896. package/js/src/src/static_dependencies/proxies/agent-base/helpers.d.ts +14 -0
  897. package/js/src/src/static_dependencies/proxies/agent-base/helpers.js +42 -0
  898. package/js/src/src/static_dependencies/proxies/agent-base/index.d.ts +33 -0
  899. package/js/src/src/static_dependencies/proxies/agent-base/index.js +82 -0
  900. package/js/src/src/static_dependencies/proxies/http-proxy-agent/index.d.ts +40 -0
  901. package/js/src/src/static_dependencies/proxies/http-proxy-agent/index.js +119 -0
  902. package/js/src/src/static_dependencies/proxies/https-proxy-agent/index.d.ts +45 -0
  903. package/js/src/src/static_dependencies/proxies/https-proxy-agent/index.js +150 -0
  904. package/js/src/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.d.ts +15 -0
  905. package/js/src/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +95 -0
  906. package/js/src/src/static_dependencies/qs/formats.cjs +22 -0
  907. package/js/src/src/static_dependencies/qs/formats.d.cts +14 -0
  908. package/js/src/src/static_dependencies/qs/index.cjs +15 -0
  909. package/js/src/src/static_dependencies/qs/index.d.cts +10 -0
  910. package/js/src/src/static_dependencies/qs/parse.cjs +208 -0
  911. package/js/src/src/static_dependencies/qs/parse.d.cts +8 -0
  912. package/js/src/src/static_dependencies/qs/stringify.cjs +192 -0
  913. package/js/src/src/static_dependencies/qs/stringify.d.cts +8 -0
  914. package/js/src/src/static_dependencies/qs/utils.cjs +202 -0
  915. package/js/src/src/static_dependencies/qs/utils.d.cts +15 -0
  916. package/js/src/src/static_dependencies/scure-base/index.d.ts +92 -0
  917. package/js/src/src/static_dependencies/scure-base/index.js +420 -0
  918. package/js/src/src/static_dependencies/scure-starknet/index.d.ts +79 -0
  919. package/js/src/src/static_dependencies/scure-starknet/index.js +323 -0
  920. package/js/src/src/static_dependencies/starknet/constants.d.ts +61 -0
  921. package/js/src/src/static_dependencies/starknet/constants.js +67 -0
  922. package/js/src/src/static_dependencies/starknet/index.d.ts +3 -0
  923. package/js/src/src/static_dependencies/starknet/index.js +9 -0
  924. package/js/src/src/static_dependencies/starknet/types/cairoEnum.d.ts +2 -0
  925. package/js/src/src/static_dependencies/starknet/types/cairoEnum.js +7 -0
  926. package/js/src/src/static_dependencies/starknet/types/calldata.d.ts +19 -0
  927. package/js/src/src/static_dependencies/starknet/types/calldata.js +28 -0
  928. package/js/src/src/static_dependencies/starknet/types/index.d.ts +13 -0
  929. package/js/src/src/static_dependencies/starknet/types/index.js +16 -0
  930. package/js/src/src/static_dependencies/starknet/types/lib/contract/abi.d.ts +71 -0
  931. package/js/src/src/static_dependencies/starknet/types/lib/contract/abi.js +13 -0
  932. package/js/src/src/static_dependencies/starknet/types/lib/contract/index.d.ts +24 -0
  933. package/js/src/src/static_dependencies/starknet/types/lib/contract/index.js +16 -0
  934. package/js/src/src/static_dependencies/starknet/types/lib/contract/legacy.d.ts +33 -0
  935. package/js/src/src/static_dependencies/starknet/types/lib/contract/legacy.js +7 -0
  936. package/js/src/src/static_dependencies/starknet/types/lib/contract/sierra.d.ts +52 -0
  937. package/js/src/src/static_dependencies/starknet/types/lib/contract/sierra.js +7 -0
  938. package/js/src/src/static_dependencies/starknet/types/lib/index.d.ts +248 -0
  939. package/js/src/src/static_dependencies/starknet/types/lib/index.js +52 -0
  940. package/js/src/src/static_dependencies/starknet/types/typedData.d.ts +44 -0
  941. package/js/src/src/static_dependencies/starknet/types/typedData.js +19 -0
  942. package/js/src/src/static_dependencies/starknet/utils/assert.d.ts +7 -0
  943. package/js/src/src/static_dependencies/starknet/utils/assert.js +17 -0
  944. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/felt.d.ts +6 -0
  945. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +43 -0
  946. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.d.ts +72 -0
  947. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +117 -0
  948. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.d.ts +76 -0
  949. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +136 -0
  950. package/js/src/src/static_dependencies/starknet/utils/calldata/byteArray.d.ts +32 -0
  951. package/js/src/src/static_dependencies/starknet/utils/calldata/byteArray.js +59 -0
  952. package/js/src/src/static_dependencies/starknet/utils/calldata/cairo.d.ts +183 -0
  953. package/js/src/src/static_dependencies/starknet/utils/calldata/cairo.js +229 -0
  954. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.d.ts +38 -0
  955. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +57 -0
  956. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.d.ts +35 -0
  957. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +64 -0
  958. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.d.ts +34 -0
  959. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +63 -0
  960. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/index.d.ts +3 -0
  961. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/index.js +9 -0
  962. package/js/src/src/static_dependencies/starknet/utils/calldata/formatter.d.ts +9 -0
  963. package/js/src/src/static_dependencies/starknet/utils/calldata/formatter.js +67 -0
  964. package/js/src/src/static_dependencies/starknet/utils/calldata/index.d.ts +89 -0
  965. package/js/src/src/static_dependencies/starknet/utils/calldata/index.js +280 -0
  966. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/index.d.ts +5 -0
  967. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/index.js +30 -0
  968. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/interface.d.ts +20 -0
  969. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/interface.js +8 -0
  970. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.d.ts +24 -0
  971. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +36 -0
  972. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.d.ts +23 -0
  973. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +40 -0
  974. package/js/src/src/static_dependencies/starknet/utils/calldata/propertyOrder.d.ts +2 -0
  975. package/js/src/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +155 -0
  976. package/js/src/src/static_dependencies/starknet/utils/calldata/requestParser.d.ts +11 -0
  977. package/js/src/src/static_dependencies/starknet/utils/calldata/requestParser.js +248 -0
  978. package/js/src/src/static_dependencies/starknet/utils/calldata/responseParser.d.ts +11 -0
  979. package/js/src/src/static_dependencies/starknet/utils/calldata/responseParser.js +214 -0
  980. package/js/src/src/static_dependencies/starknet/utils/calldata/tuple.d.ts +6 -0
  981. package/js/src/src/static_dependencies/starknet/utils/calldata/tuple.js +113 -0
  982. package/js/src/src/static_dependencies/starknet/utils/calldata/validate.d.ts +6 -0
  983. package/js/src/src/static_dependencies/starknet/utils/calldata/validate.js +208 -0
  984. package/js/src/src/static_dependencies/starknet/utils/encode.d.ts +207 -0
  985. package/js/src/src/static_dependencies/starknet/utils/encode.js +282 -0
  986. package/js/src/src/static_dependencies/starknet/utils/hash/classHash.d.ts +57 -0
  987. package/js/src/src/static_dependencies/starknet/utils/hash/classHash.js +223 -0
  988. package/js/src/src/static_dependencies/starknet/utils/hash/index.d.ts +6 -0
  989. package/js/src/src/static_dependencies/starknet/utils/hash/index.js +13 -0
  990. package/js/src/src/static_dependencies/starknet/utils/merkle.d.ts +35 -0
  991. package/js/src/src/static_dependencies/starknet/utils/merkle.js +84 -0
  992. package/js/src/src/static_dependencies/starknet/utils/num.d.ts +182 -0
  993. package/js/src/src/static_dependencies/starknet/utils/num.js +244 -0
  994. package/js/src/src/static_dependencies/starknet/utils/selector.d.ts +48 -0
  995. package/js/src/src/static_dependencies/starknet/utils/selector.js +85 -0
  996. package/js/src/src/static_dependencies/starknet/utils/shortString.d.ts +57 -0
  997. package/js/src/src/static_dependencies/starknet/utils/shortString.js +96 -0
  998. package/js/src/src/static_dependencies/starknet/utils/typedData.d.ts +54 -0
  999. package/js/src/src/static_dependencies/starknet/utils/typedData.js +321 -0
  1000. package/js/src/src/static_dependencies/watchable/src/types.d.ts +28 -0
  1001. package/js/src/src/static_dependencies/watchable/src/types.js +8 -0
  1002. package/js/src/src/static_dependencies/watchable/src/unpromise.d.ts +120 -0
  1003. package/js/src/src/static_dependencies/watchable/src/unpromise.js +297 -0
  1004. package/js/src/src/static_dependencies/zklink/zklink-sdk-web.d.ts +1279 -0
  1005. package/js/src/src/static_dependencies/zklink/zklink-sdk-web.js +4282 -0
  1006. package/js/src/src/tabdeal.d.ts +23 -0
  1007. package/js/src/src/tabdeal.js +387 -0
  1008. package/js/src/src/tehran_exchange.d.ts +21 -0
  1009. package/js/src/src/tehran_exchange.js +333 -0
  1010. package/js/src/src/tetherland.d.ts +21 -0
  1011. package/js/src/src/tetherland.js +367 -0
  1012. package/js/src/src/timex.d.ts +247 -0
  1013. package/js/src/src/timex.js +1792 -0
  1014. package/js/src/src/tokocrypto.d.ts +261 -0
  1015. package/js/src/src/tokocrypto.js +2641 -0
  1016. package/js/src/src/toobit.d.ts +22 -0
  1017. package/js/src/src/toobit.js +445 -0
  1018. package/js/src/src/tradeogre.d.ts +149 -0
  1019. package/js/src/src/tradeogre.js +878 -0
  1020. package/js/src/src/twox.d.ts +21 -0
  1021. package/js/src/src/twox.js +371 -0
  1022. package/js/src/src/ubitex.d.ts +23 -0
  1023. package/js/src/src/ubitex.js +433 -0
  1024. package/js/src/src/upbit.d.ts +377 -0
  1025. package/js/src/src/upbit.js +2340 -0
  1026. package/js/src/src/vertex.d.ts +346 -0
  1027. package/js/src/src/vertex.js +3146 -0
  1028. package/js/src/src/wallex.d.ts +23 -0
  1029. package/js/src/src/wallex.js +467 -0
  1030. package/js/src/src/wavesexchange.d.ts +244 -0
  1031. package/js/src/src/wavesexchange.js +2747 -0
  1032. package/js/src/src/whitebit.d.ts +571 -0
  1033. package/js/src/src/whitebit.js +3437 -0
  1034. package/js/src/src/woo.d.ts +727 -0
  1035. package/js/src/src/woo.js +4183 -0
  1036. package/js/src/src/woofipro.d.ts +497 -0
  1037. package/js/src/src/woofipro.js +2941 -0
  1038. package/js/src/src/xt.d.ts +568 -0
  1039. package/js/src/src/xt.js +5184 -0
  1040. package/js/src/src/yobit.d.ts +197 -0
  1041. package/js/src/src/yobit.js +1453 -0
  1042. package/js/src/src/zaif.d.ts +136 -0
  1043. package/js/src/src/zaif.js +821 -0
  1044. package/js/src/src/zonda.d.ts +214 -0
  1045. package/js/src/src/zonda.js +1984 -0
  1046. package/js/test.js +3 -3
  1047. package/package.json +1 -1
@@ -0,0 +1,1414 @@
1
+ // ----------------------------------------------------------------------------
2
+
3
+ // PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
4
+ // https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
5
+ // EDIT THE CORRESPONDENT .ts FILE INSTEAD
6
+
7
+ // ---------------------------------------------------------------------------
8
+ import cryptocomRest from '../cryptocom.js';
9
+ import { AuthenticationError, ChecksumError, ExchangeError, NetworkError } from '../base/errors.js';
10
+ import { ArrayCache, ArrayCacheByTimestamp, ArrayCacheBySymbolById, ArrayCacheBySymbolBySide } from '../base/ws/Cache.js';
11
+ import { sha256 } from '../static_dependencies/noble-hashes/sha256.js';
12
+ // ---------------------------------------------------------------------------
13
+ export default class cryptocom extends cryptocomRest {
14
+ describe() {
15
+ return this.deepExtend(super.describe(), {
16
+ 'has': {
17
+ 'ws': true,
18
+ 'watchBalance': true,
19
+ 'watchTicker': true,
20
+ 'watchTickers': true,
21
+ 'watchBidsAsks': true,
22
+ 'watchMyTrades': true,
23
+ 'watchTrades': true,
24
+ 'watchTradesForSymbols': true,
25
+ 'watchOrderBook': true,
26
+ 'watchOrderBookForSymbols': true,
27
+ 'watchOrders': true,
28
+ 'watchOHLCV': true,
29
+ 'watchPositions': true,
30
+ 'createOrderWs': true,
31
+ 'cancelOrderWs': true,
32
+ 'cancelAllOrders': true,
33
+ 'editOrderWs': true,
34
+ },
35
+ 'urls': {
36
+ 'api': {
37
+ 'ws': {
38
+ 'public': 'wss://stream.crypto.com/exchange/v1/market',
39
+ 'private': 'wss://stream.crypto.com/exchange/v1/user',
40
+ },
41
+ },
42
+ 'test': {
43
+ 'public': 'wss://uat-stream.3ona.co/exchange/v1/market',
44
+ 'private': 'wss://uat-stream.3ona.co/exchange/v1/user',
45
+ },
46
+ },
47
+ 'options': {
48
+ 'watchPositions': {
49
+ 'fetchPositionsSnapshot': true,
50
+ 'awaitPositionsSnapshot': true, // whether to wait for the positions snapshot before providing updates
51
+ },
52
+ 'watchOrderBook': {
53
+ 'checksum': true,
54
+ },
55
+ },
56
+ 'streaming': {},
57
+ });
58
+ }
59
+ async pong(client, message) {
60
+ // {
61
+ // "id": 1587523073344,
62
+ // "method": "public/heartbeat",
63
+ // "code": 0
64
+ // }
65
+ try {
66
+ await client.send({ 'id': this.safeInteger(message, 'id'), 'method': 'public/respond-heartbeat' });
67
+ }
68
+ catch (e) {
69
+ const error = new NetworkError(this.id + ' pong failed with error ' + this.json(e));
70
+ client.reset(error);
71
+ }
72
+ }
73
+ /**
74
+ * @method
75
+ * @name cryptocom#watchOrderBook
76
+ * @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
77
+ * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#book-instrument_name
78
+ * @param {string} symbol unified symbol of the market to fetch the order book for
79
+ * @param {int} [limit] the maximum amount of order book entries to return
80
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
81
+ * @param {string} [params.bookSubscriptionType] The subscription type. Allowed values: SNAPSHOT full snapshot. This is the default if not specified. SNAPSHOT_AND_UPDATE delta updates
82
+ * @param {int} [params.bookUpdateFrequency] Book update interval in ms. Allowed values: 100 for snapshot subscription 10 for delta subscription
83
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
84
+ */
85
+ async watchOrderBook(symbol, limit = undefined, params = {}) {
86
+ return await this.watchOrderBookForSymbols([symbol], limit, params);
87
+ }
88
+ /**
89
+ * @method
90
+ * @name cryptocom#unWatchOrderBook
91
+ * @description unWatches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
92
+ * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#book-instrument_name
93
+ * @param {string} symbol unified symbol of the market to fetch the order book for
94
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
95
+ * @param {string} [params.bookSubscriptionType] The subscription type. Allowed values: SNAPSHOT full snapshot. This is the default if not specified. SNAPSHOT_AND_UPDATE delta updates
96
+ * @param {int} [params.bookUpdateFrequency] Book update interval in ms. Allowed values: 100 for snapshot subscription 10 for delta subscription
97
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
98
+ */
99
+ async unWatchOrderBook(symbol, params = {}) {
100
+ return await this.unWatchOrderBookForSymbols([symbol], params);
101
+ }
102
+ /**
103
+ * @method
104
+ * @name cryptocom#watchOrderBookForSymbols
105
+ * @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
106
+ * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#book-instrument_name
107
+ * @param {string[]} symbols unified array of symbols
108
+ * @param {int} [limit] the maximum amount of order book entries to return
109
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
110
+ * @param {string} [params.bookSubscriptionType] The subscription type. Allowed values: SNAPSHOT full snapshot. This is the default if not specified. SNAPSHOT_AND_UPDATE delta updates
111
+ * @param {int} [params.bookUpdateFrequency] Book update interval in ms. Allowed values: 100 for snapshot subscription 10 for delta subscription
112
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
113
+ */
114
+ async watchOrderBookForSymbols(symbols, limit = undefined, params = {}) {
115
+ await this.loadMarkets();
116
+ symbols = this.marketSymbols(symbols);
117
+ const topics = [];
118
+ const messageHashes = [];
119
+ if (!limit) {
120
+ limit = 50;
121
+ }
122
+ const topicParams = this.safeValue(params, 'params');
123
+ if (topicParams === undefined) {
124
+ params['params'] = {};
125
+ }
126
+ let bookSubscriptionType = undefined;
127
+ let bookSubscriptionType2 = undefined;
128
+ [bookSubscriptionType, params] = this.handleOptionAndParams(params, 'watchOrderBook', 'bookSubscriptionType', 'SNAPSHOT_AND_UPDATE');
129
+ [bookSubscriptionType2, params] = this.handleOptionAndParams(params, 'watchOrderBookForSymbols', 'bookSubscriptionType', bookSubscriptionType);
130
+ params['params']['bookSubscriptionType'] = bookSubscriptionType2;
131
+ let bookUpdateFrequency = undefined;
132
+ let bookUpdateFrequency2 = undefined;
133
+ [bookUpdateFrequency, params] = this.handleOptionAndParams(params, 'watchOrderBook', 'bookUpdateFrequency');
134
+ [bookUpdateFrequency2, params] = this.handleOptionAndParams(params, 'watchOrderBookForSymbols', 'bookUpdateFrequency', bookUpdateFrequency);
135
+ if (bookUpdateFrequency2 !== undefined) {
136
+ params['params']['bookSubscriptionType'] = bookUpdateFrequency2;
137
+ }
138
+ for (let i = 0; i < symbols.length; i++) {
139
+ const symbol = symbols[i];
140
+ const market = this.market(symbol);
141
+ const currentTopic = 'book' + '.' + market['id'] + '.' + limit.toString();
142
+ const messageHash = 'orderbook:' + market['symbol'];
143
+ messageHashes.push(messageHash);
144
+ topics.push(currentTopic);
145
+ }
146
+ const orderbook = await this.watchPublicMultiple(messageHashes, topics, params);
147
+ return orderbook.limit();
148
+ }
149
+ /**
150
+ * @method
151
+ * @name cryptocom#unWatchOrderBookForSymbols
152
+ * @description unWatches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
153
+ * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#book-instrument_name
154
+ * @param {string[]} symbols unified array of symbols
155
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
156
+ * @param {int} [params.limit] orderbook limit, default is 50
157
+ * @param {string} [params.bookSubscriptionType] The subscription type. Allowed values: SNAPSHOT full snapshot. This is the default if not specified. SNAPSHOT_AND_UPDATE delta updates
158
+ * @param {int} [params.bookUpdateFrequency] Book update interval in ms. Allowed values: 100 for snapshot subscription 10 for delta subscription
159
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
160
+ */
161
+ async unWatchOrderBookForSymbols(symbols, params = {}) {
162
+ await this.loadMarkets();
163
+ symbols = this.marketSymbols(symbols);
164
+ const topics = [];
165
+ const subMessageHashes = [];
166
+ const messageHashes = [];
167
+ const limit = this.safeInteger(params, 'limit', 50);
168
+ const topicParams = this.safeValue(params, 'params');
169
+ if (topicParams === undefined) {
170
+ params['params'] = {};
171
+ }
172
+ let bookSubscriptionType = undefined;
173
+ let bookSubscriptionType2 = undefined;
174
+ [bookSubscriptionType, params] = this.handleOptionAndParams(params, 'watchOrderBook', 'bookSubscriptionType', 'SNAPSHOT_AND_UPDATE');
175
+ [bookSubscriptionType2, params] = this.handleOptionAndParams(params, 'watchOrderBookForSymbols', 'bookSubscriptionType', bookSubscriptionType);
176
+ params['params']['bookSubscriptionType'] = bookSubscriptionType2;
177
+ let bookUpdateFrequency = undefined;
178
+ let bookUpdateFrequency2 = undefined;
179
+ [bookUpdateFrequency, params] = this.handleOptionAndParams(params, 'watchOrderBook', 'bookUpdateFrequency');
180
+ [bookUpdateFrequency2, params] = this.handleOptionAndParams(params, 'watchOrderBookForSymbols', 'bookUpdateFrequency', bookUpdateFrequency);
181
+ if (bookUpdateFrequency2 !== undefined) {
182
+ params['params']['bookSubscriptionType'] = bookUpdateFrequency2;
183
+ }
184
+ for (let i = 0; i < symbols.length; i++) {
185
+ const symbol = symbols[i];
186
+ const market = this.market(symbol);
187
+ const currentTopic = 'book' + '.' + market['id'] + '.' + limit.toString();
188
+ const messageHash = 'orderbook:' + market['symbol'];
189
+ subMessageHashes.push(messageHash);
190
+ messageHashes.push('unsubscribe:' + messageHash);
191
+ topics.push(currentTopic);
192
+ }
193
+ return await this.unWatchPublicMultiple('orderbook', symbols, messageHashes, subMessageHashes, topics, params);
194
+ }
195
+ handleDelta(bookside, delta) {
196
+ const price = this.safeFloat(delta, 0);
197
+ const amount = this.safeFloat(delta, 1);
198
+ const count = this.safeInteger(delta, 2);
199
+ bookside.storeArray([price, amount, count]);
200
+ }
201
+ handleDeltas(bookside, deltas) {
202
+ for (let i = 0; i < deltas.length; i++) {
203
+ this.handleDelta(bookside, deltas[i]);
204
+ }
205
+ }
206
+ handleOrderBook(client, message) {
207
+ //
208
+ // snapshot
209
+ // {
210
+ // "instrument_name":"LTC_USDT",
211
+ // "subscription":"book.LTC_USDT.150",
212
+ // "channel":"book",
213
+ // "depth":150,
214
+ // "data": [
215
+ // {
216
+ // "bids": [
217
+ // [122.21, 0.74041, 4]
218
+ // ],
219
+ // "asks": [
220
+ // [122.29, 0.00002, 1]
221
+ // ]
222
+ // "t": 1648123943803,
223
+ // "s":754560122
224
+ // }
225
+ // ]
226
+ // }
227
+ // update
228
+ // {
229
+ // "instrument_name":"BTC_USDT",
230
+ // "subscription":"book.BTC_USDT.50",
231
+ // "channel":"book.update",
232
+ // "depth":50,
233
+ // "data":[
234
+ // {
235
+ // "update":{
236
+ // "asks":[
237
+ // [
238
+ // "43755.46",
239
+ // "0.10000",
240
+ // "1"
241
+ // ],
242
+ // ...
243
+ // ],
244
+ // "bids":[
245
+ // [
246
+ // "43737.46",
247
+ // "0.14096",
248
+ // "1"
249
+ // ],
250
+ // ...
251
+ // ]
252
+ // },
253
+ // "t":1704484068898,
254
+ // "tt":1704484068892,
255
+ // "u":78795598253024,
256
+ // "pu":78795598162080,
257
+ // "cs":-781431132
258
+ // }
259
+ // ]
260
+ // }
261
+ //
262
+ const marketId = this.safeString(message, 'instrument_name');
263
+ const market = this.safeMarket(marketId);
264
+ const symbol = market['symbol'];
265
+ let data = this.safeValue(message, 'data');
266
+ data = this.safeValue(data, 0);
267
+ const timestamp = this.safeInteger(data, 't');
268
+ if (!(symbol in this.orderbooks)) {
269
+ const limit = this.safeInteger(message, 'depth');
270
+ this.orderbooks[symbol] = this.countedOrderBook({}, limit);
271
+ }
272
+ const orderbook = this.orderbooks[symbol];
273
+ const channel = this.safeString(message, 'channel');
274
+ const nonce = this.safeInteger2(data, 'u', 's');
275
+ let books = data;
276
+ if (channel === 'book') { // snapshot
277
+ orderbook.reset({});
278
+ orderbook['symbol'] = symbol;
279
+ orderbook['timestamp'] = timestamp;
280
+ orderbook['datetime'] = this.iso8601(timestamp);
281
+ orderbook['nonce'] = nonce;
282
+ }
283
+ else {
284
+ books = this.safeValue(data, 'update', {});
285
+ const previousNonce = this.safeInteger(data, 'pu');
286
+ const currentNonce = orderbook['nonce'];
287
+ if (currentNonce !== previousNonce) {
288
+ const checksum = this.handleOption('watchOrderBook', 'checksum', true);
289
+ if (checksum) {
290
+ throw new ChecksumError(this.id + ' ' + this.orderbookChecksumMessage(symbol));
291
+ }
292
+ }
293
+ }
294
+ this.handleDeltas(orderbook['asks'], this.safeValue(books, 'asks', []));
295
+ this.handleDeltas(orderbook['bids'], this.safeValue(books, 'bids', []));
296
+ orderbook['nonce'] = nonce;
297
+ this.orderbooks[symbol] = orderbook;
298
+ const messageHash = 'orderbook:' + symbol;
299
+ client.resolve(orderbook, messageHash);
300
+ }
301
+ /**
302
+ * @method
303
+ * @name cryptocom#watchTrades
304
+ * @description get the list of most recent trades for a particular symbol
305
+ * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#trade-instrument_name
306
+ * @param {string} symbol unified symbol of the market to fetch trades for
307
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
308
+ * @param {int} [limit] the maximum amount of trades to fetch
309
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
310
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
311
+ */
312
+ async watchTrades(symbol, since = undefined, limit = undefined, params = {}) {
313
+ return await this.watchTradesForSymbols([symbol], since, limit, params);
314
+ }
315
+ /**
316
+ * @method
317
+ * @name cryptocom#unWatchTrades
318
+ * @description get the list of most recent trades for a particular symbol
319
+ * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#trade-instrument_name
320
+ * @param {string} symbol unified symbol of the market to fetch trades for
321
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
322
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
323
+ */
324
+ async unWatchTrades(symbol, params = {}) {
325
+ return await this.unWatchTradesForSymbols([symbol], params);
326
+ }
327
+ /**
328
+ * @method
329
+ * @name cryptocom#watchTradesForSymbols
330
+ * @description get the list of most recent trades for a particular symbol
331
+ * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#trade-instrument_name
332
+ * @param {string[]} symbols unified symbol of the market to fetch trades for
333
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
334
+ * @param {int} [limit] the maximum amount of trades to fetch
335
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
336
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
337
+ */
338
+ async watchTradesForSymbols(symbols, since = undefined, limit = undefined, params = {}) {
339
+ await this.loadMarkets();
340
+ symbols = this.marketSymbols(symbols);
341
+ const topics = [];
342
+ for (let i = 0; i < symbols.length; i++) {
343
+ const symbol = symbols[i];
344
+ const market = this.market(symbol);
345
+ const currentTopic = 'trade' + '.' + market['id'];
346
+ topics.push(currentTopic);
347
+ }
348
+ const trades = await this.watchPublicMultiple(topics, topics, params);
349
+ if (this.newUpdates) {
350
+ const first = this.safeValue(trades, 0);
351
+ const tradeSymbol = this.safeString(first, 'symbol');
352
+ limit = trades.getLimit(tradeSymbol, limit);
353
+ }
354
+ return this.filterBySinceLimit(trades, since, limit, 'timestamp', true);
355
+ }
356
+ /**
357
+ * @method
358
+ * @name cryptocom#unWatchTradesForSymbols
359
+ * @description get the list of most recent trades for a particular symbol
360
+ * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#trade-instrument_name
361
+ * @param {string[]} [symbols] list of unified market symbols to unwatch trades for
362
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
363
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
364
+ */
365
+ async unWatchTradesForSymbols(symbols, params = {}) {
366
+ await this.loadMarkets();
367
+ symbols = this.marketSymbols(symbols);
368
+ const topics = [];
369
+ const messageHashes = [];
370
+ for (let i = 0; i < symbols.length; i++) {
371
+ const symbol = symbols[i];
372
+ const market = this.market(symbol);
373
+ const currentTopic = 'trade' + '.' + market['id'];
374
+ messageHashes.push('unsubscribe:trades:' + market['symbol']);
375
+ topics.push(currentTopic);
376
+ }
377
+ return await this.unWatchPublicMultiple('trades', symbols, messageHashes, topics, topics, params);
378
+ }
379
+ handleTrades(client, message) {
380
+ //
381
+ // {
382
+ // "code": 0,
383
+ // "method": "subscribe",
384
+ // "result": {
385
+ // "instrument_name": "BTC_USDT",
386
+ // "subscription": "trade.BTC_USDT",
387
+ // "channel": "trade",
388
+ // "data": [
389
+ // {
390
+ // "dataTime":1648122434405,
391
+ // "d":"2358394540212355488",
392
+ // "s":"SELL",
393
+ // "p":42980.85,
394
+ // "q":0.002325,
395
+ // "t":1648122434404,
396
+ // "i":"BTC_USDT"
397
+ // }
398
+ // (...)
399
+ // ]
400
+ // }
401
+ //
402
+ const channel = this.safeString(message, 'channel');
403
+ const marketId = this.safeString(message, 'instrument_name');
404
+ const symbolSpecificMessageHash = this.safeString(message, 'subscription');
405
+ const market = this.safeMarket(marketId);
406
+ const symbol = market['symbol'];
407
+ let stored = this.safeValue(this.trades, symbol);
408
+ if (stored === undefined) {
409
+ const limit = this.safeInteger(this.options, 'tradesLimit', 1000);
410
+ stored = new ArrayCache(limit);
411
+ this.trades[symbol] = stored;
412
+ }
413
+ const data = this.safeValue(message, 'data', []);
414
+ const dataLength = data.length;
415
+ if (dataLength === 0) {
416
+ return;
417
+ }
418
+ const parsedTrades = this.parseTrades(data, market);
419
+ for (let j = 0; j < parsedTrades.length; j++) {
420
+ stored.append(parsedTrades[j]);
421
+ }
422
+ const channelReplaced = channel.replace('.' + marketId, '');
423
+ client.resolve(stored, symbolSpecificMessageHash);
424
+ client.resolve(stored, channelReplaced);
425
+ }
426
+ /**
427
+ * @method
428
+ * @name cryptocom#watchMyTrades
429
+ * @description watches information on multiple trades made by the user
430
+ * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#user-trade-instrument_name
431
+ * @param {string} symbol unified market symbol of the market trades were made in
432
+ * @param {int} [since] the earliest time in ms to fetch trades for
433
+ * @param {int} [limit] the maximum number of trade structures to retrieve
434
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
435
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
436
+ */
437
+ async watchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
438
+ await this.loadMarkets();
439
+ let market = undefined;
440
+ if (symbol !== undefined) {
441
+ market = this.market(symbol);
442
+ symbol = market['symbol'];
443
+ }
444
+ let messageHash = 'user.trade';
445
+ messageHash = (market !== undefined) ? (messageHash + '.' + market['id']) : messageHash;
446
+ const trades = await this.watchPrivateSubscribe(messageHash, params);
447
+ if (this.newUpdates) {
448
+ limit = trades.getLimit(symbol, limit);
449
+ }
450
+ return this.filterBySymbolSinceLimit(trades, symbol, since, limit, true);
451
+ }
452
+ /**
453
+ * @method
454
+ * @name cryptocom#watchTicker
455
+ * @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
456
+ * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#ticker-instrument_name
457
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
458
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
459
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
460
+ */
461
+ async watchTicker(symbol, params = {}) {
462
+ await this.loadMarkets();
463
+ const market = this.market(symbol);
464
+ const messageHash = 'ticker' + '.' + market['id'];
465
+ return await this.watchPublic(messageHash, params);
466
+ }
467
+ /**
468
+ * @method
469
+ * @name cryptocom#unWatchTicker
470
+ * @description unWatches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
471
+ * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#ticker-instrument_name
472
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
473
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
474
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
475
+ */
476
+ async unWatchTicker(symbol, params = {}) {
477
+ await this.loadMarkets();
478
+ const market = this.market(symbol);
479
+ const subMessageHash = 'ticker' + '.' + market['id'];
480
+ const messageHash = 'unsubscribe:ticker:' + market['symbol'];
481
+ return await this.unWatchPublicMultiple('ticker', [market['symbol']], [messageHash], [subMessageHash], [subMessageHash], params);
482
+ }
483
+ /**
484
+ * @method
485
+ * @name cryptocom#watchTickers
486
+ * @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
487
+ * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#ticker-instrument_name
488
+ * @param {string[]} symbols unified symbol of the market to fetch the ticker for
489
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
490
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
491
+ */
492
+ async watchTickers(symbols = undefined, params = {}) {
493
+ await this.loadMarkets();
494
+ symbols = this.marketSymbols(symbols, undefined, false);
495
+ const messageHashes = [];
496
+ const marketIds = this.marketIds(symbols);
497
+ for (let i = 0; i < marketIds.length; i++) {
498
+ const marketId = marketIds[i];
499
+ messageHashes.push('ticker.' + marketId);
500
+ }
501
+ const url = this.urls['api']['ws']['public'];
502
+ const id = this.nonce();
503
+ const request = {
504
+ 'method': 'subscribe',
505
+ 'params': {
506
+ 'channels': messageHashes,
507
+ },
508
+ 'nonce': id,
509
+ };
510
+ const ticker = await this.watchMultiple(url, messageHashes, this.extend(request, params), messageHashes);
511
+ if (this.newUpdates) {
512
+ const result = {};
513
+ result[ticker['symbol']] = ticker;
514
+ return result;
515
+ }
516
+ return this.filterByArray(this.tickers, 'symbol', symbols);
517
+ }
518
+ /**
519
+ * @method
520
+ * @name cryptocom#unWatchTickers
521
+ * @description unWatches a price ticker
522
+ * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#ticker-instrument_name
523
+ * @param {string[]} symbols unified symbol of the market to fetch the ticker for
524
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
525
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
526
+ */
527
+ async unWatchTickers(symbols = undefined, params = {}) {
528
+ await this.loadMarkets();
529
+ symbols = this.marketSymbols(symbols, undefined, false);
530
+ const messageHashes = [];
531
+ const subMessageHashes = [];
532
+ const marketIds = this.marketIds(symbols);
533
+ for (let i = 0; i < marketIds.length; i++) {
534
+ const marketId = marketIds[i];
535
+ const symbol = symbols[i];
536
+ subMessageHashes.push('ticker.' + marketId);
537
+ messageHashes.push('unsubscribe:ticker:' + symbol);
538
+ }
539
+ return await this.unWatchPublicMultiple('ticker', symbols, messageHashes, subMessageHashes, subMessageHashes, params);
540
+ }
541
+ handleTicker(client, message) {
542
+ //
543
+ // {
544
+ // "instrument_name": "ETHUSD-PERP",
545
+ // "subscription": "ticker.ETHUSD-PERP",
546
+ // "channel": "ticker",
547
+ // "data": [
548
+ // {
549
+ // "h": "2400.20",
550
+ // "l": "2277.10",
551
+ // "a": "2335.25",
552
+ // "c": "-0.0022",
553
+ // "b": "2335.10",
554
+ // "bs": "5.4000",
555
+ // "k": "2335.16",
556
+ // "ks": "1.9970",
557
+ // "i": "ETHUSD-PERP",
558
+ // "v": "1305697.6462",
559
+ // "vv": "3058704939.17",
560
+ // "oi": "161646.3614",
561
+ // "t": 1726069647560
562
+ // }
563
+ // ]
564
+ // }
565
+ //
566
+ this.handleBidAsk(client, message);
567
+ const messageHash = this.safeString(message, 'subscription');
568
+ const marketId = this.safeString(message, 'instrument_name');
569
+ const market = this.safeMarket(marketId);
570
+ const data = this.safeValue(message, 'data', []);
571
+ for (let i = 0; i < data.length; i++) {
572
+ const ticker = data[i];
573
+ const parsed = this.parseWsTicker(ticker, market);
574
+ const symbol = parsed['symbol'];
575
+ this.tickers[symbol] = parsed;
576
+ client.resolve(parsed, messageHash);
577
+ }
578
+ }
579
+ parseWsTicker(ticker, market = undefined) {
580
+ //
581
+ // {
582
+ // "h": "2400.20",
583
+ // "l": "2277.10",
584
+ // "a": "2335.25",
585
+ // "c": "-0.0022",
586
+ // "b": "2335.10",
587
+ // "bs": "5.4000",
588
+ // "k": "2335.16",
589
+ // "ks": "1.9970",
590
+ // "i": "ETHUSD-PERP",
591
+ // "v": "1305697.6462",
592
+ // "vv": "3058704939.17",
593
+ // "oi": "161646.3614",
594
+ // "t": 1726069647560
595
+ // }
596
+ //
597
+ const timestamp = this.safeInteger(ticker, 't');
598
+ const marketId = this.safeString(ticker, 'i');
599
+ market = this.safeMarket(marketId, market, '_');
600
+ const quote = this.safeString(market, 'quote');
601
+ const last = this.safeString(ticker, 'a');
602
+ return this.safeTicker({
603
+ 'symbol': market['symbol'],
604
+ 'timestamp': timestamp,
605
+ 'datetime': this.iso8601(timestamp),
606
+ 'high': this.safeNumber(ticker, 'h'),
607
+ 'low': this.safeNumber(ticker, 'l'),
608
+ 'bid': this.safeNumber(ticker, 'b'),
609
+ 'bidVolume': this.safeNumber(ticker, 'bs'),
610
+ 'ask': this.safeNumber(ticker, 'k'),
611
+ 'askVolume': this.safeNumber(ticker, 'ks'),
612
+ 'vwap': undefined,
613
+ 'open': undefined,
614
+ 'close': last,
615
+ 'last': last,
616
+ 'previousClose': undefined,
617
+ 'change': undefined,
618
+ 'percentage': this.safeString(ticker, 'c'),
619
+ 'average': undefined,
620
+ 'baseVolume': this.safeString(ticker, 'v'),
621
+ 'quoteVolume': (quote === 'USD') ? this.safeString(ticker, 'vv') : undefined,
622
+ 'info': ticker,
623
+ }, market);
624
+ }
625
+ /**
626
+ * @method
627
+ * @name cryptocom#watchBidsAsks
628
+ * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#ticker-instrument_name
629
+ * @description watches best bid & ask for symbols
630
+ * @param {string[]} symbols unified symbol of the market to fetch the ticker for
631
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
632
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
633
+ */
634
+ async watchBidsAsks(symbols = undefined, params = {}) {
635
+ await this.loadMarkets();
636
+ symbols = this.marketSymbols(symbols, undefined, false);
637
+ const messageHashes = [];
638
+ const topics = [];
639
+ const marketIds = this.marketIds(symbols);
640
+ for (let i = 0; i < marketIds.length; i++) {
641
+ const marketId = marketIds[i];
642
+ messageHashes.push('bidask.' + symbols[i]);
643
+ topics.push('ticker.' + marketId);
644
+ }
645
+ const url = this.urls['api']['ws']['public'];
646
+ const id = this.nonce();
647
+ const request = {
648
+ 'method': 'subscribe',
649
+ 'params': {
650
+ 'channels': topics,
651
+ },
652
+ 'nonce': id,
653
+ };
654
+ const newTickers = await this.watchMultiple(url, messageHashes, this.extend(request, params), messageHashes);
655
+ if (this.newUpdates) {
656
+ const tickers = {};
657
+ tickers[newTickers['symbol']] = newTickers;
658
+ return tickers;
659
+ }
660
+ return this.filterByArray(this.bidsasks, 'symbol', symbols);
661
+ }
662
+ handleBidAsk(client, message) {
663
+ const data = this.safeList(message, 'data', []);
664
+ const ticker = this.safeDict(data, 0, {});
665
+ const parsedTicker = this.parseWsBidAsk(ticker);
666
+ const symbol = parsedTicker['symbol'];
667
+ this.bidsasks[symbol] = parsedTicker;
668
+ const messageHash = 'bidask.' + symbol;
669
+ client.resolve(parsedTicker, messageHash);
670
+ }
671
+ parseWsBidAsk(ticker, market = undefined) {
672
+ const marketId = this.safeString(ticker, 'i');
673
+ market = this.safeMarket(marketId, market);
674
+ const symbol = this.safeString(market, 'symbol');
675
+ const timestamp = this.safeInteger(ticker, 't');
676
+ return this.safeTicker({
677
+ 'symbol': symbol,
678
+ 'timestamp': timestamp,
679
+ 'datetime': this.iso8601(timestamp),
680
+ 'ask': this.safeString(ticker, 'k'),
681
+ 'askVolume': this.safeString(ticker, 'ks'),
682
+ 'bid': this.safeString(ticker, 'b'),
683
+ 'bidVolume': this.safeString(ticker, 'bs'),
684
+ 'info': ticker,
685
+ }, market);
686
+ }
687
+ /**
688
+ * @method
689
+ * @name cryptocom#watchOHLCV
690
+ * @description watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
691
+ * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#candlestick-time_frame-instrument_name
692
+ * @param {string} symbol unified symbol of the market to fetch OHLCV data for
693
+ * @param {string} timeframe the length of time each candle represents
694
+ * @param {int} [since] timestamp in ms of the earliest candle to fetch
695
+ * @param {int} [limit] the maximum amount of candles to fetch
696
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
697
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
698
+ */
699
+ async watchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
700
+ await this.loadMarkets();
701
+ const market = this.market(symbol);
702
+ symbol = market['symbol'];
703
+ const interval = this.safeString(this.timeframes, timeframe, timeframe);
704
+ const messageHash = 'candlestick' + '.' + interval + '.' + market['id'];
705
+ const ohlcv = await this.watchPublic(messageHash, params);
706
+ if (this.newUpdates) {
707
+ limit = ohlcv.getLimit(symbol, limit);
708
+ }
709
+ return this.filterBySinceLimit(ohlcv, since, limit, 0, true);
710
+ }
711
+ /**
712
+ * @method
713
+ * @name cryptocom#unWatchOHLCV
714
+ * @description unWatches historical candlestick data containing the open, high, low, and close price, and the volume of a market
715
+ * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#candlestick-time_frame-instrument_name
716
+ * @param {string} symbol unified symbol of the market to fetch OHLCV data for
717
+ * @param {string} timeframe the length of time each candle represents
718
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
719
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
720
+ */
721
+ async unWatchOHLCV(symbol, timeframe = '1m', params = {}) {
722
+ await this.loadMarkets();
723
+ const market = this.market(symbol);
724
+ symbol = market['symbol'];
725
+ const interval = this.safeString(this.timeframes, timeframe, timeframe);
726
+ const subMessageHash = 'candlestick' + '.' + interval + '.' + market['id'];
727
+ const messageHash = 'unsubscribe:ohlcv:' + market['symbol'] + ':' + timeframe;
728
+ const subExtend = {
729
+ 'symbolsAndTimeframes': [[market['symbol'], timeframe]],
730
+ };
731
+ return await this.unWatchPublicMultiple('ohlcv', [market['symbol']], [messageHash], [subMessageHash], [subMessageHash], params, subExtend);
732
+ }
733
+ handleOHLCV(client, message) {
734
+ //
735
+ // {
736
+ // "instrument_name": "BTC_USDT",
737
+ // "subscription": "candlestick.1m.BTC_USDT",
738
+ // "channel": "candlestick",
739
+ // "depth": 300,
740
+ // "interval": "1m",
741
+ // "data": [ [Object] ]
742
+ // }
743
+ //
744
+ const messageHash = this.safeString(message, 'subscription');
745
+ const marketId = this.safeString(message, 'instrument_name');
746
+ const market = this.safeMarket(marketId);
747
+ const symbol = market['symbol'];
748
+ const interval = this.safeString(message, 'interval');
749
+ const timeframe = this.findTimeframe(interval);
750
+ this.ohlcvs[symbol] = this.safeValue(this.ohlcvs, symbol, {});
751
+ let stored = this.safeValue(this.ohlcvs[symbol], timeframe);
752
+ if (stored === undefined) {
753
+ const limit = this.safeInteger(this.options, 'OHLCVLimit', 1000);
754
+ stored = new ArrayCacheByTimestamp(limit);
755
+ this.ohlcvs[symbol][timeframe] = stored;
756
+ }
757
+ const data = this.safeValue(message, 'data');
758
+ for (let i = 0; i < data.length; i++) {
759
+ const tick = data[i];
760
+ const parsed = this.parseOHLCV(tick, market);
761
+ stored.append(parsed);
762
+ }
763
+ client.resolve(stored, messageHash);
764
+ }
765
+ /**
766
+ * @method
767
+ * @name cryptocom#watchOrders
768
+ * @description watches information on multiple orders made by the user
769
+ * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#user-order-instrument_name
770
+ * @param {string} symbol unified market symbol of the market orders were made in
771
+ * @param {int} [since] the earliest time in ms to fetch orders for
772
+ * @param {int} [limit] the maximum number of order structures to retrieve
773
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
774
+ * @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
775
+ */
776
+ async watchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
777
+ await this.loadMarkets();
778
+ let market = undefined;
779
+ if (symbol !== undefined) {
780
+ market = this.market(symbol);
781
+ symbol = market['symbol'];
782
+ }
783
+ let messageHash = 'user.order';
784
+ messageHash = (market !== undefined) ? (messageHash + '.' + market['id']) : messageHash;
785
+ const orders = await this.watchPrivateSubscribe(messageHash, params);
786
+ if (this.newUpdates) {
787
+ limit = orders.getLimit(symbol, limit);
788
+ }
789
+ return this.filterBySymbolSinceLimit(orders, symbol, since, limit, true);
790
+ }
791
+ handleOrders(client, message, subscription = undefined) {
792
+ //
793
+ // {
794
+ // "method": "subscribe",
795
+ // "result": {
796
+ // "instrument_name": "ETH_CRO",
797
+ // "subscription": "user.order.ETH_CRO",
798
+ // "channel": "user.order",
799
+ // "data": [
800
+ // {
801
+ // "status": "ACTIVE",
802
+ // "side": "BUY",
803
+ // "price": 1,
804
+ // "quantity": 1,
805
+ // "order_id": "366455245775097673",
806
+ // "client_oid": "my_order_0002",
807
+ // "create_time": 1588758017375,
808
+ // "update_time": 1588758017411,
809
+ // "type": "LIMIT",
810
+ // "instrument_name": "ETH_CRO",
811
+ // "cumulative_quantity": 0,
812
+ // "cumulative_value": 0,
813
+ // "avg_price": 0,
814
+ // "fee_currency": "CRO",
815
+ // "time_in_force":"GOOD_TILL_CANCEL"
816
+ // }
817
+ // ],
818
+ // "channel": "user.order.ETH_CRO"
819
+ // }
820
+ // }
821
+ //
822
+ const channel = this.safeString(message, 'channel');
823
+ const symbolSpecificMessageHash = this.safeString(message, 'subscription');
824
+ const orders = this.safeValue(message, 'data', []);
825
+ const ordersLength = orders.length;
826
+ if (ordersLength > 0) {
827
+ if (this.orders === undefined) {
828
+ const limit = this.safeInteger(this.options, 'ordersLimit', 1000);
829
+ this.orders = new ArrayCacheBySymbolById(limit);
830
+ }
831
+ const stored = this.orders;
832
+ const parsed = this.parseOrders(orders);
833
+ for (let i = 0; i < parsed.length; i++) {
834
+ stored.append(parsed[i]);
835
+ }
836
+ client.resolve(stored, symbolSpecificMessageHash);
837
+ // non-symbol specific
838
+ client.resolve(stored, channel); // channel might have a symbol-specific suffix
839
+ client.resolve(stored, 'user.order');
840
+ }
841
+ }
842
+ /**
843
+ * @method
844
+ * @name cryptocom#watchPositions
845
+ * @description watch all open positions
846
+ * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#user-position_balance
847
+ * @param {string[]} [symbols] list of unified market symbols to watch positions for
848
+ * @param {int} [since] the earliest time in ms to fetch positions for
849
+ * @param {int} [limit] the maximum number of positions to retrieve
850
+ * @param {object} params extra parameters specific to the exchange API endpoint
851
+ * @returns {object[]} a list of [position structure]{@link https://docs.ccxt.com/en/latest/manual.html#position-structure}
852
+ */
853
+ async watchPositions(symbols = undefined, since = undefined, limit = undefined, params = {}) {
854
+ await this.loadMarkets();
855
+ await this.authenticate();
856
+ const url = this.urls['api']['ws']['private'];
857
+ const id = this.nonce();
858
+ const request = {
859
+ 'method': 'subscribe',
860
+ 'params': {
861
+ 'channels': ['user.position_balance'],
862
+ },
863
+ 'nonce': id,
864
+ };
865
+ let messageHash = 'positions';
866
+ symbols = this.marketSymbols(symbols);
867
+ if (!this.isEmpty(symbols)) {
868
+ messageHash = '::' + symbols.join(',');
869
+ }
870
+ const client = this.client(url);
871
+ this.setPositionsCache(client, symbols);
872
+ const fetchPositionsSnapshot = this.handleOption('watchPositions', 'fetchPositionsSnapshot', true);
873
+ const awaitPositionsSnapshot = this.handleOption('watchPositions', 'awaitPositionsSnapshot', true);
874
+ if (fetchPositionsSnapshot && awaitPositionsSnapshot && this.positions === undefined) {
875
+ const snapshot = await client.future('fetchPositionsSnapshot');
876
+ return this.filterBySymbolsSinceLimit(snapshot, symbols, since, limit, true);
877
+ }
878
+ const newPositions = await this.watch(url, messageHash, this.extend(request, params));
879
+ if (this.newUpdates) {
880
+ return newPositions;
881
+ }
882
+ return this.filterBySymbolsSinceLimit(this.positions, symbols, since, limit, true);
883
+ }
884
+ setPositionsCache(client, type, symbols = undefined) {
885
+ const fetchPositionsSnapshot = this.handleOption('watchPositions', 'fetchPositionsSnapshot', false);
886
+ if (fetchPositionsSnapshot) {
887
+ const messageHash = 'fetchPositionsSnapshot';
888
+ if (!(messageHash in client.futures)) {
889
+ client.future(messageHash);
890
+ this.spawn(this.loadPositionsSnapshot, client, messageHash);
891
+ }
892
+ }
893
+ else {
894
+ this.positions = new ArrayCacheBySymbolBySide();
895
+ }
896
+ }
897
+ async loadPositionsSnapshot(client, messageHash) {
898
+ const positions = await this.fetchPositions();
899
+ this.positions = new ArrayCacheBySymbolBySide();
900
+ const cache = this.positions;
901
+ for (let i = 0; i < positions.length; i++) {
902
+ const position = positions[i];
903
+ const contracts = this.safeNumber(position, 'contracts', 0);
904
+ if (contracts > 0) {
905
+ cache.append(position);
906
+ }
907
+ }
908
+ // don't remove the future from the .futures cache
909
+ const future = client.futures[messageHash];
910
+ future.resolve(cache);
911
+ client.resolve(cache, 'positions');
912
+ }
913
+ handlePositions(client, message) {
914
+ //
915
+ // {
916
+ // "subscription": "user.position_balance",
917
+ // "channel": "user.position_balance",
918
+ // "data": [{
919
+ // "balances": [{
920
+ // "instrument_name": "USD",
921
+ // "quantity": "8.9979961950886",
922
+ // "update_timestamp_ms": 1695598760597,
923
+ // }],
924
+ // "positions": [{
925
+ // "account_id": "96a0edb1-afb5-4c7c-af89-5cb610319e2c",
926
+ // "instrument_name": "LTCUSD-PERP",
927
+ // "type": "PERPETUAL_SWAP",
928
+ // "quantity": "1.8",
929
+ // "cost": "114.766",
930
+ // "open_position_pnl": "-0.0216206",
931
+ // "session_pnl": "0.00962994",
932
+ // "update_timestamp_ms": 1695598760597,
933
+ // "open_pos_cost": "114.766",
934
+ // }],
935
+ // }],
936
+ // }
937
+ //
938
+ // each account is connected to a different endpoint
939
+ // and has exactly one subscriptionhash which is the account type
940
+ const data = this.safeValue(message, 'data', []);
941
+ const firstData = this.safeValue(data, 0, {});
942
+ const rawPositions = this.safeValue(firstData, 'positions', []);
943
+ if (this.positions === undefined) {
944
+ this.positions = new ArrayCacheBySymbolBySide();
945
+ }
946
+ const cache = this.positions;
947
+ const newPositions = [];
948
+ for (let i = 0; i < rawPositions.length; i++) {
949
+ const rawPosition = rawPositions[i];
950
+ const position = this.parsePosition(rawPosition);
951
+ newPositions.push(position);
952
+ cache.append(position);
953
+ }
954
+ const messageHashes = this.findMessageHashes(client, 'positions::');
955
+ for (let i = 0; i < messageHashes.length; i++) {
956
+ const messageHash = messageHashes[i];
957
+ const parts = messageHash.split('::');
958
+ const symbolsString = parts[1];
959
+ const symbols = symbolsString.split(',');
960
+ const positions = this.filterByArray(newPositions, 'symbol', symbols, false);
961
+ if (!this.isEmpty(positions)) {
962
+ client.resolve(positions, messageHash);
963
+ }
964
+ }
965
+ client.resolve(newPositions, 'positions');
966
+ }
967
+ /**
968
+ * @method
969
+ * @name cryptocom#watchBalance
970
+ * @description watch balance and get the amount of funds available for trading or funds locked in orders
971
+ * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#user-balance
972
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
973
+ * @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
974
+ */
975
+ async watchBalance(params = {}) {
976
+ const messageHash = 'user.balance';
977
+ return await this.watchPrivateSubscribe(messageHash, params);
978
+ }
979
+ handleBalance(client, message) {
980
+ //
981
+ // {
982
+ // "id": 1,
983
+ // "method": "subscribe",
984
+ // "code": 0,
985
+ // "result": {
986
+ // "subscription": "user.balance",
987
+ // "channel": "user.balance",
988
+ // "data": [
989
+ // {
990
+ // "total_available_balance": "5.84684368",
991
+ // "total_margin_balance": "5.84684368",
992
+ // "total_initial_margin": "0",
993
+ // "total_maintenance_margin": "0",
994
+ // "total_position_cost": "0",
995
+ // "total_cash_balance": "6.44412101",
996
+ // "total_collateral_value": "5.846843685",
997
+ // "total_session_unrealized_pnl": "0",
998
+ // "instrument_name": "USD",
999
+ // "total_session_realized_pnl": "0",
1000
+ // "position_balances": [
1001
+ // {
1002
+ // "quantity": "0.0002119875",
1003
+ // "reserved_qty": "0",
1004
+ // "collateral_weight": "0.9",
1005
+ // "collateral_amount": "5.37549592",
1006
+ // "market_value": "5.97277325",
1007
+ // "max_withdrawal_balance": "0.00021198",
1008
+ // "instrument_name": "BTC",
1009
+ // "hourly_interest_rate": "0"
1010
+ // },
1011
+ // ],
1012
+ // "total_effective_leverage": "0",
1013
+ // "position_limit": "3000000",
1014
+ // "used_position_limit": "0",
1015
+ // "total_borrow": "0",
1016
+ // "margin_score": "0",
1017
+ // "is_liquidating": false,
1018
+ // "has_risk": false,
1019
+ // "terminatable": true
1020
+ // }
1021
+ // ]
1022
+ // }
1023
+ // }
1024
+ //
1025
+ const messageHash = this.safeString(message, 'subscription');
1026
+ const data = this.safeValue(message, 'data', []);
1027
+ const positionBalances = this.safeValue(data[0], 'position_balances', []);
1028
+ this.balance['info'] = data;
1029
+ for (let i = 0; i < positionBalances.length; i++) {
1030
+ const balance = positionBalances[i];
1031
+ const currencyId = this.safeString(balance, 'instrument_name');
1032
+ const code = this.safeCurrencyCode(currencyId);
1033
+ const account = this.account();
1034
+ account['total'] = this.safeString(balance, 'quantity');
1035
+ account['used'] = this.safeString(balance, 'reserved_qty');
1036
+ this.balance[code] = account;
1037
+ this.balance = this.safeBalance(this.balance);
1038
+ }
1039
+ client.resolve(this.balance, messageHash);
1040
+ const messageHashRequest = this.safeString(message, 'id');
1041
+ client.resolve(this.balance, messageHashRequest);
1042
+ }
1043
+ /**
1044
+ * @method
1045
+ * @name cryptocom#createOrderWs
1046
+ * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#private-create-order
1047
+ * @description create a trade order
1048
+ * @param {string} symbol unified symbol of the market to create an order in
1049
+ * @param {string} type 'market' or 'limit'
1050
+ * @param {string} side 'buy' or 'sell'
1051
+ * @param {float} amount how much of currency you want to trade in units of base currency
1052
+ * @param {float} [price] the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1053
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1054
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1055
+ */
1056
+ async createOrderWs(symbol, type, side, amount, price = undefined, params = {}) {
1057
+ await this.loadMarkets();
1058
+ params = this.createOrderRequest(symbol, type, side, amount, price, params);
1059
+ const request = {
1060
+ 'method': 'private/create-order',
1061
+ 'params': params,
1062
+ };
1063
+ const messageHash = this.nonce();
1064
+ return await this.watchPrivateRequest(messageHash, request);
1065
+ }
1066
+ /**
1067
+ * @method
1068
+ * @name cryptocom#editOrderWs
1069
+ * @description edit a trade order
1070
+ * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#private-amend-order
1071
+ * @param {string} id order id
1072
+ * @param {string} symbol unified market symbol of the order to edit
1073
+ * @param {string} [type] not used by cryptocom editOrder
1074
+ * @param {string} [side] not used by cryptocom editOrder
1075
+ * @param {float} amount (mandatory) how much of the currency you want to trade in units of the base currency
1076
+ * @param {float} price (mandatory) the price for the order, in units of the quote currency, ignored in market orders
1077
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1078
+ * @param {string} [params.clientOrderId] the original client order id of the order to edit, required if id is not provided
1079
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1080
+ */
1081
+ async editOrderWs(id, symbol, type, side, amount = undefined, price = undefined, params = {}) {
1082
+ await this.loadMarkets();
1083
+ params = this.editOrderRequest(id, symbol, amount, price, params);
1084
+ const request = {
1085
+ 'method': 'private/amend-order',
1086
+ 'params': params,
1087
+ };
1088
+ const messageHash = this.nonce();
1089
+ return await this.watchPrivateRequest(messageHash, request);
1090
+ }
1091
+ handleOrder(client, message) {
1092
+ //
1093
+ // {
1094
+ // "id": 1,
1095
+ // "method": "private/create-order",
1096
+ // "code": 0,
1097
+ // "result": {
1098
+ // "client_oid": "c5f682ed-7108-4f1c-b755-972fcdca0f02",
1099
+ // "order_id": "18342311"
1100
+ // }
1101
+ // }
1102
+ //
1103
+ const messageHash = this.safeString(message, 'id');
1104
+ const rawOrder = this.safeValue(message, 'result', {});
1105
+ const order = this.parseOrder(rawOrder);
1106
+ client.resolve(order, messageHash);
1107
+ }
1108
+ /**
1109
+ * @method
1110
+ * @name cryptocom#cancelOrderWs
1111
+ * @description cancels an open order
1112
+ * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#private-cancel-order
1113
+ * @param {string} id the order id of the order to cancel
1114
+ * @param {string} [symbol] unified symbol of the market the order was made in
1115
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1116
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1117
+ */
1118
+ async cancelOrderWs(id, symbol = undefined, params = {}) {
1119
+ await this.loadMarkets();
1120
+ params = this.extend({
1121
+ 'order_id': id,
1122
+ }, params);
1123
+ const request = {
1124
+ 'method': 'private/cancel-order',
1125
+ 'params': params,
1126
+ };
1127
+ const messageHash = this.nonce();
1128
+ return await this.watchPrivateRequest(messageHash, request);
1129
+ }
1130
+ /**
1131
+ * @method
1132
+ * @name cryptocom#cancelAllOrdersWs
1133
+ * @description cancel all open orders
1134
+ * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#private-cancel-all-orders
1135
+ * @param {string} symbol unified market symbol of the orders to cancel
1136
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1137
+ * @returns {object} Returns exchange raw message {@link https://docs.ccxt.com/#/?id=order-structure}
1138
+ */
1139
+ async cancelAllOrdersWs(symbol = undefined, params = {}) {
1140
+ await this.loadMarkets();
1141
+ let market = undefined;
1142
+ const request = {
1143
+ 'method': 'private/cancel-all-orders',
1144
+ 'params': this.extend({}, params),
1145
+ };
1146
+ if (symbol !== undefined) {
1147
+ market = this.market(symbol);
1148
+ request['params']['instrument_name'] = market['id'];
1149
+ }
1150
+ const messageHash = this.nonce();
1151
+ return await this.watchPrivateRequest(messageHash, request);
1152
+ }
1153
+ handleCancelAllOrders(client, message) {
1154
+ //
1155
+ // {
1156
+ // "id": 1688914586647,
1157
+ // "method": "private/cancel-all-orders",
1158
+ // "code": 0
1159
+ // }
1160
+ //
1161
+ const messageHash = this.safeString(message, 'id');
1162
+ client.resolve(message, messageHash);
1163
+ }
1164
+ async watchPublic(messageHash, params = {}) {
1165
+ const url = this.urls['api']['ws']['public'];
1166
+ const id = this.nonce();
1167
+ const request = {
1168
+ 'method': 'subscribe',
1169
+ 'params': {
1170
+ 'channels': [messageHash],
1171
+ },
1172
+ 'nonce': id,
1173
+ };
1174
+ const message = this.extend(request, params);
1175
+ return await this.watch(url, messageHash, message, messageHash);
1176
+ }
1177
+ async watchPublicMultiple(messageHashes, topics, params = {}) {
1178
+ const url = this.urls['api']['ws']['public'];
1179
+ const id = this.nonce();
1180
+ const request = {
1181
+ 'method': 'subscribe',
1182
+ 'params': {
1183
+ 'channels': topics,
1184
+ },
1185
+ 'nonce': id,
1186
+ };
1187
+ const message = this.deepExtend(request, params);
1188
+ return await this.watchMultiple(url, messageHashes, message, messageHashes);
1189
+ }
1190
+ async unWatchPublicMultiple(topic, symbols, messageHashes, subMessageHashes, topics, params = {}, subExtend = {}) {
1191
+ const url = this.urls['api']['ws']['public'];
1192
+ const id = this.nonce();
1193
+ const request = {
1194
+ 'method': 'unsubscribe',
1195
+ 'params': {
1196
+ 'channels': topics,
1197
+ },
1198
+ 'nonce': id,
1199
+ 'id': id.toString(),
1200
+ };
1201
+ const subscription = {
1202
+ 'id': id.toString(),
1203
+ 'topic': topic,
1204
+ 'symbols': symbols,
1205
+ 'subMessageHashes': subMessageHashes,
1206
+ 'messageHashes': messageHashes,
1207
+ };
1208
+ const message = this.deepExtend(request, params);
1209
+ return await this.watchMultiple(url, messageHashes, message, messageHashes, this.extend(subscription, subExtend));
1210
+ }
1211
+ async watchPrivateRequest(nonce, params = {}) {
1212
+ await this.authenticate();
1213
+ const url = this.urls['api']['ws']['private'];
1214
+ const request = {
1215
+ 'id': nonce,
1216
+ 'nonce': nonce,
1217
+ };
1218
+ const message = this.extend(request, params);
1219
+ return await this.watch(url, nonce.toString(), message, true);
1220
+ }
1221
+ async watchPrivateSubscribe(messageHash, params = {}) {
1222
+ await this.authenticate();
1223
+ const url = this.urls['api']['ws']['private'];
1224
+ const id = this.nonce();
1225
+ const request = {
1226
+ 'method': 'subscribe',
1227
+ 'params': {
1228
+ 'channels': [messageHash],
1229
+ },
1230
+ 'nonce': id,
1231
+ };
1232
+ const message = this.extend(request, params);
1233
+ return await this.watch(url, messageHash, message, messageHash);
1234
+ }
1235
+ handleErrorMessage(client, message) {
1236
+ //
1237
+ // {
1238
+ // "id": 0,
1239
+ // "code": 10004,
1240
+ // "method": "subscribe",
1241
+ // "message": "invalid channel {"channels":["trade.BTCUSD-PERP"]}"
1242
+ // }
1243
+ //
1244
+ const id = this.safeString(message, 'id');
1245
+ const errorCode = this.safeString(message, 'code');
1246
+ try {
1247
+ if (errorCode && errorCode !== '0') {
1248
+ const feedback = this.id + ' ' + this.json(message);
1249
+ this.throwExactlyMatchedException(this.exceptions['exact'], errorCode, feedback);
1250
+ const messageString = this.safeValue(message, 'message');
1251
+ if (messageString !== undefined) {
1252
+ this.throwBroadlyMatchedException(this.exceptions['broad'], messageString, feedback);
1253
+ }
1254
+ throw new ExchangeError(feedback);
1255
+ }
1256
+ return false;
1257
+ }
1258
+ catch (e) {
1259
+ if (e instanceof AuthenticationError) {
1260
+ const messageHash = 'authenticated';
1261
+ client.reject(e, messageHash);
1262
+ if (messageHash in client.subscriptions) {
1263
+ delete client.subscriptions[messageHash];
1264
+ }
1265
+ }
1266
+ else {
1267
+ client.reject(e, id);
1268
+ }
1269
+ return true;
1270
+ }
1271
+ }
1272
+ handleSubscribe(client, message) {
1273
+ const methods = {
1274
+ 'candlestick': this.handleOHLCV,
1275
+ 'ticker': this.handleTicker,
1276
+ 'trade': this.handleTrades,
1277
+ 'book': this.handleOrderBook,
1278
+ 'book.update': this.handleOrderBook,
1279
+ 'user.order': this.handleOrders,
1280
+ 'user.trade': this.handleTrades,
1281
+ 'user.balance': this.handleBalance,
1282
+ 'user.position_balance': this.handlePositions,
1283
+ };
1284
+ const result = this.safeValue2(message, 'result', 'info');
1285
+ const channel = this.safeString(result, 'channel');
1286
+ if ((channel !== undefined) && channel.indexOf('user.trade') > -1) {
1287
+ // channel might be user.trade.BTC_USDT
1288
+ this.handleTrades(client, result);
1289
+ }
1290
+ if ((channel !== undefined) && channel.startsWith('user.order')) {
1291
+ // channel might be user.order.BTC_USDT
1292
+ this.handleOrders(client, result);
1293
+ }
1294
+ const method = this.safeValue(methods, channel);
1295
+ if (method !== undefined) {
1296
+ method.call(this, client, result);
1297
+ }
1298
+ }
1299
+ handleMessage(client, message) {
1300
+ //
1301
+ // ping
1302
+ // {
1303
+ // "id": 1587523073344,
1304
+ // "method": "public/heartbeat",
1305
+ // "code": 0
1306
+ // }
1307
+ // auth
1308
+ // { id: 1648132625434, method: "public/auth", code: 0 }
1309
+ // ohlcv
1310
+ // {
1311
+ // "code": 0,
1312
+ // "method": "subscribe",
1313
+ // "result": {
1314
+ // "instrument_name": "BTC_USDT",
1315
+ // "subscription": "candlestick.1m.BTC_USDT",
1316
+ // "channel": "candlestick",
1317
+ // "depth": 300,
1318
+ // "interval": "1m",
1319
+ // "data": [ [Object] ]
1320
+ // }
1321
+ // }
1322
+ // ticker
1323
+ // {
1324
+ // "info":{
1325
+ // "instrument_name":"BTC_USDT",
1326
+ // "subscription":"ticker.BTC_USDT",
1327
+ // "channel":"ticker",
1328
+ // "data":[ { } ]
1329
+ //
1330
+ // handle unsubscribe
1331
+ // {"id":1725448572836,"method":"unsubscribe","code":0}
1332
+ //
1333
+ if (this.handleErrorMessage(client, message)) {
1334
+ return;
1335
+ }
1336
+ const method = this.safeString(message, 'method');
1337
+ const methods = {
1338
+ '': this.handlePing,
1339
+ 'public/heartbeat': this.handlePing,
1340
+ 'public/auth': this.handleAuthenticate,
1341
+ 'private/create-order': this.handleOrder,
1342
+ 'private/amend-order': this.handleOrder,
1343
+ 'private/cancel-order': this.handleOrder,
1344
+ 'private/cancel-all-orders': this.handleCancelAllOrders,
1345
+ 'private/close-position': this.handleOrder,
1346
+ 'subscribe': this.handleSubscribe,
1347
+ 'unsubscribe': this.handleUnsubscribe,
1348
+ };
1349
+ const callMethod = this.safeValue(methods, method);
1350
+ if (callMethod !== undefined) {
1351
+ callMethod.call(this, client, message);
1352
+ }
1353
+ }
1354
+ async authenticate(params = {}) {
1355
+ this.checkRequiredCredentials();
1356
+ const url = this.urls['api']['ws']['private'];
1357
+ const client = this.client(url);
1358
+ const messageHash = 'authenticated';
1359
+ const future = client.future(messageHash);
1360
+ const authenticated = this.safeValue(client.subscriptions, messageHash);
1361
+ if (authenticated === undefined) {
1362
+ const method = 'public/auth';
1363
+ const nonce = this.nonce().toString();
1364
+ const auth = method + nonce + this.apiKey + nonce;
1365
+ const signature = this.hmac(this.encode(auth), this.encode(this.secret), sha256);
1366
+ const request = {
1367
+ 'id': nonce,
1368
+ 'nonce': nonce,
1369
+ 'method': method,
1370
+ 'api_key': this.apiKey,
1371
+ 'sig': signature,
1372
+ };
1373
+ const message = this.extend(request, params);
1374
+ this.watch(url, messageHash, message, messageHash);
1375
+ }
1376
+ return await future;
1377
+ }
1378
+ handlePing(client, message) {
1379
+ this.spawn(this.pong, client, message);
1380
+ }
1381
+ handleAuthenticate(client, message) {
1382
+ //
1383
+ // { id: 1648132625434, method: "public/auth", code: 0 }
1384
+ //
1385
+ const future = this.safeValue(client.futures, 'authenticated');
1386
+ future.resolve(true);
1387
+ }
1388
+ handleUnsubscribe(client, message) {
1389
+ const id = this.safeString(message, 'id');
1390
+ const keys = Object.keys(client.subscriptions);
1391
+ for (let i = 0; i < keys.length; i++) {
1392
+ const messageHash = keys[i];
1393
+ if (!(messageHash in client.subscriptions)) {
1394
+ continue;
1395
+ // the previous iteration can have deleted the messageHash from the subscriptions
1396
+ }
1397
+ if (messageHash.startsWith('unsubscribe')) {
1398
+ const subscription = client.subscriptions[messageHash];
1399
+ const subId = this.safeString(subscription, 'id');
1400
+ if (id !== subId) {
1401
+ continue;
1402
+ }
1403
+ const messageHashes = this.safeList(subscription, 'messageHashes', []);
1404
+ const subMessageHashes = this.safeList(subscription, 'subMessageHashes', []);
1405
+ for (let j = 0; j < messageHashes.length; j++) {
1406
+ const unsubHash = messageHashes[j];
1407
+ const subHash = subMessageHashes[j];
1408
+ this.cleanUnsubscription(client, subHash, unsubHash);
1409
+ }
1410
+ this.cleanCache(subscription);
1411
+ }
1412
+ }
1413
+ }
1414
+ }