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,2139 @@
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/defx.js';
9
+ import { Precise } from './base/Precise.js';
10
+ import { TICK_SIZE } from './base/functions/number.js';
11
+ import { sha256 } from './static_dependencies/noble-hashes/sha256.js';
12
+ import { NotSupported, ArgumentsRequired, BadRequest, AuthenticationError, InvalidOrder, ExchangeError } from './base/errors.js';
13
+ // ---------------------------------------------------------------------------
14
+ /**
15
+ * @class defx
16
+ * @augments Exchange
17
+ */
18
+ export default class defx extends Exchange {
19
+ describe() {
20
+ return this.deepExtend(super.describe(), {
21
+ 'id': 'defx',
22
+ 'name': 'Defx X',
23
+ // 'countries': [ '' ],
24
+ 'rateLimit': 100,
25
+ 'version': 'v1',
26
+ 'certified': false,
27
+ 'pro': false,
28
+ 'hostname': 'defx.com',
29
+ 'dex': true,
30
+ 'has': {
31
+ 'CORS': undefined,
32
+ 'spot': false,
33
+ 'margin': false,
34
+ 'swap': true,
35
+ 'future': false,
36
+ 'option': false,
37
+ 'addMargin': true,
38
+ 'cancelAllOrders': true,
39
+ 'cancelAllOrdersAfter': false,
40
+ 'cancelOrder': true,
41
+ 'cancelWithdraw': false,
42
+ 'closeAllPositions': true,
43
+ 'closePosition': true,
44
+ 'createConvertTrade': false,
45
+ 'createDepositAddress': false,
46
+ 'createMarketBuyOrderWithCost': false,
47
+ 'createMarketOrder': false,
48
+ 'createMarketOrderWithCost': false,
49
+ 'createMarketSellOrderWithCost': false,
50
+ 'createOrder': true,
51
+ 'createOrderWithTakeProfitAndStopLoss': true,
52
+ 'createReduceOnlyOrder': true,
53
+ 'createStopLimitOrder': false,
54
+ 'createStopLossOrder': false,
55
+ 'createStopMarketOrder': false,
56
+ 'createStopOrder': false,
57
+ 'createTakeProfitOrder': true,
58
+ 'createTrailingAmountOrder': false,
59
+ 'createTrailingPercentOrder': false,
60
+ 'createTriggerOrder': true,
61
+ 'fetchAccounts': false,
62
+ 'fetchBalance': true,
63
+ 'fetchCanceledOrders': true,
64
+ 'fetchClosedOrder': false,
65
+ 'fetchClosedOrders': true,
66
+ 'fetchConvertCurrencies': false,
67
+ 'fetchConvertQuote': false,
68
+ 'fetchConvertTrade': false,
69
+ 'fetchConvertTradeHistory': false,
70
+ 'fetchCurrencies': false,
71
+ 'fetchDepositAddress': false,
72
+ 'fetchDepositAddresses': false,
73
+ 'fetchDepositAddressesByNetwork': false,
74
+ 'fetchDeposits': false,
75
+ 'fetchDepositsWithdrawals': false,
76
+ 'fetchFundingHistory': false,
77
+ 'fetchFundingInterval': false,
78
+ 'fetchFundingIntervals': false,
79
+ 'fetchFundingRate': true,
80
+ 'fetchFundingRateHistory': false,
81
+ 'fetchFundingRates': false,
82
+ 'fetchIndexOHLCV': false,
83
+ 'fetchLedger': true,
84
+ 'fetchLeverage': false,
85
+ 'fetchMarginAdjustmentHistory': false,
86
+ 'fetchMarginMode': false,
87
+ 'fetchMarkets': true,
88
+ 'fetchMarkOHLCV': false,
89
+ 'fetchMarkPrice': false,
90
+ 'fetchMarkPrices': false,
91
+ 'fetchMyTrades': true,
92
+ 'fetchOHLCV': true,
93
+ 'fetchOpenInterestHistory': false,
94
+ 'fetchOpenOrder': false,
95
+ 'fetchOpenOrders': true,
96
+ 'fetchOrder': true,
97
+ 'fetchOrderBook': true,
98
+ 'fetchOrders': true,
99
+ 'fetchOrderTrades': false,
100
+ 'fetchPosition': true,
101
+ 'fetchPositionHistory': false,
102
+ 'fetchPositionMode': false,
103
+ 'fetchPositions': true,
104
+ 'fetchPositionsHistory': false,
105
+ 'fetchPremiumIndexOHLCV': false,
106
+ 'fetchStatus': true,
107
+ 'fetchTicker': true,
108
+ 'fetchTickers': true,
109
+ 'fetchTime': true,
110
+ 'fetchTrades': true,
111
+ 'fetchTradingFee': false,
112
+ 'fetchTradingFees': false,
113
+ 'fetchTransactions': false,
114
+ 'fetchTransfers': false,
115
+ 'fetchWithdrawals': false,
116
+ 'reduceMargin': false,
117
+ 'sandbox': true,
118
+ 'setLeverage': true,
119
+ 'setMargin': false,
120
+ 'setPositionMode': false,
121
+ 'transfer': false,
122
+ 'withdraw': true,
123
+ },
124
+ 'timeframes': {
125
+ '1m': '1m',
126
+ '3m': '3m',
127
+ '5m': '5m',
128
+ '15m': '15m',
129
+ '30m': '30m',
130
+ '1h': '1h',
131
+ '2h': '2h',
132
+ '4h': '4h',
133
+ '12h': '12h',
134
+ '1d': '1d',
135
+ '1w': '1w',
136
+ '1M': '1M',
137
+ },
138
+ 'urls': {
139
+ 'logo': 'https://github.com/user-attachments/assets/4e92bace-d7a9-45ea-92be-122168dc87e4',
140
+ 'api': {
141
+ 'public': 'https://api.{hostname}',
142
+ 'private': 'https://api.{hostname}',
143
+ },
144
+ 'test': {
145
+ 'public': 'https://api.testnet.{hostname}',
146
+ 'private': 'https://api.testnet.{hostname}',
147
+ },
148
+ 'www': 'https://defx.com/home',
149
+ 'doc': [
150
+ 'https://docs.defx.com/docs',
151
+ 'https://api-docs.defx.com/',
152
+ ],
153
+ 'fees': [
154
+ '',
155
+ ],
156
+ 'referral': {
157
+ 'url': 'https://app.defx.com/join/6I2CZ7',
158
+ },
159
+ },
160
+ 'api': {
161
+ 'v1': {
162
+ 'public': {
163
+ 'get': {
164
+ 'healthcheck/ping': 1,
165
+ 'symbols/{symbol}/ohlc': 1,
166
+ 'symbols/{symbol}/trades': 1,
167
+ 'symbols/{symbol}/prices': 1,
168
+ 'symbols/{symbol}/ticker/24hr': 1,
169
+ 'symbols/{symbol}/depth/{level}/{slab}': 1,
170
+ 'ticker/24HrAgg': 1,
171
+ 'c/markets': 1,
172
+ 'c/markets/metadata': 1,
173
+ 'analytics/market/stats/newUsers': 1,
174
+ 'analytics/market/stats/tvl': 1,
175
+ 'analytics/market/stats/volumeByInstrument': 1,
176
+ 'analytics/market/stats/liquidation': 1,
177
+ 'analytics/market/stats/totalVolume': 1,
178
+ 'analytics/market/stats/openInterest': 1,
179
+ 'analytics/market/stats/totalTrades': 1,
180
+ 'analytics/market/stats/basis': 1,
181
+ 'analytics/market/stats/insuranceFund': 1,
182
+ 'analytics/market/stats/longAndShortRatio': 1,
183
+ 'analytics/market/stats/fundingRate': 1,
184
+ 'analytics/market/overview': 1,
185
+ 'explorer/search': 1,
186
+ 'explorer/transactions': 1,
187
+ 'explorer/blocks': 1,
188
+ },
189
+ },
190
+ 'private': {
191
+ 'get': {
192
+ 'api/order/{orderId}': 1,
193
+ 'api/orders': 1,
194
+ 'api/orders/oco/{parentOrderId}': 1,
195
+ 'api/trades': 1,
196
+ 'api/position/active': 1,
197
+ 'api/users/metadata/leverage': 1,
198
+ 'api/users/metadata/feeMultiplier': 1,
199
+ 'api/users/metadata/slippage': 1,
200
+ 'api/users/referral': 1,
201
+ 'api/users/apikeys': 1,
202
+ 'connection-signature-message/evm': 1,
203
+ 'api/users/profile/wallets': 1,
204
+ 'api/notifications': 1,
205
+ 'api/wallet/balance': 1,
206
+ 'api/wallet/transactions': 1,
207
+ 'api/analytics/user/overview': 1,
208
+ 'api/analytics/user/pnl': 1,
209
+ 'api/analytics/points/overview': 1,
210
+ 'api/analytics/points/history': 1,
211
+ },
212
+ 'post': {
213
+ 'api/order': 1,
214
+ 'api/position/oco': 1,
215
+ 'api/users/socket/listenKeys': 1,
216
+ 'api/users/metadata/leverage': 1,
217
+ 'api/users/metadata/feeMultiplier': 1,
218
+ 'api/users/metadata/slippage': 1,
219
+ 'api/users/referral/recordReferralSignup': 1,
220
+ 'api/users/apikeys': 1,
221
+ 'api/users/profile/wallets': 1,
222
+ 'api/transfers/withdrawal': 1,
223
+ 'api/transfers/bridge/withdrawal': 1,
224
+ },
225
+ 'put': {
226
+ 'api/position/updatePositionMargin': 1,
227
+ 'api/users/socket/listenKeys/{listenKey}': 1,
228
+ 'api/users/apikeys/{accessKey}/status': 1,
229
+ 'api/users/referral': 1,
230
+ },
231
+ 'patch': {
232
+ 'api/users/apikeys/{accessKey}': 1,
233
+ },
234
+ 'delete': {
235
+ 'api/orders/allOpen': 1,
236
+ 'api/order/{orderId}': 1,
237
+ 'api/position/{positionId}': 1,
238
+ 'api/position/all': 1,
239
+ 'api/users/socket/listenKeys/{listenKey}': 1,
240
+ 'api/users/apikeys/{accessKey}': 1,
241
+ },
242
+ },
243
+ },
244
+ },
245
+ 'fees': {
246
+ 'trading': {
247
+ 'tierBased': true,
248
+ 'percentage': true,
249
+ 'maker': this.parseNumber('0.0002'),
250
+ 'taker': this.parseNumber('0.0005'),
251
+ },
252
+ },
253
+ 'options': {
254
+ 'sandboxMode': false,
255
+ },
256
+ 'features': {
257
+ 'spot': undefined,
258
+ 'forDerivatives': {
259
+ 'sandbox': true,
260
+ 'createOrder': {
261
+ 'marginMode': false,
262
+ 'triggerPrice': true,
263
+ // todo implement
264
+ 'triggerPriceType': {
265
+ 'last': true,
266
+ 'mark': true,
267
+ 'index': false,
268
+ },
269
+ 'triggerDirection': false,
270
+ 'stopLossPrice': false,
271
+ 'takeProfitPrice': false,
272
+ 'attachedStopLossTakeProfit': undefined,
273
+ 'timeInForce': {
274
+ 'IOC': true,
275
+ 'FOK': true,
276
+ 'PO': true,
277
+ 'GTD': false,
278
+ },
279
+ 'hedged': false,
280
+ 'selfTradePrevention': false,
281
+ 'trailing': false,
282
+ 'iceberg': false,
283
+ 'leverage': false,
284
+ 'marketBuyByCost': false,
285
+ 'marketBuyRequiresPrice': false,
286
+ },
287
+ 'createOrders': undefined,
288
+ 'fetchMyTrades': {
289
+ 'marginMode': false,
290
+ 'limit': 1000,
291
+ 'daysBack': undefined,
292
+ 'untilDays': undefined,
293
+ 'symbolRequired': false,
294
+ },
295
+ 'fetchOrder': {
296
+ 'marginMode': false,
297
+ 'trigger': false,
298
+ 'trailing': false,
299
+ 'symbolRequired': false,
300
+ },
301
+ 'fetchOpenOrders': {
302
+ 'marginMode': true,
303
+ 'limit': 100,
304
+ 'trigger': false,
305
+ 'trailing': false,
306
+ 'symbolRequired': false,
307
+ },
308
+ 'fetchOrders': {
309
+ 'marginMode': false,
310
+ 'limit': 500,
311
+ 'daysBack': 100000,
312
+ 'untilDays': 100000,
313
+ 'trigger': false,
314
+ 'trailing': false,
315
+ 'symbolRequired': false,
316
+ },
317
+ 'fetchClosedOrders': {
318
+ 'marginMode': false,
319
+ 'limit': 500,
320
+ 'daysBack': 100000,
321
+ 'daysBackCanceled': 1,
322
+ 'untilDays': 100000,
323
+ 'trigger': false,
324
+ 'trailing': false,
325
+ 'symbolRequired': false,
326
+ },
327
+ 'fetchOHLCV': {
328
+ 'limit': 1000,
329
+ },
330
+ },
331
+ 'swap': {
332
+ 'linear': {
333
+ 'extends': 'forDerivatives',
334
+ },
335
+ 'inverse': undefined,
336
+ },
337
+ 'future': {
338
+ 'linear': undefined,
339
+ 'inverse': undefined,
340
+ },
341
+ },
342
+ 'commonCurrencies': {},
343
+ 'exceptions': {
344
+ 'exact': {
345
+ '404': BadRequest,
346
+ 'missing_auth_signature': AuthenticationError,
347
+ 'order_rejected': InvalidOrder,
348
+ 'invalid_order_id': InvalidOrder,
349
+ 'filter_lotsize_maxqty': InvalidOrder,
350
+ 'filter_notional_min': InvalidOrder,
351
+ 'failed_index_price_up_multiplier_filter': InvalidOrder,
352
+ 'no_open_orders': InvalidOrder,
353
+ 'active_position_not_found': InvalidOrder,
354
+ 'position_inactive': InvalidOrder,
355
+ 'invalid_position_id': InvalidOrder,
356
+ 'Internal server error': ExchangeError, // {"msg":"Internal server error","code":"internal_server_error"}
357
+ },
358
+ 'broad': {
359
+ 'Bad Request': BadRequest, // {"errorMessage":"Bad Request","data":[{"param":"symbol","message":"\"symbol\" must be one of [ETH_USDC, BTC_USDC, BNB_USDC, SOL_USDC, DOGE_USDC, TON_USDC, AVAX_USDC, WIF_USDC, KPEPE_USDC, KSHIB_USDC, KBONK_USDC, MOODENG_USDC, POPCAT_USDC, MOTHER_USDC]"}]}
360
+ },
361
+ },
362
+ 'precisionMode': TICK_SIZE,
363
+ });
364
+ }
365
+ /**
366
+ * @method
367
+ * @name defx#fetchStatus
368
+ * @description the latest known information on the availability of the exchange API
369
+ * @see https://api-docs.defx.com/#4b03bb3b-a0fa-4dfb-b96c-237bde0ce9e6
370
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
371
+ * @returns {object} a [status structure]{@link https://docs.ccxt.com/#/?id=exchange-status-structure}
372
+ */
373
+ async fetchStatus(params = {}) {
374
+ const response = await this.v1PublicGetHealthcheckPing(params);
375
+ //
376
+ // {
377
+ // "success": true,
378
+ // "t": 1709705048323,
379
+ // "v": "0.0.7",
380
+ // "msg": "A programmer’s wife tells him, “While you’re at the grocery store, buy some eggs.” He never comes back."
381
+ // }
382
+ //
383
+ let status = undefined;
384
+ const success = this.safeBool(response, 'success');
385
+ if (success) {
386
+ status = 'ok';
387
+ }
388
+ else {
389
+ status = 'error';
390
+ }
391
+ return {
392
+ 'status': status,
393
+ 'updated': undefined,
394
+ 'eta': undefined,
395
+ 'url': undefined,
396
+ 'info': response,
397
+ };
398
+ }
399
+ /**
400
+ * @method
401
+ * @name defx#fetchTime
402
+ * @description fetches the current integer timestamp in milliseconds from the exchange server
403
+ * @see https://api-docs.defx.com/#4b03bb3b-a0fa-4dfb-b96c-237bde0ce9e6
404
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
405
+ * @returns {int} the current integer timestamp in milliseconds from the exchange server
406
+ */
407
+ async fetchTime(params = {}) {
408
+ const response = await this.v1PublicGetHealthcheckPing(params);
409
+ //
410
+ // {
411
+ // "success": true,
412
+ // "t": 1709705048323,
413
+ // "v": "0.0.7",
414
+ // "msg": "A programmer’s wife tells him, “While you’re at the grocery store, buy some eggs.” He never comes back."
415
+ // }
416
+ //
417
+ return this.safeInteger(response, 't');
418
+ }
419
+ /**
420
+ * @method
421
+ * @name defx#fetchMarkets
422
+ * @description retrieves data on all markets for defx
423
+ * @see https://api-docs.defx.com/#73cce0c8-f842-4891-9145-01bb6d61324d
424
+ * @see https://api-docs.defx.com/#24fd4e5b-840e-451e-99e0-7fea47c7f371
425
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
426
+ * @returns {object[]} an array of objects representing market data
427
+ */
428
+ async fetchMarkets(params = {}) {
429
+ const request = {
430
+ 'type': 'perps',
431
+ };
432
+ const promises = [
433
+ this.v1PublicGetCMarkets(this.extend(request, params)),
434
+ this.v1PublicGetCMarketsMetadata(this.extend(request, params)),
435
+ ];
436
+ const responses = await Promise.all(promises);
437
+ //
438
+ // {
439
+ // "data": [
440
+ // {
441
+ // "market": "DOGE_USDC",
442
+ // "candleWindows": [
443
+ // "1m",
444
+ // "3m",
445
+ // "5m",
446
+ // "15m",
447
+ // "30m",
448
+ // "1h",
449
+ // "2h",
450
+ // "4h",
451
+ // "12h",
452
+ // "1d",
453
+ // "1w",
454
+ // "1M"
455
+ // ],
456
+ // "depthSlabs": [
457
+ // "0.00001",
458
+ // "0.00005",
459
+ // "0.0001",
460
+ // "0.001",
461
+ // "0.01"
462
+ // ],
463
+ // "filters": [
464
+ // {
465
+ // "filterType": "LOT_SIZE",
466
+ // "minQty": "1.00000",
467
+ // "maxQty": "1500000.00000",
468
+ // "stepSize": "1.00000"
469
+ // },
470
+ // {
471
+ // "filterType": "MARKET_LOT_SIZE",
472
+ // "minQty": "1.00000",
473
+ // "maxQty": "750000.00000",
474
+ // "stepSize": "1.00000"
475
+ // },
476
+ // {
477
+ // "filterType": "PRICE_FILTER",
478
+ // "minPrice": "0.00244000",
479
+ // "maxPrice": "30.00000000",
480
+ // "tickSize": "0.00001"
481
+ // },
482
+ // {
483
+ // "filterType": "NOTIONAL",
484
+ // "minNotional": "100.00000000"
485
+ // },
486
+ // {
487
+ // "filterType": "PERCENT_PRICE_BY_SIDE",
488
+ // "bidMultiplierUp": "1.5",
489
+ // "bidMultiplierDown": "0.5",
490
+ // "askMultiplierUp": "1.5",
491
+ // "askMultiplierDown": "0.5"
492
+ // },
493
+ // {
494
+ // "filterType": "INDEX_PRICE_FILTER",
495
+ // "multiplierUp": "1.3",
496
+ // "multiplierDown": "0.7"
497
+ // }
498
+ // ],
499
+ // "cappedLeverage": "25",
500
+ // "maintenanceMarginTiers": [
501
+ // {
502
+ // "tier": "1",
503
+ // "minMaintenanceMargin": "0",
504
+ // "maxMaintenanceMargin": "2500",
505
+ // "leverage": "25"
506
+ // },
507
+ // {
508
+ // "tier": "2",
509
+ // "minMaintenanceMargin": "2500",
510
+ // "maxMaintenanceMargin": "12500",
511
+ // "leverage": "20"
512
+ // },
513
+ // {
514
+ // "tier": "3",
515
+ // "minMaintenanceMargin": "12500",
516
+ // "maxMaintenanceMargin": "25000",
517
+ // "leverage": "15"
518
+ // },
519
+ // {
520
+ // "tier": "4",
521
+ // "minMaintenanceMargin": "25000",
522
+ // "maxMaintenanceMargin": "50000",
523
+ // "leverage": "10"
524
+ // },
525
+ // {
526
+ // "tier": "5",
527
+ // "minMaintenanceMargin": "50000",
528
+ // "maxMaintenanceMargin": "75000",
529
+ // "leverage": "8"
530
+ // },
531
+ // {
532
+ // "tier": "6",
533
+ // "minMaintenanceMargin": "75000",
534
+ // "maxMaintenanceMargin": "125000",
535
+ // "leverage": "7"
536
+ // },
537
+ // {
538
+ // "tier": "7",
539
+ // "minMaintenanceMargin": "125000",
540
+ // "maxMaintenanceMargin": "187500",
541
+ // "leverage": "5"
542
+ // },
543
+ // {
544
+ // "tier": "8",
545
+ // "minMaintenanceMargin": "187500",
546
+ // "maxMaintenanceMargin": "250000",
547
+ // "leverage": "3"
548
+ // },
549
+ // {
550
+ // "tier": "9",
551
+ // "minMaintenanceMargin": "250000",
552
+ // "maxMaintenanceMargin": "375000",
553
+ // "leverage": "2"
554
+ // },
555
+ // {
556
+ // "tier": "10",
557
+ // "minMaintenanceMargin": "375000",
558
+ // "maxMaintenanceMargin": "500000",
559
+ // "leverage": "1"
560
+ // }
561
+ // ],
562
+ // "fees": {
563
+ // "maker": "0.08",
564
+ // "taker": "0.1"
565
+ // }
566
+ // },
567
+ // ]
568
+ // }
569
+ //
570
+ const activeMarkets = this.safeList(responses[0], 'data');
571
+ const activeMarketsByType = this.indexBy(activeMarkets, 'market');
572
+ const marketMetadatas = this.safeList(responses[1], 'data');
573
+ for (let i = 0; i < marketMetadatas.length; i++) {
574
+ const marketId = marketMetadatas[i]['market'];
575
+ let status = undefined;
576
+ if (marketId in activeMarketsByType) {
577
+ status = activeMarketsByType[marketId]['status'];
578
+ }
579
+ marketMetadatas[i]['status'] = status;
580
+ }
581
+ return this.parseMarkets(marketMetadatas);
582
+ }
583
+ parseMarket(market) {
584
+ const marketId = this.safeString(market, 'market');
585
+ const parts = marketId.split('_');
586
+ const baseId = this.safeString(parts, 0);
587
+ const quoteId = this.safeString(parts, 1);
588
+ const base = this.safeCurrencyCode(baseId);
589
+ const quote = this.safeCurrencyCode(quoteId);
590
+ const symbol = base + '/' + quote + ':' + quote;
591
+ const filters = this.safeList(market, 'filters', []);
592
+ const fees = this.safeDict(market, 'fees', {});
593
+ const filtersByType = this.indexBy(filters, 'filterType');
594
+ const priceFilter = this.safeDict(filtersByType, 'PRICE_FILTER', {});
595
+ const lotFilter = this.safeDict(filtersByType, 'LOT_SIZE', {});
596
+ const marketLotFilter = this.safeDict(filtersByType, 'MARKET_LOT_SIZE', {});
597
+ const notionalFilter = this.safeDict(filtersByType, 'NOTIONAL', {});
598
+ return {
599
+ 'id': marketId,
600
+ 'symbol': symbol,
601
+ 'base': base,
602
+ 'quote': quote,
603
+ 'settle': quote,
604
+ 'baseId': baseId,
605
+ 'quoteId': quoteId,
606
+ 'settleId': quoteId,
607
+ 'type': 'swap',
608
+ 'spot': false,
609
+ 'margin': false,
610
+ 'swap': true,
611
+ 'future': false,
612
+ 'option': false,
613
+ 'active': this.safeString(market, 'status', '') === 'active',
614
+ 'contract': true,
615
+ 'linear': true,
616
+ 'inverse': false,
617
+ 'taker': this.safeNumber(fees, 'taker'),
618
+ 'maker': this.safeNumber(fees, 'maker'),
619
+ 'contractSize': this.parseNumber('1'),
620
+ 'expiry': undefined,
621
+ 'expiryDatetime': undefined,
622
+ 'strike': undefined,
623
+ 'optionType': undefined,
624
+ 'precision': {
625
+ 'amount': this.safeNumber(lotFilter, 'stepSize'),
626
+ 'price': this.safeNumber(priceFilter, 'tickSize'),
627
+ },
628
+ 'limits': {
629
+ 'leverage': {
630
+ 'min': undefined,
631
+ 'max': this.safeNumber(market, 'cappedLeverage'),
632
+ },
633
+ 'amount': {
634
+ 'min': this.safeNumber(lotFilter, 'minQty'),
635
+ 'max': this.safeNumber(lotFilter, 'maxQty'),
636
+ },
637
+ 'price': {
638
+ 'min': this.safeNumber(priceFilter, 'minPrice'),
639
+ 'max': this.safeNumber(priceFilter, 'maxPrice'),
640
+ },
641
+ 'cost': {
642
+ 'min': this.safeNumber(notionalFilter, 'minNotional'),
643
+ 'max': undefined,
644
+ },
645
+ 'market': {
646
+ 'min': this.safeNumber(marketLotFilter, 'minQty'),
647
+ 'max': this.safeNumber(marketLotFilter, 'maxQty'),
648
+ },
649
+ },
650
+ 'created': undefined,
651
+ 'info': market,
652
+ };
653
+ }
654
+ /**
655
+ * @method
656
+ * @name defx#fetchTicker
657
+ * @description fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
658
+ * @see https://api-docs.defx.com/#fe6f81d0-2f3a-4eee-976f-c8fc8f4c5d56
659
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
660
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
661
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
662
+ */
663
+ async fetchTicker(symbol, params = {}) {
664
+ await this.loadMarkets();
665
+ const market = this.market(symbol);
666
+ const request = {
667
+ 'symbol': market['id'],
668
+ };
669
+ const response = await this.v1PublicGetSymbolsSymbolTicker24hr(this.extend(request, params));
670
+ //
671
+ // {
672
+ // "symbol": "BTC_USDC",
673
+ // "priceChange": "0",
674
+ // "priceChangePercent": "0",
675
+ // "weightedAvgPrice": "0",
676
+ // "lastPrice": "2.00",
677
+ // "lastQty": "10.000",
678
+ // "bestBidPrice": "1646.00",
679
+ // "bestBidQty": "10.000",
680
+ // "bestAskPrice": "1646.00",
681
+ // "bestAskQty": "10.000",
682
+ // "openPrice": "0.00",
683
+ // "highPrice": "0.00",
684
+ // "lowPrice": "0.00",
685
+ // "volume": "0.000",
686
+ // "quoteVolume": "0.00",
687
+ // "openTime": 1700142658697,
688
+ // "closeTime": 1700142658697,
689
+ // "openInterestBase": "1.000",
690
+ // "openInterestQuote": "0.43112300"
691
+ // }
692
+ //
693
+ return this.parseTicker(response, market);
694
+ }
695
+ /**
696
+ * @method
697
+ * @name defx#fetchTickers
698
+ * @description fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
699
+ * @see https://api-docs.defx.com/#8c61cfbd-40d9-410e-b014-f5b36eba51d1
700
+ * @param {string[]|undefined} symbols unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
701
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
702
+ * @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
703
+ */
704
+ async fetchTickers(symbols = undefined, params = {}) {
705
+ await this.loadMarkets();
706
+ let market = undefined;
707
+ if (symbols !== undefined) {
708
+ symbols = this.marketSymbols(symbols);
709
+ const firstSymbol = this.safeString(symbols, 0);
710
+ if (firstSymbol !== undefined) {
711
+ market = this.market(firstSymbol);
712
+ }
713
+ }
714
+ let type = undefined;
715
+ [type, params] = this.handleMarketTypeAndParams('fetchTickers', market, params);
716
+ if (type === 'spot') {
717
+ throw new NotSupported(this.id + ' fetchTickers() is not supported for ' + type + ' markets');
718
+ }
719
+ const response = await this.v1PublicGetTicker24HrAgg(params);
720
+ //
721
+ // {
722
+ // "ETH_USDC": {
723
+ // "priceChange": "0",
724
+ // "priceChangePercent": "0",
725
+ // "openPrice": "1646.15",
726
+ // "highPrice": "1646.15",
727
+ // "lowPrice": "1646.15",
728
+ // "lastPrice": "1646.15",
729
+ // "quoteVolume": "13.17",
730
+ // "volume": "0.008",
731
+ // "markPrice": "1645.15"
732
+ // }
733
+ // }
734
+ //
735
+ return this.parseTickers(response, symbols);
736
+ }
737
+ parseTicker(ticker, market = undefined) {
738
+ //
739
+ // fetchTicker
740
+ //
741
+ // {
742
+ // "symbol": "BTC_USDC",
743
+ // "priceChange": "0",
744
+ // "priceChangePercent": "0",
745
+ // "weightedAvgPrice": "0",
746
+ // "lastPrice": "2.00",
747
+ // "lastQty": "10.000",
748
+ // "bestBidPrice": "1646.00",
749
+ // "bestBidQty": "10.000",
750
+ // "bestAskPrice": "1646.00",
751
+ // "bestAskQty": "10.000",
752
+ // "openPrice": "0.00",
753
+ // "highPrice": "0.00",
754
+ // "lowPrice": "0.00",
755
+ // "volume": "0.000",
756
+ // "quoteVolume": "0.00",
757
+ // "openTime": 1700142658697,
758
+ // "closeTime": 1700142658697,
759
+ // "openInterestBase": "1.000",
760
+ // "openInterestQuote": "0.43112300"
761
+ // }
762
+ //
763
+ // fetchTickers
764
+ //
765
+ // "ETH_USDC": {
766
+ // "priceChange": "0",
767
+ // "priceChangePercent": "0",
768
+ // "openPrice": "1646.15",
769
+ // "highPrice": "1646.15",
770
+ // "lowPrice": "1646.15",
771
+ // "lastPrice": "1646.15",
772
+ // "quoteVolume": "13.17",
773
+ // "volume": "0.008",
774
+ // "markPrice": "1645.15"
775
+ // }
776
+ //
777
+ // fetchMarkPrice
778
+ //
779
+ // {
780
+ // "markPrice": "100.00",
781
+ // "indexPrice": "100.00",
782
+ // "ltp": "101.34",
783
+ // "movingFundingRate": "0.08",
784
+ // "payoutFundingRate": "-0.03",
785
+ // "nextFundingPayout": 1711555532146
786
+ // }
787
+ //
788
+ const marketId = this.safeString(ticker, 'symbol');
789
+ if (marketId !== undefined) {
790
+ market = this.market(marketId);
791
+ }
792
+ const symbol = market['symbol'];
793
+ const open = this.safeString(ticker, 'openPrice');
794
+ const high = this.safeString(ticker, 'highPrice');
795
+ const low = this.safeString(ticker, 'lowPrice');
796
+ const close = this.safeString(ticker, 'lastPrice');
797
+ const quoteVolume = this.safeString(ticker, 'quoteVolume');
798
+ const baseVolume = this.safeString(ticker, 'volume');
799
+ const percentage = this.safeString(ticker, 'priceChangePercent');
800
+ const change = this.safeString(ticker, 'priceChange');
801
+ let ts = this.safeInteger(ticker, 'closeTime');
802
+ if (ts === 0) {
803
+ ts = undefined;
804
+ }
805
+ const datetime = this.iso8601(ts);
806
+ const bid = this.safeString(ticker, 'bestBidPrice');
807
+ const bidVolume = this.safeString(ticker, 'bestBidQty');
808
+ const ask = this.safeString(ticker, 'bestAskPrice');
809
+ const askVolume = this.safeString(ticker, 'bestAskQty');
810
+ return this.safeTicker({
811
+ 'symbol': symbol,
812
+ 'timestamp': ts,
813
+ 'datetime': datetime,
814
+ 'high': high,
815
+ 'low': low,
816
+ 'bid': bid,
817
+ 'bidVolume': bidVolume,
818
+ 'ask': ask,
819
+ 'askVolume': askVolume,
820
+ 'vwap': undefined,
821
+ 'open': open,
822
+ 'close': close,
823
+ 'last': undefined,
824
+ 'previousClose': undefined,
825
+ 'change': change,
826
+ 'percentage': percentage,
827
+ 'average': undefined,
828
+ 'baseVolume': baseVolume,
829
+ 'quoteVolume': quoteVolume,
830
+ 'markPrice': this.safeString(ticker, 'markPrice'),
831
+ 'indexPrice': this.safeString(ticker, 'indexPrice'),
832
+ 'info': ticker,
833
+ }, market);
834
+ }
835
+ /**
836
+ * @method
837
+ * @name defx#fetchOHLCV
838
+ * @see https://api-docs.defx.com/#54b71951-1472-4670-b5af-4c2dc41e73d0
839
+ * @description fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
840
+ * @param {string} symbol unified symbol of the market to fetch OHLCV data for
841
+ * @param {string} timeframe the length of time each candle represents
842
+ * @param {int} [since] timestamp in ms of the earliest candle to fetch
843
+ * @param {int} [limit] max=1000, max=100 when since is defined and is less than (now - (999 * (timeframe in ms)))
844
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
845
+ * @param {int} [params.until] the latest time in ms to fetch orders for
846
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
847
+ */
848
+ async fetchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
849
+ await this.loadMarkets();
850
+ const market = this.market(symbol);
851
+ const maxLimit = 1000;
852
+ if (limit === undefined) {
853
+ limit = maxLimit;
854
+ }
855
+ limit = Math.min(maxLimit, limit);
856
+ const request = {
857
+ 'symbol': market['id'],
858
+ 'interval': this.safeString(this.timeframes, timeframe, timeframe),
859
+ 'limit': limit,
860
+ };
861
+ const until = this.safeInteger2(params, 'until', 'till');
862
+ params = this.omit(params, ['until', 'till']);
863
+ request['endTime'] = (until === undefined) ? this.milliseconds() : until;
864
+ if (since === undefined) {
865
+ request['startTime'] = 0;
866
+ }
867
+ else {
868
+ request['startTime'] = since;
869
+ if (until === undefined) {
870
+ const timeframeInSeconds = this.parseTimeframe(timeframe);
871
+ const timeframeInMilliseconds = timeframeInSeconds * 1000;
872
+ const totalTimeframeInMilliseconds = limit * timeframeInMilliseconds;
873
+ request['endTime'] = this.sum(since, totalTimeframeInMilliseconds);
874
+ }
875
+ }
876
+ const response = await this.v1PublicGetSymbolsSymbolOhlc(this.extend(request, params));
877
+ //
878
+ // [
879
+ // {
880
+ // "symbol": "BTC_USDC",
881
+ // "open": "0.00",
882
+ // "high": "0.00",
883
+ // "low": "0.00",
884
+ // "close": "0.00",
885
+ // "volume": "0.000",
886
+ // "quoteAssetVolume": "0.00",
887
+ // "takerBuyAssetVolume": "0.000",
888
+ // "takerBuyQuoteAssetVolume": "0.00",
889
+ // "numberOfTrades": 0,
890
+ // "start": 1702453663894,
891
+ // "end": 1702453663894,
892
+ // "isClosed": true
893
+ // }
894
+ // ]
895
+ //
896
+ return this.parseOHLCVs(response, market, timeframe, since, limit);
897
+ }
898
+ parseOHLCV(ohlcv, market = undefined) {
899
+ // example response in fetchOHLCV
900
+ return [
901
+ this.safeInteger(ohlcv, 'start'),
902
+ this.safeNumber(ohlcv, 'open'),
903
+ this.safeNumber(ohlcv, 'high'),
904
+ this.safeNumber(ohlcv, 'low'),
905
+ this.safeNumber(ohlcv, 'close'),
906
+ this.safeNumber(ohlcv, 'volume'),
907
+ ];
908
+ }
909
+ /**
910
+ * @method
911
+ * @name defx#fetchTrades
912
+ * @description get the list of most recent trades for a particular symbol
913
+ * @see https://api-docs.defx.com/#5865452f-ea32-4f13-bfbc-03af5f5574fd
914
+ * @param {string} symbol unified symbol of the market to fetch trades for
915
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
916
+ * @param {int} [limit] the maximum amount of trades to fetch
917
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
918
+ * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
919
+ */
920
+ async fetchTrades(symbol, since = undefined, limit = undefined, params = {}) {
921
+ await this.loadMarkets();
922
+ const market = this.market(symbol);
923
+ const maxLimit = 50;
924
+ if (limit === undefined) {
925
+ limit = maxLimit;
926
+ }
927
+ limit = Math.min(maxLimit, limit);
928
+ const request = {
929
+ 'symbol': market['id'],
930
+ 'limit': limit,
931
+ };
932
+ const response = await this.v1PublicGetSymbolsSymbolTrades(this.extend(request, params));
933
+ //
934
+ // [
935
+ // {
936
+ // "buyerMaker": "false",
937
+ // "price": "2.0000",
938
+ // "qty": "10.0000",
939
+ // "symbol": "BTC_USDC",
940
+ // "timestamp": "1702453663894"
941
+ // }
942
+ // ]
943
+ //
944
+ return this.parseTrades(response, market, since, limit);
945
+ }
946
+ /**
947
+ * @method
948
+ * @name defx#fetchMyTrades
949
+ * @description fetch all trades made by the user
950
+ * @see https://api-docs.defx.com/#06b5b33c-2fc6-48de-896c-fc316f5871a7
951
+ * @param {string} symbol unified symbol of the market to fetch trades for
952
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
953
+ * @param {int} [limit] the maximum amount of trades to fetch
954
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
955
+ * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
956
+ */
957
+ async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
958
+ await this.loadMarkets();
959
+ const request = {};
960
+ if (symbol !== undefined) {
961
+ const market = this.market(symbol);
962
+ request['symbols'] = market['id'];
963
+ }
964
+ if (limit !== undefined) {
965
+ const maxLimit = 100;
966
+ limit = Math.min(maxLimit, limit);
967
+ request['pageSize'] = limit;
968
+ }
969
+ const response = await this.v1PrivateGetApiTrades(this.extend(request, params));
970
+ //
971
+ // {
972
+ // "data": [
973
+ // {
974
+ // "id": "0192f665-c05b-7ba0-a080-8b6c99083489",
975
+ // "orderId": "757730811259651728",
976
+ // "time": "2024-11-04T08:58:36.474Z",
977
+ // "symbol": "SOL_USDC",
978
+ // "side": "SELL",
979
+ // "price": "160.43600000",
980
+ // "qty": "1.00",
981
+ // "fee": "0.08823980",
982
+ // "role": "TAKER",
983
+ // "pnl": "0.00000000"
984
+ // }
985
+ // ]
986
+ // }
987
+ //
988
+ const data = this.safeList(response, 'data', []);
989
+ return this.parseTrades(data, undefined, since, limit);
990
+ }
991
+ parseTrade(trade, market = undefined) {
992
+ //
993
+ // fetchTrades
994
+ // {
995
+ // "buyerMaker": "false",
996
+ // "price": "2.0000",
997
+ // "qty": "10.0000",
998
+ // "symbol": "BTC_USDC",
999
+ // "timestamp": "1702453663894"
1000
+ // }
1001
+ //
1002
+ // fetchMyTrades
1003
+ // {
1004
+ // "id": "0192f665-c05b-7ba0-a080-8b6c99083489",
1005
+ // "orderId": "757730811259651728",
1006
+ // "time": "2024-11-04T08:58:36.474Z",
1007
+ // "symbol": "SOL_USDC",
1008
+ // "side": "SELL",
1009
+ // "price": "160.43600000",
1010
+ // "qty": "1.00",
1011
+ // "fee": "0.08823980",
1012
+ // "role": "TAKER",
1013
+ // "pnl": "0.00000000"
1014
+ // }
1015
+ //
1016
+ const time = this.safeString(trade, 'time');
1017
+ const timestamp = this.safeInteger(trade, 'timestamp', this.parse8601(time));
1018
+ const marketId = this.safeString(trade, 'symbol');
1019
+ market = this.safeMarket(marketId, market);
1020
+ const symbol = market['symbol'];
1021
+ const price = this.safeString(trade, 'price');
1022
+ const amount = this.safeString(trade, 'qty');
1023
+ const id = this.safeString(trade, 'id');
1024
+ const oid = this.safeString(trade, 'orderId');
1025
+ const takerOrMaker = this.safeStringLower(trade, 'role');
1026
+ const buyerMaker = this.safeBool(trade, 'buyerMaker');
1027
+ let side = this.safeStringLower(trade, 'side');
1028
+ if (buyerMaker !== undefined) {
1029
+ if (buyerMaker) {
1030
+ side = 'sell';
1031
+ }
1032
+ else {
1033
+ side = 'buy';
1034
+ }
1035
+ }
1036
+ return this.safeTrade({
1037
+ 'id': id,
1038
+ 'timestamp': timestamp,
1039
+ 'datetime': this.iso8601(timestamp),
1040
+ 'symbol': symbol,
1041
+ 'side': side,
1042
+ 'price': price,
1043
+ 'amount': amount,
1044
+ 'cost': undefined,
1045
+ 'order': oid,
1046
+ 'takerOrMaker': takerOrMaker,
1047
+ 'type': undefined,
1048
+ 'fee': {
1049
+ 'cost': this.safeString(trade, 'fee'),
1050
+ 'currency': 'USDC',
1051
+ },
1052
+ 'info': trade,
1053
+ }, market);
1054
+ }
1055
+ /**
1056
+ * @method
1057
+ * @name defx#fetchOrderBook
1058
+ * @description fetches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
1059
+ * @see https://api-docs.defx.com/#6c1a2971-8325-4e7d-9962-e0bfcaacf9c4
1060
+ * @param {string} symbol unified symbol of the market to fetch the order book for
1061
+ * @param {int} [limit] the maximum amount of order book entries to return
1062
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1063
+ * @param {string} [params.slab] slab from market.info.depthSlabs
1064
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
1065
+ */
1066
+ async fetchOrderBook(symbol, limit = undefined, params = {}) {
1067
+ await this.loadMarkets();
1068
+ const market = this.market(symbol);
1069
+ if (limit === undefined) {
1070
+ limit = 10; // limit must be one of [5, 10, 20]
1071
+ }
1072
+ const marketInfo = this.safeDict(market, 'info', {});
1073
+ const slab = this.safeList(marketInfo, 'depthSlabs', []);
1074
+ const request = {
1075
+ 'symbol': market['id'],
1076
+ 'level': limit,
1077
+ 'slab': this.safeString(slab, 0),
1078
+ };
1079
+ const response = await this.v1PublicGetSymbolsSymbolDepthLevelSlab(this.extend(request, params));
1080
+ //
1081
+ // {
1082
+ // "symbol": "ETH_USDC",
1083
+ // "level": "5",
1084
+ // "slab": "1",
1085
+ // "lastTradeTimestamp": "1708313446812",
1086
+ // "timestamp": "1708313446812",
1087
+ // "bids": [
1088
+ // {
1089
+ // "price": "1646.16",
1090
+ // "qty": "0.001"
1091
+ // }
1092
+ // ],
1093
+ // "asks": [
1094
+ // {
1095
+ // "price": "1646.16",
1096
+ // "qty": "0.001"
1097
+ // }
1098
+ // ]
1099
+ // }
1100
+ //
1101
+ const timestamp = this.safeInteger(response, 'timestamp');
1102
+ return this.parseOrderBook(response, symbol, timestamp, 'bids', 'asks', 'price', 'qty');
1103
+ }
1104
+ /**
1105
+ * @method
1106
+ * @name defx#fetchMarkPrice
1107
+ * @description fetches mark price for the market
1108
+ * @see https://api-docs.defx.com/#12168192-4e7b-4458-a001-e8b80961f0b7
1109
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
1110
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1111
+ * @param {string} [params.subType] "linear" or "inverse"
1112
+ * @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
1113
+ */
1114
+ async fetchMarkPrice(symbol, params = {}) {
1115
+ await this.loadMarkets();
1116
+ const market = this.market(symbol);
1117
+ const request = {
1118
+ 'symbol': market['id'],
1119
+ };
1120
+ const response = await this.v1PublicGetSymbolsSymbolPrices(this.extend(request, params));
1121
+ //
1122
+ // {
1123
+ // "markPrice": "100.00",
1124
+ // "indexPrice": "100.00",
1125
+ // "ltp": "101.34",
1126
+ // "movingFundingRate": "0.08",
1127
+ // "payoutFundingRate": "-0.03",
1128
+ // "nextFundingPayout": 1711555532146
1129
+ // }
1130
+ //
1131
+ return this.parseTicker(response, market);
1132
+ }
1133
+ /**
1134
+ * @method
1135
+ * @name defx#fetchFundingRate
1136
+ * @description fetch the current funding rate
1137
+ * @see https://api-docs.defx.com/#12168192-4e7b-4458-a001-e8b80961f0b7
1138
+ * @param {string} symbol unified market symbol
1139
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1140
+ * @returns {object} a [funding rate structure]{@link https://docs.ccxt.com/#/?id=funding-rate-structure}
1141
+ */
1142
+ async fetchFundingRate(symbol, params = {}) {
1143
+ await this.loadMarkets();
1144
+ const market = this.market(symbol);
1145
+ const request = {
1146
+ 'symbol': market['id'],
1147
+ };
1148
+ const response = await this.v1PublicGetSymbolsSymbolPrices(this.extend(request, params));
1149
+ //
1150
+ // {
1151
+ // "markPrice": "100.00",
1152
+ // "indexPrice": "100.00",
1153
+ // "ltp": "101.34",
1154
+ // "movingFundingRate": "0.08",
1155
+ // "payoutFundingRate": "-0.03",
1156
+ // "nextFundingPayout": 1711555532146
1157
+ // }
1158
+ //
1159
+ return this.parseFundingRate(response, market);
1160
+ }
1161
+ parseFundingRate(contract, market = undefined) {
1162
+ //
1163
+ // {
1164
+ // "markPrice": "100.00",
1165
+ // "indexPrice": "100.00",
1166
+ // "ltp": "101.34",
1167
+ // "movingFundingRate": "0.08",
1168
+ // "payoutFundingRate": "-0.03",
1169
+ // "nextFundingPayout": 1711555532146
1170
+ // }
1171
+ //
1172
+ const markPrice = this.safeNumber(contract, 'markPrice');
1173
+ const indexPrice = this.safeNumber(contract, 'indexPrice');
1174
+ const fundingRate = this.safeNumber(contract, 'payoutFundingRate');
1175
+ const fundingTime = this.safeInteger(contract, 'nextFundingPayout');
1176
+ return {
1177
+ 'info': contract,
1178
+ 'symbol': market['symbol'],
1179
+ 'markPrice': markPrice,
1180
+ 'indexPrice': indexPrice,
1181
+ 'interestRate': undefined,
1182
+ 'estimatedSettlePrice': undefined,
1183
+ 'timestamp': undefined,
1184
+ 'datetime': undefined,
1185
+ 'fundingRate': fundingRate,
1186
+ 'fundingTimestamp': fundingTime,
1187
+ 'fundingDatetime': this.iso8601(fundingTime),
1188
+ 'nextFundingRate': undefined,
1189
+ 'nextFundingTimestamp': undefined,
1190
+ 'nextFundingDatetime': undefined,
1191
+ 'previousFundingRate': undefined,
1192
+ 'previousFundingTimestamp': undefined,
1193
+ 'previousFundingDatetime': undefined,
1194
+ 'interval': undefined,
1195
+ };
1196
+ }
1197
+ /**
1198
+ * @method
1199
+ * @name defx#fetchBalance
1200
+ * @description query for balance and get the amount of funds available for trading or funds locked in orders
1201
+ * @see https://api-docs.defx.com/#26414338-14f7-40a1-b246-f8ea8571493f
1202
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1203
+ * @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
1204
+ */
1205
+ async fetchBalance(params = {}) {
1206
+ await this.loadMarkets();
1207
+ const response = await this.v1PrivateGetApiWalletBalance(params);
1208
+ //
1209
+ // {
1210
+ // "assets": [
1211
+ // {
1212
+ // "asset": "USDC",
1213
+ // "balance": "0.000"
1214
+ // }
1215
+ // ]
1216
+ // }
1217
+ //
1218
+ const data = this.safeList(response, 'assets');
1219
+ return this.parseBalance(data);
1220
+ }
1221
+ parseBalance(balances) {
1222
+ const result = {
1223
+ 'info': balances,
1224
+ };
1225
+ for (let i = 0; i < balances.length; i++) {
1226
+ const balance = balances[i];
1227
+ const code = this.safeCurrencyCode(this.safeString(balance, 'asset'));
1228
+ const account = this.account();
1229
+ account['total'] = this.safeString(balance, 'balance');
1230
+ result[code] = account;
1231
+ }
1232
+ return this.safeBalance(result);
1233
+ }
1234
+ /**
1235
+ * @method
1236
+ * @name defx#createOrder
1237
+ * @description create a trade order
1238
+ * @see https://api-docs.defx.com/#ba222d88-8856-4d3c-87a9-7cec07bb2622
1239
+ * @param {string} symbol unified symbol of the market to create an order in
1240
+ * @param {string} type 'market' or 'limit'
1241
+ * @param {string} side 'buy' or 'sell'
1242
+ * @param {float} amount how much of currency you want to trade in units of base currency
1243
+ * @param {float} [price] the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1244
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1245
+ * @param {float} [params.triggerPrice] The price a trigger order is triggered at
1246
+ * @param {string} [params.reduceOnly] for swap and future reduceOnly is a string 'true' or 'false' that cant be sent with close position set to true or in hedge mode. For spot margin and option reduceOnly is a boolean.
1247
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1248
+ */
1249
+ async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
1250
+ await this.loadMarkets();
1251
+ const market = this.market(symbol);
1252
+ const reduceOnly = this.safeBool2(params, 'reduceOnly', 'reduce_only');
1253
+ params = this.omit(params, ['reduceOnly', 'reduce_only']);
1254
+ const orderType = type.toUpperCase();
1255
+ const orderSide = side.toUpperCase();
1256
+ const request = {
1257
+ 'symbol': market['id'],
1258
+ 'side': orderSide,
1259
+ 'type': orderType,
1260
+ };
1261
+ const takeProfitPrice = this.safeString(params, 'takeProfitPrice');
1262
+ const triggerPrice = this.safeString2(params, 'stopPrice', 'triggerPrice');
1263
+ const isMarket = orderType === 'MARKET';
1264
+ const isLimit = orderType === 'LIMIT';
1265
+ const timeInForce = this.safeStringUpper(params, 'timeInForce');
1266
+ if (timeInForce !== undefined) {
1267
+ // GTC, IOC, FOK, AON
1268
+ request['timeInForce'] = timeInForce;
1269
+ }
1270
+ else {
1271
+ if (isLimit) {
1272
+ request['timeInForce'] = 'GTC';
1273
+ }
1274
+ }
1275
+ if (reduceOnly) {
1276
+ request['reduceOnly'] = reduceOnly;
1277
+ }
1278
+ const clientOrderId = this.safeString(params, 'clientOrderId');
1279
+ if (clientOrderId !== undefined) {
1280
+ request['newClientOrderId'] = clientOrderId;
1281
+ }
1282
+ if (triggerPrice !== undefined || takeProfitPrice !== undefined) {
1283
+ request['workingType'] = 'MARK_PRICE';
1284
+ if (takeProfitPrice !== undefined) {
1285
+ request['stopPrice'] = this.priceToPrecision(symbol, takeProfitPrice);
1286
+ if (isMarket) {
1287
+ request['type'] = 'TAKE_PROFIT_MARKET';
1288
+ }
1289
+ else {
1290
+ request['type'] = 'TAKE_PROFIT_LIMIT';
1291
+ }
1292
+ }
1293
+ else {
1294
+ request['stopPrice'] = this.priceToPrecision(symbol, triggerPrice);
1295
+ if (isMarket) {
1296
+ request['type'] = 'STOP_MARKET';
1297
+ }
1298
+ else {
1299
+ request['type'] = 'STOP_LIMIT';
1300
+ }
1301
+ }
1302
+ }
1303
+ if (isLimit && price !== undefined) {
1304
+ request['price'] = this.priceToPrecision(symbol, price);
1305
+ }
1306
+ request['quantity'] = this.amountToPrecision(symbol, amount);
1307
+ params = this.omit(params, ['clOrdID', 'clientOrderId', 'client_order_id', 'postOnly', 'timeInForce', 'stopPrice', 'triggerPrice', 'takeProfitPrice']);
1308
+ const response = await this.v1PrivatePostApiOrder(this.extend(request, params));
1309
+ //
1310
+ // {
1311
+ // "success": true,
1312
+ // "data": {
1313
+ // "orderId": "",
1314
+ // "clientOrderId": "",
1315
+ // "cumulativeQty": "",
1316
+ // "cumulativeQuote": "",
1317
+ // "executedQty": "",
1318
+ // "avgPrice": "",
1319
+ // "origQty": "",
1320
+ // "price": "",
1321
+ // "reduceOnly": true,
1322
+ // "side": "",
1323
+ // "status": "",
1324
+ // "symbol": "",
1325
+ // "timeInForce": "",
1326
+ // "type": "",
1327
+ // "workingType": ""
1328
+ // }
1329
+ // }
1330
+ //
1331
+ const data = this.safeDict(response, 'data');
1332
+ return this.parseOrder(data, market);
1333
+ }
1334
+ parseOrderStatus(status) {
1335
+ if (status !== undefined) {
1336
+ const statuses = {
1337
+ 'NEW': 'open',
1338
+ 'OPEN': 'open',
1339
+ 'CANCELLED': 'canceled',
1340
+ 'REJECTED': 'rejected',
1341
+ 'FILLED': 'closed',
1342
+ };
1343
+ return this.safeString(statuses, status, status);
1344
+ }
1345
+ return status;
1346
+ }
1347
+ parseOrder(order, market = undefined) {
1348
+ //
1349
+ // {
1350
+ // "orderId": "746472647227344528",
1351
+ // "createdAt": "2024-10-25T16:49:31.077Z",
1352
+ // "updatedAt": "2024-10-25T16:49:31.378Z",
1353
+ // "clientOrderId": "0192c495-49c3-71ee-b3d3-7442a2090807",
1354
+ // "reduceOnly": false,
1355
+ // "side": "SELL",
1356
+ // "status": "FILLED",
1357
+ // "symbol": "SOL_USDC",
1358
+ // "timeInForce": "GTC",
1359
+ // "type": "MARKET",
1360
+ // "origQty": "0.80",
1361
+ // "executedQty": "0.80",
1362
+ // "cumulativeQuote": "137.87440000",
1363
+ // "avgPrice": "172.34300000",
1364
+ // "totalPnL": "0.00000000",
1365
+ // "totalFee": "0.07583092",
1366
+ // "workingType": null,
1367
+ // "postOnly": false,
1368
+ // "linkedOrderParentType": null,
1369
+ // "isTriggered": false,
1370
+ // "slippagePercentage": "5"
1371
+ // }
1372
+ //
1373
+ const orderId = this.safeString(order, 'orderId');
1374
+ const clientOrderId = this.safeString(order, 'clientOrderId');
1375
+ const marketId = this.safeString(order, 'symbol');
1376
+ market = this.safeMarket(marketId, market);
1377
+ const symbol = market['symbol'];
1378
+ const price = this.safeString(order, 'price');
1379
+ const amount = this.safeString(order, 'origQty');
1380
+ const orderType = this.safeStringLower(order, 'type');
1381
+ const status = this.safeString(order, 'status');
1382
+ const side = this.safeStringLower(order, 'side');
1383
+ const filled = this.omitZero(this.safeString(order, 'executedQty'));
1384
+ const average = this.omitZero(this.safeString(order, 'avgPrice'));
1385
+ const timeInForce = this.safeStringLower(order, 'timeInForce');
1386
+ let takeProfitPrice = undefined;
1387
+ let triggerPrice = undefined;
1388
+ if (orderType !== undefined) {
1389
+ if (orderType.indexOf('take_profit') >= 0) {
1390
+ takeProfitPrice = this.safeString(order, 'stopPrice');
1391
+ }
1392
+ else {
1393
+ triggerPrice = this.safeString(order, 'stopPrice');
1394
+ }
1395
+ }
1396
+ const timestamp = this.parse8601(this.safeString(order, 'createdAt'));
1397
+ const lastTradeTimestamp = this.parse8601(this.safeString(order, 'updatedAt'));
1398
+ return this.safeOrder({
1399
+ 'id': orderId,
1400
+ 'clientOrderId': clientOrderId,
1401
+ 'timestamp': timestamp,
1402
+ 'datetime': this.iso8601(timestamp),
1403
+ 'lastTradeTimestamp': lastTradeTimestamp,
1404
+ 'lastUpdateTimestamp': lastTradeTimestamp,
1405
+ 'status': this.parseOrderStatus(status),
1406
+ 'symbol': symbol,
1407
+ 'type': orderType,
1408
+ 'timeInForce': timeInForce,
1409
+ 'postOnly': this.safeBool(order, 'postOnly'),
1410
+ 'reduceOnly': this.safeBool(order, 'reduceOnly'),
1411
+ 'side': side,
1412
+ 'price': price,
1413
+ 'triggerPrice': triggerPrice,
1414
+ 'takeProfitPrice': takeProfitPrice,
1415
+ 'stopLossPrice': undefined,
1416
+ 'average': average,
1417
+ 'amount': amount,
1418
+ 'filled': filled,
1419
+ 'remaining': undefined,
1420
+ 'cost': undefined,
1421
+ 'trades': undefined,
1422
+ 'fee': {
1423
+ 'cost': this.safeString(order, 'totalFee'),
1424
+ 'currency': 'USDC',
1425
+ },
1426
+ 'info': order,
1427
+ }, market);
1428
+ }
1429
+ /**
1430
+ * @method
1431
+ * @name defx#cancelOrder
1432
+ * @see https://api-docs.defx.com/#09186f23-f8d1-4993-acf4-9974d8a6ddb0
1433
+ * @description cancels an open order
1434
+ * @param {string} id order id
1435
+ * @param {string} symbol unified symbol of the market the order was made in
1436
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1437
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1438
+ */
1439
+ async cancelOrder(id, symbol = undefined, params = {}) {
1440
+ await this.loadMarkets();
1441
+ const request = {
1442
+ 'orderId': id,
1443
+ 'idType': 'orderId',
1444
+ };
1445
+ const clientOrderId = this.safeStringN(params, ['clOrdID', 'clientOrderId', 'client_order_id']);
1446
+ const isByClientOrder = clientOrderId !== undefined;
1447
+ if (isByClientOrder) {
1448
+ if (symbol === undefined) {
1449
+ throw new ArgumentsRequired(this.id + ' cancelOrder() requires a symbol argument');
1450
+ }
1451
+ const market = this.market(symbol);
1452
+ request['orderId'] = clientOrderId;
1453
+ request['idType'] = 'clientOrderId';
1454
+ request['symbol'] = market['id'];
1455
+ }
1456
+ params = this.omit(params, ['clOrdID', 'clientOrderId', 'client_order_id']);
1457
+ const response = await this.v1PrivateDeleteApiOrderOrderId(this.extend(request, params));
1458
+ //
1459
+ // {
1460
+ // "success": true
1461
+ // }
1462
+ //
1463
+ const extendParams = { 'symbol': symbol };
1464
+ if (isByClientOrder) {
1465
+ extendParams['clientOrderId'] = clientOrderId;
1466
+ }
1467
+ else {
1468
+ extendParams['id'] = id;
1469
+ }
1470
+ return this.extend(this.parseOrder(response), extendParams);
1471
+ }
1472
+ /**
1473
+ * @method
1474
+ * @name defx#cancelAllOrders
1475
+ * @description cancel all open orders
1476
+ * @see https://api-docs.defx.com/#db5531da-3692-4a53-841f-6ad6495f823a
1477
+ * @param {string} symbol unified market symbol, only orders in the market of this symbol are cancelled when symbol is not undefined
1478
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1479
+ * @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1480
+ */
1481
+ async cancelAllOrders(symbol = undefined, params = {}) {
1482
+ await this.loadMarkets();
1483
+ const market = this.market(symbol);
1484
+ const request = {
1485
+ 'symbols': [market['id']],
1486
+ };
1487
+ const response = await this.v1PrivateDeleteApiOrdersAllOpen(this.extend(request, params));
1488
+ //
1489
+ // {
1490
+ // "data": {
1491
+ // "msg": "The operation of cancel all open order is done."
1492
+ // }
1493
+ // }
1494
+ //
1495
+ return [this.safeOrder({ 'info': response })];
1496
+ }
1497
+ /**
1498
+ * @method
1499
+ * @name defx#fetchPosition
1500
+ * @description fetch data on a single open contract trade position
1501
+ * @see https://api-docs.defx.com/#d89dbb86-9aba-4f59-ac5d-a97ff25ea80e
1502
+ * @param {string} symbol unified market symbol of the market the position is held in, default is undefined
1503
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1504
+ * @returns {object} a [position structure]{@link https://docs.ccxt.com/#/?id=position-structure}
1505
+ */
1506
+ async fetchPosition(symbol, params = {}) {
1507
+ if (symbol === undefined) {
1508
+ throw new ArgumentsRequired(this.id + ' fetchPosition() requires a symbol argument');
1509
+ }
1510
+ await this.loadMarkets();
1511
+ const market = this.market(symbol);
1512
+ const request = {
1513
+ 'symbol': market['id'],
1514
+ };
1515
+ const response = await this.v1PrivateGetApiPositionActive(this.extend(request, params));
1516
+ //
1517
+ // {
1518
+ // "data": [
1519
+ // {
1520
+ // "positionId": "0192c495-4a68-70ee-9081-9d368bd16dfc",
1521
+ // "symbol": "SOL_USDC",
1522
+ // "positionSide": "SHORT",
1523
+ // "entryPrice": "172.34300000",
1524
+ // "quantity": "0.80",
1525
+ // "marginAmount": "20.11561173",
1526
+ // "marginAsset": "USDC",
1527
+ // "pnl": "0.00000000"
1528
+ // }
1529
+ // ]
1530
+ // }
1531
+ //
1532
+ const data = this.safeList(response, 'data', []);
1533
+ const first = this.safeDict(data, 0, {});
1534
+ return this.parsePosition(first, market);
1535
+ }
1536
+ /**
1537
+ * @method
1538
+ * @name defx#fetchPositions
1539
+ * @description fetch all open positions
1540
+ * @see https://api-docs.defx.com/#d89dbb86-9aba-4f59-ac5d-a97ff25ea80e
1541
+ * @param {string[]} [symbols] list of unified market symbols
1542
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1543
+ * @returns {object[]} a list of [position structure]{@link https://docs.ccxt.com/#/?id=position-structure}
1544
+ */
1545
+ async fetchPositions(symbols = undefined, params = {}) {
1546
+ await this.loadMarkets();
1547
+ const response = await this.v1PrivateGetApiPositionActive(params);
1548
+ //
1549
+ // {
1550
+ // "data": [
1551
+ // {
1552
+ // "positionId": "0192c495-4a68-70ee-9081-9d368bd16dfc",
1553
+ // "symbol": "SOL_USDC",
1554
+ // "positionSide": "SHORT",
1555
+ // "entryPrice": "172.34300000",
1556
+ // "quantity": "0.80",
1557
+ // "marginAmount": "20.11561173",
1558
+ // "marginAsset": "USDC",
1559
+ // "pnl": "0.00000000"
1560
+ // }
1561
+ // ]
1562
+ // }
1563
+ //
1564
+ const positions = this.safeList(response, 'data', []);
1565
+ return this.parsePositions(positions, symbols);
1566
+ }
1567
+ parsePosition(position, market = undefined) {
1568
+ //
1569
+ // {
1570
+ // "positionId": "0192c495-4a68-70ee-9081-9d368bd16dfc",
1571
+ // "symbol": "SOL_USDC",
1572
+ // "positionSide": "SHORT",
1573
+ // "entryPrice": "172.34300000",
1574
+ // "quantity": "0.80",
1575
+ // "marginAmount": "20.11561173",
1576
+ // "marginAsset": "USDC",
1577
+ // "pnl": "0.00000000"
1578
+ // }
1579
+ //
1580
+ const marketId = this.safeString(position, 'symbol');
1581
+ market = this.safeMarket(marketId, market);
1582
+ const size = Precise.stringAbs(this.safeString(position, 'quantity'));
1583
+ const side = this.safeStringLower(position, 'positionSide');
1584
+ const unrealisedPnl = this.omitZero(this.safeString(position, 'pnl'));
1585
+ const entryPrice = this.omitZero(this.safeString(position, 'entryPrice'));
1586
+ const initialMargin = this.safeString(position, 'marginAmount');
1587
+ return this.safePosition({
1588
+ 'info': position,
1589
+ 'id': this.safeString(position, 'positionId'),
1590
+ 'symbol': market['symbol'],
1591
+ 'timestamp': undefined,
1592
+ 'datetime': undefined,
1593
+ 'lastUpdateTimestamp': undefined,
1594
+ 'initialMargin': this.parseNumber(initialMargin),
1595
+ 'initialMarginPercentage': undefined,
1596
+ 'maintenanceMargin': undefined,
1597
+ 'maintenanceMarginPercentage': undefined,
1598
+ 'entryPrice': this.parseNumber(entryPrice),
1599
+ 'notional': undefined,
1600
+ 'leverage': undefined,
1601
+ 'unrealizedPnl': this.parseNumber(unrealisedPnl),
1602
+ 'realizedPnl': undefined,
1603
+ 'contracts': this.parseNumber(size),
1604
+ 'contractSize': this.safeNumber(market, 'contractSize'),
1605
+ 'marginRatio': undefined,
1606
+ 'liquidationPrice': undefined,
1607
+ 'markPrice': undefined,
1608
+ 'lastPrice': undefined,
1609
+ 'collateral': undefined,
1610
+ 'marginMode': undefined,
1611
+ 'side': side,
1612
+ 'percentage': undefined,
1613
+ 'stopLossPrice': undefined,
1614
+ 'takeProfitPrice': undefined,
1615
+ 'hedged': undefined,
1616
+ });
1617
+ }
1618
+ /**
1619
+ * @method
1620
+ * @name defx#fetchOrder
1621
+ * @description fetches information on an order made by the user
1622
+ * @see https://api-docs.defx.com/#44f82dd5-26b3-4e1f-b4aa-88ceddd65237
1623
+ * @param {string} id the order id
1624
+ * @param {string} symbol unified symbol of the market the order was made in
1625
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1626
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1627
+ */
1628
+ async fetchOrder(id, symbol = undefined, params = {}) {
1629
+ await this.loadMarkets();
1630
+ const request = {
1631
+ 'orderId': id,
1632
+ 'idType': 'orderId',
1633
+ };
1634
+ const clientOrderId = this.safeStringN(params, ['clOrdID', 'clientOrderId', 'client_order_id']);
1635
+ params = this.omit(params, ['clOrdID', 'clientOrderId', 'client_order_id']);
1636
+ if (clientOrderId !== undefined) {
1637
+ if (symbol === undefined) {
1638
+ throw new ArgumentsRequired(this.id + ' fetchOrder() requires a symbol argument');
1639
+ }
1640
+ const market = this.market(symbol);
1641
+ request['orderId'] = clientOrderId;
1642
+ request['idType'] = 'clientOrderId';
1643
+ request['symbol'] = market['id'];
1644
+ }
1645
+ const response = await this.v1PrivateGetApiOrderOrderId(this.extend(request, params));
1646
+ //
1647
+ // {
1648
+ // "success": true,
1649
+ // "data": {
1650
+ // "orderId": "555068654076559792",
1651
+ // "createdAt": "2024-05-08T05:45:42.148Z",
1652
+ // "updatedAt": "2024-05-08T05:45:42.166Z",
1653
+ // "clientOrderId": "dummyClientOrderId",
1654
+ // "reduceOnly": false,
1655
+ // "side": "SELL",
1656
+ // "status": "REJECTED",
1657
+ // "symbol": "BTC_USDC",
1658
+ // "timeInForce": "GTC",
1659
+ // "type": "TAKE_PROFIT_MARKET",
1660
+ // "origQty": "1.000",
1661
+ // "executedQty": "0.000",
1662
+ // "cumulativeQuote": "0.00",
1663
+ // "avgPrice": "0.00",
1664
+ // "stopPrice": "65000.00",
1665
+ // "totalPnL": "0.00",
1666
+ // "workingType": "MARK_PRICE",
1667
+ // "postOnly": false
1668
+ // }
1669
+ // }
1670
+ //
1671
+ const data = this.safeDict(response, 'data');
1672
+ return this.parseOrder(data);
1673
+ }
1674
+ /**
1675
+ * @method
1676
+ * @name defx#fetchOrders
1677
+ * @description fetches information on multiple orders made by the user
1678
+ * @see https://api-docs.defx.com/#ab200038-8acb-4170-b05e-4fcb4cc13751
1679
+ * @param {string} symbol unified market symbol
1680
+ * @param {int} [since] the earliest time in ms to fetch open orders for
1681
+ * @param {int} [limit] the maximum number of open order structures to retrieve
1682
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1683
+ * @param {int} [params.until] the latest time in ms to fetch orders for
1684
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1685
+ */
1686
+ async fetchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1687
+ await this.loadMarkets();
1688
+ const request = {};
1689
+ if (symbol !== undefined) {
1690
+ const market = this.market(symbol);
1691
+ request['symbols'] = market['id'];
1692
+ }
1693
+ const until = this.safeInteger(params, 'until');
1694
+ if (until !== undefined) {
1695
+ params = this.omit(params, 'until');
1696
+ request['end'] = this.iso8601(until);
1697
+ }
1698
+ if (since !== undefined) {
1699
+ request['start'] = this.iso8601(since);
1700
+ }
1701
+ if (limit !== undefined) {
1702
+ const maxLimit = 100;
1703
+ limit = Math.min(maxLimit, limit);
1704
+ request['pageSize'] = limit;
1705
+ }
1706
+ const response = await this.v1PrivateGetApiOrders(this.extend(request, params));
1707
+ //
1708
+ // {
1709
+ // "data": [
1710
+ // {
1711
+ // "orderId": "746472647227344528",
1712
+ // "createdAt": "2024-10-25T16:49:31.077Z",
1713
+ // "updatedAt": "2024-10-25T16:49:31.378Z",
1714
+ // "clientOrderId": "0192c495-49c3-71ee-b3d3-7442a2090807",
1715
+ // "reduceOnly": false,
1716
+ // "side": "SELL",
1717
+ // "status": "FILLED",
1718
+ // "symbol": "SOL_USDC",
1719
+ // "timeInForce": "GTC",
1720
+ // "type": "MARKET",
1721
+ // "origQty": "0.80",
1722
+ // "executedQty": "0.80",
1723
+ // "cumulativeQuote": "137.87440000",
1724
+ // "avgPrice": "172.34300000",
1725
+ // "totalPnL": "0.00000000",
1726
+ // "totalFee": "0.07583092",
1727
+ // "workingType": null,
1728
+ // "postOnly": false,
1729
+ // "linkedOrderParentType": null,
1730
+ // "isTriggered": false,
1731
+ // "slippagePercentage": 5
1732
+ // }
1733
+ // ]
1734
+ // }
1735
+ //
1736
+ const data = this.safeList(response, 'data', []);
1737
+ return this.parseOrders(data, undefined, since, limit);
1738
+ }
1739
+ /**
1740
+ * @method
1741
+ * @name defx#fetchOpenOrders
1742
+ * @description fetch all unfilled currently open orders
1743
+ * @see https://api-docs.defx.com/#ab200038-8acb-4170-b05e-4fcb4cc13751
1744
+ * @param {string} symbol unified market symbol
1745
+ * @param {int} [since] the earliest time in ms to fetch open orders for
1746
+ * @param {int} [limit] the maximum number of open order structures to retrieve
1747
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1748
+ * @param {int} [params.until] the latest time in ms to fetch orders for
1749
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1750
+ */
1751
+ async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1752
+ const req = {
1753
+ 'statuses': 'OPEN',
1754
+ };
1755
+ return await this.fetchOrders(symbol, since, limit, this.extend(req, params));
1756
+ }
1757
+ /**
1758
+ * @method
1759
+ * @name defx#fetchClosedOrders
1760
+ * @description fetches information on multiple closed orders made by the user
1761
+ * @see https://api-docs.defx.com/#ab200038-8acb-4170-b05e-4fcb4cc13751
1762
+ * @param {string} symbol unified market symbol
1763
+ * @param {int} [since] the earliest time in ms to fetch open orders for
1764
+ * @param {int} [limit] the maximum number of open order structures to retrieve
1765
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1766
+ * @param {int} [params.until] the latest time in ms to fetch orders for
1767
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1768
+ */
1769
+ async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1770
+ const req = {
1771
+ 'statuses': 'FILLED',
1772
+ };
1773
+ return await this.fetchOrders(symbol, since, limit, this.extend(req, params));
1774
+ }
1775
+ /**
1776
+ * @method
1777
+ * @name defx#fetchCanceledOrders
1778
+ * @description fetches information on multiple canceled orders made by the user
1779
+ * @see https://api-docs.defx.com/#ab200038-8acb-4170-b05e-4fcb4cc13751
1780
+ * @param {string} symbol unified market symbol
1781
+ * @param {int} [since] the earliest time in ms to fetch open orders for
1782
+ * @param {int} [limit] the maximum number of open order structures to retrieve
1783
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1784
+ * @param {int} [params.until] the latest time in ms to fetch orders for
1785
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1786
+ */
1787
+ async fetchCanceledOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1788
+ const req = {
1789
+ 'statuses': 'CANCELED',
1790
+ };
1791
+ return await this.fetchOrders(symbol, since, limit, this.extend(req, params));
1792
+ }
1793
+ /**
1794
+ * @method
1795
+ * @name defx#closePosition
1796
+ * @description closes an open position for a market
1797
+ * @see https://api-docs.defx.com/#b2c08074-c4d9-4e50-b637-0d6c498fa29e
1798
+ * @param {string} symbol unified CCXT market symbol
1799
+ * @param {string} [side] one-way mode: 'buy' or 'sell', hedge-mode: 'long' or 'short'
1800
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1801
+ * @param {string} [params.positionId] the position id you want to close
1802
+ * @param {string} [params.type] 'MARKET' or 'LIMIT'
1803
+ * @param {string} [params.quantity] how much of currency you want to trade in units of base currency
1804
+ * @param {string} [params.price] the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1805
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1806
+ */
1807
+ async closePosition(symbol, side = undefined, params = {}) {
1808
+ await this.loadMarkets();
1809
+ const positionId = this.safeString(params, 'positionId');
1810
+ if (positionId === undefined) {
1811
+ throw new ArgumentsRequired(this.id + ' closePosition() requires a positionId');
1812
+ }
1813
+ const type = this.safeStringUpper(params, 'type');
1814
+ if (type === undefined) {
1815
+ throw new ArgumentsRequired(this.id + ' closePosition() requires a type');
1816
+ }
1817
+ const quantity = this.safeString(params, 'quantity');
1818
+ if (quantity === undefined) {
1819
+ throw new ArgumentsRequired(this.id + ' closePosition() requires a quantity');
1820
+ }
1821
+ const request = {
1822
+ 'positionId': positionId,
1823
+ 'type': type,
1824
+ 'quantity': quantity,
1825
+ };
1826
+ if (type !== 'MARKET') {
1827
+ const price = this.safeString(params, 'price');
1828
+ if (price === undefined) {
1829
+ throw new ArgumentsRequired(this.id + ' closePosition() requires a price');
1830
+ }
1831
+ request['price'] = price;
1832
+ }
1833
+ params = this.omit(params, ['positionId', 'type', 'quantity', 'price']);
1834
+ const response = await this.v1PrivateDeleteApiPositionPositionId(this.extend(request, params));
1835
+ //
1836
+ // {}
1837
+ //
1838
+ return response;
1839
+ }
1840
+ /**
1841
+ * @method
1842
+ * @name defx#closeAllPositions
1843
+ * @description closes all open positions for a market type
1844
+ * @see https://api-docs.defx.com/#d6f63b43-100e-47a9-998c-8b6c0c72d204
1845
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1846
+ * @returns {object[]} A list of [position structures]{@link https://docs.ccxt.com/#/?id=position-structure}
1847
+ */
1848
+ async closeAllPositions(params = {}) {
1849
+ await this.loadMarkets();
1850
+ const response = await this.v1PrivateDeleteApiPositionAll(params);
1851
+ //
1852
+ // {
1853
+ // "data": [
1854
+ // {
1855
+ // "positionId": "d6ca1a27-28ad-47ae-b244-0bda5ac37b2b",
1856
+ // "success": true
1857
+ // }
1858
+ // ]
1859
+ // }
1860
+ //
1861
+ const data = this.safeList(response, 'data', []);
1862
+ return this.parsePositions(data, undefined, params);
1863
+ }
1864
+ /**
1865
+ * @method
1866
+ * @name defx#fetchLedger
1867
+ * @description fetch the history of changes, actions done by the user or operations that altered the balance of the user
1868
+ * @see https://api-docs.defx.com/#38cc8974-794f-48c0-b959-db045a0ee565
1869
+ * @param {string} [code] unified currency code
1870
+ * @param {int} [since] timestamp in ms of the earliest ledger entry
1871
+ * @param {int} [limit] max number of ledger entries to return
1872
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1873
+ * @param {int} [params.until] timestamp in ms of the latest ledger entry
1874
+ * @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [available parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
1875
+ * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger}
1876
+ */
1877
+ async fetchLedger(code = undefined, since = undefined, limit = undefined, params = {}) {
1878
+ await this.loadMarkets();
1879
+ let paginate = false;
1880
+ [paginate, params] = this.handleOptionAndParams(params, 'fetchLedger', 'paginate');
1881
+ if (paginate) {
1882
+ return await this.fetchPaginatedCallDynamic('fetchLedger', code, since, limit, params);
1883
+ }
1884
+ const request = {};
1885
+ if (since !== undefined) {
1886
+ request['start'] = since;
1887
+ }
1888
+ else {
1889
+ request['start'] = 0;
1890
+ }
1891
+ const until = this.safeInteger(params, 'until');
1892
+ if (until !== undefined) {
1893
+ params = this.omit(params, 'until');
1894
+ request['end'] = until;
1895
+ }
1896
+ else {
1897
+ request['end'] = this.milliseconds();
1898
+ }
1899
+ const response = await this.v1PrivateGetApiWalletTransactions(this.extend(request, params));
1900
+ const data = this.safeList(response, 'transactions', []);
1901
+ return this.parseLedger(data, undefined, since, limit);
1902
+ }
1903
+ parseLedgerEntry(item, currency = undefined) {
1904
+ //
1905
+ // {
1906
+ // "id": "01JCSZS6H5VQND3GF5P98SJ29C",
1907
+ // "timestamp": 1731744012054,
1908
+ // "type": "FundingFee",
1909
+ // "amount": "0.02189287",
1910
+ // "asset": "USDC",
1911
+ // "operation": "CREDIT"
1912
+ // }
1913
+ //
1914
+ const amount = this.safeString(item, 'amount');
1915
+ const currencyId = this.safeString(item, 'asset');
1916
+ const code = this.safeCurrencyCode(currencyId, currency);
1917
+ currency = this.safeCurrency(currencyId, currency);
1918
+ const timestamp = this.safeInteger(item, 'timestamp');
1919
+ const type = this.safeString(item, 'type');
1920
+ return this.safeLedgerEntry({
1921
+ 'info': item,
1922
+ 'id': this.safeString(item, 'id'),
1923
+ 'direction': undefined,
1924
+ 'account': undefined,
1925
+ 'referenceAccount': undefined,
1926
+ 'referenceId': undefined,
1927
+ 'type': this.parseLedgerEntryType(type),
1928
+ 'currency': code,
1929
+ 'amount': this.parseNumber(amount),
1930
+ 'timestamp': timestamp,
1931
+ 'datetime': this.iso8601(timestamp),
1932
+ 'before': undefined,
1933
+ 'after': undefined,
1934
+ 'status': undefined,
1935
+ 'fee': undefined,
1936
+ }, currency);
1937
+ }
1938
+ parseLedgerEntryType(type) {
1939
+ const ledgerType = {
1940
+ 'FundingFee': 'fee',
1941
+ 'FeeRebate': 'fee',
1942
+ 'FeeKickback': 'fee',
1943
+ 'RealizedPnl': 'trade',
1944
+ 'LiquidationClearance': 'trade',
1945
+ 'Transfer': 'transfer',
1946
+ 'ReferralPayout': 'referral',
1947
+ 'Commission': 'commission',
1948
+ };
1949
+ return this.safeString(ledgerType, type, type);
1950
+ }
1951
+ /**
1952
+ * @method
1953
+ * @name defx#withdraw
1954
+ * @description make a withdrawal
1955
+ * @see https://api-docs.defx.com/#2600f503-63ed-4672-b8f6-69ea5f03203b
1956
+ * @param {string} code unified currency code
1957
+ * @param {float} amount the amount to withdraw
1958
+ * @param {string} address the address to withdraw to
1959
+ * @param {string} tag
1960
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1961
+ * @returns {object} a [transaction structure]{@link https://docs.ccxt.com/#/?id=transaction-structure}
1962
+ */
1963
+ async withdraw(code, amount, address, tag = undefined, params = {}) {
1964
+ await this.loadMarkets();
1965
+ const currency = this.currency(code);
1966
+ const request = {
1967
+ 'amount': this.currencyToPrecision(code, amount),
1968
+ 'asset': currency['id'],
1969
+ // 'network': 'ARB_SEPOLIA',
1970
+ // 'chainId': '421614',
1971
+ };
1972
+ const response = await this.v1PrivatePostApiTransfersBridgeWithdrawal(this.extend(request, params));
1973
+ //
1974
+ // {
1975
+ // "transactionId": "0x301e5851e5aefa733abfbc8b30817ca3b61601e0ddf1df8c59656fb888b0bc9c"
1976
+ // }
1977
+ //
1978
+ return this.parseTransaction(response, currency);
1979
+ }
1980
+ parseTransaction(transaction, currency = undefined) {
1981
+ //
1982
+ // withdraw
1983
+ //
1984
+ // {
1985
+ // "transactionId": "0x301e5851e5aefa733abfbc8b30817ca3b61601e0ddf1df8c59656fb888b0bc9c"
1986
+ // }
1987
+ //
1988
+ const txid = this.safeString(transaction, 'transactionId');
1989
+ return {
1990
+ 'info': transaction,
1991
+ 'id': undefined,
1992
+ 'txid': txid,
1993
+ 'timestamp': undefined,
1994
+ 'datetime': undefined,
1995
+ 'network': undefined,
1996
+ 'address': undefined,
1997
+ 'addressTo': undefined,
1998
+ 'addressFrom': undefined,
1999
+ 'tag': undefined,
2000
+ 'tagTo': undefined,
2001
+ 'tagFrom': undefined,
2002
+ 'type': undefined,
2003
+ 'amount': undefined,
2004
+ 'currency': this.safeCurrencyCode(undefined, currency),
2005
+ 'status': undefined,
2006
+ 'updated': undefined,
2007
+ 'internal': undefined,
2008
+ 'comment': undefined,
2009
+ 'fee': undefined,
2010
+ };
2011
+ }
2012
+ /**
2013
+ * @method
2014
+ * @name defx#setLeverage
2015
+ * @description set the level of leverage for a market
2016
+ * @see https://api-docs.defx.com/#4cb4ecc4-6c61-4194-8353-be67faaf7ca7
2017
+ * @param {float} leverage the rate of leverage
2018
+ * @param {string} symbol unified market symbol
2019
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
2020
+ * @returns {object} response from the exchange
2021
+ */
2022
+ async setLeverage(leverage, symbol = undefined, params = {}) {
2023
+ if (symbol === undefined) {
2024
+ throw new ArgumentsRequired(this.id + ' setLeverage() requires a symbol argument');
2025
+ }
2026
+ await this.loadMarkets();
2027
+ const request = {
2028
+ 'leverage': this.numberToString(leverage),
2029
+ };
2030
+ const market = this.market(symbol);
2031
+ request['symbol'] = market['id'];
2032
+ const response = await this.v1PrivatePostApiUsersMetadataLeverage(this.extend(request, params));
2033
+ //
2034
+ // {
2035
+ // "success": true,
2036
+ // "data": {
2037
+ // "leverage": "11",
2038
+ // "symbol": "BTC_USDC"
2039
+ // }
2040
+ // }
2041
+ //
2042
+ const data = this.safeDict(response, 'data', {});
2043
+ return this.parseLeverage(data, market);
2044
+ }
2045
+ parseLeverage(leverage, market = undefined) {
2046
+ //
2047
+ // "data": {
2048
+ // "leverage": "11",
2049
+ // "symbol": "BTC_USDC"
2050
+ // }
2051
+ //
2052
+ const marketId = this.safeString(leverage, 'symbol');
2053
+ const leverageValue = this.safeInteger(leverage, 'leverage');
2054
+ return {
2055
+ 'info': leverage,
2056
+ 'symbol': this.safeSymbol(marketId, market),
2057
+ 'marginMode': undefined,
2058
+ 'longLeverage': leverageValue,
2059
+ 'shortLeverage': leverageValue,
2060
+ };
2061
+ }
2062
+ nonce() {
2063
+ return this.milliseconds();
2064
+ }
2065
+ sign(path, section = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
2066
+ const version = section[0];
2067
+ const access = section[1];
2068
+ const pathWithParams = this.implodeParams(path, params);
2069
+ let url = this.implodeHostname(this.urls['api'][access]);
2070
+ url += '/' + version + '/';
2071
+ params = this.omit(params, this.extractParams(path));
2072
+ params = this.keysort(params);
2073
+ if (access === 'public') {
2074
+ url += 'open/' + pathWithParams;
2075
+ if (Object.keys(params).length) {
2076
+ url += '?' + this.rawencode(params);
2077
+ }
2078
+ }
2079
+ else {
2080
+ this.checkRequiredCredentials();
2081
+ headers = { 'X-DEFX-SOURCE': 'ccxt' };
2082
+ url += 'auth/' + pathWithParams;
2083
+ const nonce = this.milliseconds().toString();
2084
+ let payload = nonce;
2085
+ if (method === 'GET' || path === 'api/order/{orderId}') {
2086
+ payload += this.rawencode(params);
2087
+ if (Object.keys(params).length) {
2088
+ url += '?' + this.rawencode(params);
2089
+ }
2090
+ }
2091
+ else {
2092
+ if (params !== undefined) {
2093
+ body = this.json(params);
2094
+ payload += body;
2095
+ }
2096
+ headers['Content-Type'] = 'application/json';
2097
+ }
2098
+ const signature = this.hmac(this.encode(payload), this.encode(this.secret), sha256);
2099
+ headers['X-DEFX-APIKEY'] = this.apiKey;
2100
+ headers['X-DEFX-TIMESTAMP'] = nonce;
2101
+ headers['X-DEFX-SIGNATURE'] = signature;
2102
+ }
2103
+ return { 'url': url, 'method': method, 'body': body, 'headers': headers };
2104
+ }
2105
+ handleErrors(httpCode, reason, url, method, headers, body, response, requestHeaders, requestBody) {
2106
+ if (!response) {
2107
+ return undefined; // fallback to default error handler
2108
+ }
2109
+ // {"errorCode":404,"errorMessage":"Not Found"}
2110
+ // {"msg":"Missing auth signature","code":"missing_auth_signature"}
2111
+ // {"success":false,"err":{"msg":"Invalid order id","code":"invalid_order_id"}}
2112
+ const success = this.safeBool(response, 'success');
2113
+ const err = this.safeDict(response, 'err', response);
2114
+ const errorCode = this.safeString2(err, 'errorCode', 'code');
2115
+ if (!success) {
2116
+ const feedback = this.id + ' ' + this.json(response);
2117
+ this.throwBroadlyMatchedException(this.exceptions['broad'], body, feedback);
2118
+ this.throwExactlyMatchedException(this.exceptions['exact'], errorCode, feedback);
2119
+ }
2120
+ return undefined;
2121
+ }
2122
+ defaultNetworkCodeForCurrency(code) {
2123
+ const currencyItem = this.currency(code);
2124
+ const networks = currencyItem['networks'];
2125
+ const networkKeys = Object.keys(networks);
2126
+ for (let i = 0; i < networkKeys.length; i++) {
2127
+ const network = networkKeys[i];
2128
+ if (network === 'ETH') {
2129
+ return network;
2130
+ }
2131
+ }
2132
+ // if it was not returned according to above options, then return the first network of currency
2133
+ return this.safeValue(networkKeys, 0);
2134
+ }
2135
+ setSandboxMode(enable) {
2136
+ super.setSandboxMode(enable);
2137
+ this.options['sandboxMode'] = enable;
2138
+ }
2139
+ }