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,1562 @@
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 coincatchRest from '../coincatch.js';
9
+ import { ArgumentsRequired, AuthenticationError, BadRequest, ChecksumError, ExchangeError, NotSupported, RateLimitExceeded, UnsubscribeError } from '../base/errors.js';
10
+ import { Precise } from '../base/Precise.js';
11
+ import { sha256 } from '../static_dependencies/noble-hashes/sha256.js';
12
+ import { ArrayCache, ArrayCacheBySymbolById, ArrayCacheBySymbolBySide, ArrayCacheByTimestamp } from '../base/ws/Cache.js';
13
+ // ---------------------------------------------------------------------------
14
+ export default class coincatch extends coincatchRest {
15
+ describe() {
16
+ return this.deepExtend(super.describe(), {
17
+ 'has': {
18
+ 'ws': true,
19
+ 'watchTrades': true,
20
+ 'watchTradesForSymbols': true,
21
+ 'watchOrderBook': true,
22
+ 'watchOrderBookForSymbols': true,
23
+ 'watchOHLCV': true,
24
+ 'watchOHLCVForSymbols': false,
25
+ 'watchOrders': true,
26
+ 'watchMyTrades': false,
27
+ 'watchTicker': true,
28
+ 'watchTickers': true,
29
+ 'watchBalance': true,
30
+ 'watchPositions': true,
31
+ },
32
+ 'urls': {
33
+ 'api': {
34
+ 'ws': {
35
+ 'public': 'wss://ws.coincatch.com/public/v1/stream',
36
+ 'private': 'wss://ws.coincatch.com/private/v1/stream',
37
+ },
38
+ },
39
+ },
40
+ 'options': {
41
+ 'tradesLimit': 1000,
42
+ 'OHLCVLimit': 200,
43
+ 'timeframesForWs': {
44
+ '1m': '1m',
45
+ '5m': '5m',
46
+ '15m': '15m',
47
+ '30m': '30m',
48
+ '1h': '1H',
49
+ '4h': '4H',
50
+ '12h': '12H',
51
+ '1d': '1D',
52
+ '1w': '1W',
53
+ },
54
+ 'watchOrderBook': {
55
+ 'checksum': true,
56
+ },
57
+ },
58
+ 'streaming': {
59
+ 'ping': this.ping,
60
+ },
61
+ 'exceptions': {
62
+ 'ws': {
63
+ 'exact': {
64
+ '30001': BadRequest,
65
+ '30002': AuthenticationError,
66
+ '30003': BadRequest,
67
+ '30004': AuthenticationError,
68
+ '30005': AuthenticationError,
69
+ '30006': RateLimitExceeded,
70
+ '30007': RateLimitExceeded,
71
+ '30011': AuthenticationError,
72
+ '30012': AuthenticationError,
73
+ '30013': AuthenticationError,
74
+ '30014': BadRequest,
75
+ '30015': AuthenticationError, // { event: 'error', code: 30015, msg: 'Invalid sign' }
76
+ },
77
+ 'broad': {},
78
+ },
79
+ },
80
+ });
81
+ }
82
+ getMarketFromArg(entry) {
83
+ const instId = this.safeString(entry, 'instId');
84
+ const instType = this.safeString(entry, 'instType');
85
+ const baseAndQuote = this.parseSpotMarketId(instId);
86
+ const baseId = baseAndQuote['baseId'];
87
+ const quoteId = baseAndQuote['quoteId'];
88
+ let suffix = '_SPBL'; // spot suffix
89
+ if (instType === 'mc') {
90
+ if (quoteId === 'USD') {
91
+ suffix = '_DMCBL';
92
+ }
93
+ else {
94
+ suffix = '_UMCBL';
95
+ }
96
+ }
97
+ const marketId = this.safeCurrencyCode(baseId) + this.safeCurrencyCode(quoteId) + suffix;
98
+ return this.safeMarketCustom(marketId);
99
+ }
100
+ async authenticate(params = {}) {
101
+ this.checkRequiredCredentials();
102
+ const url = this.urls['api']['ws']['private'];
103
+ const client = this.client(url);
104
+ const messageHash = 'authenticated';
105
+ const future = client.future(messageHash);
106
+ const authenticated = this.safeValue(client.subscriptions, messageHash);
107
+ if (authenticated === undefined) {
108
+ const timestamp = this.seconds().toString();
109
+ const auth = timestamp + 'GET' + '/user/verify';
110
+ const signature = this.hmac(this.encode(auth), this.encode(this.secret), sha256, 'base64');
111
+ const operation = 'login';
112
+ const request = {
113
+ 'op': operation,
114
+ 'args': [
115
+ {
116
+ 'apiKey': this.apiKey,
117
+ 'passphrase': this.password,
118
+ 'timestamp': timestamp,
119
+ 'sign': signature,
120
+ },
121
+ ],
122
+ };
123
+ const message = this.extend(request, params);
124
+ this.watch(url, messageHash, message, messageHash);
125
+ }
126
+ return await future;
127
+ }
128
+ async watchPublic(messageHash, subscribeHash, args, params = {}) {
129
+ const url = this.urls['api']['ws']['public'];
130
+ const request = {
131
+ 'op': 'subscribe',
132
+ 'args': [args],
133
+ };
134
+ const message = this.extend(request, params);
135
+ return await this.watch(url, messageHash, message, subscribeHash);
136
+ }
137
+ async unWatchPublic(messageHash, args, params = {}) {
138
+ const url = this.urls['api']['ws']['public'];
139
+ const request = {
140
+ 'op': 'unsubscribe',
141
+ 'args': [args],
142
+ };
143
+ const message = this.extend(request, params);
144
+ return await this.watch(url, messageHash, message, messageHash);
145
+ }
146
+ async watchPrivate(messageHash, subscribeHash, args, params = {}) {
147
+ await this.authenticate();
148
+ const url = this.urls['api']['ws']['private'];
149
+ const request = {
150
+ 'op': 'subscribe',
151
+ 'args': [args],
152
+ };
153
+ const message = this.extend(request, params);
154
+ return await this.watch(url, messageHash, message, subscribeHash);
155
+ }
156
+ async watchPrivateMultiple(messageHashes, subscribeHashes, args, params = {}) {
157
+ await this.authenticate();
158
+ const url = this.urls['api']['ws']['private'];
159
+ const request = {
160
+ 'op': 'subscribe',
161
+ 'args': args,
162
+ };
163
+ const message = this.extend(request, params);
164
+ return await this.watchMultiple(url, messageHashes, message, subscribeHashes);
165
+ }
166
+ handleAuthenticate(client, message) {
167
+ //
168
+ // { event: "login", code: 0 }
169
+ //
170
+ const messageHash = 'authenticated';
171
+ const future = this.safeValue(client.futures, messageHash);
172
+ future.resolve(true);
173
+ }
174
+ async watchPublicMultiple(messageHashes, subscribeHashes, argsArray, params = {}) {
175
+ const url = this.urls['api']['ws']['public'];
176
+ const request = {
177
+ 'op': 'subscribe',
178
+ 'args': argsArray,
179
+ };
180
+ const message = this.extend(request, params);
181
+ return await this.watchMultiple(url, messageHashes, message, subscribeHashes);
182
+ }
183
+ async unWatchChannel(symbol, channel, messageHashTopic, params = {}) {
184
+ await this.loadMarkets();
185
+ const market = this.market(symbol);
186
+ const [instType, instId] = this.getPublicInstTypeAndId(market);
187
+ const messageHash = 'unsubscribe:' + messageHashTopic + ':' + symbol;
188
+ const args = {
189
+ 'instType': instType,
190
+ 'channel': channel,
191
+ 'instId': instId,
192
+ };
193
+ return await this.unWatchPublic(messageHash, args, params);
194
+ }
195
+ getPublicInstTypeAndId(market) {
196
+ const instId = market['baseId'] + market['quoteId'];
197
+ let instType = undefined;
198
+ if (market['spot']) {
199
+ instType = 'SP';
200
+ }
201
+ else if (market['swap']) {
202
+ instType = 'MC';
203
+ }
204
+ else {
205
+ throw new NotSupported(this.id + ' supports only spot and swap markets');
206
+ }
207
+ return [instType, instId];
208
+ }
209
+ handleDMCBLMarketByMessageHashes(market, hash, client, timeframe = undefined) {
210
+ const marketId = market['id'];
211
+ const messageHashes = this.findMessageHashes(client, hash);
212
+ // the exchange counts DMCBL markets as the same market with different quote currencies
213
+ // for example symbols ETHUSD:ETH and ETH/USD:BTC both have the same marketId ETHUSD_DMCBL
214
+ // we need to check all markets with the same marketId to find the correct market that is in messageHashes
215
+ const marketsWithCurrentId = this.safeList(this.markets_by_id, marketId, []);
216
+ let suffix = '';
217
+ if (timeframe !== undefined) {
218
+ suffix = ':' + timeframe;
219
+ }
220
+ for (let i = 0; i < marketsWithCurrentId.length; i++) {
221
+ market = marketsWithCurrentId[i];
222
+ const symbol = market['symbol'];
223
+ const messageHash = hash + symbol + suffix;
224
+ if (this.inArray(messageHash, messageHashes)) {
225
+ return market;
226
+ }
227
+ }
228
+ return market;
229
+ }
230
+ /**
231
+ * @method
232
+ * @name coincatch#watchTicker
233
+ * @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
234
+ * @see https://coincatch.github.io/github.io/en/spot/#tickers-channel
235
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
236
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
237
+ * @param {string} [params.instType] the type of the instrument to fetch the ticker for, 'SP' for spot markets, 'MC' for futures markets (default is 'SP')
238
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
239
+ */
240
+ async watchTicker(symbol, params = {}) {
241
+ await this.loadMarkets();
242
+ const market = this.market(symbol);
243
+ const [instType, instId] = this.getPublicInstTypeAndId(market);
244
+ const channel = 'ticker';
245
+ const messageHash = channel + ':' + symbol;
246
+ const args = {
247
+ 'instType': instType,
248
+ 'channel': channel,
249
+ 'instId': instId,
250
+ };
251
+ return await this.watchPublic(messageHash, messageHash, args, params);
252
+ }
253
+ /**
254
+ * @method
255
+ * @name coincatch#unWatchTicker
256
+ * @description unsubscribe from the ticker channel
257
+ * @see https://coincatch.github.io/github.io/en/mix/#tickers-channel
258
+ * @param {string} symbol unified symbol of the market to unwatch the ticker for
259
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
260
+ * @returns {any} status of the unwatch request
261
+ */
262
+ async unWatchTicker(symbol, params = {}) {
263
+ await this.loadMarkets();
264
+ return await this.unWatchChannel(symbol, 'ticker', 'ticker', params);
265
+ }
266
+ /**
267
+ * @method
268
+ * @name coincatch#watchTickers
269
+ * @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
270
+ * @see https://coincatch.github.io/github.io/en/mix/#tickers-channel
271
+ * @param {string[]} symbols unified symbol of the market to watch the tickers for
272
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
273
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
274
+ */
275
+ async watchTickers(symbols = undefined, params = {}) {
276
+ await this.loadMarkets();
277
+ if (symbols === undefined) {
278
+ symbols = this.symbols;
279
+ }
280
+ const topics = [];
281
+ const messageHashes = [];
282
+ for (let i = 0; i < symbols.length; i++) {
283
+ const symbol = symbols[i];
284
+ const market = this.market(symbol);
285
+ const [instType, instId] = this.getPublicInstTypeAndId(market);
286
+ const args = {
287
+ 'instType': instType,
288
+ 'channel': 'ticker',
289
+ 'instId': instId,
290
+ };
291
+ topics.push(args);
292
+ messageHashes.push('ticker:' + symbol);
293
+ }
294
+ const tickers = await this.watchPublicMultiple(messageHashes, messageHashes, topics, params);
295
+ if (this.newUpdates) {
296
+ const result = {};
297
+ result[tickers['symbol']] = tickers;
298
+ return result;
299
+ }
300
+ return this.filterByArray(this.tickers, 'symbol', symbols);
301
+ }
302
+ handleTicker(client, message) {
303
+ //
304
+ // action: 'snapshot',
305
+ // arg: { instType: 'sp', channel: 'ticker', instId: 'ETHUSDT' },
306
+ // data: [
307
+ // {
308
+ // instId: 'ETHUSDT',
309
+ // last: '2421.06',
310
+ // open24h: '2416.93',
311
+ // high24h: '2441.47',
312
+ // low24h: '2352.99',
313
+ // bestBid: '2421.03',
314
+ // bestAsk: '2421.06',
315
+ // baseVolume: '9445.2043',
316
+ // quoteVolume: '22807159.1148',
317
+ // ts: 1728131730687,
318
+ // labeId: 0,
319
+ // openUtc: '2414.50',
320
+ // chgUTC: '0.00272',
321
+ // bidSz: '3.866',
322
+ // askSz: '0.124'
323
+ // }
324
+ // ],
325
+ // ts: 1728131730688
326
+ //
327
+ const arg = this.safeDict(message, 'arg', {});
328
+ let market = this.getMarketFromArg(arg);
329
+ const marketId = market['id'];
330
+ const hash = 'ticker:';
331
+ if (marketId.indexOf('_DMCBL') >= 0) {
332
+ market = this.handleDMCBLMarketByMessageHashes(market, hash, client);
333
+ }
334
+ const data = this.safeList(message, 'data', []);
335
+ const ticker = this.parseWsTicker(this.safeDict(data, 0, {}), market);
336
+ const symbol = market['symbol'];
337
+ this.tickers[symbol] = ticker;
338
+ const messageHash = hash + symbol;
339
+ client.resolve(this.tickers[symbol], messageHash);
340
+ }
341
+ parseWsTicker(ticker, market = undefined) {
342
+ //
343
+ // spot
344
+ // {
345
+ // instId: 'ETHUSDT',
346
+ // last: '2421.06',
347
+ // open24h: '2416.93',
348
+ // high24h: '2441.47',
349
+ // low24h: '2352.99',
350
+ // bestBid: '2421.03',
351
+ // bestAsk: '2421.06',
352
+ // baseVolume: '9445.2043',
353
+ // quoteVolume: '22807159.1148',
354
+ // ts: 1728131730687,
355
+ // labeId: 0,
356
+ // openUtc: '2414.50',
357
+ // chgUTC: '0.00272',
358
+ // bidSz: '3.866',
359
+ // askSz: '0.124'
360
+ // }
361
+ //
362
+ // swap
363
+ // {
364
+ // instId: 'ETHUSDT',
365
+ // last: '2434.47',
366
+ // bestAsk: '2434.48',
367
+ // bestBid: '2434.47',
368
+ // high24h: '2471.68',
369
+ // low24h: '2400.01',
370
+ // priceChangePercent: '0.00674',
371
+ // capitalRate: '0.000082',
372
+ // nextSettleTime: 1728489600000,
373
+ // systemTime: 1728471993602,
374
+ // markPrice: '2434.46',
375
+ // indexPrice: '2435.44',
376
+ // holding: '171450.25',
377
+ // baseVolume: '1699298.91',
378
+ // quoteVolume: '4144522832.32',
379
+ // openUtc: '2439.67',
380
+ // chgUTC: '-0.00213',
381
+ // symbolType: 1,
382
+ // symbolId: 'ETHUSDT_UMCBL',
383
+ // deliveryPrice: '0',
384
+ // bidSz: '26.12',
385
+ // askSz: '49.6'
386
+ // }
387
+ //
388
+ const last = this.safeString(ticker, 'last');
389
+ const timestamp = this.safeInteger2(ticker, 'ts', 'systemTime');
390
+ return this.safeTicker({
391
+ 'symbol': market['symbol'],
392
+ 'timestamp': timestamp,
393
+ 'datetime': this.iso8601(timestamp),
394
+ 'high': this.safeString(ticker, 'high24h'),
395
+ 'low': this.safeString(ticker, 'low24h'),
396
+ 'bid': this.safeString(ticker, 'bestBid'),
397
+ 'bidVolume': this.safeString(ticker, 'bidSz'),
398
+ 'ask': this.safeString(ticker, 'bestAsk'),
399
+ 'askVolume': this.safeString(ticker, 'askSz'),
400
+ 'vwap': undefined,
401
+ 'open': this.safeString2(ticker, 'open24h', 'openUtc'),
402
+ 'close': last,
403
+ 'last': last,
404
+ 'previousClose': undefined,
405
+ 'change': undefined,
406
+ 'percentage': Precise.stringMul(this.safeString(ticker, 'chgUTC'), '100'),
407
+ 'average': undefined,
408
+ 'baseVolume': this.safeNumber(ticker, 'baseVolume'),
409
+ 'quoteVolume': this.safeNumber(ticker, 'quoteVolume'),
410
+ 'indexPrice': this.safeString(ticker, 'indexPrice'),
411
+ 'markPrice': this.safeString(ticker, 'markPrice'),
412
+ 'info': ticker,
413
+ }, market);
414
+ }
415
+ /**
416
+ * @method
417
+ * @name coincatch#watchOHLCV
418
+ * @description watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
419
+ * @see https://coincatch.github.io/github.io/en/spot/#candlesticks-channel
420
+ * @param {string} symbol unified symbol of the market to fetch OHLCV data for
421
+ * @param {string} timeframe the length of time each candle represents
422
+ * @param {int} [since] timestamp in ms of the earliest candle to fetch (not including)
423
+ * @param {int} [limit] the maximum amount of candles to fetch (not including)
424
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
425
+ * @param {bool} [params.instType] the type of the instrument to fetch the OHLCV data for, 'SP' for spot markets, 'MC' for futures markets (default is 'SP')
426
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
427
+ */
428
+ async watchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
429
+ await this.loadMarkets();
430
+ const market = this.market(symbol);
431
+ const timeframes = this.options['timeframesForWs'];
432
+ const channel = 'candle' + this.safeString(timeframes, timeframe);
433
+ const [instType, instId] = this.getPublicInstTypeAndId(market);
434
+ const args = {
435
+ 'instType': instType,
436
+ 'channel': channel,
437
+ 'instId': instId,
438
+ };
439
+ const messageHash = 'ohlcv:' + symbol + ':' + timeframe;
440
+ const ohlcv = await this.watchPublic(messageHash, messageHash, args, params);
441
+ if (this.newUpdates) {
442
+ limit = ohlcv.getLimit(symbol, limit);
443
+ }
444
+ return this.filterBySinceLimit(ohlcv, since, limit, 0, true);
445
+ }
446
+ /**
447
+ * @method
448
+ * @name coincatch#unWatchOHLCV
449
+ * @description unsubscribe from the ohlcv channel
450
+ * @see https://www.bitget.com/api-doc/spot/websocket/public/Candlesticks-Channel
451
+ * @param {string} symbol unified symbol of the market to unwatch the ohlcv for
452
+ * @param timeframe
453
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
454
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
455
+ */
456
+ async unWatchOHLCV(symbol, timeframe = '1m', params = {}) {
457
+ await this.loadMarkets();
458
+ const timeframes = this.options['timeframesForWs'];
459
+ const interval = this.safeString(timeframes, timeframe);
460
+ const channel = 'candle' + interval;
461
+ return await this.unWatchChannel(symbol, channel, 'ohlcv:' + interval, params);
462
+ }
463
+ handleOHLCV(client, message) {
464
+ //
465
+ // {
466
+ // action: 'update',
467
+ // arg: { instType: 'sp', channel: 'candle1D', instId: 'ETHUSDT' },
468
+ // data: [
469
+ // [
470
+ // '1728316800000',
471
+ // '2474.5',
472
+ // '2478.21',
473
+ // '2459.8',
474
+ // '2463.51',
475
+ // '86.0551'
476
+ // ]
477
+ // ],
478
+ // ts: 1728317607657
479
+ // }
480
+ //
481
+ const arg = this.safeDict(message, 'arg', {});
482
+ let market = this.getMarketFromArg(arg);
483
+ const marketId = market['id'];
484
+ const hash = 'ohlcv:';
485
+ const data = this.safeList(message, 'data', []);
486
+ const channel = this.safeString(arg, 'channel');
487
+ const klineType = channel.slice(6);
488
+ const timeframe = this.findTimeframe(klineType);
489
+ if (marketId.indexOf('_DMCBL') >= 0) {
490
+ market = this.handleDMCBLMarketByMessageHashes(market, hash, client, timeframe);
491
+ }
492
+ const symbol = market['symbol'];
493
+ if (!(symbol in this.ohlcvs)) {
494
+ this.ohlcvs[symbol] = {};
495
+ }
496
+ if (!(timeframe in this.ohlcvs[symbol])) {
497
+ const limit = this.safeInteger(this.options, 'OHLCVLimit', 1000);
498
+ this.ohlcvs[symbol][timeframe] = new ArrayCacheByTimestamp(limit);
499
+ }
500
+ const stored = this.ohlcvs[symbol][timeframe];
501
+ for (let i = 0; i < data.length; i++) {
502
+ const candle = this.safeList(data, i, []);
503
+ const parsed = this.parseWsOHLCV(candle, market);
504
+ stored.append(parsed);
505
+ }
506
+ const messageHash = hash + symbol + ':' + timeframe;
507
+ client.resolve(stored, messageHash);
508
+ }
509
+ parseWsOHLCV(ohlcv, market = undefined) {
510
+ //
511
+ // [
512
+ // '1728316800000',
513
+ // '2474.5',
514
+ // '2478.21',
515
+ // '2459.8',
516
+ // '2463.51',
517
+ // '86.0551'
518
+ // ]
519
+ //
520
+ return [
521
+ this.safeInteger(ohlcv, 0),
522
+ this.safeNumber(ohlcv, 1),
523
+ this.safeNumber(ohlcv, 2),
524
+ this.safeNumber(ohlcv, 3),
525
+ this.safeNumber(ohlcv, 4),
526
+ this.safeNumber(ohlcv, 5),
527
+ ];
528
+ }
529
+ /**
530
+ * @method
531
+ * @name coincatch#watchOrderBook
532
+ * @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
533
+ * @see https://coincatch.github.io/github.io/en/spot/#depth-channel
534
+ * @param {string} symbol unified symbol of the market to fetch the order book for
535
+ * @param {int} [limit] the maximum amount of order book entries to return
536
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
537
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
538
+ */
539
+ async watchOrderBook(symbol, limit = undefined, params = {}) {
540
+ return await this.watchOrderBookForSymbols([symbol], limit, params);
541
+ }
542
+ /**
543
+ * @method
544
+ * @name coincatch#unWatchOrderBook
545
+ * @description unsubscribe from the orderbook channel
546
+ * @see https://coincatch.github.io/github.io/en/spot/#depth-channel
547
+ * @param {string} symbol unified symbol of the market to fetch the order book for
548
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
549
+ * @param {int} [params.limit] orderbook limit, default is undefined
550
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
551
+ */
552
+ async unWatchOrderBook(symbol, params = {}) {
553
+ await this.loadMarkets();
554
+ let channel = 'books';
555
+ const limit = this.safeInteger(params, 'limit');
556
+ if ((limit === 5) || (limit === 15)) {
557
+ params = this.omit(params, 'limit');
558
+ channel += limit.toString();
559
+ }
560
+ return await this.unWatchChannel(symbol, channel, channel, params);
561
+ }
562
+ /**
563
+ * @method
564
+ * @name coincatch#watchOrderBookForSymbols
565
+ * @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
566
+ * @see https://coincatch.github.io/github.io/en/spot/#depth-channel
567
+ * @param symbols
568
+ * @param {int} [limit] the maximum amount of order book entries to return
569
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
570
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
571
+ */
572
+ async watchOrderBookForSymbols(symbols, limit = undefined, params = {}) {
573
+ await this.loadMarkets();
574
+ symbols = this.marketSymbols(symbols);
575
+ const channel = 'books';
576
+ const topics = [];
577
+ const messageHashes = [];
578
+ for (let i = 0; i < symbols.length; i++) {
579
+ const symbol = symbols[i];
580
+ const market = this.market(symbol);
581
+ const [instType, instId] = this.getPublicInstTypeAndId(market);
582
+ const args = {
583
+ 'instType': instType,
584
+ 'channel': channel,
585
+ 'instId': instId,
586
+ };
587
+ topics.push(args);
588
+ messageHashes.push(channel + ':' + symbol);
589
+ }
590
+ const orderbook = await this.watchPublicMultiple(messageHashes, messageHashes, topics, params);
591
+ return orderbook.limit();
592
+ }
593
+ handleOrderBook(client, message) {
594
+ //
595
+ // {
596
+ // action: 'update',
597
+ // arg: { instType: 'sp', channel: 'books', instId: 'ETHUSDT' },
598
+ // data: [
599
+ // {
600
+ // asks: [ [ 2507.07, 0.4248 ] ],
601
+ // bids: [ [ 2507.05, 0.1198 ] ],
602
+ // checksum: -1400923312,
603
+ // ts: '1728339446908'
604
+ // }
605
+ // ],
606
+ // ts: 1728339446908
607
+ // }
608
+ //
609
+ const arg = this.safeDict(message, 'arg', {});
610
+ let market = this.getMarketFromArg(arg);
611
+ const marketId = market['id'];
612
+ const hash = 'books:';
613
+ if (marketId.indexOf('_DMCBL') >= 0) {
614
+ market = this.handleDMCBLMarketByMessageHashes(market, hash, client);
615
+ }
616
+ const symbol = market['symbol'];
617
+ const channel = this.safeString(arg, 'channel');
618
+ const messageHash = hash + symbol;
619
+ const data = this.safeList(message, 'data', []);
620
+ const rawOrderBook = this.safeDict(data, 0);
621
+ const timestamp = this.safeInteger(rawOrderBook, 'ts');
622
+ const incrementalBook = channel;
623
+ if (incrementalBook) {
624
+ if (!(symbol in this.orderbooks)) {
625
+ const ob = this.countedOrderBook({});
626
+ ob['symbol'] = symbol;
627
+ this.orderbooks[symbol] = ob;
628
+ }
629
+ const storedOrderBook = this.orderbooks[symbol];
630
+ const asks = this.safeList(rawOrderBook, 'asks', []);
631
+ const bids = this.safeList(rawOrderBook, 'bids', []);
632
+ this.handleDeltas(storedOrderBook['asks'], asks);
633
+ this.handleDeltas(storedOrderBook['bids'], bids);
634
+ storedOrderBook['timestamp'] = timestamp;
635
+ storedOrderBook['datetime'] = this.iso8601(timestamp);
636
+ const checksum = this.safeBool(this.options, 'checksum', true);
637
+ const isSnapshot = this.safeString(message, 'action') === 'snapshot';
638
+ if (!isSnapshot && checksum) {
639
+ const storedAsks = storedOrderBook['asks'];
640
+ const storedBids = storedOrderBook['bids'];
641
+ const asksLength = storedAsks.length;
642
+ const bidsLength = storedBids.length;
643
+ const payloadArray = [];
644
+ for (let i = 0; i < 25; i++) {
645
+ if (i < bidsLength) {
646
+ payloadArray.push(storedBids[i][2][0]);
647
+ payloadArray.push(storedBids[i][2][1]);
648
+ }
649
+ if (i < asksLength) {
650
+ payloadArray.push(storedAsks[i][2][0]);
651
+ payloadArray.push(storedAsks[i][2][1]);
652
+ }
653
+ }
654
+ const payload = payloadArray.join(':');
655
+ const calculatedChecksum = this.crc32(payload, true);
656
+ const responseChecksum = this.safeInteger(rawOrderBook, 'checksum');
657
+ if (calculatedChecksum !== responseChecksum) {
658
+ this.spawn(this.handleCheckSumError, client, symbol, messageHash);
659
+ return;
660
+ }
661
+ }
662
+ }
663
+ else {
664
+ const orderbook = this.orderBook({});
665
+ const parsedOrderbook = this.parseOrderBook(rawOrderBook, symbol, timestamp);
666
+ orderbook.reset(parsedOrderbook);
667
+ this.orderbooks[symbol] = orderbook;
668
+ }
669
+ client.resolve(this.orderbooks[symbol], messageHash);
670
+ }
671
+ async handleCheckSumError(client, symbol, messageHash) {
672
+ await this.unWatchOrderBook(symbol);
673
+ const error = new ChecksumError(this.id + ' ' + this.orderbookChecksumMessage(symbol));
674
+ client.reject(error, messageHash);
675
+ }
676
+ handleDelta(bookside, delta) {
677
+ const bidAsk = this.parseBidAsk(delta, 0, 1);
678
+ bidAsk.push(delta);
679
+ bookside.storeArray(bidAsk);
680
+ }
681
+ handleDeltas(bookside, deltas) {
682
+ for (let i = 0; i < deltas.length; i++) {
683
+ this.handleDelta(bookside, deltas[i]);
684
+ }
685
+ }
686
+ /**
687
+ * @method
688
+ * @name coincatch#watchTrades
689
+ * @description get the list of most recent trades for a particular symbol
690
+ * @see https://coincatch.github.io/github.io/en/spot/#trades-channel
691
+ * @param {string} symbol unified symbol of the market to fetch trades for
692
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
693
+ * @param {int} [limit] the maximum amount of trades to fetch
694
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
695
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
696
+ */
697
+ async watchTrades(symbol, since = undefined, limit = undefined, params = {}) {
698
+ return await this.watchTradesForSymbols([symbol], since, limit, params);
699
+ }
700
+ /**
701
+ * @method
702
+ * @name coincatch#watchTradesForSymbols
703
+ * @description watches information on multiple trades made in a market
704
+ * @see https://coincatch.github.io/github.io/en/spot/#trades-channel
705
+ * @param symbols
706
+ * @param {int} [since] the earliest time in ms to fetch orders for
707
+ * @param {int} [limit] the maximum number of trade structures to retrieve
708
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
709
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
710
+ */
711
+ async watchTradesForSymbols(symbols, since = undefined, limit = undefined, params = {}) {
712
+ const symbolsLength = symbols.length;
713
+ if (symbolsLength === 0) {
714
+ throw new ArgumentsRequired(this.id + ' watchTradesForSymbols() requires a non-empty array of symbols');
715
+ }
716
+ await this.loadMarkets();
717
+ symbols = this.marketSymbols(symbols);
718
+ const topics = [];
719
+ const messageHashes = [];
720
+ for (let i = 0; i < symbols.length; i++) {
721
+ const symbol = symbols[i];
722
+ const market = this.market(symbol);
723
+ const [instType, instId] = this.getPublicInstTypeAndId(market);
724
+ const args = {
725
+ 'instType': instType,
726
+ 'channel': 'trade',
727
+ 'instId': instId,
728
+ };
729
+ topics.push(args);
730
+ messageHashes.push('trade:' + symbol);
731
+ }
732
+ const trades = await this.watchPublicMultiple(messageHashes, messageHashes, topics, params);
733
+ if (this.newUpdates) {
734
+ const first = this.safeDict(trades, 0);
735
+ const tradeSymbol = this.safeString(first, 'symbol');
736
+ limit = trades.getLimit(tradeSymbol, limit);
737
+ }
738
+ return this.filterBySinceLimit(trades, since, limit, 'timestamp', true);
739
+ }
740
+ /**
741
+ * @method
742
+ * @name coincatch#unWatchTrades
743
+ * @description unsubscribe from the trades channel
744
+ * @see https://coincatch.github.io/github.io/en/spot/#trades-channel
745
+ * @param {string} symbol unified symbol of the market to unwatch the trades for
746
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
747
+ * @returns {any} status of the unwatch request
748
+ */
749
+ async unWatchTrades(symbol, params = {}) {
750
+ await this.loadMarkets();
751
+ return await this.unWatchChannel(symbol, 'trade', 'trade', params);
752
+ }
753
+ handleTrades(client, message) {
754
+ //
755
+ // {
756
+ // action: 'update',
757
+ // arg: { instType: 'sp', channel: 'trade', instId: 'ETHUSDT' },
758
+ // data: [ [ '1728341807469', '2421.41', '0.478', 'sell' ] ],
759
+ // ts: 1728341807482
760
+ // }
761
+ //
762
+ const arg = this.safeDict(message, 'arg', {});
763
+ let market = this.getMarketFromArg(arg);
764
+ const marketId = market['id'];
765
+ const hash = 'trade:';
766
+ if (marketId.indexOf('_DMCBL') >= 0) {
767
+ market = this.handleDMCBLMarketByMessageHashes(market, hash, client);
768
+ }
769
+ const symbol = market['symbol'];
770
+ if (!(symbol in this.trades)) {
771
+ const limit = this.safeInteger(this.options, 'tradesLimit', 1000);
772
+ this.trades[symbol] = new ArrayCache(limit);
773
+ }
774
+ const stored = this.trades[symbol];
775
+ let data = this.safeList(message, 'data', []);
776
+ if (data !== undefined) {
777
+ data = this.sortBy(data, 0);
778
+ for (let i = 0; i < data.length; i++) {
779
+ const trade = this.safeList(data, i);
780
+ const parsed = this.parseWsTrade(trade, market);
781
+ stored.append(parsed);
782
+ }
783
+ }
784
+ const messageHash = hash + symbol;
785
+ client.resolve(stored, messageHash);
786
+ }
787
+ parseWsTrade(trade, market = undefined) {
788
+ //
789
+ // [
790
+ // '1728341807469',
791
+ // '2421.41',
792
+ // '0.478',
793
+ // 'sell'
794
+ // ]
795
+ //
796
+ const timestamp = this.safeInteger(trade, 0);
797
+ return this.safeTrade({
798
+ 'id': undefined,
799
+ 'timestamp': timestamp,
800
+ 'datetime': this.iso8601(timestamp),
801
+ 'symbol': market['symbol'],
802
+ 'side': this.safeStringLower(trade, 3),
803
+ 'price': this.safeString(trade, 1),
804
+ 'amount': this.safeString(trade, 2),
805
+ 'cost': undefined,
806
+ 'takerOrMaker': undefined,
807
+ 'type': undefined,
808
+ 'order': undefined,
809
+ 'fee': undefined,
810
+ 'info': trade,
811
+ }, market);
812
+ }
813
+ /**
814
+ * @method
815
+ * @name coincatch#watchBalance
816
+ * @description watch balance and get the amount of funds available for trading or funds locked in orders
817
+ * @see https://coincatch.github.io/github.io/en/spot/#account-channel
818
+ * @see https://coincatch.github.io/github.io/en/mix/#account-channel
819
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
820
+ * @param {str} [params.type] 'spot' or 'swap' (default is 'spot')
821
+ * @param {string} [params.instType] *swap only* 'umcbl' or 'dmcbl' (default is 'umcbl')
822
+ * @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
823
+ */
824
+ async watchBalance(params = {}) {
825
+ let type = undefined;
826
+ [type, params] = this.handleMarketTypeAndParams('watchBalance', undefined, params);
827
+ let instType = 'spbl'; // must be lower case for spot
828
+ if (type === 'swap') {
829
+ instType = 'umcbl';
830
+ }
831
+ const channel = 'account';
832
+ [instType, params] = this.handleOptionAndParams(params, 'watchBalance', 'instType', instType);
833
+ const args = {
834
+ 'instType': instType,
835
+ 'channel': channel,
836
+ 'instId': 'default',
837
+ };
838
+ const messageHash = 'balance:' + instType.toLowerCase();
839
+ return await this.watchPrivate(messageHash, messageHash, args, params);
840
+ }
841
+ handleBalance(client, message) {
842
+ //
843
+ // spot
844
+ // {
845
+ // action: 'snapshot',
846
+ // arg: { instType: 'spbl', channel: 'account', instId: 'default' },
847
+ // data: [
848
+ // {
849
+ // coinId: '3',
850
+ // coinName: 'ETH',
851
+ // available: '0.0000832',
852
+ // frozen: '0',
853
+ // lock: '0'
854
+ // }
855
+ // ],
856
+ // ts: 1728464548725
857
+ // }
858
+ //
859
+ // // swap
860
+ // {
861
+ // action: 'snapshot',
862
+ // arg: { instType: 'dmcbl', channel: 'account', instId: 'default' },
863
+ // data: [
864
+ // {
865
+ // marginCoin: 'ETH',
866
+ // locked: '0.00000000',
867
+ // available: '0.00001203',
868
+ // maxOpenPosAvailable: '0.00001203',
869
+ // maxTransferOut: '0.00001203',
870
+ // equity: '0.00001203',
871
+ // usdtEquity: '0.029092328738',
872
+ // coinDisplayName: 'ETH'
873
+ // }
874
+ // ],
875
+ // ts: 1728650777643
876
+ // }
877
+ //
878
+ const data = this.safeList(message, 'data', []);
879
+ for (let i = 0; i < data.length; i++) {
880
+ const rawBalance = data[i];
881
+ const currencyId = this.safeString2(rawBalance, 'coinName', 'marginCoin');
882
+ const code = this.safeCurrencyCode(currencyId);
883
+ const account = (code in this.balance) ? this.balance[code] : this.account();
884
+ const freeQuery = ('maxTransferOut' in rawBalance) ? 'maxTransferOut' : 'available';
885
+ account['free'] = this.safeString(rawBalance, freeQuery);
886
+ account['total'] = this.safeString(rawBalance, 'equity');
887
+ account['used'] = this.safeString(rawBalance, 'frozen');
888
+ this.balance[code] = account;
889
+ }
890
+ this.balance = this.safeBalance(this.balance);
891
+ const arg = this.safeDict(message, 'arg');
892
+ const instType = this.safeStringLower(arg, 'instType');
893
+ const messageHash = 'balance:' + instType;
894
+ client.resolve(this.balance, messageHash);
895
+ }
896
+ /**
897
+ * @method
898
+ * @name coincatch#watchOrders
899
+ * @description watches information on multiple orders made by the user
900
+ * @see https://coincatch.github.io/github.io/en/spot/#order-channel
901
+ * @see https://coincatch.github.io/github.io/en/mix/#order-channel
902
+ * @see https://coincatch.github.io/github.io/en/mix/#plan-order-channel
903
+ * @param {string} symbol unified market symbol of the market orders were made in
904
+ * @param {int} [since] the earliest time in ms to fetch orders for
905
+ * @param {int} [limit] the maximum number of order structures to retrieve
906
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
907
+ * @param {string} [params.type] 'spot' or 'swap'
908
+ * @param {string} [params.instType] *swap only* 'umcbl' or 'dmcbl' (default is 'umcbl')
909
+ * @param {bool} [params.trigger] *swap only* whether to watch trigger orders (default is false)
910
+ * @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
911
+ */
912
+ async watchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
913
+ const methodName = 'watchOrders';
914
+ await this.loadMarkets();
915
+ let market = undefined;
916
+ let marketId = undefined;
917
+ if (symbol !== undefined) {
918
+ market = this.market(symbol);
919
+ symbol = market['symbol'];
920
+ marketId = market['id'];
921
+ }
922
+ let marketType = undefined;
923
+ [marketType, params] = this.handleMarketTypeAndParams(methodName, market, params);
924
+ let instType = 'spbl';
925
+ let instId = marketId;
926
+ if (marketType === 'spot') {
927
+ if (symbol === undefined) {
928
+ throw new ArgumentsRequired(this.id + ' ' + methodName + '() requires a symbol argument for ' + marketType + ' markets.');
929
+ }
930
+ }
931
+ else {
932
+ instId = 'default';
933
+ instType = 'umcbl';
934
+ if (symbol === undefined) {
935
+ [instType, params] = this.handleOptionAndParams(params, methodName, 'instType', instType);
936
+ }
937
+ else {
938
+ if (marketId.indexOf('_DMCBL') >= 0) {
939
+ instType = 'dmcbl';
940
+ }
941
+ }
942
+ }
943
+ let channel = 'orders';
944
+ const isTrigger = this.safeBool(params, 'trigger');
945
+ if (isTrigger) {
946
+ channel = 'ordersAlgo'; // channel does not return any data
947
+ params = this.omit(params, 'trigger');
948
+ }
949
+ const args = {
950
+ 'instType': instType,
951
+ 'channel': channel,
952
+ 'instId': instId,
953
+ };
954
+ let messageHash = 'orders';
955
+ if (symbol !== undefined) {
956
+ messageHash += ':' + symbol;
957
+ }
958
+ const orders = await this.watchPrivate(messageHash, messageHash, args, params);
959
+ if (this.newUpdates) {
960
+ limit = orders.getLimit(symbol, limit);
961
+ }
962
+ return this.filterBySymbolSinceLimit(orders, symbol, since, limit, true);
963
+ }
964
+ handleOrder(client, message) {
965
+ //
966
+ // spot
967
+ //
968
+ // {
969
+ // action: 'snapshot',
970
+ // arg: { instType: 'spbl', channel: 'orders', instId: 'ETHUSDT_SPBL' },
971
+ // data: [
972
+ // {
973
+ // instId: 'ETHUSDT_SPBL',
974
+ // ordId: '1228627925964996608',
975
+ // clOrdId: 'f0cccf74-c535-4523-a53d-dbe3b9958559',
976
+ // px: '2000',
977
+ // sz: '0.001',
978
+ // notional: '2',
979
+ // ordType: 'limit',
980
+ // force: 'normal',
981
+ // side: 'buy',
982
+ // accFillSz: '0',
983
+ // avgPx: '0',
984
+ // status: 'new',
985
+ // cTime: 1728653645030,
986
+ // uTime: 1728653645030,
987
+ // orderFee: [],
988
+ // eps: 'API'
989
+ // }
990
+ // ],
991
+ // ts: 1728653645046
992
+ // }
993
+ //
994
+ // swap
995
+ //
996
+ // {
997
+ // action: 'snapshot',
998
+ // arg: { instType: 'umcbl', channel: 'orders', instId: 'default' },
999
+ // data: [
1000
+ // {
1001
+ // accFillSz: '0',
1002
+ // cTime: 1728653796976,
1003
+ // clOrdId: '1228628563272753152',
1004
+ // eps: 'API',
1005
+ // force: 'normal',
1006
+ // hM: 'single_hold',
1007
+ // instId: 'ETHUSDT_UMCBL',
1008
+ // lever: '5',
1009
+ // low: false,
1010
+ // notionalUsd: '20',
1011
+ // ordId: '1228628563188867072',
1012
+ // ordType: 'limit',
1013
+ // orderFee: [],
1014
+ // posSide: 'net',
1015
+ // px: '2000',
1016
+ // side: 'buy',
1017
+ // status: 'new',
1018
+ // sz: '0.01',
1019
+ // tS: 'buy_single',
1020
+ // tdMode: 'cross',
1021
+ // tgtCcy: 'USDT',
1022
+ // uTime: 1728653796976
1023
+ // }
1024
+ // ],
1025
+ // ts: 1728653797002
1026
+ // }
1027
+ //
1028
+ //
1029
+ const arg = this.safeDict(message, 'arg', {});
1030
+ const instType = this.safeString(arg, 'instType');
1031
+ const argInstId = this.safeString(arg, 'instId');
1032
+ let marketType = undefined;
1033
+ if (instType === 'spbl') {
1034
+ marketType = 'spot';
1035
+ }
1036
+ else {
1037
+ marketType = 'swap';
1038
+ }
1039
+ const data = this.safeList(message, 'data', []);
1040
+ if (this.orders === undefined) {
1041
+ const limit = this.safeInteger(this.options, 'ordersLimit', 1000);
1042
+ this.orders = new ArrayCacheBySymbolById(limit);
1043
+ }
1044
+ const hash = 'orders';
1045
+ const stored = this.orders;
1046
+ let symbol = undefined;
1047
+ for (let i = 0; i < data.length; i++) {
1048
+ const order = data[i];
1049
+ const marketId = this.safeString(order, 'instId', argInstId);
1050
+ const market = this.safeMarket(marketId, undefined, undefined, marketType);
1051
+ const parsed = this.parseWsOrder(order, market);
1052
+ stored.append(parsed);
1053
+ symbol = parsed['symbol'];
1054
+ const messageHash = 'orders:' + symbol;
1055
+ client.resolve(stored, messageHash);
1056
+ }
1057
+ client.resolve(stored, hash);
1058
+ }
1059
+ parseWsOrder(order, market = undefined) {
1060
+ //
1061
+ // spot
1062
+ // {
1063
+ // instId: 'ETHUSDT_SPBL',
1064
+ // ordId: '1228627925964996608',
1065
+ // clOrdId: 'f0cccf74-c535-4523-a53d-dbe3b9958559',
1066
+ // px: '2000',
1067
+ // sz: '0.001',
1068
+ // notional: '2',
1069
+ // ordType: 'limit',
1070
+ // force: 'normal',
1071
+ // side: 'buy',
1072
+ // accFillSz: '0',
1073
+ // avgPx: '0',
1074
+ // status: 'new',
1075
+ // cTime: 1728653645030,
1076
+ // uTime: 1728653645030,
1077
+ // orderFee: orderFee: [ { fee: '0', feeCcy: 'USDT' } ],
1078
+ // eps: 'API'
1079
+ // }
1080
+ //
1081
+ // swap
1082
+ // {
1083
+ // accFillSz: '0',
1084
+ // cTime: 1728653796976,
1085
+ // clOrdId: '1228628563272753152',
1086
+ // eps: 'API',
1087
+ // force: 'normal',
1088
+ // hM: 'single_hold',
1089
+ // instId: 'ETHUSDT_UMCBL',
1090
+ // lever: '5',
1091
+ // low: false,
1092
+ // notionalUsd: '20',
1093
+ // ordId: '1228628563188867072',
1094
+ // ordType: 'limit',
1095
+ // orderFee: [ { fee: '0', feeCcy: 'USDT' } ],
1096
+ // posSide: 'net',
1097
+ // px: '2000',
1098
+ // side: 'buy',
1099
+ // status: 'new',
1100
+ // sz: '0.01',
1101
+ // tS: 'buy_single',
1102
+ // tdMode: 'cross',
1103
+ // tgtCcy: 'USDT',
1104
+ // uTime: 1728653796976
1105
+ // }
1106
+ //
1107
+ const marketId = this.safeString(order, 'instId');
1108
+ const settleId = this.safeString(order, 'tgtCcy');
1109
+ market = this.safeMarketCustom(marketId, market, settleId);
1110
+ const timestamp = this.safeInteger(order, 'cTime');
1111
+ const symbol = market['symbol'];
1112
+ const rawStatus = this.safeString(order, 'status');
1113
+ const orderFee = this.safeList(order, 'orderFee', []);
1114
+ const fee = this.safeDict(orderFee, 0);
1115
+ const feeCost = Precise.stringMul(this.safeString(fee, 'fee'), '-1');
1116
+ const feeCurrency = this.safeString(fee, 'feeCcy');
1117
+ let price = this.omitZero(this.safeString(order, 'px'));
1118
+ const priceAvg = this.omitZero(this.safeString(order, 'avgPx'));
1119
+ if (price === undefined) {
1120
+ price = priceAvg;
1121
+ }
1122
+ const type = this.safeStringLower(order, 'ordType');
1123
+ return this.safeOrder({
1124
+ 'id': this.safeString(order, 'ordId'),
1125
+ 'clientOrderId': this.safeString(order, 'clOrdId'),
1126
+ 'timestamp': timestamp,
1127
+ 'datetime': this.iso8601(timestamp),
1128
+ 'lastTradeTimestamp': undefined,
1129
+ 'lastUpdateTimestamp': this.safeInteger(order, 'uTime'),
1130
+ 'status': this.parseOrderStatus(rawStatus),
1131
+ 'symbol': symbol,
1132
+ 'type': type,
1133
+ 'timeInForce': this.parseOrderTimeInForce(this.safeStringLower(order, 'force')),
1134
+ 'side': this.safeStringLower(order, 'side'),
1135
+ 'price': price,
1136
+ 'average': this.safeString(order, 'avgPx'),
1137
+ 'amount': this.safeString(order, 'sz'),
1138
+ 'filled': this.safeString(order, 'accFillSz'),
1139
+ 'remaining': undefined,
1140
+ 'triggerPrice': undefined,
1141
+ 'takeProfitPrice': undefined,
1142
+ 'stopLossPrice': undefined,
1143
+ 'cost': this.safeString(order, 'notional'),
1144
+ 'trades': undefined,
1145
+ 'fee': {
1146
+ 'currency': feeCurrency,
1147
+ 'cost': feeCost,
1148
+ },
1149
+ 'reduceOnly': this.safeBool(order, 'low'),
1150
+ 'postOnly': undefined,
1151
+ 'info': order,
1152
+ }, market);
1153
+ }
1154
+ /**
1155
+ * @method
1156
+ * @name coincatch#watchPositions
1157
+ * @description watch all open positions
1158
+ * @see https://coincatch.github.io/github.io/en/mix/#positions-channel
1159
+ * @param {string[]|undefined} symbols list of unified market symbols
1160
+ * @param since
1161
+ * @param limit
1162
+ * @param {object} params extra parameters specific to the exchange API endpoint
1163
+ * @returns {object[]} a list of [position structure]{@link https://docs.ccxt.com/en/latest/manual.html#position-structure}
1164
+ */
1165
+ async watchPositions(symbols = undefined, since = undefined, limit = undefined, params = {}) {
1166
+ await this.loadMarkets();
1167
+ symbols = this.marketSymbols(symbols, 'swap');
1168
+ const messageHashes = [];
1169
+ const hash = 'positions';
1170
+ let instTypes = [];
1171
+ if (symbols !== undefined) {
1172
+ for (let i = 0; i < symbols.length; i++) {
1173
+ const symbol = symbols[i];
1174
+ const market = this.market(symbol);
1175
+ const instType = this.getPrivateInstType(market);
1176
+ if (!this.inArray(instType, instTypes)) {
1177
+ instTypes.push(instType);
1178
+ }
1179
+ messageHashes.push(hash + '::' + symbol);
1180
+ }
1181
+ }
1182
+ else {
1183
+ instTypes = ['umcbl', 'dmcbl'];
1184
+ messageHashes.push(hash);
1185
+ }
1186
+ const args = [];
1187
+ const subscribeHashes = [];
1188
+ for (let i = 0; i < instTypes.length; i++) {
1189
+ const instType = instTypes[i];
1190
+ const arg = {
1191
+ 'instType': instType,
1192
+ 'channel': hash,
1193
+ 'instId': 'default',
1194
+ };
1195
+ subscribeHashes.push(hash + '::' + instType);
1196
+ args.push(arg);
1197
+ }
1198
+ const newPositions = await this.watchPrivateMultiple(messageHashes, subscribeHashes, args, params);
1199
+ if (this.newUpdates) {
1200
+ return newPositions;
1201
+ }
1202
+ return this.filterBySymbolsSinceLimit(newPositions, symbols, since, limit, true);
1203
+ }
1204
+ getPrivateInstType(market) {
1205
+ const marketId = market['id'];
1206
+ if (marketId.indexOf('_DMCBL') >= 0) {
1207
+ return 'dmcbl';
1208
+ }
1209
+ return 'umcbl';
1210
+ }
1211
+ handlePositions(client, message) {
1212
+ //
1213
+ // {
1214
+ // action: 'snapshot',
1215
+ // arg: { instType: 'umcbl', channel: 'positions', instId: 'default' },
1216
+ // data: [
1217
+ // {
1218
+ // posId: '1221355728745619456',
1219
+ // instId: 'ETHUSDT_UMCBL',
1220
+ // instName: 'ETHUSDT',
1221
+ // marginCoin: 'USDT',
1222
+ // margin: '5.27182',
1223
+ // marginMode: 'crossed',
1224
+ // holdSide: 'long',
1225
+ // holdMode: 'single_hold',
1226
+ // total: '0.01',
1227
+ // available: '0.01',
1228
+ // locked: '0',
1229
+ // averageOpenPrice: '2635.91',
1230
+ // leverage: 5,
1231
+ // achievedProfits: '0',
1232
+ // upl: '-0.0267',
1233
+ // uplRate: '-0.005064664576',
1234
+ // liqPx: '-3110.66866033',
1235
+ // keepMarginRate: '0.0033',
1236
+ // marginRate: '0.002460827254',
1237
+ // cTime: '1726919818102',
1238
+ // uTime: '1728919604312',
1239
+ // markPrice: '2633.24',
1240
+ // autoMargin: 'off'
1241
+ // }
1242
+ // ],
1243
+ // ts: 1728919604329
1244
+ // }
1245
+ //
1246
+ if (this.positions === undefined) {
1247
+ this.positions = new ArrayCacheBySymbolBySide();
1248
+ }
1249
+ const cache = this.positions;
1250
+ const rawPositions = this.safeValue(message, 'data', []);
1251
+ const dataLength = rawPositions.length;
1252
+ if (dataLength === 0) {
1253
+ return;
1254
+ }
1255
+ const newPositions = [];
1256
+ const symbols = [];
1257
+ for (let i = 0; i < rawPositions.length; i++) {
1258
+ const rawPosition = rawPositions[i];
1259
+ const position = this.parseWsPosition(rawPosition);
1260
+ symbols.push(position['symbol']);
1261
+ newPositions.push(position);
1262
+ cache.append(position);
1263
+ }
1264
+ const hash = 'positions';
1265
+ const messageHashes = this.findMessageHashes(client, hash);
1266
+ for (let i = 0; i < messageHashes.length; i++) {
1267
+ const messageHash = messageHashes[i];
1268
+ const parts = messageHash.split('::');
1269
+ const symbol = parts[1];
1270
+ if (this.inArray(symbol, symbols)) {
1271
+ const positionsForSymbol = [];
1272
+ for (let j = 0; j < newPositions.length; j++) {
1273
+ const position = newPositions[j];
1274
+ if (position['symbol'] === symbol) {
1275
+ positionsForSymbol.push(position);
1276
+ }
1277
+ }
1278
+ client.resolve(positionsForSymbol, messageHash);
1279
+ }
1280
+ }
1281
+ client.resolve(newPositions, hash);
1282
+ }
1283
+ parseWsPosition(position, market = undefined) {
1284
+ //
1285
+ // {
1286
+ // posId: '1221355728745619456',
1287
+ // instId: 'ETHUSDT_UMCBL',
1288
+ // instName: 'ETHUSDT',
1289
+ // marginCoin: 'USDT',
1290
+ // margin: '5.27182',
1291
+ // marginMode: 'crossed',
1292
+ // holdSide: 'long',
1293
+ // holdMode: 'single_hold',
1294
+ // total: '0.01',
1295
+ // available: '0.01',
1296
+ // locked: '0',
1297
+ // averageOpenPrice: '2635.91',
1298
+ // leverage: 5,
1299
+ // achievedProfits: '0',
1300
+ // upl: '-0.0267',
1301
+ // uplRate: '-0.005064664576',
1302
+ // liqPx: '-3110.66866033',
1303
+ // keepMarginRate: '0.0033',
1304
+ // marginRate: '0.002460827254',
1305
+ // cTime: '1726919818102',
1306
+ // uTime: '1728919604312',
1307
+ // markPrice: '2633.24',
1308
+ // autoMargin: 'off'
1309
+ // }
1310
+ //
1311
+ const marketId = this.safeString(position, 'symbol');
1312
+ const settleId = this.safeString(position, 'marginCoin');
1313
+ market = this.safeMarketCustom(marketId, market, settleId);
1314
+ const timestamp = this.safeInteger(position, 'cTime');
1315
+ const marginModeId = this.safeString(position, 'marginMode');
1316
+ const marginMode = this.getSupportedMapping(marginModeId, {
1317
+ 'crossed': 'cross',
1318
+ 'isolated': 'isolated',
1319
+ });
1320
+ let isHedged = undefined;
1321
+ const holdMode = this.safeString(position, 'holdMode');
1322
+ if (holdMode === 'double_hold') {
1323
+ isHedged = true;
1324
+ }
1325
+ else if (holdMode === 'single_hold') {
1326
+ isHedged = false;
1327
+ }
1328
+ const percentageDecimal = this.safeString(position, 'uplRate');
1329
+ const percentage = Precise.stringMul(percentageDecimal, '100');
1330
+ const margin = this.safeNumber(position, 'margin');
1331
+ return this.safePosition({
1332
+ 'symbol': market['symbol'],
1333
+ 'id': undefined,
1334
+ 'timestamp': timestamp,
1335
+ 'datetime': this.iso8601(timestamp),
1336
+ 'contracts': this.safeNumber(position, 'total'),
1337
+ 'contractSize': undefined,
1338
+ 'side': this.safeStringLower(position, 'holdSide'),
1339
+ 'notional': margin,
1340
+ 'leverage': this.safeInteger(position, 'leverage'),
1341
+ 'unrealizedPnl': this.safeNumber(position, 'upl'),
1342
+ 'realizedPnl': this.safeNumber(position, 'achievedProfits'),
1343
+ 'collateral': undefined,
1344
+ 'entryPrice': this.safeNumber(position, 'averageOpenPrice'),
1345
+ 'markPrice': this.safeNumber(position, 'markPrice'),
1346
+ 'liquidationPrice': this.safeNumber(position, 'liqPx'),
1347
+ 'marginMode': marginMode,
1348
+ 'hedged': isHedged,
1349
+ 'maintenanceMargin': undefined,
1350
+ 'maintenanceMarginPercentage': this.safeNumber(position, 'keepMarginRate'),
1351
+ 'initialMargin': margin,
1352
+ 'initialMarginPercentage': undefined,
1353
+ 'marginRatio': this.safeNumber(position, 'marginRate'),
1354
+ 'lastUpdateTimestamp': this.safeInteger(position, 'uTime'),
1355
+ 'lastPrice': undefined,
1356
+ 'stopLossPrice': undefined,
1357
+ 'takeProfitPrice': undefined,
1358
+ 'percentage': percentage,
1359
+ 'info': position,
1360
+ });
1361
+ }
1362
+ handleErrorMessage(client, message) {
1363
+ //
1364
+ // { event: "error", code: 30001, msg: "Channel does not exist" }
1365
+ //
1366
+ const event = this.safeString(message, 'event');
1367
+ try {
1368
+ if (event === 'error') {
1369
+ const code = this.safeString(message, 'code');
1370
+ const feedback = this.id + ' ' + this.json(message);
1371
+ this.throwExactlyMatchedException(this.exceptions['ws']['exact'], code, feedback);
1372
+ const msg = this.safeString(message, 'msg', '');
1373
+ this.throwBroadlyMatchedException(this.exceptions['ws']['broad'], msg, feedback);
1374
+ throw new ExchangeError(feedback);
1375
+ }
1376
+ return false;
1377
+ }
1378
+ catch (e) {
1379
+ if (e instanceof AuthenticationError) {
1380
+ const messageHash = 'authenticated';
1381
+ client.reject(e, messageHash);
1382
+ if (messageHash in client.subscriptions) {
1383
+ delete client.subscriptions[messageHash];
1384
+ }
1385
+ }
1386
+ else {
1387
+ client.reject(e);
1388
+ }
1389
+ return true;
1390
+ }
1391
+ }
1392
+ handleMessage(client, message) {
1393
+ // todo handle with subscribe and unsubscribe
1394
+ if (this.handleErrorMessage(client, message)) {
1395
+ return;
1396
+ }
1397
+ const content = this.safeString(message, 'message');
1398
+ if (content === 'pong') {
1399
+ this.handlePong(client, message);
1400
+ return;
1401
+ }
1402
+ if (message === 'pong') {
1403
+ this.handlePong(client, message);
1404
+ return;
1405
+ }
1406
+ const event = this.safeString(message, 'event');
1407
+ if (event === 'login') {
1408
+ this.handleAuthenticate(client, message);
1409
+ return;
1410
+ }
1411
+ if (event === 'subscribe') {
1412
+ this.handleSubscriptionStatus(client, message);
1413
+ return;
1414
+ }
1415
+ if (event === 'unsubscribe') {
1416
+ this.handleUnSubscriptionStatus(client, message);
1417
+ return;
1418
+ }
1419
+ const data = this.safeDict(message, 'arg', {});
1420
+ const channel = this.safeString(data, 'channel');
1421
+ if (channel === 'ticker') {
1422
+ this.handleTicker(client, message);
1423
+ }
1424
+ if (channel.indexOf('candle') >= 0) {
1425
+ this.handleOHLCV(client, message);
1426
+ }
1427
+ if (channel.indexOf('books') >= 0) {
1428
+ this.handleOrderBook(client, message);
1429
+ }
1430
+ if (channel === 'trade') {
1431
+ this.handleTrades(client, message);
1432
+ }
1433
+ if (channel === 'account') {
1434
+ this.handleBalance(client, message);
1435
+ }
1436
+ if ((channel === 'orders') || (channel === 'ordersAlgo')) {
1437
+ this.handleOrder(client, message);
1438
+ }
1439
+ if (channel === 'positions') {
1440
+ this.handlePositions(client, message);
1441
+ }
1442
+ }
1443
+ ping(client) {
1444
+ return 'ping';
1445
+ }
1446
+ handlePong(client, message) {
1447
+ client.lastPong = this.milliseconds();
1448
+ return message;
1449
+ }
1450
+ handleSubscriptionStatus(client, message) {
1451
+ return message;
1452
+ }
1453
+ handleUnSubscriptionStatus(client, message) {
1454
+ let argsList = this.safeList(message, 'args');
1455
+ if (argsList === undefined) {
1456
+ argsList = [this.safeDict(message, 'arg', {})];
1457
+ }
1458
+ for (let i = 0; i < argsList.length; i++) {
1459
+ const arg = argsList[i];
1460
+ const channel = this.safeString(arg, 'channel');
1461
+ if (channel === 'books') {
1462
+ this.handleOrderBookUnSubscription(client, message);
1463
+ }
1464
+ else if (channel === 'trade') {
1465
+ this.handleTradesUnSubscription(client, message);
1466
+ }
1467
+ else if (channel === 'ticker') {
1468
+ this.handleTickerUnSubscription(client, message);
1469
+ }
1470
+ else if (channel.startsWith('candle')) {
1471
+ this.handleOHLCVUnSubscription(client, message);
1472
+ }
1473
+ }
1474
+ return message;
1475
+ }
1476
+ handleOrderBookUnSubscription(client, message) {
1477
+ const arg = this.safeDict(message, 'arg', {});
1478
+ const instType = this.safeStringLower(arg, 'instType');
1479
+ const type = (instType === 'sp') ? 'spot' : 'swap';
1480
+ const instId = this.safeString(arg, 'instId');
1481
+ const market = this.safeMarket(instId, undefined, undefined, type);
1482
+ const symbol = market['symbol'];
1483
+ const messageHash = 'unsubscribe:orderbook:' + market['symbol'];
1484
+ const subMessageHash = 'orderbook:' + symbol;
1485
+ if (symbol in this.orderbooks) {
1486
+ delete this.orderbooks[symbol];
1487
+ }
1488
+ if (subMessageHash in client.subscriptions) {
1489
+ delete client.subscriptions[subMessageHash];
1490
+ }
1491
+ if (messageHash in client.subscriptions) {
1492
+ delete client.subscriptions[messageHash];
1493
+ }
1494
+ const error = new UnsubscribeError(this.id + ' orderbook ' + symbol);
1495
+ client.reject(error, subMessageHash);
1496
+ client.resolve(true, messageHash);
1497
+ }
1498
+ handleTradesUnSubscription(client, message) {
1499
+ const arg = this.safeDict(message, 'arg', {});
1500
+ const instType = this.safeStringLower(arg, 'instType');
1501
+ const type = (instType === 'sp') ? 'spot' : 'swap';
1502
+ const instId = this.safeString(arg, 'instId');
1503
+ const market = this.safeMarket(instId, undefined, undefined, type);
1504
+ const symbol = market['symbol'];
1505
+ const messageHash = 'unsubscribe:trade:' + market['symbol'];
1506
+ const subMessageHash = 'trade:' + symbol;
1507
+ if (symbol in this.trades) {
1508
+ delete this.trades[symbol];
1509
+ }
1510
+ if (subMessageHash in client.subscriptions) {
1511
+ delete client.subscriptions[subMessageHash];
1512
+ }
1513
+ if (messageHash in client.subscriptions) {
1514
+ delete client.subscriptions[messageHash];
1515
+ }
1516
+ const error = new UnsubscribeError(this.id + ' trades ' + symbol);
1517
+ client.reject(error, subMessageHash);
1518
+ client.resolve(true, messageHash);
1519
+ }
1520
+ handleTickerUnSubscription(client, message) {
1521
+ const arg = this.safeDict(message, 'arg', {});
1522
+ const instType = this.safeStringLower(arg, 'instType');
1523
+ const type = (instType === 'sp') ? 'spot' : 'swap';
1524
+ const instId = this.safeString(arg, 'instId');
1525
+ const market = this.safeMarket(instId, undefined, undefined, type);
1526
+ const symbol = market['symbol'];
1527
+ const messageHash = 'unsubscribe:ticker:' + market['symbol'];
1528
+ const subMessageHash = 'ticker:' + symbol;
1529
+ if (symbol in this.tickers) {
1530
+ delete this.tickers[symbol];
1531
+ }
1532
+ if (subMessageHash in client.subscriptions) {
1533
+ delete client.subscriptions[subMessageHash];
1534
+ }
1535
+ if (messageHash in client.subscriptions) {
1536
+ delete client.subscriptions[messageHash];
1537
+ }
1538
+ const error = new UnsubscribeError(this.id + ' ticker ' + symbol);
1539
+ client.reject(error, subMessageHash);
1540
+ client.resolve(true, messageHash);
1541
+ }
1542
+ handleOHLCVUnSubscription(client, message) {
1543
+ const arg = this.safeDict(message, 'arg', {});
1544
+ const instType = this.safeStringLower(arg, 'instType');
1545
+ const type = (instType === 'sp') ? 'spot' : 'swap';
1546
+ const instId = this.safeString(arg, 'instId');
1547
+ const channel = this.safeString(arg, 'channel');
1548
+ const interval = channel.replace('candle', '');
1549
+ const timeframes = this.safeDict(this.options, 'timeframesForWs');
1550
+ const timeframe = this.findTimeframe(interval, timeframes);
1551
+ const market = this.safeMarket(instId, undefined, undefined, type);
1552
+ const symbol = market['symbol'];
1553
+ const messageHash = 'unsubscribe:ohlcv:' + timeframe + ':' + market['symbol'];
1554
+ const subMessageHash = 'ohlcv:' + symbol + ':' + timeframe;
1555
+ if (symbol in this.ohlcvs) {
1556
+ if (timeframe in this.ohlcvs[symbol]) {
1557
+ delete this.ohlcvs[symbol][timeframe];
1558
+ }
1559
+ }
1560
+ this.cleanUnsubscription(client, subMessageHash, messageHash);
1561
+ }
1562
+ }