ccxt-ir 4.10.0 → 4.12.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 +10 -1
  4. package/dist/cjs/src/abstract/bidarz.js +11 -0
  5. package/dist/cjs/src/bidarz.js +337 -0
  6. package/dist/cjs/src/bit24.js +4 -3
  7. package/dist/cjs/src/changefa.js +342 -0
  8. package/dist/cjs/src/ourbit.js +445 -0
  9. package/js/ccxt.d.ts +11 -2
  10. package/js/ccxt.js +8 -2
  11. package/js/src/abstract/bidarz.d.ts +9 -0
  12. package/js/src/abstract/bidarz.js +11 -0
  13. package/js/src/abstract/changefa.d.ts +8 -0
  14. package/js/src/abstract/changefa.js +11 -0
  15. package/js/src/abstract/ourbit.d.ts +10 -0
  16. package/js/src/abstract/ourbit.js +11 -0
  17. package/js/src/bidarz.d.ts +22 -0
  18. package/js/src/bidarz.js +336 -0
  19. package/js/src/bit24.js +4 -3
  20. package/js/src/changefa.d.ts +20 -0
  21. package/js/src/changefa.js +341 -0
  22. package/js/src/ourbit.d.ts +21 -0
  23. package/js/src/ourbit.js +444 -0
  24. package/js/src/src/abantether.d.ts +21 -0
  25. package/js/src/src/abantether.js +353 -0
  26. package/js/src/src/abstract/abantether.d.ts +8 -0
  27. package/js/src/src/abstract/abantether.js +11 -0
  28. package/js/src/src/abstract/afratether.d.ts +9 -0
  29. package/js/src/src/abstract/afratether.js +11 -0
  30. package/js/src/src/abstract/alpaca.d.ts +77 -0
  31. package/js/src/src/abstract/alpaca.js +11 -0
  32. package/js/src/src/abstract/apex.d.ts +34 -0
  33. package/js/src/src/abstract/apex.js +11 -0
  34. package/js/src/src/abstract/arzinja.d.ts +8 -0
  35. package/js/src/src/abstract/arzinja.js +11 -0
  36. package/js/src/src/abstract/arzplus.d.ts +11 -0
  37. package/js/src/src/abstract/arzplus.js +11 -0
  38. package/js/src/src/abstract/ascendex.d.ts +80 -0
  39. package/js/src/src/abstract/ascendex.js +11 -0
  40. package/js/src/src/abstract/asretether.d.ts +8 -0
  41. package/js/src/src/abstract/asretether.js +11 -0
  42. package/js/src/src/abstract/bidarz.d.ts +9 -0
  43. package/js/src/src/abstract/bidarz.js +11 -0
  44. package/js/src/src/abstract/bigone.d.ts +48 -0
  45. package/js/src/src/abstract/bigone.js +11 -0
  46. package/js/src/src/abstract/binance.d.ts +773 -0
  47. package/js/src/src/abstract/binance.js +11 -0
  48. package/js/src/src/abstract/bingx.d.ts +165 -0
  49. package/js/src/src/abstract/bingx.js +11 -0
  50. package/js/src/src/abstract/bit24.d.ts +9 -0
  51. package/js/src/src/abstract/bit24.js +11 -0
  52. package/js/src/src/abstract/bit2c.d.ts +30 -0
  53. package/js/src/src/abstract/bit2c.js +11 -0
  54. package/js/src/src/abstract/bitbank.d.ts +35 -0
  55. package/js/src/src/abstract/bitbank.js +11 -0
  56. package/js/src/src/abstract/bitbarg.d.ts +8 -0
  57. package/js/src/src/abstract/bitbarg.js +11 -0
  58. package/js/src/src/abstract/bitbns.d.ts +43 -0
  59. package/js/src/src/abstract/bitbns.js +11 -0
  60. package/js/src/src/abstract/bitfinex.d.ts +143 -0
  61. package/js/src/src/abstract/bitfinex.js +11 -0
  62. package/js/src/src/abstract/bitflyer.d.ts +42 -0
  63. package/js/src/src/abstract/bitflyer.js +11 -0
  64. package/js/src/src/abstract/bitget.d.ts +578 -0
  65. package/js/src/src/abstract/bitget.js +11 -0
  66. package/js/src/src/abstract/bithumb.d.ts +35 -0
  67. package/js/src/src/abstract/bithumb.js +11 -0
  68. package/js/src/src/abstract/bitimen.d.ts +10 -0
  69. package/js/src/src/abstract/bitimen.js +11 -0
  70. package/js/src/src/abstract/bitir.d.ts +10 -0
  71. package/js/src/src/abstract/bitir.js +11 -0
  72. package/js/src/src/abstract/bitmart.d.ts +120 -0
  73. package/js/src/src/abstract/bitmart.js +11 -0
  74. package/js/src/src/abstract/bitmex.d.ts +100 -0
  75. package/js/src/src/abstract/bitmex.js +11 -0
  76. package/js/src/src/abstract/bitopro.d.ts +33 -0
  77. package/js/src/src/abstract/bitopro.js +11 -0
  78. package/js/src/src/abstract/bitpin.d.ts +11 -0
  79. package/js/src/src/abstract/bitpin.js +11 -0
  80. package/js/src/src/abstract/bitrue.d.ts +75 -0
  81. package/js/src/src/abstract/bitrue.js +11 -0
  82. package/js/src/src/abstract/bitso.d.ts +46 -0
  83. package/js/src/src/abstract/bitso.js +11 -0
  84. package/js/src/src/abstract/bitstamp.d.ts +262 -0
  85. package/js/src/src/abstract/bitstamp.js +11 -0
  86. package/js/src/src/abstract/bitteam.d.ts +32 -0
  87. package/js/src/src/abstract/bitteam.js +11 -0
  88. package/js/src/src/abstract/bittrade.d.ts +117 -0
  89. package/js/src/src/abstract/bittrade.js +11 -0
  90. package/js/src/src/abstract/bitunix.d.ts +9 -0
  91. package/js/src/src/abstract/bitunix.js +11 -0
  92. package/js/src/src/abstract/bitvavo.d.ts +30 -0
  93. package/js/src/src/abstract/bitvavo.js +11 -0
  94. package/js/src/src/abstract/blockchaincom.d.ts +31 -0
  95. package/js/src/src/abstract/blockchaincom.js +11 -0
  96. package/js/src/src/abstract/blofin.d.ts +70 -0
  97. package/js/src/src/abstract/blofin.js +11 -0
  98. package/js/src/src/abstract/btcalpha.d.ts +21 -0
  99. package/js/src/src/abstract/btcalpha.js +11 -0
  100. package/js/src/src/abstract/btcbox.d.ts +18 -0
  101. package/js/src/src/abstract/btcbox.js +11 -0
  102. package/js/src/src/abstract/btcmarkets.d.ts +42 -0
  103. package/js/src/src/abstract/btcmarkets.js +11 -0
  104. package/js/src/src/abstract/btcturk.d.ts +23 -0
  105. package/js/src/src/abstract/btcturk.js +11 -0
  106. package/js/src/src/abstract/bybit.d.ts +316 -0
  107. package/js/src/src/abstract/bybit.js +11 -0
  108. package/js/src/src/abstract/bydfi.d.ts +11 -0
  109. package/js/src/src/abstract/bydfi.js +11 -0
  110. package/js/src/src/abstract/cafearz.d.ts +8 -0
  111. package/js/src/src/abstract/cafearz.js +11 -0
  112. package/js/src/src/abstract/cex.d.ts +35 -0
  113. package/js/src/src/abstract/cex.js +11 -0
  114. package/js/src/src/abstract/coinbase.d.ts +97 -0
  115. package/js/src/src/abstract/coinbase.js +11 -0
  116. package/js/src/src/abstract/coinbaseexchange.d.ts +71 -0
  117. package/js/src/src/abstract/coinbaseexchange.js +11 -0
  118. package/js/src/src/abstract/coinbaseinternational.d.ts +42 -0
  119. package/js/src/src/abstract/coinbaseinternational.js +11 -0
  120. package/js/src/src/abstract/coincatch.d.ts +97 -0
  121. package/js/src/src/abstract/coincatch.js +11 -0
  122. package/js/src/src/abstract/coincheck.d.ts +36 -0
  123. package/js/src/src/abstract/coincheck.js +11 -0
  124. package/js/src/src/abstract/coinex.d.ts +240 -0
  125. package/js/src/src/abstract/coinex.js +11 -0
  126. package/js/src/src/abstract/coinmate.d.ts +65 -0
  127. package/js/src/src/abstract/coinmate.js +11 -0
  128. package/js/src/src/abstract/coinmetro.d.ts +37 -0
  129. package/js/src/src/abstract/coinmetro.js +11 -0
  130. package/js/src/src/abstract/coinone.d.ts +70 -0
  131. package/js/src/src/abstract/coinone.js +11 -0
  132. package/js/src/src/abstract/coinsph.d.ts +57 -0
  133. package/js/src/src/abstract/coinsph.js +11 -0
  134. package/js/src/src/abstract/coinspot.d.ts +31 -0
  135. package/js/src/src/abstract/coinspot.js +11 -0
  136. package/js/src/src/abstract/cryptocom.d.ts +126 -0
  137. package/js/src/src/abstract/cryptocom.js +11 -0
  138. package/js/src/src/abstract/cryptomus.d.ts +23 -0
  139. package/js/src/src/abstract/cryptomus.js +11 -0
  140. package/js/src/src/abstract/defx.d.ts +72 -0
  141. package/js/src/src/abstract/defx.js +11 -0
  142. package/js/src/src/abstract/delta.d.ts +53 -0
  143. package/js/src/src/abstract/delta.js +11 -0
  144. package/js/src/src/abstract/deribit.d.ts +129 -0
  145. package/js/src/src/abstract/deribit.js +11 -0
  146. package/js/src/src/abstract/derive.d.ts +120 -0
  147. package/js/src/src/abstract/derive.js +11 -0
  148. package/js/src/src/abstract/digifinex.d.ts +95 -0
  149. package/js/src/src/abstract/digifinex.js +11 -0
  150. package/js/src/src/abstract/ellipx.d.ts +28 -0
  151. package/js/src/src/abstract/ellipx.js +11 -0
  152. package/js/src/src/abstract/eterex.d.ts +8 -0
  153. package/js/src/src/abstract/eterex.js +11 -0
  154. package/js/src/src/abstract/excoino.d.ts +10 -0
  155. package/js/src/src/abstract/excoino.js +11 -0
  156. package/js/src/src/abstract/exir.d.ts +11 -0
  157. package/js/src/src/abstract/exir.js +11 -0
  158. package/js/src/src/abstract/exmo.d.ts +58 -0
  159. package/js/src/src/abstract/exmo.js +11 -0
  160. package/js/src/src/abstract/exnovin.d.ts +9 -0
  161. package/js/src/src/abstract/exnovin.js +11 -0
  162. package/js/src/src/abstract/farhadexchange.d.ts +8 -0
  163. package/js/src/src/abstract/farhadexchange.js +11 -0
  164. package/js/src/src/abstract/foxbit.d.ts +29 -0
  165. package/js/src/src/abstract/foxbit.js +11 -0
  166. package/js/src/src/abstract/gate.d.ts +287 -0
  167. package/js/src/src/abstract/gate.js +11 -0
  168. package/js/src/src/abstract/gemini.d.ts +62 -0
  169. package/js/src/src/abstract/gemini.js +11 -0
  170. package/js/src/src/abstract/hamtapay.d.ts +9 -0
  171. package/js/src/src/abstract/hamtapay.js +11 -0
  172. package/js/src/src/abstract/hashkey.d.ts +70 -0
  173. package/js/src/src/abstract/hashkey.js +11 -0
  174. package/js/src/src/abstract/hibachi.d.ts +29 -0
  175. package/js/src/src/abstract/hibachi.js +11 -0
  176. package/js/src/src/abstract/hitbtc.d.ts +118 -0
  177. package/js/src/src/abstract/hitbtc.js +11 -0
  178. package/js/src/src/abstract/hitobit.d.ts +11 -0
  179. package/js/src/src/abstract/hitobit.js +11 -0
  180. package/js/src/src/abstract/hollaex.d.ts +36 -0
  181. package/js/src/src/abstract/hollaex.js +11 -0
  182. package/js/src/src/abstract/htx.d.ts +551 -0
  183. package/js/src/src/abstract/htx.js +11 -0
  184. package/js/src/src/abstract/hyperliquid.d.ts +9 -0
  185. package/js/src/src/abstract/hyperliquid.js +11 -0
  186. package/js/src/src/abstract/independentreserve.d.ts +46 -0
  187. package/js/src/src/abstract/independentreserve.js +11 -0
  188. package/js/src/src/abstract/indodax.d.ts +29 -0
  189. package/js/src/src/abstract/indodax.js +11 -0
  190. package/js/src/src/abstract/iranexchange.d.ts +9 -0
  191. package/js/src/src/abstract/iranexchange.js +11 -0
  192. package/js/src/src/abstract/jibitex.d.ts +10 -0
  193. package/js/src/src/abstract/jibitex.js +11 -0
  194. package/js/src/src/abstract/kcex.d.ts +10 -0
  195. package/js/src/src/abstract/kcex.js +11 -0
  196. package/js/src/src/abstract/kifpoolme.d.ts +9 -0
  197. package/js/src/src/abstract/kifpoolme.js +11 -0
  198. package/js/src/src/abstract/kraken.d.ts +61 -0
  199. package/js/src/src/abstract/kraken.js +11 -0
  200. package/js/src/src/abstract/krakenfutures.d.ts +45 -0
  201. package/js/src/src/abstract/krakenfutures.js +11 -0
  202. package/js/src/src/abstract/kucoin.d.ts +227 -0
  203. package/js/src/src/abstract/kucoin.js +11 -0
  204. package/js/src/src/abstract/kucoinfutures.d.ts +254 -0
  205. package/js/src/src/abstract/kucoinfutures.js +11 -0
  206. package/js/src/src/abstract/latoken.d.ts +59 -0
  207. package/js/src/src/abstract/latoken.js +11 -0
  208. package/js/src/src/abstract/lbank.d.ts +65 -0
  209. package/js/src/src/abstract/lbank.js +11 -0
  210. package/js/src/src/abstract/luno.d.ts +41 -0
  211. package/js/src/src/abstract/luno.js +11 -0
  212. package/js/src/src/abstract/mazdax.d.ts +11 -0
  213. package/js/src/src/abstract/mazdax.js +11 -0
  214. package/js/src/src/abstract/mercado.d.ts +28 -0
  215. package/js/src/src/abstract/mercado.js +11 -0
  216. package/js/src/src/abstract/mexc.d.ts +183 -0
  217. package/js/src/src/abstract/mexc.js +11 -0
  218. package/js/src/src/abstract/modetrade.d.ts +122 -0
  219. package/js/src/src/abstract/modetrade.js +11 -0
  220. package/js/src/src/abstract/ndax.d.ts +100 -0
  221. package/js/src/src/abstract/ndax.js +11 -0
  222. package/js/src/src/abstract/nobitex.d.ts +10 -0
  223. package/js/src/src/abstract/nobitex.js +11 -0
  224. package/js/src/src/abstract/novadax.d.ts +32 -0
  225. package/js/src/src/abstract/novadax.js +11 -0
  226. package/js/src/src/abstract/oceanex.d.ts +30 -0
  227. package/js/src/src/abstract/oceanex.js +11 -0
  228. package/js/src/src/abstract/okcoin.d.ts +77 -0
  229. package/js/src/src/abstract/okcoin.js +11 -0
  230. package/js/src/src/abstract/okexchange.d.ts +11 -0
  231. package/js/src/src/abstract/okexchange.js +11 -0
  232. package/js/src/src/abstract/okx.d.ts +352 -0
  233. package/js/src/src/abstract/okx.js +11 -0
  234. package/js/src/src/abstract/ompfinex.d.ts +10 -0
  235. package/js/src/src/abstract/ompfinex.js +11 -0
  236. package/js/src/src/abstract/onetrading.d.ts +26 -0
  237. package/js/src/src/abstract/onetrading.js +11 -0
  238. package/js/src/src/abstract/oxfun.d.ts +37 -0
  239. package/js/src/src/abstract/oxfun.js +11 -0
  240. package/js/src/src/abstract/p2b.d.ts +25 -0
  241. package/js/src/src/abstract/p2b.js +11 -0
  242. package/js/src/src/abstract/paradex.d.ts +66 -0
  243. package/js/src/src/abstract/paradex.js +11 -0
  244. package/js/src/src/abstract/paymium.d.ts +31 -0
  245. package/js/src/src/abstract/paymium.js +11 -0
  246. package/js/src/src/abstract/phemex.d.ts +120 -0
  247. package/js/src/src/abstract/phemex.js +11 -0
  248. package/js/src/src/abstract/pingi.d.ts +9 -0
  249. package/js/src/src/abstract/pingi.js +11 -0
  250. package/js/src/src/abstract/poloniex.d.ts +108 -0
  251. package/js/src/src/abstract/poloniex.js +11 -0
  252. package/js/src/src/abstract/pooleno.d.ts +8 -0
  253. package/js/src/src/abstract/pooleno.js +11 -0
  254. package/js/src/src/abstract/probit.d.ts +26 -0
  255. package/js/src/src/abstract/probit.js +11 -0
  256. package/js/src/src/abstract/raastin.d.ts +11 -0
  257. package/js/src/src/abstract/raastin.js +11 -0
  258. package/js/src/src/abstract/ramzinex.d.ts +10 -0
  259. package/js/src/src/abstract/ramzinex.js +11 -0
  260. package/js/src/src/abstract/sarmayex.d.ts +8 -0
  261. package/js/src/src/abstract/sarmayex.js +11 -0
  262. package/js/src/src/abstract/sarrafex.d.ts +10 -0
  263. package/js/src/src/abstract/sarrafex.js +11 -0
  264. package/js/src/src/abstract/tabdeal.d.ts +10 -0
  265. package/js/src/src/abstract/tabdeal.js +11 -0
  266. package/js/src/src/abstract/tehran_exchange.d.ts +9 -0
  267. package/js/src/src/abstract/tehran_exchange.js +11 -0
  268. package/js/src/src/abstract/tetherland.d.ts +8 -0
  269. package/js/src/src/abstract/tetherland.js +11 -0
  270. package/js/src/src/abstract/timex.d.ts +65 -0
  271. package/js/src/src/abstract/timex.js +11 -0
  272. package/js/src/src/abstract/tokocrypto.d.ts +40 -0
  273. package/js/src/src/abstract/tokocrypto.js +11 -0
  274. package/js/src/src/abstract/toobit.d.ts +10 -0
  275. package/js/src/src/abstract/toobit.js +11 -0
  276. package/js/src/src/abstract/tradeogre.d.ts +21 -0
  277. package/js/src/src/abstract/tradeogre.js +11 -0
  278. package/js/src/src/abstract/twox.d.ts +8 -0
  279. package/js/src/src/abstract/twox.js +11 -0
  280. package/js/src/src/abstract/ubitex.d.ts +10 -0
  281. package/js/src/src/abstract/ubitex.js +11 -0
  282. package/js/src/src/abstract/upbit.d.ts +58 -0
  283. package/js/src/src/abstract/upbit.js +11 -0
  284. package/js/src/src/abstract/vertex.d.ts +22 -0
  285. package/js/src/src/abstract/vertex.js +11 -0
  286. package/js/src/src/abstract/wallex.d.ts +11 -0
  287. package/js/src/src/abstract/wallex.js +11 -0
  288. package/js/src/src/abstract/wavesexchange.d.ts +157 -0
  289. package/js/src/src/abstract/wavesexchange.js +11 -0
  290. package/js/src/src/abstract/whitebit.d.ts +117 -0
  291. package/js/src/src/abstract/whitebit.js +11 -0
  292. package/js/src/src/abstract/woo.d.ts +144 -0
  293. package/js/src/src/abstract/woo.js +11 -0
  294. package/js/src/src/abstract/woofipro.d.ts +122 -0
  295. package/js/src/src/abstract/woofipro.js +11 -0
  296. package/js/src/src/abstract/xt.d.ts +160 -0
  297. package/js/src/src/abstract/xt.js +11 -0
  298. package/js/src/src/abstract/yobit.d.ts +19 -0
  299. package/js/src/src/abstract/yobit.js +11 -0
  300. package/js/src/src/abstract/zaif.d.ts +41 -0
  301. package/js/src/src/abstract/zaif.js +11 -0
  302. package/js/src/src/abstract/zonda.d.ts +56 -0
  303. package/js/src/src/abstract/zonda.js +11 -0
  304. package/js/src/src/afratether.d.ts +21 -0
  305. package/js/src/src/afratether.js +356 -0
  306. package/js/src/src/alpaca.d.ts +332 -0
  307. package/js/src/src/alpaca.js +1908 -0
  308. package/js/src/src/apex.d.ts +333 -0
  309. package/js/src/src/apex.js +1942 -0
  310. package/js/src/src/arzinja.d.ts +21 -0
  311. package/js/src/src/arzinja.js +298 -0
  312. package/js/src/src/arzplus.d.ts +26 -0
  313. package/js/src/src/arzplus.js +581 -0
  314. package/js/src/src/ascendex.d.ts +424 -0
  315. package/js/src/src/ascendex.js +3699 -0
  316. package/js/src/src/asretether.d.ts +21 -0
  317. package/js/src/src/asretether.js +324 -0
  318. package/js/src/src/base/Exchange.d.ts +926 -0
  319. package/js/src/src/base/Exchange.js +7399 -0
  320. package/js/src/src/base/Precise.d.ts +42 -0
  321. package/js/src/src/base/Precise.js +275 -0
  322. package/js/src/src/base/errors.d.ts +168 -0
  323. package/js/src/src/base/errors.js +255 -0
  324. package/js/src/src/base/functions/crypto.d.ts +16 -0
  325. package/js/src/src/base/functions/crypto.js +131 -0
  326. package/js/src/src/base/functions/encode.d.ts +4 -0
  327. package/js/src/src/base/functions/encode.js +32 -0
  328. package/js/src/src/base/functions/generic.d.ts +29 -0
  329. package/js/src/src/base/functions/generic.js +203 -0
  330. package/js/src/src/base/functions/misc.d.ts +9 -0
  331. package/js/src/src/base/functions/misc.js +101 -0
  332. package/js/src/src/base/functions/number.d.ts +27 -0
  333. package/js/src/src/base/functions/number.js +313 -0
  334. package/js/src/src/base/functions/platform.d.ts +7 -0
  335. package/js/src/src/base/functions/platform.js +27 -0
  336. package/js/src/src/base/functions/rsa.d.ts +5 -0
  337. package/js/src/src/base/functions/rsa.js +49 -0
  338. package/js/src/src/base/functions/string.d.ts +7 -0
  339. package/js/src/src/base/functions/string.js +44 -0
  340. package/js/src/src/base/functions/throttle.d.ts +6 -0
  341. package/js/src/src/base/functions/throttle.js +67 -0
  342. package/js/src/src/base/functions/time.d.ts +21 -0
  343. package/js/src/src/base/functions/time.js +171 -0
  344. package/js/src/src/base/functions/totp.d.ts +3 -0
  345. package/js/src/src/base/functions/totp.js +25 -0
  346. package/js/src/src/base/functions/type.d.ts +37 -0
  347. package/js/src/src/base/functions/type.js +179 -0
  348. package/js/src/src/base/functions.d.ts +10 -0
  349. package/js/src/src/base/functions.js +18 -0
  350. package/js/src/src/base/types.d.ts +586 -0
  351. package/js/src/src/base/types.js +7 -0
  352. package/js/src/src/base/ws/Cache.d.ts +27 -0
  353. package/js/src/src/base/ws/Cache.js +260 -0
  354. package/js/src/src/base/ws/Client.d.ts +53 -0
  355. package/js/src/src/base/ws/Client.js +307 -0
  356. package/js/src/src/base/ws/Future.d.ts +8 -0
  357. package/js/src/src/base/ws/Future.js +35 -0
  358. package/js/src/src/base/ws/OrderBook.d.ts +25 -0
  359. package/js/src/src/base/ws/OrderBook.js +130 -0
  360. package/js/src/src/base/ws/OrderBookSide.d.ts +40 -0
  361. package/js/src/src/base/ws/OrderBookSide.js +286 -0
  362. package/js/src/src/base/ws/WsClient.d.ts +11 -0
  363. package/js/src/src/base/ws/WsClient.js +69 -0
  364. package/js/src/src/bequant.d.ts +4 -0
  365. package/js/src/src/bequant.js +35 -0
  366. package/js/src/src/bidarz.d.ts +16 -0
  367. package/js/src/src/bidarz.js +327 -0
  368. package/js/src/src/bigone.d.ts +296 -0
  369. package/js/src/src/bigone.js +2340 -0
  370. package/js/src/src/binance.d.ts +1667 -0
  371. package/js/src/src/binance.js +14400 -0
  372. package/js/src/src/binancecoinm.d.ts +6 -0
  373. package/js/src/src/binancecoinm.js +51 -0
  374. package/js/src/src/binanceus.d.ts +4 -0
  375. package/js/src/src/binanceus.js +225 -0
  376. package/js/src/src/binanceusdm.d.ts +6 -0
  377. package/js/src/src/binanceusdm.js +63 -0
  378. package/js/src/src/bingx.d.ts +778 -0
  379. package/js/src/src/bingx.js +6705 -0
  380. package/js/src/src/bit24.d.ts +24 -0
  381. package/js/src/src/bit24.js +520 -0
  382. package/js/src/src/bit2c.d.ts +146 -0
  383. package/js/src/src/bit2c.js +1029 -0
  384. package/js/src/src/bitbank.d.ts +181 -0
  385. package/js/src/src/bitbank.js +1146 -0
  386. package/js/src/src/bitbarg.d.ts +21 -0
  387. package/js/src/src/bitbarg.js +312 -0
  388. package/js/src/src/bitbns.d.ts +184 -0
  389. package/js/src/src/bitbns.js +1288 -0
  390. package/js/src/src/bitfinex.d.ts +516 -0
  391. package/js/src/src/bitfinex.js +3951 -0
  392. package/js/src/src/bitflyer.d.ts +229 -0
  393. package/js/src/src/bitflyer.js +1209 -0
  394. package/js/src/src/bitget.d.ts +1109 -0
  395. package/js/src/src/bitget.js +11033 -0
  396. package/js/src/src/bithumb.d.ts +165 -0
  397. package/js/src/src/bithumb.js +1257 -0
  398. package/js/src/src/bitimen.d.ts +23 -0
  399. package/js/src/src/bitimen.js +424 -0
  400. package/js/src/src/bitir.d.ts +23 -0
  401. package/js/src/src/bitir.js +521 -0
  402. package/js/src/src/bitmart.d.ts +736 -0
  403. package/js/src/src/bitmart.js +5639 -0
  404. package/js/src/src/bitmex.d.ts +395 -0
  405. package/js/src/src/bitmex.js +3088 -0
  406. package/js/src/src/bitopro.d.ts +295 -0
  407. package/js/src/src/bitopro.js +1892 -0
  408. package/js/src/src/bitpin.d.ts +23 -0
  409. package/js/src/src/bitpin.js +487 -0
  410. package/js/src/src/bitrue.d.ts +384 -0
  411. package/js/src/src/bitrue.js +3382 -0
  412. package/js/src/src/bitso.d.ts +270 -0
  413. package/js/src/src/bitso.js +1881 -0
  414. package/js/src/src/bitstamp.d.ts +355 -0
  415. package/js/src/src/bitstamp.js +2445 -0
  416. package/js/src/src/bitteam.d.ts +229 -0
  417. package/js/src/src/bitteam.js +2420 -0
  418. package/js/src/src/bittrade.d.ts +298 -0
  419. package/js/src/src/bittrade.js +2050 -0
  420. package/js/src/src/bitunix.d.ts +21 -0
  421. package/js/src/src/bitunix.js +326 -0
  422. package/js/src/src/bitvavo.d.ts +311 -0
  423. package/js/src/src/bitvavo.js +2204 -0
  424. package/js/src/src/blockchaincom.d.ts +256 -0
  425. package/js/src/src/blockchaincom.js +1259 -0
  426. package/js/src/src/blofin.d.ts +439 -0
  427. package/js/src/src/blofin.js +2576 -0
  428. package/js/src/src/btcalpha.d.ts +209 -0
  429. package/js/src/src/btcalpha.js +1056 -0
  430. package/js/src/src/btcbox.d.ts +144 -0
  431. package/js/src/src/btcbox.js +834 -0
  432. package/js/src/src/btcmarkets.d.ts +253 -0
  433. package/js/src/src/btcmarkets.js +1418 -0
  434. package/js/src/src/btcturk.d.ts +161 -0
  435. package/js/src/src/btcturk.js +1058 -0
  436. package/js/src/src/bybit.d.ts +1097 -0
  437. package/js/src/src/bybit.js +9382 -0
  438. package/js/src/src/bydfi.d.ts +23 -0
  439. package/js/src/src/bydfi.js +434 -0
  440. package/js/src/src/cafearz.d.ts +21 -0
  441. package/js/src/src/cafearz.js +346 -0
  442. package/js/src/src/cex.d.ts +286 -0
  443. package/js/src/src/cex.js +1799 -0
  444. package/js/src/src/coinbase.d.ts +623 -0
  445. package/js/src/src/coinbase.js +5220 -0
  446. package/js/src/src/coinbaseadvanced.d.ts +4 -0
  447. package/js/src/src/coinbaseadvanced.js +18 -0
  448. package/js/src/src/coinbaseexchange.d.ts +334 -0
  449. package/js/src/src/coinbaseexchange.js +2127 -0
  450. package/js/src/src/coinbaseinternational.d.ts +443 -0
  451. package/js/src/src/coinbaseinternational.js +2336 -0
  452. package/js/src/src/coincatch.d.ts +786 -0
  453. package/js/src/src/coincatch.js +5492 -0
  454. package/js/src/src/coincheck.d.ts +147 -0
  455. package/js/src/src/coincheck.js +962 -0
  456. package/js/src/src/coinex.d.ts +719 -0
  457. package/js/src/src/coinex.js +6166 -0
  458. package/js/src/src/coinmate.d.ts +202 -0
  459. package/js/src/src/coinmate.js +1215 -0
  460. package/js/src/src/coinmetro.d.ts +244 -0
  461. package/js/src/src/coinmetro.js +2024 -0
  462. package/js/src/src/coinone.d.ts +158 -0
  463. package/js/src/src/coinone.js +1278 -0
  464. package/js/src/src/coinsph.d.ts +310 -0
  465. package/js/src/src/coinsph.js +2203 -0
  466. package/js/src/src/coinspot.d.ts +108 -0
  467. package/js/src/src/coinspot.js +653 -0
  468. package/js/src/src/cryptocom.d.ts +463 -0
  469. package/js/src/src/cryptocom.js +3549 -0
  470. package/js/src/src/cryptomus.d.ts +158 -0
  471. package/js/src/src/cryptomus.js +1169 -0
  472. package/js/src/src/defx.d.ts +348 -0
  473. package/js/src/src/defx.js +2139 -0
  474. package/js/src/src/delta.d.ts +407 -0
  475. package/js/src/src/delta.js +3654 -0
  476. package/js/src/src/deribit.d.ts +516 -0
  477. package/js/src/src/deribit.js +3790 -0
  478. package/js/src/src/derive.d.ts +324 -0
  479. package/js/src/src/derive.js +2655 -0
  480. package/js/src/src/digifinex.d.ts +544 -0
  481. package/js/src/src/digifinex.js +4453 -0
  482. package/js/src/src/ellipx.d.ts +237 -0
  483. package/js/src/src/ellipx.js +2071 -0
  484. package/js/src/src/eterex.d.ts +21 -0
  485. package/js/src/src/eterex.js +299 -0
  486. package/js/src/src/excoino.d.ts +23 -0
  487. package/js/src/src/excoino.js +426 -0
  488. package/js/src/src/exir.d.ts +23 -0
  489. package/js/src/src/exir.js +403 -0
  490. package/js/src/src/exmo.d.ts +426 -0
  491. package/js/src/src/exmo.js +2825 -0
  492. package/js/src/src/exnovin.d.ts +22 -0
  493. package/js/src/src/exnovin.js +378 -0
  494. package/js/src/src/farhadexchange.d.ts +21 -0
  495. package/js/src/src/farhadexchange.js +280 -0
  496. package/js/src/src/fmfwio.d.ts +4 -0
  497. package/js/src/src/fmfwio.js +35 -0
  498. package/js/src/src/foxbit.d.ts +352 -0
  499. package/js/src/src/foxbit.js +2016 -0
  500. package/js/src/src/gate.d.ts +1071 -0
  501. package/js/src/src/gate.js +8282 -0
  502. package/js/src/src/gateio.d.ts +4 -0
  503. package/js/src/src/gateio.js +17 -0
  504. package/js/src/src/gemini.d.ts +257 -0
  505. package/js/src/src/gemini.js +2006 -0
  506. package/js/src/src/hamtapay.d.ts +21 -0
  507. package/js/src/src/hamtapay.js +303 -0
  508. package/js/src/src/hashkey.d.ts +628 -0
  509. package/js/src/src/hashkey.js +4363 -0
  510. package/js/src/src/hibachi.d.ts +346 -0
  511. package/js/src/src/hibachi.js +2137 -0
  512. package/js/src/src/hitbtc.d.ts +558 -0
  513. package/js/src/src/hitbtc.js +3847 -0
  514. package/js/src/src/hitobit.d.ts +23 -0
  515. package/js/src/src/hitobit.js +412 -0
  516. package/js/src/src/hollaex.d.ts +305 -0
  517. package/js/src/src/hollaex.js +2046 -0
  518. package/js/src/src/htx.d.ts +961 -0
  519. package/js/src/src/htx.js +9668 -0
  520. package/js/src/src/huobi.d.ts +4 -0
  521. package/js/src/src/huobi.js +17 -0
  522. package/js/src/src/hyperliquid.d.ts +651 -0
  523. package/js/src/src/hyperliquid.js +3937 -0
  524. package/js/src/src/independentreserve.d.ts +169 -0
  525. package/js/src/src/independentreserve.js +1115 -0
  526. package/js/src/src/indodax.d.ts +217 -0
  527. package/js/src/src/indodax.js +1454 -0
  528. package/js/src/src/iranexchange.d.ts +21 -0
  529. package/js/src/src/iranexchange.js +399 -0
  530. package/js/src/src/jibitex.d.ts +23 -0
  531. package/js/src/src/jibitex.js +416 -0
  532. package/js/src/src/kcex.d.ts +21 -0
  533. package/js/src/src/kcex.js +335 -0
  534. package/js/src/src/kifpoolme.d.ts +23 -0
  535. package/js/src/src/kifpoolme.js +410 -0
  536. package/js/src/src/kraken.d.ts +484 -0
  537. package/js/src/src/kraken.js +3518 -0
  538. package/js/src/src/krakenfutures.d.ts +362 -0
  539. package/js/src/src/krakenfutures.js +2885 -0
  540. package/js/src/src/kucoin.d.ts +759 -0
  541. package/js/src/src/kucoin.js +5153 -0
  542. package/js/src/src/kucoinfutures.d.ts +521 -0
  543. package/js/src/src/kucoinfutures.js +3381 -0
  544. package/js/src/src/latoken.d.ts +274 -0
  545. package/js/src/src/latoken.js +1824 -0
  546. package/js/src/src/lbank.d.ts +350 -0
  547. package/js/src/src/lbank.js +3146 -0
  548. package/js/src/src/luno.d.ts +252 -0
  549. package/js/src/src/luno.js +1479 -0
  550. package/js/src/src/mazdax.d.ts +23 -0
  551. package/js/src/src/mazdax.js +534 -0
  552. package/js/src/src/mercado.d.ts +160 -0
  553. package/js/src/src/mercado.js +1011 -0
  554. package/js/src/src/mexc.d.ts +768 -0
  555. package/js/src/src/mexc.js +6102 -0
  556. package/js/src/src/modetrade.d.ts +496 -0
  557. package/js/src/src/modetrade.js +2936 -0
  558. package/js/src/src/myokx.d.ts +4 -0
  559. package/js/src/src/myokx.js +54 -0
  560. package/js/src/src/ndax.d.ts +285 -0
  561. package/js/src/src/ndax.js +2598 -0
  562. package/js/src/src/nobitex.d.ts +23 -0
  563. package/js/src/src/nobitex.js +454 -0
  564. package/js/src/src/novadax.d.ts +279 -0
  565. package/js/src/src/novadax.js +1676 -0
  566. package/js/src/src/oceanex.d.ts +231 -0
  567. package/js/src/src/oceanex.js +1123 -0
  568. package/js/src/src/okcoin.d.ts +346 -0
  569. package/js/src/src/okcoin.js +3211 -0
  570. package/js/src/src/okexchange.d.ts +23 -0
  571. package/js/src/src/okexchange.js +373 -0
  572. package/js/src/src/okx.d.ts +1125 -0
  573. package/js/src/src/okx.js +9009 -0
  574. package/js/src/src/okxus.d.ts +4 -0
  575. package/js/src/src/okxus.js +54 -0
  576. package/js/src/src/ompfinex.d.ts +23 -0
  577. package/js/src/src/ompfinex.js +510 -0
  578. package/js/src/src/onetrading.d.ts +228 -0
  579. package/js/src/src/onetrading.js +1769 -0
  580. package/js/src/src/oxfun.d.ts +442 -0
  581. package/js/src/src/oxfun.js +2920 -0
  582. package/js/src/src/p2b.d.ts +189 -0
  583. package/js/src/src/p2b.js +1344 -0
  584. package/js/src/src/paradex.d.ts +389 -0
  585. package/js/src/src/paradex.js +2607 -0
  586. package/js/src/src/paymium.d.ts +133 -0
  587. package/js/src/src/paymium.js +644 -0
  588. package/js/src/src/phemex.d.ts +497 -0
  589. package/js/src/src/phemex.js +5333 -0
  590. package/js/src/src/pingi.d.ts +22 -0
  591. package/js/src/src/pingi.js +446 -0
  592. package/js/src/src/poloniex.d.ts +441 -0
  593. package/js/src/src/poloniex.js +3681 -0
  594. package/js/src/src/pooleno.d.ts +21 -0
  595. package/js/src/src/pooleno.js +347 -0
  596. package/js/src/src/pro/alpaca.d.ts +95 -0
  597. package/js/src/src/pro/alpaca.js +724 -0
  598. package/js/src/src/pro/apex.d.ts +160 -0
  599. package/js/src/src/pro/apex.js +1044 -0
  600. package/js/src/src/pro/ascendex.d.ts +99 -0
  601. package/js/src/src/pro/ascendex.js +1012 -0
  602. package/js/src/src/pro/bequant.d.ts +4 -0
  603. package/js/src/src/pro/bequant.js +42 -0
  604. package/js/src/src/pro/binance.d.ts +796 -0
  605. package/js/src/src/pro/binance.js +4373 -0
  606. package/js/src/src/pro/binancecoinm.d.ts +4 -0
  607. package/js/src/src/pro/binancecoinm.js +32 -0
  608. package/js/src/src/pro/binanceus.d.ts +4 -0
  609. package/js/src/src/pro/binanceus.js +52 -0
  610. package/js/src/src/pro/binanceusdm.d.ts +4 -0
  611. package/js/src/src/pro/binanceusdm.js +37 -0
  612. package/js/src/src/pro/bingx.d.ts +151 -0
  613. package/js/src/src/pro/bingx.js +1568 -0
  614. package/js/src/src/pro/bitfinex.d.ts +99 -0
  615. package/js/src/src/pro/bitfinex.js +1165 -0
  616. package/js/src/src/pro/bitget.d.ts +257 -0
  617. package/js/src/src/pro/bitget.js +2327 -0
  618. package/js/src/src/pro/bithumb.d.ts +59 -0
  619. package/js/src/src/pro/bithumb.js +395 -0
  620. package/js/src/src/pro/bitmart.d.ts +168 -0
  621. package/js/src/src/pro/bitmart.js +1686 -0
  622. package/js/src/src/pro/bitmex.d.ts +170 -0
  623. package/js/src/src/pro/bitmex.js +1760 -0
  624. package/js/src/src/pro/bitopro.d.ts +69 -0
  625. package/js/src/src/pro/bitopro.js +477 -0
  626. package/js/src/src/pro/bitrue.d.ts +40 -0
  627. package/js/src/src/pro/bitrue.js +461 -0
  628. package/js/src/src/pro/bitstamp.d.ts +53 -0
  629. package/js/src/src/pro/bitstamp.js +587 -0
  630. package/js/src/src/pro/bittrade.d.ts +66 -0
  631. package/js/src/src/pro/bittrade.js +606 -0
  632. package/js/src/src/pro/bitvavo.d.ts +321 -0
  633. package/js/src/src/pro/bitvavo.js +1451 -0
  634. package/js/src/src/pro/blockchaincom.d.ts +89 -0
  635. package/js/src/src/pro/blockchaincom.js +777 -0
  636. package/js/src/src/pro/blofin.d.ts +174 -0
  637. package/js/src/src/pro/blofin.js +743 -0
  638. package/js/src/src/pro/bybit.d.ts +397 -0
  639. package/js/src/src/pro/bybit.js +2519 -0
  640. package/js/src/src/pro/cex.d.ts +220 -0
  641. package/js/src/src/pro/cex.js +1535 -0
  642. package/js/src/src/pro/coinbase.d.ts +119 -0
  643. package/js/src/src/pro/coinbase.js +736 -0
  644. package/js/src/src/pro/coinbaseadvanced.d.ts +4 -0
  645. package/js/src/src/pro/coinbaseadvanced.js +18 -0
  646. package/js/src/src/pro/coinbaseexchange.d.ts +133 -0
  647. package/js/src/src/pro/coinbaseexchange.js +969 -0
  648. package/js/src/src/pro/coinbaseinternational.d.ts +143 -0
  649. package/js/src/src/pro/coinbaseinternational.js +804 -0
  650. package/js/src/src/pro/coincatch.d.ts +207 -0
  651. package/js/src/src/pro/coincatch.js +1562 -0
  652. package/js/src/src/pro/coincheck.d.ts +33 -0
  653. package/js/src/src/pro/coincheck.js +210 -0
  654. package/js/src/src/pro/coinex.d.ts +147 -0
  655. package/js/src/src/pro/coinex.js +1426 -0
  656. package/js/src/src/pro/coinone.d.ts +51 -0
  657. package/js/src/src/pro/coinone.js +413 -0
  658. package/js/src/src/pro/cryptocom.d.ts +300 -0
  659. package/js/src/src/pro/cryptocom.js +1414 -0
  660. package/js/src/src/pro/defx.d.ts +236 -0
  661. package/js/src/src/pro/defx.js +865 -0
  662. package/js/src/src/pro/deribit.d.ts +163 -0
  663. package/js/src/src/pro/deribit.js +1066 -0
  664. package/js/src/src/pro/derive.d.ts +100 -0
  665. package/js/src/src/pro/derive.js +753 -0
  666. package/js/src/src/pro/exmo.d.ts +97 -0
  667. package/js/src/src/pro/exmo.js +903 -0
  668. package/js/src/src/pro/gate.d.ts +360 -0
  669. package/js/src/src/pro/gate.js +2119 -0
  670. package/js/src/src/pro/gateio.d.ts +4 -0
  671. package/js/src/src/pro/gateio.js +17 -0
  672. package/js/src/src/pro/gemini.d.ts +106 -0
  673. package/js/src/src/pro/gemini.js +932 -0
  674. package/js/src/src/pro/hashkey.d.ts +121 -0
  675. package/js/src/src/pro/hashkey.js +843 -0
  676. package/js/src/src/pro/hitbtc.d.ts +235 -0
  677. package/js/src/src/pro/hitbtc.js +1400 -0
  678. package/js/src/src/pro/hollaex.d.ts +77 -0
  679. package/js/src/src/pro/hollaex.js +604 -0
  680. package/js/src/src/pro/htx.d.ts +141 -0
  681. package/js/src/src/pro/htx.js +2415 -0
  682. package/js/src/src/pro/huobi.d.ts +4 -0
  683. package/js/src/src/pro/huobi.js +17 -0
  684. package/js/src/src/pro/hyperliquid.d.ts +218 -0
  685. package/js/src/src/pro/hyperliquid.js +1126 -0
  686. package/js/src/src/pro/independentreserve.d.ts +36 -0
  687. package/js/src/src/pro/independentreserve.js +287 -0
  688. package/js/src/src/pro/kraken.d.ts +233 -0
  689. package/js/src/src/pro/kraken.js +1785 -0
  690. package/js/src/src/pro/krakenfutures.d.ts +178 -0
  691. package/js/src/src/pro/krakenfutures.js +1592 -0
  692. package/js/src/src/pro/kucoin.d.ts +221 -0
  693. package/js/src/src/pro/kucoin.js +1430 -0
  694. package/js/src/src/pro/kucoinfutures.d.ts +205 -0
  695. package/js/src/src/pro/kucoinfutures.js +1295 -0
  696. package/js/src/src/pro/lbank.d.ts +134 -0
  697. package/js/src/src/pro/lbank.js +950 -0
  698. package/js/src/src/pro/luno.d.ts +44 -0
  699. package/js/src/src/pro/luno.js +322 -0
  700. package/js/src/src/pro/mexc.d.ts +210 -0
  701. package/js/src/src/pro/mexc.js +2009 -0
  702. package/js/src/src/pro/modetrade.d.ts +155 -0
  703. package/js/src/src/pro/modetrade.js +1335 -0
  704. package/js/src/src/pro/myokx.d.ts +4 -0
  705. package/js/src/src/pro/myokx.js +39 -0
  706. package/js/src/src/pro/ndax.d.ts +60 -0
  707. package/js/src/src/pro/ndax.js +545 -0
  708. package/js/src/src/pro/okcoin.d.ts +91 -0
  709. package/js/src/src/pro/okcoin.js +763 -0
  710. package/js/src/src/pro/okx.d.ts +408 -0
  711. package/js/src/src/pro/okx.js +2479 -0
  712. package/js/src/src/pro/okxus.d.ts +4 -0
  713. package/js/src/src/pro/okxus.js +39 -0
  714. package/js/src/src/pro/onetrading.d.ts +107 -0
  715. package/js/src/src/pro/onetrading.js +1343 -0
  716. package/js/src/src/pro/oxfun.d.ts +234 -0
  717. package/js/src/src/pro/oxfun.js +1112 -0
  718. package/js/src/src/pro/p2b.d.ts +104 -0
  719. package/js/src/src/pro/p2b.js +506 -0
  720. package/js/src/src/pro/paradex.d.ts +54 -0
  721. package/js/src/src/pro/paradex.js +370 -0
  722. package/js/src/src/pro/phemex.d.ts +129 -0
  723. package/js/src/src/pro/phemex.js +1569 -0
  724. package/js/src/src/pro/poloniex.d.ts +214 -0
  725. package/js/src/src/pro/poloniex.js +1318 -0
  726. package/js/src/src/pro/probit.d.ts +91 -0
  727. package/js/src/src/pro/probit.js +593 -0
  728. package/js/src/src/pro/tradeogre.d.ts +49 -0
  729. package/js/src/src/pro/tradeogre.js +284 -0
  730. package/js/src/src/pro/upbit.d.ts +124 -0
  731. package/js/src/src/pro/upbit.js +689 -0
  732. package/js/src/src/pro/vertex.d.ts +104 -0
  733. package/js/src/src/pro/vertex.js +999 -0
  734. package/js/src/src/pro/whitebit.d.ts +123 -0
  735. package/js/src/src/pro/whitebit.js +971 -0
  736. package/js/src/src/pro/woo.d.ts +161 -0
  737. package/js/src/src/pro/woo.js +1351 -0
  738. package/js/src/src/pro/woofipro.d.ts +155 -0
  739. package/js/src/src/pro/woofipro.js +1335 -0
  740. package/js/src/src/pro/xt.d.ts +165 -0
  741. package/js/src/src/pro/xt.js +1230 -0
  742. package/js/src/src/probit.d.ts +283 -0
  743. package/js/src/src/probit.js +1935 -0
  744. package/js/src/src/protobuf/mexc/compiled.cjs +7186 -0
  745. package/js/src/src/protobuf/mexc/compiled.d.cts +8 -0
  746. package/js/src/src/raastin.d.ts +24 -0
  747. package/js/src/src/raastin.js +494 -0
  748. package/js/src/src/ramzinex.d.ts +23 -0
  749. package/js/src/src/ramzinex.js +510 -0
  750. package/js/src/src/sarmayex.d.ts +21 -0
  751. package/js/src/src/sarmayex.js +376 -0
  752. package/js/src/src/sarrafex.d.ts +23 -0
  753. package/js/src/src/sarrafex.js +501 -0
  754. package/js/src/src/static_dependencies/ethers/abi-coder.d.ts +50 -0
  755. package/js/src/src/static_dependencies/ethers/abi-coder.js +148 -0
  756. package/js/src/src/static_dependencies/ethers/address/address.d.ts +55 -0
  757. package/js/src/src/static_dependencies/ethers/address/address.js +162 -0
  758. package/js/src/src/static_dependencies/ethers/address/checks.d.ts +80 -0
  759. package/js/src/src/static_dependencies/ethers/address/checks.js +119 -0
  760. package/js/src/src/static_dependencies/ethers/address/contract-address.d.ts +47 -0
  761. package/js/src/src/static_dependencies/ethers/address/contract-address.js +73 -0
  762. package/js/src/src/static_dependencies/ethers/address/index.d.ts +48 -0
  763. package/js/src/src/static_dependencies/ethers/address/index.js +24 -0
  764. package/js/src/src/static_dependencies/ethers/bytes32.d.ts +14 -0
  765. package/js/src/src/static_dependencies/ethers/bytes32.js +45 -0
  766. package/js/src/src/static_dependencies/ethers/coders/abstract-coder.d.ts +120 -0
  767. package/js/src/src/static_dependencies/ethers/coders/abstract-coder.js +424 -0
  768. package/js/src/src/static_dependencies/ethers/coders/address.d.ts +12 -0
  769. package/js/src/src/static_dependencies/ethers/coders/address.js +34 -0
  770. package/js/src/src/static_dependencies/ethers/coders/anonymous.d.ts +14 -0
  771. package/js/src/src/static_dependencies/ethers/coders/anonymous.js +27 -0
  772. package/js/src/src/static_dependencies/ethers/coders/array.d.ts +24 -0
  773. package/js/src/src/static_dependencies/ethers/coders/array.js +162 -0
  774. package/js/src/src/static_dependencies/ethers/coders/boolean.d.ts +12 -0
  775. package/js/src/src/static_dependencies/ethers/coders/boolean.js +26 -0
  776. package/js/src/src/static_dependencies/ethers/coders/bytes.d.ts +18 -0
  777. package/js/src/src/static_dependencies/ethers/coders/bytes.js +39 -0
  778. package/js/src/src/static_dependencies/ethers/coders/fixed-bytes.d.ts +14 -0
  779. package/js/src/src/static_dependencies/ethers/coders/fixed-bytes.js +32 -0
  780. package/js/src/src/static_dependencies/ethers/coders/null.d.ts +11 -0
  781. package/js/src/src/static_dependencies/ethers/coders/null.js +29 -0
  782. package/js/src/src/static_dependencies/ethers/coders/number.d.ts +15 -0
  783. package/js/src/src/static_dependencies/ethers/coders/number.js +48 -0
  784. package/js/src/src/static_dependencies/ethers/coders/string.d.ts +12 -0
  785. package/js/src/src/static_dependencies/ethers/coders/string.js +26 -0
  786. package/js/src/src/static_dependencies/ethers/coders/tuple.d.ts +15 -0
  787. package/js/src/src/static_dependencies/ethers/coders/tuple.js +67 -0
  788. package/js/src/src/static_dependencies/ethers/fragments.d.ts +458 -0
  789. package/js/src/src/static_dependencies/ethers/fragments.js +1252 -0
  790. package/js/src/src/static_dependencies/ethers/hash/index.d.ts +10 -0
  791. package/js/src/src/static_dependencies/ethers/hash/index.js +15 -0
  792. package/js/src/src/static_dependencies/ethers/hash/solidity.d.ts +30 -0
  793. package/js/src/src/static_dependencies/ethers/hash/solidity.js +107 -0
  794. package/js/src/src/static_dependencies/ethers/hash/typed-data.d.ts +144 -0
  795. package/js/src/src/static_dependencies/ethers/hash/typed-data.js +490 -0
  796. package/js/src/src/static_dependencies/ethers/index.d.ts +19 -0
  797. package/js/src/src/static_dependencies/ethers/index.js +22 -0
  798. package/js/src/src/static_dependencies/ethers/interface.d.ts +380 -0
  799. package/js/src/src/static_dependencies/ethers/interface.js +990 -0
  800. package/js/src/src/static_dependencies/ethers/typed.d.ts +569 -0
  801. package/js/src/src/static_dependencies/ethers/typed.js +608 -0
  802. package/js/src/src/static_dependencies/ethers/utils/base58.d.ts +22 -0
  803. package/js/src/src/static_dependencies/ethers/utils/base58.js +68 -0
  804. package/js/src/src/static_dependencies/ethers/utils/base64.d.ts +39 -0
  805. package/js/src/src/static_dependencies/ethers/utils/base64.js +58 -0
  806. package/js/src/src/static_dependencies/ethers/utils/data.d.ts +92 -0
  807. package/js/src/src/static_dependencies/ethers/utils/data.js +175 -0
  808. package/js/src/src/static_dependencies/ethers/utils/errors.d.ts +509 -0
  809. package/js/src/src/static_dependencies/ethers/utils/errors.js +227 -0
  810. package/js/src/src/static_dependencies/ethers/utils/events.d.ts +76 -0
  811. package/js/src/src/static_dependencies/ethers/utils/events.js +52 -0
  812. package/js/src/src/static_dependencies/ethers/utils/fixednumber.d.ts +251 -0
  813. package/js/src/src/static_dependencies/ethers/utils/fixednumber.js +529 -0
  814. package/js/src/src/static_dependencies/ethers/utils/index.d.ts +30 -0
  815. package/js/src/src/static_dependencies/ethers/utils/index.js +38 -0
  816. package/js/src/src/static_dependencies/ethers/utils/maths.d.ts +65 -0
  817. package/js/src/src/static_dependencies/ethers/utils/maths.js +220 -0
  818. package/js/src/src/static_dependencies/ethers/utils/properties.d.ts +22 -0
  819. package/js/src/src/static_dependencies/ethers/utils/properties.js +59 -0
  820. package/js/src/src/static_dependencies/ethers/utils/rlp-decode.d.ts +5 -0
  821. package/js/src/src/static_dependencies/ethers/utils/rlp-decode.js +84 -0
  822. package/js/src/src/static_dependencies/ethers/utils/rlp-encode.d.ts +5 -0
  823. package/js/src/src/static_dependencies/ethers/utils/rlp-encode.js +54 -0
  824. package/js/src/src/static_dependencies/ethers/utils/rlp.d.ts +16 -0
  825. package/js/src/src/static_dependencies/ethers/utils/rlp.js +14 -0
  826. package/js/src/src/static_dependencies/ethers/utils/units.d.ts +23 -0
  827. package/js/src/src/static_dependencies/ethers/utils/units.js +88 -0
  828. package/js/src/src/static_dependencies/ethers/utils/utf8.d.ts +95 -0
  829. package/js/src/src/static_dependencies/ethers/utils/utf8.js +225 -0
  830. package/js/src/src/static_dependencies/ethers/utils/uuid.d.ts +7 -0
  831. package/js/src/src/static_dependencies/ethers/utils/uuid.js +35 -0
  832. package/js/src/src/static_dependencies/fflake/browser.d.ts +222 -0
  833. package/js/src/src/static_dependencies/fflake/browser.js +2578 -0
  834. package/js/src/src/static_dependencies/jsencrypt/JSEncrypt.d.ts +116 -0
  835. package/js/src/src/static_dependencies/jsencrypt/JSEncrypt.js +194 -0
  836. package/js/src/src/static_dependencies/jsencrypt/JSEncryptRSAKey.d.ts +142 -0
  837. package/js/src/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +307 -0
  838. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/asn1.d.ts +51 -0
  839. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +565 -0
  840. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/base64.d.ts +5 -0
  841. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +94 -0
  842. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/hex.d.ts +3 -0
  843. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +70 -0
  844. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/int10.d.ts +9 -0
  845. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +91 -0
  846. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/base64.d.ts +3 -0
  847. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +25 -0
  848. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +101 -0
  849. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +1757 -0
  850. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/prng4.d.ts +10 -0
  851. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +50 -0
  852. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rng.d.ts +3 -0
  853. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +80 -0
  854. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rsa.d.ts +23 -0
  855. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +377 -0
  856. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/util.d.ts +7 -0
  857. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/util.js +64 -0
  858. package/js/src/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.d.ts +24 -0
  859. package/js/src/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +1627 -0
  860. package/js/src/src/static_dependencies/noble-curves/_shortw_utils.d.ts +60 -0
  861. package/js/src/src/static_dependencies/noble-curves/_shortw_utils.js +22 -0
  862. package/js/src/src/static_dependencies/noble-curves/abstract/curve.d.ts +67 -0
  863. package/js/src/src/static_dependencies/noble-curves/abstract/curve.js +157 -0
  864. package/js/src/src/static_dependencies/noble-curves/abstract/edwards.d.ts +79 -0
  865. package/js/src/src/static_dependencies/noble-curves/abstract/edwards.js +432 -0
  866. package/js/src/src/static_dependencies/noble-curves/abstract/hash-to-curve.d.ts +56 -0
  867. package/js/src/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +171 -0
  868. package/js/src/src/static_dependencies/noble-curves/abstract/modular.d.ts +68 -0
  869. package/js/src/src/static_dependencies/noble-curves/abstract/modular.js +351 -0
  870. package/js/src/src/static_dependencies/noble-curves/abstract/montgomery.d.ts +25 -0
  871. package/js/src/src/static_dependencies/noble-curves/abstract/montgomery.js +162 -0
  872. package/js/src/src/static_dependencies/noble-curves/abstract/poseidon.d.ts +29 -0
  873. package/js/src/src/static_dependencies/noble-curves/abstract/poseidon.js +115 -0
  874. package/js/src/src/static_dependencies/noble-curves/abstract/utils.d.ts +53 -0
  875. package/js/src/src/static_dependencies/noble-curves/abstract/utils.js +227 -0
  876. package/js/src/src/static_dependencies/noble-curves/abstract/weierstrass.d.ts +204 -0
  877. package/js/src/src/static_dependencies/noble-curves/abstract/weierstrass.js +1016 -0
  878. package/js/src/src/static_dependencies/noble-curves/ed25519.d.ts +53 -0
  879. package/js/src/src/static_dependencies/noble-curves/ed25519.js +402 -0
  880. package/js/src/src/static_dependencies/noble-curves/p256.d.ts +103 -0
  881. package/js/src/src/static_dependencies/noble-curves/p256.js +47 -0
  882. package/js/src/src/static_dependencies/noble-curves/secp256k1.d.ts +91 -0
  883. package/js/src/src/static_dependencies/noble-curves/secp256k1.js +257 -0
  884. package/js/src/src/static_dependencies/noble-hashes/_assert.d.ts +21 -0
  885. package/js/src/src/static_dependencies/noble-hashes/_assert.js +48 -0
  886. package/js/src/src/static_dependencies/noble-hashes/_sha2.d.ts +23 -0
  887. package/js/src/src/static_dependencies/noble-hashes/_sha2.js +119 -0
  888. package/js/src/src/static_dependencies/noble-hashes/_u64.d.ts +35 -0
  889. package/js/src/src/static_dependencies/noble-hashes/_u64.js +66 -0
  890. package/js/src/src/static_dependencies/noble-hashes/crypto.d.ts +1 -0
  891. package/js/src/src/static_dependencies/noble-hashes/crypto.js +7 -0
  892. package/js/src/src/static_dependencies/noble-hashes/hmac.d.ts +26 -0
  893. package/js/src/src/static_dependencies/noble-hashes/hmac.js +82 -0
  894. package/js/src/src/static_dependencies/noble-hashes/md5.d.ts +18 -0
  895. package/js/src/src/static_dependencies/noble-hashes/md5.js +242 -0
  896. package/js/src/src/static_dependencies/noble-hashes/sha1.d.ts +21 -0
  897. package/js/src/src/static_dependencies/noble-hashes/sha1.js +90 -0
  898. package/js/src/src/static_dependencies/noble-hashes/sha256.d.ts +34 -0
  899. package/js/src/src/static_dependencies/noble-hashes/sha256.js +129 -0
  900. package/js/src/src/static_dependencies/noble-hashes/sha3.d.ts +97 -0
  901. package/js/src/src/static_dependencies/noble-hashes/sha3.js +211 -0
  902. package/js/src/src/static_dependencies/noble-hashes/sha512.d.ts +66 -0
  903. package/js/src/src/static_dependencies/noble-hashes/sha512.js +236 -0
  904. package/js/src/src/static_dependencies/noble-hashes/utils.d.ts +77 -0
  905. package/js/src/src/static_dependencies/noble-hashes/utils.js +147 -0
  906. package/js/src/src/static_dependencies/proxies/agent-base/helpers.d.ts +14 -0
  907. package/js/src/src/static_dependencies/proxies/agent-base/helpers.js +42 -0
  908. package/js/src/src/static_dependencies/proxies/agent-base/index.d.ts +33 -0
  909. package/js/src/src/static_dependencies/proxies/agent-base/index.js +82 -0
  910. package/js/src/src/static_dependencies/proxies/http-proxy-agent/index.d.ts +40 -0
  911. package/js/src/src/static_dependencies/proxies/http-proxy-agent/index.js +119 -0
  912. package/js/src/src/static_dependencies/proxies/https-proxy-agent/index.d.ts +45 -0
  913. package/js/src/src/static_dependencies/proxies/https-proxy-agent/index.js +150 -0
  914. package/js/src/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.d.ts +15 -0
  915. package/js/src/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +95 -0
  916. package/js/src/src/static_dependencies/qs/formats.cjs +22 -0
  917. package/js/src/src/static_dependencies/qs/formats.d.cts +14 -0
  918. package/js/src/src/static_dependencies/qs/index.cjs +15 -0
  919. package/js/src/src/static_dependencies/qs/index.d.cts +10 -0
  920. package/js/src/src/static_dependencies/qs/parse.cjs +208 -0
  921. package/js/src/src/static_dependencies/qs/parse.d.cts +8 -0
  922. package/js/src/src/static_dependencies/qs/stringify.cjs +192 -0
  923. package/js/src/src/static_dependencies/qs/stringify.d.cts +8 -0
  924. package/js/src/src/static_dependencies/qs/utils.cjs +202 -0
  925. package/js/src/src/static_dependencies/qs/utils.d.cts +15 -0
  926. package/js/src/src/static_dependencies/scure-base/index.d.ts +92 -0
  927. package/js/src/src/static_dependencies/scure-base/index.js +420 -0
  928. package/js/src/src/static_dependencies/scure-starknet/index.d.ts +79 -0
  929. package/js/src/src/static_dependencies/scure-starknet/index.js +323 -0
  930. package/js/src/src/static_dependencies/starknet/constants.d.ts +61 -0
  931. package/js/src/src/static_dependencies/starknet/constants.js +67 -0
  932. package/js/src/src/static_dependencies/starknet/index.d.ts +3 -0
  933. package/js/src/src/static_dependencies/starknet/index.js +9 -0
  934. package/js/src/src/static_dependencies/starknet/types/cairoEnum.d.ts +2 -0
  935. package/js/src/src/static_dependencies/starknet/types/cairoEnum.js +7 -0
  936. package/js/src/src/static_dependencies/starknet/types/calldata.d.ts +19 -0
  937. package/js/src/src/static_dependencies/starknet/types/calldata.js +28 -0
  938. package/js/src/src/static_dependencies/starknet/types/index.d.ts +13 -0
  939. package/js/src/src/static_dependencies/starknet/types/index.js +16 -0
  940. package/js/src/src/static_dependencies/starknet/types/lib/contract/abi.d.ts +71 -0
  941. package/js/src/src/static_dependencies/starknet/types/lib/contract/abi.js +13 -0
  942. package/js/src/src/static_dependencies/starknet/types/lib/contract/index.d.ts +24 -0
  943. package/js/src/src/static_dependencies/starknet/types/lib/contract/index.js +16 -0
  944. package/js/src/src/static_dependencies/starknet/types/lib/contract/legacy.d.ts +33 -0
  945. package/js/src/src/static_dependencies/starknet/types/lib/contract/legacy.js +7 -0
  946. package/js/src/src/static_dependencies/starknet/types/lib/contract/sierra.d.ts +52 -0
  947. package/js/src/src/static_dependencies/starknet/types/lib/contract/sierra.js +7 -0
  948. package/js/src/src/static_dependencies/starknet/types/lib/index.d.ts +248 -0
  949. package/js/src/src/static_dependencies/starknet/types/lib/index.js +52 -0
  950. package/js/src/src/static_dependencies/starknet/types/typedData.d.ts +44 -0
  951. package/js/src/src/static_dependencies/starknet/types/typedData.js +19 -0
  952. package/js/src/src/static_dependencies/starknet/utils/assert.d.ts +7 -0
  953. package/js/src/src/static_dependencies/starknet/utils/assert.js +17 -0
  954. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/felt.d.ts +6 -0
  955. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +43 -0
  956. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.d.ts +72 -0
  957. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +117 -0
  958. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.d.ts +76 -0
  959. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +136 -0
  960. package/js/src/src/static_dependencies/starknet/utils/calldata/byteArray.d.ts +32 -0
  961. package/js/src/src/static_dependencies/starknet/utils/calldata/byteArray.js +59 -0
  962. package/js/src/src/static_dependencies/starknet/utils/calldata/cairo.d.ts +183 -0
  963. package/js/src/src/static_dependencies/starknet/utils/calldata/cairo.js +229 -0
  964. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.d.ts +38 -0
  965. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +57 -0
  966. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.d.ts +35 -0
  967. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +64 -0
  968. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.d.ts +34 -0
  969. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +63 -0
  970. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/index.d.ts +3 -0
  971. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/index.js +9 -0
  972. package/js/src/src/static_dependencies/starknet/utils/calldata/formatter.d.ts +9 -0
  973. package/js/src/src/static_dependencies/starknet/utils/calldata/formatter.js +67 -0
  974. package/js/src/src/static_dependencies/starknet/utils/calldata/index.d.ts +89 -0
  975. package/js/src/src/static_dependencies/starknet/utils/calldata/index.js +280 -0
  976. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/index.d.ts +5 -0
  977. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/index.js +30 -0
  978. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/interface.d.ts +20 -0
  979. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/interface.js +8 -0
  980. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.d.ts +24 -0
  981. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +36 -0
  982. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.d.ts +23 -0
  983. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +40 -0
  984. package/js/src/src/static_dependencies/starknet/utils/calldata/propertyOrder.d.ts +2 -0
  985. package/js/src/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +155 -0
  986. package/js/src/src/static_dependencies/starknet/utils/calldata/requestParser.d.ts +11 -0
  987. package/js/src/src/static_dependencies/starknet/utils/calldata/requestParser.js +248 -0
  988. package/js/src/src/static_dependencies/starknet/utils/calldata/responseParser.d.ts +11 -0
  989. package/js/src/src/static_dependencies/starknet/utils/calldata/responseParser.js +214 -0
  990. package/js/src/src/static_dependencies/starknet/utils/calldata/tuple.d.ts +6 -0
  991. package/js/src/src/static_dependencies/starknet/utils/calldata/tuple.js +113 -0
  992. package/js/src/src/static_dependencies/starknet/utils/calldata/validate.d.ts +6 -0
  993. package/js/src/src/static_dependencies/starknet/utils/calldata/validate.js +208 -0
  994. package/js/src/src/static_dependencies/starknet/utils/encode.d.ts +207 -0
  995. package/js/src/src/static_dependencies/starknet/utils/encode.js +282 -0
  996. package/js/src/src/static_dependencies/starknet/utils/hash/classHash.d.ts +57 -0
  997. package/js/src/src/static_dependencies/starknet/utils/hash/classHash.js +223 -0
  998. package/js/src/src/static_dependencies/starknet/utils/hash/index.d.ts +6 -0
  999. package/js/src/src/static_dependencies/starknet/utils/hash/index.js +13 -0
  1000. package/js/src/src/static_dependencies/starknet/utils/merkle.d.ts +35 -0
  1001. package/js/src/src/static_dependencies/starknet/utils/merkle.js +84 -0
  1002. package/js/src/src/static_dependencies/starknet/utils/num.d.ts +182 -0
  1003. package/js/src/src/static_dependencies/starknet/utils/num.js +244 -0
  1004. package/js/src/src/static_dependencies/starknet/utils/selector.d.ts +48 -0
  1005. package/js/src/src/static_dependencies/starknet/utils/selector.js +85 -0
  1006. package/js/src/src/static_dependencies/starknet/utils/shortString.d.ts +57 -0
  1007. package/js/src/src/static_dependencies/starknet/utils/shortString.js +96 -0
  1008. package/js/src/src/static_dependencies/starknet/utils/typedData.d.ts +54 -0
  1009. package/js/src/src/static_dependencies/starknet/utils/typedData.js +321 -0
  1010. package/js/src/src/static_dependencies/watchable/src/types.d.ts +28 -0
  1011. package/js/src/src/static_dependencies/watchable/src/types.js +8 -0
  1012. package/js/src/src/static_dependencies/watchable/src/unpromise.d.ts +120 -0
  1013. package/js/src/src/static_dependencies/watchable/src/unpromise.js +297 -0
  1014. package/js/src/src/static_dependencies/zklink/zklink-sdk-web.d.ts +1279 -0
  1015. package/js/src/src/static_dependencies/zklink/zklink-sdk-web.js +4282 -0
  1016. package/js/src/src/tabdeal.d.ts +23 -0
  1017. package/js/src/src/tabdeal.js +387 -0
  1018. package/js/src/src/tehran_exchange.d.ts +21 -0
  1019. package/js/src/src/tehran_exchange.js +333 -0
  1020. package/js/src/src/tetherland.d.ts +21 -0
  1021. package/js/src/src/tetherland.js +367 -0
  1022. package/js/src/src/timex.d.ts +247 -0
  1023. package/js/src/src/timex.js +1792 -0
  1024. package/js/src/src/tokocrypto.d.ts +261 -0
  1025. package/js/src/src/tokocrypto.js +2641 -0
  1026. package/js/src/src/toobit.d.ts +22 -0
  1027. package/js/src/src/toobit.js +445 -0
  1028. package/js/src/src/tradeogre.d.ts +149 -0
  1029. package/js/src/src/tradeogre.js +878 -0
  1030. package/js/src/src/twox.d.ts +21 -0
  1031. package/js/src/src/twox.js +371 -0
  1032. package/js/src/src/ubitex.d.ts +23 -0
  1033. package/js/src/src/ubitex.js +433 -0
  1034. package/js/src/src/upbit.d.ts +377 -0
  1035. package/js/src/src/upbit.js +2340 -0
  1036. package/js/src/src/vertex.d.ts +346 -0
  1037. package/js/src/src/vertex.js +3146 -0
  1038. package/js/src/src/wallex.d.ts +23 -0
  1039. package/js/src/src/wallex.js +467 -0
  1040. package/js/src/src/wavesexchange.d.ts +244 -0
  1041. package/js/src/src/wavesexchange.js +2747 -0
  1042. package/js/src/src/whitebit.d.ts +571 -0
  1043. package/js/src/src/whitebit.js +3437 -0
  1044. package/js/src/src/woo.d.ts +727 -0
  1045. package/js/src/src/woo.js +4183 -0
  1046. package/js/src/src/woofipro.d.ts +497 -0
  1047. package/js/src/src/woofipro.js +2941 -0
  1048. package/js/src/src/xt.d.ts +568 -0
  1049. package/js/src/src/xt.js +5184 -0
  1050. package/js/src/src/yobit.d.ts +197 -0
  1051. package/js/src/src/yobit.js +1453 -0
  1052. package/js/src/src/zaif.d.ts +136 -0
  1053. package/js/src/src/zaif.js +821 -0
  1054. package/js/src/src/zonda.d.ts +214 -0
  1055. package/js/src/src/zonda.js +1984 -0
  1056. package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +1 -1
  1057. package/js/src/static_dependencies/starknet/utils/calldata/parser/index.d.ts +1 -1
  1058. package/js/test.js +9 -17
  1059. package/package.json +1 -1
@@ -0,0 +1,1451 @@
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 bitvavoRest from '../bitvavo.js';
9
+ import { AuthenticationError, ArgumentsRequired, ExchangeError } from '../base/errors.js';
10
+ import { ArrayCache, ArrayCacheByTimestamp, ArrayCacheBySymbolById } from '../base/ws/Cache.js';
11
+ import { sha256 } from '../static_dependencies/noble-hashes/sha256.js';
12
+ // ---------------------------------------------------------------------------
13
+ export default class bitvavo extends bitvavoRest {
14
+ describe() {
15
+ return this.deepExtend(super.describe(), {
16
+ 'has': {
17
+ 'ws': true,
18
+ 'cancelOrdersWs': false,
19
+ 'fetchTradesWs': false,
20
+ 'watchOrderBook': true,
21
+ 'watchTrades': true,
22
+ 'watchTicker': true,
23
+ 'watchTickers': true,
24
+ 'watchBidsAsks': true,
25
+ 'watchOHLCV': true,
26
+ 'watchOrders': true,
27
+ 'watchMyTrades': true,
28
+ 'cancelAllOrdersWs': true,
29
+ 'cancelOrderWs': true,
30
+ 'createOrderWs': true,
31
+ 'createStopLimitOrderWs': true,
32
+ 'createStopMarketOrderWs': true,
33
+ 'createStopOrderWs': true,
34
+ 'editOrderWs': true,
35
+ 'fetchBalanceWs': true,
36
+ 'fetchCurrenciesWS': true,
37
+ 'fetchDepositAddressWs': true,
38
+ 'fetchDepositsWs': true,
39
+ 'fetchDepositWithdrawFeesWs': true,
40
+ 'fetchMyTradesWs': true,
41
+ 'fetchOHLCVWs': true,
42
+ 'fetchOpenOrdersWs': true,
43
+ 'fetchOrderWs': true,
44
+ 'fetchOrderBookWs': true,
45
+ 'fetchOrdersWs': true,
46
+ 'fetchTickerWs': true,
47
+ 'fetchTickersWs': true,
48
+ 'fetchTimeWs': true,
49
+ 'fetchTradingFeesWs': true,
50
+ 'fetchWithdrawalsWs': true,
51
+ 'withdrawWs': true,
52
+ },
53
+ 'urls': {
54
+ 'api': {
55
+ 'ws': 'wss://ws.bitvavo.com/v2',
56
+ },
57
+ },
58
+ 'options': {
59
+ 'supressMultipleWsRequestsError': false,
60
+ 'tradesLimit': 1000,
61
+ 'ordersLimit': 1000,
62
+ 'OHLCVLimit': 1000,
63
+ },
64
+ });
65
+ }
66
+ async watchPublic(name, symbol, params = {}) {
67
+ await this.loadMarkets();
68
+ const market = this.market(symbol);
69
+ const messageHash = name + '@' + market['id'];
70
+ const url = this.urls['api']['ws'];
71
+ const request = {
72
+ 'action': 'subscribe',
73
+ 'channels': [
74
+ {
75
+ 'name': name,
76
+ 'markets': [
77
+ market['id'],
78
+ ],
79
+ },
80
+ ],
81
+ };
82
+ const message = this.extend(request, params);
83
+ return await this.watch(url, messageHash, message, messageHash);
84
+ }
85
+ async watchPublicMultiple(methodName, channelName, symbols, params = {}) {
86
+ await this.loadMarkets();
87
+ symbols = this.marketSymbols(symbols);
88
+ const messageHashes = [methodName];
89
+ const args = [];
90
+ for (let i = 0; i < symbols.length; i++) {
91
+ const market = this.market(symbols[i]);
92
+ args.push(market['id']);
93
+ }
94
+ const url = this.urls['api']['ws'];
95
+ const request = {
96
+ 'action': 'subscribe',
97
+ 'channels': [
98
+ {
99
+ 'name': channelName,
100
+ 'markets': args,
101
+ },
102
+ ],
103
+ };
104
+ const message = this.extend(request, params);
105
+ return await this.watchMultiple(url, messageHashes, message, messageHashes);
106
+ }
107
+ /**
108
+ * @method
109
+ * @name bitvavo#watchTicker
110
+ * @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
111
+ * @see https://docs.bitvavo.com/#tag/Market-data-subscription-WebSocket/paths/~1subscribeTicker24h/post
112
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
113
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
114
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
115
+ */
116
+ async watchTicker(symbol, params = {}) {
117
+ return await this.watchPublic('ticker24h', symbol, params);
118
+ }
119
+ /**
120
+ * @method
121
+ * @name bitvavo#watchTickers
122
+ * @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
123
+ * @see https://docs.bitvavo.com/#tag/Market-data-subscription-WebSocket/paths/~1subscribeTicker24h/post
124
+ * @param {string[]} [symbols] unified symbol of the market to fetch the ticker for
125
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
126
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
127
+ */
128
+ async watchTickers(symbols = undefined, params = {}) {
129
+ await this.loadMarkets();
130
+ symbols = this.marketSymbols(symbols, undefined, false);
131
+ const channel = 'ticker24h';
132
+ const tickers = await this.watchPublicMultiple(channel, channel, symbols, params);
133
+ return this.filterByArray(tickers, 'symbol', symbols);
134
+ }
135
+ handleTicker(client, message) {
136
+ //
137
+ // {
138
+ // "event": "ticker24h",
139
+ // "data": [
140
+ // {
141
+ // "market": "ETH-EUR",
142
+ // "open": "193.5",
143
+ // "high": "202.72",
144
+ // "low": "192.46",
145
+ // "last": "199.01",
146
+ // "volume": "3587.05020246",
147
+ // "volumeQuote": "708030.17",
148
+ // "bid": "199.56",
149
+ // "bidSize": "4.14730802",
150
+ // "ask": "199.57",
151
+ // "askSize": "6.13642074",
152
+ // "timestamp": 1590770885217
153
+ // }
154
+ // ]
155
+ // }
156
+ //
157
+ this.handleBidAsk(client, message);
158
+ const event = this.safeString(message, 'event');
159
+ const tickers = this.safeValue(message, 'data', []);
160
+ const result = [];
161
+ for (let i = 0; i < tickers.length; i++) {
162
+ const data = tickers[i];
163
+ const marketId = this.safeString(data, 'market');
164
+ const market = this.safeMarket(marketId, undefined, '-');
165
+ const messageHash = event + '@' + marketId;
166
+ const ticker = this.parseTicker(data, market);
167
+ const symbol = ticker['symbol'];
168
+ this.tickers[symbol] = ticker;
169
+ result.push(ticker);
170
+ client.resolve(ticker, messageHash);
171
+ }
172
+ client.resolve(result, event);
173
+ }
174
+ /**
175
+ * @method
176
+ * @name bitvavo#watchBidsAsks
177
+ * @description watches best bid & ask for symbols
178
+ * @see https://docs.bitvavo.com/#tag/Market-data-subscription-WebSocket/paths/~1subscribeTicker24h/post
179
+ * @param {string[]} symbols unified symbol of the market to fetch the ticker for
180
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
181
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
182
+ */
183
+ async watchBidsAsks(symbols = undefined, params = {}) {
184
+ await this.loadMarkets();
185
+ symbols = this.marketSymbols(symbols, undefined, false);
186
+ const channel = 'ticker24h';
187
+ const tickers = await this.watchPublicMultiple('bidask', channel, symbols, params);
188
+ return this.filterByArray(tickers, 'symbol', symbols);
189
+ }
190
+ handleBidAsk(client, message) {
191
+ const event = 'bidask';
192
+ const tickers = this.safeValue(message, 'data', []);
193
+ const result = [];
194
+ for (let i = 0; i < tickers.length; i++) {
195
+ const data = tickers[i];
196
+ const ticker = this.parseWsBidAsk(data);
197
+ const symbol = ticker['symbol'];
198
+ this.bidsasks[symbol] = ticker;
199
+ result.push(ticker);
200
+ const messageHash = event + ':' + symbol;
201
+ client.resolve(ticker, messageHash);
202
+ }
203
+ client.resolve(result, event);
204
+ }
205
+ parseWsBidAsk(ticker, market = undefined) {
206
+ const marketId = this.safeString(ticker, 'market');
207
+ market = this.safeMarket(marketId, undefined, '-');
208
+ const symbol = this.safeString(market, 'symbol');
209
+ const timestamp = this.safeInteger(ticker, 'timestamp');
210
+ return this.safeTicker({
211
+ 'symbol': symbol,
212
+ 'timestamp': timestamp,
213
+ 'datetime': this.iso8601(timestamp),
214
+ 'ask': this.safeNumber(ticker, 'ask'),
215
+ 'askVolume': this.safeNumber(ticker, 'askSize'),
216
+ 'bid': this.safeNumber(ticker, 'bid'),
217
+ 'bidVolume': this.safeNumber(ticker, 'bidSize'),
218
+ 'info': ticker,
219
+ }, market);
220
+ }
221
+ /**
222
+ * @method
223
+ * @name bitvavo#watchTrades
224
+ * @description get the list of most recent trades for a particular symbol
225
+ * @param {string} symbol unified symbol of the market to fetch trades for
226
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
227
+ * @param {int} [limit] the maximum amount of trades to fetch
228
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
229
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
230
+ */
231
+ async watchTrades(symbol, since = undefined, limit = undefined, params = {}) {
232
+ await this.loadMarkets();
233
+ symbol = this.symbol(symbol);
234
+ const trades = await this.watchPublic('trades', symbol, params);
235
+ if (this.newUpdates) {
236
+ limit = trades.getLimit(symbol, limit);
237
+ }
238
+ return this.filterBySinceLimit(trades, since, limit, 'timestamp', true);
239
+ }
240
+ handleTrade(client, message) {
241
+ //
242
+ // {
243
+ // "event": "trade",
244
+ // "timestamp": 1590779594547,
245
+ // "market": "ETH-EUR",
246
+ // "id": "450c3298-f082-4461-9e2c-a0262cc7cc2e",
247
+ // "amount": "0.05026233",
248
+ // "price": "198.46",
249
+ // "side": "buy"
250
+ // }
251
+ //
252
+ const marketId = this.safeString(message, 'market');
253
+ const market = this.safeMarket(marketId, undefined, '-');
254
+ const symbol = market['symbol'];
255
+ const name = 'trades';
256
+ const messageHash = name + '@' + marketId;
257
+ const trade = this.parseTrade(message, market);
258
+ let tradesArray = this.safeValue(this.trades, symbol);
259
+ if (tradesArray === undefined) {
260
+ const limit = this.safeInteger(this.options, 'tradesLimit', 1000);
261
+ tradesArray = new ArrayCache(limit);
262
+ }
263
+ tradesArray.append(trade);
264
+ this.trades[symbol] = tradesArray;
265
+ client.resolve(tradesArray, messageHash);
266
+ }
267
+ /**
268
+ * @method
269
+ * @name bitvavo#watchOHLCV
270
+ * @description watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
271
+ * @param {string} symbol unified symbol of the market to fetch OHLCV data for
272
+ * @param {string} timeframe the length of time each candle represents
273
+ * @param {int} [since] timestamp in ms of the earliest candle to fetch
274
+ * @param {int} [limit] the maximum amount of candles to fetch
275
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
276
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
277
+ */
278
+ async watchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
279
+ await this.loadMarkets();
280
+ const market = this.market(symbol);
281
+ symbol = market['symbol'];
282
+ const name = 'candles';
283
+ const marketId = market['id'];
284
+ const interval = this.safeString(this.timeframes, timeframe, timeframe);
285
+ const messageHash = name + '@' + marketId + '_' + interval;
286
+ const url = this.urls['api']['ws'];
287
+ const request = {
288
+ 'action': 'subscribe',
289
+ 'channels': [
290
+ {
291
+ 'name': 'candles',
292
+ 'interval': [interval],
293
+ 'markets': [marketId],
294
+ },
295
+ ],
296
+ };
297
+ const message = this.extend(request, params);
298
+ const ohlcv = await this.watch(url, messageHash, message, messageHash);
299
+ if (this.newUpdates) {
300
+ limit = ohlcv.getLimit(symbol, limit);
301
+ }
302
+ return this.filterBySinceLimit(ohlcv, since, limit, 0, true);
303
+ }
304
+ handleFetchOHLCV(client, message) {
305
+ //
306
+ // {
307
+ // action: 'getCandles',
308
+ // response: [
309
+ // [1690325820000, '26453', '26453', '26436', '26447', '0.01626246'],
310
+ // [1690325760000, '26454', '26454', '26453', '26453', '0.00037707']
311
+ // ]
312
+ // }
313
+ //
314
+ const response = this.safeValue(message, 'response');
315
+ const ohlcv = this.parseOHLCVs(response, undefined, undefined, undefined);
316
+ const messageHash = this.safeString(message, 'requestId');
317
+ client.resolve(ohlcv, messageHash);
318
+ }
319
+ handleOHLCV(client, message) {
320
+ //
321
+ // {
322
+ // "event": "candle",
323
+ // "market": "BTC-EUR",
324
+ // "interval": "1m",
325
+ // "candle": [
326
+ // [
327
+ // 1590797160000,
328
+ // "8480.9",
329
+ // "8480.9",
330
+ // "8480.9",
331
+ // "8480.9",
332
+ // "0.01038628"
333
+ // ]
334
+ // ]
335
+ // }
336
+ //
337
+ const name = 'candles';
338
+ const marketId = this.safeString(message, 'market');
339
+ const market = this.safeMarket(marketId, undefined, '-');
340
+ const symbol = market['symbol'];
341
+ const interval = this.safeString(message, 'interval');
342
+ // use a reverse lookup in a static map instead
343
+ const timeframe = this.findTimeframe(interval);
344
+ const messageHash = name + '@' + marketId + '_' + interval;
345
+ const candles = this.safeValue(message, 'candle');
346
+ this.ohlcvs[symbol] = this.safeValue(this.ohlcvs, symbol, {});
347
+ let stored = this.safeValue(this.ohlcvs[symbol], timeframe);
348
+ if (stored === undefined) {
349
+ const limit = this.safeInteger(this.options, 'OHLCVLimit', 1000);
350
+ stored = new ArrayCacheByTimestamp(limit);
351
+ this.ohlcvs[symbol][timeframe] = stored;
352
+ }
353
+ for (let i = 0; i < candles.length; i++) {
354
+ const candle = candles[i];
355
+ const parsed = this.parseOHLCV(candle, market);
356
+ stored.append(parsed);
357
+ }
358
+ client.resolve(stored, messageHash);
359
+ }
360
+ /**
361
+ * @method
362
+ * @name bitvavo#watchOrderBook
363
+ * @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
364
+ * @param {string} symbol unified symbol of the market to fetch the order book for
365
+ * @param {int} [limit] the maximum amount of order book entries to return
366
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
367
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
368
+ */
369
+ async watchOrderBook(symbol, limit = undefined, params = {}) {
370
+ await this.loadMarkets();
371
+ const market = this.market(symbol);
372
+ symbol = market['symbol'];
373
+ const name = 'book';
374
+ const messageHash = name + '@' + market['id'];
375
+ const url = this.urls['api']['ws'];
376
+ const request = {
377
+ 'action': 'subscribe',
378
+ 'channels': [
379
+ {
380
+ 'name': name,
381
+ 'markets': [
382
+ market['id'],
383
+ ],
384
+ },
385
+ ],
386
+ };
387
+ const subscription = {
388
+ 'messageHash': messageHash,
389
+ 'name': name,
390
+ 'symbol': symbol,
391
+ 'marketId': market['id'],
392
+ 'method': this.handleOrderBookSubscription,
393
+ 'limit': limit,
394
+ 'params': params,
395
+ };
396
+ const message = this.extend(request, params);
397
+ const orderbook = await this.watch(url, messageHash, message, messageHash, subscription);
398
+ return orderbook.limit();
399
+ }
400
+ handleDelta(bookside, delta) {
401
+ const price = this.safeFloat(delta, 0);
402
+ const amount = this.safeFloat(delta, 1);
403
+ bookside.store(price, amount);
404
+ }
405
+ handleDeltas(bookside, deltas) {
406
+ for (let i = 0; i < deltas.length; i++) {
407
+ this.handleDelta(bookside, deltas[i]);
408
+ }
409
+ }
410
+ handleOrderBookMessage(client, message, orderbook) {
411
+ //
412
+ // {
413
+ // "event": "book",
414
+ // "market": "BTC-EUR",
415
+ // "nonce": 36947383,
416
+ // "bids": [
417
+ // [ "8477.8", "0" ]
418
+ // ],
419
+ // "asks": [
420
+ // [ "8550.9", "0" ]
421
+ // ]
422
+ // }
423
+ //
424
+ const nonce = this.safeInteger(message, 'nonce');
425
+ if (nonce > orderbook['nonce']) {
426
+ this.handleDeltas(orderbook['asks'], this.safeValue(message, 'asks', []));
427
+ this.handleDeltas(orderbook['bids'], this.safeValue(message, 'bids', []));
428
+ orderbook['nonce'] = nonce;
429
+ }
430
+ return orderbook;
431
+ }
432
+ handleOrderBook(client, message) {
433
+ //
434
+ // {
435
+ // "event": "book",
436
+ // "market": "BTC-EUR",
437
+ // "nonce": 36729561,
438
+ // "bids": [
439
+ // [ "8513.3", "0" ],
440
+ // [ '8518.8', "0.64236203" ],
441
+ // [ '8513.6', "0.32435481" ],
442
+ // ],
443
+ // "asks": []
444
+ // }
445
+ //
446
+ const event = this.safeString(message, 'event');
447
+ const marketId = this.safeString(message, 'market');
448
+ const market = this.safeMarket(marketId, undefined, '-');
449
+ const symbol = market['symbol'];
450
+ const messageHash = event + '@' + market['id'];
451
+ const orderbook = this.safeValue(this.orderbooks, symbol);
452
+ if (orderbook === undefined) {
453
+ return;
454
+ }
455
+ if (orderbook['nonce'] === undefined) {
456
+ const subscription = this.safeValue(client.subscriptions, messageHash, {});
457
+ const watchingOrderBookSnapshot = this.safeValue(subscription, 'watchingOrderBookSnapshot');
458
+ if (watchingOrderBookSnapshot === undefined) {
459
+ subscription['watchingOrderBookSnapshot'] = true;
460
+ client.subscriptions[messageHash] = subscription;
461
+ const options = this.safeValue(this.options, 'watchOrderBookSnapshot', {});
462
+ const delay = this.safeInteger(options, 'delay', this.rateLimit);
463
+ // fetch the snapshot in a separate async call after a warmup delay
464
+ this.delay(delay, this.watchOrderBookSnapshot, client, message, subscription);
465
+ }
466
+ orderbook.cache.push(message);
467
+ }
468
+ else {
469
+ this.handleOrderBookMessage(client, message, orderbook);
470
+ client.resolve(orderbook, messageHash);
471
+ }
472
+ }
473
+ async watchOrderBookSnapshot(client, message, subscription) {
474
+ const params = this.safeValue(subscription, 'params');
475
+ const marketId = this.safeString(subscription, 'marketId');
476
+ const name = 'getBook';
477
+ const messageHash = name + '@' + marketId;
478
+ const url = this.urls['api']['ws'];
479
+ const request = {
480
+ 'action': name,
481
+ 'market': marketId,
482
+ };
483
+ const orderbook = await this.watch(url, messageHash, this.extend(request, params), messageHash, subscription);
484
+ return orderbook.limit();
485
+ }
486
+ handleOrderBookSnapshot(client, message) {
487
+ //
488
+ // {
489
+ // "action": "getBook",
490
+ // "response": {
491
+ // "market": "BTC-EUR",
492
+ // "nonce": 36946120,
493
+ // "bids": [
494
+ // [ '8494.9', "0.24399521" ],
495
+ // [ '8494.8', "0.34884085" ],
496
+ // [ '8493.9', "0.14535128" ],
497
+ // ],
498
+ // "asks": [
499
+ // [ "8495", "0.46982463" ],
500
+ // [ '8495.1', "0.12178267" ],
501
+ // [ '8496.2', "0.21924143" ],
502
+ // ]
503
+ // }
504
+ // }
505
+ //
506
+ const response = this.safeValue(message, 'response');
507
+ if (response === undefined) {
508
+ return;
509
+ }
510
+ const marketId = this.safeString(response, 'market');
511
+ const symbol = this.safeSymbol(marketId, undefined, '-');
512
+ const name = 'book';
513
+ const messageHash = name + '@' + marketId;
514
+ const orderbook = this.orderbooks[symbol];
515
+ const snapshot = this.parseOrderBook(response, symbol);
516
+ snapshot['nonce'] = this.safeInteger(response, 'nonce');
517
+ orderbook.reset(snapshot);
518
+ // unroll the accumulated deltas
519
+ const messages = orderbook.cache;
520
+ for (let i = 0; i < messages.length; i++) {
521
+ const messageItem = messages[i];
522
+ this.handleOrderBookMessage(client, messageItem, orderbook);
523
+ }
524
+ this.orderbooks[symbol] = orderbook;
525
+ client.resolve(orderbook, messageHash);
526
+ }
527
+ handleOrderBookSubscription(client, message, subscription) {
528
+ const symbol = this.safeString(subscription, 'symbol');
529
+ const limit = this.safeInteger(subscription, 'limit');
530
+ if (symbol in this.orderbooks) {
531
+ delete this.orderbooks[symbol];
532
+ }
533
+ this.orderbooks[symbol] = this.orderBook({}, limit);
534
+ }
535
+ handleOrderBookSubscriptions(client, message, marketIds) {
536
+ const name = 'book';
537
+ for (let i = 0; i < marketIds.length; i++) {
538
+ const marketId = this.safeString(marketIds, i);
539
+ const symbol = this.safeSymbol(marketId, undefined, '-');
540
+ const messageHash = name + '@' + marketId;
541
+ if (!(symbol in this.orderbooks)) {
542
+ const subscription = this.safeValue(client.subscriptions, messageHash);
543
+ const method = this.safeValue(subscription, 'method');
544
+ if (method !== undefined) {
545
+ method.call(this, client, message, subscription);
546
+ }
547
+ }
548
+ }
549
+ }
550
+ /**
551
+ * @method
552
+ * @name bitvavo#watchOrders
553
+ * @description watches information on multiple orders made by the user
554
+ * @param {string} symbol unified market symbol of the market orders were made in
555
+ * @param {int} [since] the earliest time in ms to fetch orders for
556
+ * @param {int} [limit] the maximum number of order structures to retrieve
557
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
558
+ * @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
559
+ */
560
+ async watchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
561
+ if (symbol === undefined) {
562
+ throw new ArgumentsRequired(this.id + ' watchOrders() requires a symbol argument');
563
+ }
564
+ await this.loadMarkets();
565
+ await this.authenticate();
566
+ const market = this.market(symbol);
567
+ symbol = market['symbol'];
568
+ const marketId = market['id'];
569
+ const url = this.urls['api']['ws'];
570
+ const name = 'account';
571
+ const messageHash = 'order:' + symbol;
572
+ const request = {
573
+ 'action': 'subscribe',
574
+ 'channels': [
575
+ {
576
+ 'name': name,
577
+ 'markets': [marketId],
578
+ },
579
+ ],
580
+ };
581
+ const orders = await this.watch(url, messageHash, request, messageHash);
582
+ if (this.newUpdates) {
583
+ limit = orders.getLimit(symbol, limit);
584
+ }
585
+ return this.filterBySymbolSinceLimit(orders, symbol, since, limit, true);
586
+ }
587
+ /**
588
+ * @method
589
+ * @name bitvavo#watchMyTrades
590
+ * @description watches information on multiple trades made by the user
591
+ * @param {string} symbol unified market symbol of the market trades were made in
592
+ * @param {int} [since] the earliest time in ms to fetch trades for
593
+ * @param {int} [limit] the maximum number of trade structures to retrieve
594
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
595
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
596
+ */
597
+ async watchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
598
+ if (symbol === undefined) {
599
+ throw new ArgumentsRequired(this.id + ' watchMyTrades() requires a symbol argument');
600
+ }
601
+ await this.loadMarkets();
602
+ await this.authenticate();
603
+ const market = this.market(symbol);
604
+ symbol = market['symbol'];
605
+ const marketId = market['id'];
606
+ const url = this.urls['api']['ws'];
607
+ const name = 'account';
608
+ const messageHash = 'myTrades:' + symbol;
609
+ const request = {
610
+ 'action': 'subscribe',
611
+ 'channels': [
612
+ {
613
+ 'name': name,
614
+ 'markets': [marketId],
615
+ },
616
+ ],
617
+ };
618
+ const trades = await this.watch(url, messageHash, request, messageHash);
619
+ if (this.newUpdates) {
620
+ limit = trades.getLimit(symbol, limit);
621
+ }
622
+ return this.filterBySymbolSinceLimit(trades, symbol, since, limit, true);
623
+ }
624
+ /**
625
+ * @method
626
+ * @name bitvavo#createOrderWs
627
+ * @description create a trade order
628
+ * @see https://docs.bitvavo.com/#tag/Orders/paths/~1order/post
629
+ * @param {string} symbol unified symbol of the market to create an order in
630
+ * @param {string} type 'market' or 'limit'
631
+ * @param {string} side 'buy' or 'sell'
632
+ * @param {float} amount how much of currency you want to trade in units of base currency
633
+ * @param {float} price the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
634
+ * @param {object} [params] extra parameters specific to the bitvavo api endpoint
635
+ * @param {string} [params.timeInForce] "GTC", "IOC", or "PO"
636
+ * @param {float} [params.stopPrice] The price at which a trigger order is triggered at
637
+ * @param {float} [params.triggerPrice] The price at which a trigger order is triggered at
638
+ * @param {bool} [params.postOnly] If true, the order will only be posted to the order book and not executed immediately
639
+ * @param {float} [params.stopLossPrice] The price at which a stop loss order is triggered at
640
+ * @param {float} [params.takeProfitPrice] The price at which a take profit order is triggered at
641
+ * @param {string} [params.triggerType] "price"
642
+ * @param {string} [params.triggerReference] "lastTrade", "bestBid", "bestAsk", "midPrice" Only for stop orders: Use this to determine which parameter will trigger the order
643
+ * @param {string} [params.selfTradePrevention] "decrementAndCancel", "cancelOldest", "cancelNewest", "cancelBoth"
644
+ * @param {bool} [params.disableMarketProtection] don't cancel if the next fill price is 10% worse than the best fill price
645
+ * @param {bool} [params.responseRequired] Set this to 'false' when only an acknowledgement of success or failure is required, this is faster.
646
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
647
+ */
648
+ async createOrderWs(symbol, type, side, amount, price = undefined, params = {}) {
649
+ await this.loadMarkets();
650
+ await this.authenticate();
651
+ const request = this.createOrderRequest(symbol, type, side, amount, price, params);
652
+ return await this.watchRequest('privateCreateOrder', request);
653
+ }
654
+ /**
655
+ * @method
656
+ * @name bitvavo#editOrderWs
657
+ * @description edit a trade order
658
+ * @see https://docs.bitvavo.com/#tag/Orders/paths/~1order/put
659
+ * @param {string} id cancel order id
660
+ * @param {string} symbol unified symbol of the market to create an order in
661
+ * @param {string} type 'market' or 'limit'
662
+ * @param {string} side 'buy' or 'sell'
663
+ * @param {float} [amount] how much of currency you want to trade in units of base currency
664
+ * @param {float} [price] the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
665
+ * @param {object} [params] extra parameters specific to the bitvavo api endpoint
666
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
667
+ */
668
+ async editOrderWs(id, symbol, type, side, amount = undefined, price = undefined, params = {}) {
669
+ await this.loadMarkets();
670
+ await this.authenticate();
671
+ const request = this.editOrderRequest(id, symbol, type, side, amount, price, params);
672
+ return await this.watchRequest('privateUpdateOrder', request);
673
+ }
674
+ /**
675
+ * @method
676
+ * @name bitvavo#cancelOrderWs
677
+ * @see https://docs.bitvavo.com/#tag/Orders/paths/~1order/delete
678
+ * @description cancels an open order
679
+ * @param {string} id order id
680
+ * @param {string} symbol unified symbol of the market the order was made in
681
+ * @param {object} [params] extra parameters specific to the bitvavo api endpoint
682
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
683
+ */
684
+ async cancelOrderWs(id, symbol = undefined, params = {}) {
685
+ await this.loadMarkets();
686
+ await this.authenticate();
687
+ const request = this.cancelOrderRequest(id, symbol, params);
688
+ return await this.watchRequest('privateCancelOrder', request);
689
+ }
690
+ /**
691
+ * @method
692
+ * @name bitvavo#cancelAllOrdersWs
693
+ * @see https://docs.bitvavo.com/#tag/Orders/paths/~1orders/delete
694
+ * @description cancel all open orders
695
+ * @param {string} symbol unified market symbol, only orders in the market of this symbol are cancelled when symbol is not undefined
696
+ * @param {object} [params] extra parameters specific to the bitvavo api endpoint
697
+ * @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
698
+ */
699
+ async cancelAllOrdersWs(symbol = undefined, params = {}) {
700
+ await this.loadMarkets();
701
+ await this.authenticate();
702
+ const request = {};
703
+ let market = undefined;
704
+ if (symbol !== undefined) {
705
+ market = this.market(symbol);
706
+ request['market'] = market['id'];
707
+ }
708
+ return await this.watchRequest('privateCancelOrders', this.extend(request, params));
709
+ }
710
+ handleMultipleOrders(client, message) {
711
+ //
712
+ // {
713
+ // action: 'privateCancelOrders',
714
+ // response: [{
715
+ // orderId: 'd71df826-1130-478a-8741-d219128675b0'
716
+ // }]
717
+ // }
718
+ //
719
+ // const action = this.safeString (message, 'action');
720
+ const response = this.safeList(message, 'response');
721
+ // const firstRawOrder = this.safeValue (response, 0, {});
722
+ // const marketId = this.safeString (firstRawOrder, 'market');
723
+ const orders = this.parseOrders(response);
724
+ // let messageHash = this.buildMessageHash (action, { 'market': marketId });
725
+ // client.resolve (orders, messageHash);
726
+ // messageHash = this.buildMessageHash (action, message);
727
+ const messageHash = this.safeString(message, 'requestId');
728
+ client.resolve(orders, messageHash);
729
+ }
730
+ /**
731
+ * @method
732
+ * @name bitvavo#fetchOrderWs
733
+ * @see https://docs.bitvavo.com/#tag/General/paths/~1assets/get
734
+ * @description fetches information on an order made by the user
735
+ * @param {string} id the order id
736
+ * @param {string} symbol unified symbol of the market the order was made in
737
+ * @param {object} [params] extra parameters specific to the bitvavo api endpoint
738
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
739
+ */
740
+ async fetchOrderWs(id, symbol = undefined, params = {}) {
741
+ if (symbol === undefined) {
742
+ throw new ArgumentsRequired(this.id + ' fetchOrder() requires a symbol argument');
743
+ }
744
+ await this.loadMarkets();
745
+ await this.authenticate();
746
+ const market = this.market(symbol);
747
+ const request = {
748
+ 'orderId': id,
749
+ 'market': market['id'],
750
+ };
751
+ return await this.watchRequest('privateGetOrder', this.extend(request, params));
752
+ }
753
+ /**
754
+ * @method
755
+ * @name bitvavo#fetchOrdersWs
756
+ * @see https://docs.bitvavo.com/#tag/Orders/paths/~1orders/get
757
+ * @description fetches information on multiple orders made by the user
758
+ * @param {string} symbol unified market symbol of the market orders were made in
759
+ * @param {int} [since] the earliest time in ms to fetch orders for
760
+ * @param {int} [limit] the maximum number of orde structures to retrieve
761
+ * @param {object} [params] extra parameters specific to the bitvavo api endpoint
762
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
763
+ */
764
+ async fetchOrdersWs(symbol = undefined, since = undefined, limit = undefined, params = {}) {
765
+ if (symbol === undefined) {
766
+ throw new ArgumentsRequired(this.id + ' fetchOrdersWs() requires a symbol argument');
767
+ }
768
+ await this.loadMarkets();
769
+ await this.authenticate();
770
+ const request = this.fetchOrdersRequest(symbol, since, limit, params);
771
+ const orders = await this.watchRequest('privateGetOrders', request);
772
+ return this.filterBySymbolSinceLimit(orders, symbol, since, limit);
773
+ }
774
+ requestId() {
775
+ const ts = this.milliseconds().toString();
776
+ const randomNumber = this.randNumber(4);
777
+ const randomPart = randomNumber.toString();
778
+ return parseInt(ts + randomPart);
779
+ }
780
+ async watchRequest(action, request) {
781
+ const messageHash = this.requestId();
782
+ const messageHashStr = messageHash.toString();
783
+ request['action'] = action;
784
+ request['requestId'] = messageHash;
785
+ const url = this.urls['api']['ws'];
786
+ return await this.watch(url, messageHashStr, request, messageHashStr);
787
+ }
788
+ /**
789
+ * @method
790
+ * @name bitvavo#fetchOpenOrdersWs
791
+ * @description fetch all unfilled currently open orders
792
+ * @param {string} symbol unified market symbol
793
+ * @param {int} [since] the earliest time in ms to fetch open orders for
794
+ * @param {int} [limit] the maximum number of open orders structures to retrieve
795
+ * @param {object} [params] extra parameters specific to the bitvavo api endpoint
796
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
797
+ */
798
+ async fetchOpenOrdersWs(symbol = undefined, since = undefined, limit = undefined, params = {}) {
799
+ await this.loadMarkets();
800
+ await this.authenticate();
801
+ const request = {
802
+ // 'market': market['id'], // rate limit 25 without a market, 1 with market specified
803
+ };
804
+ let market = undefined;
805
+ if (symbol !== undefined) {
806
+ market = this.market(symbol);
807
+ request['market'] = market['id'];
808
+ }
809
+ const orders = await this.watchRequest('privateGetOrdersOpen', this.extend(request, params));
810
+ return this.filterBySymbolSinceLimit(orders, symbol, since, limit);
811
+ }
812
+ /**
813
+ * @method
814
+ * @name bitvavo#fetchMyTradesWs
815
+ * @see https://docs.bitvavo.com/#tag/Trades
816
+ * @description fetch all trades made by the user
817
+ * @param {string} symbol unified market symbol
818
+ * @param {int} [since] the earliest time in ms to fetch trades for
819
+ * @param {int} [limit] the maximum number of trades structures to retrieve
820
+ * @param {object} [params] extra parameters specific to the bitvavo api endpoint
821
+ * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
822
+ */
823
+ async fetchMyTradesWs(symbol = undefined, since = undefined, limit = undefined, params = {}) {
824
+ if (symbol === undefined) {
825
+ throw new ArgumentsRequired(this.id + ' fetchMyTradesWs() requires a symbol argument');
826
+ }
827
+ await this.loadMarkets();
828
+ await this.authenticate();
829
+ const request = this.fetchMyTradesRequest(symbol, since, limit, params);
830
+ const myTrades = await this.watchRequest('privateGetTrades', request);
831
+ return this.filterBySymbolSinceLimit(myTrades, symbol, since, limit);
832
+ }
833
+ handleMyTrades(client, message) {
834
+ //
835
+ // {
836
+ // action: 'privateGetTrades',
837
+ // response: [
838
+ // {
839
+ // "id": "108c3633-0276-4480-a902-17a01829deae",
840
+ // "orderId": "1d671998-3d44-4df4-965f-0d48bd129a1b",
841
+ // "timestamp": 1542967486256,
842
+ // "market": "BTC-EUR",
843
+ // "side": "buy",
844
+ // "amount": "0.005",
845
+ // "price": "5000.1",
846
+ // "taker": true,
847
+ // "fee": "0.03",
848
+ // "feeCurrency": "EUR",
849
+ // "settled": true
850
+ // }
851
+ // ]
852
+ // }
853
+ //
854
+ //
855
+ // const action = this.safeString (message, 'action');
856
+ const response = this.safeList(message, 'response');
857
+ // const marketId = this.safeString (firstRawTrade, 'market');
858
+ const trades = this.parseTrades(response, undefined, undefined, undefined);
859
+ // const messageHash = this.buildMessageHash (action, { 'market': marketId });
860
+ const messageHash = this.safeString(message, 'requestId');
861
+ client.resolve(trades, messageHash);
862
+ }
863
+ /**
864
+ * @method
865
+ * @name bitvavo#withdrawWs
866
+ * @description make a withdrawal
867
+ * @param {string} code unified currency code
868
+ * @param {float} amount the amount to withdraw
869
+ * @param {string} address the address to withdraw to
870
+ * @param {string} tag
871
+ * @param {object} [params] extra parameters specific to the bitvavo api endpoint
872
+ * @returns {object} a [transaction structure]{@link https://docs.ccxt.com/#/?id=transaction-structure}
873
+ */
874
+ async withdrawWs(code, amount, address, tag = undefined, params = {}) {
875
+ [tag, params] = this.handleWithdrawTagAndParams(tag, params);
876
+ this.checkAddress(address);
877
+ await this.loadMarkets();
878
+ await this.authenticate();
879
+ const request = this.withdrawRequest(code, amount, address, tag, params);
880
+ return await this.watchRequest('privateWithdrawAssets', request);
881
+ }
882
+ handleWithdraw(client, message) {
883
+ //
884
+ // {
885
+ // action: 'privateWithdrawAssets',
886
+ // response: {
887
+ // "success": true,
888
+ // "symbol": "BTC",
889
+ // "amount": "1.5"
890
+ // }
891
+ // }
892
+ //
893
+ // const action = this.safeString (message, 'action');
894
+ // const messageHash = this.buildMessageHash (action, message);
895
+ const messageHash = this.safeString(message, 'requestId');
896
+ const response = this.safeValue(message, 'response');
897
+ const withdraw = this.parseTransaction(response);
898
+ client.resolve(withdraw, messageHash);
899
+ }
900
+ /**
901
+ * @method
902
+ * @name bitvavo#fetchWithdrawalsWs
903
+ * @see https://docs.bitvavo.com/#tag/Account/paths/~1withdrawalHistory/get
904
+ * @description fetch all withdrawals made from an account
905
+ * @param {string} code unified currency code
906
+ * @param {int} [since] the earliest time in ms to fetch withdrawals for
907
+ * @param {int} [limit] the maximum number of withdrawals structures to retrieve
908
+ * @param {object} [params] extra parameters specific to the bitvavo api endpoint
909
+ * @returns {object[]} a list of [transaction structures]{@link https://docs.ccxt.com/#/?id=transaction-structure}
910
+ */
911
+ async fetchWithdrawalsWs(code = undefined, since = undefined, limit = undefined, params = {}) {
912
+ await this.loadMarkets();
913
+ await this.authenticate();
914
+ const request = this.fetchWithdrawalsRequest(code, since, limit, params);
915
+ const withdraws = await this.watchRequest('privateGetWithdrawalHistory', request);
916
+ return this.filterByCurrencySinceLimit(withdraws, code, since, limit);
917
+ }
918
+ handleWithdraws(client, message) {
919
+ //
920
+ // {
921
+ // action: 'privateGetWithdrawalHistory',
922
+ // response: [{
923
+ // timestamp: 1689792085000,
924
+ // symbol: 'BTC',
925
+ // amount: '0.0009',
926
+ // fee: '0',
927
+ // status: 'completed',
928
+ // txId: '7dbadc658d7d59c129de1332c55ee8e08d0ab74432faae03b417b9809c819d1f'
929
+ // },
930
+ // ...
931
+ // ]
932
+ // }
933
+ //
934
+ // const action = this.safeString (message, 'action');
935
+ // const messageHash = this.buildMessageHash (action, message);
936
+ const response = this.safeList(message, 'response');
937
+ const messageHash = this.safeString(message, 'requestId');
938
+ const withdrawals = this.parseTransactions(response, undefined, undefined, undefined, { 'type': 'withdrawal' });
939
+ client.resolve(withdrawals, messageHash);
940
+ }
941
+ /**
942
+ * @method
943
+ * @name bitvavo#fetchOHLCVWs
944
+ * @see https://docs.bitvavo.com/#tag/Market-Data/paths/~1{market}~1candles/get
945
+ * @description fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
946
+ * @param {string} symbol unified symbol of the market to fetch OHLCV data for
947
+ * @param {string} timeframe the length of time each candle represents
948
+ * @param {int} [since] timestamp in ms of the earliest candle to fetch
949
+ * @param {int} [limit] the maximum amount of candles to fetch
950
+ * @param {object} [params] extra parameters specific to the bitvavo api endpoint
951
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
952
+ */
953
+ async fetchOHLCVWs(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
954
+ await this.loadMarkets();
955
+ const request = this.fetchOHLCVRequest(symbol, timeframe, since, limit, params);
956
+ const action = 'getCandles';
957
+ const ohlcv = await this.watchRequest(action, request);
958
+ return this.filterBySinceLimit(ohlcv, since, limit, 0, true);
959
+ }
960
+ /**
961
+ * @method
962
+ * @name bitvavo#fetchDepositsWs
963
+ * @see https://docs.bitvavo.com/#tag/Account/paths/~1depositHistory/get
964
+ * @description fetch all deposits made to an account
965
+ * @param {string} code unified currency code
966
+ * @param {int} [since] the earliest time in ms to fetch deposits for
967
+ * @param {int} [limit] the maximum number of deposits structures to retrieve
968
+ * @param {object} [params] extra parameters specific to the bitvavo api endpoint
969
+ * @returns {object[]} a list of [transaction structures]{@link https://docs.ccxt.com/#/?id=transaction-structure}
970
+ */
971
+ async fetchDepositsWs(code = undefined, since = undefined, limit = undefined, params = {}) {
972
+ await this.loadMarkets();
973
+ await this.authenticate();
974
+ const request = this.fetchDepositsRequest(code, since, limit, params);
975
+ const deposits = await this.watchRequest('privateGetDepositHistory', request);
976
+ return this.filterByCurrencySinceLimit(deposits, code, since, limit);
977
+ }
978
+ handleDeposits(client, message) {
979
+ //
980
+ // {
981
+ // action: 'privateGetDepositHistory',
982
+ // response: [{
983
+ // timestamp: 1689792085000,
984
+ // symbol: 'BTC',
985
+ // amount: '0.0009',
986
+ // fee: '0',
987
+ // status: 'completed',
988
+ // txId: '7dbadc658d7d59c129de1332c55ee8e08d0ab74432faae03b417b9809c819d1f'
989
+ // },
990
+ // ...
991
+ // ]
992
+ // }
993
+ //
994
+ const response = this.safeValue(message, 'response');
995
+ const deposits = this.parseTransactions(response, undefined, undefined, undefined, { 'type': 'deposit' });
996
+ const messageHash = this.safeString(message, 'requestId');
997
+ client.resolve(deposits, messageHash);
998
+ }
999
+ /**
1000
+ * @method
1001
+ * @name bitvavo#fetchTradingFeesWs
1002
+ * @see https://docs.bitvavo.com/#tag/Account/paths/~1account/get
1003
+ * @description fetch the trading fees for multiple markets
1004
+ * @param {object} [params] extra parameters specific to the bitvavo api endpoint
1005
+ * @returns {object} a dictionary of [fee structures]{@link https://docs.ccxt.com/#/?id=fee-structure} indexed by market symbols
1006
+ */
1007
+ async fetchTradingFeesWs(params = {}) {
1008
+ await this.loadMarkets();
1009
+ await this.authenticate();
1010
+ return await this.watchRequest('privateGetAccount', params);
1011
+ }
1012
+ /**
1013
+ * @method
1014
+ * @name bitvavo#fetchMarketsWs
1015
+ * @see https://docs.bitvavo.com/#tag/General/paths/~1markets/get
1016
+ * @description retrieves data on all markets for bitvavo
1017
+ * @param {object} [params] extra parameters specific to the exchange api endpoint
1018
+ * @returns {object[]} an array of objects representing market data
1019
+ */
1020
+ async fetchMarketsWs(params = {}) {
1021
+ return await this.watchRequest('getMarkets', params);
1022
+ }
1023
+ /**
1024
+ * @method
1025
+ * @name bitvavo#fetchCurrenciesWs
1026
+ * @see https://docs.bitvavo.com/#tag/General/paths/~1assets/get
1027
+ * @description fetches all available currencies on an exchange
1028
+ * @param {object} [params] extra parameters specific to the bitvavo api endpoint
1029
+ * @returns {object} an associative dictionary of currencies
1030
+ */
1031
+ async fetchCurrenciesWs(params = {}) {
1032
+ await this.loadMarkets();
1033
+ return await this.watchRequest('getAssets', params);
1034
+ }
1035
+ handleFetchCurrencies(client, message) {
1036
+ //
1037
+ // {
1038
+ // action: 'getAssets',
1039
+ // response: [{
1040
+ // symbol: '1INCH',
1041
+ // name: '1inch',
1042
+ // decimals: 8,
1043
+ // depositFee: '0',
1044
+ // depositConfirmations: 64,
1045
+ // depositStatus: 'OK',
1046
+ // withdrawalFee: '13',
1047
+ // withdrawalMinAmount: '13',
1048
+ // withdrawalStatus: 'OK',
1049
+ // networks: [Array],
1050
+ // message: ''
1051
+ // },
1052
+ // ...
1053
+ // ]
1054
+ // }
1055
+ //
1056
+ const messageHash = this.safeString(message, 'requestId');
1057
+ const response = this.safeValue(message, 'response');
1058
+ const currencies = this.parseCurrencies(response);
1059
+ client.resolve(currencies, messageHash);
1060
+ }
1061
+ handleTradingFees(client, message) {
1062
+ //
1063
+ // {
1064
+ // action: 'privateGetAccount',
1065
+ // response: {
1066
+ // fees: {
1067
+ // taker: '0.0025',
1068
+ // maker: '0.0015',
1069
+ // volume: '1693.74'
1070
+ // }
1071
+ // }
1072
+ // }
1073
+ //
1074
+ const messageHash = this.safeString(message, 'requestId');
1075
+ const response = this.safeValue(message, 'response');
1076
+ const fees = this.parseTradingFees(response);
1077
+ client.resolve(fees, messageHash);
1078
+ }
1079
+ /**
1080
+ * @method
1081
+ * @name bitvavo#fetchBalanceWs
1082
+ * @see https://docs.bitvavo.com/#tag/Account/paths/~1balance/get
1083
+ * @description query for balance and get the amount of funds available for trading or funds locked in orders
1084
+ * @param {object} [params] extra parameters specific to the bitvavo api endpoint
1085
+ * @returns {object} a [balance structure]{@link https://docs.ccxt.com/en/latest/manual.html?#balance-structure}
1086
+ */
1087
+ async fetchBalanceWs(params = {}) {
1088
+ await this.loadMarkets();
1089
+ await this.authenticate();
1090
+ return await this.watchRequest('privateGetBalance', params);
1091
+ }
1092
+ handleFetchBalance(client, message) {
1093
+ //
1094
+ // {
1095
+ // action: 'privateGetBalance',
1096
+ // response: [{
1097
+ // symbol: 'ADA',
1098
+ // available: '0',
1099
+ // inOrder: '0'
1100
+ // },
1101
+ // ...
1102
+ // ]
1103
+ // }
1104
+ //
1105
+ const messageHash = this.safeString(message, 'requestId');
1106
+ const response = this.safeValue(message, 'response', []);
1107
+ const balance = this.parseBalance(response);
1108
+ client.resolve(balance, messageHash);
1109
+ }
1110
+ handleSingleOrder(client, message) {
1111
+ //
1112
+ // {
1113
+ // action: 'privateCreateOrder',
1114
+ // response: {
1115
+ // orderId: 'd71df826-1130-478a-8741-d219128675b0',
1116
+ // market: 'BTC-EUR',
1117
+ // created: 1689792749748,
1118
+ // updated: 1689792749748,
1119
+ // status: 'new',
1120
+ // side: 'sell',
1121
+ // orderType: 'limit',
1122
+ // amount: '0.0002',
1123
+ // amountRemaining: '0.0002',
1124
+ // price: '37000',
1125
+ // onHold: '0.0002',
1126
+ // onHoldCurrency: 'BTC',
1127
+ // filledAmount: '0',
1128
+ // filledAmountQuote: '0',
1129
+ // feePaid: '0',
1130
+ // feeCurrency: 'EUR',
1131
+ // fills: [],
1132
+ // selfTradePrevention: 'decrementAndCancel',
1133
+ // visible: true,
1134
+ // timeInForce: 'GTC',
1135
+ // postOnly: false
1136
+ // }
1137
+ // }
1138
+ //
1139
+ const response = this.safeValue(message, 'response', {});
1140
+ const order = this.parseOrder(response);
1141
+ const messageHash = this.safeString(message, 'requestId');
1142
+ client.resolve(order, messageHash);
1143
+ }
1144
+ handleMarkets(client, message) {
1145
+ //
1146
+ // {
1147
+ // action: 'getMarkets',
1148
+ // response: [{
1149
+ // market: '1INCH-EUR',
1150
+ // status: 'trading',
1151
+ // base: '1INCH',
1152
+ // quote: 'EUR',
1153
+ // pricePrecision: 5,
1154
+ // minOrderInBaseAsset: '2',
1155
+ // minOrderInQuoteAsset: '5',
1156
+ // maxOrderInBaseAsset: '1000000000',
1157
+ // maxOrderInQuoteAsset: '1000000000',
1158
+ // orderTypes: [Array]
1159
+ // },
1160
+ // ...
1161
+ // ]
1162
+ // }
1163
+ //
1164
+ const response = this.safeValue(message, 'response', {});
1165
+ const markets = this.parseMarkets(response);
1166
+ const messageHash = this.safeString(message, 'requestId');
1167
+ client.resolve(markets, messageHash);
1168
+ }
1169
+ buildMessageHash(action, params = {}) {
1170
+ const methods = {
1171
+ 'privateCreateOrder': this.actionAndMarketMessageHash,
1172
+ 'privateUpdateOrder': this.actionAndOrderIdMessageHash,
1173
+ 'privateCancelOrder': this.actionAndOrderIdMessageHash,
1174
+ 'privateGetOrder': this.actionAndOrderIdMessageHash,
1175
+ 'privateGetTrades': this.actionAndMarketMessageHash,
1176
+ };
1177
+ const method = this.safeValue(methods, action);
1178
+ let messageHash = action;
1179
+ if (method !== undefined) {
1180
+ messageHash = method.call(this, action, params);
1181
+ }
1182
+ return messageHash;
1183
+ }
1184
+ actionAndMarketMessageHash(action, params = {}) {
1185
+ const symbol = this.safeString(params, 'market', '');
1186
+ return action + symbol;
1187
+ }
1188
+ actionAndOrderIdMessageHash(action, params = {}) {
1189
+ const orderId = this.safeString(params, 'orderId');
1190
+ if (orderId === undefined) {
1191
+ throw new ExchangeError(this.id + ' privateUpdateOrderMessageHash requires a orderId parameter');
1192
+ }
1193
+ return action + orderId;
1194
+ }
1195
+ handleOrder(client, message) {
1196
+ //
1197
+ // {
1198
+ // "event": "order",
1199
+ // "orderId": "f0e5180f-9497-4d05-9dc2-7056e8a2de9b",
1200
+ // "market": "ETH-EUR",
1201
+ // "created": 1590948500319,
1202
+ // "updated": 1590948500319,
1203
+ // "status": "new",
1204
+ // "side": "sell",
1205
+ // "orderType": "limit",
1206
+ // "amount": "0.1",
1207
+ // "amountRemaining": "0.1",
1208
+ // "price": "300",
1209
+ // "onHold": "0.1",
1210
+ // "onHoldCurrency": "ETH",
1211
+ // "selfTradePrevention": "decrementAndCancel",
1212
+ // "visible": true,
1213
+ // "timeInForce": "GTC",
1214
+ // "postOnly": false
1215
+ // }
1216
+ //
1217
+ const marketId = this.safeString(message, 'market');
1218
+ const market = this.safeMarket(marketId, undefined, '-');
1219
+ const symbol = market['symbol'];
1220
+ const messageHash = 'order:' + symbol;
1221
+ const order = this.parseOrder(message, market);
1222
+ if (this.orders === undefined) {
1223
+ const limit = this.safeInteger(this.options, 'ordersLimit', 1000);
1224
+ this.orders = new ArrayCacheBySymbolById(limit);
1225
+ }
1226
+ const orders = this.orders;
1227
+ orders.append(order);
1228
+ client.resolve(this.orders, messageHash);
1229
+ }
1230
+ handleMyTrade(client, message) {
1231
+ //
1232
+ // {
1233
+ // "event": "fill",
1234
+ // "timestamp": 1590964470132,
1235
+ // "market": "ETH-EUR",
1236
+ // "orderId": "85d082e1-eda4-4209-9580-248281a29a9a",
1237
+ // "fillId": "861d2da5-aa93-475c-8d9a-dce431bd4211",
1238
+ // "side": "sell",
1239
+ // "amount": "0.1",
1240
+ // "price": "211.46",
1241
+ // "taker": true,
1242
+ // "fee": "0.056",
1243
+ // "feeCurrency": "EUR"
1244
+ // }
1245
+ //
1246
+ const marketId = this.safeString(message, 'market');
1247
+ const market = this.safeMarket(marketId, undefined, '-');
1248
+ const symbol = market['symbol'];
1249
+ const messageHash = 'myTrades:' + symbol;
1250
+ const trade = this.parseTrade(message, market);
1251
+ if (this.myTrades === undefined) {
1252
+ const limit = this.safeInteger(this.options, 'tradesLimit', 1000);
1253
+ this.myTrades = new ArrayCache(limit);
1254
+ }
1255
+ const tradesArray = this.myTrades;
1256
+ tradesArray.append(trade);
1257
+ client.resolve(tradesArray, messageHash);
1258
+ }
1259
+ handleSubscriptionStatus(client, message) {
1260
+ //
1261
+ // {
1262
+ // "event": "subscribed",
1263
+ // "subscriptions": {
1264
+ // "book": [ "BTC-EUR" ]
1265
+ // }
1266
+ // }
1267
+ //
1268
+ const subscriptions = this.safeValue(message, 'subscriptions', {});
1269
+ const methods = {
1270
+ 'book': this.handleOrderBookSubscriptions,
1271
+ };
1272
+ const names = Object.keys(subscriptions);
1273
+ for (let i = 0; i < names.length; i++) {
1274
+ const name = names[i];
1275
+ const method = this.safeValue(methods, name);
1276
+ if (method !== undefined) {
1277
+ const subscription = this.safeValue(subscriptions, name);
1278
+ method.call(this, client, message, subscription);
1279
+ }
1280
+ }
1281
+ return message;
1282
+ }
1283
+ async authenticate(params = {}) {
1284
+ const url = this.urls['api']['ws'];
1285
+ const client = this.client(url);
1286
+ const messageHash = 'authenticated';
1287
+ let future = this.safeValue(client.subscriptions, messageHash);
1288
+ if (future === undefined) {
1289
+ const timestamp = this.milliseconds();
1290
+ const stringTimestamp = timestamp.toString();
1291
+ const auth = stringTimestamp + 'GET/' + this.version + '/websocket';
1292
+ const signature = this.hmac(this.encode(auth), this.encode(this.secret), sha256);
1293
+ const action = 'authenticate';
1294
+ const request = {
1295
+ 'action': action,
1296
+ 'key': this.apiKey,
1297
+ 'signature': signature,
1298
+ 'timestamp': timestamp,
1299
+ };
1300
+ const message = this.extend(request, params);
1301
+ future = await this.watch(url, messageHash, message, messageHash);
1302
+ client.subscriptions[messageHash] = future;
1303
+ }
1304
+ return future;
1305
+ }
1306
+ handleAuthenticationMessage(client, message) {
1307
+ //
1308
+ // {
1309
+ // "event": "authenticate",
1310
+ // "authenticated": true
1311
+ // }
1312
+ //
1313
+ const messageHash = 'authenticated';
1314
+ const authenticated = this.safeBool(message, 'authenticated', false);
1315
+ if (authenticated) {
1316
+ // we resolve the future here permanently so authentication only happens once
1317
+ client.resolve(message, messageHash);
1318
+ }
1319
+ else {
1320
+ const error = new AuthenticationError(this.json(message));
1321
+ client.reject(error, messageHash);
1322
+ // allows further authentication attempts
1323
+ if (messageHash in client.subscriptions) {
1324
+ delete client.subscriptions[messageHash];
1325
+ }
1326
+ }
1327
+ }
1328
+ handleErrorMessage(client, message) {
1329
+ //
1330
+ // {
1331
+ // action: 'privateCreateOrder',
1332
+ // market: 'BTC-EUR',
1333
+ // errorCode: 217,
1334
+ // error: 'Minimum order size in quote currency is 5 EUR or 0.001 BTC.'
1335
+ // }
1336
+ // {
1337
+ // action: 'privateCreateOrder',
1338
+ // requestId: '17317539426571916',
1339
+ // market: 'USDT-EUR',
1340
+ // errorCode: 216,
1341
+ // error: 'You do not have sufficient balance to complete this operation.'
1342
+ // }
1343
+ //
1344
+ const error = this.safeString(message, 'error');
1345
+ const code = this.safeInteger(error, 'errorCode');
1346
+ const action = this.safeString(message, 'action');
1347
+ const buildMessage = this.buildMessageHash(action, message);
1348
+ const messageHash = this.safeString(message, 'requestId', buildMessage);
1349
+ let rejected = false;
1350
+ try {
1351
+ this.handleErrors(code, error, client.url, '', {}, error, message, {}, {});
1352
+ }
1353
+ catch (e) {
1354
+ rejected = true;
1355
+ client.reject(e, messageHash);
1356
+ }
1357
+ if (!rejected) {
1358
+ client.reject(message, messageHash);
1359
+ return true;
1360
+ }
1361
+ return undefined;
1362
+ }
1363
+ handleMessage(client, message) {
1364
+ //
1365
+ // {
1366
+ // "event": "subscribed",
1367
+ // "subscriptions": {
1368
+ // "book": [ "BTC-EUR" ]
1369
+ // }
1370
+ // }
1371
+ //
1372
+ // {
1373
+ // "event": "book",
1374
+ // "market": "BTC-EUR",
1375
+ // "nonce": 36729561,
1376
+ // "bids": [
1377
+ // [ "8513.3", "0" ],
1378
+ // [ '8518.8', "0.64236203" ],
1379
+ // [ '8513.6', "0.32435481" ],
1380
+ // ],
1381
+ // "asks": []
1382
+ // }
1383
+ //
1384
+ // {
1385
+ // "action": "getBook",
1386
+ // "response": {
1387
+ // "market": "BTC-EUR",
1388
+ // "nonce": 36946120,
1389
+ // "bids": [
1390
+ // [ '8494.9', "0.24399521" ],
1391
+ // [ '8494.8', "0.34884085" ],
1392
+ // [ '8493.9', "0.14535128" ],
1393
+ // ],
1394
+ // "asks": [
1395
+ // [ "8495", "0.46982463" ],
1396
+ // [ '8495.1', "0.12178267" ],
1397
+ // [ '8496.2', "0.21924143" ],
1398
+ // ]
1399
+ // }
1400
+ // }
1401
+ //
1402
+ // {
1403
+ // "event": "authenticate",
1404
+ // "authenticated": true
1405
+ // }
1406
+ //
1407
+ const error = this.safeString(message, 'error');
1408
+ if (error !== undefined) {
1409
+ this.handleErrorMessage(client, message);
1410
+ }
1411
+ const methods = {
1412
+ 'subscribed': this.handleSubscriptionStatus,
1413
+ 'book': this.handleOrderBook,
1414
+ 'getBook': this.handleOrderBookSnapshot,
1415
+ 'trade': this.handleTrade,
1416
+ 'candle': this.handleOHLCV,
1417
+ 'ticker24h': this.handleTicker,
1418
+ 'authenticate': this.handleAuthenticationMessage,
1419
+ 'order': this.handleOrder,
1420
+ 'fill': this.handleMyTrade,
1421
+ 'privateCreateOrder': this.handleSingleOrder,
1422
+ 'privateUpdateOrder': this.handleSingleOrder,
1423
+ 'privateGetBalance': this.handleFetchBalance,
1424
+ 'privateCancelOrders': this.handleMultipleOrders,
1425
+ 'privateGetOrders': this.handleMultipleOrders,
1426
+ 'privateGetOrder': this.handleSingleOrder,
1427
+ 'privateCancelOrder': this.handleSingleOrder,
1428
+ 'privateGetOrdersOpen': this.handleMultipleOrders,
1429
+ 'privateGetAccount': this.handleTradingFees,
1430
+ 'privateGetDepositHistory': this.handleDeposits,
1431
+ 'privateGetWithdrawalHistory': this.handleWithdraws,
1432
+ 'privateWithdrawAssets': this.handleWithdraw,
1433
+ 'privateGetTrades': this.handleMyTrades,
1434
+ 'getAssets': this.handleFetchCurrencies,
1435
+ 'getCandles': this.handleFetchOHLCV,
1436
+ 'getMarkets': this.handleMarkets,
1437
+ };
1438
+ const event = this.safeString(message, 'event');
1439
+ let method = this.safeValue(methods, event);
1440
+ if (method === undefined) {
1441
+ const action = this.safeString(message, 'action');
1442
+ method = this.safeValue(methods, action);
1443
+ if (method !== undefined) {
1444
+ method.call(this, client, message);
1445
+ }
1446
+ }
1447
+ else {
1448
+ method.call(this, client, message);
1449
+ }
1450
+ }
1451
+ }