ccxt-ir 4.10.0 → 4.12.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 (1059) hide show
  1. package/README.md +4 -4
  2. package/dist/ccxt.browser.min.js +2 -2
  3. package/dist/cjs/ccxt.js +10 -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/dist/cjs/src/changefa.js +342 -0
  8. package/dist/cjs/src/ourbit.js +445 -0
  9. package/js/ccxt.d.ts +11 -2
  10. package/js/ccxt.js +8 -2
  11. package/js/src/abstract/bidarz.d.ts +9 -0
  12. package/js/src/abstract/bidarz.js +11 -0
  13. package/js/src/abstract/changefa.d.ts +8 -0
  14. package/js/src/abstract/changefa.js +11 -0
  15. package/js/src/abstract/ourbit.d.ts +10 -0
  16. package/js/src/abstract/ourbit.js +11 -0
  17. package/js/src/bidarz.d.ts +22 -0
  18. package/js/src/bidarz.js +336 -0
  19. package/js/src/bit24.js +4 -3
  20. package/js/src/changefa.d.ts +20 -0
  21. package/js/src/changefa.js +341 -0
  22. package/js/src/ourbit.d.ts +21 -0
  23. package/js/src/ourbit.js +444 -0
  24. package/js/src/src/abantether.d.ts +21 -0
  25. package/js/src/src/abantether.js +353 -0
  26. package/js/src/src/abstract/abantether.d.ts +8 -0
  27. package/js/src/src/abstract/abantether.js +11 -0
  28. package/js/src/src/abstract/afratether.d.ts +9 -0
  29. package/js/src/src/abstract/afratether.js +11 -0
  30. package/js/src/src/abstract/alpaca.d.ts +77 -0
  31. package/js/src/src/abstract/alpaca.js +11 -0
  32. package/js/src/src/abstract/apex.d.ts +34 -0
  33. package/js/src/src/abstract/apex.js +11 -0
  34. package/js/src/src/abstract/arzinja.d.ts +8 -0
  35. package/js/src/src/abstract/arzinja.js +11 -0
  36. package/js/src/src/abstract/arzplus.d.ts +11 -0
  37. package/js/src/src/abstract/arzplus.js +11 -0
  38. package/js/src/src/abstract/ascendex.d.ts +80 -0
  39. package/js/src/src/abstract/ascendex.js +11 -0
  40. package/js/src/src/abstract/asretether.d.ts +8 -0
  41. package/js/src/src/abstract/asretether.js +11 -0
  42. package/js/src/src/abstract/bidarz.d.ts +9 -0
  43. package/js/src/src/abstract/bidarz.js +11 -0
  44. package/js/src/src/abstract/bigone.d.ts +48 -0
  45. package/js/src/src/abstract/bigone.js +11 -0
  46. package/js/src/src/abstract/binance.d.ts +773 -0
  47. package/js/src/src/abstract/binance.js +11 -0
  48. package/js/src/src/abstract/bingx.d.ts +165 -0
  49. package/js/src/src/abstract/bingx.js +11 -0
  50. package/js/src/src/abstract/bit24.d.ts +9 -0
  51. package/js/src/src/abstract/bit24.js +11 -0
  52. package/js/src/src/abstract/bit2c.d.ts +30 -0
  53. package/js/src/src/abstract/bit2c.js +11 -0
  54. package/js/src/src/abstract/bitbank.d.ts +35 -0
  55. package/js/src/src/abstract/bitbank.js +11 -0
  56. package/js/src/src/abstract/bitbarg.d.ts +8 -0
  57. package/js/src/src/abstract/bitbarg.js +11 -0
  58. package/js/src/src/abstract/bitbns.d.ts +43 -0
  59. package/js/src/src/abstract/bitbns.js +11 -0
  60. package/js/src/src/abstract/bitfinex.d.ts +143 -0
  61. package/js/src/src/abstract/bitfinex.js +11 -0
  62. package/js/src/src/abstract/bitflyer.d.ts +42 -0
  63. package/js/src/src/abstract/bitflyer.js +11 -0
  64. package/js/src/src/abstract/bitget.d.ts +578 -0
  65. package/js/src/src/abstract/bitget.js +11 -0
  66. package/js/src/src/abstract/bithumb.d.ts +35 -0
  67. package/js/src/src/abstract/bithumb.js +11 -0
  68. package/js/src/src/abstract/bitimen.d.ts +10 -0
  69. package/js/src/src/abstract/bitimen.js +11 -0
  70. package/js/src/src/abstract/bitir.d.ts +10 -0
  71. package/js/src/src/abstract/bitir.js +11 -0
  72. package/js/src/src/abstract/bitmart.d.ts +120 -0
  73. package/js/src/src/abstract/bitmart.js +11 -0
  74. package/js/src/src/abstract/bitmex.d.ts +100 -0
  75. package/js/src/src/abstract/bitmex.js +11 -0
  76. package/js/src/src/abstract/bitopro.d.ts +33 -0
  77. package/js/src/src/abstract/bitopro.js +11 -0
  78. package/js/src/src/abstract/bitpin.d.ts +11 -0
  79. package/js/src/src/abstract/bitpin.js +11 -0
  80. package/js/src/src/abstract/bitrue.d.ts +75 -0
  81. package/js/src/src/abstract/bitrue.js +11 -0
  82. package/js/src/src/abstract/bitso.d.ts +46 -0
  83. package/js/src/src/abstract/bitso.js +11 -0
  84. package/js/src/src/abstract/bitstamp.d.ts +262 -0
  85. package/js/src/src/abstract/bitstamp.js +11 -0
  86. package/js/src/src/abstract/bitteam.d.ts +32 -0
  87. package/js/src/src/abstract/bitteam.js +11 -0
  88. package/js/src/src/abstract/bittrade.d.ts +117 -0
  89. package/js/src/src/abstract/bittrade.js +11 -0
  90. package/js/src/src/abstract/bitunix.d.ts +9 -0
  91. package/js/src/src/abstract/bitunix.js +11 -0
  92. package/js/src/src/abstract/bitvavo.d.ts +30 -0
  93. package/js/src/src/abstract/bitvavo.js +11 -0
  94. package/js/src/src/abstract/blockchaincom.d.ts +31 -0
  95. package/js/src/src/abstract/blockchaincom.js +11 -0
  96. package/js/src/src/abstract/blofin.d.ts +70 -0
  97. package/js/src/src/abstract/blofin.js +11 -0
  98. package/js/src/src/abstract/btcalpha.d.ts +21 -0
  99. package/js/src/src/abstract/btcalpha.js +11 -0
  100. package/js/src/src/abstract/btcbox.d.ts +18 -0
  101. package/js/src/src/abstract/btcbox.js +11 -0
  102. package/js/src/src/abstract/btcmarkets.d.ts +42 -0
  103. package/js/src/src/abstract/btcmarkets.js +11 -0
  104. package/js/src/src/abstract/btcturk.d.ts +23 -0
  105. package/js/src/src/abstract/btcturk.js +11 -0
  106. package/js/src/src/abstract/bybit.d.ts +316 -0
  107. package/js/src/src/abstract/bybit.js +11 -0
  108. package/js/src/src/abstract/bydfi.d.ts +11 -0
  109. package/js/src/src/abstract/bydfi.js +11 -0
  110. package/js/src/src/abstract/cafearz.d.ts +8 -0
  111. package/js/src/src/abstract/cafearz.js +11 -0
  112. package/js/src/src/abstract/cex.d.ts +35 -0
  113. package/js/src/src/abstract/cex.js +11 -0
  114. package/js/src/src/abstract/coinbase.d.ts +97 -0
  115. package/js/src/src/abstract/coinbase.js +11 -0
  116. package/js/src/src/abstract/coinbaseexchange.d.ts +71 -0
  117. package/js/src/src/abstract/coinbaseexchange.js +11 -0
  118. package/js/src/src/abstract/coinbaseinternational.d.ts +42 -0
  119. package/js/src/src/abstract/coinbaseinternational.js +11 -0
  120. package/js/src/src/abstract/coincatch.d.ts +97 -0
  121. package/js/src/src/abstract/coincatch.js +11 -0
  122. package/js/src/src/abstract/coincheck.d.ts +36 -0
  123. package/js/src/src/abstract/coincheck.js +11 -0
  124. package/js/src/src/abstract/coinex.d.ts +240 -0
  125. package/js/src/src/abstract/coinex.js +11 -0
  126. package/js/src/src/abstract/coinmate.d.ts +65 -0
  127. package/js/src/src/abstract/coinmate.js +11 -0
  128. package/js/src/src/abstract/coinmetro.d.ts +37 -0
  129. package/js/src/src/abstract/coinmetro.js +11 -0
  130. package/js/src/src/abstract/coinone.d.ts +70 -0
  131. package/js/src/src/abstract/coinone.js +11 -0
  132. package/js/src/src/abstract/coinsph.d.ts +57 -0
  133. package/js/src/src/abstract/coinsph.js +11 -0
  134. package/js/src/src/abstract/coinspot.d.ts +31 -0
  135. package/js/src/src/abstract/coinspot.js +11 -0
  136. package/js/src/src/abstract/cryptocom.d.ts +126 -0
  137. package/js/src/src/abstract/cryptocom.js +11 -0
  138. package/js/src/src/abstract/cryptomus.d.ts +23 -0
  139. package/js/src/src/abstract/cryptomus.js +11 -0
  140. package/js/src/src/abstract/defx.d.ts +72 -0
  141. package/js/src/src/abstract/defx.js +11 -0
  142. package/js/src/src/abstract/delta.d.ts +53 -0
  143. package/js/src/src/abstract/delta.js +11 -0
  144. package/js/src/src/abstract/deribit.d.ts +129 -0
  145. package/js/src/src/abstract/deribit.js +11 -0
  146. package/js/src/src/abstract/derive.d.ts +120 -0
  147. package/js/src/src/abstract/derive.js +11 -0
  148. package/js/src/src/abstract/digifinex.d.ts +95 -0
  149. package/js/src/src/abstract/digifinex.js +11 -0
  150. package/js/src/src/abstract/ellipx.d.ts +28 -0
  151. package/js/src/src/abstract/ellipx.js +11 -0
  152. package/js/src/src/abstract/eterex.d.ts +8 -0
  153. package/js/src/src/abstract/eterex.js +11 -0
  154. package/js/src/src/abstract/excoino.d.ts +10 -0
  155. package/js/src/src/abstract/excoino.js +11 -0
  156. package/js/src/src/abstract/exir.d.ts +11 -0
  157. package/js/src/src/abstract/exir.js +11 -0
  158. package/js/src/src/abstract/exmo.d.ts +58 -0
  159. package/js/src/src/abstract/exmo.js +11 -0
  160. package/js/src/src/abstract/exnovin.d.ts +9 -0
  161. package/js/src/src/abstract/exnovin.js +11 -0
  162. package/js/src/src/abstract/farhadexchange.d.ts +8 -0
  163. package/js/src/src/abstract/farhadexchange.js +11 -0
  164. package/js/src/src/abstract/foxbit.d.ts +29 -0
  165. package/js/src/src/abstract/foxbit.js +11 -0
  166. package/js/src/src/abstract/gate.d.ts +287 -0
  167. package/js/src/src/abstract/gate.js +11 -0
  168. package/js/src/src/abstract/gemini.d.ts +62 -0
  169. package/js/src/src/abstract/gemini.js +11 -0
  170. package/js/src/src/abstract/hamtapay.d.ts +9 -0
  171. package/js/src/src/abstract/hamtapay.js +11 -0
  172. package/js/src/src/abstract/hashkey.d.ts +70 -0
  173. package/js/src/src/abstract/hashkey.js +11 -0
  174. package/js/src/src/abstract/hibachi.d.ts +29 -0
  175. package/js/src/src/abstract/hibachi.js +11 -0
  176. package/js/src/src/abstract/hitbtc.d.ts +118 -0
  177. package/js/src/src/abstract/hitbtc.js +11 -0
  178. package/js/src/src/abstract/hitobit.d.ts +11 -0
  179. package/js/src/src/abstract/hitobit.js +11 -0
  180. package/js/src/src/abstract/hollaex.d.ts +36 -0
  181. package/js/src/src/abstract/hollaex.js +11 -0
  182. package/js/src/src/abstract/htx.d.ts +551 -0
  183. package/js/src/src/abstract/htx.js +11 -0
  184. package/js/src/src/abstract/hyperliquid.d.ts +9 -0
  185. package/js/src/src/abstract/hyperliquid.js +11 -0
  186. package/js/src/src/abstract/independentreserve.d.ts +46 -0
  187. package/js/src/src/abstract/independentreserve.js +11 -0
  188. package/js/src/src/abstract/indodax.d.ts +29 -0
  189. package/js/src/src/abstract/indodax.js +11 -0
  190. package/js/src/src/abstract/iranexchange.d.ts +9 -0
  191. package/js/src/src/abstract/iranexchange.js +11 -0
  192. package/js/src/src/abstract/jibitex.d.ts +10 -0
  193. package/js/src/src/abstract/jibitex.js +11 -0
  194. package/js/src/src/abstract/kcex.d.ts +10 -0
  195. package/js/src/src/abstract/kcex.js +11 -0
  196. package/js/src/src/abstract/kifpoolme.d.ts +9 -0
  197. package/js/src/src/abstract/kifpoolme.js +11 -0
  198. package/js/src/src/abstract/kraken.d.ts +61 -0
  199. package/js/src/src/abstract/kraken.js +11 -0
  200. package/js/src/src/abstract/krakenfutures.d.ts +45 -0
  201. package/js/src/src/abstract/krakenfutures.js +11 -0
  202. package/js/src/src/abstract/kucoin.d.ts +227 -0
  203. package/js/src/src/abstract/kucoin.js +11 -0
  204. package/js/src/src/abstract/kucoinfutures.d.ts +254 -0
  205. package/js/src/src/abstract/kucoinfutures.js +11 -0
  206. package/js/src/src/abstract/latoken.d.ts +59 -0
  207. package/js/src/src/abstract/latoken.js +11 -0
  208. package/js/src/src/abstract/lbank.d.ts +65 -0
  209. package/js/src/src/abstract/lbank.js +11 -0
  210. package/js/src/src/abstract/luno.d.ts +41 -0
  211. package/js/src/src/abstract/luno.js +11 -0
  212. package/js/src/src/abstract/mazdax.d.ts +11 -0
  213. package/js/src/src/abstract/mazdax.js +11 -0
  214. package/js/src/src/abstract/mercado.d.ts +28 -0
  215. package/js/src/src/abstract/mercado.js +11 -0
  216. package/js/src/src/abstract/mexc.d.ts +183 -0
  217. package/js/src/src/abstract/mexc.js +11 -0
  218. package/js/src/src/abstract/modetrade.d.ts +122 -0
  219. package/js/src/src/abstract/modetrade.js +11 -0
  220. package/js/src/src/abstract/ndax.d.ts +100 -0
  221. package/js/src/src/abstract/ndax.js +11 -0
  222. package/js/src/src/abstract/nobitex.d.ts +10 -0
  223. package/js/src/src/abstract/nobitex.js +11 -0
  224. package/js/src/src/abstract/novadax.d.ts +32 -0
  225. package/js/src/src/abstract/novadax.js +11 -0
  226. package/js/src/src/abstract/oceanex.d.ts +30 -0
  227. package/js/src/src/abstract/oceanex.js +11 -0
  228. package/js/src/src/abstract/okcoin.d.ts +77 -0
  229. package/js/src/src/abstract/okcoin.js +11 -0
  230. package/js/src/src/abstract/okexchange.d.ts +11 -0
  231. package/js/src/src/abstract/okexchange.js +11 -0
  232. package/js/src/src/abstract/okx.d.ts +352 -0
  233. package/js/src/src/abstract/okx.js +11 -0
  234. package/js/src/src/abstract/ompfinex.d.ts +10 -0
  235. package/js/src/src/abstract/ompfinex.js +11 -0
  236. package/js/src/src/abstract/onetrading.d.ts +26 -0
  237. package/js/src/src/abstract/onetrading.js +11 -0
  238. package/js/src/src/abstract/oxfun.d.ts +37 -0
  239. package/js/src/src/abstract/oxfun.js +11 -0
  240. package/js/src/src/abstract/p2b.d.ts +25 -0
  241. package/js/src/src/abstract/p2b.js +11 -0
  242. package/js/src/src/abstract/paradex.d.ts +66 -0
  243. package/js/src/src/abstract/paradex.js +11 -0
  244. package/js/src/src/abstract/paymium.d.ts +31 -0
  245. package/js/src/src/abstract/paymium.js +11 -0
  246. package/js/src/src/abstract/phemex.d.ts +120 -0
  247. package/js/src/src/abstract/phemex.js +11 -0
  248. package/js/src/src/abstract/pingi.d.ts +9 -0
  249. package/js/src/src/abstract/pingi.js +11 -0
  250. package/js/src/src/abstract/poloniex.d.ts +108 -0
  251. package/js/src/src/abstract/poloniex.js +11 -0
  252. package/js/src/src/abstract/pooleno.d.ts +8 -0
  253. package/js/src/src/abstract/pooleno.js +11 -0
  254. package/js/src/src/abstract/probit.d.ts +26 -0
  255. package/js/src/src/abstract/probit.js +11 -0
  256. package/js/src/src/abstract/raastin.d.ts +11 -0
  257. package/js/src/src/abstract/raastin.js +11 -0
  258. package/js/src/src/abstract/ramzinex.d.ts +10 -0
  259. package/js/src/src/abstract/ramzinex.js +11 -0
  260. package/js/src/src/abstract/sarmayex.d.ts +8 -0
  261. package/js/src/src/abstract/sarmayex.js +11 -0
  262. package/js/src/src/abstract/sarrafex.d.ts +10 -0
  263. package/js/src/src/abstract/sarrafex.js +11 -0
  264. package/js/src/src/abstract/tabdeal.d.ts +10 -0
  265. package/js/src/src/abstract/tabdeal.js +11 -0
  266. package/js/src/src/abstract/tehran_exchange.d.ts +9 -0
  267. package/js/src/src/abstract/tehran_exchange.js +11 -0
  268. package/js/src/src/abstract/tetherland.d.ts +8 -0
  269. package/js/src/src/abstract/tetherland.js +11 -0
  270. package/js/src/src/abstract/timex.d.ts +65 -0
  271. package/js/src/src/abstract/timex.js +11 -0
  272. package/js/src/src/abstract/tokocrypto.d.ts +40 -0
  273. package/js/src/src/abstract/tokocrypto.js +11 -0
  274. package/js/src/src/abstract/toobit.d.ts +10 -0
  275. package/js/src/src/abstract/toobit.js +11 -0
  276. package/js/src/src/abstract/tradeogre.d.ts +21 -0
  277. package/js/src/src/abstract/tradeogre.js +11 -0
  278. package/js/src/src/abstract/twox.d.ts +8 -0
  279. package/js/src/src/abstract/twox.js +11 -0
  280. package/js/src/src/abstract/ubitex.d.ts +10 -0
  281. package/js/src/src/abstract/ubitex.js +11 -0
  282. package/js/src/src/abstract/upbit.d.ts +58 -0
  283. package/js/src/src/abstract/upbit.js +11 -0
  284. package/js/src/src/abstract/vertex.d.ts +22 -0
  285. package/js/src/src/abstract/vertex.js +11 -0
  286. package/js/src/src/abstract/wallex.d.ts +11 -0
  287. package/js/src/src/abstract/wallex.js +11 -0
  288. package/js/src/src/abstract/wavesexchange.d.ts +157 -0
  289. package/js/src/src/abstract/wavesexchange.js +11 -0
  290. package/js/src/src/abstract/whitebit.d.ts +117 -0
  291. package/js/src/src/abstract/whitebit.js +11 -0
  292. package/js/src/src/abstract/woo.d.ts +144 -0
  293. package/js/src/src/abstract/woo.js +11 -0
  294. package/js/src/src/abstract/woofipro.d.ts +122 -0
  295. package/js/src/src/abstract/woofipro.js +11 -0
  296. package/js/src/src/abstract/xt.d.ts +160 -0
  297. package/js/src/src/abstract/xt.js +11 -0
  298. package/js/src/src/abstract/yobit.d.ts +19 -0
  299. package/js/src/src/abstract/yobit.js +11 -0
  300. package/js/src/src/abstract/zaif.d.ts +41 -0
  301. package/js/src/src/abstract/zaif.js +11 -0
  302. package/js/src/src/abstract/zonda.d.ts +56 -0
  303. package/js/src/src/abstract/zonda.js +11 -0
  304. package/js/src/src/afratether.d.ts +21 -0
  305. package/js/src/src/afratether.js +356 -0
  306. package/js/src/src/alpaca.d.ts +332 -0
  307. package/js/src/src/alpaca.js +1908 -0
  308. package/js/src/src/apex.d.ts +333 -0
  309. package/js/src/src/apex.js +1942 -0
  310. package/js/src/src/arzinja.d.ts +21 -0
  311. package/js/src/src/arzinja.js +298 -0
  312. package/js/src/src/arzplus.d.ts +26 -0
  313. package/js/src/src/arzplus.js +581 -0
  314. package/js/src/src/ascendex.d.ts +424 -0
  315. package/js/src/src/ascendex.js +3699 -0
  316. package/js/src/src/asretether.d.ts +21 -0
  317. package/js/src/src/asretether.js +324 -0
  318. package/js/src/src/base/Exchange.d.ts +926 -0
  319. package/js/src/src/base/Exchange.js +7399 -0
  320. package/js/src/src/base/Precise.d.ts +42 -0
  321. package/js/src/src/base/Precise.js +275 -0
  322. package/js/src/src/base/errors.d.ts +168 -0
  323. package/js/src/src/base/errors.js +255 -0
  324. package/js/src/src/base/functions/crypto.d.ts +16 -0
  325. package/js/src/src/base/functions/crypto.js +131 -0
  326. package/js/src/src/base/functions/encode.d.ts +4 -0
  327. package/js/src/src/base/functions/encode.js +32 -0
  328. package/js/src/src/base/functions/generic.d.ts +29 -0
  329. package/js/src/src/base/functions/generic.js +203 -0
  330. package/js/src/src/base/functions/misc.d.ts +9 -0
  331. package/js/src/src/base/functions/misc.js +101 -0
  332. package/js/src/src/base/functions/number.d.ts +27 -0
  333. package/js/src/src/base/functions/number.js +313 -0
  334. package/js/src/src/base/functions/platform.d.ts +7 -0
  335. package/js/src/src/base/functions/platform.js +27 -0
  336. package/js/src/src/base/functions/rsa.d.ts +5 -0
  337. package/js/src/src/base/functions/rsa.js +49 -0
  338. package/js/src/src/base/functions/string.d.ts +7 -0
  339. package/js/src/src/base/functions/string.js +44 -0
  340. package/js/src/src/base/functions/throttle.d.ts +6 -0
  341. package/js/src/src/base/functions/throttle.js +67 -0
  342. package/js/src/src/base/functions/time.d.ts +21 -0
  343. package/js/src/src/base/functions/time.js +171 -0
  344. package/js/src/src/base/functions/totp.d.ts +3 -0
  345. package/js/src/src/base/functions/totp.js +25 -0
  346. package/js/src/src/base/functions/type.d.ts +37 -0
  347. package/js/src/src/base/functions/type.js +179 -0
  348. package/js/src/src/base/functions.d.ts +10 -0
  349. package/js/src/src/base/functions.js +18 -0
  350. package/js/src/src/base/types.d.ts +586 -0
  351. package/js/src/src/base/types.js +7 -0
  352. package/js/src/src/base/ws/Cache.d.ts +27 -0
  353. package/js/src/src/base/ws/Cache.js +260 -0
  354. package/js/src/src/base/ws/Client.d.ts +53 -0
  355. package/js/src/src/base/ws/Client.js +307 -0
  356. package/js/src/src/base/ws/Future.d.ts +8 -0
  357. package/js/src/src/base/ws/Future.js +35 -0
  358. package/js/src/src/base/ws/OrderBook.d.ts +25 -0
  359. package/js/src/src/base/ws/OrderBook.js +130 -0
  360. package/js/src/src/base/ws/OrderBookSide.d.ts +40 -0
  361. package/js/src/src/base/ws/OrderBookSide.js +286 -0
  362. package/js/src/src/base/ws/WsClient.d.ts +11 -0
  363. package/js/src/src/base/ws/WsClient.js +69 -0
  364. package/js/src/src/bequant.d.ts +4 -0
  365. package/js/src/src/bequant.js +35 -0
  366. package/js/src/src/bidarz.d.ts +16 -0
  367. package/js/src/src/bidarz.js +327 -0
  368. package/js/src/src/bigone.d.ts +296 -0
  369. package/js/src/src/bigone.js +2340 -0
  370. package/js/src/src/binance.d.ts +1667 -0
  371. package/js/src/src/binance.js +14400 -0
  372. package/js/src/src/binancecoinm.d.ts +6 -0
  373. package/js/src/src/binancecoinm.js +51 -0
  374. package/js/src/src/binanceus.d.ts +4 -0
  375. package/js/src/src/binanceus.js +225 -0
  376. package/js/src/src/binanceusdm.d.ts +6 -0
  377. package/js/src/src/binanceusdm.js +63 -0
  378. package/js/src/src/bingx.d.ts +778 -0
  379. package/js/src/src/bingx.js +6705 -0
  380. package/js/src/src/bit24.d.ts +24 -0
  381. package/js/src/src/bit24.js +520 -0
  382. package/js/src/src/bit2c.d.ts +146 -0
  383. package/js/src/src/bit2c.js +1029 -0
  384. package/js/src/src/bitbank.d.ts +181 -0
  385. package/js/src/src/bitbank.js +1146 -0
  386. package/js/src/src/bitbarg.d.ts +21 -0
  387. package/js/src/src/bitbarg.js +312 -0
  388. package/js/src/src/bitbns.d.ts +184 -0
  389. package/js/src/src/bitbns.js +1288 -0
  390. package/js/src/src/bitfinex.d.ts +516 -0
  391. package/js/src/src/bitfinex.js +3951 -0
  392. package/js/src/src/bitflyer.d.ts +229 -0
  393. package/js/src/src/bitflyer.js +1209 -0
  394. package/js/src/src/bitget.d.ts +1109 -0
  395. package/js/src/src/bitget.js +11033 -0
  396. package/js/src/src/bithumb.d.ts +165 -0
  397. package/js/src/src/bithumb.js +1257 -0
  398. package/js/src/src/bitimen.d.ts +23 -0
  399. package/js/src/src/bitimen.js +424 -0
  400. package/js/src/src/bitir.d.ts +23 -0
  401. package/js/src/src/bitir.js +521 -0
  402. package/js/src/src/bitmart.d.ts +736 -0
  403. package/js/src/src/bitmart.js +5639 -0
  404. package/js/src/src/bitmex.d.ts +395 -0
  405. package/js/src/src/bitmex.js +3088 -0
  406. package/js/src/src/bitopro.d.ts +295 -0
  407. package/js/src/src/bitopro.js +1892 -0
  408. package/js/src/src/bitpin.d.ts +23 -0
  409. package/js/src/src/bitpin.js +487 -0
  410. package/js/src/src/bitrue.d.ts +384 -0
  411. package/js/src/src/bitrue.js +3382 -0
  412. package/js/src/src/bitso.d.ts +270 -0
  413. package/js/src/src/bitso.js +1881 -0
  414. package/js/src/src/bitstamp.d.ts +355 -0
  415. package/js/src/src/bitstamp.js +2445 -0
  416. package/js/src/src/bitteam.d.ts +229 -0
  417. package/js/src/src/bitteam.js +2420 -0
  418. package/js/src/src/bittrade.d.ts +298 -0
  419. package/js/src/src/bittrade.js +2050 -0
  420. package/js/src/src/bitunix.d.ts +21 -0
  421. package/js/src/src/bitunix.js +326 -0
  422. package/js/src/src/bitvavo.d.ts +311 -0
  423. package/js/src/src/bitvavo.js +2204 -0
  424. package/js/src/src/blockchaincom.d.ts +256 -0
  425. package/js/src/src/blockchaincom.js +1259 -0
  426. package/js/src/src/blofin.d.ts +439 -0
  427. package/js/src/src/blofin.js +2576 -0
  428. package/js/src/src/btcalpha.d.ts +209 -0
  429. package/js/src/src/btcalpha.js +1056 -0
  430. package/js/src/src/btcbox.d.ts +144 -0
  431. package/js/src/src/btcbox.js +834 -0
  432. package/js/src/src/btcmarkets.d.ts +253 -0
  433. package/js/src/src/btcmarkets.js +1418 -0
  434. package/js/src/src/btcturk.d.ts +161 -0
  435. package/js/src/src/btcturk.js +1058 -0
  436. package/js/src/src/bybit.d.ts +1097 -0
  437. package/js/src/src/bybit.js +9382 -0
  438. package/js/src/src/bydfi.d.ts +23 -0
  439. package/js/src/src/bydfi.js +434 -0
  440. package/js/src/src/cafearz.d.ts +21 -0
  441. package/js/src/src/cafearz.js +346 -0
  442. package/js/src/src/cex.d.ts +286 -0
  443. package/js/src/src/cex.js +1799 -0
  444. package/js/src/src/coinbase.d.ts +623 -0
  445. package/js/src/src/coinbase.js +5220 -0
  446. package/js/src/src/coinbaseadvanced.d.ts +4 -0
  447. package/js/src/src/coinbaseadvanced.js +18 -0
  448. package/js/src/src/coinbaseexchange.d.ts +334 -0
  449. package/js/src/src/coinbaseexchange.js +2127 -0
  450. package/js/src/src/coinbaseinternational.d.ts +443 -0
  451. package/js/src/src/coinbaseinternational.js +2336 -0
  452. package/js/src/src/coincatch.d.ts +786 -0
  453. package/js/src/src/coincatch.js +5492 -0
  454. package/js/src/src/coincheck.d.ts +147 -0
  455. package/js/src/src/coincheck.js +962 -0
  456. package/js/src/src/coinex.d.ts +719 -0
  457. package/js/src/src/coinex.js +6166 -0
  458. package/js/src/src/coinmate.d.ts +202 -0
  459. package/js/src/src/coinmate.js +1215 -0
  460. package/js/src/src/coinmetro.d.ts +244 -0
  461. package/js/src/src/coinmetro.js +2024 -0
  462. package/js/src/src/coinone.d.ts +158 -0
  463. package/js/src/src/coinone.js +1278 -0
  464. package/js/src/src/coinsph.d.ts +310 -0
  465. package/js/src/src/coinsph.js +2203 -0
  466. package/js/src/src/coinspot.d.ts +108 -0
  467. package/js/src/src/coinspot.js +653 -0
  468. package/js/src/src/cryptocom.d.ts +463 -0
  469. package/js/src/src/cryptocom.js +3549 -0
  470. package/js/src/src/cryptomus.d.ts +158 -0
  471. package/js/src/src/cryptomus.js +1169 -0
  472. package/js/src/src/defx.d.ts +348 -0
  473. package/js/src/src/defx.js +2139 -0
  474. package/js/src/src/delta.d.ts +407 -0
  475. package/js/src/src/delta.js +3654 -0
  476. package/js/src/src/deribit.d.ts +516 -0
  477. package/js/src/src/deribit.js +3790 -0
  478. package/js/src/src/derive.d.ts +324 -0
  479. package/js/src/src/derive.js +2655 -0
  480. package/js/src/src/digifinex.d.ts +544 -0
  481. package/js/src/src/digifinex.js +4453 -0
  482. package/js/src/src/ellipx.d.ts +237 -0
  483. package/js/src/src/ellipx.js +2071 -0
  484. package/js/src/src/eterex.d.ts +21 -0
  485. package/js/src/src/eterex.js +299 -0
  486. package/js/src/src/excoino.d.ts +23 -0
  487. package/js/src/src/excoino.js +426 -0
  488. package/js/src/src/exir.d.ts +23 -0
  489. package/js/src/src/exir.js +403 -0
  490. package/js/src/src/exmo.d.ts +426 -0
  491. package/js/src/src/exmo.js +2825 -0
  492. package/js/src/src/exnovin.d.ts +22 -0
  493. package/js/src/src/exnovin.js +378 -0
  494. package/js/src/src/farhadexchange.d.ts +21 -0
  495. package/js/src/src/farhadexchange.js +280 -0
  496. package/js/src/src/fmfwio.d.ts +4 -0
  497. package/js/src/src/fmfwio.js +35 -0
  498. package/js/src/src/foxbit.d.ts +352 -0
  499. package/js/src/src/foxbit.js +2016 -0
  500. package/js/src/src/gate.d.ts +1071 -0
  501. package/js/src/src/gate.js +8282 -0
  502. package/js/src/src/gateio.d.ts +4 -0
  503. package/js/src/src/gateio.js +17 -0
  504. package/js/src/src/gemini.d.ts +257 -0
  505. package/js/src/src/gemini.js +2006 -0
  506. package/js/src/src/hamtapay.d.ts +21 -0
  507. package/js/src/src/hamtapay.js +303 -0
  508. package/js/src/src/hashkey.d.ts +628 -0
  509. package/js/src/src/hashkey.js +4363 -0
  510. package/js/src/src/hibachi.d.ts +346 -0
  511. package/js/src/src/hibachi.js +2137 -0
  512. package/js/src/src/hitbtc.d.ts +558 -0
  513. package/js/src/src/hitbtc.js +3847 -0
  514. package/js/src/src/hitobit.d.ts +23 -0
  515. package/js/src/src/hitobit.js +412 -0
  516. package/js/src/src/hollaex.d.ts +305 -0
  517. package/js/src/src/hollaex.js +2046 -0
  518. package/js/src/src/htx.d.ts +961 -0
  519. package/js/src/src/htx.js +9668 -0
  520. package/js/src/src/huobi.d.ts +4 -0
  521. package/js/src/src/huobi.js +17 -0
  522. package/js/src/src/hyperliquid.d.ts +651 -0
  523. package/js/src/src/hyperliquid.js +3937 -0
  524. package/js/src/src/independentreserve.d.ts +169 -0
  525. package/js/src/src/independentreserve.js +1115 -0
  526. package/js/src/src/indodax.d.ts +217 -0
  527. package/js/src/src/indodax.js +1454 -0
  528. package/js/src/src/iranexchange.d.ts +21 -0
  529. package/js/src/src/iranexchange.js +399 -0
  530. package/js/src/src/jibitex.d.ts +23 -0
  531. package/js/src/src/jibitex.js +416 -0
  532. package/js/src/src/kcex.d.ts +21 -0
  533. package/js/src/src/kcex.js +335 -0
  534. package/js/src/src/kifpoolme.d.ts +23 -0
  535. package/js/src/src/kifpoolme.js +410 -0
  536. package/js/src/src/kraken.d.ts +484 -0
  537. package/js/src/src/kraken.js +3518 -0
  538. package/js/src/src/krakenfutures.d.ts +362 -0
  539. package/js/src/src/krakenfutures.js +2885 -0
  540. package/js/src/src/kucoin.d.ts +759 -0
  541. package/js/src/src/kucoin.js +5153 -0
  542. package/js/src/src/kucoinfutures.d.ts +521 -0
  543. package/js/src/src/kucoinfutures.js +3381 -0
  544. package/js/src/src/latoken.d.ts +274 -0
  545. package/js/src/src/latoken.js +1824 -0
  546. package/js/src/src/lbank.d.ts +350 -0
  547. package/js/src/src/lbank.js +3146 -0
  548. package/js/src/src/luno.d.ts +252 -0
  549. package/js/src/src/luno.js +1479 -0
  550. package/js/src/src/mazdax.d.ts +23 -0
  551. package/js/src/src/mazdax.js +534 -0
  552. package/js/src/src/mercado.d.ts +160 -0
  553. package/js/src/src/mercado.js +1011 -0
  554. package/js/src/src/mexc.d.ts +768 -0
  555. package/js/src/src/mexc.js +6102 -0
  556. package/js/src/src/modetrade.d.ts +496 -0
  557. package/js/src/src/modetrade.js +2936 -0
  558. package/js/src/src/myokx.d.ts +4 -0
  559. package/js/src/src/myokx.js +54 -0
  560. package/js/src/src/ndax.d.ts +285 -0
  561. package/js/src/src/ndax.js +2598 -0
  562. package/js/src/src/nobitex.d.ts +23 -0
  563. package/js/src/src/nobitex.js +454 -0
  564. package/js/src/src/novadax.d.ts +279 -0
  565. package/js/src/src/novadax.js +1676 -0
  566. package/js/src/src/oceanex.d.ts +231 -0
  567. package/js/src/src/oceanex.js +1123 -0
  568. package/js/src/src/okcoin.d.ts +346 -0
  569. package/js/src/src/okcoin.js +3211 -0
  570. package/js/src/src/okexchange.d.ts +23 -0
  571. package/js/src/src/okexchange.js +373 -0
  572. package/js/src/src/okx.d.ts +1125 -0
  573. package/js/src/src/okx.js +9009 -0
  574. package/js/src/src/okxus.d.ts +4 -0
  575. package/js/src/src/okxus.js +54 -0
  576. package/js/src/src/ompfinex.d.ts +23 -0
  577. package/js/src/src/ompfinex.js +510 -0
  578. package/js/src/src/onetrading.d.ts +228 -0
  579. package/js/src/src/onetrading.js +1769 -0
  580. package/js/src/src/oxfun.d.ts +442 -0
  581. package/js/src/src/oxfun.js +2920 -0
  582. package/js/src/src/p2b.d.ts +189 -0
  583. package/js/src/src/p2b.js +1344 -0
  584. package/js/src/src/paradex.d.ts +389 -0
  585. package/js/src/src/paradex.js +2607 -0
  586. package/js/src/src/paymium.d.ts +133 -0
  587. package/js/src/src/paymium.js +644 -0
  588. package/js/src/src/phemex.d.ts +497 -0
  589. package/js/src/src/phemex.js +5333 -0
  590. package/js/src/src/pingi.d.ts +22 -0
  591. package/js/src/src/pingi.js +446 -0
  592. package/js/src/src/poloniex.d.ts +441 -0
  593. package/js/src/src/poloniex.js +3681 -0
  594. package/js/src/src/pooleno.d.ts +21 -0
  595. package/js/src/src/pooleno.js +347 -0
  596. package/js/src/src/pro/alpaca.d.ts +95 -0
  597. package/js/src/src/pro/alpaca.js +724 -0
  598. package/js/src/src/pro/apex.d.ts +160 -0
  599. package/js/src/src/pro/apex.js +1044 -0
  600. package/js/src/src/pro/ascendex.d.ts +99 -0
  601. package/js/src/src/pro/ascendex.js +1012 -0
  602. package/js/src/src/pro/bequant.d.ts +4 -0
  603. package/js/src/src/pro/bequant.js +42 -0
  604. package/js/src/src/pro/binance.d.ts +796 -0
  605. package/js/src/src/pro/binance.js +4373 -0
  606. package/js/src/src/pro/binancecoinm.d.ts +4 -0
  607. package/js/src/src/pro/binancecoinm.js +32 -0
  608. package/js/src/src/pro/binanceus.d.ts +4 -0
  609. package/js/src/src/pro/binanceus.js +52 -0
  610. package/js/src/src/pro/binanceusdm.d.ts +4 -0
  611. package/js/src/src/pro/binanceusdm.js +37 -0
  612. package/js/src/src/pro/bingx.d.ts +151 -0
  613. package/js/src/src/pro/bingx.js +1568 -0
  614. package/js/src/src/pro/bitfinex.d.ts +99 -0
  615. package/js/src/src/pro/bitfinex.js +1165 -0
  616. package/js/src/src/pro/bitget.d.ts +257 -0
  617. package/js/src/src/pro/bitget.js +2327 -0
  618. package/js/src/src/pro/bithumb.d.ts +59 -0
  619. package/js/src/src/pro/bithumb.js +395 -0
  620. package/js/src/src/pro/bitmart.d.ts +168 -0
  621. package/js/src/src/pro/bitmart.js +1686 -0
  622. package/js/src/src/pro/bitmex.d.ts +170 -0
  623. package/js/src/src/pro/bitmex.js +1760 -0
  624. package/js/src/src/pro/bitopro.d.ts +69 -0
  625. package/js/src/src/pro/bitopro.js +477 -0
  626. package/js/src/src/pro/bitrue.d.ts +40 -0
  627. package/js/src/src/pro/bitrue.js +461 -0
  628. package/js/src/src/pro/bitstamp.d.ts +53 -0
  629. package/js/src/src/pro/bitstamp.js +587 -0
  630. package/js/src/src/pro/bittrade.d.ts +66 -0
  631. package/js/src/src/pro/bittrade.js +606 -0
  632. package/js/src/src/pro/bitvavo.d.ts +321 -0
  633. package/js/src/src/pro/bitvavo.js +1451 -0
  634. package/js/src/src/pro/blockchaincom.d.ts +89 -0
  635. package/js/src/src/pro/blockchaincom.js +777 -0
  636. package/js/src/src/pro/blofin.d.ts +174 -0
  637. package/js/src/src/pro/blofin.js +743 -0
  638. package/js/src/src/pro/bybit.d.ts +397 -0
  639. package/js/src/src/pro/bybit.js +2519 -0
  640. package/js/src/src/pro/cex.d.ts +220 -0
  641. package/js/src/src/pro/cex.js +1535 -0
  642. package/js/src/src/pro/coinbase.d.ts +119 -0
  643. package/js/src/src/pro/coinbase.js +736 -0
  644. package/js/src/src/pro/coinbaseadvanced.d.ts +4 -0
  645. package/js/src/src/pro/coinbaseadvanced.js +18 -0
  646. package/js/src/src/pro/coinbaseexchange.d.ts +133 -0
  647. package/js/src/src/pro/coinbaseexchange.js +969 -0
  648. package/js/src/src/pro/coinbaseinternational.d.ts +143 -0
  649. package/js/src/src/pro/coinbaseinternational.js +804 -0
  650. package/js/src/src/pro/coincatch.d.ts +207 -0
  651. package/js/src/src/pro/coincatch.js +1562 -0
  652. package/js/src/src/pro/coincheck.d.ts +33 -0
  653. package/js/src/src/pro/coincheck.js +210 -0
  654. package/js/src/src/pro/coinex.d.ts +147 -0
  655. package/js/src/src/pro/coinex.js +1426 -0
  656. package/js/src/src/pro/coinone.d.ts +51 -0
  657. package/js/src/src/pro/coinone.js +413 -0
  658. package/js/src/src/pro/cryptocom.d.ts +300 -0
  659. package/js/src/src/pro/cryptocom.js +1414 -0
  660. package/js/src/src/pro/defx.d.ts +236 -0
  661. package/js/src/src/pro/defx.js +865 -0
  662. package/js/src/src/pro/deribit.d.ts +163 -0
  663. package/js/src/src/pro/deribit.js +1066 -0
  664. package/js/src/src/pro/derive.d.ts +100 -0
  665. package/js/src/src/pro/derive.js +753 -0
  666. package/js/src/src/pro/exmo.d.ts +97 -0
  667. package/js/src/src/pro/exmo.js +903 -0
  668. package/js/src/src/pro/gate.d.ts +360 -0
  669. package/js/src/src/pro/gate.js +2119 -0
  670. package/js/src/src/pro/gateio.d.ts +4 -0
  671. package/js/src/src/pro/gateio.js +17 -0
  672. package/js/src/src/pro/gemini.d.ts +106 -0
  673. package/js/src/src/pro/gemini.js +932 -0
  674. package/js/src/src/pro/hashkey.d.ts +121 -0
  675. package/js/src/src/pro/hashkey.js +843 -0
  676. package/js/src/src/pro/hitbtc.d.ts +235 -0
  677. package/js/src/src/pro/hitbtc.js +1400 -0
  678. package/js/src/src/pro/hollaex.d.ts +77 -0
  679. package/js/src/src/pro/hollaex.js +604 -0
  680. package/js/src/src/pro/htx.d.ts +141 -0
  681. package/js/src/src/pro/htx.js +2415 -0
  682. package/js/src/src/pro/huobi.d.ts +4 -0
  683. package/js/src/src/pro/huobi.js +17 -0
  684. package/js/src/src/pro/hyperliquid.d.ts +218 -0
  685. package/js/src/src/pro/hyperliquid.js +1126 -0
  686. package/js/src/src/pro/independentreserve.d.ts +36 -0
  687. package/js/src/src/pro/independentreserve.js +287 -0
  688. package/js/src/src/pro/kraken.d.ts +233 -0
  689. package/js/src/src/pro/kraken.js +1785 -0
  690. package/js/src/src/pro/krakenfutures.d.ts +178 -0
  691. package/js/src/src/pro/krakenfutures.js +1592 -0
  692. package/js/src/src/pro/kucoin.d.ts +221 -0
  693. package/js/src/src/pro/kucoin.js +1430 -0
  694. package/js/src/src/pro/kucoinfutures.d.ts +205 -0
  695. package/js/src/src/pro/kucoinfutures.js +1295 -0
  696. package/js/src/src/pro/lbank.d.ts +134 -0
  697. package/js/src/src/pro/lbank.js +950 -0
  698. package/js/src/src/pro/luno.d.ts +44 -0
  699. package/js/src/src/pro/luno.js +322 -0
  700. package/js/src/src/pro/mexc.d.ts +210 -0
  701. package/js/src/src/pro/mexc.js +2009 -0
  702. package/js/src/src/pro/modetrade.d.ts +155 -0
  703. package/js/src/src/pro/modetrade.js +1335 -0
  704. package/js/src/src/pro/myokx.d.ts +4 -0
  705. package/js/src/src/pro/myokx.js +39 -0
  706. package/js/src/src/pro/ndax.d.ts +60 -0
  707. package/js/src/src/pro/ndax.js +545 -0
  708. package/js/src/src/pro/okcoin.d.ts +91 -0
  709. package/js/src/src/pro/okcoin.js +763 -0
  710. package/js/src/src/pro/okx.d.ts +408 -0
  711. package/js/src/src/pro/okx.js +2479 -0
  712. package/js/src/src/pro/okxus.d.ts +4 -0
  713. package/js/src/src/pro/okxus.js +39 -0
  714. package/js/src/src/pro/onetrading.d.ts +107 -0
  715. package/js/src/src/pro/onetrading.js +1343 -0
  716. package/js/src/src/pro/oxfun.d.ts +234 -0
  717. package/js/src/src/pro/oxfun.js +1112 -0
  718. package/js/src/src/pro/p2b.d.ts +104 -0
  719. package/js/src/src/pro/p2b.js +506 -0
  720. package/js/src/src/pro/paradex.d.ts +54 -0
  721. package/js/src/src/pro/paradex.js +370 -0
  722. package/js/src/src/pro/phemex.d.ts +129 -0
  723. package/js/src/src/pro/phemex.js +1569 -0
  724. package/js/src/src/pro/poloniex.d.ts +214 -0
  725. package/js/src/src/pro/poloniex.js +1318 -0
  726. package/js/src/src/pro/probit.d.ts +91 -0
  727. package/js/src/src/pro/probit.js +593 -0
  728. package/js/src/src/pro/tradeogre.d.ts +49 -0
  729. package/js/src/src/pro/tradeogre.js +284 -0
  730. package/js/src/src/pro/upbit.d.ts +124 -0
  731. package/js/src/src/pro/upbit.js +689 -0
  732. package/js/src/src/pro/vertex.d.ts +104 -0
  733. package/js/src/src/pro/vertex.js +999 -0
  734. package/js/src/src/pro/whitebit.d.ts +123 -0
  735. package/js/src/src/pro/whitebit.js +971 -0
  736. package/js/src/src/pro/woo.d.ts +161 -0
  737. package/js/src/src/pro/woo.js +1351 -0
  738. package/js/src/src/pro/woofipro.d.ts +155 -0
  739. package/js/src/src/pro/woofipro.js +1335 -0
  740. package/js/src/src/pro/xt.d.ts +165 -0
  741. package/js/src/src/pro/xt.js +1230 -0
  742. package/js/src/src/probit.d.ts +283 -0
  743. package/js/src/src/probit.js +1935 -0
  744. package/js/src/src/protobuf/mexc/compiled.cjs +7186 -0
  745. package/js/src/src/protobuf/mexc/compiled.d.cts +8 -0
  746. package/js/src/src/raastin.d.ts +24 -0
  747. package/js/src/src/raastin.js +494 -0
  748. package/js/src/src/ramzinex.d.ts +23 -0
  749. package/js/src/src/ramzinex.js +510 -0
  750. package/js/src/src/sarmayex.d.ts +21 -0
  751. package/js/src/src/sarmayex.js +376 -0
  752. package/js/src/src/sarrafex.d.ts +23 -0
  753. package/js/src/src/sarrafex.js +501 -0
  754. package/js/src/src/static_dependencies/ethers/abi-coder.d.ts +50 -0
  755. package/js/src/src/static_dependencies/ethers/abi-coder.js +148 -0
  756. package/js/src/src/static_dependencies/ethers/address/address.d.ts +55 -0
  757. package/js/src/src/static_dependencies/ethers/address/address.js +162 -0
  758. package/js/src/src/static_dependencies/ethers/address/checks.d.ts +80 -0
  759. package/js/src/src/static_dependencies/ethers/address/checks.js +119 -0
  760. package/js/src/src/static_dependencies/ethers/address/contract-address.d.ts +47 -0
  761. package/js/src/src/static_dependencies/ethers/address/contract-address.js +73 -0
  762. package/js/src/src/static_dependencies/ethers/address/index.d.ts +48 -0
  763. package/js/src/src/static_dependencies/ethers/address/index.js +24 -0
  764. package/js/src/src/static_dependencies/ethers/bytes32.d.ts +14 -0
  765. package/js/src/src/static_dependencies/ethers/bytes32.js +45 -0
  766. package/js/src/src/static_dependencies/ethers/coders/abstract-coder.d.ts +120 -0
  767. package/js/src/src/static_dependencies/ethers/coders/abstract-coder.js +424 -0
  768. package/js/src/src/static_dependencies/ethers/coders/address.d.ts +12 -0
  769. package/js/src/src/static_dependencies/ethers/coders/address.js +34 -0
  770. package/js/src/src/static_dependencies/ethers/coders/anonymous.d.ts +14 -0
  771. package/js/src/src/static_dependencies/ethers/coders/anonymous.js +27 -0
  772. package/js/src/src/static_dependencies/ethers/coders/array.d.ts +24 -0
  773. package/js/src/src/static_dependencies/ethers/coders/array.js +162 -0
  774. package/js/src/src/static_dependencies/ethers/coders/boolean.d.ts +12 -0
  775. package/js/src/src/static_dependencies/ethers/coders/boolean.js +26 -0
  776. package/js/src/src/static_dependencies/ethers/coders/bytes.d.ts +18 -0
  777. package/js/src/src/static_dependencies/ethers/coders/bytes.js +39 -0
  778. package/js/src/src/static_dependencies/ethers/coders/fixed-bytes.d.ts +14 -0
  779. package/js/src/src/static_dependencies/ethers/coders/fixed-bytes.js +32 -0
  780. package/js/src/src/static_dependencies/ethers/coders/null.d.ts +11 -0
  781. package/js/src/src/static_dependencies/ethers/coders/null.js +29 -0
  782. package/js/src/src/static_dependencies/ethers/coders/number.d.ts +15 -0
  783. package/js/src/src/static_dependencies/ethers/coders/number.js +48 -0
  784. package/js/src/src/static_dependencies/ethers/coders/string.d.ts +12 -0
  785. package/js/src/src/static_dependencies/ethers/coders/string.js +26 -0
  786. package/js/src/src/static_dependencies/ethers/coders/tuple.d.ts +15 -0
  787. package/js/src/src/static_dependencies/ethers/coders/tuple.js +67 -0
  788. package/js/src/src/static_dependencies/ethers/fragments.d.ts +458 -0
  789. package/js/src/src/static_dependencies/ethers/fragments.js +1252 -0
  790. package/js/src/src/static_dependencies/ethers/hash/index.d.ts +10 -0
  791. package/js/src/src/static_dependencies/ethers/hash/index.js +15 -0
  792. package/js/src/src/static_dependencies/ethers/hash/solidity.d.ts +30 -0
  793. package/js/src/src/static_dependencies/ethers/hash/solidity.js +107 -0
  794. package/js/src/src/static_dependencies/ethers/hash/typed-data.d.ts +144 -0
  795. package/js/src/src/static_dependencies/ethers/hash/typed-data.js +490 -0
  796. package/js/src/src/static_dependencies/ethers/index.d.ts +19 -0
  797. package/js/src/src/static_dependencies/ethers/index.js +22 -0
  798. package/js/src/src/static_dependencies/ethers/interface.d.ts +380 -0
  799. package/js/src/src/static_dependencies/ethers/interface.js +990 -0
  800. package/js/src/src/static_dependencies/ethers/typed.d.ts +569 -0
  801. package/js/src/src/static_dependencies/ethers/typed.js +608 -0
  802. package/js/src/src/static_dependencies/ethers/utils/base58.d.ts +22 -0
  803. package/js/src/src/static_dependencies/ethers/utils/base58.js +68 -0
  804. package/js/src/src/static_dependencies/ethers/utils/base64.d.ts +39 -0
  805. package/js/src/src/static_dependencies/ethers/utils/base64.js +58 -0
  806. package/js/src/src/static_dependencies/ethers/utils/data.d.ts +92 -0
  807. package/js/src/src/static_dependencies/ethers/utils/data.js +175 -0
  808. package/js/src/src/static_dependencies/ethers/utils/errors.d.ts +509 -0
  809. package/js/src/src/static_dependencies/ethers/utils/errors.js +227 -0
  810. package/js/src/src/static_dependencies/ethers/utils/events.d.ts +76 -0
  811. package/js/src/src/static_dependencies/ethers/utils/events.js +52 -0
  812. package/js/src/src/static_dependencies/ethers/utils/fixednumber.d.ts +251 -0
  813. package/js/src/src/static_dependencies/ethers/utils/fixednumber.js +529 -0
  814. package/js/src/src/static_dependencies/ethers/utils/index.d.ts +30 -0
  815. package/js/src/src/static_dependencies/ethers/utils/index.js +38 -0
  816. package/js/src/src/static_dependencies/ethers/utils/maths.d.ts +65 -0
  817. package/js/src/src/static_dependencies/ethers/utils/maths.js +220 -0
  818. package/js/src/src/static_dependencies/ethers/utils/properties.d.ts +22 -0
  819. package/js/src/src/static_dependencies/ethers/utils/properties.js +59 -0
  820. package/js/src/src/static_dependencies/ethers/utils/rlp-decode.d.ts +5 -0
  821. package/js/src/src/static_dependencies/ethers/utils/rlp-decode.js +84 -0
  822. package/js/src/src/static_dependencies/ethers/utils/rlp-encode.d.ts +5 -0
  823. package/js/src/src/static_dependencies/ethers/utils/rlp-encode.js +54 -0
  824. package/js/src/src/static_dependencies/ethers/utils/rlp.d.ts +16 -0
  825. package/js/src/src/static_dependencies/ethers/utils/rlp.js +14 -0
  826. package/js/src/src/static_dependencies/ethers/utils/units.d.ts +23 -0
  827. package/js/src/src/static_dependencies/ethers/utils/units.js +88 -0
  828. package/js/src/src/static_dependencies/ethers/utils/utf8.d.ts +95 -0
  829. package/js/src/src/static_dependencies/ethers/utils/utf8.js +225 -0
  830. package/js/src/src/static_dependencies/ethers/utils/uuid.d.ts +7 -0
  831. package/js/src/src/static_dependencies/ethers/utils/uuid.js +35 -0
  832. package/js/src/src/static_dependencies/fflake/browser.d.ts +222 -0
  833. package/js/src/src/static_dependencies/fflake/browser.js +2578 -0
  834. package/js/src/src/static_dependencies/jsencrypt/JSEncrypt.d.ts +116 -0
  835. package/js/src/src/static_dependencies/jsencrypt/JSEncrypt.js +194 -0
  836. package/js/src/src/static_dependencies/jsencrypt/JSEncryptRSAKey.d.ts +142 -0
  837. package/js/src/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +307 -0
  838. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/asn1.d.ts +51 -0
  839. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +565 -0
  840. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/base64.d.ts +5 -0
  841. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +94 -0
  842. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/hex.d.ts +3 -0
  843. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +70 -0
  844. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/int10.d.ts +9 -0
  845. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +91 -0
  846. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/base64.d.ts +3 -0
  847. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +25 -0
  848. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +101 -0
  849. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +1757 -0
  850. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/prng4.d.ts +10 -0
  851. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +50 -0
  852. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rng.d.ts +3 -0
  853. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +80 -0
  854. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rsa.d.ts +23 -0
  855. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +377 -0
  856. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/util.d.ts +7 -0
  857. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/util.js +64 -0
  858. package/js/src/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.d.ts +24 -0
  859. package/js/src/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +1627 -0
  860. package/js/src/src/static_dependencies/noble-curves/_shortw_utils.d.ts +60 -0
  861. package/js/src/src/static_dependencies/noble-curves/_shortw_utils.js +22 -0
  862. package/js/src/src/static_dependencies/noble-curves/abstract/curve.d.ts +67 -0
  863. package/js/src/src/static_dependencies/noble-curves/abstract/curve.js +157 -0
  864. package/js/src/src/static_dependencies/noble-curves/abstract/edwards.d.ts +79 -0
  865. package/js/src/src/static_dependencies/noble-curves/abstract/edwards.js +432 -0
  866. package/js/src/src/static_dependencies/noble-curves/abstract/hash-to-curve.d.ts +56 -0
  867. package/js/src/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +171 -0
  868. package/js/src/src/static_dependencies/noble-curves/abstract/modular.d.ts +68 -0
  869. package/js/src/src/static_dependencies/noble-curves/abstract/modular.js +351 -0
  870. package/js/src/src/static_dependencies/noble-curves/abstract/montgomery.d.ts +25 -0
  871. package/js/src/src/static_dependencies/noble-curves/abstract/montgomery.js +162 -0
  872. package/js/src/src/static_dependencies/noble-curves/abstract/poseidon.d.ts +29 -0
  873. package/js/src/src/static_dependencies/noble-curves/abstract/poseidon.js +115 -0
  874. package/js/src/src/static_dependencies/noble-curves/abstract/utils.d.ts +53 -0
  875. package/js/src/src/static_dependencies/noble-curves/abstract/utils.js +227 -0
  876. package/js/src/src/static_dependencies/noble-curves/abstract/weierstrass.d.ts +204 -0
  877. package/js/src/src/static_dependencies/noble-curves/abstract/weierstrass.js +1016 -0
  878. package/js/src/src/static_dependencies/noble-curves/ed25519.d.ts +53 -0
  879. package/js/src/src/static_dependencies/noble-curves/ed25519.js +402 -0
  880. package/js/src/src/static_dependencies/noble-curves/p256.d.ts +103 -0
  881. package/js/src/src/static_dependencies/noble-curves/p256.js +47 -0
  882. package/js/src/src/static_dependencies/noble-curves/secp256k1.d.ts +91 -0
  883. package/js/src/src/static_dependencies/noble-curves/secp256k1.js +257 -0
  884. package/js/src/src/static_dependencies/noble-hashes/_assert.d.ts +21 -0
  885. package/js/src/src/static_dependencies/noble-hashes/_assert.js +48 -0
  886. package/js/src/src/static_dependencies/noble-hashes/_sha2.d.ts +23 -0
  887. package/js/src/src/static_dependencies/noble-hashes/_sha2.js +119 -0
  888. package/js/src/src/static_dependencies/noble-hashes/_u64.d.ts +35 -0
  889. package/js/src/src/static_dependencies/noble-hashes/_u64.js +66 -0
  890. package/js/src/src/static_dependencies/noble-hashes/crypto.d.ts +1 -0
  891. package/js/src/src/static_dependencies/noble-hashes/crypto.js +7 -0
  892. package/js/src/src/static_dependencies/noble-hashes/hmac.d.ts +26 -0
  893. package/js/src/src/static_dependencies/noble-hashes/hmac.js +82 -0
  894. package/js/src/src/static_dependencies/noble-hashes/md5.d.ts +18 -0
  895. package/js/src/src/static_dependencies/noble-hashes/md5.js +242 -0
  896. package/js/src/src/static_dependencies/noble-hashes/sha1.d.ts +21 -0
  897. package/js/src/src/static_dependencies/noble-hashes/sha1.js +90 -0
  898. package/js/src/src/static_dependencies/noble-hashes/sha256.d.ts +34 -0
  899. package/js/src/src/static_dependencies/noble-hashes/sha256.js +129 -0
  900. package/js/src/src/static_dependencies/noble-hashes/sha3.d.ts +97 -0
  901. package/js/src/src/static_dependencies/noble-hashes/sha3.js +211 -0
  902. package/js/src/src/static_dependencies/noble-hashes/sha512.d.ts +66 -0
  903. package/js/src/src/static_dependencies/noble-hashes/sha512.js +236 -0
  904. package/js/src/src/static_dependencies/noble-hashes/utils.d.ts +77 -0
  905. package/js/src/src/static_dependencies/noble-hashes/utils.js +147 -0
  906. package/js/src/src/static_dependencies/proxies/agent-base/helpers.d.ts +14 -0
  907. package/js/src/src/static_dependencies/proxies/agent-base/helpers.js +42 -0
  908. package/js/src/src/static_dependencies/proxies/agent-base/index.d.ts +33 -0
  909. package/js/src/src/static_dependencies/proxies/agent-base/index.js +82 -0
  910. package/js/src/src/static_dependencies/proxies/http-proxy-agent/index.d.ts +40 -0
  911. package/js/src/src/static_dependencies/proxies/http-proxy-agent/index.js +119 -0
  912. package/js/src/src/static_dependencies/proxies/https-proxy-agent/index.d.ts +45 -0
  913. package/js/src/src/static_dependencies/proxies/https-proxy-agent/index.js +150 -0
  914. package/js/src/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.d.ts +15 -0
  915. package/js/src/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +95 -0
  916. package/js/src/src/static_dependencies/qs/formats.cjs +22 -0
  917. package/js/src/src/static_dependencies/qs/formats.d.cts +14 -0
  918. package/js/src/src/static_dependencies/qs/index.cjs +15 -0
  919. package/js/src/src/static_dependencies/qs/index.d.cts +10 -0
  920. package/js/src/src/static_dependencies/qs/parse.cjs +208 -0
  921. package/js/src/src/static_dependencies/qs/parse.d.cts +8 -0
  922. package/js/src/src/static_dependencies/qs/stringify.cjs +192 -0
  923. package/js/src/src/static_dependencies/qs/stringify.d.cts +8 -0
  924. package/js/src/src/static_dependencies/qs/utils.cjs +202 -0
  925. package/js/src/src/static_dependencies/qs/utils.d.cts +15 -0
  926. package/js/src/src/static_dependencies/scure-base/index.d.ts +92 -0
  927. package/js/src/src/static_dependencies/scure-base/index.js +420 -0
  928. package/js/src/src/static_dependencies/scure-starknet/index.d.ts +79 -0
  929. package/js/src/src/static_dependencies/scure-starknet/index.js +323 -0
  930. package/js/src/src/static_dependencies/starknet/constants.d.ts +61 -0
  931. package/js/src/src/static_dependencies/starknet/constants.js +67 -0
  932. package/js/src/src/static_dependencies/starknet/index.d.ts +3 -0
  933. package/js/src/src/static_dependencies/starknet/index.js +9 -0
  934. package/js/src/src/static_dependencies/starknet/types/cairoEnum.d.ts +2 -0
  935. package/js/src/src/static_dependencies/starknet/types/cairoEnum.js +7 -0
  936. package/js/src/src/static_dependencies/starknet/types/calldata.d.ts +19 -0
  937. package/js/src/src/static_dependencies/starknet/types/calldata.js +28 -0
  938. package/js/src/src/static_dependencies/starknet/types/index.d.ts +13 -0
  939. package/js/src/src/static_dependencies/starknet/types/index.js +16 -0
  940. package/js/src/src/static_dependencies/starknet/types/lib/contract/abi.d.ts +71 -0
  941. package/js/src/src/static_dependencies/starknet/types/lib/contract/abi.js +13 -0
  942. package/js/src/src/static_dependencies/starknet/types/lib/contract/index.d.ts +24 -0
  943. package/js/src/src/static_dependencies/starknet/types/lib/contract/index.js +16 -0
  944. package/js/src/src/static_dependencies/starknet/types/lib/contract/legacy.d.ts +33 -0
  945. package/js/src/src/static_dependencies/starknet/types/lib/contract/legacy.js +7 -0
  946. package/js/src/src/static_dependencies/starknet/types/lib/contract/sierra.d.ts +52 -0
  947. package/js/src/src/static_dependencies/starknet/types/lib/contract/sierra.js +7 -0
  948. package/js/src/src/static_dependencies/starknet/types/lib/index.d.ts +248 -0
  949. package/js/src/src/static_dependencies/starknet/types/lib/index.js +52 -0
  950. package/js/src/src/static_dependencies/starknet/types/typedData.d.ts +44 -0
  951. package/js/src/src/static_dependencies/starknet/types/typedData.js +19 -0
  952. package/js/src/src/static_dependencies/starknet/utils/assert.d.ts +7 -0
  953. package/js/src/src/static_dependencies/starknet/utils/assert.js +17 -0
  954. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/felt.d.ts +6 -0
  955. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +43 -0
  956. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.d.ts +72 -0
  957. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +117 -0
  958. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.d.ts +76 -0
  959. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +136 -0
  960. package/js/src/src/static_dependencies/starknet/utils/calldata/byteArray.d.ts +32 -0
  961. package/js/src/src/static_dependencies/starknet/utils/calldata/byteArray.js +59 -0
  962. package/js/src/src/static_dependencies/starknet/utils/calldata/cairo.d.ts +183 -0
  963. package/js/src/src/static_dependencies/starknet/utils/calldata/cairo.js +229 -0
  964. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.d.ts +38 -0
  965. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +57 -0
  966. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.d.ts +35 -0
  967. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +64 -0
  968. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.d.ts +34 -0
  969. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +63 -0
  970. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/index.d.ts +3 -0
  971. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/index.js +9 -0
  972. package/js/src/src/static_dependencies/starknet/utils/calldata/formatter.d.ts +9 -0
  973. package/js/src/src/static_dependencies/starknet/utils/calldata/formatter.js +67 -0
  974. package/js/src/src/static_dependencies/starknet/utils/calldata/index.d.ts +89 -0
  975. package/js/src/src/static_dependencies/starknet/utils/calldata/index.js +280 -0
  976. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/index.d.ts +5 -0
  977. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/index.js +30 -0
  978. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/interface.d.ts +20 -0
  979. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/interface.js +8 -0
  980. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.d.ts +24 -0
  981. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +36 -0
  982. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.d.ts +23 -0
  983. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +40 -0
  984. package/js/src/src/static_dependencies/starknet/utils/calldata/propertyOrder.d.ts +2 -0
  985. package/js/src/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +155 -0
  986. package/js/src/src/static_dependencies/starknet/utils/calldata/requestParser.d.ts +11 -0
  987. package/js/src/src/static_dependencies/starknet/utils/calldata/requestParser.js +248 -0
  988. package/js/src/src/static_dependencies/starknet/utils/calldata/responseParser.d.ts +11 -0
  989. package/js/src/src/static_dependencies/starknet/utils/calldata/responseParser.js +214 -0
  990. package/js/src/src/static_dependencies/starknet/utils/calldata/tuple.d.ts +6 -0
  991. package/js/src/src/static_dependencies/starknet/utils/calldata/tuple.js +113 -0
  992. package/js/src/src/static_dependencies/starknet/utils/calldata/validate.d.ts +6 -0
  993. package/js/src/src/static_dependencies/starknet/utils/calldata/validate.js +208 -0
  994. package/js/src/src/static_dependencies/starknet/utils/encode.d.ts +207 -0
  995. package/js/src/src/static_dependencies/starknet/utils/encode.js +282 -0
  996. package/js/src/src/static_dependencies/starknet/utils/hash/classHash.d.ts +57 -0
  997. package/js/src/src/static_dependencies/starknet/utils/hash/classHash.js +223 -0
  998. package/js/src/src/static_dependencies/starknet/utils/hash/index.d.ts +6 -0
  999. package/js/src/src/static_dependencies/starknet/utils/hash/index.js +13 -0
  1000. package/js/src/src/static_dependencies/starknet/utils/merkle.d.ts +35 -0
  1001. package/js/src/src/static_dependencies/starknet/utils/merkle.js +84 -0
  1002. package/js/src/src/static_dependencies/starknet/utils/num.d.ts +182 -0
  1003. package/js/src/src/static_dependencies/starknet/utils/num.js +244 -0
  1004. package/js/src/src/static_dependencies/starknet/utils/selector.d.ts +48 -0
  1005. package/js/src/src/static_dependencies/starknet/utils/selector.js +85 -0
  1006. package/js/src/src/static_dependencies/starknet/utils/shortString.d.ts +57 -0
  1007. package/js/src/src/static_dependencies/starknet/utils/shortString.js +96 -0
  1008. package/js/src/src/static_dependencies/starknet/utils/typedData.d.ts +54 -0
  1009. package/js/src/src/static_dependencies/starknet/utils/typedData.js +321 -0
  1010. package/js/src/src/static_dependencies/watchable/src/types.d.ts +28 -0
  1011. package/js/src/src/static_dependencies/watchable/src/types.js +8 -0
  1012. package/js/src/src/static_dependencies/watchable/src/unpromise.d.ts +120 -0
  1013. package/js/src/src/static_dependencies/watchable/src/unpromise.js +297 -0
  1014. package/js/src/src/static_dependencies/zklink/zklink-sdk-web.d.ts +1279 -0
  1015. package/js/src/src/static_dependencies/zklink/zklink-sdk-web.js +4282 -0
  1016. package/js/src/src/tabdeal.d.ts +23 -0
  1017. package/js/src/src/tabdeal.js +387 -0
  1018. package/js/src/src/tehran_exchange.d.ts +21 -0
  1019. package/js/src/src/tehran_exchange.js +333 -0
  1020. package/js/src/src/tetherland.d.ts +21 -0
  1021. package/js/src/src/tetherland.js +367 -0
  1022. package/js/src/src/timex.d.ts +247 -0
  1023. package/js/src/src/timex.js +1792 -0
  1024. package/js/src/src/tokocrypto.d.ts +261 -0
  1025. package/js/src/src/tokocrypto.js +2641 -0
  1026. package/js/src/src/toobit.d.ts +22 -0
  1027. package/js/src/src/toobit.js +445 -0
  1028. package/js/src/src/tradeogre.d.ts +149 -0
  1029. package/js/src/src/tradeogre.js +878 -0
  1030. package/js/src/src/twox.d.ts +21 -0
  1031. package/js/src/src/twox.js +371 -0
  1032. package/js/src/src/ubitex.d.ts +23 -0
  1033. package/js/src/src/ubitex.js +433 -0
  1034. package/js/src/src/upbit.d.ts +377 -0
  1035. package/js/src/src/upbit.js +2340 -0
  1036. package/js/src/src/vertex.d.ts +346 -0
  1037. package/js/src/src/vertex.js +3146 -0
  1038. package/js/src/src/wallex.d.ts +23 -0
  1039. package/js/src/src/wallex.js +467 -0
  1040. package/js/src/src/wavesexchange.d.ts +244 -0
  1041. package/js/src/src/wavesexchange.js +2747 -0
  1042. package/js/src/src/whitebit.d.ts +571 -0
  1043. package/js/src/src/whitebit.js +3437 -0
  1044. package/js/src/src/woo.d.ts +727 -0
  1045. package/js/src/src/woo.js +4183 -0
  1046. package/js/src/src/woofipro.d.ts +497 -0
  1047. package/js/src/src/woofipro.js +2941 -0
  1048. package/js/src/src/xt.d.ts +568 -0
  1049. package/js/src/src/xt.js +5184 -0
  1050. package/js/src/src/yobit.d.ts +197 -0
  1051. package/js/src/src/yobit.js +1453 -0
  1052. package/js/src/src/zaif.d.ts +136 -0
  1053. package/js/src/src/zaif.js +821 -0
  1054. package/js/src/src/zonda.d.ts +214 -0
  1055. package/js/src/src/zonda.js +1984 -0
  1056. package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +1 -1
  1057. package/js/src/static_dependencies/starknet/utils/calldata/parser/index.d.ts +1 -1
  1058. package/js/test.js +9 -17
  1059. package/package.json +1 -1
@@ -0,0 +1,1400 @@
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 hitbtcRest from '../hitbtc.js';
9
+ import { ArrayCache, ArrayCacheBySymbolById, ArrayCacheByTimestamp } from '../base/ws/Cache.js';
10
+ import { sha256 } from '../static_dependencies/noble-hashes/sha256.js';
11
+ import { AuthenticationError, ExchangeError, NotSupported } from '../base/errors.js';
12
+ // ---------------------------------------------------------------------------
13
+ export default class hitbtc extends hitbtcRest {
14
+ describe() {
15
+ return this.deepExtend(super.describe(), {
16
+ 'has': {
17
+ 'ws': true,
18
+ 'watchTicker': true,
19
+ 'watchTickers': true,
20
+ 'watchBidsAsks': true,
21
+ 'watchTrades': true,
22
+ 'watchTradesForSymbols': false,
23
+ 'watchOrderBook': true,
24
+ 'watchBalance': true,
25
+ 'watchOrders': true,
26
+ 'watchOHLCV': true,
27
+ 'watchMyTrades': false,
28
+ 'createOrderWs': true,
29
+ 'cancelOrderWs': true,
30
+ 'fetchOpenOrdersWs': true,
31
+ 'cancelAllOrdersWs': true,
32
+ },
33
+ 'urls': {
34
+ 'api': {
35
+ 'ws': {
36
+ 'public': 'wss://api.hitbtc.com/api/3/ws/public',
37
+ 'private': 'wss://api.hitbtc.com/api/3/ws/trading',
38
+ },
39
+ },
40
+ 'test': {
41
+ 'ws': {
42
+ 'public': 'wss://api.demo.hitbtc.com/api/3/ws/public',
43
+ 'private': 'wss://api.demo.hitbtc.com/api/3/ws/trading',
44
+ },
45
+ },
46
+ },
47
+ 'options': {
48
+ 'tradesLimit': 1000,
49
+ 'watchTicker': {
50
+ 'method': 'ticker/{speed}', // 'ticker/{speed}' or 'ticker/price/{speed}'
51
+ },
52
+ 'watchTickers': {
53
+ 'method': 'ticker/{speed}', // 'ticker/{speed}','ticker/price/{speed}', 'ticker/{speed}/batch', or 'ticker/{speed}/price/batch''
54
+ },
55
+ 'watchBidsAsks': {
56
+ 'method': 'orderbook/top/{speed}', // 'orderbook/top/{speed}', 'orderbook/top/{speed}/batch'
57
+ },
58
+ 'watchOrderBook': {
59
+ 'method': 'orderbook/full', // 'orderbook/full', 'orderbook/{depth}/{speed}', 'orderbook/{depth}/{speed}/batch'
60
+ },
61
+ },
62
+ 'timeframes': {
63
+ '1m': 'M1',
64
+ '3m': 'M3',
65
+ '5m': 'M5',
66
+ '15m': 'M15',
67
+ '30m': 'M30',
68
+ '1h': 'H1',
69
+ '4h': 'H4',
70
+ '1d': 'D1',
71
+ '1w': 'D7',
72
+ '1M': '1M',
73
+ },
74
+ 'streaming': {
75
+ 'keepAlive': 4000,
76
+ },
77
+ });
78
+ }
79
+ /**
80
+ * @ignore
81
+ * @method
82
+ * @description authenticates the user to access private web socket channels
83
+ * @see https://api.hitbtc.com/#socket-authentication
84
+ * @returns {object} response from exchange
85
+ */
86
+ async authenticate() {
87
+ this.checkRequiredCredentials();
88
+ const url = this.urls['api']['ws']['private'];
89
+ const messageHash = 'authenticated';
90
+ const client = this.client(url);
91
+ const future = client.future(messageHash);
92
+ const authenticated = this.safeValue(client.subscriptions, messageHash);
93
+ if (authenticated === undefined) {
94
+ const timestamp = this.milliseconds();
95
+ const signature = this.hmac(this.encode(this.numberToString(timestamp)), this.encode(this.secret), sha256, 'hex');
96
+ const request = {
97
+ 'method': 'login',
98
+ 'params': {
99
+ 'type': 'HS256',
100
+ 'api_key': this.apiKey,
101
+ 'timestamp': timestamp,
102
+ 'signature': signature,
103
+ },
104
+ };
105
+ this.watch(url, messageHash, request, messageHash);
106
+ //
107
+ // {
108
+ // "jsonrpc": "2.0",
109
+ // "result": true
110
+ // }
111
+ //
112
+ // # Failure to return results
113
+ //
114
+ // {
115
+ // "jsonrpc": "2.0",
116
+ // "error": {
117
+ // "code": 1002,
118
+ // "message": "Authorization is required or has been failed",
119
+ // "description": "invalid signature format"
120
+ // }
121
+ // }
122
+ //
123
+ }
124
+ return await future;
125
+ }
126
+ /**
127
+ * @ignore
128
+ * @method
129
+ * @param {string} name websocket endpoint name
130
+ * @param {string} messageHashPrefix prefix for the message hash
131
+ * @param {string[]} [symbols] unified CCXT symbol(s)
132
+ * @param {object} [params] extra parameters specific to the hitbtc api
133
+ */
134
+ async subscribePublic(name, messageHashPrefix, symbols = undefined, params = {}) {
135
+ await this.loadMarkets();
136
+ symbols = this.marketSymbols(symbols);
137
+ const isBatch = name.indexOf('batch') >= 0;
138
+ const url = this.urls['api']['ws']['public'];
139
+ const messageHashes = [];
140
+ if (symbols !== undefined && !isBatch) {
141
+ for (let i = 0; i < symbols.length; i++) {
142
+ messageHashes.push(messageHashPrefix + '::' + symbols[i]);
143
+ }
144
+ }
145
+ else {
146
+ messageHashes.push(messageHashPrefix);
147
+ }
148
+ const subscribe = {
149
+ 'method': 'subscribe',
150
+ 'id': this.nonce(),
151
+ 'ch': name,
152
+ };
153
+ const request = this.extend(subscribe, params);
154
+ return await this.watchMultiple(url, messageHashes, request, messageHashes);
155
+ }
156
+ /**
157
+ * @ignore
158
+ * @method
159
+ * @param {string} name websocket endpoint name
160
+ * @param {string} [symbol] unified CCXT symbol
161
+ * @param {object} [params] extra parameters specific to the hitbtc api
162
+ */
163
+ async subscribePrivate(name, symbol = undefined, params = {}) {
164
+ await this.loadMarkets();
165
+ await this.authenticate();
166
+ const url = this.urls['api']['ws']['private'];
167
+ const splitName = name.split('_subscribe');
168
+ let messageHash = this.safeString(splitName, 0);
169
+ if (symbol !== undefined) {
170
+ messageHash = messageHash + '::' + symbol;
171
+ }
172
+ const subscribe = {
173
+ 'method': name,
174
+ 'params': params,
175
+ 'id': this.nonce(),
176
+ };
177
+ return await this.watch(url, messageHash, subscribe, messageHash);
178
+ }
179
+ /**
180
+ * @ignore
181
+ * @method
182
+ * @param {string} name websocket endpoint name
183
+ * @param {object} [params] extra parameters specific to the hitbtc api
184
+ */
185
+ async tradeRequest(name, params = {}) {
186
+ await this.loadMarkets();
187
+ await this.authenticate();
188
+ const url = this.urls['api']['ws']['private'];
189
+ const messageHash = this.nonce().toString();
190
+ const subscribe = {
191
+ 'method': name,
192
+ 'params': params,
193
+ 'id': messageHash,
194
+ };
195
+ return await this.watch(url, messageHash, subscribe, messageHash);
196
+ }
197
+ /**
198
+ * @method
199
+ * @name hitbtc#watchOrderBook
200
+ * @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
201
+ * @see https://api.hitbtc.com/#subscribe-to-full-order-book
202
+ * @see https://api.hitbtc.com/#subscribe-to-partial-order-book
203
+ * @see https://api.hitbtc.com/#subscribe-to-partial-order-book-in-batches
204
+ * @see https://api.hitbtc.com/#subscribe-to-top-of-book
205
+ * @see https://api.hitbtc.com/#subscribe-to-top-of-book-in-batches
206
+ * @param {string} symbol unified symbol of the market to fetch the order book for
207
+ * @param {int} [limit] the maximum amount of order book entries to return
208
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
209
+ * @param {string} [params.method] 'orderbook/full', 'orderbook/{depth}/{speed}', 'orderbook/{depth}/{speed}/batch'
210
+ * @param {int} [params.depth] 5 , 10, or 20 (default)
211
+ * @param {int} [params.speed] 100 (default), 500, or 1000
212
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
213
+ */
214
+ async watchOrderBook(symbol, limit = undefined, params = {}) {
215
+ const options = this.safeValue(this.options, 'watchOrderBook');
216
+ const defaultMethod = this.safeString(options, 'method', 'orderbook/full');
217
+ let name = this.safeString2(params, 'method', 'defaultMethod', defaultMethod);
218
+ const depth = this.safeString(params, 'depth', '20');
219
+ const speed = this.safeString(params, 'depth', '100');
220
+ if (name === 'orderbook/{depth}/{speed}') {
221
+ name = 'orderbook/D' + depth + '/' + speed + 'ms';
222
+ }
223
+ else if (name === 'orderbook/{depth}/{speed}/batch') {
224
+ name = 'orderbook/D' + depth + '/' + speed + 'ms/batch';
225
+ }
226
+ const market = this.market(symbol);
227
+ const request = {
228
+ 'params': {
229
+ 'symbols': [market['id']],
230
+ },
231
+ };
232
+ const orderbook = await this.subscribePublic(name, 'orderbooks', [symbol], this.deepExtend(request, params));
233
+ return orderbook.limit();
234
+ }
235
+ handleOrderBook(client, message) {
236
+ //
237
+ // {
238
+ // "ch": "orderbook/full", // Channel
239
+ // "snapshot": {
240
+ // "ETHBTC": {
241
+ // "t": 1626866578796, // Timestamp in milliseconds
242
+ // "s": 27617207, // Sequence number
243
+ // "a": [ // Asks
244
+ // ["0.060506", "0"],
245
+ // ["0.060549", "12.6431"],
246
+ // ["0.060570", "0"],
247
+ // ["0.060612", "0"]
248
+ // ],
249
+ // "b": [ // Bids
250
+ // ["0.060439", "4.4095"],
251
+ // ["0.060414", "0"],
252
+ // ["0.060407", "7.3349"],
253
+ // ["0.060390", "0"]
254
+ // ]
255
+ // }
256
+ // }
257
+ // }
258
+ //
259
+ const snapshot = this.safeDict(message, 'snapshot');
260
+ const update = this.safeDict(message, 'update');
261
+ const data = snapshot ? snapshot : update;
262
+ const type = snapshot ? 'snapshot' : 'update';
263
+ const marketIds = Object.keys(data);
264
+ for (let i = 0; i < marketIds.length; i++) {
265
+ const marketId = marketIds[i];
266
+ const market = this.safeMarket(marketId);
267
+ const symbol = market['symbol'];
268
+ const item = data[marketId];
269
+ const messageHash = 'orderbooks::' + symbol;
270
+ if (!(symbol in this.orderbooks)) {
271
+ const subscription = this.safeDict(client.subscriptions, messageHash, {});
272
+ const limit = this.safeInteger(subscription, 'limit');
273
+ this.orderbooks[symbol] = this.orderBook({}, limit);
274
+ }
275
+ const orderbook = this.orderbooks[symbol];
276
+ const timestamp = this.safeInteger(item, 't');
277
+ const nonce = this.safeInteger(item, 's');
278
+ if (type === 'snapshot') {
279
+ const parsedSnapshot = this.parseOrderBook(item, symbol, timestamp, 'b', 'a');
280
+ orderbook.reset(parsedSnapshot);
281
+ }
282
+ else {
283
+ const asks = this.safeList(item, 'a', []);
284
+ const bids = this.safeList(item, 'b', []);
285
+ this.handleDeltas(orderbook['asks'], asks);
286
+ this.handleDeltas(orderbook['bids'], bids);
287
+ }
288
+ orderbook['timestamp'] = timestamp;
289
+ orderbook['datetime'] = this.iso8601(timestamp);
290
+ orderbook['nonce'] = nonce;
291
+ orderbook['symbol'] = symbol;
292
+ this.orderbooks[symbol] = orderbook;
293
+ client.resolve(orderbook, messageHash);
294
+ }
295
+ }
296
+ handleDelta(bookside, delta) {
297
+ const price = this.safeNumber(delta, 0);
298
+ const amount = this.safeNumber(delta, 1);
299
+ bookside.store(price, amount);
300
+ }
301
+ handleDeltas(bookside, deltas) {
302
+ for (let i = 0; i < deltas.length; i++) {
303
+ this.handleDelta(bookside, deltas[i]);
304
+ }
305
+ }
306
+ /**
307
+ * @method
308
+ * @name hitbtc#watchTicker
309
+ * @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
310
+ * @see https://api.hitbtc.com/#subscribe-to-ticker
311
+ * @see https://api.hitbtc.com/#subscribe-to-ticker-in-batches
312
+ * @see https://api.hitbtc.com/#subscribe-to-mini-ticker
313
+ * @see https://api.hitbtc.com/#subscribe-to-mini-ticker-in-batches
314
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
315
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
316
+ * @param {string} [params.method] 'ticker/{speed}' (default), or 'ticker/price/{speed}'
317
+ * @param {string} [params.speed] '1s' (default), or '3s'
318
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
319
+ */
320
+ async watchTicker(symbol, params = {}) {
321
+ const ticker = await this.watchTickers([symbol], params);
322
+ return this.safeValue(ticker, symbol);
323
+ }
324
+ /**
325
+ * @method
326
+ * @name hitbtc#watchTicker
327
+ * @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
328
+ * @param {string[]} [symbols]
329
+ * @param {object} params extra parameters specific to the exchange API endpoint
330
+ * @param {string} params.method 'ticker/{speed}' ,'ticker/price/{speed}', 'ticker/{speed}/batch' (default), or 'ticker/{speed}/price/batch''
331
+ * @param {string} params.speed '1s' (default), or '3s'
332
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/en/latest/manual.html#ticker-structure}
333
+ */
334
+ async watchTickers(symbols = undefined, params = {}) {
335
+ await this.loadMarkets();
336
+ symbols = this.marketSymbols(symbols);
337
+ const options = this.safeValue(this.options, 'watchTicker');
338
+ const defaultMethod = this.safeString(options, 'method', 'ticker/{speed}/batch');
339
+ const method = this.safeString2(params, 'method', 'defaultMethod', defaultMethod);
340
+ const speed = this.safeString(params, 'speed', '1s');
341
+ const name = this.implodeParams(method, { 'speed': speed });
342
+ params = this.omit(params, ['method', 'speed']);
343
+ const marketIds = [];
344
+ if (symbols === undefined) {
345
+ marketIds.push('*');
346
+ }
347
+ else {
348
+ for (let i = 0; i < symbols.length; i++) {
349
+ const marketId = this.marketId(symbols[i]);
350
+ marketIds.push(marketId);
351
+ }
352
+ }
353
+ const request = {
354
+ 'params': {
355
+ 'symbols': marketIds,
356
+ },
357
+ };
358
+ const newTickers = await this.subscribePublic(name, 'tickers', symbols, this.deepExtend(request, params));
359
+ if (this.newUpdates) {
360
+ if (!Array.isArray(newTickers)) {
361
+ const tickers = {};
362
+ tickers[newTickers['symbol']] = newTickers;
363
+ return tickers;
364
+ }
365
+ }
366
+ return this.filterByArray(newTickers, 'symbol', symbols);
367
+ }
368
+ handleTicker(client, message) {
369
+ //
370
+ // {
371
+ // "ch": "ticker/1s",
372
+ // "data": {
373
+ // "ETHBTC": {
374
+ // "t": 1614815872000, // Timestamp in milliseconds
375
+ // "a": "0.031175", // Best ask
376
+ // "A": "0.03329", // Best ask quantity
377
+ // "b": "0.031148", // Best bid
378
+ // "B": "0.10565", // Best bid quantity
379
+ // "c": "0.031210", // Last price
380
+ // "o": "0.030781", // Open price
381
+ // "h": "0.031788", // High price
382
+ // "l": "0.030733", // Low price
383
+ // "v": "62.587", // Base asset volume
384
+ // "q": "1.951420577", // Quote asset volume
385
+ // "p": "0.000429", // Price change
386
+ // "P": "1.39", // Price change percent
387
+ // "L": 1182694927 // Last trade identifier
388
+ // }
389
+ // }
390
+ // }
391
+ //
392
+ // {
393
+ // "ch": "ticker/price/1s",
394
+ // "data": {
395
+ // "BTCUSDT": {
396
+ // "t": 1614815872030,
397
+ // "o": "32636.79",
398
+ // "c": "32085.51",
399
+ // "h": "33379.92",
400
+ // "l": "30683.28",
401
+ // "v": "11.90667",
402
+ // "q": "384081.1955629"
403
+ // }
404
+ // }
405
+ // }
406
+ //
407
+ const data = this.safeValue(message, 'data', {});
408
+ const marketIds = Object.keys(data);
409
+ const result = [];
410
+ const topic = 'tickers';
411
+ for (let i = 0; i < marketIds.length; i++) {
412
+ const marketId = marketIds[i];
413
+ const market = this.safeMarket(marketId);
414
+ const symbol = market['symbol'];
415
+ const ticker = this.parseWsTicker(data[marketId], market);
416
+ this.tickers[symbol] = ticker;
417
+ result.push(ticker);
418
+ const messageHash = topic + '::' + symbol;
419
+ client.resolve(ticker, messageHash);
420
+ }
421
+ client.resolve(result, topic);
422
+ }
423
+ parseWsTicker(ticker, market = undefined) {
424
+ //
425
+ // {
426
+ // "t": 1614815872000, // Timestamp in milliseconds
427
+ // "a": "0.031175", // Best ask
428
+ // "A": "0.03329", // Best ask quantity
429
+ // "b": "0.031148", // Best bid
430
+ // "B": "0.10565", // Best bid quantity
431
+ // "c": "0.031210", // Last price
432
+ // "o": "0.030781", // Open price
433
+ // "h": "0.031788", // High price
434
+ // "l": "0.030733", // Low price
435
+ // "v": "62.587", // Base asset volume
436
+ // "q": "1.951420577", // Quote asset volume
437
+ // "p": "0.000429", // Price change
438
+ // "P": "1.39", // Price change percent
439
+ // "L": 1182694927 // Last trade identifier
440
+ // }
441
+ //
442
+ // {
443
+ // "t": 1614815872030,
444
+ // "o": "32636.79",
445
+ // "c": "32085.51",
446
+ // "h": "33379.92",
447
+ // "l": "30683.28",
448
+ // "v": "11.90667",
449
+ // "q": "384081.1955629"
450
+ // }
451
+ //
452
+ const timestamp = this.safeInteger(ticker, 't');
453
+ const symbol = this.safeSymbol(undefined, market);
454
+ const last = this.safeString(ticker, 'c');
455
+ return this.safeTicker({
456
+ 'symbol': symbol,
457
+ 'timestamp': timestamp,
458
+ 'datetime': this.iso8601(timestamp),
459
+ 'high': this.safeString(ticker, 'h'),
460
+ 'low': this.safeString(ticker, 'l'),
461
+ 'bid': this.safeString(ticker, 'b'),
462
+ 'bidVolume': this.safeString(ticker, 'B'),
463
+ 'ask': this.safeString(ticker, 'a'),
464
+ 'askVolume': this.safeString(ticker, 'A'),
465
+ 'vwap': undefined,
466
+ 'open': this.safeString(ticker, 'o'),
467
+ 'close': last,
468
+ 'last': last,
469
+ 'previousClose': undefined,
470
+ 'change': undefined,
471
+ 'percentage': undefined,
472
+ 'average': undefined,
473
+ 'baseVolume': this.safeString(ticker, 'v'),
474
+ 'quoteVolume': this.safeString(ticker, 'q'),
475
+ 'info': ticker,
476
+ }, market);
477
+ }
478
+ /**
479
+ * @method
480
+ * @name hitbtc#watchBidsAsks
481
+ * @description watches best bid & ask for symbols
482
+ * @see https://api.hitbtc.com/#subscribe-to-top-of-book
483
+ * @param {string[]} symbols unified symbol of the market to fetch the ticker for
484
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
485
+ * @param {string} [params.method] 'orderbook/top/{speed}' or 'orderbook/top/{speed}/batch (default)'
486
+ * @param {string} [params.speed] '100ms' (default) or '500ms' or '1000ms'
487
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
488
+ */
489
+ async watchBidsAsks(symbols = undefined, params = {}) {
490
+ await this.loadMarkets();
491
+ symbols = this.marketSymbols(symbols, undefined, false);
492
+ const options = this.safeValue(this.options, 'watchBidsAsks');
493
+ const defaultMethod = this.safeString(options, 'method', 'orderbook/top/{speed}/batch');
494
+ const method = this.safeString2(params, 'method', 'defaultMethod', defaultMethod);
495
+ const speed = this.safeString(params, 'speed', '100ms');
496
+ const name = this.implodeParams(method, { 'speed': speed });
497
+ params = this.omit(params, ['method', 'speed']);
498
+ const marketIds = this.marketIds(symbols);
499
+ const request = {
500
+ 'params': {
501
+ 'symbols': marketIds,
502
+ },
503
+ };
504
+ const newTickers = await this.subscribePublic(name, 'bidask', symbols, this.deepExtend(request, params));
505
+ if (this.newUpdates) {
506
+ if (!Array.isArray(newTickers)) {
507
+ const tickers = {};
508
+ tickers[newTickers['symbol']] = newTickers;
509
+ return tickers;
510
+ }
511
+ }
512
+ return this.filterByArray(newTickers, 'symbol', symbols);
513
+ }
514
+ handleBidAsk(client, message) {
515
+ //
516
+ // {
517
+ // "ch": "orderbook/top/100ms", // or 'orderbook/top/100ms/batch'
518
+ // "data": {
519
+ // "BTCUSDT": {
520
+ // "t": 1727276919771,
521
+ // "a": "63931.45",
522
+ // "A": "0.02879",
523
+ // "b": "63926.97",
524
+ // "B": "0.00100"
525
+ // }
526
+ // }
527
+ // }
528
+ //
529
+ const data = this.safeDict(message, 'data', {});
530
+ const marketIds = Object.keys(data);
531
+ const result = [];
532
+ const topic = 'bidask';
533
+ for (let i = 0; i < marketIds.length; i++) {
534
+ const marketId = marketIds[i];
535
+ const market = this.safeMarket(marketId);
536
+ const symbol = market['symbol'];
537
+ const ticker = this.parseWsBidAsk(data[marketId], market);
538
+ this.bidsasks[symbol] = ticker;
539
+ result.push(ticker);
540
+ const messageHash = topic + '::' + symbol;
541
+ client.resolve(ticker, messageHash);
542
+ }
543
+ client.resolve(result, topic);
544
+ }
545
+ parseWsBidAsk(ticker, market = undefined) {
546
+ const timestamp = this.safeInteger(ticker, 't');
547
+ return this.safeTicker({
548
+ 'symbol': market['symbol'],
549
+ 'timestamp': timestamp,
550
+ 'datetime': this.iso8601(timestamp),
551
+ 'ask': this.safeString(ticker, 'a'),
552
+ 'askVolume': this.safeString(ticker, 'A'),
553
+ 'bid': this.safeString(ticker, 'b'),
554
+ 'bidVolume': this.safeString(ticker, 'B'),
555
+ 'info': ticker,
556
+ }, market);
557
+ }
558
+ /**
559
+ * @method
560
+ * @name hitbtc#watchTrades
561
+ * @description get the list of most recent trades for a particular symbol
562
+ * @see https://api.hitbtc.com/#subscribe-to-trades
563
+ * @param {string} symbol unified symbol of the market to fetch trades for
564
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
565
+ * @param {int} [limit] the maximum amount of trades to fetch
566
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
567
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
568
+ */
569
+ async watchTrades(symbol, since = undefined, limit = undefined, params = {}) {
570
+ await this.loadMarkets();
571
+ const market = this.market(symbol);
572
+ const request = {
573
+ 'params': {
574
+ 'symbols': [market['id']],
575
+ },
576
+ };
577
+ if (limit !== undefined) {
578
+ request['limit'] = limit;
579
+ }
580
+ const name = 'trades';
581
+ const trades = await this.subscribePublic(name, 'trades', [symbol], this.deepExtend(request, params));
582
+ if (this.newUpdates) {
583
+ limit = trades.getLimit(symbol, limit);
584
+ }
585
+ return this.filterBySinceLimit(trades, since, limit, 'timestamp');
586
+ }
587
+ handleTrades(client, message) {
588
+ //
589
+ // {
590
+ // "result": {
591
+ // "ch": "trades", // Channel
592
+ // "subscriptions": ["ETHBTC", "BTCUSDT"]
593
+ // },
594
+ // "id": 123
595
+ // }
596
+ //
597
+ // Notification snapshot
598
+ //
599
+ // {
600
+ // "ch": "trades", // Channel
601
+ // "snapshot": {
602
+ // "BTCUSDT": [{
603
+ // "t": 1626861109494, // Timestamp in milliseconds
604
+ // "i": 1555634969, // Trade identifier
605
+ // "p": "30881.96", // Price
606
+ // "q": "12.66828", // Quantity
607
+ // "s": "buy" // Side
608
+ // }]
609
+ // }
610
+ // }
611
+ //
612
+ // Notification update
613
+ //
614
+ // {
615
+ // "ch": "trades",
616
+ // "update": {
617
+ // "BTCUSDT": [{
618
+ // "t": 1626861123552,
619
+ // "i": 1555634969,
620
+ // "p": "30877.68",
621
+ // "q": "0.00006",
622
+ // "s": "sell"
623
+ // }]
624
+ // }
625
+ // }
626
+ //
627
+ const data = this.safeValue2(message, 'snapshot', 'update', {});
628
+ const marketIds = Object.keys(data);
629
+ for (let i = 0; i < marketIds.length; i++) {
630
+ const marketId = marketIds[i];
631
+ const market = this.safeMarket(marketId);
632
+ const tradesLimit = this.safeInteger(this.options, 'tradesLimit', 1000);
633
+ const symbol = market['symbol'];
634
+ let stored = this.safeValue(this.trades, symbol);
635
+ if (stored === undefined) {
636
+ stored = new ArrayCache(tradesLimit);
637
+ this.trades[symbol] = stored;
638
+ }
639
+ const trades = this.parseWsTrades(data[marketId], market);
640
+ for (let j = 0; j < trades.length; j++) {
641
+ stored.append(trades[j]);
642
+ }
643
+ const messageHash = 'trades::' + symbol;
644
+ client.resolve(stored, messageHash);
645
+ }
646
+ return message;
647
+ }
648
+ parseWsTrades(trades, market = undefined, since = undefined, limit = undefined, params = {}) {
649
+ trades = this.toArray(trades);
650
+ let result = [];
651
+ for (let i = 0; i < trades.length; i++) {
652
+ const trade = this.extend(this.parseWsTrade(trades[i], market), params);
653
+ result.push(trade);
654
+ }
655
+ result = this.sortBy2(result, 'timestamp', 'id');
656
+ const symbol = this.safeString(market, 'symbol');
657
+ return this.filterBySymbolSinceLimit(result, symbol, since, limit);
658
+ }
659
+ parseWsTrade(trade, market = undefined) {
660
+ //
661
+ // {
662
+ // "t": 1626861123552, // Timestamp in milliseconds
663
+ // "i": 1555634969, // Trade identifier
664
+ // "p": "30877.68", // Price
665
+ // "q": "0.00006", // Quantity
666
+ // "s": "sell" // Side
667
+ // }
668
+ //
669
+ const timestamp = this.safeInteger(trade, 't');
670
+ return this.safeTrade({
671
+ 'info': trade,
672
+ 'id': this.safeString(trade, 'i'),
673
+ 'order': undefined,
674
+ 'timestamp': timestamp,
675
+ 'datetime': this.iso8601(timestamp),
676
+ 'symbol': this.safeString(market, 'symbol'),
677
+ 'type': undefined,
678
+ 'side': this.safeString(trade, 's'),
679
+ 'takerOrMaker': undefined,
680
+ 'price': this.safeString(trade, 'p'),
681
+ 'amount': this.safeString(trade, 'q'),
682
+ 'cost': undefined,
683
+ 'fee': undefined,
684
+ }, market);
685
+ }
686
+ /**
687
+ * @method
688
+ * @name hitbtc#watchOHLCV
689
+ * @description watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
690
+ * @see https://api.hitbtc.com/#subscribe-to-candles
691
+ * @param {string} symbol unified symbol of the market to fetch OHLCV data for
692
+ * @param {string} [timeframe] the length of time each candle represents
693
+ * @param {int} [since] not used by hitbtc watchOHLCV
694
+ * @param {int} [limit] 0 – 1000, default value = 0 (no history returned)
695
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
696
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
697
+ */
698
+ async watchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
699
+ const period = this.safeString(this.timeframes, timeframe, timeframe);
700
+ const name = 'candles/' + period;
701
+ const market = this.market(symbol);
702
+ const request = {
703
+ 'params': {
704
+ 'symbols': [market['id']],
705
+ },
706
+ };
707
+ if (limit !== undefined) {
708
+ request['params']['limit'] = limit;
709
+ }
710
+ const ohlcv = await this.subscribePublic(name, 'candles', [symbol], this.deepExtend(request, params));
711
+ if (this.newUpdates) {
712
+ limit = ohlcv.getLimit(symbol, limit);
713
+ }
714
+ return this.filterBySinceLimit(ohlcv, since, limit, 0);
715
+ }
716
+ handleOHLCV(client, message) {
717
+ //
718
+ // {
719
+ // "ch": "candles/M1", // Channel
720
+ // "snapshot": {
721
+ // "BTCUSDT": [{
722
+ // "t": 1626860340000, // Message timestamp
723
+ // "o": "30881.95", // Open price
724
+ // "c": "30890.96", // Last price
725
+ // "h": "30900.8", // High price
726
+ // "l": "30861.27", // Low price
727
+ // "v": "1.27852", // Base asset volume
728
+ // "q": "39493.9021811" // Quote asset volume
729
+ // }
730
+ // ...
731
+ // ]
732
+ // }
733
+ // }
734
+ //
735
+ // {
736
+ // "ch": "candles/M1",
737
+ // "update": {
738
+ // "ETHBTC": [{
739
+ // "t": 1626860880000,
740
+ // "o": "0.060711",
741
+ // "c": "0.060749",
742
+ // "h": "0.060749",
743
+ // "l": "0.060711",
744
+ // "v": "12.2800",
745
+ // "q": "0.7455339675"
746
+ // }]
747
+ // }
748
+ // }
749
+ //
750
+ const data = this.safeValue2(message, 'snapshot', 'update', {});
751
+ const marketIds = Object.keys(data);
752
+ const channel = this.safeString(message, 'ch');
753
+ const splitChannel = channel.split('/');
754
+ const period = this.safeString(splitChannel, 1);
755
+ const timeframe = this.findTimeframe(period);
756
+ for (let i = 0; i < marketIds.length; i++) {
757
+ const marketId = marketIds[i];
758
+ const market = this.safeMarket(marketId);
759
+ const symbol = market['symbol'];
760
+ this.ohlcvs[symbol] = this.safeValue(this.ohlcvs, symbol, {});
761
+ let stored = this.safeValue(this.ohlcvs[symbol], timeframe);
762
+ if (stored === undefined) {
763
+ const limit = this.safeInteger(this.options, 'OHLCVLimit', 1000);
764
+ stored = new ArrayCacheByTimestamp(limit);
765
+ this.ohlcvs[symbol][timeframe] = stored;
766
+ }
767
+ const ohlcvs = this.parseWsOHLCVs(data[marketId], market);
768
+ for (let j = 0; j < ohlcvs.length; j++) {
769
+ stored.append(ohlcvs[j]);
770
+ }
771
+ const messageHash = 'candles::' + symbol;
772
+ client.resolve(stored, messageHash);
773
+ }
774
+ return message;
775
+ }
776
+ parseWsOHLCV(ohlcv, market = undefined) {
777
+ //
778
+ // {
779
+ // "t": 1626860340000, // Message timestamp
780
+ // "o": "30881.95", // Open price
781
+ // "c": "30890.96", // Last price
782
+ // "h": "30900.8", // High price
783
+ // "l": "30861.27", // Low price
784
+ // "v": "1.27852", // Base asset volume
785
+ // "q": "39493.9021811" // Quote asset volume
786
+ // }
787
+ //
788
+ return [
789
+ this.safeInteger(ohlcv, 't'),
790
+ this.safeNumber(ohlcv, 'o'),
791
+ this.safeNumber(ohlcv, 'h'),
792
+ this.safeNumber(ohlcv, 'l'),
793
+ this.safeNumber(ohlcv, 'c'),
794
+ this.safeNumber(ohlcv, 'v'),
795
+ ];
796
+ }
797
+ /**
798
+ * @method
799
+ * @name hitbtc#watchOrders
800
+ * @description watches information on multiple orders made by the user
801
+ * @see https://api.hitbtc.com/#subscribe-to-reports
802
+ * @see https://api.hitbtc.com/#subscribe-to-reports-2
803
+ * @see https://api.hitbtc.com/#subscribe-to-reports-3
804
+ * @param {string} [symbol] unified CCXT market symbol
805
+ * @param {int} [since] timestamp in ms of the earliest order to fetch
806
+ * @param {int} [limit] the maximum amount of orders to fetch
807
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
808
+ * @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/en/latest/manual.html#order-structure}
809
+ */
810
+ async watchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
811
+ await this.loadMarkets();
812
+ let marketType = undefined;
813
+ let market = undefined;
814
+ if (symbol !== undefined) {
815
+ market = this.market(symbol);
816
+ }
817
+ [marketType, params] = this.handleMarketTypeAndParams('watchOrders', market, params);
818
+ const name = this.getSupportedMapping(marketType, {
819
+ 'spot': 'spot_subscribe',
820
+ 'margin': 'margin_subscribe',
821
+ 'swap': 'futures_subscribe',
822
+ 'future': 'futures_subscribe',
823
+ });
824
+ const orders = await this.subscribePrivate(name, symbol, params);
825
+ if (this.newUpdates) {
826
+ limit = orders.getLimit(symbol, limit);
827
+ }
828
+ return this.filterBySinceLimit(orders, since, limit, 'timestamp');
829
+ }
830
+ handleOrder(client, message) {
831
+ //
832
+ // {
833
+ // "jsonrpc": "2.0",
834
+ // "method": "spot_order", // "margin_order", "future_order"
835
+ // "params": {
836
+ // "id": 584244931496,
837
+ // "client_order_id": "b5acd79c0a854b01b558665bcf379456",
838
+ // "symbol": "BTCUSDT",
839
+ // "side": "buy",
840
+ // "status": "new",
841
+ // "type": "limit",
842
+ // "time_in_force": "GTC",
843
+ // "quantity": "0.01000",
844
+ // "quantity_cumulative": "0",
845
+ // "price": "0.01", // only updates and snapshots
846
+ // "post_only": false,
847
+ // "reduce_only": false, // only margin and contract
848
+ // "display_quantity": "0", // only updates and snapshot
849
+ // "created_at": "2021-07-02T22:52:32.864Z",
850
+ // "updated_at": "2021-07-02T22:52:32.864Z",
851
+ // "trade_id": 1361977606, // only trades
852
+ // "trade_quantity": "0.00001", // only trades
853
+ // "trade_price": "49595.04", // only trades
854
+ // "trade_fee": "0.001239876000", // only trades
855
+ // "trade_taker": true, // only trades, only spot
856
+ // "trade_position_id": 485308, // only trades, only margin
857
+ // "report_type": "new" // "trade", "status" (snapshot)
858
+ // }
859
+ // }
860
+ //
861
+ // {
862
+ // "jsonrpc": "2.0",
863
+ // "method": "spot_orders", // "margin_orders", "future_orders"
864
+ // "params": [
865
+ // {
866
+ // "id": 584244931496,
867
+ // "client_order_id": "b5acd79c0a854b01b558665bcf379456",
868
+ // "symbol": "BTCUSDT",
869
+ // "side": "buy",
870
+ // "status": "new",
871
+ // "type": "limit",
872
+ // "time_in_force": "GTC",
873
+ // "quantity": "0.01000",
874
+ // "quantity_cumulative": "0",
875
+ // "price": "0.01", // only updates and snapshots
876
+ // "post_only": false,
877
+ // "reduce_only": false, // only margin and contract
878
+ // "display_quantity": "0", // only updates and snapshot
879
+ // "created_at": "2021-07-02T22:52:32.864Z",
880
+ // "updated_at": "2021-07-02T22:52:32.864Z",
881
+ // "trade_id": 1361977606, // only trades
882
+ // "trade_quantity": "0.00001", // only trades
883
+ // "trade_price": "49595.04", // only trades
884
+ // "trade_fee": "0.001239876000", // only trades
885
+ // "trade_taker": true, // only trades, only spot
886
+ // "trade_position_id": 485308, // only trades, only margin
887
+ // "report_type": "new" // "trade", "status" (snapshot)
888
+ // }
889
+ // ]
890
+ // }
891
+ //
892
+ if (this.orders === undefined) {
893
+ const limit = this.safeInteger(this.options, 'ordersLimit');
894
+ this.orders = new ArrayCacheBySymbolById(limit);
895
+ }
896
+ const data = this.safeValue(message, 'params', []);
897
+ if (Array.isArray(data)) {
898
+ for (let i = 0; i < data.length; i++) {
899
+ const order = data[i];
900
+ this.handleOrderHelper(client, message, order);
901
+ }
902
+ }
903
+ else {
904
+ this.handleOrderHelper(client, message, data);
905
+ }
906
+ return message;
907
+ }
908
+ handleOrderHelper(client, message, order) {
909
+ const orders = this.orders;
910
+ const marketId = this.safeStringLower2(order, 'instrument', 'symbol');
911
+ const method = this.safeString(message, 'method');
912
+ const splitMethod = method.split('_order');
913
+ const messageHash = this.safeString(splitMethod, 0);
914
+ const symbol = this.safeSymbol(marketId);
915
+ const parsed = this.parseOrder(order);
916
+ orders.append(parsed);
917
+ client.resolve(orders, messageHash);
918
+ client.resolve(orders, messageHash + '::' + symbol);
919
+ }
920
+ parseWsOrderTrade(trade, market = undefined) {
921
+ //
922
+ // {
923
+ // "id": 584244931496,
924
+ // "client_order_id": "b5acd79c0a854b01b558665bcf379456",
925
+ // "symbol": "BTCUSDT",
926
+ // "side": "buy",
927
+ // "status": "new",
928
+ // "type": "limit",
929
+ // "time_in_force": "GTC",
930
+ // "quantity": "0.01000",
931
+ // "quantity_cumulative": "0",
932
+ // "price": "0.01", // only updates and snapshots
933
+ // "post_only": false,
934
+ // "reduce_only": false, // only margin and contract
935
+ // "display_quantity": "0", // only updates and snapshot
936
+ // "created_at": "2021-07-02T22:52:32.864Z",
937
+ // "updated_at": "2021-07-02T22:52:32.864Z",
938
+ // "trade_id": 1361977606, // only trades
939
+ // "trade_quantity": "0.00001", // only trades
940
+ // "trade_price": "49595.04", // only trades
941
+ // "trade_fee": "0.001239876000", // only trades
942
+ // "trade_taker": true, // only trades, only spot
943
+ // "trade_position_id": 485308, // only trades, only margin
944
+ // "report_type": "new" // "trade", "status" (snapshot)
945
+ // }
946
+ //
947
+ const timestamp = this.safeInteger(trade, 'created_at');
948
+ const marketId = this.safeString(trade, 'symbol');
949
+ return this.safeTrade({
950
+ 'info': trade,
951
+ 'id': this.safeString(trade, 'trade_id'),
952
+ 'order': this.safeString(trade, 'id'),
953
+ 'timestamp': timestamp,
954
+ 'datetime': this.iso8601(timestamp),
955
+ 'symbol': this.safeMarket(marketId, market),
956
+ 'type': undefined,
957
+ 'side': this.safeString(trade, 'side'),
958
+ 'takerOrMaker': this.safeString(trade, 'trade_taker'),
959
+ 'price': this.safeString(trade, 'trade_price'),
960
+ 'amount': this.safeString(trade, 'trade_quantity'),
961
+ 'cost': undefined,
962
+ 'fee': {
963
+ 'cost': this.safeString(trade, 'trade_fee'),
964
+ 'currency': undefined,
965
+ 'rate': undefined,
966
+ },
967
+ }, market);
968
+ }
969
+ parseWsOrder(order, market = undefined) {
970
+ //
971
+ // {
972
+ // "id": 584244931496,
973
+ // "client_order_id": "b5acd79c0a854b01b558665bcf379456",
974
+ // "symbol": "BTCUSDT",
975
+ // "side": "buy",
976
+ // "status": "new",
977
+ // "type": "limit",
978
+ // "time_in_force": "GTC",
979
+ // "quantity": "0.01000",
980
+ // "quantity_cumulative": "0",
981
+ // "price": "0.01", // only updates and snapshots
982
+ // "post_only": false,
983
+ // "reduce_only": false, // only margin and contract
984
+ // "display_quantity": "0", // only updates and snapshot
985
+ // "created_at": "2021-07-02T22:52:32.864Z",
986
+ // "updated_at": "2021-07-02T22:52:32.864Z",
987
+ // "trade_id": 1361977606, // only trades
988
+ // "trade_quantity": "0.00001", // only trades
989
+ // "trade_price": "49595.04", // only trades
990
+ // "trade_fee": "0.001239876000", // only trades
991
+ // "trade_taker": true, // only trades, only spot
992
+ // "trade_position_id": 485308, // only trades, only margin
993
+ // "report_type": "new" // "trade", "status" (snapshot)
994
+ // }
995
+ //
996
+ const timestamp = this.safeString(order, 'created_at');
997
+ const marketId = this.safeString(order, 'symbol');
998
+ market = this.safeMarket(marketId, market);
999
+ const tradeId = this.safeString(order, 'trade_id');
1000
+ let trades = undefined;
1001
+ if (tradeId !== undefined) {
1002
+ const trade = this.parseWsOrderTrade(order, market);
1003
+ trades = [trade];
1004
+ }
1005
+ const rawStatus = this.safeString(order, 'status');
1006
+ const report_type = this.safeString(order, 'report_type');
1007
+ let parsedStatus = undefined;
1008
+ if (report_type === 'canceled') {
1009
+ parsedStatus = this.parseOrderStatus(report_type);
1010
+ }
1011
+ else {
1012
+ parsedStatus = this.parseOrderStatus(rawStatus);
1013
+ }
1014
+ return this.safeOrder({
1015
+ 'info': order,
1016
+ 'id': this.safeString(order, 'id'),
1017
+ 'clientOrderId': this.safeString(order, 'client_order_id'),
1018
+ 'timestamp': timestamp,
1019
+ 'datetime': this.iso8601(timestamp),
1020
+ 'lastTradeTimestamp': undefined,
1021
+ 'symbol': market['symbol'],
1022
+ 'price': this.safeString(order, 'price'),
1023
+ 'amount': this.safeString(order, 'quantity'),
1024
+ 'type': this.safeString(order, 'type'),
1025
+ 'side': this.safeStringUpper(order, 'side'),
1026
+ 'timeInForce': this.safeString(order, 'time_in_force'),
1027
+ 'postOnly': this.safeString(order, 'post_only'),
1028
+ 'reduceOnly': this.safeValue(order, 'reduce_only'),
1029
+ 'filled': undefined,
1030
+ 'remaining': undefined,
1031
+ 'cost': undefined,
1032
+ 'status': parsedStatus,
1033
+ 'average': undefined,
1034
+ 'trades': trades,
1035
+ 'fee': undefined,
1036
+ }, market);
1037
+ }
1038
+ /**
1039
+ * @method
1040
+ * @name hitbtc#watchBalance
1041
+ * @description watches balance updates, cannot subscribe to margin account balances
1042
+ * @see https://api.hitbtc.com/#subscribe-to-spot-balances
1043
+ * @see https://api.hitbtc.com/#subscribe-to-futures-balances
1044
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1045
+ * @param {string} [params.type] 'spot', 'swap', or 'future'
1046
+ *
1047
+ * EXCHANGE SPECIFIC PARAMETERS
1048
+ * @param {string} [params.mode] 'updates' or 'batches' (default), 'updates' = messages arrive after balance updates, 'batches' = messages arrive at equal intervals if there were any updates
1049
+ * @returns {object[]} a list of [balance structures]{@link https://docs.ccxt.com/#/?id=balance-structure}
1050
+ */
1051
+ async watchBalance(params = {}) {
1052
+ await this.loadMarkets();
1053
+ let type = undefined;
1054
+ [type, params] = this.handleMarketTypeAndParams('watchBalance', undefined, params);
1055
+ const name = this.getSupportedMapping(type, {
1056
+ 'spot': 'spot_balance_subscribe',
1057
+ 'swap': 'futures_balance_subscribe',
1058
+ 'future': 'futures_balance_subscribe',
1059
+ });
1060
+ const mode = this.safeString(params, 'mode', 'batches');
1061
+ params = this.omit(params, 'mode');
1062
+ const request = {
1063
+ 'mode': mode,
1064
+ };
1065
+ return await this.subscribePrivate(name, undefined, this.extend(request, params));
1066
+ }
1067
+ /**
1068
+ * @method
1069
+ * @name hitbtc#createOrder
1070
+ * @description create a trade order
1071
+ * @see https://api.hitbtc.com/#create-new-spot-order
1072
+ * @see https://api.hitbtc.com/#create-margin-order
1073
+ * @see https://api.hitbtc.com/#create-futures-order
1074
+ * @param {string} symbol unified symbol of the market to create an order in
1075
+ * @param {string} type 'market' or 'limit'
1076
+ * @param {string} side 'buy' or 'sell'
1077
+ * @param {float} amount how much of currency you want to trade in units of base currency
1078
+ * @param {float} [price] the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1079
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1080
+ * @param {string} [params.marginMode] 'cross' or 'isolated' only 'isolated' is supported for spot-margin, swap supports both, default is 'cross'
1081
+ * @param {bool} [params.margin] true for creating a margin order
1082
+ * @param {float} [params.triggerPrice] The price at which a trigger order is triggered at
1083
+ * @param {bool} [params.postOnly] if true, the order will only be posted to the order book and not executed immediately
1084
+ * @param {string} [params.timeInForce] "GTC", "IOC", "FOK", "Day", "GTD"
1085
+ * @returns {object} an [order structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
1086
+ */
1087
+ async createOrderWs(symbol, type, side, amount, price = undefined, params = {}) {
1088
+ await this.loadMarkets();
1089
+ const market = this.market(symbol);
1090
+ let request = undefined;
1091
+ let marketType = undefined;
1092
+ [marketType, params] = this.handleMarketTypeAndParams('createOrder', market, params);
1093
+ let marginMode = undefined;
1094
+ [marginMode, params] = this.handleMarginModeAndParams('createOrder', params);
1095
+ [request, params] = this.createOrderRequest(market, marketType, type, side, amount, price, marginMode, params);
1096
+ request = this.extend(request, params);
1097
+ if (marketType === 'swap') {
1098
+ return await this.tradeRequest('futures_new_order', request);
1099
+ }
1100
+ else if ((marketType === 'margin') || (marginMode !== undefined)) {
1101
+ return await this.tradeRequest('margin_new_order', request);
1102
+ }
1103
+ else {
1104
+ return await this.tradeRequest('spot_new_order', request);
1105
+ }
1106
+ }
1107
+ /**
1108
+ * @method
1109
+ * @name hitbtc#cancelOrderWs
1110
+ * @see https://api.hitbtc.com/#cancel-spot-order-2
1111
+ * @see https://api.hitbtc.com/#cancel-futures-order-2
1112
+ * @see https://api.hitbtc.com/#cancel-margin-order-2
1113
+ * @description cancels an open order
1114
+ * @param {string} id order id
1115
+ * @param {string} symbol unified symbol of the market the order was made in
1116
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1117
+ * @param {string} [params.marginMode] 'cross' or 'isolated' only 'isolated' is supported
1118
+ * @param {bool} [params.margin] true for canceling a margin order
1119
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1120
+ */
1121
+ async cancelOrderWs(id, symbol = undefined, params = {}) {
1122
+ await this.loadMarkets();
1123
+ let market = undefined;
1124
+ let request = {
1125
+ 'client_order_id': id,
1126
+ };
1127
+ if (symbol !== undefined) {
1128
+ market = this.market(symbol);
1129
+ }
1130
+ let marketType = undefined;
1131
+ [marketType, params] = this.handleMarketTypeAndParams('cancelOrderWs', market, params);
1132
+ const [marginMode, query] = this.handleMarginModeAndParams('cancelOrderWs', params);
1133
+ request = this.extend(request, query);
1134
+ if (marketType === 'swap') {
1135
+ return await this.tradeRequest('futures_cancel_order', request);
1136
+ }
1137
+ else if ((marketType === 'margin') || (marginMode !== undefined)) {
1138
+ return await this.tradeRequest('margin_cancel_order', request);
1139
+ }
1140
+ else {
1141
+ return await this.tradeRequest('spot_cancel_order', request);
1142
+ }
1143
+ }
1144
+ /**
1145
+ * @method
1146
+ * @name hitbtc#cancelAllOrdersWs
1147
+ * @see https://api.hitbtc.com/#cancel-spot-orders
1148
+ * @see https://api.hitbtc.com/#cancel-futures-order-3
1149
+ * @description cancel all open orders
1150
+ * @param {string} symbol unified market symbol, only orders in the market of this symbol are cancelled when symbol is not undefined
1151
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1152
+ * @param {string} [params.marginMode] 'cross' or 'isolated' only 'isolated' is supported
1153
+ * @param {bool} [params.margin] true for canceling margin orders
1154
+ * @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1155
+ */
1156
+ async cancelAllOrdersWs(symbol = undefined, params = {}) {
1157
+ await this.loadMarkets();
1158
+ let market = undefined;
1159
+ if (symbol !== undefined) {
1160
+ market = this.market(symbol);
1161
+ }
1162
+ let marketType = undefined;
1163
+ [marketType, params] = this.handleMarketTypeAndParams('cancelAllOrdersWs', market, params);
1164
+ let marginMode = undefined;
1165
+ [marginMode, params] = this.handleMarginModeAndParams('cancelAllOrdersWs', params);
1166
+ if (marketType === 'swap') {
1167
+ return await this.tradeRequest('futures_cancel_orders', params);
1168
+ }
1169
+ else if ((marketType === 'margin') || (marginMode !== undefined)) {
1170
+ throw new NotSupported(this.id + ' cancelAllOrdersWs is not supported for margin orders');
1171
+ }
1172
+ else {
1173
+ return await this.tradeRequest('spot_cancel_orders', params);
1174
+ }
1175
+ }
1176
+ /**
1177
+ * @method
1178
+ * @name hitbtc#fetchOpenOrdersWs
1179
+ * @see https://api.hitbtc.com/#get-active-futures-orders-2
1180
+ * @see https://api.hitbtc.com/#get-margin-orders
1181
+ * @see https://api.hitbtc.com/#get-active-spot-orders
1182
+ * @description fetch all unfilled currently open orders
1183
+ * @param {string} symbol unified market symbol
1184
+ * @param {int} [since] the earliest time in ms to fetch open orders for
1185
+ * @param {int} [limit] the maximum number of open orders structures to retrieve
1186
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1187
+ * @param {string} [params.marginMode] 'cross' or 'isolated' only 'isolated' is supported
1188
+ * @param {bool} [params.margin] true for fetching open margin orders
1189
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1190
+ */
1191
+ async fetchOpenOrdersWs(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1192
+ await this.loadMarkets();
1193
+ let market = undefined;
1194
+ const request = {};
1195
+ if (symbol !== undefined) {
1196
+ market = this.market(symbol);
1197
+ request['symbol'] = market['id'];
1198
+ }
1199
+ let marketType = undefined;
1200
+ [marketType, params] = this.handleMarketTypeAndParams('fetchOpenOrdersWs', market, params);
1201
+ let marginMode = undefined;
1202
+ [marginMode, params] = this.handleMarginModeAndParams('fetchOpenOrdersWs', params);
1203
+ if (marketType === 'swap') {
1204
+ return await this.tradeRequest('futures_get_orders', request);
1205
+ }
1206
+ else if ((marketType === 'margin') || (marginMode !== undefined)) {
1207
+ return await this.tradeRequest('margin_get_orders', request);
1208
+ }
1209
+ else {
1210
+ return await this.tradeRequest('spot_get_orders', request);
1211
+ }
1212
+ }
1213
+ handleBalance(client, message) {
1214
+ //
1215
+ // {
1216
+ // "jsonrpc": "2.0",
1217
+ // "method": "futures_balance",
1218
+ // "params": [
1219
+ // {
1220
+ // "currency": "BCN",
1221
+ // "available": "100.000000000000",
1222
+ // "reserved": "0",
1223
+ // "reserved_margin": "0"
1224
+ // },
1225
+ // ...
1226
+ // ]
1227
+ // }
1228
+ //
1229
+ const messageHash = this.safeString(message, 'method');
1230
+ const params = this.safeValue(message, 'params');
1231
+ const balance = this.parseBalance(params);
1232
+ this.balance = this.deepExtend(this.balance, balance);
1233
+ client.resolve(this.balance, messageHash);
1234
+ }
1235
+ handleNotification(client, message) {
1236
+ //
1237
+ // { jsonrpc: "2.0", result: true, id: null }
1238
+ //
1239
+ return message;
1240
+ }
1241
+ handleOrderRequest(client, message) {
1242
+ //
1243
+ // createOrderWs, cancelOrderWs
1244
+ //
1245
+ // {
1246
+ // "jsonrpc": "2.0",
1247
+ // "result": {
1248
+ // "id": 1130310696965,
1249
+ // "client_order_id": "OPC2oyHSkEBqIpPtniLqeW-597hUL3Yo",
1250
+ // "symbol": "ADAUSDT",
1251
+ // "side": "buy",
1252
+ // "status": "new",
1253
+ // "type": "limit",
1254
+ // "time_in_force": "GTC",
1255
+ // "quantity": "4",
1256
+ // "quantity_cumulative": "0",
1257
+ // "price": "0.3300000",
1258
+ // "post_only": false,
1259
+ // "created_at": "2023-11-17T14:58:15.903Z",
1260
+ // "updated_at": "2023-11-17T14:58:15.903Z",
1261
+ // "original_client_order_id": "d6b645556af740b1bd1683400fd9cbce", // spot_replace_order only
1262
+ // "report_type": "new"
1263
+ // "margin_mode": "isolated", // margin and future only
1264
+ // "reduce_only": false, // margin and future only
1265
+ // },
1266
+ // "id": 1700233093414
1267
+ // }
1268
+ //
1269
+ const messageHash = this.safeString(message, 'id');
1270
+ const result = this.safeValue(message, 'result', {});
1271
+ if (Array.isArray(result)) {
1272
+ const parsedOrders = [];
1273
+ for (let i = 0; i < result.length; i++) {
1274
+ const parsedOrder = this.parseWsOrder(result[i]);
1275
+ parsedOrders.push(parsedOrder);
1276
+ }
1277
+ client.resolve(parsedOrders, messageHash);
1278
+ }
1279
+ else {
1280
+ const parsedOrder = this.parseWsOrder(result);
1281
+ client.resolve(parsedOrder, messageHash);
1282
+ }
1283
+ return message;
1284
+ }
1285
+ handleMessage(client, message) {
1286
+ if (this.handleError(client, message)) {
1287
+ return;
1288
+ }
1289
+ let channel = this.safeString2(message, 'ch', 'method');
1290
+ if (channel !== undefined) {
1291
+ const splitChannel = channel.split('/');
1292
+ channel = this.safeString(splitChannel, 0);
1293
+ if (channel === 'orderbook') {
1294
+ const channel2 = this.safeString(splitChannel, 1);
1295
+ if (channel2 !== undefined && channel2 === 'top') {
1296
+ channel = 'orderbook/top';
1297
+ }
1298
+ }
1299
+ const methods = {
1300
+ 'candles': this.handleOHLCV,
1301
+ 'ticker': this.handleTicker,
1302
+ 'trades': this.handleTrades,
1303
+ 'orderbook': this.handleOrderBook,
1304
+ 'orderbook/top': this.handleBidAsk,
1305
+ 'spot_order': this.handleOrder,
1306
+ 'spot_orders': this.handleOrder,
1307
+ 'margin_order': this.handleOrder,
1308
+ 'margin_orders': this.handleOrder,
1309
+ 'futures_order': this.handleOrder,
1310
+ 'futures_orders': this.handleOrder,
1311
+ 'spot_balance': this.handleBalance,
1312
+ 'futures_balance': this.handleBalance,
1313
+ };
1314
+ const method = this.safeValue(methods, channel);
1315
+ if (method !== undefined) {
1316
+ method.call(this, client, message);
1317
+ }
1318
+ }
1319
+ else {
1320
+ const result = this.safeValue(message, 'result');
1321
+ const clientOrderId = this.safeString(result, 'client_order_id');
1322
+ if (clientOrderId !== undefined) {
1323
+ this.handleOrderRequest(client, message);
1324
+ }
1325
+ if ((result === true) && !('id' in message)) {
1326
+ this.handleAuthenticate(client, message);
1327
+ }
1328
+ if (Array.isArray(result)) {
1329
+ // to do improve this, not very reliable right now
1330
+ const first = this.safeValue(result, 0, {});
1331
+ const arrayLength = result.length;
1332
+ if ((arrayLength === 0) || ('client_order_id' in first)) {
1333
+ this.handleOrderRequest(client, message);
1334
+ }
1335
+ }
1336
+ }
1337
+ }
1338
+ handleAuthenticate(client, message) {
1339
+ //
1340
+ // {
1341
+ // "jsonrpc": "2.0",
1342
+ // "result": true
1343
+ // }
1344
+ //
1345
+ const success = this.safeValue(message, 'result');
1346
+ const messageHash = 'authenticated';
1347
+ if (success) {
1348
+ const future = this.safeValue(client.futures, messageHash);
1349
+ future.resolve(true);
1350
+ }
1351
+ else {
1352
+ const error = new AuthenticationError(this.id + ' ' + this.json(message));
1353
+ client.reject(error, messageHash);
1354
+ if (messageHash in client.subscriptions) {
1355
+ delete client.subscriptions[messageHash];
1356
+ }
1357
+ }
1358
+ return message;
1359
+ }
1360
+ handleError(client, message) {
1361
+ //
1362
+ // {
1363
+ // jsonrpc: '2.0',
1364
+ // error: {
1365
+ // code: 20001,
1366
+ // message: 'Insufficient funds',
1367
+ // description: 'Check that the funds are sufficient, given commissions'
1368
+ // },
1369
+ // id: 1700228604325
1370
+ // }
1371
+ //
1372
+ const error = this.safeValue(message, 'error');
1373
+ if (error !== undefined) {
1374
+ try {
1375
+ const code = this.safeValue(error, 'code');
1376
+ const errorMessage = this.safeString(error, 'message');
1377
+ const description = this.safeString(error, 'description');
1378
+ const feedback = this.id + ' ' + description;
1379
+ this.throwExactlyMatchedException(this.exceptions['exact'], code, feedback);
1380
+ this.throwBroadlyMatchedException(this.exceptions['broad'], errorMessage, feedback);
1381
+ throw new ExchangeError(feedback); // unknown message
1382
+ }
1383
+ catch (e) {
1384
+ if (e instanceof AuthenticationError) {
1385
+ const messageHash = 'authenticated';
1386
+ client.reject(e, messageHash);
1387
+ if (messageHash in client.subscriptions) {
1388
+ delete client.subscriptions[messageHash];
1389
+ }
1390
+ }
1391
+ else {
1392
+ const id = this.safeString(message, 'id');
1393
+ client.reject(e, id);
1394
+ }
1395
+ return true;
1396
+ }
1397
+ }
1398
+ return undefined;
1399
+ }
1400
+ }