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,2046 @@
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/hollaex.js';
9
+ import { BadRequest, AuthenticationError, NetworkError, ArgumentsRequired, OrderNotFound, InsufficientFunds, InvalidNonce, OrderImmediatelyFillable } from './base/errors.js';
10
+ import { Precise } from './base/Precise.js';
11
+ import { TICK_SIZE } from './base/functions/number.js';
12
+ import { sha256 } from './static_dependencies/noble-hashes/sha256.js';
13
+ // ---------------------------------------------------------------------------
14
+ /**
15
+ * @class hollaex
16
+ * @augments Exchange
17
+ */
18
+ export default class hollaex extends Exchange {
19
+ describe() {
20
+ return this.deepExtend(super.describe(), {
21
+ 'id': 'hollaex',
22
+ 'name': 'HollaEx',
23
+ 'countries': ['KR'],
24
+ // 4 requests per second => 1000ms / 4 = 250 ms between requests
25
+ 'rateLimit': 250,
26
+ 'version': 'v2',
27
+ 'pro': true,
28
+ 'has': {
29
+ 'CORS': undefined,
30
+ 'spot': true,
31
+ 'margin': undefined,
32
+ 'swap': false,
33
+ 'future': false,
34
+ 'option': false,
35
+ 'addMargin': false,
36
+ 'cancelAllOrders': true,
37
+ 'cancelOrder': true,
38
+ 'createLimitBuyOrder': true,
39
+ 'createLimitSellOrder': true,
40
+ 'createMarketBuyOrder': true,
41
+ 'createMarketSellOrder': true,
42
+ 'createOrder': true,
43
+ 'createPostOnlyOrder': true,
44
+ 'createReduceOnlyOrder': false,
45
+ 'createStopLimitOrder': true,
46
+ 'createStopMarketOrder': true,
47
+ 'createStopOrder': true,
48
+ 'fetchBalance': true,
49
+ 'fetchBorrowRateHistories': false,
50
+ 'fetchBorrowRateHistory': false,
51
+ 'fetchClosedOrders': true,
52
+ 'fetchCrossBorrowRate': false,
53
+ 'fetchCrossBorrowRates': false,
54
+ 'fetchCurrencies': true,
55
+ 'fetchDepositAddress': 'emulated',
56
+ 'fetchDepositAddresses': true,
57
+ 'fetchDepositAddressesByNetwork': false,
58
+ 'fetchDeposits': true,
59
+ 'fetchFundingHistory': false,
60
+ 'fetchFundingRate': false,
61
+ 'fetchFundingRateHistory': false,
62
+ 'fetchFundingRates': false,
63
+ 'fetchIndexOHLCV': false,
64
+ 'fetchIsolatedBorrowRate': false,
65
+ 'fetchIsolatedBorrowRates': false,
66
+ 'fetchLeverage': false,
67
+ 'fetchMarginMode': false,
68
+ 'fetchMarkets': true,
69
+ 'fetchMarkOHLCV': false,
70
+ 'fetchMyTrades': true,
71
+ 'fetchOHLCV': true,
72
+ 'fetchOpenInterestHistory': false,
73
+ 'fetchOpenOrder': true,
74
+ 'fetchOpenOrders': true,
75
+ 'fetchOrder': true,
76
+ 'fetchOrderBook': true,
77
+ 'fetchOrderBooks': true,
78
+ 'fetchOrders': true,
79
+ 'fetchPosition': false,
80
+ 'fetchPositionMode': false,
81
+ 'fetchPositions': false,
82
+ 'fetchPositionsRisk': false,
83
+ 'fetchPremiumIndexOHLCV': false,
84
+ 'fetchTicker': true,
85
+ 'fetchTickers': true,
86
+ 'fetchTrades': true,
87
+ 'fetchTradingFee': false,
88
+ 'fetchTradingFees': true,
89
+ 'fetchTransactions': false,
90
+ 'fetchTransfer': false,
91
+ 'fetchTransfers': false,
92
+ 'fetchWithdrawal': true,
93
+ 'fetchWithdrawals': true,
94
+ 'reduceMargin': false,
95
+ 'sandbox': true,
96
+ 'setLeverage': false,
97
+ 'setMarginMode': false,
98
+ 'setPositionMode': false,
99
+ 'transfer': false,
100
+ 'withdraw': true,
101
+ },
102
+ 'timeframes': {
103
+ '1m': '1m',
104
+ '5m': '5m',
105
+ '15m': '15m',
106
+ '1h': '1h',
107
+ '4h': '4h',
108
+ '1d': '1d',
109
+ '1w': '1w',
110
+ },
111
+ 'urls': {
112
+ 'logo': 'https://user-images.githubusercontent.com/1294454/75841031-ca375180-5ddd-11ea-8417-b975674c23cb.jpg',
113
+ 'test': {
114
+ 'rest': 'https://api.sandbox.hollaex.com',
115
+ },
116
+ 'api': {
117
+ 'rest': 'https://api.hollaex.com',
118
+ },
119
+ 'www': 'https://hollaex.com',
120
+ 'doc': 'https://apidocs.hollaex.com',
121
+ 'referral': 'https://pro.hollaex.com/signup?affiliation_code=QSWA6G',
122
+ },
123
+ 'precisionMode': TICK_SIZE,
124
+ 'requiredCredentials': {
125
+ 'apiKey': true,
126
+ 'secret': true,
127
+ },
128
+ 'api': {
129
+ 'public': {
130
+ 'get': {
131
+ 'health': 1,
132
+ 'constants': 1,
133
+ 'kit': 1,
134
+ 'tiers': 1,
135
+ 'ticker': 1,
136
+ 'tickers': 1,
137
+ 'orderbook': 1,
138
+ 'orderbooks': 1,
139
+ 'trades': 1,
140
+ 'chart': 1,
141
+ 'charts': 1,
142
+ 'minicharts': 1,
143
+ 'oracle/prices': 1,
144
+ 'quick-trade': 1,
145
+ // TradingView
146
+ 'udf/config': 1,
147
+ 'udf/history': 1,
148
+ 'udf/symbols': 1,
149
+ },
150
+ },
151
+ 'private': {
152
+ 'get': {
153
+ 'user': 1,
154
+ 'user/balance': 1,
155
+ 'user/deposits': 1,
156
+ 'user/withdrawals': 1,
157
+ 'user/withdrawal/fee': 1,
158
+ 'user/trades': 1,
159
+ 'orders': 1,
160
+ 'order': 1,
161
+ },
162
+ 'post': {
163
+ 'user/withdrawal': 1,
164
+ 'order': 1,
165
+ },
166
+ 'delete': {
167
+ 'order/all': 1,
168
+ 'order': 1,
169
+ },
170
+ },
171
+ },
172
+ 'features': {
173
+ 'spot': {
174
+ 'sandbox': true,
175
+ 'createOrder': {
176
+ 'marginMode': false,
177
+ 'triggerPrice': true,
178
+ 'triggerPriceType': undefined,
179
+ 'triggerDirection': false,
180
+ 'stopLossPrice': false,
181
+ 'takeProfitPrice': false,
182
+ 'attachedStopLossTakeProfit': undefined,
183
+ 'timeInForce': {
184
+ 'IOC': false,
185
+ 'FOK': false,
186
+ 'PO': true,
187
+ 'GTD': false,
188
+ },
189
+ 'hedged': false,
190
+ 'selfTradePrevention': false,
191
+ 'trailing': false,
192
+ 'leverage': false,
193
+ 'marketBuyByCost': false,
194
+ 'marketBuyRequiresPrice': false,
195
+ 'iceberg': false,
196
+ },
197
+ 'createOrders': undefined,
198
+ 'fetchMyTrades': {
199
+ 'marginMode': false,
200
+ 'limit': 100,
201
+ 'daysBack': 100000,
202
+ 'untilDays': 100000,
203
+ 'symbolRequired': false,
204
+ },
205
+ 'fetchOrder': {
206
+ 'marginMode': false,
207
+ 'trigger': false,
208
+ 'trailing': false,
209
+ 'symbolRequired': false,
210
+ },
211
+ 'fetchOpenOrders': {
212
+ 'marginMode': false,
213
+ 'limit': 100,
214
+ 'trigger': false,
215
+ 'trailing': false,
216
+ 'symbolRequired': false,
217
+ },
218
+ 'fetchOrders': {
219
+ 'marginMode': false,
220
+ 'limit': 100,
221
+ 'daysBack': 100000,
222
+ 'untilDays': 100000,
223
+ 'trigger': false,
224
+ 'trailing': false,
225
+ 'symbolRequired': false,
226
+ },
227
+ 'fetchClosedOrders': {
228
+ 'marginMode': false,
229
+ 'limit': 100,
230
+ 'daysBack': 100000,
231
+ 'daysBackCanceled': 1,
232
+ 'untilDays': 100000,
233
+ 'trigger': false,
234
+ 'trailing': false,
235
+ 'symbolRequired': false,
236
+ },
237
+ 'fetchOHLCV': {
238
+ 'limit': 1000, // todo: no limit in request
239
+ },
240
+ },
241
+ 'swap': {
242
+ 'linear': undefined,
243
+ 'inverse': undefined,
244
+ },
245
+ 'future': {
246
+ 'linear': undefined,
247
+ 'inverse': undefined,
248
+ },
249
+ },
250
+ 'fees': {
251
+ 'trading': {
252
+ 'tierBased': true,
253
+ 'percentage': true,
254
+ 'taker': 0.001,
255
+ 'maker': 0.001,
256
+ },
257
+ },
258
+ 'exceptions': {
259
+ 'broad': {
260
+ 'API request is expired': InvalidNonce,
261
+ 'Invalid token': AuthenticationError,
262
+ 'Order not found': OrderNotFound,
263
+ 'Insufficient balance': InsufficientFunds,
264
+ 'Error 1001 - Order rejected. Order could not be submitted as this order was set to a post only order.': OrderImmediatelyFillable,
265
+ },
266
+ 'exact': {
267
+ '400': BadRequest,
268
+ '403': AuthenticationError,
269
+ '404': BadRequest,
270
+ '405': BadRequest,
271
+ '410': BadRequest,
272
+ '429': BadRequest,
273
+ '500': NetworkError,
274
+ '503': NetworkError,
275
+ },
276
+ },
277
+ 'options': {
278
+ // how many seconds before the authenticated request expires
279
+ 'api-expires': this.parseToInt(this.timeout / 1000),
280
+ 'networks': {
281
+ 'BTC': 'btc',
282
+ 'ETH': 'eth',
283
+ 'ERC20': 'eth',
284
+ 'TRX': 'trx',
285
+ 'TRC20': 'trx',
286
+ 'XRP': 'xrp',
287
+ 'XLM': 'xlm',
288
+ 'BNB': 'bnb',
289
+ 'MATIC': 'matic',
290
+ },
291
+ 'networksById': {
292
+ 'eth': 'ERC20',
293
+ 'ETH': 'ERC20',
294
+ 'ERC20': 'ERC20',
295
+ 'trx': 'TRC20',
296
+ 'TRX': 'TRC20',
297
+ 'TRC20': 'TRC20',
298
+ },
299
+ },
300
+ });
301
+ }
302
+ /**
303
+ * @method
304
+ * @name hollaex#fetchMarkets
305
+ * @description retrieves data on all markets for hollaex
306
+ * @see https://apidocs.hollaex.com/#constants
307
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
308
+ * @returns {object[]} an array of objects representing market data
309
+ */
310
+ async fetchMarkets(params = {}) {
311
+ const response = await this.publicGetConstants(params);
312
+ //
313
+ // {
314
+ // "coins": {
315
+ // "xmr": {
316
+ // "id": 7,
317
+ // "fullname": "Monero",
318
+ // "symbol": "xmr",
319
+ // "active": true,
320
+ // "allow_deposit": true,
321
+ // "allow_withdrawal": true,
322
+ // "withdrawal_fee": 0.02,
323
+ // "min": 0.001,
324
+ // "max": 100000,
325
+ // "increment_unit": 0.001,
326
+ // "deposit_limits": { '1': 0, '2': 0, '3': 0, '4': 0, "5": 0, "6": 0 },
327
+ // "withdrawal_limits": { '1': 10, '2': 15, '3': 100, '4': 100, '5': 200, '6': 300, '7': 350, '8': 400, "9": 500, "10": -1 },
328
+ // "created_at": "2019-12-09T07:14:02.720Z",
329
+ // "updated_at": "2020-01-16T12:12:53.162Z"
330
+ // },
331
+ // // ...
332
+ // },
333
+ // "pairs": {
334
+ // "btc-usdt": {
335
+ // "id": 2,
336
+ // "name": "btc-usdt",
337
+ // "pair_base": "btc",
338
+ // "pair_2": "usdt",
339
+ // "taker_fees": { '1': 0.3, '2': 0.25, '3': 0.2, '4': 0.18, '5': 0.1, '6': 0.09, '7': 0.08, '8': 0.06, "9": 0.04, "10": 0 },
340
+ // "maker_fees": { '1': 0.1, '2': 0.08, '3': 0.05, '4': 0.03, '5': 0, '6': 0, '7': 0, '8': 0, "9": 0, "10": 0 },
341
+ // "min_size": 0.0001,
342
+ // "max_size": 1000,
343
+ // "min_price": 100,
344
+ // "max_price": 100000,
345
+ // "increment_size": 0.0001,
346
+ // "increment_price": 0.05,
347
+ // "active": true,
348
+ // "created_at": "2019-12-09T07:15:54.537Z",
349
+ // "updated_at": "2019-12-09T07:15:54.537Z"
350
+ // },
351
+ // },
352
+ // "config": { tiers: 10 },
353
+ // "status": true
354
+ // }
355
+ //
356
+ const pairs = this.safeValue(response, 'pairs', {});
357
+ const keys = Object.keys(pairs);
358
+ const result = [];
359
+ for (let i = 0; i < keys.length; i++) {
360
+ const key = keys[i];
361
+ const market = pairs[key];
362
+ const baseId = this.safeString(market, 'pair_base');
363
+ const quoteId = this.safeString(market, 'pair_2');
364
+ const base = this.commonCurrencyCode(baseId.toUpperCase());
365
+ const quote = this.commonCurrencyCode(quoteId.toUpperCase());
366
+ result.push({
367
+ 'id': this.safeString(market, 'name'),
368
+ 'symbol': base + '/' + quote,
369
+ 'base': base,
370
+ 'quote': quote,
371
+ 'settle': undefined,
372
+ 'baseId': baseId,
373
+ 'quoteId': quoteId,
374
+ 'settleId': undefined,
375
+ 'type': 'spot',
376
+ 'spot': true,
377
+ 'margin': false,
378
+ 'swap': false,
379
+ 'future': false,
380
+ 'option': false,
381
+ 'active': this.safeValue(market, 'active'),
382
+ 'contract': false,
383
+ 'linear': undefined,
384
+ 'inverse': undefined,
385
+ 'contractSize': undefined,
386
+ 'expiry': undefined,
387
+ 'expiryDatetime': undefined,
388
+ 'strike': undefined,
389
+ 'optionType': undefined,
390
+ 'precision': {
391
+ 'amount': this.safeNumber(market, 'increment_size'),
392
+ 'price': this.safeNumber(market, 'increment_price'),
393
+ },
394
+ 'limits': {
395
+ 'leverage': {
396
+ 'min': undefined,
397
+ 'max': undefined,
398
+ },
399
+ 'amount': {
400
+ 'min': this.safeNumber(market, 'min_size'),
401
+ 'max': this.safeNumber(market, 'max_size'),
402
+ },
403
+ 'price': {
404
+ 'min': this.safeNumber(market, 'min_price'),
405
+ 'max': this.safeNumber(market, 'max_price'),
406
+ },
407
+ 'cost': {
408
+ 'min': undefined,
409
+ 'max': undefined,
410
+ },
411
+ },
412
+ 'created': this.parse8601(this.safeString(market, 'created_at')),
413
+ 'info': market,
414
+ });
415
+ }
416
+ return result;
417
+ }
418
+ /**
419
+ * @method
420
+ * @name hollaex#fetchCurrencies
421
+ * @description fetches all available currencies on an exchange
422
+ * @see https://apidocs.hollaex.com/#constants
423
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
424
+ * @returns {object} an associative dictionary of currencies
425
+ */
426
+ async fetchCurrencies(params = {}) {
427
+ const response = await this.publicGetConstants(params);
428
+ //
429
+ // {
430
+ // "coins": {
431
+ // "usdt": {
432
+ // "id": "6",
433
+ // "fullname": "USD Tether",
434
+ // "symbol": "usdt",
435
+ // "active": true,
436
+ // "verified": true,
437
+ // "allow_deposit": true,
438
+ // "allow_withdrawal": true,
439
+ // "withdrawal_fee": "20",
440
+ // "min": "1",
441
+ // "max": "10000000",
442
+ // "increment_unit": "0.0001",
443
+ // "logo": "https://hollaex-resources.s3.ap-southeast-1.amazonaws.com/icons/usdt.svg",
444
+ // "code": "usdt",
445
+ // "is_public": true,
446
+ // "meta": {
447
+ // "color": "#27a17a",
448
+ // "website": "https://tether.to",
449
+ // "explorer": "https://blockchair.com/tether",
450
+ // "decimal_points": "6"
451
+ // },
452
+ // "estimated_price": "1",
453
+ // "description": "<p>Tether (USDT) is a stablecoin pegged 1:1 to the US dollar. It is a digital currency that aims to maintain its value while allowing for fast and secure transfer of funds. It was the first stablecoin, and is the most widely used due stablecoin due to its stability and low volatility compared to other cryptocurrencies. It was launched in 2014 by Tether Limited.</p>",
454
+ // "type": "blockchain",
455
+ // "network": "eth,trx,bnb,matic",
456
+ // "standard": "",
457
+ // "issuer": "HollaEx",
458
+ // "withdrawal_fees": {
459
+ // "bnb": {
460
+ // "value": "0.8",
461
+ // "active": true,
462
+ // "symbol": "usdt"
463
+ // },
464
+ // "eth": {
465
+ // "value": "1.5",
466
+ // "active": true,
467
+ // "symbol": "usdt"
468
+ // },
469
+ // "trx": {
470
+ // "value": "4",
471
+ // "active": true,
472
+ // "symbol": "usdt"
473
+ // },
474
+ // "matic": {
475
+ // "value": "0.3",
476
+ // "active": true,
477
+ // "symbol": "usdt"
478
+ // }
479
+ // },
480
+ // "display_name": null,
481
+ // "deposit_fees": null,
482
+ // "is_risky": false,
483
+ // "market_cap": "144568098696.29",
484
+ // "category": "stable",
485
+ // "created_at": "2019-08-09T10:45:43.367Z",
486
+ // "updated_at": "2025-03-25T17:12:37.970Z",
487
+ // "created_by": "168",
488
+ // "owner_id": "1"
489
+ // },
490
+ // },
491
+ // "network":"https://api.hollaex.network"
492
+ // }
493
+ //
494
+ const coins = this.safeDict(response, 'coins', {});
495
+ const keys = Object.keys(coins);
496
+ const result = {};
497
+ for (let i = 0; i < keys.length; i++) {
498
+ const key = keys[i];
499
+ const currency = coins[key];
500
+ const id = this.safeString(currency, 'symbol');
501
+ const code = this.safeCurrencyCode(id);
502
+ const withdrawalLimits = this.safeList(currency, 'withdrawal_limits', []);
503
+ const rawType = this.safeString(currency, 'type');
504
+ const type = (rawType === 'blockchain') ? 'crypto' : 'other';
505
+ const rawNetworks = this.safeDict(currency, 'withdrawal_fees', {});
506
+ const networks = {};
507
+ const networkIds = Object.keys(rawNetworks);
508
+ for (let j = 0; j < networkIds.length; j++) {
509
+ const networkId = networkIds[j];
510
+ const networkEntry = this.safeDict(rawNetworks, networkId);
511
+ const networkCode = this.networkIdToCode(networkId);
512
+ networks[networkCode] = {
513
+ 'id': networkId,
514
+ 'network': networkCode,
515
+ 'active': this.safeBool(networkEntry, 'active'),
516
+ 'deposit': undefined,
517
+ 'withdraw': undefined,
518
+ 'fee': this.safeNumber(networkEntry, 'value'),
519
+ 'precision': undefined,
520
+ 'limits': {
521
+ 'withdraw': {
522
+ 'min': undefined,
523
+ 'max': undefined,
524
+ },
525
+ },
526
+ 'info': networkEntry,
527
+ };
528
+ }
529
+ result[code] = this.safeCurrencyStructure({
530
+ 'id': id,
531
+ 'numericId': this.safeInteger(currency, 'id'),
532
+ 'code': code,
533
+ 'info': currency,
534
+ 'name': this.safeString(currency, 'fullname'),
535
+ 'active': this.safeBool(currency, 'active'),
536
+ 'deposit': this.safeBool(currency, 'allow_deposit'),
537
+ 'withdraw': this.safeBool(currency, 'allow_withdrawal'),
538
+ 'fee': this.safeNumber(currency, 'withdrawal_fee'),
539
+ 'precision': this.safeNumber(currency, 'increment_unit'),
540
+ 'limits': {
541
+ 'amount': {
542
+ 'min': this.safeNumber(currency, 'min'),
543
+ 'max': this.safeNumber(currency, 'max'),
544
+ },
545
+ 'withdraw': {
546
+ 'min': undefined,
547
+ 'max': this.safeValue(withdrawalLimits, 0),
548
+ },
549
+ },
550
+ 'networks': networks,
551
+ 'type': type,
552
+ });
553
+ }
554
+ return result;
555
+ }
556
+ /**
557
+ * @method
558
+ * @name hollaex#fetchOrderBooks
559
+ * @description fetches information on open orders with bid (buy) and ask (sell) prices, volumes and other data for multiple markets
560
+ * @see https://apidocs.hollaex.com/#orderbooks
561
+ * @param {string[]|undefined} symbols not used by hollaex fetchOrderBooks ()
562
+ * @param {int} [limit] not used by hollaex fetchOrderBooks ()
563
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
564
+ * @returns {object} a dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbol
565
+ */
566
+ async fetchOrderBooks(symbols = undefined, limit = undefined, params = {}) {
567
+ await this.loadMarkets();
568
+ const response = await this.publicGetOrderbooks(params);
569
+ const result = {};
570
+ const marketIds = Object.keys(response);
571
+ for (let i = 0; i < marketIds.length; i++) {
572
+ const marketId = marketIds[i];
573
+ const orderbook = response[marketId];
574
+ const symbol = this.safeSymbol(marketId, undefined, '-');
575
+ const timestamp = this.parse8601(this.safeString(orderbook, 'timestamp'));
576
+ result[symbol] = this.parseOrderBook(response[marketId], symbol, timestamp);
577
+ }
578
+ return result;
579
+ }
580
+ /**
581
+ * @method
582
+ * @name hollaex#fetchOrderBook
583
+ * @description fetches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
584
+ * @see https://apidocs.hollaex.com/#orderbook
585
+ * @param {string} symbol unified symbol of the market to fetch the order book for
586
+ * @param {int} [limit] the maximum amount of order book entries to return
587
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
588
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
589
+ */
590
+ async fetchOrderBook(symbol, limit = undefined, params = {}) {
591
+ await this.loadMarkets();
592
+ const market = this.market(symbol);
593
+ const request = {
594
+ 'symbol': market['id'],
595
+ };
596
+ const response = await this.publicGetOrderbook(this.extend(request, params));
597
+ //
598
+ // {
599
+ // "btc-usdt": {
600
+ // "bids": [
601
+ // [ 8836.4, 1.022 ],
602
+ // [ 8800, 0.0668 ],
603
+ // [ 8797.75, 0.2398 ],
604
+ // ],
605
+ // "asks": [
606
+ // [ 8839.35, 1.5334 ],
607
+ // [ 8852.6, 0.0579 ],
608
+ // [ 8860.45, 0.1815 ],
609
+ // ],
610
+ // "timestamp": "2020-03-03T02:27:25.147Z"
611
+ // },
612
+ // "eth-usdt": {},
613
+ // // ...
614
+ // }
615
+ //
616
+ const orderbook = this.safeValue(response, market['id']);
617
+ const timestamp = this.parse8601(this.safeString(orderbook, 'timestamp'));
618
+ return this.parseOrderBook(orderbook, market['symbol'], timestamp);
619
+ }
620
+ /**
621
+ * @method
622
+ * @name hollaex#fetchTicker
623
+ * @description fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
624
+ * @see https://apidocs.hollaex.com/#ticker
625
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
626
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
627
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
628
+ */
629
+ async fetchTicker(symbol, params = {}) {
630
+ await this.loadMarkets();
631
+ const market = this.market(symbol);
632
+ const request = {
633
+ 'symbol': market['id'],
634
+ };
635
+ const response = await this.publicGetTicker(this.extend(request, params));
636
+ //
637
+ // {
638
+ // "open": 8615.55,
639
+ // "close": 8841.05,
640
+ // "high": 8921.1,
641
+ // "low": 8607,
642
+ // "last": 8841.05,
643
+ // "volume": 20.2802,
644
+ // "timestamp": "2020-03-03T03:11:18.964Z"
645
+ // }
646
+ //
647
+ return this.parseTicker(response, market);
648
+ }
649
+ /**
650
+ * @method
651
+ * @name hollaex#fetchTickers
652
+ * @description fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
653
+ * @see https://apidocs.hollaex.com/#tickers
654
+ * @param {string[]|undefined} symbols unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
655
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
656
+ * @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
657
+ */
658
+ async fetchTickers(symbols = undefined, params = {}) {
659
+ await this.loadMarkets();
660
+ symbols = this.marketSymbols(symbols);
661
+ const response = await this.publicGetTickers(params);
662
+ //
663
+ // {
664
+ // "bch-usdt": {
665
+ // "time": "2020-03-02T04:29:45.011Z",
666
+ // "open": 341.65,
667
+ // "close":337.9,
668
+ // "high":341.65,
669
+ // "low":337.3,
670
+ // "last":337.9,
671
+ // "volume":0.054,
672
+ // "symbol":"bch-usdt"
673
+ // },
674
+ // // ...
675
+ // }
676
+ //
677
+ return this.parseTickers(response, symbols);
678
+ }
679
+ parseTickers(tickers, symbols = undefined, params = {}) {
680
+ const result = {};
681
+ const keys = Object.keys(tickers);
682
+ for (let i = 0; i < keys.length; i++) {
683
+ const key = keys[i];
684
+ const ticker = tickers[key];
685
+ const marketId = this.safeString(ticker, 'symbol', key);
686
+ const market = this.safeMarket(marketId, undefined, '-');
687
+ const symbol = market['symbol'];
688
+ result[symbol] = this.extend(this.parseTicker(ticker, market), params);
689
+ }
690
+ return this.filterByArrayTickers(result, 'symbol', symbols);
691
+ }
692
+ parseTicker(ticker, market = undefined) {
693
+ //
694
+ // fetchTicker
695
+ //
696
+ // {
697
+ // "open": 8615.55,
698
+ // "close": 8841.05,
699
+ // "high": 8921.1,
700
+ // "low": 8607,
701
+ // "last": 8841.05,
702
+ // "volume": 20.2802,
703
+ // "timestamp": "2020-03-03T03:11:18.964Z",
704
+ // }
705
+ //
706
+ // fetchTickers
707
+ //
708
+ // {
709
+ // "time": "2020-03-02T04:29:45.011Z",
710
+ // "open": 341.65,
711
+ // "close": 337.9,
712
+ // "high": 341.65,
713
+ // "low": 337.3,
714
+ // "last": 337.9,
715
+ // "volume": 0.054,
716
+ // "symbol": "bch-usdt"
717
+ // }
718
+ //
719
+ const marketId = this.safeString(ticker, 'symbol');
720
+ market = this.safeMarket(marketId, market, '-');
721
+ const symbol = market['symbol'];
722
+ const timestamp = this.parse8601(this.safeString2(ticker, 'time', 'timestamp'));
723
+ const close = this.safeString(ticker, 'close');
724
+ return this.safeTicker({
725
+ 'symbol': symbol,
726
+ 'info': ticker,
727
+ 'timestamp': timestamp,
728
+ 'datetime': this.iso8601(timestamp),
729
+ 'high': this.safeString(ticker, 'high'),
730
+ 'low': this.safeString(ticker, 'low'),
731
+ 'bid': undefined,
732
+ 'bidVolume': undefined,
733
+ 'ask': undefined,
734
+ 'askVolume': undefined,
735
+ 'vwap': undefined,
736
+ 'open': this.safeString(ticker, 'open'),
737
+ 'close': close,
738
+ 'last': this.safeString(ticker, 'last', close),
739
+ 'previousClose': undefined,
740
+ 'change': undefined,
741
+ 'percentage': undefined,
742
+ 'average': undefined,
743
+ 'baseVolume': this.safeString(ticker, 'volume'),
744
+ 'quoteVolume': undefined,
745
+ }, market);
746
+ }
747
+ /**
748
+ * @method
749
+ * @name hollaex#fetchTrades
750
+ * @description get the list of most recent trades for a particular symbol
751
+ * @see https://apidocs.hollaex.com/#trades
752
+ * @param {string} symbol unified symbol of the market to fetch trades for
753
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
754
+ * @param {int} [limit] the maximum amount of trades to fetch
755
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
756
+ * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
757
+ */
758
+ async fetchTrades(symbol, since = undefined, limit = undefined, params = {}) {
759
+ await this.loadMarkets();
760
+ const market = this.market(symbol);
761
+ const request = {
762
+ 'symbol': market['id'],
763
+ };
764
+ const response = await this.publicGetTrades(this.extend(request, params));
765
+ //
766
+ // {
767
+ // "btc-usdt": [
768
+ // {
769
+ // "size": 0.5,
770
+ // "price": 8830,
771
+ // "side": "buy",
772
+ // "timestamp": "2020-03-03T04:44:33.034Z"
773
+ // },
774
+ // // ...
775
+ // ]
776
+ // }
777
+ //
778
+ const trades = this.safeList(response, market['id'], []);
779
+ return this.parseTrades(trades, market, since, limit);
780
+ }
781
+ parseTrade(trade, market = undefined) {
782
+ //
783
+ // fetchTrades (public)
784
+ //
785
+ // {
786
+ // "size": 0.5,
787
+ // "price": 8830,
788
+ // "side": "buy",
789
+ // "timestamp": "2020-03-03T04:44:33.034Z"
790
+ // }
791
+ //
792
+ // fetchMyTrades (private)
793
+ // {
794
+ // "side":"sell",
795
+ // "symbol":"doge-usdt",
796
+ // "size":70,
797
+ // "price":0.147411,
798
+ // "timestamp":"2022-01-26T17:53:34.650Z",
799
+ // "order_id":"cba78ecb-4187-4da2-9d2f-c259aa693b5a",
800
+ // "fee":0.01031877,
801
+ // "fee_coin":"usdt"
802
+ // }
803
+ //
804
+ const marketId = this.safeString(trade, 'symbol');
805
+ market = this.safeMarket(marketId, market, '-');
806
+ const symbol = market['symbol'];
807
+ const datetime = this.safeString(trade, 'timestamp');
808
+ const timestamp = this.parse8601(datetime);
809
+ const side = this.safeString(trade, 'side');
810
+ const orderId = this.safeString(trade, 'order_id');
811
+ const priceString = this.safeString(trade, 'price');
812
+ const amountString = this.safeString(trade, 'size');
813
+ const feeCostString = this.safeString(trade, 'fee');
814
+ const feeCoin = this.safeString(trade, 'fee_coin');
815
+ let fee = undefined;
816
+ if (feeCostString !== undefined) {
817
+ fee = {
818
+ 'cost': feeCostString,
819
+ 'currency': this.safeCurrencyCode(feeCoin),
820
+ };
821
+ }
822
+ return this.safeTrade({
823
+ 'info': trade,
824
+ 'id': undefined,
825
+ 'timestamp': timestamp,
826
+ 'datetime': datetime,
827
+ 'symbol': symbol,
828
+ 'order': orderId,
829
+ 'type': undefined,
830
+ 'side': side,
831
+ 'takerOrMaker': undefined,
832
+ 'price': priceString,
833
+ 'amount': amountString,
834
+ 'cost': undefined,
835
+ 'fee': fee,
836
+ }, market);
837
+ }
838
+ /**
839
+ * @method
840
+ * @name hollaex#fetchTradingFees
841
+ * @description fetch the trading fees for multiple markets
842
+ * @see https://apidocs.hollaex.com/#tiers
843
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
844
+ * @returns {object} a dictionary of [fee structures]{@link https://docs.ccxt.com/#/?id=fee-structure} indexed by market symbols
845
+ */
846
+ async fetchTradingFees(params = {}) {
847
+ await this.loadMarkets();
848
+ const response = await this.publicGetTiers(params);
849
+ //
850
+ // {
851
+ // "1": {
852
+ // "id": "1",
853
+ // "name": "Silver",
854
+ // "icon": '',
855
+ // "description": "Your crypto journey starts here! Make your first deposit to start trading, and verify your account to level up!",
856
+ // "deposit_limit": "0",
857
+ // "withdrawal_limit": "1000",
858
+ // "fees": {
859
+ // "maker": {
860
+ // 'eth-btc': "0.1",
861
+ // 'ada-usdt': "0.1",
862
+ // ...
863
+ // },
864
+ // "taker": {
865
+ // 'eth-btc': "0.1",
866
+ // 'ada-usdt': "0.1",
867
+ // ...
868
+ // }
869
+ // },
870
+ // "note": "<ul>\n<li>Login and verify email</li>\n</ul>\n",
871
+ // "created_at": "2021-03-22T03:51:39.129Z",
872
+ // "updated_at": "2021-11-01T02:51:56.214Z"
873
+ // },
874
+ // ...
875
+ // }
876
+ //
877
+ const firstTier = this.safeValue(response, '1', {});
878
+ const fees = this.safeValue(firstTier, 'fees', {});
879
+ const makerFees = this.safeValue(fees, 'maker', {});
880
+ const takerFees = this.safeValue(fees, 'taker', {});
881
+ const result = {};
882
+ for (let i = 0; i < this.symbols.length; i++) {
883
+ const symbol = this.symbols[i];
884
+ const market = this.market(symbol);
885
+ const makerString = this.safeString(makerFees, market['id']);
886
+ const takerString = this.safeString(takerFees, market['id']);
887
+ result[symbol] = {
888
+ 'info': fees,
889
+ 'symbol': symbol,
890
+ 'maker': this.parseNumber(Precise.stringDiv(makerString, '100')),
891
+ 'taker': this.parseNumber(Precise.stringDiv(takerString, '100')),
892
+ 'percentage': true,
893
+ 'tierBased': true,
894
+ };
895
+ }
896
+ return result;
897
+ }
898
+ /**
899
+ * @method
900
+ * @name hollaex#fetchOHLCV
901
+ * @description hollaex has large gaps between candles, so it's recommended to specify since
902
+ * @see https://apidocs.hollaex.com/#chart
903
+ * @param {string} symbol unified symbol of the market to fetch OHLCV data for
904
+ * @param {string} timeframe the length of time each candle represents
905
+ * @param {int} [since] timestamp in ms of the earliest candle to fetch
906
+ * @param {int} [limit] the maximum amount of candles to fetch (max 500)
907
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
908
+ * @param {int} [params.until] timestamp in ms of the latest candle to fetch
909
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
910
+ */
911
+ async fetchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
912
+ await this.loadMarkets();
913
+ const market = this.market(symbol);
914
+ const request = {
915
+ 'symbol': market['id'],
916
+ 'resolution': this.safeString(this.timeframes, timeframe, timeframe),
917
+ };
918
+ let paginate = false;
919
+ const maxLimit = 500;
920
+ [paginate, params] = this.handleOptionAndParams(params, 'fetchOHLCV', 'paginate', paginate);
921
+ if (paginate) {
922
+ return await this.fetchPaginatedCallDeterministic('fetchOHLCV', symbol, since, limit, timeframe, params, maxLimit);
923
+ }
924
+ let until = this.safeInteger(params, 'until');
925
+ const timeDelta = this.parseTimeframe(timeframe) * maxLimit * 1000;
926
+ let start = since;
927
+ const now = this.milliseconds();
928
+ if (until === undefined && start === undefined) {
929
+ until = now;
930
+ start = until - timeDelta;
931
+ }
932
+ else if (until === undefined) {
933
+ until = now; // the exchange has not a lot of trades, so if we count until by limit and limit is small, it may return empty result
934
+ }
935
+ else if (start === undefined) {
936
+ start = until - timeDelta;
937
+ }
938
+ request['from'] = this.parseToInt(start / 1000); // convert to seconds
939
+ request['to'] = this.parseToInt(until / 1000); // convert to seconds
940
+ params = this.omit(params, 'until');
941
+ const response = await this.publicGetChart(this.extend(request, params));
942
+ //
943
+ // [
944
+ // {
945
+ // "time":"2020-03-02T20:00:00.000Z",
946
+ // "close":8872.1,
947
+ // "high":8872.1,
948
+ // "low":8858.6,
949
+ // "open":8858.6,
950
+ // "symbol":"btc-usdt",
951
+ // "volume":1.2922
952
+ // },
953
+ // ]
954
+ //
955
+ return this.parseOHLCVs(response, market, timeframe, since, limit);
956
+ }
957
+ parseOHLCV(ohlcv, market = undefined) {
958
+ //
959
+ // {
960
+ // "time":"2020-03-02T20:00:00.000Z",
961
+ // "close":8872.1,
962
+ // "high":8872.1,
963
+ // "low":8858.6,
964
+ // "open":8858.6,
965
+ // "symbol":"btc-usdt",
966
+ // "volume":1.2922
967
+ // }
968
+ //
969
+ return [
970
+ this.parse8601(this.safeString(ohlcv, 'time')),
971
+ this.safeNumber(ohlcv, 'open'),
972
+ this.safeNumber(ohlcv, 'high'),
973
+ this.safeNumber(ohlcv, 'low'),
974
+ this.safeNumber(ohlcv, 'close'),
975
+ this.safeNumber(ohlcv, 'volume'),
976
+ ];
977
+ }
978
+ parseBalance(response) {
979
+ const timestamp = this.parse8601(this.safeString(response, 'updated_at'));
980
+ const result = {
981
+ 'info': response,
982
+ 'timestamp': timestamp,
983
+ 'datetime': this.iso8601(timestamp),
984
+ };
985
+ const currencyIds = Object.keys(this.currencies_by_id);
986
+ for (let i = 0; i < currencyIds.length; i++) {
987
+ const currencyId = currencyIds[i];
988
+ const code = this.safeCurrencyCode(currencyId);
989
+ const account = this.account();
990
+ account['free'] = this.safeString(response, currencyId + '_available');
991
+ account['total'] = this.safeString(response, currencyId + '_balance');
992
+ result[code] = account;
993
+ }
994
+ return this.safeBalance(result);
995
+ }
996
+ /**
997
+ * @method
998
+ * @name hollaex#fetchBalance
999
+ * @description query for balance and get the amount of funds available for trading or funds locked in orders
1000
+ * @see https://apidocs.hollaex.com/#get-balance
1001
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1002
+ * @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
1003
+ */
1004
+ async fetchBalance(params = {}) {
1005
+ await this.loadMarkets();
1006
+ const response = await this.privateGetUserBalance(params);
1007
+ //
1008
+ // {
1009
+ // "updated_at": "2020-03-02T22:27:38.428Z",
1010
+ // "btc_balance": 0,
1011
+ // "btc_pending": 0,
1012
+ // "btc_available": 0,
1013
+ // "eth_balance": 0,
1014
+ // "eth_pending": 0,
1015
+ // "eth_available": 0,
1016
+ // // ...
1017
+ // }
1018
+ //
1019
+ return this.parseBalance(response);
1020
+ }
1021
+ /**
1022
+ * @method
1023
+ * @name hollaex#fetchOpenOrder
1024
+ * @description fetch an open order by it's id
1025
+ * @see https://apidocs.hollaex.com/#get-order
1026
+ * @param {string} id order id
1027
+ * @param {string} symbol not used by hollaex fetchOpenOrder ()
1028
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1029
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1030
+ */
1031
+ async fetchOpenOrder(id, symbol = undefined, params = {}) {
1032
+ await this.loadMarkets();
1033
+ const request = {
1034
+ 'order_id': id,
1035
+ };
1036
+ const response = await this.privateGetOrder(this.extend(request, params));
1037
+ //
1038
+ // {
1039
+ // "id": "string",
1040
+ // "side": "sell",
1041
+ // "symbol": "xht-usdt",
1042
+ // "size": 0.1,
1043
+ // "filled": 0,
1044
+ // "stop": null,
1045
+ // "fee": 0,
1046
+ // "fee_coin": "usdt",
1047
+ // "type": "limit",
1048
+ // "price": 1.09,
1049
+ // "status": "new",
1050
+ // "created_by": 116,
1051
+ // "created_at": "2021-02-17T02:32:38.910Z",
1052
+ // "updated_at": "2021-02-17T02:32:38.910Z",
1053
+ // "User": {
1054
+ // "id": 116,
1055
+ // "email": "fight@club.com",
1056
+ // "username": "narrator",
1057
+ // "exchange_id": 176
1058
+ // }
1059
+ // }
1060
+ //
1061
+ return this.parseOrder(response);
1062
+ }
1063
+ /**
1064
+ * @method
1065
+ * @name hollaex#fetchOpenOrders
1066
+ * @description fetch all unfilled currently open orders
1067
+ * @see https://apidocs.hollaex.com/#get-all-orders
1068
+ * @param {string} symbol unified market symbol
1069
+ * @param {int} [since] the earliest time in ms to fetch open orders for
1070
+ * @param {int} [limit] the maximum number of open orders structures to retrieve
1071
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1072
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1073
+ */
1074
+ async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1075
+ const request = {
1076
+ 'open': true,
1077
+ };
1078
+ return await this.fetchOrders(symbol, since, limit, this.extend(request, params));
1079
+ }
1080
+ /**
1081
+ * @method
1082
+ * @name hollaex#fetchClosedOrders
1083
+ * @description fetches information on multiple closed orders made by the user
1084
+ * @see https://apidocs.hollaex.com/#get-all-orders
1085
+ * @param {string} symbol unified market symbol of the market orders were made in
1086
+ * @param {int} [since] the earliest time in ms to fetch orders for
1087
+ * @param {int} [limit] the maximum number of order structures to retrieve
1088
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1089
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1090
+ */
1091
+ async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1092
+ const request = {
1093
+ 'open': false,
1094
+ };
1095
+ return await this.fetchOrders(symbol, since, limit, this.extend(request, params));
1096
+ }
1097
+ /**
1098
+ * @method
1099
+ * @name hollaex#fetchOrder
1100
+ * @description fetches information on an order made by the user
1101
+ * @see https://apidocs.hollaex.com/#get-order
1102
+ * @param {string} id
1103
+ * @param {string} symbol unified symbol of the market the order was made in
1104
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1105
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1106
+ */
1107
+ async fetchOrder(id, symbol = undefined, params = {}) {
1108
+ await this.loadMarkets();
1109
+ const request = {
1110
+ 'order_id': id,
1111
+ };
1112
+ const response = await this.privateGetOrder(this.extend(request, params));
1113
+ // {
1114
+ // "id": "string",
1115
+ // "side": "sell",
1116
+ // "symbol": "xht-usdt",
1117
+ // "size": 0.1,
1118
+ // "filled": 0,
1119
+ // "stop": null,
1120
+ // "fee": 0,
1121
+ // "fee_coin": "usdt",
1122
+ // "type": "limit",
1123
+ // "price": 1.09,
1124
+ // "status": "new",
1125
+ // "created_by": 116,
1126
+ // "created_at": "2021-02-17T02:32:38.910Z",
1127
+ // "updated_at": "2021-02-17T02:32:38.910Z",
1128
+ // "User": {
1129
+ // "id": 116,
1130
+ // "email": "fight@club.com",
1131
+ // "username": "narrator",
1132
+ // "exchange_id": 176
1133
+ // }
1134
+ // }
1135
+ const order = response;
1136
+ if (order === undefined) {
1137
+ throw new OrderNotFound(this.id + ' fetchOrder() could not find order id ' + id);
1138
+ }
1139
+ return this.parseOrder(order);
1140
+ }
1141
+ /**
1142
+ * @method
1143
+ * @name hollaex#fetchOrders
1144
+ * @description fetches information on multiple orders made by the user
1145
+ * @see https://apidocs.hollaex.com/#get-all-orders
1146
+ * @param {string} symbol unified market symbol of the market orders were made in
1147
+ * @param {int} [since] the earliest time in ms to fetch orders for
1148
+ * @param {int} [limit] the maximum number of order structures to retrieve
1149
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1150
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1151
+ */
1152
+ async fetchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1153
+ await this.loadMarkets();
1154
+ let market = undefined;
1155
+ const request = {
1156
+ // 'symbol': market['id'],
1157
+ // 'side': 'buy', // 'sell'
1158
+ // 'status': 'new', // 'filled', 'pfilled', 'canceled'
1159
+ // 'open': true,
1160
+ // 'limit': limit, // default 50, max 100
1161
+ // 'page': 1,
1162
+ // 'order_by': 'created_at', // id, ...
1163
+ // 'order': 'asc', // 'desc'
1164
+ // 'start_date': this.iso8601 (since),
1165
+ // 'end_date': this.iso8601 (this.milliseconds ()),
1166
+ };
1167
+ if (symbol !== undefined) {
1168
+ market = this.market(symbol);
1169
+ request['symbol'] = market['id'];
1170
+ }
1171
+ if (since !== undefined) {
1172
+ request['start_date'] = this.iso8601(since);
1173
+ }
1174
+ if (limit !== undefined) {
1175
+ request['limit'] = limit; // default 50, max 100
1176
+ }
1177
+ const response = await this.privateGetOrders(this.extend(request, params));
1178
+ //
1179
+ // {
1180
+ // "count": 1,
1181
+ // "data": [
1182
+ // {
1183
+ // "id": "string",
1184
+ // "side": "sell",
1185
+ // "symbol": "xht-usdt",
1186
+ // "size": 0.1,
1187
+ // "filled": 0,
1188
+ // "stop": null,
1189
+ // "fee": 0,
1190
+ // "fee_coin": "usdt",
1191
+ // "type": "limit",
1192
+ // "price": 1.09,
1193
+ // "status": "new",
1194
+ // "created_by": 116,
1195
+ // "created_at": "2021-02-17T02:32:38.910Z",
1196
+ // "updated_at": "2021-02-17T02:32:38.910Z",
1197
+ // "User": {
1198
+ // "id": 116,
1199
+ // "email": "fight@club.com",
1200
+ // "username": "narrator",
1201
+ // "exchange_id": 176
1202
+ // }
1203
+ // }
1204
+ // ]
1205
+ // }
1206
+ //
1207
+ const data = this.safeList(response, 'data', []);
1208
+ return this.parseOrders(data, market, since, limit);
1209
+ }
1210
+ parseOrderStatus(status) {
1211
+ const statuses = {
1212
+ 'new': 'open',
1213
+ 'pfilled': 'open',
1214
+ 'filled': 'closed',
1215
+ 'canceled': 'canceled',
1216
+ };
1217
+ return this.safeString(statuses, status, status);
1218
+ }
1219
+ parseOrder(order, market = undefined) {
1220
+ //
1221
+ // createOrder, fetchOpenOrder, fetchOpenOrders
1222
+ //
1223
+ // {
1224
+ // "id":"10644b7e-3c90-4ba9-bc3b-188f3a4e9cfd",
1225
+ // "created_by":140093,
1226
+ // "exchange_id":22,
1227
+ // "side":"buy",
1228
+ // "symbol":"doge-usdt",
1229
+ // "type":"limit",
1230
+ // "price":0.05,
1231
+ // "size":10,
1232
+ // "stop":null,
1233
+ // "filled":0,
1234
+ // "status":"canceled",
1235
+ // "fee":0,
1236
+ // "fee_coin":"doge",
1237
+ // "meta": { // optional field only returned for postOnly orders
1238
+ // "post_only":true
1239
+ // },
1240
+ // "fee_structure": {
1241
+ // "maker":0.1,
1242
+ // "taker":0.1
1243
+ // },
1244
+ // "created_at":"2022-05-31T08:14:14.747Z",
1245
+ // "updated_at":"2022-05-31T08:14:23.727Z"
1246
+ // }
1247
+ //
1248
+ const marketId = this.safeString(order, 'symbol');
1249
+ const symbol = this.safeSymbol(marketId, market, '-');
1250
+ const id = this.safeString(order, 'id');
1251
+ const timestamp = this.parse8601(this.safeString(order, 'created_at'));
1252
+ const type = this.safeString(order, 'type');
1253
+ const side = this.safeString(order, 'side');
1254
+ const price = this.safeString(order, 'price');
1255
+ const amount = this.safeString(order, 'size');
1256
+ const filled = this.safeString(order, 'filled');
1257
+ const status = this.parseOrderStatus(this.safeString(order, 'status'));
1258
+ const meta = this.safeValue(order, 'meta', {});
1259
+ const postOnly = this.safeBool(meta, 'post_only', false);
1260
+ return this.safeOrder({
1261
+ 'id': id,
1262
+ 'clientOrderId': undefined,
1263
+ 'timestamp': timestamp,
1264
+ 'datetime': this.iso8601(timestamp),
1265
+ 'lastTradeTimestamp': undefined,
1266
+ 'status': status,
1267
+ 'symbol': symbol,
1268
+ 'type': type,
1269
+ 'timeInForce': undefined,
1270
+ 'postOnly': postOnly,
1271
+ 'side': side,
1272
+ 'price': price,
1273
+ 'triggerPrice': this.safeString(order, 'stop'),
1274
+ 'amount': amount,
1275
+ 'filled': filled,
1276
+ 'remaining': undefined,
1277
+ 'cost': undefined,
1278
+ 'trades': undefined,
1279
+ 'fee': undefined,
1280
+ 'info': order,
1281
+ 'average': undefined,
1282
+ }, market);
1283
+ }
1284
+ /**
1285
+ * @method
1286
+ * @name hollaex#createOrder
1287
+ * @description create a trade order
1288
+ * @see https://apidocs.hollaex.com/#create-order
1289
+ * @param {string} symbol unified symbol of the market to create an order in
1290
+ * @param {string} type 'market' or 'limit'
1291
+ * @param {string} side 'buy' or 'sell'
1292
+ * @param {float} amount how much of currency you want to trade in units of base currency
1293
+ * @param {float} [price] the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1294
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1295
+ * @param {float} [params.triggerPrice] the price at which a trigger order is triggered at
1296
+ * @param {bool} [params.postOnly] if true, the order will only be posted to the order book and not executed immediately
1297
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1298
+ */
1299
+ async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
1300
+ await this.loadMarkets();
1301
+ const market = this.market(symbol);
1302
+ const request = {
1303
+ 'symbol': market['id'],
1304
+ 'side': side,
1305
+ 'size': this.amountToPrecision(symbol, amount),
1306
+ 'type': type,
1307
+ // 'stop': parseFloat (this.priceToPrecision (symbol, stopPrice)),
1308
+ // 'meta': {}, // other options such as post_only
1309
+ };
1310
+ const triggerPrice = this.safeNumberN(params, ['triggerPrice', 'stopPrice', 'stop']);
1311
+ const meta = this.safeValue(params, 'meta', {});
1312
+ const exchangeSpecificParam = this.safeBool(meta, 'post_only', false);
1313
+ const isMarketOrder = type === 'market';
1314
+ const postOnly = this.isPostOnly(isMarketOrder, exchangeSpecificParam, params);
1315
+ if (!isMarketOrder) {
1316
+ request['price'] = this.priceToPrecision(symbol, price);
1317
+ }
1318
+ if (triggerPrice !== undefined) {
1319
+ request['stop'] = this.priceToPrecision(symbol, triggerPrice);
1320
+ }
1321
+ if (postOnly) {
1322
+ request['meta'] = { 'post_only': true };
1323
+ }
1324
+ params = this.omit(params, ['postOnly', 'timeInForce', 'stopPrice', 'triggerPrice', 'stop']);
1325
+ const response = await this.privatePostOrder(this.extend(request, params));
1326
+ //
1327
+ // {
1328
+ // "fee": 0,
1329
+ // "meta": {},
1330
+ // "symbol": "xht-usdt",
1331
+ // "side": "sell",
1332
+ // "size": 0.1,
1333
+ // "type": "limit",
1334
+ // "price": 1,
1335
+ // "fee_structure": {
1336
+ // "maker": 0.2,
1337
+ // "taker": 0.2
1338
+ // },
1339
+ // "fee_coin": "usdt",
1340
+ // "id": "string",
1341
+ // "created_by": 116,
1342
+ // "filled": 0,
1343
+ // "status": "new",
1344
+ // "updated_at": "2021-02-17T03:03:19.231Z",
1345
+ // "created_at": "2021-02-17T03:03:19.231Z",
1346
+ // "stop": null
1347
+ // }
1348
+ //
1349
+ return this.parseOrder(response, market);
1350
+ }
1351
+ /**
1352
+ * @method
1353
+ * @name hollaex#cancelOrder
1354
+ * @description cancels an open order
1355
+ * @see https://apidocs.hollaex.com/#cancel-order
1356
+ * @param {string} id order id
1357
+ * @param {string} symbol unified symbol of the market the order was made in
1358
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1359
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1360
+ */
1361
+ async cancelOrder(id, symbol = undefined, params = {}) {
1362
+ await this.loadMarkets();
1363
+ const request = {
1364
+ 'order_id': id,
1365
+ };
1366
+ const response = await this.privateDeleteOrder(this.extend(request, params));
1367
+ //
1368
+ // {
1369
+ // "title": "string",
1370
+ // "symbol": "xht-usdt",
1371
+ // "side": "sell",
1372
+ // "size": 1,
1373
+ // "type": "limit",
1374
+ // "price": 0.1,
1375
+ // "id": "string",
1376
+ // "created_by": 34,
1377
+ // "filled": 0
1378
+ // }
1379
+ //
1380
+ return this.parseOrder(response);
1381
+ }
1382
+ /**
1383
+ * @method
1384
+ * @name hollaex#cancelAllOrders
1385
+ * @description cancel all open orders in a market
1386
+ * @see https://apidocs.hollaex.com/#cancel-all-orders
1387
+ * @param {string} symbol unified market symbol of the market to cancel orders in
1388
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1389
+ * @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1390
+ */
1391
+ async cancelAllOrders(symbol = undefined, params = {}) {
1392
+ if (symbol === undefined) {
1393
+ throw new ArgumentsRequired(this.id + ' cancelAllOrders() requires a symbol argument');
1394
+ }
1395
+ await this.loadMarkets();
1396
+ const request = {};
1397
+ let market = undefined;
1398
+ market = this.market(symbol);
1399
+ request['symbol'] = market['id'];
1400
+ const response = await this.privateDeleteOrderAll(this.extend(request, params));
1401
+ //
1402
+ // [
1403
+ // {
1404
+ // "title": "string",
1405
+ // "symbol": "xht-usdt",
1406
+ // "side": "sell",
1407
+ // "size": 1,
1408
+ // "type": "limit",
1409
+ // "price": 0.1,
1410
+ // "id": "string",
1411
+ // "created_by": 34,
1412
+ // "filled": 0
1413
+ // }
1414
+ // ]
1415
+ //
1416
+ return this.parseOrders(response, market);
1417
+ }
1418
+ /**
1419
+ * @method
1420
+ * @name hollaex#fetchMyTrades
1421
+ * @description fetch all trades made by the user
1422
+ * @see https://apidocs.hollaex.com/#get-trades
1423
+ * @param {string} symbol unified market symbol
1424
+ * @param {int} [since] the earliest time in ms to fetch trades for
1425
+ * @param {int} [limit] the maximum number of trades structures to retrieve
1426
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1427
+ * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
1428
+ */
1429
+ async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1430
+ await this.loadMarkets();
1431
+ const request = {
1432
+ // 'symbol': market['id'],
1433
+ // 'limit': 50, // default 50, max 100
1434
+ // 'page': 1, // page of data to retrieve
1435
+ // 'order_by': 'timestamp', // field to order data
1436
+ // 'order': 'asc', // asc or desc
1437
+ // 'start_date': 123, // starting date of queried data
1438
+ // 'end_date': 321, // ending date of queried data
1439
+ };
1440
+ let market = undefined;
1441
+ if (symbol !== undefined) {
1442
+ market = this.market(symbol);
1443
+ request['symbol'] = market['id'];
1444
+ }
1445
+ if (limit !== undefined) {
1446
+ request['limit'] = limit; // default 50, max 100
1447
+ }
1448
+ if (since !== undefined) {
1449
+ request['start_date'] = this.iso8601(since);
1450
+ }
1451
+ const response = await this.privateGetUserTrades(this.extend(request, params));
1452
+ //
1453
+ // {
1454
+ // "count": 1,
1455
+ // "data": [
1456
+ // {
1457
+ // "side": "buy",
1458
+ // "symbol": "eth-usdt",
1459
+ // "size": 0.086,
1460
+ // "price": 226.19,
1461
+ // "timestamp": "2020-03-03T08:03:55.459Z",
1462
+ // "fee": 0.1
1463
+ // }
1464
+ // ]
1465
+ // }
1466
+ //
1467
+ const data = this.safeList(response, 'data', []);
1468
+ return this.parseTrades(data, market, since, limit);
1469
+ }
1470
+ parseDepositAddress(depositAddress, currency = undefined) {
1471
+ //
1472
+ // {
1473
+ // "currency":"usdt",
1474
+ // "address":"TECLD9XBH31XpyykdHU3uEAeUK7E6Lrmik",
1475
+ // "network":"trx",
1476
+ // "standard":null,
1477
+ // "is_valid":true,
1478
+ // "created_at":"2021-05-12T02:43:05.446Z"
1479
+ // }
1480
+ //
1481
+ let address = this.safeString(depositAddress, 'address');
1482
+ let tag = undefined;
1483
+ if (address !== undefined) {
1484
+ const parts = address.split(':');
1485
+ address = this.safeString(parts, 0);
1486
+ tag = this.safeString(parts, 1);
1487
+ }
1488
+ this.checkAddress(address);
1489
+ const currencyId = this.safeString(depositAddress, 'currency');
1490
+ currency = this.safeCurrency(currencyId, currency);
1491
+ const network = this.safeString(depositAddress, 'network');
1492
+ return {
1493
+ 'info': depositAddress,
1494
+ 'currency': currency['code'],
1495
+ 'network': network,
1496
+ 'address': address,
1497
+ 'tag': tag,
1498
+ };
1499
+ }
1500
+ /**
1501
+ * @method
1502
+ * @name hollaex#fetchDepositAddresses
1503
+ * @description fetch deposit addresses for multiple currencies and chain types
1504
+ * @see https://apidocs.hollaex.com/#get-user
1505
+ * @param {string[]|undefined} codes list of unified currency codes, default is undefined
1506
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1507
+ * @returns {object} a list of [address structures]{@link https://docs.ccxt.com/#/?id=address-structure}
1508
+ */
1509
+ async fetchDepositAddresses(codes = undefined, params = {}) {
1510
+ await this.loadMarkets();
1511
+ const network = this.safeString(params, 'network');
1512
+ params = this.omit(params, 'network');
1513
+ const response = await this.privateGetUser(params);
1514
+ //
1515
+ // {
1516
+ // "id":620,
1517
+ // "email":"igor.kroitor@gmail.com",
1518
+ // "full_name":"",
1519
+ // "gender":false,
1520
+ // "nationality":"",
1521
+ // "dob":null,
1522
+ // "phone_number":"",
1523
+ // "address":{"city":"","address":"","country":"","postal_code":""},
1524
+ // "id_data":{"note":"","type":"","number":"","status":0,"issued_date":"","expiration_date":""},
1525
+ // "bank_account":[],
1526
+ // "crypto_wallet":{},
1527
+ // "verification_level":1,
1528
+ // "email_verified":true,
1529
+ // "otp_enabled":true,
1530
+ // "activated":true,
1531
+ // "username":"igor.kroitor",
1532
+ // "affiliation_code":"QSWA6G",
1533
+ // "settings":{
1534
+ // "chat":{"set_username":false},
1535
+ // "risk":{"popup_warning":false,"order_portfolio_percentage":20},
1536
+ // "audio":{"public_trade":false,"order_completed":true,"order_partially_completed":true},
1537
+ // "language":"en",
1538
+ // "interface":{"theme":"white","order_book_levels":10},
1539
+ // "notification":{"popup_order_completed":true,"popup_order_confirmation":true,"popup_order_partially_filled":true}
1540
+ // },
1541
+ // "affiliation_rate":0,
1542
+ // "network_id":10620,
1543
+ // "discount":0,
1544
+ // "created_at":"2021-03-24T02:37:57.379Z",
1545
+ // "updated_at":"2021-03-24T02:37:57.379Z",
1546
+ // "balance":{
1547
+ // "btc_balance":0,
1548
+ // "btc_available":0,
1549
+ // "eth_balance":0.000914,
1550
+ // "eth_available":0.000914,
1551
+ // "updated_at":"2020-03-04T04:03:27.174Z
1552
+ // "},
1553
+ // "wallet":[
1554
+ // {"currency":"usdt","address":"TECLD9XBH31XpyykdHU3uEAeUK7E6Lrmik","network":"trx","standard":null,"is_valid":true,"created_at":"2021-05-12T02:43:05.446Z"},
1555
+ // {"currency":"xrp","address":"rGcSzmuRx8qngPRnrvpCKkP9V4njeCPGCv:286741597","network":"xrp","standard":null,"is_valid":true,"created_at":"2021-05-12T02:49:01.273Z"}
1556
+ // ]
1557
+ // }
1558
+ //
1559
+ const wallet = this.safeValue(response, 'wallet', []);
1560
+ const addresses = (network === undefined) ? wallet : this.filterBy(wallet, 'network', network);
1561
+ return this.parseDepositAddresses(addresses, codes);
1562
+ }
1563
+ /**
1564
+ * @method
1565
+ * @name hollaex#fetchDeposits
1566
+ * @description fetch all deposits made to an account
1567
+ * @see https://apidocs.hollaex.com/#get-deposits
1568
+ * @param {string} code unified currency code
1569
+ * @param {int} [since] the earliest time in ms to fetch deposits for
1570
+ * @param {int} [limit] the maximum number of deposits structures to retrieve
1571
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1572
+ * @returns {object[]} a list of [transaction structures]{@link https://docs.ccxt.com/#/?id=transaction-structure}
1573
+ */
1574
+ async fetchDeposits(code = undefined, since = undefined, limit = undefined, params = {}) {
1575
+ await this.loadMarkets();
1576
+ const request = {
1577
+ // 'currency': currency['id'],
1578
+ // 'limit': 50, // default 50, max 100
1579
+ // 'page': 1, // page of data to retrieve
1580
+ // 'order_by': 'timestamp', // field to order data
1581
+ // 'order': 'asc', // asc or desc
1582
+ // 'start_date': 123, // starting date of queried data
1583
+ // 'end_date': 321, // ending date of queried data
1584
+ };
1585
+ let currency = undefined;
1586
+ if (code !== undefined) {
1587
+ currency = this.currency(code);
1588
+ request['currency'] = currency['id'];
1589
+ }
1590
+ if (limit !== undefined) {
1591
+ request['limit'] = limit; // default 50, max 100
1592
+ }
1593
+ if (since !== undefined) {
1594
+ request['start_date'] = this.iso8601(since);
1595
+ }
1596
+ const response = await this.privateGetUserDeposits(this.extend(request, params));
1597
+ //
1598
+ // {
1599
+ // "count": 1,
1600
+ // "data": [
1601
+ // {
1602
+ // "id": 539,
1603
+ // "amount": 20,
1604
+ // "fee": 0,
1605
+ // "address": "0x5c0cc98270d7089408fcbcc8e2131287f5be2306",
1606
+ // "transaction_id": "0xd4006327a5ec2c41adbdcf566eaaba6597c3d45906abe78ea1a4a022647c2e28",
1607
+ // "status": true,
1608
+ // "dismissed": false,
1609
+ // "rejected": false,
1610
+ // "description": "",
1611
+ // "type": "deposit",
1612
+ // "currency": "usdt",
1613
+ // "created_at": "2020-03-03T07:56:36.198Z",
1614
+ // "updated_at": "2020-03-03T08:00:05.674Z",
1615
+ // "user_id": 620
1616
+ // }
1617
+ // ]
1618
+ // }
1619
+ //
1620
+ const data = this.safeList(response, 'data', []);
1621
+ return this.parseTransactions(data, currency, since, limit);
1622
+ }
1623
+ /**
1624
+ * @method
1625
+ * @name hollaex#fetchWithdrawal
1626
+ * @description fetch data on a currency withdrawal via the withdrawal id
1627
+ * @see https://apidocs.hollaex.com/#get-withdrawals
1628
+ * @param {string} id withdrawal id
1629
+ * @param {string} code unified currency code of the currency withdrawn, default is undefined
1630
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1631
+ * @returns {object} a [transaction structure]{@link https://docs.ccxt.com/#/?id=transaction-structure}
1632
+ */
1633
+ async fetchWithdrawal(id, code = undefined, params = {}) {
1634
+ await this.loadMarkets();
1635
+ const request = {
1636
+ 'transaction_id': id,
1637
+ };
1638
+ let currency = undefined;
1639
+ if (code !== undefined) {
1640
+ currency = this.currency(code);
1641
+ request['currency'] = currency['id'];
1642
+ }
1643
+ const response = await this.privateGetUserWithdrawals(this.extend(request, params));
1644
+ //
1645
+ // {
1646
+ // "count": 1,
1647
+ // "data": [
1648
+ // {
1649
+ // "id": 539,
1650
+ // "amount": 20,
1651
+ // "fee": 0,
1652
+ // "address": "0x5c0cc98270d7089408fcbcc8e2131287f5be2306",
1653
+ // "transaction_id": "0xd4006327a5ec2c41adbdcf566eaaba6597c3d45906abe78ea1a4a022647c2e28",
1654
+ // "status": true,
1655
+ // "dismissed": false,
1656
+ // "rejected": false,
1657
+ // "description": "",
1658
+ // "type": "withdrawal",
1659
+ // "currency": "usdt",
1660
+ // "created_at": "2020-03-03T07:56:36.198Z",
1661
+ // "updated_at": "2020-03-03T08:00:05.674Z",
1662
+ // "user_id": 620
1663
+ // }
1664
+ // ]
1665
+ // }
1666
+ //
1667
+ const data = this.safeValue(response, 'data', []);
1668
+ const transaction = this.safeDict(data, 0, {});
1669
+ return this.parseTransaction(transaction, currency);
1670
+ }
1671
+ /**
1672
+ * @method
1673
+ * @name hollaex#fetchWithdrawals
1674
+ * @description fetch all withdrawals made from an account
1675
+ * @see https://apidocs.hollaex.com/#get-withdrawals
1676
+ * @param {string} code unified currency code
1677
+ * @param {int} [since] the earliest time in ms to fetch withdrawals for
1678
+ * @param {int} [limit] the maximum number of withdrawals structures to retrieve
1679
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1680
+ * @returns {object[]} a list of [transaction structures]{@link https://docs.ccxt.com/#/?id=transaction-structure}
1681
+ */
1682
+ async fetchWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
1683
+ await this.loadMarkets();
1684
+ const request = {
1685
+ // 'currency': currency['id'],
1686
+ // 'limit': 50, // default 50, max 100
1687
+ // 'page': 1, // page of data to retrieve
1688
+ // 'order_by': 'timestamp', // field to order data
1689
+ // 'order': 'asc', // asc or desc
1690
+ // 'start_date': 123, // starting date of queried data
1691
+ // 'end_date': 321, // ending date of queried data
1692
+ };
1693
+ let currency = undefined;
1694
+ if (code !== undefined) {
1695
+ currency = this.currency(code);
1696
+ request['currency'] = currency['id'];
1697
+ }
1698
+ if (limit !== undefined) {
1699
+ request['limit'] = limit; // default 50, max 100
1700
+ }
1701
+ if (since !== undefined) {
1702
+ request['start_date'] = this.iso8601(since);
1703
+ }
1704
+ const response = await this.privateGetUserWithdrawals(this.extend(request, params));
1705
+ //
1706
+ // {
1707
+ // "count": 1,
1708
+ // "data": [
1709
+ // {
1710
+ // "id": 539,
1711
+ // "amount": 20,
1712
+ // "fee": 0,
1713
+ // "address": "0x5c0cc98270d7089408fcbcc8e2131287f5be2306",
1714
+ // "transaction_id": "0xd4006327a5ec2c41adbdcf566eaaba6597c3d45906abe78ea1a4a022647c2e28",
1715
+ // "status": true,
1716
+ // "dismissed": false,
1717
+ // "rejected": false,
1718
+ // "description": "",
1719
+ // "type": "withdrawal",
1720
+ // "currency": "usdt",
1721
+ // "created_at": "2020-03-03T07:56:36.198Z",
1722
+ // "updated_at": "2020-03-03T08:00:05.674Z",
1723
+ // "user_id": 620
1724
+ // }
1725
+ // ]
1726
+ // }
1727
+ //
1728
+ const data = this.safeList(response, 'data', []);
1729
+ return this.parseTransactions(data, currency, since, limit);
1730
+ }
1731
+ parseTransaction(transaction, currency = undefined) {
1732
+ //
1733
+ // fetchWithdrawals, fetchDeposits
1734
+ //
1735
+ // {
1736
+ // "id": 539,
1737
+ // "amount": 20,
1738
+ // "fee": 0,
1739
+ // "address": "0x5c0cc98270d7089408fcbcc8e2131287f5be2306",
1740
+ // "transaction_id": "0xd4006327a5ec2c41adbdcf566eaaba6597c3d45906abe78ea1a4a022647c2e28",
1741
+ // "status": true,
1742
+ // "dismissed": false,
1743
+ // "rejected": false,
1744
+ // "description": "",
1745
+ // "type": "withdrawal",
1746
+ // "currency": "usdt",
1747
+ // "created_at": "2020-03-03T07:56:36.198Z",
1748
+ // "updated_at": "2020-03-03T08:00:05.674Z",
1749
+ // "user_id": 620
1750
+ // }
1751
+ //
1752
+ // withdraw
1753
+ //
1754
+ // {
1755
+ // "message": "Withdrawal request is in the queue and will be processed.",
1756
+ // "transaction_id": "1d1683c3-576a-4d53-8ff5-27c93fd9758a",
1757
+ // "amount": 1,
1758
+ // "currency": "xht",
1759
+ // "fee": 0,
1760
+ // "fee_coin": "xht"
1761
+ // }
1762
+ //
1763
+ const id = this.safeString(transaction, 'id');
1764
+ const txid = this.safeString(transaction, 'transaction_id');
1765
+ const timestamp = this.parse8601(this.safeString(transaction, 'created_at'));
1766
+ const updated = this.parse8601(this.safeString(transaction, 'updated_at'));
1767
+ const type = this.safeString(transaction, 'type');
1768
+ const amount = this.safeNumber(transaction, 'amount');
1769
+ let address = this.safeString(transaction, 'address');
1770
+ let addressTo = undefined;
1771
+ const addressFrom = undefined;
1772
+ let tag = undefined;
1773
+ let tagTo = undefined;
1774
+ const tagFrom = undefined;
1775
+ if (address !== undefined) {
1776
+ const parts = address.split(':');
1777
+ address = this.safeString(parts, 0);
1778
+ tag = this.safeString(parts, 1);
1779
+ addressTo = address;
1780
+ tagTo = tag;
1781
+ }
1782
+ const currencyId = this.safeString(transaction, 'currency');
1783
+ currency = this.safeCurrency(currencyId, currency);
1784
+ let status = this.safeValue(transaction, 'status');
1785
+ const dismissed = this.safeValue(transaction, 'dismissed');
1786
+ const rejected = this.safeValue(transaction, 'rejected');
1787
+ if (status) {
1788
+ status = 'ok';
1789
+ }
1790
+ else if (dismissed) {
1791
+ status = 'canceled';
1792
+ }
1793
+ else if (rejected) {
1794
+ status = 'failed';
1795
+ }
1796
+ else {
1797
+ status = 'pending';
1798
+ }
1799
+ const feeCurrencyId = this.safeString(transaction, 'fee_coin');
1800
+ const feeCurrencyCode = this.safeCurrencyCode(feeCurrencyId, currency);
1801
+ const feeCost = this.safeNumber(transaction, 'fee');
1802
+ let fee = undefined;
1803
+ if (feeCost !== undefined) {
1804
+ fee = {
1805
+ 'currency': feeCurrencyCode,
1806
+ 'cost': feeCost,
1807
+ };
1808
+ }
1809
+ return {
1810
+ 'info': transaction,
1811
+ 'id': id,
1812
+ 'txid': txid,
1813
+ 'timestamp': timestamp,
1814
+ 'datetime': this.iso8601(timestamp),
1815
+ 'network': undefined,
1816
+ 'addressFrom': addressFrom,
1817
+ 'address': address,
1818
+ 'addressTo': addressTo,
1819
+ 'tagFrom': tagFrom,
1820
+ 'tag': tag,
1821
+ 'tagTo': tagTo,
1822
+ 'type': type,
1823
+ 'amount': amount,
1824
+ 'currency': currency['code'],
1825
+ 'status': status,
1826
+ 'updated': updated,
1827
+ 'comment': this.safeString(transaction, 'message'),
1828
+ 'internal': undefined,
1829
+ 'fee': fee,
1830
+ };
1831
+ }
1832
+ /**
1833
+ * @method
1834
+ * @name hollaex#withdraw
1835
+ * @description make a withdrawal
1836
+ * @see https://apidocs.hollaex.com/#withdrawal
1837
+ * @param {string} code unified currency code
1838
+ * @param {float} amount the amount to withdraw
1839
+ * @param {string} address the address to withdraw to
1840
+ * @param {string} tag
1841
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1842
+ * @returns {object} a [transaction structure]{@link https://docs.ccxt.com/#/?id=transaction-structure}
1843
+ */
1844
+ async withdraw(code, amount, address, tag = undefined, params = {}) {
1845
+ [tag, params] = this.handleWithdrawTagAndParams(tag, params);
1846
+ this.checkAddress(address);
1847
+ await this.loadMarkets();
1848
+ const currency = this.currency(code);
1849
+ if (tag !== undefined) {
1850
+ address += ':' + tag;
1851
+ }
1852
+ const network = this.safeString(params, 'network');
1853
+ if (network === undefined) {
1854
+ throw new ArgumentsRequired(this.id + ' withdraw() requires a network parameter');
1855
+ }
1856
+ params = this.omit(params, 'network');
1857
+ const request = {
1858
+ 'currency': currency['id'],
1859
+ 'amount': amount,
1860
+ 'address': address,
1861
+ 'network': this.networkCodeToId(network, code),
1862
+ };
1863
+ const response = await this.privatePostUserWithdrawal(this.extend(request, params));
1864
+ //
1865
+ // {
1866
+ // "message": "Withdrawal request is in the queue and will be processed.",
1867
+ // "transaction_id": "1d1683c3-576a-4d53-8ff5-27c93fd9758a",
1868
+ // "amount": 1,
1869
+ // "currency": "xht",
1870
+ // "fee": 0,
1871
+ // "fee_coin": "xht"
1872
+ // }
1873
+ //
1874
+ return this.parseTransaction(response, currency);
1875
+ }
1876
+ parseDepositWithdrawFee(fee, currency = undefined) {
1877
+ //
1878
+ // "bch":{
1879
+ // "id":4,
1880
+ // "fullname":"Bitcoin Cash",
1881
+ // "symbol":"bch",
1882
+ // "active":true,
1883
+ // "verified":true,
1884
+ // "allow_deposit":true,
1885
+ // "allow_withdrawal":true,
1886
+ // "withdrawal_fee":0.0001,
1887
+ // "min":0.001,
1888
+ // "max":100000,
1889
+ // "increment_unit":0.001,
1890
+ // "logo":"https://bitholla.s3.ap-northeast-2.amazonaws.com/icon/BCH-hollaex-asset-01.svg",
1891
+ // "code":"bch",
1892
+ // "is_public":true,
1893
+ // "meta":{},
1894
+ // "estimated_price":null,
1895
+ // "description":null,
1896
+ // "type":"blockchain",
1897
+ // "network":null,
1898
+ // "standard":null,
1899
+ // "issuer":"HollaEx",
1900
+ // "withdrawal_fees":null,
1901
+ // "created_at":"2019-08-09T10:45:43.367Z",
1902
+ // "updated_at":"2021-12-13T03:08:32.372Z",
1903
+ // "created_by":1,
1904
+ // "owner_id":1
1905
+ // }
1906
+ //
1907
+ const result = {
1908
+ 'info': fee,
1909
+ 'withdraw': {
1910
+ 'fee': undefined,
1911
+ 'percentage': undefined,
1912
+ },
1913
+ 'deposit': {
1914
+ 'fee': undefined,
1915
+ 'percentage': undefined,
1916
+ },
1917
+ 'networks': {},
1918
+ };
1919
+ const allowWithdrawal = this.safeValue(fee, 'allow_withdrawal');
1920
+ if (allowWithdrawal) {
1921
+ result['withdraw'] = { 'fee': this.safeNumber(fee, 'withdrawal_fee'), 'percentage': false };
1922
+ }
1923
+ const withdrawalFees = this.safeValue(fee, 'withdrawal_fees');
1924
+ if (withdrawalFees !== undefined) {
1925
+ const keys = Object.keys(withdrawalFees);
1926
+ const keysLength = keys.length;
1927
+ for (let i = 0; i < keysLength; i++) {
1928
+ const key = keys[i];
1929
+ const value = withdrawalFees[key];
1930
+ const currencyId = this.safeString(value, 'symbol');
1931
+ const currencyCode = this.safeCurrencyCode(currencyId);
1932
+ const networkCode = this.networkIdToCode(key, currencyCode);
1933
+ const networkCodeUpper = networkCode.toUpperCase(); // default to the upper case network code
1934
+ const withdrawalFee = this.safeNumber(value, 'value');
1935
+ result['networks'][networkCodeUpper] = {
1936
+ 'deposit': undefined,
1937
+ 'withdraw': withdrawalFee,
1938
+ };
1939
+ }
1940
+ }
1941
+ return result;
1942
+ }
1943
+ /**
1944
+ * @method
1945
+ * @name hollaex#fetchDepositWithdrawFees
1946
+ * @description fetch deposit and withdraw fees
1947
+ * @see https://apidocs.hollaex.com/#constants
1948
+ * @param {string[]|undefined} codes list of unified currency codes
1949
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1950
+ * @returns {object} a list of [fee structures]{@link https://docs.ccxt.com/#/?id=fee-structure}
1951
+ */
1952
+ async fetchDepositWithdrawFees(codes = undefined, params = {}) {
1953
+ const response = await this.publicGetConstants(params);
1954
+ //
1955
+ // {
1956
+ // "coins":{
1957
+ // "bch":{
1958
+ // "id":4,
1959
+ // "fullname":"Bitcoin Cash",
1960
+ // "symbol":"bch",
1961
+ // "active":true,
1962
+ // "verified":true,
1963
+ // "allow_deposit":true,
1964
+ // "allow_withdrawal":true,
1965
+ // "withdrawal_fee":0.0001,
1966
+ // "min":0.001,
1967
+ // "max":100000,
1968
+ // "increment_unit":0.001,
1969
+ // "logo":"https://bitholla.s3.ap-northeast-2.amazonaws.com/icon/BCH-hollaex-asset-01.svg",
1970
+ // "code":"bch",
1971
+ // "is_public":true,
1972
+ // "meta":{},
1973
+ // "estimated_price":null,
1974
+ // "description":null,
1975
+ // "type":"blockchain",
1976
+ // "network":null,
1977
+ // "standard":null,
1978
+ // "issuer":"HollaEx",
1979
+ // "withdrawal_fees":null,
1980
+ // "created_at":"2019-08-09T10:45:43.367Z",
1981
+ // "updated_at":"2021-12-13T03:08:32.372Z",
1982
+ // "created_by":1,
1983
+ // "owner_id":1
1984
+ // },
1985
+ // },
1986
+ // "network":"https://api.hollaex.network"
1987
+ // }
1988
+ //
1989
+ const coins = this.safeDict(response, 'coins', {});
1990
+ return this.parseDepositWithdrawFees(coins, codes, 'symbol');
1991
+ }
1992
+ sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
1993
+ const query = this.omit(params, this.extractParams(path));
1994
+ path = '/' + this.version + '/' + this.implodeParams(path, params);
1995
+ if ((method === 'GET') || (method === 'DELETE')) {
1996
+ if (Object.keys(query).length) {
1997
+ path += '?' + this.urlencode(query);
1998
+ }
1999
+ }
2000
+ const url = this.urls['api']['rest'] + path;
2001
+ if (api === 'private') {
2002
+ this.checkRequiredCredentials();
2003
+ const defaultExpires = this.safeInteger2(this.options, 'api-expires', 'expires', this.parseToInt(this.timeout / 1000));
2004
+ const expires = this.sum(this.seconds(), defaultExpires);
2005
+ const expiresString = expires.toString();
2006
+ let auth = method + path + expiresString;
2007
+ headers = {
2008
+ 'api-key': this.apiKey,
2009
+ 'api-expires': expiresString,
2010
+ };
2011
+ if (method === 'POST') {
2012
+ headers['Content-type'] = 'application/json';
2013
+ if (Object.keys(query).length) {
2014
+ body = this.json(query);
2015
+ auth += body;
2016
+ }
2017
+ }
2018
+ const signature = this.hmac(this.encode(auth), this.encode(this.secret), sha256);
2019
+ headers['api-signature'] = signature;
2020
+ }
2021
+ return { 'url': url, 'method': method, 'body': body, 'headers': headers };
2022
+ }
2023
+ handleErrors(code, reason, url, method, headers, body, response, requestHeaders, requestBody) {
2024
+ // { "message": "Invalid token" }
2025
+ if (response === undefined) {
2026
+ return undefined;
2027
+ }
2028
+ if ((code >= 400) && (code <= 503)) {
2029
+ //
2030
+ // { "message": "Invalid token" }
2031
+ //
2032
+ // different errors return the same code eg
2033
+ //
2034
+ // { "message":"Error 1001 - Order rejected. Order could not be submitted as this order was set to a post only order." }
2035
+ //
2036
+ // { "message":"Error 1001 - POST ONLY order can not be of type market" }
2037
+ //
2038
+ const feedback = this.id + ' ' + body;
2039
+ const message = this.safeString(response, 'message');
2040
+ this.throwBroadlyMatchedException(this.exceptions['broad'], message, feedback);
2041
+ const status = code.toString();
2042
+ this.throwExactlyMatchedException(this.exceptions['exact'], status, feedback);
2043
+ }
2044
+ return undefined;
2045
+ }
2046
+ }