ccxt-ir 4.9.32 → 4.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1059) hide show
  1. package/README.md +4 -4
  2. package/dist/ccxt.browser.min.js +2 -2
  3. package/dist/cjs/ccxt.js +7 -1
  4. package/dist/cjs/package.json +1 -1
  5. package/dist/cjs/src/abstract/asretether.js +11 -0
  6. package/dist/cjs/src/abstract/bidarz.js +11 -0
  7. package/dist/cjs/src/asretether.js +325 -0
  8. package/dist/cjs/src/bidarz.js +337 -0
  9. package/dist/cjs/src/bit24.js +4 -3
  10. package/dist/cjs/src/raastin.js +144 -16
  11. package/js/ccxt.d.ts +8 -2
  12. package/js/ccxt.js +6 -2
  13. package/js/src/abstract/asretether.d.ts +8 -0
  14. package/js/src/abstract/asretether.js +11 -0
  15. package/js/src/abstract/bidarz.d.ts +9 -0
  16. package/js/src/abstract/bidarz.js +11 -0
  17. package/js/src/abstract/raastin.d.ts +1 -0
  18. package/js/src/asretether.d.ts +21 -0
  19. package/js/src/asretether.js +324 -0
  20. package/js/src/bidarz.d.ts +22 -0
  21. package/js/src/bidarz.js +336 -0
  22. package/js/src/bit24.js +4 -3
  23. package/js/src/raastin.d.ts +2 -0
  24. package/js/src/raastin.js +144 -16
  25. package/js/src/src/abantether.d.ts +21 -0
  26. package/js/src/src/abantether.js +353 -0
  27. package/js/src/src/abstract/abantether.d.ts +8 -0
  28. package/js/src/src/abstract/abantether.js +11 -0
  29. package/js/src/src/abstract/afratether.d.ts +9 -0
  30. package/js/src/src/abstract/afratether.js +11 -0
  31. package/js/src/src/abstract/alpaca.d.ts +77 -0
  32. package/js/src/src/abstract/alpaca.js +11 -0
  33. package/js/src/src/abstract/apex.d.ts +34 -0
  34. package/js/src/src/abstract/apex.js +11 -0
  35. package/js/src/src/abstract/arzinja.d.ts +8 -0
  36. package/js/src/src/abstract/arzinja.js +11 -0
  37. package/js/src/src/abstract/arzplus.d.ts +11 -0
  38. package/js/src/src/abstract/arzplus.js +11 -0
  39. package/js/src/src/abstract/ascendex.d.ts +80 -0
  40. package/js/src/src/abstract/ascendex.js +11 -0
  41. package/js/src/src/abstract/asretether.d.ts +8 -0
  42. package/js/src/src/abstract/asretether.js +11 -0
  43. package/js/src/src/abstract/bidarz.d.ts +9 -0
  44. package/js/src/src/abstract/bidarz.js +11 -0
  45. package/js/src/src/abstract/bigone.d.ts +48 -0
  46. package/js/src/src/abstract/bigone.js +11 -0
  47. package/js/src/src/abstract/binance.d.ts +773 -0
  48. package/js/src/src/abstract/binance.js +11 -0
  49. package/js/src/src/abstract/bingx.d.ts +165 -0
  50. package/js/src/src/abstract/bingx.js +11 -0
  51. package/js/src/src/abstract/bit24.d.ts +9 -0
  52. package/js/src/src/abstract/bit24.js +11 -0
  53. package/js/src/src/abstract/bit2c.d.ts +30 -0
  54. package/js/src/src/abstract/bit2c.js +11 -0
  55. package/js/src/src/abstract/bitbank.d.ts +35 -0
  56. package/js/src/src/abstract/bitbank.js +11 -0
  57. package/js/src/src/abstract/bitbarg.d.ts +8 -0
  58. package/js/src/src/abstract/bitbarg.js +11 -0
  59. package/js/src/src/abstract/bitbns.d.ts +43 -0
  60. package/js/src/src/abstract/bitbns.js +11 -0
  61. package/js/src/src/abstract/bitfinex.d.ts +143 -0
  62. package/js/src/src/abstract/bitfinex.js +11 -0
  63. package/js/src/src/abstract/bitflyer.d.ts +42 -0
  64. package/js/src/src/abstract/bitflyer.js +11 -0
  65. package/js/src/src/abstract/bitget.d.ts +578 -0
  66. package/js/src/src/abstract/bitget.js +11 -0
  67. package/js/src/src/abstract/bithumb.d.ts +35 -0
  68. package/js/src/src/abstract/bithumb.js +11 -0
  69. package/js/src/src/abstract/bitimen.d.ts +10 -0
  70. package/js/src/src/abstract/bitimen.js +11 -0
  71. package/js/src/src/abstract/bitir.d.ts +10 -0
  72. package/js/src/src/abstract/bitir.js +11 -0
  73. package/js/src/src/abstract/bitmart.d.ts +120 -0
  74. package/js/src/src/abstract/bitmart.js +11 -0
  75. package/js/src/src/abstract/bitmex.d.ts +100 -0
  76. package/js/src/src/abstract/bitmex.js +11 -0
  77. package/js/src/src/abstract/bitopro.d.ts +33 -0
  78. package/js/src/src/abstract/bitopro.js +11 -0
  79. package/js/src/src/abstract/bitpin.d.ts +11 -0
  80. package/js/src/src/abstract/bitpin.js +11 -0
  81. package/js/src/src/abstract/bitrue.d.ts +75 -0
  82. package/js/src/src/abstract/bitrue.js +11 -0
  83. package/js/src/src/abstract/bitso.d.ts +46 -0
  84. package/js/src/src/abstract/bitso.js +11 -0
  85. package/js/src/src/abstract/bitstamp.d.ts +262 -0
  86. package/js/src/src/abstract/bitstamp.js +11 -0
  87. package/js/src/src/abstract/bitteam.d.ts +32 -0
  88. package/js/src/src/abstract/bitteam.js +11 -0
  89. package/js/src/src/abstract/bittrade.d.ts +117 -0
  90. package/js/src/src/abstract/bittrade.js +11 -0
  91. package/js/src/src/abstract/bitunix.d.ts +9 -0
  92. package/js/src/src/abstract/bitunix.js +11 -0
  93. package/js/src/src/abstract/bitvavo.d.ts +30 -0
  94. package/js/src/src/abstract/bitvavo.js +11 -0
  95. package/js/src/src/abstract/blockchaincom.d.ts +31 -0
  96. package/js/src/src/abstract/blockchaincom.js +11 -0
  97. package/js/src/src/abstract/blofin.d.ts +70 -0
  98. package/js/src/src/abstract/blofin.js +11 -0
  99. package/js/src/src/abstract/btcalpha.d.ts +21 -0
  100. package/js/src/src/abstract/btcalpha.js +11 -0
  101. package/js/src/src/abstract/btcbox.d.ts +18 -0
  102. package/js/src/src/abstract/btcbox.js +11 -0
  103. package/js/src/src/abstract/btcmarkets.d.ts +42 -0
  104. package/js/src/src/abstract/btcmarkets.js +11 -0
  105. package/js/src/src/abstract/btcturk.d.ts +23 -0
  106. package/js/src/src/abstract/btcturk.js +11 -0
  107. package/js/src/src/abstract/bybit.d.ts +316 -0
  108. package/js/src/src/abstract/bybit.js +11 -0
  109. package/js/src/src/abstract/bydfi.d.ts +11 -0
  110. package/js/src/src/abstract/bydfi.js +11 -0
  111. package/js/src/src/abstract/cafearz.d.ts +8 -0
  112. package/js/src/src/abstract/cafearz.js +11 -0
  113. package/js/src/src/abstract/cex.d.ts +35 -0
  114. package/js/src/src/abstract/cex.js +11 -0
  115. package/js/src/src/abstract/coinbase.d.ts +97 -0
  116. package/js/src/src/abstract/coinbase.js +11 -0
  117. package/js/src/src/abstract/coinbaseexchange.d.ts +71 -0
  118. package/js/src/src/abstract/coinbaseexchange.js +11 -0
  119. package/js/src/src/abstract/coinbaseinternational.d.ts +42 -0
  120. package/js/src/src/abstract/coinbaseinternational.js +11 -0
  121. package/js/src/src/abstract/coincatch.d.ts +97 -0
  122. package/js/src/src/abstract/coincatch.js +11 -0
  123. package/js/src/src/abstract/coincheck.d.ts +36 -0
  124. package/js/src/src/abstract/coincheck.js +11 -0
  125. package/js/src/src/abstract/coinex.d.ts +240 -0
  126. package/js/src/src/abstract/coinex.js +11 -0
  127. package/js/src/src/abstract/coinmate.d.ts +65 -0
  128. package/js/src/src/abstract/coinmate.js +11 -0
  129. package/js/src/src/abstract/coinmetro.d.ts +37 -0
  130. package/js/src/src/abstract/coinmetro.js +11 -0
  131. package/js/src/src/abstract/coinone.d.ts +70 -0
  132. package/js/src/src/abstract/coinone.js +11 -0
  133. package/js/src/src/abstract/coinsph.d.ts +57 -0
  134. package/js/src/src/abstract/coinsph.js +11 -0
  135. package/js/src/src/abstract/coinspot.d.ts +31 -0
  136. package/js/src/src/abstract/coinspot.js +11 -0
  137. package/js/src/src/abstract/cryptocom.d.ts +126 -0
  138. package/js/src/src/abstract/cryptocom.js +11 -0
  139. package/js/src/src/abstract/cryptomus.d.ts +23 -0
  140. package/js/src/src/abstract/cryptomus.js +11 -0
  141. package/js/src/src/abstract/defx.d.ts +72 -0
  142. package/js/src/src/abstract/defx.js +11 -0
  143. package/js/src/src/abstract/delta.d.ts +53 -0
  144. package/js/src/src/abstract/delta.js +11 -0
  145. package/js/src/src/abstract/deribit.d.ts +129 -0
  146. package/js/src/src/abstract/deribit.js +11 -0
  147. package/js/src/src/abstract/derive.d.ts +120 -0
  148. package/js/src/src/abstract/derive.js +11 -0
  149. package/js/src/src/abstract/digifinex.d.ts +95 -0
  150. package/js/src/src/abstract/digifinex.js +11 -0
  151. package/js/src/src/abstract/ellipx.d.ts +28 -0
  152. package/js/src/src/abstract/ellipx.js +11 -0
  153. package/js/src/src/abstract/eterex.d.ts +8 -0
  154. package/js/src/src/abstract/eterex.js +11 -0
  155. package/js/src/src/abstract/excoino.d.ts +10 -0
  156. package/js/src/src/abstract/excoino.js +11 -0
  157. package/js/src/src/abstract/exir.d.ts +11 -0
  158. package/js/src/src/abstract/exir.js +11 -0
  159. package/js/src/src/abstract/exmo.d.ts +58 -0
  160. package/js/src/src/abstract/exmo.js +11 -0
  161. package/js/src/src/abstract/exnovin.d.ts +9 -0
  162. package/js/src/src/abstract/exnovin.js +11 -0
  163. package/js/src/src/abstract/farhadexchange.d.ts +8 -0
  164. package/js/src/src/abstract/farhadexchange.js +11 -0
  165. package/js/src/src/abstract/foxbit.d.ts +29 -0
  166. package/js/src/src/abstract/foxbit.js +11 -0
  167. package/js/src/src/abstract/gate.d.ts +287 -0
  168. package/js/src/src/abstract/gate.js +11 -0
  169. package/js/src/src/abstract/gemini.d.ts +62 -0
  170. package/js/src/src/abstract/gemini.js +11 -0
  171. package/js/src/src/abstract/hamtapay.d.ts +9 -0
  172. package/js/src/src/abstract/hamtapay.js +11 -0
  173. package/js/src/src/abstract/hashkey.d.ts +70 -0
  174. package/js/src/src/abstract/hashkey.js +11 -0
  175. package/js/src/src/abstract/hibachi.d.ts +29 -0
  176. package/js/src/src/abstract/hibachi.js +11 -0
  177. package/js/src/src/abstract/hitbtc.d.ts +118 -0
  178. package/js/src/src/abstract/hitbtc.js +11 -0
  179. package/js/src/src/abstract/hitobit.d.ts +11 -0
  180. package/js/src/src/abstract/hitobit.js +11 -0
  181. package/js/src/src/abstract/hollaex.d.ts +36 -0
  182. package/js/src/src/abstract/hollaex.js +11 -0
  183. package/js/src/src/abstract/htx.d.ts +551 -0
  184. package/js/src/src/abstract/htx.js +11 -0
  185. package/js/src/src/abstract/hyperliquid.d.ts +9 -0
  186. package/js/src/src/abstract/hyperliquid.js +11 -0
  187. package/js/src/src/abstract/independentreserve.d.ts +46 -0
  188. package/js/src/src/abstract/independentreserve.js +11 -0
  189. package/js/src/src/abstract/indodax.d.ts +29 -0
  190. package/js/src/src/abstract/indodax.js +11 -0
  191. package/js/src/src/abstract/iranexchange.d.ts +9 -0
  192. package/js/src/src/abstract/iranexchange.js +11 -0
  193. package/js/src/src/abstract/jibitex.d.ts +10 -0
  194. package/js/src/src/abstract/jibitex.js +11 -0
  195. package/js/src/src/abstract/kcex.d.ts +10 -0
  196. package/js/src/src/abstract/kcex.js +11 -0
  197. package/js/src/src/abstract/kifpoolme.d.ts +9 -0
  198. package/js/src/src/abstract/kifpoolme.js +11 -0
  199. package/js/src/src/abstract/kraken.d.ts +61 -0
  200. package/js/src/src/abstract/kraken.js +11 -0
  201. package/js/src/src/abstract/krakenfutures.d.ts +45 -0
  202. package/js/src/src/abstract/krakenfutures.js +11 -0
  203. package/js/src/src/abstract/kucoin.d.ts +227 -0
  204. package/js/src/src/abstract/kucoin.js +11 -0
  205. package/js/src/src/abstract/kucoinfutures.d.ts +254 -0
  206. package/js/src/src/abstract/kucoinfutures.js +11 -0
  207. package/js/src/src/abstract/latoken.d.ts +59 -0
  208. package/js/src/src/abstract/latoken.js +11 -0
  209. package/js/src/src/abstract/lbank.d.ts +65 -0
  210. package/js/src/src/abstract/lbank.js +11 -0
  211. package/js/src/src/abstract/luno.d.ts +41 -0
  212. package/js/src/src/abstract/luno.js +11 -0
  213. package/js/src/src/abstract/mazdax.d.ts +11 -0
  214. package/js/src/src/abstract/mazdax.js +11 -0
  215. package/js/src/src/abstract/mercado.d.ts +28 -0
  216. package/js/src/src/abstract/mercado.js +11 -0
  217. package/js/src/src/abstract/mexc.d.ts +183 -0
  218. package/js/src/src/abstract/mexc.js +11 -0
  219. package/js/src/src/abstract/modetrade.d.ts +122 -0
  220. package/js/src/src/abstract/modetrade.js +11 -0
  221. package/js/src/src/abstract/ndax.d.ts +100 -0
  222. package/js/src/src/abstract/ndax.js +11 -0
  223. package/js/src/src/abstract/nobitex.d.ts +10 -0
  224. package/js/src/src/abstract/nobitex.js +11 -0
  225. package/js/src/src/abstract/novadax.d.ts +32 -0
  226. package/js/src/src/abstract/novadax.js +11 -0
  227. package/js/src/src/abstract/oceanex.d.ts +30 -0
  228. package/js/src/src/abstract/oceanex.js +11 -0
  229. package/js/src/src/abstract/okcoin.d.ts +77 -0
  230. package/js/src/src/abstract/okcoin.js +11 -0
  231. package/js/src/src/abstract/okexchange.d.ts +11 -0
  232. package/js/src/src/abstract/okexchange.js +11 -0
  233. package/js/src/src/abstract/okx.d.ts +352 -0
  234. package/js/src/src/abstract/okx.js +11 -0
  235. package/js/src/src/abstract/ompfinex.d.ts +10 -0
  236. package/js/src/src/abstract/ompfinex.js +11 -0
  237. package/js/src/src/abstract/onetrading.d.ts +26 -0
  238. package/js/src/src/abstract/onetrading.js +11 -0
  239. package/js/src/src/abstract/oxfun.d.ts +37 -0
  240. package/js/src/src/abstract/oxfun.js +11 -0
  241. package/js/src/src/abstract/p2b.d.ts +25 -0
  242. package/js/src/src/abstract/p2b.js +11 -0
  243. package/js/src/src/abstract/paradex.d.ts +66 -0
  244. package/js/src/src/abstract/paradex.js +11 -0
  245. package/js/src/src/abstract/paymium.d.ts +31 -0
  246. package/js/src/src/abstract/paymium.js +11 -0
  247. package/js/src/src/abstract/phemex.d.ts +120 -0
  248. package/js/src/src/abstract/phemex.js +11 -0
  249. package/js/src/src/abstract/pingi.d.ts +9 -0
  250. package/js/src/src/abstract/pingi.js +11 -0
  251. package/js/src/src/abstract/poloniex.d.ts +108 -0
  252. package/js/src/src/abstract/poloniex.js +11 -0
  253. package/js/src/src/abstract/pooleno.d.ts +8 -0
  254. package/js/src/src/abstract/pooleno.js +11 -0
  255. package/js/src/src/abstract/probit.d.ts +26 -0
  256. package/js/src/src/abstract/probit.js +11 -0
  257. package/js/src/src/abstract/raastin.d.ts +11 -0
  258. package/js/src/src/abstract/raastin.js +11 -0
  259. package/js/src/src/abstract/ramzinex.d.ts +10 -0
  260. package/js/src/src/abstract/ramzinex.js +11 -0
  261. package/js/src/src/abstract/sarmayex.d.ts +8 -0
  262. package/js/src/src/abstract/sarmayex.js +11 -0
  263. package/js/src/src/abstract/sarrafex.d.ts +10 -0
  264. package/js/src/src/abstract/sarrafex.js +11 -0
  265. package/js/src/src/abstract/tabdeal.d.ts +10 -0
  266. package/js/src/src/abstract/tabdeal.js +11 -0
  267. package/js/src/src/abstract/tehran_exchange.d.ts +9 -0
  268. package/js/src/src/abstract/tehran_exchange.js +11 -0
  269. package/js/src/src/abstract/tetherland.d.ts +8 -0
  270. package/js/src/src/abstract/tetherland.js +11 -0
  271. package/js/src/src/abstract/timex.d.ts +65 -0
  272. package/js/src/src/abstract/timex.js +11 -0
  273. package/js/src/src/abstract/tokocrypto.d.ts +40 -0
  274. package/js/src/src/abstract/tokocrypto.js +11 -0
  275. package/js/src/src/abstract/toobit.d.ts +10 -0
  276. package/js/src/src/abstract/toobit.js +11 -0
  277. package/js/src/src/abstract/tradeogre.d.ts +21 -0
  278. package/js/src/src/abstract/tradeogre.js +11 -0
  279. package/js/src/src/abstract/twox.d.ts +8 -0
  280. package/js/src/src/abstract/twox.js +11 -0
  281. package/js/src/src/abstract/ubitex.d.ts +10 -0
  282. package/js/src/src/abstract/ubitex.js +11 -0
  283. package/js/src/src/abstract/upbit.d.ts +58 -0
  284. package/js/src/src/abstract/upbit.js +11 -0
  285. package/js/src/src/abstract/vertex.d.ts +22 -0
  286. package/js/src/src/abstract/vertex.js +11 -0
  287. package/js/src/src/abstract/wallex.d.ts +11 -0
  288. package/js/src/src/abstract/wallex.js +11 -0
  289. package/js/src/src/abstract/wavesexchange.d.ts +157 -0
  290. package/js/src/src/abstract/wavesexchange.js +11 -0
  291. package/js/src/src/abstract/whitebit.d.ts +117 -0
  292. package/js/src/src/abstract/whitebit.js +11 -0
  293. package/js/src/src/abstract/woo.d.ts +144 -0
  294. package/js/src/src/abstract/woo.js +11 -0
  295. package/js/src/src/abstract/woofipro.d.ts +122 -0
  296. package/js/src/src/abstract/woofipro.js +11 -0
  297. package/js/src/src/abstract/xt.d.ts +160 -0
  298. package/js/src/src/abstract/xt.js +11 -0
  299. package/js/src/src/abstract/yobit.d.ts +19 -0
  300. package/js/src/src/abstract/yobit.js +11 -0
  301. package/js/src/src/abstract/zaif.d.ts +41 -0
  302. package/js/src/src/abstract/zaif.js +11 -0
  303. package/js/src/src/abstract/zonda.d.ts +56 -0
  304. package/js/src/src/abstract/zonda.js +11 -0
  305. package/js/src/src/afratether.d.ts +21 -0
  306. package/js/src/src/afratether.js +356 -0
  307. package/js/src/src/alpaca.d.ts +332 -0
  308. package/js/src/src/alpaca.js +1908 -0
  309. package/js/src/src/apex.d.ts +333 -0
  310. package/js/src/src/apex.js +1942 -0
  311. package/js/src/src/arzinja.d.ts +21 -0
  312. package/js/src/src/arzinja.js +298 -0
  313. package/js/src/src/arzplus.d.ts +26 -0
  314. package/js/src/src/arzplus.js +581 -0
  315. package/js/src/src/ascendex.d.ts +424 -0
  316. package/js/src/src/ascendex.js +3699 -0
  317. package/js/src/src/asretether.d.ts +21 -0
  318. package/js/src/src/asretether.js +324 -0
  319. package/js/src/src/base/Exchange.d.ts +926 -0
  320. package/js/src/src/base/Exchange.js +7399 -0
  321. package/js/src/src/base/Precise.d.ts +42 -0
  322. package/js/src/src/base/Precise.js +275 -0
  323. package/js/src/src/base/errors.d.ts +168 -0
  324. package/js/src/src/base/errors.js +255 -0
  325. package/js/src/src/base/functions/crypto.d.ts +16 -0
  326. package/js/src/src/base/functions/crypto.js +131 -0
  327. package/js/src/src/base/functions/encode.d.ts +4 -0
  328. package/js/src/src/base/functions/encode.js +32 -0
  329. package/js/src/src/base/functions/generic.d.ts +29 -0
  330. package/js/src/src/base/functions/generic.js +203 -0
  331. package/js/src/src/base/functions/misc.d.ts +9 -0
  332. package/js/src/src/base/functions/misc.js +101 -0
  333. package/js/src/src/base/functions/number.d.ts +27 -0
  334. package/js/src/src/base/functions/number.js +313 -0
  335. package/js/src/src/base/functions/platform.d.ts +7 -0
  336. package/js/src/src/base/functions/platform.js +27 -0
  337. package/js/src/src/base/functions/rsa.d.ts +5 -0
  338. package/js/src/src/base/functions/rsa.js +49 -0
  339. package/js/src/src/base/functions/string.d.ts +7 -0
  340. package/js/src/src/base/functions/string.js +44 -0
  341. package/js/src/src/base/functions/throttle.d.ts +6 -0
  342. package/js/src/src/base/functions/throttle.js +67 -0
  343. package/js/src/src/base/functions/time.d.ts +21 -0
  344. package/js/src/src/base/functions/time.js +171 -0
  345. package/js/src/src/base/functions/totp.d.ts +3 -0
  346. package/js/src/src/base/functions/totp.js +25 -0
  347. package/js/src/src/base/functions/type.d.ts +37 -0
  348. package/js/src/src/base/functions/type.js +179 -0
  349. package/js/src/src/base/functions.d.ts +10 -0
  350. package/js/src/src/base/functions.js +18 -0
  351. package/js/src/src/base/types.d.ts +586 -0
  352. package/js/src/src/base/types.js +7 -0
  353. package/js/src/src/base/ws/Cache.d.ts +27 -0
  354. package/js/src/src/base/ws/Cache.js +260 -0
  355. package/js/src/src/base/ws/Client.d.ts +53 -0
  356. package/js/src/src/base/ws/Client.js +307 -0
  357. package/js/src/src/base/ws/Future.d.ts +8 -0
  358. package/js/src/src/base/ws/Future.js +35 -0
  359. package/js/src/src/base/ws/OrderBook.d.ts +25 -0
  360. package/js/src/src/base/ws/OrderBook.js +130 -0
  361. package/js/src/src/base/ws/OrderBookSide.d.ts +40 -0
  362. package/js/src/src/base/ws/OrderBookSide.js +286 -0
  363. package/js/src/src/base/ws/WsClient.d.ts +11 -0
  364. package/js/src/src/base/ws/WsClient.js +69 -0
  365. package/js/src/src/bequant.d.ts +4 -0
  366. package/js/src/src/bequant.js +35 -0
  367. package/js/src/src/bidarz.d.ts +16 -0
  368. package/js/src/src/bidarz.js +327 -0
  369. package/js/src/src/bigone.d.ts +296 -0
  370. package/js/src/src/bigone.js +2340 -0
  371. package/js/src/src/binance.d.ts +1667 -0
  372. package/js/src/src/binance.js +14400 -0
  373. package/js/src/src/binancecoinm.d.ts +6 -0
  374. package/js/src/src/binancecoinm.js +51 -0
  375. package/js/src/src/binanceus.d.ts +4 -0
  376. package/js/src/src/binanceus.js +225 -0
  377. package/js/src/src/binanceusdm.d.ts +6 -0
  378. package/js/src/src/binanceusdm.js +63 -0
  379. package/js/src/src/bingx.d.ts +778 -0
  380. package/js/src/src/bingx.js +6705 -0
  381. package/js/src/src/bit24.d.ts +24 -0
  382. package/js/src/src/bit24.js +520 -0
  383. package/js/src/src/bit2c.d.ts +146 -0
  384. package/js/src/src/bit2c.js +1029 -0
  385. package/js/src/src/bitbank.d.ts +181 -0
  386. package/js/src/src/bitbank.js +1146 -0
  387. package/js/src/src/bitbarg.d.ts +21 -0
  388. package/js/src/src/bitbarg.js +312 -0
  389. package/js/src/src/bitbns.d.ts +184 -0
  390. package/js/src/src/bitbns.js +1288 -0
  391. package/js/src/src/bitfinex.d.ts +516 -0
  392. package/js/src/src/bitfinex.js +3951 -0
  393. package/js/src/src/bitflyer.d.ts +229 -0
  394. package/js/src/src/bitflyer.js +1209 -0
  395. package/js/src/src/bitget.d.ts +1109 -0
  396. package/js/src/src/bitget.js +11033 -0
  397. package/js/src/src/bithumb.d.ts +165 -0
  398. package/js/src/src/bithumb.js +1257 -0
  399. package/js/src/src/bitimen.d.ts +23 -0
  400. package/js/src/src/bitimen.js +424 -0
  401. package/js/src/src/bitir.d.ts +23 -0
  402. package/js/src/src/bitir.js +521 -0
  403. package/js/src/src/bitmart.d.ts +736 -0
  404. package/js/src/src/bitmart.js +5639 -0
  405. package/js/src/src/bitmex.d.ts +395 -0
  406. package/js/src/src/bitmex.js +3088 -0
  407. package/js/src/src/bitopro.d.ts +295 -0
  408. package/js/src/src/bitopro.js +1892 -0
  409. package/js/src/src/bitpin.d.ts +23 -0
  410. package/js/src/src/bitpin.js +487 -0
  411. package/js/src/src/bitrue.d.ts +384 -0
  412. package/js/src/src/bitrue.js +3382 -0
  413. package/js/src/src/bitso.d.ts +270 -0
  414. package/js/src/src/bitso.js +1881 -0
  415. package/js/src/src/bitstamp.d.ts +355 -0
  416. package/js/src/src/bitstamp.js +2445 -0
  417. package/js/src/src/bitteam.d.ts +229 -0
  418. package/js/src/src/bitteam.js +2420 -0
  419. package/js/src/src/bittrade.d.ts +298 -0
  420. package/js/src/src/bittrade.js +2050 -0
  421. package/js/src/src/bitunix.d.ts +21 -0
  422. package/js/src/src/bitunix.js +326 -0
  423. package/js/src/src/bitvavo.d.ts +311 -0
  424. package/js/src/src/bitvavo.js +2204 -0
  425. package/js/src/src/blockchaincom.d.ts +256 -0
  426. package/js/src/src/blockchaincom.js +1259 -0
  427. package/js/src/src/blofin.d.ts +439 -0
  428. package/js/src/src/blofin.js +2576 -0
  429. package/js/src/src/btcalpha.d.ts +209 -0
  430. package/js/src/src/btcalpha.js +1056 -0
  431. package/js/src/src/btcbox.d.ts +144 -0
  432. package/js/src/src/btcbox.js +834 -0
  433. package/js/src/src/btcmarkets.d.ts +253 -0
  434. package/js/src/src/btcmarkets.js +1418 -0
  435. package/js/src/src/btcturk.d.ts +161 -0
  436. package/js/src/src/btcturk.js +1058 -0
  437. package/js/src/src/bybit.d.ts +1097 -0
  438. package/js/src/src/bybit.js +9382 -0
  439. package/js/src/src/bydfi.d.ts +23 -0
  440. package/js/src/src/bydfi.js +434 -0
  441. package/js/src/src/cafearz.d.ts +21 -0
  442. package/js/src/src/cafearz.js +346 -0
  443. package/js/src/src/cex.d.ts +286 -0
  444. package/js/src/src/cex.js +1799 -0
  445. package/js/src/src/coinbase.d.ts +623 -0
  446. package/js/src/src/coinbase.js +5220 -0
  447. package/js/src/src/coinbaseadvanced.d.ts +4 -0
  448. package/js/src/src/coinbaseadvanced.js +18 -0
  449. package/js/src/src/coinbaseexchange.d.ts +334 -0
  450. package/js/src/src/coinbaseexchange.js +2127 -0
  451. package/js/src/src/coinbaseinternational.d.ts +443 -0
  452. package/js/src/src/coinbaseinternational.js +2336 -0
  453. package/js/src/src/coincatch.d.ts +786 -0
  454. package/js/src/src/coincatch.js +5492 -0
  455. package/js/src/src/coincheck.d.ts +147 -0
  456. package/js/src/src/coincheck.js +962 -0
  457. package/js/src/src/coinex.d.ts +719 -0
  458. package/js/src/src/coinex.js +6166 -0
  459. package/js/src/src/coinmate.d.ts +202 -0
  460. package/js/src/src/coinmate.js +1215 -0
  461. package/js/src/src/coinmetro.d.ts +244 -0
  462. package/js/src/src/coinmetro.js +2024 -0
  463. package/js/src/src/coinone.d.ts +158 -0
  464. package/js/src/src/coinone.js +1278 -0
  465. package/js/src/src/coinsph.d.ts +310 -0
  466. package/js/src/src/coinsph.js +2203 -0
  467. package/js/src/src/coinspot.d.ts +108 -0
  468. package/js/src/src/coinspot.js +653 -0
  469. package/js/src/src/cryptocom.d.ts +463 -0
  470. package/js/src/src/cryptocom.js +3549 -0
  471. package/js/src/src/cryptomus.d.ts +158 -0
  472. package/js/src/src/cryptomus.js +1169 -0
  473. package/js/src/src/defx.d.ts +348 -0
  474. package/js/src/src/defx.js +2139 -0
  475. package/js/src/src/delta.d.ts +407 -0
  476. package/js/src/src/delta.js +3654 -0
  477. package/js/src/src/deribit.d.ts +516 -0
  478. package/js/src/src/deribit.js +3790 -0
  479. package/js/src/src/derive.d.ts +324 -0
  480. package/js/src/src/derive.js +2655 -0
  481. package/js/src/src/digifinex.d.ts +544 -0
  482. package/js/src/src/digifinex.js +4453 -0
  483. package/js/src/src/ellipx.d.ts +237 -0
  484. package/js/src/src/ellipx.js +2071 -0
  485. package/js/src/src/eterex.d.ts +21 -0
  486. package/js/src/src/eterex.js +299 -0
  487. package/js/src/src/excoino.d.ts +23 -0
  488. package/js/src/src/excoino.js +426 -0
  489. package/js/src/src/exir.d.ts +23 -0
  490. package/js/src/src/exir.js +403 -0
  491. package/js/src/src/exmo.d.ts +426 -0
  492. package/js/src/src/exmo.js +2825 -0
  493. package/js/src/src/exnovin.d.ts +22 -0
  494. package/js/src/src/exnovin.js +378 -0
  495. package/js/src/src/farhadexchange.d.ts +21 -0
  496. package/js/src/src/farhadexchange.js +280 -0
  497. package/js/src/src/fmfwio.d.ts +4 -0
  498. package/js/src/src/fmfwio.js +35 -0
  499. package/js/src/src/foxbit.d.ts +352 -0
  500. package/js/src/src/foxbit.js +2016 -0
  501. package/js/src/src/gate.d.ts +1071 -0
  502. package/js/src/src/gate.js +8282 -0
  503. package/js/src/src/gateio.d.ts +4 -0
  504. package/js/src/src/gateio.js +17 -0
  505. package/js/src/src/gemini.d.ts +257 -0
  506. package/js/src/src/gemini.js +2006 -0
  507. package/js/src/src/hamtapay.d.ts +21 -0
  508. package/js/src/src/hamtapay.js +303 -0
  509. package/js/src/src/hashkey.d.ts +628 -0
  510. package/js/src/src/hashkey.js +4363 -0
  511. package/js/src/src/hibachi.d.ts +346 -0
  512. package/js/src/src/hibachi.js +2137 -0
  513. package/js/src/src/hitbtc.d.ts +558 -0
  514. package/js/src/src/hitbtc.js +3847 -0
  515. package/js/src/src/hitobit.d.ts +23 -0
  516. package/js/src/src/hitobit.js +412 -0
  517. package/js/src/src/hollaex.d.ts +305 -0
  518. package/js/src/src/hollaex.js +2046 -0
  519. package/js/src/src/htx.d.ts +961 -0
  520. package/js/src/src/htx.js +9668 -0
  521. package/js/src/src/huobi.d.ts +4 -0
  522. package/js/src/src/huobi.js +17 -0
  523. package/js/src/src/hyperliquid.d.ts +651 -0
  524. package/js/src/src/hyperliquid.js +3937 -0
  525. package/js/src/src/independentreserve.d.ts +169 -0
  526. package/js/src/src/independentreserve.js +1115 -0
  527. package/js/src/src/indodax.d.ts +217 -0
  528. package/js/src/src/indodax.js +1454 -0
  529. package/js/src/src/iranexchange.d.ts +21 -0
  530. package/js/src/src/iranexchange.js +399 -0
  531. package/js/src/src/jibitex.d.ts +23 -0
  532. package/js/src/src/jibitex.js +416 -0
  533. package/js/src/src/kcex.d.ts +21 -0
  534. package/js/src/src/kcex.js +335 -0
  535. package/js/src/src/kifpoolme.d.ts +23 -0
  536. package/js/src/src/kifpoolme.js +410 -0
  537. package/js/src/src/kraken.d.ts +484 -0
  538. package/js/src/src/kraken.js +3518 -0
  539. package/js/src/src/krakenfutures.d.ts +362 -0
  540. package/js/src/src/krakenfutures.js +2885 -0
  541. package/js/src/src/kucoin.d.ts +759 -0
  542. package/js/src/src/kucoin.js +5153 -0
  543. package/js/src/src/kucoinfutures.d.ts +521 -0
  544. package/js/src/src/kucoinfutures.js +3381 -0
  545. package/js/src/src/latoken.d.ts +274 -0
  546. package/js/src/src/latoken.js +1824 -0
  547. package/js/src/src/lbank.d.ts +350 -0
  548. package/js/src/src/lbank.js +3146 -0
  549. package/js/src/src/luno.d.ts +252 -0
  550. package/js/src/src/luno.js +1479 -0
  551. package/js/src/src/mazdax.d.ts +23 -0
  552. package/js/src/src/mazdax.js +534 -0
  553. package/js/src/src/mercado.d.ts +160 -0
  554. package/js/src/src/mercado.js +1011 -0
  555. package/js/src/src/mexc.d.ts +768 -0
  556. package/js/src/src/mexc.js +6102 -0
  557. package/js/src/src/modetrade.d.ts +496 -0
  558. package/js/src/src/modetrade.js +2936 -0
  559. package/js/src/src/myokx.d.ts +4 -0
  560. package/js/src/src/myokx.js +54 -0
  561. package/js/src/src/ndax.d.ts +285 -0
  562. package/js/src/src/ndax.js +2598 -0
  563. package/js/src/src/nobitex.d.ts +23 -0
  564. package/js/src/src/nobitex.js +454 -0
  565. package/js/src/src/novadax.d.ts +279 -0
  566. package/js/src/src/novadax.js +1676 -0
  567. package/js/src/src/oceanex.d.ts +231 -0
  568. package/js/src/src/oceanex.js +1123 -0
  569. package/js/src/src/okcoin.d.ts +346 -0
  570. package/js/src/src/okcoin.js +3211 -0
  571. package/js/src/src/okexchange.d.ts +23 -0
  572. package/js/src/src/okexchange.js +373 -0
  573. package/js/src/src/okx.d.ts +1125 -0
  574. package/js/src/src/okx.js +9009 -0
  575. package/js/src/src/okxus.d.ts +4 -0
  576. package/js/src/src/okxus.js +54 -0
  577. package/js/src/src/ompfinex.d.ts +23 -0
  578. package/js/src/src/ompfinex.js +510 -0
  579. package/js/src/src/onetrading.d.ts +228 -0
  580. package/js/src/src/onetrading.js +1769 -0
  581. package/js/src/src/oxfun.d.ts +442 -0
  582. package/js/src/src/oxfun.js +2920 -0
  583. package/js/src/src/p2b.d.ts +189 -0
  584. package/js/src/src/p2b.js +1344 -0
  585. package/js/src/src/paradex.d.ts +389 -0
  586. package/js/src/src/paradex.js +2607 -0
  587. package/js/src/src/paymium.d.ts +133 -0
  588. package/js/src/src/paymium.js +644 -0
  589. package/js/src/src/phemex.d.ts +497 -0
  590. package/js/src/src/phemex.js +5333 -0
  591. package/js/src/src/pingi.d.ts +22 -0
  592. package/js/src/src/pingi.js +446 -0
  593. package/js/src/src/poloniex.d.ts +441 -0
  594. package/js/src/src/poloniex.js +3681 -0
  595. package/js/src/src/pooleno.d.ts +21 -0
  596. package/js/src/src/pooleno.js +347 -0
  597. package/js/src/src/pro/alpaca.d.ts +95 -0
  598. package/js/src/src/pro/alpaca.js +724 -0
  599. package/js/src/src/pro/apex.d.ts +160 -0
  600. package/js/src/src/pro/apex.js +1044 -0
  601. package/js/src/src/pro/ascendex.d.ts +99 -0
  602. package/js/src/src/pro/ascendex.js +1012 -0
  603. package/js/src/src/pro/bequant.d.ts +4 -0
  604. package/js/src/src/pro/bequant.js +42 -0
  605. package/js/src/src/pro/binance.d.ts +796 -0
  606. package/js/src/src/pro/binance.js +4373 -0
  607. package/js/src/src/pro/binancecoinm.d.ts +4 -0
  608. package/js/src/src/pro/binancecoinm.js +32 -0
  609. package/js/src/src/pro/binanceus.d.ts +4 -0
  610. package/js/src/src/pro/binanceus.js +52 -0
  611. package/js/src/src/pro/binanceusdm.d.ts +4 -0
  612. package/js/src/src/pro/binanceusdm.js +37 -0
  613. package/js/src/src/pro/bingx.d.ts +151 -0
  614. package/js/src/src/pro/bingx.js +1568 -0
  615. package/js/src/src/pro/bitfinex.d.ts +99 -0
  616. package/js/src/src/pro/bitfinex.js +1165 -0
  617. package/js/src/src/pro/bitget.d.ts +257 -0
  618. package/js/src/src/pro/bitget.js +2327 -0
  619. package/js/src/src/pro/bithumb.d.ts +59 -0
  620. package/js/src/src/pro/bithumb.js +395 -0
  621. package/js/src/src/pro/bitmart.d.ts +168 -0
  622. package/js/src/src/pro/bitmart.js +1686 -0
  623. package/js/src/src/pro/bitmex.d.ts +170 -0
  624. package/js/src/src/pro/bitmex.js +1760 -0
  625. package/js/src/src/pro/bitopro.d.ts +69 -0
  626. package/js/src/src/pro/bitopro.js +477 -0
  627. package/js/src/src/pro/bitrue.d.ts +40 -0
  628. package/js/src/src/pro/bitrue.js +461 -0
  629. package/js/src/src/pro/bitstamp.d.ts +53 -0
  630. package/js/src/src/pro/bitstamp.js +587 -0
  631. package/js/src/src/pro/bittrade.d.ts +66 -0
  632. package/js/src/src/pro/bittrade.js +606 -0
  633. package/js/src/src/pro/bitvavo.d.ts +321 -0
  634. package/js/src/src/pro/bitvavo.js +1451 -0
  635. package/js/src/src/pro/blockchaincom.d.ts +89 -0
  636. package/js/src/src/pro/blockchaincom.js +777 -0
  637. package/js/src/src/pro/blofin.d.ts +174 -0
  638. package/js/src/src/pro/blofin.js +743 -0
  639. package/js/src/src/pro/bybit.d.ts +397 -0
  640. package/js/src/src/pro/bybit.js +2519 -0
  641. package/js/src/src/pro/cex.d.ts +220 -0
  642. package/js/src/src/pro/cex.js +1535 -0
  643. package/js/src/src/pro/coinbase.d.ts +119 -0
  644. package/js/src/src/pro/coinbase.js +736 -0
  645. package/js/src/src/pro/coinbaseadvanced.d.ts +4 -0
  646. package/js/src/src/pro/coinbaseadvanced.js +18 -0
  647. package/js/src/src/pro/coinbaseexchange.d.ts +133 -0
  648. package/js/src/src/pro/coinbaseexchange.js +969 -0
  649. package/js/src/src/pro/coinbaseinternational.d.ts +143 -0
  650. package/js/src/src/pro/coinbaseinternational.js +804 -0
  651. package/js/src/src/pro/coincatch.d.ts +207 -0
  652. package/js/src/src/pro/coincatch.js +1562 -0
  653. package/js/src/src/pro/coincheck.d.ts +33 -0
  654. package/js/src/src/pro/coincheck.js +210 -0
  655. package/js/src/src/pro/coinex.d.ts +147 -0
  656. package/js/src/src/pro/coinex.js +1426 -0
  657. package/js/src/src/pro/coinone.d.ts +51 -0
  658. package/js/src/src/pro/coinone.js +413 -0
  659. package/js/src/src/pro/cryptocom.d.ts +300 -0
  660. package/js/src/src/pro/cryptocom.js +1414 -0
  661. package/js/src/src/pro/defx.d.ts +236 -0
  662. package/js/src/src/pro/defx.js +865 -0
  663. package/js/src/src/pro/deribit.d.ts +163 -0
  664. package/js/src/src/pro/deribit.js +1066 -0
  665. package/js/src/src/pro/derive.d.ts +100 -0
  666. package/js/src/src/pro/derive.js +753 -0
  667. package/js/src/src/pro/exmo.d.ts +97 -0
  668. package/js/src/src/pro/exmo.js +903 -0
  669. package/js/src/src/pro/gate.d.ts +360 -0
  670. package/js/src/src/pro/gate.js +2119 -0
  671. package/js/src/src/pro/gateio.d.ts +4 -0
  672. package/js/src/src/pro/gateio.js +17 -0
  673. package/js/src/src/pro/gemini.d.ts +106 -0
  674. package/js/src/src/pro/gemini.js +932 -0
  675. package/js/src/src/pro/hashkey.d.ts +121 -0
  676. package/js/src/src/pro/hashkey.js +843 -0
  677. package/js/src/src/pro/hitbtc.d.ts +235 -0
  678. package/js/src/src/pro/hitbtc.js +1400 -0
  679. package/js/src/src/pro/hollaex.d.ts +77 -0
  680. package/js/src/src/pro/hollaex.js +604 -0
  681. package/js/src/src/pro/htx.d.ts +141 -0
  682. package/js/src/src/pro/htx.js +2415 -0
  683. package/js/src/src/pro/huobi.d.ts +4 -0
  684. package/js/src/src/pro/huobi.js +17 -0
  685. package/js/src/src/pro/hyperliquid.d.ts +218 -0
  686. package/js/src/src/pro/hyperliquid.js +1126 -0
  687. package/js/src/src/pro/independentreserve.d.ts +36 -0
  688. package/js/src/src/pro/independentreserve.js +287 -0
  689. package/js/src/src/pro/kraken.d.ts +233 -0
  690. package/js/src/src/pro/kraken.js +1785 -0
  691. package/js/src/src/pro/krakenfutures.d.ts +178 -0
  692. package/js/src/src/pro/krakenfutures.js +1592 -0
  693. package/js/src/src/pro/kucoin.d.ts +221 -0
  694. package/js/src/src/pro/kucoin.js +1430 -0
  695. package/js/src/src/pro/kucoinfutures.d.ts +205 -0
  696. package/js/src/src/pro/kucoinfutures.js +1295 -0
  697. package/js/src/src/pro/lbank.d.ts +134 -0
  698. package/js/src/src/pro/lbank.js +950 -0
  699. package/js/src/src/pro/luno.d.ts +44 -0
  700. package/js/src/src/pro/luno.js +322 -0
  701. package/js/src/src/pro/mexc.d.ts +210 -0
  702. package/js/src/src/pro/mexc.js +2009 -0
  703. package/js/src/src/pro/modetrade.d.ts +155 -0
  704. package/js/src/src/pro/modetrade.js +1335 -0
  705. package/js/src/src/pro/myokx.d.ts +4 -0
  706. package/js/src/src/pro/myokx.js +39 -0
  707. package/js/src/src/pro/ndax.d.ts +60 -0
  708. package/js/src/src/pro/ndax.js +545 -0
  709. package/js/src/src/pro/okcoin.d.ts +91 -0
  710. package/js/src/src/pro/okcoin.js +763 -0
  711. package/js/src/src/pro/okx.d.ts +408 -0
  712. package/js/src/src/pro/okx.js +2479 -0
  713. package/js/src/src/pro/okxus.d.ts +4 -0
  714. package/js/src/src/pro/okxus.js +39 -0
  715. package/js/src/src/pro/onetrading.d.ts +107 -0
  716. package/js/src/src/pro/onetrading.js +1343 -0
  717. package/js/src/src/pro/oxfun.d.ts +234 -0
  718. package/js/src/src/pro/oxfun.js +1112 -0
  719. package/js/src/src/pro/p2b.d.ts +104 -0
  720. package/js/src/src/pro/p2b.js +506 -0
  721. package/js/src/src/pro/paradex.d.ts +54 -0
  722. package/js/src/src/pro/paradex.js +370 -0
  723. package/js/src/src/pro/phemex.d.ts +129 -0
  724. package/js/src/src/pro/phemex.js +1569 -0
  725. package/js/src/src/pro/poloniex.d.ts +214 -0
  726. package/js/src/src/pro/poloniex.js +1318 -0
  727. package/js/src/src/pro/probit.d.ts +91 -0
  728. package/js/src/src/pro/probit.js +593 -0
  729. package/js/src/src/pro/tradeogre.d.ts +49 -0
  730. package/js/src/src/pro/tradeogre.js +284 -0
  731. package/js/src/src/pro/upbit.d.ts +124 -0
  732. package/js/src/src/pro/upbit.js +689 -0
  733. package/js/src/src/pro/vertex.d.ts +104 -0
  734. package/js/src/src/pro/vertex.js +999 -0
  735. package/js/src/src/pro/whitebit.d.ts +123 -0
  736. package/js/src/src/pro/whitebit.js +971 -0
  737. package/js/src/src/pro/woo.d.ts +161 -0
  738. package/js/src/src/pro/woo.js +1351 -0
  739. package/js/src/src/pro/woofipro.d.ts +155 -0
  740. package/js/src/src/pro/woofipro.js +1335 -0
  741. package/js/src/src/pro/xt.d.ts +165 -0
  742. package/js/src/src/pro/xt.js +1230 -0
  743. package/js/src/src/probit.d.ts +283 -0
  744. package/js/src/src/probit.js +1935 -0
  745. package/js/src/src/protobuf/mexc/compiled.cjs +7186 -0
  746. package/js/src/src/protobuf/mexc/compiled.d.cts +8 -0
  747. package/js/src/src/raastin.d.ts +24 -0
  748. package/js/src/src/raastin.js +494 -0
  749. package/js/src/src/ramzinex.d.ts +23 -0
  750. package/js/src/src/ramzinex.js +510 -0
  751. package/js/src/src/sarmayex.d.ts +21 -0
  752. package/js/src/src/sarmayex.js +376 -0
  753. package/js/src/src/sarrafex.d.ts +23 -0
  754. package/js/src/src/sarrafex.js +501 -0
  755. package/js/src/src/static_dependencies/ethers/abi-coder.d.ts +50 -0
  756. package/js/src/src/static_dependencies/ethers/abi-coder.js +148 -0
  757. package/js/src/src/static_dependencies/ethers/address/address.d.ts +55 -0
  758. package/js/src/src/static_dependencies/ethers/address/address.js +162 -0
  759. package/js/src/src/static_dependencies/ethers/address/checks.d.ts +80 -0
  760. package/js/src/src/static_dependencies/ethers/address/checks.js +119 -0
  761. package/js/src/src/static_dependencies/ethers/address/contract-address.d.ts +47 -0
  762. package/js/src/src/static_dependencies/ethers/address/contract-address.js +73 -0
  763. package/js/src/src/static_dependencies/ethers/address/index.d.ts +48 -0
  764. package/js/src/src/static_dependencies/ethers/address/index.js +24 -0
  765. package/js/src/src/static_dependencies/ethers/bytes32.d.ts +14 -0
  766. package/js/src/src/static_dependencies/ethers/bytes32.js +45 -0
  767. package/js/src/src/static_dependencies/ethers/coders/abstract-coder.d.ts +120 -0
  768. package/js/src/src/static_dependencies/ethers/coders/abstract-coder.js +424 -0
  769. package/js/src/src/static_dependencies/ethers/coders/address.d.ts +12 -0
  770. package/js/src/src/static_dependencies/ethers/coders/address.js +34 -0
  771. package/js/src/src/static_dependencies/ethers/coders/anonymous.d.ts +14 -0
  772. package/js/src/src/static_dependencies/ethers/coders/anonymous.js +27 -0
  773. package/js/src/src/static_dependencies/ethers/coders/array.d.ts +24 -0
  774. package/js/src/src/static_dependencies/ethers/coders/array.js +162 -0
  775. package/js/src/src/static_dependencies/ethers/coders/boolean.d.ts +12 -0
  776. package/js/src/src/static_dependencies/ethers/coders/boolean.js +26 -0
  777. package/js/src/src/static_dependencies/ethers/coders/bytes.d.ts +18 -0
  778. package/js/src/src/static_dependencies/ethers/coders/bytes.js +39 -0
  779. package/js/src/src/static_dependencies/ethers/coders/fixed-bytes.d.ts +14 -0
  780. package/js/src/src/static_dependencies/ethers/coders/fixed-bytes.js +32 -0
  781. package/js/src/src/static_dependencies/ethers/coders/null.d.ts +11 -0
  782. package/js/src/src/static_dependencies/ethers/coders/null.js +29 -0
  783. package/js/src/src/static_dependencies/ethers/coders/number.d.ts +15 -0
  784. package/js/src/src/static_dependencies/ethers/coders/number.js +48 -0
  785. package/js/src/src/static_dependencies/ethers/coders/string.d.ts +12 -0
  786. package/js/src/src/static_dependencies/ethers/coders/string.js +26 -0
  787. package/js/src/src/static_dependencies/ethers/coders/tuple.d.ts +15 -0
  788. package/js/src/src/static_dependencies/ethers/coders/tuple.js +67 -0
  789. package/js/src/src/static_dependencies/ethers/fragments.d.ts +458 -0
  790. package/js/src/src/static_dependencies/ethers/fragments.js +1252 -0
  791. package/js/src/src/static_dependencies/ethers/hash/index.d.ts +10 -0
  792. package/js/src/src/static_dependencies/ethers/hash/index.js +15 -0
  793. package/js/src/src/static_dependencies/ethers/hash/solidity.d.ts +30 -0
  794. package/js/src/src/static_dependencies/ethers/hash/solidity.js +107 -0
  795. package/js/src/src/static_dependencies/ethers/hash/typed-data.d.ts +144 -0
  796. package/js/src/src/static_dependencies/ethers/hash/typed-data.js +490 -0
  797. package/js/src/src/static_dependencies/ethers/index.d.ts +19 -0
  798. package/js/src/src/static_dependencies/ethers/index.js +22 -0
  799. package/js/src/src/static_dependencies/ethers/interface.d.ts +380 -0
  800. package/js/src/src/static_dependencies/ethers/interface.js +990 -0
  801. package/js/src/src/static_dependencies/ethers/typed.d.ts +569 -0
  802. package/js/src/src/static_dependencies/ethers/typed.js +608 -0
  803. package/js/src/src/static_dependencies/ethers/utils/base58.d.ts +22 -0
  804. package/js/src/src/static_dependencies/ethers/utils/base58.js +68 -0
  805. package/js/src/src/static_dependencies/ethers/utils/base64.d.ts +39 -0
  806. package/js/src/src/static_dependencies/ethers/utils/base64.js +58 -0
  807. package/js/src/src/static_dependencies/ethers/utils/data.d.ts +92 -0
  808. package/js/src/src/static_dependencies/ethers/utils/data.js +175 -0
  809. package/js/src/src/static_dependencies/ethers/utils/errors.d.ts +509 -0
  810. package/js/src/src/static_dependencies/ethers/utils/errors.js +227 -0
  811. package/js/src/src/static_dependencies/ethers/utils/events.d.ts +76 -0
  812. package/js/src/src/static_dependencies/ethers/utils/events.js +52 -0
  813. package/js/src/src/static_dependencies/ethers/utils/fixednumber.d.ts +251 -0
  814. package/js/src/src/static_dependencies/ethers/utils/fixednumber.js +529 -0
  815. package/js/src/src/static_dependencies/ethers/utils/index.d.ts +30 -0
  816. package/js/src/src/static_dependencies/ethers/utils/index.js +38 -0
  817. package/js/src/src/static_dependencies/ethers/utils/maths.d.ts +65 -0
  818. package/js/src/src/static_dependencies/ethers/utils/maths.js +220 -0
  819. package/js/src/src/static_dependencies/ethers/utils/properties.d.ts +22 -0
  820. package/js/src/src/static_dependencies/ethers/utils/properties.js +59 -0
  821. package/js/src/src/static_dependencies/ethers/utils/rlp-decode.d.ts +5 -0
  822. package/js/src/src/static_dependencies/ethers/utils/rlp-decode.js +84 -0
  823. package/js/src/src/static_dependencies/ethers/utils/rlp-encode.d.ts +5 -0
  824. package/js/src/src/static_dependencies/ethers/utils/rlp-encode.js +54 -0
  825. package/js/src/src/static_dependencies/ethers/utils/rlp.d.ts +16 -0
  826. package/js/src/src/static_dependencies/ethers/utils/rlp.js +14 -0
  827. package/js/src/src/static_dependencies/ethers/utils/units.d.ts +23 -0
  828. package/js/src/src/static_dependencies/ethers/utils/units.js +88 -0
  829. package/js/src/src/static_dependencies/ethers/utils/utf8.d.ts +95 -0
  830. package/js/src/src/static_dependencies/ethers/utils/utf8.js +225 -0
  831. package/js/src/src/static_dependencies/ethers/utils/uuid.d.ts +7 -0
  832. package/js/src/src/static_dependencies/ethers/utils/uuid.js +35 -0
  833. package/js/src/src/static_dependencies/fflake/browser.d.ts +222 -0
  834. package/js/src/src/static_dependencies/fflake/browser.js +2578 -0
  835. package/js/src/src/static_dependencies/jsencrypt/JSEncrypt.d.ts +116 -0
  836. package/js/src/src/static_dependencies/jsencrypt/JSEncrypt.js +194 -0
  837. package/js/src/src/static_dependencies/jsencrypt/JSEncryptRSAKey.d.ts +142 -0
  838. package/js/src/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +307 -0
  839. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/asn1.d.ts +51 -0
  840. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +565 -0
  841. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/base64.d.ts +5 -0
  842. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +94 -0
  843. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/hex.d.ts +3 -0
  844. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +70 -0
  845. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/int10.d.ts +9 -0
  846. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +91 -0
  847. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/base64.d.ts +3 -0
  848. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +25 -0
  849. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +101 -0
  850. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +1757 -0
  851. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/prng4.d.ts +10 -0
  852. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +50 -0
  853. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rng.d.ts +3 -0
  854. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +80 -0
  855. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rsa.d.ts +23 -0
  856. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +377 -0
  857. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/util.d.ts +7 -0
  858. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/util.js +64 -0
  859. package/js/src/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.d.ts +24 -0
  860. package/js/src/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +1627 -0
  861. package/js/src/src/static_dependencies/noble-curves/_shortw_utils.d.ts +60 -0
  862. package/js/src/src/static_dependencies/noble-curves/_shortw_utils.js +22 -0
  863. package/js/src/src/static_dependencies/noble-curves/abstract/curve.d.ts +67 -0
  864. package/js/src/src/static_dependencies/noble-curves/abstract/curve.js +157 -0
  865. package/js/src/src/static_dependencies/noble-curves/abstract/edwards.d.ts +79 -0
  866. package/js/src/src/static_dependencies/noble-curves/abstract/edwards.js +432 -0
  867. package/js/src/src/static_dependencies/noble-curves/abstract/hash-to-curve.d.ts +56 -0
  868. package/js/src/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +171 -0
  869. package/js/src/src/static_dependencies/noble-curves/abstract/modular.d.ts +68 -0
  870. package/js/src/src/static_dependencies/noble-curves/abstract/modular.js +351 -0
  871. package/js/src/src/static_dependencies/noble-curves/abstract/montgomery.d.ts +25 -0
  872. package/js/src/src/static_dependencies/noble-curves/abstract/montgomery.js +162 -0
  873. package/js/src/src/static_dependencies/noble-curves/abstract/poseidon.d.ts +29 -0
  874. package/js/src/src/static_dependencies/noble-curves/abstract/poseidon.js +115 -0
  875. package/js/src/src/static_dependencies/noble-curves/abstract/utils.d.ts +53 -0
  876. package/js/src/src/static_dependencies/noble-curves/abstract/utils.js +227 -0
  877. package/js/src/src/static_dependencies/noble-curves/abstract/weierstrass.d.ts +204 -0
  878. package/js/src/src/static_dependencies/noble-curves/abstract/weierstrass.js +1016 -0
  879. package/js/src/src/static_dependencies/noble-curves/ed25519.d.ts +53 -0
  880. package/js/src/src/static_dependencies/noble-curves/ed25519.js +402 -0
  881. package/js/src/src/static_dependencies/noble-curves/p256.d.ts +103 -0
  882. package/js/src/src/static_dependencies/noble-curves/p256.js +47 -0
  883. package/js/src/src/static_dependencies/noble-curves/secp256k1.d.ts +91 -0
  884. package/js/src/src/static_dependencies/noble-curves/secp256k1.js +257 -0
  885. package/js/src/src/static_dependencies/noble-hashes/_assert.d.ts +21 -0
  886. package/js/src/src/static_dependencies/noble-hashes/_assert.js +48 -0
  887. package/js/src/src/static_dependencies/noble-hashes/_sha2.d.ts +23 -0
  888. package/js/src/src/static_dependencies/noble-hashes/_sha2.js +119 -0
  889. package/js/src/src/static_dependencies/noble-hashes/_u64.d.ts +35 -0
  890. package/js/src/src/static_dependencies/noble-hashes/_u64.js +66 -0
  891. package/js/src/src/static_dependencies/noble-hashes/crypto.d.ts +1 -0
  892. package/js/src/src/static_dependencies/noble-hashes/crypto.js +7 -0
  893. package/js/src/src/static_dependencies/noble-hashes/hmac.d.ts +26 -0
  894. package/js/src/src/static_dependencies/noble-hashes/hmac.js +82 -0
  895. package/js/src/src/static_dependencies/noble-hashes/md5.d.ts +18 -0
  896. package/js/src/src/static_dependencies/noble-hashes/md5.js +242 -0
  897. package/js/src/src/static_dependencies/noble-hashes/sha1.d.ts +21 -0
  898. package/js/src/src/static_dependencies/noble-hashes/sha1.js +90 -0
  899. package/js/src/src/static_dependencies/noble-hashes/sha256.d.ts +34 -0
  900. package/js/src/src/static_dependencies/noble-hashes/sha256.js +129 -0
  901. package/js/src/src/static_dependencies/noble-hashes/sha3.d.ts +97 -0
  902. package/js/src/src/static_dependencies/noble-hashes/sha3.js +211 -0
  903. package/js/src/src/static_dependencies/noble-hashes/sha512.d.ts +66 -0
  904. package/js/src/src/static_dependencies/noble-hashes/sha512.js +236 -0
  905. package/js/src/src/static_dependencies/noble-hashes/utils.d.ts +77 -0
  906. package/js/src/src/static_dependencies/noble-hashes/utils.js +147 -0
  907. package/js/src/src/static_dependencies/proxies/agent-base/helpers.d.ts +14 -0
  908. package/js/src/src/static_dependencies/proxies/agent-base/helpers.js +42 -0
  909. package/js/src/src/static_dependencies/proxies/agent-base/index.d.ts +33 -0
  910. package/js/src/src/static_dependencies/proxies/agent-base/index.js +82 -0
  911. package/js/src/src/static_dependencies/proxies/http-proxy-agent/index.d.ts +40 -0
  912. package/js/src/src/static_dependencies/proxies/http-proxy-agent/index.js +119 -0
  913. package/js/src/src/static_dependencies/proxies/https-proxy-agent/index.d.ts +45 -0
  914. package/js/src/src/static_dependencies/proxies/https-proxy-agent/index.js +150 -0
  915. package/js/src/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.d.ts +15 -0
  916. package/js/src/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +95 -0
  917. package/js/src/src/static_dependencies/qs/formats.cjs +22 -0
  918. package/js/src/src/static_dependencies/qs/formats.d.cts +14 -0
  919. package/js/src/src/static_dependencies/qs/index.cjs +15 -0
  920. package/js/src/src/static_dependencies/qs/index.d.cts +10 -0
  921. package/js/src/src/static_dependencies/qs/parse.cjs +208 -0
  922. package/js/src/src/static_dependencies/qs/parse.d.cts +8 -0
  923. package/js/src/src/static_dependencies/qs/stringify.cjs +192 -0
  924. package/js/src/src/static_dependencies/qs/stringify.d.cts +8 -0
  925. package/js/src/src/static_dependencies/qs/utils.cjs +202 -0
  926. package/js/src/src/static_dependencies/qs/utils.d.cts +15 -0
  927. package/js/src/src/static_dependencies/scure-base/index.d.ts +92 -0
  928. package/js/src/src/static_dependencies/scure-base/index.js +420 -0
  929. package/js/src/src/static_dependencies/scure-starknet/index.d.ts +79 -0
  930. package/js/src/src/static_dependencies/scure-starknet/index.js +323 -0
  931. package/js/src/src/static_dependencies/starknet/constants.d.ts +61 -0
  932. package/js/src/src/static_dependencies/starknet/constants.js +67 -0
  933. package/js/src/src/static_dependencies/starknet/index.d.ts +3 -0
  934. package/js/src/src/static_dependencies/starknet/index.js +9 -0
  935. package/js/src/src/static_dependencies/starknet/types/cairoEnum.d.ts +2 -0
  936. package/js/src/src/static_dependencies/starknet/types/cairoEnum.js +7 -0
  937. package/js/src/src/static_dependencies/starknet/types/calldata.d.ts +19 -0
  938. package/js/src/src/static_dependencies/starknet/types/calldata.js +28 -0
  939. package/js/src/src/static_dependencies/starknet/types/index.d.ts +13 -0
  940. package/js/src/src/static_dependencies/starknet/types/index.js +16 -0
  941. package/js/src/src/static_dependencies/starknet/types/lib/contract/abi.d.ts +71 -0
  942. package/js/src/src/static_dependencies/starknet/types/lib/contract/abi.js +13 -0
  943. package/js/src/src/static_dependencies/starknet/types/lib/contract/index.d.ts +24 -0
  944. package/js/src/src/static_dependencies/starknet/types/lib/contract/index.js +16 -0
  945. package/js/src/src/static_dependencies/starknet/types/lib/contract/legacy.d.ts +33 -0
  946. package/js/src/src/static_dependencies/starknet/types/lib/contract/legacy.js +7 -0
  947. package/js/src/src/static_dependencies/starknet/types/lib/contract/sierra.d.ts +52 -0
  948. package/js/src/src/static_dependencies/starknet/types/lib/contract/sierra.js +7 -0
  949. package/js/src/src/static_dependencies/starknet/types/lib/index.d.ts +248 -0
  950. package/js/src/src/static_dependencies/starknet/types/lib/index.js +52 -0
  951. package/js/src/src/static_dependencies/starknet/types/typedData.d.ts +44 -0
  952. package/js/src/src/static_dependencies/starknet/types/typedData.js +19 -0
  953. package/js/src/src/static_dependencies/starknet/utils/assert.d.ts +7 -0
  954. package/js/src/src/static_dependencies/starknet/utils/assert.js +17 -0
  955. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/felt.d.ts +6 -0
  956. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +43 -0
  957. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.d.ts +72 -0
  958. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +117 -0
  959. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.d.ts +76 -0
  960. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +136 -0
  961. package/js/src/src/static_dependencies/starknet/utils/calldata/byteArray.d.ts +32 -0
  962. package/js/src/src/static_dependencies/starknet/utils/calldata/byteArray.js +59 -0
  963. package/js/src/src/static_dependencies/starknet/utils/calldata/cairo.d.ts +183 -0
  964. package/js/src/src/static_dependencies/starknet/utils/calldata/cairo.js +229 -0
  965. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.d.ts +38 -0
  966. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +57 -0
  967. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.d.ts +35 -0
  968. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +64 -0
  969. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.d.ts +34 -0
  970. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +63 -0
  971. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/index.d.ts +3 -0
  972. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/index.js +9 -0
  973. package/js/src/src/static_dependencies/starknet/utils/calldata/formatter.d.ts +9 -0
  974. package/js/src/src/static_dependencies/starknet/utils/calldata/formatter.js +67 -0
  975. package/js/src/src/static_dependencies/starknet/utils/calldata/index.d.ts +89 -0
  976. package/js/src/src/static_dependencies/starknet/utils/calldata/index.js +280 -0
  977. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/index.d.ts +5 -0
  978. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/index.js +30 -0
  979. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/interface.d.ts +20 -0
  980. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/interface.js +8 -0
  981. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.d.ts +24 -0
  982. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +36 -0
  983. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.d.ts +23 -0
  984. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +40 -0
  985. package/js/src/src/static_dependencies/starknet/utils/calldata/propertyOrder.d.ts +2 -0
  986. package/js/src/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +155 -0
  987. package/js/src/src/static_dependencies/starknet/utils/calldata/requestParser.d.ts +11 -0
  988. package/js/src/src/static_dependencies/starknet/utils/calldata/requestParser.js +248 -0
  989. package/js/src/src/static_dependencies/starknet/utils/calldata/responseParser.d.ts +11 -0
  990. package/js/src/src/static_dependencies/starknet/utils/calldata/responseParser.js +214 -0
  991. package/js/src/src/static_dependencies/starknet/utils/calldata/tuple.d.ts +6 -0
  992. package/js/src/src/static_dependencies/starknet/utils/calldata/tuple.js +113 -0
  993. package/js/src/src/static_dependencies/starknet/utils/calldata/validate.d.ts +6 -0
  994. package/js/src/src/static_dependencies/starknet/utils/calldata/validate.js +208 -0
  995. package/js/src/src/static_dependencies/starknet/utils/encode.d.ts +207 -0
  996. package/js/src/src/static_dependencies/starknet/utils/encode.js +282 -0
  997. package/js/src/src/static_dependencies/starknet/utils/hash/classHash.d.ts +57 -0
  998. package/js/src/src/static_dependencies/starknet/utils/hash/classHash.js +223 -0
  999. package/js/src/src/static_dependencies/starknet/utils/hash/index.d.ts +6 -0
  1000. package/js/src/src/static_dependencies/starknet/utils/hash/index.js +13 -0
  1001. package/js/src/src/static_dependencies/starknet/utils/merkle.d.ts +35 -0
  1002. package/js/src/src/static_dependencies/starknet/utils/merkle.js +84 -0
  1003. package/js/src/src/static_dependencies/starknet/utils/num.d.ts +182 -0
  1004. package/js/src/src/static_dependencies/starknet/utils/num.js +244 -0
  1005. package/js/src/src/static_dependencies/starknet/utils/selector.d.ts +48 -0
  1006. package/js/src/src/static_dependencies/starknet/utils/selector.js +85 -0
  1007. package/js/src/src/static_dependencies/starknet/utils/shortString.d.ts +57 -0
  1008. package/js/src/src/static_dependencies/starknet/utils/shortString.js +96 -0
  1009. package/js/src/src/static_dependencies/starknet/utils/typedData.d.ts +54 -0
  1010. package/js/src/src/static_dependencies/starknet/utils/typedData.js +321 -0
  1011. package/js/src/src/static_dependencies/watchable/src/types.d.ts +28 -0
  1012. package/js/src/src/static_dependencies/watchable/src/types.js +8 -0
  1013. package/js/src/src/static_dependencies/watchable/src/unpromise.d.ts +120 -0
  1014. package/js/src/src/static_dependencies/watchable/src/unpromise.js +297 -0
  1015. package/js/src/src/static_dependencies/zklink/zklink-sdk-web.d.ts +1279 -0
  1016. package/js/src/src/static_dependencies/zklink/zklink-sdk-web.js +4282 -0
  1017. package/js/src/src/tabdeal.d.ts +23 -0
  1018. package/js/src/src/tabdeal.js +387 -0
  1019. package/js/src/src/tehran_exchange.d.ts +21 -0
  1020. package/js/src/src/tehran_exchange.js +333 -0
  1021. package/js/src/src/tetherland.d.ts +21 -0
  1022. package/js/src/src/tetherland.js +367 -0
  1023. package/js/src/src/timex.d.ts +247 -0
  1024. package/js/src/src/timex.js +1792 -0
  1025. package/js/src/src/tokocrypto.d.ts +261 -0
  1026. package/js/src/src/tokocrypto.js +2641 -0
  1027. package/js/src/src/toobit.d.ts +22 -0
  1028. package/js/src/src/toobit.js +445 -0
  1029. package/js/src/src/tradeogre.d.ts +149 -0
  1030. package/js/src/src/tradeogre.js +878 -0
  1031. package/js/src/src/twox.d.ts +21 -0
  1032. package/js/src/src/twox.js +371 -0
  1033. package/js/src/src/ubitex.d.ts +23 -0
  1034. package/js/src/src/ubitex.js +433 -0
  1035. package/js/src/src/upbit.d.ts +377 -0
  1036. package/js/src/src/upbit.js +2340 -0
  1037. package/js/src/src/vertex.d.ts +346 -0
  1038. package/js/src/src/vertex.js +3146 -0
  1039. package/js/src/src/wallex.d.ts +23 -0
  1040. package/js/src/src/wallex.js +467 -0
  1041. package/js/src/src/wavesexchange.d.ts +244 -0
  1042. package/js/src/src/wavesexchange.js +2747 -0
  1043. package/js/src/src/whitebit.d.ts +571 -0
  1044. package/js/src/src/whitebit.js +3437 -0
  1045. package/js/src/src/woo.d.ts +727 -0
  1046. package/js/src/src/woo.js +4183 -0
  1047. package/js/src/src/woofipro.d.ts +497 -0
  1048. package/js/src/src/woofipro.js +2941 -0
  1049. package/js/src/src/xt.d.ts +568 -0
  1050. package/js/src/src/xt.js +5184 -0
  1051. package/js/src/src/yobit.d.ts +197 -0
  1052. package/js/src/src/yobit.js +1453 -0
  1053. package/js/src/src/zaif.d.ts +136 -0
  1054. package/js/src/src/zaif.js +821 -0
  1055. package/js/src/src/zonda.d.ts +214 -0
  1056. package/js/src/src/zonda.js +1984 -0
  1057. package/js/test.d.ts +1 -1
  1058. package/js/test.js +33 -33
  1059. package/package.json +1 -1
@@ -0,0 +1,1881 @@
1
+ // ----------------------------------------------------------------------------
2
+
3
+ // PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
4
+ // https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
5
+ // EDIT THE CORRESPONDENT .ts FILE INSTEAD
6
+
7
+ // ---------------------------------------------------------------------------
8
+ import Exchange from './abstract/bitso.js';
9
+ import { ExchangeError, InvalidNonce, AuthenticationError, OrderNotFound, BadRequest, ArgumentsRequired, NotSupported } from './base/errors.js';
10
+ import { Precise } from './base/Precise.js';
11
+ import { TICK_SIZE } from './base/functions/number.js';
12
+ import { sha256 } from './static_dependencies/noble-hashes/sha256.js';
13
+ // ---------------------------------------------------------------------------
14
+ /**
15
+ * @class bitso
16
+ * @augments Exchange
17
+ */
18
+ export default class bitso extends Exchange {
19
+ describe() {
20
+ return this.deepExtend(super.describe(), {
21
+ 'id': 'bitso',
22
+ 'name': 'Bitso',
23
+ 'countries': ['MX'],
24
+ 'rateLimit': 2000,
25
+ 'version': 'v3',
26
+ 'has': {
27
+ 'CORS': undefined,
28
+ 'spot': true,
29
+ 'margin': false,
30
+ 'swap': false,
31
+ 'future': false,
32
+ 'option': false,
33
+ 'addMargin': false,
34
+ 'borrowCrossMargin': false,
35
+ 'borrowIsolatedMargin': false,
36
+ 'borrowMargin': false,
37
+ 'cancelAllOrders': true,
38
+ 'cancelOrder': true,
39
+ 'cancelOrders': true,
40
+ 'closeAllPositions': false,
41
+ 'closePosition': false,
42
+ 'createDepositAddress': false,
43
+ 'createOrder': true,
44
+ 'createOrderWithTakeProfitAndStopLoss': false,
45
+ 'createOrderWithTakeProfitAndStopLossWs': false,
46
+ 'createReduceOnlyOrder': false,
47
+ 'fetchAccounts': false,
48
+ 'fetchBalance': true,
49
+ 'fetchBorrowInterest': false,
50
+ 'fetchBorrowRate': false,
51
+ 'fetchBorrowRateHistories': false,
52
+ 'fetchBorrowRateHistory': false,
53
+ 'fetchBorrowRates': false,
54
+ 'fetchBorrowRatesPerSymbol': false,
55
+ 'fetchCrossBorrowRate': false,
56
+ 'fetchCrossBorrowRates': false,
57
+ 'fetchDeposit': true,
58
+ 'fetchDepositAddress': true,
59
+ 'fetchDepositAddresses': false,
60
+ 'fetchDepositAddressesByNetwork': false,
61
+ 'fetchDeposits': true,
62
+ 'fetchDepositsWithdrawals': false,
63
+ 'fetchDepositWithdrawFee': 'emulated',
64
+ 'fetchDepositWithdrawFees': true,
65
+ 'fetchFundingHistory': false,
66
+ 'fetchFundingInterval': false,
67
+ 'fetchFundingIntervals': false,
68
+ 'fetchFundingRate': false,
69
+ 'fetchFundingRateHistory': false,
70
+ 'fetchFundingRates': false,
71
+ 'fetchGreeks': false,
72
+ 'fetchIndexOHLCV': false,
73
+ 'fetchIsolatedBorrowRate': false,
74
+ 'fetchIsolatedBorrowRates': false,
75
+ 'fetchIsolatedPositions': false,
76
+ 'fetchLedger': true,
77
+ 'fetchLeverage': false,
78
+ 'fetchLeverages': false,
79
+ 'fetchLeverageTiers': false,
80
+ 'fetchLiquidations': false,
81
+ 'fetchLongShortRatio': false,
82
+ 'fetchLongShortRatioHistory': false,
83
+ 'fetchMarginAdjustmentHistory': false,
84
+ 'fetchMarginMode': false,
85
+ 'fetchMarginModes': false,
86
+ 'fetchMarketLeverageTiers': false,
87
+ 'fetchMarkets': true,
88
+ 'fetchMarkOHLCV': false,
89
+ 'fetchMarkPrices': false,
90
+ 'fetchMyLiquidations': false,
91
+ 'fetchMySettlementHistory': false,
92
+ 'fetchMyTrades': true,
93
+ 'fetchOHLCV': true,
94
+ 'fetchOpenInterest': false,
95
+ 'fetchOpenInterestHistory': false,
96
+ 'fetchOpenInterests': false,
97
+ 'fetchOpenOrders': true,
98
+ 'fetchOption': false,
99
+ 'fetchOptionChain': false,
100
+ 'fetchOrder': true,
101
+ 'fetchOrderBook': true,
102
+ 'fetchOrderTrades': true,
103
+ 'fetchPosition': false,
104
+ 'fetchPositionHistory': false,
105
+ 'fetchPositionMode': false,
106
+ 'fetchPositions': false,
107
+ 'fetchPositionsForSymbol': false,
108
+ 'fetchPositionsHistory': false,
109
+ 'fetchPositionsRisk': false,
110
+ 'fetchPremiumIndexOHLCV': false,
111
+ 'fetchSettlementHistory': false,
112
+ 'fetchTicker': true,
113
+ 'fetchTickers': false,
114
+ 'fetchTime': false,
115
+ 'fetchTrades': true,
116
+ 'fetchTradingFee': false,
117
+ 'fetchTradingFees': true,
118
+ 'fetchTransactionFee': false,
119
+ 'fetchTransactionFees': true,
120
+ 'fetchTransactions': false,
121
+ 'fetchTransfer': false,
122
+ 'fetchTransfers': false,
123
+ 'fetchVolatilityHistory': false,
124
+ 'reduceMargin': false,
125
+ 'repayCrossMargin': false,
126
+ 'repayIsolatedMargin': false,
127
+ 'setLeverage': false,
128
+ 'setMargin': false,
129
+ 'setMarginMode': false,
130
+ 'setPositionMode': false,
131
+ 'transfer': false,
132
+ 'withdraw': true,
133
+ },
134
+ 'urls': {
135
+ 'logo': 'https://github.com/user-attachments/assets/178c8e56-9054-4107-b192-5e5053d4f975',
136
+ 'api': {
137
+ 'rest': 'https://bitso.com/api',
138
+ },
139
+ 'test': {
140
+ 'rest': 'https://stage.bitso.com/api',
141
+ },
142
+ 'www': 'https://bitso.com',
143
+ 'doc': 'https://bitso.com/api_info',
144
+ 'fees': 'https://bitso.com/fees',
145
+ 'referral': 'https://bitso.com/?ref=itej',
146
+ },
147
+ 'precisionMode': TICK_SIZE,
148
+ 'options': {
149
+ 'precision': {
150
+ 'XRP': 0.000001,
151
+ 'MXN': 0.01,
152
+ 'TUSD': 0.01,
153
+ },
154
+ 'defaultPrecision': 0.00000001,
155
+ 'networks': {
156
+ 'TRC20': 'trx',
157
+ 'ERC20': 'erc20',
158
+ 'BEP20': 'bsc',
159
+ 'BEP2': 'bep2',
160
+ },
161
+ },
162
+ 'timeframes': {
163
+ '1m': '60',
164
+ '5m': '300',
165
+ '15m': '900',
166
+ '30m': '1800',
167
+ '1h': '3600',
168
+ '4h': '14400',
169
+ '12h': '43200',
170
+ '1d': '86400',
171
+ '1w': '604800',
172
+ },
173
+ 'api': {
174
+ 'public': {
175
+ 'get': [
176
+ 'available_books',
177
+ 'ticker',
178
+ 'order_book',
179
+ 'trades',
180
+ 'ohlc',
181
+ ],
182
+ },
183
+ 'private': {
184
+ 'get': [
185
+ 'account_status',
186
+ 'balance',
187
+ 'fees',
188
+ 'fundings',
189
+ 'fundings/{fid}',
190
+ 'funding_destination',
191
+ 'kyc_documents',
192
+ 'ledger',
193
+ 'ledger/trades',
194
+ 'ledger/fees',
195
+ 'ledger/fundings',
196
+ 'ledger/withdrawals',
197
+ 'mx_bank_codes',
198
+ 'open_orders',
199
+ 'order_trades/{oid}',
200
+ 'orders/{oid}',
201
+ 'user_trades',
202
+ 'user_trades/{tid}',
203
+ 'withdrawals/',
204
+ 'withdrawals/{wid}',
205
+ ],
206
+ 'post': [
207
+ 'bitcoin_withdrawal',
208
+ 'debit_card_withdrawal',
209
+ 'ether_withdrawal',
210
+ 'orders',
211
+ 'phone_number',
212
+ 'phone_verification',
213
+ 'phone_withdrawal',
214
+ 'spei_withdrawal',
215
+ 'ripple_withdrawal',
216
+ 'bcash_withdrawal',
217
+ 'litecoin_withdrawal',
218
+ ],
219
+ 'delete': [
220
+ 'orders',
221
+ 'orders/{oid}',
222
+ 'orders/all',
223
+ ],
224
+ },
225
+ },
226
+ 'features': {
227
+ 'spot': {
228
+ 'sandbox': false,
229
+ 'createOrder': {
230
+ 'marginMode': false,
231
+ 'triggerPrice': true,
232
+ 'triggerPriceType': undefined,
233
+ 'triggerDirection': undefined,
234
+ 'stopLossPrice': false,
235
+ 'takeProfitPrice': false,
236
+ 'attachedStopLossTakeProfit': undefined,
237
+ // todo: implementation for TIF
238
+ 'timeInForce': {
239
+ 'IOC': true,
240
+ 'FOK': true,
241
+ 'PO': true,
242
+ 'GTD': false,
243
+ },
244
+ 'hedged': false,
245
+ 'trailing': false,
246
+ 'leverage': false,
247
+ 'marketBuyRequiresPrice': false,
248
+ 'marketBuyByCost': false,
249
+ 'selfTradePrevention': false,
250
+ 'iceberg': false,
251
+ },
252
+ 'createOrders': undefined,
253
+ 'fetchMyTrades': {
254
+ 'marginMode': false,
255
+ 'limit': 100,
256
+ 'daysBack': undefined,
257
+ 'untilDays': undefined,
258
+ 'symbolRequired': true,
259
+ },
260
+ 'fetchOrder': {
261
+ 'marginMode': false,
262
+ 'trigger': false,
263
+ 'trailing': false,
264
+ 'symbolRequired': true,
265
+ },
266
+ 'fetchOpenOrders': {
267
+ 'marginMode': false,
268
+ 'limit': 500,
269
+ 'trigger': false,
270
+ 'trailing': false,
271
+ 'symbolRequired': true,
272
+ },
273
+ 'fetchOrders': undefined,
274
+ 'fetchClosedOrders': undefined,
275
+ 'fetchOHLCV': {
276
+ 'limit': 300,
277
+ },
278
+ },
279
+ 'swap': {
280
+ 'linear': undefined,
281
+ 'inverse': undefined,
282
+ },
283
+ 'future': {
284
+ 'linear': undefined,
285
+ 'inverse': undefined,
286
+ },
287
+ },
288
+ 'exceptions': {
289
+ '0201': AuthenticationError,
290
+ '104': InvalidNonce,
291
+ '0304': BadRequest, // {"success":false,"error":{"code":"0304","message":"The field time_bucket () is either invalid or missing"}}
292
+ },
293
+ });
294
+ }
295
+ /**
296
+ * @method
297
+ * @name bitso#fetchLedger
298
+ * @description fetch the history of changes, actions done by the user or operations that altered the balance of the user
299
+ * @param {string} [code] unified currency code, default is undefined
300
+ * @param {int} [since] timestamp in ms of the earliest ledger entry, default is undefined
301
+ * @param {int} [limit] max number of ledger entries to return, default is undefined
302
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
303
+ * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger}
304
+ */
305
+ async fetchLedger(code = undefined, since = undefined, limit = undefined, params = {}) {
306
+ const request = {};
307
+ if (limit !== undefined) {
308
+ request['limit'] = limit;
309
+ }
310
+ const response = await this.privateGetLedger(this.extend(request, params));
311
+ //
312
+ // {
313
+ // "success": true,
314
+ // "payload": [{
315
+ // "eid": "2510b3e2bc1c87f584500a18084f35ed",
316
+ // "created_at": "2022-06-08T12:21:42+0000",
317
+ // "balance_updates": [{
318
+ // "amount": "0.00080000",
319
+ // "currency": "btc"
320
+ // }],
321
+ // "operation": "funding",
322
+ // "details": {
323
+ // "network": "btc",
324
+ // "method": "btc",
325
+ // "method_name": "Bitcoin",
326
+ // "asset": "btc",
327
+ // "protocol": "btc",
328
+ // "integration": "bitgo-v2",
329
+ // "fid": "6112c6369100d6ecceb7f54f17cf0511"
330
+ // }
331
+ // }]
332
+ // }
333
+ //
334
+ const payload = this.safeValue(response, 'payload', []);
335
+ const currency = this.safeCurrency(code);
336
+ return this.parseLedger(payload, currency, since, limit);
337
+ }
338
+ parseLedgerEntryType(type) {
339
+ const types = {
340
+ 'funding': 'transaction',
341
+ 'withdrawal': 'transaction',
342
+ 'trade': 'trade',
343
+ 'fee': 'fee',
344
+ };
345
+ return this.safeString(types, type, type);
346
+ }
347
+ parseLedgerEntry(item, currency = undefined) {
348
+ //
349
+ // {
350
+ // "eid": "2510b3e2bc1c87f584500a18084f35ed",
351
+ // "created_at": "2022-06-08T12:21:42+0000",
352
+ // "balance_updates": [{
353
+ // "amount": "0.00080000",
354
+ // "currency": "btc"
355
+ // }],
356
+ // "operation": "funding",
357
+ // "details": {
358
+ // "network": "btc",
359
+ // "method": "btc",
360
+ // "method_name": "Bitcoin",
361
+ // "asset": "btc",
362
+ // "protocol": "btc",
363
+ // "integration": "bitgo-v2",
364
+ // "fid": "6112c6369100d6ecceb7f54f17cf0511"
365
+ // }
366
+ // }
367
+ //
368
+ // trade
369
+ // {
370
+ // "eid": "8976c6053f078f704f037d82a813678a",
371
+ // "created_at": "2022-06-08T17:01:48+0000",
372
+ // "balance_updates": [{
373
+ // "amount": "59.21320500",
374
+ // "currency": "mxn"
375
+ // },
376
+ // {
377
+ // "amount": "-0.00010000",
378
+ // "currency": "btc"
379
+ // }
380
+ // ],
381
+ // "operation": "trade",
382
+ // "details": {
383
+ // "tid": "72145428",
384
+ // "oid": "JO5TZmMZjzjlZDyT"
385
+ // }
386
+ // }
387
+ //
388
+ // fee
389
+ // {
390
+ // "eid": "cbbb3c8d4e41723d25d2850dcb7c3c74",
391
+ // "created_at": "2022-06-08T17:01:48+0000",
392
+ // "balance_updates": [{
393
+ // "amount": "-0.38488583",
394
+ // "currency": "mxn"
395
+ // }],
396
+ // "operation": "fee",
397
+ // "details": {
398
+ // "tid": "72145428",
399
+ // "oid": "JO5TZmMZjzjlZDyT"
400
+ // }
401
+ // }
402
+ const operation = this.safeString(item, 'operation');
403
+ const type = this.parseLedgerEntryType(operation);
404
+ const balanceUpdates = this.safeValue(item, 'balance_updates', []);
405
+ const firstBalance = this.safeValue(balanceUpdates, 0, {});
406
+ let direction = undefined;
407
+ let fee = undefined;
408
+ const amount = this.safeString(firstBalance, 'amount');
409
+ const currencyId = this.safeString(firstBalance, 'currency');
410
+ const code = this.safeCurrencyCode(currencyId, currency);
411
+ currency = this.safeCurrency(currencyId, currency);
412
+ const details = this.safeValue(item, 'details', {});
413
+ let referenceId = this.safeString2(details, 'fid', 'wid');
414
+ if (referenceId === undefined) {
415
+ referenceId = this.safeString(details, 'tid');
416
+ }
417
+ if (operation === 'funding') {
418
+ direction = 'in';
419
+ }
420
+ else if (operation === 'withdrawal') {
421
+ direction = 'out';
422
+ }
423
+ else if (operation === 'trade') {
424
+ direction = undefined;
425
+ }
426
+ else if (operation === 'fee') {
427
+ direction = 'out';
428
+ const cost = Precise.stringAbs(amount);
429
+ fee = {
430
+ 'cost': cost,
431
+ 'currency': currency,
432
+ };
433
+ }
434
+ const timestamp = this.parse8601(this.safeString(item, 'created_at'));
435
+ return this.safeLedgerEntry({
436
+ 'info': item,
437
+ 'id': this.safeString(item, 'eid'),
438
+ 'direction': direction,
439
+ 'account': undefined,
440
+ 'referenceId': referenceId,
441
+ 'referenceAccount': undefined,
442
+ 'type': type,
443
+ 'currency': code,
444
+ 'amount': amount,
445
+ 'timestamp': timestamp,
446
+ 'datetime': this.iso8601(timestamp),
447
+ 'before': undefined,
448
+ 'after': undefined,
449
+ 'status': 'ok',
450
+ 'fee': fee,
451
+ }, currency);
452
+ }
453
+ /**
454
+ * @method
455
+ * @name bitso#fetchMarkets
456
+ * @description retrieves data on all markets for bitso
457
+ * @see https://docs.bitso.com/bitso-api/docs/list-available-books
458
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
459
+ * @returns {object[]} an array of objects representing market data
460
+ */
461
+ async fetchMarkets(params = {}) {
462
+ const response = await this.publicGetAvailableBooks(params);
463
+ //
464
+ // {
465
+ // "success":true,
466
+ // "payload":[
467
+ // {
468
+ // "book":"btc_mxn",
469
+ // "minimum_price":"500",
470
+ // "maximum_price":"10000000",
471
+ // "minimum_amount":"0.00005",
472
+ // "maximum_amount":"500",
473
+ // "minimum_value":"5",
474
+ // "maximum_value":"10000000",
475
+ // "tick_size":"0.01",
476
+ // "fees":{
477
+ // "flat_rate":{"maker":"0.500","taker":"0.650"},
478
+ // "structure":[
479
+ // {"volume":"1500000","maker":"0.00500","taker":"0.00650"},
480
+ // {"volume":"2000000","maker":"0.00490","taker":"0.00637"},
481
+ // {"volume":"5000000","maker":"0.00480","taker":"0.00624"},
482
+ // {"volume":"7000000","maker":"0.00440","taker":"0.00572"},
483
+ // {"volume":"10000000","maker":"0.00420","taker":"0.00546"},
484
+ // {"volume":"15000000","maker":"0.00400","taker":"0.00520"},
485
+ // {"volume":"35000000","maker":"0.00370","taker":"0.00481"},
486
+ // {"volume":"50000000","maker":"0.00300","taker":"0.00390"},
487
+ // {"volume":"150000000","maker":"0.00200","taker":"0.00260"},
488
+ // {"volume":"250000000","maker":"0.00100","taker":"0.00130"},
489
+ // {"volume":"9999999999","maker":"0.00000","taker":"0.00130"},
490
+ // ]
491
+ // }
492
+ // },
493
+ // ]
494
+ // }
495
+ const markets = this.safeValue(response, 'payload', []);
496
+ const result = [];
497
+ for (let i = 0; i < markets.length; i++) {
498
+ const market = markets[i];
499
+ const id = this.safeString(market, 'book');
500
+ const [baseId, quoteId] = id.split('_');
501
+ let base = baseId.toUpperCase();
502
+ let quote = quoteId.toUpperCase();
503
+ base = this.safeCurrencyCode(base);
504
+ quote = this.safeCurrencyCode(quote);
505
+ const fees = this.safeValue(market, 'fees', {});
506
+ const flatRate = this.safeValue(fees, 'flat_rate', {});
507
+ const takerString = this.safeString(flatRate, 'taker');
508
+ const makerString = this.safeString(flatRate, 'maker');
509
+ const taker = this.parseNumber(Precise.stringDiv(takerString, '100'));
510
+ const maker = this.parseNumber(Precise.stringDiv(makerString, '100'));
511
+ const feeTiers = this.safeValue(fees, 'structure', []);
512
+ const fee = {
513
+ 'taker': taker,
514
+ 'maker': maker,
515
+ 'percentage': true,
516
+ 'tierBased': true,
517
+ };
518
+ const takerFees = [];
519
+ const makerFees = [];
520
+ for (let j = 0; j < feeTiers.length; j++) {
521
+ const tier = feeTiers[j];
522
+ const volume = this.safeNumber(tier, 'volume');
523
+ const takerFee = this.safeNumber(tier, 'taker');
524
+ const makerFee = this.safeNumber(tier, 'maker');
525
+ takerFees.push([volume, takerFee]);
526
+ makerFees.push([volume, makerFee]);
527
+ if (j === 0) {
528
+ fee['taker'] = takerFee;
529
+ fee['maker'] = makerFee;
530
+ }
531
+ }
532
+ const tiers = {
533
+ 'taker': takerFees,
534
+ 'maker': makerFees,
535
+ };
536
+ fee['tiers'] = tiers;
537
+ // TODO: precisions can be also set from https://bitso.com/api/v3/catalogues ->available_currency_conversions->currencies (or ->currencies->metadata) or https://bitso.com/api/v3/get_exchange_rates/mxn
538
+ const defaultPricePrecision = this.safeNumber(this.options['precision'], quote, this.options['defaultPrecision']);
539
+ result.push(this.extend({
540
+ 'id': id,
541
+ 'symbol': base + '/' + quote,
542
+ 'base': base,
543
+ 'quote': quote,
544
+ 'settle': undefined,
545
+ 'baseId': baseId,
546
+ 'quoteId': quoteId,
547
+ 'settleId': undefined,
548
+ 'type': 'spot',
549
+ 'spot': true,
550
+ 'margin': false,
551
+ 'swap': false,
552
+ 'future': false,
553
+ 'option': false,
554
+ 'active': undefined,
555
+ 'contract': false,
556
+ 'linear': undefined,
557
+ 'inverse': undefined,
558
+ 'taker': taker,
559
+ 'maker': maker,
560
+ 'contractSize': undefined,
561
+ 'expiry': undefined,
562
+ 'expiryDatetime': undefined,
563
+ 'strike': undefined,
564
+ 'optionType': undefined,
565
+ 'precision': {
566
+ 'amount': this.safeNumber(this.options['precision'], base, this.options['defaultPrecision']),
567
+ 'price': this.safeNumber(market, 'tick_size', defaultPricePrecision),
568
+ },
569
+ 'limits': {
570
+ 'leverage': {
571
+ 'min': undefined,
572
+ 'max': undefined,
573
+ },
574
+ 'amount': {
575
+ 'min': this.safeNumber(market, 'minimum_amount'),
576
+ 'max': this.safeNumber(market, 'maximum_amount'),
577
+ },
578
+ 'price': {
579
+ 'min': this.safeNumber(market, 'minimum_price'),
580
+ 'max': this.safeNumber(market, 'maximum_price'),
581
+ },
582
+ 'cost': {
583
+ 'min': this.safeNumber(market, 'minimum_value'),
584
+ 'max': this.safeNumber(market, 'maximum_value'),
585
+ },
586
+ },
587
+ 'created': undefined,
588
+ 'info': market,
589
+ }, fee));
590
+ }
591
+ return result;
592
+ }
593
+ parseBalance(response) {
594
+ const payload = this.safeValue(response, 'payload', {});
595
+ const balances = this.safeValue(payload, 'balances', []);
596
+ const result = {
597
+ 'info': response,
598
+ 'timestamp': undefined,
599
+ 'datetime': undefined,
600
+ };
601
+ for (let i = 0; i < balances.length; i++) {
602
+ const balance = balances[i];
603
+ const currencyId = this.safeString(balance, 'currency');
604
+ const code = this.safeCurrencyCode(currencyId);
605
+ const account = this.account();
606
+ account['free'] = this.safeString(balance, 'available');
607
+ account['used'] = this.safeString(balance, 'locked');
608
+ account['total'] = this.safeString(balance, 'total');
609
+ result[code] = account;
610
+ }
611
+ return this.safeBalance(result);
612
+ }
613
+ /**
614
+ * @method
615
+ * @name bitso#fetchBalance
616
+ * @description query for balance and get the amount of funds available for trading or funds locked in orders
617
+ * @see https://docs.bitso.com/bitso-api/docs/get-account-balance
618
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
619
+ * @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
620
+ */
621
+ async fetchBalance(params = {}) {
622
+ await this.loadMarkets();
623
+ const response = await this.privateGetBalance(params);
624
+ //
625
+ // {
626
+ // "success": true,
627
+ // "payload": {
628
+ // "balances": [
629
+ // {
630
+ // "currency": "bat",
631
+ // "available": "0.00000000",
632
+ // "locked": "0.00000000",
633
+ // "total": "0.00000000",
634
+ // "pending_deposit": "0.00000000",
635
+ // "pending_withdrawal": "0.00000000"
636
+ // },
637
+ // {
638
+ // "currency": "bch",
639
+ // "available": "0.00000000",
640
+ // "locked": "0.00000000",
641
+ // "total": "0.00000000",
642
+ // "pending_deposit": "0.00000000",
643
+ // "pending_withdrawal": "0.00000000"
644
+ // },
645
+ // ],
646
+ // },
647
+ // }
648
+ //
649
+ return this.parseBalance(response);
650
+ }
651
+ /**
652
+ * @method
653
+ * @name bitso#fetchOrderBook
654
+ * @description fetches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
655
+ * @see https://docs.bitso.com/bitso-api/docs/list-order-book
656
+ * @param {string} symbol unified symbol of the market to fetch the order book for
657
+ * @param {int} [limit] the maximum amount of order book entries to return
658
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
659
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
660
+ */
661
+ async fetchOrderBook(symbol, limit = undefined, params = {}) {
662
+ await this.loadMarkets();
663
+ const market = this.market(symbol);
664
+ const request = {
665
+ 'book': market['id'],
666
+ };
667
+ const response = await this.publicGetOrderBook(this.extend(request, params));
668
+ const orderbook = this.safeValue(response, 'payload');
669
+ const timestamp = this.parse8601(this.safeString(orderbook, 'updated_at'));
670
+ return this.parseOrderBook(orderbook, market['symbol'], timestamp, 'bids', 'asks', 'price', 'amount');
671
+ }
672
+ parseTicker(ticker, market = undefined) {
673
+ //
674
+ // {
675
+ // "high":"37446.85",
676
+ // "last":"36599.54",
677
+ // "created_at":"2022-01-28T12:06:11+00:00",
678
+ // "book":"btc_usdt",
679
+ // "volume":"7.29075419",
680
+ // "vwap":"36579.1564400307",
681
+ // "low":"35578.52",
682
+ // "ask":"36574.76",
683
+ // "bid":"36538.22",
684
+ // "change_24":"-105.64"
685
+ // }
686
+ //
687
+ const symbol = this.safeSymbol(undefined, market);
688
+ const timestamp = this.parse8601(this.safeString(ticker, 'created_at'));
689
+ const vwap = this.safeString(ticker, 'vwap');
690
+ const baseVolume = this.safeString(ticker, 'volume');
691
+ const quoteVolume = Precise.stringMul(baseVolume, vwap);
692
+ const last = this.safeString(ticker, 'last');
693
+ return this.safeTicker({
694
+ 'symbol': symbol,
695
+ 'timestamp': timestamp,
696
+ 'datetime': this.iso8601(timestamp),
697
+ 'high': this.safeString(ticker, 'high'),
698
+ 'low': this.safeString(ticker, 'low'),
699
+ 'bid': this.safeString(ticker, 'bid'),
700
+ 'bidVolume': undefined,
701
+ 'ask': this.safeString(ticker, 'ask'),
702
+ 'askVolume': undefined,
703
+ 'vwap': vwap,
704
+ 'open': undefined,
705
+ 'close': last,
706
+ 'last': last,
707
+ 'previousClose': undefined,
708
+ 'change': undefined,
709
+ 'percentage': undefined,
710
+ 'average': undefined,
711
+ 'baseVolume': baseVolume,
712
+ 'quoteVolume': quoteVolume,
713
+ 'info': ticker,
714
+ }, market);
715
+ }
716
+ /**
717
+ * @method
718
+ * @name bitso#fetchTicker
719
+ * @description fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
720
+ * @see https://docs.bitso.com/bitso-api/docs/ticker
721
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
722
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
723
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
724
+ */
725
+ async fetchTicker(symbol, params = {}) {
726
+ await this.loadMarkets();
727
+ const market = this.market(symbol);
728
+ const request = {
729
+ 'book': market['id'],
730
+ };
731
+ const response = await this.publicGetTicker(this.extend(request, params));
732
+ const ticker = this.safeValue(response, 'payload');
733
+ //
734
+ // {
735
+ // "success":true,
736
+ // "payload":{
737
+ // "high":"37446.85",
738
+ // "last":"37051.96",
739
+ // "created_at":"2022-01-28T17:03:29+00:00",
740
+ // "book":"btc_usdt",
741
+ // "volume":"6.16176186",
742
+ // "vwap":"36582.6293169472",
743
+ // "low":"35578.52",
744
+ // "ask":"37083.62",
745
+ // "bid":"37039.66",
746
+ // "change_24":"478.45"
747
+ // }
748
+ // }
749
+ //
750
+ return this.parseTicker(ticker, market);
751
+ }
752
+ /**
753
+ * @method
754
+ * @name bitso#fetchOHLCV
755
+ * @description fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
756
+ * @param {string} symbol unified symbol of the market to fetch OHLCV data for
757
+ * @param {string} timeframe the length of time each candle represents
758
+ * @param {int} [since] timestamp in ms of the earliest candle to fetch
759
+ * @param {int} [limit] the maximum amount of candles to fetch
760
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
761
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
762
+ */
763
+ async fetchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
764
+ await this.loadMarkets();
765
+ const market = this.market(symbol);
766
+ const request = {
767
+ 'book': market['id'],
768
+ 'time_bucket': this.safeString(this.timeframes, timeframe, timeframe),
769
+ };
770
+ if (since !== undefined) {
771
+ request['start'] = since;
772
+ if (limit !== undefined) {
773
+ const duration = this.parseTimeframe(timeframe);
774
+ request['end'] = this.sum(since, duration * limit * 1000);
775
+ }
776
+ }
777
+ else if (limit !== undefined) {
778
+ const now = this.milliseconds();
779
+ request['end'] = now;
780
+ request['start'] = now - this.parseTimeframe(timeframe) * 1000 * limit;
781
+ }
782
+ const response = await this.publicGetOhlc(this.extend(request, params));
783
+ //
784
+ // {
785
+ // "success":true,
786
+ // "payload": [
787
+ // {
788
+ // "bucket_start_time":1648219140000,
789
+ // "first_trade_time":1648219154990,
790
+ // "last_trade_time":1648219189442,
791
+ // "first_rate":"44958.60",
792
+ // "last_rate":"44979.88",
793
+ // "min_rate":"44957.33",
794
+ // "max_rate":"44979.88",
795
+ // "trade_count":8,
796
+ // "volume":"0.00082814",
797
+ // "vwap":"44965.02"
798
+ // },
799
+ // ]
800
+ // }
801
+ //
802
+ const payload = this.safeList(response, 'payload', []);
803
+ return this.parseOHLCVs(payload, market, timeframe, since, limit);
804
+ }
805
+ parseOHLCV(ohlcv, market = undefined) {
806
+ //
807
+ // {
808
+ // "bucket_start_time":1648219140000,
809
+ // "first_trade_time":1648219154990,
810
+ // "last_trade_time":1648219189441,
811
+ // "first_rate":"44958.60",
812
+ // "last_rate":"44979.88",
813
+ // "min_rate":"44957.33",
814
+ // "max_rate":"44979.88",
815
+ // "trade_count":8,
816
+ // "volume":"0.00082814",
817
+ // "vwap":"44965.02"
818
+ // },
819
+ //
820
+ return [
821
+ this.safeInteger(ohlcv, 'bucket_start_time'),
822
+ this.safeNumber(ohlcv, 'first_rate'),
823
+ this.safeNumber(ohlcv, 'max_rate'),
824
+ this.safeNumber(ohlcv, 'min_rate'),
825
+ this.safeNumber(ohlcv, 'last_rate'),
826
+ this.safeNumber(ohlcv, 'volume'),
827
+ ];
828
+ }
829
+ parseTrade(trade, market = undefined) {
830
+ //
831
+ // fetchTrades (public)
832
+ //
833
+ // {
834
+ // "book": "btc_usdt",
835
+ // "created_at": "2021-11-24T12:14:53+0000",
836
+ // "amount": "0.00026562",
837
+ // "maker_side": "sell",
838
+ // "price": "56471.55",
839
+ // "tid": "52557338"
840
+ // }
841
+ //
842
+ // fetchMyTrades (private)
843
+ //
844
+ // {
845
+ // "book": "btc_usdt",
846
+ // "created_at": "2021-11-24T12:31:03+0000",
847
+ // "minor": "11.30356000",
848
+ // "major": "-0.00020000",
849
+ // "fees_amount": "0.01119052",
850
+ // "fees_currency": "usdt",
851
+ // "minor_currency": "usdt",
852
+ // "major_currency": "btc",
853
+ // "oid": "djTzMIWx2Vi3iMjl",
854
+ // "tid": "52559051",
855
+ // "price": "56517.80",
856
+ // "side": "sell",
857
+ // "maker_side": "buy"
858
+ // }
859
+ //
860
+ // fetchOrderTrades (private)
861
+ //
862
+ // {
863
+ // "book": "btc_usdt",
864
+ // "created_at": "2021-11-24T12:30:52+0000",
865
+ // "minor": "-11.33047916",
866
+ // "major": "0.00020020",
867
+ // "fees_amount": "0.00000020",
868
+ // "fees_currency": "btc",
869
+ // "minor_currency": "usdt",
870
+ // "major_currency": "btc",
871
+ // "oid": "O0D2zcljjjQF5xlG",
872
+ // "tid": "52559030",
873
+ // "price": "56595.80",
874
+ // "side": "buy",
875
+ // "maker_side": "sell"
876
+ // }
877
+ //
878
+ const timestamp = this.parse8601(this.safeString(trade, 'created_at'));
879
+ const marketId = this.safeString(trade, 'book');
880
+ const symbol = this.safeSymbol(marketId, market, '_');
881
+ let side = this.safeString(trade, 'side');
882
+ const makerSide = this.safeString(trade, 'maker_side');
883
+ let takerOrMaker = undefined;
884
+ if (side !== undefined) {
885
+ if (side === makerSide) {
886
+ takerOrMaker = 'maker';
887
+ }
888
+ else {
889
+ takerOrMaker = 'taker';
890
+ }
891
+ }
892
+ else {
893
+ if (makerSide === 'buy') {
894
+ side = 'sell';
895
+ }
896
+ else {
897
+ side = 'buy';
898
+ }
899
+ }
900
+ let amount = this.safeString2(trade, 'amount', 'major');
901
+ if (amount !== undefined) {
902
+ amount = Precise.stringAbs(amount);
903
+ }
904
+ let fee = undefined;
905
+ const feeCost = this.safeString(trade, 'fees_amount');
906
+ if (feeCost !== undefined) {
907
+ const feeCurrencyId = this.safeString(trade, 'fees_currency');
908
+ const feeCurrency = this.safeCurrencyCode(feeCurrencyId);
909
+ fee = {
910
+ 'cost': feeCost,
911
+ 'currency': feeCurrency,
912
+ };
913
+ }
914
+ let cost = this.safeString(trade, 'minor');
915
+ if (cost !== undefined) {
916
+ cost = Precise.stringAbs(cost);
917
+ }
918
+ const price = this.safeString(trade, 'price');
919
+ const orderId = this.safeString(trade, 'oid');
920
+ const id = this.safeString(trade, 'tid');
921
+ return this.safeTrade({
922
+ 'id': id,
923
+ 'info': trade,
924
+ 'timestamp': timestamp,
925
+ 'datetime': this.iso8601(timestamp),
926
+ 'symbol': symbol,
927
+ 'order': orderId,
928
+ 'type': undefined,
929
+ 'side': side,
930
+ 'takerOrMaker': takerOrMaker,
931
+ 'price': price,
932
+ 'amount': amount,
933
+ 'cost': cost,
934
+ 'fee': fee,
935
+ }, market);
936
+ }
937
+ /**
938
+ * @method
939
+ * @name bitso#fetchTrades
940
+ * @description get the list of most recent trades for a particular symbol
941
+ * @see https://docs.bitso.com/bitso-api/docs/list-trades
942
+ * @param {string} symbol unified symbol of the market to fetch trades for
943
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
944
+ * @param {int} [limit] the maximum amount of trades to fetch
945
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
946
+ * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
947
+ */
948
+ async fetchTrades(symbol, since = undefined, limit = undefined, params = {}) {
949
+ await this.loadMarkets();
950
+ const market = this.market(symbol);
951
+ const request = {
952
+ 'book': market['id'],
953
+ };
954
+ const response = await this.publicGetTrades(this.extend(request, params));
955
+ return this.parseTrades(response['payload'], market, since, limit);
956
+ }
957
+ /**
958
+ * @method
959
+ * @name bitso#fetchTradingFees
960
+ * @description fetch the trading fees for multiple markets
961
+ * @see https://docs.bitso.com/bitso-api/docs/list-fees
962
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
963
+ * @returns {object} a dictionary of [fee structures]{@link https://docs.ccxt.com/#/?id=fee-structure} indexed by market symbols
964
+ */
965
+ async fetchTradingFees(params = {}) {
966
+ await this.loadMarkets();
967
+ const response = await this.privateGetFees(params);
968
+ //
969
+ // {
970
+ // "success": true,
971
+ // "payload": {
972
+ // "fees": [
973
+ // {
974
+ // "book": "btc_mxn",
975
+ // "fee_percent": "0.6500",
976
+ // "fee_decimal": "0.00650000",
977
+ // "taker_fee_percent": "0.6500",
978
+ // "taker_fee_decimal": "0.00650000",
979
+ // "maker_fee_percent": "0.5000",
980
+ // "maker_fee_decimal": "0.00500000",
981
+ // "volume_currency": "mxn",
982
+ // "current_volume": "0.00",
983
+ // "next_volume": "1500000.00",
984
+ // "next_maker_fee_percent": "0.490",
985
+ // "next_taker_fee_percent": "0.637",
986
+ // "nextVolume": "1500000.00",
987
+ // "nextFee": "0.490",
988
+ // "nextTakerFee": "0.637"
989
+ // },
990
+ // ...
991
+ // ],
992
+ // "deposit_fees": [
993
+ // {
994
+ // "currency": "btc",
995
+ // "method": "rewards",
996
+ // "fee": "0.00",
997
+ // "is_fixed": false
998
+ // },
999
+ // ...
1000
+ // ],
1001
+ // "withdrawal_fees": {
1002
+ // "ada": "0.20958100",
1003
+ // "bch": "0.00009437",
1004
+ // "ars": "0",
1005
+ // "btc": "0.00001209",
1006
+ // ...
1007
+ // }
1008
+ // }
1009
+ // }
1010
+ //
1011
+ const payload = this.safeValue(response, 'payload', {});
1012
+ const fees = this.safeValue(payload, 'fees', []);
1013
+ const result = {};
1014
+ for (let i = 0; i < fees.length; i++) {
1015
+ const fee = fees[i];
1016
+ const marketId = this.safeString(fee, 'book');
1017
+ const symbol = this.safeSymbol(marketId, undefined, '_');
1018
+ result[symbol] = {
1019
+ 'info': fee,
1020
+ 'symbol': symbol,
1021
+ 'maker': this.safeNumber(fee, 'maker_fee_decimal'),
1022
+ 'taker': this.safeNumber(fee, 'taker_fee_decimal'),
1023
+ 'percentage': true,
1024
+ 'tierBased': true,
1025
+ };
1026
+ }
1027
+ return result;
1028
+ }
1029
+ /**
1030
+ * @method
1031
+ * @name bitso#fetchMyTrades
1032
+ * @description fetch all trades made by the user
1033
+ * @see https://docs.bitso.com/bitso-api/docs/user-trades
1034
+ * @param {string} symbol unified market symbol
1035
+ * @param {int} [since] the earliest time in ms to fetch trades for
1036
+ * @param {int} [limit] the maximum number of trades structures to retrieve
1037
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1038
+ * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
1039
+ */
1040
+ async fetchMyTrades(symbol = undefined, since = undefined, limit = 25, params = {}) {
1041
+ await this.loadMarkets();
1042
+ const market = this.market(symbol);
1043
+ // the don't support fetching trades starting from a date yet
1044
+ // use the `marker` extra param for that
1045
+ // this is not a typo, the variable name is 'marker' (don't confuse with 'market')
1046
+ const markerInParams = ('marker' in params);
1047
+ // warn the user with an exception if the user wants to filter
1048
+ // starting from since timestamp, but does not set the trade id with an extra 'marker' param
1049
+ if ((since !== undefined) && !markerInParams) {
1050
+ throw new ExchangeError(this.id + ' fetchMyTrades() does not support fetching trades starting from a timestamp with the `since` argument, use the `marker` extra param to filter starting from an integer trade id');
1051
+ }
1052
+ // convert it to an integer unconditionally
1053
+ if (markerInParams) {
1054
+ params = this.extend(params, {
1055
+ 'marker': parseInt(params['marker']),
1056
+ });
1057
+ }
1058
+ const request = {
1059
+ 'book': market['id'],
1060
+ 'limit': limit, // default = 25, max = 100
1061
+ // 'sort': 'desc', // default = desc
1062
+ // 'marker': id, // integer id to start from
1063
+ };
1064
+ const response = await this.privateGetUserTrades(this.extend(request, params));
1065
+ return this.parseTrades(response['payload'], market, since, limit);
1066
+ }
1067
+ /**
1068
+ * @method
1069
+ * @name bitso#createOrder
1070
+ * @description create a trade order
1071
+ * @see https://docs.bitso.com/bitso-api/docs/place-an-order
1072
+ * @param {string} symbol unified symbol of the market to create an order in
1073
+ * @param {string} type 'market' or 'limit'
1074
+ * @param {string} side 'buy' or 'sell'
1075
+ * @param {float} amount how much of currency you want to trade in units of base currency
1076
+ * @param {float} [price] the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1077
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1078
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1079
+ */
1080
+ async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
1081
+ await this.loadMarkets();
1082
+ const market = this.market(symbol);
1083
+ const request = {
1084
+ 'book': market['id'],
1085
+ 'side': side,
1086
+ 'type': type,
1087
+ 'major': this.amountToPrecision(market['symbol'], amount),
1088
+ };
1089
+ if (type === 'limit') {
1090
+ request['price'] = this.priceToPrecision(market['symbol'], price);
1091
+ }
1092
+ const response = await this.privatePostOrders(this.extend(request, params));
1093
+ const id = this.safeString(response['payload'], 'oid');
1094
+ return this.safeOrder({
1095
+ 'info': response,
1096
+ 'id': id,
1097
+ }, market);
1098
+ }
1099
+ /**
1100
+ * @method
1101
+ * @name bitso#cancelOrder
1102
+ * @description cancels an open order
1103
+ * @see https://docs.bitso.com/bitso-api/docs/cancel-an-order
1104
+ * @param {string} id order id
1105
+ * @param {string} symbol not used by bitso cancelOrder ()
1106
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1107
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1108
+ */
1109
+ async cancelOrder(id, symbol = undefined, params = {}) {
1110
+ await this.loadMarkets();
1111
+ const request = {
1112
+ 'oid': id,
1113
+ };
1114
+ const response = await this.privateDeleteOrdersOid(this.extend(request, params));
1115
+ //
1116
+ // {
1117
+ // "success": true,
1118
+ // "payload": ["yWTQGxDMZ0VimZgZ"]
1119
+ // }
1120
+ //
1121
+ const payload = this.safeList(response, 'payload', []);
1122
+ const orderId = this.safeString(payload, 0);
1123
+ return this.safeOrder({
1124
+ 'info': response,
1125
+ 'id': orderId,
1126
+ });
1127
+ }
1128
+ /**
1129
+ * @method
1130
+ * @name bitso#cancelOrders
1131
+ * @description cancel multiple orders
1132
+ * @see https://docs.bitso.com/bitso-api/docs/cancel-an-order
1133
+ * @param {string[]} ids order ids
1134
+ * @param {string} symbol unified market symbol
1135
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1136
+ * @returns {object} an list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1137
+ */
1138
+ async cancelOrders(ids, symbol = undefined, params = {}) {
1139
+ if (!Array.isArray(ids)) {
1140
+ throw new ArgumentsRequired(this.id + ' cancelOrders() ids argument should be an array');
1141
+ }
1142
+ let market = undefined;
1143
+ if (symbol !== undefined) {
1144
+ market = this.market(symbol);
1145
+ }
1146
+ const oids = ids.join(',');
1147
+ const request = {
1148
+ 'oids': oids,
1149
+ };
1150
+ const response = await this.privateDeleteOrders(this.extend(request, params));
1151
+ //
1152
+ // {
1153
+ // "success": true,
1154
+ // "payload": ["yWTQGxDMZ0VimZgZ"]
1155
+ // }
1156
+ //
1157
+ const payload = this.safeValue(response, 'payload', []);
1158
+ const orders = [];
1159
+ for (let i = 0; i < payload.length; i++) {
1160
+ const id = payload[i];
1161
+ orders.push(this.parseOrder(id, market));
1162
+ }
1163
+ return orders;
1164
+ }
1165
+ /**
1166
+ * @method
1167
+ * @name bitso#cancelAllOrders
1168
+ * @description cancel all open orders
1169
+ * @see https://docs.bitso.com/bitso-api/docs/cancel-an-order
1170
+ * @param {undefined} symbol bitso does not support canceling orders for only a specific market
1171
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1172
+ * @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1173
+ */
1174
+ async cancelAllOrders(symbol = undefined, params = {}) {
1175
+ if (symbol !== undefined) {
1176
+ throw new NotSupported(this.id + ' cancelAllOrders() deletes all orders for user, it does not support filtering by symbol.');
1177
+ }
1178
+ const response = await this.privateDeleteOrdersAll(params);
1179
+ //
1180
+ // {
1181
+ // "success": true,
1182
+ // "payload": ["NWUZUYNT12ljwzDT", "kZUkZmQ2TTjkkYTY"]
1183
+ // }
1184
+ //
1185
+ const payload = this.safeValue(response, 'payload', []);
1186
+ const canceledOrders = [];
1187
+ for (let i = 0; i < payload.length; i++) {
1188
+ const order = this.parseOrder(payload[i]);
1189
+ canceledOrders.push(order);
1190
+ }
1191
+ return canceledOrders;
1192
+ }
1193
+ parseOrderStatus(status) {
1194
+ const statuses = {
1195
+ 'partial-fill': 'open',
1196
+ 'partially filled': 'open',
1197
+ 'queued': 'open',
1198
+ 'completed': 'closed',
1199
+ };
1200
+ return this.safeString(statuses, status, status);
1201
+ }
1202
+ parseOrder(order, market = undefined) {
1203
+ //
1204
+ //
1205
+ // canceledOrder
1206
+ // yWTQGxDMZ0VimZgZ
1207
+ //
1208
+ let id = undefined;
1209
+ if (typeof order === 'string') {
1210
+ id = order;
1211
+ }
1212
+ else {
1213
+ id = this.safeString(order, 'oid');
1214
+ }
1215
+ const side = this.safeString(order, 'side');
1216
+ const status = this.parseOrderStatus(this.safeString(order, 'status'));
1217
+ const marketId = this.safeString(order, 'book');
1218
+ const symbol = this.safeSymbol(marketId, market, '_');
1219
+ const orderType = this.safeString(order, 'type');
1220
+ const timestamp = this.parse8601(this.safeString(order, 'created_at'));
1221
+ const price = this.safeString(order, 'price');
1222
+ const amount = this.safeString(order, 'original_amount');
1223
+ const remaining = this.safeString(order, 'unfilled_amount');
1224
+ const clientOrderId = this.safeString(order, 'client_id');
1225
+ return this.safeOrder({
1226
+ 'info': order,
1227
+ 'id': id,
1228
+ 'clientOrderId': clientOrderId,
1229
+ 'timestamp': timestamp,
1230
+ 'datetime': this.iso8601(timestamp),
1231
+ 'lastTradeTimestamp': undefined,
1232
+ 'symbol': symbol,
1233
+ 'type': orderType,
1234
+ 'timeInForce': undefined,
1235
+ 'postOnly': undefined,
1236
+ 'side': side,
1237
+ 'price': price,
1238
+ 'triggerPrice': undefined,
1239
+ 'amount': amount,
1240
+ 'cost': undefined,
1241
+ 'remaining': remaining,
1242
+ 'filled': undefined,
1243
+ 'status': status,
1244
+ 'fee': undefined,
1245
+ 'average': undefined,
1246
+ 'trades': undefined,
1247
+ }, market);
1248
+ }
1249
+ /**
1250
+ * @method
1251
+ * @name bitso#fetchOpenOrders
1252
+ * @description fetch all unfilled currently open orders
1253
+ * @see https://docs.bitso.com/bitso-api/docs/list-open-orders
1254
+ * @param {string} symbol unified market symbol
1255
+ * @param {int} [since] the earliest time in ms to fetch open orders for
1256
+ * @param {int} [limit] the maximum number of open orders structures to retrieve
1257
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1258
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1259
+ */
1260
+ async fetchOpenOrders(symbol = undefined, since = undefined, limit = 25, params = {}) {
1261
+ await this.loadMarkets();
1262
+ const market = this.market(symbol);
1263
+ // the don't support fetching trades starting from a date yet
1264
+ // use the `marker` extra param for that
1265
+ // this is not a typo, the variable name is 'marker' (don't confuse with 'market')
1266
+ const markerInParams = ('marker' in params);
1267
+ // warn the user with an exception if the user wants to filter
1268
+ // starting from since timestamp, but does not set the trade id with an extra 'marker' param
1269
+ if ((since !== undefined) && !markerInParams) {
1270
+ throw new ExchangeError(this.id + ' fetchOpenOrders() does not support fetching orders starting from a timestamp with the `since` argument, use the `marker` extra param to filter starting from an integer trade id');
1271
+ }
1272
+ // convert it to an integer unconditionally
1273
+ if (markerInParams) {
1274
+ params = this.extend(params, {
1275
+ 'marker': parseInt(params['marker']),
1276
+ });
1277
+ }
1278
+ const request = {
1279
+ 'book': market['id'],
1280
+ 'limit': limit, // default = 25, max = 100
1281
+ // 'sort': 'desc', // default = desc
1282
+ // 'marker': id, // integer id to start from
1283
+ };
1284
+ const response = await this.privateGetOpenOrders(this.extend(request, params));
1285
+ const orders = this.parseOrders(response['payload'], market, since, limit);
1286
+ return orders;
1287
+ }
1288
+ /**
1289
+ * @method
1290
+ * @name bitso#fetchOrder
1291
+ * @description fetches information on an order made by the user
1292
+ * @see https://docs.bitso.com/bitso-api/docs/look-up-orders
1293
+ * @param {string} id the order id
1294
+ * @param {string} symbol not used by bitso fetchOrder
1295
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1296
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1297
+ */
1298
+ async fetchOrder(id, symbol = undefined, params = {}) {
1299
+ await this.loadMarkets();
1300
+ const response = await this.privateGetOrdersOid({
1301
+ 'oid': id,
1302
+ });
1303
+ const payload = this.safeValue(response, 'payload');
1304
+ if (Array.isArray(payload)) {
1305
+ const numOrders = response['payload'].length;
1306
+ if (numOrders === 1) {
1307
+ return this.parseOrder(payload[0]);
1308
+ }
1309
+ }
1310
+ throw new OrderNotFound(this.id + ': The order ' + id + ' not found.');
1311
+ }
1312
+ /**
1313
+ * @method
1314
+ * @name bitso#fetchOrderTrades
1315
+ * @description fetch all the trades made from a single order
1316
+ * @see https://docs.bitso.com/bitso-api/docs/list-user-trades
1317
+ * @param {string} id order id
1318
+ * @param {string} symbol unified market symbol
1319
+ * @param {int} [since] the earliest time in ms to fetch trades for
1320
+ * @param {int} [limit] the maximum number of trades to retrieve
1321
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1322
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
1323
+ */
1324
+ async fetchOrderTrades(id, symbol = undefined, since = undefined, limit = undefined, params = {}) {
1325
+ await this.loadMarkets();
1326
+ const market = this.market(symbol);
1327
+ const request = {
1328
+ 'oid': id,
1329
+ };
1330
+ const response = await this.privateGetOrderTradesOid(this.extend(request, params));
1331
+ return this.parseTrades(response['payload'], market);
1332
+ }
1333
+ /**
1334
+ * @method
1335
+ * @name bitso#fetchDeposit
1336
+ * @description fetch information on a deposit
1337
+ * @see https://docs.bitso.com/bitso-payouts-funding/docs/fundings
1338
+ * @param {string} id deposit id
1339
+ * @param {string} code bitso does not support filtering by currency code and will ignore this argument
1340
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1341
+ * @returns {object} a [transaction structure]{@link https://docs.ccxt.com/#/?id=transaction-structure}
1342
+ */
1343
+ async fetchDeposit(id, code = undefined, params = {}) {
1344
+ await this.loadMarkets();
1345
+ const request = {
1346
+ 'fid': id,
1347
+ };
1348
+ const response = await this.privateGetFundingsFid(this.extend(request, params));
1349
+ //
1350
+ // {
1351
+ // "success": true,
1352
+ // "payload": [{
1353
+ // "fid": "6112c6369100d6ecceb7f54f17cf0511",
1354
+ // "status": "complete",
1355
+ // "created_at": "2022-06-08T12:02:49+0000",
1356
+ // "currency": "btc",
1357
+ // "method": "btc",
1358
+ // "method_name": "Bitcoin",
1359
+ // "amount": "0.00080000",
1360
+ // "asset": "btc",
1361
+ // "network": "btc",
1362
+ // "protocol": "btc",
1363
+ // "integration": "bitgo-v2",
1364
+ // "details": {
1365
+ // "receiving_address": "3N2vbcYKhogs6RoTb4eYCUJ3beRSqLgSif",
1366
+ // "tx_hash": "327f3838531f211485ec59f9d0a119fea1595591e274d942b2c10b9b8262eb1d",
1367
+ // "confirmations": "4"
1368
+ // }
1369
+ // }]
1370
+ // }
1371
+ //
1372
+ const transactions = this.safeValue(response, 'payload', []);
1373
+ const first = this.safeDict(transactions, 0, {});
1374
+ return this.parseTransaction(first);
1375
+ }
1376
+ /**
1377
+ * @method
1378
+ * @name bitso#fetchDeposits
1379
+ * @description fetch all deposits made to an account
1380
+ * @see https://docs.bitso.com/bitso-payouts-funding/docs/fundings
1381
+ * @param {string} code unified currency code
1382
+ * @param {int} [since] the earliest time in ms to fetch deposits for
1383
+ * @param {int} [limit] the maximum number of deposits structures to retrieve
1384
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1385
+ * @returns {object[]} a list of [transaction structures]{@link https://docs.ccxt.com/#/?id=transaction-structure}
1386
+ */
1387
+ async fetchDeposits(code = undefined, since = undefined, limit = undefined, params = {}) {
1388
+ await this.loadMarkets();
1389
+ let currency = undefined;
1390
+ if (code !== undefined) {
1391
+ currency = this.currency(code);
1392
+ }
1393
+ const response = await this.privateGetFundings(params);
1394
+ //
1395
+ // {
1396
+ // "success": true,
1397
+ // "payload": [{
1398
+ // "fid": "6112c6369100d6ecceb7f54f17cf0511",
1399
+ // "status": "complete",
1400
+ // "created_at": "2022-06-08T12:02:49+0000",
1401
+ // "currency": "btc",
1402
+ // "method": "btc",
1403
+ // "method_name": "Bitcoin",
1404
+ // "amount": "0.00080000",
1405
+ // "asset": "btc",
1406
+ // "network": "btc",
1407
+ // "protocol": "btc",
1408
+ // "integration": "bitgo-v2",
1409
+ // "details": {
1410
+ // "receiving_address": "3N2vbcYKhogs6RoTb4eYCUJ3beRSqLgSif",
1411
+ // "tx_hash": "327f3838531f211485ec59f9d0a119fea1595591e274d942b2c10b9b8262eb1d",
1412
+ // "confirmations": "4"
1413
+ // }
1414
+ // }]
1415
+ // }
1416
+ //
1417
+ const transactions = this.safeList(response, 'payload', []);
1418
+ return this.parseTransactions(transactions, currency, since, limit, params);
1419
+ }
1420
+ /**
1421
+ * @method
1422
+ * @name bitso#fetchDepositAddress
1423
+ * @description fetch the deposit address for a currency associated with this account
1424
+ * @param {string} code unified currency code
1425
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1426
+ * @returns {object} an [address structure]{@link https://docs.ccxt.com/#/?id=address-structure}
1427
+ */
1428
+ async fetchDepositAddress(code, params = {}) {
1429
+ await this.loadMarkets();
1430
+ const currency = this.currency(code);
1431
+ const request = {
1432
+ 'fund_currency': currency['id'],
1433
+ };
1434
+ const response = await this.privateGetFundingDestination(this.extend(request, params));
1435
+ let address = this.safeString(response['payload'], 'account_identifier');
1436
+ let tag = undefined;
1437
+ if (address.indexOf('?dt=') >= 0) {
1438
+ const parts = address.split('?dt=');
1439
+ address = this.safeString(parts, 0);
1440
+ tag = this.safeString(parts, 1);
1441
+ }
1442
+ this.checkAddress(address);
1443
+ return {
1444
+ 'info': response,
1445
+ 'currency': code,
1446
+ 'network': undefined,
1447
+ 'address': address,
1448
+ 'tag': tag,
1449
+ };
1450
+ }
1451
+ /**
1452
+ * @method
1453
+ * @name bitso#fetchTransactionFees
1454
+ * @deprecated
1455
+ * @description please use fetchDepositWithdrawFees instead
1456
+ * @see https://docs.bitso.com/bitso-api/docs/list-fees
1457
+ * @param {string[]|undefined} codes list of unified currency codes
1458
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1459
+ * @returns {object[]} a list of [fee structures]{@link https://docs.ccxt.com/#/?id=fee-structure}
1460
+ */
1461
+ async fetchTransactionFees(codes = undefined, params = {}) {
1462
+ await this.loadMarkets();
1463
+ const response = await this.privateGetFees(params);
1464
+ //
1465
+ // {
1466
+ // "success": true,
1467
+ // "payload": {
1468
+ // "fees": [
1469
+ // {
1470
+ // "book": "btc_mxn",
1471
+ // "fee_percent": "0.6500",
1472
+ // "fee_decimal": "0.00650000",
1473
+ // "taker_fee_percent": "0.6500",
1474
+ // "taker_fee_decimal": "0.00650000",
1475
+ // "maker_fee_percent": "0.5000",
1476
+ // "maker_fee_decimal": "0.00500000",
1477
+ // "volume_currency": "mxn",
1478
+ // "current_volume": "0.00",
1479
+ // "next_volume": "1500000.00",
1480
+ // "next_maker_fee_percent": "0.490",
1481
+ // "next_taker_fee_percent": "0.637",
1482
+ // "nextVolume": "1500000.00",
1483
+ // "nextFee": "0.490",
1484
+ // "nextTakerFee": "0.637"
1485
+ // },
1486
+ // ...
1487
+ // ],
1488
+ // "deposit_fees": [
1489
+ // {
1490
+ // "currency": "btc",
1491
+ // "method": "rewards",
1492
+ // "fee": "0.00",
1493
+ // "is_fixed": false
1494
+ // },
1495
+ // ...
1496
+ // ],
1497
+ // "withdrawal_fees": {
1498
+ // "ada": "0.20958100",
1499
+ // "bch": "0.00009437",
1500
+ // "ars": "0",
1501
+ // "btc": "0.00001209",
1502
+ // ...
1503
+ // }
1504
+ // }
1505
+ // }
1506
+ //
1507
+ const result = {};
1508
+ const payload = this.safeValue(response, 'payload', {});
1509
+ const depositFees = this.safeValue(payload, 'deposit_fees', []);
1510
+ for (let i = 0; i < depositFees.length; i++) {
1511
+ const depositFee = depositFees[i];
1512
+ const currencyId = this.safeString(depositFee, 'currency');
1513
+ const code = this.safeCurrencyCode(currencyId);
1514
+ if ((codes !== undefined) && !this.inArray(code, codes)) {
1515
+ continue;
1516
+ }
1517
+ result[code] = {
1518
+ 'deposit': this.safeNumber(depositFee, 'fee'),
1519
+ 'withdraw': undefined,
1520
+ 'info': {
1521
+ 'deposit': depositFee,
1522
+ 'withdraw': undefined,
1523
+ },
1524
+ };
1525
+ }
1526
+ const withdrawalFees = this.safeValue(payload, 'withdrawal_fees', []);
1527
+ const currencyIds = Object.keys(withdrawalFees);
1528
+ for (let i = 0; i < currencyIds.length; i++) {
1529
+ const currencyId = currencyIds[i];
1530
+ const code = this.safeCurrencyCode(currencyId);
1531
+ if ((codes !== undefined) && !this.inArray(code, codes)) {
1532
+ continue;
1533
+ }
1534
+ result[code] = {
1535
+ 'deposit': this.safeValue(result[code], 'deposit'),
1536
+ 'withdraw': this.safeNumber(withdrawalFees, currencyId),
1537
+ 'info': {
1538
+ 'deposit': this.safeValue(result[code]['info'], 'deposit'),
1539
+ 'withdraw': this.safeNumber(withdrawalFees, currencyId),
1540
+ },
1541
+ };
1542
+ }
1543
+ return result;
1544
+ }
1545
+ /**
1546
+ * @method
1547
+ * @name bitso#fetchDepositWithdrawFees
1548
+ * @description fetch deposit and withdraw fees
1549
+ * @see https://docs.bitso.com/bitso-api/docs/list-fees
1550
+ * @param {string[]|undefined} codes list of unified currency codes
1551
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1552
+ * @returns {object[]} a list of [fee structures]{@link https://docs.ccxt.com/#/?id=fee-structure}
1553
+ */
1554
+ async fetchDepositWithdrawFees(codes = undefined, params = {}) {
1555
+ await this.loadMarkets();
1556
+ const response = await this.privateGetFees(params);
1557
+ //
1558
+ // {
1559
+ // "success": true,
1560
+ // "payload": {
1561
+ // "fees": [
1562
+ // {
1563
+ // "book": "btc_mxn",
1564
+ // "fee_percent": "0.6500",
1565
+ // "fee_decimal": "0.00650000",
1566
+ // "taker_fee_percent": "0.6500",
1567
+ // "taker_fee_decimal": "0.00650000",
1568
+ // "maker_fee_percent": "0.5000",
1569
+ // "maker_fee_decimal": "0.00500000",
1570
+ // "volume_currency": "mxn",
1571
+ // "current_volume": "0.00",
1572
+ // "next_volume": "1500000.00",
1573
+ // "next_maker_fee_percent": "0.490",
1574
+ // "next_taker_fee_percent": "0.637",
1575
+ // "nextVolume": "1500000.00",
1576
+ // "nextFee": "0.490",
1577
+ // "nextTakerFee": "0.637"
1578
+ // },
1579
+ // ...
1580
+ // ],
1581
+ // "deposit_fees": [
1582
+ // {
1583
+ // "currency": "btc",
1584
+ // "method": "rewards",
1585
+ // "fee": "0.00",
1586
+ // "is_fixed": false
1587
+ // },
1588
+ // ...
1589
+ // ],
1590
+ // "withdrawal_fees": {
1591
+ // "ada": "0.20958100",
1592
+ // "bch": "0.00009437",
1593
+ // "ars": "0",
1594
+ // "btc": "0.00001209",
1595
+ // ...
1596
+ // }
1597
+ // }
1598
+ // }
1599
+ //
1600
+ const payload = this.safeList(response, 'payload', []);
1601
+ return this.parseDepositWithdrawFees(payload, codes);
1602
+ }
1603
+ parseDepositWithdrawFees(response, codes = undefined, currencyIdKey = undefined) {
1604
+ //
1605
+ // {
1606
+ // "fees": [
1607
+ // {
1608
+ // "book": "btc_mxn",
1609
+ // "fee_percent": "0.6500",
1610
+ // "fee_decimal": "0.00650000",
1611
+ // "taker_fee_percent": "0.6500",
1612
+ // "taker_fee_decimal": "0.00650000",
1613
+ // "maker_fee_percent": "0.5000",
1614
+ // "maker_fee_decimal": "0.00500000",
1615
+ // "volume_currency": "mxn",
1616
+ // "current_volume": "0.00",
1617
+ // "next_volume": "1500000.00",
1618
+ // "next_maker_fee_percent": "0.490",
1619
+ // "next_taker_fee_percent": "0.637",
1620
+ // "nextVolume": "1500000.00",
1621
+ // "nextFee": "0.490",
1622
+ // "nextTakerFee": "0.637"
1623
+ // },
1624
+ // ...
1625
+ // ],
1626
+ // "deposit_fees": [
1627
+ // {
1628
+ // "currency": "btc",
1629
+ // "method": "rewards",
1630
+ // "fee": "0.00",
1631
+ // "is_fixed": false
1632
+ // },
1633
+ // ...
1634
+ // ],
1635
+ // "withdrawal_fees": {
1636
+ // "ada": "0.20958100",
1637
+ // "bch": "0.00009437",
1638
+ // "ars": "0",
1639
+ // "btc": "0.00001209",
1640
+ // ...
1641
+ // }
1642
+ // }
1643
+ //
1644
+ const result = {};
1645
+ const depositResponse = this.safeValue(response, 'deposit_fees', []);
1646
+ const withdrawalResponse = this.safeValue(response, 'withdrawal_fees', []);
1647
+ for (let i = 0; i < depositResponse.length; i++) {
1648
+ const entry = depositResponse[i];
1649
+ const currencyId = this.safeString(entry, 'currency');
1650
+ const code = this.safeCurrencyCode(currencyId);
1651
+ if ((codes === undefined) || (code in codes)) {
1652
+ result[code] = {
1653
+ 'deposit': {
1654
+ 'fee': this.safeNumber(entry, 'fee'),
1655
+ 'percentage': !this.safeValue(entry, 'is_fixed'),
1656
+ },
1657
+ 'withdraw': {
1658
+ 'fee': undefined,
1659
+ 'percentage': undefined,
1660
+ },
1661
+ 'networks': {},
1662
+ 'info': entry,
1663
+ };
1664
+ }
1665
+ }
1666
+ const withdrawalKeys = Object.keys(withdrawalResponse);
1667
+ for (let i = 0; i < withdrawalKeys.length; i++) {
1668
+ const currencyId = withdrawalKeys[i];
1669
+ const code = this.safeCurrencyCode(currencyId);
1670
+ if ((codes === undefined) || (code in codes)) {
1671
+ const withdrawFee = this.parseNumber(withdrawalResponse[currencyId]);
1672
+ const resultValue = this.safeValue(result, code);
1673
+ if (resultValue === undefined) {
1674
+ result[code] = this.depositWithdrawFee({});
1675
+ }
1676
+ result[code]['withdraw']['fee'] = withdrawFee;
1677
+ result[code]['info'][code] = withdrawFee;
1678
+ }
1679
+ }
1680
+ return result;
1681
+ }
1682
+ /**
1683
+ * @method
1684
+ * @name bitso#withdraw
1685
+ * @description make a withdrawal
1686
+ * @param {string} code unified currency code
1687
+ * @param {float} amount the amount to withdraw
1688
+ * @param {string} address the address to withdraw to
1689
+ * @param {string} tag
1690
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1691
+ * @returns {object} a [transaction structure]{@link https://docs.ccxt.com/#/?id=transaction-structure}
1692
+ */
1693
+ async withdraw(code, amount, address, tag = undefined, params = {}) {
1694
+ [tag, params] = this.handleWithdrawTagAndParams(tag, params);
1695
+ this.checkAddress(address);
1696
+ await this.loadMarkets();
1697
+ const methods = {
1698
+ 'BTC': 'Bitcoin',
1699
+ 'ETH': 'Ether',
1700
+ 'XRP': 'Ripple',
1701
+ 'BCH': 'Bcash',
1702
+ 'LTC': 'Litecoin',
1703
+ };
1704
+ const currency = this.currency(code);
1705
+ const method = (code in methods) ? methods[code] : undefined;
1706
+ if (method === undefined) {
1707
+ throw new ExchangeError(this.id + ' not valid withdraw coin: ' + code);
1708
+ }
1709
+ const request = {
1710
+ 'amount': amount,
1711
+ 'address': address,
1712
+ 'destination_tag': tag,
1713
+ };
1714
+ const classMethod = 'privatePost' + method + 'Withdrawal';
1715
+ const response = await this[classMethod](this.extend(request, params));
1716
+ //
1717
+ // {
1718
+ // "success": true,
1719
+ // "payload": [
1720
+ // {
1721
+ // "wid": "c5b8d7f0768ee91d3b33bee648318688",
1722
+ // "status": "pending",
1723
+ // "created_at": "2016-04-08T17:52:31.000+00:00",
1724
+ // "currency": "btc",
1725
+ // "method": "Bitcoin",
1726
+ // "amount": "0.48650929",
1727
+ // "details": {
1728
+ // "withdrawal_address": "18MsnATiNiKLqUHDTRKjurwMg7inCrdNEp",
1729
+ // "tx_hash": "d4f28394693e9fb5fffcaf730c11f32d1922e5837f76ca82189d3bfe30ded433"
1730
+ // }
1731
+ // },
1732
+ // ]
1733
+ // }
1734
+ //
1735
+ const payload = this.safeValue(response, 'payload', []);
1736
+ const first = this.safeDict(payload, 0);
1737
+ return this.parseTransaction(first, currency);
1738
+ }
1739
+ parseTransaction(transaction, currency = undefined) {
1740
+ //
1741
+ // deposit
1742
+ // {
1743
+ // "fid": "6112c6369100d6ecceb7f54f17cf0511",
1744
+ // "status": "complete",
1745
+ // "created_at": "2022-06-08T12:02:49+0000",
1746
+ // "currency": "btc",
1747
+ // "method": "btc",
1748
+ // "method_name": "Bitcoin",
1749
+ // "amount": "0.00080000",
1750
+ // "asset": "btc",
1751
+ // "network": "btc",
1752
+ // "protocol": "btc",
1753
+ // "integration": "bitgo-v2",
1754
+ // "details": {
1755
+ // "receiving_address": "3NmvbcYKhogs6RoTb4eYCUJ3beRSqLgSif",
1756
+ // "tx_hash": "327f3838531f611485ec59f9d0a119fea1595591e274d942b2c10b9b8262eb1d",
1757
+ // "confirmations": "4"
1758
+ // }
1759
+ // }
1760
+ //
1761
+ // withdraw
1762
+ //
1763
+ // {
1764
+ // "wid": "c5b8d7f0768ee91d3b33bee648318688",
1765
+ // "status": "pending",
1766
+ // "created_at": "2016-04-08T17:52:31.000+00:00",
1767
+ // "currency": "btc",
1768
+ // "method": "Bitcoin",
1769
+ // "amount": "0.48650929",
1770
+ // "details": {
1771
+ // "withdrawal_address": "18MsnATiNiKLqUHDTRKjurwMg7inCrdNEp",
1772
+ // "tx_hash": "d4f28394693e9fb5fffcaf730c11f32d1922e5837f76ca82189d3bfe30ded433"
1773
+ // }
1774
+ // }
1775
+ //
1776
+ const currencyId = this.safeString2(transaction, 'currency', 'asset');
1777
+ currency = this.safeCurrency(currencyId, currency);
1778
+ const details = this.safeValue(transaction, 'details', {});
1779
+ const datetime = this.safeString(transaction, 'created_at');
1780
+ const withdrawalAddress = this.safeString(details, 'withdrawal_address');
1781
+ const receivingAddress = this.safeString(details, 'receiving_address');
1782
+ const networkId = this.safeString2(transaction, 'network', 'method');
1783
+ const status = this.safeString(transaction, 'status');
1784
+ const withdrawId = this.safeString(transaction, 'wid');
1785
+ const networkCode = this.networkIdToCode(networkId);
1786
+ const networkCodeUpper = (networkCode !== undefined) ? networkCode.toUpperCase() : undefined;
1787
+ return {
1788
+ 'id': this.safeString2(transaction, 'wid', 'fid'),
1789
+ 'txid': this.safeString(details, 'tx_hash'),
1790
+ 'timestamp': this.parse8601(datetime),
1791
+ 'datetime': datetime,
1792
+ 'network': networkCodeUpper,
1793
+ 'addressFrom': receivingAddress,
1794
+ 'address': (withdrawalAddress !== undefined) ? withdrawalAddress : receivingAddress,
1795
+ 'addressTo': withdrawalAddress,
1796
+ 'amount': this.safeNumber(transaction, 'amount'),
1797
+ 'type': (withdrawId === undefined) ? 'deposit' : 'withdrawal',
1798
+ 'currency': this.safeCurrencyCode(currencyId, currency),
1799
+ 'status': this.parseTransactionStatus(status),
1800
+ 'updated': undefined,
1801
+ 'tagFrom': undefined,
1802
+ 'tag': undefined,
1803
+ 'tagTo': undefined,
1804
+ 'comment': undefined,
1805
+ 'internal': undefined,
1806
+ 'fee': undefined,
1807
+ 'info': transaction,
1808
+ };
1809
+ }
1810
+ parseTransactionStatus(status) {
1811
+ const statuses = {
1812
+ 'pending': 'pending',
1813
+ 'in_progress': 'pending',
1814
+ 'complete': 'ok',
1815
+ 'failed': 'failed',
1816
+ };
1817
+ return this.safeString(statuses, status, status);
1818
+ }
1819
+ nonce() {
1820
+ return this.milliseconds();
1821
+ }
1822
+ sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
1823
+ let endpoint = '/' + this.version + '/' + this.implodeParams(path, params);
1824
+ const query = this.omit(params, this.extractParams(path));
1825
+ if (method === 'GET' || method === 'DELETE') {
1826
+ if (Object.keys(query).length) {
1827
+ endpoint += '?' + this.urlencode(query);
1828
+ }
1829
+ }
1830
+ const url = this.urls['api']['rest'] + endpoint;
1831
+ if (api === 'private') {
1832
+ this.checkRequiredCredentials();
1833
+ const nonce = this.nonce().toString();
1834
+ endpoint = '/api' + endpoint;
1835
+ let request = [nonce, method, endpoint].join('');
1836
+ if (method !== 'GET' && method !== 'DELETE') {
1837
+ if (Object.keys(query).length) {
1838
+ body = this.json(query);
1839
+ request += body;
1840
+ }
1841
+ }
1842
+ const signature = this.hmac(this.encode(request), this.encode(this.secret), sha256);
1843
+ const auth = this.apiKey + ':' + nonce + ':' + signature;
1844
+ headers = {
1845
+ 'Authorization': 'Bitso ' + auth,
1846
+ // 'Content-Type': 'application/json',
1847
+ };
1848
+ }
1849
+ return { 'url': url, 'method': method, 'body': body, 'headers': headers };
1850
+ }
1851
+ handleErrors(httpCode, reason, url, method, headers, body, response, requestHeaders, requestBody) {
1852
+ if (response === undefined) {
1853
+ return undefined; // fallback to default error handler
1854
+ }
1855
+ if ('success' in response) {
1856
+ //
1857
+ // {"success":false,"error":{"code":104,"message":"Cannot perform request - nonce must be higher than 1520307203724237"}}
1858
+ //
1859
+ let success = this.safeBool(response, 'success', false);
1860
+ if (typeof success === 'string') {
1861
+ if ((success === 'true') || (success === '1')) {
1862
+ success = true;
1863
+ }
1864
+ else {
1865
+ success = false;
1866
+ }
1867
+ }
1868
+ if (!success) {
1869
+ const feedback = this.id + ' ' + this.json(response);
1870
+ const error = this.safeValue(response, 'error');
1871
+ if (error === undefined) {
1872
+ throw new ExchangeError(feedback);
1873
+ }
1874
+ const code = this.safeString(error, 'code');
1875
+ this.throwExactlyMatchedException(this.exceptions, code, feedback);
1876
+ throw new ExchangeError(feedback);
1877
+ }
1878
+ }
1879
+ return undefined;
1880
+ }
1881
+ }