ccxt-ir 4.10.0 → 4.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1059) hide show
  1. package/README.md +4 -4
  2. package/dist/ccxt.browser.min.js +2 -2
  3. package/dist/cjs/ccxt.js +10 -1
  4. package/dist/cjs/src/abstract/bidarz.js +11 -0
  5. package/dist/cjs/src/bidarz.js +337 -0
  6. package/dist/cjs/src/bit24.js +4 -3
  7. package/dist/cjs/src/changefa.js +342 -0
  8. package/dist/cjs/src/ourbit.js +445 -0
  9. package/js/ccxt.d.ts +11 -2
  10. package/js/ccxt.js +8 -2
  11. package/js/src/abstract/bidarz.d.ts +9 -0
  12. package/js/src/abstract/bidarz.js +11 -0
  13. package/js/src/abstract/changefa.d.ts +8 -0
  14. package/js/src/abstract/changefa.js +11 -0
  15. package/js/src/abstract/ourbit.d.ts +10 -0
  16. package/js/src/abstract/ourbit.js +11 -0
  17. package/js/src/bidarz.d.ts +22 -0
  18. package/js/src/bidarz.js +336 -0
  19. package/js/src/bit24.js +4 -3
  20. package/js/src/changefa.d.ts +20 -0
  21. package/js/src/changefa.js +341 -0
  22. package/js/src/ourbit.d.ts +21 -0
  23. package/js/src/ourbit.js +444 -0
  24. package/js/src/src/abantether.d.ts +21 -0
  25. package/js/src/src/abantether.js +353 -0
  26. package/js/src/src/abstract/abantether.d.ts +8 -0
  27. package/js/src/src/abstract/abantether.js +11 -0
  28. package/js/src/src/abstract/afratether.d.ts +9 -0
  29. package/js/src/src/abstract/afratether.js +11 -0
  30. package/js/src/src/abstract/alpaca.d.ts +77 -0
  31. package/js/src/src/abstract/alpaca.js +11 -0
  32. package/js/src/src/abstract/apex.d.ts +34 -0
  33. package/js/src/src/abstract/apex.js +11 -0
  34. package/js/src/src/abstract/arzinja.d.ts +8 -0
  35. package/js/src/src/abstract/arzinja.js +11 -0
  36. package/js/src/src/abstract/arzplus.d.ts +11 -0
  37. package/js/src/src/abstract/arzplus.js +11 -0
  38. package/js/src/src/abstract/ascendex.d.ts +80 -0
  39. package/js/src/src/abstract/ascendex.js +11 -0
  40. package/js/src/src/abstract/asretether.d.ts +8 -0
  41. package/js/src/src/abstract/asretether.js +11 -0
  42. package/js/src/src/abstract/bidarz.d.ts +9 -0
  43. package/js/src/src/abstract/bidarz.js +11 -0
  44. package/js/src/src/abstract/bigone.d.ts +48 -0
  45. package/js/src/src/abstract/bigone.js +11 -0
  46. package/js/src/src/abstract/binance.d.ts +773 -0
  47. package/js/src/src/abstract/binance.js +11 -0
  48. package/js/src/src/abstract/bingx.d.ts +165 -0
  49. package/js/src/src/abstract/bingx.js +11 -0
  50. package/js/src/src/abstract/bit24.d.ts +9 -0
  51. package/js/src/src/abstract/bit24.js +11 -0
  52. package/js/src/src/abstract/bit2c.d.ts +30 -0
  53. package/js/src/src/abstract/bit2c.js +11 -0
  54. package/js/src/src/abstract/bitbank.d.ts +35 -0
  55. package/js/src/src/abstract/bitbank.js +11 -0
  56. package/js/src/src/abstract/bitbarg.d.ts +8 -0
  57. package/js/src/src/abstract/bitbarg.js +11 -0
  58. package/js/src/src/abstract/bitbns.d.ts +43 -0
  59. package/js/src/src/abstract/bitbns.js +11 -0
  60. package/js/src/src/abstract/bitfinex.d.ts +143 -0
  61. package/js/src/src/abstract/bitfinex.js +11 -0
  62. package/js/src/src/abstract/bitflyer.d.ts +42 -0
  63. package/js/src/src/abstract/bitflyer.js +11 -0
  64. package/js/src/src/abstract/bitget.d.ts +578 -0
  65. package/js/src/src/abstract/bitget.js +11 -0
  66. package/js/src/src/abstract/bithumb.d.ts +35 -0
  67. package/js/src/src/abstract/bithumb.js +11 -0
  68. package/js/src/src/abstract/bitimen.d.ts +10 -0
  69. package/js/src/src/abstract/bitimen.js +11 -0
  70. package/js/src/src/abstract/bitir.d.ts +10 -0
  71. package/js/src/src/abstract/bitir.js +11 -0
  72. package/js/src/src/abstract/bitmart.d.ts +120 -0
  73. package/js/src/src/abstract/bitmart.js +11 -0
  74. package/js/src/src/abstract/bitmex.d.ts +100 -0
  75. package/js/src/src/abstract/bitmex.js +11 -0
  76. package/js/src/src/abstract/bitopro.d.ts +33 -0
  77. package/js/src/src/abstract/bitopro.js +11 -0
  78. package/js/src/src/abstract/bitpin.d.ts +11 -0
  79. package/js/src/src/abstract/bitpin.js +11 -0
  80. package/js/src/src/abstract/bitrue.d.ts +75 -0
  81. package/js/src/src/abstract/bitrue.js +11 -0
  82. package/js/src/src/abstract/bitso.d.ts +46 -0
  83. package/js/src/src/abstract/bitso.js +11 -0
  84. package/js/src/src/abstract/bitstamp.d.ts +262 -0
  85. package/js/src/src/abstract/bitstamp.js +11 -0
  86. package/js/src/src/abstract/bitteam.d.ts +32 -0
  87. package/js/src/src/abstract/bitteam.js +11 -0
  88. package/js/src/src/abstract/bittrade.d.ts +117 -0
  89. package/js/src/src/abstract/bittrade.js +11 -0
  90. package/js/src/src/abstract/bitunix.d.ts +9 -0
  91. package/js/src/src/abstract/bitunix.js +11 -0
  92. package/js/src/src/abstract/bitvavo.d.ts +30 -0
  93. package/js/src/src/abstract/bitvavo.js +11 -0
  94. package/js/src/src/abstract/blockchaincom.d.ts +31 -0
  95. package/js/src/src/abstract/blockchaincom.js +11 -0
  96. package/js/src/src/abstract/blofin.d.ts +70 -0
  97. package/js/src/src/abstract/blofin.js +11 -0
  98. package/js/src/src/abstract/btcalpha.d.ts +21 -0
  99. package/js/src/src/abstract/btcalpha.js +11 -0
  100. package/js/src/src/abstract/btcbox.d.ts +18 -0
  101. package/js/src/src/abstract/btcbox.js +11 -0
  102. package/js/src/src/abstract/btcmarkets.d.ts +42 -0
  103. package/js/src/src/abstract/btcmarkets.js +11 -0
  104. package/js/src/src/abstract/btcturk.d.ts +23 -0
  105. package/js/src/src/abstract/btcturk.js +11 -0
  106. package/js/src/src/abstract/bybit.d.ts +316 -0
  107. package/js/src/src/abstract/bybit.js +11 -0
  108. package/js/src/src/abstract/bydfi.d.ts +11 -0
  109. package/js/src/src/abstract/bydfi.js +11 -0
  110. package/js/src/src/abstract/cafearz.d.ts +8 -0
  111. package/js/src/src/abstract/cafearz.js +11 -0
  112. package/js/src/src/abstract/cex.d.ts +35 -0
  113. package/js/src/src/abstract/cex.js +11 -0
  114. package/js/src/src/abstract/coinbase.d.ts +97 -0
  115. package/js/src/src/abstract/coinbase.js +11 -0
  116. package/js/src/src/abstract/coinbaseexchange.d.ts +71 -0
  117. package/js/src/src/abstract/coinbaseexchange.js +11 -0
  118. package/js/src/src/abstract/coinbaseinternational.d.ts +42 -0
  119. package/js/src/src/abstract/coinbaseinternational.js +11 -0
  120. package/js/src/src/abstract/coincatch.d.ts +97 -0
  121. package/js/src/src/abstract/coincatch.js +11 -0
  122. package/js/src/src/abstract/coincheck.d.ts +36 -0
  123. package/js/src/src/abstract/coincheck.js +11 -0
  124. package/js/src/src/abstract/coinex.d.ts +240 -0
  125. package/js/src/src/abstract/coinex.js +11 -0
  126. package/js/src/src/abstract/coinmate.d.ts +65 -0
  127. package/js/src/src/abstract/coinmate.js +11 -0
  128. package/js/src/src/abstract/coinmetro.d.ts +37 -0
  129. package/js/src/src/abstract/coinmetro.js +11 -0
  130. package/js/src/src/abstract/coinone.d.ts +70 -0
  131. package/js/src/src/abstract/coinone.js +11 -0
  132. package/js/src/src/abstract/coinsph.d.ts +57 -0
  133. package/js/src/src/abstract/coinsph.js +11 -0
  134. package/js/src/src/abstract/coinspot.d.ts +31 -0
  135. package/js/src/src/abstract/coinspot.js +11 -0
  136. package/js/src/src/abstract/cryptocom.d.ts +126 -0
  137. package/js/src/src/abstract/cryptocom.js +11 -0
  138. package/js/src/src/abstract/cryptomus.d.ts +23 -0
  139. package/js/src/src/abstract/cryptomus.js +11 -0
  140. package/js/src/src/abstract/defx.d.ts +72 -0
  141. package/js/src/src/abstract/defx.js +11 -0
  142. package/js/src/src/abstract/delta.d.ts +53 -0
  143. package/js/src/src/abstract/delta.js +11 -0
  144. package/js/src/src/abstract/deribit.d.ts +129 -0
  145. package/js/src/src/abstract/deribit.js +11 -0
  146. package/js/src/src/abstract/derive.d.ts +120 -0
  147. package/js/src/src/abstract/derive.js +11 -0
  148. package/js/src/src/abstract/digifinex.d.ts +95 -0
  149. package/js/src/src/abstract/digifinex.js +11 -0
  150. package/js/src/src/abstract/ellipx.d.ts +28 -0
  151. package/js/src/src/abstract/ellipx.js +11 -0
  152. package/js/src/src/abstract/eterex.d.ts +8 -0
  153. package/js/src/src/abstract/eterex.js +11 -0
  154. package/js/src/src/abstract/excoino.d.ts +10 -0
  155. package/js/src/src/abstract/excoino.js +11 -0
  156. package/js/src/src/abstract/exir.d.ts +11 -0
  157. package/js/src/src/abstract/exir.js +11 -0
  158. package/js/src/src/abstract/exmo.d.ts +58 -0
  159. package/js/src/src/abstract/exmo.js +11 -0
  160. package/js/src/src/abstract/exnovin.d.ts +9 -0
  161. package/js/src/src/abstract/exnovin.js +11 -0
  162. package/js/src/src/abstract/farhadexchange.d.ts +8 -0
  163. package/js/src/src/abstract/farhadexchange.js +11 -0
  164. package/js/src/src/abstract/foxbit.d.ts +29 -0
  165. package/js/src/src/abstract/foxbit.js +11 -0
  166. package/js/src/src/abstract/gate.d.ts +287 -0
  167. package/js/src/src/abstract/gate.js +11 -0
  168. package/js/src/src/abstract/gemini.d.ts +62 -0
  169. package/js/src/src/abstract/gemini.js +11 -0
  170. package/js/src/src/abstract/hamtapay.d.ts +9 -0
  171. package/js/src/src/abstract/hamtapay.js +11 -0
  172. package/js/src/src/abstract/hashkey.d.ts +70 -0
  173. package/js/src/src/abstract/hashkey.js +11 -0
  174. package/js/src/src/abstract/hibachi.d.ts +29 -0
  175. package/js/src/src/abstract/hibachi.js +11 -0
  176. package/js/src/src/abstract/hitbtc.d.ts +118 -0
  177. package/js/src/src/abstract/hitbtc.js +11 -0
  178. package/js/src/src/abstract/hitobit.d.ts +11 -0
  179. package/js/src/src/abstract/hitobit.js +11 -0
  180. package/js/src/src/abstract/hollaex.d.ts +36 -0
  181. package/js/src/src/abstract/hollaex.js +11 -0
  182. package/js/src/src/abstract/htx.d.ts +551 -0
  183. package/js/src/src/abstract/htx.js +11 -0
  184. package/js/src/src/abstract/hyperliquid.d.ts +9 -0
  185. package/js/src/src/abstract/hyperliquid.js +11 -0
  186. package/js/src/src/abstract/independentreserve.d.ts +46 -0
  187. package/js/src/src/abstract/independentreserve.js +11 -0
  188. package/js/src/src/abstract/indodax.d.ts +29 -0
  189. package/js/src/src/abstract/indodax.js +11 -0
  190. package/js/src/src/abstract/iranexchange.d.ts +9 -0
  191. package/js/src/src/abstract/iranexchange.js +11 -0
  192. package/js/src/src/abstract/jibitex.d.ts +10 -0
  193. package/js/src/src/abstract/jibitex.js +11 -0
  194. package/js/src/src/abstract/kcex.d.ts +10 -0
  195. package/js/src/src/abstract/kcex.js +11 -0
  196. package/js/src/src/abstract/kifpoolme.d.ts +9 -0
  197. package/js/src/src/abstract/kifpoolme.js +11 -0
  198. package/js/src/src/abstract/kraken.d.ts +61 -0
  199. package/js/src/src/abstract/kraken.js +11 -0
  200. package/js/src/src/abstract/krakenfutures.d.ts +45 -0
  201. package/js/src/src/abstract/krakenfutures.js +11 -0
  202. package/js/src/src/abstract/kucoin.d.ts +227 -0
  203. package/js/src/src/abstract/kucoin.js +11 -0
  204. package/js/src/src/abstract/kucoinfutures.d.ts +254 -0
  205. package/js/src/src/abstract/kucoinfutures.js +11 -0
  206. package/js/src/src/abstract/latoken.d.ts +59 -0
  207. package/js/src/src/abstract/latoken.js +11 -0
  208. package/js/src/src/abstract/lbank.d.ts +65 -0
  209. package/js/src/src/abstract/lbank.js +11 -0
  210. package/js/src/src/abstract/luno.d.ts +41 -0
  211. package/js/src/src/abstract/luno.js +11 -0
  212. package/js/src/src/abstract/mazdax.d.ts +11 -0
  213. package/js/src/src/abstract/mazdax.js +11 -0
  214. package/js/src/src/abstract/mercado.d.ts +28 -0
  215. package/js/src/src/abstract/mercado.js +11 -0
  216. package/js/src/src/abstract/mexc.d.ts +183 -0
  217. package/js/src/src/abstract/mexc.js +11 -0
  218. package/js/src/src/abstract/modetrade.d.ts +122 -0
  219. package/js/src/src/abstract/modetrade.js +11 -0
  220. package/js/src/src/abstract/ndax.d.ts +100 -0
  221. package/js/src/src/abstract/ndax.js +11 -0
  222. package/js/src/src/abstract/nobitex.d.ts +10 -0
  223. package/js/src/src/abstract/nobitex.js +11 -0
  224. package/js/src/src/abstract/novadax.d.ts +32 -0
  225. package/js/src/src/abstract/novadax.js +11 -0
  226. package/js/src/src/abstract/oceanex.d.ts +30 -0
  227. package/js/src/src/abstract/oceanex.js +11 -0
  228. package/js/src/src/abstract/okcoin.d.ts +77 -0
  229. package/js/src/src/abstract/okcoin.js +11 -0
  230. package/js/src/src/abstract/okexchange.d.ts +11 -0
  231. package/js/src/src/abstract/okexchange.js +11 -0
  232. package/js/src/src/abstract/okx.d.ts +352 -0
  233. package/js/src/src/abstract/okx.js +11 -0
  234. package/js/src/src/abstract/ompfinex.d.ts +10 -0
  235. package/js/src/src/abstract/ompfinex.js +11 -0
  236. package/js/src/src/abstract/onetrading.d.ts +26 -0
  237. package/js/src/src/abstract/onetrading.js +11 -0
  238. package/js/src/src/abstract/oxfun.d.ts +37 -0
  239. package/js/src/src/abstract/oxfun.js +11 -0
  240. package/js/src/src/abstract/p2b.d.ts +25 -0
  241. package/js/src/src/abstract/p2b.js +11 -0
  242. package/js/src/src/abstract/paradex.d.ts +66 -0
  243. package/js/src/src/abstract/paradex.js +11 -0
  244. package/js/src/src/abstract/paymium.d.ts +31 -0
  245. package/js/src/src/abstract/paymium.js +11 -0
  246. package/js/src/src/abstract/phemex.d.ts +120 -0
  247. package/js/src/src/abstract/phemex.js +11 -0
  248. package/js/src/src/abstract/pingi.d.ts +9 -0
  249. package/js/src/src/abstract/pingi.js +11 -0
  250. package/js/src/src/abstract/poloniex.d.ts +108 -0
  251. package/js/src/src/abstract/poloniex.js +11 -0
  252. package/js/src/src/abstract/pooleno.d.ts +8 -0
  253. package/js/src/src/abstract/pooleno.js +11 -0
  254. package/js/src/src/abstract/probit.d.ts +26 -0
  255. package/js/src/src/abstract/probit.js +11 -0
  256. package/js/src/src/abstract/raastin.d.ts +11 -0
  257. package/js/src/src/abstract/raastin.js +11 -0
  258. package/js/src/src/abstract/ramzinex.d.ts +10 -0
  259. package/js/src/src/abstract/ramzinex.js +11 -0
  260. package/js/src/src/abstract/sarmayex.d.ts +8 -0
  261. package/js/src/src/abstract/sarmayex.js +11 -0
  262. package/js/src/src/abstract/sarrafex.d.ts +10 -0
  263. package/js/src/src/abstract/sarrafex.js +11 -0
  264. package/js/src/src/abstract/tabdeal.d.ts +10 -0
  265. package/js/src/src/abstract/tabdeal.js +11 -0
  266. package/js/src/src/abstract/tehran_exchange.d.ts +9 -0
  267. package/js/src/src/abstract/tehran_exchange.js +11 -0
  268. package/js/src/src/abstract/tetherland.d.ts +8 -0
  269. package/js/src/src/abstract/tetherland.js +11 -0
  270. package/js/src/src/abstract/timex.d.ts +65 -0
  271. package/js/src/src/abstract/timex.js +11 -0
  272. package/js/src/src/abstract/tokocrypto.d.ts +40 -0
  273. package/js/src/src/abstract/tokocrypto.js +11 -0
  274. package/js/src/src/abstract/toobit.d.ts +10 -0
  275. package/js/src/src/abstract/toobit.js +11 -0
  276. package/js/src/src/abstract/tradeogre.d.ts +21 -0
  277. package/js/src/src/abstract/tradeogre.js +11 -0
  278. package/js/src/src/abstract/twox.d.ts +8 -0
  279. package/js/src/src/abstract/twox.js +11 -0
  280. package/js/src/src/abstract/ubitex.d.ts +10 -0
  281. package/js/src/src/abstract/ubitex.js +11 -0
  282. package/js/src/src/abstract/upbit.d.ts +58 -0
  283. package/js/src/src/abstract/upbit.js +11 -0
  284. package/js/src/src/abstract/vertex.d.ts +22 -0
  285. package/js/src/src/abstract/vertex.js +11 -0
  286. package/js/src/src/abstract/wallex.d.ts +11 -0
  287. package/js/src/src/abstract/wallex.js +11 -0
  288. package/js/src/src/abstract/wavesexchange.d.ts +157 -0
  289. package/js/src/src/abstract/wavesexchange.js +11 -0
  290. package/js/src/src/abstract/whitebit.d.ts +117 -0
  291. package/js/src/src/abstract/whitebit.js +11 -0
  292. package/js/src/src/abstract/woo.d.ts +144 -0
  293. package/js/src/src/abstract/woo.js +11 -0
  294. package/js/src/src/abstract/woofipro.d.ts +122 -0
  295. package/js/src/src/abstract/woofipro.js +11 -0
  296. package/js/src/src/abstract/xt.d.ts +160 -0
  297. package/js/src/src/abstract/xt.js +11 -0
  298. package/js/src/src/abstract/yobit.d.ts +19 -0
  299. package/js/src/src/abstract/yobit.js +11 -0
  300. package/js/src/src/abstract/zaif.d.ts +41 -0
  301. package/js/src/src/abstract/zaif.js +11 -0
  302. package/js/src/src/abstract/zonda.d.ts +56 -0
  303. package/js/src/src/abstract/zonda.js +11 -0
  304. package/js/src/src/afratether.d.ts +21 -0
  305. package/js/src/src/afratether.js +356 -0
  306. package/js/src/src/alpaca.d.ts +332 -0
  307. package/js/src/src/alpaca.js +1908 -0
  308. package/js/src/src/apex.d.ts +333 -0
  309. package/js/src/src/apex.js +1942 -0
  310. package/js/src/src/arzinja.d.ts +21 -0
  311. package/js/src/src/arzinja.js +298 -0
  312. package/js/src/src/arzplus.d.ts +26 -0
  313. package/js/src/src/arzplus.js +581 -0
  314. package/js/src/src/ascendex.d.ts +424 -0
  315. package/js/src/src/ascendex.js +3699 -0
  316. package/js/src/src/asretether.d.ts +21 -0
  317. package/js/src/src/asretether.js +324 -0
  318. package/js/src/src/base/Exchange.d.ts +926 -0
  319. package/js/src/src/base/Exchange.js +7399 -0
  320. package/js/src/src/base/Precise.d.ts +42 -0
  321. package/js/src/src/base/Precise.js +275 -0
  322. package/js/src/src/base/errors.d.ts +168 -0
  323. package/js/src/src/base/errors.js +255 -0
  324. package/js/src/src/base/functions/crypto.d.ts +16 -0
  325. package/js/src/src/base/functions/crypto.js +131 -0
  326. package/js/src/src/base/functions/encode.d.ts +4 -0
  327. package/js/src/src/base/functions/encode.js +32 -0
  328. package/js/src/src/base/functions/generic.d.ts +29 -0
  329. package/js/src/src/base/functions/generic.js +203 -0
  330. package/js/src/src/base/functions/misc.d.ts +9 -0
  331. package/js/src/src/base/functions/misc.js +101 -0
  332. package/js/src/src/base/functions/number.d.ts +27 -0
  333. package/js/src/src/base/functions/number.js +313 -0
  334. package/js/src/src/base/functions/platform.d.ts +7 -0
  335. package/js/src/src/base/functions/platform.js +27 -0
  336. package/js/src/src/base/functions/rsa.d.ts +5 -0
  337. package/js/src/src/base/functions/rsa.js +49 -0
  338. package/js/src/src/base/functions/string.d.ts +7 -0
  339. package/js/src/src/base/functions/string.js +44 -0
  340. package/js/src/src/base/functions/throttle.d.ts +6 -0
  341. package/js/src/src/base/functions/throttle.js +67 -0
  342. package/js/src/src/base/functions/time.d.ts +21 -0
  343. package/js/src/src/base/functions/time.js +171 -0
  344. package/js/src/src/base/functions/totp.d.ts +3 -0
  345. package/js/src/src/base/functions/totp.js +25 -0
  346. package/js/src/src/base/functions/type.d.ts +37 -0
  347. package/js/src/src/base/functions/type.js +179 -0
  348. package/js/src/src/base/functions.d.ts +10 -0
  349. package/js/src/src/base/functions.js +18 -0
  350. package/js/src/src/base/types.d.ts +586 -0
  351. package/js/src/src/base/types.js +7 -0
  352. package/js/src/src/base/ws/Cache.d.ts +27 -0
  353. package/js/src/src/base/ws/Cache.js +260 -0
  354. package/js/src/src/base/ws/Client.d.ts +53 -0
  355. package/js/src/src/base/ws/Client.js +307 -0
  356. package/js/src/src/base/ws/Future.d.ts +8 -0
  357. package/js/src/src/base/ws/Future.js +35 -0
  358. package/js/src/src/base/ws/OrderBook.d.ts +25 -0
  359. package/js/src/src/base/ws/OrderBook.js +130 -0
  360. package/js/src/src/base/ws/OrderBookSide.d.ts +40 -0
  361. package/js/src/src/base/ws/OrderBookSide.js +286 -0
  362. package/js/src/src/base/ws/WsClient.d.ts +11 -0
  363. package/js/src/src/base/ws/WsClient.js +69 -0
  364. package/js/src/src/bequant.d.ts +4 -0
  365. package/js/src/src/bequant.js +35 -0
  366. package/js/src/src/bidarz.d.ts +16 -0
  367. package/js/src/src/bidarz.js +327 -0
  368. package/js/src/src/bigone.d.ts +296 -0
  369. package/js/src/src/bigone.js +2340 -0
  370. package/js/src/src/binance.d.ts +1667 -0
  371. package/js/src/src/binance.js +14400 -0
  372. package/js/src/src/binancecoinm.d.ts +6 -0
  373. package/js/src/src/binancecoinm.js +51 -0
  374. package/js/src/src/binanceus.d.ts +4 -0
  375. package/js/src/src/binanceus.js +225 -0
  376. package/js/src/src/binanceusdm.d.ts +6 -0
  377. package/js/src/src/binanceusdm.js +63 -0
  378. package/js/src/src/bingx.d.ts +778 -0
  379. package/js/src/src/bingx.js +6705 -0
  380. package/js/src/src/bit24.d.ts +24 -0
  381. package/js/src/src/bit24.js +520 -0
  382. package/js/src/src/bit2c.d.ts +146 -0
  383. package/js/src/src/bit2c.js +1029 -0
  384. package/js/src/src/bitbank.d.ts +181 -0
  385. package/js/src/src/bitbank.js +1146 -0
  386. package/js/src/src/bitbarg.d.ts +21 -0
  387. package/js/src/src/bitbarg.js +312 -0
  388. package/js/src/src/bitbns.d.ts +184 -0
  389. package/js/src/src/bitbns.js +1288 -0
  390. package/js/src/src/bitfinex.d.ts +516 -0
  391. package/js/src/src/bitfinex.js +3951 -0
  392. package/js/src/src/bitflyer.d.ts +229 -0
  393. package/js/src/src/bitflyer.js +1209 -0
  394. package/js/src/src/bitget.d.ts +1109 -0
  395. package/js/src/src/bitget.js +11033 -0
  396. package/js/src/src/bithumb.d.ts +165 -0
  397. package/js/src/src/bithumb.js +1257 -0
  398. package/js/src/src/bitimen.d.ts +23 -0
  399. package/js/src/src/bitimen.js +424 -0
  400. package/js/src/src/bitir.d.ts +23 -0
  401. package/js/src/src/bitir.js +521 -0
  402. package/js/src/src/bitmart.d.ts +736 -0
  403. package/js/src/src/bitmart.js +5639 -0
  404. package/js/src/src/bitmex.d.ts +395 -0
  405. package/js/src/src/bitmex.js +3088 -0
  406. package/js/src/src/bitopro.d.ts +295 -0
  407. package/js/src/src/bitopro.js +1892 -0
  408. package/js/src/src/bitpin.d.ts +23 -0
  409. package/js/src/src/bitpin.js +487 -0
  410. package/js/src/src/bitrue.d.ts +384 -0
  411. package/js/src/src/bitrue.js +3382 -0
  412. package/js/src/src/bitso.d.ts +270 -0
  413. package/js/src/src/bitso.js +1881 -0
  414. package/js/src/src/bitstamp.d.ts +355 -0
  415. package/js/src/src/bitstamp.js +2445 -0
  416. package/js/src/src/bitteam.d.ts +229 -0
  417. package/js/src/src/bitteam.js +2420 -0
  418. package/js/src/src/bittrade.d.ts +298 -0
  419. package/js/src/src/bittrade.js +2050 -0
  420. package/js/src/src/bitunix.d.ts +21 -0
  421. package/js/src/src/bitunix.js +326 -0
  422. package/js/src/src/bitvavo.d.ts +311 -0
  423. package/js/src/src/bitvavo.js +2204 -0
  424. package/js/src/src/blockchaincom.d.ts +256 -0
  425. package/js/src/src/blockchaincom.js +1259 -0
  426. package/js/src/src/blofin.d.ts +439 -0
  427. package/js/src/src/blofin.js +2576 -0
  428. package/js/src/src/btcalpha.d.ts +209 -0
  429. package/js/src/src/btcalpha.js +1056 -0
  430. package/js/src/src/btcbox.d.ts +144 -0
  431. package/js/src/src/btcbox.js +834 -0
  432. package/js/src/src/btcmarkets.d.ts +253 -0
  433. package/js/src/src/btcmarkets.js +1418 -0
  434. package/js/src/src/btcturk.d.ts +161 -0
  435. package/js/src/src/btcturk.js +1058 -0
  436. package/js/src/src/bybit.d.ts +1097 -0
  437. package/js/src/src/bybit.js +9382 -0
  438. package/js/src/src/bydfi.d.ts +23 -0
  439. package/js/src/src/bydfi.js +434 -0
  440. package/js/src/src/cafearz.d.ts +21 -0
  441. package/js/src/src/cafearz.js +346 -0
  442. package/js/src/src/cex.d.ts +286 -0
  443. package/js/src/src/cex.js +1799 -0
  444. package/js/src/src/coinbase.d.ts +623 -0
  445. package/js/src/src/coinbase.js +5220 -0
  446. package/js/src/src/coinbaseadvanced.d.ts +4 -0
  447. package/js/src/src/coinbaseadvanced.js +18 -0
  448. package/js/src/src/coinbaseexchange.d.ts +334 -0
  449. package/js/src/src/coinbaseexchange.js +2127 -0
  450. package/js/src/src/coinbaseinternational.d.ts +443 -0
  451. package/js/src/src/coinbaseinternational.js +2336 -0
  452. package/js/src/src/coincatch.d.ts +786 -0
  453. package/js/src/src/coincatch.js +5492 -0
  454. package/js/src/src/coincheck.d.ts +147 -0
  455. package/js/src/src/coincheck.js +962 -0
  456. package/js/src/src/coinex.d.ts +719 -0
  457. package/js/src/src/coinex.js +6166 -0
  458. package/js/src/src/coinmate.d.ts +202 -0
  459. package/js/src/src/coinmate.js +1215 -0
  460. package/js/src/src/coinmetro.d.ts +244 -0
  461. package/js/src/src/coinmetro.js +2024 -0
  462. package/js/src/src/coinone.d.ts +158 -0
  463. package/js/src/src/coinone.js +1278 -0
  464. package/js/src/src/coinsph.d.ts +310 -0
  465. package/js/src/src/coinsph.js +2203 -0
  466. package/js/src/src/coinspot.d.ts +108 -0
  467. package/js/src/src/coinspot.js +653 -0
  468. package/js/src/src/cryptocom.d.ts +463 -0
  469. package/js/src/src/cryptocom.js +3549 -0
  470. package/js/src/src/cryptomus.d.ts +158 -0
  471. package/js/src/src/cryptomus.js +1169 -0
  472. package/js/src/src/defx.d.ts +348 -0
  473. package/js/src/src/defx.js +2139 -0
  474. package/js/src/src/delta.d.ts +407 -0
  475. package/js/src/src/delta.js +3654 -0
  476. package/js/src/src/deribit.d.ts +516 -0
  477. package/js/src/src/deribit.js +3790 -0
  478. package/js/src/src/derive.d.ts +324 -0
  479. package/js/src/src/derive.js +2655 -0
  480. package/js/src/src/digifinex.d.ts +544 -0
  481. package/js/src/src/digifinex.js +4453 -0
  482. package/js/src/src/ellipx.d.ts +237 -0
  483. package/js/src/src/ellipx.js +2071 -0
  484. package/js/src/src/eterex.d.ts +21 -0
  485. package/js/src/src/eterex.js +299 -0
  486. package/js/src/src/excoino.d.ts +23 -0
  487. package/js/src/src/excoino.js +426 -0
  488. package/js/src/src/exir.d.ts +23 -0
  489. package/js/src/src/exir.js +403 -0
  490. package/js/src/src/exmo.d.ts +426 -0
  491. package/js/src/src/exmo.js +2825 -0
  492. package/js/src/src/exnovin.d.ts +22 -0
  493. package/js/src/src/exnovin.js +378 -0
  494. package/js/src/src/farhadexchange.d.ts +21 -0
  495. package/js/src/src/farhadexchange.js +280 -0
  496. package/js/src/src/fmfwio.d.ts +4 -0
  497. package/js/src/src/fmfwio.js +35 -0
  498. package/js/src/src/foxbit.d.ts +352 -0
  499. package/js/src/src/foxbit.js +2016 -0
  500. package/js/src/src/gate.d.ts +1071 -0
  501. package/js/src/src/gate.js +8282 -0
  502. package/js/src/src/gateio.d.ts +4 -0
  503. package/js/src/src/gateio.js +17 -0
  504. package/js/src/src/gemini.d.ts +257 -0
  505. package/js/src/src/gemini.js +2006 -0
  506. package/js/src/src/hamtapay.d.ts +21 -0
  507. package/js/src/src/hamtapay.js +303 -0
  508. package/js/src/src/hashkey.d.ts +628 -0
  509. package/js/src/src/hashkey.js +4363 -0
  510. package/js/src/src/hibachi.d.ts +346 -0
  511. package/js/src/src/hibachi.js +2137 -0
  512. package/js/src/src/hitbtc.d.ts +558 -0
  513. package/js/src/src/hitbtc.js +3847 -0
  514. package/js/src/src/hitobit.d.ts +23 -0
  515. package/js/src/src/hitobit.js +412 -0
  516. package/js/src/src/hollaex.d.ts +305 -0
  517. package/js/src/src/hollaex.js +2046 -0
  518. package/js/src/src/htx.d.ts +961 -0
  519. package/js/src/src/htx.js +9668 -0
  520. package/js/src/src/huobi.d.ts +4 -0
  521. package/js/src/src/huobi.js +17 -0
  522. package/js/src/src/hyperliquid.d.ts +651 -0
  523. package/js/src/src/hyperliquid.js +3937 -0
  524. package/js/src/src/independentreserve.d.ts +169 -0
  525. package/js/src/src/independentreserve.js +1115 -0
  526. package/js/src/src/indodax.d.ts +217 -0
  527. package/js/src/src/indodax.js +1454 -0
  528. package/js/src/src/iranexchange.d.ts +21 -0
  529. package/js/src/src/iranexchange.js +399 -0
  530. package/js/src/src/jibitex.d.ts +23 -0
  531. package/js/src/src/jibitex.js +416 -0
  532. package/js/src/src/kcex.d.ts +21 -0
  533. package/js/src/src/kcex.js +335 -0
  534. package/js/src/src/kifpoolme.d.ts +23 -0
  535. package/js/src/src/kifpoolme.js +410 -0
  536. package/js/src/src/kraken.d.ts +484 -0
  537. package/js/src/src/kraken.js +3518 -0
  538. package/js/src/src/krakenfutures.d.ts +362 -0
  539. package/js/src/src/krakenfutures.js +2885 -0
  540. package/js/src/src/kucoin.d.ts +759 -0
  541. package/js/src/src/kucoin.js +5153 -0
  542. package/js/src/src/kucoinfutures.d.ts +521 -0
  543. package/js/src/src/kucoinfutures.js +3381 -0
  544. package/js/src/src/latoken.d.ts +274 -0
  545. package/js/src/src/latoken.js +1824 -0
  546. package/js/src/src/lbank.d.ts +350 -0
  547. package/js/src/src/lbank.js +3146 -0
  548. package/js/src/src/luno.d.ts +252 -0
  549. package/js/src/src/luno.js +1479 -0
  550. package/js/src/src/mazdax.d.ts +23 -0
  551. package/js/src/src/mazdax.js +534 -0
  552. package/js/src/src/mercado.d.ts +160 -0
  553. package/js/src/src/mercado.js +1011 -0
  554. package/js/src/src/mexc.d.ts +768 -0
  555. package/js/src/src/mexc.js +6102 -0
  556. package/js/src/src/modetrade.d.ts +496 -0
  557. package/js/src/src/modetrade.js +2936 -0
  558. package/js/src/src/myokx.d.ts +4 -0
  559. package/js/src/src/myokx.js +54 -0
  560. package/js/src/src/ndax.d.ts +285 -0
  561. package/js/src/src/ndax.js +2598 -0
  562. package/js/src/src/nobitex.d.ts +23 -0
  563. package/js/src/src/nobitex.js +454 -0
  564. package/js/src/src/novadax.d.ts +279 -0
  565. package/js/src/src/novadax.js +1676 -0
  566. package/js/src/src/oceanex.d.ts +231 -0
  567. package/js/src/src/oceanex.js +1123 -0
  568. package/js/src/src/okcoin.d.ts +346 -0
  569. package/js/src/src/okcoin.js +3211 -0
  570. package/js/src/src/okexchange.d.ts +23 -0
  571. package/js/src/src/okexchange.js +373 -0
  572. package/js/src/src/okx.d.ts +1125 -0
  573. package/js/src/src/okx.js +9009 -0
  574. package/js/src/src/okxus.d.ts +4 -0
  575. package/js/src/src/okxus.js +54 -0
  576. package/js/src/src/ompfinex.d.ts +23 -0
  577. package/js/src/src/ompfinex.js +510 -0
  578. package/js/src/src/onetrading.d.ts +228 -0
  579. package/js/src/src/onetrading.js +1769 -0
  580. package/js/src/src/oxfun.d.ts +442 -0
  581. package/js/src/src/oxfun.js +2920 -0
  582. package/js/src/src/p2b.d.ts +189 -0
  583. package/js/src/src/p2b.js +1344 -0
  584. package/js/src/src/paradex.d.ts +389 -0
  585. package/js/src/src/paradex.js +2607 -0
  586. package/js/src/src/paymium.d.ts +133 -0
  587. package/js/src/src/paymium.js +644 -0
  588. package/js/src/src/phemex.d.ts +497 -0
  589. package/js/src/src/phemex.js +5333 -0
  590. package/js/src/src/pingi.d.ts +22 -0
  591. package/js/src/src/pingi.js +446 -0
  592. package/js/src/src/poloniex.d.ts +441 -0
  593. package/js/src/src/poloniex.js +3681 -0
  594. package/js/src/src/pooleno.d.ts +21 -0
  595. package/js/src/src/pooleno.js +347 -0
  596. package/js/src/src/pro/alpaca.d.ts +95 -0
  597. package/js/src/src/pro/alpaca.js +724 -0
  598. package/js/src/src/pro/apex.d.ts +160 -0
  599. package/js/src/src/pro/apex.js +1044 -0
  600. package/js/src/src/pro/ascendex.d.ts +99 -0
  601. package/js/src/src/pro/ascendex.js +1012 -0
  602. package/js/src/src/pro/bequant.d.ts +4 -0
  603. package/js/src/src/pro/bequant.js +42 -0
  604. package/js/src/src/pro/binance.d.ts +796 -0
  605. package/js/src/src/pro/binance.js +4373 -0
  606. package/js/src/src/pro/binancecoinm.d.ts +4 -0
  607. package/js/src/src/pro/binancecoinm.js +32 -0
  608. package/js/src/src/pro/binanceus.d.ts +4 -0
  609. package/js/src/src/pro/binanceus.js +52 -0
  610. package/js/src/src/pro/binanceusdm.d.ts +4 -0
  611. package/js/src/src/pro/binanceusdm.js +37 -0
  612. package/js/src/src/pro/bingx.d.ts +151 -0
  613. package/js/src/src/pro/bingx.js +1568 -0
  614. package/js/src/src/pro/bitfinex.d.ts +99 -0
  615. package/js/src/src/pro/bitfinex.js +1165 -0
  616. package/js/src/src/pro/bitget.d.ts +257 -0
  617. package/js/src/src/pro/bitget.js +2327 -0
  618. package/js/src/src/pro/bithumb.d.ts +59 -0
  619. package/js/src/src/pro/bithumb.js +395 -0
  620. package/js/src/src/pro/bitmart.d.ts +168 -0
  621. package/js/src/src/pro/bitmart.js +1686 -0
  622. package/js/src/src/pro/bitmex.d.ts +170 -0
  623. package/js/src/src/pro/bitmex.js +1760 -0
  624. package/js/src/src/pro/bitopro.d.ts +69 -0
  625. package/js/src/src/pro/bitopro.js +477 -0
  626. package/js/src/src/pro/bitrue.d.ts +40 -0
  627. package/js/src/src/pro/bitrue.js +461 -0
  628. package/js/src/src/pro/bitstamp.d.ts +53 -0
  629. package/js/src/src/pro/bitstamp.js +587 -0
  630. package/js/src/src/pro/bittrade.d.ts +66 -0
  631. package/js/src/src/pro/bittrade.js +606 -0
  632. package/js/src/src/pro/bitvavo.d.ts +321 -0
  633. package/js/src/src/pro/bitvavo.js +1451 -0
  634. package/js/src/src/pro/blockchaincom.d.ts +89 -0
  635. package/js/src/src/pro/blockchaincom.js +777 -0
  636. package/js/src/src/pro/blofin.d.ts +174 -0
  637. package/js/src/src/pro/blofin.js +743 -0
  638. package/js/src/src/pro/bybit.d.ts +397 -0
  639. package/js/src/src/pro/bybit.js +2519 -0
  640. package/js/src/src/pro/cex.d.ts +220 -0
  641. package/js/src/src/pro/cex.js +1535 -0
  642. package/js/src/src/pro/coinbase.d.ts +119 -0
  643. package/js/src/src/pro/coinbase.js +736 -0
  644. package/js/src/src/pro/coinbaseadvanced.d.ts +4 -0
  645. package/js/src/src/pro/coinbaseadvanced.js +18 -0
  646. package/js/src/src/pro/coinbaseexchange.d.ts +133 -0
  647. package/js/src/src/pro/coinbaseexchange.js +969 -0
  648. package/js/src/src/pro/coinbaseinternational.d.ts +143 -0
  649. package/js/src/src/pro/coinbaseinternational.js +804 -0
  650. package/js/src/src/pro/coincatch.d.ts +207 -0
  651. package/js/src/src/pro/coincatch.js +1562 -0
  652. package/js/src/src/pro/coincheck.d.ts +33 -0
  653. package/js/src/src/pro/coincheck.js +210 -0
  654. package/js/src/src/pro/coinex.d.ts +147 -0
  655. package/js/src/src/pro/coinex.js +1426 -0
  656. package/js/src/src/pro/coinone.d.ts +51 -0
  657. package/js/src/src/pro/coinone.js +413 -0
  658. package/js/src/src/pro/cryptocom.d.ts +300 -0
  659. package/js/src/src/pro/cryptocom.js +1414 -0
  660. package/js/src/src/pro/defx.d.ts +236 -0
  661. package/js/src/src/pro/defx.js +865 -0
  662. package/js/src/src/pro/deribit.d.ts +163 -0
  663. package/js/src/src/pro/deribit.js +1066 -0
  664. package/js/src/src/pro/derive.d.ts +100 -0
  665. package/js/src/src/pro/derive.js +753 -0
  666. package/js/src/src/pro/exmo.d.ts +97 -0
  667. package/js/src/src/pro/exmo.js +903 -0
  668. package/js/src/src/pro/gate.d.ts +360 -0
  669. package/js/src/src/pro/gate.js +2119 -0
  670. package/js/src/src/pro/gateio.d.ts +4 -0
  671. package/js/src/src/pro/gateio.js +17 -0
  672. package/js/src/src/pro/gemini.d.ts +106 -0
  673. package/js/src/src/pro/gemini.js +932 -0
  674. package/js/src/src/pro/hashkey.d.ts +121 -0
  675. package/js/src/src/pro/hashkey.js +843 -0
  676. package/js/src/src/pro/hitbtc.d.ts +235 -0
  677. package/js/src/src/pro/hitbtc.js +1400 -0
  678. package/js/src/src/pro/hollaex.d.ts +77 -0
  679. package/js/src/src/pro/hollaex.js +604 -0
  680. package/js/src/src/pro/htx.d.ts +141 -0
  681. package/js/src/src/pro/htx.js +2415 -0
  682. package/js/src/src/pro/huobi.d.ts +4 -0
  683. package/js/src/src/pro/huobi.js +17 -0
  684. package/js/src/src/pro/hyperliquid.d.ts +218 -0
  685. package/js/src/src/pro/hyperliquid.js +1126 -0
  686. package/js/src/src/pro/independentreserve.d.ts +36 -0
  687. package/js/src/src/pro/independentreserve.js +287 -0
  688. package/js/src/src/pro/kraken.d.ts +233 -0
  689. package/js/src/src/pro/kraken.js +1785 -0
  690. package/js/src/src/pro/krakenfutures.d.ts +178 -0
  691. package/js/src/src/pro/krakenfutures.js +1592 -0
  692. package/js/src/src/pro/kucoin.d.ts +221 -0
  693. package/js/src/src/pro/kucoin.js +1430 -0
  694. package/js/src/src/pro/kucoinfutures.d.ts +205 -0
  695. package/js/src/src/pro/kucoinfutures.js +1295 -0
  696. package/js/src/src/pro/lbank.d.ts +134 -0
  697. package/js/src/src/pro/lbank.js +950 -0
  698. package/js/src/src/pro/luno.d.ts +44 -0
  699. package/js/src/src/pro/luno.js +322 -0
  700. package/js/src/src/pro/mexc.d.ts +210 -0
  701. package/js/src/src/pro/mexc.js +2009 -0
  702. package/js/src/src/pro/modetrade.d.ts +155 -0
  703. package/js/src/src/pro/modetrade.js +1335 -0
  704. package/js/src/src/pro/myokx.d.ts +4 -0
  705. package/js/src/src/pro/myokx.js +39 -0
  706. package/js/src/src/pro/ndax.d.ts +60 -0
  707. package/js/src/src/pro/ndax.js +545 -0
  708. package/js/src/src/pro/okcoin.d.ts +91 -0
  709. package/js/src/src/pro/okcoin.js +763 -0
  710. package/js/src/src/pro/okx.d.ts +408 -0
  711. package/js/src/src/pro/okx.js +2479 -0
  712. package/js/src/src/pro/okxus.d.ts +4 -0
  713. package/js/src/src/pro/okxus.js +39 -0
  714. package/js/src/src/pro/onetrading.d.ts +107 -0
  715. package/js/src/src/pro/onetrading.js +1343 -0
  716. package/js/src/src/pro/oxfun.d.ts +234 -0
  717. package/js/src/src/pro/oxfun.js +1112 -0
  718. package/js/src/src/pro/p2b.d.ts +104 -0
  719. package/js/src/src/pro/p2b.js +506 -0
  720. package/js/src/src/pro/paradex.d.ts +54 -0
  721. package/js/src/src/pro/paradex.js +370 -0
  722. package/js/src/src/pro/phemex.d.ts +129 -0
  723. package/js/src/src/pro/phemex.js +1569 -0
  724. package/js/src/src/pro/poloniex.d.ts +214 -0
  725. package/js/src/src/pro/poloniex.js +1318 -0
  726. package/js/src/src/pro/probit.d.ts +91 -0
  727. package/js/src/src/pro/probit.js +593 -0
  728. package/js/src/src/pro/tradeogre.d.ts +49 -0
  729. package/js/src/src/pro/tradeogre.js +284 -0
  730. package/js/src/src/pro/upbit.d.ts +124 -0
  731. package/js/src/src/pro/upbit.js +689 -0
  732. package/js/src/src/pro/vertex.d.ts +104 -0
  733. package/js/src/src/pro/vertex.js +999 -0
  734. package/js/src/src/pro/whitebit.d.ts +123 -0
  735. package/js/src/src/pro/whitebit.js +971 -0
  736. package/js/src/src/pro/woo.d.ts +161 -0
  737. package/js/src/src/pro/woo.js +1351 -0
  738. package/js/src/src/pro/woofipro.d.ts +155 -0
  739. package/js/src/src/pro/woofipro.js +1335 -0
  740. package/js/src/src/pro/xt.d.ts +165 -0
  741. package/js/src/src/pro/xt.js +1230 -0
  742. package/js/src/src/probit.d.ts +283 -0
  743. package/js/src/src/probit.js +1935 -0
  744. package/js/src/src/protobuf/mexc/compiled.cjs +7186 -0
  745. package/js/src/src/protobuf/mexc/compiled.d.cts +8 -0
  746. package/js/src/src/raastin.d.ts +24 -0
  747. package/js/src/src/raastin.js +494 -0
  748. package/js/src/src/ramzinex.d.ts +23 -0
  749. package/js/src/src/ramzinex.js +510 -0
  750. package/js/src/src/sarmayex.d.ts +21 -0
  751. package/js/src/src/sarmayex.js +376 -0
  752. package/js/src/src/sarrafex.d.ts +23 -0
  753. package/js/src/src/sarrafex.js +501 -0
  754. package/js/src/src/static_dependencies/ethers/abi-coder.d.ts +50 -0
  755. package/js/src/src/static_dependencies/ethers/abi-coder.js +148 -0
  756. package/js/src/src/static_dependencies/ethers/address/address.d.ts +55 -0
  757. package/js/src/src/static_dependencies/ethers/address/address.js +162 -0
  758. package/js/src/src/static_dependencies/ethers/address/checks.d.ts +80 -0
  759. package/js/src/src/static_dependencies/ethers/address/checks.js +119 -0
  760. package/js/src/src/static_dependencies/ethers/address/contract-address.d.ts +47 -0
  761. package/js/src/src/static_dependencies/ethers/address/contract-address.js +73 -0
  762. package/js/src/src/static_dependencies/ethers/address/index.d.ts +48 -0
  763. package/js/src/src/static_dependencies/ethers/address/index.js +24 -0
  764. package/js/src/src/static_dependencies/ethers/bytes32.d.ts +14 -0
  765. package/js/src/src/static_dependencies/ethers/bytes32.js +45 -0
  766. package/js/src/src/static_dependencies/ethers/coders/abstract-coder.d.ts +120 -0
  767. package/js/src/src/static_dependencies/ethers/coders/abstract-coder.js +424 -0
  768. package/js/src/src/static_dependencies/ethers/coders/address.d.ts +12 -0
  769. package/js/src/src/static_dependencies/ethers/coders/address.js +34 -0
  770. package/js/src/src/static_dependencies/ethers/coders/anonymous.d.ts +14 -0
  771. package/js/src/src/static_dependencies/ethers/coders/anonymous.js +27 -0
  772. package/js/src/src/static_dependencies/ethers/coders/array.d.ts +24 -0
  773. package/js/src/src/static_dependencies/ethers/coders/array.js +162 -0
  774. package/js/src/src/static_dependencies/ethers/coders/boolean.d.ts +12 -0
  775. package/js/src/src/static_dependencies/ethers/coders/boolean.js +26 -0
  776. package/js/src/src/static_dependencies/ethers/coders/bytes.d.ts +18 -0
  777. package/js/src/src/static_dependencies/ethers/coders/bytes.js +39 -0
  778. package/js/src/src/static_dependencies/ethers/coders/fixed-bytes.d.ts +14 -0
  779. package/js/src/src/static_dependencies/ethers/coders/fixed-bytes.js +32 -0
  780. package/js/src/src/static_dependencies/ethers/coders/null.d.ts +11 -0
  781. package/js/src/src/static_dependencies/ethers/coders/null.js +29 -0
  782. package/js/src/src/static_dependencies/ethers/coders/number.d.ts +15 -0
  783. package/js/src/src/static_dependencies/ethers/coders/number.js +48 -0
  784. package/js/src/src/static_dependencies/ethers/coders/string.d.ts +12 -0
  785. package/js/src/src/static_dependencies/ethers/coders/string.js +26 -0
  786. package/js/src/src/static_dependencies/ethers/coders/tuple.d.ts +15 -0
  787. package/js/src/src/static_dependencies/ethers/coders/tuple.js +67 -0
  788. package/js/src/src/static_dependencies/ethers/fragments.d.ts +458 -0
  789. package/js/src/src/static_dependencies/ethers/fragments.js +1252 -0
  790. package/js/src/src/static_dependencies/ethers/hash/index.d.ts +10 -0
  791. package/js/src/src/static_dependencies/ethers/hash/index.js +15 -0
  792. package/js/src/src/static_dependencies/ethers/hash/solidity.d.ts +30 -0
  793. package/js/src/src/static_dependencies/ethers/hash/solidity.js +107 -0
  794. package/js/src/src/static_dependencies/ethers/hash/typed-data.d.ts +144 -0
  795. package/js/src/src/static_dependencies/ethers/hash/typed-data.js +490 -0
  796. package/js/src/src/static_dependencies/ethers/index.d.ts +19 -0
  797. package/js/src/src/static_dependencies/ethers/index.js +22 -0
  798. package/js/src/src/static_dependencies/ethers/interface.d.ts +380 -0
  799. package/js/src/src/static_dependencies/ethers/interface.js +990 -0
  800. package/js/src/src/static_dependencies/ethers/typed.d.ts +569 -0
  801. package/js/src/src/static_dependencies/ethers/typed.js +608 -0
  802. package/js/src/src/static_dependencies/ethers/utils/base58.d.ts +22 -0
  803. package/js/src/src/static_dependencies/ethers/utils/base58.js +68 -0
  804. package/js/src/src/static_dependencies/ethers/utils/base64.d.ts +39 -0
  805. package/js/src/src/static_dependencies/ethers/utils/base64.js +58 -0
  806. package/js/src/src/static_dependencies/ethers/utils/data.d.ts +92 -0
  807. package/js/src/src/static_dependencies/ethers/utils/data.js +175 -0
  808. package/js/src/src/static_dependencies/ethers/utils/errors.d.ts +509 -0
  809. package/js/src/src/static_dependencies/ethers/utils/errors.js +227 -0
  810. package/js/src/src/static_dependencies/ethers/utils/events.d.ts +76 -0
  811. package/js/src/src/static_dependencies/ethers/utils/events.js +52 -0
  812. package/js/src/src/static_dependencies/ethers/utils/fixednumber.d.ts +251 -0
  813. package/js/src/src/static_dependencies/ethers/utils/fixednumber.js +529 -0
  814. package/js/src/src/static_dependencies/ethers/utils/index.d.ts +30 -0
  815. package/js/src/src/static_dependencies/ethers/utils/index.js +38 -0
  816. package/js/src/src/static_dependencies/ethers/utils/maths.d.ts +65 -0
  817. package/js/src/src/static_dependencies/ethers/utils/maths.js +220 -0
  818. package/js/src/src/static_dependencies/ethers/utils/properties.d.ts +22 -0
  819. package/js/src/src/static_dependencies/ethers/utils/properties.js +59 -0
  820. package/js/src/src/static_dependencies/ethers/utils/rlp-decode.d.ts +5 -0
  821. package/js/src/src/static_dependencies/ethers/utils/rlp-decode.js +84 -0
  822. package/js/src/src/static_dependencies/ethers/utils/rlp-encode.d.ts +5 -0
  823. package/js/src/src/static_dependencies/ethers/utils/rlp-encode.js +54 -0
  824. package/js/src/src/static_dependencies/ethers/utils/rlp.d.ts +16 -0
  825. package/js/src/src/static_dependencies/ethers/utils/rlp.js +14 -0
  826. package/js/src/src/static_dependencies/ethers/utils/units.d.ts +23 -0
  827. package/js/src/src/static_dependencies/ethers/utils/units.js +88 -0
  828. package/js/src/src/static_dependencies/ethers/utils/utf8.d.ts +95 -0
  829. package/js/src/src/static_dependencies/ethers/utils/utf8.js +225 -0
  830. package/js/src/src/static_dependencies/ethers/utils/uuid.d.ts +7 -0
  831. package/js/src/src/static_dependencies/ethers/utils/uuid.js +35 -0
  832. package/js/src/src/static_dependencies/fflake/browser.d.ts +222 -0
  833. package/js/src/src/static_dependencies/fflake/browser.js +2578 -0
  834. package/js/src/src/static_dependencies/jsencrypt/JSEncrypt.d.ts +116 -0
  835. package/js/src/src/static_dependencies/jsencrypt/JSEncrypt.js +194 -0
  836. package/js/src/src/static_dependencies/jsencrypt/JSEncryptRSAKey.d.ts +142 -0
  837. package/js/src/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +307 -0
  838. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/asn1.d.ts +51 -0
  839. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +565 -0
  840. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/base64.d.ts +5 -0
  841. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +94 -0
  842. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/hex.d.ts +3 -0
  843. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +70 -0
  844. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/int10.d.ts +9 -0
  845. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +91 -0
  846. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/base64.d.ts +3 -0
  847. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +25 -0
  848. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +101 -0
  849. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +1757 -0
  850. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/prng4.d.ts +10 -0
  851. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +50 -0
  852. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rng.d.ts +3 -0
  853. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +80 -0
  854. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rsa.d.ts +23 -0
  855. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +377 -0
  856. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/util.d.ts +7 -0
  857. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/util.js +64 -0
  858. package/js/src/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.d.ts +24 -0
  859. package/js/src/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +1627 -0
  860. package/js/src/src/static_dependencies/noble-curves/_shortw_utils.d.ts +60 -0
  861. package/js/src/src/static_dependencies/noble-curves/_shortw_utils.js +22 -0
  862. package/js/src/src/static_dependencies/noble-curves/abstract/curve.d.ts +67 -0
  863. package/js/src/src/static_dependencies/noble-curves/abstract/curve.js +157 -0
  864. package/js/src/src/static_dependencies/noble-curves/abstract/edwards.d.ts +79 -0
  865. package/js/src/src/static_dependencies/noble-curves/abstract/edwards.js +432 -0
  866. package/js/src/src/static_dependencies/noble-curves/abstract/hash-to-curve.d.ts +56 -0
  867. package/js/src/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +171 -0
  868. package/js/src/src/static_dependencies/noble-curves/abstract/modular.d.ts +68 -0
  869. package/js/src/src/static_dependencies/noble-curves/abstract/modular.js +351 -0
  870. package/js/src/src/static_dependencies/noble-curves/abstract/montgomery.d.ts +25 -0
  871. package/js/src/src/static_dependencies/noble-curves/abstract/montgomery.js +162 -0
  872. package/js/src/src/static_dependencies/noble-curves/abstract/poseidon.d.ts +29 -0
  873. package/js/src/src/static_dependencies/noble-curves/abstract/poseidon.js +115 -0
  874. package/js/src/src/static_dependencies/noble-curves/abstract/utils.d.ts +53 -0
  875. package/js/src/src/static_dependencies/noble-curves/abstract/utils.js +227 -0
  876. package/js/src/src/static_dependencies/noble-curves/abstract/weierstrass.d.ts +204 -0
  877. package/js/src/src/static_dependencies/noble-curves/abstract/weierstrass.js +1016 -0
  878. package/js/src/src/static_dependencies/noble-curves/ed25519.d.ts +53 -0
  879. package/js/src/src/static_dependencies/noble-curves/ed25519.js +402 -0
  880. package/js/src/src/static_dependencies/noble-curves/p256.d.ts +103 -0
  881. package/js/src/src/static_dependencies/noble-curves/p256.js +47 -0
  882. package/js/src/src/static_dependencies/noble-curves/secp256k1.d.ts +91 -0
  883. package/js/src/src/static_dependencies/noble-curves/secp256k1.js +257 -0
  884. package/js/src/src/static_dependencies/noble-hashes/_assert.d.ts +21 -0
  885. package/js/src/src/static_dependencies/noble-hashes/_assert.js +48 -0
  886. package/js/src/src/static_dependencies/noble-hashes/_sha2.d.ts +23 -0
  887. package/js/src/src/static_dependencies/noble-hashes/_sha2.js +119 -0
  888. package/js/src/src/static_dependencies/noble-hashes/_u64.d.ts +35 -0
  889. package/js/src/src/static_dependencies/noble-hashes/_u64.js +66 -0
  890. package/js/src/src/static_dependencies/noble-hashes/crypto.d.ts +1 -0
  891. package/js/src/src/static_dependencies/noble-hashes/crypto.js +7 -0
  892. package/js/src/src/static_dependencies/noble-hashes/hmac.d.ts +26 -0
  893. package/js/src/src/static_dependencies/noble-hashes/hmac.js +82 -0
  894. package/js/src/src/static_dependencies/noble-hashes/md5.d.ts +18 -0
  895. package/js/src/src/static_dependencies/noble-hashes/md5.js +242 -0
  896. package/js/src/src/static_dependencies/noble-hashes/sha1.d.ts +21 -0
  897. package/js/src/src/static_dependencies/noble-hashes/sha1.js +90 -0
  898. package/js/src/src/static_dependencies/noble-hashes/sha256.d.ts +34 -0
  899. package/js/src/src/static_dependencies/noble-hashes/sha256.js +129 -0
  900. package/js/src/src/static_dependencies/noble-hashes/sha3.d.ts +97 -0
  901. package/js/src/src/static_dependencies/noble-hashes/sha3.js +211 -0
  902. package/js/src/src/static_dependencies/noble-hashes/sha512.d.ts +66 -0
  903. package/js/src/src/static_dependencies/noble-hashes/sha512.js +236 -0
  904. package/js/src/src/static_dependencies/noble-hashes/utils.d.ts +77 -0
  905. package/js/src/src/static_dependencies/noble-hashes/utils.js +147 -0
  906. package/js/src/src/static_dependencies/proxies/agent-base/helpers.d.ts +14 -0
  907. package/js/src/src/static_dependencies/proxies/agent-base/helpers.js +42 -0
  908. package/js/src/src/static_dependencies/proxies/agent-base/index.d.ts +33 -0
  909. package/js/src/src/static_dependencies/proxies/agent-base/index.js +82 -0
  910. package/js/src/src/static_dependencies/proxies/http-proxy-agent/index.d.ts +40 -0
  911. package/js/src/src/static_dependencies/proxies/http-proxy-agent/index.js +119 -0
  912. package/js/src/src/static_dependencies/proxies/https-proxy-agent/index.d.ts +45 -0
  913. package/js/src/src/static_dependencies/proxies/https-proxy-agent/index.js +150 -0
  914. package/js/src/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.d.ts +15 -0
  915. package/js/src/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +95 -0
  916. package/js/src/src/static_dependencies/qs/formats.cjs +22 -0
  917. package/js/src/src/static_dependencies/qs/formats.d.cts +14 -0
  918. package/js/src/src/static_dependencies/qs/index.cjs +15 -0
  919. package/js/src/src/static_dependencies/qs/index.d.cts +10 -0
  920. package/js/src/src/static_dependencies/qs/parse.cjs +208 -0
  921. package/js/src/src/static_dependencies/qs/parse.d.cts +8 -0
  922. package/js/src/src/static_dependencies/qs/stringify.cjs +192 -0
  923. package/js/src/src/static_dependencies/qs/stringify.d.cts +8 -0
  924. package/js/src/src/static_dependencies/qs/utils.cjs +202 -0
  925. package/js/src/src/static_dependencies/qs/utils.d.cts +15 -0
  926. package/js/src/src/static_dependencies/scure-base/index.d.ts +92 -0
  927. package/js/src/src/static_dependencies/scure-base/index.js +420 -0
  928. package/js/src/src/static_dependencies/scure-starknet/index.d.ts +79 -0
  929. package/js/src/src/static_dependencies/scure-starknet/index.js +323 -0
  930. package/js/src/src/static_dependencies/starknet/constants.d.ts +61 -0
  931. package/js/src/src/static_dependencies/starknet/constants.js +67 -0
  932. package/js/src/src/static_dependencies/starknet/index.d.ts +3 -0
  933. package/js/src/src/static_dependencies/starknet/index.js +9 -0
  934. package/js/src/src/static_dependencies/starknet/types/cairoEnum.d.ts +2 -0
  935. package/js/src/src/static_dependencies/starknet/types/cairoEnum.js +7 -0
  936. package/js/src/src/static_dependencies/starknet/types/calldata.d.ts +19 -0
  937. package/js/src/src/static_dependencies/starknet/types/calldata.js +28 -0
  938. package/js/src/src/static_dependencies/starknet/types/index.d.ts +13 -0
  939. package/js/src/src/static_dependencies/starknet/types/index.js +16 -0
  940. package/js/src/src/static_dependencies/starknet/types/lib/contract/abi.d.ts +71 -0
  941. package/js/src/src/static_dependencies/starknet/types/lib/contract/abi.js +13 -0
  942. package/js/src/src/static_dependencies/starknet/types/lib/contract/index.d.ts +24 -0
  943. package/js/src/src/static_dependencies/starknet/types/lib/contract/index.js +16 -0
  944. package/js/src/src/static_dependencies/starknet/types/lib/contract/legacy.d.ts +33 -0
  945. package/js/src/src/static_dependencies/starknet/types/lib/contract/legacy.js +7 -0
  946. package/js/src/src/static_dependencies/starknet/types/lib/contract/sierra.d.ts +52 -0
  947. package/js/src/src/static_dependencies/starknet/types/lib/contract/sierra.js +7 -0
  948. package/js/src/src/static_dependencies/starknet/types/lib/index.d.ts +248 -0
  949. package/js/src/src/static_dependencies/starknet/types/lib/index.js +52 -0
  950. package/js/src/src/static_dependencies/starknet/types/typedData.d.ts +44 -0
  951. package/js/src/src/static_dependencies/starknet/types/typedData.js +19 -0
  952. package/js/src/src/static_dependencies/starknet/utils/assert.d.ts +7 -0
  953. package/js/src/src/static_dependencies/starknet/utils/assert.js +17 -0
  954. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/felt.d.ts +6 -0
  955. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +43 -0
  956. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.d.ts +72 -0
  957. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +117 -0
  958. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.d.ts +76 -0
  959. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +136 -0
  960. package/js/src/src/static_dependencies/starknet/utils/calldata/byteArray.d.ts +32 -0
  961. package/js/src/src/static_dependencies/starknet/utils/calldata/byteArray.js +59 -0
  962. package/js/src/src/static_dependencies/starknet/utils/calldata/cairo.d.ts +183 -0
  963. package/js/src/src/static_dependencies/starknet/utils/calldata/cairo.js +229 -0
  964. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.d.ts +38 -0
  965. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +57 -0
  966. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.d.ts +35 -0
  967. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +64 -0
  968. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.d.ts +34 -0
  969. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +63 -0
  970. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/index.d.ts +3 -0
  971. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/index.js +9 -0
  972. package/js/src/src/static_dependencies/starknet/utils/calldata/formatter.d.ts +9 -0
  973. package/js/src/src/static_dependencies/starknet/utils/calldata/formatter.js +67 -0
  974. package/js/src/src/static_dependencies/starknet/utils/calldata/index.d.ts +89 -0
  975. package/js/src/src/static_dependencies/starknet/utils/calldata/index.js +280 -0
  976. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/index.d.ts +5 -0
  977. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/index.js +30 -0
  978. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/interface.d.ts +20 -0
  979. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/interface.js +8 -0
  980. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.d.ts +24 -0
  981. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +36 -0
  982. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.d.ts +23 -0
  983. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +40 -0
  984. package/js/src/src/static_dependencies/starknet/utils/calldata/propertyOrder.d.ts +2 -0
  985. package/js/src/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +155 -0
  986. package/js/src/src/static_dependencies/starknet/utils/calldata/requestParser.d.ts +11 -0
  987. package/js/src/src/static_dependencies/starknet/utils/calldata/requestParser.js +248 -0
  988. package/js/src/src/static_dependencies/starknet/utils/calldata/responseParser.d.ts +11 -0
  989. package/js/src/src/static_dependencies/starknet/utils/calldata/responseParser.js +214 -0
  990. package/js/src/src/static_dependencies/starknet/utils/calldata/tuple.d.ts +6 -0
  991. package/js/src/src/static_dependencies/starknet/utils/calldata/tuple.js +113 -0
  992. package/js/src/src/static_dependencies/starknet/utils/calldata/validate.d.ts +6 -0
  993. package/js/src/src/static_dependencies/starknet/utils/calldata/validate.js +208 -0
  994. package/js/src/src/static_dependencies/starknet/utils/encode.d.ts +207 -0
  995. package/js/src/src/static_dependencies/starknet/utils/encode.js +282 -0
  996. package/js/src/src/static_dependencies/starknet/utils/hash/classHash.d.ts +57 -0
  997. package/js/src/src/static_dependencies/starknet/utils/hash/classHash.js +223 -0
  998. package/js/src/src/static_dependencies/starknet/utils/hash/index.d.ts +6 -0
  999. package/js/src/src/static_dependencies/starknet/utils/hash/index.js +13 -0
  1000. package/js/src/src/static_dependencies/starknet/utils/merkle.d.ts +35 -0
  1001. package/js/src/src/static_dependencies/starknet/utils/merkle.js +84 -0
  1002. package/js/src/src/static_dependencies/starknet/utils/num.d.ts +182 -0
  1003. package/js/src/src/static_dependencies/starknet/utils/num.js +244 -0
  1004. package/js/src/src/static_dependencies/starknet/utils/selector.d.ts +48 -0
  1005. package/js/src/src/static_dependencies/starknet/utils/selector.js +85 -0
  1006. package/js/src/src/static_dependencies/starknet/utils/shortString.d.ts +57 -0
  1007. package/js/src/src/static_dependencies/starknet/utils/shortString.js +96 -0
  1008. package/js/src/src/static_dependencies/starknet/utils/typedData.d.ts +54 -0
  1009. package/js/src/src/static_dependencies/starknet/utils/typedData.js +321 -0
  1010. package/js/src/src/static_dependencies/watchable/src/types.d.ts +28 -0
  1011. package/js/src/src/static_dependencies/watchable/src/types.js +8 -0
  1012. package/js/src/src/static_dependencies/watchable/src/unpromise.d.ts +120 -0
  1013. package/js/src/src/static_dependencies/watchable/src/unpromise.js +297 -0
  1014. package/js/src/src/static_dependencies/zklink/zklink-sdk-web.d.ts +1279 -0
  1015. package/js/src/src/static_dependencies/zklink/zklink-sdk-web.js +4282 -0
  1016. package/js/src/src/tabdeal.d.ts +23 -0
  1017. package/js/src/src/tabdeal.js +387 -0
  1018. package/js/src/src/tehran_exchange.d.ts +21 -0
  1019. package/js/src/src/tehran_exchange.js +333 -0
  1020. package/js/src/src/tetherland.d.ts +21 -0
  1021. package/js/src/src/tetherland.js +367 -0
  1022. package/js/src/src/timex.d.ts +247 -0
  1023. package/js/src/src/timex.js +1792 -0
  1024. package/js/src/src/tokocrypto.d.ts +261 -0
  1025. package/js/src/src/tokocrypto.js +2641 -0
  1026. package/js/src/src/toobit.d.ts +22 -0
  1027. package/js/src/src/toobit.js +445 -0
  1028. package/js/src/src/tradeogre.d.ts +149 -0
  1029. package/js/src/src/tradeogre.js +878 -0
  1030. package/js/src/src/twox.d.ts +21 -0
  1031. package/js/src/src/twox.js +371 -0
  1032. package/js/src/src/ubitex.d.ts +23 -0
  1033. package/js/src/src/ubitex.js +433 -0
  1034. package/js/src/src/upbit.d.ts +377 -0
  1035. package/js/src/src/upbit.js +2340 -0
  1036. package/js/src/src/vertex.d.ts +346 -0
  1037. package/js/src/src/vertex.js +3146 -0
  1038. package/js/src/src/wallex.d.ts +23 -0
  1039. package/js/src/src/wallex.js +467 -0
  1040. package/js/src/src/wavesexchange.d.ts +244 -0
  1041. package/js/src/src/wavesexchange.js +2747 -0
  1042. package/js/src/src/whitebit.d.ts +571 -0
  1043. package/js/src/src/whitebit.js +3437 -0
  1044. package/js/src/src/woo.d.ts +727 -0
  1045. package/js/src/src/woo.js +4183 -0
  1046. package/js/src/src/woofipro.d.ts +497 -0
  1047. package/js/src/src/woofipro.js +2941 -0
  1048. package/js/src/src/xt.d.ts +568 -0
  1049. package/js/src/src/xt.js +5184 -0
  1050. package/js/src/src/yobit.d.ts +197 -0
  1051. package/js/src/src/yobit.js +1453 -0
  1052. package/js/src/src/zaif.d.ts +136 -0
  1053. package/js/src/src/zaif.js +821 -0
  1054. package/js/src/src/zonda.d.ts +214 -0
  1055. package/js/src/src/zonda.js +1984 -0
  1056. package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +1 -1
  1057. package/js/src/static_dependencies/starknet/utils/calldata/parser/index.d.ts +1 -1
  1058. package/js/test.js +9 -17
  1059. package/package.json +1 -1
@@ -0,0 +1,1479 @@
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/luno.js';
9
+ import { ExchangeError, ArgumentsRequired } from './base/errors.js';
10
+ import { Precise } from './base/Precise.js';
11
+ import { TICK_SIZE } from './base/functions/number.js';
12
+ // ---------------------------------------------------------------------------
13
+ /**
14
+ * @class luno
15
+ * @augments Exchange
16
+ */
17
+ export default class luno extends Exchange {
18
+ describe() {
19
+ return this.deepExtend(super.describe(), {
20
+ 'id': 'luno',
21
+ 'name': 'luno',
22
+ 'countries': ['GB', 'SG', 'ZA'],
23
+ // 300 calls per minute = 5 calls per second = 1000ms / 5 = 200ms between requests
24
+ 'rateLimit': 200,
25
+ 'version': '1',
26
+ 'pro': true,
27
+ 'has': {
28
+ 'CORS': undefined,
29
+ 'spot': true,
30
+ 'margin': false,
31
+ 'swap': false,
32
+ 'future': false,
33
+ 'option': false,
34
+ 'addMargin': false,
35
+ 'borrowCrossMargin': false,
36
+ 'borrowIsolatedMargin': false,
37
+ 'borrowMargin': false,
38
+ 'cancelOrder': true,
39
+ 'closeAllPositions': false,
40
+ 'closePosition': false,
41
+ 'createDepositAddress': true,
42
+ 'createOrder': true,
43
+ 'createReduceOnlyOrder': false,
44
+ 'fetchAccounts': true,
45
+ 'fetchAllGreeks': false,
46
+ 'fetchBalance': true,
47
+ 'fetchBorrowInterest': false,
48
+ 'fetchBorrowRate': false,
49
+ 'fetchBorrowRateHistories': false,
50
+ 'fetchBorrowRateHistory': false,
51
+ 'fetchBorrowRates': false,
52
+ 'fetchBorrowRatesPerSymbol': false,
53
+ 'fetchClosedOrders': true,
54
+ 'fetchCrossBorrowRate': false,
55
+ 'fetchCrossBorrowRates': false,
56
+ 'fetchCurrencies': true,
57
+ 'fetchDepositAddress': true,
58
+ 'fetchFundingHistory': false,
59
+ 'fetchFundingInterval': false,
60
+ 'fetchFundingIntervals': false,
61
+ 'fetchFundingRate': false,
62
+ 'fetchFundingRateHistory': false,
63
+ 'fetchFundingRates': false,
64
+ 'fetchGreeks': false,
65
+ 'fetchIndexOHLCV': false,
66
+ 'fetchIsolatedBorrowRate': false,
67
+ 'fetchIsolatedBorrowRates': false,
68
+ 'fetchIsolatedPositions': false,
69
+ 'fetchLedger': true,
70
+ 'fetchLeverage': false,
71
+ 'fetchLeverages': false,
72
+ 'fetchLeverageTiers': false,
73
+ 'fetchLiquidations': false,
74
+ 'fetchLongShortRatio': false,
75
+ 'fetchLongShortRatioHistory': false,
76
+ 'fetchMarginAdjustmentHistory': false,
77
+ 'fetchMarginMode': false,
78
+ 'fetchMarginModes': false,
79
+ 'fetchMarketLeverageTiers': false,
80
+ 'fetchMarkets': true,
81
+ 'fetchMarkOHLCV': false,
82
+ 'fetchMarkPrice': false,
83
+ 'fetchMarkPrices': false,
84
+ 'fetchMyLiquidations': false,
85
+ 'fetchMySettlementHistory': false,
86
+ 'fetchMyTrades': true,
87
+ 'fetchOHLCV': true,
88
+ 'fetchOpenInterest': false,
89
+ 'fetchOpenInterestHistory': false,
90
+ 'fetchOpenInterests': false,
91
+ 'fetchOpenOrders': true,
92
+ 'fetchOption': false,
93
+ 'fetchOptionChain': false,
94
+ 'fetchOrder': true,
95
+ 'fetchOrderBook': true,
96
+ 'fetchOrders': true,
97
+ 'fetchPosition': false,
98
+ 'fetchPositionForSymbolWs': false,
99
+ 'fetchPositionHistory': false,
100
+ 'fetchPositionMode': false,
101
+ 'fetchPositions': false,
102
+ 'fetchPositionsForSymbol': false,
103
+ 'fetchPositionsForSymbolWs': false,
104
+ 'fetchPositionsHistory': false,
105
+ 'fetchPositionsRisk': false,
106
+ 'fetchPremiumIndexOHLCV': false,
107
+ 'fetchSettlementHistory': false,
108
+ 'fetchTicker': true,
109
+ 'fetchTickers': true,
110
+ 'fetchTrades': true,
111
+ 'fetchTradingFee': true,
112
+ 'fetchTradingFees': false,
113
+ 'fetchUnderlyingAssets': false,
114
+ 'fetchVolatilityHistory': false,
115
+ 'reduceMargin': false,
116
+ 'repayCrossMargin': false,
117
+ 'repayIsolatedMargin': false,
118
+ 'setLeverage': false,
119
+ 'setMargin': false,
120
+ 'setMarginMode': false,
121
+ 'setPositionMode': false,
122
+ },
123
+ 'urls': {
124
+ 'referral': 'https://www.luno.com/invite/44893A',
125
+ 'logo': 'https://user-images.githubusercontent.com/1294454/27766607-8c1a69d8-5ede-11e7-930c-540b5eb9be24.jpg',
126
+ 'api': {
127
+ 'public': 'https://api.luno.com/api',
128
+ 'private': 'https://api.luno.com/api',
129
+ 'exchange': 'https://api.luno.com/api/exchange',
130
+ 'exchangePrivate': 'https://api.luno.com/api/exchange',
131
+ },
132
+ 'www': 'https://www.luno.com',
133
+ 'doc': [
134
+ 'https://www.luno.com/en/api',
135
+ 'https://npmjs.org/package/bitx',
136
+ 'https://github.com/bausmeier/node-bitx',
137
+ ],
138
+ },
139
+ 'api': {
140
+ 'exchange': {
141
+ 'get': {
142
+ 'markets': 1,
143
+ },
144
+ },
145
+ 'exchangePrivate': {
146
+ 'get': {
147
+ 'candles': 1,
148
+ },
149
+ },
150
+ 'public': {
151
+ 'get': {
152
+ 'orderbook': 1,
153
+ 'orderbook_top': 1,
154
+ 'ticker': 1,
155
+ 'tickers': 1,
156
+ 'trades': 1,
157
+ },
158
+ },
159
+ 'private': {
160
+ 'get': {
161
+ 'accounts/{id}/pending': 1,
162
+ 'accounts/{id}/transactions': 1,
163
+ 'balance': 1,
164
+ 'beneficiaries': 1,
165
+ 'send/networks': 1,
166
+ 'fee_info': 1,
167
+ 'funding_address': 1,
168
+ 'listorders': 1,
169
+ 'listtrades': 1,
170
+ 'send_fee': 1,
171
+ 'orders/{id}': 1,
172
+ 'withdrawals': 1,
173
+ 'withdrawals/{id}': 1,
174
+ 'transfers': 1,
175
+ // GET /api/exchange/1/move
176
+ // GET /api/exchange/1/move/list_moves
177
+ // GET /api/exchange/1/candles
178
+ // GET /api/exchange/1/transfers
179
+ // GET /api/exchange/2/listorders
180
+ // GET /api/exchange/2/orders/{id}
181
+ // GET /api/exchange/3/order
182
+ },
183
+ 'post': {
184
+ 'accounts': 1,
185
+ 'address/validate': 1,
186
+ 'postorder': 1,
187
+ 'marketorder': 1,
188
+ 'stoporder': 1,
189
+ 'funding_address': 1,
190
+ 'withdrawals': 1,
191
+ 'send': 1,
192
+ 'oauth2/grant': 1,
193
+ 'beneficiaries': 1,
194
+ // POST /api/exchange/1/move
195
+ },
196
+ 'put': {
197
+ 'accounts/{id}/name': 1,
198
+ },
199
+ 'delete': {
200
+ 'withdrawals/{id}': 1,
201
+ 'beneficiaries/{id}': 1,
202
+ },
203
+ },
204
+ },
205
+ 'timeframes': {
206
+ '1m': 60,
207
+ '5m': 300,
208
+ '15m': 900,
209
+ '30m': 1800,
210
+ '1h': 3600,
211
+ '3h': 10800,
212
+ '4h': 14400,
213
+ '1d': 86400,
214
+ '3d': 259200,
215
+ '1w': 604800,
216
+ },
217
+ 'fees': {
218
+ 'trading': {
219
+ 'tierBased': true,
220
+ 'percentage': true,
221
+ 'taker': this.parseNumber('0.001'),
222
+ 'maker': this.parseNumber('0'),
223
+ },
224
+ },
225
+ 'precisionMode': TICK_SIZE,
226
+ 'features': {
227
+ 'spot': {
228
+ 'sandbox': false,
229
+ 'createOrder': {
230
+ 'marginMode': false,
231
+ 'triggerPrice': true,
232
+ 'triggerPriceType': undefined,
233
+ 'triggerDirection': true,
234
+ 'stopLossPrice': false,
235
+ 'takeProfitPrice': false,
236
+ 'attachedStopLossTakeProfit': undefined,
237
+ 'timeInForce': {
238
+ 'IOC': true,
239
+ 'FOK': true,
240
+ 'PO': true,
241
+ 'GTD': false,
242
+ },
243
+ 'hedged': false,
244
+ 'trailing': false,
245
+ 'leverage': false,
246
+ 'marketBuyByCost': true,
247
+ 'marketBuyRequiresPrice': false,
248
+ 'selfTradePrevention': false,
249
+ 'iceberg': false,
250
+ },
251
+ 'createOrders': undefined,
252
+ 'fetchMyTrades': {
253
+ 'marginMode': false,
254
+ 'limit': 1000,
255
+ 'daysBack': 100000,
256
+ 'untilDays': 100000,
257
+ 'symbolRequired': true,
258
+ },
259
+ 'fetchOrder': {
260
+ 'marginMode': false,
261
+ 'trigger': false,
262
+ 'trailing': false,
263
+ 'symbolRequired': false,
264
+ },
265
+ 'fetchOpenOrders': {
266
+ 'marginMode': false,
267
+ 'limit': 1000,
268
+ 'trigger': false,
269
+ 'trailing': false,
270
+ 'symbolRequired': false,
271
+ },
272
+ 'fetchOrders': {
273
+ 'marginMode': false,
274
+ 'limit': 1000,
275
+ 'daysBack': 100000,
276
+ 'untilDays': undefined,
277
+ 'trigger': false,
278
+ 'trailing': false,
279
+ 'symbolRequired': false,
280
+ },
281
+ 'fetchClosedOrders': {
282
+ 'marginMode': false,
283
+ 'limit': 1000,
284
+ 'daysBack': 100000,
285
+ 'daysBackCanceled': 1,
286
+ 'untilDays': undefined,
287
+ 'trigger': false,
288
+ 'trailing': false,
289
+ 'symbolRequired': false,
290
+ },
291
+ 'fetchOHLCV': {
292
+ 'limit': undefined,
293
+ },
294
+ },
295
+ 'swap': {
296
+ 'linear': undefined,
297
+ 'inverse': undefined,
298
+ },
299
+ 'future': {
300
+ 'linear': undefined,
301
+ 'inverse': undefined,
302
+ },
303
+ },
304
+ });
305
+ }
306
+ /**
307
+ * @method
308
+ * @name luno#fetchCurrencies
309
+ * @description fetches all available currencies on an exchange
310
+ * @param {dict} [params] extra parameters specific to the exchange API endpoint
311
+ * @returns {dict} an associative dictionary of currencies
312
+ */
313
+ async fetchCurrencies(params = {}) {
314
+ if (!this.checkRequiredCredentials(false)) {
315
+ return undefined;
316
+ }
317
+ const response = await this.privateGetSendNetworks(params);
318
+ //
319
+ // {
320
+ // "networks": [
321
+ // {
322
+ // "id": 0,
323
+ // "name": "Ethereum",
324
+ // "native_currency": "ETH"
325
+ // },
326
+ // ...
327
+ // ]
328
+ // }
329
+ //
330
+ const currenciesData = this.safeList(response, 'data', []);
331
+ const result = {};
332
+ for (let i = 0; i < currenciesData.length; i++) {
333
+ const networkEntry = currenciesData[i];
334
+ const id = this.safeString(networkEntry, 'native_currency');
335
+ const code = this.safeCurrencyCode(id);
336
+ if (!(code in result)) {
337
+ result[code] = {
338
+ 'id': id,
339
+ 'code': code,
340
+ 'precision': undefined,
341
+ 'type': undefined,
342
+ 'name': undefined,
343
+ 'active': undefined,
344
+ 'deposit': undefined,
345
+ 'withdraw': undefined,
346
+ 'fee': undefined,
347
+ 'limits': {
348
+ 'withdraw': {
349
+ 'min': undefined,
350
+ 'max': undefined,
351
+ },
352
+ 'deposit': {
353
+ 'min': undefined,
354
+ 'max': undefined,
355
+ },
356
+ },
357
+ 'networks': {},
358
+ 'info': {},
359
+ };
360
+ }
361
+ const networkId = this.safeString(networkEntry, 'name');
362
+ const networkCode = this.networkIdToCode(networkId);
363
+ result[code]['networks'][networkCode] = {
364
+ 'id': networkId,
365
+ 'network': networkCode,
366
+ 'limits': {
367
+ 'withdraw': {
368
+ 'min': undefined,
369
+ 'max': undefined,
370
+ },
371
+ 'deposit': {
372
+ 'min': undefined,
373
+ 'max': undefined,
374
+ },
375
+ },
376
+ 'active': undefined,
377
+ 'deposit': undefined,
378
+ 'withdraw': undefined,
379
+ 'fee': undefined,
380
+ 'precision': undefined,
381
+ 'info': networkEntry,
382
+ };
383
+ // add entry in info
384
+ const info = this.safeList(result[code], 'info', []);
385
+ info.push(networkEntry);
386
+ result[code]['info'] = info;
387
+ }
388
+ // only after all entries are formed in currencies, restructure each entry
389
+ const allKeys = Object.keys(result);
390
+ for (let i = 0; i < allKeys.length; i++) {
391
+ const code = allKeys[i];
392
+ result[code] = this.safeCurrencyStructure(result[code]); // this is needed after adding network entry
393
+ }
394
+ return result;
395
+ }
396
+ /**
397
+ * @method
398
+ * @name luno#fetchMarkets
399
+ * @description retrieves data on all markets for luno
400
+ * @see https://www.luno.com/en/developers/api#tag/Market/operation/Markets
401
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
402
+ * @returns {object[]} an array of objects representing market data
403
+ */
404
+ async fetchMarkets(params = {}) {
405
+ const response = await this.exchangeGetMarkets(params);
406
+ //
407
+ // {
408
+ // "markets":[
409
+ // {
410
+ // "market_id":"BCHXBT",
411
+ // "trading_status":"ACTIVE",
412
+ // "base_currency":"BCH",
413
+ // "counter_currency":"XBT",
414
+ // "min_volume":"0.01",
415
+ // "max_volume":"100.00",
416
+ // "volume_scale":2,
417
+ // "min_price":"0.0001",
418
+ // "max_price":"1.00",
419
+ // "price_scale":6,
420
+ // "fee_scale":8,
421
+ // },
422
+ // ]
423
+ // }
424
+ //
425
+ const result = [];
426
+ const markets = this.safeValue(response, 'markets', []);
427
+ for (let i = 0; i < markets.length; i++) {
428
+ const market = markets[i];
429
+ const id = this.safeString(market, 'market_id');
430
+ const baseId = this.safeString(market, 'base_currency');
431
+ const quoteId = this.safeString(market, 'counter_currency');
432
+ const base = this.safeCurrencyCode(baseId);
433
+ const quote = this.safeCurrencyCode(quoteId);
434
+ const status = this.safeString(market, 'trading_status');
435
+ result.push({
436
+ 'id': id,
437
+ 'symbol': base + '/' + quote,
438
+ 'base': base,
439
+ 'quote': quote,
440
+ 'settle': undefined,
441
+ 'baseId': baseId,
442
+ 'quoteId': quoteId,
443
+ 'settleId': undefined,
444
+ 'type': 'spot',
445
+ 'spot': true,
446
+ 'margin': false,
447
+ 'swap': false,
448
+ 'future': false,
449
+ 'option': false,
450
+ 'active': (status === 'ACTIVE'),
451
+ 'contract': false,
452
+ 'linear': undefined,
453
+ 'inverse': undefined,
454
+ 'contractSize': undefined,
455
+ 'expiry': undefined,
456
+ 'expiryDatetime': undefined,
457
+ 'strike': undefined,
458
+ 'optionType': undefined,
459
+ 'precision': {
460
+ 'amount': this.parseNumber(this.parsePrecision(this.safeString(market, 'volume_scale'))),
461
+ 'price': this.parseNumber(this.parsePrecision(this.safeString(market, 'price_scale'))),
462
+ },
463
+ 'limits': {
464
+ 'leverage': {
465
+ 'min': undefined,
466
+ 'max': undefined,
467
+ },
468
+ 'amount': {
469
+ 'min': this.safeNumber(market, 'min_volume'),
470
+ 'max': this.safeNumber(market, 'max_volume'),
471
+ },
472
+ 'price': {
473
+ 'min': this.safeNumber(market, 'min_price'),
474
+ 'max': this.safeNumber(market, 'max_price'),
475
+ },
476
+ 'cost': {
477
+ 'min': undefined,
478
+ 'max': undefined,
479
+ },
480
+ },
481
+ 'created': undefined,
482
+ 'info': market,
483
+ });
484
+ }
485
+ return result;
486
+ }
487
+ /**
488
+ * @method
489
+ * @name luno#fetchAccounts
490
+ * @description fetch all the accounts associated with a profile
491
+ * @see https://www.luno.com/en/developers/api#tag/Accounts/operation/getBalances
492
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
493
+ * @returns {object} a dictionary of [account structures]{@link https://docs.ccxt.com/#/?id=account-structure} indexed by the account type
494
+ */
495
+ async fetchAccounts(params = {}) {
496
+ const response = await this.privateGetBalance(params);
497
+ const wallets = this.safeValue(response, 'balance', []);
498
+ const result = [];
499
+ for (let i = 0; i < wallets.length; i++) {
500
+ const account = wallets[i];
501
+ const accountId = this.safeString(account, 'account_id');
502
+ const currencyId = this.safeString(account, 'asset');
503
+ const code = this.safeCurrencyCode(currencyId);
504
+ result.push({
505
+ 'id': accountId,
506
+ 'type': undefined,
507
+ 'currency': code,
508
+ 'info': account,
509
+ });
510
+ }
511
+ return result;
512
+ }
513
+ parseBalance(response) {
514
+ const wallets = this.safeValue(response, 'balance', []);
515
+ const result = {
516
+ 'info': response,
517
+ 'timestamp': undefined,
518
+ 'datetime': undefined,
519
+ };
520
+ for (let i = 0; i < wallets.length; i++) {
521
+ const wallet = wallets[i];
522
+ const currencyId = this.safeString(wallet, 'asset');
523
+ const code = this.safeCurrencyCode(currencyId);
524
+ const reserved = this.safeString(wallet, 'reserved');
525
+ const unconfirmed = this.safeString(wallet, 'unconfirmed');
526
+ const balance = this.safeString(wallet, 'balance');
527
+ const reservedUnconfirmed = Precise.stringAdd(reserved, unconfirmed);
528
+ const balanceUnconfirmed = Precise.stringAdd(balance, unconfirmed);
529
+ if (code in result) {
530
+ result[code]['used'] = Precise.stringAdd(result[code]['used'], reservedUnconfirmed);
531
+ result[code]['total'] = Precise.stringAdd(result[code]['total'], balanceUnconfirmed);
532
+ }
533
+ else {
534
+ const account = this.account();
535
+ account['used'] = reservedUnconfirmed;
536
+ account['total'] = balanceUnconfirmed;
537
+ result[code] = account;
538
+ }
539
+ }
540
+ return this.safeBalance(result);
541
+ }
542
+ /**
543
+ * @method
544
+ * @name luno#fetchBalance
545
+ * @description query for balance and get the amount of funds available for trading or funds locked in orders
546
+ * @see https://www.luno.com/en/developers/api#tag/Accounts/operation/getBalances
547
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
548
+ * @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
549
+ */
550
+ async fetchBalance(params = {}) {
551
+ await this.loadMarkets();
552
+ const response = await this.privateGetBalance(params);
553
+ //
554
+ // {
555
+ // "balance": [
556
+ // {'account_id': '119...1336','asset': 'XBT','balance': '0.00','reserved': '0.00',"unconfirmed": "0.00"},
557
+ // {'account_id': '66...289','asset': 'XBT','balance': '0.00','reserved': '0.00',"unconfirmed": "0.00"},
558
+ // {'account_id': '718...5300','asset': 'ETH','balance': '0.00','reserved': '0.00',"unconfirmed": "0.00"},
559
+ // {'account_id': '818...7072','asset': 'ZAR','balance': '0.001417','reserved': '0.00',"unconfirmed": "0.00"}]}
560
+ // ]
561
+ // }
562
+ //
563
+ return this.parseBalance(response);
564
+ }
565
+ /**
566
+ * @method
567
+ * @name luno#fetchOrderBook
568
+ * @description fetches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
569
+ * @see https://www.luno.com/en/developers/api#tag/Market/operation/GetOrderBookFull
570
+ * @see https://www.luno.com/en/developers/api#tag/Market/operation/GetOrderBook
571
+ * @param {string} symbol unified symbol of the market to fetch the order book for
572
+ * @param {int} [limit] the maximum amount of order book entries to return
573
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
574
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
575
+ */
576
+ async fetchOrderBook(symbol, limit = undefined, params = {}) {
577
+ await this.loadMarkets();
578
+ const market = this.market(symbol);
579
+ const request = {
580
+ 'pair': market['id'],
581
+ };
582
+ let response = undefined;
583
+ if (limit !== undefined && limit <= 100) {
584
+ response = await this.publicGetOrderbookTop(this.extend(request, params));
585
+ }
586
+ else {
587
+ response = await this.publicGetOrderbook(this.extend(request, params));
588
+ }
589
+ const timestamp = this.safeInteger(response, 'timestamp');
590
+ return this.parseOrderBook(response, market['symbol'], timestamp, 'bids', 'asks', 'price', 'volume');
591
+ }
592
+ parseOrderStatus(status) {
593
+ const statuses = {
594
+ // todo add other statuses
595
+ 'PENDING': 'open',
596
+ };
597
+ return this.safeString(statuses, status, status);
598
+ }
599
+ parseOrder(order, market = undefined) {
600
+ //
601
+ // {
602
+ // "base": "string",
603
+ // "completed_timestamp": "string",
604
+ // "counter": "string",
605
+ // "creation_timestamp": "string",
606
+ // "expiration_timestamp": "string",
607
+ // "fee_base": "string",
608
+ // "fee_counter": "string",
609
+ // "limit_price": "string",
610
+ // "limit_volume": "string",
611
+ // "order_id": "string",
612
+ // "pair": "string",
613
+ // "state": "PENDING",
614
+ // "type": "BID"
615
+ // }
616
+ //
617
+ const timestamp = this.safeInteger(order, 'creation_timestamp');
618
+ let status = this.parseOrderStatus(this.safeString(order, 'state'));
619
+ status = (status === 'open') ? status : status;
620
+ let side = undefined;
621
+ const orderType = this.safeString(order, 'type');
622
+ if ((orderType === 'ASK') || (orderType === 'SELL')) {
623
+ side = 'sell';
624
+ }
625
+ else if ((orderType === 'BID') || (orderType === 'BUY')) {
626
+ side = 'buy';
627
+ }
628
+ const marketId = this.safeString(order, 'pair');
629
+ market = this.safeMarket(marketId, market);
630
+ const price = this.safeString(order, 'limit_price');
631
+ const amount = this.safeString(order, 'limit_volume');
632
+ const quoteFee = this.safeNumber(order, 'fee_counter');
633
+ const baseFee = this.safeNumber(order, 'fee_base');
634
+ const filled = this.safeString(order, 'base');
635
+ const cost = this.safeString(order, 'counter');
636
+ let fee = undefined;
637
+ if (quoteFee !== undefined) {
638
+ fee = {
639
+ 'cost': quoteFee,
640
+ 'currency': market['quote'],
641
+ };
642
+ }
643
+ else if (baseFee !== undefined) {
644
+ fee = {
645
+ 'cost': baseFee,
646
+ 'currency': market['base'],
647
+ };
648
+ }
649
+ const id = this.safeString(order, 'order_id');
650
+ return this.safeOrder({
651
+ 'id': id,
652
+ 'clientOrderId': undefined,
653
+ 'datetime': this.iso8601(timestamp),
654
+ 'timestamp': timestamp,
655
+ 'lastTradeTimestamp': undefined,
656
+ 'status': status,
657
+ 'symbol': market['symbol'],
658
+ 'type': undefined,
659
+ 'timeInForce': undefined,
660
+ 'postOnly': undefined,
661
+ 'side': side,
662
+ 'price': price,
663
+ 'triggerPrice': undefined,
664
+ 'amount': amount,
665
+ 'filled': filled,
666
+ 'cost': cost,
667
+ 'remaining': undefined,
668
+ 'trades': undefined,
669
+ 'fee': fee,
670
+ 'info': order,
671
+ 'average': undefined,
672
+ }, market);
673
+ }
674
+ /**
675
+ * @method
676
+ * @name luno#fetchOrder
677
+ * @description fetches information on an order made by the user
678
+ * @see https://www.luno.com/en/developers/api#tag/Orders/operation/GetOrder
679
+ * @param {string} id order id
680
+ * @param {string} symbol not used by luno fetchOrder
681
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
682
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
683
+ */
684
+ async fetchOrder(id, symbol = undefined, params = {}) {
685
+ await this.loadMarkets();
686
+ const request = {
687
+ 'id': id,
688
+ };
689
+ const response = await this.privateGetOrdersId(this.extend(request, params));
690
+ return this.parseOrder(response);
691
+ }
692
+ async fetchOrdersByState(state, symbol = undefined, since = undefined, limit = undefined, params = {}) {
693
+ await this.loadMarkets();
694
+ const request = {};
695
+ let market = undefined;
696
+ if (state !== undefined) {
697
+ request['state'] = state;
698
+ }
699
+ if (symbol !== undefined) {
700
+ market = this.market(symbol);
701
+ request['pair'] = market['id'];
702
+ }
703
+ const response = await this.privateGetListorders(this.extend(request, params));
704
+ const orders = this.safeList(response, 'orders', []);
705
+ return this.parseOrders(orders, market, since, limit);
706
+ }
707
+ /**
708
+ * @method
709
+ * @name luno#fetchOrders
710
+ * @description fetches information on multiple orders made by the user
711
+ * @see https://www.luno.com/en/developers/api#tag/Orders/operation/ListOrders
712
+ * @param {string} symbol unified market symbol of the market orders were made in
713
+ * @param {int} [since] the earliest time in ms to fetch orders for
714
+ * @param {int} [limit] the maximum number of order structures to retrieve
715
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
716
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
717
+ */
718
+ async fetchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
719
+ return await this.fetchOrdersByState(undefined, symbol, since, limit, params);
720
+ }
721
+ /**
722
+ * @method
723
+ * @name luno#fetchOpenOrders
724
+ * @description fetch all unfilled currently open orders
725
+ * @see https://www.luno.com/en/developers/api#tag/Orders/operation/ListOrders
726
+ * @param {string} symbol unified market symbol
727
+ * @param {int} [since] the earliest time in ms to fetch open orders for
728
+ * @param {int} [limit] the maximum number of open orders structures to retrieve
729
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
730
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
731
+ */
732
+ async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
733
+ return await this.fetchOrdersByState('PENDING', symbol, since, limit, params);
734
+ }
735
+ /**
736
+ * @method
737
+ * @name luno#fetchClosedOrders
738
+ * @description fetches information on multiple closed orders made by the user
739
+ * @see https://www.luno.com/en/developers/api#tag/Orders/operation/ListOrders
740
+ * @param {string} symbol unified market symbol of the market orders were made in
741
+ * @param {int} [since] the earliest time in ms to fetch orders for
742
+ * @param {int} [limit] the maximum number of order structures to retrieve
743
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
744
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
745
+ */
746
+ async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
747
+ return await this.fetchOrdersByState('COMPLETE', symbol, since, limit, params);
748
+ }
749
+ parseTicker(ticker, market = undefined) {
750
+ // {
751
+ // "pair":"XBTAUD",
752
+ // "timestamp":1642201439301,
753
+ // "bid":"59972.30000000",
754
+ // "ask":"59997.99000000",
755
+ // "last_trade":"59997.99000000",
756
+ // "rolling_24_hour_volume":"1.89510000",
757
+ // "status":"ACTIVE"
758
+ // }
759
+ const timestamp = this.safeInteger(ticker, 'timestamp');
760
+ const marketId = this.safeString(ticker, 'pair');
761
+ const symbol = this.safeSymbol(marketId, market);
762
+ const last = this.safeString(ticker, 'last_trade');
763
+ return this.safeTicker({
764
+ 'symbol': symbol,
765
+ 'timestamp': timestamp,
766
+ 'datetime': this.iso8601(timestamp),
767
+ 'high': undefined,
768
+ 'low': undefined,
769
+ 'bid': this.safeString(ticker, 'bid'),
770
+ 'bidVolume': undefined,
771
+ 'ask': this.safeString(ticker, 'ask'),
772
+ 'askVolume': undefined,
773
+ 'vwap': undefined,
774
+ 'open': undefined,
775
+ 'close': last,
776
+ 'last': last,
777
+ 'previousClose': undefined,
778
+ 'change': undefined,
779
+ 'percentage': undefined,
780
+ 'average': undefined,
781
+ 'baseVolume': this.safeString(ticker, 'rolling_24_hour_volume'),
782
+ 'quoteVolume': undefined,
783
+ 'info': ticker,
784
+ }, market);
785
+ }
786
+ /**
787
+ * @method
788
+ * @name luno#fetchTickers
789
+ * @description fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
790
+ * @see https://www.luno.com/en/developers/api#tag/Market/operation/GetTickers
791
+ * @param {string[]|undefined} symbols unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
792
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
793
+ * @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
794
+ */
795
+ async fetchTickers(symbols = undefined, params = {}) {
796
+ await this.loadMarkets();
797
+ symbols = this.marketSymbols(symbols);
798
+ const response = await this.publicGetTickers(params);
799
+ const tickers = this.indexBy(response['tickers'], 'pair');
800
+ const ids = Object.keys(tickers);
801
+ const result = {};
802
+ for (let i = 0; i < ids.length; i++) {
803
+ const id = ids[i];
804
+ const market = this.safeMarket(id);
805
+ const symbol = market['symbol'];
806
+ const ticker = tickers[id];
807
+ result[symbol] = this.parseTicker(ticker, market);
808
+ }
809
+ return this.filterByArrayTickers(result, 'symbol', symbols);
810
+ }
811
+ /**
812
+ * @method
813
+ * @name luno#fetchTicker
814
+ * @description fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
815
+ * @see https://www.luno.com/en/developers/api#tag/Market/operation/GetTicker
816
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
817
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
818
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
819
+ */
820
+ async fetchTicker(symbol, params = {}) {
821
+ await this.loadMarkets();
822
+ const market = this.market(symbol);
823
+ const request = {
824
+ 'pair': market['id'],
825
+ };
826
+ const response = await this.publicGetTicker(this.extend(request, params));
827
+ // {
828
+ // "pair":"XBTAUD",
829
+ // "timestamp":1642201439301,
830
+ // "bid":"59972.30000000",
831
+ // "ask":"59997.99000000",
832
+ // "last_trade":"59997.99000000",
833
+ // "rolling_24_hour_volume":"1.89510000",
834
+ // "status":"ACTIVE"
835
+ // }
836
+ return this.parseTicker(response, market);
837
+ }
838
+ parseTrade(trade, market = undefined) {
839
+ //
840
+ // fetchTrades (public)
841
+ //
842
+ // {
843
+ // "sequence":276989,
844
+ // "timestamp":1648651276949,
845
+ // "price":"35773.20000000",
846
+ // "volume":"0.00300000",
847
+ // "is_buy":false
848
+ // }
849
+ //
850
+ // fetchMyTrades (private)
851
+ //
852
+ // {
853
+ // "pair":"LTCXBT",
854
+ // "sequence":3256813,
855
+ // "order_id":"BXEX6XHHDT5EGW2",
856
+ // "type":"ASK",
857
+ // "timestamp":1648652135235,
858
+ // "price":"0.002786",
859
+ // "volume":"0.10",
860
+ // "base":"0.10",
861
+ // "counter":"0.0002786",
862
+ // "fee_base":"0.0001",
863
+ // "fee_counter":"0.00",
864
+ // "is_buy":false,
865
+ // "client_order_id":""
866
+ // }
867
+ //
868
+ // For public trade data (is_buy === True) indicates 'buy' side but for private trade data
869
+ // is_buy indicates maker or taker. The value of "type" (ASK/BID) indicate sell/buy side.
870
+ // Private trade data includes ID field which public trade data does not.
871
+ const orderId = this.safeString(trade, 'order_id');
872
+ const id = this.safeString(trade, 'sequence');
873
+ let takerOrMaker = undefined;
874
+ let side = undefined;
875
+ if (orderId !== undefined) {
876
+ const type = this.safeString(trade, 'type');
877
+ if ((type === 'ASK') || (type === 'SELL')) {
878
+ side = 'sell';
879
+ }
880
+ else if ((type === 'BID') || (type === 'BUY')) {
881
+ side = 'buy';
882
+ }
883
+ if (side === 'sell' && trade['is_buy']) {
884
+ takerOrMaker = 'maker';
885
+ }
886
+ else if (side === 'buy' && !trade['is_buy']) {
887
+ takerOrMaker = 'maker';
888
+ }
889
+ else {
890
+ takerOrMaker = 'taker';
891
+ }
892
+ }
893
+ else {
894
+ side = trade['is_buy'] ? 'buy' : 'sell';
895
+ }
896
+ const feeBaseString = this.safeString(trade, 'fee_base');
897
+ const feeCounterString = this.safeString(trade, 'fee_counter');
898
+ let feeCurrency = undefined;
899
+ let feeCost = undefined;
900
+ if (feeBaseString !== undefined) {
901
+ if (!Precise.stringEquals(feeBaseString, '0.0')) {
902
+ feeCurrency = market['base'];
903
+ feeCost = feeBaseString;
904
+ }
905
+ }
906
+ else if (feeCounterString !== undefined) {
907
+ if (!Precise.stringEquals(feeCounterString, '0.0')) {
908
+ feeCurrency = market['quote'];
909
+ feeCost = feeCounterString;
910
+ }
911
+ }
912
+ const timestamp = this.safeInteger(trade, 'timestamp');
913
+ return this.safeTrade({
914
+ 'info': trade,
915
+ 'id': id,
916
+ 'timestamp': timestamp,
917
+ 'datetime': this.iso8601(timestamp),
918
+ 'symbol': market['symbol'],
919
+ 'order': orderId,
920
+ 'type': undefined,
921
+ 'side': side,
922
+ 'takerOrMaker': takerOrMaker,
923
+ 'price': this.safeString(trade, 'price'),
924
+ 'amount': this.safeString2(trade, 'volume', 'base'),
925
+ // Does not include potential fee costs
926
+ 'cost': this.safeString(trade, 'counter'),
927
+ 'fee': {
928
+ 'cost': feeCost,
929
+ 'currency': feeCurrency,
930
+ },
931
+ }, market);
932
+ }
933
+ /**
934
+ * @method
935
+ * @name luno#fetchTrades
936
+ * @description get the list of most recent trades for a particular symbol
937
+ * @see https://www.luno.com/en/developers/api#tag/Market/operation/ListTrades
938
+ * @param {string} symbol unified symbol of the market to fetch trades for
939
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
940
+ * @param {int} [limit] the maximum amount of trades to fetch
941
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
942
+ * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
943
+ */
944
+ async fetchTrades(symbol, since = undefined, limit = undefined, params = {}) {
945
+ await this.loadMarkets();
946
+ const market = this.market(symbol);
947
+ const request = {
948
+ 'pair': market['id'],
949
+ };
950
+ if (since !== undefined) {
951
+ request['since'] = since;
952
+ }
953
+ const response = await this.publicGetTrades(this.extend(request, params));
954
+ //
955
+ // {
956
+ // "trades":[
957
+ // {
958
+ // "sequence":276989,
959
+ // "timestamp":1648651276949,
960
+ // "price":"35773.20000000",
961
+ // "volume":"0.00300000",
962
+ // "is_buy":false
963
+ // },...
964
+ // ]
965
+ // }
966
+ //
967
+ const trades = this.safeList(response, 'trades', []);
968
+ return this.parseTrades(trades, market, since, limit);
969
+ }
970
+ /**
971
+ * @method
972
+ * @name luno#fetchOHLCV
973
+ * @see https://www.luno.com/en/developers/api#tag/Market/operation/GetCandles
974
+ * @description fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
975
+ * @param {string} symbol unified symbol of the market to fetch OHLCV data for
976
+ * @param {string} timeframe the length of time each candle represents
977
+ * @param {int} [since] timestamp in ms of the earliest candle to fetch
978
+ * @param {int} [limit] the maximum amount of candles to fetch
979
+ * @param {object} params extra parameters specific to the luno api endpoint
980
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
981
+ */
982
+ async fetchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
983
+ await this.loadMarkets();
984
+ const market = this.market(symbol);
985
+ const request = {
986
+ 'duration': this.safeValue(this.timeframes, timeframe, timeframe),
987
+ 'pair': market['id'],
988
+ };
989
+ if (since !== undefined) {
990
+ request['since'] = this.parseToInt(since);
991
+ }
992
+ else {
993
+ const duration = 1000 * 1000 * this.parseTimeframe(timeframe);
994
+ request['since'] = this.milliseconds() - duration;
995
+ }
996
+ const response = await this.exchangePrivateGetCandles(this.extend(request, params));
997
+ //
998
+ // {
999
+ // "candles": [
1000
+ // {
1001
+ // "timestamp": 1664055240000,
1002
+ // "open": "19612.65",
1003
+ // "close": "19612.65",
1004
+ // "high": "19612.65",
1005
+ // "low": "19612.65",
1006
+ // "volume": "0.00"
1007
+ // },...
1008
+ // ],
1009
+ // "duration": 60,
1010
+ // "pair": "XBTEUR"
1011
+ // }
1012
+ //
1013
+ const ohlcvs = this.safeList(response, 'candles', []);
1014
+ return this.parseOHLCVs(ohlcvs, market, timeframe, since, limit);
1015
+ }
1016
+ parseOHLCV(ohlcv, market = undefined) {
1017
+ // {
1018
+ // "timestamp": 1664055240000,
1019
+ // "open": "19612.65",
1020
+ // "close": "19612.65",
1021
+ // "high": "19612.65",
1022
+ // "low": "19612.65",
1023
+ // "volume": "0.00"
1024
+ // }
1025
+ return [
1026
+ this.safeInteger(ohlcv, 'timestamp'),
1027
+ this.safeNumber(ohlcv, 'open'),
1028
+ this.safeNumber(ohlcv, 'high'),
1029
+ this.safeNumber(ohlcv, 'low'),
1030
+ this.safeNumber(ohlcv, 'close'),
1031
+ this.safeNumber(ohlcv, 'volume'),
1032
+ ];
1033
+ }
1034
+ /**
1035
+ * @method
1036
+ * @name luno#fetchMyTrades
1037
+ * @description fetch all trades made by the user
1038
+ * @see https://www.luno.com/en/developers/api#tag/Orders/operation/ListUserTrades
1039
+ * @param {string} symbol unified market symbol
1040
+ * @param {int} [since] the earliest time in ms to fetch trades for
1041
+ * @param {int} [limit] the maximum number of trades structures to retrieve
1042
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1043
+ * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
1044
+ */
1045
+ async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1046
+ if (symbol === undefined) {
1047
+ throw new ArgumentsRequired(this.id + ' fetchMyTrades() requires a symbol argument');
1048
+ }
1049
+ await this.loadMarkets();
1050
+ const market = this.market(symbol);
1051
+ const request = {
1052
+ 'pair': market['id'],
1053
+ };
1054
+ if (since !== undefined) {
1055
+ request['since'] = since;
1056
+ }
1057
+ if (limit !== undefined) {
1058
+ request['limit'] = limit;
1059
+ }
1060
+ const response = await this.privateGetListtrades(this.extend(request, params));
1061
+ //
1062
+ // {
1063
+ // "trades":[
1064
+ // {
1065
+ // "pair":"LTCXBT",
1066
+ // "sequence":3256813,
1067
+ // "order_id":"BXEX6XHHDT5EGW2",
1068
+ // "type":"ASK",
1069
+ // "timestamp":1648652135235,
1070
+ // "price":"0.002786",
1071
+ // "volume":"0.10",
1072
+ // "base":"0.10",
1073
+ // "counter":"0.0002786",
1074
+ // "fee_base":"0.0001",
1075
+ // "fee_counter":"0.00",
1076
+ // "is_buy":false,
1077
+ // "client_order_id":""
1078
+ // },...
1079
+ // ]
1080
+ // }
1081
+ //
1082
+ const trades = this.safeList(response, 'trades', []);
1083
+ return this.parseTrades(trades, market, since, limit);
1084
+ }
1085
+ /**
1086
+ * @method
1087
+ * @name luno#fetchTradingFee
1088
+ * @description fetch the trading fees for a market
1089
+ * @see https://www.luno.com/en/developers/api#tag/Orders/operation/getFeeInfo
1090
+ * @param {string} symbol unified market symbol
1091
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1092
+ * @returns {object} a [fee structure]{@link https://docs.ccxt.com/#/?id=fee-structure}
1093
+ */
1094
+ async fetchTradingFee(symbol, params = {}) {
1095
+ await this.loadMarkets();
1096
+ const market = this.market(symbol);
1097
+ const request = {
1098
+ 'pair': market['id'],
1099
+ };
1100
+ const response = await this.privateGetFeeInfo(this.extend(request, params));
1101
+ //
1102
+ // {
1103
+ // "maker_fee": "0.00250000",
1104
+ // "taker_fee": "0.00500000",
1105
+ // "thirty_day_volume": "0"
1106
+ // }
1107
+ //
1108
+ return {
1109
+ 'info': response,
1110
+ 'symbol': symbol,
1111
+ 'maker': this.safeNumber(response, 'maker_fee'),
1112
+ 'taker': this.safeNumber(response, 'taker_fee'),
1113
+ 'percentage': undefined,
1114
+ 'tierBased': undefined,
1115
+ };
1116
+ }
1117
+ /**
1118
+ * @method
1119
+ * @name luno#createOrder
1120
+ * @description create a trade order
1121
+ * @see https://www.luno.com/en/developers/api#tag/Orders/operation/PostMarketOrder
1122
+ * @see https://www.luno.com/en/developers/api#tag/Orders/operation/PostLimitOrder
1123
+ * @param {string} symbol unified symbol of the market to create an order in
1124
+ * @param {string} type 'market' or 'limit'
1125
+ * @param {string} side 'buy' or 'sell'
1126
+ * @param {float} amount how much of currency you want to trade in units of base currency
1127
+ * @param {float} [price] the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1128
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1129
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1130
+ */
1131
+ async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
1132
+ await this.loadMarkets();
1133
+ const market = this.market(symbol);
1134
+ const request = {
1135
+ 'pair': market['id'],
1136
+ };
1137
+ let response = undefined;
1138
+ if (type === 'market') {
1139
+ request['type'] = side.toUpperCase();
1140
+ // todo add createMarketBuyOrderRequires price logic as it is implemented in the other exchanges
1141
+ if (side === 'buy') {
1142
+ request['counter_volume'] = this.amountToPrecision(market['symbol'], amount);
1143
+ }
1144
+ else {
1145
+ request['base_volume'] = this.amountToPrecision(market['symbol'], amount);
1146
+ }
1147
+ response = await this.privatePostMarketorder(this.extend(request, params));
1148
+ }
1149
+ else {
1150
+ request['volume'] = this.amountToPrecision(market['symbol'], amount);
1151
+ request['price'] = this.priceToPrecision(market['symbol'], price);
1152
+ request['type'] = (side === 'buy') ? 'BID' : 'ASK';
1153
+ response = await this.privatePostPostorder(this.extend(request, params));
1154
+ }
1155
+ return this.safeOrder({
1156
+ 'info': response,
1157
+ 'id': response['order_id'],
1158
+ }, market);
1159
+ }
1160
+ /**
1161
+ * @method
1162
+ * @name luno#cancelOrder
1163
+ * @description cancels an open order
1164
+ * @see https://www.luno.com/en/developers/api#tag/Orders/operation/StopOrder
1165
+ * @param {string} id order id
1166
+ * @param {string} symbol unified symbol of the market the order was made in
1167
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1168
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1169
+ */
1170
+ async cancelOrder(id, symbol = undefined, params = {}) {
1171
+ await this.loadMarkets();
1172
+ const request = {
1173
+ 'order_id': id,
1174
+ };
1175
+ const response = await this.privatePostStoporder(this.extend(request, params));
1176
+ //
1177
+ // {
1178
+ // "success": true
1179
+ // }
1180
+ //
1181
+ return this.safeOrder({
1182
+ 'info': response,
1183
+ });
1184
+ }
1185
+ async fetchLedgerByEntries(code = undefined, entry = undefined, limit = undefined, params = {}) {
1186
+ // by default without entry number or limit number, return most recent entry
1187
+ if (entry === undefined) {
1188
+ entry = -1;
1189
+ }
1190
+ if (limit === undefined) {
1191
+ limit = 1;
1192
+ }
1193
+ const since = undefined;
1194
+ const request = {
1195
+ 'min_row': entry,
1196
+ 'max_row': this.sum(entry, limit),
1197
+ };
1198
+ return await this.fetchLedger(code, since, limit, this.extend(request, params));
1199
+ }
1200
+ /**
1201
+ * @method
1202
+ * @name luno#fetchLedger
1203
+ * @description fetch the history of changes, actions done by the user or operations that altered the balance of the user
1204
+ * @see https://www.luno.com/en/developers/api#tag/Accounts/operation/ListTransactions
1205
+ * @param {string} [code] unified currency code, default is undefined
1206
+ * @param {int} [since] timestamp in ms of the earliest ledger entry, default is undefined
1207
+ * @param {int} [limit] max number of ledger entries to return, default is undefined
1208
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1209
+ * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger}
1210
+ */
1211
+ async fetchLedger(code = undefined, since = undefined, limit = undefined, params = {}) {
1212
+ await this.loadMarkets();
1213
+ await this.loadAccounts();
1214
+ let currency = undefined;
1215
+ let id = this.safeString(params, 'id'); // account id
1216
+ let min_row = this.safeValue(params, 'min_row');
1217
+ let max_row = this.safeValue(params, 'max_row');
1218
+ if (id === undefined) {
1219
+ if (code === undefined) {
1220
+ throw new ArgumentsRequired(this.id + ' fetchLedger() requires a currency code argument if no account id specified in params');
1221
+ }
1222
+ currency = this.currency(code);
1223
+ const accountsByCurrencyCode = this.indexBy(this.accounts, 'currency');
1224
+ const account = this.safeValue(accountsByCurrencyCode, code);
1225
+ if (account === undefined) {
1226
+ throw new ExchangeError(this.id + ' fetchLedger() could not find account id for ' + code);
1227
+ }
1228
+ id = account['id'];
1229
+ }
1230
+ if (min_row === undefined && max_row === undefined) {
1231
+ max_row = 0; // Default to most recent transactions
1232
+ min_row = -1000; // Maximum number of records supported
1233
+ }
1234
+ else if (min_row === undefined || max_row === undefined) {
1235
+ throw new ExchangeError(this.id + " fetchLedger() require both params 'max_row' and 'min_row' or neither to be defined");
1236
+ }
1237
+ if (limit !== undefined && max_row - min_row > limit) {
1238
+ if (max_row <= 0) {
1239
+ min_row = max_row - limit;
1240
+ }
1241
+ else if (min_row > 0) {
1242
+ max_row = min_row + limit;
1243
+ }
1244
+ }
1245
+ if (max_row - min_row > 1000) {
1246
+ throw new ExchangeError(this.id + " fetchLedger() requires the params 'max_row' - 'min_row' <= 1000");
1247
+ }
1248
+ const request = {
1249
+ 'id': id,
1250
+ 'min_row': min_row,
1251
+ 'max_row': max_row,
1252
+ };
1253
+ const response = await this.privateGetAccountsIdTransactions(this.extend(params, request));
1254
+ const entries = this.safeValue(response, 'transactions', []);
1255
+ return this.parseLedger(entries, currency, since, limit);
1256
+ }
1257
+ parseLedgerComment(comment) {
1258
+ const words = comment.split(' ');
1259
+ const types = {
1260
+ 'Withdrawal': 'fee',
1261
+ 'Trading': 'fee',
1262
+ 'Payment': 'transaction',
1263
+ 'Sent': 'transaction',
1264
+ 'Deposit': 'transaction',
1265
+ 'Received': 'transaction',
1266
+ 'Released': 'released',
1267
+ 'Reserved': 'reserved',
1268
+ 'Sold': 'trade',
1269
+ 'Bought': 'trade',
1270
+ 'Failure': 'failed',
1271
+ };
1272
+ let referenceId = undefined;
1273
+ const firstWord = this.safeString(words, 0);
1274
+ const thirdWord = this.safeString(words, 2);
1275
+ const fourthWord = this.safeString(words, 3);
1276
+ let type = this.safeString(types, firstWord, undefined);
1277
+ if ((type === undefined) && (thirdWord === 'fee')) {
1278
+ type = 'fee';
1279
+ }
1280
+ if ((type === 'reserved') && (fourthWord === 'order')) {
1281
+ referenceId = this.safeString(words, 4);
1282
+ }
1283
+ return {
1284
+ 'type': type,
1285
+ 'referenceId': referenceId,
1286
+ };
1287
+ }
1288
+ parseLedgerEntry(entry, currency = undefined) {
1289
+ // const details = this.safeValue (entry, 'details', {});
1290
+ const id = this.safeString(entry, 'row_index');
1291
+ const account_id = this.safeString(entry, 'account_id');
1292
+ const timestamp = this.safeInteger(entry, 'timestamp');
1293
+ const currencyId = this.safeString(entry, 'currency');
1294
+ const code = this.safeCurrencyCode(currencyId, currency);
1295
+ currency = this.safeCurrency(currencyId, currency);
1296
+ const available_delta = this.safeString(entry, 'available_delta');
1297
+ const balance_delta = this.safeString(entry, 'balance_delta');
1298
+ const after = this.safeString(entry, 'balance');
1299
+ const comment = this.safeString(entry, 'description');
1300
+ let before = after;
1301
+ let amount = '0.0';
1302
+ const result = this.parseLedgerComment(comment);
1303
+ const type = result['type'];
1304
+ const referenceId = result['referenceId'];
1305
+ let direction = undefined;
1306
+ let status = undefined;
1307
+ if (!Precise.stringEquals(balance_delta, '0.0')) {
1308
+ before = Precise.stringSub(after, balance_delta);
1309
+ status = 'ok';
1310
+ amount = Precise.stringAbs(balance_delta);
1311
+ }
1312
+ else if (Precise.stringLt(available_delta, '0.0')) {
1313
+ status = 'pending';
1314
+ amount = Precise.stringAbs(available_delta);
1315
+ }
1316
+ else if (Precise.stringGt(available_delta, '0.0')) {
1317
+ status = 'canceled';
1318
+ amount = Precise.stringAbs(available_delta);
1319
+ }
1320
+ if (Precise.stringGt(balance_delta, '0') || Precise.stringGt(available_delta, '0')) {
1321
+ direction = 'in';
1322
+ }
1323
+ else if (Precise.stringLt(balance_delta, '0') || Precise.stringLt(available_delta, '0')) {
1324
+ direction = 'out';
1325
+ }
1326
+ return this.safeLedgerEntry({
1327
+ 'info': entry,
1328
+ 'id': id,
1329
+ 'direction': direction,
1330
+ 'account': account_id,
1331
+ 'referenceId': referenceId,
1332
+ 'referenceAccount': undefined,
1333
+ 'type': type,
1334
+ 'currency': code,
1335
+ 'amount': this.parseToNumeric(amount),
1336
+ 'timestamp': timestamp,
1337
+ 'datetime': this.iso8601(timestamp),
1338
+ 'before': this.parseToNumeric(before),
1339
+ 'after': this.parseToNumeric(after),
1340
+ 'status': status,
1341
+ 'fee': undefined,
1342
+ }, currency);
1343
+ }
1344
+ /**
1345
+ * @method
1346
+ * @name luno#createDepositAddress
1347
+ * @description create a currency deposit address
1348
+ * @see https://www.luno.com/en/developers/api#tag/Receive/operation/createFundingAddress
1349
+ * @param {string} code unified currency code of the currency for the deposit address
1350
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1351
+ * @param {string} [params.name] an optional name for the new address
1352
+ * @param {int} [params.account_id] an optional account id for the new address
1353
+ * @returns {object} an [address structure]{@link https://docs.ccxt.com/#/?id=address-structure}
1354
+ */
1355
+ async createDepositAddress(code, params = {}) {
1356
+ await this.loadMarkets();
1357
+ const currency = this.currency(code);
1358
+ const request = {
1359
+ 'asset': currency['id'],
1360
+ };
1361
+ const response = await this.privatePostFundingAddress(this.extend(request, params));
1362
+ //
1363
+ // {
1364
+ // "account_id": "string",
1365
+ // "address": "string",
1366
+ // "address_meta": [
1367
+ // {
1368
+ // "label": "string",
1369
+ // "value": "string"
1370
+ // }
1371
+ // ],
1372
+ // "asset": "string",
1373
+ // "assigned_at": 0,
1374
+ // "name": "string",
1375
+ // "network": 0,
1376
+ // "qr_code_uri": "string",
1377
+ // "receive_fee": "string",
1378
+ // "total_received": "string",
1379
+ // "total_unconfirmed": "string"
1380
+ // }
1381
+ //
1382
+ return this.parseDepositAddress(response, currency);
1383
+ }
1384
+ /**
1385
+ * @method
1386
+ * @name luno#fetchDepositAddress
1387
+ * @description fetch the deposit address for a currency associated with this account
1388
+ * @see https://www.luno.com/en/developers/api#tag/Receive/operation/getFundingAddress
1389
+ * @param {string} code unified currency code
1390
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1391
+ * @param {string} [params.address] a specific cryptocurrency address to retrieve
1392
+ * @returns {object} an [address structure]{@link https://docs.ccxt.com/#/?id=address-structure}
1393
+ */
1394
+ async fetchDepositAddress(code, params = {}) {
1395
+ await this.loadMarkets();
1396
+ const currency = this.currency(code);
1397
+ const request = {
1398
+ 'asset': currency['id'],
1399
+ };
1400
+ const response = await this.privateGetFundingAddress(this.extend(request, params));
1401
+ //
1402
+ // {
1403
+ // "account_id": "string",
1404
+ // "address": "string",
1405
+ // "address_meta": [
1406
+ // {
1407
+ // "label": "string",
1408
+ // "value": "string"
1409
+ // }
1410
+ // ],
1411
+ // "asset": "string",
1412
+ // "assigned_at": 0,
1413
+ // "name": "string",
1414
+ // "network": 0,
1415
+ // "qr_code_uri": "string",
1416
+ // "receive_fee": "string",
1417
+ // "total_received": "string",
1418
+ // "total_unconfirmed": "string"
1419
+ // }
1420
+ //
1421
+ return this.parseDepositAddress(response, currency);
1422
+ }
1423
+ parseDepositAddress(depositAddress, currency = undefined) {
1424
+ //
1425
+ // {
1426
+ // "account_id": "string",
1427
+ // "address": "string",
1428
+ // "address_meta": [
1429
+ // {
1430
+ // "label": "string",
1431
+ // "value": "string"
1432
+ // }
1433
+ // ],
1434
+ // "asset": "string",
1435
+ // "assigned_at": 0,
1436
+ // "name": "string",
1437
+ // "network": 0,
1438
+ // "qr_code_uri": "string",
1439
+ // "receive_fee": "string",
1440
+ // "total_received": "string",
1441
+ // "total_unconfirmed": "string"
1442
+ // }
1443
+ //
1444
+ const currencyId = this.safeStringUpper(depositAddress, 'currency');
1445
+ const code = this.safeCurrencyCode(currencyId, currency);
1446
+ return {
1447
+ 'info': depositAddress,
1448
+ 'currency': code,
1449
+ 'network': undefined,
1450
+ 'address': this.safeString(depositAddress, 'address'),
1451
+ 'tag': this.safeString(depositAddress, 'name'),
1452
+ };
1453
+ }
1454
+ sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
1455
+ let url = this.urls['api'][api] + '/' + this.version + '/' + this.implodeParams(path, params);
1456
+ const query = this.omit(params, this.extractParams(path));
1457
+ if (Object.keys(query).length) {
1458
+ url += '?' + this.urlencode(query);
1459
+ }
1460
+ if ((api === 'private') || (api === 'exchangePrivate')) {
1461
+ this.checkRequiredCredentials();
1462
+ const auth = this.stringToBase64(this.apiKey + ':' + this.secret);
1463
+ headers = {
1464
+ 'Authorization': 'Basic ' + auth,
1465
+ };
1466
+ }
1467
+ return { 'url': url, 'method': method, 'body': body, 'headers': headers };
1468
+ }
1469
+ handleErrors(httpCode, reason, url, method, headers, body, response, requestHeaders, requestBody) {
1470
+ if (response === undefined) {
1471
+ return undefined;
1472
+ }
1473
+ const error = this.safeValue(response, 'error');
1474
+ if (error !== undefined) {
1475
+ throw new ExchangeError(this.id + ' ' + this.json(response));
1476
+ }
1477
+ return undefined;
1478
+ }
1479
+ }