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,1112 @@
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 oxfunRest from '../oxfun.js';
9
+ import { ArgumentsRequired, AuthenticationError, BadRequest } from '../base/errors.js';
10
+ import { sha256 } from '../static_dependencies/noble-hashes/sha256.js';
11
+ import { ArrayCache, ArrayCacheBySymbolById, ArrayCacheBySymbolBySide, ArrayCacheByTimestamp } from '../base/ws/Cache.js';
12
+ // ---------------------------------------------------------------------------
13
+ export default class oxfun extends oxfunRest {
14
+ describe() {
15
+ return this.deepExtend(super.describe(), {
16
+ 'has': {
17
+ 'ws': true,
18
+ 'watchTrades': true,
19
+ 'watchTradesForSymbols': true,
20
+ 'watchOrderBook': true,
21
+ 'watchOrderBookForSymbols': true,
22
+ 'watchOHLCV': true,
23
+ 'watchOHLCVForSymbols': true,
24
+ 'watchOrders': true,
25
+ 'watchMyTrades': false,
26
+ 'watchTicker': true,
27
+ 'watchTickers': true,
28
+ 'watchBidsAsks': true,
29
+ 'watchBalance': true,
30
+ 'createOrderWs': true,
31
+ 'editOrderWs': true,
32
+ 'cancelOrderWs': true,
33
+ 'cancelOrdersWs': true,
34
+ },
35
+ 'urls': {
36
+ 'api': {
37
+ 'ws': 'wss://api.ox.fun/v2/websocket',
38
+ 'test': 'wss://stgapi.ox.fun/v2/websocket',
39
+ },
40
+ },
41
+ 'options': {
42
+ 'timeframes': {
43
+ '1m': '60s',
44
+ '3m': '180s',
45
+ '5m': '300s',
46
+ '15m': '900s',
47
+ '30m': '1800s',
48
+ '1h': '3600s',
49
+ '2h': '7200s',
50
+ '4h': '14400s',
51
+ '6h': '21600s',
52
+ '12h': '43200s',
53
+ '1d': '86400s',
54
+ },
55
+ 'watchOrderBook': {
56
+ 'channel': 'depth', // depth, depthL5, depthL10, depthL25
57
+ },
58
+ },
59
+ 'streaming': {
60
+ 'ping': this.ping,
61
+ 'keepAlive': 50000,
62
+ },
63
+ });
64
+ }
65
+ async subscribeMultiple(messageHashes, argsArray, params = {}) {
66
+ const url = this.urls['api']['ws'];
67
+ const request = {
68
+ 'op': 'subscribe',
69
+ 'args': argsArray,
70
+ };
71
+ return await this.watchMultiple(url, messageHashes, this.extend(request, params), messageHashes);
72
+ }
73
+ /**
74
+ * @method
75
+ * @name oxfun#watchTrades
76
+ * @description watches information on multiple trades made in a market
77
+ * @see https://docs.ox.fun/?json#trade
78
+ * @param {string} symbol unified market symbol of the market trades were made in
79
+ * @param {int} [since] the earliest time in ms to fetch orders for
80
+ * @param {int} [limit] the maximum number of trade structures to retrieve
81
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
82
+ * @param {int|string} [params.tag] If given it will be echoed in the reply and the max size of tag is 32
83
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
84
+ */
85
+ async watchTrades(symbol, since = undefined, limit = undefined, params = {}) {
86
+ return await this.watchTradesForSymbols([symbol], since, limit, params);
87
+ }
88
+ /**
89
+ * @method
90
+ * @name oxfun#watchTradesForSymbols
91
+ * @description get the list of most recent trades for a particular symbol
92
+ * @see https://docs.ox.fun/?json#trade
93
+ * @param {string[]} symbols
94
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
95
+ * @param {int} [limit] the maximum amount of trades to fetch
96
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
97
+ * @param {int|string} [params.tag] If given it will be echoed in the reply and the max size of tag is 32
98
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
99
+ */
100
+ async watchTradesForSymbols(symbols, since = undefined, limit = undefined, params = {}) {
101
+ await this.loadMarkets();
102
+ symbols = this.marketSymbols(symbols, undefined, false);
103
+ const args = [];
104
+ const messageHashes = [];
105
+ for (let i = 0; i < symbols.length; i++) {
106
+ const symbol = symbols[i];
107
+ const messageHash = 'trades' + ':' + symbol;
108
+ messageHashes.push(messageHash);
109
+ const marketId = this.marketId(symbol);
110
+ const arg = 'trade:' + marketId;
111
+ args.push(arg);
112
+ }
113
+ const trades = await this.subscribeMultiple(messageHashes, args, params);
114
+ if (this.newUpdates) {
115
+ const first = this.safeDict(trades, 0, {});
116
+ const tradeSymbol = this.safeString(first, 'symbol');
117
+ limit = trades.getLimit(tradeSymbol, limit);
118
+ }
119
+ return this.filterBySinceLimit(trades, since, limit, 'timestamp', true);
120
+ }
121
+ handleTrades(client, message) {
122
+ //
123
+ // {
124
+ // table: 'trade',
125
+ // data: [
126
+ // {
127
+ // side: 'SELL',
128
+ // quantity: '0.074',
129
+ // matchType: 'TAKER',
130
+ // price: '3079.5',
131
+ // marketCode: 'ETH-USD-SWAP-LIN',
132
+ // tradeId: '400017157974517783',
133
+ // timestamp: '1716124156643'
134
+ // }
135
+ // ]
136
+ // }
137
+ //
138
+ const data = this.safeList(message, 'data', []);
139
+ for (let i = 0; i < data.length; i++) {
140
+ const trade = this.safeDict(data, i, {});
141
+ const parsedTrade = this.parseWsTrade(trade);
142
+ const symbol = this.safeString(parsedTrade, 'symbol');
143
+ const messageHash = 'trades:' + symbol;
144
+ if (!(symbol in this.trades)) {
145
+ const tradesLimit = this.safeInteger(this.options, 'tradesLimit', 1000);
146
+ this.trades[symbol] = new ArrayCache(tradesLimit);
147
+ }
148
+ const stored = this.trades[symbol];
149
+ stored.append(parsedTrade);
150
+ client.resolve(stored, messageHash);
151
+ }
152
+ }
153
+ parseWsTrade(trade, market = undefined) {
154
+ //
155
+ // {
156
+ // side: 'SELL',
157
+ // quantity: '0.074',
158
+ // matchType: 'TAKER',
159
+ // price: '3079.5',
160
+ // marketCode: 'ETH-USD-SWAP-LIN',
161
+ // tradeId: '400017157974517783',
162
+ // timestamp: '1716124156643'
163
+ // }
164
+ //
165
+ const marketId = this.safeString(trade, 'marketCode');
166
+ market = this.safeMarket(marketId, market);
167
+ const timestamp = this.safeInteger(trade, 'timestamp');
168
+ return this.safeTrade({
169
+ 'info': trade,
170
+ 'timestamp': timestamp,
171
+ 'datetime': this.iso8601(timestamp),
172
+ 'symbol': market['symbol'],
173
+ 'id': this.safeString(trade, 'tradeId'),
174
+ 'order': undefined,
175
+ 'type': undefined,
176
+ 'takerOrMaker': this.safeStringLower(trade, 'matchType'),
177
+ 'side': this.safeStringLower(trade, 'side'),
178
+ 'price': this.safeNumber(trade, 'price'),
179
+ 'amount': this.safeNumber(trade, 'quantity'),
180
+ 'cost': undefined,
181
+ 'fee': undefined,
182
+ });
183
+ }
184
+ /**
185
+ * @method
186
+ * @name oxfun#watchOHLCV
187
+ * @description watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
188
+ * @see https://docs.ox.fun/?json#candles
189
+ * @param {string} symbol unified symbol of the market to fetch OHLCV data for
190
+ * @param {string} timeframe the length of time each candle represents
191
+ * @param {int} [since] timestamp in ms of the earliest candle to fetch
192
+ * @param {int} [limit] the maximum amount of candles to fetch
193
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
194
+ * @param {int|string} [params.tag] If given it will be echoed in the reply and the max size of tag is 32
195
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
196
+ */
197
+ async watchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
198
+ await this.loadMarkets();
199
+ const market = this.market(symbol);
200
+ const timeframes = this.safeDict(this.options, 'timeframes', {});
201
+ const interval = this.safeString(timeframes, timeframe, timeframe);
202
+ const args = 'candles' + interval + ':' + market['id'];
203
+ const messageHash = 'ohlcv:' + symbol + ':' + timeframe;
204
+ const url = this.urls['api']['ws'];
205
+ const request = {
206
+ 'op': 'subscribe',
207
+ 'args': [args],
208
+ };
209
+ const ohlcvs = await this.watch(url, messageHash, this.extend(request, params), messageHash);
210
+ if (this.newUpdates) {
211
+ limit = ohlcvs.getLimit(symbol, limit);
212
+ }
213
+ return this.filterBySinceLimit(ohlcvs, since, limit, 0, true);
214
+ }
215
+ /**
216
+ * @method
217
+ * @name oxfun#watchOHLCVForSymbols
218
+ * @description watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
219
+ * @see https://docs.ox.fun/?json#candles
220
+ * @param {string[][]} symbolsAndTimeframes array of arrays containing unified symbols and timeframes to fetch OHLCV data for, example [['BTC/USDT', '1m'], ['LTC/USDT', '5m']]
221
+ * @param {int} [since] timestamp in ms of the earliest candle to fetch
222
+ * @param {int} [limit] the maximum amount of candles to fetch
223
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
224
+ * @param {int|string} [params.tag] If given it will be echoed in the reply and the max size of tag is 32
225
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
226
+ */
227
+ async watchOHLCVForSymbols(symbolsAndTimeframes, since = undefined, limit = undefined, params = {}) {
228
+ const symbolsLength = symbolsAndTimeframes.length;
229
+ if (symbolsLength === 0 || !Array.isArray(symbolsAndTimeframes[0])) {
230
+ throw new ArgumentsRequired(this.id + " watchOHLCVForSymbols() requires a an array of symbols and timeframes, like [['BTC/USDT:OX', '1m'], ['OX/USDT', '5m']]");
231
+ }
232
+ await this.loadMarkets();
233
+ const args = [];
234
+ const messageHashes = [];
235
+ const timeframes = this.safeDict(this.options, 'timeframes', {});
236
+ for (let i = 0; i < symbolsAndTimeframes.length; i++) {
237
+ const symbolAndTimeframe = symbolsAndTimeframes[i];
238
+ const sym = symbolAndTimeframe[0];
239
+ const tf = symbolAndTimeframe[1];
240
+ const marketId = this.marketId(sym);
241
+ const interval = this.safeString(timeframes, tf, tf);
242
+ const arg = 'candles' + interval + ':' + marketId;
243
+ args.push(arg);
244
+ const messageHash = 'multi:ohlcv:' + sym + ':' + tf;
245
+ messageHashes.push(messageHash);
246
+ }
247
+ const [symbol, timeframe, candles] = await this.subscribeMultiple(messageHashes, args, params);
248
+ if (this.newUpdates) {
249
+ limit = candles.getLimit(symbol, limit);
250
+ }
251
+ const filtered = this.filterBySinceLimit(candles, since, limit, 0, true);
252
+ return this.createOHLCVObject(symbol, timeframe, filtered);
253
+ }
254
+ handleOHLCV(client, message) {
255
+ //
256
+ // {
257
+ // "table": "candles60s",
258
+ // "data": [
259
+ // {
260
+ // "marketCode": "BTC-USD-SWAP-LIN",
261
+ // "candle": [
262
+ // "1594313762698", //timestamp
263
+ // "9633.1", //open
264
+ // "9693.9", //high
265
+ // "9238.1", //low
266
+ // "9630.2", //close
267
+ // "45247", //volume in OX
268
+ // "5.3" //volume in Contracts
269
+ // ]
270
+ // }
271
+ // ]
272
+ // }
273
+ //
274
+ const table = this.safeString(message, 'table');
275
+ const parts = table.split('candles');
276
+ const timeframeId = this.safeString(parts, 1, '');
277
+ const timeframe = this.findTimeframe(timeframeId);
278
+ const messageData = this.safeList(message, 'data', []);
279
+ const data = this.safeDict(messageData, 0, {});
280
+ const marketId = this.safeString(data, 'marketCode');
281
+ const market = this.safeMarket(marketId);
282
+ const symbol = this.safeSymbol(marketId, market);
283
+ if (!(symbol in this.ohlcvs)) {
284
+ this.ohlcvs[symbol] = {};
285
+ }
286
+ if (!(timeframe in this.ohlcvs[symbol])) {
287
+ const limit = this.safeInteger(this.options, 'OHLCVLimit', 1000);
288
+ this.ohlcvs[symbol][timeframe] = new ArrayCacheByTimestamp(limit);
289
+ }
290
+ const candle = this.safeList(data, 'candle', []);
291
+ const parsed = this.parseWsOHLCV(candle, market);
292
+ const stored = this.ohlcvs[symbol][timeframe];
293
+ stored.append(parsed);
294
+ const messageHash = 'ohlcv:' + symbol + ':' + timeframe;
295
+ client.resolve(stored, messageHash);
296
+ // for multiOHLCV we need special object, as opposed to other "multi"
297
+ // methods, because OHLCV response item does not contain symbol
298
+ // or timeframe, thus otherwise it would be unrecognizable
299
+ const messageHashForMulti = 'multi:' + messageHash;
300
+ client.resolve([symbol, timeframe, stored], messageHashForMulti);
301
+ }
302
+ parseWsOHLCV(ohlcv, market = undefined) {
303
+ //
304
+ // [
305
+ // "1594313762698", //timestamp
306
+ // "9633.1", //open
307
+ // "9693.9", //high
308
+ // "9238.1", //low
309
+ // "9630.2", //close
310
+ // "45247", //volume in OX
311
+ // "5.3" //volume in Contracts
312
+ // ]
313
+ //
314
+ return [
315
+ this.safeInteger(ohlcv, 0),
316
+ this.safeNumber(ohlcv, 1),
317
+ this.safeNumber(ohlcv, 2),
318
+ this.safeNumber(ohlcv, 3),
319
+ this.safeNumber(ohlcv, 4),
320
+ this.safeNumber(ohlcv, 6),
321
+ ];
322
+ }
323
+ /**
324
+ * @method
325
+ * @name oxfun#watchOrderBook
326
+ * @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
327
+ * @see https://docs.ox.fun/?json#fixed-size-order-book
328
+ * @see https://docs.ox.fun/?json#full-order-book
329
+ * @param {string} symbol unified symbol of the market to fetch the order book for
330
+ * @param {int} [limit] the maximum amount of order book entries to return
331
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
332
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
333
+ */
334
+ async watchOrderBook(symbol, limit = undefined, params = {}) {
335
+ return await this.watchOrderBookForSymbols([symbol], limit, params);
336
+ }
337
+ /**
338
+ * @method
339
+ * @name oxfun#watchOrderBookForSymbols
340
+ * @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
341
+ * @see https://docs.ox.fun/?json#fixed-size-order-book
342
+ * @see https://docs.ox.fun/?json#full-order-book
343
+ * @param {string[]} symbols unified array of symbols
344
+ * @param {int} [limit] the maximum amount of order book entries to return
345
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
346
+ * @param {int|string} [params.tag] If given it will be echoed in the reply and the max size of tag is 32
347
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
348
+ */
349
+ async watchOrderBookForSymbols(symbols, limit = undefined, params = {}) {
350
+ await this.loadMarkets();
351
+ symbols = this.marketSymbols(symbols);
352
+ let channel = 'depth';
353
+ const options = this.safeDict(this.options, 'watchOrderBook', {});
354
+ const defaultChannel = this.safeString(options, 'channel');
355
+ if (defaultChannel !== undefined) {
356
+ channel = defaultChannel;
357
+ }
358
+ else if (limit !== undefined) {
359
+ if (limit <= 5) {
360
+ channel = 'depthL5';
361
+ }
362
+ else if (limit <= 10) {
363
+ channel = 'depthL10';
364
+ }
365
+ else if (limit <= 25) {
366
+ channel = 'depthL25';
367
+ }
368
+ }
369
+ const args = [];
370
+ const messageHashes = [];
371
+ for (let i = 0; i < symbols.length; i++) {
372
+ const symbol = symbols[i];
373
+ const messageHash = 'orderbook:' + symbol;
374
+ messageHashes.push(messageHash);
375
+ const marketId = this.marketId(symbol);
376
+ const arg = channel + ':' + marketId;
377
+ args.push(arg);
378
+ }
379
+ const orderbook = await this.subscribeMultiple(messageHashes, args, params);
380
+ return orderbook.limit();
381
+ }
382
+ handleOrderBook(client, message) {
383
+ //
384
+ // {
385
+ // "table": "depth",
386
+ // "data": {
387
+ // "seqNum": "100170478917895032",
388
+ // "asks": [
389
+ // [ 0.01, 100500 ],
390
+ // ...
391
+ // ],
392
+ // "bids": [
393
+ // [ 69.69696, 69 ],
394
+ // ...
395
+ // ],
396
+ // "checksum": 261021645,
397
+ // "marketCode": "OX-USDT",
398
+ // "timestamp": 1716204786184
399
+ // },
400
+ // "action": "partial"
401
+ // }
402
+ //
403
+ const data = this.safeDict(message, 'data', {});
404
+ const marketId = this.safeString(data, 'marketCode');
405
+ const symbol = this.safeSymbol(marketId);
406
+ const timestamp = this.safeInteger(data, 'timestamp');
407
+ const messageHash = 'orderbook:' + symbol;
408
+ if (!(symbol in this.orderbooks)) {
409
+ this.orderbooks[symbol] = this.orderBook({});
410
+ }
411
+ const orderbook = this.orderbooks[symbol];
412
+ const snapshot = this.parseOrderBook(data, symbol, timestamp, 'asks', 'bids');
413
+ orderbook.reset(snapshot);
414
+ orderbook['nonce'] = this.safeInteger(data, 'seqNum');
415
+ this.orderbooks[symbol] = orderbook;
416
+ client.resolve(orderbook, messageHash);
417
+ }
418
+ /**
419
+ * @method
420
+ * @name oxfun#watchTicker
421
+ * @see https://docs.ox.fun/?json#ticker
422
+ * @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
423
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
424
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
425
+ * @param {int|string} [params.tag] If given it will be echoed in the reply and the max size of tag is 32
426
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
427
+ */
428
+ async watchTicker(symbol, params = {}) {
429
+ const ticker = await this.watchTickers([symbol], params);
430
+ return this.safeValue(ticker, symbol);
431
+ }
432
+ /**
433
+ * @method
434
+ * @name oxfun#watchTickers
435
+ * @see https://docs.ox.fun/?json#ticker
436
+ * @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
437
+ * @param {string[]} [symbols] unified symbol of the market to fetch the ticker for
438
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
439
+ * @param {int|string} [params.tag] If given it will be echoed in the reply and the max size of tag is 32
440
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
441
+ */
442
+ async watchTickers(symbols = undefined, params = {}) {
443
+ await this.loadMarkets();
444
+ const allSymbols = (symbols === undefined);
445
+ let sym = symbols;
446
+ const args = [];
447
+ if (allSymbols) {
448
+ sym = this.symbols;
449
+ args.push('ticker:all');
450
+ }
451
+ const messageHashes = [];
452
+ for (let i = 0; i < sym.length; i++) {
453
+ const symbol = sym[i];
454
+ const messageHash = 'tickers' + ':' + symbol;
455
+ messageHashes.push(messageHash);
456
+ const marketId = this.marketId(symbol);
457
+ if (!allSymbols) {
458
+ args.push('ticker:' + marketId);
459
+ }
460
+ }
461
+ const newTicker = await this.subscribeMultiple(messageHashes, args, params);
462
+ if (this.newUpdates) {
463
+ const result = {};
464
+ result[newTicker['symbol']] = newTicker;
465
+ return result;
466
+ }
467
+ return this.filterByArray(this.tickers, 'symbol', symbols);
468
+ }
469
+ handleTicker(client, message) {
470
+ //
471
+ // {
472
+ // "table": "ticker",
473
+ // "data": [
474
+ // {
475
+ // "last": "3088.6",
476
+ // "open24h": "3087.2",
477
+ // "high24h": "3142.0",
478
+ // "low24h": "3053.9",
479
+ // "volume24h": "450512672.1800",
480
+ // "currencyVolume24h": "1458.579",
481
+ // "openInterest": "3786.801",
482
+ // "marketCode": "ETH-USD-SWAP-LIN",
483
+ // "timestamp": "1716212747050",
484
+ // "lastQty": "0.813",
485
+ // "markPrice": "3088.6",
486
+ // "lastMarkPrice": "3088.6",
487
+ // "indexPrice": "3086.5"
488
+ // },
489
+ // ...
490
+ // ]
491
+ // }
492
+ //
493
+ const data = this.safeList(message, 'data', []);
494
+ for (let i = 0; i < data.length; i++) {
495
+ const rawTicker = this.safeDict(data, i, {});
496
+ const ticker = this.parseTicker(rawTicker);
497
+ const symbol = ticker['symbol'];
498
+ const messageHash = 'tickers:' + symbol;
499
+ this.tickers[symbol] = ticker;
500
+ client.resolve(ticker, messageHash);
501
+ }
502
+ }
503
+ /**
504
+ * @method
505
+ * @name oxfun#watchBidsAsks
506
+ * @see https://docs.ox.fun/?json#best-bid-ask
507
+ * @description watches best bid & ask for symbols
508
+ * @param {string[]} symbols unified symbol of the market to fetch the ticker for
509
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
510
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
511
+ */
512
+ async watchBidsAsks(symbols = undefined, params = {}) {
513
+ await this.loadMarkets();
514
+ symbols = this.marketSymbols(symbols, undefined, false);
515
+ const messageHashes = [];
516
+ const args = [];
517
+ for (let i = 0; i < symbols.length; i++) {
518
+ const market = this.market(symbols[i]);
519
+ args.push('bestBidAsk:' + market['id']);
520
+ messageHashes.push('bidask:' + market['symbol']);
521
+ }
522
+ const newTickers = await this.subscribeMultiple(messageHashes, args, params);
523
+ if (this.newUpdates) {
524
+ const tickers = {};
525
+ tickers[newTickers['symbol']] = newTickers;
526
+ return tickers;
527
+ }
528
+ return this.filterByArray(this.bidsasks, 'symbol', symbols);
529
+ }
530
+ handleBidAsk(client, message) {
531
+ //
532
+ // {
533
+ // "table": "bestBidAsk",
534
+ // "data": {
535
+ // "ask": [
536
+ // 19045.0,
537
+ // 1.0
538
+ // ],
539
+ // "checksum": 3790706311,
540
+ // "marketCode": "BTC-USD-SWAP-LIN",
541
+ // "bid": [
542
+ // 19015.0,
543
+ // 1.0
544
+ // ],
545
+ // "timestamp": "1665456882928"
546
+ // }
547
+ // }
548
+ //
549
+ const data = this.safeDict(message, 'data', {});
550
+ const parsedTicker = this.parseWsBidAsk(data);
551
+ const symbol = parsedTicker['symbol'];
552
+ this.bidsasks[symbol] = parsedTicker;
553
+ const messageHash = 'bidask:' + symbol;
554
+ client.resolve(parsedTicker, messageHash);
555
+ }
556
+ parseWsBidAsk(ticker, market = undefined) {
557
+ const marketId = this.safeString(ticker, 'marketCode');
558
+ market = this.safeMarket(marketId, market);
559
+ const symbol = this.safeString(market, 'symbol');
560
+ const timestamp = this.safeInteger(ticker, 'timestamp');
561
+ const ask = this.safeList(ticker, 'ask', []);
562
+ const bid = this.safeList(ticker, 'bid', []);
563
+ return this.safeTicker({
564
+ 'symbol': symbol,
565
+ 'timestamp': timestamp,
566
+ 'datetime': this.iso8601(timestamp),
567
+ 'ask': this.safeNumber(ask, 0),
568
+ 'askVolume': this.safeNumber(ask, 1),
569
+ 'bid': this.safeNumber(bid, 0),
570
+ 'bidVolume': this.safeNumber(bid, 1),
571
+ 'info': ticker,
572
+ }, market);
573
+ }
574
+ /**
575
+ * @method
576
+ * @name oxfun#watchBalance
577
+ * @see https://docs.ox.fun/?json#balance-channel
578
+ * @description watch balance and get the amount of funds available for trading or funds locked in orders
579
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
580
+ * @param {int|string} [params.tag] If given it will be echoed in the reply and the max size of tag is 32
581
+ * @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
582
+ */
583
+ async watchBalance(params = {}) {
584
+ await this.loadMarkets();
585
+ this.authenticate();
586
+ const args = 'balance:all';
587
+ const messageHash = 'balance';
588
+ const url = this.urls['api']['ws'];
589
+ const request = {
590
+ 'op': 'subscribe',
591
+ 'args': [args],
592
+ };
593
+ return await this.watch(url, messageHash, this.extend(request, params), messageHash);
594
+ }
595
+ handleBalance(client, message) {
596
+ //
597
+ // {
598
+ // "table": "balance",
599
+ // "accountId": "106464",
600
+ // "timestamp": "1716549132780",
601
+ // "tradeType": "PORTFOLIO",
602
+ // "data": [
603
+ // {
604
+ // "instrumentId": "xOX",
605
+ // "total": "23.375591220",
606
+ // "available": "23.375591220",
607
+ // "reserved": "0",
608
+ // "quantityLastUpdated": "1716509744262",
609
+ // "locked": "0"
610
+ // },
611
+ // ...
612
+ // ]
613
+ // }
614
+ //
615
+ const balances = this.safeList(message, 'data');
616
+ const timestamp = this.safeInteger(message, 'timestamp');
617
+ this.balance['info'] = message;
618
+ this.balance['timestamp'] = timestamp;
619
+ this.balance['datetime'] = this.iso8601(timestamp);
620
+ for (let i = 0; i < balances.length; i++) {
621
+ const balance = this.safeDict(balances, i, {});
622
+ const currencyId = this.safeString(balance, 'instrumentId');
623
+ const code = this.safeCurrencyCode(currencyId);
624
+ if (!(code in this.balance)) {
625
+ this.balance[code] = this.account();
626
+ }
627
+ const account = this.balance[code];
628
+ account['total'] = this.safeString(balance, 'total');
629
+ account['used'] = this.safeString(balance, 'reserved');
630
+ account['free'] = this.safeString(balance, 'available');
631
+ this.balance[code] = account;
632
+ }
633
+ this.balance = this.safeBalance(this.balance);
634
+ client.resolve(this.balance, 'balance');
635
+ }
636
+ /**
637
+ * @method
638
+ * @name oxfun#watchPositions
639
+ * @see https://docs.ox.fun/?json#position-channel
640
+ * @description watch all open positions
641
+ * @param {string[]|undefined} symbols list of unified market symbols
642
+ * @param since
643
+ * @param limit
644
+ * @param {object} params extra parameters specific to the exchange API endpoint
645
+ * @param {int|string} [params.tag] If given it will be echoed in the reply and the max size of tag is 32
646
+ * @returns {object[]} a list of [position structure]{@link https://docs.ccxt.com/en/latest/manual.html#position-structure}
647
+ */
648
+ async watchPositions(symbols = undefined, since = undefined, limit = undefined, params = {}) {
649
+ await this.loadMarkets();
650
+ await this.authenticate();
651
+ const allSymbols = (symbols === undefined);
652
+ let sym = symbols;
653
+ const args = [];
654
+ if (allSymbols) {
655
+ sym = this.symbols;
656
+ args.push('position:all');
657
+ }
658
+ const messageHashes = [];
659
+ for (let i = 0; i < sym.length; i++) {
660
+ const symbol = sym[i];
661
+ const messageHash = 'positions' + ':' + symbol;
662
+ messageHashes.push(messageHash);
663
+ const marketId = this.marketId(symbol);
664
+ if (!allSymbols) {
665
+ args.push('position:' + marketId);
666
+ }
667
+ }
668
+ const newPositions = await this.subscribeMultiple(messageHashes, args, params);
669
+ if (this.newUpdates) {
670
+ return newPositions;
671
+ }
672
+ return this.filterBySymbolsSinceLimit(this.positions, symbols, since, limit, true);
673
+ }
674
+ handlePositions(client, message) {
675
+ //
676
+ // {
677
+ // "table": "position",
678
+ // "accountId": "106464",
679
+ // "timestamp": "1716550771582",
680
+ // "data": [
681
+ // {
682
+ // "instrumentId": "ETH-USD-SWAP-LIN",
683
+ // "quantity": "0.01",
684
+ // "lastUpdated": "1716550757299",
685
+ // "contractValCurrency": "ETH",
686
+ // "entryPrice": "3709.6",
687
+ // "positionPnl": "-5.000",
688
+ // "estLiquidationPrice": "743.4",
689
+ // "margin": "0",
690
+ // "leverage": "0"
691
+ // }
692
+ // ]
693
+ // }
694
+ //
695
+ if (this.positions === undefined) {
696
+ this.positions = new ArrayCacheBySymbolBySide();
697
+ }
698
+ const cache = this.positions;
699
+ const data = this.safeList(message, 'data', []);
700
+ for (let i = 0; i < data.length; i++) {
701
+ const rawPosition = this.safeDict(data, i, {});
702
+ const position = this.parseWsPosition(rawPosition);
703
+ const symbol = position['symbol'];
704
+ const messageHash = 'positions:' + symbol;
705
+ cache.append(position);
706
+ client.resolve(position, messageHash);
707
+ }
708
+ }
709
+ parseWsPosition(position, market = undefined) {
710
+ //
711
+ // {
712
+ // "instrumentId": "ETH-USD-SWAP-LIN",
713
+ // "quantity": "0.01",
714
+ // "lastUpdated": "1716550757299",
715
+ // "contractValCurrency": "ETH",
716
+ // "entryPrice": "3709.6",
717
+ // "positionPnl": "-5.000",
718
+ // "estLiquidationPrice": "743.4",
719
+ // "margin": "0", // Currently always reports 0
720
+ // "leverage": "0" // Currently always reports 0
721
+ // }
722
+ //
723
+ const marketId = this.safeString(position, 'instrumentId');
724
+ market = this.safeMarket(marketId, market);
725
+ return this.safePosition({
726
+ 'info': position,
727
+ 'id': undefined,
728
+ 'symbol': market['symbol'],
729
+ 'notional': undefined,
730
+ 'marginMode': 'cross',
731
+ 'liquidationPrice': this.safeNumber(position, 'estLiquidationPrice'),
732
+ 'entryPrice': this.safeNumber(position, 'entryPrice'),
733
+ 'unrealizedPnl': this.safeNumber(position, 'positionPnl'),
734
+ 'realizedPnl': undefined,
735
+ 'percentage': undefined,
736
+ 'contracts': this.safeNumber(position, 'quantity'),
737
+ 'contractSize': undefined,
738
+ 'markPrice': undefined,
739
+ 'lastPrice': undefined,
740
+ 'side': undefined,
741
+ 'hedged': undefined,
742
+ 'timestamp': undefined,
743
+ 'datetime': undefined,
744
+ 'lastUpdateTimestamp': this.safeInteger(position, 'lastUpdated'),
745
+ 'maintenanceMargin': undefined,
746
+ 'maintenanceMarginPercentage': undefined,
747
+ 'collateral': undefined,
748
+ 'initialMargin': undefined,
749
+ 'initialMarginPercentage': undefined,
750
+ 'leverage': undefined,
751
+ 'marginRatio': undefined,
752
+ 'stopLossPrice': undefined,
753
+ 'takeProfitPrice': undefined,
754
+ });
755
+ }
756
+ /**
757
+ * @method
758
+ * @name oxfun#watchOrders
759
+ * @description watches information on multiple orders made by the user
760
+ * @see https://docs.ox.fun/?json#order-channel
761
+ * @param {string} symbol unified market symbol of the market orders were made in
762
+ * @param {int} [since] the earliest time in ms to fetch orders for
763
+ * @param {int} [limit] the maximum number of order structures to retrieve
764
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
765
+ * @param {int|string} [params.tag] If given it will be echoed in the reply and the max size of tag is 32
766
+ * @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
767
+ */
768
+ async watchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
769
+ await this.loadMarkets();
770
+ await this.authenticate();
771
+ let messageHash = 'orders';
772
+ let args = 'order:';
773
+ const market = this.safeMarket(symbol);
774
+ if (symbol === undefined) {
775
+ args += 'all';
776
+ }
777
+ else {
778
+ messageHash += ':' + symbol;
779
+ args += ':' + market['id'];
780
+ }
781
+ const request = {
782
+ 'op': 'subscribe',
783
+ 'args': [
784
+ args,
785
+ ],
786
+ };
787
+ const url = this.urls['api']['ws'];
788
+ const orders = await this.watch(url, messageHash, request, messageHash);
789
+ if (this.newUpdates) {
790
+ limit = orders.getLimit(symbol, limit);
791
+ }
792
+ return this.filterBySymbolSinceLimit(orders, symbol, since, limit, true);
793
+ }
794
+ handleOrders(client, message) {
795
+ //
796
+ // {
797
+ // "table": "order",
798
+ // "data": [
799
+ // {
800
+ // "accountId": "106464",
801
+ // "clientOrderId": "1716713676233",
802
+ // "orderId": "1000116921319",
803
+ // "price": "1000.0",
804
+ // "quantity": "0.01",
805
+ // "amount": "0.0",
806
+ // "side": "BUY",
807
+ // "status": "OPEN",
808
+ // "marketCode": "ETH-USD-SWAP-LIN",
809
+ // "timeInForce": "MAKER_ONLY",
810
+ // "timestamp": "1716713677834",
811
+ // "remainQuantity": "0.01",
812
+ // "limitPrice": "1000.0",
813
+ // "notice": "OrderOpened",
814
+ // "orderType": "LIMIT",
815
+ // "isTriggered": "false",
816
+ // "displayQuantity": "0.01"
817
+ // }
818
+ // ]
819
+ // }
820
+ //
821
+ const data = this.safeList(message, 'data', []);
822
+ let messageHash = 'orders';
823
+ if (this.orders === undefined) {
824
+ const limit = this.safeInteger(this.options, 'ordersLimit', 1000);
825
+ this.orders = new ArrayCacheBySymbolById(limit);
826
+ }
827
+ const orders = this.orders;
828
+ for (let i = 0; i < data.length; i++) {
829
+ const order = this.safeDict(data, i, {});
830
+ const parsedOrder = this.parseOrder(order);
831
+ orders.append(parsedOrder);
832
+ messageHash += ':' + parsedOrder['symbol'];
833
+ client.resolve(this.orders, messageHash);
834
+ }
835
+ }
836
+ /**
837
+ * @method
838
+ * @name oxfun#createOrderWs
839
+ * @see https://docs.ox.fun/?json#order-commands
840
+ * @description create a trade order
841
+ * @param {string} symbol unified symbol of the market to create an order in
842
+ * @param {string} type 'market', 'limit', 'STOP_LIMIT' or 'STOP_MARKET'
843
+ * @param {string} side 'buy' or 'sell'
844
+ * @param {float} amount how much of currency you want to trade in units of base currency
845
+ * @param {float} [price] the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
846
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
847
+ * @param {int} [params.clientOrderId] a unique id for the order
848
+ * @param {int} [params.timestamp] in milliseconds. If an order reaches the matching engine and the current timestamp exceeds timestamp + recvWindow, then the order will be rejected.
849
+ * @param {int} [params.recvWindow] in milliseconds. If an order reaches the matching engine and the current timestamp exceeds timestamp + recvWindow, then the order will be rejected. If timestamp is provided without recvWindow, then a default recvWindow of 1000ms is used.
850
+ * @param {float} [params.cost] the quote quantity that can be used as an alternative for the amount for market buy orders
851
+ * @param {float} [params.triggerPrice] The price at which a trigger order is triggered at
852
+ * @param {float} [params.limitPrice] Limit price for the STOP_LIMIT order
853
+ * @param {bool} [params.postOnly] if true, the order will only be posted if it will be a maker order
854
+ * @param {string} [params.timeInForce] GTC (default), IOC, FOK, PO, MAKER_ONLY or MAKER_ONLY_REPRICE (reprices order to the best maker only price if the specified price were to lead to a taker trade)
855
+ * @param {string} [params.selfTradePreventionMode] NONE, EXPIRE_MAKER, EXPIRE_TAKER or EXPIRE_BOTH for more info check here {@link https://docs.ox.fun/?json#self-trade-prevention-modes}
856
+ * @param {string} [params.displayQuantity] for an iceberg order, pass both quantity and displayQuantity fields in the order request
857
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
858
+ */
859
+ async createOrderWs(symbol, type, side, amount, price = undefined, params = {}) {
860
+ await this.loadMarkets();
861
+ await this.authenticate();
862
+ const messageHash = this.nonce().toString();
863
+ const request = {
864
+ 'op': 'placeorder',
865
+ 'tag': messageHash,
866
+ };
867
+ params = this.omit(params, 'tag');
868
+ const orderRequest = this.createOrderRequest(symbol, type, side, amount, price, params);
869
+ const timestamp = this.safeInteger(orderRequest, 'timestamp');
870
+ if (timestamp === undefined) {
871
+ orderRequest['timestamp'] = this.milliseconds();
872
+ }
873
+ request['data'] = orderRequest;
874
+ const url = this.urls['api']['ws'];
875
+ return await this.watch(url, messageHash, request, messageHash);
876
+ }
877
+ /**
878
+ * @method
879
+ * @name oxfun#editOrderWs
880
+ * @description edit a trade order
881
+ * @see https://docs.ox.fun/?json#modify-order
882
+ * @param {string} id order id
883
+ * @param {string} symbol unified symbol of the market to create an order in
884
+ * @param {string} type 'market' or 'limit'
885
+ * @param {string} side 'buy' or 'sell'
886
+ * @param {float} amount how much of the currency you want to trade in units of the base currency
887
+ * @param {float|undefined} [price] the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
888
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
889
+ * @param {int} [params.timestamp] in milliseconds. If an order reaches the matching engine and the current timestamp exceeds timestamp + recvWindow, then the order will be rejected.
890
+ * @param {int} [params.recvWindow] in milliseconds. If an order reaches the matching engine and the current timestamp exceeds timestamp + recvWindow, then the order will be rejected. If timestamp is provided without recvWindow, then a default recvWindow of 1000ms is used.
891
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
892
+ */
893
+ async editOrderWs(id, symbol, type, side, amount = undefined, price = undefined, params = {}) {
894
+ await this.loadMarkets();
895
+ await this.authenticate();
896
+ const messageHash = this.nonce().toString();
897
+ const request = {
898
+ 'op': 'modifyorder',
899
+ 'tag': messageHash,
900
+ };
901
+ params = this.omit(params, 'tag');
902
+ let orderRequest = this.createOrderRequest(symbol, type, side, amount, price, params);
903
+ orderRequest = this.extend(orderRequest, { 'orderId': id });
904
+ const timestamp = this.safeInteger(orderRequest, 'timestamp');
905
+ if (timestamp === undefined) {
906
+ orderRequest['timestamp'] = this.milliseconds();
907
+ }
908
+ request['data'] = orderRequest;
909
+ const url = this.urls['api']['ws'];
910
+ return await this.watch(url, messageHash, request, messageHash);
911
+ }
912
+ handlePlaceOrders(client, message) {
913
+ //
914
+ // {
915
+ // "event": "placeorder",
916
+ // "submitted": true,
917
+ // "tag": "1716934577",
918
+ // "timestamp": "1716932973899",
919
+ // "data": {
920
+ // "marketCode": "ETH-USD-SWAP-LIN",
921
+ // "side": "BUY",
922
+ // "orderType": "LIMIT",
923
+ // "quantity": "0.010",
924
+ // "timeInForce": "GTC",
925
+ // "price": "400.0",
926
+ // "limitPrice": "400.0",
927
+ // "orderId": "1000117429736",
928
+ // "source": 13
929
+ // }
930
+ // }
931
+ //
932
+ //
933
+ // Failure response format
934
+ // {
935
+ // "event": "placeorder",
936
+ // "submitted": false,
937
+ // "message": "JSON data format is invalid",
938
+ // "code": "20009",
939
+ // "timestamp": "1716932877381"
940
+ // }
941
+ //
942
+ const messageHash = this.safeString(message, 'tag');
943
+ const submitted = this.safeBool(message, 'submitted');
944
+ // filter out partial errors
945
+ if (!submitted) {
946
+ const method = this.safeString(message, 'event');
947
+ const stringMsg = this.json(message);
948
+ const code = this.safeInteger(message, 'code');
949
+ this.handleErrors(code, '', client.url, method, {}, stringMsg, message, {}, {});
950
+ }
951
+ const data = this.safeValue(message, 'data', {});
952
+ const order = this.parseOrder(data);
953
+ client.resolve(order, messageHash);
954
+ }
955
+ /**
956
+ * @method
957
+ * @name oxfun#cancelOrderWs
958
+ * @see https://docs.ox.fun/?json#cancel-order
959
+ * @description cancels an open order
960
+ * @param {string} id order id
961
+ * @param {string} symbol unified market symbol, default is undefined
962
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
963
+ * @returns {object} an list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
964
+ */
965
+ async cancelOrderWs(id, symbol = undefined, params = {}) {
966
+ if (symbol === undefined) {
967
+ throw new ArgumentsRequired(this.id + ' cancelOrderWs() requires a symbol argument');
968
+ }
969
+ await this.loadMarkets();
970
+ await this.authenticate();
971
+ const messageHash = this.nonce().toString();
972
+ const data = {
973
+ 'marketCode': this.marketId(symbol),
974
+ 'orderId': id,
975
+ };
976
+ const request = {
977
+ 'op': 'cancelorder',
978
+ 'tag': messageHash,
979
+ 'data': data,
980
+ };
981
+ const url = this.urls['api']['ws'];
982
+ return await this.watch(url, messageHash, request, messageHash);
983
+ }
984
+ /**
985
+ * @method
986
+ * @name oxfun#cancelOrdersWs
987
+ * @see https://www.okx.com/docs-v5/en/#order-book-trading-trade-ws-mass-cancel-order
988
+ * @description cancel multiple orders
989
+ * @param {string[]} ids order ids
990
+ * @param {string} symbol unified market symbol, default is undefined
991
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
992
+ * @returns {object} an list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
993
+ */
994
+ async cancelOrdersWs(ids, symbol = undefined, params = {}) {
995
+ const idsLength = ids.length;
996
+ if (idsLength > 20) {
997
+ throw new BadRequest(this.id + ' cancelOrdersWs() accepts up to 20 ids at a time');
998
+ }
999
+ if (symbol === undefined) {
1000
+ throw new ArgumentsRequired(this.id + ' cancelOrdersWs() requires a symbol argument');
1001
+ }
1002
+ await this.loadMarkets();
1003
+ await this.authenticate();
1004
+ const messageHash = this.nonce().toString();
1005
+ const marketId = this.marketId(symbol);
1006
+ const dataArray = [];
1007
+ for (let i = 0; i < idsLength; i++) {
1008
+ const data = {
1009
+ 'instId': marketId,
1010
+ 'ordId': ids[i],
1011
+ };
1012
+ dataArray.push(data);
1013
+ }
1014
+ const request = {
1015
+ 'op': 'cancelorders',
1016
+ 'tag': messageHash,
1017
+ 'dataArray': dataArray,
1018
+ };
1019
+ const url = this.urls['api']['ws'];
1020
+ return await this.watch(url, messageHash, this.deepExtend(request, params), messageHash);
1021
+ }
1022
+ async authenticate(params = {}) {
1023
+ const url = this.urls['api']['ws'];
1024
+ const client = this.client(url);
1025
+ const messageHash = 'authenticated';
1026
+ const future = client.future(messageHash);
1027
+ const authenticated = this.safeDict(client.subscriptions, messageHash);
1028
+ if (authenticated === undefined) {
1029
+ this.checkRequiredCredentials();
1030
+ const timestamp = this.milliseconds();
1031
+ const payload = timestamp.toString() + 'GET/auth/self/verify';
1032
+ const signature = this.hmac(this.encode(payload), this.encode(this.secret), sha256, 'base64');
1033
+ const request = {
1034
+ 'op': 'login',
1035
+ 'data': {
1036
+ 'apiKey': this.apiKey,
1037
+ 'timestamp': timestamp,
1038
+ 'signature': signature,
1039
+ },
1040
+ };
1041
+ const message = this.extend(request, params);
1042
+ this.watch(url, messageHash, message, messageHash);
1043
+ }
1044
+ return await future;
1045
+ }
1046
+ handleAuthenticationMessage(client, message) {
1047
+ const authenticated = this.safeBool(message, 'success', false);
1048
+ const messageHash = 'authenticated';
1049
+ if (authenticated) {
1050
+ // we resolve the future here permanently so authentication only happens once
1051
+ const future = this.safeDict(client.futures, messageHash);
1052
+ future.resolve(true);
1053
+ }
1054
+ else {
1055
+ const error = new AuthenticationError(this.json(message));
1056
+ client.reject(error, messageHash);
1057
+ if (messageHash in client.subscriptions) {
1058
+ delete client.subscriptions[messageHash];
1059
+ }
1060
+ }
1061
+ }
1062
+ ping(client) {
1063
+ return 'ping';
1064
+ }
1065
+ handlePong(client, message) {
1066
+ client.lastPong = this.milliseconds();
1067
+ return message;
1068
+ }
1069
+ handleMessage(client, message) {
1070
+ if (message === 'pong') {
1071
+ this.handlePong(client, message);
1072
+ return;
1073
+ }
1074
+ const table = this.safeString(message, 'table');
1075
+ const data = this.safeList(message, 'data', []);
1076
+ const event = this.safeString(message, 'event');
1077
+ if ((table !== undefined) && (data !== undefined)) {
1078
+ if (table === 'trade') {
1079
+ this.handleTrades(client, message);
1080
+ }
1081
+ if (table === 'ticker') {
1082
+ this.handleTicker(client, message);
1083
+ }
1084
+ if (table.indexOf('candles') > -1) {
1085
+ this.handleOHLCV(client, message);
1086
+ }
1087
+ if (table.indexOf('depth') > -1) {
1088
+ this.handleOrderBook(client, message);
1089
+ }
1090
+ if (table.indexOf('balance') > -1) {
1091
+ this.handleBalance(client, message);
1092
+ }
1093
+ if (table.indexOf('position') > -1) {
1094
+ this.handlePositions(client, message);
1095
+ }
1096
+ if (table.indexOf('order') > -1) {
1097
+ this.handleOrders(client, message);
1098
+ }
1099
+ if (table === 'bestBidAsk') {
1100
+ this.handleBidAsk(client, message);
1101
+ }
1102
+ }
1103
+ else {
1104
+ if (event === 'login') {
1105
+ this.handleAuthenticationMessage(client, message);
1106
+ }
1107
+ if ((event === 'placeorder') || (event === 'modifyorder') || (event === 'cancelorder')) {
1108
+ this.handlePlaceOrders(client, message);
1109
+ }
1110
+ }
1111
+ }
1112
+ }