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,1676 @@
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/novadax.js';
9
+ import { AuthenticationError, ExchangeError, PermissionDenied, BadRequest, CancelPending, OrderNotFound, InsufficientFunds, RateLimitExceeded, InvalidOrder, AccountSuspended, BadSymbol, OnMaintenance, ArgumentsRequired, AccountNotEnabled } 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
+ import { md5 } from './static_dependencies/noble-hashes/md5.js';
14
+ // ---------------------------------------------------------------------------
15
+ /**
16
+ * @class novadax
17
+ * @augments Exchange
18
+ */
19
+ export default class novadax extends Exchange {
20
+ describe() {
21
+ return this.deepExtend(super.describe(), {
22
+ 'id': 'novadax',
23
+ 'name': 'NovaDAX',
24
+ 'countries': ['BR'],
25
+ // 6000 weight per min => 100 weight per second => min weight = 1
26
+ // 100 requests per second => ( 1000ms / 100 ) = 10 ms between requests on average
27
+ 'rateLimit': 10,
28
+ 'version': 'v1',
29
+ // new metainfo interface
30
+ 'has': {
31
+ 'CORS': undefined,
32
+ 'spot': true,
33
+ 'margin': false,
34
+ 'swap': false,
35
+ 'future': false,
36
+ 'option': false,
37
+ 'addMargin': false,
38
+ 'borrowCrossMargin': false,
39
+ 'borrowIsolatedMargin': false,
40
+ 'borrowMargin': false,
41
+ 'cancelOrder': true,
42
+ 'closeAllPositions': false,
43
+ 'closePosition': false,
44
+ 'createMarketBuyOrderWithCost': true,
45
+ 'createMarketOrderWithCost': false,
46
+ 'createMarketSellOrderWithCost': false,
47
+ 'createOrder': true,
48
+ 'createReduceOnlyOrder': false,
49
+ 'createStopLimitOrder': true,
50
+ 'createStopMarketOrder': true,
51
+ 'createStopOrder': true,
52
+ 'fetchAccounts': true,
53
+ 'fetchAllGreeks': false,
54
+ 'fetchBalance': true,
55
+ 'fetchBorrowInterest': false,
56
+ 'fetchBorrowRate': false,
57
+ 'fetchBorrowRateHistories': false,
58
+ 'fetchBorrowRateHistory': false,
59
+ 'fetchBorrowRates': false,
60
+ 'fetchBorrowRatesPerSymbol': false,
61
+ 'fetchClosedOrders': true,
62
+ 'fetchCrossBorrowRate': false,
63
+ 'fetchCrossBorrowRates': false,
64
+ 'fetchDepositAddress': false,
65
+ 'fetchDepositAddresses': false,
66
+ 'fetchDepositAddressesByNetwork': false,
67
+ 'fetchDeposits': true,
68
+ 'fetchDepositsWithdrawals': true,
69
+ 'fetchFundingHistory': false,
70
+ 'fetchFundingInterval': false,
71
+ 'fetchFundingIntervals': false,
72
+ 'fetchFundingRate': false,
73
+ 'fetchFundingRateHistory': false,
74
+ 'fetchFundingRates': false,
75
+ 'fetchGreeks': false,
76
+ 'fetchIndexOHLCV': false,
77
+ 'fetchIsolatedBorrowRate': false,
78
+ 'fetchIsolatedBorrowRates': false,
79
+ 'fetchIsolatedPositions': false,
80
+ 'fetchLeverage': false,
81
+ 'fetchLeverages': false,
82
+ 'fetchLeverageTiers': false,
83
+ 'fetchLiquidations': false,
84
+ 'fetchLongShortRatio': false,
85
+ 'fetchLongShortRatioHistory': false,
86
+ 'fetchMarginAdjustmentHistory': false,
87
+ 'fetchMarginMode': false,
88
+ 'fetchMarginModes': false,
89
+ 'fetchMarketLeverageTiers': false,
90
+ 'fetchMarkets': true,
91
+ 'fetchMarkOHLCV': false,
92
+ 'fetchMarkPrice': false,
93
+ 'fetchMarkPrices': false,
94
+ 'fetchMyLiquidations': false,
95
+ 'fetchMySettlementHistory': false,
96
+ 'fetchMyTrades': true,
97
+ 'fetchOHLCV': true,
98
+ 'fetchOpenInterest': false,
99
+ 'fetchOpenInterestHistory': false,
100
+ 'fetchOpenInterests': false,
101
+ 'fetchOpenOrders': true,
102
+ 'fetchOption': false,
103
+ 'fetchOptionChain': false,
104
+ 'fetchOrder': true,
105
+ 'fetchOrderBook': true,
106
+ 'fetchOrders': true,
107
+ 'fetchOrderTrades': true,
108
+ 'fetchPosition': false,
109
+ 'fetchPositionHistory': false,
110
+ 'fetchPositionMode': false,
111
+ 'fetchPositions': false,
112
+ 'fetchPositionsForSymbol': false,
113
+ 'fetchPositionsHistory': false,
114
+ 'fetchPositionsRisk': false,
115
+ 'fetchPremiumIndexOHLCV': false,
116
+ 'fetchSettlementHistory': false,
117
+ 'fetchTicker': true,
118
+ 'fetchTickers': true,
119
+ 'fetchTime': true,
120
+ 'fetchTrades': true,
121
+ 'fetchTradingFee': false,
122
+ 'fetchTradingFees': false,
123
+ 'fetchTransactions': 'emulated',
124
+ 'fetchUnderlyingAssets': false,
125
+ 'fetchVolatilityHistory': false,
126
+ 'fetchWithdrawals': true,
127
+ 'reduceMargin': false,
128
+ 'repayCrossMargin': false,
129
+ 'repayIsolatedMargin': false,
130
+ 'setLeverage': false,
131
+ 'setMargin': false,
132
+ 'setMarginMode': false,
133
+ 'setPositionMode': false,
134
+ 'transfer': true,
135
+ 'withdraw': true,
136
+ },
137
+ 'timeframes': {
138
+ '1m': 'ONE_MIN',
139
+ '5m': 'FIVE_MIN',
140
+ '15m': 'FIFTEEN_MIN',
141
+ '30m': 'HALF_HOU',
142
+ '1h': 'ONE_HOU',
143
+ '1d': 'ONE_DAY',
144
+ '1w': 'ONE_WEE',
145
+ '1M': 'ONE_MON',
146
+ },
147
+ 'urls': {
148
+ 'logo': 'https://user-images.githubusercontent.com/1294454/92337550-2b085500-f0b3-11ea-98e7-5794fb07dd3b.jpg',
149
+ 'api': {
150
+ 'public': 'https://api.novadax.com',
151
+ 'private': 'https://api.novadax.com',
152
+ },
153
+ 'www': 'https://www.novadax.com.br',
154
+ 'doc': [
155
+ 'https://doc.novadax.com/pt-BR/',
156
+ ],
157
+ 'fees': 'https://www.novadax.com.br/fees-and-limits',
158
+ 'referral': 'https://www.novadax.com.br/?s=ccxt',
159
+ },
160
+ 'api': {
161
+ 'public': {
162
+ 'get': {
163
+ 'common/symbol': 1,
164
+ 'common/symbols': 1,
165
+ 'common/timestamp': 1,
166
+ 'market/tickers': 5,
167
+ 'market/ticker': 1,
168
+ 'market/depth': 1,
169
+ 'market/trades': 5,
170
+ 'market/kline/history': 5,
171
+ },
172
+ },
173
+ 'private': {
174
+ 'get': {
175
+ 'orders/get': 1,
176
+ 'orders/list': 10,
177
+ 'orders/fill': 3,
178
+ 'orders/fills': 10,
179
+ 'account/getBalance': 1,
180
+ 'account/subs': 1,
181
+ 'account/subs/balance': 1,
182
+ 'account/subs/transfer/record': 10,
183
+ 'wallet/query/deposit-withdraw': 3,
184
+ },
185
+ 'post': {
186
+ 'orders/create': 5,
187
+ 'orders/batch-create': 50,
188
+ 'orders/cancel': 1,
189
+ 'orders/batch-cancel': 10,
190
+ 'orders/cancel-by-symbol': 10,
191
+ 'account/subs/transfer': 5,
192
+ 'wallet/withdraw/coin': 3,
193
+ 'account/withdraw/coin': 3, // not found in doc
194
+ },
195
+ },
196
+ },
197
+ 'fees': {
198
+ 'trading': {
199
+ 'tierBased': false,
200
+ 'percentage': true,
201
+ 'taker': this.parseNumber('0.005'),
202
+ 'maker': this.parseNumber('0.0025'),
203
+ },
204
+ },
205
+ 'requiredCredentials': {
206
+ 'apiKey': true,
207
+ 'secret': true,
208
+ },
209
+ 'precisionMode': TICK_SIZE,
210
+ 'exceptions': {
211
+ 'exact': {
212
+ 'A99999': ExchangeError,
213
+ // 'A10000': ExchangeError, // 200 Success Successful request
214
+ 'A10001': BadRequest,
215
+ 'A10002': ExchangeError,
216
+ 'A10003': AuthenticationError,
217
+ 'A10004': RateLimitExceeded,
218
+ 'A10005': PermissionDenied,
219
+ 'A10006': AccountSuspended,
220
+ 'A10007': AccountNotEnabled,
221
+ 'A10011': BadSymbol,
222
+ 'A10012': BadSymbol,
223
+ 'A10013': OnMaintenance,
224
+ 'A30001': OrderNotFound,
225
+ 'A30002': InvalidOrder,
226
+ 'A30003': InvalidOrder,
227
+ 'A30004': InvalidOrder,
228
+ 'A30005': InvalidOrder,
229
+ 'A30006': InvalidOrder,
230
+ 'A30007': InsufficientFunds,
231
+ 'A30008': InvalidOrder,
232
+ 'A30009': InvalidOrder,
233
+ 'A30010': CancelPending,
234
+ 'A30011': InvalidOrder,
235
+ 'A30012': InvalidOrder,
236
+ 'A40004': InsufficientFunds, // {"code":"A40004","data":[],"message":"sub account balance Insufficient"}
237
+ },
238
+ 'broad': {},
239
+ },
240
+ 'options': {
241
+ 'fetchOHLCV': {
242
+ 'volume': 'amount', // 'amount' for base volume or 'vol' for quote volume
243
+ },
244
+ 'transfer': {
245
+ 'fillResponseFromRequest': true,
246
+ },
247
+ },
248
+ 'features': {
249
+ 'spot': {
250
+ 'sandbox': false,
251
+ 'createOrder': {
252
+ 'marginMode': false,
253
+ 'triggerPrice': true,
254
+ 'triggerDirection': true,
255
+ 'triggerPriceType': undefined,
256
+ 'stopLossPrice': false,
257
+ 'takeProfitPrice': false,
258
+ 'attachedStopLossTakeProfit': undefined,
259
+ // todo
260
+ 'timeInForce': {
261
+ 'IOC': false,
262
+ 'FOK': false,
263
+ 'PO': false,
264
+ 'GTD': false,
265
+ },
266
+ 'hedged': false,
267
+ 'trailing': false,
268
+ 'leverage': false,
269
+ 'marketBuyByCost': true,
270
+ 'marketBuyRequiresPrice': false,
271
+ 'selfTradePrevention': false,
272
+ 'iceberg': true, // todo
273
+ },
274
+ 'createOrders': undefined,
275
+ 'fetchMyTrades': {
276
+ 'marginMode': false,
277
+ 'limit': 100,
278
+ 'daysBack': 100000,
279
+ 'untilDays': 100000,
280
+ 'symbolRequired': false,
281
+ },
282
+ 'fetchOrder': {
283
+ 'marginMode': false,
284
+ 'trigger': false,
285
+ 'trailing': false,
286
+ 'symbolRequired': false,
287
+ },
288
+ 'fetchOpenOrders': {
289
+ 'marginMode': false,
290
+ 'limit': undefined,
291
+ 'trigger': false,
292
+ 'trailing': false,
293
+ 'symbolRequired': false,
294
+ },
295
+ 'fetchOrders': {
296
+ 'marginMode': false,
297
+ 'limit': 100,
298
+ 'daysBack': 100000,
299
+ 'untilDays': 100000,
300
+ 'trigger': false,
301
+ 'trailing': false,
302
+ 'symbolRequired': false,
303
+ },
304
+ 'fetchClosedOrders': {
305
+ 'marginMode': false,
306
+ 'limit': 100,
307
+ 'daysBack': 100000,
308
+ 'daysBackCanceled': 1,
309
+ 'untilDays': 100000,
310
+ 'trigger': false,
311
+ 'trailing': false,
312
+ 'symbolRequired': false,
313
+ },
314
+ 'fetchOHLCV': {
315
+ 'limit': undefined, // todo max 3000
316
+ },
317
+ },
318
+ 'swap': {
319
+ 'linear': undefined,
320
+ 'inverse': undefined,
321
+ },
322
+ 'future': {
323
+ 'linear': undefined,
324
+ 'inverse': undefined,
325
+ },
326
+ },
327
+ });
328
+ }
329
+ /**
330
+ * @method
331
+ * @name novadax#fetchTime
332
+ * @description fetches the current integer timestamp in milliseconds from the exchange server
333
+ * @see https://doc.novadax.com/en-US/#get-current-system-time
334
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
335
+ * @returns {int} the current integer timestamp in milliseconds from the exchange server
336
+ */
337
+ async fetchTime(params = {}) {
338
+ const response = await this.publicGetCommonTimestamp(params);
339
+ //
340
+ // {
341
+ // "code":"A10000",
342
+ // "data":1599090512080,
343
+ // "message":"Success"
344
+ // }
345
+ //
346
+ return this.safeInteger(response, 'data');
347
+ }
348
+ /**
349
+ * @method
350
+ * @name novadax#fetchMarkets
351
+ * @description retrieves data on all markets for novadax
352
+ * @see https://doc.novadax.com/en-US/#get-all-supported-trading-symbol
353
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
354
+ * @returns {object[]} an array of objects representing market data
355
+ */
356
+ async fetchMarkets(params = {}) {
357
+ const response = await this.publicGetCommonSymbols(params);
358
+ //
359
+ // {
360
+ // "code":"A10000",
361
+ // "data":[
362
+ // {
363
+ // "amountPrecision":8,
364
+ // "baseCurrency":"BTC",
365
+ // "minOrderAmount":"0.001",
366
+ // "minOrderValue":"25",
367
+ // "pricePrecision":2,
368
+ // "quoteCurrency":"BRL",
369
+ // "status":"ONLINE",
370
+ // "symbol":"BTC_BRL",
371
+ // "valuePrecision":2
372
+ // },
373
+ // ],
374
+ // "message":"Success"
375
+ // }
376
+ //
377
+ const data = this.safeValue(response, 'data', []);
378
+ return this.parseMarkets(data);
379
+ }
380
+ parseMarket(market) {
381
+ const baseId = this.safeString(market, 'baseCurrency');
382
+ const quoteId = this.safeString(market, 'quoteCurrency');
383
+ const id = this.safeString(market, 'symbol');
384
+ const base = this.safeCurrencyCode(baseId);
385
+ const quote = this.safeCurrencyCode(quoteId);
386
+ const status = this.safeString(market, 'status');
387
+ return {
388
+ 'id': id,
389
+ 'symbol': base + '/' + quote,
390
+ 'base': base,
391
+ 'quote': quote,
392
+ 'settle': undefined,
393
+ 'baseId': baseId,
394
+ 'quoteId': quoteId,
395
+ 'settleId': undefined,
396
+ 'type': 'spot',
397
+ 'spot': true,
398
+ 'margin': false,
399
+ 'swap': false,
400
+ 'future': false,
401
+ 'option': false,
402
+ 'active': (status === 'ONLINE'),
403
+ 'contract': false,
404
+ 'linear': undefined,
405
+ 'inverse': undefined,
406
+ 'contractSize': undefined,
407
+ 'expiry': undefined,
408
+ 'expiryDatetime': undefined,
409
+ 'strike': undefined,
410
+ 'optionType': undefined,
411
+ 'precision': {
412
+ 'amount': this.parseNumber(this.parsePrecision(this.safeString(market, 'amountPrecision'))),
413
+ 'price': this.parseNumber(this.parsePrecision(this.safeString(market, 'pricePrecision'))),
414
+ // 'cost': this.parseNumber (this.parsePrecision (this.safeString (market, 'valuePrecision'))),
415
+ },
416
+ 'limits': {
417
+ 'leverage': {
418
+ 'min': undefined,
419
+ 'max': undefined,
420
+ },
421
+ 'amount': {
422
+ 'min': this.safeNumber(market, 'minOrderAmount'),
423
+ 'max': undefined,
424
+ },
425
+ 'price': {
426
+ 'min': undefined,
427
+ 'max': undefined,
428
+ },
429
+ 'cost': {
430
+ 'min': this.safeNumber(market, 'minOrderValue'),
431
+ 'max': undefined,
432
+ },
433
+ },
434
+ 'created': undefined,
435
+ 'info': market,
436
+ };
437
+ }
438
+ parseTicker(ticker, market = undefined) {
439
+ //
440
+ // fetchTicker, fetchTickers
441
+ //
442
+ // {
443
+ // "ask":"61946.1",
444
+ // "baseVolume24h":"164.41930186",
445
+ // "bid":"61815",
446
+ // "high24h":"64930.72",
447
+ // "lastPrice":"61928.41",
448
+ // "low24h":"61156.32",
449
+ // "open24h":"64512.46",
450
+ // "quoteVolume24h":"10308157.95",
451
+ // "symbol":"BTC_BRL",
452
+ // "timestamp":1599091115090
453
+ // }
454
+ //
455
+ const timestamp = this.safeInteger(ticker, 'timestamp');
456
+ const marketId = this.safeString(ticker, 'symbol');
457
+ const symbol = this.safeSymbol(marketId, market, '_');
458
+ const open = this.safeString(ticker, 'open24h');
459
+ const last = this.safeString(ticker, 'lastPrice');
460
+ const baseVolume = this.safeString(ticker, 'baseVolume24h');
461
+ const quoteVolume = this.safeString(ticker, 'quoteVolume24h');
462
+ return this.safeTicker({
463
+ 'symbol': symbol,
464
+ 'timestamp': timestamp,
465
+ 'datetime': this.iso8601(timestamp),
466
+ 'high': this.safeString(ticker, 'high24h'),
467
+ 'low': this.safeString(ticker, 'low24h'),
468
+ 'bid': this.safeString(ticker, 'bid'),
469
+ 'bidVolume': undefined,
470
+ 'ask': this.safeString(ticker, 'ask'),
471
+ 'askVolume': undefined,
472
+ 'vwap': undefined,
473
+ 'open': open,
474
+ 'close': last,
475
+ 'last': last,
476
+ 'previousClose': undefined,
477
+ 'change': undefined,
478
+ 'percentage': undefined,
479
+ 'average': undefined,
480
+ 'baseVolume': baseVolume,
481
+ 'quoteVolume': quoteVolume,
482
+ 'info': ticker,
483
+ }, market);
484
+ }
485
+ /**
486
+ * @method
487
+ * @name novadax#fetchTicker
488
+ * @description fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
489
+ * @see https://doc.novadax.com/en-US/#get-latest-ticker-for-specific-pair
490
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
491
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
492
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
493
+ */
494
+ async fetchTicker(symbol, params = {}) {
495
+ await this.loadMarkets();
496
+ const market = this.market(symbol);
497
+ const request = {
498
+ 'symbol': market['id'],
499
+ };
500
+ const response = await this.publicGetMarketTicker(this.extend(request, params));
501
+ //
502
+ // {
503
+ // "code":"A10000",
504
+ // "data":{
505
+ // "ask":"61946.1",
506
+ // "baseVolume24h":"164.41930186",
507
+ // "bid":"61815",
508
+ // "high24h":"64930.72",
509
+ // "lastPrice":"61928.41",
510
+ // "low24h":"61156.32",
511
+ // "open24h":"64512.46",
512
+ // "quoteVolume24h":"10308157.95",
513
+ // "symbol":"BTC_BRL",
514
+ // "timestamp":1599091115090
515
+ // },
516
+ // "message":"Success"
517
+ // }
518
+ //
519
+ const data = this.safeDict(response, 'data', {});
520
+ return this.parseTicker(data, market);
521
+ }
522
+ /**
523
+ * @method
524
+ * @name novadax#fetchTickers
525
+ * @description fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
526
+ * @see https://doc.novadax.com/en-US/#get-latest-tickers-for-all-trading-pairs
527
+ * @param {string[]|undefined} symbols unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
528
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
529
+ * @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
530
+ */
531
+ async fetchTickers(symbols = undefined, params = {}) {
532
+ await this.loadMarkets();
533
+ symbols = this.marketSymbols(symbols);
534
+ const response = await this.publicGetMarketTickers(params);
535
+ //
536
+ // {
537
+ // "code":"A10000",
538
+ // "data":[
539
+ // {
540
+ // "ask":"61879.36",
541
+ // "baseVolume24h":"164.40955092",
542
+ // "bid":"61815",
543
+ // "high24h":"64930.72",
544
+ // "lastPrice":"61820.04",
545
+ // "low24h":"61156.32",
546
+ // "open24h":"64624.19",
547
+ // "quoteVolume24h":"10307493.92",
548
+ // "symbol":"BTC_BRL",
549
+ // "timestamp":1599091291083
550
+ // },
551
+ // ],
552
+ // "message":"Success"
553
+ // }
554
+ //
555
+ const data = this.safeValue(response, 'data', []);
556
+ const result = {};
557
+ for (let i = 0; i < data.length; i++) {
558
+ const ticker = this.parseTicker(data[i]);
559
+ const symbol = ticker['symbol'];
560
+ result[symbol] = ticker;
561
+ }
562
+ return this.filterByArrayTickers(result, 'symbol', symbols);
563
+ }
564
+ /**
565
+ * @method
566
+ * @name novadax#fetchOrderBook
567
+ * @description fetches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
568
+ * @see https://doc.novadax.com/en-US/#get-market-depth
569
+ * @param {string} symbol unified symbol of the market to fetch the order book for
570
+ * @param {int} [limit] the maximum amount of order book entries to return
571
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
572
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
573
+ */
574
+ async fetchOrderBook(symbol, limit = undefined, params = {}) {
575
+ await this.loadMarkets();
576
+ const market = this.market(symbol);
577
+ const request = {
578
+ 'symbol': market['id'],
579
+ };
580
+ if (limit !== undefined) {
581
+ request['limit'] = limit; // default 10, max 20
582
+ }
583
+ const response = await this.publicGetMarketDepth(this.extend(request, params));
584
+ //
585
+ // {
586
+ // "code":"A10000",
587
+ // "data":{
588
+ // "asks":[
589
+ // ["0.037159","0.3741"],
590
+ // ["0.037215","0.2706"],
591
+ // ["0.037222","1.8459"],
592
+ // ],
593
+ // "bids":[
594
+ // ["0.037053","0.3857"],
595
+ // ["0.036969","0.8101"],
596
+ // ["0.036953","1.5226"],
597
+ // ],
598
+ // "timestamp":1599280414448
599
+ // },
600
+ // "message":"Success"
601
+ // }
602
+ //
603
+ const data = this.safeValue(response, 'data', {});
604
+ const timestamp = this.safeInteger(data, 'timestamp');
605
+ return this.parseOrderBook(data, market['symbol'], timestamp, 'bids', 'asks');
606
+ }
607
+ parseTrade(trade, market = undefined) {
608
+ //
609
+ // public fetchTrades
610
+ //
611
+ // {
612
+ // "amount":"0.0632",
613
+ // "price":"0.037288",
614
+ // "side":"BUY",
615
+ // "timestamp":1599279694576
616
+ // }
617
+ //
618
+ // private fetchOrderTrades
619
+ //
620
+ // {
621
+ // "id": "608717046691139584",
622
+ // "orderId": "608716957545402368",
623
+ // "symbol": "BTC_BRL",
624
+ // "side": "BUY",
625
+ // "amount": "0.0988",
626
+ // "price": "45514.76",
627
+ // "fee": "0.0000988 BTC",
628
+ // "feeAmount": "0.0000988",
629
+ // "feeCurrency": "BTC",
630
+ // "role": "MAKER",
631
+ // "timestamp": 1565171053345
632
+ // }
633
+ //
634
+ // private fetchMyTrades (same endpoint as fetchOrderTrades)
635
+ //
636
+ // {
637
+ // "id": "608717046691139584",
638
+ // "orderId": "608716957545402368",
639
+ // "symbol": "BTC_BRL",
640
+ // "side": "BUY",
641
+ // "amount": "0.0988",
642
+ // "price": "45514.76",
643
+ // "fee": "0.0000988 BTC",
644
+ // "feeAmount": "0.0000988",
645
+ // "feeCurrency": "BTC",
646
+ // "role": "MAKER",
647
+ // "timestamp": 1565171053345
648
+ // }
649
+ //
650
+ const id = this.safeString(trade, 'id');
651
+ const orderId = this.safeString(trade, 'orderId');
652
+ const timestamp = this.safeInteger(trade, 'timestamp');
653
+ const side = this.safeStringLower(trade, 'side');
654
+ const priceString = this.safeString(trade, 'price');
655
+ const amountString = this.safeString(trade, 'amount');
656
+ const marketId = this.safeString(trade, 'symbol');
657
+ const symbol = this.safeSymbol(marketId, market, '_');
658
+ const takerOrMaker = this.safeStringLower(trade, 'role');
659
+ const feeString = this.safeString(trade, 'fee');
660
+ let fee = undefined;
661
+ if (feeString !== undefined) {
662
+ const feeCurrencyId = this.safeString(trade, 'feeCurrency');
663
+ const feeCurrencyCode = this.safeCurrencyCode(feeCurrencyId);
664
+ fee = {
665
+ 'cost': this.safeString(trade, 'feeAmount'),
666
+ 'currency': feeCurrencyCode,
667
+ };
668
+ }
669
+ return this.safeTrade({
670
+ 'id': id,
671
+ 'order': orderId,
672
+ 'timestamp': timestamp,
673
+ 'datetime': this.iso8601(timestamp),
674
+ 'symbol': symbol,
675
+ 'type': undefined,
676
+ 'side': side,
677
+ 'price': priceString,
678
+ 'amount': amountString,
679
+ 'cost': undefined,
680
+ 'takerOrMaker': takerOrMaker,
681
+ 'fee': fee,
682
+ 'info': trade,
683
+ }, market);
684
+ }
685
+ /**
686
+ * @method
687
+ * @name novadax#fetchTrades
688
+ * @description get the list of most recent trades for a particular symbol
689
+ * @see https://doc.novadax.com/en-US/#get-recent-trades
690
+ * @param {string} symbol unified symbol of the market to fetch trades for
691
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
692
+ * @param {int} [limit] the maximum amount of trades to fetch
693
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
694
+ * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
695
+ */
696
+ async fetchTrades(symbol, since = undefined, limit = undefined, params = {}) {
697
+ await this.loadMarkets();
698
+ const market = this.market(symbol);
699
+ const request = {
700
+ 'symbol': market['id'],
701
+ };
702
+ if (limit !== undefined) {
703
+ request['limit'] = limit; // default 100
704
+ }
705
+ const response = await this.publicGetMarketTrades(this.extend(request, params));
706
+ //
707
+ // {
708
+ // "code":"A10000",
709
+ // "data":[
710
+ // {"amount":"0.0632","price":"0.037288","side":"BUY","timestamp":1599279694576},
711
+ // {"amount":"0.0052","price":"0.03715","side":"SELL","timestamp":1599276606852},
712
+ // {"amount":"0.0058","price":"0.037188","side":"SELL","timestamp":1599275187812},
713
+ // ],
714
+ // "message":"Success"
715
+ // }
716
+ //
717
+ const data = this.safeList(response, 'data', []);
718
+ return this.parseTrades(data, market, since, limit);
719
+ }
720
+ /**
721
+ * @method
722
+ * @name novadax#fetchOHLCV
723
+ * @description fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
724
+ * @see https://doc.novadax.com/en-US/#get-kline-data
725
+ * @param {string} symbol unified symbol of the market to fetch OHLCV data for
726
+ * @param {string} timeframe the length of time each candle represents
727
+ * @param {int} [since] timestamp in ms of the earliest candle to fetch
728
+ * @param {int} [limit] the maximum amount of candles to fetch
729
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
730
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
731
+ */
732
+ async fetchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
733
+ await this.loadMarkets();
734
+ const market = this.market(symbol);
735
+ const request = {
736
+ 'symbol': market['id'],
737
+ 'unit': this.safeString(this.timeframes, timeframe, timeframe),
738
+ };
739
+ const duration = this.parseTimeframe(timeframe);
740
+ const now = this.seconds();
741
+ if (limit === undefined) {
742
+ limit = 3000; // max
743
+ }
744
+ if (since === undefined) {
745
+ request['from'] = now - limit * duration;
746
+ request['to'] = now;
747
+ }
748
+ else {
749
+ const startFrom = this.parseToInt(since / 1000);
750
+ request['from'] = startFrom;
751
+ request['to'] = this.sum(startFrom, limit * duration);
752
+ }
753
+ const response = await this.publicGetMarketKlineHistory(this.extend(request, params));
754
+ //
755
+ // {
756
+ // "code": "A10000",
757
+ // "data": [
758
+ // {
759
+ // "amount": 8.25709100,
760
+ // "closePrice": 62553.20,
761
+ // "count": 29,
762
+ // "highPrice": 62592.87,
763
+ // "lowPrice": 62553.20,
764
+ // "openPrice": 62554.23,
765
+ // "score": 1602501480,
766
+ // "symbol": "BTC_BRL",
767
+ // "vol": 516784.2504067500
768
+ // }
769
+ // ],
770
+ // "message": "Success"
771
+ // }
772
+ //
773
+ const data = this.safeList(response, 'data', []);
774
+ return this.parseOHLCVs(data, market, timeframe, since, limit);
775
+ }
776
+ parseOHLCV(ohlcv, market = undefined) {
777
+ //
778
+ // {
779
+ // "amount": 8.25709100,
780
+ // "closePrice": 62553.20,
781
+ // "count": 29,
782
+ // "highPrice": 62592.87,
783
+ // "lowPrice": 62553.20,
784
+ // "openPrice": 62554.23,
785
+ // "score": 1602501480,
786
+ // "symbol": "BTC_BRL",
787
+ // "vol": 516784.2504067500
788
+ // }
789
+ //
790
+ const options = this.safeValue(this.options, 'fetchOHLCV', {});
791
+ const volumeField = this.safeString(options, 'volume', 'amount'); // or vol
792
+ return [
793
+ this.safeTimestamp(ohlcv, 'score'),
794
+ this.safeNumber(ohlcv, 'openPrice'),
795
+ this.safeNumber(ohlcv, 'highPrice'),
796
+ this.safeNumber(ohlcv, 'lowPrice'),
797
+ this.safeNumber(ohlcv, 'closePrice'),
798
+ this.safeNumber(ohlcv, volumeField),
799
+ ];
800
+ }
801
+ parseBalance(response) {
802
+ const data = this.safeValue(response, 'data', []);
803
+ const result = {
804
+ 'info': response,
805
+ 'timestamp': undefined,
806
+ 'datetime': undefined,
807
+ };
808
+ for (let i = 0; i < data.length; i++) {
809
+ const balance = data[i];
810
+ const currencyId = this.safeString(balance, 'currency');
811
+ const code = this.safeCurrencyCode(currencyId);
812
+ const account = this.account();
813
+ account['total'] = this.safeString(balance, 'balance');
814
+ account['free'] = this.safeString(balance, 'available');
815
+ account['used'] = this.safeString(balance, 'hold');
816
+ result[code] = account;
817
+ }
818
+ return this.safeBalance(result);
819
+ }
820
+ /**
821
+ * @method
822
+ * @name novadax#fetchBalance
823
+ * @description query for balance and get the amount of funds available for trading or funds locked in orders
824
+ * @see https://doc.novadax.com/en-US/#get-account-balance
825
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
826
+ * @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
827
+ */
828
+ async fetchBalance(params = {}) {
829
+ await this.loadMarkets();
830
+ const response = await this.privateGetAccountGetBalance(params);
831
+ //
832
+ // {
833
+ // "code": "A10000",
834
+ // "data": [
835
+ // {
836
+ // "available": "1.23",
837
+ // "balance": "0.23",
838
+ // "currency": "BTC",
839
+ // "hold": "1"
840
+ // }
841
+ // ],
842
+ // "message": "Success"
843
+ // }
844
+ //
845
+ return this.parseBalance(response);
846
+ }
847
+ /**
848
+ * @method
849
+ * @name novadax#createOrder
850
+ * @description create a trade order
851
+ * @see https://doc.novadax.com/en-US/#order-introduction
852
+ * @param {string} symbol unified symbol of the market to create an order in
853
+ * @param {string} type 'market' or 'limit'
854
+ * @param {string} side 'buy' or 'sell'
855
+ * @param {float} amount how much you want to trade in units of the base currency
856
+ * @param {float} [price] the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
857
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
858
+ * @param {float} [params.cost] for spot market buy orders, the quote quantity that can be used as an alternative for the amount
859
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
860
+ */
861
+ async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
862
+ await this.loadMarkets();
863
+ const market = this.market(symbol);
864
+ let uppercaseType = type.toUpperCase();
865
+ const uppercaseSide = side.toUpperCase();
866
+ const request = {
867
+ 'symbol': market['id'],
868
+ 'side': uppercaseSide, // or SELL
869
+ // "amount": this.amountToPrecision (symbol, amount),
870
+ // "price": "1234.5678", // required for LIMIT and STOP orders
871
+ // "operator": "" // for stop orders, can be found in order introduction
872
+ // "stopPrice": this.priceToPrecision (symbol, stopPrice),
873
+ // "accountId": "...", // subaccount id, optional
874
+ };
875
+ const triggerPrice = this.safeValue2(params, 'triggerPrice', 'stopPrice');
876
+ if (triggerPrice === undefined) {
877
+ if ((uppercaseType === 'STOP_LIMIT') || (uppercaseType === 'STOP_MARKET')) {
878
+ throw new ArgumentsRequired(this.id + ' createOrder() requires a stopPrice parameter for ' + uppercaseType + ' orders');
879
+ }
880
+ }
881
+ else {
882
+ if (uppercaseType === 'LIMIT') {
883
+ uppercaseType = 'STOP_LIMIT';
884
+ }
885
+ else if (uppercaseType === 'MARKET') {
886
+ uppercaseType = 'STOP_MARKET';
887
+ }
888
+ const defaultOperator = (uppercaseSide === 'BUY') ? 'LTE' : 'GTE';
889
+ request['operator'] = this.safeString(params, 'operator', defaultOperator);
890
+ request['stopPrice'] = this.priceToPrecision(symbol, triggerPrice);
891
+ params = this.omit(params, ['triggerPrice', 'stopPrice']);
892
+ }
893
+ if ((uppercaseType === 'LIMIT') || (uppercaseType === 'STOP_LIMIT')) {
894
+ request['price'] = this.priceToPrecision(symbol, price);
895
+ request['amount'] = this.amountToPrecision(symbol, amount);
896
+ }
897
+ else if ((uppercaseType === 'MARKET') || (uppercaseType === 'STOP_MARKET')) {
898
+ if (uppercaseSide === 'SELL') {
899
+ request['amount'] = this.amountToPrecision(symbol, amount);
900
+ }
901
+ else if (uppercaseSide === 'BUY') {
902
+ let quoteAmount = undefined;
903
+ let createMarketBuyOrderRequiresPrice = true;
904
+ [createMarketBuyOrderRequiresPrice, params] = this.handleOptionAndParams(params, 'createOrder', 'createMarketBuyOrderRequiresPrice', true);
905
+ const cost = this.safeNumber2(params, 'cost', 'value');
906
+ params = this.omit(params, 'cost');
907
+ if (cost !== undefined) {
908
+ quoteAmount = this.costToPrecision(symbol, cost);
909
+ }
910
+ else if (createMarketBuyOrderRequiresPrice) {
911
+ if (price === undefined) {
912
+ throw new InvalidOrder(this.id + ' createOrder() requires the price argument for market buy orders to calculate the total cost to spend (amount * price), alternatively set the createMarketBuyOrderRequiresPrice option or param to false and pass the cost to spend (quote quantity) in the amount argument');
913
+ }
914
+ else {
915
+ const amountString = this.numberToString(amount);
916
+ const priceString = this.numberToString(price);
917
+ const costRequest = Precise.stringMul(amountString, priceString);
918
+ quoteAmount = this.costToPrecision(symbol, costRequest);
919
+ }
920
+ }
921
+ else {
922
+ quoteAmount = this.costToPrecision(symbol, amount);
923
+ }
924
+ request['value'] = quoteAmount;
925
+ }
926
+ }
927
+ request['type'] = uppercaseType;
928
+ const response = await this.privatePostOrdersCreate(this.extend(request, params));
929
+ //
930
+ // {
931
+ // "code": "A10000",
932
+ // "data": {
933
+ // "amount": "0.001",
934
+ // "averagePrice": null,
935
+ // "filledAmount": "0",
936
+ // "filledFee": "0",
937
+ // "filledValue": "0",
938
+ // "id": "870613508008464384",
939
+ // "operator": "GTE",
940
+ // "price": "210000",
941
+ // "side": "BUY",
942
+ // "status": "SUBMITTED",
943
+ // "stopPrice": "211000",
944
+ // "symbol": "BTC_BRL",
945
+ // "timestamp": 1627612035528,
946
+ // "type": "STOP_LIMIT",
947
+ // "value": "210"
948
+ // },
949
+ // "message": "Success"
950
+ // }
951
+ //
952
+ const data = this.safeDict(response, 'data', {});
953
+ return this.parseOrder(data, market);
954
+ }
955
+ /**
956
+ * @method
957
+ * @name novadax#cancelOrder
958
+ * @description cancels an open order
959
+ * @see https://doc.novadax.com/en-US/#cancel-an-order
960
+ * @param {string} id order id
961
+ * @param {string} symbol not used by novadax cancelOrder ()
962
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
963
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
964
+ */
965
+ async cancelOrder(id, symbol = undefined, params = {}) {
966
+ await this.loadMarkets();
967
+ const request = {
968
+ 'id': id,
969
+ };
970
+ const response = await this.privatePostOrdersCancel(this.extend(request, params));
971
+ //
972
+ // {
973
+ // "code": "A10000",
974
+ // "data": {
975
+ // "result": true
976
+ // },
977
+ // "message": "Success"
978
+ // }
979
+ //
980
+ const data = this.safeDict(response, 'data', {});
981
+ return this.parseOrder(data);
982
+ }
983
+ /**
984
+ * @method
985
+ * @name novadax#fetchOrder
986
+ * @description fetches information on an order made by the user
987
+ * @see https://doc.novadax.com/en-US/#get-order-details
988
+ * @param {string} id order id
989
+ * @param {string} symbol not used by novadax fetchOrder
990
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
991
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
992
+ */
993
+ async fetchOrder(id, symbol = undefined, params = {}) {
994
+ await this.loadMarkets();
995
+ const request = {
996
+ 'id': id,
997
+ };
998
+ const response = await this.privateGetOrdersGet(this.extend(request, params));
999
+ //
1000
+ // {
1001
+ // "code": "A10000",
1002
+ // "data": {
1003
+ // "id": "608695623247466496",
1004
+ // "symbol": "BTC_BRL",
1005
+ // "type": "MARKET",
1006
+ // "side": "SELL",
1007
+ // "price": null,
1008
+ // "averagePrice": "0",
1009
+ // "amount": "0.123",
1010
+ // "filledAmount": "0",
1011
+ // "value": null,
1012
+ // "filledValue": "0",
1013
+ // "filledFee": "0",
1014
+ // "status": "REJECTED",
1015
+ // "timestamp": 1565165945588
1016
+ // },
1017
+ // "message": "Success"
1018
+ // }
1019
+ //
1020
+ const data = this.safeDict(response, 'data', {});
1021
+ return this.parseOrder(data);
1022
+ }
1023
+ /**
1024
+ * @method
1025
+ * @name novadax#fetchOrders
1026
+ * @description fetches information on multiple orders made by the user
1027
+ * @see https://doc.novadax.com/en-US/#get-order-history
1028
+ * @param {string} symbol unified market symbol of the market orders were made in
1029
+ * @param {int} [since] the earliest time in ms to fetch orders for
1030
+ * @param {int} [limit] the maximum number of order structures to retrieve
1031
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1032
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1033
+ */
1034
+ async fetchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1035
+ await this.loadMarkets();
1036
+ const request = {
1037
+ // 'symbol': market['id'],
1038
+ // 'status': 'SUBMITTED,PROCESSING', // SUBMITTED, PROCESSING, PARTIAL_FILLED, CANCELING, FILLED, CANCELED, REJECTED
1039
+ // 'fromId': '...', // order id to begin with
1040
+ // 'toId': '...', // order id to end up with
1041
+ // 'fromTimestamp': since,
1042
+ // 'toTimestamp': this.milliseconds (),
1043
+ // 'limit': limit, // default 100, max 100
1044
+ };
1045
+ let market = undefined;
1046
+ if (symbol !== undefined) {
1047
+ market = this.market(symbol);
1048
+ request['symbol'] = market['id'];
1049
+ }
1050
+ if (limit !== undefined) {
1051
+ request['limit'] = limit; // default 100, max 100
1052
+ }
1053
+ if (since !== undefined) {
1054
+ request['fromTimestamp'] = since;
1055
+ }
1056
+ const response = await this.privateGetOrdersList(this.extend(request, params));
1057
+ //
1058
+ // {
1059
+ // "code": "A10000",
1060
+ // "data": [
1061
+ // {
1062
+ // "id": "608695678650028032",
1063
+ // "symbol": "BTC_BRL",
1064
+ // "type": "MARKET",
1065
+ // "side": "SELL",
1066
+ // "price": null,
1067
+ // "averagePrice": "0",
1068
+ // "amount": "0.123",
1069
+ // "filledAmount": "0",
1070
+ // "value": null,
1071
+ // "filledValue": "0",
1072
+ // "filledFee": "0",
1073
+ // "status": "REJECTED",
1074
+ // "timestamp": 1565165958796
1075
+ // },
1076
+ // ],
1077
+ // "message": "Success"
1078
+ // }
1079
+ //
1080
+ const data = this.safeList(response, 'data', []);
1081
+ return this.parseOrders(data, market, since, limit);
1082
+ }
1083
+ /**
1084
+ * @method
1085
+ * @name novadax#fetchOpenOrders
1086
+ * @description fetch all unfilled currently open orders
1087
+ * @see https://doc.novadax.com/en-US/#get-order-history
1088
+ * @param {string} symbol unified market symbol
1089
+ * @param {int} [since] the earliest time in ms to fetch open orders for
1090
+ * @param {int} [limit] the maximum number of open orders structures to retrieve
1091
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1092
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1093
+ */
1094
+ async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1095
+ const request = {
1096
+ 'status': 'SUBMITTED,PROCESSING,PARTIAL_FILLED,CANCELING',
1097
+ };
1098
+ return await this.fetchOrders(symbol, since, limit, this.extend(request, params));
1099
+ }
1100
+ /**
1101
+ * @method
1102
+ * @name novadax#fetchClosedOrders
1103
+ * @description fetches information on multiple closed orders made by the user
1104
+ * @see https://doc.novadax.com/en-US/#get-order-history
1105
+ * @param {string} symbol unified market symbol of the market orders were made in
1106
+ * @param {int} [since] the earliest time in ms to fetch orders for
1107
+ * @param {int} [limit] the maximum number of order structures to retrieve
1108
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1109
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1110
+ */
1111
+ async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1112
+ const request = {
1113
+ 'status': 'FILLED,CANCELED,REJECTED',
1114
+ };
1115
+ return await this.fetchOrders(symbol, since, limit, this.extend(request, params));
1116
+ }
1117
+ /**
1118
+ * @method
1119
+ * @name novadax#fetchOrderTrades
1120
+ * @description fetch all the trades made from a single order
1121
+ * @see https://doc.novadax.com/en-US/#get-order-match-details
1122
+ * @param {string} id order id
1123
+ * @param {string} symbol unified market symbol
1124
+ * @param {int} [since] the earliest time in ms to fetch trades for
1125
+ * @param {int} [limit] the maximum number of trades to retrieve
1126
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1127
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
1128
+ */
1129
+ async fetchOrderTrades(id, symbol = undefined, since = undefined, limit = undefined, params = {}) {
1130
+ await this.loadMarkets();
1131
+ const request = {
1132
+ 'id': id,
1133
+ };
1134
+ const response = await this.privateGetOrdersFill(this.extend(request, params));
1135
+ let market = undefined;
1136
+ if (symbol !== undefined) {
1137
+ market = this.market(symbol);
1138
+ }
1139
+ const data = this.safeValue(response, 'data', []);
1140
+ //
1141
+ // {
1142
+ // "code": "A10000",
1143
+ // "data": [
1144
+ // {
1145
+ // "id": "608717046691139584",
1146
+ // "orderId": "608716957545402368",
1147
+ // "symbol": "BTC_BRL",
1148
+ // "side": "BUY",
1149
+ // "amount": "0.0988",
1150
+ // "price": "45514.76",
1151
+ // "fee": "0.0000988 BTC",
1152
+ // "feeAmount": "0.0000988",
1153
+ // "feeCurrency": "BTC",
1154
+ // "role": "MAKER",
1155
+ // "timestamp": 1565171053345
1156
+ // },
1157
+ // ],
1158
+ // "message": "Success"
1159
+ // }
1160
+ //
1161
+ return this.parseTrades(data, market, since, limit);
1162
+ }
1163
+ parseOrderStatus(status) {
1164
+ const statuses = {
1165
+ 'SUBMITTED': 'open',
1166
+ 'PROCESSING': 'open',
1167
+ 'PARTIAL_FILLED': 'open',
1168
+ 'CANCELING': 'open',
1169
+ 'FILLED': 'closed',
1170
+ 'CANCELED': 'canceled',
1171
+ 'REJECTED': 'rejected',
1172
+ };
1173
+ return this.safeString(statuses, status, status);
1174
+ }
1175
+ parseOrder(order, market = undefined) {
1176
+ //
1177
+ // createOrder, fetchOrders, fetchOrder
1178
+ //
1179
+ // {
1180
+ // "amount": "0.001",
1181
+ // "averagePrice": null,
1182
+ // "filledAmount": "0",
1183
+ // "filledFee": "0",
1184
+ // "filledValue": "0",
1185
+ // "id": "870613508008464384",
1186
+ // "operator": "GTE",
1187
+ // "price": "210000",
1188
+ // "side": "BUY",
1189
+ // "status": "SUBMITTED",
1190
+ // "stopPrice": "211000",
1191
+ // "symbol": "BTC_BRL",
1192
+ // "timestamp": 1627612035528,
1193
+ // "type": "STOP_LIMIT",
1194
+ // "value": "210"
1195
+ // }
1196
+ //
1197
+ // cancelOrder
1198
+ //
1199
+ // {
1200
+ // "result": true
1201
+ // }
1202
+ //
1203
+ const id = this.safeString(order, 'id');
1204
+ const amount = this.safeString(order, 'amount');
1205
+ const price = this.safeString(order, 'price');
1206
+ const cost = this.safeString2(order, 'filledValue', 'value');
1207
+ const type = this.safeStringLower(order, 'type');
1208
+ const side = this.safeStringLower(order, 'side');
1209
+ const status = this.parseOrderStatus(this.safeString(order, 'status'));
1210
+ const timestamp = this.safeInteger(order, 'timestamp');
1211
+ const average = this.safeString(order, 'averagePrice');
1212
+ const filled = this.safeString(order, 'filledAmount');
1213
+ let fee = undefined;
1214
+ const feeCost = this.safeNumber(order, 'filledFee');
1215
+ if (feeCost !== undefined) {
1216
+ fee = {
1217
+ 'cost': feeCost,
1218
+ 'currency': undefined,
1219
+ };
1220
+ }
1221
+ const marketId = this.safeString(order, 'symbol');
1222
+ const symbol = this.safeSymbol(marketId, market, '_');
1223
+ return this.safeOrder({
1224
+ 'id': id,
1225
+ 'clientOrderId': undefined,
1226
+ 'info': order,
1227
+ 'timestamp': timestamp,
1228
+ 'datetime': this.iso8601(timestamp),
1229
+ 'lastTradeTimestamp': undefined,
1230
+ 'symbol': symbol,
1231
+ 'type': type,
1232
+ 'timeInForce': undefined,
1233
+ 'postOnly': undefined,
1234
+ 'side': side,
1235
+ 'price': price,
1236
+ 'triggerPrice': this.safeNumber(order, 'stopPrice'),
1237
+ 'amount': amount,
1238
+ 'cost': cost,
1239
+ 'average': average,
1240
+ 'filled': filled,
1241
+ 'remaining': undefined,
1242
+ 'status': status,
1243
+ 'fee': fee,
1244
+ 'trades': undefined,
1245
+ }, market);
1246
+ }
1247
+ /**
1248
+ * @method
1249
+ * @name novadax#transfer
1250
+ * @description transfer currency internally between wallets on the same account
1251
+ * @see https://doc.novadax.com/en-US/#get-sub-account-transfer
1252
+ * @param {string} code unified currency code
1253
+ * @param {float} amount amount to transfer
1254
+ * @param {string} fromAccount account to transfer from
1255
+ * @param {string} toAccount account to transfer to
1256
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1257
+ * @returns {object} a [transfer structure]{@link https://docs.ccxt.com/#/?id=transfer-structure}
1258
+ */
1259
+ async transfer(code, amount, fromAccount, toAccount, params = {}) {
1260
+ await this.loadMarkets();
1261
+ const currency = this.currency(code);
1262
+ if (fromAccount !== 'main' && toAccount !== 'main') {
1263
+ throw new ExchangeError(this.id + ' transfer() supports transfers between main account and subaccounts only');
1264
+ }
1265
+ // master-transfer-in = from master account to subaccount
1266
+ // master-transfer-out = from subaccount to master account
1267
+ const type = (fromAccount === 'main') ? 'master-transfer-in' : 'master-transfer-out';
1268
+ const request = {
1269
+ 'transferAmount': this.currencyToPrecision(code, amount),
1270
+ 'currency': currency['id'],
1271
+ 'subId': (type === 'master-transfer-in') ? toAccount : fromAccount,
1272
+ 'transferType': type,
1273
+ };
1274
+ const response = await this.privatePostAccountSubsTransfer(this.extend(request, params));
1275
+ //
1276
+ // {
1277
+ // "code":"A10000",
1278
+ // "message":"Success",
1279
+ // "data":40
1280
+ // }
1281
+ //
1282
+ const transfer = this.parseTransfer(response, currency);
1283
+ const transferOptions = this.safeValue(this.options, 'transfer', {});
1284
+ const fillResponseFromRequest = this.safeBool(transferOptions, 'fillResponseFromRequest', true);
1285
+ if (fillResponseFromRequest) {
1286
+ transfer['fromAccount'] = fromAccount;
1287
+ transfer['toAccount'] = toAccount;
1288
+ transfer['amount'] = amount;
1289
+ }
1290
+ return transfer;
1291
+ }
1292
+ parseTransfer(transfer, currency = undefined) {
1293
+ //
1294
+ // {
1295
+ // "code":"A10000",
1296
+ // "message":"Success",
1297
+ // "data":40
1298
+ // }
1299
+ //
1300
+ const id = this.safeString(transfer, 'data');
1301
+ const status = this.safeString(transfer, 'message');
1302
+ const currencyCode = this.safeCurrencyCode(undefined, currency);
1303
+ return {
1304
+ 'info': transfer,
1305
+ 'id': id,
1306
+ 'amount': undefined,
1307
+ 'currency': currencyCode,
1308
+ 'fromAccount': undefined,
1309
+ 'toAccount': undefined,
1310
+ 'timestamp': undefined,
1311
+ 'datetime': undefined,
1312
+ 'status': status,
1313
+ };
1314
+ }
1315
+ parseTransferStatus(status) {
1316
+ const statuses = {
1317
+ 'SUCCESS': 'pending',
1318
+ };
1319
+ return this.safeString(statuses, status, 'failed');
1320
+ }
1321
+ /**
1322
+ * @method
1323
+ * @name novadax#withdraw
1324
+ * @description make a withdrawal
1325
+ * @see https://doc.novadax.com/en-US/#send-cryptocurrencies
1326
+ * @param {string} code unified currency code
1327
+ * @param {float} amount the amount to withdraw
1328
+ * @param {string} address the address to withdraw to
1329
+ * @param {string} tag
1330
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1331
+ * @returns {object} a [transaction structure]{@link https://docs.ccxt.com/#/?id=transaction-structure}
1332
+ */
1333
+ async withdraw(code, amount, address, tag = undefined, params = {}) {
1334
+ [tag, params] = this.handleWithdrawTagAndParams(tag, params);
1335
+ await this.loadMarkets();
1336
+ const currency = this.currency(code);
1337
+ const request = {
1338
+ 'code': currency['id'],
1339
+ 'amount': this.currencyToPrecision(code, amount),
1340
+ 'wallet': address,
1341
+ };
1342
+ if (tag !== undefined) {
1343
+ request['tag'] = tag;
1344
+ }
1345
+ const response = await this.privatePostAccountWithdrawCoin(this.extend(request, params));
1346
+ //
1347
+ // {
1348
+ // "code":"A10000",
1349
+ // "data": "DR123",
1350
+ // "message":"Success"
1351
+ // }
1352
+ //
1353
+ return this.parseTransaction(response, currency);
1354
+ }
1355
+ /**
1356
+ * @method
1357
+ * @name novadax#fetchAccounts
1358
+ * @description fetch all the accounts associated with a profile
1359
+ * @see https://doc.novadax.com/en-US/#get-sub-account-list
1360
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1361
+ * @returns {object} a dictionary of [account structures]{@link https://docs.ccxt.com/#/?id=account-structure} indexed by the account type
1362
+ */
1363
+ async fetchAccounts(params = {}) {
1364
+ const response = await this.privateGetAccountSubs(params);
1365
+ //
1366
+ // {
1367
+ // "code": "A10000",
1368
+ // "data": [
1369
+ // {
1370
+ // "subId": "CA648856083527372800",
1371
+ // "state": "Normal",
1372
+ // "subAccount": "003",
1373
+ // "subIdentify": "003"
1374
+ // }
1375
+ // ],
1376
+ // "message": "Success"
1377
+ // }
1378
+ //
1379
+ const data = this.safeValue(response, 'data', []);
1380
+ const result = [];
1381
+ for (let i = 0; i < data.length; i++) {
1382
+ const account = data[i];
1383
+ const accountId = this.safeString(account, 'subId');
1384
+ const type = this.safeString(account, 'subAccount');
1385
+ result.push({
1386
+ 'id': accountId,
1387
+ 'type': type,
1388
+ 'currency': undefined,
1389
+ 'info': account,
1390
+ });
1391
+ }
1392
+ return result;
1393
+ }
1394
+ /**
1395
+ * @method
1396
+ * @name novadax#fetchDeposits
1397
+ * @description fetch all deposits made to an account
1398
+ * @see https://doc.novadax.com/en-US/#wallet-records-of-deposits-and-withdraws
1399
+ * @param {string} code unified currency code
1400
+ * @param {int} [since] the earliest time in ms to fetch deposits for
1401
+ * @param {int} [limit] the maximum number of deposits structures to retrieve
1402
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1403
+ * @returns {object[]} a list of [transaction structures]{@link https://docs.ccxt.com/#/?id=transaction-structure}
1404
+ */
1405
+ async fetchDeposits(code = undefined, since = undefined, limit = undefined, params = {}) {
1406
+ const request = {
1407
+ 'type': 'coin_in',
1408
+ };
1409
+ return await this.fetchDepositsWithdrawals(code, since, limit, this.extend(request, params));
1410
+ }
1411
+ /**
1412
+ * @method
1413
+ * @name novadax#fetchWithdrawals
1414
+ * @description fetch all withdrawals made from an account
1415
+ * @see https://doc.novadax.com/en-US/#wallet-records-of-deposits-and-withdraws
1416
+ * @param {string} code unified currency code
1417
+ * @param {int} [since] the earliest time in ms to fetch withdrawals for
1418
+ * @param {int} [limit] the maximum number of withdrawals structures to retrieve
1419
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1420
+ * @returns {object[]} a list of [transaction structures]{@link https://docs.ccxt.com/#/?id=transaction-structure}
1421
+ */
1422
+ async fetchWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
1423
+ const request = {
1424
+ 'type': 'coin_out',
1425
+ };
1426
+ return await this.fetchDepositsWithdrawals(code, since, limit, this.extend(request, params));
1427
+ }
1428
+ /**
1429
+ * @method
1430
+ * @name novadax#fetchDepositsWithdrawals
1431
+ * @description fetch history of deposits and withdrawals
1432
+ * @see https://doc.novadax.com/en-US/#wallet-records-of-deposits-and-withdraws
1433
+ * @param {string} [code] unified currency code for the currency of the deposit/withdrawals, default is undefined
1434
+ * @param {int} [since] timestamp in ms of the earliest deposit/withdrawal, default is undefined
1435
+ * @param {int} [limit] max number of deposit/withdrawals to return, default is undefined
1436
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1437
+ * @returns {object} a list of [transaction structure]{@link https://docs.ccxt.com/#/?id=transaction-structure}
1438
+ */
1439
+ async fetchDepositsWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
1440
+ await this.loadMarkets();
1441
+ const request = {
1442
+ // 'currency': currency['id'],
1443
+ // 'type': 'coin_in', // 'coin_out'
1444
+ // 'direct': 'asc', // 'desc'
1445
+ // 'size': limit, // default 100
1446
+ // 'start': id, // offset id
1447
+ };
1448
+ let currency = undefined;
1449
+ if (code !== undefined) {
1450
+ currency = this.currency(code);
1451
+ request['currency'] = currency['id'];
1452
+ }
1453
+ if (limit !== undefined) {
1454
+ request['size'] = limit;
1455
+ }
1456
+ const response = await this.privateGetWalletQueryDepositWithdraw(this.extend(request, params));
1457
+ //
1458
+ // {
1459
+ // "code": "A10000",
1460
+ // "data": [
1461
+ // {
1462
+ // "id": "DR562339304588709888",
1463
+ // "type": "COIN_IN",
1464
+ // "currency": "XLM",
1465
+ // "chain": "XLM",
1466
+ // "address": "GCUTK7KHPJC3ZQJ3OMWWFHAK2OXIBRD4LNZQRCCOVE7A2XOPP2K5PU5Q",
1467
+ // "addressTag": "1000009",
1468
+ // "amount": 1.0,
1469
+ // "state": "SUCCESS",
1470
+ // "txHash": "39210645748822f8d4ce673c7559aa6622e6e9cdd7073bc0fcae14b1edfda5f4",
1471
+ // "createdAt": 1554113737000,
1472
+ // "updatedAt": 1601371273000
1473
+ // }
1474
+ // ],
1475
+ // "message": "Success"
1476
+ // }
1477
+ //
1478
+ const data = this.safeList(response, 'data', []);
1479
+ return this.parseTransactions(data, currency, since, limit);
1480
+ }
1481
+ parseTransactionStatus(status) {
1482
+ // Pending the record is wait broadcast to chain
1483
+ // x/M confirming the comfirming state of tx, the M is total confirmings needed
1484
+ // SUCCESS the record is success full
1485
+ // FAIL the record failed
1486
+ const parts = status.split(' ');
1487
+ status = this.safeString(parts, 1, status);
1488
+ const statuses = {
1489
+ 'Pending': 'pending',
1490
+ 'confirming': 'pending',
1491
+ 'SUCCESS': 'ok',
1492
+ 'FAIL': 'failed',
1493
+ };
1494
+ return this.safeString(statuses, status, status);
1495
+ }
1496
+ parseTransaction(transaction, currency = undefined) {
1497
+ //
1498
+ // withdraw
1499
+ //
1500
+ // {
1501
+ // "code":"A10000",
1502
+ // "data": "DR123",
1503
+ // "message":"Success"
1504
+ // }
1505
+ //
1506
+ // fetchDepositsWithdrawals
1507
+ //
1508
+ // {
1509
+ // "id": "DR562339304588709888",
1510
+ // "type": "COIN_IN",
1511
+ // "currency": "XLM",
1512
+ // "chain": "XLM",
1513
+ // "address": "GCUTK7KHPJC3ZQJ3OMWWFHAK2OXIBRD4LNZQRCCOVE7A2XOPP2K5PU5Q",
1514
+ // "addressTag": "1000009",
1515
+ // "amount": 1.0,
1516
+ // "state": "SUCCESS",
1517
+ // "txHash": "39210645748822f8d4ce673c7559aa6622e6e9cdd7073bc0fcae14b1edfda5f4",
1518
+ // "createdAt": 1554113737000,
1519
+ // "updatedAt": 1601371273000
1520
+ // }
1521
+ //
1522
+ const id = this.safeString2(transaction, 'id', 'data');
1523
+ let type = this.safeString(transaction, 'type');
1524
+ if (type === 'COIN_IN') {
1525
+ type = 'deposit';
1526
+ }
1527
+ else if (type === 'COIN_OUT') {
1528
+ type = 'withdraw';
1529
+ }
1530
+ const amount = this.safeNumber(transaction, 'amount');
1531
+ const address = this.safeString(transaction, 'address');
1532
+ const tag = this.safeString(transaction, 'addressTag');
1533
+ const txid = this.safeString(transaction, 'txHash');
1534
+ const timestamp = this.safeInteger(transaction, 'createdAt');
1535
+ const updated = this.safeInteger(transaction, 'updatedAt');
1536
+ const currencyId = this.safeString(transaction, 'currency');
1537
+ const code = this.safeCurrencyCode(currencyId, currency);
1538
+ const status = this.parseTransactionStatus(this.safeString(transaction, 'state'));
1539
+ const network = this.safeString(transaction, 'chain');
1540
+ return {
1541
+ 'info': transaction,
1542
+ 'id': id,
1543
+ 'currency': code,
1544
+ 'amount': amount,
1545
+ 'network': network,
1546
+ 'address': address,
1547
+ 'addressTo': address,
1548
+ 'addressFrom': undefined,
1549
+ 'tag': tag,
1550
+ 'tagTo': tag,
1551
+ 'tagFrom': undefined,
1552
+ 'status': status,
1553
+ 'type': type,
1554
+ 'updated': updated,
1555
+ 'txid': txid,
1556
+ 'timestamp': timestamp,
1557
+ 'datetime': this.iso8601(timestamp),
1558
+ 'comment': undefined,
1559
+ 'internal': undefined,
1560
+ 'fee': {
1561
+ 'currency': undefined,
1562
+ 'cost': undefined,
1563
+ 'rate': undefined,
1564
+ },
1565
+ };
1566
+ }
1567
+ /**
1568
+ * @method
1569
+ * @name novadax#fetchMyTrades
1570
+ * @description fetch all trades made by the user
1571
+ * @see https://doc.novadax.com/en-US/#get-order-history
1572
+ * @param {string} symbol unified market symbol
1573
+ * @param {int} [since] the earliest time in ms to fetch trades for
1574
+ * @param {int} [limit] the maximum number of trades structures to retrieve
1575
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1576
+ * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
1577
+ */
1578
+ async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1579
+ await this.loadMarkets();
1580
+ const request = {
1581
+ // 'orderId': id, // Order ID, string
1582
+ // 'symbol': market['id'], // The trading symbol, like BTC_BRL, string
1583
+ // 'fromId': fromId, // Search fill id to begin with, string
1584
+ // 'toId': toId, // Search fill id to end up with, string
1585
+ // 'fromTimestamp': since, // Search order fill time to begin with, in milliseconds, string
1586
+ // 'toTimestamp': this.milliseconds (), // Search order fill time to end up with, in milliseconds, string
1587
+ // 'limit': limit, // The number of fills to return, default 100, max 100, string
1588
+ // 'accountId': subaccountId, // Sub account ID, if not informed, the fills will be return under master account, string
1589
+ };
1590
+ let market = undefined;
1591
+ if (symbol !== undefined) {
1592
+ market = this.market(symbol);
1593
+ request['symbol'] = market['id'];
1594
+ }
1595
+ if (limit !== undefined) {
1596
+ request['limit'] = limit;
1597
+ }
1598
+ if (since !== undefined) {
1599
+ request['fromTimestamp'] = since;
1600
+ }
1601
+ const response = await this.privateGetOrdersFills(this.extend(request, params));
1602
+ //
1603
+ // {
1604
+ // "code": "A10000",
1605
+ // "data": [
1606
+ // {
1607
+ // "id": "608717046691139584",
1608
+ // "orderId": "608716957545402368",
1609
+ // "symbol": "BTC_BRL",
1610
+ // "side": "BUY",
1611
+ // "amount": "0.0988",
1612
+ // "price": "45514.76",
1613
+ // "fee": "0.0000988 BTC",
1614
+ // "feeAmount": "0.0000988",
1615
+ // "feeCurrency": "BTC",
1616
+ // "role": "MAKER",
1617
+ // "timestamp": 1565171053345
1618
+ // },
1619
+ // ],
1620
+ // "message": "Success"
1621
+ // }
1622
+ //
1623
+ const data = this.safeList(response, 'data', []);
1624
+ return this.parseTrades(data, market, since, limit);
1625
+ }
1626
+ sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
1627
+ const request = '/' + this.version + '/' + this.implodeParams(path, params);
1628
+ let url = this.urls['api'][api] + request;
1629
+ const query = this.omit(params, this.extractParams(path));
1630
+ if (api === 'public') {
1631
+ if (Object.keys(query).length) {
1632
+ url += '?' + this.urlencode(query);
1633
+ }
1634
+ }
1635
+ else if (api === 'private') {
1636
+ this.checkRequiredCredentials();
1637
+ const timestamp = this.milliseconds().toString();
1638
+ headers = {
1639
+ 'X-Nova-Access-Key': this.apiKey,
1640
+ 'X-Nova-Timestamp': timestamp,
1641
+ };
1642
+ let queryString = undefined;
1643
+ if (method === 'POST') {
1644
+ body = this.json(query);
1645
+ queryString = this.hash(this.encode(body), md5);
1646
+ headers['Content-Type'] = 'application/json';
1647
+ }
1648
+ else {
1649
+ if (Object.keys(query).length) {
1650
+ url += '?' + this.urlencode(query);
1651
+ }
1652
+ queryString = this.urlencode(this.keysort(query));
1653
+ }
1654
+ const auth = method + "\n" + request + "\n" + queryString + "\n" + timestamp; // eslint-disable-line quotes
1655
+ headers['X-Nova-Signature'] = this.hmac(this.encode(auth), this.encode(this.secret), sha256);
1656
+ }
1657
+ return { 'url': url, 'method': method, 'body': body, 'headers': headers };
1658
+ }
1659
+ handleErrors(code, reason, url, method, headers, body, response, requestHeaders, requestBody) {
1660
+ if (response === undefined) {
1661
+ return undefined;
1662
+ }
1663
+ //
1664
+ // {"code":"A10003","data":[],"message":"Authentication failed, Invalid accessKey."}
1665
+ //
1666
+ const errorCode = this.safeString(response, 'code');
1667
+ if (errorCode !== 'A10000') {
1668
+ const message = this.safeString(response, 'message');
1669
+ const feedback = this.id + ' ' + body;
1670
+ this.throwExactlyMatchedException(this.exceptions['exact'], errorCode, feedback);
1671
+ this.throwBroadlyMatchedException(this.exceptions['broad'], message, feedback);
1672
+ throw new ExchangeError(feedback); // unknown message
1673
+ }
1674
+ return undefined;
1675
+ }
1676
+ }