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,1295 @@
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 kucoinfuturesRest from '../kucoinfutures.js';
9
+ import { ExchangeError, ArgumentsRequired } from '../base/errors.js';
10
+ import { ArrayCache, ArrayCacheBySymbolById, ArrayCacheByTimestamp } from '../base/ws/Cache.js';
11
+ // ---------------------------------------------------------------------------
12
+ export default class kucoinfutures extends kucoinfuturesRest {
13
+ describe() {
14
+ return this.deepExtend(super.describe(), {
15
+ 'has': {
16
+ 'ws': true,
17
+ 'watchLiquidations': false,
18
+ 'watchLiquidatinsForSymbols': false,
19
+ 'watchMyLiquidations': undefined,
20
+ 'watchMyLiquidationsForSymbols': undefined,
21
+ 'watchTicker': true,
22
+ 'watchTickers': true,
23
+ 'watchBidsAsks': true,
24
+ 'watchTrades': true,
25
+ 'watchOHLCV': true,
26
+ 'watchOrderBook': true,
27
+ 'watchOrders': true,
28
+ 'watchBalance': true,
29
+ 'watchPosition': true,
30
+ 'watchPositions': false,
31
+ 'watchPositionForSymbols': false,
32
+ 'watchTradesForSymbols': true,
33
+ 'watchOrderBookForSymbols': true,
34
+ },
35
+ 'options': {
36
+ 'timeframes': {
37
+ '1m': '1min',
38
+ '3m': '1min',
39
+ '5m': '5min',
40
+ '15m': '15min',
41
+ '30m': '30min',
42
+ '1h': '1hour',
43
+ '2h': '2hour',
44
+ '4h': '4hour',
45
+ '8h': '8hour',
46
+ '12h': '12hour',
47
+ '1d': '1day',
48
+ '1w': '1week',
49
+ '1M': '1month',
50
+ },
51
+ 'accountsByType': {
52
+ 'swap': 'future',
53
+ 'cross': 'margin',
54
+ // 'spot': ,
55
+ // 'margin': ,
56
+ // 'main': ,
57
+ // 'funding': ,
58
+ // 'future': ,
59
+ // 'mining': ,
60
+ // 'trade': ,
61
+ // 'contract': ,
62
+ // 'pool': ,
63
+ },
64
+ 'tradesLimit': 1000,
65
+ 'watchOrderBook': {
66
+ 'snapshotDelay': 20,
67
+ 'snapshotMaxRetries': 3,
68
+ },
69
+ 'watchPosition': {
70
+ 'fetchPositionSnapshot': true,
71
+ 'awaitPositionSnapshot': true, // whether to wait for the position snapshot before providing updates
72
+ },
73
+ },
74
+ 'streaming': {
75
+ // kucoin does not support built-in ws protocol-level ping-pong
76
+ // instead it requires a custom json-based text ping-pong
77
+ // https://docs.kucoin.com/#ping
78
+ 'ping': this.ping,
79
+ },
80
+ });
81
+ }
82
+ async negotiate(privateChannel, params = {}) {
83
+ const connectId = privateChannel ? 'private' : 'public';
84
+ const urls = this.safeValue(this.options, 'urls', {});
85
+ const spawaned = this.safeValue(urls, connectId);
86
+ if (spawaned !== undefined) {
87
+ return await spawaned;
88
+ }
89
+ // we store an awaitable to the url
90
+ // so that multiple calls don't asynchronously
91
+ // fetch different urls and overwrite each other
92
+ urls[connectId] = this.spawn(this.negotiateHelper, privateChannel, params); // we have to wait here otherwsie in c# will not work
93
+ this.options['urls'] = urls;
94
+ const future = urls[connectId];
95
+ return await future;
96
+ }
97
+ async negotiateHelper(privateChannel, params = {}) {
98
+ let response = undefined;
99
+ const connectId = privateChannel ? 'private' : 'public';
100
+ try {
101
+ if (privateChannel) {
102
+ response = await this.futuresPrivatePostBulletPrivate(params);
103
+ //
104
+ // {
105
+ // "code": "200000",
106
+ // "data": {
107
+ // "instanceServers": [
108
+ // {
109
+ // "pingInterval": 50000,
110
+ // "endpoint": "wss://push-private.kucoin.com/endpoint",
111
+ // "protocol": "websocket",
112
+ // "encrypt": true,
113
+ // "pingTimeout": 10000
114
+ // }
115
+ // ],
116
+ // "token": "2neAiuYvAU61ZDXANAGAsiL4-iAExhsBXZxftpOeh_55i3Ysy2q2LEsEWU64mdzUOPusi34M_wGoSf7iNyEWJ1UQy47YbpY4zVdzilNP-Bj3iXzrjjGlWtiYB9J6i9GjsxUuhPw3BlrzazF6ghq4Lzf7scStOz3KkxjwpsOBCH4=.WNQmhZQeUKIkh97KYgU0Lg=="
117
+ // }
118
+ // }
119
+ //
120
+ }
121
+ else {
122
+ response = await this.futuresPublicPostBulletPublic(params);
123
+ }
124
+ const data = this.safeValue(response, 'data', {});
125
+ const instanceServers = this.safeValue(data, 'instanceServers', []);
126
+ const firstInstanceServer = this.safeValue(instanceServers, 0);
127
+ const pingInterval = this.safeInteger(firstInstanceServer, 'pingInterval');
128
+ const endpoint = this.safeString(firstInstanceServer, 'endpoint');
129
+ const token = this.safeString(data, 'token');
130
+ const result = endpoint + '?' + this.urlencode({
131
+ 'token': token,
132
+ 'privateChannel': privateChannel,
133
+ 'connectId': connectId,
134
+ });
135
+ const client = this.client(result);
136
+ client.keepAlive = pingInterval;
137
+ return result;
138
+ }
139
+ catch (e) {
140
+ const future = this.safeValue(this.options['urls'], connectId);
141
+ future.reject(e);
142
+ delete this.options['urls'][connectId];
143
+ }
144
+ return undefined;
145
+ }
146
+ requestId() {
147
+ const requestId = this.sum(this.safeInteger(this.options, 'requestId', 0), 1);
148
+ this.options['requestId'] = requestId;
149
+ return requestId;
150
+ }
151
+ async subscribe(url, messageHash, subscriptionHash, subscription, params = {}) {
152
+ const requestId = this.requestId().toString();
153
+ const request = {
154
+ 'id': requestId,
155
+ 'type': 'subscribe',
156
+ 'topic': subscriptionHash,
157
+ 'response': true,
158
+ };
159
+ const message = this.extend(request, params);
160
+ const subscriptionRequest = {
161
+ 'id': requestId,
162
+ };
163
+ if (subscription === undefined) {
164
+ subscription = subscriptionRequest;
165
+ }
166
+ else {
167
+ subscription = this.extend(subscriptionRequest, subscription);
168
+ }
169
+ return await this.watch(url, messageHash, message, subscriptionHash, subscription);
170
+ }
171
+ async subscribeMultiple(url, messageHashes, topic, subscriptionHashes, subscriptionArgs, params = {}) {
172
+ const requestId = this.requestId().toString();
173
+ const request = {
174
+ 'id': requestId,
175
+ 'type': 'subscribe',
176
+ 'topic': topic,
177
+ 'response': true,
178
+ };
179
+ return await this.watchMultiple(url, messageHashes, this.extend(request, params), subscriptionHashes, subscriptionArgs);
180
+ }
181
+ async unSubscribeMultiple(url, messageHashes, topic, subscriptionHashes, params = {}, subscription = undefined) {
182
+ const requestId = this.requestId().toString();
183
+ const request = {
184
+ 'id': requestId,
185
+ 'type': 'unsubscribe',
186
+ 'topic': topic,
187
+ 'response': true,
188
+ };
189
+ const message = this.extend(request, params);
190
+ if (subscription !== undefined) {
191
+ subscription[requestId] = requestId;
192
+ }
193
+ const client = this.client(url);
194
+ for (let i = 0; i < subscriptionHashes.length; i++) {
195
+ const subscriptionHash = subscriptionHashes[i];
196
+ if (!(subscriptionHash in client.subscriptions)) {
197
+ client.subscriptions[requestId] = subscriptionHash;
198
+ }
199
+ }
200
+ return await this.watchMultiple(url, messageHashes, message, subscriptionHashes, subscription);
201
+ }
202
+ /**
203
+ * @method
204
+ * @name kucoinfutures#watchTicker
205
+ * @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
206
+ * @see https://www.kucoin.com/docs/websocket/futures-trading/public-channels/get-ticker
207
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
208
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
209
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
210
+ */
211
+ async watchTicker(symbol, params = {}) {
212
+ await this.loadMarkets();
213
+ const market = this.market(symbol);
214
+ symbol = market['symbol'];
215
+ params['callerMethodName'] = 'watchTicker';
216
+ const tickers = await this.watchTickers([symbol], params);
217
+ return tickers[symbol];
218
+ }
219
+ /**
220
+ * @method
221
+ * @name kucoinfutures#watchTickers
222
+ * @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
223
+ * @param {string[]} symbols unified symbol of the market to fetch the ticker for
224
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
225
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
226
+ */
227
+ async watchTickers(symbols = undefined, params = {}) {
228
+ await this.loadMarkets();
229
+ const ticker = await this.watchMultiRequest('watchTickers', '/contractMarket/ticker:', symbols, params);
230
+ if (this.newUpdates) {
231
+ const tickers = {};
232
+ tickers[ticker['symbol']] = ticker;
233
+ return tickers;
234
+ }
235
+ return this.filterByArray(this.tickers, 'symbol', symbols);
236
+ }
237
+ handleTicker(client, message) {
238
+ //
239
+ // ticker (v1)
240
+ //
241
+ // {
242
+ // "subject": "ticker",
243
+ // "topic": "/contractMarket/ticker:XBTUSDM",
244
+ // "data": {
245
+ // "symbol": "XBTUSDM", //Market of the symbol
246
+ // "sequence": 45, //Sequence number which is used to judge the continuity of the pushed messages
247
+ // "side": "sell", //Transaction side of the last traded taker order
248
+ // "price": "3600.0", //Filled price
249
+ // "size": 16, //Filled quantity
250
+ // "tradeId": "5c9dcf4170744d6f5a3d32fb", //Order ID
251
+ // "bestBidSize": 795, //Best bid size
252
+ // "bestBidPrice": "3200.0", //Best bid
253
+ // "bestAskPrice": "3600.0", //Best ask size
254
+ // "bestAskSize": 284, //Best ask
255
+ // "ts": 1553846081210004941 //Filled time - nanosecond
256
+ // }
257
+ // }
258
+ //
259
+ const data = this.safeValue(message, 'data', {});
260
+ const marketId = this.safeValue(data, 'symbol');
261
+ const market = this.safeMarket(marketId, undefined, '-');
262
+ const ticker = this.parseTicker(data, market);
263
+ this.tickers[market['symbol']] = ticker;
264
+ client.resolve(ticker, this.getMessageHash('ticker', market['symbol']));
265
+ }
266
+ /**
267
+ * @method
268
+ * @name kucoinfutures#watchBidsAsks
269
+ * @see https://www.kucoin.com/docs/websocket/futures-trading/public-channels/get-ticker-v2
270
+ * @description watches best bid & ask for symbols
271
+ * @param {string[]} symbols unified symbol of the market to fetch the ticker for
272
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
273
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
274
+ */
275
+ async watchBidsAsks(symbols = undefined, params = {}) {
276
+ const ticker = await this.watchMultiRequest('watchBidsAsks', '/contractMarket/tickerV2:', symbols, params);
277
+ if (this.newUpdates) {
278
+ const tickers = {};
279
+ tickers[ticker['symbol']] = ticker;
280
+ return tickers;
281
+ }
282
+ return this.filterByArray(this.bidsasks, 'symbol', symbols);
283
+ }
284
+ async watchMultiRequest(methodName, channelName, symbols = undefined, params = {}) {
285
+ await this.loadMarkets();
286
+ [methodName, params] = this.handleParamString(params, 'callerMethodName', methodName);
287
+ const isBidsAsks = (methodName === 'watchBidsAsks');
288
+ symbols = this.marketSymbols(symbols, undefined, false, true, false);
289
+ const length = symbols.length;
290
+ if (length > 100) {
291
+ throw new ArgumentsRequired(this.id + ' ' + methodName + '() accepts a maximum of 100 symbols');
292
+ }
293
+ const messageHashes = [];
294
+ for (let i = 0; i < symbols.length; i++) {
295
+ const symbol = symbols[i];
296
+ const market = this.market(symbol);
297
+ const prefix = isBidsAsks ? 'bidask' : 'ticker';
298
+ messageHashes.push(this.getMessageHash(prefix, market['symbol']));
299
+ }
300
+ const url = await this.negotiate(false);
301
+ const marketIds = this.marketIds(symbols);
302
+ const joined = marketIds.join(',');
303
+ const requestId = this.requestId().toString();
304
+ const request = {
305
+ 'id': requestId,
306
+ 'type': 'subscribe',
307
+ 'topic': channelName + joined,
308
+ 'response': true,
309
+ };
310
+ const subscription = {
311
+ 'id': requestId,
312
+ };
313
+ return await this.watchMultiple(url, messageHashes, this.extend(request, params), messageHashes, subscription);
314
+ }
315
+ handleBidAsk(client, message) {
316
+ //
317
+ // arrives one symbol dict
318
+ //
319
+ // {
320
+ // "subject": "tickerV2",
321
+ // "topic": "/contractMarket/tickerV2:XBTUSDM",
322
+ // "data": {
323
+ // "symbol": "XBTUSDM", //Market of the symbol
324
+ // "bestBidSize": 795, // Best bid size
325
+ // "bestBidPrice": 3200.0, // Best bid
326
+ // "bestAskPrice": 3600.0, // Best ask
327
+ // "bestAskSize": 284, // Best ask size
328
+ // "ts": 1553846081210004941 // Filled time - nanosecond
329
+ // }
330
+ // }
331
+ //
332
+ const parsedTicker = this.parseWsBidAsk(message);
333
+ const symbol = parsedTicker['symbol'];
334
+ this.bidsasks[symbol] = parsedTicker;
335
+ client.resolve(parsedTicker, this.getMessageHash('bidask', symbol));
336
+ }
337
+ parseWsBidAsk(ticker, market = undefined) {
338
+ const data = this.safeDict(ticker, 'data', {});
339
+ const marketId = this.safeString(data, 'symbol');
340
+ market = this.safeMarket(marketId, market);
341
+ const symbol = this.safeString(market, 'symbol');
342
+ const timestamp = this.safeIntegerProduct(data, 'ts', 0.000001);
343
+ return this.safeTicker({
344
+ 'symbol': symbol,
345
+ 'timestamp': timestamp,
346
+ 'datetime': this.iso8601(timestamp),
347
+ 'ask': this.safeNumber(data, 'bestAskPrice'),
348
+ 'askVolume': this.safeNumber(data, 'bestAskSize'),
349
+ 'bid': this.safeNumber(data, 'bestBidPrice'),
350
+ 'bidVolume': this.safeNumber(data, 'bestBidSize'),
351
+ 'info': ticker,
352
+ }, market);
353
+ }
354
+ /**
355
+ * @method
356
+ * @name kucoinfutures#watchPosition
357
+ * @description watch open positions for a specific symbol
358
+ * @see https://docs.kucoin.com/futures/#position-change-events
359
+ * @param {string|undefined} symbol unified market symbol
360
+ * @param {object} params extra parameters specific to the exchange API endpoint
361
+ * @returns {object} a [position structure]{@link https://docs.ccxt.com/en/latest/manual.html#position-structure}
362
+ */
363
+ async watchPosition(symbol = undefined, params = {}) {
364
+ if (symbol === undefined) {
365
+ throw new ArgumentsRequired(this.id + ' watchPosition() requires a symbol argument');
366
+ }
367
+ await this.loadMarkets();
368
+ const url = await this.negotiate(true);
369
+ const market = this.market(symbol);
370
+ const topic = '/contract/position:' + market['id'];
371
+ const request = {
372
+ 'privateChannel': true,
373
+ };
374
+ const messageHash = 'position:' + market['symbol'];
375
+ const client = this.client(url);
376
+ this.setPositionCache(client, symbol);
377
+ const fetchPositionSnapshot = this.handleOption('watchPosition', 'fetchPositionSnapshot', true);
378
+ const awaitPositionSnapshot = this.handleOption('watchPosition', 'awaitPositionSnapshot', true);
379
+ const currentPosition = this.getCurrentPosition(symbol);
380
+ if (fetchPositionSnapshot && awaitPositionSnapshot && currentPosition === undefined) {
381
+ const snapshot = await client.future('fetchPositionSnapshot:' + symbol);
382
+ return snapshot;
383
+ }
384
+ return await this.subscribe(url, messageHash, topic, undefined, this.extend(request, params));
385
+ }
386
+ getCurrentPosition(symbol) {
387
+ if (this.positions === undefined) {
388
+ return undefined;
389
+ }
390
+ const cache = this.positions.hashmap;
391
+ const symbolCache = this.safeValue(cache, symbol, {});
392
+ const values = Object.values(symbolCache);
393
+ return this.safeValue(values, 0);
394
+ }
395
+ setPositionCache(client, symbol) {
396
+ const fetchPositionSnapshot = this.handleOption('watchPosition', 'fetchPositionSnapshot', false);
397
+ if (fetchPositionSnapshot) {
398
+ const messageHash = 'fetchPositionSnapshot:' + symbol;
399
+ if (!(messageHash in client.futures)) {
400
+ client.future(messageHash);
401
+ this.spawn(this.loadPositionSnapshot, client, messageHash, symbol);
402
+ }
403
+ }
404
+ }
405
+ async loadPositionSnapshot(client, messageHash, symbol) {
406
+ const position = await this.fetchPosition(symbol);
407
+ this.positions = new ArrayCacheBySymbolById();
408
+ const cache = this.positions;
409
+ cache.append(position);
410
+ // don't remove the future from the .futures cache
411
+ const future = client.futures[messageHash];
412
+ future.resolve(cache);
413
+ client.resolve(position, 'position:' + symbol);
414
+ }
415
+ handlePosition(client, message) {
416
+ //
417
+ // Position Changes Caused Operations
418
+ // {
419
+ // "type": "message",
420
+ // "userId": "5c32d69203aa676ce4b543c7", // Deprecated, will detele later
421
+ // "channelType": "private",
422
+ // "topic": "/contract/position:XBTUSDM",
423
+ // "subject": "position.change",
424
+ // "data": {
425
+ // "realisedGrossPnl": 0E-8, //Accumulated realised profit and loss
426
+ // "symbol": "XBTUSDM", //Symbol
427
+ // "crossMode": false, //Cross mode or not
428
+ // "liquidationPrice": 1000000.0, //Liquidation price
429
+ // "posLoss": 0E-8, //Manually added margin amount
430
+ // "avgEntryPrice": 7508.22, //Average entry price
431
+ // "unrealisedPnl": -0.00014735, //Unrealised profit and loss
432
+ // "markPrice": 7947.83, //Mark price
433
+ // "posMargin": 0.00266779, //Position margin
434
+ // "autoDeposit": false, //Auto deposit margin or not
435
+ // "riskLimit": 100000, //Risk limit
436
+ // "unrealisedCost": 0.00266375, //Unrealised value
437
+ // "posComm": 0.00000392, //Bankruptcy cost
438
+ // "posMaint": 0.00001724, //Maintenance margin
439
+ // "posCost": 0.00266375, //Position value
440
+ // "maintMarginReq": 0.005, //Maintenance margin rate
441
+ // "bankruptPrice": 1000000.0, //Bankruptcy price
442
+ // "realisedCost": 0.00000271, //Currently accumulated realised position value
443
+ // "markValue": 0.00251640, //Mark value
444
+ // "posInit": 0.00266375, //Position margin
445
+ // "realisedPnl": -0.00000253, //Realised profit and losts
446
+ // "maintMargin": 0.00252044, //Position margin
447
+ // "realLeverage": 1.06, //Leverage of the order
448
+ // "changeReason": "positionChange", //changeReason:marginChange、positionChange、liquidation、autoAppendMarginStatusChange、adl
449
+ // "currentCost": 0.00266375, //Current position value
450
+ // "openingTimestamp": 1558433191000, //Open time
451
+ // "currentQty": -20, //Current position
452
+ // "delevPercentage": 0.52, //ADL ranking percentile
453
+ // "currentComm": 0.00000271, //Current commission
454
+ // "realisedGrossCost": 0E-8, //Accumulated reliased gross profit value
455
+ // "isOpen": true, //Opened position or not
456
+ // "posCross": 1.2E-7, //Manually added margin
457
+ // "currentTimestamp": 1558506060394, //Current timestamp
458
+ // "unrealisedRoePcnt": -0.0553, //Rate of return on investment
459
+ // "unrealisedPnlPcnt": -0.0553, //Position profit and loss ratio
460
+ // "settleCurrency": "XBT" //Currency used to clear and settle the trades
461
+ // }
462
+ // }
463
+ // Position Changes Caused by Mark Price
464
+ // {
465
+ // "userId": "5cd3f1a7b7ebc19ae9558591", // Deprecated, will detele later
466
+ // "topic": "/contract/position:XBTUSDM",
467
+ // "subject": "position.change",
468
+ // "data": {
469
+ // "markPrice": 7947.83, //Mark price
470
+ // "markValue": 0.00251640, //Mark value
471
+ // "maintMargin": 0.00252044, //Position margin
472
+ // "realLeverage": 10.06, //Leverage of the order
473
+ // "unrealisedPnl": -0.00014735, //Unrealised profit and lost
474
+ // "unrealisedRoePcnt": -0.0553, //Rate of return on investment
475
+ // "unrealisedPnlPcnt": -0.0553, //Position profit and loss ratio
476
+ // "delevPercentage": 0.52, //ADL ranking percentile
477
+ // "currentTimestamp": 1558087175068, //Current timestamp
478
+ // "settleCurrency": "XBT" //Currency used to clear and settle the trades
479
+ // }
480
+ // }
481
+ // Funding Settlement
482
+ // {
483
+ // "userId": "xbc453tg732eba53a88ggyt8c", // Deprecated, will detele later
484
+ // "topic": "/contract/position:XBTUSDM",
485
+ // "subject": "position.settlement",
486
+ // "data": {
487
+ // "fundingTime": 1551770400000, //Funding time
488
+ // "qty": 100, //Position siz
489
+ // "markPrice": 3610.85, //Settlement price
490
+ // "fundingRate": -0.002966, //Funding rate
491
+ // "fundingFee": -296, //Funding fees
492
+ // "ts": 1547697294838004923, //Current time (nanosecond)
493
+ // "settleCurrency": "XBT" //Currency used to clear and settle the trades
494
+ // }
495
+ // }
496
+ // Adjustmet result of risk limit level
497
+ // {
498
+ // "userId": "xbc453tg732eba53a88ggyt8c",
499
+ // "topic": "/contract/position:ADAUSDTM",
500
+ // "subject": "position.adjustRiskLimit",
501
+ // "data": {
502
+ // "success": true, // Successful or not
503
+ // "riskLimitLevel": 1, // Current risk limit level
504
+ // "msg": "" // Failure reason
505
+ // }
506
+ // }
507
+ //
508
+ const topic = this.safeString(message, 'topic', '');
509
+ const parts = topic.split(':');
510
+ const marketId = this.safeString(parts, 1);
511
+ const symbol = this.safeSymbol(marketId, undefined, '');
512
+ const cache = this.positions;
513
+ const currentPosition = this.getCurrentPosition(symbol);
514
+ const messageHash = 'position:' + symbol;
515
+ const data = this.safeValue(message, 'data', {});
516
+ const newPosition = this.parsePosition(data);
517
+ const keys = Object.keys(newPosition);
518
+ for (let i = 0; i < keys.length; i++) {
519
+ const key = keys[i];
520
+ if (newPosition[key] === undefined) {
521
+ delete newPosition[key];
522
+ }
523
+ }
524
+ const position = this.extend(currentPosition, newPosition);
525
+ cache.append(position);
526
+ client.resolve(position, messageHash);
527
+ }
528
+ /**
529
+ * @method
530
+ * @name kucoinfutures#watchTrades
531
+ * @description get the list of most recent trades for a particular symbol
532
+ * @see https://docs.kucoin.com/futures/#execution-data
533
+ * @param {string} symbol unified symbol of the market to fetch trades for
534
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
535
+ * @param {int} [limit] the maximum amount of trades to fetch
536
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
537
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
538
+ */
539
+ async watchTrades(symbol, since = undefined, limit = undefined, params = {}) {
540
+ return await this.watchTradesForSymbols([symbol], since, limit, params);
541
+ }
542
+ /**
543
+ * @method
544
+ * @name kucoinfutures#watchTradesForSymbols
545
+ * @description get the list of most recent trades for a particular symbol
546
+ * @param {string[]} symbols
547
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
548
+ * @param {int} [limit] the maximum amount of trades to fetch
549
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
550
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
551
+ */
552
+ async watchTradesForSymbols(symbols, since = undefined, limit = undefined, params = {}) {
553
+ const symbolsLength = symbols.length;
554
+ if (symbolsLength === 0) {
555
+ throw new ArgumentsRequired(this.id + ' watchTradesForSymbols() requires a non-empty array of symbols');
556
+ }
557
+ await this.loadMarkets();
558
+ symbols = this.marketSymbols(symbols);
559
+ const url = await this.negotiate(false);
560
+ symbols = this.marketSymbols(symbols);
561
+ const marketIds = this.marketIds(symbols);
562
+ const topic = '/contractMarket/execution:' + marketIds.join(',');
563
+ const subscriptionHashes = [];
564
+ const messageHashes = [];
565
+ for (let i = 0; i < symbols.length; i++) {
566
+ const symbol = symbols[i];
567
+ const marketId = marketIds[i];
568
+ messageHashes.push('trades:' + symbol);
569
+ subscriptionHashes.push('/contractMarket/execution:' + marketId);
570
+ }
571
+ const trades = await this.subscribeMultiple(url, messageHashes, topic, subscriptionHashes, undefined, params);
572
+ if (this.newUpdates) {
573
+ const first = this.safeValue(trades, 0);
574
+ const tradeSymbol = this.safeString(first, 'symbol');
575
+ limit = trades.getLimit(tradeSymbol, limit);
576
+ }
577
+ return this.filterBySinceLimit(trades, since, limit, 'timestamp', true);
578
+ }
579
+ /**
580
+ * @method
581
+ * @name kucoinfutures#unWatchTrades
582
+ * @description unWatches trades stream
583
+ * @see https://docs.kucoin.com/futures/#execution-data
584
+ * @param {string} symbol unified symbol of the market to fetch trades for
585
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
586
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
587
+ */
588
+ async unWatchTrades(symbol, params = {}) {
589
+ return await this.unWatchTradesForSymbols([symbol], params);
590
+ }
591
+ /**
592
+ * @method
593
+ * @name kucoinfutures#unWatchTradesForSymbols
594
+ * @description get the list of most recent trades for a particular symbol
595
+ * @param {string[]} symbols
596
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
597
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
598
+ */
599
+ async unWatchTradesForSymbols(symbols, params = {}) {
600
+ await this.loadMarkets();
601
+ symbols = this.marketSymbols(symbols, undefined, false);
602
+ const url = await this.negotiate(false);
603
+ symbols = this.marketSymbols(symbols);
604
+ const marketIds = this.marketIds(symbols);
605
+ const topic = '/contractMarket/execution:' + marketIds.join(',');
606
+ const subscriptionHashes = [];
607
+ const messageHashes = [];
608
+ for (let i = 0; i < symbols.length; i++) {
609
+ const symbol = symbols[i];
610
+ messageHashes.push('unsubscribe:trades:' + symbol);
611
+ subscriptionHashes.push('trades:' + symbol);
612
+ }
613
+ const subscription = {
614
+ 'messageHashes': messageHashes,
615
+ 'subMessageHashes': subscriptionHashes,
616
+ 'topic': 'trades',
617
+ 'unsubscribe': true,
618
+ 'symbols': symbols,
619
+ };
620
+ return await this.unSubscribeMultiple(url, messageHashes, topic, messageHashes, params, subscription);
621
+ }
622
+ handleTrade(client, message) {
623
+ //
624
+ // {
625
+ // "type": "message",
626
+ // "topic": "/contractMarket/execution:ADAUSDTM",
627
+ // "subject": "match",
628
+ // "data": {
629
+ // "makerUserId": "62286a4d720edf0001e81961",
630
+ // "symbol": "ADAUSDTM",
631
+ // "sequence": 41320766,
632
+ // "side": "sell",
633
+ // "size": 2,
634
+ // "price": 0.35904,
635
+ // "takerOrderId": "636dd9da9857ba00010cfa44",
636
+ // "makerOrderId": "636dd9c8df149d0001e62bc8",
637
+ // "takerUserId": "6180be22b6ab210001fa3371",
638
+ // "tradeId": "636dd9da0000d400d477eca7",
639
+ // "ts": 1668143578987357700
640
+ // }
641
+ // }
642
+ //
643
+ const data = this.safeValue(message, 'data', {});
644
+ const trade = this.parseTrade(data);
645
+ const symbol = trade['symbol'];
646
+ let trades = this.safeValue(this.trades, symbol);
647
+ if (trades === undefined) {
648
+ const limit = this.safeInteger(this.options, 'tradesLimit', 1000);
649
+ trades = new ArrayCache(limit);
650
+ this.trades[symbol] = trades;
651
+ }
652
+ trades.append(trade);
653
+ const messageHash = 'trades:' + symbol;
654
+ client.resolve(trades, messageHash);
655
+ return message;
656
+ }
657
+ /**
658
+ * @method
659
+ * @name kucoinfutures#watchOHLCV
660
+ * @see https://www.kucoin.com/docs/websocket/futures-trading/public-channels/klines
661
+ * @description watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
662
+ * @param {string} symbol unified symbol of the market to fetch OHLCV data for
663
+ * @param {string} timeframe the length of time each candle represents
664
+ * @param {int} [since] timestamp in ms of the earliest candle to fetch
665
+ * @param {int} [limit] the maximum amount of candles to fetch
666
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
667
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
668
+ */
669
+ async watchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
670
+ await this.loadMarkets();
671
+ symbol = this.symbol(symbol);
672
+ const url = await this.negotiate(false);
673
+ const marketId = this.marketId(symbol);
674
+ const timeframes = this.safeDict(this.options, 'timeframes');
675
+ const timeframeId = this.safeString(timeframes, timeframe, timeframe);
676
+ const topic = '/contractMarket/limitCandle:' + marketId + '_' + timeframeId;
677
+ const messageHash = 'ohlcv::' + symbol + '_' + timeframe;
678
+ const ohlcv = await this.subscribe(url, messageHash, topic, undefined, params);
679
+ if (this.newUpdates) {
680
+ limit = ohlcv.getLimit(symbol, limit);
681
+ }
682
+ return this.filterBySinceLimit(ohlcv, since, limit, 0, true);
683
+ }
684
+ handleOHLCV(client, message) {
685
+ //
686
+ // {
687
+ // "topic":"/contractMarket/limitCandle:LTCUSDTM_1min",
688
+ // "type":"message",
689
+ // "data":{
690
+ // "symbol":"LTCUSDTM",
691
+ // "candles":[
692
+ // "1715470980",
693
+ // "81.38",
694
+ // "81.38",
695
+ // "81.38",
696
+ // "81.38",
697
+ // "61.0",
698
+ // "61"
699
+ // ],
700
+ // "time":1715470994801
701
+ // },
702
+ // "subject":"candle.stick"
703
+ // }
704
+ //
705
+ const topic = this.safeString(message, 'topic');
706
+ const parts = topic.split('_');
707
+ const timeframeId = this.safeString(parts, 1);
708
+ const data = this.safeDict(message, 'data');
709
+ const timeframes = this.safeDict(this.options, 'timeframes');
710
+ const timeframe = this.findTimeframe(timeframeId, timeframes);
711
+ const marketId = this.safeString(data, 'symbol');
712
+ const symbol = this.safeSymbol(marketId);
713
+ const messageHash = 'ohlcv::' + symbol + '_' + timeframe;
714
+ const ohlcv = this.safeList(data, 'candles');
715
+ const parsed = [
716
+ this.safeInteger(ohlcv, 0),
717
+ this.safeNumber(ohlcv, 1),
718
+ this.safeNumber(ohlcv, 2),
719
+ this.safeNumber(ohlcv, 3),
720
+ this.safeNumber(ohlcv, 4),
721
+ this.safeNumber(ohlcv, 6), // Note value 5 is incorrect and will be fixed in subsequent versions of kucoin
722
+ ];
723
+ this.ohlcvs[symbol] = this.safeDict(this.ohlcvs, symbol, {});
724
+ if (!(timeframe in this.ohlcvs[symbol])) {
725
+ const limit = this.safeInteger(this.options, 'OHLCVLimit', 1000);
726
+ this.ohlcvs[symbol][timeframe] = new ArrayCacheByTimestamp(limit);
727
+ }
728
+ const stored = this.ohlcvs[symbol][timeframe];
729
+ stored.append(parsed);
730
+ client.resolve(stored, messageHash);
731
+ }
732
+ /**
733
+ * @method
734
+ * @name kucoinfutures#watchOrderBook
735
+ * @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
736
+ * 1. After receiving the websocket Level 2 data flow, cache the data.
737
+ * 2. Initiate a REST request to get the snapshot data of Level 2 order book.
738
+ * 3. Playback the cached Level 2 data flow.
739
+ * 4. Apply the new Level 2 data flow to the local snapshot to ensure that the sequence of the new Level 2 update lines up with the sequence of the previous Level 2 data. Discard all the message prior to that sequence, and then playback the change to snapshot.
740
+ * 5. Update the level2 full data based on sequence according to the size. If the price is 0, ignore the messages and update the sequence. If the size=0, update the sequence and remove the price of which the size is 0 out of level 2. For other cases, please update the price.
741
+ * 6. If the sequence of the newly pushed message does not line up to the sequence of the last message, you could pull through REST Level 2 message request to get the updated messages. Please note that the difference between the start and end parameters cannot exceed 500.
742
+ * @see https://docs.kucoin.com/futures/#level-2-market-data
743
+ * @param {string} symbol unified symbol of the market to fetch the order book for
744
+ * @param {int} [limit] the maximum amount of order book entries to return
745
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
746
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
747
+ */
748
+ async watchOrderBook(symbol, limit = undefined, params = {}) {
749
+ return await this.watchOrderBookForSymbols([symbol], limit, params);
750
+ }
751
+ /**
752
+ * @method
753
+ * @name kucoinfutures#watchOrderBookForSymbols
754
+ * @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
755
+ * @see https://docs.kucoin.com/futures/#level-2-market-data
756
+ * @param {string[]} symbols unified array of symbols
757
+ * @param {int} [limit] the maximum amount of order book entries to return
758
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
759
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
760
+ */
761
+ async watchOrderBookForSymbols(symbols, limit = undefined, params = {}) {
762
+ const symbolsLength = symbols.length;
763
+ if (symbolsLength === 0) {
764
+ throw new ArgumentsRequired(this.id + ' watchOrderBookForSymbols() requires a non-empty array of symbols');
765
+ }
766
+ if (limit !== undefined) {
767
+ if ((limit !== 20) && (limit !== 100)) {
768
+ throw new ExchangeError(this.id + " watchOrderBook 'limit' argument must be undefined, 20 or 100");
769
+ }
770
+ }
771
+ await this.loadMarkets();
772
+ symbols = this.marketSymbols(symbols);
773
+ const marketIds = this.marketIds(symbols);
774
+ const url = await this.negotiate(false);
775
+ const topic = '/contractMarket/level2:' + marketIds.join(',');
776
+ const subscriptionArgs = {
777
+ 'limit': limit,
778
+ };
779
+ const subscriptionHashes = [];
780
+ const messageHashes = [];
781
+ for (let i = 0; i < symbols.length; i++) {
782
+ const symbol = symbols[i];
783
+ const marketId = marketIds[i];
784
+ messageHashes.push('orderbook:' + symbol);
785
+ subscriptionHashes.push('/contractMarket/level2:' + marketId);
786
+ }
787
+ const orderbook = await this.subscribeMultiple(url, messageHashes, topic, subscriptionHashes, subscriptionArgs, params);
788
+ return orderbook.limit();
789
+ }
790
+ /**
791
+ * @method
792
+ * @name kucoinfutures#unWatchOrderBook
793
+ * @description unWatches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
794
+ * @see https://docs.kucoin.com/futures/#level-2-market-data
795
+ * @param {string} symbol unified symbol of the market to fetch the order book for
796
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
797
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
798
+ */
799
+ async unWatchOrderBook(symbol, params = {}) {
800
+ return await this.unWatchOrderBookForSymbols([symbol], params);
801
+ }
802
+ /**
803
+ * @method
804
+ * @name kucoinfutures#unWatchOrderBookForSymbols
805
+ * @description unWatches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
806
+ * @param {string[]} symbols unified array of symbols
807
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
808
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
809
+ */
810
+ async unWatchOrderBookForSymbols(symbols, params = {}) {
811
+ await this.loadMarkets();
812
+ symbols = this.marketSymbols(symbols);
813
+ const marketIds = this.marketIds(symbols);
814
+ const url = await this.negotiate(false);
815
+ const topic = '/contractMarket/level2:' + marketIds.join(',');
816
+ const subscriptionHashes = [];
817
+ const messageHashes = [];
818
+ for (let i = 0; i < symbols.length; i++) {
819
+ const symbol = symbols[i];
820
+ messageHashes.push('unsubscribe:orderbook:' + symbol);
821
+ subscriptionHashes.push('orderbook:' + symbol);
822
+ }
823
+ const subscription = {
824
+ 'messageHashes': messageHashes,
825
+ 'symbols': symbols,
826
+ 'unsubscribe': true,
827
+ 'topic': 'orderbook',
828
+ 'subMessageHashes': subscriptionHashes,
829
+ };
830
+ return await this.unSubscribeMultiple(url, messageHashes, topic, messageHashes, params, subscription);
831
+ }
832
+ handleDelta(orderbook, delta) {
833
+ orderbook['nonce'] = this.safeInteger(delta, 'sequence');
834
+ const timestamp = this.safeInteger(delta, 'timestamp');
835
+ orderbook['timestamp'] = timestamp;
836
+ orderbook['datetime'] = this.iso8601(timestamp);
837
+ const change = this.safeValue(delta, 'change', {});
838
+ const splitChange = change.split(',');
839
+ const price = this.safeNumber(splitChange, 0);
840
+ const side = this.safeString(splitChange, 1);
841
+ const quantity = this.safeNumber(splitChange, 2);
842
+ const type = (side === 'buy') ? 'bids' : 'asks';
843
+ const value = [price, quantity];
844
+ if (type === 'bids') {
845
+ const storedBids = orderbook['bids'];
846
+ storedBids.storeArray(value);
847
+ }
848
+ else {
849
+ const storedAsks = orderbook['asks'];
850
+ storedAsks.storeArray(value);
851
+ }
852
+ }
853
+ handleDeltas(bookside, deltas) {
854
+ for (let i = 0; i < deltas.length; i++) {
855
+ this.handleDelta(bookside, deltas[i]);
856
+ }
857
+ }
858
+ handleOrderBook(client, message) {
859
+ //
860
+ // initial snapshot is fetched with ccxt's fetchOrderBook
861
+ // the feed does not include a snapshot, just the deltas
862
+ //
863
+ // {
864
+ // "type": "message",
865
+ // "topic": "/contractMarket/level2:ADAUSDTM",
866
+ // "subject": "level2",
867
+ // "data": {
868
+ // "sequence": 1668059586457,
869
+ // "change": "0.34172,sell,456", // type, side, quantity
870
+ // "timestamp": 1668573023223
871
+ // }
872
+ // }
873
+ //
874
+ const data = this.safeValue(message, 'data');
875
+ const topic = this.safeString(message, 'topic');
876
+ const topicParts = topic.split(':');
877
+ const marketId = this.safeString(topicParts, 1);
878
+ const symbol = this.safeSymbol(marketId, undefined, '-');
879
+ const messageHash = 'orderbook:' + symbol;
880
+ if (!(symbol in this.orderbooks)) {
881
+ const subscriptionArgs = this.safeDict(client.subscriptions, topic, {});
882
+ const limit = this.safeInteger(subscriptionArgs, 'limit');
883
+ this.orderbooks[symbol] = this.orderBook({}, limit);
884
+ }
885
+ const storedOrderBook = this.orderbooks[symbol];
886
+ const nonce = this.safeInteger(storedOrderBook, 'nonce');
887
+ const deltaEnd = this.safeInteger(data, 'sequence');
888
+ if (nonce === undefined) {
889
+ const cacheLength = storedOrderBook.cache.length;
890
+ const topicPartsNew = topic.split(':');
891
+ const topicSymbol = this.safeString(topicPartsNew, 1);
892
+ const topicChannel = this.safeString(topicPartsNew, 0);
893
+ const subscriptions = Object.keys(client.subscriptions);
894
+ let subscription = undefined;
895
+ for (let i = 0; i < subscriptions.length; i++) {
896
+ const key = subscriptions[i];
897
+ if ((key.indexOf(topicSymbol) >= 0) && (key.indexOf(topicChannel) >= 0)) {
898
+ subscription = client.subscriptions[key];
899
+ break;
900
+ }
901
+ }
902
+ const limit = this.safeInteger(subscription, 'limit');
903
+ const snapshotDelay = this.handleOption('watchOrderBook', 'snapshotDelay', 5);
904
+ if (cacheLength === snapshotDelay) {
905
+ this.spawn(this.loadOrderBook, client, messageHash, symbol, limit, {});
906
+ }
907
+ storedOrderBook.cache.push(data);
908
+ return;
909
+ }
910
+ else if (nonce >= deltaEnd) {
911
+ return;
912
+ }
913
+ this.handleDelta(storedOrderBook, data);
914
+ client.resolve(storedOrderBook, messageHash);
915
+ }
916
+ getCacheIndex(orderbook, cache) {
917
+ const firstDelta = this.safeValue(cache, 0);
918
+ const nonce = this.safeInteger(orderbook, 'nonce');
919
+ const firstDeltaStart = this.safeInteger(firstDelta, 'sequence');
920
+ if (nonce < firstDeltaStart - 1) {
921
+ return -1;
922
+ }
923
+ for (let i = 0; i < cache.length; i++) {
924
+ const delta = cache[i];
925
+ const deltaStart = this.safeInteger(delta, 'sequence');
926
+ if (nonce < deltaStart - 1) {
927
+ return i;
928
+ }
929
+ }
930
+ return cache.length;
931
+ }
932
+ handleSystemStatus(client, message) {
933
+ //
934
+ // todo: answer the question whether handleSystemStatus should be renamed
935
+ // and unified as handleStatus for any usage pattern that
936
+ // involves system status and maintenance updates
937
+ //
938
+ // {
939
+ // "id": "1578090234088", // connectId
940
+ // "type": "welcome",
941
+ // }
942
+ //
943
+ return message;
944
+ }
945
+ /**
946
+ * @method
947
+ * @name kucoinfutures#watchOrders
948
+ * @description watches information on multiple orders made by the user
949
+ * @see https://docs.kucoin.com/futures/#trade-orders-according-to-the-market
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
+ * @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
955
+ */
956
+ async watchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
957
+ await this.loadMarkets();
958
+ const url = await this.negotiate(true);
959
+ const topic = '/contractMarket/tradeOrders';
960
+ const request = {
961
+ 'privateChannel': true,
962
+ };
963
+ let messageHash = 'orders';
964
+ if (symbol !== undefined) {
965
+ const market = this.market(symbol);
966
+ symbol = market['symbol'];
967
+ messageHash = messageHash + ':' + symbol;
968
+ }
969
+ const orders = await this.subscribe(url, messageHash, topic, undefined, this.extend(request, params));
970
+ if (this.newUpdates) {
971
+ limit = orders.getLimit(symbol, limit);
972
+ }
973
+ return this.filterBySymbolSinceLimit(orders, symbol, since, limit, true);
974
+ }
975
+ parseWsOrderStatus(status) {
976
+ const statuses = {
977
+ 'open': 'open',
978
+ 'filled': 'closed',
979
+ 'match': 'open',
980
+ 'update': 'open',
981
+ 'canceled': 'canceled',
982
+ };
983
+ return this.safeString(statuses, status, status);
984
+ }
985
+ parseWsOrder(order, market = undefined) {
986
+ //
987
+ // "symbol": "XCAD-USDT",
988
+ // {
989
+ // "orderType": "limit",
990
+ // "side": "buy",
991
+ // "orderId": "6249167327218b000135e749",
992
+ // "type": "canceled",
993
+ // "orderTime": 1648957043065280224,
994
+ // "size": "100.452",
995
+ // "filledSize": "0",
996
+ // "price": "2.9635",
997
+ // "clientOid": "buy-XCAD-USDT-1648957043010159",
998
+ // "remainSize": "0",
999
+ // "status": "done",
1000
+ // "ts": 1648957054031001037
1001
+ // }
1002
+ //
1003
+ const id = this.safeString(order, 'orderId');
1004
+ const clientOrderId = this.safeString(order, 'clientOid');
1005
+ const orderType = this.safeStringLower(order, 'orderType');
1006
+ const price = this.safeString(order, 'price');
1007
+ const filled = this.safeString(order, 'filledSize');
1008
+ const amount = this.safeString(order, 'size');
1009
+ const rawType = this.safeString(order, 'type');
1010
+ const status = this.parseWsOrderStatus(rawType);
1011
+ const timestamp = this.safeIntegerProduct(order, 'orderTime', 0.000001);
1012
+ const marketId = this.safeString(order, 'symbol');
1013
+ market = this.safeMarket(marketId, market);
1014
+ const symbol = market['symbol'];
1015
+ const side = this.safeStringLower(order, 'side');
1016
+ return this.safeOrder({
1017
+ 'info': order,
1018
+ 'symbol': symbol,
1019
+ 'id': id,
1020
+ 'clientOrderId': clientOrderId,
1021
+ 'timestamp': timestamp,
1022
+ 'datetime': this.iso8601(timestamp),
1023
+ 'lastTradeTimestamp': undefined,
1024
+ 'type': orderType,
1025
+ 'timeInForce': undefined,
1026
+ 'postOnly': undefined,
1027
+ 'side': side,
1028
+ 'price': price,
1029
+ 'stopPrice': undefined,
1030
+ 'amount': amount,
1031
+ 'cost': undefined,
1032
+ 'average': undefined,
1033
+ 'filled': filled,
1034
+ 'remaining': undefined,
1035
+ 'status': status,
1036
+ 'fee': undefined,
1037
+ 'trades': undefined,
1038
+ }, market);
1039
+ }
1040
+ handleOrder(client, message) {
1041
+ const messageHash = 'orders';
1042
+ const data = this.safeValue(message, 'data');
1043
+ const parsed = this.parseWsOrder(data);
1044
+ const symbol = this.safeString(parsed, 'symbol');
1045
+ const orderId = this.safeString(parsed, 'id');
1046
+ if (symbol !== undefined) {
1047
+ if (this.orders === undefined) {
1048
+ const limit = this.safeInteger(this.options, 'ordersLimit', 1000);
1049
+ this.orders = new ArrayCacheBySymbolById(limit);
1050
+ }
1051
+ const cachedOrders = this.orders;
1052
+ const orders = this.safeValue(cachedOrders.hashmap, symbol, {});
1053
+ const order = this.safeValue(orders, orderId);
1054
+ if (order !== undefined) {
1055
+ // todo add others to calculate average etc
1056
+ const stopPrice = this.safeValue(order, 'stopPrice');
1057
+ if (stopPrice !== undefined) {
1058
+ parsed['stopPrice'] = stopPrice;
1059
+ }
1060
+ if (order['status'] === 'closed') {
1061
+ parsed['status'] = 'closed';
1062
+ }
1063
+ }
1064
+ cachedOrders.append(parsed);
1065
+ client.resolve(this.orders, messageHash);
1066
+ const symbolSpecificMessageHash = messageHash + ':' + symbol;
1067
+ client.resolve(this.orders, symbolSpecificMessageHash);
1068
+ }
1069
+ }
1070
+ /**
1071
+ * @method
1072
+ * @name kucoinfutures#watchBalance
1073
+ * @description watch balance and get the amount of funds available for trading or funds locked in orders
1074
+ * @see https://docs.kucoin.com/futures/#account-balance-events
1075
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1076
+ * @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
1077
+ */
1078
+ async watchBalance(params = {}) {
1079
+ await this.loadMarkets();
1080
+ const url = await this.negotiate(true);
1081
+ const topic = '/contractAccount/wallet';
1082
+ const request = {
1083
+ 'privateChannel': true,
1084
+ };
1085
+ const subscription = {
1086
+ 'method': this.handleBalanceSubscription,
1087
+ };
1088
+ const messageHash = 'balance';
1089
+ return await this.subscribe(url, messageHash, topic, subscription, this.extend(request, params));
1090
+ }
1091
+ handleBalance(client, message) {
1092
+ //
1093
+ // {
1094
+ // "id": "6375553193027a0001f6566f",
1095
+ // "type": "message",
1096
+ // "topic": "/contractAccount/wallet",
1097
+ // "userId": "613a896885d8660006151f01",
1098
+ // "channelType": "private",
1099
+ // "subject": "availableBalance.change",
1100
+ // "data": {
1101
+ // "currency": "USDT",
1102
+ // "holdBalance": "0.0000000000",
1103
+ // "availableBalance": "14.0350281903",
1104
+ // "timestamp": "1668633905657"
1105
+ // }
1106
+ // }
1107
+ //
1108
+ const data = this.safeValue(message, 'data', {});
1109
+ this.balance['info'] = data;
1110
+ const currencyId = this.safeString(data, 'currency');
1111
+ const code = this.safeCurrencyCode(currencyId);
1112
+ const account = this.account();
1113
+ account['free'] = this.safeString(data, 'availableBalance');
1114
+ account['used'] = this.safeString(data, 'holdBalance');
1115
+ this.balance[code] = account;
1116
+ this.balance = this.safeBalance(this.balance);
1117
+ client.resolve(this.balance, 'balance');
1118
+ }
1119
+ handleBalanceSubscription(client, message, subscription) {
1120
+ this.spawn(this.fetchBalanceSnapshot, client, message);
1121
+ }
1122
+ async fetchBalanceSnapshot(client, message) {
1123
+ await this.loadMarkets();
1124
+ this.checkRequiredCredentials();
1125
+ const messageHash = 'balance';
1126
+ const selectedType = this.safeString2(this.options, 'watchBalance', 'defaultType', 'swap'); // spot, margin, main, funding, future, mining, trade, contract, pool
1127
+ const params = {
1128
+ 'type': selectedType,
1129
+ };
1130
+ const snapshot = await this.fetchBalance(params);
1131
+ //
1132
+ // {
1133
+ // "info": {
1134
+ // "code": "200000",
1135
+ // "data": {
1136
+ // "accountEquity": 0.0350281903,
1137
+ // "unrealisedPNL": 0,
1138
+ // "marginBalance": 0.0350281903,
1139
+ // "positionMargin": 0,
1140
+ // "orderMargin": 0,
1141
+ // "frozenFunds": 0,
1142
+ // "availableBalance": 0.0350281903,
1143
+ // "currency": "USDT"
1144
+ // }
1145
+ // },
1146
+ // "timestamp": undefined,
1147
+ // "datetime": undefined,
1148
+ // "USDT": {
1149
+ // "free": 0.0350281903,
1150
+ // "used": 0,
1151
+ // "total": 0.0350281903
1152
+ // },
1153
+ // "free": {
1154
+ // "USDT": 0.0350281903
1155
+ // },
1156
+ // "used": {
1157
+ // "USDT": 0
1158
+ // },
1159
+ // "total": {
1160
+ // "USDT": 0.0350281903
1161
+ // }
1162
+ // }
1163
+ //
1164
+ const keys = Object.keys(snapshot);
1165
+ for (let i = 0; i < keys.length; i++) {
1166
+ const code = keys[i];
1167
+ if (code !== 'free' && code !== 'used' && code !== 'total' && code !== 'timestamp' && code !== 'datetime' && code !== 'info') {
1168
+ this.balance[code] = snapshot[code];
1169
+ }
1170
+ }
1171
+ this.balance['info'] = this.safeValue(snapshot, 'info', {});
1172
+ client.resolve(this.balance, messageHash);
1173
+ }
1174
+ handleSubject(client, message) {
1175
+ //
1176
+ // {
1177
+ // "type": "message",
1178
+ // "topic": "/contractMarket/level2:ADAUSDTM",
1179
+ // "subject": "level2",
1180
+ // "data": {
1181
+ // "sequence": 1668059586457,
1182
+ // "change": "0.34172,sell,456", // type, side, quantity
1183
+ // "timestamp": 1668573023223
1184
+ // }
1185
+ // }
1186
+ //
1187
+ const subject = this.safeString(message, 'subject');
1188
+ const methods = {
1189
+ 'level2': this.handleOrderBook,
1190
+ 'ticker': this.handleTicker,
1191
+ 'candle.stick': this.handleOHLCV,
1192
+ 'tickerV2': this.handleBidAsk,
1193
+ 'availableBalance.change': this.handleBalance,
1194
+ 'match': this.handleTrade,
1195
+ 'orderChange': this.handleOrder,
1196
+ 'orderUpdated': this.handleOrder,
1197
+ 'position.change': this.handlePosition,
1198
+ 'position.settlement': this.handlePosition,
1199
+ 'position.adjustRiskLimit': this.handlePosition,
1200
+ };
1201
+ const method = this.safeValue(methods, subject);
1202
+ if (method !== undefined) {
1203
+ method.call(this, client, message);
1204
+ }
1205
+ }
1206
+ getMessageHash(elementName, symbol = undefined) {
1207
+ // elementName can be 'ticker', 'bidask', ...
1208
+ if (symbol !== undefined) {
1209
+ return elementName + '@' + symbol;
1210
+ }
1211
+ else {
1212
+ return elementName + 's@all';
1213
+ }
1214
+ }
1215
+ ping(client) {
1216
+ // kucoin does not support built-in ws protocol-level ping-pong
1217
+ // instead it requires a custom json-based text ping-pong
1218
+ // https://docs.kucoin.com/#ping
1219
+ const id = this.requestId().toString();
1220
+ return {
1221
+ 'id': id,
1222
+ 'type': 'ping',
1223
+ };
1224
+ }
1225
+ handlePong(client, message) {
1226
+ // https://docs.kucoin.com/#ping
1227
+ client.lastPong = this.milliseconds();
1228
+ return message;
1229
+ }
1230
+ handleErrorMessage(client, message) {
1231
+ //
1232
+ // {
1233
+ // "id": "64d8732c856851144bded10d",
1234
+ // "type": "error",
1235
+ // "code": 401,
1236
+ // "data": "token is expired"
1237
+ // }
1238
+ //
1239
+ const data = this.safeString(message, 'data', '');
1240
+ if (data === 'token is expired') {
1241
+ let type = 'public';
1242
+ if (client.url.indexOf('connectId=private') >= 0) {
1243
+ type = 'private';
1244
+ }
1245
+ this.options['urls'][type] = undefined;
1246
+ }
1247
+ this.handleErrors(1, '', client.url, '', {}, data, message, {}, {});
1248
+ return true;
1249
+ }
1250
+ handleSubscriptionStatus(client, message) {
1251
+ //
1252
+ // {
1253
+ // "id": "1578090438322",
1254
+ // "type": "ack"
1255
+ // }
1256
+ //
1257
+ const id = this.safeString(message, 'id');
1258
+ if (!(id in client.subscriptions)) {
1259
+ return;
1260
+ }
1261
+ const subscriptionHash = this.safeString(client.subscriptions, id);
1262
+ const subscription = this.safeValue(client.subscriptions, subscriptionHash);
1263
+ delete client.subscriptions[id];
1264
+ const method = this.safeValue(subscription, 'method');
1265
+ if (method !== undefined) {
1266
+ method.call(this, client, message, subscription);
1267
+ }
1268
+ const isUnSub = this.safeBool(subscription, 'unsubscribe', false);
1269
+ if (isUnSub) {
1270
+ const messageHashes = this.safeList(subscription, 'messageHashes', []);
1271
+ const subMessageHashes = this.safeList(subscription, 'subMessageHashes', []);
1272
+ for (let i = 0; i < messageHashes.length; i++) {
1273
+ const messageHash = messageHashes[i];
1274
+ const subHash = subMessageHashes[i];
1275
+ this.cleanUnsubscription(client, subHash, messageHash);
1276
+ }
1277
+ this.cleanCache(subscription);
1278
+ }
1279
+ }
1280
+ handleMessage(client, message) {
1281
+ const type = this.safeString(message, 'type');
1282
+ const methods = {
1283
+ // 'heartbeat': this.handleHeartbeat,
1284
+ 'welcome': this.handleSystemStatus,
1285
+ 'message': this.handleSubject,
1286
+ 'pong': this.handlePong,
1287
+ 'error': this.handleErrorMessage,
1288
+ 'ack': this.handleSubscriptionStatus,
1289
+ };
1290
+ const method = this.safeValue(methods, type);
1291
+ if (method !== undefined) {
1292
+ method.call(this, client, message);
1293
+ }
1294
+ }
1295
+ }