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,2137 @@
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 Exchange from './abstract/hibachi.js';
9
+ import { TICK_SIZE } from './base/functions/number.js';
10
+ import { ecdsa } from './base/functions/crypto.js';
11
+ import { sha256 } from './static_dependencies/noble-hashes/sha256.js';
12
+ import { secp256k1 } from './static_dependencies/noble-curves/secp256k1.js';
13
+ import { Precise } from './base/Precise.js';
14
+ import { BadRequest, ExchangeError, OrderNotFound } from './base/errors.js';
15
+ // ---------------------------------------------------------------------------
16
+ /**
17
+ * @class hibachi
18
+ * @augments Exchange
19
+ */
20
+ export default class hibachi extends Exchange {
21
+ describe() {
22
+ return this.deepExtend(super.describe(), {
23
+ 'id': 'hibachi',
24
+ 'name': 'Hibachi',
25
+ 'countries': ['US'],
26
+ 'rateLimit': 100,
27
+ 'userAgent': this.userAgents['chrome'],
28
+ 'certified': false,
29
+ 'pro': false,
30
+ 'dex': true,
31
+ 'has': {
32
+ 'CORS': undefined,
33
+ 'spot': false,
34
+ 'margin': false,
35
+ 'swap': true,
36
+ 'future': false,
37
+ 'option': false,
38
+ 'addMargin': false,
39
+ 'cancelAllOrders': true,
40
+ 'cancelOrder': true,
41
+ 'cancelOrders': true,
42
+ 'cancelWithdraw': false,
43
+ 'closeAllPositions': false,
44
+ 'closePosition': false,
45
+ 'createConvertTrade': false,
46
+ 'createDepositAddress': false,
47
+ 'createMarketBuyOrderWithCost': false,
48
+ 'createMarketOrder': false,
49
+ 'createMarketOrderWithCost': false,
50
+ 'createMarketSellOrderWithCost': false,
51
+ 'createOrder': true,
52
+ 'createOrders': true,
53
+ 'createOrderWithTakeProfitAndStopLoss': false,
54
+ 'createReduceOnlyOrder': false,
55
+ 'createStopLimitOrder': false,
56
+ 'createStopLossOrder': false,
57
+ 'createStopMarketOrder': false,
58
+ 'createStopOrder': false,
59
+ 'createTakeProfitOrder': false,
60
+ 'createTrailingAmountOrder': false,
61
+ 'createTrailingPercentOrder': false,
62
+ 'createTriggerOrder': false,
63
+ 'editOrder': true,
64
+ 'editOrders': true,
65
+ 'fetchAccounts': false,
66
+ 'fetchBalance': true,
67
+ 'fetchCanceledOrders': false,
68
+ 'fetchClosedOrder': false,
69
+ 'fetchClosedOrders': false,
70
+ 'fetchConvertCurrencies': false,
71
+ 'fetchConvertQuote': false,
72
+ 'fetchCurrencies': true,
73
+ 'fetchDepositAddress': true,
74
+ 'fetchDeposits': true,
75
+ 'fetchDepositsWithdrawals': false,
76
+ 'fetchFundingHistory': false,
77
+ 'fetchFundingInterval': false,
78
+ 'fetchFundingIntervals': false,
79
+ 'fetchFundingRate': true,
80
+ 'fetchFundingRateHistory': true,
81
+ 'fetchFundingRates': false,
82
+ 'fetchIndexOHLCV': false,
83
+ 'fetchLedger': true,
84
+ 'fetchLeverage': false,
85
+ 'fetchMarginAdjustmentHistory': false,
86
+ 'fetchMarginMode': false,
87
+ 'fetchMarkets': true,
88
+ 'fetchMyTrades': true,
89
+ 'fetchOHLCV': true,
90
+ 'fetchOpenInterest': true,
91
+ 'fetchOpenInterestHistory': false,
92
+ 'fetchOpenOrder': false,
93
+ 'fetchOpenOrders': true,
94
+ 'fetchOrder': true,
95
+ 'fetchOrderBook': true,
96
+ 'fetchOrders': false,
97
+ 'fetchOrderTrades': false,
98
+ 'fetchPosition': false,
99
+ 'fetchPositionMode': false,
100
+ 'fetchPositions': true,
101
+ 'fetchPremiumIndexOHLCV': false,
102
+ 'fetchStatus': false,
103
+ 'fetchTicker': true,
104
+ 'fetchTickers': false,
105
+ 'fetchTime': true,
106
+ 'fetchTrades': true,
107
+ 'fetchTradingFee': false,
108
+ 'fetchTradingFees': true,
109
+ 'fetchTradingLimits': false,
110
+ 'fetchTransactions': 'emulated',
111
+ 'fetchTransfers': false,
112
+ 'fetchWithdrawals': true,
113
+ 'reduceMargin': false,
114
+ 'setLeverage': false,
115
+ 'setMargin': false,
116
+ 'setPositionMode': false,
117
+ 'transfer': false,
118
+ 'withdraw': true,
119
+ },
120
+ 'timeframes': {
121
+ '1m': '1min',
122
+ '5m': '5min',
123
+ '15m': '15min',
124
+ '1h': '1h',
125
+ '4h': '4h',
126
+ '1d': '1d',
127
+ '1w': '1w',
128
+ },
129
+ 'urls': {
130
+ 'logo': 'https://github.com/user-attachments/assets/7301bbb1-4f27-4167-8a55-75f74b14e973',
131
+ 'api': {
132
+ 'public': 'https://data-api.hibachi.xyz',
133
+ 'private': 'https://api.hibachi.xyz',
134
+ },
135
+ 'www': 'https://www.hibachi.xyz/',
136
+ 'referral': {
137
+ 'url': 'hibachi.xyz/r/ZBL2YFWIHU',
138
+ },
139
+ },
140
+ 'api': {
141
+ 'public': {
142
+ 'get': {
143
+ 'market/exchange-info': 1,
144
+ 'market/data/trades': 1,
145
+ 'market/data/prices': 1,
146
+ 'market/data/stats': 1,
147
+ 'market/data/klines': 1,
148
+ 'market/data/orderbook': 1,
149
+ 'market/data/open-interest': 1,
150
+ 'market/data/funding-rates': 1,
151
+ 'exchange/utc-timestamp': 1,
152
+ },
153
+ },
154
+ 'private': {
155
+ 'get': {
156
+ 'capital/deposit-info': 1,
157
+ 'capital/history': 1,
158
+ 'trade/account/trading_history': 1,
159
+ 'trade/account/info': 1,
160
+ 'trade/order': 1,
161
+ 'trade/account/trades': 1,
162
+ 'trade/orders': 1,
163
+ },
164
+ 'put': {
165
+ 'trade/order': 1,
166
+ },
167
+ 'delete': {
168
+ 'trade/order': 1,
169
+ 'trade/orders': 1,
170
+ },
171
+ 'post': {
172
+ 'trade/order': 1,
173
+ 'trade/orders': 1,
174
+ 'capital/withdraw': 1,
175
+ },
176
+ },
177
+ },
178
+ 'requiredCredentials': {
179
+ 'apiKey': true,
180
+ 'secret': false,
181
+ 'accountId': true,
182
+ 'privateKey': true,
183
+ },
184
+ 'fees': {
185
+ 'trading': {
186
+ 'tierBased': false,
187
+ 'percentage': true,
188
+ 'maker': this.parseNumber('0.00015'),
189
+ 'taker': this.parseNumber('0.00045'),
190
+ },
191
+ },
192
+ 'options': {},
193
+ 'features': {
194
+ 'default': {
195
+ 'sandbox': false,
196
+ 'createOrder': {
197
+ 'marginMode': false,
198
+ 'triggerPrice': true,
199
+ 'triggerPriceType': undefined,
200
+ 'triggerDirection': undefined,
201
+ 'stopLossPrice': false,
202
+ 'takeProfitPrice': false,
203
+ 'attachedStopLossTakeProfit': undefined,
204
+ 'timeInForce': {
205
+ 'IOC': true,
206
+ 'FOK': false,
207
+ 'PO': true,
208
+ 'GTD': false,
209
+ },
210
+ 'hedged': false,
211
+ 'trailing': false,
212
+ 'leverage': false,
213
+ 'marketBuyByCost': false,
214
+ 'marketBuyRequiresPrice': false,
215
+ 'selfTradePrevention': false,
216
+ 'iceberg': false,
217
+ },
218
+ 'createOrders': undefined,
219
+ 'fetchMyTrades': {
220
+ 'marginMode': false,
221
+ 'limit': undefined,
222
+ 'daysBack': undefined,
223
+ 'untilDays': undefined,
224
+ 'symbolRequired': false,
225
+ },
226
+ 'fetchOrder': {
227
+ 'marginMode': false,
228
+ 'trigger': false,
229
+ 'trailing': false,
230
+ 'symbolRequired': false,
231
+ },
232
+ 'fetchOpenOrders': {
233
+ 'marginMode': false,
234
+ 'limit': undefined,
235
+ 'trigger': false,
236
+ 'trailing': false,
237
+ 'symbolRequired': false,
238
+ },
239
+ 'fetchOrders': undefined,
240
+ 'fetchClosedOrders': undefined,
241
+ 'fetchOHLCV': {
242
+ 'limit': undefined,
243
+ },
244
+ },
245
+ 'swap': {
246
+ 'linear': {
247
+ 'extends': 'default',
248
+ },
249
+ 'inverse': undefined,
250
+ },
251
+ 'future': {
252
+ 'linear': {
253
+ 'extends': 'default',
254
+ },
255
+ 'inverse': undefined,
256
+ },
257
+ },
258
+ 'commonCurrencies': {},
259
+ 'exceptions': {
260
+ 'exact': {
261
+ '2': BadRequest,
262
+ '3': OrderNotFound,
263
+ '4': BadRequest, // {"errorCode":4,"message":"Missing accountId","status":"failed"}
264
+ },
265
+ 'broad': {},
266
+ },
267
+ 'precisionMode': TICK_SIZE,
268
+ });
269
+ }
270
+ getAccountId() {
271
+ this.checkRequiredCredentials();
272
+ const id = this.parseToInt(this.accountId);
273
+ return id;
274
+ }
275
+ parseMarket(market) {
276
+ const marketId = this.safeString(market, 'symbol');
277
+ const numericId = this.safeNumber(market, 'id');
278
+ const marketType = 'swap';
279
+ const baseId = this.safeString(market, 'underlyingSymbol');
280
+ const quoteId = this.safeString(market, 'settlementSymbol');
281
+ const base = this.safeCurrencyCode(baseId);
282
+ const quote = this.safeCurrencyCode(quoteId);
283
+ const settleId = this.safeString(market, 'settlementSymbol');
284
+ const settle = this.safeCurrencyCode(settleId);
285
+ const symbol = base + '/' + quote + ':' + settle;
286
+ const created = this.safeIntegerProduct(market, 'marketCreationTimestamp', 1000);
287
+ return {
288
+ 'id': marketId,
289
+ 'numericId': numericId,
290
+ 'symbol': symbol,
291
+ 'base': base,
292
+ 'quote': quote,
293
+ 'settle': settle,
294
+ 'baseId': baseId,
295
+ 'quoteId': quoteId,
296
+ 'settleId': settleId,
297
+ 'type': marketType,
298
+ 'spot': false,
299
+ 'margin': false,
300
+ 'swap': true,
301
+ 'future': false,
302
+ 'option': false,
303
+ 'active': this.safeString(market, 'status') === 'LIVE',
304
+ 'contract': true,
305
+ 'linear': true,
306
+ 'inverse': false,
307
+ 'contractSize': this.parseNumber('1'),
308
+ 'expiry': undefined,
309
+ 'expiryDatetime': undefined,
310
+ 'strike': undefined,
311
+ 'optionType': undefined,
312
+ 'precision': {
313
+ 'amount': this.parseNumber(this.parsePrecision(this.safeString(market, 'underlyingDecimals'))),
314
+ 'price': this.parseNumber(this.safeList(market, 'orderbookGranularities')[0]) / 10000.0,
315
+ },
316
+ 'limits': {
317
+ 'leverage': {
318
+ 'min': undefined,
319
+ 'max': undefined,
320
+ },
321
+ 'amount': {
322
+ 'min': undefined,
323
+ 'max': undefined,
324
+ },
325
+ 'price': {
326
+ 'min': undefined,
327
+ 'max': undefined,
328
+ },
329
+ 'cost': {
330
+ 'min': this.safeNumber(market, 'minNotional'),
331
+ 'max': undefined,
332
+ },
333
+ },
334
+ 'created': created,
335
+ 'info': market,
336
+ };
337
+ }
338
+ /**
339
+ * @method
340
+ * @name hibachi#fetchMarkets
341
+ * @description retrieves data on all markets for hibachi
342
+ * @see https://api-doc.hibachi.xyz/#183981da-8df5-40a0-a155-da15015dd536
343
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
344
+ * @returns {object[]} an array of objects representing market data
345
+ */
346
+ async fetchMarkets(params = {}) {
347
+ const response = await this.publicGetMarketExchangeInfo(params);
348
+ // {
349
+ // "displayName": "ETH/USDT Perps",
350
+ // "id": 1,
351
+ // "maintenanceFactorForPositions": "0.030000",
352
+ // "marketCloseTimestamp": null,
353
+ // "marketOpenTimestamp": null,
354
+ // "minNotional": "1",
355
+ // "minOrderSize": "0.000000001",
356
+ // "orderbookGranularities": [
357
+ // "0.01",
358
+ // "0.1",
359
+ // "1",
360
+ // "10"
361
+ // ],
362
+ // "riskFactorForOrders": "0.066667",
363
+ // "riskFactorForPositions": "0.030000",
364
+ // "settlementDecimals": 6,
365
+ // "settlementSymbol": "USDT",
366
+ // "status": "LIVE",
367
+ // "stepSize": "0.000000001",
368
+ // "symbol": "ETH/USDT-P",
369
+ // "tickSize": "0.000001",
370
+ // "underlyingDecimals": 9,
371
+ // "underlyingSymbol": "ETH"
372
+ // },
373
+ const rows = this.safeList(response, 'futureContracts');
374
+ return this.parseMarkets(rows);
375
+ }
376
+ /**
377
+ * @method
378
+ * @name hibachi#fetchCurrencies
379
+ * @description fetches all available currencies on an exchange
380
+ * @see https://api-doc.hibachi.xyz/#183981da-8df5-40a0-a155-da15015dd536
381
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
382
+ * @returns {object} an associative dictionary of currencies
383
+ */
384
+ async fetchCurrencies(params = {}) {
385
+ // Hibachi only supports USDT on Arbitrum at this time
386
+ // We don't have an API endpoint to expose this information yet
387
+ const result = {};
388
+ const networks = {};
389
+ const networkId = 'ARBITRUM';
390
+ networks[networkId] = {
391
+ 'id': networkId,
392
+ 'network': networkId,
393
+ 'limits': {
394
+ 'withdraw': {
395
+ 'min': undefined,
396
+ 'max': undefined,
397
+ },
398
+ 'deposit': {
399
+ 'min': undefined,
400
+ 'max': undefined,
401
+ },
402
+ },
403
+ 'active': undefined,
404
+ 'deposit': undefined,
405
+ 'withdraw': undefined,
406
+ 'info': {},
407
+ };
408
+ const code = this.safeCurrencyCode('USDT');
409
+ result[code] = this.safeCurrencyStructure({
410
+ 'id': 'USDT',
411
+ 'name': 'USDT',
412
+ 'type': 'fiat',
413
+ 'code': code,
414
+ 'precision': this.parseNumber('0.000001'),
415
+ 'active': true,
416
+ 'fee': undefined,
417
+ 'networks': networks,
418
+ 'deposit': true,
419
+ 'withdraw': true,
420
+ 'limits': {
421
+ 'deposit': {
422
+ 'min': undefined,
423
+ 'max': undefined,
424
+ },
425
+ 'withdraw': {
426
+ 'min': undefined,
427
+ 'max': undefined,
428
+ },
429
+ },
430
+ 'info': {},
431
+ });
432
+ return result;
433
+ }
434
+ parseBalance(response) {
435
+ const result = {
436
+ 'info': response,
437
+ };
438
+ // Hibachi only supports USDT on Arbitrum at this time
439
+ const code = this.safeCurrencyCode('USDT');
440
+ const account = this.account();
441
+ account['total'] = this.safeString(response, 'balance');
442
+ account['free'] = this.safeString(response, 'maximalWithdraw');
443
+ result[code] = account;
444
+ return this.safeBalance(result);
445
+ }
446
+ /**
447
+ * @method
448
+ * @name hibachi#fetchBalance
449
+ * @description query for balance and get the amount of funds available for trading or funds locked in orders
450
+ * @see https://api-doc.hibachi.xyz/#69aafedb-8274-4e21-bbaf-91dace8b8f31
451
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
452
+ * @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
453
+ */
454
+ async fetchBalance(params = {}) {
455
+ const request = {
456
+ 'accountId': this.getAccountId(),
457
+ };
458
+ const response = await this.privateGetTradeAccountInfo(this.extend(request, params));
459
+ //
460
+ // {
461
+ // assets: [ { quantity: '3.000000', symbol: 'USDT' } ],
462
+ // balance: '3.000000',
463
+ // maximalWithdraw: '3.000000',
464
+ // numFreeTransfersRemaining: '100',
465
+ // positions: [],
466
+ // totalOrderNotional: '0.000000',
467
+ // totalPositionNotional: '0.000000',
468
+ // totalUnrealizedFundingPnl: '0.000000',
469
+ // totalUnrealizedPnl: '0.000000',
470
+ // totalUnrealizedTradingPnl: '0.000000',
471
+ // tradeMakerFeeRate: '0.00000000',
472
+ // tradeTakerFeeRate: '0.00020000'
473
+ // }
474
+ //
475
+ return this.parseBalance(response);
476
+ }
477
+ parseTicker(ticker, market = undefined) {
478
+ const prices = this.safeDict(ticker, 'prices');
479
+ const stats = this.safeDict(ticker, 'stats');
480
+ const bid = this.safeNumber(prices, 'bidPrice');
481
+ const ask = this.safeNumber(prices, 'askPrice');
482
+ const last = this.safeNumber(prices, 'tradePrice');
483
+ const high = this.safeNumber(stats, 'high24h');
484
+ const low = this.safeNumber(stats, 'low24h');
485
+ const volume = this.safeNumber(stats, 'volume24h');
486
+ return this.safeTicker({
487
+ 'symbol': this.safeSymbol(undefined, market),
488
+ 'timestamp': undefined,
489
+ 'datetime': undefined,
490
+ 'bid': bid,
491
+ 'ask': ask,
492
+ 'last': last,
493
+ 'high': high,
494
+ 'low': low,
495
+ 'bidVolume': undefined,
496
+ 'askVolume': undefined,
497
+ 'vwap': undefined,
498
+ 'open': undefined,
499
+ 'close': last,
500
+ 'previousClose': undefined,
501
+ 'change': undefined,
502
+ 'percentage': undefined,
503
+ 'average': undefined,
504
+ 'baseVolume': undefined,
505
+ 'quoteVolume': volume,
506
+ 'info': ticker,
507
+ }, market);
508
+ }
509
+ parseTrade(trade, market = undefined) {
510
+ // public fetchTrades:
511
+ // {
512
+ // "price": "3512.431902",
513
+ // "quantity": "1.414780098",
514
+ // "takerSide": "Buy",
515
+ // "timestamp": 1712692147
516
+ // }
517
+ //
518
+ // private fetchMyTrades:
519
+ // {
520
+ // "askAccountId": 221,
521
+ // "askOrderId": 589168494921909200,
522
+ // "bidAccountId": 132,
523
+ // "bidOrderId": 589168494829895700,
524
+ // "fee": "0.000477",
525
+ // "id": 199511136,
526
+ // "orderType": "MARKET",
527
+ // "price": "119257.90000",
528
+ // "quantity": "0.0000200000",
529
+ // "realizedPnl": "-0.000352",
530
+ // "side": "Sell",
531
+ // "symbol": "BTC/USDT-P",
532
+ // "timestamp": 1752543391
533
+ // }
534
+ const marketId = this.safeString(trade, 'symbol');
535
+ market = this.safeMarket(marketId, market);
536
+ const symbol = market['symbol'];
537
+ const id = this.safeString(trade, 'id');
538
+ const price = this.safeString(trade, 'price');
539
+ const amount = this.safeString(trade, 'quantity');
540
+ const timestamp = this.safeIntegerProduct(trade, 'timestamp', 1000);
541
+ const cost = Precise.stringMul(price, amount);
542
+ let side = undefined;
543
+ let fee = undefined;
544
+ let orderType = undefined;
545
+ let orderId = undefined;
546
+ let takerOrMaker = undefined;
547
+ if (id === undefined) {
548
+ // public trades
549
+ side = this.safeStringLower(trade, 'takerSide');
550
+ takerOrMaker = 'taker';
551
+ }
552
+ else {
553
+ // private trades
554
+ side = this.safeStringLower(trade, 'side');
555
+ fee = { 'cost': this.safeString(trade, 'fee'), 'currency': 'USDT' };
556
+ orderType = this.safeStringLower(trade, 'orderType');
557
+ if (side === 'buy') {
558
+ orderId = this.safeString(trade, 'bidOrderId');
559
+ }
560
+ else {
561
+ orderId = this.safeString(trade, 'askOrderId');
562
+ }
563
+ }
564
+ return this.safeTrade({
565
+ 'id': id,
566
+ 'timestamp': timestamp,
567
+ 'datetime': this.iso8601(timestamp),
568
+ 'symbol': symbol,
569
+ 'side': side,
570
+ 'price': price,
571
+ 'amount': amount,
572
+ 'cost': cost,
573
+ 'order': orderId,
574
+ 'takerOrMaker': takerOrMaker,
575
+ 'type': orderType,
576
+ 'fee': fee,
577
+ 'info': trade,
578
+ }, market);
579
+ }
580
+ /**
581
+ * @method
582
+ * @name hibachi#fetchTrades
583
+ * @description get the list of most recent trades for a particular symbol
584
+ * @see https://api-doc.hibachi.xyz/#86a53bc1-d3bb-4b93-8a11-7034d4698caa
585
+ * @param {string} symbol unified market symbol
586
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
587
+ * @param {int} [limit] the maximum amount of trades to fetch (maximum value is 100)
588
+ * @param {object} [params] extra parameters specific to the hibachi api endpoint
589
+ * @returns {object[]} a list of recent [trade structures]
590
+ */
591
+ async fetchTrades(symbol, since = undefined, limit = undefined, params = {}) {
592
+ await this.loadMarkets();
593
+ const market = this.market(symbol);
594
+ const request = {
595
+ 'symbol': market['id'],
596
+ };
597
+ const response = await this.publicGetMarketDataTrades(this.extend(request, params));
598
+ //
599
+ // {
600
+ // "trades": [
601
+ // {
602
+ // "price": "111091.38352",
603
+ // "quantity": "0.0090090093",
604
+ // "takerSide": "Buy",
605
+ // "timestamp": 1752095479
606
+ // },
607
+ // ]
608
+ // }
609
+ //
610
+ const trades = this.safeList(response, 'trades', []);
611
+ return this.parseTrades(trades, market);
612
+ }
613
+ /**
614
+ * @method
615
+ * @name hibachi#fetchTicker
616
+ * @see https://api-doc.hibachi.xyz/#4abb30c4-e5c7-4b0f-9ade-790111dbfa47
617
+ * @description fetches a price ticker and the related information for the past 24h
618
+ * @param {string} symbol unified symbol of the market
619
+ * @param {object} [params] extra parameters specific to the hibachi api endpoint
620
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
621
+ */
622
+ async fetchTicker(symbol, params = {}) {
623
+ await this.loadMarkets();
624
+ const market = this.market(symbol);
625
+ const request = {
626
+ 'symbol': market['id'],
627
+ };
628
+ const rawPromises = [
629
+ this.publicGetMarketDataPrices(this.extend(request, params)),
630
+ this.publicGetMarketDataStats(this.extend(request, params)),
631
+ ];
632
+ const promises = await Promise.all(rawPromises);
633
+ const pricesResponse = promises[0];
634
+ // {
635
+ // "askPrice": "3514.650296",
636
+ // "bidPrice": "3513.596112",
637
+ // "fundingRateEstimation": {
638
+ // "estimatedFundingRate": "0.000001",
639
+ // "nextFundingTimestamp": 1712707200
640
+ // },
641
+ // "markPrice": "3514.288858",
642
+ // "spotPrice": "3514.715000",
643
+ // "symbol": "ETH/USDT-P",
644
+ // "tradePrice": "2372.746570"
645
+ // }
646
+ const statsResponse = promises[1];
647
+ // {
648
+ // "high24h": "3819.507827",
649
+ // "low24h": "3754.474162",
650
+ // "symbol": "ETH/USDT-P",
651
+ // "volume24h": "23554.858590416"
652
+ // }
653
+ const ticker = {
654
+ 'prices': pricesResponse,
655
+ 'stats': statsResponse,
656
+ };
657
+ return this.parseTicker(ticker, market);
658
+ }
659
+ parseOrderStatus(status) {
660
+ const statuses = {
661
+ 'PENDING': 'open',
662
+ 'CHILD_PENDING': 'open',
663
+ 'SCHEDULED_TWAP': 'open',
664
+ 'PLACED': 'open',
665
+ 'PARTIALLY_FILLED': 'open',
666
+ 'FILLED': 'closed',
667
+ 'CANCELLED': 'canceled',
668
+ 'REJECTED': 'rejected',
669
+ };
670
+ return this.safeString(statuses, status, status);
671
+ }
672
+ parseOrder(order, market = undefined) {
673
+ const marketId = this.safeString(order, 'symbol');
674
+ market = this.safeMarket(marketId, market);
675
+ const status = this.safeString(order, 'status');
676
+ const type = this.safeStringLower(order, 'orderType');
677
+ const price = this.safeString(order, 'price');
678
+ const rawSide = this.safeString(order, 'side');
679
+ let side = undefined;
680
+ if (rawSide === 'BID') {
681
+ side = 'buy';
682
+ }
683
+ else if (rawSide === 'ASK') {
684
+ side = 'sell';
685
+ }
686
+ const amount = this.safeString(order, 'totalQuantity');
687
+ const remaining = this.safeString(order, 'availableQuantity');
688
+ const totalQuantity = this.safeString(order, 'totalQuantity');
689
+ const availableQuantity = this.safeString(order, 'availableQuantity');
690
+ let filled = undefined;
691
+ if (totalQuantity !== undefined && availableQuantity !== undefined) {
692
+ filled = Precise.stringSub(totalQuantity, availableQuantity);
693
+ }
694
+ let timeInForce = 'GTC';
695
+ const orderFlags = this.safeValue(order, 'orderFlags');
696
+ let postOnly = false;
697
+ let reduceOnly = false;
698
+ if (orderFlags === 'POST_ONLY') {
699
+ timeInForce = 'PO';
700
+ postOnly = true;
701
+ }
702
+ else if (orderFlags === 'IOC') {
703
+ timeInForce = 'IOC';
704
+ }
705
+ else if (orderFlags === 'REDUCE_ONLY') {
706
+ reduceOnly = true;
707
+ }
708
+ return this.safeOrder({
709
+ 'info': order,
710
+ 'id': this.safeString(order, 'orderId'),
711
+ 'clientOrderId': undefined,
712
+ 'datetime': undefined,
713
+ 'timestamp': undefined,
714
+ 'lastTradeTimestamp': undefined,
715
+ 'lastUpdateTimestamp': undefined,
716
+ 'status': this.parseOrderStatus(status),
717
+ 'symbol': market['symbol'],
718
+ 'type': type,
719
+ 'timeInForce': timeInForce,
720
+ 'side': side,
721
+ 'price': price,
722
+ 'average': undefined,
723
+ 'amount': amount,
724
+ 'filled': filled,
725
+ 'remaining': remaining,
726
+ 'cost': undefined,
727
+ 'trades': undefined,
728
+ 'fee': undefined,
729
+ 'reduceOnly': reduceOnly,
730
+ 'postOnly': postOnly,
731
+ 'triggerPrice': this.safeNumber(order, 'triggerPrice'),
732
+ }, market);
733
+ }
734
+ /**
735
+ * @method
736
+ * @name hibachi#fetchOrder
737
+ * @description fetches information on an order made by the user
738
+ * @see https://api-doc.hibachi.xyz/#096a8854-b918-4de8-8731-b2a28d26b96d
739
+ * @param {string} id the order id
740
+ * @param {string} symbol unified symbol of the market the order was made in
741
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
742
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
743
+ */
744
+ async fetchOrder(id, symbol = undefined, params = {}) {
745
+ await this.loadMarkets();
746
+ let market = undefined;
747
+ if (symbol !== undefined) {
748
+ market = this.market(symbol);
749
+ }
750
+ const request = {
751
+ 'orderId': id,
752
+ 'accountId': this.getAccountId(),
753
+ };
754
+ const response = await this.privateGetTradeOrder(this.extend(request, params));
755
+ return this.parseOrder(response, market);
756
+ }
757
+ /**
758
+ * @method
759
+ * @name hibachi#fetchTradingFees
760
+ * @description fetch the trading fee
761
+ * @param params extra parameters
762
+ * @returns {object} a map of market symbols to [fee structures]{@link https://docs.ccxt.com/#/?id=fee-structure}
763
+ */
764
+ async fetchTradingFees(params = {}) {
765
+ await this.loadMarkets();
766
+ const request = {
767
+ 'accountId': this.getAccountId(),
768
+ };
769
+ const response = await this.privateGetTradeAccountInfo(this.extend(request, params));
770
+ // {
771
+ // "tradeMakerFeeRate": "0.00000000",
772
+ // "tradeTakerFeeRate": "0.00020000"
773
+ // },
774
+ const makerFeeRate = this.safeNumber(response, 'tradeMakerFeeRate');
775
+ const takerFeeRate = this.safeNumber(response, 'tradeTakerFeeRate');
776
+ const result = {};
777
+ for (let i = 0; i < this.symbols.length; i++) {
778
+ const symbol = this.symbols[i];
779
+ result[symbol] = {
780
+ 'info': response,
781
+ 'symbol': symbol,
782
+ 'maker': makerFeeRate,
783
+ 'taker': takerFeeRate,
784
+ 'percentage': true,
785
+ };
786
+ }
787
+ return result;
788
+ }
789
+ orderMessage(market, nonce, feeRate, type, side, amount, price = undefined) {
790
+ let sideInternal = 0;
791
+ if (side === 'sell') {
792
+ sideInternal = 0;
793
+ }
794
+ else if (side === 'buy') {
795
+ sideInternal = 1;
796
+ }
797
+ // Converting them to internal representation:
798
+ // - Quantity: Internal = External * (10^underlyingDecimals)
799
+ // - Price: Internal = External * (2^32) * (10^(settlementDecimals-underlyingDecimals))
800
+ // - FeeRate: Internal = External * (10^8)
801
+ const amountStr = this.amountToPrecision(this.safeString(market, 'symbol'), amount);
802
+ const feeRateStr = this.numberToString(feeRate);
803
+ const info = this.safeDict(market, 'info');
804
+ const underlying = '1e' + this.safeString(info, 'underlyingDecimals');
805
+ const settlement = '1e' + this.safeString(info, 'settlementDecimals');
806
+ const one = '1';
807
+ const feeRateFactor = '100000000'; // 10^8
808
+ const priceFactor = '4294967296'; // 2^32
809
+ const quantityInternal = Precise.stringDiv(Precise.stringMul(amountStr, underlying), one, 0);
810
+ const feeRateInternal = Precise.stringDiv(Precise.stringMul(feeRateStr, feeRateFactor), one, 0);
811
+ // Encoding
812
+ const nonce16 = this.intToBase16(nonce);
813
+ const noncePadded = nonce16.padStart(16, '0');
814
+ const encodedNonce = this.base16ToBinary(noncePadded);
815
+ const numericId = this.intToBase16(this.safeInteger(market, 'numericId'));
816
+ const numericIdPadded = numericId.padStart(8, '0');
817
+ const encodedMarketId = this.base16ToBinary(numericIdPadded);
818
+ const quantity16 = this.intToBase16(this.parseToInt(quantityInternal));
819
+ const quantityPadded = quantity16.padStart(16, '0');
820
+ const encodedQuantity = this.base16ToBinary(quantityPadded);
821
+ const sideInternal16 = this.intToBase16(sideInternal);
822
+ const sidePadded = sideInternal16.padStart(8, '0');
823
+ const encodedSide = this.base16ToBinary(sidePadded);
824
+ const feeRateInternal16 = this.intToBase16(this.parseToInt(feeRateInternal));
825
+ const feeRatePadded = feeRateInternal16.padStart(16, '0');
826
+ const encodedFeeRate = this.base16ToBinary(feeRatePadded);
827
+ let encodedPrice = this.binaryConcat();
828
+ if (type === 'limit') {
829
+ const priceStr = this.priceToPrecision(this.safeString(market, 'symbol'), price);
830
+ const priceInternal = Precise.stringDiv(Precise.stringDiv(Precise.stringMul(Precise.stringMul(priceStr, priceFactor), settlement), underlying), one, 0);
831
+ const price16 = this.intToBase16(this.parseToInt(priceInternal));
832
+ const pricePadded = price16.padStart(16, '0');
833
+ encodedPrice = this.base16ToBinary(pricePadded);
834
+ }
835
+ const message = this.binaryConcat(encodedNonce, encodedMarketId, encodedQuantity, encodedSide, encodedPrice, encodedFeeRate);
836
+ return message;
837
+ }
838
+ createOrderRequest(nonce, symbol, type, side, amount, price = undefined, params = {}) {
839
+ const market = this.market(symbol);
840
+ const feeRate = Math.max(this.safeNumber(market, 'taker'), this.safeNumber(market, 'maker'));
841
+ let sideInternal = '';
842
+ if (side === 'sell') {
843
+ sideInternal = 'ASK';
844
+ }
845
+ else if (side === 'buy') {
846
+ sideInternal = 'BID';
847
+ }
848
+ let priceInternal = '';
849
+ if (price) {
850
+ priceInternal = this.priceToPrecision(symbol, price);
851
+ }
852
+ const message = this.orderMessage(market, nonce, feeRate, type, side, amount, price);
853
+ const signature = this.signMessage(message, this.privateKey);
854
+ const request = {
855
+ 'symbol': this.safeString(market, 'id'),
856
+ 'nonce': nonce,
857
+ 'side': sideInternal,
858
+ 'orderType': type.toUpperCase(),
859
+ 'quantity': this.amountToPrecision(symbol, amount),
860
+ 'price': priceInternal,
861
+ 'signature': signature,
862
+ 'maxFeesPercent': this.numberToString(feeRate),
863
+ };
864
+ const postOnly = this.isPostOnly(type.toUpperCase() === 'MARKET', undefined, params);
865
+ const reduceOnly = this.safeBool2(params, 'reduceOnly', 'reduce_only');
866
+ const timeInForce = this.safeStringLower(params, 'timeInForce');
867
+ const triggerPrice = this.safeString2(params, 'triggerPrice', 'stopPrice');
868
+ if (postOnly) {
869
+ request['orderFlags'] = 'POST_ONLY';
870
+ }
871
+ else if (timeInForce === 'ioc') {
872
+ request['orderFlags'] = 'IOC';
873
+ }
874
+ else if (reduceOnly) {
875
+ request['orderFlags'] = 'REDUCE_ONLY';
876
+ }
877
+ if (triggerPrice !== undefined) {
878
+ request['triggerPrice'] = triggerPrice;
879
+ }
880
+ params = this.omit(params, ['reduceOnly', 'reduce_only', 'postOnly', 'timeInForce', 'stopPrice', 'triggerPrice']);
881
+ return this.extend(request, params);
882
+ }
883
+ /**
884
+ * @method
885
+ * @name hibachi#createOrder
886
+ * @description create a trade order
887
+ * @see https://api-doc.hibachi.xyz/#00f6d5ad-5275-41cb-a1a8-19ed5d142124
888
+ * @param {string} symbol unified symbol of the market to create an order in
889
+ * @param {string} type 'market' or 'limit'
890
+ * @param {string} side 'buy' or 'sell'
891
+ * @param {float} amount how much of currency you want to trade in units of base currency
892
+ * @param {float} [price] the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
893
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
894
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
895
+ */
896
+ async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
897
+ await this.loadMarkets();
898
+ const nonce = this.nonce();
899
+ const request = this.createOrderRequest(nonce, symbol, type, side, amount, price, params);
900
+ request['accountId'] = this.getAccountId();
901
+ const response = await this.privatePostTradeOrder(request);
902
+ //
903
+ // {
904
+ // "orderId": "578721673790138368"
905
+ // }
906
+ //
907
+ return this.safeOrder({
908
+ 'id': this.safeString(response, 'orderId'),
909
+ 'status': 'pending',
910
+ });
911
+ }
912
+ /**
913
+ * @method
914
+ * @name hibachi#createOrders
915
+ * @description *contract only* create a list of trade orders
916
+ * @see https://api-doc.hibachi.xyz/#c2840b9b-f02c-44ed-937d-dc2819f135b4
917
+ * @param {Array} orders list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
918
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
919
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
920
+ */
921
+ async createOrders(orders, params = {}) {
922
+ await this.loadMarkets();
923
+ const nonce = this.nonce();
924
+ const requestOrders = [];
925
+ for (let i = 0; i < orders.length; i++) {
926
+ const rawOrder = orders[i];
927
+ const symbol = this.safeString(rawOrder, 'symbol');
928
+ const type = this.safeString(rawOrder, 'type');
929
+ const side = this.safeString(rawOrder, 'side');
930
+ const amount = this.safeValue(rawOrder, 'amount');
931
+ const price = this.safeValue(rawOrder, 'price');
932
+ const orderParams = this.safeDict(rawOrder, 'params', {});
933
+ const orderRequest = this.createOrderRequest(nonce + i, symbol, type, side, amount, price, orderParams);
934
+ orderRequest['action'] = 'place';
935
+ requestOrders.push(orderRequest);
936
+ }
937
+ const request = {
938
+ 'accountId': this.getAccountId(),
939
+ 'orders': requestOrders,
940
+ };
941
+ const response = await this.privatePostTradeOrders(this.extend(request, params));
942
+ //
943
+ // { "orders": [ { nonce: '1754349993908', orderId: '589642085255349248' } ] }
944
+ //
945
+ const ret = [];
946
+ const responseOrders = this.safeList(response, 'orders');
947
+ for (let i = 0; i < responseOrders.length; i++) {
948
+ const responseOrder = responseOrders[i];
949
+ ret.push(this.safeOrder({
950
+ 'info': responseOrder,
951
+ 'id': this.safeString(responseOrder, 'orderId'),
952
+ 'status': 'pending',
953
+ }));
954
+ }
955
+ return ret;
956
+ }
957
+ editOrderRequest(nonce, id, symbol, type, side, amount = undefined, price = undefined, params = {}) {
958
+ const market = this.market(symbol);
959
+ const feeRate = Math.max(this.safeNumber(market, 'taker'), this.safeNumber(market, 'maker'));
960
+ const message = this.orderMessage(market, nonce, feeRate, type, side, amount, price);
961
+ const signature = this.signMessage(message, this.privateKey);
962
+ const request = {
963
+ 'orderId': id,
964
+ 'nonce': nonce,
965
+ 'updatedQuantity': this.amountToPrecision(symbol, amount),
966
+ 'updatedPrice': this.priceToPrecision(symbol, price),
967
+ 'maxFeesPercent': this.numberToString(feeRate),
968
+ 'signature': signature,
969
+ };
970
+ return this.extend(request, params);
971
+ }
972
+ /**
973
+ * @method
974
+ * @name hibachi#editOrder
975
+ * @description edit a limit order that is not matched
976
+ * @see https://api-doc.hibachi.xyz/#94d2cdaf-1c71-440f-a981-da1112824810
977
+ * @param {string} id order id
978
+ * @param {string} symbol unified symbol of the market to create an order in
979
+ * @param {string} type must be 'limit'
980
+ * @param {string} side 'buy' or 'sell', should stay the same with original side
981
+ * @param {float} amount how much of currency you want to trade in units of base currency
982
+ * @param {float} [price] the price at which the order is to be fulfilled, in units of the quote currency
983
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
984
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
985
+ */
986
+ async editOrder(id, symbol, type, side, amount = undefined, price = undefined, params = {}) {
987
+ await this.loadMarkets();
988
+ const nonce = this.nonce();
989
+ const request = this.editOrderRequest(nonce, id, symbol, type, side, amount, price, params);
990
+ request['accountId'] = this.getAccountId();
991
+ await this.privatePutTradeOrder(request);
992
+ // At this time the response body is empty. A 200 response means the update request is accepted and sent to process
993
+ //
994
+ // {}
995
+ //
996
+ return this.safeOrder({
997
+ 'id': id,
998
+ 'status': 'pending',
999
+ });
1000
+ }
1001
+ /**
1002
+ * @method
1003
+ * @name hibachi#editOrders
1004
+ * @description edit a list of trade orders
1005
+ * @see https://api-doc.hibachi.xyz/#c2840b9b-f02c-44ed-937d-dc2819f135b4
1006
+ * @param {Array} orders list of orders to edit, each object should contain the parameters required by editOrder, namely id, symbol, type, side, amount, price and params
1007
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1008
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1009
+ */
1010
+ async editOrders(orders, params = {}) {
1011
+ await this.loadMarkets();
1012
+ const nonce = this.nonce();
1013
+ const requestOrders = [];
1014
+ for (let i = 0; i < orders.length; i++) {
1015
+ const rawOrder = orders[i];
1016
+ const id = this.safeString(rawOrder, 'id');
1017
+ const symbol = this.safeString(rawOrder, 'symbol');
1018
+ const type = this.safeString(rawOrder, 'type');
1019
+ const side = this.safeString(rawOrder, 'side');
1020
+ const amount = this.safeValue(rawOrder, 'amount');
1021
+ const price = this.safeValue(rawOrder, 'price');
1022
+ const orderParams = this.safeDict(rawOrder, 'params', {});
1023
+ const orderRequest = this.editOrderRequest(nonce + i, id, symbol, type, side, amount, price, orderParams);
1024
+ orderRequest['action'] = 'modify';
1025
+ requestOrders.push(orderRequest);
1026
+ }
1027
+ const request = {
1028
+ 'accountId': this.getAccountId(),
1029
+ 'orders': requestOrders,
1030
+ };
1031
+ const response = await this.privatePostTradeOrders(this.extend(request, params));
1032
+ //
1033
+ // { "orders": [ { "orderId": "589636801329628160" } ] }
1034
+ //
1035
+ const ret = [];
1036
+ const responseOrders = this.safeList(response, 'orders');
1037
+ for (let i = 0; i < responseOrders.length; i++) {
1038
+ const responseOrder = responseOrders[i];
1039
+ ret.push(this.safeOrder({
1040
+ 'info': responseOrder,
1041
+ 'id': this.safeString(responseOrder, 'orderId'),
1042
+ 'status': 'pending',
1043
+ }));
1044
+ }
1045
+ return ret;
1046
+ }
1047
+ cancelOrderRequest(id) {
1048
+ const bigid = this.convertToBigInt(id);
1049
+ const idbase16 = this.intToBase16(bigid);
1050
+ const idPadded = idbase16.padStart(16, '0');
1051
+ const message = this.base16ToBinary(idPadded);
1052
+ const signature = this.signMessage(message, this.privateKey);
1053
+ return {
1054
+ 'orderId': id,
1055
+ 'signature': signature,
1056
+ };
1057
+ }
1058
+ /**
1059
+ * @method
1060
+ * @name hibachi#cancelOrder
1061
+ * @see https://api-doc.hibachi.xyz/#e99c4f48-e610-4b7c-b7f6-1b4bb7af0271
1062
+ * @description cancels an open order
1063
+ * @param {string} id order id
1064
+ * @param {string} symbol is unused
1065
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1066
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1067
+ */
1068
+ async cancelOrder(id, symbol = undefined, params = {}) {
1069
+ const request = this.cancelOrderRequest(id);
1070
+ request['accountId'] = this.getAccountId();
1071
+ const response = await this.privateDeleteTradeOrder(this.extend(request, params));
1072
+ // At this time the response body is empty. A 200 response means the cancel request is accepted and sent to cancel
1073
+ //
1074
+ // {}
1075
+ //
1076
+ return this.safeOrder({
1077
+ 'info': response,
1078
+ 'id': id,
1079
+ 'status': 'canceled',
1080
+ });
1081
+ }
1082
+ /**
1083
+ * @method
1084
+ * @name hibachi#cancelOrders
1085
+ * @description cancel multiple orders
1086
+ * @see https://api-doc.hibachi.xyz/#c2840b9b-f02c-44ed-937d-dc2819f135b4
1087
+ * @param {string[]} ids order ids
1088
+ * @param {string} [symbol] unified market symbol, unused
1089
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1090
+ * @returns {object} an list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1091
+ */
1092
+ async cancelOrders(ids, symbol = undefined, params = {}) {
1093
+ const orders = [];
1094
+ for (let i = 0; i < ids.length; i++) {
1095
+ const orderRequest = this.cancelOrderRequest(ids[i]);
1096
+ orderRequest['action'] = 'cancel';
1097
+ orders.push(orderRequest);
1098
+ }
1099
+ const request = {
1100
+ 'accountId': this.getAccountId(),
1101
+ 'orders': orders,
1102
+ };
1103
+ const response = await this.privatePostTradeOrders(this.extend(request, params));
1104
+ //
1105
+ // { "orders": [ { "orderId": "589636801329628160" } ] }
1106
+ //
1107
+ const ret = [];
1108
+ const responseOrders = this.safeList(response, 'orders');
1109
+ for (let i = 0; i < responseOrders.length; i++) {
1110
+ const responseOrder = responseOrders[i];
1111
+ ret.push(this.safeOrder({
1112
+ 'info': responseOrder,
1113
+ 'id': this.safeString(responseOrder, 'orderId'),
1114
+ 'status': 'canceled',
1115
+ }));
1116
+ }
1117
+ return ret;
1118
+ }
1119
+ /**
1120
+ * @method
1121
+ * @name hibachi#cancelAllOrders
1122
+ * @see https://api-doc.hibachi.xyz/#8ed24695-016e-49b2-a72d-7511ca921fee
1123
+ * @description cancel all open orders in a market
1124
+ * @param {string} symbol unified market symbol
1125
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1126
+ * @returns {object} an list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1127
+ */
1128
+ async cancelAllOrders(symbol = undefined, params = {}) {
1129
+ await this.loadMarkets();
1130
+ const nonce = this.nonce();
1131
+ const nonce16 = this.intToBase16(nonce);
1132
+ const noncePadded = nonce16.padStart(16, '0');
1133
+ const message = this.base16ToBinary(noncePadded);
1134
+ const signature = this.signMessage(message, this.privateKey);
1135
+ const request = {
1136
+ 'accountId': this.getAccountId(),
1137
+ 'nonce': nonce,
1138
+ 'signature': signature,
1139
+ };
1140
+ if (symbol !== undefined) {
1141
+ const market = this.market(symbol);
1142
+ request['contractId'] = this.safeInteger(market, 'numericId');
1143
+ }
1144
+ const response = await this.privateDeleteTradeOrders(this.extend(request, params));
1145
+ // At this time the response body is empty. A 200 response means the cancel request is accepted and sent to process
1146
+ //
1147
+ // {}
1148
+ //
1149
+ return [
1150
+ this.safeOrder({
1151
+ 'info': response,
1152
+ }),
1153
+ ];
1154
+ }
1155
+ encodeWithdrawMessage(amount, maxFees, address) {
1156
+ // Converting them to internal representation:
1157
+ // - Quantity: Internal = External * (10^6)
1158
+ // - maxFees: Internal = External * (10^6)
1159
+ // We only have USDT as our currency as this time
1160
+ const USDTAssetId = 1;
1161
+ const USDTFactor = '1000000';
1162
+ const amountStr = this.numberToString(amount);
1163
+ const maxFeesStr = this.numberToString(maxFees);
1164
+ const one = '1';
1165
+ const quantityInternal = Precise.stringDiv(Precise.stringMul(amountStr, USDTFactor), one, 0);
1166
+ const maxFeesInternal = Precise.stringDiv(Precise.stringMul(maxFeesStr, USDTFactor), one, 0);
1167
+ // Encoding
1168
+ const usdtAsset16 = this.intToBase16(USDTAssetId);
1169
+ const usdtAssetPadded = usdtAsset16.padStart(8, '0');
1170
+ const encodedAssetId = this.base16ToBinary(usdtAssetPadded);
1171
+ const quantity16 = this.intToBase16(this.parseToInt(quantityInternal));
1172
+ const quantityPadded = quantity16.padStart(16, '0');
1173
+ const encodedQuantity = this.base16ToBinary(quantityPadded);
1174
+ const maxFees16 = this.intToBase16(this.parseToInt(maxFeesInternal));
1175
+ const maxFeesPadded = maxFees16.padStart(16, '0');
1176
+ const encodedMaxFees = this.base16ToBinary(maxFeesPadded);
1177
+ const encodedAddress = this.base16ToBinary(address);
1178
+ const message = this.binaryConcat(encodedAssetId, encodedQuantity, encodedMaxFees, encodedAddress);
1179
+ return message;
1180
+ }
1181
+ /**
1182
+ * @method
1183
+ * @name hibachi#withdraw
1184
+ * @description make a withdrawal
1185
+ * @see https://api-doc.hibachi.xyz/#6421625d-3e45-45fa-be9b-d2a0e780c090
1186
+ * @param {string} code unified currency code, only support USDT
1187
+ * @param {float} amount the amount to withdraw
1188
+ * @param {string} address the address to withdraw to
1189
+ * @param {string} tag
1190
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1191
+ * @returns {object} a [transaction structure]{@link https://docs.ccxt.com/#/?id=transaction-structure}
1192
+ */
1193
+ async withdraw(code, amount, address, tag = undefined, params = {}) {
1194
+ const withdrawAddress = address.slice(-40);
1195
+ // Get the withdraw fees
1196
+ const exchangeInfo = await this.publicGetMarketExchangeInfo(params);
1197
+ // {
1198
+ // "feeConfig": {
1199
+ // "depositFees": "0.004518",
1200
+ // "tradeMakerFeeRate": "0.00000000",
1201
+ // "tradeTakerFeeRate": "0.00020000",
1202
+ // "transferFeeRate": "0.00010000",
1203
+ // "withdrawalFees": "0.012050"
1204
+ // },
1205
+ // }
1206
+ const feeConfig = this.safeDict(exchangeInfo, 'feeConfig');
1207
+ const maxFees = this.safeNumber(feeConfig, 'withdrawalFees');
1208
+ // Generate the signature
1209
+ const message = this.encodeWithdrawMessage(amount, maxFees, withdrawAddress);
1210
+ const signature = this.signMessage(message, this.privateKey);
1211
+ const request = {
1212
+ 'accountId': this.getAccountId(),
1213
+ 'coin': 'USDT',
1214
+ 'network': 'ARBITRUM',
1215
+ 'withdrawAddress': withdrawAddress,
1216
+ 'selfWithdrawal': false,
1217
+ 'quantity': this.numberToString(amount),
1218
+ 'maxFees': this.numberToString(maxFees),
1219
+ 'signature': signature,
1220
+ };
1221
+ await this.privatePostCapitalWithdraw(this.extend(request, params));
1222
+ // At this time the response body is empty. A 200 response means the withdraw request is accepted and sent to process
1223
+ //
1224
+ // {}
1225
+ //
1226
+ return {
1227
+ 'info': undefined,
1228
+ 'id': undefined,
1229
+ 'txid': undefined,
1230
+ 'timestamp': this.milliseconds(),
1231
+ 'datetime': undefined,
1232
+ 'address': undefined,
1233
+ 'addressFrom': undefined,
1234
+ 'addressTo': withdrawAddress,
1235
+ 'tag': undefined,
1236
+ 'tagFrom': undefined,
1237
+ 'tagTo': undefined,
1238
+ 'type': 'withdrawal',
1239
+ 'amount': amount,
1240
+ 'currency': code,
1241
+ 'status': 'pending',
1242
+ 'fee': { 'currency': 'USDT', 'cost': maxFees },
1243
+ 'network': 'ARBITRUM',
1244
+ 'updated': undefined,
1245
+ 'comment': undefined,
1246
+ 'internal': undefined,
1247
+ };
1248
+ }
1249
+ nonce() {
1250
+ return this.milliseconds();
1251
+ }
1252
+ signMessage(message, privateKey) {
1253
+ if (privateKey.length === 44) {
1254
+ // For Exchange Managed account, the key length is 44 and we use HMAC to sign the message
1255
+ return this.hmac(message, this.encode(privateKey), sha256, 'hex');
1256
+ }
1257
+ else {
1258
+ // For Trustless account, the key length is 66 including '0x' and we use ECDSA to sign the message
1259
+ const hash = this.hash(this.encode(message), sha256, 'hex');
1260
+ const signature = ecdsa(hash.slice(-64), privateKey.slice(-64), secp256k1, undefined);
1261
+ const r = signature['r'];
1262
+ const s = signature['s'];
1263
+ const v = signature['v'];
1264
+ return r.padStart(64, '0') + s.padStart(64, '0') + this.intToBase16(v).padStart(2, '0');
1265
+ }
1266
+ }
1267
+ /**
1268
+ * @method
1269
+ * @name hibachi#fetchOrderBook
1270
+ * @description fetches the state of the open orders on the orderbook
1271
+ * @see https://api-doc.hibachi.xyz/#4abb30c4-e5c7-4b0f-9ade-790111dbfa47
1272
+ * @param {string} symbol unified symbol of the market
1273
+ * @param {int} [limit] currently unused
1274
+ * @param {object} [params] extra parameters to be passed -- see documentation link above
1275
+ * @returns {object} A dictionary containg [orderbook information]{@link https://docs.ccxt.com/#/?id=order-book-structure}
1276
+ */
1277
+ async fetchOrderBook(symbol, limit = undefined, params = {}) {
1278
+ await this.loadMarkets();
1279
+ const market = this.market(symbol);
1280
+ const request = {
1281
+ 'symbol': market['id'],
1282
+ };
1283
+ const response = await this.publicGetMarketDataOrderbook(this.extend(request, params));
1284
+ const formattedResponse = {};
1285
+ formattedResponse['ask'] = this.safeList(this.safeDict(response, 'ask'), 'levels');
1286
+ formattedResponse['bid'] = this.safeList(this.safeDict(response, 'bid'), 'levels');
1287
+ // {
1288
+ // "ask": {
1289
+ // "endPrice": "3512.63",
1290
+ // "levels": [
1291
+ // {
1292
+ // "price": "3511.93",
1293
+ // "quantity": "0.284772482"
1294
+ // },
1295
+ // {
1296
+ // "price": "3512.28",
1297
+ // "quantity": "0.569544964"
1298
+ // },
1299
+ // {
1300
+ // "price": "3512.63",
1301
+ // "quantity": "0.854317446"
1302
+ // }
1303
+ // ],
1304
+ // "startPrice": "3511.93"
1305
+ // },
1306
+ // "bid": {
1307
+ // "endPrice": "3510.87",
1308
+ // "levels": [
1309
+ // {
1310
+ // "price": "3515.39",
1311
+ // "quantity": "2.345153070"
1312
+ // },
1313
+ // {
1314
+ // "price": "3511.22",
1315
+ // "quantity": "0.284772482"
1316
+ // },
1317
+ // {
1318
+ // "price": "3510.87",
1319
+ // "quantity": "0.569544964"
1320
+ // }
1321
+ // ],
1322
+ // "startPrice": "3515.39"
1323
+ // }
1324
+ // }
1325
+ return this.parseOrderBook(formattedResponse, symbol, this.milliseconds(), 'bid', 'ask', 'price', 'quantity');
1326
+ }
1327
+ /**
1328
+ * @method
1329
+ * @name hibachi#fetchMyTrades
1330
+ * @see https://api-doc.hibachi.xyz/#0adbf143-189f-40e0-afdc-88af4cba3c79
1331
+ * @description fetch all trades made by the user
1332
+ * @param {string} symbol unified market symbol
1333
+ * @param {int} [since] the earliest time in ms to fetch trades for
1334
+ * @param {int} [limit] the maximum number of trades structures to retrieve
1335
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1336
+ * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
1337
+ */
1338
+ async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1339
+ await this.loadMarkets();
1340
+ let market = undefined;
1341
+ if (symbol !== undefined) {
1342
+ market = this.market(symbol);
1343
+ }
1344
+ const request = { 'accountId': this.getAccountId() };
1345
+ const response = await this.privateGetTradeAccountTrades(this.extend(request, params));
1346
+ //
1347
+ // {
1348
+ // "trades": [
1349
+ // {
1350
+ // "askAccountId": 221,
1351
+ // "askOrderId": 589168494921909200,
1352
+ // "bidAccountId": 132,
1353
+ // "bidOrderId": 589168494829895700,
1354
+ // "fee": "0.000477",
1355
+ // "id": 199511136,
1356
+ // "orderType": "MARKET",
1357
+ // "price": "119257.90000",
1358
+ // "quantity": "0.0000200000",
1359
+ // "realizedPnl": "-0.000352",
1360
+ // "side": "Sell",
1361
+ // "symbol": "BTC/USDT-P",
1362
+ // "timestamp": 1752543391
1363
+ // }
1364
+ // ]
1365
+ // }
1366
+ //
1367
+ const trades = this.safeList(response, 'trades');
1368
+ return this.parseTrades(trades, market, since, limit, params);
1369
+ }
1370
+ parseOHLCV(ohlcv, market = undefined) {
1371
+ //
1372
+ // [
1373
+ // {
1374
+ // "close": "3704.751036",
1375
+ // "high": "3716.530378",
1376
+ // "interval": "1h",
1377
+ // "low": "3699.627883",
1378
+ // "open": "3716.406894",
1379
+ // "timestamp": 1712628000,
1380
+ // "volumeNotional": "1637355.846362"
1381
+ // }
1382
+ // ]
1383
+ //
1384
+ return [
1385
+ this.safeIntegerProduct(ohlcv, 'timestamp', 1000),
1386
+ this.safeNumber(ohlcv, 'open'),
1387
+ this.safeNumber(ohlcv, 'high'),
1388
+ this.safeNumber(ohlcv, 'low'),
1389
+ this.safeNumber(ohlcv, 'close'),
1390
+ this.safeNumber(ohlcv, 'volumeNotional'),
1391
+ ];
1392
+ }
1393
+ /**
1394
+ * @method
1395
+ * @name hibachi#fetchOpenOrders
1396
+ * @description fetches all current open orders
1397
+ * @see https://api-doc.hibachi.xyz/#3243f8a0-086c-44c5-ab8a-71bbb7bab403
1398
+ * @param {string} [symbol] unified market symbol to filter by
1399
+ * @param {int} [since] milisecond timestamp of the earliest order
1400
+ * @param {int} [limit] the maximum number of open orders to return
1401
+ * @param {object} [params] extra parameters
1402
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1403
+ */
1404
+ async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1405
+ await this.loadMarkets();
1406
+ let market = undefined;
1407
+ if (symbol !== undefined) {
1408
+ market = this.market(symbol);
1409
+ }
1410
+ const request = {
1411
+ 'accountId': this.getAccountId(),
1412
+ };
1413
+ const response = await this.privateGetTradeOrders(this.extend(request, params));
1414
+ // [
1415
+ // {
1416
+ // "accountId": 12452,
1417
+ // "availableQuantity": "0.0000230769",
1418
+ // "contractId": 2,
1419
+ // "creationTime": 1752684501,
1420
+ // "orderId": "589205486123876352",
1421
+ // "orderType": "LIMIT",
1422
+ // "price": "130000.00000",
1423
+ // "side": "ASK",
1424
+ // "status": "PLACED",
1425
+ // "symbol": "BTC/USDT-P",
1426
+ // "totalQuantity": "0.0000230769"
1427
+ // },
1428
+ // {
1429
+ // "accountId": 12452,
1430
+ // "availableQuantity": "1.234000000",
1431
+ // "contractId": 1,
1432
+ // "creationTime": 1752240682,
1433
+ // "orderId": "589089141754429441",
1434
+ // "orderType": "LIMIT",
1435
+ // "price": "1.234000",
1436
+ // "side": "BID",
1437
+ // "status": "PLACED",
1438
+ // "symbol": "ETH/USDT-P",
1439
+ // "totalQuantity": "1.234000000"
1440
+ // }
1441
+ // ]
1442
+ return this.parseOrders(response, market, since, limit);
1443
+ }
1444
+ /**
1445
+ * @name hibachi#fetchOHLCV
1446
+ * @see https://api-doc.hibachi.xyz/#4f0eacec-c61e-4d51-afb3-23c51c2c6bac
1447
+ * @description fetches historical candlestick data containing the close, high, low, open prices, interval and the volumeNotional
1448
+ * @param {string} symbol unified symbol of the market to fetch OHLCV data for
1449
+ * @param {string} timeframe the length of time each candle represents
1450
+ * @param {int} [since] timestamp in ms of the earliest candle to fetch
1451
+ * @param {int} [limit] the maximum amount of candles to fetch
1452
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1453
+ * @param {int} [params.until] timestamp in ms of the latest candle to fetch
1454
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
1455
+ */
1456
+ async fetchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
1457
+ await this.loadMarkets();
1458
+ const market = this.market(symbol);
1459
+ timeframe = this.safeString(this.timeframes, timeframe, timeframe);
1460
+ const request = {
1461
+ 'symbol': market['id'],
1462
+ 'interval': timeframe,
1463
+ };
1464
+ if (since !== undefined) {
1465
+ request['fromMs'] = since;
1466
+ }
1467
+ let until = undefined;
1468
+ [until, params] = this.handleOptionAndParams(params, 'fetchOHLCV', 'until');
1469
+ if (until !== undefined) {
1470
+ request['toMs'] = until;
1471
+ }
1472
+ const response = await this.publicGetMarketDataKlines(this.extend(request, params));
1473
+ //
1474
+ // [
1475
+ // {
1476
+ // "close": "3704.751036",
1477
+ // "high": "3716.530378",
1478
+ // "interval": "1h",
1479
+ // "low": "3699.627883",
1480
+ // "open": "3716.406894",
1481
+ // "timestamp": 1712628000,
1482
+ // "volumeNotional": "1637355.846362"
1483
+ // }
1484
+ // ]
1485
+ //
1486
+ const klines = this.safeList(response, 'klines', []);
1487
+ return this.parseOHLCVs(klines, market, timeframe, since, limit);
1488
+ }
1489
+ /**
1490
+ * @method
1491
+ * @name hibachi#fetchPositions
1492
+ * @description fetch all open positions
1493
+ * @see https://api-doc.hibachi.xyz/#69aafedb-8274-4e21-bbaf-91dace8b8f31
1494
+ * @param {string[]} [symbols] list of unified market symbols
1495
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1496
+ * @returns {object[]} a list of [position structure]{@link https://docs.ccxt.com/#/?id=position-structure}
1497
+ */
1498
+ async fetchPositions(symbols = undefined, params = {}) {
1499
+ await this.loadMarkets();
1500
+ symbols = this.marketSymbols(symbols);
1501
+ const request = {
1502
+ 'accountId': this.getAccountId(),
1503
+ };
1504
+ const response = await this.privateGetTradeAccountInfo(this.extend(request, params));
1505
+ //
1506
+ // {
1507
+ // "assets": [
1508
+ // {
1509
+ // "quantity": "14.130626",
1510
+ // "symbol": "USDT"
1511
+ // }
1512
+ // ],
1513
+ // "balance": "14.186087",
1514
+ // "maximalWithdraw": "4.152340",
1515
+ // "numFreeTransfersRemaining": 96,
1516
+ // "positions": [
1517
+ // {
1518
+ // "direction": "Short",
1519
+ // "entryNotional": "10.302213",
1520
+ // "notionalValue": "10.225008",
1521
+ // "quantity": "0.004310550",
1522
+ // "symbol": "ETH/USDT-P",
1523
+ // "unrealizedFundingPnl": "0.000000",
1524
+ // "unrealizedTradingPnl": "0.077204"
1525
+ // },
1526
+ // {
1527
+ // "direction": "Short",
1528
+ // "entryNotional": "2.000016",
1529
+ // "notionalValue": "1.999390",
1530
+ // "quantity": "0.0000328410",
1531
+ // "symbol": "BTC/USDT-P",
1532
+ // "unrealizedFundingPnl": "0.000000",
1533
+ // "unrealizedTradingPnl": "0.000625"
1534
+ // },
1535
+ // {
1536
+ // "direction": "Short",
1537
+ // "entryNotional": "2.000015",
1538
+ // "notionalValue": "2.022384",
1539
+ // "quantity": "0.01470600",
1540
+ // "symbol": "SOL/USDT-P",
1541
+ // "unrealizedFundingPnl": "0.000000",
1542
+ // "unrealizedTradingPnl": "-0.022369"
1543
+ // }
1544
+ // ],
1545
+ // }
1546
+ //
1547
+ const data = this.safeList(response, 'positions', []);
1548
+ return this.parsePositions(data, symbols);
1549
+ }
1550
+ parsePosition(position, market = undefined) {
1551
+ //
1552
+ // {
1553
+ // "direction": "Short",
1554
+ // "entryNotional": "10.302213",
1555
+ // "notionalValue": "10.225008",
1556
+ // "quantity": "0.004310550",
1557
+ // "symbol": "ETH/USDT-P",
1558
+ // "unrealizedFundingPnl": "0.000000",
1559
+ // "unrealizedTradingPnl": "0.077204"
1560
+ // }
1561
+ //
1562
+ const marketId = this.safeString(position, 'symbol');
1563
+ market = this.safeMarket(marketId, market);
1564
+ const symbol = market['symbol'];
1565
+ const side = this.safeStringLower(position, 'direction');
1566
+ const quantity = this.safeString(position, 'quantity');
1567
+ const unrealizedFunding = this.safeString(position, 'unrealizedFundingPnl', '0');
1568
+ const unrealizedTrading = this.safeString(position, 'unrealizedTradingPnl', '0');
1569
+ const unrealizedPnl = Precise.stringAdd(unrealizedFunding, unrealizedTrading);
1570
+ return this.safePosition({
1571
+ 'info': position,
1572
+ 'id': undefined,
1573
+ 'symbol': symbol,
1574
+ 'entryPrice': this.safeString(position, 'average_entry_price'),
1575
+ 'markPrice': undefined,
1576
+ 'notional': this.safeString(position, 'notionalValue'),
1577
+ 'collateral': undefined,
1578
+ 'unrealizedPnl': unrealizedPnl,
1579
+ 'side': side,
1580
+ 'contracts': this.parseNumber(quantity),
1581
+ 'contractSize': undefined,
1582
+ 'timestamp': undefined,
1583
+ 'datetime': undefined,
1584
+ 'hedged': undefined,
1585
+ 'maintenanceMargin': undefined,
1586
+ 'maintenanceMarginPercentage': undefined,
1587
+ 'initialMargin': undefined,
1588
+ 'initialMarginPercentage': undefined,
1589
+ 'leverage': undefined,
1590
+ 'liquidationPrice': undefined,
1591
+ 'marginRatio': undefined,
1592
+ 'marginMode': undefined,
1593
+ 'percentage': undefined,
1594
+ });
1595
+ }
1596
+ sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
1597
+ const endpoint = '/' + this.implodeParams(path, params);
1598
+ let url = this.urls['api'][api] + endpoint;
1599
+ headers = { 'Hibachi-Client': 'HibachiCCXT/unversioned' };
1600
+ if (method === 'GET') {
1601
+ const request = this.omit(params, this.extractParams(path));
1602
+ const query = this.urlencode(request);
1603
+ if (query.length !== 0) {
1604
+ url += '?' + query;
1605
+ }
1606
+ }
1607
+ if (method === 'POST' || method === 'PUT' || method === 'DELETE') {
1608
+ headers['Content-Type'] = 'application/json';
1609
+ body = this.json(params);
1610
+ }
1611
+ if (api === 'private') {
1612
+ this.checkRequiredCredentials();
1613
+ headers['Authorization'] = this.apiKey;
1614
+ }
1615
+ return { 'url': url, 'method': method, 'body': body, 'headers': headers };
1616
+ }
1617
+ handleErrors(httpCode, reason, url, method, headers, body, response, requestHeaders, requestBody) {
1618
+ if (response === undefined) {
1619
+ return undefined; // fallback to default error handler
1620
+ }
1621
+ if ('status' in response) {
1622
+ //
1623
+ // {"errorCode":4,"message":"Invalid input: Invalid quantity: 0","status":"failed"}
1624
+ //
1625
+ const status = this.safeString(response, 'status');
1626
+ if (status === 'failed') {
1627
+ const code = this.safeString(response, 'errorCode');
1628
+ const feedback = this.id + ' ' + body;
1629
+ this.throwBroadlyMatchedException(this.exceptions['broad'], body, feedback);
1630
+ this.throwExactlyMatchedException(this.exceptions['exact'], code, feedback);
1631
+ const message = this.safeString(response, 'message');
1632
+ this.throwExactlyMatchedException(this.exceptions['exact'], message, feedback);
1633
+ throw new ExchangeError(feedback);
1634
+ }
1635
+ }
1636
+ return undefined;
1637
+ }
1638
+ parseTransactionType(type) {
1639
+ const types = {
1640
+ 'deposit': 'transaction',
1641
+ 'withdrawal': 'transaction',
1642
+ 'transfer-in': 'transfer',
1643
+ 'transfer-out': 'transfer',
1644
+ };
1645
+ return this.safeString(types, type, type);
1646
+ }
1647
+ parseTransactionStatus(status) {
1648
+ const statuses = {
1649
+ 'pending': 'pending',
1650
+ 'claimable': 'pending',
1651
+ 'completed': 'ok',
1652
+ 'failed': 'canceled',
1653
+ };
1654
+ return this.safeString(statuses, status, status);
1655
+ }
1656
+ parseLedgerEntry(item, currency = undefined) {
1657
+ const transactionType = this.safeString(item, 'transactionType');
1658
+ let timestamp = undefined;
1659
+ let type = undefined;
1660
+ let direction = undefined;
1661
+ let amount = undefined;
1662
+ let fee = undefined;
1663
+ let referenceId = undefined;
1664
+ let referenceAccount = undefined;
1665
+ let status = undefined;
1666
+ if (transactionType === undefined) {
1667
+ // response from TradeAccountTradingHistory
1668
+ timestamp = this.safeIntegerProduct(item, 'timestamp', 1000);
1669
+ type = 'trade';
1670
+ let amountStr = this.safeString(item, 'realizedPnl');
1671
+ if (Precise.stringLt(amountStr, '0')) {
1672
+ direction = 'out';
1673
+ amountStr = Precise.stringNeg(amountStr);
1674
+ }
1675
+ else {
1676
+ direction = 'in';
1677
+ }
1678
+ amount = this.parseNumber(amountStr);
1679
+ fee = { 'currency': 'USDT', 'cost': this.safeNumber(item, 'fee') };
1680
+ status = 'ok';
1681
+ }
1682
+ else {
1683
+ // response from CapitalHistory
1684
+ timestamp = this.safeIntegerProduct(item, 'timestampSec', 1000);
1685
+ amount = this.safeNumber(item, 'quantity');
1686
+ direction = (transactionType === 'deposit' || transactionType === 'transfer-in') ? 'in' : 'out';
1687
+ type = this.parseTransactionType(transactionType);
1688
+ status = this.parseTransactionStatus(this.safeString(item, 'status'));
1689
+ if (transactionType === 'transfer-in') {
1690
+ referenceAccount = this.safeString(item, 'srcAccountId');
1691
+ }
1692
+ else if (transactionType === 'transfer-out') {
1693
+ referenceAccount = this.safeString(item, 'receivingAccountId');
1694
+ }
1695
+ referenceId = this.safeString(item, 'transactionHash');
1696
+ }
1697
+ return this.safeLedgerEntry({
1698
+ 'id': this.safeString(item, 'id'),
1699
+ 'currency': this.currency('USDT'),
1700
+ 'account': this.numberToString(this.accountId),
1701
+ 'referenceAccount': referenceAccount,
1702
+ 'referenceId': referenceId,
1703
+ 'status': status,
1704
+ 'amount': amount,
1705
+ 'before': undefined,
1706
+ 'after': undefined,
1707
+ 'fee': fee,
1708
+ 'direction': direction,
1709
+ 'timestamp': timestamp,
1710
+ 'datetime': this.iso8601(timestamp),
1711
+ 'type': type,
1712
+ 'info': item,
1713
+ }, currency);
1714
+ }
1715
+ /**
1716
+ * @method
1717
+ * @name hibachi#fetchLedger
1718
+ * @description fetch the history of changes, actions done by the user or operations that altered the balance of the user
1719
+ * @see https://api-doc.hibachi.xyz/#35125e3f-d154-4bfd-8276-a48bb1c62020
1720
+ * @param {string} [code] unified currency code, default is undefined
1721
+ * @param {int} [since] timestamp in ms of the earliest ledger entry, default is undefined
1722
+ * @param {int} [limit] max number of ledger entries to return, default is undefined
1723
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1724
+ * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger}
1725
+ */
1726
+ async fetchLedger(code = undefined, since = undefined, limit = undefined, params = {}) {
1727
+ await this.loadMarkets();
1728
+ const currency = this.currency('USDT');
1729
+ const request = { 'accountId': this.getAccountId() };
1730
+ const rawPromises = [
1731
+ this.privateGetCapitalHistory(this.extend(request, params)),
1732
+ this.privateGetTradeAccountTradingHistory(this.extend(request, params)),
1733
+ ];
1734
+ const promises = await Promise.all(rawPromises);
1735
+ const responseCapitalHistory = promises[0];
1736
+ //
1737
+ // {
1738
+ // "transactions": [
1739
+ // {
1740
+ // "assetId": 1,
1741
+ // "blockNumber": 358396669,
1742
+ // "chain": "Arbitrum",
1743
+ // "etaTsSec": null,
1744
+ // "id": 358396669,
1745
+ // "quantity": "0.999500",
1746
+ // "status": "pending",
1747
+ // "timestampSec": 1752692872,
1748
+ // "token": "USDT",
1749
+ // "transactionHash": "0x408e48881e0ba77d8638e3fe57bc06bdec513ddaa8b672e0aefa7e22e2f18b5e",
1750
+ // "transactionType": "deposit"
1751
+ // },
1752
+ // {
1753
+ // "assetId": 1,
1754
+ // "etaTsSec": null,
1755
+ // "id": 13116,
1756
+ // "instantWithdrawalChain": null,
1757
+ // "instantWithdrawalToken": null,
1758
+ // "isInstantWithdrawal": false,
1759
+ // "quantity": "0.040000",
1760
+ // "status": "completed",
1761
+ // "timestampSec": 1752542708,
1762
+ // "transactionHash": "0xe89cf90b2408d1a273dc9427654145def102d9449e5e2cfc10690ccffc3d7e28",
1763
+ // "transactionType": "withdrawal",
1764
+ // "withdrawalAddress": "0x23625d5fc6a6e32638d908eb4c3a3415e5121f76"
1765
+ // },
1766
+ // {
1767
+ // "assetId": 1,
1768
+ // "id": 167,
1769
+ // "quantity": "10.000000",
1770
+ // "srcAccountId": 175,
1771
+ // "srcAddress": "0xc2f77ce029438a3fdfe68ddee25991a9fb985a86",
1772
+ // "status": "completed",
1773
+ // "timestampSec": 1732224729,
1774
+ // "transactionType": "transfer-in"
1775
+ // },
1776
+ // {
1777
+ // "assetId": 1,
1778
+ // "id": 170,
1779
+ // "quantity": "10.000000",
1780
+ // "receivingAccountId": 175,
1781
+ // "receivingAddress": "0xc2f77ce029438a3fdfe68ddee25991a9fb985a86",
1782
+ // "status": "completed",
1783
+ // "timestampSec": 1732225631,
1784
+ // "transactionType": "transfer-out"
1785
+ // },
1786
+ // ]
1787
+ // }
1788
+ //
1789
+ const rowsCapitalHistory = this.safeList(responseCapitalHistory, 'transactions');
1790
+ const responseTradingHistory = promises[1];
1791
+ //
1792
+ // {
1793
+ // "tradingHistory": [
1794
+ // {
1795
+ // "eventType": "MARKET",
1796
+ // "fee": "0.000008",
1797
+ // "priceOrFundingRate": "119687.82481",
1798
+ // "quantity": "0.0000003727",
1799
+ // "realizedPnl": "0.004634",
1800
+ // "side": "Sell",
1801
+ // "symbol": "BTC/USDT-P",
1802
+ // "timestamp": 1752522571
1803
+ // },
1804
+ // {
1805
+ // "eventType": "FundingEvent",
1806
+ // "fee": "0",
1807
+ // "priceOrFundingRate": "0.000203",
1808
+ // "quantity": "0.0000003727",
1809
+ // "realizedPnl": "-0.000009067899008751979",
1810
+ // "side": "Long",
1811
+ // "symbol": "BTC/USDT-P",
1812
+ // "timestamp": 1752508800
1813
+ // },
1814
+ // ]
1815
+ // }
1816
+ //
1817
+ const rowsTradingHistory = this.safeList(responseTradingHistory, 'tradingHistory');
1818
+ const rows = this.arrayConcat(rowsCapitalHistory, rowsTradingHistory);
1819
+ return this.parseLedger(rows, currency, since, limit, params);
1820
+ }
1821
+ /**
1822
+ * @method
1823
+ * @name hibachi#fetchDepositAddress
1824
+ * @description fetch deposit address for given currency and chain. currently, we have a single EVM address across multiple EVM chains. Note: This method is currently only supported for trustless accounts
1825
+ * @param {string} code unified currency code
1826
+ * @param {object} [params] extra parameters for API
1827
+ * @param {string} [params.publicKey] your public key, you can get it from UI after creating API key
1828
+ * @returns {object} an [address structure]{@link https://docs.ccxt.com/#/?id=address-structure}
1829
+ */
1830
+ async fetchDepositAddress(code, params = {}) {
1831
+ const request = {
1832
+ 'publicKey': this.safeString(params, 'publicKey'),
1833
+ 'accountId': this.getAccountId(),
1834
+ };
1835
+ const response = await this.privateGetCapitalDepositInfo(this.extend(request, params));
1836
+ // {
1837
+ // "depositAddressEvm": "0x0b95d90b9345dadf1460bd38b9f4bb0d2f4ed788"
1838
+ // }
1839
+ return {
1840
+ 'info': response,
1841
+ 'currency': 'USDT',
1842
+ 'network': 'ARBITRUM',
1843
+ 'address': this.safeString(response, 'depositAddressEvm'),
1844
+ 'tag': undefined,
1845
+ };
1846
+ }
1847
+ parseTransaction(transaction, currency = undefined) {
1848
+ const timestamp = this.safeIntegerProduct(transaction, 'timestampSec', 1000);
1849
+ const address = this.safeString(transaction, 'withdrawalAddress');
1850
+ let transactionType = this.safeString(transaction, 'transactionType');
1851
+ if (transactionType !== 'deposit' && transactionType !== 'withdrawal') {
1852
+ transactionType = this.parseTransactionType(transactionType);
1853
+ }
1854
+ return {
1855
+ 'info': transaction,
1856
+ 'id': this.safeString(transaction, 'id'),
1857
+ 'txid': this.safeString(transaction, 'transactionHash'),
1858
+ 'timestamp': timestamp,
1859
+ 'datetime': this.iso8601(timestamp),
1860
+ 'network': 'ARBITRUM',
1861
+ 'address': address,
1862
+ 'addressTo': address,
1863
+ 'addressFrom': undefined,
1864
+ 'tag': undefined,
1865
+ 'tagTo': undefined,
1866
+ 'tagFrom': undefined,
1867
+ 'type': transactionType,
1868
+ 'amount': this.safeNumber(transaction, 'quantity'),
1869
+ 'currency': 'USDT',
1870
+ 'status': this.parseTransactionStatus(this.safeString(transaction, 'status')),
1871
+ 'updated': undefined,
1872
+ 'internal': undefined,
1873
+ 'comment': undefined,
1874
+ 'fee': undefined,
1875
+ };
1876
+ }
1877
+ /**
1878
+ * @method
1879
+ * @name hibachi#fetchDeposits
1880
+ * @description fetch deposits made to account
1881
+ * @see https://api-doc.hibachi.xyz/#35125e3f-d154-4bfd-8276-a48bb1c62020
1882
+ * @param {string} [code] unified currency code
1883
+ * @param {int} [since] filter by earliest timestamp (ms)
1884
+ * @param {int} [limit] maximum number of deposits to be returned
1885
+ * @param {object} [params] extra parameters to be passed to API
1886
+ * @returns {object[]} a list of [transaction structures]{@link https://docs.ccxt.com/#/?id=transaction-structure}
1887
+ */
1888
+ async fetchDeposits(code = undefined, since = undefined, limit = undefined, params = {}) {
1889
+ const currency = this.safeCurrency(code);
1890
+ const request = {
1891
+ 'accountId': this.getAccountId(),
1892
+ };
1893
+ const response = await this.privateGetCapitalHistory(this.extend(request, params));
1894
+ // {
1895
+ // "transactions": [
1896
+ // {
1897
+ // "assetId": 1,
1898
+ // "blockNumber": 0,
1899
+ // "chain": null,
1900
+ // "etaTsSec": 1752758789,
1901
+ // "id": 42688,
1902
+ // "quantity": "6.130000",
1903
+ // "status": "completed",
1904
+ // "timestampSec": 1752758788,
1905
+ // "token": null,
1906
+ // "transactionHash": "0x8dcd7bd1155b5624fb5e38a1365888f712ec633a57434340e05080c70b0e3bba",
1907
+ // "transactionType": "deposit"
1908
+ // },
1909
+ // {
1910
+ // "assetId": 1,
1911
+ // "etaTsSec": null,
1912
+ // "id": 12993,
1913
+ // "instantWithdrawalChain": null,
1914
+ // "instantWithdrawalToken": null,
1915
+ // "isInstantWithdrawal": false,
1916
+ // "quantity": "0.111930",
1917
+ // "status": "completed",
1918
+ // "timestampSec": 1752387891,
1919
+ // "transactionHash": "0x32ab5fe5b90f6d753bab83523ebc8465eb9daef54580e13cb9ff031d400c5620",
1920
+ // "transactionType": "withdrawal",
1921
+ // "withdrawalAddress": "0x43f15ef2ef2ab5e61e987ee3d652a5872aea8a6c"
1922
+ // },
1923
+ // ]
1924
+ // }
1925
+ const transactions = this.safeList(response, 'transactions');
1926
+ const deposits = [];
1927
+ for (let i = 0; i < transactions.length; i++) {
1928
+ const transaction = transactions[i];
1929
+ if (this.safeString(transaction, 'transactionType') === 'deposit') {
1930
+ deposits.push(transaction);
1931
+ }
1932
+ }
1933
+ return this.parseTransactions(deposits, currency, since, limit, params);
1934
+ }
1935
+ /**
1936
+ * @method
1937
+ * @name hibachi#fetchWithdrawals
1938
+ * @description fetch withdrawals made from account
1939
+ * @see https://api-doc.hibachi.xyz/#35125e3f-d154-4bfd-8276-a48bb1c62020
1940
+ * @param {string} [code] unified currency code
1941
+ * @param {int} [since] filter by earliest timestamp (ms)
1942
+ * @param {int} [limit] maximum number of deposits to be returned
1943
+ * @param {object} [params] extra parameters to be passed to API
1944
+ * @returns {object[]} a list of [transaction structures]{@link https://docs.ccxt.com/#/?id=transaction-structure}
1945
+ */
1946
+ async fetchWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
1947
+ const currency = this.safeCurrency(code);
1948
+ const request = {
1949
+ 'accountId': this.getAccountId(),
1950
+ };
1951
+ const response = await this.privateGetCapitalHistory(this.extend(request, params));
1952
+ // {
1953
+ // "transactions": [
1954
+ // {
1955
+ // "assetId": 1,
1956
+ // "blockNumber": 0,
1957
+ // "chain": null,
1958
+ // "etaTsSec": 1752758789,
1959
+ // "id": 42688,
1960
+ // "quantity": "6.130000",
1961
+ // "status": "completed",
1962
+ // "timestampSec": 1752758788,
1963
+ // "token": null,
1964
+ // "transactionHash": "0x8dcd7bd1155b5624fb5e38a1365888f712ec633a57434340e05080c70b0e3bba",
1965
+ // "transactionType": "deposit"
1966
+ // },
1967
+ // {
1968
+ // "assetId": 1,
1969
+ // "etaTsSec": null,
1970
+ // "id": 12993,
1971
+ // "instantWithdrawalChain": null,
1972
+ // "instantWithdrawalToken": null,
1973
+ // "isInstantWithdrawal": false,
1974
+ // "quantity": "0.111930",
1975
+ // "status": "completed",
1976
+ // "timestampSec": 1752387891,
1977
+ // "transactionHash": "0x32ab5fe5b90f6d753bab83523ebc8465eb9daef54580e13cb9ff031d400c5620",
1978
+ // "transactionType": "withdrawal",
1979
+ // "withdrawalAddress": "0x43f15ef2ef2ab5e61e987ee3d652a5872aea8a6c"
1980
+ // },
1981
+ // ]
1982
+ // }
1983
+ const transactions = this.safeList(response, 'transactions');
1984
+ const withdrawals = [];
1985
+ for (let i = 0; i < transactions.length; i++) {
1986
+ const transaction = transactions[i];
1987
+ if (this.safeString(transaction, 'transactionType') === 'withdrawal') {
1988
+ withdrawals.push(transaction);
1989
+ }
1990
+ }
1991
+ return this.parseTransactions(withdrawals, currency, since, limit, params);
1992
+ }
1993
+ /**
1994
+ * @method
1995
+ * @name hibachi#fetchTime
1996
+ * @description fetches the current integer timestamp in milliseconds from the exchange server
1997
+ * @see http://api-doc.hibachi.xyz/#b5c6a3bc-243d-4d35-b6d4-a74c92495434
1998
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1999
+ * @returns {int} the current integer timestamp in milliseconds from the exchange server
2000
+ */
2001
+ async fetchTime(params = {}) {
2002
+ const response = await this.publicGetExchangeUtcTimestamp(params);
2003
+ //
2004
+ // { "timestampMs":1754077574040 }
2005
+ //
2006
+ return this.safeInteger(response, 'timestampMs');
2007
+ }
2008
+ /**
2009
+ * @method
2010
+ * @name hibachi#fetchOpenInterest
2011
+ * @description retrieves the open interest of a contract trading pair
2012
+ * @see https://api-doc.hibachi.xyz/#bc34e8ae-e094-4802-8d56-3efe3a7bad49
2013
+ * @param {string} symbol unified CCXT market symbol
2014
+ * @param {object} [params] exchange specific parameters
2015
+ * @returns {object} an open interest structure{@link https://docs.ccxt.com/#/?id=open-interest-structure}
2016
+ */
2017
+ async fetchOpenInterest(symbol, params = {}) {
2018
+ await this.loadMarkets();
2019
+ const market = this.market(symbol);
2020
+ const request = {
2021
+ 'symbol': market['id'],
2022
+ };
2023
+ const response = await this.publicGetMarketDataOpenInterest(this.extend(request, params));
2024
+ //
2025
+ // { "totalQuantity" : "2.3299770166" }
2026
+ //
2027
+ const timestamp = this.milliseconds();
2028
+ return this.safeOpenInterest({
2029
+ 'symbol': symbol,
2030
+ 'openInterestAmount': this.safeString(response, 'totalQuantity'),
2031
+ 'openInterestValue': undefined,
2032
+ 'timestamp': timestamp,
2033
+ 'datetime': this.iso8601(timestamp),
2034
+ 'info': response,
2035
+ }, market);
2036
+ }
2037
+ /**
2038
+ * @method
2039
+ * @name hibachi#fetchFundingRate
2040
+ * @description fetch the current funding rate
2041
+ * @see https://api-doc.hibachi.xyz/#bca696ca-b9b2-4072-8864-5d6b8c09807e
2042
+ * @param {string} symbol unified market symbol
2043
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
2044
+ * @returns {object} a [funding rate structure]{@link https://docs.ccxt.com/#/?id=funding-rate-structure}
2045
+ */
2046
+ async fetchFundingRate(symbol, params = {}) {
2047
+ await this.loadMarkets();
2048
+ const market = this.market(symbol);
2049
+ const request = {
2050
+ 'symbol': market['id'],
2051
+ };
2052
+ const response = await this.publicGetMarketDataPrices(this.extend(request, params));
2053
+ //
2054
+ // {
2055
+ // "askPrice": "3514.650296",
2056
+ // "bidPrice": "3513.596112",
2057
+ // "fundingRateEstimation": {
2058
+ // "estimatedFundingRate": "0.000001",
2059
+ // "nextFundingTimestamp": 1712707200
2060
+ // },
2061
+ // "markPrice": "3514.288858",
2062
+ // "spotPrice": "3514.715000",
2063
+ // "symbol": "ETH/USDT-P",
2064
+ // "tradePrice": "2372.746570"
2065
+ // }
2066
+ //
2067
+ const funding = this.safeDict(response, 'fundingRateEstimation', {});
2068
+ const timestamp = this.milliseconds();
2069
+ const nextFundingTimestamp = this.safeIntegerProduct(funding, 'nextFundingTimestamp', 1000);
2070
+ return {
2071
+ 'info': funding,
2072
+ 'symbol': market['symbol'],
2073
+ 'markPrice': undefined,
2074
+ 'indexPrice': undefined,
2075
+ 'interestRate': this.parseNumber('0'),
2076
+ 'estimatedSettlePrice': undefined,
2077
+ 'timestamp': timestamp,
2078
+ 'datetime': this.iso8601(timestamp),
2079
+ 'fundingRate': this.safeNumber(funding, 'estimatedFundingRate'),
2080
+ 'fundingTimestamp': nextFundingTimestamp,
2081
+ 'fundingDatetime': this.iso8601(nextFundingTimestamp),
2082
+ 'nextFundingRate': undefined,
2083
+ 'nextFundingTimestamp': undefined,
2084
+ 'nextFundingDatetime': undefined,
2085
+ 'previousFundingRate': undefined,
2086
+ 'previousFundingTimestamp': undefined,
2087
+ 'previousFundingDatetime': undefined,
2088
+ 'interval': '8h',
2089
+ };
2090
+ }
2091
+ /**
2092
+ * @method
2093
+ * @name hibachi#fetchFundingRateHistory
2094
+ * @description fetches historical funding rate prices
2095
+ * @see https://api-doc.hibachi.xyz/#4abb30c4-e5c7-4b0f-9ade-790111dbfa47
2096
+ * @param {string} symbol unified symbol of the market to fetch the funding rate history for
2097
+ * @param {int} [since] timestamp in ms of the earliest funding rate to fetch
2098
+ * @param {int} [limit] the maximum amount of [funding rate structures]{@link https://docs.ccxt.com/#/?id=funding-rate-history-structure} to fetch
2099
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
2100
+ * @returns {object[]} a list of [funding rate structures]{@link https://docs.ccxt.com/#/?id=funding-rate-history-structure}
2101
+ */
2102
+ async fetchFundingRateHistory(symbol = undefined, since = undefined, limit = undefined, params = {}) {
2103
+ await this.loadMarkets();
2104
+ const market = this.market(symbol);
2105
+ const request = {
2106
+ 'symbol': market['id'],
2107
+ };
2108
+ const response = await this.publicGetMarketDataFundingRates(this.extend(request, params));
2109
+ //
2110
+ // {
2111
+ // "data": [
2112
+ // {
2113
+ // "contractId": 2,
2114
+ // "fundingTimestamp": 1753488000,
2115
+ // "fundingRate": "0.000137",
2116
+ // "indexPrice": "117623.65010"
2117
+ // }
2118
+ // ]
2119
+ // }
2120
+ //
2121
+ const data = this.safeList(response, 'data');
2122
+ const rates = [];
2123
+ for (let i = 0; i < data.length; i++) {
2124
+ const entry = data[i];
2125
+ const timestamp = this.safeIntegerProduct(entry, 'fundingTimestamp', 1000);
2126
+ rates.push({
2127
+ 'info': entry,
2128
+ 'symbol': symbol,
2129
+ 'fundingRate': this.safeNumber(entry, 'fundingRate'),
2130
+ 'timestamp': timestamp,
2131
+ 'datetime': this.iso8601(timestamp),
2132
+ });
2133
+ }
2134
+ const sorted = this.sortBy(rates, 'timestamp');
2135
+ return this.filterBySymbolSinceLimit(sorted, symbol, since, limit);
2136
+ }
2137
+ }