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,1430 @@
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 kucoinRest from '../kucoin.js';
9
+ import { ExchangeError, ArgumentsRequired } from '../base/errors.js';
10
+ import { ArrayCache, ArrayCacheByTimestamp, ArrayCacheBySymbolById } from '../base/ws/Cache.js';
11
+ // ---------------------------------------------------------------------------
12
+ export default class kucoin extends kucoinRest {
13
+ describe() {
14
+ return this.deepExtend(super.describe(), {
15
+ 'has': {
16
+ 'ws': true,
17
+ 'createOrderWs': false,
18
+ 'editOrderWs': false,
19
+ 'fetchOpenOrdersWs': false,
20
+ 'fetchOrderWs': false,
21
+ 'cancelOrderWs': false,
22
+ 'cancelOrdersWs': false,
23
+ 'cancelAllOrdersWs': false,
24
+ 'watchBidsAsks': true,
25
+ 'watchOrderBook': true,
26
+ 'watchOrders': true,
27
+ 'watchMyTrades': true,
28
+ 'watchTickers': true,
29
+ 'watchTicker': true,
30
+ 'watchTrades': true,
31
+ 'watchTradesForSymbols': true,
32
+ 'watchOrderBookForSymbols': true,
33
+ 'watchBalance': true,
34
+ 'watchOHLCV': true,
35
+ },
36
+ 'options': {
37
+ 'tradesLimit': 1000,
38
+ 'watchTicker': {
39
+ 'name': 'market/snapshot', // market/ticker
40
+ },
41
+ 'watchOrderBook': {
42
+ 'snapshotDelay': 5,
43
+ 'snapshotMaxRetries': 3,
44
+ 'method': '/market/level2', // '/spotMarket/level2Depth5' or '/spotMarket/level2Depth50'
45
+ },
46
+ 'watchMyTrades': {
47
+ 'method': '/spotMarket/tradeOrders', // or '/spot/tradeFills'
48
+ },
49
+ },
50
+ 'streaming': {
51
+ // kucoin does not support built-in ws protocol-level ping-pong
52
+ // instead it requires a custom json-based text ping-pong
53
+ // https://docs.kucoin.com/#ping
54
+ 'ping': this.ping,
55
+ },
56
+ });
57
+ }
58
+ async negotiate(privateChannel, params = {}) {
59
+ const connectId = privateChannel ? 'private' : 'public';
60
+ const urls = this.safeValue(this.options, 'urls', {});
61
+ const spawaned = this.safeValue(urls, connectId);
62
+ if (spawaned !== undefined) {
63
+ return await spawaned;
64
+ }
65
+ // we store an awaitable to the url
66
+ // so that multiple calls don't asynchronously
67
+ // fetch different urls and overwrite each other
68
+ urls[connectId] = this.spawn(this.negotiateHelper, privateChannel, params);
69
+ this.options['urls'] = urls;
70
+ const future = urls[connectId];
71
+ return await future;
72
+ }
73
+ async negotiateHelper(privateChannel, params = {}) {
74
+ let response = undefined;
75
+ const connectId = privateChannel ? 'private' : 'public';
76
+ try {
77
+ if (privateChannel) {
78
+ response = await this.privatePostBulletPrivate(params);
79
+ //
80
+ // {
81
+ // "code": "200000",
82
+ // "data": {
83
+ // "instanceServers": [
84
+ // {
85
+ // "pingInterval": 50000,
86
+ // "endpoint": "wss://push-private.kucoin.com/endpoint",
87
+ // "protocol": "websocket",
88
+ // "encrypt": true,
89
+ // "pingTimeout": 10000
90
+ // }
91
+ // ],
92
+ // "token": "2neAiuYvAU61ZDXANAGAsiL4-iAExhsBXZxftpOeh_55i3Ysy2q2LEsEWU64mdzUOPusi34M_wGoSf7iNyEWJ1UQy47YbpY4zVdzilNP-Bj3iXzrjjGlWtiYB9J6i9GjsxUuhPw3BlrzazF6ghq4Lzf7scStOz3KkxjwpsOBCH4=.WNQmhZQeUKIkh97KYgU0Lg=="
93
+ // }
94
+ // }
95
+ //
96
+ }
97
+ else {
98
+ response = await this.publicPostBulletPublic(params);
99
+ }
100
+ const data = this.safeValue(response, 'data', {});
101
+ const instanceServers = this.safeValue(data, 'instanceServers', []);
102
+ const firstInstanceServer = this.safeValue(instanceServers, 0);
103
+ const pingInterval = this.safeInteger(firstInstanceServer, 'pingInterval');
104
+ const endpoint = this.safeString(firstInstanceServer, 'endpoint');
105
+ const token = this.safeString(data, 'token');
106
+ const result = endpoint + '?' + this.urlencode({
107
+ 'token': token,
108
+ 'privateChannel': privateChannel,
109
+ 'connectId': connectId,
110
+ });
111
+ const client = this.client(result);
112
+ client.keepAlive = pingInterval;
113
+ return result;
114
+ }
115
+ catch (e) {
116
+ const future = this.safeValue(this.options['urls'], connectId);
117
+ future.reject(e);
118
+ delete this.options['urls'][connectId];
119
+ }
120
+ return undefined;
121
+ }
122
+ requestId() {
123
+ const requestId = this.sum(this.safeInteger(this.options, 'requestId', 0), 1);
124
+ this.options['requestId'] = requestId;
125
+ return requestId;
126
+ }
127
+ async subscribe(url, messageHash, subscriptionHash, params = {}, subscription = undefined) {
128
+ const requestId = this.requestId().toString();
129
+ const request = {
130
+ 'id': requestId,
131
+ 'type': 'subscribe',
132
+ 'topic': subscriptionHash,
133
+ 'response': true,
134
+ };
135
+ const message = this.extend(request, params);
136
+ const client = this.client(url);
137
+ if (!(subscriptionHash in client.subscriptions)) {
138
+ client.subscriptions[requestId] = subscriptionHash;
139
+ }
140
+ return await this.watch(url, messageHash, message, subscriptionHash, subscription);
141
+ }
142
+ async subscribeMultiple(url, messageHashes, topic, subscriptionHashes, params = {}, subscription = undefined) {
143
+ const requestId = this.requestId().toString();
144
+ const request = {
145
+ 'id': requestId,
146
+ 'type': 'subscribe',
147
+ 'topic': topic,
148
+ 'response': true,
149
+ };
150
+ const message = this.extend(request, params);
151
+ const client = this.client(url);
152
+ for (let i = 0; i < subscriptionHashes.length; i++) {
153
+ const subscriptionHash = subscriptionHashes[i];
154
+ if (!(subscriptionHash in client.subscriptions)) {
155
+ client.subscriptions[requestId] = subscriptionHash;
156
+ }
157
+ }
158
+ return await this.watchMultiple(url, messageHashes, message, subscriptionHashes, subscription);
159
+ }
160
+ async unSubscribeMultiple(url, messageHashes, topic, subscriptionHashes, params = {}, subscription = undefined) {
161
+ const requestId = this.requestId().toString();
162
+ const request = {
163
+ 'id': requestId,
164
+ 'type': 'unsubscribe',
165
+ 'topic': topic,
166
+ 'response': true,
167
+ };
168
+ const message = this.extend(request, params);
169
+ if (subscription !== undefined) {
170
+ subscription[requestId] = requestId;
171
+ }
172
+ const client = this.client(url);
173
+ for (let i = 0; i < subscriptionHashes.length; i++) {
174
+ const subscriptionHash = subscriptionHashes[i];
175
+ if (!(subscriptionHash in client.subscriptions)) {
176
+ client.subscriptions[requestId] = subscriptionHash;
177
+ }
178
+ }
179
+ return await this.watchMultiple(url, messageHashes, message, subscriptionHashes, subscription);
180
+ }
181
+ /**
182
+ * @method
183
+ * @name kucoin#watchTicker
184
+ * @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
185
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/public-channels/market-snapshot
186
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
187
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
188
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
189
+ */
190
+ async watchTicker(symbol, params = {}) {
191
+ await this.loadMarkets();
192
+ const market = this.market(symbol);
193
+ symbol = market['symbol'];
194
+ const url = await this.negotiate(false);
195
+ const [method, query] = this.handleOptionAndParams(params, 'watchTicker', 'method', '/market/snapshot');
196
+ const topic = method + ':' + market['id'];
197
+ const messageHash = 'ticker:' + symbol;
198
+ return await this.subscribe(url, messageHash, topic, query);
199
+ }
200
+ /**
201
+ * @method
202
+ * @name kucoin#watchTickers
203
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/public-channels/ticker
204
+ * @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
205
+ * @param {string[]} symbols unified symbol of the market to fetch the ticker for
206
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
207
+ * @param {string} [params.method] either '/market/snapshot' or '/market/ticker' default is '/market/ticker'
208
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
209
+ */
210
+ async watchTickers(symbols = undefined, params = {}) {
211
+ await this.loadMarkets();
212
+ symbols = this.marketSymbols(symbols);
213
+ const messageHash = 'tickers';
214
+ let method = undefined;
215
+ [method, params] = this.handleOptionAndParams(params, 'watchTickers', 'method', '/market/ticker');
216
+ const messageHashes = [];
217
+ const topics = [];
218
+ if (symbols !== undefined) {
219
+ for (let i = 0; i < symbols.length; i++) {
220
+ const symbol = symbols[i];
221
+ messageHashes.push('ticker:' + symbol);
222
+ const market = this.market(symbol);
223
+ topics.push(method + ':' + market['id']);
224
+ }
225
+ }
226
+ const url = await this.negotiate(false);
227
+ let tickers = undefined;
228
+ if (symbols === undefined) {
229
+ const allTopic = method + ':all';
230
+ tickers = await this.subscribe(url, messageHash, allTopic, params);
231
+ if (this.newUpdates) {
232
+ return tickers;
233
+ }
234
+ }
235
+ else {
236
+ const marketIds = this.marketIds(symbols);
237
+ const symbolsTopic = method + ':' + marketIds.join(',');
238
+ tickers = await this.subscribeMultiple(url, messageHashes, symbolsTopic, topics, params);
239
+ if (this.newUpdates) {
240
+ const newDict = {};
241
+ newDict[tickers['symbol']] = tickers;
242
+ return newDict;
243
+ }
244
+ }
245
+ return this.filterByArray(this.tickers, 'symbol', symbols);
246
+ }
247
+ handleTicker(client, message) {
248
+ //
249
+ // market/snapshot
250
+ //
251
+ // updates come in every 2 sec unless there
252
+ // were no changes since the previous update
253
+ //
254
+ // {
255
+ // "data": {
256
+ // "sequence": "1545896669291",
257
+ // "data": {
258
+ // "trading": true,
259
+ // "symbol": "KCS-BTC",
260
+ // "buy": 0.00011,
261
+ // "sell": 0.00012,
262
+ // "sort": 100,
263
+ // "volValue": 3.13851792584, // total
264
+ // "baseCurrency": "KCS",
265
+ // "market": "BTC",
266
+ // "quoteCurrency": "BTC",
267
+ // "symbolCode": "KCS-BTC",
268
+ // "datetime": 1548388122031,
269
+ // "high": 0.00013,
270
+ // "vol": 27514.34842,
271
+ // "low": 0.0001,
272
+ // "changePrice": -1.0e-5,
273
+ // "changeRate": -0.0769,
274
+ // "lastTradedPrice": 0.00012,
275
+ // "board": 0,
276
+ // "mark": 0
277
+ // }
278
+ // },
279
+ // "subject": "trade.snapshot",
280
+ // "topic": "/market/snapshot:KCS-BTC",
281
+ // "type": "message"
282
+ // }
283
+ //
284
+ // market/ticker
285
+ //
286
+ // {
287
+ // "type": "message",
288
+ // "topic": "/market/ticker:BTC-USDT",
289
+ // "subject": "trade.ticker",
290
+ // "data": {
291
+ // "bestAsk": "62163",
292
+ // "bestAskSize": "0.99011388",
293
+ // "bestBid": "62162.9",
294
+ // "bestBidSize": "0.04794181",
295
+ // "price": "62162.9",
296
+ // "sequence": "1621383371852",
297
+ // "size": "0.00832274",
298
+ // "time": 1634641987564
299
+ // }
300
+ // }
301
+ //
302
+ const topic = this.safeString(message, 'topic');
303
+ let market = undefined;
304
+ if (topic !== undefined) {
305
+ const parts = topic.split(':');
306
+ const first = this.safeString(parts, 1);
307
+ let marketId = undefined;
308
+ if (first === 'all') {
309
+ marketId = this.safeString(message, 'subject');
310
+ }
311
+ else {
312
+ marketId = first;
313
+ }
314
+ market = this.safeMarket(marketId, market, '-');
315
+ }
316
+ const data = this.safeValue(message, 'data', {});
317
+ const rawTicker = this.safeValue(data, 'data', data);
318
+ const ticker = this.parseTicker(rawTicker, market);
319
+ const symbol = ticker['symbol'];
320
+ this.tickers[symbol] = ticker;
321
+ const messageHash = 'ticker:' + symbol;
322
+ client.resolve(ticker, messageHash);
323
+ // watchTickers
324
+ const allTickers = {};
325
+ allTickers[symbol] = ticker;
326
+ client.resolve(allTickers, 'tickers');
327
+ }
328
+ /**
329
+ * @method
330
+ * @name kucoin#watchBidsAsks
331
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/public-channels/level1-bbo-market-data
332
+ * @description watches best bid & ask for symbols
333
+ * @param {string[]} symbols unified symbol of the market to fetch the ticker for
334
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
335
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
336
+ */
337
+ async watchBidsAsks(symbols = undefined, params = {}) {
338
+ const ticker = await this.watchMultiHelper('watchBidsAsks', '/spotMarket/level1:', symbols, params);
339
+ if (this.newUpdates) {
340
+ const tickers = {};
341
+ tickers[ticker['symbol']] = ticker;
342
+ return tickers;
343
+ }
344
+ return this.filterByArray(this.bidsasks, 'symbol', symbols);
345
+ }
346
+ async watchMultiHelper(methodName, channelName, symbols = undefined, params = {}) {
347
+ await this.loadMarkets();
348
+ symbols = this.marketSymbols(symbols, undefined, false, true, false);
349
+ const length = symbols.length;
350
+ if (length > 100) {
351
+ throw new ArgumentsRequired(this.id + ' ' + methodName + '() accepts a maximum of 100 symbols');
352
+ }
353
+ const messageHashes = [];
354
+ for (let i = 0; i < symbols.length; i++) {
355
+ const symbol = symbols[i];
356
+ const market = this.market(symbol);
357
+ messageHashes.push('bidask@' + market['symbol']);
358
+ }
359
+ const url = await this.negotiate(false);
360
+ const marketIds = this.marketIds(symbols);
361
+ const joined = marketIds.join(',');
362
+ const requestId = this.requestId().toString();
363
+ const request = {
364
+ 'id': requestId,
365
+ 'type': 'subscribe',
366
+ 'topic': channelName + joined,
367
+ 'response': true,
368
+ };
369
+ const message = this.extend(request, params);
370
+ return await this.watchMultiple(url, messageHashes, message, messageHashes);
371
+ }
372
+ handleBidAsk(client, message) {
373
+ //
374
+ // arrives one symbol dict
375
+ //
376
+ // {
377
+ // topic: '/spotMarket/level1:ETH-USDT',
378
+ // type: 'message',
379
+ // data: {
380
+ // asks: [ '3347.42', '2.0778387' ],
381
+ // bids: [ '3347.41', '6.0411697' ],
382
+ // timestamp: 1712231142085
383
+ // },
384
+ // subject: 'level1'
385
+ // }
386
+ //
387
+ const parsedTicker = this.parseWsBidAsk(message);
388
+ const symbol = parsedTicker['symbol'];
389
+ this.bidsasks[symbol] = parsedTicker;
390
+ const messageHash = 'bidask@' + symbol;
391
+ client.resolve(parsedTicker, messageHash);
392
+ }
393
+ parseWsBidAsk(ticker, market = undefined) {
394
+ const topic = this.safeString(ticker, 'topic');
395
+ const parts = topic.split(':');
396
+ const marketId = parts[1];
397
+ market = this.safeMarket(marketId, market);
398
+ const symbol = this.safeString(market, 'symbol');
399
+ const data = this.safeDict(ticker, 'data', {});
400
+ const ask = this.safeList(data, 'asks', []);
401
+ const bid = this.safeList(data, 'bids', []);
402
+ const timestamp = this.safeInteger(data, 'timestamp');
403
+ return this.safeTicker({
404
+ 'symbol': symbol,
405
+ 'timestamp': timestamp,
406
+ 'datetime': this.iso8601(timestamp),
407
+ 'ask': this.safeNumber(ask, 0),
408
+ 'askVolume': this.safeNumber(ask, 1),
409
+ 'bid': this.safeNumber(bid, 0),
410
+ 'bidVolume': this.safeNumber(bid, 1),
411
+ 'info': ticker,
412
+ }, market);
413
+ }
414
+ /**
415
+ * @method
416
+ * @name kucoin#watchOHLCV
417
+ * @description watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
418
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/public-channels/klines
419
+ * @param {string} symbol unified symbol of the market to fetch OHLCV data for
420
+ * @param {string} timeframe the length of time each candle represents
421
+ * @param {int} [since] timestamp in ms of the earliest candle to fetch
422
+ * @param {int} [limit] the maximum amount of candles to fetch
423
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
424
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
425
+ */
426
+ async watchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
427
+ await this.loadMarkets();
428
+ const url = await this.negotiate(false);
429
+ const market = this.market(symbol);
430
+ symbol = market['symbol'];
431
+ const period = this.safeString(this.timeframes, timeframe, timeframe);
432
+ const topic = '/market/candles:' + market['id'] + '_' + period;
433
+ const messageHash = 'candles:' + symbol + ':' + timeframe;
434
+ const ohlcv = await this.subscribe(url, messageHash, topic, params);
435
+ if (this.newUpdates) {
436
+ limit = ohlcv.getLimit(symbol, limit);
437
+ }
438
+ return this.filterBySinceLimit(ohlcv, since, limit, 0, true);
439
+ }
440
+ handleOHLCV(client, message) {
441
+ //
442
+ // {
443
+ // "data": {
444
+ // "symbol": "BTC-USDT",
445
+ // "candles": [
446
+ // "1624881240",
447
+ // "34138.8",
448
+ // "34121.6",
449
+ // "34138.8",
450
+ // "34097.9",
451
+ // "3.06097133",
452
+ // "104430.955068564"
453
+ // ],
454
+ // "time": 1624881284466023700
455
+ // },
456
+ // "subject": "trade.candles.update",
457
+ // "topic": "/market/candles:BTC-USDT_1min",
458
+ // "type": "message"
459
+ // }
460
+ //
461
+ const data = this.safeValue(message, 'data', {});
462
+ const marketId = this.safeString(data, 'symbol');
463
+ const candles = this.safeValue(data, 'candles', []);
464
+ const topic = this.safeString(message, 'topic');
465
+ const parts = topic.split('_');
466
+ const interval = this.safeString(parts, 1);
467
+ // use a reverse lookup in a static map instead
468
+ const timeframe = this.findTimeframe(interval);
469
+ const market = this.safeMarket(marketId);
470
+ const symbol = market['symbol'];
471
+ const messageHash = 'candles:' + symbol + ':' + timeframe;
472
+ this.ohlcvs[symbol] = this.safeValue(this.ohlcvs, symbol, {});
473
+ let stored = this.safeValue(this.ohlcvs[symbol], timeframe);
474
+ if (stored === undefined) {
475
+ const limit = this.safeInteger(this.options, 'OHLCVLimit', 1000);
476
+ stored = new ArrayCacheByTimestamp(limit);
477
+ this.ohlcvs[symbol][timeframe] = stored;
478
+ }
479
+ const ohlcv = this.parseOHLCV(candles, market);
480
+ stored.append(ohlcv);
481
+ client.resolve(stored, messageHash);
482
+ }
483
+ /**
484
+ * @method
485
+ * @name kucoin#watchTrades
486
+ * @description get the list of most recent trades for a particular symbol
487
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/public-channels/match-execution-data
488
+ * @param {string} symbol unified symbol of the market to fetch trades for
489
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
490
+ * @param {int} [limit] the maximum amount of trades to fetch
491
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
492
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
493
+ */
494
+ async watchTrades(symbol, since = undefined, limit = undefined, params = {}) {
495
+ return await this.watchTradesForSymbols([symbol], since, limit, params);
496
+ }
497
+ /**
498
+ * @method
499
+ * @name kucoin#watchTradesForSymbols
500
+ * @description get the list of most recent trades for a particular symbol
501
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/public-channels/match-execution-data
502
+ * @param {string[]} symbols
503
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
504
+ * @param {int} [limit] the maximum amount of trades to fetch
505
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
506
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
507
+ */
508
+ async watchTradesForSymbols(symbols, since = undefined, limit = undefined, params = {}) {
509
+ const symbolsLength = symbols.length;
510
+ if (symbolsLength === 0) {
511
+ throw new ArgumentsRequired(this.id + ' watchTradesForSymbols() requires a non-empty array of symbols');
512
+ }
513
+ await this.loadMarkets();
514
+ symbols = this.marketSymbols(symbols);
515
+ const marketIds = this.marketIds(symbols);
516
+ const url = await this.negotiate(false);
517
+ const messageHashes = [];
518
+ const subscriptionHashes = [];
519
+ const topic = '/market/match:' + marketIds.join(',');
520
+ for (let i = 0; i < symbols.length; i++) {
521
+ const symbol = symbols[i];
522
+ messageHashes.push('trades:' + symbol);
523
+ const marketId = marketIds[i];
524
+ subscriptionHashes.push('/market/match:' + marketId);
525
+ }
526
+ const trades = await this.subscribeMultiple(url, messageHashes, topic, subscriptionHashes, params);
527
+ if (this.newUpdates) {
528
+ const first = this.safeValue(trades, 0);
529
+ const tradeSymbol = this.safeString(first, 'symbol');
530
+ limit = trades.getLimit(tradeSymbol, limit);
531
+ }
532
+ return this.filterBySinceLimit(trades, since, limit, 'timestamp', true);
533
+ }
534
+ /**
535
+ * @method
536
+ * @name kucoin#unWatchTradesForSymbols
537
+ * @description unWatches trades stream
538
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/public-channels/match-execution-data
539
+ * @param {string} symbols
540
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
541
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
542
+ */
543
+ async unWatchTradesForSymbols(symbols, params = {}) {
544
+ await this.loadMarkets();
545
+ symbols = this.marketSymbols(symbols, undefined, false);
546
+ const marketIds = this.marketIds(symbols);
547
+ const url = await this.negotiate(false);
548
+ const messageHashes = [];
549
+ const subscriptionHashes = [];
550
+ const topic = '/market/match:' + marketIds.join(',');
551
+ for (let i = 0; i < symbols.length; i++) {
552
+ const symbol = symbols[i];
553
+ messageHashes.push('unsubscribe:trades:' + symbol);
554
+ subscriptionHashes.push('trades:' + symbol);
555
+ }
556
+ const subscription = {
557
+ 'messageHashes': messageHashes,
558
+ 'subMessageHashes': subscriptionHashes,
559
+ 'topic': 'trades',
560
+ 'unsubscribe': true,
561
+ 'symbols': symbols,
562
+ };
563
+ return await this.unSubscribeMultiple(url, messageHashes, topic, messageHashes, params, subscription);
564
+ }
565
+ /**
566
+ * @method
567
+ * @name kucoin#unWatchTrades
568
+ * @description unWatches trades stream
569
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/public-channels/match-execution-data
570
+ * @param {string} symbol unified symbol of the market to fetch trades for
571
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
572
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
573
+ */
574
+ async unWatchTrades(symbol, params = {}) {
575
+ return await this.unWatchTradesForSymbols([symbol], params);
576
+ }
577
+ handleTrade(client, message) {
578
+ //
579
+ // {
580
+ // "data": {
581
+ // "sequence": "1568787654360",
582
+ // "symbol": "BTC-USDT",
583
+ // "side": "buy",
584
+ // "size": "0.00536577",
585
+ // "price": "9345",
586
+ // "takerOrderId": "5e356c4a9f1a790008f8d921",
587
+ // "time": "1580559434436443257",
588
+ // "type": "match",
589
+ // "makerOrderId": "5e356bffedf0010008fa5d7f",
590
+ // "tradeId": "5e356c4aeefabd62c62a1ece"
591
+ // },
592
+ // "subject": "trade.l3match",
593
+ // "topic": "/market/match:BTC-USDT",
594
+ // "type": "message"
595
+ // }
596
+ //
597
+ const data = this.safeValue(message, 'data', {});
598
+ const trade = this.parseTrade(data);
599
+ const symbol = trade['symbol'];
600
+ const messageHash = 'trades:' + symbol;
601
+ let trades = this.safeValue(this.trades, symbol);
602
+ if (trades === undefined) {
603
+ const limit = this.safeInteger(this.options, 'tradesLimit', 1000);
604
+ trades = new ArrayCache(limit);
605
+ this.trades[symbol] = trades;
606
+ }
607
+ trades.append(trade);
608
+ client.resolve(trades, messageHash);
609
+ }
610
+ /**
611
+ * @method
612
+ * @name kucoin#watchOrderBook
613
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/public-channels/level1-bbo-market-data
614
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/public-channels/level2-market-data
615
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/public-channels/level2-5-best-ask-bid-orders
616
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/public-channels/level2-50-best-ask-bid-orders
617
+ * @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
618
+ * @param {string} symbol unified symbol of the market to fetch the order book for
619
+ * @param {int} [limit] the maximum amount of order book entries to return
620
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
621
+ * @param {string} [params.method] either '/market/level2' or '/spotMarket/level2Depth5' or '/spotMarket/level2Depth50' default is '/market/level2'
622
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
623
+ */
624
+ async watchOrderBook(symbol, limit = undefined, params = {}) {
625
+ //
626
+ // https://docs.kucoin.com/#level-2-market-data
627
+ //
628
+ // 1. After receiving the websocket Level 2 data flow, cache the data.
629
+ // 2. Initiate a REST request to get the snapshot data of Level 2 order book.
630
+ // 3. Playback the cached Level 2 data flow.
631
+ // 4. Apply the new Level 2 data flow to the local snapshot to ensure that
632
+ // the sequence of the new Level 2 update lines up with the sequence of
633
+ // the previous Level 2 data. Discard all the message prior to that
634
+ // sequence, and then playback the change to snapshot.
635
+ // 5. Update the level2 full data based on sequence according to the
636
+ // size. If the price is 0, ignore the messages and update the sequence.
637
+ // If the size=0, update the sequence and remove the price of which the
638
+ // size is 0 out of level 2. Fr other cases, please update the price.
639
+ //
640
+ return await this.watchOrderBookForSymbols([symbol], limit, params);
641
+ }
642
+ /**
643
+ * @method
644
+ * @name kucoin#unWatchOrderBook
645
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/public-channels/level1-bbo-market-data
646
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/public-channels/level2-market-data
647
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/public-channels/level2-5-best-ask-bid-orders
648
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/public-channels/level2-50-best-ask-bid-orders
649
+ * @description unWatches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
650
+ * @param {string} symbol unified symbol of the market to fetch the order book for
651
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
652
+ * @param {string} [params.method] either '/market/level2' or '/spotMarket/level2Depth5' or '/spotMarket/level2Depth50' default is '/market/level2'
653
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
654
+ */
655
+ async unWatchOrderBook(symbol, params = {}) {
656
+ return await this.unWatchOrderBookForSymbols([symbol], params);
657
+ }
658
+ /**
659
+ * @method
660
+ * @name kucoin#watchOrderBookForSymbols
661
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/public-channels/level1-bbo-market-data
662
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/public-channels/level2-market-data
663
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/public-channels/level2-5-best-ask-bid-orders
664
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/public-channels/level2-50-best-ask-bid-orders
665
+ * @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
666
+ * @param {string[]} symbols unified array of symbols
667
+ * @param {int} [limit] the maximum amount of order book entries to return
668
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
669
+ * @param {string} [params.method] either '/market/level2' or '/spotMarket/level2Depth5' or '/spotMarket/level2Depth50' default is '/market/level2'
670
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
671
+ */
672
+ async watchOrderBookForSymbols(symbols, limit = undefined, params = {}) {
673
+ const symbolsLength = symbols.length;
674
+ if (symbolsLength === 0) {
675
+ throw new ArgumentsRequired(this.id + ' watchOrderBookForSymbols() requires a non-empty array of symbols');
676
+ }
677
+ if (limit !== undefined) {
678
+ if ((limit !== 20) && (limit !== 100) && (limit !== 50) && (limit !== 5)) {
679
+ throw new ExchangeError(this.id + " watchOrderBook 'limit' argument must be undefined, 5, 20, 50 or 100");
680
+ }
681
+ }
682
+ await this.loadMarkets();
683
+ symbols = this.marketSymbols(symbols);
684
+ const marketIds = this.marketIds(symbols);
685
+ const url = await this.negotiate(false);
686
+ let method = undefined;
687
+ [method, params] = this.handleOptionAndParams(params, 'watchOrderBook', 'method', '/market/level2');
688
+ if ((limit === 5) || (limit === 50)) {
689
+ method = '/spotMarket/level2Depth' + limit.toString();
690
+ }
691
+ const topic = method + ':' + marketIds.join(',');
692
+ const messageHashes = [];
693
+ const subscriptionHashes = [];
694
+ for (let i = 0; i < symbols.length; i++) {
695
+ const symbol = symbols[i];
696
+ messageHashes.push('orderbook:' + symbol);
697
+ const marketId = marketIds[i];
698
+ subscriptionHashes.push(method + ':' + marketId);
699
+ }
700
+ let subscription = {};
701
+ if (method === '/market/level2') { // other streams return the entire orderbook, so we don't need to fetch the snapshot through REST
702
+ subscription = {
703
+ 'method': this.handleOrderBookSubscription,
704
+ 'symbols': symbols,
705
+ 'limit': limit,
706
+ };
707
+ }
708
+ const orderbook = await this.subscribeMultiple(url, messageHashes, topic, subscriptionHashes, params, subscription);
709
+ return orderbook.limit();
710
+ }
711
+ /**
712
+ * @method
713
+ * @name kucoin#unWatchOrderBookForSymbols
714
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/public-channels/level1-bbo-market-data
715
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/public-channels/level2-market-data
716
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/public-channels/level2-5-best-ask-bid-orders
717
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/public-channels/level2-50-best-ask-bid-orders
718
+ * @description unWatches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
719
+ * @param {string[]} symbols unified array of symbols
720
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
721
+ * @param {string} [params.method] either '/market/level2' or '/spotMarket/level2Depth5' or '/spotMarket/level2Depth50' default is '/market/level2'
722
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
723
+ */
724
+ async unWatchOrderBookForSymbols(symbols, params = {}) {
725
+ const limit = this.safeInteger(params, 'limit');
726
+ params = this.omit(params, 'limit');
727
+ await this.loadMarkets();
728
+ symbols = this.marketSymbols(symbols, undefined, false);
729
+ const marketIds = this.marketIds(symbols);
730
+ const url = await this.negotiate(false);
731
+ let method = undefined;
732
+ [method, params] = this.handleOptionAndParams(params, 'watchOrderBook', 'method', '/market/level2');
733
+ if ((limit === 5) || (limit === 50)) {
734
+ method = '/spotMarket/level2Depth' + limit.toString();
735
+ }
736
+ const topic = method + ':' + marketIds.join(',');
737
+ const messageHashes = [];
738
+ const subscriptionHashes = [];
739
+ for (let i = 0; i < symbols.length; i++) {
740
+ const symbol = symbols[i];
741
+ messageHashes.push('unsubscribe:orderbook:' + symbol);
742
+ subscriptionHashes.push('orderbook:' + symbol);
743
+ }
744
+ const subscription = {
745
+ 'messageHashes': messageHashes,
746
+ 'symbols': symbols,
747
+ 'unsubscribe': true,
748
+ 'topic': 'orderbook',
749
+ 'subMessageHashes': subscriptionHashes,
750
+ };
751
+ return await this.unSubscribeMultiple(url, messageHashes, topic, messageHashes, params, subscription);
752
+ }
753
+ handleOrderBook(client, message) {
754
+ //
755
+ // initial snapshot is fetched with ccxt's fetchOrderBook
756
+ // the feed does not include a snapshot, just the deltas
757
+ //
758
+ // {
759
+ // "type":"message",
760
+ // "topic":"/market/level2:BTC-USDT",
761
+ // "subject":"trade.l2update",
762
+ // "data":{
763
+ // "sequenceStart":1545896669105,
764
+ // "sequenceEnd":1545896669106,
765
+ // "symbol":"BTC-USDT",
766
+ // "changes": {
767
+ // "asks": [["6","1","1545896669105"]], // price, size, sequence
768
+ // "bids": [["4","1","1545896669106"]]
769
+ // }
770
+ // }
771
+ // }
772
+ //
773
+ // {
774
+ // "topic": "/spotMarket/level2Depth5:BTC-USDT",
775
+ // "type": "message",
776
+ // "data": {
777
+ // "asks": [
778
+ // [
779
+ // "42815.6",
780
+ // "1.24016245"
781
+ // ]
782
+ // ],
783
+ // "bids": [
784
+ // [
785
+ // "42815.5",
786
+ // "0.08652716"
787
+ // ]
788
+ // ],
789
+ // "timestamp": 1707204474018
790
+ // },
791
+ // "subject": "level2"
792
+ // }
793
+ //
794
+ const data = this.safeValue(message, 'data');
795
+ const subject = this.safeString(message, 'subject');
796
+ const topic = this.safeString(message, 'topic');
797
+ const topicParts = topic.split(':');
798
+ const topicSymbol = this.safeString(topicParts, 1);
799
+ const topicChannel = this.safeString(topicParts, 0);
800
+ const marketId = this.safeString(data, 'symbol', topicSymbol);
801
+ const symbol = this.safeSymbol(marketId, undefined, '-');
802
+ const messageHash = 'orderbook:' + symbol;
803
+ // let orderbook = this.safeDict (this.orderbooks, symbol);
804
+ if (subject === 'level2') {
805
+ if (!(symbol in this.orderbooks)) {
806
+ this.orderbooks[symbol] = this.orderBook();
807
+ }
808
+ else {
809
+ const orderbook = this.orderbooks[symbol];
810
+ orderbook.reset();
811
+ }
812
+ this.orderbooks[symbol]['symbol'] = symbol;
813
+ }
814
+ else {
815
+ if (!(symbol in this.orderbooks)) {
816
+ this.orderbooks[symbol] = this.orderBook();
817
+ }
818
+ const orderbook = this.orderbooks[symbol];
819
+ const nonce = this.safeInteger(orderbook, 'nonce');
820
+ const deltaEnd = this.safeInteger2(data, 'sequenceEnd', 'timestamp');
821
+ if (nonce === undefined) {
822
+ const cacheLength = orderbook.cache.length;
823
+ const subscriptions = Object.keys(client.subscriptions);
824
+ let subscription = undefined;
825
+ for (let i = 0; i < subscriptions.length; i++) {
826
+ const key = subscriptions[i];
827
+ if ((key.indexOf(topicSymbol) >= 0) && (key.indexOf(topicChannel) >= 0)) {
828
+ subscription = client.subscriptions[key];
829
+ break;
830
+ }
831
+ }
832
+ const limit = this.safeInteger(subscription, 'limit');
833
+ const snapshotDelay = this.handleOption('watchOrderBook', 'snapshotDelay', 5);
834
+ if (cacheLength === snapshotDelay) {
835
+ this.spawn(this.loadOrderBook, client, messageHash, symbol, limit, {});
836
+ }
837
+ orderbook.cache.push(data);
838
+ return;
839
+ }
840
+ else if (nonce >= deltaEnd) {
841
+ return;
842
+ }
843
+ }
844
+ this.handleDelta(this.orderbooks[symbol], data);
845
+ client.resolve(this.orderbooks[symbol], messageHash);
846
+ }
847
+ getCacheIndex(orderbook, cache) {
848
+ const firstDelta = this.safeValue(cache, 0);
849
+ const nonce = this.safeInteger(orderbook, 'nonce');
850
+ const firstDeltaStart = this.safeInteger(firstDelta, 'sequenceStart');
851
+ if (nonce < firstDeltaStart - 1) {
852
+ return -1;
853
+ }
854
+ for (let i = 0; i < cache.length; i++) {
855
+ const delta = cache[i];
856
+ const deltaStart = this.safeInteger(delta, 'sequenceStart');
857
+ const deltaEnd = this.safeInteger(delta, 'sequenceEnd');
858
+ if ((nonce >= deltaStart - 1) && (nonce < deltaEnd)) {
859
+ return i;
860
+ }
861
+ }
862
+ return cache.length;
863
+ }
864
+ handleDelta(orderbook, delta) {
865
+ const timestamp = this.safeInteger2(delta, 'time', 'timestamp');
866
+ orderbook['nonce'] = this.safeInteger(delta, 'sequenceEnd', timestamp);
867
+ orderbook['timestamp'] = timestamp;
868
+ orderbook['datetime'] = this.iso8601(timestamp);
869
+ const changes = this.safeValue(delta, 'changes', delta);
870
+ const bids = this.safeValue(changes, 'bids', []);
871
+ const asks = this.safeValue(changes, 'asks', []);
872
+ const storedBids = orderbook['bids'];
873
+ const storedAsks = orderbook['asks'];
874
+ this.handleBidAsks(storedBids, bids);
875
+ this.handleBidAsks(storedAsks, asks);
876
+ }
877
+ handleBidAsks(bookSide, bidAsks) {
878
+ for (let i = 0; i < bidAsks.length; i++) {
879
+ const bidAsk = this.parseBidAsk(bidAsks[i]);
880
+ bookSide.storeArray(bidAsk);
881
+ }
882
+ }
883
+ handleOrderBookSubscription(client, message, subscription) {
884
+ const limit = this.safeInteger(subscription, 'limit');
885
+ const symbols = this.safeValue(subscription, 'symbols');
886
+ if (symbols === undefined) {
887
+ const symbol = this.safeString(subscription, 'symbol');
888
+ this.orderbooks[symbol] = this.orderBook({}, limit);
889
+ }
890
+ else {
891
+ for (let i = 0; i < symbols.length; i++) {
892
+ const symbol = symbols[i];
893
+ this.orderbooks[symbol] = this.orderBook({}, limit);
894
+ }
895
+ }
896
+ // moved snapshot initialization to handleOrderBook to fix
897
+ // https://github.com/ccxt/ccxt/issues/6820
898
+ // the general idea is to fetch the snapshot after the first delta
899
+ // but not before, because otherwise we cannot synchronize the feed
900
+ }
901
+ handleSubscriptionStatus(client, message) {
902
+ //
903
+ // {
904
+ // "id": "1578090438322",
905
+ // "type": "ack"
906
+ // }
907
+ //
908
+ const id = this.safeString(message, 'id');
909
+ if (!(id in client.subscriptions)) {
910
+ return;
911
+ }
912
+ const subscriptionHash = this.safeString(client.subscriptions, id);
913
+ const subscription = this.safeValue(client.subscriptions, subscriptionHash);
914
+ delete client.subscriptions[id];
915
+ const method = this.safeValue(subscription, 'method');
916
+ if (method !== undefined) {
917
+ method.call(this, client, message, subscription);
918
+ }
919
+ const isUnSub = this.safeBool(subscription, 'unsubscribe', false);
920
+ if (isUnSub) {
921
+ const messageHashes = this.safeList(subscription, 'messageHashes', []);
922
+ const subMessageHashes = this.safeList(subscription, 'subMessageHashes', []);
923
+ for (let i = 0; i < messageHashes.length; i++) {
924
+ const messageHash = messageHashes[i];
925
+ const subHash = subMessageHashes[i];
926
+ this.cleanUnsubscription(client, subHash, messageHash);
927
+ }
928
+ this.cleanCache(subscription);
929
+ }
930
+ }
931
+ handleSystemStatus(client, message) {
932
+ //
933
+ // todo: answer the question whether handleSystemStatus should be renamed
934
+ // and unified as handleStatus for any usage pattern that
935
+ // involves system status and maintenance updates
936
+ //
937
+ // {
938
+ // "id": "1578090234088", // connectId
939
+ // "type": "welcome",
940
+ // }
941
+ //
942
+ return message;
943
+ }
944
+ /**
945
+ * @method
946
+ * @name kucoin#watchOrders
947
+ * @description watches information on multiple orders made by the user
948
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/private-channels/private-order-change
949
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/private-channels/stop-order-event
950
+ * @param {string} symbol unified market symbol of the market orders were made in
951
+ * @param {int} [since] the earliest time in ms to fetch orders for
952
+ * @param {int} [limit] the maximum number of order structures to retrieve
953
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
954
+ * @param {boolean} [params.trigger] trigger orders are watched if true
955
+ * @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
956
+ */
957
+ async watchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
958
+ await this.loadMarkets();
959
+ const trigger = this.safeValue2(params, 'stop', 'trigger');
960
+ params = this.omit(params, ['stop', 'trigger']);
961
+ const url = await this.negotiate(true);
962
+ const topic = trigger ? '/spotMarket/advancedOrders' : '/spotMarket/tradeOrders';
963
+ const request = {
964
+ 'privateChannel': true,
965
+ };
966
+ let messageHash = 'orders';
967
+ if (symbol !== undefined) {
968
+ const market = this.market(symbol);
969
+ symbol = market['symbol'];
970
+ messageHash = messageHash + ':' + symbol;
971
+ }
972
+ const orders = await this.subscribe(url, messageHash, topic, this.extend(request, params));
973
+ if (this.newUpdates) {
974
+ limit = orders.getLimit(symbol, limit);
975
+ }
976
+ return this.filterBySymbolSinceLimit(orders, symbol, since, limit, true);
977
+ }
978
+ parseWsOrderStatus(status) {
979
+ const statuses = {
980
+ 'open': 'open',
981
+ 'filled': 'closed',
982
+ 'match': 'open',
983
+ 'update': 'open',
984
+ 'canceled': 'canceled',
985
+ 'cancel': 'canceled',
986
+ 'TRIGGERED': 'triggered',
987
+ };
988
+ return this.safeString(statuses, status, status);
989
+ }
990
+ parseWsOrder(order, market = undefined) {
991
+ //
992
+ // /spotMarket/tradeOrders
993
+ //
994
+ // {
995
+ // "symbol": "XCAD-USDT",
996
+ // "orderType": "limit",
997
+ // "side": "buy",
998
+ // "orderId": "6249167327218b000135e749",
999
+ // "type": "canceled",
1000
+ // "orderTime": 1648957043065280224,
1001
+ // "size": "100.452",
1002
+ // "filledSize": "0",
1003
+ // "price": "2.9635",
1004
+ // "clientOid": "buy-XCAD-USDT-1648957043010159",
1005
+ // "remainSize": "0",
1006
+ // "status": "done",
1007
+ // "ts": 1648957054031001037
1008
+ // }
1009
+ //
1010
+ // /spotMarket/advancedOrders
1011
+ //
1012
+ // {
1013
+ // "createdAt": 1589789942337,
1014
+ // "orderId": "5ec244f6a8a75e0009958237",
1015
+ // "orderPrice": "0.00062",
1016
+ // "orderType": "stop",
1017
+ // "side": "sell",
1018
+ // "size": "1",
1019
+ // "stop": "entry",
1020
+ // "stopPrice": "0.00062",
1021
+ // "symbol": "KCS-BTC",
1022
+ // "tradeType": "TRADE",
1023
+ // "triggerSuccess": true,
1024
+ // "ts": 1589790121382281286,
1025
+ // "type": "triggered"
1026
+ // }
1027
+ //
1028
+ const rawType = this.safeString(order, 'type');
1029
+ let status = this.parseWsOrderStatus(rawType);
1030
+ const timestamp = this.safeInteger2(order, 'orderTime', 'createdAt');
1031
+ const marketId = this.safeString(order, 'symbol');
1032
+ market = this.safeMarket(marketId, market);
1033
+ const triggerPrice = this.safeString(order, 'stopPrice');
1034
+ const triggerSuccess = this.safeValue(order, 'triggerSuccess');
1035
+ const triggerFail = (triggerSuccess !== true) && (triggerSuccess !== undefined); // TODO: updated to triggerSuccess === False once transpiler transpiles it correctly
1036
+ if ((status === 'triggered') && triggerFail) {
1037
+ status = 'canceled';
1038
+ }
1039
+ return this.safeOrder({
1040
+ 'info': order,
1041
+ 'symbol': market['symbol'],
1042
+ 'id': this.safeString(order, 'orderId'),
1043
+ 'clientOrderId': this.safeString(order, 'clientOid'),
1044
+ 'timestamp': timestamp,
1045
+ 'datetime': this.iso8601(timestamp),
1046
+ 'lastTradeTimestamp': undefined,
1047
+ 'type': this.safeStringLower(order, 'orderType'),
1048
+ 'timeInForce': undefined,
1049
+ 'postOnly': undefined,
1050
+ 'side': this.safeStringLower(order, 'side'),
1051
+ 'price': this.safeString2(order, 'price', 'orderPrice'),
1052
+ 'stopPrice': triggerPrice,
1053
+ 'triggerPrice': triggerPrice,
1054
+ 'amount': this.safeString(order, 'size'),
1055
+ 'cost': undefined,
1056
+ 'average': undefined,
1057
+ 'filled': this.safeString(order, 'filledSize'),
1058
+ 'remaining': undefined,
1059
+ 'status': status,
1060
+ 'fee': undefined,
1061
+ 'trades': undefined,
1062
+ }, market);
1063
+ }
1064
+ handleOrder(client, message) {
1065
+ //
1066
+ // Trigger Orders
1067
+ //
1068
+ // {
1069
+ // "createdAt": 1692745706437,
1070
+ // "error": "Balance insufficient!", // not always there
1071
+ // "orderId": "vs86kp757vlda6ni003qs70v",
1072
+ // "orderPrice": "0.26",
1073
+ // "orderType": "stop",
1074
+ // "side": "sell",
1075
+ // "size": "5",
1076
+ // "stop": "loss",
1077
+ // "stopPrice": "0.26",
1078
+ // "symbol": "ADA-USDT",
1079
+ // "tradeType": "TRADE",
1080
+ // "triggerSuccess": false, // not always there
1081
+ // "ts": "1692745706442929298",
1082
+ // "type": "open"
1083
+ // }
1084
+ //
1085
+ const messageHash = 'orders';
1086
+ const data = this.safeValue(message, 'data');
1087
+ const tradeId = this.safeString(data, 'tradeId');
1088
+ if (tradeId !== undefined) {
1089
+ this.handleMyTrade(client, message);
1090
+ }
1091
+ const parsed = this.parseWsOrder(data);
1092
+ const symbol = this.safeString(parsed, 'symbol');
1093
+ const orderId = this.safeString(parsed, 'id');
1094
+ const triggerPrice = this.safeValue(parsed, 'triggerPrice');
1095
+ const isTriggerOrder = (triggerPrice !== undefined);
1096
+ if (this.orders === undefined) {
1097
+ const limit = this.safeInteger(this.options, 'ordersLimit', 1000);
1098
+ this.orders = new ArrayCacheBySymbolById(limit);
1099
+ this.triggerOrders = new ArrayCacheBySymbolById(limit);
1100
+ }
1101
+ const cachedOrders = isTriggerOrder ? this.triggerOrders : this.orders;
1102
+ const orders = this.safeValue(cachedOrders.hashmap, symbol, {});
1103
+ const order = this.safeValue(orders, orderId);
1104
+ if (order !== undefined) {
1105
+ // todo add others to calculate average etc
1106
+ if (order['status'] === 'closed') {
1107
+ parsed['status'] = 'closed';
1108
+ }
1109
+ }
1110
+ cachedOrders.append(parsed);
1111
+ client.resolve(cachedOrders, messageHash);
1112
+ const symbolSpecificMessageHash = messageHash + ':' + symbol;
1113
+ client.resolve(cachedOrders, symbolSpecificMessageHash);
1114
+ }
1115
+ /**
1116
+ * @method
1117
+ * @name kucoin#watchMyTrades
1118
+ * @description watches information on multiple trades made by the user
1119
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/private-channels/private-order-change
1120
+ * @param {string} symbol unified market symbol of the market trades were made in
1121
+ * @param {int} [since] the earliest time in ms to fetch trades for
1122
+ * @param {int} [limit] the maximum number of trade structures to retrieve
1123
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1124
+ * @param {string} [params.method] '/spotMarket/tradeOrders' or '/spot/tradeFills' default is '/spotMarket/tradeOrders'
1125
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
1126
+ */
1127
+ async watchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1128
+ await this.loadMarkets();
1129
+ const url = await this.negotiate(true);
1130
+ let topic = undefined;
1131
+ [topic, params] = this.handleOptionAndParams(params, 'watchMyTrades', 'method', '/spotMarket/tradeOrders');
1132
+ const request = {
1133
+ 'privateChannel': true,
1134
+ };
1135
+ let messageHash = 'myTrades';
1136
+ if (symbol !== undefined) {
1137
+ const market = this.market(symbol);
1138
+ symbol = market['symbol'];
1139
+ messageHash = messageHash + ':' + market['symbol'];
1140
+ }
1141
+ const trades = await this.subscribe(url, messageHash, topic, this.extend(request, params));
1142
+ if (this.newUpdates) {
1143
+ limit = trades.getLimit(symbol, limit);
1144
+ }
1145
+ return this.filterBySymbolSinceLimit(trades, symbol, since, limit, true);
1146
+ }
1147
+ handleMyTrade(client, message) {
1148
+ //
1149
+ // {
1150
+ // "type": "message",
1151
+ // "topic": "/spotMarket/tradeOrders",
1152
+ // "subject": "orderChange",
1153
+ // "channelType": "private",
1154
+ // "data": {
1155
+ // "symbol": "KCS-USDT",
1156
+ // "orderType": "limit",
1157
+ // "side": "sell",
1158
+ // "orderId": "5efab07953bdea00089965fa",
1159
+ // "liquidity": "taker",
1160
+ // "type": "match",
1161
+ // "feeType": "takerFee",
1162
+ // "orderTime": 1670329987026,
1163
+ // "size": "0.1",
1164
+ // "filledSize": "0.1",
1165
+ // "price": "0.938",
1166
+ // "matchPrice": "0.96738",
1167
+ // "matchSize": "0.1",
1168
+ // "tradeId": "5efab07a4ee4c7000a82d6d9",
1169
+ // "clientOid": "1593487481000313",
1170
+ // "remainSize": "0",
1171
+ // "status": "match",
1172
+ // "ts": 1670329987311000000
1173
+ // }
1174
+ // }
1175
+ //
1176
+ if (this.myTrades === undefined) {
1177
+ const limit = this.safeInteger(this.options, 'tradesLimit', 1000);
1178
+ this.myTrades = new ArrayCacheBySymbolById(limit);
1179
+ }
1180
+ const data = this.safeDict(message, 'data');
1181
+ const parsed = this.parseWsTrade(data);
1182
+ const myTrades = this.myTrades;
1183
+ myTrades.append(parsed);
1184
+ const messageHash = 'myTrades';
1185
+ client.resolve(this.myTrades, messageHash);
1186
+ const symbolSpecificMessageHash = messageHash + ':' + parsed['symbol'];
1187
+ client.resolve(this.myTrades, symbolSpecificMessageHash);
1188
+ }
1189
+ parseWsTrade(trade, market = undefined) {
1190
+ //
1191
+ // /spotMarket/tradeOrders
1192
+ //
1193
+ // {
1194
+ // "symbol": "KCS-USDT",
1195
+ // "orderType": "limit",
1196
+ // "side": "sell",
1197
+ // "orderId": "5efab07953bdea00089965fa",
1198
+ // "liquidity": "taker",
1199
+ // "type": "match",
1200
+ // "feeType": "takerFee",
1201
+ // "orderTime": 1670329987026,
1202
+ // "size": "0.1",
1203
+ // "filledSize": "0.1",
1204
+ // "price": "0.938",
1205
+ // "matchPrice": "0.96738",
1206
+ // "matchSize": "0.1",
1207
+ // "tradeId": "5efab07a4ee4c7000a82d6d9",
1208
+ // "clientOid": "1593487481000313",
1209
+ // "remainSize": "0",
1210
+ // "status": "match",
1211
+ // "ts": 1670329987311000000
1212
+ // }
1213
+ //
1214
+ // /spot/tradeFills
1215
+ //
1216
+ // {
1217
+ // "fee": 0.00262148,
1218
+ // "feeCurrency": "USDT",
1219
+ // "feeRate": 0.001,
1220
+ // "orderId": "62417436b29df8000183df2f",
1221
+ // "orderType": "market",
1222
+ // "price": 131.074,
1223
+ // "side": "sell",
1224
+ // "size": 0.02,
1225
+ // "symbol": "LTC-USDT",
1226
+ // "time": "1648456758734571745",
1227
+ // "tradeId": "624174362e113d2f467b3043"
1228
+ // }
1229
+ //
1230
+ const marketId = this.safeString(trade, 'symbol');
1231
+ market = this.safeMarket(marketId, market, '-');
1232
+ const symbol = market['symbol'];
1233
+ const type = this.safeString(trade, 'orderType');
1234
+ const side = this.safeString(trade, 'side');
1235
+ const tradeId = this.safeString(trade, 'tradeId');
1236
+ let price = this.safeString(trade, 'matchPrice');
1237
+ let amount = this.safeString(trade, 'matchSize');
1238
+ if (price === undefined) {
1239
+ // /spot/tradeFills
1240
+ price = this.safeString(trade, 'price');
1241
+ amount = this.safeString(trade, 'size');
1242
+ }
1243
+ const order = this.safeString(trade, 'orderId');
1244
+ const timestamp = this.safeIntegerProduct2(trade, 'ts', 'time', 0.000001);
1245
+ const feeCurrency = market['quote'];
1246
+ const feeRate = this.safeString(trade, 'feeRate');
1247
+ const feeCost = this.safeString(trade, 'fee');
1248
+ return this.safeTrade({
1249
+ 'info': trade,
1250
+ 'timestamp': timestamp,
1251
+ 'datetime': this.iso8601(timestamp),
1252
+ 'symbol': symbol,
1253
+ 'id': tradeId,
1254
+ 'order': order,
1255
+ 'type': type,
1256
+ 'takerOrMaker': this.safeString(trade, 'liquidity'),
1257
+ 'side': side,
1258
+ 'price': price,
1259
+ 'amount': amount,
1260
+ 'cost': undefined,
1261
+ 'fee': {
1262
+ 'cost': feeCost,
1263
+ 'rate': feeRate,
1264
+ 'currency': feeCurrency,
1265
+ },
1266
+ }, market);
1267
+ }
1268
+ /**
1269
+ * @method
1270
+ * @name kucoin#watchBalance
1271
+ * @description watch balance and get the amount of funds available for trading or funds locked in orders
1272
+ * @see https://www.kucoin.com/docs/websocket/spot-trading/private-channels/account-balance-change
1273
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1274
+ * @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
1275
+ */
1276
+ async watchBalance(params = {}) {
1277
+ await this.loadMarkets();
1278
+ const url = await this.negotiate(true);
1279
+ const topic = '/account/balance';
1280
+ const request = {
1281
+ 'privateChannel': true,
1282
+ };
1283
+ const messageHash = 'balance';
1284
+ return await this.subscribe(url, messageHash, topic, this.extend(request, params));
1285
+ }
1286
+ handleBalance(client, message) {
1287
+ //
1288
+ // {
1289
+ // "id":"6217a451294b030001e3a26a",
1290
+ // "type":"message",
1291
+ // "topic":"/account/balance",
1292
+ // "userId":"6217707c52f97f00012a67db",
1293
+ // "channelType":"private",
1294
+ // "subject":"account.balance",
1295
+ // "data":{
1296
+ // "accountId":"62177fe67810720001db2f18",
1297
+ // "available":"89",
1298
+ // "availableChange":"-30",
1299
+ // "currency":"USDT",
1300
+ // "hold":"0",
1301
+ // "holdChange":"0",
1302
+ // "relationContext":{
1303
+ // },
1304
+ // "relationEvent":"main.transfer",
1305
+ // "relationEventId":"6217a451294b030001e3a26a",
1306
+ // "time":"1645716561816",
1307
+ // "total":"89"
1308
+ // }
1309
+ //
1310
+ const data = this.safeValue(message, 'data', {});
1311
+ const messageHash = 'balance';
1312
+ const currencyId = this.safeString(data, 'currency');
1313
+ const relationEvent = this.safeString(data, 'relationEvent');
1314
+ let requestAccountType = undefined;
1315
+ if (relationEvent !== undefined) {
1316
+ const relationEventParts = relationEvent.split('.');
1317
+ requestAccountType = this.safeString(relationEventParts, 0);
1318
+ }
1319
+ const selectedType = this.safeString2(this.options, 'watchBalance', 'defaultType', 'trade'); // trade, main, margin or other
1320
+ const accountsByType = this.safeValue(this.options, 'accountsByType');
1321
+ const uniformType = this.safeString(accountsByType, requestAccountType, 'trade');
1322
+ if (!(uniformType in this.balance)) {
1323
+ this.balance[uniformType] = {};
1324
+ }
1325
+ this.balance[uniformType]['info'] = data;
1326
+ const timestamp = this.safeInteger(data, 'time');
1327
+ this.balance[uniformType]['timestamp'] = timestamp;
1328
+ this.balance[uniformType]['datetime'] = this.iso8601(timestamp);
1329
+ const code = this.safeCurrencyCode(currencyId);
1330
+ const account = this.account();
1331
+ account['free'] = this.safeString(data, 'available');
1332
+ account['used'] = this.safeString(data, 'hold');
1333
+ account['total'] = this.safeString(data, 'total');
1334
+ this.balance[uniformType][code] = account;
1335
+ this.balance[uniformType] = this.safeBalance(this.balance[uniformType]);
1336
+ if (uniformType === selectedType) {
1337
+ client.resolve(this.balance[uniformType], messageHash);
1338
+ }
1339
+ }
1340
+ handleSubject(client, message) {
1341
+ //
1342
+ // {
1343
+ // "type":"message",
1344
+ // "topic":"/market/level2:BTC-USDT",
1345
+ // "subject":"trade.l2update",
1346
+ // "data":{
1347
+ // "sequenceStart":1545896669105,
1348
+ // "sequenceEnd":1545896669106,
1349
+ // "symbol":"BTC-USDT",
1350
+ // "changes": {
1351
+ // "asks": [["6","1","1545896669105"]], // price, size, sequence
1352
+ // "bids": [["4","1","1545896669106"]]
1353
+ // }
1354
+ // }
1355
+ // }
1356
+ //
1357
+ const topic = this.safeString(message, 'topic');
1358
+ if (topic === '/market/ticker:all') {
1359
+ this.handleTicker(client, message);
1360
+ return;
1361
+ }
1362
+ const subject = this.safeString(message, 'subject');
1363
+ const methods = {
1364
+ 'level1': this.handleBidAsk,
1365
+ 'level2': this.handleOrderBook,
1366
+ 'trade.l2update': this.handleOrderBook,
1367
+ 'trade.ticker': this.handleTicker,
1368
+ 'trade.snapshot': this.handleTicker,
1369
+ 'trade.l3match': this.handleTrade,
1370
+ 'trade.candles.update': this.handleOHLCV,
1371
+ 'account.balance': this.handleBalance,
1372
+ 'orderChange': this.handleOrder,
1373
+ 'stopOrder': this.handleOrder,
1374
+ '/spot/tradeFills': this.handleMyTrade,
1375
+ };
1376
+ const method = this.safeValue(methods, subject);
1377
+ if (method !== undefined) {
1378
+ method.call(this, client, message);
1379
+ }
1380
+ }
1381
+ ping(client) {
1382
+ // kucoin does not support built-in ws protocol-level ping-pong
1383
+ // instead it requires a custom json-based text ping-pong
1384
+ // https://docs.kucoin.com/#ping
1385
+ const id = this.requestId().toString();
1386
+ return {
1387
+ 'id': id,
1388
+ 'type': 'ping',
1389
+ };
1390
+ }
1391
+ handlePong(client, message) {
1392
+ client.lastPong = this.milliseconds();
1393
+ // https://docs.kucoin.com/#ping
1394
+ }
1395
+ handleErrorMessage(client, message) {
1396
+ //
1397
+ // {
1398
+ // "id": "1",
1399
+ // "type": "error",
1400
+ // "code": 415,
1401
+ // "data": "type is not supported"
1402
+ // }
1403
+ //
1404
+ const data = this.safeString(message, 'data', '');
1405
+ if (data === 'token is expired') {
1406
+ let type = 'public';
1407
+ if (client.url.indexOf('connectId=private') >= 0) {
1408
+ type = 'private';
1409
+ }
1410
+ this.options['urls'][type] = undefined;
1411
+ }
1412
+ this.handleErrors(1, '', client.url, '', {}, data, message, {}, {});
1413
+ return false;
1414
+ }
1415
+ handleMessage(client, message) {
1416
+ const type = this.safeString(message, 'type');
1417
+ const methods = {
1418
+ // 'heartbeat': this.handleHeartbeat,
1419
+ 'welcome': this.handleSystemStatus,
1420
+ 'ack': this.handleSubscriptionStatus,
1421
+ 'message': this.handleSubject,
1422
+ 'pong': this.handlePong,
1423
+ 'error': this.handleErrorMessage,
1424
+ };
1425
+ const method = this.safeValue(methods, type);
1426
+ if (method !== undefined) {
1427
+ method.call(this, client, message);
1428
+ }
1429
+ }
1430
+ }