ccxt-ir 4.9.32 → 4.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1059) hide show
  1. package/README.md +4 -4
  2. package/dist/ccxt.browser.min.js +2 -2
  3. package/dist/cjs/ccxt.js +7 -1
  4. package/dist/cjs/package.json +1 -1
  5. package/dist/cjs/src/abstract/asretether.js +11 -0
  6. package/dist/cjs/src/abstract/bidarz.js +11 -0
  7. package/dist/cjs/src/asretether.js +325 -0
  8. package/dist/cjs/src/bidarz.js +337 -0
  9. package/dist/cjs/src/bit24.js +4 -3
  10. package/dist/cjs/src/raastin.js +144 -16
  11. package/js/ccxt.d.ts +8 -2
  12. package/js/ccxt.js +6 -2
  13. package/js/src/abstract/asretether.d.ts +8 -0
  14. package/js/src/abstract/asretether.js +11 -0
  15. package/js/src/abstract/bidarz.d.ts +9 -0
  16. package/js/src/abstract/bidarz.js +11 -0
  17. package/js/src/abstract/raastin.d.ts +1 -0
  18. package/js/src/asretether.d.ts +21 -0
  19. package/js/src/asretether.js +324 -0
  20. package/js/src/bidarz.d.ts +22 -0
  21. package/js/src/bidarz.js +336 -0
  22. package/js/src/bit24.js +4 -3
  23. package/js/src/raastin.d.ts +2 -0
  24. package/js/src/raastin.js +144 -16
  25. package/js/src/src/abantether.d.ts +21 -0
  26. package/js/src/src/abantether.js +353 -0
  27. package/js/src/src/abstract/abantether.d.ts +8 -0
  28. package/js/src/src/abstract/abantether.js +11 -0
  29. package/js/src/src/abstract/afratether.d.ts +9 -0
  30. package/js/src/src/abstract/afratether.js +11 -0
  31. package/js/src/src/abstract/alpaca.d.ts +77 -0
  32. package/js/src/src/abstract/alpaca.js +11 -0
  33. package/js/src/src/abstract/apex.d.ts +34 -0
  34. package/js/src/src/abstract/apex.js +11 -0
  35. package/js/src/src/abstract/arzinja.d.ts +8 -0
  36. package/js/src/src/abstract/arzinja.js +11 -0
  37. package/js/src/src/abstract/arzplus.d.ts +11 -0
  38. package/js/src/src/abstract/arzplus.js +11 -0
  39. package/js/src/src/abstract/ascendex.d.ts +80 -0
  40. package/js/src/src/abstract/ascendex.js +11 -0
  41. package/js/src/src/abstract/asretether.d.ts +8 -0
  42. package/js/src/src/abstract/asretether.js +11 -0
  43. package/js/src/src/abstract/bidarz.d.ts +9 -0
  44. package/js/src/src/abstract/bidarz.js +11 -0
  45. package/js/src/src/abstract/bigone.d.ts +48 -0
  46. package/js/src/src/abstract/bigone.js +11 -0
  47. package/js/src/src/abstract/binance.d.ts +773 -0
  48. package/js/src/src/abstract/binance.js +11 -0
  49. package/js/src/src/abstract/bingx.d.ts +165 -0
  50. package/js/src/src/abstract/bingx.js +11 -0
  51. package/js/src/src/abstract/bit24.d.ts +9 -0
  52. package/js/src/src/abstract/bit24.js +11 -0
  53. package/js/src/src/abstract/bit2c.d.ts +30 -0
  54. package/js/src/src/abstract/bit2c.js +11 -0
  55. package/js/src/src/abstract/bitbank.d.ts +35 -0
  56. package/js/src/src/abstract/bitbank.js +11 -0
  57. package/js/src/src/abstract/bitbarg.d.ts +8 -0
  58. package/js/src/src/abstract/bitbarg.js +11 -0
  59. package/js/src/src/abstract/bitbns.d.ts +43 -0
  60. package/js/src/src/abstract/bitbns.js +11 -0
  61. package/js/src/src/abstract/bitfinex.d.ts +143 -0
  62. package/js/src/src/abstract/bitfinex.js +11 -0
  63. package/js/src/src/abstract/bitflyer.d.ts +42 -0
  64. package/js/src/src/abstract/bitflyer.js +11 -0
  65. package/js/src/src/abstract/bitget.d.ts +578 -0
  66. package/js/src/src/abstract/bitget.js +11 -0
  67. package/js/src/src/abstract/bithumb.d.ts +35 -0
  68. package/js/src/src/abstract/bithumb.js +11 -0
  69. package/js/src/src/abstract/bitimen.d.ts +10 -0
  70. package/js/src/src/abstract/bitimen.js +11 -0
  71. package/js/src/src/abstract/bitir.d.ts +10 -0
  72. package/js/src/src/abstract/bitir.js +11 -0
  73. package/js/src/src/abstract/bitmart.d.ts +120 -0
  74. package/js/src/src/abstract/bitmart.js +11 -0
  75. package/js/src/src/abstract/bitmex.d.ts +100 -0
  76. package/js/src/src/abstract/bitmex.js +11 -0
  77. package/js/src/src/abstract/bitopro.d.ts +33 -0
  78. package/js/src/src/abstract/bitopro.js +11 -0
  79. package/js/src/src/abstract/bitpin.d.ts +11 -0
  80. package/js/src/src/abstract/bitpin.js +11 -0
  81. package/js/src/src/abstract/bitrue.d.ts +75 -0
  82. package/js/src/src/abstract/bitrue.js +11 -0
  83. package/js/src/src/abstract/bitso.d.ts +46 -0
  84. package/js/src/src/abstract/bitso.js +11 -0
  85. package/js/src/src/abstract/bitstamp.d.ts +262 -0
  86. package/js/src/src/abstract/bitstamp.js +11 -0
  87. package/js/src/src/abstract/bitteam.d.ts +32 -0
  88. package/js/src/src/abstract/bitteam.js +11 -0
  89. package/js/src/src/abstract/bittrade.d.ts +117 -0
  90. package/js/src/src/abstract/bittrade.js +11 -0
  91. package/js/src/src/abstract/bitunix.d.ts +9 -0
  92. package/js/src/src/abstract/bitunix.js +11 -0
  93. package/js/src/src/abstract/bitvavo.d.ts +30 -0
  94. package/js/src/src/abstract/bitvavo.js +11 -0
  95. package/js/src/src/abstract/blockchaincom.d.ts +31 -0
  96. package/js/src/src/abstract/blockchaincom.js +11 -0
  97. package/js/src/src/abstract/blofin.d.ts +70 -0
  98. package/js/src/src/abstract/blofin.js +11 -0
  99. package/js/src/src/abstract/btcalpha.d.ts +21 -0
  100. package/js/src/src/abstract/btcalpha.js +11 -0
  101. package/js/src/src/abstract/btcbox.d.ts +18 -0
  102. package/js/src/src/abstract/btcbox.js +11 -0
  103. package/js/src/src/abstract/btcmarkets.d.ts +42 -0
  104. package/js/src/src/abstract/btcmarkets.js +11 -0
  105. package/js/src/src/abstract/btcturk.d.ts +23 -0
  106. package/js/src/src/abstract/btcturk.js +11 -0
  107. package/js/src/src/abstract/bybit.d.ts +316 -0
  108. package/js/src/src/abstract/bybit.js +11 -0
  109. package/js/src/src/abstract/bydfi.d.ts +11 -0
  110. package/js/src/src/abstract/bydfi.js +11 -0
  111. package/js/src/src/abstract/cafearz.d.ts +8 -0
  112. package/js/src/src/abstract/cafearz.js +11 -0
  113. package/js/src/src/abstract/cex.d.ts +35 -0
  114. package/js/src/src/abstract/cex.js +11 -0
  115. package/js/src/src/abstract/coinbase.d.ts +97 -0
  116. package/js/src/src/abstract/coinbase.js +11 -0
  117. package/js/src/src/abstract/coinbaseexchange.d.ts +71 -0
  118. package/js/src/src/abstract/coinbaseexchange.js +11 -0
  119. package/js/src/src/abstract/coinbaseinternational.d.ts +42 -0
  120. package/js/src/src/abstract/coinbaseinternational.js +11 -0
  121. package/js/src/src/abstract/coincatch.d.ts +97 -0
  122. package/js/src/src/abstract/coincatch.js +11 -0
  123. package/js/src/src/abstract/coincheck.d.ts +36 -0
  124. package/js/src/src/abstract/coincheck.js +11 -0
  125. package/js/src/src/abstract/coinex.d.ts +240 -0
  126. package/js/src/src/abstract/coinex.js +11 -0
  127. package/js/src/src/abstract/coinmate.d.ts +65 -0
  128. package/js/src/src/abstract/coinmate.js +11 -0
  129. package/js/src/src/abstract/coinmetro.d.ts +37 -0
  130. package/js/src/src/abstract/coinmetro.js +11 -0
  131. package/js/src/src/abstract/coinone.d.ts +70 -0
  132. package/js/src/src/abstract/coinone.js +11 -0
  133. package/js/src/src/abstract/coinsph.d.ts +57 -0
  134. package/js/src/src/abstract/coinsph.js +11 -0
  135. package/js/src/src/abstract/coinspot.d.ts +31 -0
  136. package/js/src/src/abstract/coinspot.js +11 -0
  137. package/js/src/src/abstract/cryptocom.d.ts +126 -0
  138. package/js/src/src/abstract/cryptocom.js +11 -0
  139. package/js/src/src/abstract/cryptomus.d.ts +23 -0
  140. package/js/src/src/abstract/cryptomus.js +11 -0
  141. package/js/src/src/abstract/defx.d.ts +72 -0
  142. package/js/src/src/abstract/defx.js +11 -0
  143. package/js/src/src/abstract/delta.d.ts +53 -0
  144. package/js/src/src/abstract/delta.js +11 -0
  145. package/js/src/src/abstract/deribit.d.ts +129 -0
  146. package/js/src/src/abstract/deribit.js +11 -0
  147. package/js/src/src/abstract/derive.d.ts +120 -0
  148. package/js/src/src/abstract/derive.js +11 -0
  149. package/js/src/src/abstract/digifinex.d.ts +95 -0
  150. package/js/src/src/abstract/digifinex.js +11 -0
  151. package/js/src/src/abstract/ellipx.d.ts +28 -0
  152. package/js/src/src/abstract/ellipx.js +11 -0
  153. package/js/src/src/abstract/eterex.d.ts +8 -0
  154. package/js/src/src/abstract/eterex.js +11 -0
  155. package/js/src/src/abstract/excoino.d.ts +10 -0
  156. package/js/src/src/abstract/excoino.js +11 -0
  157. package/js/src/src/abstract/exir.d.ts +11 -0
  158. package/js/src/src/abstract/exir.js +11 -0
  159. package/js/src/src/abstract/exmo.d.ts +58 -0
  160. package/js/src/src/abstract/exmo.js +11 -0
  161. package/js/src/src/abstract/exnovin.d.ts +9 -0
  162. package/js/src/src/abstract/exnovin.js +11 -0
  163. package/js/src/src/abstract/farhadexchange.d.ts +8 -0
  164. package/js/src/src/abstract/farhadexchange.js +11 -0
  165. package/js/src/src/abstract/foxbit.d.ts +29 -0
  166. package/js/src/src/abstract/foxbit.js +11 -0
  167. package/js/src/src/abstract/gate.d.ts +287 -0
  168. package/js/src/src/abstract/gate.js +11 -0
  169. package/js/src/src/abstract/gemini.d.ts +62 -0
  170. package/js/src/src/abstract/gemini.js +11 -0
  171. package/js/src/src/abstract/hamtapay.d.ts +9 -0
  172. package/js/src/src/abstract/hamtapay.js +11 -0
  173. package/js/src/src/abstract/hashkey.d.ts +70 -0
  174. package/js/src/src/abstract/hashkey.js +11 -0
  175. package/js/src/src/abstract/hibachi.d.ts +29 -0
  176. package/js/src/src/abstract/hibachi.js +11 -0
  177. package/js/src/src/abstract/hitbtc.d.ts +118 -0
  178. package/js/src/src/abstract/hitbtc.js +11 -0
  179. package/js/src/src/abstract/hitobit.d.ts +11 -0
  180. package/js/src/src/abstract/hitobit.js +11 -0
  181. package/js/src/src/abstract/hollaex.d.ts +36 -0
  182. package/js/src/src/abstract/hollaex.js +11 -0
  183. package/js/src/src/abstract/htx.d.ts +551 -0
  184. package/js/src/src/abstract/htx.js +11 -0
  185. package/js/src/src/abstract/hyperliquid.d.ts +9 -0
  186. package/js/src/src/abstract/hyperliquid.js +11 -0
  187. package/js/src/src/abstract/independentreserve.d.ts +46 -0
  188. package/js/src/src/abstract/independentreserve.js +11 -0
  189. package/js/src/src/abstract/indodax.d.ts +29 -0
  190. package/js/src/src/abstract/indodax.js +11 -0
  191. package/js/src/src/abstract/iranexchange.d.ts +9 -0
  192. package/js/src/src/abstract/iranexchange.js +11 -0
  193. package/js/src/src/abstract/jibitex.d.ts +10 -0
  194. package/js/src/src/abstract/jibitex.js +11 -0
  195. package/js/src/src/abstract/kcex.d.ts +10 -0
  196. package/js/src/src/abstract/kcex.js +11 -0
  197. package/js/src/src/abstract/kifpoolme.d.ts +9 -0
  198. package/js/src/src/abstract/kifpoolme.js +11 -0
  199. package/js/src/src/abstract/kraken.d.ts +61 -0
  200. package/js/src/src/abstract/kraken.js +11 -0
  201. package/js/src/src/abstract/krakenfutures.d.ts +45 -0
  202. package/js/src/src/abstract/krakenfutures.js +11 -0
  203. package/js/src/src/abstract/kucoin.d.ts +227 -0
  204. package/js/src/src/abstract/kucoin.js +11 -0
  205. package/js/src/src/abstract/kucoinfutures.d.ts +254 -0
  206. package/js/src/src/abstract/kucoinfutures.js +11 -0
  207. package/js/src/src/abstract/latoken.d.ts +59 -0
  208. package/js/src/src/abstract/latoken.js +11 -0
  209. package/js/src/src/abstract/lbank.d.ts +65 -0
  210. package/js/src/src/abstract/lbank.js +11 -0
  211. package/js/src/src/abstract/luno.d.ts +41 -0
  212. package/js/src/src/abstract/luno.js +11 -0
  213. package/js/src/src/abstract/mazdax.d.ts +11 -0
  214. package/js/src/src/abstract/mazdax.js +11 -0
  215. package/js/src/src/abstract/mercado.d.ts +28 -0
  216. package/js/src/src/abstract/mercado.js +11 -0
  217. package/js/src/src/abstract/mexc.d.ts +183 -0
  218. package/js/src/src/abstract/mexc.js +11 -0
  219. package/js/src/src/abstract/modetrade.d.ts +122 -0
  220. package/js/src/src/abstract/modetrade.js +11 -0
  221. package/js/src/src/abstract/ndax.d.ts +100 -0
  222. package/js/src/src/abstract/ndax.js +11 -0
  223. package/js/src/src/abstract/nobitex.d.ts +10 -0
  224. package/js/src/src/abstract/nobitex.js +11 -0
  225. package/js/src/src/abstract/novadax.d.ts +32 -0
  226. package/js/src/src/abstract/novadax.js +11 -0
  227. package/js/src/src/abstract/oceanex.d.ts +30 -0
  228. package/js/src/src/abstract/oceanex.js +11 -0
  229. package/js/src/src/abstract/okcoin.d.ts +77 -0
  230. package/js/src/src/abstract/okcoin.js +11 -0
  231. package/js/src/src/abstract/okexchange.d.ts +11 -0
  232. package/js/src/src/abstract/okexchange.js +11 -0
  233. package/js/src/src/abstract/okx.d.ts +352 -0
  234. package/js/src/src/abstract/okx.js +11 -0
  235. package/js/src/src/abstract/ompfinex.d.ts +10 -0
  236. package/js/src/src/abstract/ompfinex.js +11 -0
  237. package/js/src/src/abstract/onetrading.d.ts +26 -0
  238. package/js/src/src/abstract/onetrading.js +11 -0
  239. package/js/src/src/abstract/oxfun.d.ts +37 -0
  240. package/js/src/src/abstract/oxfun.js +11 -0
  241. package/js/src/src/abstract/p2b.d.ts +25 -0
  242. package/js/src/src/abstract/p2b.js +11 -0
  243. package/js/src/src/abstract/paradex.d.ts +66 -0
  244. package/js/src/src/abstract/paradex.js +11 -0
  245. package/js/src/src/abstract/paymium.d.ts +31 -0
  246. package/js/src/src/abstract/paymium.js +11 -0
  247. package/js/src/src/abstract/phemex.d.ts +120 -0
  248. package/js/src/src/abstract/phemex.js +11 -0
  249. package/js/src/src/abstract/pingi.d.ts +9 -0
  250. package/js/src/src/abstract/pingi.js +11 -0
  251. package/js/src/src/abstract/poloniex.d.ts +108 -0
  252. package/js/src/src/abstract/poloniex.js +11 -0
  253. package/js/src/src/abstract/pooleno.d.ts +8 -0
  254. package/js/src/src/abstract/pooleno.js +11 -0
  255. package/js/src/src/abstract/probit.d.ts +26 -0
  256. package/js/src/src/abstract/probit.js +11 -0
  257. package/js/src/src/abstract/raastin.d.ts +11 -0
  258. package/js/src/src/abstract/raastin.js +11 -0
  259. package/js/src/src/abstract/ramzinex.d.ts +10 -0
  260. package/js/src/src/abstract/ramzinex.js +11 -0
  261. package/js/src/src/abstract/sarmayex.d.ts +8 -0
  262. package/js/src/src/abstract/sarmayex.js +11 -0
  263. package/js/src/src/abstract/sarrafex.d.ts +10 -0
  264. package/js/src/src/abstract/sarrafex.js +11 -0
  265. package/js/src/src/abstract/tabdeal.d.ts +10 -0
  266. package/js/src/src/abstract/tabdeal.js +11 -0
  267. package/js/src/src/abstract/tehran_exchange.d.ts +9 -0
  268. package/js/src/src/abstract/tehran_exchange.js +11 -0
  269. package/js/src/src/abstract/tetherland.d.ts +8 -0
  270. package/js/src/src/abstract/tetherland.js +11 -0
  271. package/js/src/src/abstract/timex.d.ts +65 -0
  272. package/js/src/src/abstract/timex.js +11 -0
  273. package/js/src/src/abstract/tokocrypto.d.ts +40 -0
  274. package/js/src/src/abstract/tokocrypto.js +11 -0
  275. package/js/src/src/abstract/toobit.d.ts +10 -0
  276. package/js/src/src/abstract/toobit.js +11 -0
  277. package/js/src/src/abstract/tradeogre.d.ts +21 -0
  278. package/js/src/src/abstract/tradeogre.js +11 -0
  279. package/js/src/src/abstract/twox.d.ts +8 -0
  280. package/js/src/src/abstract/twox.js +11 -0
  281. package/js/src/src/abstract/ubitex.d.ts +10 -0
  282. package/js/src/src/abstract/ubitex.js +11 -0
  283. package/js/src/src/abstract/upbit.d.ts +58 -0
  284. package/js/src/src/abstract/upbit.js +11 -0
  285. package/js/src/src/abstract/vertex.d.ts +22 -0
  286. package/js/src/src/abstract/vertex.js +11 -0
  287. package/js/src/src/abstract/wallex.d.ts +11 -0
  288. package/js/src/src/abstract/wallex.js +11 -0
  289. package/js/src/src/abstract/wavesexchange.d.ts +157 -0
  290. package/js/src/src/abstract/wavesexchange.js +11 -0
  291. package/js/src/src/abstract/whitebit.d.ts +117 -0
  292. package/js/src/src/abstract/whitebit.js +11 -0
  293. package/js/src/src/abstract/woo.d.ts +144 -0
  294. package/js/src/src/abstract/woo.js +11 -0
  295. package/js/src/src/abstract/woofipro.d.ts +122 -0
  296. package/js/src/src/abstract/woofipro.js +11 -0
  297. package/js/src/src/abstract/xt.d.ts +160 -0
  298. package/js/src/src/abstract/xt.js +11 -0
  299. package/js/src/src/abstract/yobit.d.ts +19 -0
  300. package/js/src/src/abstract/yobit.js +11 -0
  301. package/js/src/src/abstract/zaif.d.ts +41 -0
  302. package/js/src/src/abstract/zaif.js +11 -0
  303. package/js/src/src/abstract/zonda.d.ts +56 -0
  304. package/js/src/src/abstract/zonda.js +11 -0
  305. package/js/src/src/afratether.d.ts +21 -0
  306. package/js/src/src/afratether.js +356 -0
  307. package/js/src/src/alpaca.d.ts +332 -0
  308. package/js/src/src/alpaca.js +1908 -0
  309. package/js/src/src/apex.d.ts +333 -0
  310. package/js/src/src/apex.js +1942 -0
  311. package/js/src/src/arzinja.d.ts +21 -0
  312. package/js/src/src/arzinja.js +298 -0
  313. package/js/src/src/arzplus.d.ts +26 -0
  314. package/js/src/src/arzplus.js +581 -0
  315. package/js/src/src/ascendex.d.ts +424 -0
  316. package/js/src/src/ascendex.js +3699 -0
  317. package/js/src/src/asretether.d.ts +21 -0
  318. package/js/src/src/asretether.js +324 -0
  319. package/js/src/src/base/Exchange.d.ts +926 -0
  320. package/js/src/src/base/Exchange.js +7399 -0
  321. package/js/src/src/base/Precise.d.ts +42 -0
  322. package/js/src/src/base/Precise.js +275 -0
  323. package/js/src/src/base/errors.d.ts +168 -0
  324. package/js/src/src/base/errors.js +255 -0
  325. package/js/src/src/base/functions/crypto.d.ts +16 -0
  326. package/js/src/src/base/functions/crypto.js +131 -0
  327. package/js/src/src/base/functions/encode.d.ts +4 -0
  328. package/js/src/src/base/functions/encode.js +32 -0
  329. package/js/src/src/base/functions/generic.d.ts +29 -0
  330. package/js/src/src/base/functions/generic.js +203 -0
  331. package/js/src/src/base/functions/misc.d.ts +9 -0
  332. package/js/src/src/base/functions/misc.js +101 -0
  333. package/js/src/src/base/functions/number.d.ts +27 -0
  334. package/js/src/src/base/functions/number.js +313 -0
  335. package/js/src/src/base/functions/platform.d.ts +7 -0
  336. package/js/src/src/base/functions/platform.js +27 -0
  337. package/js/src/src/base/functions/rsa.d.ts +5 -0
  338. package/js/src/src/base/functions/rsa.js +49 -0
  339. package/js/src/src/base/functions/string.d.ts +7 -0
  340. package/js/src/src/base/functions/string.js +44 -0
  341. package/js/src/src/base/functions/throttle.d.ts +6 -0
  342. package/js/src/src/base/functions/throttle.js +67 -0
  343. package/js/src/src/base/functions/time.d.ts +21 -0
  344. package/js/src/src/base/functions/time.js +171 -0
  345. package/js/src/src/base/functions/totp.d.ts +3 -0
  346. package/js/src/src/base/functions/totp.js +25 -0
  347. package/js/src/src/base/functions/type.d.ts +37 -0
  348. package/js/src/src/base/functions/type.js +179 -0
  349. package/js/src/src/base/functions.d.ts +10 -0
  350. package/js/src/src/base/functions.js +18 -0
  351. package/js/src/src/base/types.d.ts +586 -0
  352. package/js/src/src/base/types.js +7 -0
  353. package/js/src/src/base/ws/Cache.d.ts +27 -0
  354. package/js/src/src/base/ws/Cache.js +260 -0
  355. package/js/src/src/base/ws/Client.d.ts +53 -0
  356. package/js/src/src/base/ws/Client.js +307 -0
  357. package/js/src/src/base/ws/Future.d.ts +8 -0
  358. package/js/src/src/base/ws/Future.js +35 -0
  359. package/js/src/src/base/ws/OrderBook.d.ts +25 -0
  360. package/js/src/src/base/ws/OrderBook.js +130 -0
  361. package/js/src/src/base/ws/OrderBookSide.d.ts +40 -0
  362. package/js/src/src/base/ws/OrderBookSide.js +286 -0
  363. package/js/src/src/base/ws/WsClient.d.ts +11 -0
  364. package/js/src/src/base/ws/WsClient.js +69 -0
  365. package/js/src/src/bequant.d.ts +4 -0
  366. package/js/src/src/bequant.js +35 -0
  367. package/js/src/src/bidarz.d.ts +16 -0
  368. package/js/src/src/bidarz.js +327 -0
  369. package/js/src/src/bigone.d.ts +296 -0
  370. package/js/src/src/bigone.js +2340 -0
  371. package/js/src/src/binance.d.ts +1667 -0
  372. package/js/src/src/binance.js +14400 -0
  373. package/js/src/src/binancecoinm.d.ts +6 -0
  374. package/js/src/src/binancecoinm.js +51 -0
  375. package/js/src/src/binanceus.d.ts +4 -0
  376. package/js/src/src/binanceus.js +225 -0
  377. package/js/src/src/binanceusdm.d.ts +6 -0
  378. package/js/src/src/binanceusdm.js +63 -0
  379. package/js/src/src/bingx.d.ts +778 -0
  380. package/js/src/src/bingx.js +6705 -0
  381. package/js/src/src/bit24.d.ts +24 -0
  382. package/js/src/src/bit24.js +520 -0
  383. package/js/src/src/bit2c.d.ts +146 -0
  384. package/js/src/src/bit2c.js +1029 -0
  385. package/js/src/src/bitbank.d.ts +181 -0
  386. package/js/src/src/bitbank.js +1146 -0
  387. package/js/src/src/bitbarg.d.ts +21 -0
  388. package/js/src/src/bitbarg.js +312 -0
  389. package/js/src/src/bitbns.d.ts +184 -0
  390. package/js/src/src/bitbns.js +1288 -0
  391. package/js/src/src/bitfinex.d.ts +516 -0
  392. package/js/src/src/bitfinex.js +3951 -0
  393. package/js/src/src/bitflyer.d.ts +229 -0
  394. package/js/src/src/bitflyer.js +1209 -0
  395. package/js/src/src/bitget.d.ts +1109 -0
  396. package/js/src/src/bitget.js +11033 -0
  397. package/js/src/src/bithumb.d.ts +165 -0
  398. package/js/src/src/bithumb.js +1257 -0
  399. package/js/src/src/bitimen.d.ts +23 -0
  400. package/js/src/src/bitimen.js +424 -0
  401. package/js/src/src/bitir.d.ts +23 -0
  402. package/js/src/src/bitir.js +521 -0
  403. package/js/src/src/bitmart.d.ts +736 -0
  404. package/js/src/src/bitmart.js +5639 -0
  405. package/js/src/src/bitmex.d.ts +395 -0
  406. package/js/src/src/bitmex.js +3088 -0
  407. package/js/src/src/bitopro.d.ts +295 -0
  408. package/js/src/src/bitopro.js +1892 -0
  409. package/js/src/src/bitpin.d.ts +23 -0
  410. package/js/src/src/bitpin.js +487 -0
  411. package/js/src/src/bitrue.d.ts +384 -0
  412. package/js/src/src/bitrue.js +3382 -0
  413. package/js/src/src/bitso.d.ts +270 -0
  414. package/js/src/src/bitso.js +1881 -0
  415. package/js/src/src/bitstamp.d.ts +355 -0
  416. package/js/src/src/bitstamp.js +2445 -0
  417. package/js/src/src/bitteam.d.ts +229 -0
  418. package/js/src/src/bitteam.js +2420 -0
  419. package/js/src/src/bittrade.d.ts +298 -0
  420. package/js/src/src/bittrade.js +2050 -0
  421. package/js/src/src/bitunix.d.ts +21 -0
  422. package/js/src/src/bitunix.js +326 -0
  423. package/js/src/src/bitvavo.d.ts +311 -0
  424. package/js/src/src/bitvavo.js +2204 -0
  425. package/js/src/src/blockchaincom.d.ts +256 -0
  426. package/js/src/src/blockchaincom.js +1259 -0
  427. package/js/src/src/blofin.d.ts +439 -0
  428. package/js/src/src/blofin.js +2576 -0
  429. package/js/src/src/btcalpha.d.ts +209 -0
  430. package/js/src/src/btcalpha.js +1056 -0
  431. package/js/src/src/btcbox.d.ts +144 -0
  432. package/js/src/src/btcbox.js +834 -0
  433. package/js/src/src/btcmarkets.d.ts +253 -0
  434. package/js/src/src/btcmarkets.js +1418 -0
  435. package/js/src/src/btcturk.d.ts +161 -0
  436. package/js/src/src/btcturk.js +1058 -0
  437. package/js/src/src/bybit.d.ts +1097 -0
  438. package/js/src/src/bybit.js +9382 -0
  439. package/js/src/src/bydfi.d.ts +23 -0
  440. package/js/src/src/bydfi.js +434 -0
  441. package/js/src/src/cafearz.d.ts +21 -0
  442. package/js/src/src/cafearz.js +346 -0
  443. package/js/src/src/cex.d.ts +286 -0
  444. package/js/src/src/cex.js +1799 -0
  445. package/js/src/src/coinbase.d.ts +623 -0
  446. package/js/src/src/coinbase.js +5220 -0
  447. package/js/src/src/coinbaseadvanced.d.ts +4 -0
  448. package/js/src/src/coinbaseadvanced.js +18 -0
  449. package/js/src/src/coinbaseexchange.d.ts +334 -0
  450. package/js/src/src/coinbaseexchange.js +2127 -0
  451. package/js/src/src/coinbaseinternational.d.ts +443 -0
  452. package/js/src/src/coinbaseinternational.js +2336 -0
  453. package/js/src/src/coincatch.d.ts +786 -0
  454. package/js/src/src/coincatch.js +5492 -0
  455. package/js/src/src/coincheck.d.ts +147 -0
  456. package/js/src/src/coincheck.js +962 -0
  457. package/js/src/src/coinex.d.ts +719 -0
  458. package/js/src/src/coinex.js +6166 -0
  459. package/js/src/src/coinmate.d.ts +202 -0
  460. package/js/src/src/coinmate.js +1215 -0
  461. package/js/src/src/coinmetro.d.ts +244 -0
  462. package/js/src/src/coinmetro.js +2024 -0
  463. package/js/src/src/coinone.d.ts +158 -0
  464. package/js/src/src/coinone.js +1278 -0
  465. package/js/src/src/coinsph.d.ts +310 -0
  466. package/js/src/src/coinsph.js +2203 -0
  467. package/js/src/src/coinspot.d.ts +108 -0
  468. package/js/src/src/coinspot.js +653 -0
  469. package/js/src/src/cryptocom.d.ts +463 -0
  470. package/js/src/src/cryptocom.js +3549 -0
  471. package/js/src/src/cryptomus.d.ts +158 -0
  472. package/js/src/src/cryptomus.js +1169 -0
  473. package/js/src/src/defx.d.ts +348 -0
  474. package/js/src/src/defx.js +2139 -0
  475. package/js/src/src/delta.d.ts +407 -0
  476. package/js/src/src/delta.js +3654 -0
  477. package/js/src/src/deribit.d.ts +516 -0
  478. package/js/src/src/deribit.js +3790 -0
  479. package/js/src/src/derive.d.ts +324 -0
  480. package/js/src/src/derive.js +2655 -0
  481. package/js/src/src/digifinex.d.ts +544 -0
  482. package/js/src/src/digifinex.js +4453 -0
  483. package/js/src/src/ellipx.d.ts +237 -0
  484. package/js/src/src/ellipx.js +2071 -0
  485. package/js/src/src/eterex.d.ts +21 -0
  486. package/js/src/src/eterex.js +299 -0
  487. package/js/src/src/excoino.d.ts +23 -0
  488. package/js/src/src/excoino.js +426 -0
  489. package/js/src/src/exir.d.ts +23 -0
  490. package/js/src/src/exir.js +403 -0
  491. package/js/src/src/exmo.d.ts +426 -0
  492. package/js/src/src/exmo.js +2825 -0
  493. package/js/src/src/exnovin.d.ts +22 -0
  494. package/js/src/src/exnovin.js +378 -0
  495. package/js/src/src/farhadexchange.d.ts +21 -0
  496. package/js/src/src/farhadexchange.js +280 -0
  497. package/js/src/src/fmfwio.d.ts +4 -0
  498. package/js/src/src/fmfwio.js +35 -0
  499. package/js/src/src/foxbit.d.ts +352 -0
  500. package/js/src/src/foxbit.js +2016 -0
  501. package/js/src/src/gate.d.ts +1071 -0
  502. package/js/src/src/gate.js +8282 -0
  503. package/js/src/src/gateio.d.ts +4 -0
  504. package/js/src/src/gateio.js +17 -0
  505. package/js/src/src/gemini.d.ts +257 -0
  506. package/js/src/src/gemini.js +2006 -0
  507. package/js/src/src/hamtapay.d.ts +21 -0
  508. package/js/src/src/hamtapay.js +303 -0
  509. package/js/src/src/hashkey.d.ts +628 -0
  510. package/js/src/src/hashkey.js +4363 -0
  511. package/js/src/src/hibachi.d.ts +346 -0
  512. package/js/src/src/hibachi.js +2137 -0
  513. package/js/src/src/hitbtc.d.ts +558 -0
  514. package/js/src/src/hitbtc.js +3847 -0
  515. package/js/src/src/hitobit.d.ts +23 -0
  516. package/js/src/src/hitobit.js +412 -0
  517. package/js/src/src/hollaex.d.ts +305 -0
  518. package/js/src/src/hollaex.js +2046 -0
  519. package/js/src/src/htx.d.ts +961 -0
  520. package/js/src/src/htx.js +9668 -0
  521. package/js/src/src/huobi.d.ts +4 -0
  522. package/js/src/src/huobi.js +17 -0
  523. package/js/src/src/hyperliquid.d.ts +651 -0
  524. package/js/src/src/hyperliquid.js +3937 -0
  525. package/js/src/src/independentreserve.d.ts +169 -0
  526. package/js/src/src/independentreserve.js +1115 -0
  527. package/js/src/src/indodax.d.ts +217 -0
  528. package/js/src/src/indodax.js +1454 -0
  529. package/js/src/src/iranexchange.d.ts +21 -0
  530. package/js/src/src/iranexchange.js +399 -0
  531. package/js/src/src/jibitex.d.ts +23 -0
  532. package/js/src/src/jibitex.js +416 -0
  533. package/js/src/src/kcex.d.ts +21 -0
  534. package/js/src/src/kcex.js +335 -0
  535. package/js/src/src/kifpoolme.d.ts +23 -0
  536. package/js/src/src/kifpoolme.js +410 -0
  537. package/js/src/src/kraken.d.ts +484 -0
  538. package/js/src/src/kraken.js +3518 -0
  539. package/js/src/src/krakenfutures.d.ts +362 -0
  540. package/js/src/src/krakenfutures.js +2885 -0
  541. package/js/src/src/kucoin.d.ts +759 -0
  542. package/js/src/src/kucoin.js +5153 -0
  543. package/js/src/src/kucoinfutures.d.ts +521 -0
  544. package/js/src/src/kucoinfutures.js +3381 -0
  545. package/js/src/src/latoken.d.ts +274 -0
  546. package/js/src/src/latoken.js +1824 -0
  547. package/js/src/src/lbank.d.ts +350 -0
  548. package/js/src/src/lbank.js +3146 -0
  549. package/js/src/src/luno.d.ts +252 -0
  550. package/js/src/src/luno.js +1479 -0
  551. package/js/src/src/mazdax.d.ts +23 -0
  552. package/js/src/src/mazdax.js +534 -0
  553. package/js/src/src/mercado.d.ts +160 -0
  554. package/js/src/src/mercado.js +1011 -0
  555. package/js/src/src/mexc.d.ts +768 -0
  556. package/js/src/src/mexc.js +6102 -0
  557. package/js/src/src/modetrade.d.ts +496 -0
  558. package/js/src/src/modetrade.js +2936 -0
  559. package/js/src/src/myokx.d.ts +4 -0
  560. package/js/src/src/myokx.js +54 -0
  561. package/js/src/src/ndax.d.ts +285 -0
  562. package/js/src/src/ndax.js +2598 -0
  563. package/js/src/src/nobitex.d.ts +23 -0
  564. package/js/src/src/nobitex.js +454 -0
  565. package/js/src/src/novadax.d.ts +279 -0
  566. package/js/src/src/novadax.js +1676 -0
  567. package/js/src/src/oceanex.d.ts +231 -0
  568. package/js/src/src/oceanex.js +1123 -0
  569. package/js/src/src/okcoin.d.ts +346 -0
  570. package/js/src/src/okcoin.js +3211 -0
  571. package/js/src/src/okexchange.d.ts +23 -0
  572. package/js/src/src/okexchange.js +373 -0
  573. package/js/src/src/okx.d.ts +1125 -0
  574. package/js/src/src/okx.js +9009 -0
  575. package/js/src/src/okxus.d.ts +4 -0
  576. package/js/src/src/okxus.js +54 -0
  577. package/js/src/src/ompfinex.d.ts +23 -0
  578. package/js/src/src/ompfinex.js +510 -0
  579. package/js/src/src/onetrading.d.ts +228 -0
  580. package/js/src/src/onetrading.js +1769 -0
  581. package/js/src/src/oxfun.d.ts +442 -0
  582. package/js/src/src/oxfun.js +2920 -0
  583. package/js/src/src/p2b.d.ts +189 -0
  584. package/js/src/src/p2b.js +1344 -0
  585. package/js/src/src/paradex.d.ts +389 -0
  586. package/js/src/src/paradex.js +2607 -0
  587. package/js/src/src/paymium.d.ts +133 -0
  588. package/js/src/src/paymium.js +644 -0
  589. package/js/src/src/phemex.d.ts +497 -0
  590. package/js/src/src/phemex.js +5333 -0
  591. package/js/src/src/pingi.d.ts +22 -0
  592. package/js/src/src/pingi.js +446 -0
  593. package/js/src/src/poloniex.d.ts +441 -0
  594. package/js/src/src/poloniex.js +3681 -0
  595. package/js/src/src/pooleno.d.ts +21 -0
  596. package/js/src/src/pooleno.js +347 -0
  597. package/js/src/src/pro/alpaca.d.ts +95 -0
  598. package/js/src/src/pro/alpaca.js +724 -0
  599. package/js/src/src/pro/apex.d.ts +160 -0
  600. package/js/src/src/pro/apex.js +1044 -0
  601. package/js/src/src/pro/ascendex.d.ts +99 -0
  602. package/js/src/src/pro/ascendex.js +1012 -0
  603. package/js/src/src/pro/bequant.d.ts +4 -0
  604. package/js/src/src/pro/bequant.js +42 -0
  605. package/js/src/src/pro/binance.d.ts +796 -0
  606. package/js/src/src/pro/binance.js +4373 -0
  607. package/js/src/src/pro/binancecoinm.d.ts +4 -0
  608. package/js/src/src/pro/binancecoinm.js +32 -0
  609. package/js/src/src/pro/binanceus.d.ts +4 -0
  610. package/js/src/src/pro/binanceus.js +52 -0
  611. package/js/src/src/pro/binanceusdm.d.ts +4 -0
  612. package/js/src/src/pro/binanceusdm.js +37 -0
  613. package/js/src/src/pro/bingx.d.ts +151 -0
  614. package/js/src/src/pro/bingx.js +1568 -0
  615. package/js/src/src/pro/bitfinex.d.ts +99 -0
  616. package/js/src/src/pro/bitfinex.js +1165 -0
  617. package/js/src/src/pro/bitget.d.ts +257 -0
  618. package/js/src/src/pro/bitget.js +2327 -0
  619. package/js/src/src/pro/bithumb.d.ts +59 -0
  620. package/js/src/src/pro/bithumb.js +395 -0
  621. package/js/src/src/pro/bitmart.d.ts +168 -0
  622. package/js/src/src/pro/bitmart.js +1686 -0
  623. package/js/src/src/pro/bitmex.d.ts +170 -0
  624. package/js/src/src/pro/bitmex.js +1760 -0
  625. package/js/src/src/pro/bitopro.d.ts +69 -0
  626. package/js/src/src/pro/bitopro.js +477 -0
  627. package/js/src/src/pro/bitrue.d.ts +40 -0
  628. package/js/src/src/pro/bitrue.js +461 -0
  629. package/js/src/src/pro/bitstamp.d.ts +53 -0
  630. package/js/src/src/pro/bitstamp.js +587 -0
  631. package/js/src/src/pro/bittrade.d.ts +66 -0
  632. package/js/src/src/pro/bittrade.js +606 -0
  633. package/js/src/src/pro/bitvavo.d.ts +321 -0
  634. package/js/src/src/pro/bitvavo.js +1451 -0
  635. package/js/src/src/pro/blockchaincom.d.ts +89 -0
  636. package/js/src/src/pro/blockchaincom.js +777 -0
  637. package/js/src/src/pro/blofin.d.ts +174 -0
  638. package/js/src/src/pro/blofin.js +743 -0
  639. package/js/src/src/pro/bybit.d.ts +397 -0
  640. package/js/src/src/pro/bybit.js +2519 -0
  641. package/js/src/src/pro/cex.d.ts +220 -0
  642. package/js/src/src/pro/cex.js +1535 -0
  643. package/js/src/src/pro/coinbase.d.ts +119 -0
  644. package/js/src/src/pro/coinbase.js +736 -0
  645. package/js/src/src/pro/coinbaseadvanced.d.ts +4 -0
  646. package/js/src/src/pro/coinbaseadvanced.js +18 -0
  647. package/js/src/src/pro/coinbaseexchange.d.ts +133 -0
  648. package/js/src/src/pro/coinbaseexchange.js +969 -0
  649. package/js/src/src/pro/coinbaseinternational.d.ts +143 -0
  650. package/js/src/src/pro/coinbaseinternational.js +804 -0
  651. package/js/src/src/pro/coincatch.d.ts +207 -0
  652. package/js/src/src/pro/coincatch.js +1562 -0
  653. package/js/src/src/pro/coincheck.d.ts +33 -0
  654. package/js/src/src/pro/coincheck.js +210 -0
  655. package/js/src/src/pro/coinex.d.ts +147 -0
  656. package/js/src/src/pro/coinex.js +1426 -0
  657. package/js/src/src/pro/coinone.d.ts +51 -0
  658. package/js/src/src/pro/coinone.js +413 -0
  659. package/js/src/src/pro/cryptocom.d.ts +300 -0
  660. package/js/src/src/pro/cryptocom.js +1414 -0
  661. package/js/src/src/pro/defx.d.ts +236 -0
  662. package/js/src/src/pro/defx.js +865 -0
  663. package/js/src/src/pro/deribit.d.ts +163 -0
  664. package/js/src/src/pro/deribit.js +1066 -0
  665. package/js/src/src/pro/derive.d.ts +100 -0
  666. package/js/src/src/pro/derive.js +753 -0
  667. package/js/src/src/pro/exmo.d.ts +97 -0
  668. package/js/src/src/pro/exmo.js +903 -0
  669. package/js/src/src/pro/gate.d.ts +360 -0
  670. package/js/src/src/pro/gate.js +2119 -0
  671. package/js/src/src/pro/gateio.d.ts +4 -0
  672. package/js/src/src/pro/gateio.js +17 -0
  673. package/js/src/src/pro/gemini.d.ts +106 -0
  674. package/js/src/src/pro/gemini.js +932 -0
  675. package/js/src/src/pro/hashkey.d.ts +121 -0
  676. package/js/src/src/pro/hashkey.js +843 -0
  677. package/js/src/src/pro/hitbtc.d.ts +235 -0
  678. package/js/src/src/pro/hitbtc.js +1400 -0
  679. package/js/src/src/pro/hollaex.d.ts +77 -0
  680. package/js/src/src/pro/hollaex.js +604 -0
  681. package/js/src/src/pro/htx.d.ts +141 -0
  682. package/js/src/src/pro/htx.js +2415 -0
  683. package/js/src/src/pro/huobi.d.ts +4 -0
  684. package/js/src/src/pro/huobi.js +17 -0
  685. package/js/src/src/pro/hyperliquid.d.ts +218 -0
  686. package/js/src/src/pro/hyperliquid.js +1126 -0
  687. package/js/src/src/pro/independentreserve.d.ts +36 -0
  688. package/js/src/src/pro/independentreserve.js +287 -0
  689. package/js/src/src/pro/kraken.d.ts +233 -0
  690. package/js/src/src/pro/kraken.js +1785 -0
  691. package/js/src/src/pro/krakenfutures.d.ts +178 -0
  692. package/js/src/src/pro/krakenfutures.js +1592 -0
  693. package/js/src/src/pro/kucoin.d.ts +221 -0
  694. package/js/src/src/pro/kucoin.js +1430 -0
  695. package/js/src/src/pro/kucoinfutures.d.ts +205 -0
  696. package/js/src/src/pro/kucoinfutures.js +1295 -0
  697. package/js/src/src/pro/lbank.d.ts +134 -0
  698. package/js/src/src/pro/lbank.js +950 -0
  699. package/js/src/src/pro/luno.d.ts +44 -0
  700. package/js/src/src/pro/luno.js +322 -0
  701. package/js/src/src/pro/mexc.d.ts +210 -0
  702. package/js/src/src/pro/mexc.js +2009 -0
  703. package/js/src/src/pro/modetrade.d.ts +155 -0
  704. package/js/src/src/pro/modetrade.js +1335 -0
  705. package/js/src/src/pro/myokx.d.ts +4 -0
  706. package/js/src/src/pro/myokx.js +39 -0
  707. package/js/src/src/pro/ndax.d.ts +60 -0
  708. package/js/src/src/pro/ndax.js +545 -0
  709. package/js/src/src/pro/okcoin.d.ts +91 -0
  710. package/js/src/src/pro/okcoin.js +763 -0
  711. package/js/src/src/pro/okx.d.ts +408 -0
  712. package/js/src/src/pro/okx.js +2479 -0
  713. package/js/src/src/pro/okxus.d.ts +4 -0
  714. package/js/src/src/pro/okxus.js +39 -0
  715. package/js/src/src/pro/onetrading.d.ts +107 -0
  716. package/js/src/src/pro/onetrading.js +1343 -0
  717. package/js/src/src/pro/oxfun.d.ts +234 -0
  718. package/js/src/src/pro/oxfun.js +1112 -0
  719. package/js/src/src/pro/p2b.d.ts +104 -0
  720. package/js/src/src/pro/p2b.js +506 -0
  721. package/js/src/src/pro/paradex.d.ts +54 -0
  722. package/js/src/src/pro/paradex.js +370 -0
  723. package/js/src/src/pro/phemex.d.ts +129 -0
  724. package/js/src/src/pro/phemex.js +1569 -0
  725. package/js/src/src/pro/poloniex.d.ts +214 -0
  726. package/js/src/src/pro/poloniex.js +1318 -0
  727. package/js/src/src/pro/probit.d.ts +91 -0
  728. package/js/src/src/pro/probit.js +593 -0
  729. package/js/src/src/pro/tradeogre.d.ts +49 -0
  730. package/js/src/src/pro/tradeogre.js +284 -0
  731. package/js/src/src/pro/upbit.d.ts +124 -0
  732. package/js/src/src/pro/upbit.js +689 -0
  733. package/js/src/src/pro/vertex.d.ts +104 -0
  734. package/js/src/src/pro/vertex.js +999 -0
  735. package/js/src/src/pro/whitebit.d.ts +123 -0
  736. package/js/src/src/pro/whitebit.js +971 -0
  737. package/js/src/src/pro/woo.d.ts +161 -0
  738. package/js/src/src/pro/woo.js +1351 -0
  739. package/js/src/src/pro/woofipro.d.ts +155 -0
  740. package/js/src/src/pro/woofipro.js +1335 -0
  741. package/js/src/src/pro/xt.d.ts +165 -0
  742. package/js/src/src/pro/xt.js +1230 -0
  743. package/js/src/src/probit.d.ts +283 -0
  744. package/js/src/src/probit.js +1935 -0
  745. package/js/src/src/protobuf/mexc/compiled.cjs +7186 -0
  746. package/js/src/src/protobuf/mexc/compiled.d.cts +8 -0
  747. package/js/src/src/raastin.d.ts +24 -0
  748. package/js/src/src/raastin.js +494 -0
  749. package/js/src/src/ramzinex.d.ts +23 -0
  750. package/js/src/src/ramzinex.js +510 -0
  751. package/js/src/src/sarmayex.d.ts +21 -0
  752. package/js/src/src/sarmayex.js +376 -0
  753. package/js/src/src/sarrafex.d.ts +23 -0
  754. package/js/src/src/sarrafex.js +501 -0
  755. package/js/src/src/static_dependencies/ethers/abi-coder.d.ts +50 -0
  756. package/js/src/src/static_dependencies/ethers/abi-coder.js +148 -0
  757. package/js/src/src/static_dependencies/ethers/address/address.d.ts +55 -0
  758. package/js/src/src/static_dependencies/ethers/address/address.js +162 -0
  759. package/js/src/src/static_dependencies/ethers/address/checks.d.ts +80 -0
  760. package/js/src/src/static_dependencies/ethers/address/checks.js +119 -0
  761. package/js/src/src/static_dependencies/ethers/address/contract-address.d.ts +47 -0
  762. package/js/src/src/static_dependencies/ethers/address/contract-address.js +73 -0
  763. package/js/src/src/static_dependencies/ethers/address/index.d.ts +48 -0
  764. package/js/src/src/static_dependencies/ethers/address/index.js +24 -0
  765. package/js/src/src/static_dependencies/ethers/bytes32.d.ts +14 -0
  766. package/js/src/src/static_dependencies/ethers/bytes32.js +45 -0
  767. package/js/src/src/static_dependencies/ethers/coders/abstract-coder.d.ts +120 -0
  768. package/js/src/src/static_dependencies/ethers/coders/abstract-coder.js +424 -0
  769. package/js/src/src/static_dependencies/ethers/coders/address.d.ts +12 -0
  770. package/js/src/src/static_dependencies/ethers/coders/address.js +34 -0
  771. package/js/src/src/static_dependencies/ethers/coders/anonymous.d.ts +14 -0
  772. package/js/src/src/static_dependencies/ethers/coders/anonymous.js +27 -0
  773. package/js/src/src/static_dependencies/ethers/coders/array.d.ts +24 -0
  774. package/js/src/src/static_dependencies/ethers/coders/array.js +162 -0
  775. package/js/src/src/static_dependencies/ethers/coders/boolean.d.ts +12 -0
  776. package/js/src/src/static_dependencies/ethers/coders/boolean.js +26 -0
  777. package/js/src/src/static_dependencies/ethers/coders/bytes.d.ts +18 -0
  778. package/js/src/src/static_dependencies/ethers/coders/bytes.js +39 -0
  779. package/js/src/src/static_dependencies/ethers/coders/fixed-bytes.d.ts +14 -0
  780. package/js/src/src/static_dependencies/ethers/coders/fixed-bytes.js +32 -0
  781. package/js/src/src/static_dependencies/ethers/coders/null.d.ts +11 -0
  782. package/js/src/src/static_dependencies/ethers/coders/null.js +29 -0
  783. package/js/src/src/static_dependencies/ethers/coders/number.d.ts +15 -0
  784. package/js/src/src/static_dependencies/ethers/coders/number.js +48 -0
  785. package/js/src/src/static_dependencies/ethers/coders/string.d.ts +12 -0
  786. package/js/src/src/static_dependencies/ethers/coders/string.js +26 -0
  787. package/js/src/src/static_dependencies/ethers/coders/tuple.d.ts +15 -0
  788. package/js/src/src/static_dependencies/ethers/coders/tuple.js +67 -0
  789. package/js/src/src/static_dependencies/ethers/fragments.d.ts +458 -0
  790. package/js/src/src/static_dependencies/ethers/fragments.js +1252 -0
  791. package/js/src/src/static_dependencies/ethers/hash/index.d.ts +10 -0
  792. package/js/src/src/static_dependencies/ethers/hash/index.js +15 -0
  793. package/js/src/src/static_dependencies/ethers/hash/solidity.d.ts +30 -0
  794. package/js/src/src/static_dependencies/ethers/hash/solidity.js +107 -0
  795. package/js/src/src/static_dependencies/ethers/hash/typed-data.d.ts +144 -0
  796. package/js/src/src/static_dependencies/ethers/hash/typed-data.js +490 -0
  797. package/js/src/src/static_dependencies/ethers/index.d.ts +19 -0
  798. package/js/src/src/static_dependencies/ethers/index.js +22 -0
  799. package/js/src/src/static_dependencies/ethers/interface.d.ts +380 -0
  800. package/js/src/src/static_dependencies/ethers/interface.js +990 -0
  801. package/js/src/src/static_dependencies/ethers/typed.d.ts +569 -0
  802. package/js/src/src/static_dependencies/ethers/typed.js +608 -0
  803. package/js/src/src/static_dependencies/ethers/utils/base58.d.ts +22 -0
  804. package/js/src/src/static_dependencies/ethers/utils/base58.js +68 -0
  805. package/js/src/src/static_dependencies/ethers/utils/base64.d.ts +39 -0
  806. package/js/src/src/static_dependencies/ethers/utils/base64.js +58 -0
  807. package/js/src/src/static_dependencies/ethers/utils/data.d.ts +92 -0
  808. package/js/src/src/static_dependencies/ethers/utils/data.js +175 -0
  809. package/js/src/src/static_dependencies/ethers/utils/errors.d.ts +509 -0
  810. package/js/src/src/static_dependencies/ethers/utils/errors.js +227 -0
  811. package/js/src/src/static_dependencies/ethers/utils/events.d.ts +76 -0
  812. package/js/src/src/static_dependencies/ethers/utils/events.js +52 -0
  813. package/js/src/src/static_dependencies/ethers/utils/fixednumber.d.ts +251 -0
  814. package/js/src/src/static_dependencies/ethers/utils/fixednumber.js +529 -0
  815. package/js/src/src/static_dependencies/ethers/utils/index.d.ts +30 -0
  816. package/js/src/src/static_dependencies/ethers/utils/index.js +38 -0
  817. package/js/src/src/static_dependencies/ethers/utils/maths.d.ts +65 -0
  818. package/js/src/src/static_dependencies/ethers/utils/maths.js +220 -0
  819. package/js/src/src/static_dependencies/ethers/utils/properties.d.ts +22 -0
  820. package/js/src/src/static_dependencies/ethers/utils/properties.js +59 -0
  821. package/js/src/src/static_dependencies/ethers/utils/rlp-decode.d.ts +5 -0
  822. package/js/src/src/static_dependencies/ethers/utils/rlp-decode.js +84 -0
  823. package/js/src/src/static_dependencies/ethers/utils/rlp-encode.d.ts +5 -0
  824. package/js/src/src/static_dependencies/ethers/utils/rlp-encode.js +54 -0
  825. package/js/src/src/static_dependencies/ethers/utils/rlp.d.ts +16 -0
  826. package/js/src/src/static_dependencies/ethers/utils/rlp.js +14 -0
  827. package/js/src/src/static_dependencies/ethers/utils/units.d.ts +23 -0
  828. package/js/src/src/static_dependencies/ethers/utils/units.js +88 -0
  829. package/js/src/src/static_dependencies/ethers/utils/utf8.d.ts +95 -0
  830. package/js/src/src/static_dependencies/ethers/utils/utf8.js +225 -0
  831. package/js/src/src/static_dependencies/ethers/utils/uuid.d.ts +7 -0
  832. package/js/src/src/static_dependencies/ethers/utils/uuid.js +35 -0
  833. package/js/src/src/static_dependencies/fflake/browser.d.ts +222 -0
  834. package/js/src/src/static_dependencies/fflake/browser.js +2578 -0
  835. package/js/src/src/static_dependencies/jsencrypt/JSEncrypt.d.ts +116 -0
  836. package/js/src/src/static_dependencies/jsencrypt/JSEncrypt.js +194 -0
  837. package/js/src/src/static_dependencies/jsencrypt/JSEncryptRSAKey.d.ts +142 -0
  838. package/js/src/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +307 -0
  839. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/asn1.d.ts +51 -0
  840. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +565 -0
  841. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/base64.d.ts +5 -0
  842. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +94 -0
  843. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/hex.d.ts +3 -0
  844. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +70 -0
  845. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/int10.d.ts +9 -0
  846. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +91 -0
  847. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/base64.d.ts +3 -0
  848. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +25 -0
  849. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +101 -0
  850. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +1757 -0
  851. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/prng4.d.ts +10 -0
  852. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +50 -0
  853. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rng.d.ts +3 -0
  854. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +80 -0
  855. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rsa.d.ts +23 -0
  856. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +377 -0
  857. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/util.d.ts +7 -0
  858. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/util.js +64 -0
  859. package/js/src/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.d.ts +24 -0
  860. package/js/src/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +1627 -0
  861. package/js/src/src/static_dependencies/noble-curves/_shortw_utils.d.ts +60 -0
  862. package/js/src/src/static_dependencies/noble-curves/_shortw_utils.js +22 -0
  863. package/js/src/src/static_dependencies/noble-curves/abstract/curve.d.ts +67 -0
  864. package/js/src/src/static_dependencies/noble-curves/abstract/curve.js +157 -0
  865. package/js/src/src/static_dependencies/noble-curves/abstract/edwards.d.ts +79 -0
  866. package/js/src/src/static_dependencies/noble-curves/abstract/edwards.js +432 -0
  867. package/js/src/src/static_dependencies/noble-curves/abstract/hash-to-curve.d.ts +56 -0
  868. package/js/src/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +171 -0
  869. package/js/src/src/static_dependencies/noble-curves/abstract/modular.d.ts +68 -0
  870. package/js/src/src/static_dependencies/noble-curves/abstract/modular.js +351 -0
  871. package/js/src/src/static_dependencies/noble-curves/abstract/montgomery.d.ts +25 -0
  872. package/js/src/src/static_dependencies/noble-curves/abstract/montgomery.js +162 -0
  873. package/js/src/src/static_dependencies/noble-curves/abstract/poseidon.d.ts +29 -0
  874. package/js/src/src/static_dependencies/noble-curves/abstract/poseidon.js +115 -0
  875. package/js/src/src/static_dependencies/noble-curves/abstract/utils.d.ts +53 -0
  876. package/js/src/src/static_dependencies/noble-curves/abstract/utils.js +227 -0
  877. package/js/src/src/static_dependencies/noble-curves/abstract/weierstrass.d.ts +204 -0
  878. package/js/src/src/static_dependencies/noble-curves/abstract/weierstrass.js +1016 -0
  879. package/js/src/src/static_dependencies/noble-curves/ed25519.d.ts +53 -0
  880. package/js/src/src/static_dependencies/noble-curves/ed25519.js +402 -0
  881. package/js/src/src/static_dependencies/noble-curves/p256.d.ts +103 -0
  882. package/js/src/src/static_dependencies/noble-curves/p256.js +47 -0
  883. package/js/src/src/static_dependencies/noble-curves/secp256k1.d.ts +91 -0
  884. package/js/src/src/static_dependencies/noble-curves/secp256k1.js +257 -0
  885. package/js/src/src/static_dependencies/noble-hashes/_assert.d.ts +21 -0
  886. package/js/src/src/static_dependencies/noble-hashes/_assert.js +48 -0
  887. package/js/src/src/static_dependencies/noble-hashes/_sha2.d.ts +23 -0
  888. package/js/src/src/static_dependencies/noble-hashes/_sha2.js +119 -0
  889. package/js/src/src/static_dependencies/noble-hashes/_u64.d.ts +35 -0
  890. package/js/src/src/static_dependencies/noble-hashes/_u64.js +66 -0
  891. package/js/src/src/static_dependencies/noble-hashes/crypto.d.ts +1 -0
  892. package/js/src/src/static_dependencies/noble-hashes/crypto.js +7 -0
  893. package/js/src/src/static_dependencies/noble-hashes/hmac.d.ts +26 -0
  894. package/js/src/src/static_dependencies/noble-hashes/hmac.js +82 -0
  895. package/js/src/src/static_dependencies/noble-hashes/md5.d.ts +18 -0
  896. package/js/src/src/static_dependencies/noble-hashes/md5.js +242 -0
  897. package/js/src/src/static_dependencies/noble-hashes/sha1.d.ts +21 -0
  898. package/js/src/src/static_dependencies/noble-hashes/sha1.js +90 -0
  899. package/js/src/src/static_dependencies/noble-hashes/sha256.d.ts +34 -0
  900. package/js/src/src/static_dependencies/noble-hashes/sha256.js +129 -0
  901. package/js/src/src/static_dependencies/noble-hashes/sha3.d.ts +97 -0
  902. package/js/src/src/static_dependencies/noble-hashes/sha3.js +211 -0
  903. package/js/src/src/static_dependencies/noble-hashes/sha512.d.ts +66 -0
  904. package/js/src/src/static_dependencies/noble-hashes/sha512.js +236 -0
  905. package/js/src/src/static_dependencies/noble-hashes/utils.d.ts +77 -0
  906. package/js/src/src/static_dependencies/noble-hashes/utils.js +147 -0
  907. package/js/src/src/static_dependencies/proxies/agent-base/helpers.d.ts +14 -0
  908. package/js/src/src/static_dependencies/proxies/agent-base/helpers.js +42 -0
  909. package/js/src/src/static_dependencies/proxies/agent-base/index.d.ts +33 -0
  910. package/js/src/src/static_dependencies/proxies/agent-base/index.js +82 -0
  911. package/js/src/src/static_dependencies/proxies/http-proxy-agent/index.d.ts +40 -0
  912. package/js/src/src/static_dependencies/proxies/http-proxy-agent/index.js +119 -0
  913. package/js/src/src/static_dependencies/proxies/https-proxy-agent/index.d.ts +45 -0
  914. package/js/src/src/static_dependencies/proxies/https-proxy-agent/index.js +150 -0
  915. package/js/src/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.d.ts +15 -0
  916. package/js/src/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +95 -0
  917. package/js/src/src/static_dependencies/qs/formats.cjs +22 -0
  918. package/js/src/src/static_dependencies/qs/formats.d.cts +14 -0
  919. package/js/src/src/static_dependencies/qs/index.cjs +15 -0
  920. package/js/src/src/static_dependencies/qs/index.d.cts +10 -0
  921. package/js/src/src/static_dependencies/qs/parse.cjs +208 -0
  922. package/js/src/src/static_dependencies/qs/parse.d.cts +8 -0
  923. package/js/src/src/static_dependencies/qs/stringify.cjs +192 -0
  924. package/js/src/src/static_dependencies/qs/stringify.d.cts +8 -0
  925. package/js/src/src/static_dependencies/qs/utils.cjs +202 -0
  926. package/js/src/src/static_dependencies/qs/utils.d.cts +15 -0
  927. package/js/src/src/static_dependencies/scure-base/index.d.ts +92 -0
  928. package/js/src/src/static_dependencies/scure-base/index.js +420 -0
  929. package/js/src/src/static_dependencies/scure-starknet/index.d.ts +79 -0
  930. package/js/src/src/static_dependencies/scure-starknet/index.js +323 -0
  931. package/js/src/src/static_dependencies/starknet/constants.d.ts +61 -0
  932. package/js/src/src/static_dependencies/starknet/constants.js +67 -0
  933. package/js/src/src/static_dependencies/starknet/index.d.ts +3 -0
  934. package/js/src/src/static_dependencies/starknet/index.js +9 -0
  935. package/js/src/src/static_dependencies/starknet/types/cairoEnum.d.ts +2 -0
  936. package/js/src/src/static_dependencies/starknet/types/cairoEnum.js +7 -0
  937. package/js/src/src/static_dependencies/starknet/types/calldata.d.ts +19 -0
  938. package/js/src/src/static_dependencies/starknet/types/calldata.js +28 -0
  939. package/js/src/src/static_dependencies/starknet/types/index.d.ts +13 -0
  940. package/js/src/src/static_dependencies/starknet/types/index.js +16 -0
  941. package/js/src/src/static_dependencies/starknet/types/lib/contract/abi.d.ts +71 -0
  942. package/js/src/src/static_dependencies/starknet/types/lib/contract/abi.js +13 -0
  943. package/js/src/src/static_dependencies/starknet/types/lib/contract/index.d.ts +24 -0
  944. package/js/src/src/static_dependencies/starknet/types/lib/contract/index.js +16 -0
  945. package/js/src/src/static_dependencies/starknet/types/lib/contract/legacy.d.ts +33 -0
  946. package/js/src/src/static_dependencies/starknet/types/lib/contract/legacy.js +7 -0
  947. package/js/src/src/static_dependencies/starknet/types/lib/contract/sierra.d.ts +52 -0
  948. package/js/src/src/static_dependencies/starknet/types/lib/contract/sierra.js +7 -0
  949. package/js/src/src/static_dependencies/starknet/types/lib/index.d.ts +248 -0
  950. package/js/src/src/static_dependencies/starknet/types/lib/index.js +52 -0
  951. package/js/src/src/static_dependencies/starknet/types/typedData.d.ts +44 -0
  952. package/js/src/src/static_dependencies/starknet/types/typedData.js +19 -0
  953. package/js/src/src/static_dependencies/starknet/utils/assert.d.ts +7 -0
  954. package/js/src/src/static_dependencies/starknet/utils/assert.js +17 -0
  955. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/felt.d.ts +6 -0
  956. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +43 -0
  957. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.d.ts +72 -0
  958. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +117 -0
  959. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.d.ts +76 -0
  960. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +136 -0
  961. package/js/src/src/static_dependencies/starknet/utils/calldata/byteArray.d.ts +32 -0
  962. package/js/src/src/static_dependencies/starknet/utils/calldata/byteArray.js +59 -0
  963. package/js/src/src/static_dependencies/starknet/utils/calldata/cairo.d.ts +183 -0
  964. package/js/src/src/static_dependencies/starknet/utils/calldata/cairo.js +229 -0
  965. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.d.ts +38 -0
  966. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +57 -0
  967. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.d.ts +35 -0
  968. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +64 -0
  969. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.d.ts +34 -0
  970. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +63 -0
  971. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/index.d.ts +3 -0
  972. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/index.js +9 -0
  973. package/js/src/src/static_dependencies/starknet/utils/calldata/formatter.d.ts +9 -0
  974. package/js/src/src/static_dependencies/starknet/utils/calldata/formatter.js +67 -0
  975. package/js/src/src/static_dependencies/starknet/utils/calldata/index.d.ts +89 -0
  976. package/js/src/src/static_dependencies/starknet/utils/calldata/index.js +280 -0
  977. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/index.d.ts +5 -0
  978. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/index.js +30 -0
  979. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/interface.d.ts +20 -0
  980. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/interface.js +8 -0
  981. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.d.ts +24 -0
  982. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +36 -0
  983. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.d.ts +23 -0
  984. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +40 -0
  985. package/js/src/src/static_dependencies/starknet/utils/calldata/propertyOrder.d.ts +2 -0
  986. package/js/src/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +155 -0
  987. package/js/src/src/static_dependencies/starknet/utils/calldata/requestParser.d.ts +11 -0
  988. package/js/src/src/static_dependencies/starknet/utils/calldata/requestParser.js +248 -0
  989. package/js/src/src/static_dependencies/starknet/utils/calldata/responseParser.d.ts +11 -0
  990. package/js/src/src/static_dependencies/starknet/utils/calldata/responseParser.js +214 -0
  991. package/js/src/src/static_dependencies/starknet/utils/calldata/tuple.d.ts +6 -0
  992. package/js/src/src/static_dependencies/starknet/utils/calldata/tuple.js +113 -0
  993. package/js/src/src/static_dependencies/starknet/utils/calldata/validate.d.ts +6 -0
  994. package/js/src/src/static_dependencies/starknet/utils/calldata/validate.js +208 -0
  995. package/js/src/src/static_dependencies/starknet/utils/encode.d.ts +207 -0
  996. package/js/src/src/static_dependencies/starknet/utils/encode.js +282 -0
  997. package/js/src/src/static_dependencies/starknet/utils/hash/classHash.d.ts +57 -0
  998. package/js/src/src/static_dependencies/starknet/utils/hash/classHash.js +223 -0
  999. package/js/src/src/static_dependencies/starknet/utils/hash/index.d.ts +6 -0
  1000. package/js/src/src/static_dependencies/starknet/utils/hash/index.js +13 -0
  1001. package/js/src/src/static_dependencies/starknet/utils/merkle.d.ts +35 -0
  1002. package/js/src/src/static_dependencies/starknet/utils/merkle.js +84 -0
  1003. package/js/src/src/static_dependencies/starknet/utils/num.d.ts +182 -0
  1004. package/js/src/src/static_dependencies/starknet/utils/num.js +244 -0
  1005. package/js/src/src/static_dependencies/starknet/utils/selector.d.ts +48 -0
  1006. package/js/src/src/static_dependencies/starknet/utils/selector.js +85 -0
  1007. package/js/src/src/static_dependencies/starknet/utils/shortString.d.ts +57 -0
  1008. package/js/src/src/static_dependencies/starknet/utils/shortString.js +96 -0
  1009. package/js/src/src/static_dependencies/starknet/utils/typedData.d.ts +54 -0
  1010. package/js/src/src/static_dependencies/starknet/utils/typedData.js +321 -0
  1011. package/js/src/src/static_dependencies/watchable/src/types.d.ts +28 -0
  1012. package/js/src/src/static_dependencies/watchable/src/types.js +8 -0
  1013. package/js/src/src/static_dependencies/watchable/src/unpromise.d.ts +120 -0
  1014. package/js/src/src/static_dependencies/watchable/src/unpromise.js +297 -0
  1015. package/js/src/src/static_dependencies/zklink/zklink-sdk-web.d.ts +1279 -0
  1016. package/js/src/src/static_dependencies/zklink/zklink-sdk-web.js +4282 -0
  1017. package/js/src/src/tabdeal.d.ts +23 -0
  1018. package/js/src/src/tabdeal.js +387 -0
  1019. package/js/src/src/tehran_exchange.d.ts +21 -0
  1020. package/js/src/src/tehran_exchange.js +333 -0
  1021. package/js/src/src/tetherland.d.ts +21 -0
  1022. package/js/src/src/tetherland.js +367 -0
  1023. package/js/src/src/timex.d.ts +247 -0
  1024. package/js/src/src/timex.js +1792 -0
  1025. package/js/src/src/tokocrypto.d.ts +261 -0
  1026. package/js/src/src/tokocrypto.js +2641 -0
  1027. package/js/src/src/toobit.d.ts +22 -0
  1028. package/js/src/src/toobit.js +445 -0
  1029. package/js/src/src/tradeogre.d.ts +149 -0
  1030. package/js/src/src/tradeogre.js +878 -0
  1031. package/js/src/src/twox.d.ts +21 -0
  1032. package/js/src/src/twox.js +371 -0
  1033. package/js/src/src/ubitex.d.ts +23 -0
  1034. package/js/src/src/ubitex.js +433 -0
  1035. package/js/src/src/upbit.d.ts +377 -0
  1036. package/js/src/src/upbit.js +2340 -0
  1037. package/js/src/src/vertex.d.ts +346 -0
  1038. package/js/src/src/vertex.js +3146 -0
  1039. package/js/src/src/wallex.d.ts +23 -0
  1040. package/js/src/src/wallex.js +467 -0
  1041. package/js/src/src/wavesexchange.d.ts +244 -0
  1042. package/js/src/src/wavesexchange.js +2747 -0
  1043. package/js/src/src/whitebit.d.ts +571 -0
  1044. package/js/src/src/whitebit.js +3437 -0
  1045. package/js/src/src/woo.d.ts +727 -0
  1046. package/js/src/src/woo.js +4183 -0
  1047. package/js/src/src/woofipro.d.ts +497 -0
  1048. package/js/src/src/woofipro.js +2941 -0
  1049. package/js/src/src/xt.d.ts +568 -0
  1050. package/js/src/src/xt.js +5184 -0
  1051. package/js/src/src/yobit.d.ts +197 -0
  1052. package/js/src/src/yobit.js +1453 -0
  1053. package/js/src/src/zaif.d.ts +136 -0
  1054. package/js/src/src/zaif.js +821 -0
  1055. package/js/src/src/zonda.d.ts +214 -0
  1056. package/js/src/src/zonda.js +1984 -0
  1057. package/js/test.d.ts +1 -1
  1058. package/js/test.js +33 -33
  1059. package/package.json +1 -1
@@ -0,0 +1,1535 @@
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 cexRest from '../cex.js';
9
+ import { sha256 } from '../static_dependencies/noble-hashes/sha256.js';
10
+ import { ArgumentsRequired, ExchangeError, BadRequest } from '../base/errors.js';
11
+ import { Precise } from '../base/Precise.js';
12
+ import { ArrayCacheBySymbolById, ArrayCacheByTimestamp, ArrayCache } from '../base/ws/Cache.js';
13
+ // ---------------------------------------------------------------------------
14
+ export default class cex extends cexRest {
15
+ describe() {
16
+ return this.deepExtend(super.describe(), {
17
+ 'has': {
18
+ 'ws': true,
19
+ 'watchBalance': true,
20
+ 'watchTicker': true,
21
+ 'watchTickers': true,
22
+ 'watchTrades': true,
23
+ 'watchTradesForSymbols': false,
24
+ 'watchMyTrades': true,
25
+ 'watchOrders': true,
26
+ 'watchOrderBook': true,
27
+ 'watchOHLCV': true,
28
+ 'watchPosition': undefined,
29
+ 'createOrderWs': true,
30
+ 'editOrderWs': true,
31
+ 'cancelOrderWs': true,
32
+ 'cancelOrdersWs': true,
33
+ 'fetchOrderWs': true,
34
+ 'fetchOpenOrdersWs': true,
35
+ 'fetchTickerWs': true,
36
+ 'fetchBalanceWs': true,
37
+ },
38
+ 'urls': {
39
+ 'api': {
40
+ 'ws': 'wss://ws.cex.io/ws',
41
+ },
42
+ },
43
+ 'options': {
44
+ 'orderbook': {},
45
+ },
46
+ 'streaming': {},
47
+ 'exceptions': {},
48
+ });
49
+ }
50
+ requestId() {
51
+ const requestId = this.sum(this.safeInteger(this.options, 'requestId', 0), 1);
52
+ this.options['requestId'] = requestId;
53
+ return requestId.toString();
54
+ }
55
+ /**
56
+ * @method
57
+ * @name cex#watchBalance
58
+ * @description watch balance and get the amount of funds available for trading or funds locked in orders
59
+ * @see https://cex.io/websocket-api#get-balance
60
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
61
+ * @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
62
+ */
63
+ async watchBalance(params = {}) {
64
+ await this.authenticate(params);
65
+ const messageHash = this.requestId();
66
+ const url = this.urls['api']['ws'];
67
+ const subscribe = {
68
+ 'e': 'get-balance',
69
+ 'data': {},
70
+ 'oid': this.requestId(),
71
+ };
72
+ const request = this.deepExtend(subscribe, params);
73
+ return await this.watch(url, messageHash, request, messageHash, request);
74
+ }
75
+ handleBalance(client, message) {
76
+ //
77
+ // {
78
+ // "e": "get-balance",
79
+ // "data": {
80
+ // "balance": {
81
+ // "BTC": "0.00000000",
82
+ // "USD": "0.00",
83
+ // ...
84
+ // },
85
+ // "obalance": {
86
+ // "BTC": "0.00000000",
87
+ // "USD": "0.00",
88
+ // ...
89
+ // },
90
+ // "time": 1663761159605
91
+ // },
92
+ // "oid": 1,
93
+ // "ok": "ok"
94
+ // }
95
+ //
96
+ const data = this.safeValue(message, 'data', {});
97
+ const freeBalance = this.safeValue(data, 'balance', {});
98
+ const usedBalance = this.safeValue(data, 'obalance', {});
99
+ const result = {
100
+ 'info': data,
101
+ };
102
+ const currencyIds = Object.keys(freeBalance);
103
+ for (let i = 0; i < currencyIds.length; i++) {
104
+ const currencyId = currencyIds[i];
105
+ const account = this.account();
106
+ account['free'] = this.safeString(freeBalance, currencyId);
107
+ account['used'] = this.safeString(usedBalance, currencyId);
108
+ const code = this.safeCurrencyCode(currencyId);
109
+ result[code] = account;
110
+ }
111
+ this.balance = this.safeBalance(result);
112
+ const messageHash = this.safeString(message, 'oid');
113
+ client.resolve(this.balance, messageHash);
114
+ }
115
+ /**
116
+ * @method
117
+ * @name cex#watchTrades
118
+ * @description get the list of most recent trades for a particular symbol. Note: can only watch one symbol at a time.
119
+ * @see https://cex.io/websocket-api#old-pair-room
120
+ * @param {string} symbol unified symbol of the market to fetch trades for
121
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
122
+ * @param {int} [limit] the maximum amount of trades to fetch
123
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
124
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
125
+ */
126
+ async watchTrades(symbol, since = undefined, limit = undefined, params = {}) {
127
+ await this.loadMarkets();
128
+ const market = this.market(symbol);
129
+ symbol = market['symbol'];
130
+ const url = this.urls['api']['ws'];
131
+ const messageHash = 'trades';
132
+ const subscriptionHash = 'old:' + symbol;
133
+ this.options['currentWatchTradeSymbol'] = symbol; // exchange supports only 1 symbol for this watchTrades channel
134
+ const client = this.safeValue(this.clients, url);
135
+ if (client !== undefined) {
136
+ const subscriptionKeys = Object.keys(client.subscriptions);
137
+ for (let i = 0; i < subscriptionKeys.length; i++) {
138
+ let subscriptionKey = subscriptionKeys[i];
139
+ if (subscriptionKey === subscriptionHash) {
140
+ continue;
141
+ }
142
+ subscriptionKey = subscriptionKey.slice(0, 3);
143
+ if (subscriptionKey === 'old') {
144
+ throw new ExchangeError(this.id + ' watchTrades() only supports watching one symbol at a time.');
145
+ }
146
+ }
147
+ }
148
+ const message = {
149
+ 'e': 'subscribe',
150
+ 'rooms': ['pair-' + market['base'] + '-' + market['quote']],
151
+ };
152
+ const request = this.deepExtend(message, params);
153
+ const trades = await this.watch(url, messageHash, request, subscriptionHash);
154
+ // assing symbol to the trades as message does not contain symbol information
155
+ for (let i = 0; i < trades.length; i++) {
156
+ trades[i]['symbol'] = symbol;
157
+ }
158
+ return this.filterBySinceLimit(trades, since, limit, 'timestamp', true);
159
+ }
160
+ handleTradesSnapshot(client, message) {
161
+ //
162
+ // {
163
+ // "e": "history",
164
+ // "data": [
165
+ // 'buy:1710255706095:444444:71222.2:14892622'
166
+ // 'sell:1710255658251:42530:71300:14892621'
167
+ // 'buy:1710252424241:87913:72800:14892620'
168
+ // ... timestamp descending
169
+ // ]
170
+ // }
171
+ //
172
+ const data = this.safeList(message, 'data', []);
173
+ const limit = this.safeInteger(this.options, 'tradesLimit', 1000);
174
+ const stored = new ArrayCache(limit);
175
+ const symbol = this.safeString(this.options, 'currentWatchTradeSymbol');
176
+ if (symbol === undefined) {
177
+ return;
178
+ }
179
+ const market = this.market(symbol);
180
+ const dataLength = data.length;
181
+ for (let i = 0; i < dataLength; i++) {
182
+ const index = dataLength - 1 - i;
183
+ const rawTrade = data[index];
184
+ const parsed = this.parseWsOldTrade(rawTrade, market);
185
+ stored.append(parsed);
186
+ }
187
+ const messageHash = 'trades';
188
+ this.trades = stored; // trades don't have symbol
189
+ client.resolve(this.trades, messageHash);
190
+ }
191
+ parseWsOldTrade(trade, market = undefined) {
192
+ //
193
+ // snapshot trade
194
+ // "sell:1665467367741:3888551:19058.8:14541219"
195
+ // update trade
196
+ // ['buy', '1665467516704', '98070', "19057.7", "14541220"]
197
+ //
198
+ if (!Array.isArray(trade)) {
199
+ trade = trade.split(':');
200
+ }
201
+ const side = this.safeString(trade, 0);
202
+ const timestamp = this.safeInteger(trade, 1);
203
+ const amount = this.safeString(trade, 2);
204
+ const price = this.safeString(trade, 3);
205
+ const id = this.safeString(trade, 4);
206
+ return this.safeTrade({
207
+ 'info': trade,
208
+ 'id': id,
209
+ 'timestamp': timestamp,
210
+ 'datetime': this.iso8601(timestamp),
211
+ 'symbol': this.safeString(market, 'symbol'),
212
+ 'type': undefined,
213
+ 'side': side,
214
+ 'order': undefined,
215
+ 'takerOrMaker': undefined,
216
+ 'price': price,
217
+ 'amount': amount,
218
+ 'cost': undefined,
219
+ 'fee': undefined,
220
+ }, market);
221
+ }
222
+ handleTrade(client, message) {
223
+ //
224
+ // {
225
+ // "e": "history-update",
226
+ // "data": [
227
+ // ['buy', '1665467516704', '98070', "19057.7", "14541220"]
228
+ // ]
229
+ // }
230
+ //
231
+ const data = this.safeValue(message, 'data', []);
232
+ const stored = this.trades; // to do fix this, this.trades is not meant to be used like this
233
+ const dataLength = data.length;
234
+ for (let i = 0; i < dataLength; i++) {
235
+ const index = dataLength - 1 - i;
236
+ const rawTrade = data[index];
237
+ const parsed = this.parseWsOldTrade(rawTrade);
238
+ stored.append(parsed);
239
+ }
240
+ const messageHash = 'trades';
241
+ this.trades = stored;
242
+ client.resolve(this.trades, messageHash);
243
+ }
244
+ /**
245
+ * @method
246
+ * @name cex#watchTicker
247
+ * @see https://cex.io/websocket-api#ticker-subscription
248
+ * @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
249
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
250
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
251
+ * @param {string} [params.method] public or private
252
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
253
+ */
254
+ async watchTicker(symbol, params = {}) {
255
+ await this.loadMarkets();
256
+ const market = this.market(symbol);
257
+ symbol = market['symbol'];
258
+ const url = this.urls['api']['ws'];
259
+ const messageHash = 'ticker:' + symbol;
260
+ const method = this.safeString(params, 'method', 'private'); // default to private because the specified ticker is received quicker
261
+ let message = {
262
+ 'e': 'subscribe',
263
+ 'rooms': [
264
+ 'tickers',
265
+ ],
266
+ };
267
+ let subscriptionHash = 'tickers';
268
+ if (method === 'private') {
269
+ await this.authenticate();
270
+ message = {
271
+ 'e': 'ticker',
272
+ 'data': [
273
+ market['baseId'], market['quoteId'],
274
+ ],
275
+ 'oid': this.requestId(),
276
+ };
277
+ subscriptionHash = 'ticker:' + symbol;
278
+ }
279
+ const request = this.deepExtend(message, params);
280
+ return await this.watch(url, messageHash, request, subscriptionHash);
281
+ }
282
+ /**
283
+ * @method
284
+ * @name cex#watchTickers
285
+ * @see https://cex.io/websocket-api#ticker-subscription
286
+ * @description watches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
287
+ * @param {string[]|undefined} symbols unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
288
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
289
+ * @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
290
+ */
291
+ async watchTickers(symbols = undefined, params = {}) {
292
+ await this.loadMarkets();
293
+ symbols = this.marketSymbols(symbols);
294
+ const url = this.urls['api']['ws'];
295
+ const messageHash = 'tickers';
296
+ const message = {
297
+ 'e': 'subscribe',
298
+ 'rooms': [
299
+ 'tickers',
300
+ ],
301
+ };
302
+ const request = this.deepExtend(message, params);
303
+ const ticker = await this.watch(url, messageHash, request, messageHash);
304
+ const tickerSymbol = ticker['symbol'];
305
+ if (symbols !== undefined && !this.inArray(tickerSymbol, symbols)) {
306
+ return await this.watchTickers(symbols, params);
307
+ }
308
+ if (this.newUpdates) {
309
+ const result = {};
310
+ result[tickerSymbol] = ticker;
311
+ return result;
312
+ }
313
+ return this.filterByArray(this.tickers, 'symbol', symbols);
314
+ }
315
+ /**
316
+ * @method
317
+ * @name cex#fetchTickerWs
318
+ * @see https://docs.cex.io/#ws-api-ticker-deprecated
319
+ * @description fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
320
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
321
+ * @param {object} [params] extra parameters specific to the cex api endpoint
322
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
323
+ */
324
+ async fetchTickerWs(symbol, params = {}) {
325
+ await this.loadMarkets();
326
+ const market = this.market(symbol);
327
+ const url = this.urls['api']['ws'];
328
+ const messageHash = this.requestId();
329
+ const request = this.extend({
330
+ 'e': 'ticker',
331
+ 'oid': messageHash,
332
+ 'data': [market['base'], market['quote']],
333
+ }, params);
334
+ return await this.watch(url, messageHash, request, messageHash);
335
+ }
336
+ handleTicker(client, message) {
337
+ //
338
+ // {
339
+ // "e": "tick",
340
+ // "data": {
341
+ // "symbol1": "LRC",
342
+ // "symbol2": "USD",
343
+ // "price": "0.305",
344
+ // "open24": "0.301",
345
+ // "volume": "241421.641700"
346
+ // }
347
+ // }
348
+ //
349
+ const data = this.safeValue(message, 'data', {});
350
+ const ticker = this.parseWsTicker(data);
351
+ const symbol = ticker['symbol'];
352
+ if (symbol === undefined) {
353
+ return;
354
+ }
355
+ this.tickers[symbol] = ticker;
356
+ let messageHash = 'ticker:' + symbol;
357
+ client.resolve(ticker, messageHash);
358
+ client.resolve(ticker, 'tickers');
359
+ messageHash = this.safeString(message, 'oid');
360
+ if (messageHash !== undefined) {
361
+ client.resolve(ticker, messageHash);
362
+ }
363
+ }
364
+ parseWsTicker(ticker, market = undefined) {
365
+ //
366
+ // public
367
+ // {
368
+ // "symbol1": "LRC",
369
+ // "symbol2": "USD",
370
+ // "price": "0.305",
371
+ // "open24": "0.301",
372
+ // "volume": "241421.641700"
373
+ // }
374
+ // private
375
+ // {
376
+ // "timestamp": "1663764969",
377
+ // "low": "18756.3",
378
+ // "high": "19200",
379
+ // "last": "19200",
380
+ // "volume": "0.94735907",
381
+ // "volume30d": "64.61299999",
382
+ // "bid": 19217.2,
383
+ // "ask": 19247.5,
384
+ // "priceChange": "44.3",
385
+ // "priceChangePercentage": "0.23",
386
+ // "pair": ["BTC", "USDT"]
387
+ // }
388
+ const pair = this.safeValue(ticker, 'pair', []);
389
+ let baseId = this.safeString(ticker, 'symbol1');
390
+ if (baseId === undefined) {
391
+ baseId = this.safeString(pair, 0);
392
+ }
393
+ let quoteId = this.safeString(ticker, 'symbol2');
394
+ if (quoteId === undefined) {
395
+ quoteId = this.safeString(pair, 1);
396
+ }
397
+ const base = this.safeCurrencyCode(baseId);
398
+ const quote = this.safeCurrencyCode(quoteId);
399
+ const symbol = base + '/' + quote;
400
+ let timestamp = this.safeInteger(ticker, 'timestamp');
401
+ if (timestamp !== undefined) {
402
+ timestamp = timestamp * 1000;
403
+ }
404
+ return this.safeTicker({
405
+ 'symbol': symbol,
406
+ 'timestamp': timestamp,
407
+ 'datetime': this.iso8601(timestamp),
408
+ 'high': this.safeString(ticker, 'high'),
409
+ 'low': this.safeString(ticker, 'low'),
410
+ 'bid': this.safeString(ticker, 'bid'),
411
+ 'bidVolume': undefined,
412
+ 'ask': this.safeString(ticker, 'ask'),
413
+ 'askVolume': undefined,
414
+ 'vwap': undefined,
415
+ 'open': this.safeString(ticker, 'open24'),
416
+ 'close': undefined,
417
+ 'last': this.safeString2(ticker, 'price', 'last'),
418
+ 'previousClose': undefined,
419
+ 'change': this.safeString(ticker, 'priceChange'),
420
+ 'percentage': this.safeString(ticker, 'priceChangePercentage'),
421
+ 'average': undefined,
422
+ 'baseVolume': undefined,
423
+ 'quoteVolume': this.safeString(ticker, 'volume'),
424
+ 'info': ticker,
425
+ }, market);
426
+ }
427
+ /**
428
+ * @method
429
+ * @name cex#fetchBalanceWs
430
+ * @see https://docs.cex.io/#ws-api-get-balance
431
+ * @description query for balance and get the amount of funds available for trading or funds locked in orders
432
+ * @param {object} [params] extra parameters specific to the cex api endpoint
433
+ * @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
434
+ */
435
+ async fetchBalanceWs(params = {}) {
436
+ await this.loadMarkets();
437
+ await this.authenticate();
438
+ const url = this.urls['api']['ws'];
439
+ const messageHash = this.requestId();
440
+ const request = this.extend({
441
+ 'e': 'get-balance',
442
+ 'oid': messageHash,
443
+ }, params);
444
+ return await this.watch(url, messageHash, request, messageHash);
445
+ }
446
+ /**
447
+ * @method
448
+ * @name cex#watchOrders
449
+ * @description get the list of orders associated with the user. Note: In CEX.IO system, orders can be present in trade engine or in archive database. There can be time periods (~2 seconds or more), when order is done/canceled, but still not moved to archive database. That means, you cannot see it using calls: archived-orders/open-orders.
450
+ * @see https://docs.cex.io/#ws-api-open-orders
451
+ * @param {string} symbol unified symbol of the market to fetch trades for
452
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
453
+ * @param {int} [limit] the maximum amount of trades to fetch
454
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
455
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
456
+ */
457
+ async watchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
458
+ if (symbol === undefined) {
459
+ throw new ArgumentsRequired(this.id + ' watchOrders() requires a symbol argument');
460
+ }
461
+ await this.loadMarkets();
462
+ await this.authenticate(params);
463
+ const url = this.urls['api']['ws'];
464
+ const market = this.market(symbol);
465
+ symbol = market['symbol'];
466
+ const messageHash = 'orders:' + symbol;
467
+ const message = {
468
+ 'e': 'open-orders',
469
+ 'data': {
470
+ 'pair': [
471
+ market['baseId'],
472
+ market['quoteId'],
473
+ ],
474
+ },
475
+ 'oid': symbol,
476
+ };
477
+ const request = this.deepExtend(message, params);
478
+ const orders = await this.watch(url, messageHash, request, messageHash, request);
479
+ if (this.newUpdates) {
480
+ limit = orders.getLimit(symbol, limit);
481
+ }
482
+ return this.filterBySymbolSinceLimit(orders, symbol, since, limit, true);
483
+ }
484
+ /**
485
+ * @method
486
+ * @name cex#watchMyTrades
487
+ * @description get the list of trades associated with the user. Note: In CEX.IO system, orders can be present in trade engine or in archive database. There can be time periods (~2 seconds or more), when order is done/canceled, but still not moved to archive database. That means, you cannot see it using calls: archived-orders/open-orders.
488
+ * @see https://docs.cex.io/#ws-api-open-orders
489
+ * @param {string} symbol unified symbol of the market to fetch trades for
490
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
491
+ * @param {int} [limit] the maximum amount of trades to fetch
492
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
493
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
494
+ */
495
+ async watchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
496
+ if (symbol === undefined) {
497
+ throw new ArgumentsRequired(this.id + ' watchMyTrades() requires a symbol argument');
498
+ }
499
+ await this.loadMarkets();
500
+ await this.authenticate(params);
501
+ const url = this.urls['api']['ws'];
502
+ const market = this.market(symbol);
503
+ const messageHash = 'myTrades:' + market['symbol'];
504
+ const subscriptionHash = 'orders:' + market['symbol'];
505
+ const message = {
506
+ 'e': 'open-orders',
507
+ 'data': {
508
+ 'pair': [
509
+ market['baseId'],
510
+ market['quoteId'],
511
+ ],
512
+ },
513
+ 'oid': market['symbol'],
514
+ };
515
+ const request = this.deepExtend(message, params);
516
+ const orders = await this.watch(url, messageHash, request, subscriptionHash, request);
517
+ return this.filterBySymbolSinceLimit(orders, market['symbol'], since, limit);
518
+ }
519
+ handleTransaction(client, message) {
520
+ const data = this.safeValue(message, 'data');
521
+ const symbol2 = this.safeString(data, 'symbol2');
522
+ if (symbol2 === undefined) {
523
+ return;
524
+ }
525
+ this.handleOrderUpdate(client, message);
526
+ this.handleMyTrades(client, message);
527
+ }
528
+ handleMyTrades(client, message) {
529
+ //
530
+ // {
531
+ // "e": "tx",
532
+ // "data": {
533
+ // "d": "order:59091012956:a:USD",
534
+ // "c": "user:up105393824:a:USD",
535
+ // "a": "0.01",
536
+ // "ds": 0,
537
+ // "cs": "15.27",
538
+ // "user": "up105393824",
539
+ // "symbol": "USD",
540
+ // "order": 59091012956,
541
+ // "amount": "-18.49",
542
+ // "type": "buy",
543
+ // "time": "2022-09-24T19:36:18.466Z",
544
+ // "balance": "15.27",
545
+ // "id": "59091012966"
546
+ // }
547
+ // }
548
+ // {
549
+ // "e": "tx",
550
+ // "data": {
551
+ // "d": "order:59091012956:a:BTC",
552
+ // "c": "user:up105393824:a:BTC",
553
+ // "a": "0.00096420",
554
+ // "ds": 0,
555
+ // "cs": "0.00096420",
556
+ // "user": "up105393824",
557
+ // "symbol": "BTC",
558
+ // "symbol2": "USD",
559
+ // "amount": "0.00096420",
560
+ // "buy": 59091012956,
561
+ // "order": 59091012956,
562
+ // "sell": 59090796005,
563
+ // "price": 19135,
564
+ // "type": "buy",
565
+ // "time": "2022-09-24T19:36:18.466Z",
566
+ // "balance": "0.00096420",
567
+ // "fee_amount": "0.05",
568
+ // "id": "59091012962"
569
+ // }
570
+ // }
571
+ const data = this.safeValue(message, 'data', {});
572
+ let stored = this.myTrades;
573
+ if (stored === undefined) {
574
+ const limit = this.safeInteger(this.options, 'tradesLimit', 1000);
575
+ stored = new ArrayCacheBySymbolById(limit);
576
+ this.myTrades = stored;
577
+ }
578
+ const trade = this.parseWsTrade(data);
579
+ stored.append(trade);
580
+ const messageHash = 'myTrades:' + trade['symbol'];
581
+ client.resolve(stored, messageHash);
582
+ }
583
+ parseWsTrade(trade, market = undefined) {
584
+ //
585
+ // {
586
+ // "d": "order:59091012956:a:BTC",
587
+ // "c": "user:up105393824:a:BTC",
588
+ // "a": "0.00096420",
589
+ // "ds": 0,
590
+ // "cs": "0.00096420",
591
+ // "user": "up105393824",
592
+ // "symbol": "BTC",
593
+ // "symbol2": "USD",
594
+ // "amount": "0.00096420",
595
+ // "buy": 59091012956,
596
+ // "order": 59091012956,
597
+ // "sell": 59090796005,
598
+ // "price": 19135,
599
+ // "type": "buy",
600
+ // "time": "2022-09-24T19:36:18.466Z",
601
+ // "balance": "0.00096420",
602
+ // "fee_amount": "0.05",
603
+ // "id": "59091012962"
604
+ // }
605
+ // Note symbol and symbol2 are inverse on sell and ammount is in symbol currency.
606
+ //
607
+ const side = this.safeString(trade, 'type');
608
+ const price = this.safeString(trade, 'price');
609
+ const datetime = this.safeString(trade, 'time');
610
+ const baseId = this.safeString(trade, 'symbol');
611
+ const quoteId = this.safeString(trade, 'symbol2');
612
+ const base = this.safeCurrencyCode(baseId);
613
+ const quote = this.safeCurrencyCode(quoteId);
614
+ let symbol = base + '/' + quote;
615
+ let amount = this.safeString(trade, 'amount');
616
+ if (side === 'sell') {
617
+ symbol = quote + '/' + base;
618
+ amount = Precise.stringDiv(amount, price); // due to rounding errors amount in not exact to trade
619
+ }
620
+ const parsedTrade = {
621
+ 'id': this.safeString(trade, 'id'),
622
+ 'order': this.safeString(trade, 'order'),
623
+ 'info': trade,
624
+ 'timestamp': this.parse8601(datetime),
625
+ 'datetime': datetime,
626
+ 'symbol': symbol,
627
+ 'type': undefined,
628
+ 'side': side,
629
+ 'takerOrMaker': undefined,
630
+ 'price': price,
631
+ 'cost': undefined,
632
+ 'amount': amount,
633
+ 'fee': undefined,
634
+ };
635
+ const fee = this.safeString(trade, 'fee_amount');
636
+ if (fee !== undefined) {
637
+ parsedTrade['fee'] = {
638
+ 'cost': fee,
639
+ 'currency': quote,
640
+ 'rate': undefined,
641
+ };
642
+ }
643
+ return this.safeTrade(parsedTrade, market);
644
+ }
645
+ handleOrderUpdate(client, message) {
646
+ //
647
+ // partialExecution
648
+ // {
649
+ // "e": "order",
650
+ // "data": {
651
+ // "id": "150714937",
652
+ // "remains": "1000000",
653
+ // "price": "17513",
654
+ // "amount": 2000000, As Precision
655
+ // "time": "1654506118448",
656
+ // "type": "buy",
657
+ // "pair": {
658
+ // "symbol1": "BTC",
659
+ // "symbol2": "USD"
660
+ // },
661
+ // "fee": "0.15"
662
+ // }
663
+ // }
664
+ // canceled order
665
+ // {
666
+ // "e": "order",
667
+ // "data": {
668
+ // "id": "6310857",
669
+ // "remains": "200000000"
670
+ // "fremains": "2.00000000"
671
+ // "cancel": true,
672
+ // "pair": {
673
+ // "symbol1": "BTC",
674
+ // "symbol2": "USD"
675
+ // }
676
+ // }
677
+ // }
678
+ // fulfilledOrder
679
+ // {
680
+ // "e": "order",
681
+ // "data": {
682
+ // "id": "59098421630",
683
+ // "remains": "0",
684
+ // "pair": {
685
+ // "symbol1": "BTC",
686
+ // "symbol2": "USD"
687
+ // }
688
+ // }
689
+ // }
690
+ // {
691
+ // "e": "tx",
692
+ // "data": {
693
+ // "d": "order:59425993014:a:BTC",
694
+ // "c": "user:up105393824:a:BTC",
695
+ // "a": "0.00098152",
696
+ // "ds": 0,
697
+ // "cs": "0.00098152",
698
+ // "user": "up105393824",
699
+ // "symbol": "BTC",
700
+ // "symbol2": "USD",
701
+ // "amount": "0.00098152",
702
+ // "buy": 59425993014,
703
+ // "order": 59425993014,
704
+ // "sell": 59425986168,
705
+ // "price": 19306.6,
706
+ // "type": "buy",
707
+ // "time": "2022-10-02T01:11:15.148Z",
708
+ // "balance": "0.00098152",
709
+ // "fee_amount": "0.05",
710
+ // "id": "59425993020"
711
+ // }
712
+ // }
713
+ //
714
+ const data = this.safeValue(message, 'data', {});
715
+ const isTransaction = this.safeString(message, 'e') === 'tx';
716
+ const orderId = this.safeString2(data, 'id', 'order');
717
+ let remains = this.safeString(data, 'remains');
718
+ let baseId = this.safeString(data, 'symbol');
719
+ let quoteId = this.safeString(data, 'symbol2');
720
+ const pair = this.safeValue(data, 'pair');
721
+ if (pair !== undefined) {
722
+ baseId = this.safeString(pair, 'symbol1');
723
+ quoteId = this.safeString(pair, 'symbol2');
724
+ }
725
+ const base = this.safeCurrencyCode(baseId);
726
+ const quote = this.safeCurrencyCode(quoteId);
727
+ const symbol = base + '/' + quote;
728
+ const market = this.safeMarket(symbol);
729
+ remains = this.currencyFromPrecision(base, remains);
730
+ if (this.orders === undefined) {
731
+ const limit = this.safeInteger(this.options, 'ordersLimit', 1000);
732
+ this.orders = new ArrayCacheBySymbolById(limit);
733
+ }
734
+ const storedOrders = this.orders;
735
+ const ordersBySymbol = this.safeValue(storedOrders.hashmap, symbol, {});
736
+ let order = this.safeValue(ordersBySymbol, orderId);
737
+ if (order === undefined) {
738
+ order = this.parseWsOrderUpdate(data, market);
739
+ }
740
+ order['remaining'] = remains;
741
+ const canceled = this.safeBool(data, 'cancel', false);
742
+ if (canceled) {
743
+ order['status'] = 'canceled';
744
+ }
745
+ if (isTransaction) {
746
+ order['status'] = 'closed';
747
+ }
748
+ const fee = this.safeNumber(data, 'fee');
749
+ if (fee !== undefined) {
750
+ order['fee'] = {
751
+ 'cost': fee,
752
+ 'currency': quote,
753
+ 'rate': undefined,
754
+ };
755
+ }
756
+ const timestamp = this.safeInteger(data, 'time');
757
+ order['timestamp'] = timestamp;
758
+ order['datetime'] = this.iso8601(timestamp);
759
+ order = this.safeOrder(order);
760
+ storedOrders.append(order);
761
+ const messageHash = 'orders:' + symbol;
762
+ client.resolve(storedOrders, messageHash);
763
+ }
764
+ parseWsOrderUpdate(order, market = undefined) {
765
+ //
766
+ // {
767
+ // "id": "150714937",
768
+ // "remains": "1000000",
769
+ // "price": "17513",
770
+ // "amount": 2000000, As Precision
771
+ // "time": "1654506118448",
772
+ // "type": "buy",
773
+ // "pair": {
774
+ // "symbol1": "BTC",
775
+ // "symbol2": "USD"
776
+ // },
777
+ // "fee": "0.15"
778
+ // }
779
+ // transaction
780
+ // {
781
+ // "d": "order:59425993014:a:BTC",
782
+ // "c": "user:up105393824:a:BTC",
783
+ // "a": "0.00098152",
784
+ // "ds": 0,
785
+ // "cs": "0.00098152",
786
+ // "user": "up105393824",
787
+ // "symbol": "BTC",
788
+ // "symbol2": "USD",
789
+ // "amount": "0.00098152",
790
+ // "buy": 59425993014,
791
+ // "order": 59425993014,
792
+ // "sell": 59425986168,
793
+ // "price": 19306.6,
794
+ // "type": "buy",
795
+ // "time": "2022-10-02T01:11:15.148Z",
796
+ // "balance": "0.00098152",
797
+ // "fee_amount": "0.05",
798
+ // "id": "59425993020"
799
+ // }
800
+ //
801
+ const isTransaction = this.safeValue(order, 'd') !== undefined;
802
+ const remainsPrecision = this.safeString(order, 'remains');
803
+ let remaining = undefined;
804
+ if (remainsPrecision !== undefined) {
805
+ remaining = this.currencyFromPrecision(market['base'], remainsPrecision);
806
+ }
807
+ const amount = this.safeString(order, 'amount');
808
+ if (!isTransaction) {
809
+ this.currencyFromPrecision(market['base'], amount);
810
+ }
811
+ let baseId = this.safeString(order, 'symbol');
812
+ let quoteId = this.safeString(order, 'symbol2');
813
+ const pair = this.safeValue(order, 'pair');
814
+ if (pair !== undefined) {
815
+ baseId = this.safeString(order, 'symbol1');
816
+ quoteId = this.safeString(order, 'symbol2');
817
+ }
818
+ const base = this.safeCurrencyCode(baseId);
819
+ const quote = this.safeCurrencyCode(quoteId);
820
+ let symbol = undefined;
821
+ if (base !== undefined && quote !== undefined) {
822
+ symbol = base + '/' + quote;
823
+ }
824
+ market = this.safeMarket(symbol, market);
825
+ const time = this.safeInteger(order, 'time', this.milliseconds());
826
+ let timestamp = time;
827
+ if (isTransaction) {
828
+ timestamp = this.parse8601(time);
829
+ }
830
+ const canceled = this.safeBool(order, 'cancel', false);
831
+ let status = 'open';
832
+ if (canceled) {
833
+ status = 'canceled';
834
+ }
835
+ else if (isTransaction) {
836
+ status = 'closed';
837
+ }
838
+ const parsedOrder = {
839
+ 'id': this.safeString2(order, 'id', 'order'),
840
+ 'clientOrderId': undefined,
841
+ 'info': order,
842
+ 'timestamp': timestamp,
843
+ 'datetime': this.iso8601(timestamp),
844
+ 'lastTradeTimestamp': undefined,
845
+ 'status': status,
846
+ 'symbol': symbol,
847
+ 'type': undefined,
848
+ 'timeInForce': undefined,
849
+ 'postOnly': undefined,
850
+ 'side': this.safeString(order, 'type'),
851
+ 'price': this.safeNumber(order, 'price'),
852
+ 'stopPrice': undefined,
853
+ 'triggerPrice': undefined,
854
+ 'average': undefined,
855
+ 'cost': undefined,
856
+ 'amount': amount,
857
+ 'filled': undefined,
858
+ 'remaining': remaining,
859
+ 'fee': {
860
+ 'cost': this.safeNumber2(order, 'fee', 'fee_amount'),
861
+ 'currency': quote,
862
+ 'rate': undefined,
863
+ },
864
+ 'trades': undefined,
865
+ };
866
+ if (isTransaction) {
867
+ parsedOrder['trades'] = this.parseWsTrade(order, market);
868
+ }
869
+ return this.safeOrder(parsedOrder, market);
870
+ }
871
+ fromPrecision(amount, scale) {
872
+ if (amount === undefined) {
873
+ return undefined;
874
+ }
875
+ const precise = new Precise(amount);
876
+ precise.decimals = this.sum(precise.decimals, scale);
877
+ precise.reduce();
878
+ return precise.toString();
879
+ }
880
+ currencyFromPrecision(currency, amount) {
881
+ const scale = this.safeInteger(this.currencies[currency], 'precision', 0);
882
+ return this.fromPrecision(amount, scale);
883
+ }
884
+ handleOrdersSnapshot(client, message) {
885
+ //
886
+ // {
887
+ // "e": "open-orders",
888
+ // "data": [{
889
+ // "id": "59098421630",
890
+ // "time": "1664062285425",
891
+ // "type": "buy",
892
+ // "price": "18920",
893
+ // "amount": "0.00100000",
894
+ // "pending": "0.00100000"
895
+ // }],
896
+ // "oid": 1,
897
+ // "ok": "ok"
898
+ // }
899
+ //
900
+ const symbol = this.safeString(message, 'oid'); // symbol is set as requestId in watchOrders
901
+ const rawOrders = this.safeValue(message, 'data', []);
902
+ let myOrders = this.orders;
903
+ if (this.orders === undefined) {
904
+ const limit = this.safeInteger(this.options, 'ordersLimit', 1000);
905
+ myOrders = new ArrayCacheBySymbolById(limit);
906
+ }
907
+ for (let i = 0; i < rawOrders.length; i++) {
908
+ const rawOrder = rawOrders[i];
909
+ const market = this.safeMarket(symbol);
910
+ const order = this.parseOrder(rawOrder, market);
911
+ order['status'] = 'open';
912
+ myOrders.append(order);
913
+ }
914
+ this.orders = myOrders;
915
+ const messageHash = 'orders:' + symbol;
916
+ const ordersLength = myOrders.length;
917
+ if (ordersLength > 0) {
918
+ client.resolve(myOrders, messageHash);
919
+ }
920
+ }
921
+ /**
922
+ * @method
923
+ * @name cex#watchOrderBook
924
+ * @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
925
+ * @see https://cex.io/websocket-api#orderbook-subscribe
926
+ * @param {string} symbol unified symbol of the market to fetch the order book for
927
+ * @param {int} [limit] the maximum amount of order book entries to return
928
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
929
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
930
+ */
931
+ async watchOrderBook(symbol, limit = undefined, params = {}) {
932
+ await this.loadMarkets();
933
+ await this.authenticate();
934
+ const market = this.market(symbol);
935
+ symbol = market['symbol'];
936
+ const url = this.urls['api']['ws'];
937
+ const messageHash = 'orderbook:' + symbol;
938
+ const depth = (limit === undefined) ? 0 : limit;
939
+ const subscribe = {
940
+ 'e': 'order-book-subscribe',
941
+ 'data': {
942
+ 'pair': [
943
+ market['baseId'],
944
+ market['quoteId'],
945
+ ],
946
+ 'subscribe': true,
947
+ 'depth': depth,
948
+ },
949
+ 'oid': this.requestId(),
950
+ };
951
+ const request = this.deepExtend(subscribe, params);
952
+ const orderbook = await this.watch(url, messageHash, request, messageHash);
953
+ return orderbook.limit();
954
+ }
955
+ handleOrderBookSnapshot(client, message) {
956
+ //
957
+ // {
958
+ // "e": "order-book-subscribe",
959
+ // "data": {
960
+ // "timestamp": 1663762032,
961
+ // "timestamp_ms": 1663762031680,
962
+ // "bids": [
963
+ // [ 241.947, 155.91626 ],
964
+ // [ 241, 154 ],
965
+ // ],
966
+ // "asks": [
967
+ // [ 242.947, 155.91626 ],
968
+ // [ 243, 154 ], ],
969
+ // "pair": "BTC:USDT",
970
+ // "id": 616267120,
971
+ // "sell_total": "13.59066946",
972
+ // "buy_total": "163553.625948"
973
+ // },
974
+ // "oid": "1",
975
+ // "ok": "ok"
976
+ // }
977
+ //
978
+ const data = this.safeValue(message, 'data', {});
979
+ const pair = this.safeString(data, 'pair');
980
+ const symbol = this.pairToSymbol(pair);
981
+ const messageHash = 'orderbook:' + symbol;
982
+ const timestamp = this.safeInteger2(data, 'timestamp_ms', 'timestamp');
983
+ const incrementalId = this.safeInteger(data, 'id');
984
+ const orderbook = this.orderBook({});
985
+ const snapshot = this.parseOrderBook(data, symbol, timestamp, 'bids', 'asks');
986
+ snapshot['nonce'] = incrementalId;
987
+ orderbook.reset(snapshot);
988
+ this.options['orderbook'][symbol] = {
989
+ 'incrementalId': incrementalId,
990
+ };
991
+ this.orderbooks[symbol] = orderbook;
992
+ client.resolve(orderbook, messageHash);
993
+ }
994
+ pairToSymbol(pair) {
995
+ const parts = pair.split(':');
996
+ const baseId = this.safeString(parts, 0);
997
+ const quoteId = this.safeString(parts, 1);
998
+ const base = this.safeCurrencyCode(baseId);
999
+ const quote = this.safeCurrencyCode(quoteId);
1000
+ const symbol = base + '/' + quote;
1001
+ return symbol;
1002
+ }
1003
+ handleOrderBookUpdate(client, message) {
1004
+ //
1005
+ // {
1006
+ // "e": "md_update",
1007
+ // "data": {
1008
+ // "id": 616267121,
1009
+ // "pair": "BTC:USDT",
1010
+ // "time": 1663762031719,
1011
+ // "bids": [],
1012
+ // "asks": [
1013
+ // [122, 23]
1014
+ // ]
1015
+ // }
1016
+ // }
1017
+ //
1018
+ const data = this.safeValue(message, 'data', {});
1019
+ const incrementalId = this.safeInteger(data, 'id');
1020
+ const pair = this.safeString(data, 'pair', '');
1021
+ const symbol = this.pairToSymbol(pair);
1022
+ const storedOrderBook = this.safeValue(this.orderbooks, symbol);
1023
+ const messageHash = 'orderbook:' + symbol;
1024
+ if (incrementalId !== storedOrderBook['nonce'] + 1) {
1025
+ delete client.subscriptions[messageHash];
1026
+ client.reject(this.id + ' watchOrderBook() skipped a message', messageHash);
1027
+ }
1028
+ const timestamp = this.safeInteger(data, 'time');
1029
+ const asks = this.safeValue(data, 'asks', []);
1030
+ const bids = this.safeValue(data, 'bids', []);
1031
+ this.handleDeltas(storedOrderBook['asks'], asks);
1032
+ this.handleDeltas(storedOrderBook['bids'], bids);
1033
+ storedOrderBook['timestamp'] = timestamp;
1034
+ storedOrderBook['datetime'] = this.iso8601(timestamp);
1035
+ storedOrderBook['nonce'] = incrementalId;
1036
+ client.resolve(storedOrderBook, messageHash);
1037
+ }
1038
+ handleDelta(bookside, delta) {
1039
+ const bidAsk = this.parseBidAsk(delta, 0, 1);
1040
+ bookside.storeArray(bidAsk);
1041
+ }
1042
+ handleDeltas(bookside, deltas) {
1043
+ for (let i = 0; i < deltas.length; i++) {
1044
+ this.handleDelta(bookside, deltas[i]);
1045
+ }
1046
+ }
1047
+ /**
1048
+ * @method
1049
+ * @name cex#watchOHLCV
1050
+ * @see https://cex.io/websocket-api#minute-data
1051
+ * @description watches historical candlestick data containing the open, high, low, and close price, and the volume of a market. It will return the last 120 minutes with the selected timeframe and then 1m candle updates after that.
1052
+ * @param {string} symbol unified symbol of the market to fetch OHLCV data for
1053
+ * @param {string} timeframe the length of time each candle represents.
1054
+ * @param {int} [since] timestamp in ms of the earliest candle to fetch
1055
+ * @param {int} [limit] the maximum amount of candles to fetch
1056
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1057
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
1058
+ */
1059
+ async watchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
1060
+ await this.loadMarkets();
1061
+ const market = this.market(symbol);
1062
+ symbol = market['symbol'];
1063
+ const messageHash = 'ohlcv:' + symbol;
1064
+ const url = this.urls['api']['ws'];
1065
+ const request = {
1066
+ 'e': 'init-ohlcv',
1067
+ 'i': timeframe,
1068
+ 'rooms': [
1069
+ 'pair-' + market['baseId'] + '-' + market['quoteId'],
1070
+ ],
1071
+ };
1072
+ const ohlcv = await this.watch(url, messageHash, this.extend(request, params), messageHash);
1073
+ if (this.newUpdates) {
1074
+ limit = ohlcv.getLimit(symbol, limit);
1075
+ }
1076
+ return this.filterBySinceLimit(ohlcv, since, limit, 0, true);
1077
+ }
1078
+ handleInitOHLCV(client, message) {
1079
+ //
1080
+ // {
1081
+ // "e": "init-ohlcv-data",
1082
+ // "data": [
1083
+ // [
1084
+ // 1663660680,
1085
+ // "19396.4",
1086
+ // "19396.4",
1087
+ // "19396.4",
1088
+ // "19396.4",
1089
+ // "1262861"
1090
+ // ],
1091
+ // ...
1092
+ // ],
1093
+ // "pair": "BTC:USDT"
1094
+ // }
1095
+ //
1096
+ const pair = this.safeString(message, 'pair');
1097
+ const parts = pair.split(':');
1098
+ const baseId = this.safeString(parts, 0);
1099
+ const quoteId = this.safeString(parts, 1);
1100
+ const base = this.safeCurrencyCode(baseId);
1101
+ const quote = this.safeCurrencyCode(quoteId);
1102
+ const symbol = base + '/' + quote;
1103
+ const market = this.safeMarket(symbol);
1104
+ const messageHash = 'ohlcv:' + symbol;
1105
+ const data = this.safeValue(message, 'data', []);
1106
+ const limit = this.safeInteger(this.options, 'OHLCVLimit', 1000);
1107
+ const stored = new ArrayCacheByTimestamp(limit);
1108
+ const sorted = this.sortBy(data, 0);
1109
+ for (let i = 0; i < sorted.length; i++) {
1110
+ stored.append(this.parseOHLCV(sorted[i], market));
1111
+ }
1112
+ if (!(symbol in this.ohlcvs)) {
1113
+ this.ohlcvs[symbol] = {};
1114
+ }
1115
+ this.ohlcvs[symbol]['unknown'] = stored;
1116
+ client.resolve(stored, messageHash);
1117
+ }
1118
+ handleOHLCV24(client, message) {
1119
+ //
1120
+ // {
1121
+ // "e": "ohlcv24",
1122
+ // "data": [ '18793.2', '19630', '18793.2', "19104.1", "314157273" ],
1123
+ // "pair": "BTC:USDT"
1124
+ // }
1125
+ //
1126
+ return message;
1127
+ }
1128
+ handleOHLCV1m(client, message) {
1129
+ //
1130
+ // {
1131
+ // "e": "ohlcv1m",
1132
+ // "data": {
1133
+ // "pair": "BTC:USD",
1134
+ // "time": "1665436800",
1135
+ // "o": "19279.6",
1136
+ // "h": "19279.6",
1137
+ // "l": "19266.7",
1138
+ // "c": "19266.7",
1139
+ // "v": 3343884,
1140
+ // "d": 3343884
1141
+ // }
1142
+ // }
1143
+ //
1144
+ const data = this.safeValue(message, 'data', {});
1145
+ const pair = this.safeString(data, 'pair');
1146
+ const symbol = this.pairToSymbol(pair);
1147
+ const messageHash = 'ohlcv:' + symbol;
1148
+ const ohlcv = [
1149
+ this.safeTimestamp(data, 'time'),
1150
+ this.safeNumber(data, 'o'),
1151
+ this.safeNumber(data, 'h'),
1152
+ this.safeNumber(data, 'l'),
1153
+ this.safeNumber(data, 'c'),
1154
+ this.safeNumber(data, 'v'),
1155
+ ];
1156
+ const stored = this.safeValue(this.ohlcvs, symbol);
1157
+ stored.append(ohlcv);
1158
+ client.resolve(stored, messageHash);
1159
+ }
1160
+ handleOHLCV(client, message) {
1161
+ //
1162
+ // {
1163
+ // "e": "ohlcv",
1164
+ // "data": [
1165
+ // [1665461100, '19068.2', '19068.2', '19068.2', "19068.2", 268478]
1166
+ // ],
1167
+ // "pair": "BTC:USD"
1168
+ // }
1169
+ //
1170
+ const data = this.safeValue(message, 'data', []);
1171
+ const pair = this.safeString(message, 'pair');
1172
+ const symbol = this.pairToSymbol(pair);
1173
+ const messageHash = 'ohlcv:' + symbol;
1174
+ // const stored = this.safeValue (this.ohlcvs, symbol);
1175
+ const stored = this.ohlcvs[symbol]['unknown'];
1176
+ for (let i = 0; i < data.length; i++) {
1177
+ const ohlcv = [
1178
+ this.safeTimestamp(data[i], 0),
1179
+ this.safeNumber(data[i], 1),
1180
+ this.safeNumber(data[i], 2),
1181
+ this.safeNumber(data[i], 3),
1182
+ this.safeNumber(data[i], 4),
1183
+ this.safeNumber(data[i], 5),
1184
+ ];
1185
+ stored.append(ohlcv);
1186
+ }
1187
+ const dataLength = data.length;
1188
+ if (dataLength > 0) {
1189
+ client.resolve(stored, messageHash);
1190
+ }
1191
+ }
1192
+ /**
1193
+ * @method
1194
+ * @name cex#fetchOrderWs
1195
+ * @description fetches information on an order made by the user
1196
+ * @see https://docs.cex.io/#ws-api-get-order
1197
+ * @param {string} id the order id
1198
+ * @param {string} symbol not used by cex fetchOrder
1199
+ * @param {object} [params] extra parameters specific to the cex api endpoint
1200
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1201
+ */
1202
+ async fetchOrderWs(id, symbol = undefined, params = {}) {
1203
+ await this.loadMarkets();
1204
+ await this.authenticate();
1205
+ let market = undefined;
1206
+ if (symbol !== undefined) {
1207
+ market = this.market(symbol);
1208
+ }
1209
+ const data = this.extend({
1210
+ 'order_id': id.toString(),
1211
+ }, params);
1212
+ const url = this.urls['api']['ws'];
1213
+ const messageHash = this.requestId();
1214
+ const request = {
1215
+ 'e': 'get-order',
1216
+ 'oid': messageHash,
1217
+ 'data': data,
1218
+ };
1219
+ const response = await this.watch(url, messageHash, request, messageHash);
1220
+ return this.parseOrder(response, market);
1221
+ }
1222
+ /**
1223
+ * @method
1224
+ * @name cex#fetchOpenOrdersWs
1225
+ * @see https://docs.cex.io/#ws-api-open-orders
1226
+ * @description fetch all unfilled currently open orders
1227
+ * @param {string} symbol unified market symbol
1228
+ * @param {int} [since] the earliest time in ms to fetch open orders for
1229
+ * @param {int} [limit] the maximum number of open orders structures to retrieve
1230
+ * @param {object} [params] extra parameters specific to the cex api endpoint
1231
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1232
+ */
1233
+ async fetchOpenOrdersWs(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1234
+ if (symbol === undefined) {
1235
+ throw new ArgumentsRequired(this.id + ' fetchOpenOrdersWs requires a symbol.');
1236
+ }
1237
+ await this.loadMarkets();
1238
+ await this.authenticate();
1239
+ const market = this.market(symbol);
1240
+ const url = this.urls['api']['ws'];
1241
+ const messageHash = this.requestId();
1242
+ const data = this.extend({
1243
+ 'pair': [market['baseId'], market['quoteId']],
1244
+ }, params);
1245
+ const request = {
1246
+ 'e': 'open-orders',
1247
+ 'oid': messageHash,
1248
+ 'data': data,
1249
+ };
1250
+ const response = await this.watch(url, messageHash, request, messageHash);
1251
+ return this.parseOrders(response, market, since, limit, params);
1252
+ }
1253
+ /**
1254
+ * @method
1255
+ * @name cex#createOrderWs
1256
+ * @see https://docs.cex.io/#ws-api-order-placement
1257
+ * @description create a trade order
1258
+ * @param {string} symbol unified symbol of the market to create an order in
1259
+ * @param {string} type 'market' or 'limit'
1260
+ * @param {string} side 'buy' or 'sell'
1261
+ * @param {float} amount how much of currency you want to trade in units of base currency
1262
+ * @param {float} price the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1263
+ * @param {object} [params] extra parameters specific to the kraken api endpoint
1264
+ * @param {boolean} [params.maker_only] Optional, maker only places an order only if offers best sell (<= max) or buy(>= max) price for this pair, if not order placement will be rejected with an error - "Order is not maker"
1265
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/en/latest/manual.html#order-structure}
1266
+ */
1267
+ async createOrderWs(symbol, type, side, amount, price = undefined, params = {}) {
1268
+ if (price === undefined) {
1269
+ throw new BadRequest(this.id + ' createOrderWs requires a price argument');
1270
+ }
1271
+ await this.loadMarkets();
1272
+ await this.authenticate();
1273
+ const market = this.market(symbol);
1274
+ const url = this.urls['api']['ws'];
1275
+ const messageHash = this.requestId();
1276
+ const data = this.extend({
1277
+ 'pair': [market['baseId'], market['quoteId']],
1278
+ 'amount': amount,
1279
+ 'price': price,
1280
+ 'type': side,
1281
+ }, params);
1282
+ const request = {
1283
+ 'e': 'place-order',
1284
+ 'oid': messageHash,
1285
+ 'data': data,
1286
+ };
1287
+ const rawOrder = await this.watch(url, messageHash, request, messageHash);
1288
+ return this.parseOrder(rawOrder, market);
1289
+ }
1290
+ /**
1291
+ * @method
1292
+ * @name cex#editOrderWs
1293
+ * @description edit a trade order
1294
+ * @see https://docs.cex.io/#ws-api-cancel-replace
1295
+ * @param {string} id order id
1296
+ * @param {string} symbol unified symbol of the market to create an order in
1297
+ * @param {string} type 'market' or 'limit'
1298
+ * @param {string} side 'buy' or 'sell'
1299
+ * @param {float} amount how much of the currency you want to trade in units of the base currency
1300
+ * @param {float|undefined} [price] the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1301
+ * @param {object} [params] extra parameters specific to the cex api endpoint
1302
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/en/latest/manual.html#order-structure}
1303
+ */
1304
+ async editOrderWs(id, symbol, type, side, amount = undefined, price = undefined, params = {}) {
1305
+ if (amount === undefined) {
1306
+ throw new ArgumentsRequired(this.id + ' editOrder() requires a amount argument');
1307
+ }
1308
+ if (price === undefined) {
1309
+ throw new ArgumentsRequired(this.id + ' editOrder() requires a price argument');
1310
+ }
1311
+ await this.loadMarkets();
1312
+ await this.authenticate();
1313
+ const market = this.market(symbol);
1314
+ const data = this.extend({
1315
+ 'pair': [market['baseId'], market['quoteId']],
1316
+ 'type': side,
1317
+ 'amount': amount,
1318
+ 'price': price,
1319
+ 'order_id': id,
1320
+ }, params);
1321
+ const messageHash = this.requestId();
1322
+ const url = this.urls['api']['ws'];
1323
+ const request = {
1324
+ 'e': 'cancel-replace-order',
1325
+ 'oid': messageHash,
1326
+ 'data': data,
1327
+ };
1328
+ const response = await this.watch(url, messageHash, request, messageHash, messageHash);
1329
+ return this.parseOrder(response, market);
1330
+ }
1331
+ /**
1332
+ * @method
1333
+ * @name cex#cancelOrderWs
1334
+ * @see https://docs.cex.io/#ws-api-order-cancel
1335
+ * @description cancels an open order
1336
+ * @param {string} id order id
1337
+ * @param {string} symbol not used by cex cancelOrder ()
1338
+ * @param {object} [params] extra parameters specific to the cex api endpoint
1339
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1340
+ */
1341
+ async cancelOrderWs(id, symbol = undefined, params = {}) {
1342
+ await this.loadMarkets();
1343
+ await this.authenticate();
1344
+ let market = undefined;
1345
+ if (symbol !== undefined) {
1346
+ market = this.market(symbol);
1347
+ }
1348
+ const data = this.extend({
1349
+ 'order_id': id,
1350
+ }, params);
1351
+ const messageHash = this.requestId();
1352
+ const url = this.urls['api']['ws'];
1353
+ const request = {
1354
+ 'e': 'cancel-order',
1355
+ 'oid': messageHash,
1356
+ 'data': data,
1357
+ };
1358
+ const response = await this.watch(url, messageHash, request, messageHash, messageHash);
1359
+ return this.parseOrder(response, market);
1360
+ }
1361
+ /**
1362
+ * @method
1363
+ * @name cex#cancelOrdersWs
1364
+ * @description cancel multiple orders
1365
+ * @see https://docs.cex.io/#ws-api-mass-cancel-place
1366
+ * @param {string[]} ids order ids
1367
+ * @param {string} symbol not used by cex cancelOrders()
1368
+ * @param {object} [params] extra parameters specific to the cex api endpoint
1369
+ * @returns {object} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1370
+ */
1371
+ async cancelOrdersWs(ids, symbol = undefined, params = {}) {
1372
+ if (symbol !== undefined) {
1373
+ throw new BadRequest(this.id + ' cancelOrderWs does not allow filtering by symbol');
1374
+ }
1375
+ await this.loadMarkets();
1376
+ await this.authenticate();
1377
+ const messageHash = this.requestId();
1378
+ const data = this.extend({
1379
+ 'cancel-orders': ids,
1380
+ }, params);
1381
+ const url = this.urls['api']['ws'];
1382
+ const request = {
1383
+ 'e': 'mass-cancel-place-orders',
1384
+ 'oid': messageHash,
1385
+ 'data': data,
1386
+ };
1387
+ const response = await this.watch(url, messageHash, request, messageHash, messageHash);
1388
+ //
1389
+ // {
1390
+ // "cancel-orders": [{
1391
+ // "order_id": 69202557979,
1392
+ // "fremains": "0.15000000"
1393
+ // }],
1394
+ // "place-orders": [],
1395
+ // "placed-cancelled": []
1396
+ // }
1397
+ //
1398
+ const canceledOrders = this.safeValue(response, 'cancel-orders');
1399
+ return this.parseOrders(canceledOrders, undefined, undefined, undefined, params);
1400
+ }
1401
+ resolveData(client, message) {
1402
+ //
1403
+ // "e": "open-orders",
1404
+ // "data": [
1405
+ // {
1406
+ // "id": "2477098",
1407
+ // "time": "1435927928618",
1408
+ // "type": "buy",
1409
+ // "price": "241.9477",
1410
+ // "amount": "0.02000000",
1411
+ // "pending": "0.02000000"
1412
+ // },
1413
+ // ...
1414
+ // ],
1415
+ // "oid": "1435927928274_9_open-orders",
1416
+ // "ok": "ok"
1417
+ // }
1418
+ //
1419
+ const data = this.safeValue(message, 'data');
1420
+ const messageHash = this.safeString(message, 'oid');
1421
+ client.resolve(data, messageHash);
1422
+ }
1423
+ handleConnected(client, message) {
1424
+ //
1425
+ // {
1426
+ // "e": "connected"
1427
+ // }
1428
+ //
1429
+ return message;
1430
+ }
1431
+ handleErrorMessage(client, message) {
1432
+ //
1433
+ // {
1434
+ // "e": "get-balance",
1435
+ // "data": { error: "Please Login" },
1436
+ // "oid": 1,
1437
+ // "ok": "error"
1438
+ // }
1439
+ //
1440
+ try {
1441
+ const data = this.safeValue(message, 'data', {});
1442
+ const error = this.safeString(data, 'error');
1443
+ const event = this.safeString(message, 'e', '');
1444
+ const feedback = this.id + ' ' + event + ' ' + error;
1445
+ this.throwExactlyMatchedException(this.exceptions['exact'], error, feedback);
1446
+ this.throwBroadlyMatchedException(this.exceptions['broad'], error, feedback);
1447
+ throw new ExchangeError(feedback);
1448
+ }
1449
+ catch (error) {
1450
+ const messageHash = this.safeString(message, 'oid');
1451
+ const future = this.safeValue(client['futures'], messageHash);
1452
+ if (future !== undefined) {
1453
+ client.reject(error, messageHash);
1454
+ return true;
1455
+ }
1456
+ else {
1457
+ throw error;
1458
+ }
1459
+ }
1460
+ }
1461
+ handleMessage(client, message) {
1462
+ const ok = this.safeString(message, 'ok');
1463
+ if (ok === 'error') {
1464
+ this.handleErrorMessage(client, message);
1465
+ return;
1466
+ }
1467
+ const event = this.safeString(message, 'e');
1468
+ const handlers = {
1469
+ 'auth': this.handleAuthenticationMessage,
1470
+ 'connected': this.handleConnected,
1471
+ 'tick': this.handleTicker,
1472
+ 'ticker': this.handleTicker,
1473
+ 'init-ohlcv-data': this.handleInitOHLCV,
1474
+ 'ohlcv24': this.handleOHLCV24,
1475
+ 'ohlcv1m': this.handleOHLCV1m,
1476
+ 'ohlcv': this.handleOHLCV,
1477
+ 'get-balance': this.handleBalance,
1478
+ 'order-book-subscribe': this.handleOrderBookSnapshot,
1479
+ 'md_update': this.handleOrderBookUpdate,
1480
+ 'open-orders': this.resolveData,
1481
+ 'order': this.handleOrderUpdate,
1482
+ 'history-update': this.handleTrade,
1483
+ 'history': this.handleTradesSnapshot,
1484
+ 'tx': this.handleTransaction,
1485
+ 'place-order': this.resolveData,
1486
+ 'cancel-replace-order': this.resolveData,
1487
+ 'cancel-order': this.resolveData,
1488
+ 'mass-cancel-place-orders': this.resolveData,
1489
+ 'get-order': this.resolveData,
1490
+ };
1491
+ const handler = this.safeValue(handlers, event);
1492
+ if (handler !== undefined) {
1493
+ handler.call(this, client, message);
1494
+ }
1495
+ }
1496
+ handleAuthenticationMessage(client, message) {
1497
+ //
1498
+ // {
1499
+ // "e": "auth",
1500
+ // "data": {
1501
+ // "ok": "ok"
1502
+ // },
1503
+ // "ok": "ok",
1504
+ // "timestamp":1448034593
1505
+ // }
1506
+ //
1507
+ const future = this.safeValue(client.futures, 'authenticated');
1508
+ if (future !== undefined) {
1509
+ future.resolve(true);
1510
+ }
1511
+ }
1512
+ async authenticate(params = {}) {
1513
+ const url = this.urls['api']['ws'];
1514
+ const client = this.client(url);
1515
+ const messageHash = 'authenticated';
1516
+ const future = client.future('authenticated');
1517
+ const authenticated = this.safeValue(client.subscriptions, messageHash);
1518
+ if (authenticated === undefined) {
1519
+ this.checkRequiredCredentials();
1520
+ const nonce = this.seconds().toString();
1521
+ const auth = nonce + this.apiKey;
1522
+ const signature = this.hmac(this.encode(auth), this.encode(this.secret), sha256);
1523
+ const request = {
1524
+ 'e': 'auth',
1525
+ 'auth': {
1526
+ 'key': this.apiKey,
1527
+ 'signature': signature.toUpperCase(),
1528
+ 'timestamp': nonce,
1529
+ },
1530
+ };
1531
+ await this.watch(url, messageHash, this.extend(request, params), messageHash);
1532
+ }
1533
+ return await future;
1534
+ }
1535
+ }