ccxt-ir 4.10.0 → 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 (1047) hide show
  1. package/README.md +4 -4
  2. package/dist/ccxt.browser.min.js +2 -2
  3. package/dist/cjs/ccxt.js +4 -1
  4. package/dist/cjs/src/abstract/bidarz.js +11 -0
  5. package/dist/cjs/src/bidarz.js +337 -0
  6. package/dist/cjs/src/bit24.js +4 -3
  7. package/js/ccxt.d.ts +5 -2
  8. package/js/ccxt.js +4 -2
  9. package/js/src/abstract/bidarz.d.ts +9 -0
  10. package/js/src/abstract/bidarz.js +11 -0
  11. package/js/src/bidarz.d.ts +22 -0
  12. package/js/src/bidarz.js +336 -0
  13. package/js/src/bit24.js +4 -3
  14. package/js/src/src/abantether.d.ts +21 -0
  15. package/js/src/src/abantether.js +353 -0
  16. package/js/src/src/abstract/abantether.d.ts +8 -0
  17. package/js/src/src/abstract/abantether.js +11 -0
  18. package/js/src/src/abstract/afratether.d.ts +9 -0
  19. package/js/src/src/abstract/afratether.js +11 -0
  20. package/js/src/src/abstract/alpaca.d.ts +77 -0
  21. package/js/src/src/abstract/alpaca.js +11 -0
  22. package/js/src/src/abstract/apex.d.ts +34 -0
  23. package/js/src/src/abstract/apex.js +11 -0
  24. package/js/src/src/abstract/arzinja.d.ts +8 -0
  25. package/js/src/src/abstract/arzinja.js +11 -0
  26. package/js/src/src/abstract/arzplus.d.ts +11 -0
  27. package/js/src/src/abstract/arzplus.js +11 -0
  28. package/js/src/src/abstract/ascendex.d.ts +80 -0
  29. package/js/src/src/abstract/ascendex.js +11 -0
  30. package/js/src/src/abstract/asretether.d.ts +8 -0
  31. package/js/src/src/abstract/asretether.js +11 -0
  32. package/js/src/src/abstract/bidarz.d.ts +9 -0
  33. package/js/src/src/abstract/bidarz.js +11 -0
  34. package/js/src/src/abstract/bigone.d.ts +48 -0
  35. package/js/src/src/abstract/bigone.js +11 -0
  36. package/js/src/src/abstract/binance.d.ts +773 -0
  37. package/js/src/src/abstract/binance.js +11 -0
  38. package/js/src/src/abstract/bingx.d.ts +165 -0
  39. package/js/src/src/abstract/bingx.js +11 -0
  40. package/js/src/src/abstract/bit24.d.ts +9 -0
  41. package/js/src/src/abstract/bit24.js +11 -0
  42. package/js/src/src/abstract/bit2c.d.ts +30 -0
  43. package/js/src/src/abstract/bit2c.js +11 -0
  44. package/js/src/src/abstract/bitbank.d.ts +35 -0
  45. package/js/src/src/abstract/bitbank.js +11 -0
  46. package/js/src/src/abstract/bitbarg.d.ts +8 -0
  47. package/js/src/src/abstract/bitbarg.js +11 -0
  48. package/js/src/src/abstract/bitbns.d.ts +43 -0
  49. package/js/src/src/abstract/bitbns.js +11 -0
  50. package/js/src/src/abstract/bitfinex.d.ts +143 -0
  51. package/js/src/src/abstract/bitfinex.js +11 -0
  52. package/js/src/src/abstract/bitflyer.d.ts +42 -0
  53. package/js/src/src/abstract/bitflyer.js +11 -0
  54. package/js/src/src/abstract/bitget.d.ts +578 -0
  55. package/js/src/src/abstract/bitget.js +11 -0
  56. package/js/src/src/abstract/bithumb.d.ts +35 -0
  57. package/js/src/src/abstract/bithumb.js +11 -0
  58. package/js/src/src/abstract/bitimen.d.ts +10 -0
  59. package/js/src/src/abstract/bitimen.js +11 -0
  60. package/js/src/src/abstract/bitir.d.ts +10 -0
  61. package/js/src/src/abstract/bitir.js +11 -0
  62. package/js/src/src/abstract/bitmart.d.ts +120 -0
  63. package/js/src/src/abstract/bitmart.js +11 -0
  64. package/js/src/src/abstract/bitmex.d.ts +100 -0
  65. package/js/src/src/abstract/bitmex.js +11 -0
  66. package/js/src/src/abstract/bitopro.d.ts +33 -0
  67. package/js/src/src/abstract/bitopro.js +11 -0
  68. package/js/src/src/abstract/bitpin.d.ts +11 -0
  69. package/js/src/src/abstract/bitpin.js +11 -0
  70. package/js/src/src/abstract/bitrue.d.ts +75 -0
  71. package/js/src/src/abstract/bitrue.js +11 -0
  72. package/js/src/src/abstract/bitso.d.ts +46 -0
  73. package/js/src/src/abstract/bitso.js +11 -0
  74. package/js/src/src/abstract/bitstamp.d.ts +262 -0
  75. package/js/src/src/abstract/bitstamp.js +11 -0
  76. package/js/src/src/abstract/bitteam.d.ts +32 -0
  77. package/js/src/src/abstract/bitteam.js +11 -0
  78. package/js/src/src/abstract/bittrade.d.ts +117 -0
  79. package/js/src/src/abstract/bittrade.js +11 -0
  80. package/js/src/src/abstract/bitunix.d.ts +9 -0
  81. package/js/src/src/abstract/bitunix.js +11 -0
  82. package/js/src/src/abstract/bitvavo.d.ts +30 -0
  83. package/js/src/src/abstract/bitvavo.js +11 -0
  84. package/js/src/src/abstract/blockchaincom.d.ts +31 -0
  85. package/js/src/src/abstract/blockchaincom.js +11 -0
  86. package/js/src/src/abstract/blofin.d.ts +70 -0
  87. package/js/src/src/abstract/blofin.js +11 -0
  88. package/js/src/src/abstract/btcalpha.d.ts +21 -0
  89. package/js/src/src/abstract/btcalpha.js +11 -0
  90. package/js/src/src/abstract/btcbox.d.ts +18 -0
  91. package/js/src/src/abstract/btcbox.js +11 -0
  92. package/js/src/src/abstract/btcmarkets.d.ts +42 -0
  93. package/js/src/src/abstract/btcmarkets.js +11 -0
  94. package/js/src/src/abstract/btcturk.d.ts +23 -0
  95. package/js/src/src/abstract/btcturk.js +11 -0
  96. package/js/src/src/abstract/bybit.d.ts +316 -0
  97. package/js/src/src/abstract/bybit.js +11 -0
  98. package/js/src/src/abstract/bydfi.d.ts +11 -0
  99. package/js/src/src/abstract/bydfi.js +11 -0
  100. package/js/src/src/abstract/cafearz.d.ts +8 -0
  101. package/js/src/src/abstract/cafearz.js +11 -0
  102. package/js/src/src/abstract/cex.d.ts +35 -0
  103. package/js/src/src/abstract/cex.js +11 -0
  104. package/js/src/src/abstract/coinbase.d.ts +97 -0
  105. package/js/src/src/abstract/coinbase.js +11 -0
  106. package/js/src/src/abstract/coinbaseexchange.d.ts +71 -0
  107. package/js/src/src/abstract/coinbaseexchange.js +11 -0
  108. package/js/src/src/abstract/coinbaseinternational.d.ts +42 -0
  109. package/js/src/src/abstract/coinbaseinternational.js +11 -0
  110. package/js/src/src/abstract/coincatch.d.ts +97 -0
  111. package/js/src/src/abstract/coincatch.js +11 -0
  112. package/js/src/src/abstract/coincheck.d.ts +36 -0
  113. package/js/src/src/abstract/coincheck.js +11 -0
  114. package/js/src/src/abstract/coinex.d.ts +240 -0
  115. package/js/src/src/abstract/coinex.js +11 -0
  116. package/js/src/src/abstract/coinmate.d.ts +65 -0
  117. package/js/src/src/abstract/coinmate.js +11 -0
  118. package/js/src/src/abstract/coinmetro.d.ts +37 -0
  119. package/js/src/src/abstract/coinmetro.js +11 -0
  120. package/js/src/src/abstract/coinone.d.ts +70 -0
  121. package/js/src/src/abstract/coinone.js +11 -0
  122. package/js/src/src/abstract/coinsph.d.ts +57 -0
  123. package/js/src/src/abstract/coinsph.js +11 -0
  124. package/js/src/src/abstract/coinspot.d.ts +31 -0
  125. package/js/src/src/abstract/coinspot.js +11 -0
  126. package/js/src/src/abstract/cryptocom.d.ts +126 -0
  127. package/js/src/src/abstract/cryptocom.js +11 -0
  128. package/js/src/src/abstract/cryptomus.d.ts +23 -0
  129. package/js/src/src/abstract/cryptomus.js +11 -0
  130. package/js/src/src/abstract/defx.d.ts +72 -0
  131. package/js/src/src/abstract/defx.js +11 -0
  132. package/js/src/src/abstract/delta.d.ts +53 -0
  133. package/js/src/src/abstract/delta.js +11 -0
  134. package/js/src/src/abstract/deribit.d.ts +129 -0
  135. package/js/src/src/abstract/deribit.js +11 -0
  136. package/js/src/src/abstract/derive.d.ts +120 -0
  137. package/js/src/src/abstract/derive.js +11 -0
  138. package/js/src/src/abstract/digifinex.d.ts +95 -0
  139. package/js/src/src/abstract/digifinex.js +11 -0
  140. package/js/src/src/abstract/ellipx.d.ts +28 -0
  141. package/js/src/src/abstract/ellipx.js +11 -0
  142. package/js/src/src/abstract/eterex.d.ts +8 -0
  143. package/js/src/src/abstract/eterex.js +11 -0
  144. package/js/src/src/abstract/excoino.d.ts +10 -0
  145. package/js/src/src/abstract/excoino.js +11 -0
  146. package/js/src/src/abstract/exir.d.ts +11 -0
  147. package/js/src/src/abstract/exir.js +11 -0
  148. package/js/src/src/abstract/exmo.d.ts +58 -0
  149. package/js/src/src/abstract/exmo.js +11 -0
  150. package/js/src/src/abstract/exnovin.d.ts +9 -0
  151. package/js/src/src/abstract/exnovin.js +11 -0
  152. package/js/src/src/abstract/farhadexchange.d.ts +8 -0
  153. package/js/src/src/abstract/farhadexchange.js +11 -0
  154. package/js/src/src/abstract/foxbit.d.ts +29 -0
  155. package/js/src/src/abstract/foxbit.js +11 -0
  156. package/js/src/src/abstract/gate.d.ts +287 -0
  157. package/js/src/src/abstract/gate.js +11 -0
  158. package/js/src/src/abstract/gemini.d.ts +62 -0
  159. package/js/src/src/abstract/gemini.js +11 -0
  160. package/js/src/src/abstract/hamtapay.d.ts +9 -0
  161. package/js/src/src/abstract/hamtapay.js +11 -0
  162. package/js/src/src/abstract/hashkey.d.ts +70 -0
  163. package/js/src/src/abstract/hashkey.js +11 -0
  164. package/js/src/src/abstract/hibachi.d.ts +29 -0
  165. package/js/src/src/abstract/hibachi.js +11 -0
  166. package/js/src/src/abstract/hitbtc.d.ts +118 -0
  167. package/js/src/src/abstract/hitbtc.js +11 -0
  168. package/js/src/src/abstract/hitobit.d.ts +11 -0
  169. package/js/src/src/abstract/hitobit.js +11 -0
  170. package/js/src/src/abstract/hollaex.d.ts +36 -0
  171. package/js/src/src/abstract/hollaex.js +11 -0
  172. package/js/src/src/abstract/htx.d.ts +551 -0
  173. package/js/src/src/abstract/htx.js +11 -0
  174. package/js/src/src/abstract/hyperliquid.d.ts +9 -0
  175. package/js/src/src/abstract/hyperliquid.js +11 -0
  176. package/js/src/src/abstract/independentreserve.d.ts +46 -0
  177. package/js/src/src/abstract/independentreserve.js +11 -0
  178. package/js/src/src/abstract/indodax.d.ts +29 -0
  179. package/js/src/src/abstract/indodax.js +11 -0
  180. package/js/src/src/abstract/iranexchange.d.ts +9 -0
  181. package/js/src/src/abstract/iranexchange.js +11 -0
  182. package/js/src/src/abstract/jibitex.d.ts +10 -0
  183. package/js/src/src/abstract/jibitex.js +11 -0
  184. package/js/src/src/abstract/kcex.d.ts +10 -0
  185. package/js/src/src/abstract/kcex.js +11 -0
  186. package/js/src/src/abstract/kifpoolme.d.ts +9 -0
  187. package/js/src/src/abstract/kifpoolme.js +11 -0
  188. package/js/src/src/abstract/kraken.d.ts +61 -0
  189. package/js/src/src/abstract/kraken.js +11 -0
  190. package/js/src/src/abstract/krakenfutures.d.ts +45 -0
  191. package/js/src/src/abstract/krakenfutures.js +11 -0
  192. package/js/src/src/abstract/kucoin.d.ts +227 -0
  193. package/js/src/src/abstract/kucoin.js +11 -0
  194. package/js/src/src/abstract/kucoinfutures.d.ts +254 -0
  195. package/js/src/src/abstract/kucoinfutures.js +11 -0
  196. package/js/src/src/abstract/latoken.d.ts +59 -0
  197. package/js/src/src/abstract/latoken.js +11 -0
  198. package/js/src/src/abstract/lbank.d.ts +65 -0
  199. package/js/src/src/abstract/lbank.js +11 -0
  200. package/js/src/src/abstract/luno.d.ts +41 -0
  201. package/js/src/src/abstract/luno.js +11 -0
  202. package/js/src/src/abstract/mazdax.d.ts +11 -0
  203. package/js/src/src/abstract/mazdax.js +11 -0
  204. package/js/src/src/abstract/mercado.d.ts +28 -0
  205. package/js/src/src/abstract/mercado.js +11 -0
  206. package/js/src/src/abstract/mexc.d.ts +183 -0
  207. package/js/src/src/abstract/mexc.js +11 -0
  208. package/js/src/src/abstract/modetrade.d.ts +122 -0
  209. package/js/src/src/abstract/modetrade.js +11 -0
  210. package/js/src/src/abstract/ndax.d.ts +100 -0
  211. package/js/src/src/abstract/ndax.js +11 -0
  212. package/js/src/src/abstract/nobitex.d.ts +10 -0
  213. package/js/src/src/abstract/nobitex.js +11 -0
  214. package/js/src/src/abstract/novadax.d.ts +32 -0
  215. package/js/src/src/abstract/novadax.js +11 -0
  216. package/js/src/src/abstract/oceanex.d.ts +30 -0
  217. package/js/src/src/abstract/oceanex.js +11 -0
  218. package/js/src/src/abstract/okcoin.d.ts +77 -0
  219. package/js/src/src/abstract/okcoin.js +11 -0
  220. package/js/src/src/abstract/okexchange.d.ts +11 -0
  221. package/js/src/src/abstract/okexchange.js +11 -0
  222. package/js/src/src/abstract/okx.d.ts +352 -0
  223. package/js/src/src/abstract/okx.js +11 -0
  224. package/js/src/src/abstract/ompfinex.d.ts +10 -0
  225. package/js/src/src/abstract/ompfinex.js +11 -0
  226. package/js/src/src/abstract/onetrading.d.ts +26 -0
  227. package/js/src/src/abstract/onetrading.js +11 -0
  228. package/js/src/src/abstract/oxfun.d.ts +37 -0
  229. package/js/src/src/abstract/oxfun.js +11 -0
  230. package/js/src/src/abstract/p2b.d.ts +25 -0
  231. package/js/src/src/abstract/p2b.js +11 -0
  232. package/js/src/src/abstract/paradex.d.ts +66 -0
  233. package/js/src/src/abstract/paradex.js +11 -0
  234. package/js/src/src/abstract/paymium.d.ts +31 -0
  235. package/js/src/src/abstract/paymium.js +11 -0
  236. package/js/src/src/abstract/phemex.d.ts +120 -0
  237. package/js/src/src/abstract/phemex.js +11 -0
  238. package/js/src/src/abstract/pingi.d.ts +9 -0
  239. package/js/src/src/abstract/pingi.js +11 -0
  240. package/js/src/src/abstract/poloniex.d.ts +108 -0
  241. package/js/src/src/abstract/poloniex.js +11 -0
  242. package/js/src/src/abstract/pooleno.d.ts +8 -0
  243. package/js/src/src/abstract/pooleno.js +11 -0
  244. package/js/src/src/abstract/probit.d.ts +26 -0
  245. package/js/src/src/abstract/probit.js +11 -0
  246. package/js/src/src/abstract/raastin.d.ts +11 -0
  247. package/js/src/src/abstract/raastin.js +11 -0
  248. package/js/src/src/abstract/ramzinex.d.ts +10 -0
  249. package/js/src/src/abstract/ramzinex.js +11 -0
  250. package/js/src/src/abstract/sarmayex.d.ts +8 -0
  251. package/js/src/src/abstract/sarmayex.js +11 -0
  252. package/js/src/src/abstract/sarrafex.d.ts +10 -0
  253. package/js/src/src/abstract/sarrafex.js +11 -0
  254. package/js/src/src/abstract/tabdeal.d.ts +10 -0
  255. package/js/src/src/abstract/tabdeal.js +11 -0
  256. package/js/src/src/abstract/tehran_exchange.d.ts +9 -0
  257. package/js/src/src/abstract/tehran_exchange.js +11 -0
  258. package/js/src/src/abstract/tetherland.d.ts +8 -0
  259. package/js/src/src/abstract/tetherland.js +11 -0
  260. package/js/src/src/abstract/timex.d.ts +65 -0
  261. package/js/src/src/abstract/timex.js +11 -0
  262. package/js/src/src/abstract/tokocrypto.d.ts +40 -0
  263. package/js/src/src/abstract/tokocrypto.js +11 -0
  264. package/js/src/src/abstract/toobit.d.ts +10 -0
  265. package/js/src/src/abstract/toobit.js +11 -0
  266. package/js/src/src/abstract/tradeogre.d.ts +21 -0
  267. package/js/src/src/abstract/tradeogre.js +11 -0
  268. package/js/src/src/abstract/twox.d.ts +8 -0
  269. package/js/src/src/abstract/twox.js +11 -0
  270. package/js/src/src/abstract/ubitex.d.ts +10 -0
  271. package/js/src/src/abstract/ubitex.js +11 -0
  272. package/js/src/src/abstract/upbit.d.ts +58 -0
  273. package/js/src/src/abstract/upbit.js +11 -0
  274. package/js/src/src/abstract/vertex.d.ts +22 -0
  275. package/js/src/src/abstract/vertex.js +11 -0
  276. package/js/src/src/abstract/wallex.d.ts +11 -0
  277. package/js/src/src/abstract/wallex.js +11 -0
  278. package/js/src/src/abstract/wavesexchange.d.ts +157 -0
  279. package/js/src/src/abstract/wavesexchange.js +11 -0
  280. package/js/src/src/abstract/whitebit.d.ts +117 -0
  281. package/js/src/src/abstract/whitebit.js +11 -0
  282. package/js/src/src/abstract/woo.d.ts +144 -0
  283. package/js/src/src/abstract/woo.js +11 -0
  284. package/js/src/src/abstract/woofipro.d.ts +122 -0
  285. package/js/src/src/abstract/woofipro.js +11 -0
  286. package/js/src/src/abstract/xt.d.ts +160 -0
  287. package/js/src/src/abstract/xt.js +11 -0
  288. package/js/src/src/abstract/yobit.d.ts +19 -0
  289. package/js/src/src/abstract/yobit.js +11 -0
  290. package/js/src/src/abstract/zaif.d.ts +41 -0
  291. package/js/src/src/abstract/zaif.js +11 -0
  292. package/js/src/src/abstract/zonda.d.ts +56 -0
  293. package/js/src/src/abstract/zonda.js +11 -0
  294. package/js/src/src/afratether.d.ts +21 -0
  295. package/js/src/src/afratether.js +356 -0
  296. package/js/src/src/alpaca.d.ts +332 -0
  297. package/js/src/src/alpaca.js +1908 -0
  298. package/js/src/src/apex.d.ts +333 -0
  299. package/js/src/src/apex.js +1942 -0
  300. package/js/src/src/arzinja.d.ts +21 -0
  301. package/js/src/src/arzinja.js +298 -0
  302. package/js/src/src/arzplus.d.ts +26 -0
  303. package/js/src/src/arzplus.js +581 -0
  304. package/js/src/src/ascendex.d.ts +424 -0
  305. package/js/src/src/ascendex.js +3699 -0
  306. package/js/src/src/asretether.d.ts +21 -0
  307. package/js/src/src/asretether.js +324 -0
  308. package/js/src/src/base/Exchange.d.ts +926 -0
  309. package/js/src/src/base/Exchange.js +7399 -0
  310. package/js/src/src/base/Precise.d.ts +42 -0
  311. package/js/src/src/base/Precise.js +275 -0
  312. package/js/src/src/base/errors.d.ts +168 -0
  313. package/js/src/src/base/errors.js +255 -0
  314. package/js/src/src/base/functions/crypto.d.ts +16 -0
  315. package/js/src/src/base/functions/crypto.js +131 -0
  316. package/js/src/src/base/functions/encode.d.ts +4 -0
  317. package/js/src/src/base/functions/encode.js +32 -0
  318. package/js/src/src/base/functions/generic.d.ts +29 -0
  319. package/js/src/src/base/functions/generic.js +203 -0
  320. package/js/src/src/base/functions/misc.d.ts +9 -0
  321. package/js/src/src/base/functions/misc.js +101 -0
  322. package/js/src/src/base/functions/number.d.ts +27 -0
  323. package/js/src/src/base/functions/number.js +313 -0
  324. package/js/src/src/base/functions/platform.d.ts +7 -0
  325. package/js/src/src/base/functions/platform.js +27 -0
  326. package/js/src/src/base/functions/rsa.d.ts +5 -0
  327. package/js/src/src/base/functions/rsa.js +49 -0
  328. package/js/src/src/base/functions/string.d.ts +7 -0
  329. package/js/src/src/base/functions/string.js +44 -0
  330. package/js/src/src/base/functions/throttle.d.ts +6 -0
  331. package/js/src/src/base/functions/throttle.js +67 -0
  332. package/js/src/src/base/functions/time.d.ts +21 -0
  333. package/js/src/src/base/functions/time.js +171 -0
  334. package/js/src/src/base/functions/totp.d.ts +3 -0
  335. package/js/src/src/base/functions/totp.js +25 -0
  336. package/js/src/src/base/functions/type.d.ts +37 -0
  337. package/js/src/src/base/functions/type.js +179 -0
  338. package/js/src/src/base/functions.d.ts +10 -0
  339. package/js/src/src/base/functions.js +18 -0
  340. package/js/src/src/base/types.d.ts +586 -0
  341. package/js/src/src/base/types.js +7 -0
  342. package/js/src/src/base/ws/Cache.d.ts +27 -0
  343. package/js/src/src/base/ws/Cache.js +260 -0
  344. package/js/src/src/base/ws/Client.d.ts +53 -0
  345. package/js/src/src/base/ws/Client.js +307 -0
  346. package/js/src/src/base/ws/Future.d.ts +8 -0
  347. package/js/src/src/base/ws/Future.js +35 -0
  348. package/js/src/src/base/ws/OrderBook.d.ts +25 -0
  349. package/js/src/src/base/ws/OrderBook.js +130 -0
  350. package/js/src/src/base/ws/OrderBookSide.d.ts +40 -0
  351. package/js/src/src/base/ws/OrderBookSide.js +286 -0
  352. package/js/src/src/base/ws/WsClient.d.ts +11 -0
  353. package/js/src/src/base/ws/WsClient.js +69 -0
  354. package/js/src/src/bequant.d.ts +4 -0
  355. package/js/src/src/bequant.js +35 -0
  356. package/js/src/src/bidarz.d.ts +16 -0
  357. package/js/src/src/bidarz.js +327 -0
  358. package/js/src/src/bigone.d.ts +296 -0
  359. package/js/src/src/bigone.js +2340 -0
  360. package/js/src/src/binance.d.ts +1667 -0
  361. package/js/src/src/binance.js +14400 -0
  362. package/js/src/src/binancecoinm.d.ts +6 -0
  363. package/js/src/src/binancecoinm.js +51 -0
  364. package/js/src/src/binanceus.d.ts +4 -0
  365. package/js/src/src/binanceus.js +225 -0
  366. package/js/src/src/binanceusdm.d.ts +6 -0
  367. package/js/src/src/binanceusdm.js +63 -0
  368. package/js/src/src/bingx.d.ts +778 -0
  369. package/js/src/src/bingx.js +6705 -0
  370. package/js/src/src/bit24.d.ts +24 -0
  371. package/js/src/src/bit24.js +520 -0
  372. package/js/src/src/bit2c.d.ts +146 -0
  373. package/js/src/src/bit2c.js +1029 -0
  374. package/js/src/src/bitbank.d.ts +181 -0
  375. package/js/src/src/bitbank.js +1146 -0
  376. package/js/src/src/bitbarg.d.ts +21 -0
  377. package/js/src/src/bitbarg.js +312 -0
  378. package/js/src/src/bitbns.d.ts +184 -0
  379. package/js/src/src/bitbns.js +1288 -0
  380. package/js/src/src/bitfinex.d.ts +516 -0
  381. package/js/src/src/bitfinex.js +3951 -0
  382. package/js/src/src/bitflyer.d.ts +229 -0
  383. package/js/src/src/bitflyer.js +1209 -0
  384. package/js/src/src/bitget.d.ts +1109 -0
  385. package/js/src/src/bitget.js +11033 -0
  386. package/js/src/src/bithumb.d.ts +165 -0
  387. package/js/src/src/bithumb.js +1257 -0
  388. package/js/src/src/bitimen.d.ts +23 -0
  389. package/js/src/src/bitimen.js +424 -0
  390. package/js/src/src/bitir.d.ts +23 -0
  391. package/js/src/src/bitir.js +521 -0
  392. package/js/src/src/bitmart.d.ts +736 -0
  393. package/js/src/src/bitmart.js +5639 -0
  394. package/js/src/src/bitmex.d.ts +395 -0
  395. package/js/src/src/bitmex.js +3088 -0
  396. package/js/src/src/bitopro.d.ts +295 -0
  397. package/js/src/src/bitopro.js +1892 -0
  398. package/js/src/src/bitpin.d.ts +23 -0
  399. package/js/src/src/bitpin.js +487 -0
  400. package/js/src/src/bitrue.d.ts +384 -0
  401. package/js/src/src/bitrue.js +3382 -0
  402. package/js/src/src/bitso.d.ts +270 -0
  403. package/js/src/src/bitso.js +1881 -0
  404. package/js/src/src/bitstamp.d.ts +355 -0
  405. package/js/src/src/bitstamp.js +2445 -0
  406. package/js/src/src/bitteam.d.ts +229 -0
  407. package/js/src/src/bitteam.js +2420 -0
  408. package/js/src/src/bittrade.d.ts +298 -0
  409. package/js/src/src/bittrade.js +2050 -0
  410. package/js/src/src/bitunix.d.ts +21 -0
  411. package/js/src/src/bitunix.js +326 -0
  412. package/js/src/src/bitvavo.d.ts +311 -0
  413. package/js/src/src/bitvavo.js +2204 -0
  414. package/js/src/src/blockchaincom.d.ts +256 -0
  415. package/js/src/src/blockchaincom.js +1259 -0
  416. package/js/src/src/blofin.d.ts +439 -0
  417. package/js/src/src/blofin.js +2576 -0
  418. package/js/src/src/btcalpha.d.ts +209 -0
  419. package/js/src/src/btcalpha.js +1056 -0
  420. package/js/src/src/btcbox.d.ts +144 -0
  421. package/js/src/src/btcbox.js +834 -0
  422. package/js/src/src/btcmarkets.d.ts +253 -0
  423. package/js/src/src/btcmarkets.js +1418 -0
  424. package/js/src/src/btcturk.d.ts +161 -0
  425. package/js/src/src/btcturk.js +1058 -0
  426. package/js/src/src/bybit.d.ts +1097 -0
  427. package/js/src/src/bybit.js +9382 -0
  428. package/js/src/src/bydfi.d.ts +23 -0
  429. package/js/src/src/bydfi.js +434 -0
  430. package/js/src/src/cafearz.d.ts +21 -0
  431. package/js/src/src/cafearz.js +346 -0
  432. package/js/src/src/cex.d.ts +286 -0
  433. package/js/src/src/cex.js +1799 -0
  434. package/js/src/src/coinbase.d.ts +623 -0
  435. package/js/src/src/coinbase.js +5220 -0
  436. package/js/src/src/coinbaseadvanced.d.ts +4 -0
  437. package/js/src/src/coinbaseadvanced.js +18 -0
  438. package/js/src/src/coinbaseexchange.d.ts +334 -0
  439. package/js/src/src/coinbaseexchange.js +2127 -0
  440. package/js/src/src/coinbaseinternational.d.ts +443 -0
  441. package/js/src/src/coinbaseinternational.js +2336 -0
  442. package/js/src/src/coincatch.d.ts +786 -0
  443. package/js/src/src/coincatch.js +5492 -0
  444. package/js/src/src/coincheck.d.ts +147 -0
  445. package/js/src/src/coincheck.js +962 -0
  446. package/js/src/src/coinex.d.ts +719 -0
  447. package/js/src/src/coinex.js +6166 -0
  448. package/js/src/src/coinmate.d.ts +202 -0
  449. package/js/src/src/coinmate.js +1215 -0
  450. package/js/src/src/coinmetro.d.ts +244 -0
  451. package/js/src/src/coinmetro.js +2024 -0
  452. package/js/src/src/coinone.d.ts +158 -0
  453. package/js/src/src/coinone.js +1278 -0
  454. package/js/src/src/coinsph.d.ts +310 -0
  455. package/js/src/src/coinsph.js +2203 -0
  456. package/js/src/src/coinspot.d.ts +108 -0
  457. package/js/src/src/coinspot.js +653 -0
  458. package/js/src/src/cryptocom.d.ts +463 -0
  459. package/js/src/src/cryptocom.js +3549 -0
  460. package/js/src/src/cryptomus.d.ts +158 -0
  461. package/js/src/src/cryptomus.js +1169 -0
  462. package/js/src/src/defx.d.ts +348 -0
  463. package/js/src/src/defx.js +2139 -0
  464. package/js/src/src/delta.d.ts +407 -0
  465. package/js/src/src/delta.js +3654 -0
  466. package/js/src/src/deribit.d.ts +516 -0
  467. package/js/src/src/deribit.js +3790 -0
  468. package/js/src/src/derive.d.ts +324 -0
  469. package/js/src/src/derive.js +2655 -0
  470. package/js/src/src/digifinex.d.ts +544 -0
  471. package/js/src/src/digifinex.js +4453 -0
  472. package/js/src/src/ellipx.d.ts +237 -0
  473. package/js/src/src/ellipx.js +2071 -0
  474. package/js/src/src/eterex.d.ts +21 -0
  475. package/js/src/src/eterex.js +299 -0
  476. package/js/src/src/excoino.d.ts +23 -0
  477. package/js/src/src/excoino.js +426 -0
  478. package/js/src/src/exir.d.ts +23 -0
  479. package/js/src/src/exir.js +403 -0
  480. package/js/src/src/exmo.d.ts +426 -0
  481. package/js/src/src/exmo.js +2825 -0
  482. package/js/src/src/exnovin.d.ts +22 -0
  483. package/js/src/src/exnovin.js +378 -0
  484. package/js/src/src/farhadexchange.d.ts +21 -0
  485. package/js/src/src/farhadexchange.js +280 -0
  486. package/js/src/src/fmfwio.d.ts +4 -0
  487. package/js/src/src/fmfwio.js +35 -0
  488. package/js/src/src/foxbit.d.ts +352 -0
  489. package/js/src/src/foxbit.js +2016 -0
  490. package/js/src/src/gate.d.ts +1071 -0
  491. package/js/src/src/gate.js +8282 -0
  492. package/js/src/src/gateio.d.ts +4 -0
  493. package/js/src/src/gateio.js +17 -0
  494. package/js/src/src/gemini.d.ts +257 -0
  495. package/js/src/src/gemini.js +2006 -0
  496. package/js/src/src/hamtapay.d.ts +21 -0
  497. package/js/src/src/hamtapay.js +303 -0
  498. package/js/src/src/hashkey.d.ts +628 -0
  499. package/js/src/src/hashkey.js +4363 -0
  500. package/js/src/src/hibachi.d.ts +346 -0
  501. package/js/src/src/hibachi.js +2137 -0
  502. package/js/src/src/hitbtc.d.ts +558 -0
  503. package/js/src/src/hitbtc.js +3847 -0
  504. package/js/src/src/hitobit.d.ts +23 -0
  505. package/js/src/src/hitobit.js +412 -0
  506. package/js/src/src/hollaex.d.ts +305 -0
  507. package/js/src/src/hollaex.js +2046 -0
  508. package/js/src/src/htx.d.ts +961 -0
  509. package/js/src/src/htx.js +9668 -0
  510. package/js/src/src/huobi.d.ts +4 -0
  511. package/js/src/src/huobi.js +17 -0
  512. package/js/src/src/hyperliquid.d.ts +651 -0
  513. package/js/src/src/hyperliquid.js +3937 -0
  514. package/js/src/src/independentreserve.d.ts +169 -0
  515. package/js/src/src/independentreserve.js +1115 -0
  516. package/js/src/src/indodax.d.ts +217 -0
  517. package/js/src/src/indodax.js +1454 -0
  518. package/js/src/src/iranexchange.d.ts +21 -0
  519. package/js/src/src/iranexchange.js +399 -0
  520. package/js/src/src/jibitex.d.ts +23 -0
  521. package/js/src/src/jibitex.js +416 -0
  522. package/js/src/src/kcex.d.ts +21 -0
  523. package/js/src/src/kcex.js +335 -0
  524. package/js/src/src/kifpoolme.d.ts +23 -0
  525. package/js/src/src/kifpoolme.js +410 -0
  526. package/js/src/src/kraken.d.ts +484 -0
  527. package/js/src/src/kraken.js +3518 -0
  528. package/js/src/src/krakenfutures.d.ts +362 -0
  529. package/js/src/src/krakenfutures.js +2885 -0
  530. package/js/src/src/kucoin.d.ts +759 -0
  531. package/js/src/src/kucoin.js +5153 -0
  532. package/js/src/src/kucoinfutures.d.ts +521 -0
  533. package/js/src/src/kucoinfutures.js +3381 -0
  534. package/js/src/src/latoken.d.ts +274 -0
  535. package/js/src/src/latoken.js +1824 -0
  536. package/js/src/src/lbank.d.ts +350 -0
  537. package/js/src/src/lbank.js +3146 -0
  538. package/js/src/src/luno.d.ts +252 -0
  539. package/js/src/src/luno.js +1479 -0
  540. package/js/src/src/mazdax.d.ts +23 -0
  541. package/js/src/src/mazdax.js +534 -0
  542. package/js/src/src/mercado.d.ts +160 -0
  543. package/js/src/src/mercado.js +1011 -0
  544. package/js/src/src/mexc.d.ts +768 -0
  545. package/js/src/src/mexc.js +6102 -0
  546. package/js/src/src/modetrade.d.ts +496 -0
  547. package/js/src/src/modetrade.js +2936 -0
  548. package/js/src/src/myokx.d.ts +4 -0
  549. package/js/src/src/myokx.js +54 -0
  550. package/js/src/src/ndax.d.ts +285 -0
  551. package/js/src/src/ndax.js +2598 -0
  552. package/js/src/src/nobitex.d.ts +23 -0
  553. package/js/src/src/nobitex.js +454 -0
  554. package/js/src/src/novadax.d.ts +279 -0
  555. package/js/src/src/novadax.js +1676 -0
  556. package/js/src/src/oceanex.d.ts +231 -0
  557. package/js/src/src/oceanex.js +1123 -0
  558. package/js/src/src/okcoin.d.ts +346 -0
  559. package/js/src/src/okcoin.js +3211 -0
  560. package/js/src/src/okexchange.d.ts +23 -0
  561. package/js/src/src/okexchange.js +373 -0
  562. package/js/src/src/okx.d.ts +1125 -0
  563. package/js/src/src/okx.js +9009 -0
  564. package/js/src/src/okxus.d.ts +4 -0
  565. package/js/src/src/okxus.js +54 -0
  566. package/js/src/src/ompfinex.d.ts +23 -0
  567. package/js/src/src/ompfinex.js +510 -0
  568. package/js/src/src/onetrading.d.ts +228 -0
  569. package/js/src/src/onetrading.js +1769 -0
  570. package/js/src/src/oxfun.d.ts +442 -0
  571. package/js/src/src/oxfun.js +2920 -0
  572. package/js/src/src/p2b.d.ts +189 -0
  573. package/js/src/src/p2b.js +1344 -0
  574. package/js/src/src/paradex.d.ts +389 -0
  575. package/js/src/src/paradex.js +2607 -0
  576. package/js/src/src/paymium.d.ts +133 -0
  577. package/js/src/src/paymium.js +644 -0
  578. package/js/src/src/phemex.d.ts +497 -0
  579. package/js/src/src/phemex.js +5333 -0
  580. package/js/src/src/pingi.d.ts +22 -0
  581. package/js/src/src/pingi.js +446 -0
  582. package/js/src/src/poloniex.d.ts +441 -0
  583. package/js/src/src/poloniex.js +3681 -0
  584. package/js/src/src/pooleno.d.ts +21 -0
  585. package/js/src/src/pooleno.js +347 -0
  586. package/js/src/src/pro/alpaca.d.ts +95 -0
  587. package/js/src/src/pro/alpaca.js +724 -0
  588. package/js/src/src/pro/apex.d.ts +160 -0
  589. package/js/src/src/pro/apex.js +1044 -0
  590. package/js/src/src/pro/ascendex.d.ts +99 -0
  591. package/js/src/src/pro/ascendex.js +1012 -0
  592. package/js/src/src/pro/bequant.d.ts +4 -0
  593. package/js/src/src/pro/bequant.js +42 -0
  594. package/js/src/src/pro/binance.d.ts +796 -0
  595. package/js/src/src/pro/binance.js +4373 -0
  596. package/js/src/src/pro/binancecoinm.d.ts +4 -0
  597. package/js/src/src/pro/binancecoinm.js +32 -0
  598. package/js/src/src/pro/binanceus.d.ts +4 -0
  599. package/js/src/src/pro/binanceus.js +52 -0
  600. package/js/src/src/pro/binanceusdm.d.ts +4 -0
  601. package/js/src/src/pro/binanceusdm.js +37 -0
  602. package/js/src/src/pro/bingx.d.ts +151 -0
  603. package/js/src/src/pro/bingx.js +1568 -0
  604. package/js/src/src/pro/bitfinex.d.ts +99 -0
  605. package/js/src/src/pro/bitfinex.js +1165 -0
  606. package/js/src/src/pro/bitget.d.ts +257 -0
  607. package/js/src/src/pro/bitget.js +2327 -0
  608. package/js/src/src/pro/bithumb.d.ts +59 -0
  609. package/js/src/src/pro/bithumb.js +395 -0
  610. package/js/src/src/pro/bitmart.d.ts +168 -0
  611. package/js/src/src/pro/bitmart.js +1686 -0
  612. package/js/src/src/pro/bitmex.d.ts +170 -0
  613. package/js/src/src/pro/bitmex.js +1760 -0
  614. package/js/src/src/pro/bitopro.d.ts +69 -0
  615. package/js/src/src/pro/bitopro.js +477 -0
  616. package/js/src/src/pro/bitrue.d.ts +40 -0
  617. package/js/src/src/pro/bitrue.js +461 -0
  618. package/js/src/src/pro/bitstamp.d.ts +53 -0
  619. package/js/src/src/pro/bitstamp.js +587 -0
  620. package/js/src/src/pro/bittrade.d.ts +66 -0
  621. package/js/src/src/pro/bittrade.js +606 -0
  622. package/js/src/src/pro/bitvavo.d.ts +321 -0
  623. package/js/src/src/pro/bitvavo.js +1451 -0
  624. package/js/src/src/pro/blockchaincom.d.ts +89 -0
  625. package/js/src/src/pro/blockchaincom.js +777 -0
  626. package/js/src/src/pro/blofin.d.ts +174 -0
  627. package/js/src/src/pro/blofin.js +743 -0
  628. package/js/src/src/pro/bybit.d.ts +397 -0
  629. package/js/src/src/pro/bybit.js +2519 -0
  630. package/js/src/src/pro/cex.d.ts +220 -0
  631. package/js/src/src/pro/cex.js +1535 -0
  632. package/js/src/src/pro/coinbase.d.ts +119 -0
  633. package/js/src/src/pro/coinbase.js +736 -0
  634. package/js/src/src/pro/coinbaseadvanced.d.ts +4 -0
  635. package/js/src/src/pro/coinbaseadvanced.js +18 -0
  636. package/js/src/src/pro/coinbaseexchange.d.ts +133 -0
  637. package/js/src/src/pro/coinbaseexchange.js +969 -0
  638. package/js/src/src/pro/coinbaseinternational.d.ts +143 -0
  639. package/js/src/src/pro/coinbaseinternational.js +804 -0
  640. package/js/src/src/pro/coincatch.d.ts +207 -0
  641. package/js/src/src/pro/coincatch.js +1562 -0
  642. package/js/src/src/pro/coincheck.d.ts +33 -0
  643. package/js/src/src/pro/coincheck.js +210 -0
  644. package/js/src/src/pro/coinex.d.ts +147 -0
  645. package/js/src/src/pro/coinex.js +1426 -0
  646. package/js/src/src/pro/coinone.d.ts +51 -0
  647. package/js/src/src/pro/coinone.js +413 -0
  648. package/js/src/src/pro/cryptocom.d.ts +300 -0
  649. package/js/src/src/pro/cryptocom.js +1414 -0
  650. package/js/src/src/pro/defx.d.ts +236 -0
  651. package/js/src/src/pro/defx.js +865 -0
  652. package/js/src/src/pro/deribit.d.ts +163 -0
  653. package/js/src/src/pro/deribit.js +1066 -0
  654. package/js/src/src/pro/derive.d.ts +100 -0
  655. package/js/src/src/pro/derive.js +753 -0
  656. package/js/src/src/pro/exmo.d.ts +97 -0
  657. package/js/src/src/pro/exmo.js +903 -0
  658. package/js/src/src/pro/gate.d.ts +360 -0
  659. package/js/src/src/pro/gate.js +2119 -0
  660. package/js/src/src/pro/gateio.d.ts +4 -0
  661. package/js/src/src/pro/gateio.js +17 -0
  662. package/js/src/src/pro/gemini.d.ts +106 -0
  663. package/js/src/src/pro/gemini.js +932 -0
  664. package/js/src/src/pro/hashkey.d.ts +121 -0
  665. package/js/src/src/pro/hashkey.js +843 -0
  666. package/js/src/src/pro/hitbtc.d.ts +235 -0
  667. package/js/src/src/pro/hitbtc.js +1400 -0
  668. package/js/src/src/pro/hollaex.d.ts +77 -0
  669. package/js/src/src/pro/hollaex.js +604 -0
  670. package/js/src/src/pro/htx.d.ts +141 -0
  671. package/js/src/src/pro/htx.js +2415 -0
  672. package/js/src/src/pro/huobi.d.ts +4 -0
  673. package/js/src/src/pro/huobi.js +17 -0
  674. package/js/src/src/pro/hyperliquid.d.ts +218 -0
  675. package/js/src/src/pro/hyperliquid.js +1126 -0
  676. package/js/src/src/pro/independentreserve.d.ts +36 -0
  677. package/js/src/src/pro/independentreserve.js +287 -0
  678. package/js/src/src/pro/kraken.d.ts +233 -0
  679. package/js/src/src/pro/kraken.js +1785 -0
  680. package/js/src/src/pro/krakenfutures.d.ts +178 -0
  681. package/js/src/src/pro/krakenfutures.js +1592 -0
  682. package/js/src/src/pro/kucoin.d.ts +221 -0
  683. package/js/src/src/pro/kucoin.js +1430 -0
  684. package/js/src/src/pro/kucoinfutures.d.ts +205 -0
  685. package/js/src/src/pro/kucoinfutures.js +1295 -0
  686. package/js/src/src/pro/lbank.d.ts +134 -0
  687. package/js/src/src/pro/lbank.js +950 -0
  688. package/js/src/src/pro/luno.d.ts +44 -0
  689. package/js/src/src/pro/luno.js +322 -0
  690. package/js/src/src/pro/mexc.d.ts +210 -0
  691. package/js/src/src/pro/mexc.js +2009 -0
  692. package/js/src/src/pro/modetrade.d.ts +155 -0
  693. package/js/src/src/pro/modetrade.js +1335 -0
  694. package/js/src/src/pro/myokx.d.ts +4 -0
  695. package/js/src/src/pro/myokx.js +39 -0
  696. package/js/src/src/pro/ndax.d.ts +60 -0
  697. package/js/src/src/pro/ndax.js +545 -0
  698. package/js/src/src/pro/okcoin.d.ts +91 -0
  699. package/js/src/src/pro/okcoin.js +763 -0
  700. package/js/src/src/pro/okx.d.ts +408 -0
  701. package/js/src/src/pro/okx.js +2479 -0
  702. package/js/src/src/pro/okxus.d.ts +4 -0
  703. package/js/src/src/pro/okxus.js +39 -0
  704. package/js/src/src/pro/onetrading.d.ts +107 -0
  705. package/js/src/src/pro/onetrading.js +1343 -0
  706. package/js/src/src/pro/oxfun.d.ts +234 -0
  707. package/js/src/src/pro/oxfun.js +1112 -0
  708. package/js/src/src/pro/p2b.d.ts +104 -0
  709. package/js/src/src/pro/p2b.js +506 -0
  710. package/js/src/src/pro/paradex.d.ts +54 -0
  711. package/js/src/src/pro/paradex.js +370 -0
  712. package/js/src/src/pro/phemex.d.ts +129 -0
  713. package/js/src/src/pro/phemex.js +1569 -0
  714. package/js/src/src/pro/poloniex.d.ts +214 -0
  715. package/js/src/src/pro/poloniex.js +1318 -0
  716. package/js/src/src/pro/probit.d.ts +91 -0
  717. package/js/src/src/pro/probit.js +593 -0
  718. package/js/src/src/pro/tradeogre.d.ts +49 -0
  719. package/js/src/src/pro/tradeogre.js +284 -0
  720. package/js/src/src/pro/upbit.d.ts +124 -0
  721. package/js/src/src/pro/upbit.js +689 -0
  722. package/js/src/src/pro/vertex.d.ts +104 -0
  723. package/js/src/src/pro/vertex.js +999 -0
  724. package/js/src/src/pro/whitebit.d.ts +123 -0
  725. package/js/src/src/pro/whitebit.js +971 -0
  726. package/js/src/src/pro/woo.d.ts +161 -0
  727. package/js/src/src/pro/woo.js +1351 -0
  728. package/js/src/src/pro/woofipro.d.ts +155 -0
  729. package/js/src/src/pro/woofipro.js +1335 -0
  730. package/js/src/src/pro/xt.d.ts +165 -0
  731. package/js/src/src/pro/xt.js +1230 -0
  732. package/js/src/src/probit.d.ts +283 -0
  733. package/js/src/src/probit.js +1935 -0
  734. package/js/src/src/protobuf/mexc/compiled.cjs +7186 -0
  735. package/js/src/src/protobuf/mexc/compiled.d.cts +8 -0
  736. package/js/src/src/raastin.d.ts +24 -0
  737. package/js/src/src/raastin.js +494 -0
  738. package/js/src/src/ramzinex.d.ts +23 -0
  739. package/js/src/src/ramzinex.js +510 -0
  740. package/js/src/src/sarmayex.d.ts +21 -0
  741. package/js/src/src/sarmayex.js +376 -0
  742. package/js/src/src/sarrafex.d.ts +23 -0
  743. package/js/src/src/sarrafex.js +501 -0
  744. package/js/src/src/static_dependencies/ethers/abi-coder.d.ts +50 -0
  745. package/js/src/src/static_dependencies/ethers/abi-coder.js +148 -0
  746. package/js/src/src/static_dependencies/ethers/address/address.d.ts +55 -0
  747. package/js/src/src/static_dependencies/ethers/address/address.js +162 -0
  748. package/js/src/src/static_dependencies/ethers/address/checks.d.ts +80 -0
  749. package/js/src/src/static_dependencies/ethers/address/checks.js +119 -0
  750. package/js/src/src/static_dependencies/ethers/address/contract-address.d.ts +47 -0
  751. package/js/src/src/static_dependencies/ethers/address/contract-address.js +73 -0
  752. package/js/src/src/static_dependencies/ethers/address/index.d.ts +48 -0
  753. package/js/src/src/static_dependencies/ethers/address/index.js +24 -0
  754. package/js/src/src/static_dependencies/ethers/bytes32.d.ts +14 -0
  755. package/js/src/src/static_dependencies/ethers/bytes32.js +45 -0
  756. package/js/src/src/static_dependencies/ethers/coders/abstract-coder.d.ts +120 -0
  757. package/js/src/src/static_dependencies/ethers/coders/abstract-coder.js +424 -0
  758. package/js/src/src/static_dependencies/ethers/coders/address.d.ts +12 -0
  759. package/js/src/src/static_dependencies/ethers/coders/address.js +34 -0
  760. package/js/src/src/static_dependencies/ethers/coders/anonymous.d.ts +14 -0
  761. package/js/src/src/static_dependencies/ethers/coders/anonymous.js +27 -0
  762. package/js/src/src/static_dependencies/ethers/coders/array.d.ts +24 -0
  763. package/js/src/src/static_dependencies/ethers/coders/array.js +162 -0
  764. package/js/src/src/static_dependencies/ethers/coders/boolean.d.ts +12 -0
  765. package/js/src/src/static_dependencies/ethers/coders/boolean.js +26 -0
  766. package/js/src/src/static_dependencies/ethers/coders/bytes.d.ts +18 -0
  767. package/js/src/src/static_dependencies/ethers/coders/bytes.js +39 -0
  768. package/js/src/src/static_dependencies/ethers/coders/fixed-bytes.d.ts +14 -0
  769. package/js/src/src/static_dependencies/ethers/coders/fixed-bytes.js +32 -0
  770. package/js/src/src/static_dependencies/ethers/coders/null.d.ts +11 -0
  771. package/js/src/src/static_dependencies/ethers/coders/null.js +29 -0
  772. package/js/src/src/static_dependencies/ethers/coders/number.d.ts +15 -0
  773. package/js/src/src/static_dependencies/ethers/coders/number.js +48 -0
  774. package/js/src/src/static_dependencies/ethers/coders/string.d.ts +12 -0
  775. package/js/src/src/static_dependencies/ethers/coders/string.js +26 -0
  776. package/js/src/src/static_dependencies/ethers/coders/tuple.d.ts +15 -0
  777. package/js/src/src/static_dependencies/ethers/coders/tuple.js +67 -0
  778. package/js/src/src/static_dependencies/ethers/fragments.d.ts +458 -0
  779. package/js/src/src/static_dependencies/ethers/fragments.js +1252 -0
  780. package/js/src/src/static_dependencies/ethers/hash/index.d.ts +10 -0
  781. package/js/src/src/static_dependencies/ethers/hash/index.js +15 -0
  782. package/js/src/src/static_dependencies/ethers/hash/solidity.d.ts +30 -0
  783. package/js/src/src/static_dependencies/ethers/hash/solidity.js +107 -0
  784. package/js/src/src/static_dependencies/ethers/hash/typed-data.d.ts +144 -0
  785. package/js/src/src/static_dependencies/ethers/hash/typed-data.js +490 -0
  786. package/js/src/src/static_dependencies/ethers/index.d.ts +19 -0
  787. package/js/src/src/static_dependencies/ethers/index.js +22 -0
  788. package/js/src/src/static_dependencies/ethers/interface.d.ts +380 -0
  789. package/js/src/src/static_dependencies/ethers/interface.js +990 -0
  790. package/js/src/src/static_dependencies/ethers/typed.d.ts +569 -0
  791. package/js/src/src/static_dependencies/ethers/typed.js +608 -0
  792. package/js/src/src/static_dependencies/ethers/utils/base58.d.ts +22 -0
  793. package/js/src/src/static_dependencies/ethers/utils/base58.js +68 -0
  794. package/js/src/src/static_dependencies/ethers/utils/base64.d.ts +39 -0
  795. package/js/src/src/static_dependencies/ethers/utils/base64.js +58 -0
  796. package/js/src/src/static_dependencies/ethers/utils/data.d.ts +92 -0
  797. package/js/src/src/static_dependencies/ethers/utils/data.js +175 -0
  798. package/js/src/src/static_dependencies/ethers/utils/errors.d.ts +509 -0
  799. package/js/src/src/static_dependencies/ethers/utils/errors.js +227 -0
  800. package/js/src/src/static_dependencies/ethers/utils/events.d.ts +76 -0
  801. package/js/src/src/static_dependencies/ethers/utils/events.js +52 -0
  802. package/js/src/src/static_dependencies/ethers/utils/fixednumber.d.ts +251 -0
  803. package/js/src/src/static_dependencies/ethers/utils/fixednumber.js +529 -0
  804. package/js/src/src/static_dependencies/ethers/utils/index.d.ts +30 -0
  805. package/js/src/src/static_dependencies/ethers/utils/index.js +38 -0
  806. package/js/src/src/static_dependencies/ethers/utils/maths.d.ts +65 -0
  807. package/js/src/src/static_dependencies/ethers/utils/maths.js +220 -0
  808. package/js/src/src/static_dependencies/ethers/utils/properties.d.ts +22 -0
  809. package/js/src/src/static_dependencies/ethers/utils/properties.js +59 -0
  810. package/js/src/src/static_dependencies/ethers/utils/rlp-decode.d.ts +5 -0
  811. package/js/src/src/static_dependencies/ethers/utils/rlp-decode.js +84 -0
  812. package/js/src/src/static_dependencies/ethers/utils/rlp-encode.d.ts +5 -0
  813. package/js/src/src/static_dependencies/ethers/utils/rlp-encode.js +54 -0
  814. package/js/src/src/static_dependencies/ethers/utils/rlp.d.ts +16 -0
  815. package/js/src/src/static_dependencies/ethers/utils/rlp.js +14 -0
  816. package/js/src/src/static_dependencies/ethers/utils/units.d.ts +23 -0
  817. package/js/src/src/static_dependencies/ethers/utils/units.js +88 -0
  818. package/js/src/src/static_dependencies/ethers/utils/utf8.d.ts +95 -0
  819. package/js/src/src/static_dependencies/ethers/utils/utf8.js +225 -0
  820. package/js/src/src/static_dependencies/ethers/utils/uuid.d.ts +7 -0
  821. package/js/src/src/static_dependencies/ethers/utils/uuid.js +35 -0
  822. package/js/src/src/static_dependencies/fflake/browser.d.ts +222 -0
  823. package/js/src/src/static_dependencies/fflake/browser.js +2578 -0
  824. package/js/src/src/static_dependencies/jsencrypt/JSEncrypt.d.ts +116 -0
  825. package/js/src/src/static_dependencies/jsencrypt/JSEncrypt.js +194 -0
  826. package/js/src/src/static_dependencies/jsencrypt/JSEncryptRSAKey.d.ts +142 -0
  827. package/js/src/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +307 -0
  828. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/asn1.d.ts +51 -0
  829. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +565 -0
  830. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/base64.d.ts +5 -0
  831. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +94 -0
  832. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/hex.d.ts +3 -0
  833. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +70 -0
  834. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/int10.d.ts +9 -0
  835. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +91 -0
  836. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/base64.d.ts +3 -0
  837. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +25 -0
  838. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +101 -0
  839. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +1757 -0
  840. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/prng4.d.ts +10 -0
  841. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +50 -0
  842. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rng.d.ts +3 -0
  843. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +80 -0
  844. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rsa.d.ts +23 -0
  845. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +377 -0
  846. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/util.d.ts +7 -0
  847. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/util.js +64 -0
  848. package/js/src/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.d.ts +24 -0
  849. package/js/src/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +1627 -0
  850. package/js/src/src/static_dependencies/noble-curves/_shortw_utils.d.ts +60 -0
  851. package/js/src/src/static_dependencies/noble-curves/_shortw_utils.js +22 -0
  852. package/js/src/src/static_dependencies/noble-curves/abstract/curve.d.ts +67 -0
  853. package/js/src/src/static_dependencies/noble-curves/abstract/curve.js +157 -0
  854. package/js/src/src/static_dependencies/noble-curves/abstract/edwards.d.ts +79 -0
  855. package/js/src/src/static_dependencies/noble-curves/abstract/edwards.js +432 -0
  856. package/js/src/src/static_dependencies/noble-curves/abstract/hash-to-curve.d.ts +56 -0
  857. package/js/src/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +171 -0
  858. package/js/src/src/static_dependencies/noble-curves/abstract/modular.d.ts +68 -0
  859. package/js/src/src/static_dependencies/noble-curves/abstract/modular.js +351 -0
  860. package/js/src/src/static_dependencies/noble-curves/abstract/montgomery.d.ts +25 -0
  861. package/js/src/src/static_dependencies/noble-curves/abstract/montgomery.js +162 -0
  862. package/js/src/src/static_dependencies/noble-curves/abstract/poseidon.d.ts +29 -0
  863. package/js/src/src/static_dependencies/noble-curves/abstract/poseidon.js +115 -0
  864. package/js/src/src/static_dependencies/noble-curves/abstract/utils.d.ts +53 -0
  865. package/js/src/src/static_dependencies/noble-curves/abstract/utils.js +227 -0
  866. package/js/src/src/static_dependencies/noble-curves/abstract/weierstrass.d.ts +204 -0
  867. package/js/src/src/static_dependencies/noble-curves/abstract/weierstrass.js +1016 -0
  868. package/js/src/src/static_dependencies/noble-curves/ed25519.d.ts +53 -0
  869. package/js/src/src/static_dependencies/noble-curves/ed25519.js +402 -0
  870. package/js/src/src/static_dependencies/noble-curves/p256.d.ts +103 -0
  871. package/js/src/src/static_dependencies/noble-curves/p256.js +47 -0
  872. package/js/src/src/static_dependencies/noble-curves/secp256k1.d.ts +91 -0
  873. package/js/src/src/static_dependencies/noble-curves/secp256k1.js +257 -0
  874. package/js/src/src/static_dependencies/noble-hashes/_assert.d.ts +21 -0
  875. package/js/src/src/static_dependencies/noble-hashes/_assert.js +48 -0
  876. package/js/src/src/static_dependencies/noble-hashes/_sha2.d.ts +23 -0
  877. package/js/src/src/static_dependencies/noble-hashes/_sha2.js +119 -0
  878. package/js/src/src/static_dependencies/noble-hashes/_u64.d.ts +35 -0
  879. package/js/src/src/static_dependencies/noble-hashes/_u64.js +66 -0
  880. package/js/src/src/static_dependencies/noble-hashes/crypto.d.ts +1 -0
  881. package/js/src/src/static_dependencies/noble-hashes/crypto.js +7 -0
  882. package/js/src/src/static_dependencies/noble-hashes/hmac.d.ts +26 -0
  883. package/js/src/src/static_dependencies/noble-hashes/hmac.js +82 -0
  884. package/js/src/src/static_dependencies/noble-hashes/md5.d.ts +18 -0
  885. package/js/src/src/static_dependencies/noble-hashes/md5.js +242 -0
  886. package/js/src/src/static_dependencies/noble-hashes/sha1.d.ts +21 -0
  887. package/js/src/src/static_dependencies/noble-hashes/sha1.js +90 -0
  888. package/js/src/src/static_dependencies/noble-hashes/sha256.d.ts +34 -0
  889. package/js/src/src/static_dependencies/noble-hashes/sha256.js +129 -0
  890. package/js/src/src/static_dependencies/noble-hashes/sha3.d.ts +97 -0
  891. package/js/src/src/static_dependencies/noble-hashes/sha3.js +211 -0
  892. package/js/src/src/static_dependencies/noble-hashes/sha512.d.ts +66 -0
  893. package/js/src/src/static_dependencies/noble-hashes/sha512.js +236 -0
  894. package/js/src/src/static_dependencies/noble-hashes/utils.d.ts +77 -0
  895. package/js/src/src/static_dependencies/noble-hashes/utils.js +147 -0
  896. package/js/src/src/static_dependencies/proxies/agent-base/helpers.d.ts +14 -0
  897. package/js/src/src/static_dependencies/proxies/agent-base/helpers.js +42 -0
  898. package/js/src/src/static_dependencies/proxies/agent-base/index.d.ts +33 -0
  899. package/js/src/src/static_dependencies/proxies/agent-base/index.js +82 -0
  900. package/js/src/src/static_dependencies/proxies/http-proxy-agent/index.d.ts +40 -0
  901. package/js/src/src/static_dependencies/proxies/http-proxy-agent/index.js +119 -0
  902. package/js/src/src/static_dependencies/proxies/https-proxy-agent/index.d.ts +45 -0
  903. package/js/src/src/static_dependencies/proxies/https-proxy-agent/index.js +150 -0
  904. package/js/src/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.d.ts +15 -0
  905. package/js/src/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +95 -0
  906. package/js/src/src/static_dependencies/qs/formats.cjs +22 -0
  907. package/js/src/src/static_dependencies/qs/formats.d.cts +14 -0
  908. package/js/src/src/static_dependencies/qs/index.cjs +15 -0
  909. package/js/src/src/static_dependencies/qs/index.d.cts +10 -0
  910. package/js/src/src/static_dependencies/qs/parse.cjs +208 -0
  911. package/js/src/src/static_dependencies/qs/parse.d.cts +8 -0
  912. package/js/src/src/static_dependencies/qs/stringify.cjs +192 -0
  913. package/js/src/src/static_dependencies/qs/stringify.d.cts +8 -0
  914. package/js/src/src/static_dependencies/qs/utils.cjs +202 -0
  915. package/js/src/src/static_dependencies/qs/utils.d.cts +15 -0
  916. package/js/src/src/static_dependencies/scure-base/index.d.ts +92 -0
  917. package/js/src/src/static_dependencies/scure-base/index.js +420 -0
  918. package/js/src/src/static_dependencies/scure-starknet/index.d.ts +79 -0
  919. package/js/src/src/static_dependencies/scure-starknet/index.js +323 -0
  920. package/js/src/src/static_dependencies/starknet/constants.d.ts +61 -0
  921. package/js/src/src/static_dependencies/starknet/constants.js +67 -0
  922. package/js/src/src/static_dependencies/starknet/index.d.ts +3 -0
  923. package/js/src/src/static_dependencies/starknet/index.js +9 -0
  924. package/js/src/src/static_dependencies/starknet/types/cairoEnum.d.ts +2 -0
  925. package/js/src/src/static_dependencies/starknet/types/cairoEnum.js +7 -0
  926. package/js/src/src/static_dependencies/starknet/types/calldata.d.ts +19 -0
  927. package/js/src/src/static_dependencies/starknet/types/calldata.js +28 -0
  928. package/js/src/src/static_dependencies/starknet/types/index.d.ts +13 -0
  929. package/js/src/src/static_dependencies/starknet/types/index.js +16 -0
  930. package/js/src/src/static_dependencies/starknet/types/lib/contract/abi.d.ts +71 -0
  931. package/js/src/src/static_dependencies/starknet/types/lib/contract/abi.js +13 -0
  932. package/js/src/src/static_dependencies/starknet/types/lib/contract/index.d.ts +24 -0
  933. package/js/src/src/static_dependencies/starknet/types/lib/contract/index.js +16 -0
  934. package/js/src/src/static_dependencies/starknet/types/lib/contract/legacy.d.ts +33 -0
  935. package/js/src/src/static_dependencies/starknet/types/lib/contract/legacy.js +7 -0
  936. package/js/src/src/static_dependencies/starknet/types/lib/contract/sierra.d.ts +52 -0
  937. package/js/src/src/static_dependencies/starknet/types/lib/contract/sierra.js +7 -0
  938. package/js/src/src/static_dependencies/starknet/types/lib/index.d.ts +248 -0
  939. package/js/src/src/static_dependencies/starknet/types/lib/index.js +52 -0
  940. package/js/src/src/static_dependencies/starknet/types/typedData.d.ts +44 -0
  941. package/js/src/src/static_dependencies/starknet/types/typedData.js +19 -0
  942. package/js/src/src/static_dependencies/starknet/utils/assert.d.ts +7 -0
  943. package/js/src/src/static_dependencies/starknet/utils/assert.js +17 -0
  944. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/felt.d.ts +6 -0
  945. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +43 -0
  946. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.d.ts +72 -0
  947. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +117 -0
  948. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.d.ts +76 -0
  949. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +136 -0
  950. package/js/src/src/static_dependencies/starknet/utils/calldata/byteArray.d.ts +32 -0
  951. package/js/src/src/static_dependencies/starknet/utils/calldata/byteArray.js +59 -0
  952. package/js/src/src/static_dependencies/starknet/utils/calldata/cairo.d.ts +183 -0
  953. package/js/src/src/static_dependencies/starknet/utils/calldata/cairo.js +229 -0
  954. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.d.ts +38 -0
  955. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +57 -0
  956. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.d.ts +35 -0
  957. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +64 -0
  958. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.d.ts +34 -0
  959. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +63 -0
  960. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/index.d.ts +3 -0
  961. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/index.js +9 -0
  962. package/js/src/src/static_dependencies/starknet/utils/calldata/formatter.d.ts +9 -0
  963. package/js/src/src/static_dependencies/starknet/utils/calldata/formatter.js +67 -0
  964. package/js/src/src/static_dependencies/starknet/utils/calldata/index.d.ts +89 -0
  965. package/js/src/src/static_dependencies/starknet/utils/calldata/index.js +280 -0
  966. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/index.d.ts +5 -0
  967. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/index.js +30 -0
  968. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/interface.d.ts +20 -0
  969. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/interface.js +8 -0
  970. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.d.ts +24 -0
  971. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +36 -0
  972. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.d.ts +23 -0
  973. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +40 -0
  974. package/js/src/src/static_dependencies/starknet/utils/calldata/propertyOrder.d.ts +2 -0
  975. package/js/src/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +155 -0
  976. package/js/src/src/static_dependencies/starknet/utils/calldata/requestParser.d.ts +11 -0
  977. package/js/src/src/static_dependencies/starknet/utils/calldata/requestParser.js +248 -0
  978. package/js/src/src/static_dependencies/starknet/utils/calldata/responseParser.d.ts +11 -0
  979. package/js/src/src/static_dependencies/starknet/utils/calldata/responseParser.js +214 -0
  980. package/js/src/src/static_dependencies/starknet/utils/calldata/tuple.d.ts +6 -0
  981. package/js/src/src/static_dependencies/starknet/utils/calldata/tuple.js +113 -0
  982. package/js/src/src/static_dependencies/starknet/utils/calldata/validate.d.ts +6 -0
  983. package/js/src/src/static_dependencies/starknet/utils/calldata/validate.js +208 -0
  984. package/js/src/src/static_dependencies/starknet/utils/encode.d.ts +207 -0
  985. package/js/src/src/static_dependencies/starknet/utils/encode.js +282 -0
  986. package/js/src/src/static_dependencies/starknet/utils/hash/classHash.d.ts +57 -0
  987. package/js/src/src/static_dependencies/starknet/utils/hash/classHash.js +223 -0
  988. package/js/src/src/static_dependencies/starknet/utils/hash/index.d.ts +6 -0
  989. package/js/src/src/static_dependencies/starknet/utils/hash/index.js +13 -0
  990. package/js/src/src/static_dependencies/starknet/utils/merkle.d.ts +35 -0
  991. package/js/src/src/static_dependencies/starknet/utils/merkle.js +84 -0
  992. package/js/src/src/static_dependencies/starknet/utils/num.d.ts +182 -0
  993. package/js/src/src/static_dependencies/starknet/utils/num.js +244 -0
  994. package/js/src/src/static_dependencies/starknet/utils/selector.d.ts +48 -0
  995. package/js/src/src/static_dependencies/starknet/utils/selector.js +85 -0
  996. package/js/src/src/static_dependencies/starknet/utils/shortString.d.ts +57 -0
  997. package/js/src/src/static_dependencies/starknet/utils/shortString.js +96 -0
  998. package/js/src/src/static_dependencies/starknet/utils/typedData.d.ts +54 -0
  999. package/js/src/src/static_dependencies/starknet/utils/typedData.js +321 -0
  1000. package/js/src/src/static_dependencies/watchable/src/types.d.ts +28 -0
  1001. package/js/src/src/static_dependencies/watchable/src/types.js +8 -0
  1002. package/js/src/src/static_dependencies/watchable/src/unpromise.d.ts +120 -0
  1003. package/js/src/src/static_dependencies/watchable/src/unpromise.js +297 -0
  1004. package/js/src/src/static_dependencies/zklink/zklink-sdk-web.d.ts +1279 -0
  1005. package/js/src/src/static_dependencies/zklink/zklink-sdk-web.js +4282 -0
  1006. package/js/src/src/tabdeal.d.ts +23 -0
  1007. package/js/src/src/tabdeal.js +387 -0
  1008. package/js/src/src/tehran_exchange.d.ts +21 -0
  1009. package/js/src/src/tehran_exchange.js +333 -0
  1010. package/js/src/src/tetherland.d.ts +21 -0
  1011. package/js/src/src/tetherland.js +367 -0
  1012. package/js/src/src/timex.d.ts +247 -0
  1013. package/js/src/src/timex.js +1792 -0
  1014. package/js/src/src/tokocrypto.d.ts +261 -0
  1015. package/js/src/src/tokocrypto.js +2641 -0
  1016. package/js/src/src/toobit.d.ts +22 -0
  1017. package/js/src/src/toobit.js +445 -0
  1018. package/js/src/src/tradeogre.d.ts +149 -0
  1019. package/js/src/src/tradeogre.js +878 -0
  1020. package/js/src/src/twox.d.ts +21 -0
  1021. package/js/src/src/twox.js +371 -0
  1022. package/js/src/src/ubitex.d.ts +23 -0
  1023. package/js/src/src/ubitex.js +433 -0
  1024. package/js/src/src/upbit.d.ts +377 -0
  1025. package/js/src/src/upbit.js +2340 -0
  1026. package/js/src/src/vertex.d.ts +346 -0
  1027. package/js/src/src/vertex.js +3146 -0
  1028. package/js/src/src/wallex.d.ts +23 -0
  1029. package/js/src/src/wallex.js +467 -0
  1030. package/js/src/src/wavesexchange.d.ts +244 -0
  1031. package/js/src/src/wavesexchange.js +2747 -0
  1032. package/js/src/src/whitebit.d.ts +571 -0
  1033. package/js/src/src/whitebit.js +3437 -0
  1034. package/js/src/src/woo.d.ts +727 -0
  1035. package/js/src/src/woo.js +4183 -0
  1036. package/js/src/src/woofipro.d.ts +497 -0
  1037. package/js/src/src/woofipro.js +2941 -0
  1038. package/js/src/src/xt.d.ts +568 -0
  1039. package/js/src/src/xt.js +5184 -0
  1040. package/js/src/src/yobit.d.ts +197 -0
  1041. package/js/src/src/yobit.js +1453 -0
  1042. package/js/src/src/zaif.d.ts +136 -0
  1043. package/js/src/src/zaif.js +821 -0
  1044. package/js/src/src/zonda.d.ts +214 -0
  1045. package/js/src/src/zonda.js +1984 -0
  1046. package/js/test.js +3 -3
  1047. package/package.json +1 -1
@@ -0,0 +1,2340 @@
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/bigone.js';
9
+ import { ExchangeError, AuthenticationError, InsufficientFunds, PermissionDenied, BadRequest, BadSymbol, RateLimitExceeded, InvalidOrder, ArgumentsRequired, NotSupported } from './base/errors.js';
10
+ import { TICK_SIZE } from './base/functions/number.js';
11
+ import { jwt } from './base/functions/rsa.js';
12
+ import { sha256 } from './static_dependencies/noble-hashes/sha256.js';
13
+ import { Precise } from './base/Precise.js';
14
+ // ---------------------------------------------------------------------------
15
+ /**
16
+ * @class bigone
17
+ * @augments Exchange
18
+ */
19
+ export default class bigone extends Exchange {
20
+ describe() {
21
+ return this.deepExtend(super.describe(), {
22
+ 'id': 'bigone',
23
+ 'name': 'BigONE',
24
+ 'countries': ['CN'],
25
+ 'version': 'v3',
26
+ 'rateLimit': 20,
27
+ 'has': {
28
+ 'CORS': undefined,
29
+ 'spot': true,
30
+ 'margin': false,
31
+ 'swap': undefined,
32
+ 'future': undefined,
33
+ 'option': false,
34
+ 'cancelAllOrders': true,
35
+ 'cancelOrder': true,
36
+ 'createMarketBuyOrderWithCost': true,
37
+ 'createMarketOrderWithCost': false,
38
+ 'createMarketSellOrderWithCost': false,
39
+ 'createOrder': true,
40
+ 'createPostOnlyOrder': true,
41
+ 'createStopLimitOrder': true,
42
+ 'createStopMarketOrder': true,
43
+ 'createStopOrder': true,
44
+ 'fetchBalance': true,
45
+ 'fetchClosedOrders': true,
46
+ 'fetchCurrencies': true,
47
+ 'fetchDepositAddress': true,
48
+ 'fetchDepositAddresses': false,
49
+ 'fetchDepositAddressesByNetwork': false,
50
+ 'fetchDeposits': true,
51
+ 'fetchFundingHistory': false,
52
+ 'fetchFundingRate': false,
53
+ 'fetchFundingRateHistory': false,
54
+ 'fetchFundingRates': false,
55
+ 'fetchMarkets': true,
56
+ 'fetchMyTrades': true,
57
+ 'fetchOHLCV': true,
58
+ 'fetchOpenOrders': true,
59
+ 'fetchOrder': true,
60
+ 'fetchOrderBook': true,
61
+ 'fetchOrders': true,
62
+ 'fetchTicker': true,
63
+ 'fetchTickers': true,
64
+ 'fetchTime': true,
65
+ 'fetchTrades': true,
66
+ 'fetchTradingFee': false,
67
+ 'fetchTradingFees': false,
68
+ 'fetchTransactionFees': false,
69
+ 'fetchWithdrawals': true,
70
+ 'transfer': true,
71
+ 'withdraw': true,
72
+ },
73
+ 'timeframes': {
74
+ '1m': 'min1',
75
+ '5m': 'min5',
76
+ '15m': 'min15',
77
+ '30m': 'min30',
78
+ '1h': 'hour1',
79
+ '3h': 'hour3',
80
+ '4h': 'hour4',
81
+ '6h': 'hour6',
82
+ '12h': 'hour12',
83
+ '1d': 'day1',
84
+ '1w': 'week1',
85
+ '1M': 'month1',
86
+ },
87
+ 'hostname': 'big.one',
88
+ 'urls': {
89
+ 'logo': 'https://github.com/user-attachments/assets/4e5cfd53-98cc-4b90-92cd-0d7b512653d1',
90
+ 'api': {
91
+ 'public': 'https://{hostname}/api/v3',
92
+ 'private': 'https://{hostname}/api/v3/viewer',
93
+ 'contractPublic': 'https://{hostname}/api/contract/v2',
94
+ 'contractPrivate': 'https://{hostname}/api/contract/v2',
95
+ 'webExchange': 'https://{hostname}/api/',
96
+ },
97
+ 'www': 'https://big.one',
98
+ 'doc': 'https://open.big.one/docs/api.html',
99
+ 'fees': 'https://bigone.zendesk.com/hc/en-us/articles/115001933374-BigONE-Fee-Policy',
100
+ 'referral': 'https://b1.run/users/new?code=D3LLBVFT',
101
+ },
102
+ 'api': {
103
+ 'public': {
104
+ 'get': [
105
+ 'ping',
106
+ 'asset_pairs',
107
+ 'asset_pairs/{asset_pair_name}/depth',
108
+ 'asset_pairs/{asset_pair_name}/trades',
109
+ 'asset_pairs/{asset_pair_name}/ticker',
110
+ 'asset_pairs/{asset_pair_name}/candles',
111
+ 'asset_pairs/tickers',
112
+ ],
113
+ },
114
+ 'private': {
115
+ 'get': [
116
+ 'accounts',
117
+ 'fund/accounts',
118
+ 'assets/{asset_symbol}/address',
119
+ 'orders',
120
+ 'orders/{id}',
121
+ 'orders/multi',
122
+ 'trades',
123
+ 'withdrawals',
124
+ 'deposits',
125
+ ],
126
+ 'post': [
127
+ 'orders',
128
+ 'orders/{id}/cancel',
129
+ 'orders/cancel',
130
+ 'withdrawals',
131
+ 'transfer',
132
+ ],
133
+ },
134
+ 'contractPublic': {
135
+ 'get': [
136
+ 'symbols',
137
+ 'instruments',
138
+ 'depth@{symbol}/snapshot',
139
+ 'instruments/difference',
140
+ 'instruments/prices',
141
+ ],
142
+ },
143
+ 'contractPrivate': {
144
+ 'get': [
145
+ 'accounts',
146
+ 'orders/{id}',
147
+ 'orders',
148
+ 'orders/opening',
149
+ 'orders/count',
150
+ 'orders/opening/count',
151
+ 'trades',
152
+ 'trades/count',
153
+ ],
154
+ 'post': [
155
+ 'orders',
156
+ 'orders/batch',
157
+ ],
158
+ 'put': [
159
+ 'positions/{symbol}/margin',
160
+ 'positions/{symbol}/risk-limit',
161
+ ],
162
+ 'delete': [
163
+ 'orders/{id}',
164
+ 'orders/batch',
165
+ ],
166
+ },
167
+ 'webExchange': {
168
+ 'get': [
169
+ 'v3/assets',
170
+ ],
171
+ },
172
+ },
173
+ 'fees': {
174
+ 'trading': {
175
+ 'maker': this.parseNumber('0.001'),
176
+ 'taker': this.parseNumber('0.001'),
177
+ },
178
+ 'funding': {
179
+ 'withdraw': {},
180
+ },
181
+ },
182
+ 'options': {
183
+ 'createMarketBuyOrderRequiresPrice': true,
184
+ 'accountsByType': {
185
+ 'spot': 'SPOT',
186
+ 'fund': 'FUND',
187
+ 'funding': 'FUND',
188
+ 'future': 'CONTRACT',
189
+ 'swap': 'CONTRACT',
190
+ },
191
+ 'transfer': {
192
+ 'fillResponseFromRequest': true,
193
+ },
194
+ 'exchangeMillisecondsCorrection': -100,
195
+ 'fetchCurrencies': {
196
+ 'webApiEnable': true,
197
+ 'webApiRetries': 5,
198
+ 'webApiMuteFailure': true,
199
+ },
200
+ 'defaultNetwork': 'ERC20',
201
+ 'defaultNetworks': {
202
+ 'USDT': 'TRC20',
203
+ },
204
+ 'networks': {
205
+ 'ABBC': 'ABBC',
206
+ 'ACA': 'Acala',
207
+ 'AE': 'Aeternity',
208
+ 'ALGO': 'Algorand',
209
+ 'APT': 'Aptos',
210
+ 'AR': 'Arweave',
211
+ 'ASTR': 'Astar',
212
+ 'AVAXC': 'Avax',
213
+ 'AVAXX': 'AvaxChain',
214
+ 'BEAM': 'Beam',
215
+ 'BEP20': 'BinanceSmartChain',
216
+ 'BITCI': 'BitciChain',
217
+ 'BTC': 'Bitcoin',
218
+ 'BCH': 'BitcoinCash',
219
+ 'BSV': 'BitcoinSV',
220
+ 'CELO': 'Celo',
221
+ 'CKKB': 'CKB',
222
+ 'ATOM': 'Cosmos',
223
+ 'CRC20': 'CRO',
224
+ 'DASH': 'Dash',
225
+ 'DOGE': 'Dogecoin',
226
+ 'XEC': 'ECash',
227
+ 'EOS': 'EOS',
228
+ 'ETH': 'Ethereum',
229
+ 'ETC': 'EthereumClassic',
230
+ 'ETHW': 'EthereumPow',
231
+ 'FTM': 'Fantom',
232
+ 'FIL': 'Filecoin',
233
+ 'FSN': 'Fusion',
234
+ 'GRIN': 'Grin',
235
+ 'ONE': 'Harmony',
236
+ 'HRC20': 'Hecochain',
237
+ 'HBAR': 'Hedera',
238
+ 'HNT': 'Helium',
239
+ 'ZEN': 'Horizen',
240
+ 'IOST': 'IOST',
241
+ 'IRIS': 'IRIS',
242
+ 'KLAY': 'Klaytn',
243
+ 'KSM': 'Kusama',
244
+ 'LTC': 'Litecoin',
245
+ 'XMR': 'Monero',
246
+ 'GLMR': 'Moonbeam',
247
+ 'NEAR': 'Near',
248
+ 'NEO': 'Neo',
249
+ 'NEON3': 'NeoN3',
250
+ 'OASIS': 'Oasis',
251
+ 'OKC': 'Okexchain',
252
+ 'ONT': 'Ontology',
253
+ 'OPTIMISM': 'Optimism',
254
+ 'DOT': 'Polkadot',
255
+ 'MATIC': 'Polygon',
256
+ 'QTUM': 'Qtum',
257
+ 'REI': 'REI',
258
+ 'XRP': 'Ripple',
259
+ 'SGB': 'SGB',
260
+ 'SDN': 'Shiden',
261
+ 'SOL': 'Solana',
262
+ 'XLM': 'Stellar',
263
+ 'TERA': 'Tera',
264
+ 'XTZ': 'Tezos',
265
+ 'TRC20': 'Tron',
266
+ 'VET': 'Vechain',
267
+ 'VSYS': 'VSystems',
268
+ 'WAX': 'WAX',
269
+ 'ZEC': 'Zcash',
270
+ // todo: uncomment after consensus
271
+ // 'BITSHARES_OLD': 'Bitshares',
272
+ // 'BITSHARES_NEW': 'NewBitshares',
273
+ // 'MOBILECOIN': 'Mobilecoin',
274
+ // 'LBRY': 'Lbry',
275
+ // 'ZEEPIN': 'Zeepin',
276
+ // 'WAYFCOIN': 'Wayfcoin',
277
+ // 'UCACOIN': 'Ucacoin',
278
+ // 'VANILLACASH': 'Vcash',
279
+ // 'LAMDEN': 'Lamden',
280
+ // 'GXSHARES': 'Gxshares',
281
+ // 'ICP': 'Dfinity',
282
+ // 'CLOVER': 'Clover',
283
+ // 'CLASSZZ': 'Classzz',
284
+ // 'CLASSZZ_V2': 'ClasszzV2',
285
+ // 'CHAINX_V2': 'ChainxV2',
286
+ // 'BITCOINDIAMON': 'BitcoinDiamond',
287
+ // 'BITCOINGOLD': 'BitcoinGold',
288
+ // 'BUTTRUSTSYSTEM': 'BitTrustSystem',
289
+ // 'BYTOM_V2': 'BytomV2',
290
+ // 'LIBONOMY': 'Libonomy',
291
+ // 'TERRACLASSIC': 'Terra',
292
+ // 'TERRA': 'Terra2',
293
+ // 'SUPERBITCOIN': 'SuperBitcoin',
294
+ // 'SIACLASSIC': 'Sia',
295
+ // 'SIACOIN': 'SiaCore',
296
+ // 'PARALLELFINANCE': 'Parallel',
297
+ // 'PLCULTIMA': 'Plcu',
298
+ // 'PLCULTIMA2': 'Plcu2',
299
+ // undetermined: XinFin, YAS, Ycash
300
+ },
301
+ },
302
+ 'features': {
303
+ 'default': {
304
+ 'sandbox': false,
305
+ 'createOrder': {
306
+ 'marginMode': false,
307
+ 'triggerPrice': true,
308
+ 'triggerPriceType': undefined,
309
+ 'triggerDirection': true,
310
+ 'stopLossPrice': false,
311
+ 'takeProfitPrice': false,
312
+ 'attachedStopLossTakeProfit': undefined,
313
+ 'timeInForce': {
314
+ 'IOC': true,
315
+ 'FOK': false,
316
+ 'PO': true,
317
+ 'GTD': false,
318
+ },
319
+ 'hedged': false,
320
+ 'trailing': false,
321
+ 'leverage': false,
322
+ 'marketBuyRequiresPrice': true,
323
+ 'marketBuyByCost': true,
324
+ 'selfTradePrevention': false,
325
+ 'iceberg': false,
326
+ },
327
+ 'createOrders': undefined,
328
+ 'fetchMyTrades': {
329
+ 'marginMode': false,
330
+ 'limit': 200,
331
+ 'daysBack': undefined,
332
+ 'untilDays': undefined,
333
+ 'symbolRequired': true,
334
+ },
335
+ 'fetchOrder': {
336
+ 'marginMode': false,
337
+ 'trigger': false,
338
+ 'trailing': false,
339
+ 'symbolRequired': false,
340
+ },
341
+ 'fetchOpenOrders': {
342
+ 'marginMode': false,
343
+ 'limit': 200,
344
+ 'trigger': false,
345
+ 'trailing': false,
346
+ 'symbolRequired': true,
347
+ },
348
+ 'fetchOrders': {
349
+ 'marginMode': false,
350
+ 'limit': 200,
351
+ 'daysBack': undefined,
352
+ 'untilDays': undefined,
353
+ 'trigger': false,
354
+ 'trailing': false,
355
+ 'symbolRequired': true,
356
+ },
357
+ 'fetchClosedOrders': {
358
+ 'marginMode': false,
359
+ 'limit': 200,
360
+ 'daysBack': undefined,
361
+ 'daysBackCanceled': undefined,
362
+ 'untilDays': undefined,
363
+ 'trigger': false,
364
+ 'trailing': false,
365
+ 'symbolRequired': true,
366
+ },
367
+ 'fetchOHLCV': {
368
+ 'limit': 500,
369
+ },
370
+ },
371
+ 'spot': {
372
+ 'extends': 'default',
373
+ },
374
+ 'forDerivatives': {
375
+ 'extends': 'default',
376
+ 'createOrder': {
377
+ // todo: implement
378
+ 'triggerPriceType': {
379
+ 'mark': true,
380
+ 'index': true,
381
+ 'last': true,
382
+ },
383
+ },
384
+ 'fetchOrders': {
385
+ 'daysBack': 100000,
386
+ 'untilDays': 100000,
387
+ },
388
+ 'fetchClosedOrders': {
389
+ 'daysBack': 100000,
390
+ 'untilDays': 100000,
391
+ },
392
+ },
393
+ 'swap': {
394
+ 'linear': {
395
+ 'extends': 'forDerivatives',
396
+ },
397
+ 'inverse': {
398
+ 'extends': 'forDerivatives',
399
+ },
400
+ },
401
+ 'future': {
402
+ 'linear': undefined,
403
+ 'inverse': undefined,
404
+ },
405
+ },
406
+ 'precisionMode': TICK_SIZE,
407
+ 'exceptions': {
408
+ 'exact': {
409
+ '10001': BadRequest,
410
+ '10005': ExchangeError,
411
+ "Amount's scale must greater than AssetPair's base scale": InvalidOrder,
412
+ "Price mulit with amount should larger than AssetPair's min_quote_value": InvalidOrder,
413
+ '10007': BadRequest,
414
+ '10011': ExchangeError,
415
+ '10013': BadSymbol,
416
+ '10014': InsufficientFunds,
417
+ '10403': PermissionDenied,
418
+ '10429': RateLimitExceeded,
419
+ '40004': AuthenticationError,
420
+ '40103': AuthenticationError,
421
+ '40104': AuthenticationError,
422
+ '40301': PermissionDenied,
423
+ '40302': ExchangeError,
424
+ '40601': ExchangeError,
425
+ '40602': ExchangeError,
426
+ '40603': InsufficientFunds,
427
+ '40604': InvalidOrder,
428
+ '40605': InvalidOrder,
429
+ '40120': InvalidOrder,
430
+ '40121': InvalidOrder,
431
+ '60100': BadSymbol, // {"code":60100,"message":"Asset pair is suspended"}
432
+ },
433
+ 'broad': {},
434
+ },
435
+ 'commonCurrencies': {
436
+ 'CRE': 'Cybereits',
437
+ 'FXT': 'FXTTOKEN',
438
+ 'FREE': 'FreeRossDAO',
439
+ 'MBN': 'Mobilian Coin',
440
+ 'ONE': 'BigONE Token',
441
+ },
442
+ });
443
+ }
444
+ /**
445
+ * @method
446
+ * @name bigone#fetchCurrencies
447
+ * @description fetches all available currencies on an exchange
448
+ * @param {dict} [params] extra parameters specific to the exchange API endpoint
449
+ * @returns {dict} an associative dictionary of currencies
450
+ */
451
+ async fetchCurrencies(params = {}) {
452
+ // we use undocumented link (possible, less informative alternative is : https://big.one/api/uc/v3/assets/accounts)
453
+ const data = await this.fetchWebEndpoint('fetchCurrencies', 'webExchangeGetV3Assets', true);
454
+ if (data === undefined) {
455
+ return undefined;
456
+ }
457
+ //
458
+ // {
459
+ // "code": "0",
460
+ // "message": "",
461
+ // "data": [
462
+ // {
463
+ // "uuid": "17082d1c-0195-4fb6-8779-2cdbcb9eeb3c",
464
+ // "symbol": "USDT",
465
+ // "name": "TetherUS",
466
+ // "scale": 12,
467
+ // "is_fiat": false,
468
+ // "is_transfer_enabled": true,
469
+ // "transfer_scale": 12,
470
+ // "binding_gateways": [
471
+ // {
472
+ // "guid": "07efc37f-d1ec-4bc9-8339-a745256ea2ba",
473
+ // "is_deposit_enabled": true,
474
+ // "gateway_name": "Ethereum",
475
+ // "min_withdrawal_amount": "0.000001",
476
+ // "withdrawal_fee": "5.71",
477
+ // "is_withdrawal_enabled": true,
478
+ // "min_deposit_amount": "0.000001",
479
+ // "is_memo_required": false,
480
+ // "withdrawal_scale": 6,
481
+ // "scale": 12
482
+ // },
483
+ // {
484
+ // "guid": "4e387a9a-a480-40a3-b4ae-ed1773c2db5a",
485
+ // "is_deposit_enabled": true,
486
+ // "gateway_name": "BinanceSmartChain",
487
+ // "min_withdrawal_amount": "10",
488
+ // "withdrawal_fee": "5",
489
+ // "is_withdrawal_enabled": false,
490
+ // "min_deposit_amount": "1",
491
+ // "is_memo_required": false,
492
+ // "withdrawal_scale": 8,
493
+ // "scale": 12
494
+ // }
495
+ // ]
496
+ // },
497
+ // ...
498
+ // ],
499
+ // }
500
+ //
501
+ const currenciesData = this.safeList(data, 'data', []);
502
+ const result = {};
503
+ for (let i = 0; i < currenciesData.length; i++) {
504
+ const currency = currenciesData[i];
505
+ const id = this.safeString(currency, 'symbol');
506
+ const code = this.safeCurrencyCode(id);
507
+ const name = this.safeString(currency, 'name');
508
+ const networks = {};
509
+ const chains = this.safeList(currency, 'binding_gateways', []);
510
+ const currencyMaxPrecision = this.parsePrecision(this.safeString2(currency, 'withdrawal_scale', 'scale'));
511
+ for (let j = 0; j < chains.length; j++) {
512
+ const chain = chains[j];
513
+ const networkId = this.safeString(chain, 'gateway_name');
514
+ const networkCode = this.networkIdToCode(networkId);
515
+ const deposit = this.safeBool(chain, 'is_deposit_enabled');
516
+ const withdraw = this.safeBool(chain, 'is_withdrawal_enabled');
517
+ const minDepositAmount = this.safeString(chain, 'min_deposit_amount');
518
+ const minWithdrawalAmount = this.safeString(chain, 'min_withdrawal_amount');
519
+ const withdrawalFee = this.safeString(chain, 'withdrawal_fee');
520
+ const precision = this.parsePrecision(this.safeString2(chain, 'withdrawal_scale', 'scale'));
521
+ networks[networkCode] = {
522
+ 'id': networkId,
523
+ 'network': networkCode,
524
+ 'margin': undefined,
525
+ 'deposit': deposit,
526
+ 'withdraw': withdraw,
527
+ 'active': undefined,
528
+ 'fee': this.parseNumber(withdrawalFee),
529
+ 'precision': this.parseNumber(precision),
530
+ 'limits': {
531
+ 'deposit': {
532
+ 'min': minDepositAmount,
533
+ 'max': undefined,
534
+ },
535
+ 'withdraw': {
536
+ 'min': minWithdrawalAmount,
537
+ 'max': undefined,
538
+ },
539
+ },
540
+ 'info': chain,
541
+ };
542
+ }
543
+ const chainLength = chains.length;
544
+ let type = undefined;
545
+ if (this.safeBool(currency, 'is_fiat')) {
546
+ type = 'fiat';
547
+ }
548
+ else if (chainLength === 0) {
549
+ if (this.isLeveragedCurrency(id)) {
550
+ type = 'leveraged';
551
+ }
552
+ else {
553
+ type = 'other';
554
+ }
555
+ }
556
+ else {
557
+ type = 'crypto';
558
+ }
559
+ result[code] = this.safeCurrencyStructure({
560
+ 'id': id,
561
+ 'code': code,
562
+ 'info': currency,
563
+ 'name': name,
564
+ 'type': type,
565
+ 'active': undefined,
566
+ 'deposit': undefined,
567
+ 'withdraw': undefined,
568
+ 'fee': undefined,
569
+ 'precision': this.parseNumber(currencyMaxPrecision),
570
+ 'limits': {
571
+ 'amount': {
572
+ 'min': undefined,
573
+ 'max': undefined,
574
+ },
575
+ 'withdraw': {
576
+ 'min': undefined,
577
+ 'max': undefined,
578
+ },
579
+ },
580
+ 'networks': networks,
581
+ });
582
+ }
583
+ return result;
584
+ }
585
+ /**
586
+ * @method
587
+ * @name bigone#fetchMarkets
588
+ * @description retrieves data on all markets for bigone
589
+ * @see https://open.big.one/docs/spot_asset_pair.html
590
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
591
+ * @returns {object[]} an array of objects representing market data
592
+ */
593
+ async fetchMarkets(params = {}) {
594
+ const promises = [this.publicGetAssetPairs(params), this.contractPublicGetSymbols(params)];
595
+ const promisesResult = await Promise.all(promises);
596
+ const response = promisesResult[0];
597
+ const contractResponse = promisesResult[1];
598
+ //
599
+ // {
600
+ // "code":0,
601
+ // "data":[
602
+ // {
603
+ // "id":"01e48809-b42f-4a38-96b1-c4c547365db1",
604
+ // "name":"PCX-BTC",
605
+ // "quote_scale":7,
606
+ // "quote_asset":{
607
+ // "id":"0df9c3c3-255a-46d7-ab82-dedae169fba9",
608
+ // "symbol":"BTC",
609
+ // "name":"Bitcoin",
610
+ // },
611
+ // "base_asset":{
612
+ // "id":"405484f7-4b03-4378-a9c1-2bd718ecab51",
613
+ // "symbol":"PCX",
614
+ // "name":"ChainX",
615
+ // },
616
+ // "base_scale":3,
617
+ // "min_quote_value":"0.0001",
618
+ // "max_quote_value":"35"
619
+ // },
620
+ // ]
621
+ // }
622
+ //
623
+ //
624
+ // [
625
+ // {
626
+ // "baseCurrency": "BTC",
627
+ // "multiplier": 1,
628
+ // "enable": true,
629
+ // "priceStep": 0.5,
630
+ // "maxRiskLimit": 1000,
631
+ // "pricePrecision": 1,
632
+ // "maintenanceMargin": 0.00500,
633
+ // "symbol": "BTCUSD",
634
+ // "valuePrecision": 4,
635
+ // "minRiskLimit": 100,
636
+ // "riskLimit": 100,
637
+ // "isInverse": true,
638
+ // "riskStep": 1,
639
+ // "settleCurrency": "BTC",
640
+ // "baseName": "Bitcoin",
641
+ // "feePrecision": 8,
642
+ // "priceMin": 0.5,
643
+ // "priceMax": 1E+6,
644
+ // "initialMargin": 0.01000,
645
+ // "quoteCurrency": "USD"
646
+ // },
647
+ // ...
648
+ // ]
649
+ //
650
+ const markets = this.safeList(response, 'data', []);
651
+ const result = [];
652
+ for (let i = 0; i < markets.length; i++) {
653
+ const market = markets[i];
654
+ const baseAsset = this.safeDict(market, 'base_asset', {});
655
+ const quoteAsset = this.safeDict(market, 'quote_asset', {});
656
+ const baseId = this.safeString(baseAsset, 'symbol');
657
+ const quoteId = this.safeString(quoteAsset, 'symbol');
658
+ const base = this.safeCurrencyCode(baseId);
659
+ const quote = this.safeCurrencyCode(quoteId);
660
+ result.push(this.safeMarketStructure({
661
+ 'id': this.safeString(market, 'name'),
662
+ 'uuid': this.safeString(market, 'id'),
663
+ 'symbol': base + '/' + quote,
664
+ 'base': base,
665
+ 'quote': quote,
666
+ 'settle': undefined,
667
+ 'baseId': baseId,
668
+ 'quoteId': quoteId,
669
+ 'settleId': undefined,
670
+ 'type': 'spot',
671
+ 'spot': true,
672
+ 'margin': false,
673
+ 'swap': false,
674
+ 'future': false,
675
+ 'option': false,
676
+ 'active': true,
677
+ 'contract': false,
678
+ 'linear': undefined,
679
+ 'inverse': undefined,
680
+ 'contractSize': undefined,
681
+ 'expiry': undefined,
682
+ 'expiryDatetime': undefined,
683
+ 'strike': undefined,
684
+ 'optionType': undefined,
685
+ 'precision': {
686
+ 'amount': this.parseNumber(this.parsePrecision(this.safeString(market, 'base_scale'))),
687
+ 'price': this.parseNumber(this.parsePrecision(this.safeString(market, 'quote_scale'))),
688
+ },
689
+ 'limits': {
690
+ 'leverage': {
691
+ 'min': undefined,
692
+ 'max': undefined,
693
+ },
694
+ 'amount': {
695
+ 'min': undefined,
696
+ 'max': undefined,
697
+ },
698
+ 'price': {
699
+ 'min': undefined,
700
+ 'max': undefined,
701
+ },
702
+ 'cost': {
703
+ 'min': this.safeNumber(market, 'min_quote_value'),
704
+ 'max': this.safeNumber(market, 'max_quote_value'),
705
+ },
706
+ },
707
+ 'created': undefined,
708
+ 'info': market,
709
+ }));
710
+ }
711
+ for (let i = 0; i < contractResponse.length; i++) {
712
+ const market = contractResponse[i];
713
+ const baseId = this.safeString(market, 'baseCurrency');
714
+ const quoteId = this.safeString(market, 'quoteCurrency');
715
+ const settleId = this.safeString(market, 'settleCurrency');
716
+ const marketId = this.safeString(market, 'symbol');
717
+ const base = this.safeCurrencyCode(baseId);
718
+ const quote = this.safeCurrencyCode(quoteId);
719
+ const settle = this.safeCurrencyCode(settleId);
720
+ const inverse = this.safeBool(market, 'isInverse');
721
+ result.push(this.safeMarketStructure({
722
+ 'id': marketId,
723
+ 'symbol': base + '/' + quote + ':' + settle,
724
+ 'base': base,
725
+ 'quote': quote,
726
+ 'settle': settle,
727
+ 'baseId': baseId,
728
+ 'quoteId': quoteId,
729
+ 'settleId': settleId,
730
+ 'type': 'swap',
731
+ 'spot': false,
732
+ 'margin': false,
733
+ 'swap': true,
734
+ 'future': false,
735
+ 'option': false,
736
+ 'active': this.safeBool(market, 'enable'),
737
+ 'contract': true,
738
+ 'linear': !inverse,
739
+ 'inverse': inverse,
740
+ 'contractSize': this.safeNumber(market, 'multiplier'),
741
+ 'expiry': undefined,
742
+ 'expiryDatetime': undefined,
743
+ 'strike': undefined,
744
+ 'optionType': undefined,
745
+ 'precision': {
746
+ 'amount': this.parseNumber(this.parsePrecision(this.safeString(market, 'valuePrecision'))),
747
+ 'price': this.parseNumber(this.parsePrecision(this.safeString(market, 'pricePrecision'))),
748
+ },
749
+ 'limits': {
750
+ 'leverage': {
751
+ 'min': undefined,
752
+ 'max': undefined,
753
+ },
754
+ 'amount': {
755
+ 'min': undefined,
756
+ 'max': undefined,
757
+ },
758
+ 'price': {
759
+ 'min': this.safeNumber(market, 'priceMin'),
760
+ 'max': this.safeNumber(market, 'priceMax'),
761
+ },
762
+ 'cost': {
763
+ 'min': this.safeNumber(market, 'initialMargin'),
764
+ 'max': undefined,
765
+ },
766
+ },
767
+ 'info': market,
768
+ }));
769
+ }
770
+ return result;
771
+ }
772
+ parseTicker(ticker, market = undefined) {
773
+ //
774
+ // spot
775
+ //
776
+ // {
777
+ // "asset_pair_name": "ETH-BTC",
778
+ // "bid": {
779
+ // "price": "0.021593",
780
+ // "order_count": 1,
781
+ // "quantity": "0.20936"
782
+ // },
783
+ // "ask": {
784
+ // "price": "0.021613",
785
+ // "order_count": 1,
786
+ // "quantity": "2.87064"
787
+ // },
788
+ // "open": "0.021795",
789
+ // "high": "0.021795",
790
+ // "low": "0.021471",
791
+ // "close": "0.021613",
792
+ // "volume": "117078.90431",
793
+ // "daily_change": "-0.000182"
794
+ // }
795
+ //
796
+ // contract
797
+ //
798
+ // {
799
+ // "usdtPrice": 1.00031998,
800
+ // "symbol": "BTCUSD",
801
+ // "btcPrice": 34700.4,
802
+ // "ethPrice": 1787.83,
803
+ // "nextFundingRate": 0.00010,
804
+ // "fundingRate": 0.00010,
805
+ // "latestPrice": 34708.5,
806
+ // "last24hPriceChange": 0.0321,
807
+ // "indexPrice": 34700.4,
808
+ // "volume24h": 261319063,
809
+ // "turnover24h": 8204.129380685496,
810
+ // "nextFundingTime": 1698285600000,
811
+ // "markPrice": 34702.4646738,
812
+ // "last24hMaxPrice": 35127.5,
813
+ // "volume24hInUsd": 0.0,
814
+ // "openValue": 32.88054722085945,
815
+ // "last24hMinPrice": 33552.0,
816
+ // "openInterest": 1141372.0
817
+ // }
818
+ //
819
+ const marketType = ('asset_pair_name' in ticker) ? 'spot' : 'swap';
820
+ const marketId = this.safeString2(ticker, 'asset_pair_name', 'symbol');
821
+ const symbol = this.safeSymbol(marketId, market, '-', marketType);
822
+ const close = this.safeString2(ticker, 'close', 'latestPrice');
823
+ const bid = this.safeDict(ticker, 'bid', {});
824
+ const ask = this.safeDict(ticker, 'ask', {});
825
+ return this.safeTicker({
826
+ 'symbol': symbol,
827
+ 'timestamp': undefined,
828
+ 'datetime': undefined,
829
+ 'high': this.safeString2(ticker, 'high', 'last24hMaxPrice'),
830
+ 'low': this.safeString2(ticker, 'low', 'last24hMinPrice'),
831
+ 'bid': this.safeString(bid, 'price'),
832
+ 'bidVolume': this.safeString(bid, 'quantity'),
833
+ 'ask': this.safeString(ask, 'price'),
834
+ 'askVolume': this.safeString(ask, 'quantity'),
835
+ 'vwap': undefined,
836
+ 'open': this.safeString(ticker, 'open'),
837
+ 'close': close,
838
+ 'last': close,
839
+ 'previousClose': undefined,
840
+ 'change': this.safeString2(ticker, 'daily_change', 'last24hPriceChange'),
841
+ 'percentage': undefined,
842
+ 'average': undefined,
843
+ 'baseVolume': this.safeString2(ticker, 'volume', 'volume24h'),
844
+ 'quoteVolume': this.safeString(ticker, 'volume24hInUsd'),
845
+ 'markPrice': this.safeString(ticker, 'markPrice'),
846
+ 'indexPrice': this.safeString(ticker, 'indexPrice'),
847
+ 'info': ticker,
848
+ }, market);
849
+ }
850
+ /**
851
+ * @method
852
+ * @name bigone#fetchTicker
853
+ * @description fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
854
+ * @see https://open.big.one/docs/spot_tickers.html
855
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
856
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
857
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
858
+ */
859
+ async fetchTicker(symbol, params = {}) {
860
+ await this.loadMarkets();
861
+ const market = this.market(symbol);
862
+ let type = undefined;
863
+ [type, params] = this.handleMarketTypeAndParams('fetchTicker', market, params);
864
+ if (type === 'spot') {
865
+ const request = {
866
+ 'asset_pair_name': market['id'],
867
+ };
868
+ const response = await this.publicGetAssetPairsAssetPairNameTicker(this.extend(request, params));
869
+ //
870
+ // {
871
+ // "code":0,
872
+ // "data":{
873
+ // "asset_pair_name":"ETH-BTC",
874
+ // "bid":{"price":"0.021593","order_count":1,"quantity":"0.20936"},
875
+ // "ask":{"price":"0.021613","order_count":1,"quantity":"2.87064"},
876
+ // "open":"0.021795",
877
+ // "high":"0.021795",
878
+ // "low":"0.021471",
879
+ // "close":"0.021613",
880
+ // "volume":"117078.90431",
881
+ // "daily_change":"-0.000182"
882
+ // }
883
+ // }
884
+ //
885
+ const ticker = this.safeDict(response, 'data', {});
886
+ return this.parseTicker(ticker, market);
887
+ }
888
+ else {
889
+ const tickers = await this.fetchTickers([symbol], params);
890
+ return this.safeValue(tickers, symbol);
891
+ }
892
+ }
893
+ /**
894
+ * @method
895
+ * @name bigone#fetchTickers
896
+ * @description fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
897
+ * @see https://open.big.one/docs/spot_tickers.html
898
+ * @param {string[]} [symbols] unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
899
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
900
+ * @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
901
+ */
902
+ async fetchTickers(symbols = undefined, params = {}) {
903
+ await this.loadMarkets();
904
+ let market = undefined;
905
+ const symbol = this.safeString(symbols, 0);
906
+ if (symbol !== undefined) {
907
+ market = this.market(symbol);
908
+ }
909
+ let type = undefined;
910
+ [type, params] = this.handleMarketTypeAndParams('fetchTickers', market, params);
911
+ const isSpot = type === 'spot';
912
+ const request = {};
913
+ symbols = this.marketSymbols(symbols);
914
+ let data = undefined;
915
+ if (isSpot) {
916
+ if (symbols !== undefined) {
917
+ const ids = this.marketIds(symbols);
918
+ request['pair_names'] = ids.join(',');
919
+ }
920
+ const response = await this.publicGetAssetPairsTickers(this.extend(request, params));
921
+ //
922
+ // {
923
+ // "code": 0,
924
+ // "data": [
925
+ // {
926
+ // "asset_pair_name": "PCX-BTC",
927
+ // "bid": {
928
+ // "price": "0.000234",
929
+ // "order_count": 1,
930
+ // "quantity": "0.518"
931
+ // },
932
+ // "ask": {
933
+ // "price": "0.0002348",
934
+ // "order_count": 1,
935
+ // "quantity": "2.348"
936
+ // },
937
+ // "open": "0.0002343",
938
+ // "high": "0.0002348",
939
+ // "low": "0.0002162",
940
+ // "close": "0.0002348",
941
+ // "volume": "12887.016",
942
+ // "daily_change": "0.0000005"
943
+ // },
944
+ // ...
945
+ // ]
946
+ // }
947
+ //
948
+ data = this.safeList(response, 'data', []);
949
+ }
950
+ else {
951
+ data = await this.contractPublicGetInstruments(params);
952
+ //
953
+ // [
954
+ // {
955
+ // "usdtPrice": 1.00031998,
956
+ // "symbol": "BTCUSD",
957
+ // "btcPrice": 34700.4,
958
+ // "ethPrice": 1787.83,
959
+ // "nextFundingRate": 0.00010,
960
+ // "fundingRate": 0.00010,
961
+ // "latestPrice": 34708.5,
962
+ // "last24hPriceChange": 0.0321,
963
+ // "indexPrice": 34700.4,
964
+ // "volume24h": 261319063,
965
+ // "turnover24h": 8204.129380685496,
966
+ // "nextFundingTime": 1698285600000,
967
+ // "markPrice": 34702.4646738,
968
+ // "last24hMaxPrice": 35127.5,
969
+ // "volume24hInUsd": 0.0,
970
+ // "openValue": 32.88054722085945,
971
+ // "last24hMinPrice": 33552.0,
972
+ // "openInterest": 1141372.0
973
+ // }
974
+ // ...
975
+ // ]
976
+ //
977
+ }
978
+ const tickers = this.parseTickers(data, symbols);
979
+ return this.filterByArrayTickers(tickers, 'symbol', symbols);
980
+ }
981
+ /**
982
+ * @method
983
+ * @name bigone#fetchTime
984
+ * @description fetches the current integer timestamp in milliseconds from the exchange server
985
+ * @see https://open.big.one/docs/spot_ping.html
986
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
987
+ * @returns {int} the current integer timestamp in milliseconds from the exchange server
988
+ */
989
+ async fetchTime(params = {}) {
990
+ const response = await this.publicGetPing(params);
991
+ //
992
+ // {
993
+ // "data": {
994
+ // "timestamp": 1527665262168391000
995
+ // }
996
+ // }
997
+ //
998
+ const data = this.safeDict(response, 'data', {});
999
+ const timestamp = this.safeInteger(data, 'Timestamp');
1000
+ return this.parseToInt(timestamp / 1000000);
1001
+ }
1002
+ /**
1003
+ * @method
1004
+ * @name bigone#fetchOrderBook
1005
+ * @description fetches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
1006
+ * @see https://open.big.one/docs/contract_misc.html#get-orderbook-snapshot
1007
+ * @param {string} symbol unified symbol of the market to fetch the order book for
1008
+ * @param {int} [limit] the maximum amount of order book entries to return
1009
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1010
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
1011
+ */
1012
+ async fetchOrderBook(symbol, limit = undefined, params = {}) {
1013
+ await this.loadMarkets();
1014
+ const market = this.market(symbol);
1015
+ let response = undefined;
1016
+ if (market['contract']) {
1017
+ const request = {
1018
+ 'symbol': market['id'],
1019
+ };
1020
+ response = await this.contractPublicGetDepthSymbolSnapshot(this.extend(request, params));
1021
+ //
1022
+ // {
1023
+ // bids: {
1024
+ // '20000': '20',
1025
+ // ...
1026
+ // '34552': '64851',
1027
+ // '34526.5': '59594',
1028
+ // ...
1029
+ // '34551.5': '29711'
1030
+ // },
1031
+ // asks: {
1032
+ // '34557': '34395',
1033
+ // ...
1034
+ // '40000': '20',
1035
+ // '34611.5': '56024',
1036
+ // ...
1037
+ // '34578.5': '66367'
1038
+ // },
1039
+ // to: '59737174',
1040
+ // lastPrice: '34554.5',
1041
+ // bestPrices: {
1042
+ // ask: '34557.0',
1043
+ // bid: '34552.0'
1044
+ // },
1045
+ // from: '0'
1046
+ // }
1047
+ //
1048
+ return this.parseContractOrderBook(response, market['symbol'], limit);
1049
+ }
1050
+ else {
1051
+ const request = {
1052
+ 'asset_pair_name': market['id'],
1053
+ };
1054
+ if (limit !== undefined) {
1055
+ request['limit'] = limit; // default 50, max 200
1056
+ }
1057
+ response = await this.publicGetAssetPairsAssetPairNameDepth(this.extend(request, params));
1058
+ //
1059
+ // {
1060
+ // "code":0,
1061
+ // "data": {
1062
+ // "asset_pair_name": "EOS-BTC",
1063
+ // "bids": [
1064
+ // { "price": "42", "order_count": 4, "quantity": "23.33363711" }
1065
+ // ],
1066
+ // "asks": [
1067
+ // { "price": "45", "order_count": 2, "quantity": "4193.3283464" }
1068
+ // ]
1069
+ // }
1070
+ // }
1071
+ //
1072
+ const orderbook = this.safeDict(response, 'data', {});
1073
+ return this.parseOrderBook(orderbook, market['symbol'], undefined, 'bids', 'asks', 'price', 'quantity');
1074
+ }
1075
+ }
1076
+ parseContractBidsAsks(bidsAsks) {
1077
+ const bidsAsksKeys = Object.keys(bidsAsks);
1078
+ const result = [];
1079
+ for (let i = 0; i < bidsAsksKeys.length; i++) {
1080
+ const price = bidsAsksKeys[i];
1081
+ const amount = bidsAsks[price];
1082
+ result.push([this.parseNumber(price), this.parseNumber(amount)]);
1083
+ }
1084
+ return result;
1085
+ }
1086
+ parseContractOrderBook(orderbook, symbol, limit = undefined) {
1087
+ const responseBids = this.safeValue(orderbook, 'bids');
1088
+ const responseAsks = this.safeValue(orderbook, 'asks');
1089
+ const bids = this.parseContractBidsAsks(responseBids);
1090
+ const asks = this.parseContractBidsAsks(responseAsks);
1091
+ return {
1092
+ 'symbol': symbol,
1093
+ 'bids': this.filterByLimit(this.sortBy(bids, 0, true), limit),
1094
+ 'asks': this.filterByLimit(this.sortBy(asks, 0), limit),
1095
+ 'timestamp': undefined,
1096
+ 'datetime': undefined,
1097
+ 'nonce': undefined,
1098
+ };
1099
+ }
1100
+ parseTrade(trade, market = undefined) {
1101
+ //
1102
+ // fetchTrades (public)
1103
+ //
1104
+ // {
1105
+ // "id": 38199941,
1106
+ // "price": "3378.67",
1107
+ // "amount": "0.019812",
1108
+ // "taker_side": "ASK",
1109
+ // "created_at": "2019-01-29T06:05:56Z"
1110
+ // }
1111
+ //
1112
+ // fetchMyTrades (private)
1113
+ //
1114
+ // {
1115
+ // "id": 10854280,
1116
+ // "asset_pair_name": "XIN-USDT",
1117
+ // "price": "70",
1118
+ // "amount": "1",
1119
+ // "taker_side": "ASK",
1120
+ // "maker_order_id": 58284908,
1121
+ // "taker_order_id": 58284909,
1122
+ // "maker_fee": "0.0008",
1123
+ // "taker_fee": "0.07",
1124
+ // "side": "SELF_TRADING",
1125
+ // "inserted_at": "2019-04-16T12:00:01Z"
1126
+ // },
1127
+ //
1128
+ // {
1129
+ // "id": 10854263,
1130
+ // "asset_pair_name": "XIN-USDT",
1131
+ // "price": "75.7",
1132
+ // "amount": "12.743149",
1133
+ // "taker_side": "BID",
1134
+ // "maker_order_id": null,
1135
+ // "taker_order_id": 58284888,
1136
+ // "maker_fee": null,
1137
+ // "taker_fee": "0.0025486298",
1138
+ // "side": "BID",
1139
+ // "inserted_at": "2019-04-15T06:20:57Z"
1140
+ // }
1141
+ //
1142
+ const timestamp = this.parse8601(this.safeString2(trade, 'created_at', 'inserted_at'));
1143
+ const priceString = this.safeString(trade, 'price');
1144
+ const amountString = this.safeString(trade, 'amount');
1145
+ const marketId = this.safeString(trade, 'asset_pair_name');
1146
+ market = this.safeMarket(marketId, market, '-');
1147
+ let side = this.safeString(trade, 'side');
1148
+ const takerSide = this.safeString(trade, 'taker_side');
1149
+ let takerOrMaker = undefined;
1150
+ if ((takerSide !== undefined) && (side !== undefined) && (side !== 'SELF_TRADING')) {
1151
+ takerOrMaker = (takerSide === side) ? 'taker' : 'maker';
1152
+ }
1153
+ if (side === undefined) {
1154
+ // taker side is not related to buy/sell side
1155
+ // the following code is probably a mistake
1156
+ side = (takerSide === 'ASK') ? 'sell' : 'buy';
1157
+ }
1158
+ else {
1159
+ if (side === 'BID') {
1160
+ side = 'buy';
1161
+ }
1162
+ else if (side === 'ASK') {
1163
+ side = 'sell';
1164
+ }
1165
+ }
1166
+ const makerOrderId = this.safeString(trade, 'maker_order_id');
1167
+ const takerOrderId = this.safeString(trade, 'taker_order_id');
1168
+ let orderId = undefined;
1169
+ if (makerOrderId !== undefined) {
1170
+ orderId = makerOrderId;
1171
+ }
1172
+ else if (takerOrderId !== undefined) {
1173
+ orderId = takerOrderId;
1174
+ }
1175
+ const id = this.safeString(trade, 'id');
1176
+ const result = {
1177
+ 'id': id,
1178
+ 'timestamp': timestamp,
1179
+ 'datetime': this.iso8601(timestamp),
1180
+ 'symbol': market['symbol'],
1181
+ 'order': orderId,
1182
+ 'type': 'limit',
1183
+ 'side': side,
1184
+ 'takerOrMaker': takerOrMaker,
1185
+ 'price': priceString,
1186
+ 'amount': amountString,
1187
+ 'cost': undefined,
1188
+ 'info': trade,
1189
+ };
1190
+ let makerCurrencyCode;
1191
+ let takerCurrencyCode;
1192
+ if (takerOrMaker !== undefined) {
1193
+ if (side === 'buy') {
1194
+ if (takerOrMaker === 'maker') {
1195
+ makerCurrencyCode = market['base'];
1196
+ takerCurrencyCode = market['quote'];
1197
+ }
1198
+ else {
1199
+ makerCurrencyCode = market['quote'];
1200
+ takerCurrencyCode = market['base'];
1201
+ }
1202
+ }
1203
+ else {
1204
+ if (takerOrMaker === 'maker') {
1205
+ makerCurrencyCode = market['quote'];
1206
+ takerCurrencyCode = market['base'];
1207
+ }
1208
+ else {
1209
+ makerCurrencyCode = market['base'];
1210
+ takerCurrencyCode = market['quote'];
1211
+ }
1212
+ }
1213
+ }
1214
+ else if (side === 'SELF_TRADING') {
1215
+ if (takerSide === 'BID') {
1216
+ makerCurrencyCode = market['quote'];
1217
+ takerCurrencyCode = market['base'];
1218
+ }
1219
+ else if (takerSide === 'ASK') {
1220
+ makerCurrencyCode = market['base'];
1221
+ takerCurrencyCode = market['quote'];
1222
+ }
1223
+ }
1224
+ const makerFeeCost = this.safeString(trade, 'maker_fee');
1225
+ const takerFeeCost = this.safeString(trade, 'taker_fee');
1226
+ if (makerFeeCost !== undefined) {
1227
+ if (takerFeeCost !== undefined) {
1228
+ result['fees'] = [
1229
+ { 'cost': makerFeeCost, 'currency': makerCurrencyCode },
1230
+ { 'cost': takerFeeCost, 'currency': takerCurrencyCode },
1231
+ ];
1232
+ }
1233
+ else {
1234
+ result['fee'] = { 'cost': makerFeeCost, 'currency': makerCurrencyCode };
1235
+ }
1236
+ }
1237
+ else if (takerFeeCost !== undefined) {
1238
+ result['fee'] = { 'cost': takerFeeCost, 'currency': takerCurrencyCode };
1239
+ }
1240
+ else {
1241
+ result['fee'] = undefined;
1242
+ }
1243
+ return this.safeTrade(result, market);
1244
+ }
1245
+ /**
1246
+ * @method
1247
+ * @name bigone#fetchTrades
1248
+ * @description get the list of most recent trades for a particular symbol
1249
+ * @see https://open.big.one/docs/spot_asset_pair_trade.html
1250
+ * @param {string} symbol unified symbol of the market to fetch trades for
1251
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
1252
+ * @param {int} [limit] the maximum amount of trades to fetch
1253
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1254
+ * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
1255
+ */
1256
+ async fetchTrades(symbol, since = undefined, limit = undefined, params = {}) {
1257
+ await this.loadMarkets();
1258
+ const market = this.market(symbol);
1259
+ if (market['contract']) {
1260
+ throw new BadRequest(this.id + ' fetchTrades () can only fetch trades for spot markets');
1261
+ }
1262
+ const request = {
1263
+ 'asset_pair_name': market['id'],
1264
+ };
1265
+ const response = await this.publicGetAssetPairsAssetPairNameTrades(this.extend(request, params));
1266
+ //
1267
+ // {
1268
+ // "code": 0,
1269
+ // "data": [
1270
+ // {
1271
+ // "id": 38199941,
1272
+ // "price": "3378.67",
1273
+ // "amount": "0.019812",
1274
+ // "taker_side": "ASK",
1275
+ // "created_at": "2019-01-29T06:05:56Z"
1276
+ // },
1277
+ // {
1278
+ // "id": 38199934,
1279
+ // "price": "3376.14",
1280
+ // "amount": "0.019384",
1281
+ // "taker_side": "ASK",
1282
+ // "created_at": "2019-01-29T06:05:40Z"
1283
+ // }
1284
+ // ]
1285
+ // }
1286
+ //
1287
+ const trades = this.safeList(response, 'data', []);
1288
+ return this.parseTrades(trades, market, since, limit);
1289
+ }
1290
+ parseOHLCV(ohlcv, market = undefined) {
1291
+ //
1292
+ // {
1293
+ // "close": "0.021562",
1294
+ // "high": "0.021563",
1295
+ // "low": "0.02156",
1296
+ // "open": "0.021563",
1297
+ // "time": "2019-11-21T07:54:00Z",
1298
+ // "volume": "59.84376"
1299
+ // }
1300
+ //
1301
+ return [
1302
+ this.parse8601(this.safeString(ohlcv, 'time')),
1303
+ this.safeNumber(ohlcv, 'open'),
1304
+ this.safeNumber(ohlcv, 'high'),
1305
+ this.safeNumber(ohlcv, 'low'),
1306
+ this.safeNumber(ohlcv, 'close'),
1307
+ this.safeNumber(ohlcv, 'volume'),
1308
+ ];
1309
+ }
1310
+ /**
1311
+ * @method
1312
+ * @name bigone#fetchOHLCV
1313
+ * @description fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
1314
+ * @see https://open.big.one/docs/spot_asset_pair_candle.html
1315
+ * @param {string} symbol unified symbol of the market to fetch OHLCV data for
1316
+ * @param {string} timeframe the length of time each candle represents
1317
+ * @param {int} [since] timestamp in ms of the earliest candle to fetch
1318
+ * @param {int} [limit] the maximum amount of candles to fetch
1319
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1320
+ * @param {int} [params.until] timestamp in ms of the earliest candle to fetch
1321
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
1322
+ */
1323
+ async fetchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
1324
+ await this.loadMarkets();
1325
+ const market = this.market(symbol);
1326
+ if (market['contract']) {
1327
+ throw new BadRequest(this.id + ' fetchOHLCV () can only fetch ohlcvs for spot markets');
1328
+ }
1329
+ const until = this.safeInteger(params, 'until');
1330
+ const untilIsDefined = (until !== undefined);
1331
+ const sinceIsDefined = (since !== undefined);
1332
+ if (limit === undefined) {
1333
+ limit = (sinceIsDefined && untilIsDefined) ? 500 : 100; // default 100, max 500, if since and limit defined then fetch all the candles between them unless it exceeds the max of 500
1334
+ }
1335
+ const request = {
1336
+ 'asset_pair_name': market['id'],
1337
+ 'period': this.safeString(this.timeframes, timeframe, timeframe),
1338
+ 'limit': limit,
1339
+ };
1340
+ if (sinceIsDefined) {
1341
+ // const start = this.parseToInt (since / 1000);
1342
+ const duration = this.parseTimeframe(timeframe);
1343
+ const endByLimit = this.sum(since, limit * duration * 1000);
1344
+ if (untilIsDefined) {
1345
+ request['time'] = this.iso8601(Math.min(endByLimit, until + 1));
1346
+ }
1347
+ else {
1348
+ request['time'] = this.iso8601(endByLimit);
1349
+ }
1350
+ }
1351
+ else if (untilIsDefined) {
1352
+ request['time'] = this.iso8601(until + 1);
1353
+ }
1354
+ params = this.omit(params, 'until');
1355
+ const response = await this.publicGetAssetPairsAssetPairNameCandles(this.extend(request, params));
1356
+ //
1357
+ // {
1358
+ // "code": 0,
1359
+ // "data": [
1360
+ // {
1361
+ // "close": "0.021656",
1362
+ // "high": "0.021658",
1363
+ // "low": "0.021652",
1364
+ // "open": "0.021652",
1365
+ // "time": "2019-11-21T09:30:00Z",
1366
+ // "volume": "53.08664"
1367
+ // },
1368
+ // {
1369
+ // "close": "0.021652",
1370
+ // "high": "0.021656",
1371
+ // "low": "0.021652",
1372
+ // "open": "0.021656",
1373
+ // "time": "2019-11-21T09:29:00Z",
1374
+ // "volume": "88.39861"
1375
+ // },
1376
+ // ]
1377
+ // }
1378
+ //
1379
+ const data = this.safeList(response, 'data', []);
1380
+ return this.parseOHLCVs(data, market, timeframe, since, limit);
1381
+ }
1382
+ parseBalance(response) {
1383
+ const result = {
1384
+ 'info': response,
1385
+ 'timestamp': undefined,
1386
+ 'datetime': undefined,
1387
+ };
1388
+ const balances = this.safeList(response, 'data', []);
1389
+ for (let i = 0; i < balances.length; i++) {
1390
+ const balance = balances[i];
1391
+ const symbol = this.safeString(balance, 'asset_symbol');
1392
+ const code = this.safeCurrencyCode(symbol);
1393
+ const account = this.account();
1394
+ account['total'] = this.safeString(balance, 'balance');
1395
+ account['used'] = this.safeString(balance, 'locked_balance');
1396
+ result[code] = account;
1397
+ }
1398
+ return this.safeBalance(result);
1399
+ }
1400
+ /**
1401
+ * @method
1402
+ * @name bigone#fetchBalance
1403
+ * @description query for balance and get the amount of funds available for trading or funds locked in orders
1404
+ * @see https://open.big.one/docs/fund_accounts.html
1405
+ * @see https://open.big.one/docs/spot_accounts.html
1406
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1407
+ * @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
1408
+ */
1409
+ async fetchBalance(params = {}) {
1410
+ await this.loadMarkets();
1411
+ const type = this.safeString(params, 'type', '');
1412
+ params = this.omit(params, 'type');
1413
+ let response = undefined;
1414
+ if (type === 'funding' || type === 'fund') {
1415
+ response = await this.privateGetFundAccounts(params);
1416
+ }
1417
+ else {
1418
+ response = await this.privateGetAccounts(params);
1419
+ }
1420
+ //
1421
+ // {
1422
+ // "code":0,
1423
+ // "data":[
1424
+ // {"asset_symbol":"NKC","balance":"0","locked_balance":"0"},
1425
+ // {"asset_symbol":"UBTC","balance":"0","locked_balance":"0"},
1426
+ // {"asset_symbol":"READ","balance":"0","locked_balance":"0"},
1427
+ // ],
1428
+ // }
1429
+ //
1430
+ return this.parseBalance(response);
1431
+ }
1432
+ parseType(type) {
1433
+ const types = {
1434
+ 'STOP_LIMIT': 'limit',
1435
+ 'STOP_MARKET': 'market',
1436
+ 'LIMIT': 'limit',
1437
+ 'MARKET': 'market',
1438
+ };
1439
+ return this.safeString(types, type, type);
1440
+ }
1441
+ parseOrder(order, market = undefined) {
1442
+ //
1443
+ // {
1444
+ // "id": "42154072251",
1445
+ // "asset_pair_name": "SOL-USDT",
1446
+ // "price": "20",
1447
+ // "amount": "0.5",
1448
+ // "filled_amount": "0",
1449
+ // "avg_deal_price": "0",
1450
+ // "side": "ASK",
1451
+ // "state": "PENDING",
1452
+ // "created_at": "2023-09-13T03:42:00Z",
1453
+ // "updated_at": "2023-09-13T03:42:00Z",
1454
+ // "type": "LIMIT",
1455
+ // "stop_price": "0",
1456
+ // "immediate_or_cancel": false,
1457
+ // "post_only": false,
1458
+ // "client_order_id": ''
1459
+ // }
1460
+ //
1461
+ const id = this.safeString(order, 'id');
1462
+ const marketId = this.safeString(order, 'asset_pair_name');
1463
+ const symbol = this.safeSymbol(marketId, market, '-');
1464
+ const timestamp = this.parse8601(this.safeString(order, 'created_at'));
1465
+ let side = this.safeString(order, 'side');
1466
+ if (side === 'BID') {
1467
+ side = 'buy';
1468
+ }
1469
+ else {
1470
+ side = 'sell';
1471
+ }
1472
+ let triggerPrice = this.safeString(order, 'stop_price');
1473
+ if (Precise.stringEq(triggerPrice, '0')) {
1474
+ triggerPrice = undefined;
1475
+ }
1476
+ const immediateOrCancel = this.safeBool(order, 'immediate_or_cancel');
1477
+ let timeInForce = undefined;
1478
+ if (immediateOrCancel) {
1479
+ timeInForce = 'IOC';
1480
+ }
1481
+ const type = this.parseType(this.safeString(order, 'type'));
1482
+ const price = this.safeString(order, 'price');
1483
+ let amount = undefined;
1484
+ let filled = undefined;
1485
+ let cost = undefined;
1486
+ if (type === 'market' && side === 'buy') {
1487
+ cost = this.safeString(order, 'filled_amount');
1488
+ }
1489
+ else {
1490
+ amount = this.safeString(order, 'amount');
1491
+ filled = this.safeString(order, 'filled_amount');
1492
+ }
1493
+ return this.safeOrder({
1494
+ 'info': order,
1495
+ 'id': id,
1496
+ 'clientOrderId': this.safeString(order, 'client_order_id'),
1497
+ 'timestamp': timestamp,
1498
+ 'datetime': this.iso8601(timestamp),
1499
+ 'lastTradeTimestamp': this.parse8601(this.safeString(order, 'updated_at')),
1500
+ 'symbol': symbol,
1501
+ 'type': type,
1502
+ 'timeInForce': timeInForce,
1503
+ 'postOnly': this.safeBool(order, 'post_only'),
1504
+ 'side': side,
1505
+ 'price': price,
1506
+ 'triggerPrice': triggerPrice,
1507
+ 'amount': amount,
1508
+ 'cost': cost,
1509
+ 'average': this.safeString(order, 'avg_deal_price'),
1510
+ 'filled': filled,
1511
+ 'remaining': undefined,
1512
+ 'status': this.parseOrderStatus(this.safeString(order, 'state')),
1513
+ 'fee': undefined,
1514
+ 'trades': undefined,
1515
+ }, market);
1516
+ }
1517
+ /**
1518
+ * @method
1519
+ * @name bigone#createMarketBuyOrderWithCost
1520
+ * @description create a market buy order by providing the symbol and cost
1521
+ * @see https://open.big.one/docs/spot_orders.html#create-order
1522
+ * @param {string} symbol unified symbol of the market to create an order in
1523
+ * @param {float} cost how much you want to trade in units of the quote currency
1524
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1525
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1526
+ */
1527
+ async createMarketBuyOrderWithCost(symbol, cost, params = {}) {
1528
+ await this.loadMarkets();
1529
+ const market = this.market(symbol);
1530
+ if (!market['spot']) {
1531
+ throw new NotSupported(this.id + ' createMarketBuyOrderWithCost() supports spot orders only');
1532
+ }
1533
+ params['createMarketBuyOrderRequiresPrice'] = false;
1534
+ return await this.createOrder(symbol, 'market', 'buy', cost, undefined, params);
1535
+ }
1536
+ /**
1537
+ * @method
1538
+ * @name bigone#createOrder
1539
+ * @description create a trade order
1540
+ * @see https://open.big.one/docs/spot_orders.html#create-order
1541
+ * @param {string} symbol unified symbol of the market to create an order in
1542
+ * @param {string} type 'market' or 'limit'
1543
+ * @param {string} side 'buy' or 'sell'
1544
+ * @param {float} amount how much of currency you want to trade in units of base currency
1545
+ * @param {float} [price] the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1546
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1547
+ * @param {float} [params.triggerPrice] the price at which a trigger order is triggered at
1548
+ * @param {bool} [params.postOnly] if true, the order will only be posted to the order book and not executed immediately
1549
+ * @param {string} [params.timeInForce] "GTC", "IOC", or "PO"
1550
+ * @param {float} [params.cost] *spot market buy only* the quote quantity that can be used as an alternative for the amount
1551
+ *
1552
+ * EXCHANGE SPECIFIC PARAMETERS
1553
+ * @param {string} [params.operator] *stop order only* GTE or LTE (default)
1554
+ * @param {string} [params.client_order_id] must match ^[a-zA-Z0-9-_]{1,36}$ this regex. client_order_id is unique in 24 hours, If created 24 hours later and the order closed, it will be released and can be reused
1555
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1556
+ */
1557
+ async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
1558
+ await this.loadMarkets();
1559
+ const market = this.market(symbol);
1560
+ const isBuy = (side === 'buy');
1561
+ const requestSide = isBuy ? 'BID' : 'ASK';
1562
+ let uppercaseType = type.toUpperCase();
1563
+ const isLimit = uppercaseType === 'LIMIT';
1564
+ const exchangeSpecificParam = this.safeBool(params, 'post_only', false);
1565
+ let postOnly = undefined;
1566
+ [postOnly, params] = this.handlePostOnly((uppercaseType === 'MARKET'), exchangeSpecificParam, params);
1567
+ const triggerPrice = this.safeStringN(params, ['triggerPrice', 'stopPrice', 'stop_price']);
1568
+ const request = {
1569
+ 'asset_pair_name': market['id'],
1570
+ 'side': requestSide,
1571
+ 'amount': this.amountToPrecision(symbol, amount), // order amount, string, required
1572
+ // "price": this.priceToPrecision (symbol, price), // order price, string, required
1573
+ // "operator": "GTE", // stop orders only, GTE greater than and equal, LTE less than and equal
1574
+ // "immediate_or_cancel": false, // limit orders only, must be false when post_only is true
1575
+ // "post_only": false, // limit orders only, must be false when immediate_or_cancel is true
1576
+ };
1577
+ if (isLimit || (uppercaseType === 'STOP_LIMIT')) {
1578
+ request['price'] = this.priceToPrecision(symbol, price);
1579
+ if (isLimit) {
1580
+ const timeInForce = this.safeString(params, 'timeInForce');
1581
+ if (timeInForce === 'IOC') {
1582
+ request['immediate_or_cancel'] = true;
1583
+ }
1584
+ if (postOnly) {
1585
+ request['post_only'] = true;
1586
+ }
1587
+ }
1588
+ request['amount'] = this.amountToPrecision(symbol, amount);
1589
+ }
1590
+ else {
1591
+ if (isBuy) {
1592
+ let createMarketBuyOrderRequiresPrice = true;
1593
+ [createMarketBuyOrderRequiresPrice, params] = this.handleOptionAndParams(params, 'createOrder', 'createMarketBuyOrderRequiresPrice', true);
1594
+ const cost = this.safeNumber(params, 'cost');
1595
+ params = this.omit(params, 'cost');
1596
+ if (createMarketBuyOrderRequiresPrice) {
1597
+ if ((price === undefined) && (cost === undefined)) {
1598
+ throw new InvalidOrder(this.id + ' createOrder() requires the price argument for market buy orders to calculate the total cost to spend (amount * price), alternatively set the createMarketBuyOrderRequiresPrice option or param to false and pass the cost to spend in the amount argument');
1599
+ }
1600
+ else {
1601
+ const amountString = this.numberToString(amount);
1602
+ const priceString = this.numberToString(price);
1603
+ const quoteAmount = this.parseToNumeric(Precise.stringMul(amountString, priceString));
1604
+ const costRequest = (cost !== undefined) ? cost : quoteAmount;
1605
+ request['amount'] = this.costToPrecision(symbol, costRequest);
1606
+ }
1607
+ }
1608
+ else {
1609
+ request['amount'] = this.costToPrecision(symbol, amount);
1610
+ }
1611
+ }
1612
+ else {
1613
+ request['amount'] = this.amountToPrecision(symbol, amount);
1614
+ }
1615
+ }
1616
+ if (triggerPrice !== undefined) {
1617
+ request['stop_price'] = this.priceToPrecision(symbol, triggerPrice);
1618
+ request['operator'] = isBuy ? 'GTE' : 'LTE';
1619
+ if (isLimit) {
1620
+ uppercaseType = 'STOP_LIMIT';
1621
+ }
1622
+ else if (uppercaseType === 'MARKET') {
1623
+ uppercaseType = 'STOP_MARKET';
1624
+ }
1625
+ }
1626
+ request['type'] = uppercaseType;
1627
+ const clientOrderId = this.safeString(params, 'clientOrderId');
1628
+ if (clientOrderId !== undefined) {
1629
+ request['client_order_id'] = clientOrderId;
1630
+ }
1631
+ params = this.omit(params, ['stop_price', 'stopPrice', 'triggerPrice', 'timeInForce', 'clientOrderId']);
1632
+ const response = await this.privatePostOrders(this.extend(request, params));
1633
+ //
1634
+ // {
1635
+ // "id": 10,
1636
+ // "asset_pair_name": "EOS-BTC",
1637
+ // "price": "10.00",
1638
+ // "amount": "10.00",
1639
+ // "filled_amount": "9.0",
1640
+ // "avg_deal_price": "12.0",
1641
+ // "side": "ASK",
1642
+ // "state": "FILLED",
1643
+ // "created_at":"2019-01-29T06:05:56Z",
1644
+ // "updated_at":"2019-01-29T06:05:56Z"
1645
+ // }
1646
+ //
1647
+ const order = this.safeDict(response, 'data');
1648
+ return this.parseOrder(order, market);
1649
+ }
1650
+ /**
1651
+ * @method
1652
+ * @name bigone#cancelOrder
1653
+ * @description cancels an open order
1654
+ * @see https://open.big.one/docs/spot_orders.html#cancel-order
1655
+ * @param {string} id order id
1656
+ * @param {string} symbol Not used by bigone cancelOrder ()
1657
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1658
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1659
+ */
1660
+ async cancelOrder(id, symbol = undefined, params = {}) {
1661
+ await this.loadMarkets();
1662
+ const request = { 'id': id };
1663
+ const response = await this.privatePostOrdersIdCancel(this.extend(request, params));
1664
+ // {
1665
+ // "id": 10,
1666
+ // "asset_pair_name": "EOS-BTC",
1667
+ // "price": "10.00",
1668
+ // "amount": "10.00",
1669
+ // "filled_amount": "9.0",
1670
+ // "avg_deal_price": "12.0",
1671
+ // "side": "ASK",
1672
+ // "state": "CANCELLED",
1673
+ // "created_at":"2019-01-29T06:05:56Z",
1674
+ // "updated_at":"2019-01-29T06:05:56Z"
1675
+ // }
1676
+ const order = this.safeDict(response, 'data');
1677
+ return this.parseOrder(order);
1678
+ }
1679
+ /**
1680
+ * @method
1681
+ * @name bigone#cancelAllOrders
1682
+ * @description cancel all open orders
1683
+ * @see https://open.big.one/docs/spot_orders.html#cancel-all-orders
1684
+ * @param {string} symbol unified market symbol, only orders in the market of this symbol are cancelled when symbol is not undefined
1685
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1686
+ * @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1687
+ */
1688
+ async cancelAllOrders(symbol = undefined, params = {}) {
1689
+ await this.loadMarkets();
1690
+ const market = this.market(symbol);
1691
+ const request = {
1692
+ 'asset_pair_name': market['id'],
1693
+ };
1694
+ const response = await this.privatePostOrdersCancel(this.extend(request, params));
1695
+ //
1696
+ // {
1697
+ // "code":0,
1698
+ // "data": {
1699
+ // "cancelled":[
1700
+ // 58272370,
1701
+ // 58272377
1702
+ // ],
1703
+ // "failed": []
1704
+ // }
1705
+ // }
1706
+ //
1707
+ const data = this.safeDict(response, 'data', {});
1708
+ const cancelled = this.safeList(data, 'cancelled', []);
1709
+ const failed = this.safeList(data, 'failed', []);
1710
+ const result = [];
1711
+ for (let i = 0; i < cancelled.length; i++) {
1712
+ const orderId = cancelled[i];
1713
+ result.push(this.safeOrder({
1714
+ 'info': orderId,
1715
+ 'id': orderId,
1716
+ 'status': 'canceled',
1717
+ }));
1718
+ }
1719
+ for (let i = 0; i < failed.length; i++) {
1720
+ const orderId = failed[i];
1721
+ result.push(this.safeOrder({
1722
+ 'info': orderId,
1723
+ 'id': orderId,
1724
+ 'status': 'failed',
1725
+ }));
1726
+ }
1727
+ return result;
1728
+ }
1729
+ /**
1730
+ * @method
1731
+ * @name bigone#fetchOrder
1732
+ * @description fetches information on an order made by the user
1733
+ * @see https://open.big.one/docs/spot_orders.html#get-one-order
1734
+ * @param {string} id the order id
1735
+ * @param {string} symbol not used by bigone fetchOrder
1736
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1737
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1738
+ */
1739
+ async fetchOrder(id, symbol = undefined, params = {}) {
1740
+ await this.loadMarkets();
1741
+ const request = { 'id': id };
1742
+ const response = await this.privateGetOrdersId(this.extend(request, params));
1743
+ const order = this.safeDict(response, 'data', {});
1744
+ return this.parseOrder(order);
1745
+ }
1746
+ /**
1747
+ * @method
1748
+ * @name bigone#fetchOrders
1749
+ * @description fetches information on multiple orders made by the user
1750
+ * @see https://open.big.one/docs/spot_orders.html#get-user-orders-in-one-asset-pair
1751
+ * @param {string} symbol unified market symbol of the market orders were made in
1752
+ * @param {int} [since] the earliest time in ms to fetch orders for
1753
+ * @param {int} [limit] the maximum number of order structures to retrieve
1754
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1755
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1756
+ */
1757
+ async fetchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1758
+ if (symbol === undefined) {
1759
+ throw new ArgumentsRequired(this.id + ' fetchOrders() requires a symbol argument');
1760
+ }
1761
+ await this.loadMarkets();
1762
+ const market = this.market(symbol);
1763
+ const request = {
1764
+ 'asset_pair_name': market['id'],
1765
+ // 'page_token': 'dxzef', // request page after this page token
1766
+ // 'side': 'ASK', // 'ASK' or 'BID', optional
1767
+ // 'state': 'FILLED', // 'CANCELLED', 'FILLED', 'PENDING'
1768
+ // 'limit' 20, // default 20, max 200
1769
+ };
1770
+ if (limit !== undefined) {
1771
+ request['limit'] = limit; // default 20, max 200
1772
+ }
1773
+ const response = await this.privateGetOrders(this.extend(request, params));
1774
+ //
1775
+ // {
1776
+ // "code":0,
1777
+ // "data": [
1778
+ // {
1779
+ // "id": 10,
1780
+ // "asset_pair_name": "ETH-BTC",
1781
+ // "price": "10.00",
1782
+ // "amount": "10.00",
1783
+ // "filled_amount": "9.0",
1784
+ // "avg_deal_price": "12.0",
1785
+ // "side": "ASK",
1786
+ // "state": "FILLED",
1787
+ // "created_at":"2019-01-29T06:05:56Z",
1788
+ // "updated_at":"2019-01-29T06:05:56Z",
1789
+ // },
1790
+ // ],
1791
+ // "page_token":"dxzef",
1792
+ // }
1793
+ //
1794
+ const orders = this.safeList(response, 'data', []);
1795
+ return this.parseOrders(orders, market, since, limit);
1796
+ }
1797
+ /**
1798
+ * @method
1799
+ * @name bigone#fetchMyTrades
1800
+ * @description fetch all trades made by the user
1801
+ * @see https://open.big.one/docs/spot_trade.html#trades-of-user
1802
+ * @param {string} symbol unified market symbol
1803
+ * @param {int} [since] the earliest time in ms to fetch trades for
1804
+ * @param {int} [limit] the maximum number of trades structures to retrieve
1805
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1806
+ * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
1807
+ */
1808
+ async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1809
+ if (symbol === undefined) {
1810
+ throw new ArgumentsRequired(this.id + ' fetchMyTrades() requires a symbol argument');
1811
+ }
1812
+ await this.loadMarkets();
1813
+ const market = this.market(symbol);
1814
+ const request = {
1815
+ 'asset_pair_name': market['id'],
1816
+ // 'page_token': 'dxzef', // request page after this page token
1817
+ };
1818
+ if (limit !== undefined) {
1819
+ request['limit'] = limit; // default 20, max 200
1820
+ }
1821
+ const response = await this.privateGetTrades(this.extend(request, params));
1822
+ //
1823
+ // {
1824
+ // "code": 0,
1825
+ // "data": [
1826
+ // {
1827
+ // "id": 10854280,
1828
+ // "asset_pair_name": "XIN-USDT",
1829
+ // "price": "70",
1830
+ // "amount": "1",
1831
+ // "taker_side": "ASK",
1832
+ // "maker_order_id": 58284908,
1833
+ // "taker_order_id": 58284909,
1834
+ // "maker_fee": "0.0008",
1835
+ // "taker_fee": "0.07",
1836
+ // "side": "SELF_TRADING",
1837
+ // "inserted_at": "2019-04-16T12:00:01Z"
1838
+ // },
1839
+ // {
1840
+ // "id": 10854263,
1841
+ // "asset_pair_name": "XIN-USDT",
1842
+ // "price": "75.7",
1843
+ // "amount": "12.743149",
1844
+ // "taker_side": "BID",
1845
+ // "maker_order_id": null,
1846
+ // "taker_order_id": 58284888,
1847
+ // "maker_fee": null,
1848
+ // "taker_fee": "0.0025486298",
1849
+ // "side": "BID",
1850
+ // "inserted_at": "2019-04-15T06:20:57Z"
1851
+ // }
1852
+ // ],
1853
+ // "page_token":"dxfv"
1854
+ // }
1855
+ //
1856
+ const trades = this.safeList(response, 'data', []);
1857
+ return this.parseTrades(trades, market, since, limit);
1858
+ }
1859
+ parseOrderStatus(status) {
1860
+ const statuses = {
1861
+ 'PENDING': 'open',
1862
+ 'FILLED': 'closed',
1863
+ 'CANCELLED': 'canceled',
1864
+ };
1865
+ return this.safeString(statuses, status);
1866
+ }
1867
+ /**
1868
+ * @method
1869
+ * @name bigone#fetchOpenOrders
1870
+ * @description fetch all unfilled currently open orders
1871
+ * @see https://open.big.one/docs/spot_orders.html#get-user-orders-in-one-asset-pair
1872
+ * @param {string} symbol unified market symbol
1873
+ * @param {int} [since] the earliest time in ms to fetch open orders for
1874
+ * @param {int} [limit] the maximum number of open orders structures to retrieve
1875
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1876
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1877
+ */
1878
+ async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1879
+ const request = {
1880
+ 'state': 'PENDING',
1881
+ };
1882
+ return await this.fetchOrders(symbol, since, limit, this.extend(request, params));
1883
+ }
1884
+ /**
1885
+ * @method
1886
+ * @name bigone#fetchClosedOrders
1887
+ * @description fetches information on multiple closed orders made by the user
1888
+ * @see https://open.big.one/docs/spot_orders.html#get-user-orders-in-one-asset-pair
1889
+ * @param {string} symbol unified market symbol of the market orders were made in
1890
+ * @param {int} [since] the earliest time in ms to fetch orders for
1891
+ * @param {int} [limit] the maximum number of order structures to retrieve
1892
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1893
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1894
+ */
1895
+ async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1896
+ const request = {
1897
+ 'state': 'FILLED',
1898
+ };
1899
+ return await this.fetchOrders(symbol, since, limit, this.extend(request, params));
1900
+ }
1901
+ nonce() {
1902
+ const exchangeTimeCorrection = this.safeInteger(this.options, 'exchangeMillisecondsCorrection', 0) * 1000000;
1903
+ return this.sum(this.microseconds() * 1000, exchangeTimeCorrection);
1904
+ }
1905
+ sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
1906
+ const query = this.omit(params, this.extractParams(path));
1907
+ const baseUrl = this.implodeHostname(this.urls['api'][api]);
1908
+ let url = baseUrl + '/' + this.implodeParams(path, params);
1909
+ headers = {};
1910
+ if (api === 'public' || api === 'webExchange' || api === 'contractPublic') {
1911
+ if (Object.keys(query).length) {
1912
+ url += '?' + this.urlencode(query);
1913
+ }
1914
+ }
1915
+ else {
1916
+ this.checkRequiredCredentials();
1917
+ const nonce = this.nonce().toString();
1918
+ const request = {
1919
+ 'type': 'OpenAPIV2',
1920
+ 'sub': this.apiKey,
1921
+ 'nonce': nonce,
1922
+ // 'recv_window': '30', // default 30
1923
+ };
1924
+ const token = jwt(request, this.encode(this.secret), sha256);
1925
+ headers['Authorization'] = 'Bearer ' + token;
1926
+ if (method === 'GET') {
1927
+ if (Object.keys(query).length) {
1928
+ url += '?' + this.urlencode(query);
1929
+ }
1930
+ }
1931
+ else if (method === 'POST') {
1932
+ headers['Content-Type'] = 'application/json';
1933
+ body = this.json(query);
1934
+ }
1935
+ }
1936
+ headers['User-Agent'] = 'ccxt/' + this.id + '-' + this.version;
1937
+ return { 'url': url, 'method': method, 'body': body, 'headers': headers };
1938
+ }
1939
+ /**
1940
+ * @method
1941
+ * @name bigone#fetchDepositAddress
1942
+ * @description fetch the deposit address for a currency associated with this account
1943
+ * @see https://open.big.one/docs/spot_deposit.html#get-deposite-address-of-one-asset-of-user
1944
+ * @param {string} code unified currency code
1945
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1946
+ * @returns {object} an [address structure]{@link https://docs.ccxt.com/#/?id=address-structure}
1947
+ */
1948
+ async fetchDepositAddress(code, params = {}) {
1949
+ await this.loadMarkets();
1950
+ const currency = this.currency(code);
1951
+ const request = {
1952
+ 'asset_symbol': currency['id'],
1953
+ };
1954
+ const [networkCode, paramsOmitted] = this.handleNetworkCodeAndParams(params);
1955
+ const response = await this.privateGetAssetsAssetSymbolAddress(this.extend(request, paramsOmitted));
1956
+ //
1957
+ // the actual response format is not the same as the documented one
1958
+ // the data key contains an array in the actual response
1959
+ //
1960
+ // {
1961
+ // "code":0,
1962
+ // "message":"",
1963
+ // "data":[
1964
+ // {
1965
+ // "id":5521878,
1966
+ // "chain":"Bitcoin",
1967
+ // "value":"1GbmyKoikhpiQVZ1C9sbF17mTyvBjeobVe",
1968
+ // "memo":""
1969
+ // }
1970
+ // ]
1971
+ // }
1972
+ //
1973
+ const data = this.safeList(response, 'data', []);
1974
+ const dataLength = data.length;
1975
+ if (dataLength < 1) {
1976
+ throw new ExchangeError(this.id + ' fetchDepositAddress() returned empty address response');
1977
+ }
1978
+ const chainsIndexedById = this.indexBy(data, 'chain');
1979
+ const selectedNetworkId = this.selectNetworkIdFromRawNetworks(code, networkCode, chainsIndexedById);
1980
+ const addressObject = this.safeDict(chainsIndexedById, selectedNetworkId, {});
1981
+ const address = this.safeString(addressObject, 'value');
1982
+ const tag = this.safeString(addressObject, 'memo');
1983
+ this.checkAddress(address);
1984
+ return {
1985
+ 'info': response,
1986
+ 'currency': code,
1987
+ 'network': this.networkIdToCode(selectedNetworkId),
1988
+ 'address': address,
1989
+ 'tag': tag,
1990
+ };
1991
+ }
1992
+ parseTransactionStatus(status) {
1993
+ const statuses = {
1994
+ // what are other statuses here?
1995
+ 'WITHHOLD': 'ok',
1996
+ 'UNCONFIRMED': 'pending',
1997
+ 'CONFIRMED': 'ok',
1998
+ 'COMPLETED': 'ok',
1999
+ 'PENDING': 'pending',
2000
+ };
2001
+ return this.safeString(statuses, status, status);
2002
+ }
2003
+ parseTransaction(transaction, currency = undefined) {
2004
+ //
2005
+ // fetchDeposits
2006
+ //
2007
+ // {
2008
+ // "amount": "25.0",
2009
+ // "asset_symbol": "BTS"
2010
+ // "confirms": 100,
2011
+ // "id": 5,
2012
+ // "inserted_at": "2018-02-16T11:39:58.000Z",
2013
+ // "is_internal": false,
2014
+ // "kind": "default",
2015
+ // "memo": "",
2016
+ // "state": "WITHHOLD",
2017
+ // "txid": "72e03037d144dae3d32b68b5045462b1049a0755",
2018
+ // "updated_at": "2018-11-09T10:20:09.000Z",
2019
+ // }
2020
+ //
2021
+ // fetchWithdrawals
2022
+ //
2023
+ // {
2024
+ // "amount": "5",
2025
+ // "asset_symbol": "ETH",
2026
+ // "completed_at": "2018-03-15T16:13:45.610463Z",
2027
+ // "customer_id": "10",
2028
+ // "id": 10,
2029
+ // "inserted_at": "2018-03-15T16:13:45.610463Z",
2030
+ // "is_internal": true,
2031
+ // "note": "2018-03-15T16:13:45.610463Z",
2032
+ // "state": "CONFIRMED",
2033
+ // "target_address": "0x4643bb6b393ac20a6175c713175734a72517c63d6f7"
2034
+ // "txid": "0x4643bb6b393ac20a6175c713175734a72517c63d6f73a3ca90a15356f2e967da0",
2035
+ // }
2036
+ //
2037
+ // withdraw
2038
+ //
2039
+ // {
2040
+ // "id":1077391,
2041
+ // "customer_id":1082679,
2042
+ // "amount":"21.9000000000000000",
2043
+ // "txid":"",
2044
+ // "is_internal":false,
2045
+ // "kind":"on_chain",
2046
+ // "state":"PENDING",
2047
+ // "inserted_at":"2020-06-03T00:50:57+00:00",
2048
+ // "updated_at":"2020-06-03T00:50:57+00:00",
2049
+ // "memo":"",
2050
+ // "target_address":"rDYtYT3dBeuw376rvHqoZBKW3UmvguoBAf",
2051
+ // "fee":"0.1000000000000000",
2052
+ // "asset_symbol":"XRP"
2053
+ // }
2054
+ //
2055
+ const currencyId = this.safeString(transaction, 'asset_symbol');
2056
+ const code = this.safeCurrencyCode(currencyId);
2057
+ const id = this.safeString(transaction, 'id');
2058
+ const amount = this.safeNumber(transaction, 'amount');
2059
+ const status = this.parseTransactionStatus(this.safeString(transaction, 'state'));
2060
+ const timestamp = this.parse8601(this.safeString(transaction, 'inserted_at'));
2061
+ const updated = this.parse8601(this.safeString2(transaction, 'updated_at', 'completed_at'));
2062
+ const txid = this.safeString(transaction, 'txid');
2063
+ const address = this.safeString(transaction, 'target_address');
2064
+ const tag = this.safeString(transaction, 'memo');
2065
+ const type = ('customer_id' in transaction) ? 'withdrawal' : 'deposit';
2066
+ const internal = this.safeBool(transaction, 'is_internal');
2067
+ return {
2068
+ 'info': transaction,
2069
+ 'id': id,
2070
+ 'txid': txid,
2071
+ 'timestamp': timestamp,
2072
+ 'datetime': this.iso8601(timestamp),
2073
+ 'network': undefined,
2074
+ 'addressFrom': undefined,
2075
+ 'address': undefined,
2076
+ 'addressTo': address,
2077
+ 'tagFrom': undefined,
2078
+ 'tag': tag,
2079
+ 'tagTo': undefined,
2080
+ 'type': type,
2081
+ 'amount': amount,
2082
+ 'currency': code,
2083
+ 'status': status,
2084
+ 'updated': updated,
2085
+ 'fee': undefined,
2086
+ 'comment': undefined,
2087
+ 'internal': internal,
2088
+ };
2089
+ }
2090
+ /**
2091
+ * @method
2092
+ * @name bigone#fetchDeposits
2093
+ * @description fetch all deposits made to an account
2094
+ * @see https://open.big.one/docs/spot_deposit.html#deposit-of-user
2095
+ * @param {string} code unified currency code
2096
+ * @param {int} [since] the earliest time in ms to fetch deposits for
2097
+ * @param {int} [limit] the maximum number of deposits structures to retrieve
2098
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
2099
+ * @returns {object[]} a list of [transaction structures]{@link https://docs.ccxt.com/#/?id=transaction-structure}
2100
+ */
2101
+ async fetchDeposits(code = undefined, since = undefined, limit = undefined, params = {}) {
2102
+ await this.loadMarkets();
2103
+ const request = {
2104
+ // 'page_token': 'dxzef', // request page after this page token
2105
+ // 'limit': 50, // optional, default 50
2106
+ // 'kind': 'string', // optional - air_drop, big_holder_dividend, default, eosc_to_eos, internal, equally_airdrop, referral_mining, one_holder_dividend, single_customer, snapshotted_airdrop, trade_mining
2107
+ // 'asset_symbol': 'BTC', // optional
2108
+ };
2109
+ let currency = undefined;
2110
+ if (code !== undefined) {
2111
+ currency = this.currency(code);
2112
+ request['asset_symbol'] = currency['id'];
2113
+ }
2114
+ if (limit !== undefined) {
2115
+ request['limit'] = limit; // default 50
2116
+ }
2117
+ const response = await this.privateGetDeposits(this.extend(request, params));
2118
+ //
2119
+ // {
2120
+ // "code": 0,
2121
+ // "page_token": "NQ==",
2122
+ // "data": [
2123
+ // {
2124
+ // "id": 5,
2125
+ // "amount": "25.0",
2126
+ // "confirms": 100,
2127
+ // "txid": "72e03037d144dae3d32b68b5045462b1049a0755",
2128
+ // "is_internal": false,
2129
+ // "inserted_at": "2018-02-16T11:39:58.000Z",
2130
+ // "updated_at": "2018-11-09T10:20:09.000Z",
2131
+ // "kind": "default",
2132
+ // "memo": "",
2133
+ // "state": "WITHHOLD",
2134
+ // "asset_symbol": "BTS"
2135
+ // }
2136
+ // ]
2137
+ // }
2138
+ //
2139
+ const deposits = this.safeList(response, 'data', []);
2140
+ return this.parseTransactions(deposits, currency, since, limit);
2141
+ }
2142
+ /**
2143
+ * @method
2144
+ * @name bigone#fetchWithdrawals
2145
+ * @description fetch all withdrawals made from an account
2146
+ * @see https://open.big.one/docs/spot_withdrawal.html#get-withdrawals-of-user
2147
+ * @param {string} code unified currency code
2148
+ * @param {int} [since] the earliest time in ms to fetch withdrawals for
2149
+ * @param {int} [limit] the maximum number of withdrawals structures to retrieve
2150
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
2151
+ * @returns {object[]} a list of [transaction structures]{@link https://docs.ccxt.com/#/?id=transaction-structure}
2152
+ */
2153
+ async fetchWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
2154
+ await this.loadMarkets();
2155
+ const request = {
2156
+ // 'page_token': 'dxzef', // request page after this page token
2157
+ // 'limit': 50, // optional, default 50
2158
+ // 'kind': 'string', // optional - air_drop, big_holder_dividend, default, eosc_to_eos, internal, equally_airdrop, referral_mining, one_holder_dividend, single_customer, snapshotted_airdrop, trade_mining
2159
+ // 'asset_symbol': 'BTC', // optional
2160
+ };
2161
+ let currency = undefined;
2162
+ if (code !== undefined) {
2163
+ currency = this.currency(code);
2164
+ request['asset_symbol'] = currency['id'];
2165
+ }
2166
+ if (limit !== undefined) {
2167
+ request['limit'] = limit; // default 50
2168
+ }
2169
+ const response = await this.privateGetWithdrawals(this.extend(request, params));
2170
+ //
2171
+ // {
2172
+ // "code": 0,
2173
+ // "data": [
2174
+ // {
2175
+ // "id": 10,
2176
+ // "customer_id": "10",
2177
+ // "asset_symbol": "ETH",
2178
+ // "amount": "5",
2179
+ // "state": "CONFIRMED",
2180
+ // "note": "2018-03-15T16:13:45.610463Z",
2181
+ // "txid": "0x4643bb6b393ac20a6175c713175734a72517c63d6f73a3ca90a15356f2e967da0",
2182
+ // "completed_at": "2018-03-15T16:13:45.610463Z",
2183
+ // "inserted_at": "2018-03-15T16:13:45.610463Z",
2184
+ // "is_internal": true,
2185
+ // "target_address": "0x4643bb6b393ac20a6175c713175734a72517c63d6f7"
2186
+ // }
2187
+ // ],
2188
+ // "page_token":"dxvf"
2189
+ // }
2190
+ //
2191
+ const withdrawals = this.safeList(response, 'data', []);
2192
+ return this.parseTransactions(withdrawals, currency, since, limit);
2193
+ }
2194
+ /**
2195
+ * @method
2196
+ * @name bigone#transfer
2197
+ * @description transfer currency internally between wallets on the same account
2198
+ * @see https://open.big.one/docs/spot_transfer.html#transfer-of-user
2199
+ * @param {string} code unified currency code
2200
+ * @param {float} amount amount to transfer
2201
+ * @param {string} fromAccount 'SPOT', 'FUND', or 'CONTRACT'
2202
+ * @param {string} toAccount 'SPOT', 'FUND', or 'CONTRACT'
2203
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
2204
+ * @returns {object} a [transfer structure]{@link https://docs.ccxt.com/#/?id=transfer-structure}
2205
+ */
2206
+ async transfer(code, amount, fromAccount, toAccount, params = {}) {
2207
+ await this.loadMarkets();
2208
+ const currency = this.currency(code);
2209
+ const accountsByType = this.safeDict(this.options, 'accountsByType', {});
2210
+ const fromId = this.safeString(accountsByType, fromAccount, fromAccount);
2211
+ const toId = this.safeString(accountsByType, toAccount, toAccount);
2212
+ const guid = this.safeString(params, 'guid', this.uuid());
2213
+ const request = {
2214
+ 'symbol': currency['id'],
2215
+ 'amount': this.currencyToPrecision(code, amount),
2216
+ 'from': fromId,
2217
+ 'to': toId,
2218
+ 'guid': guid,
2219
+ // 'type': type, // NORMAL, MASTER_TO_SUB, SUB_TO_MASTER, SUB_INTERNAL, default is NORMAL
2220
+ // 'sub_acccunt': '', // when type is NORMAL, it should be empty, and when type is others it is required
2221
+ };
2222
+ const response = await this.privatePostTransfer(this.extend(request, params));
2223
+ //
2224
+ // {
2225
+ // "code": 0,
2226
+ // "data": null
2227
+ // }
2228
+ //
2229
+ const transfer = this.parseTransfer(response, currency);
2230
+ const transferOptions = this.safeDict(this.options, 'transfer', {});
2231
+ const fillResponseFromRequest = this.safeBool(transferOptions, 'fillResponseFromRequest', true);
2232
+ if (fillResponseFromRequest) {
2233
+ transfer['fromAccount'] = fromAccount;
2234
+ transfer['toAccount'] = toAccount;
2235
+ transfer['amount'] = amount;
2236
+ transfer['id'] = guid;
2237
+ }
2238
+ return transfer;
2239
+ }
2240
+ parseTransfer(transfer, currency = undefined) {
2241
+ //
2242
+ // {
2243
+ // "code": 0,
2244
+ // "data": null
2245
+ // }
2246
+ //
2247
+ const code = this.safeString(transfer, 'code');
2248
+ return {
2249
+ 'info': transfer,
2250
+ 'id': undefined,
2251
+ 'timestamp': undefined,
2252
+ 'datetime': undefined,
2253
+ 'currency': undefined,
2254
+ 'amount': undefined,
2255
+ 'fromAccount': undefined,
2256
+ 'toAccount': undefined,
2257
+ 'status': this.parseTransferStatus(code),
2258
+ };
2259
+ }
2260
+ parseTransferStatus(status) {
2261
+ const statuses = {
2262
+ '0': 'ok',
2263
+ };
2264
+ return this.safeString(statuses, status, 'failed');
2265
+ }
2266
+ /**
2267
+ * @method
2268
+ * @name bigone#withdraw
2269
+ * @description make a withdrawal
2270
+ * @see https://open.big.one/docs/spot_withdrawal.html#create-withdrawal-of-user
2271
+ * @param {string} code unified currency code
2272
+ * @param {float} amount the amount to withdraw
2273
+ * @param {string} address the address to withdraw to
2274
+ * @param {string} tag
2275
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
2276
+ * @returns {object} a [transaction structure]{@link https://docs.ccxt.com/#/?id=transaction-structure}
2277
+ */
2278
+ async withdraw(code, amount, address, tag = undefined, params = {}) {
2279
+ [tag, params] = this.handleWithdrawTagAndParams(tag, params);
2280
+ await this.loadMarkets();
2281
+ const currency = this.currency(code);
2282
+ const request = {
2283
+ 'symbol': currency['id'],
2284
+ 'target_address': address,
2285
+ 'amount': this.currencyToPrecision(code, amount),
2286
+ };
2287
+ if (tag !== undefined) {
2288
+ request['memo'] = tag;
2289
+ }
2290
+ let networkCode = undefined;
2291
+ [networkCode, params] = this.handleNetworkCodeAndParams(params);
2292
+ if (networkCode !== undefined) {
2293
+ request['gateway_name'] = this.networkCodeToId(networkCode);
2294
+ }
2295
+ // requires write permission on the wallet
2296
+ const response = await this.privatePostWithdrawals(this.extend(request, params));
2297
+ //
2298
+ // {
2299
+ // "code":0,
2300
+ // "message":"",
2301
+ // "data":{
2302
+ // "id":1077391,
2303
+ // "customer_id":1082679,
2304
+ // "amount":"21.9000000000000000",
2305
+ // "txid":"",
2306
+ // "is_internal":false,
2307
+ // "kind":"on_chain",
2308
+ // "state":"PENDING",
2309
+ // "inserted_at":"2020-06-03T00:50:57+00:00",
2310
+ // "updated_at":"2020-06-03T00:50:57+00:00",
2311
+ // "memo":"",
2312
+ // "target_address":"rDYtYT3dBeuw376rvHqoZBKW3UmvguoBAf",
2313
+ // "fee":"0.1000000000000000",
2314
+ // "asset_symbol":"XRP"
2315
+ // }
2316
+ // }
2317
+ //
2318
+ const data = this.safeDict(response, 'data', {});
2319
+ return this.parseTransaction(data, currency);
2320
+ }
2321
+ handleErrors(httpCode, reason, url, method, headers, body, response, requestHeaders, requestBody) {
2322
+ if (response === undefined) {
2323
+ return undefined; // fallback to default error handler
2324
+ }
2325
+ //
2326
+ // {"code":10013,"message":"Resource not found"}
2327
+ // {"code":40004,"message":"invalid jwt"}
2328
+ //
2329
+ const code = this.safeString(response, 'code');
2330
+ const message = this.safeString(response, 'message');
2331
+ if ((code !== '0') && (code !== undefined)) {
2332
+ const feedback = this.id + ' ' + body;
2333
+ this.throwExactlyMatchedException(this.exceptions['exact'], message, feedback);
2334
+ this.throwExactlyMatchedException(this.exceptions['exact'], code, feedback);
2335
+ this.throwBroadlyMatchedException(this.exceptions['broad'], message, feedback);
2336
+ throw new ExchangeError(feedback); // unknown message
2337
+ }
2338
+ return undefined;
2339
+ }
2340
+ }