ccxt 4.5.62 → 4.5.64

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 (900) hide show
  1. package/README.md +7 -8
  2. package/dist/ccxt.browser.min.js +4 -4
  3. package/dist/cjs/ccxt.js +11 -12
  4. package/dist/cjs/src/abstract/aftermath.js +1 -1
  5. package/dist/cjs/src/abstract/alpaca.js +1 -1
  6. package/dist/cjs/src/abstract/apex.js +1 -1
  7. package/dist/cjs/src/abstract/aster.js +1 -1
  8. package/dist/cjs/src/abstract/backpack.js +1 -1
  9. package/dist/cjs/src/abstract/bigone.js +1 -1
  10. package/dist/cjs/src/abstract/binance.js +1 -1
  11. package/dist/cjs/src/abstract/bingx.js +1 -1
  12. package/dist/cjs/src/abstract/bit2c.js +1 -1
  13. package/dist/cjs/src/abstract/bitbank.js +1 -1
  14. package/dist/cjs/src/abstract/bitbns.js +1 -1
  15. package/dist/cjs/src/abstract/bitfinex.js +1 -1
  16. package/dist/cjs/src/abstract/bitflyer.js +1 -1
  17. package/dist/cjs/src/abstract/bitget.js +1 -1
  18. package/dist/cjs/src/abstract/bithumb.js +1 -1
  19. package/dist/cjs/src/abstract/bitmart.js +1 -1
  20. package/dist/cjs/src/abstract/bitmex.js +1 -1
  21. package/dist/cjs/src/abstract/bitopro.js +1 -1
  22. package/dist/cjs/src/abstract/bitrue.js +1 -1
  23. package/dist/cjs/src/abstract/bitso.js +1 -1
  24. package/dist/cjs/src/abstract/bitstamp.js +1 -1
  25. package/dist/cjs/src/abstract/bitteam.js +1 -1
  26. package/dist/cjs/src/abstract/bittrade.js +1 -1
  27. package/dist/cjs/src/abstract/bitvavo.js +1 -1
  28. package/dist/cjs/src/abstract/blockchaincom.js +1 -1
  29. package/dist/cjs/src/abstract/blofin.js +1 -1
  30. package/dist/cjs/src/abstract/btcbox.js +1 -1
  31. package/dist/cjs/src/abstract/btcmarkets.js +1 -1
  32. package/dist/cjs/src/abstract/btcturk.js +1 -1
  33. package/dist/cjs/src/abstract/bullish.js +1 -1
  34. package/dist/cjs/src/abstract/bybit.js +1 -1
  35. package/dist/cjs/src/abstract/bydfi.js +1 -1
  36. package/dist/cjs/src/abstract/cex.js +1 -1
  37. package/dist/cjs/src/abstract/coinbase.js +1 -1
  38. package/dist/cjs/src/abstract/coinbaseexchange.js +1 -1
  39. package/dist/cjs/src/abstract/coinbaseinternational.js +1 -1
  40. package/dist/cjs/src/abstract/coincheck.js +1 -1
  41. package/dist/cjs/src/abstract/coinex.js +1 -1
  42. package/dist/cjs/src/abstract/coinmate.js +1 -1
  43. package/dist/cjs/src/abstract/coinone.js +1 -1
  44. package/dist/cjs/src/abstract/coinsph.js +1 -1
  45. package/dist/cjs/src/abstract/coinspot.js +1 -1
  46. package/dist/cjs/src/abstract/cryptocom.js +1 -1
  47. package/dist/cjs/src/abstract/cryptomus.js +1 -1
  48. package/dist/cjs/src/abstract/deepcoin.js +1 -1
  49. package/dist/cjs/src/abstract/delta.js +1 -1
  50. package/dist/cjs/src/abstract/deribit.js +1 -1
  51. package/dist/cjs/src/abstract/derive.js +1 -1
  52. package/dist/cjs/src/abstract/digifinex.js +1 -1
  53. package/dist/cjs/src/abstract/dydx.js +1 -1
  54. package/dist/cjs/src/abstract/exmo.js +1 -1
  55. package/dist/cjs/src/abstract/extended.js +1 -1
  56. package/dist/cjs/src/abstract/foxbit.js +1 -1
  57. package/dist/cjs/src/abstract/gate.js +1 -1
  58. package/dist/cjs/src/abstract/gemini.js +1 -1
  59. package/dist/cjs/src/abstract/grvt.js +1 -1
  60. package/dist/cjs/src/abstract/hashkey.js +1 -1
  61. package/dist/cjs/src/abstract/hibachi.js +1 -1
  62. package/dist/cjs/src/abstract/hitbtc.js +1 -1
  63. package/dist/cjs/src/abstract/hollaex.js +1 -1
  64. package/dist/cjs/src/abstract/htx.js +1 -1
  65. package/dist/cjs/src/abstract/hyperliquid.js +1 -1
  66. package/dist/cjs/src/abstract/independentreserve.js +1 -1
  67. package/dist/cjs/src/abstract/indodax.js +1 -1
  68. package/dist/cjs/src/abstract/kraken.js +1 -1
  69. package/dist/cjs/src/abstract/krakenfutures.js +1 -1
  70. package/dist/cjs/src/abstract/kucoin.js +1 -1
  71. package/dist/cjs/src/abstract/latoken.js +1 -1
  72. package/dist/cjs/src/abstract/lbank.js +1 -1
  73. package/dist/cjs/src/abstract/lighter.js +1 -1
  74. package/dist/cjs/src/abstract/luno.js +1 -1
  75. package/dist/cjs/src/abstract/mercado.js +1 -1
  76. package/dist/cjs/src/abstract/mexc.js +1 -1
  77. package/dist/cjs/src/abstract/modetrade.js +1 -1
  78. package/dist/cjs/src/abstract/{ascendex.js → mudrex.js} +1 -1
  79. package/dist/cjs/src/abstract/ndax.js +1 -1
  80. package/dist/cjs/src/abstract/okx.js +1 -1
  81. package/dist/cjs/src/abstract/onetrading.js +1 -1
  82. package/dist/cjs/src/abstract/p2b.js +1 -1
  83. package/dist/cjs/src/abstract/pacifica.js +1 -1
  84. package/dist/cjs/src/abstract/paradex.js +1 -1
  85. package/dist/cjs/src/abstract/paymium.js +1 -1
  86. package/dist/cjs/src/abstract/phemex.js +1 -1
  87. package/dist/cjs/src/abstract/poloniex.js +1 -1
  88. package/dist/cjs/src/abstract/tokocrypto.js +1 -1
  89. package/dist/cjs/src/abstract/toobit.js +1 -1
  90. package/dist/cjs/src/abstract/upbit.js +1 -1
  91. package/dist/cjs/src/abstract/weex.js +1 -1
  92. package/dist/cjs/src/abstract/whitebit.js +1 -1
  93. package/dist/cjs/src/abstract/woo.js +1 -1
  94. package/dist/cjs/src/abstract/woofipro.js +1 -1
  95. package/dist/cjs/src/abstract/xt.js +1 -1
  96. package/dist/cjs/src/abstract/zaif.js +1 -1
  97. package/dist/cjs/src/abstract/zebpay.js +1 -1
  98. package/dist/cjs/src/aftermath.js +0 -1
  99. package/dist/cjs/src/alpaca.js +1 -1
  100. package/dist/cjs/src/apex.js +1 -1
  101. package/dist/cjs/src/aster.js +3 -3
  102. package/dist/cjs/src/backpack.js +1 -1
  103. package/dist/cjs/src/base/Exchange.js +34 -3
  104. package/dist/cjs/src/base/Precise.js +0 -6
  105. package/dist/cjs/src/base/errors.js +0 -6
  106. package/dist/cjs/src/base/functions/crypto.js +1 -1
  107. package/dist/cjs/src/base/functions/encode.js +1 -1
  108. package/dist/cjs/src/base/functions/io.js +1 -1
  109. package/dist/cjs/src/base/functions/misc.js +0 -1
  110. package/dist/cjs/src/base/functions/number.js +0 -6
  111. package/dist/cjs/src/base/functions/platform.js +0 -6
  112. package/dist/cjs/src/base/functions/rsa.js +0 -1
  113. package/dist/cjs/src/base/functions/string.js +0 -6
  114. package/dist/cjs/src/base/functions/throttle.js +1 -1
  115. package/dist/cjs/src/base/functions/time.js +0 -6
  116. package/dist/cjs/src/base/functions/totp.js +0 -1
  117. package/dist/cjs/src/base/functions/type.js +0 -6
  118. package/dist/cjs/src/base/functions.js +1 -1
  119. package/dist/cjs/src/base/ws/Cache.js +0 -6
  120. package/dist/cjs/src/base/ws/Client.js +0 -1
  121. package/dist/cjs/src/base/ws/Future.js +1 -1
  122. package/dist/cjs/src/base/ws/OrderBook.js +1 -1
  123. package/dist/cjs/src/base/ws/OrderBookSide.js +0 -6
  124. package/dist/cjs/src/base/ws/WsClient.js +1 -1
  125. package/dist/cjs/src/bequant.js +1 -1
  126. package/dist/cjs/src/bigone.js +1 -1
  127. package/dist/cjs/src/binance.js +41 -22
  128. package/dist/cjs/src/binancecoinm.js +1 -1
  129. package/dist/cjs/src/binanceus.js +1 -1
  130. package/dist/cjs/src/binanceusdm.js +1 -1
  131. package/dist/cjs/src/bingx.js +1 -1
  132. package/dist/cjs/src/bit2c.js +1 -1
  133. package/dist/cjs/src/bitbank.js +1 -1
  134. package/dist/cjs/src/bitbns.js +1 -1
  135. package/dist/cjs/src/bitfinex.js +1 -1
  136. package/dist/cjs/src/bitflyer.js +1 -1
  137. package/dist/cjs/src/bitget.js +6 -4
  138. package/dist/cjs/src/bithumb.js +1 -1
  139. package/dist/cjs/src/bitmart.js +1 -1
  140. package/dist/cjs/src/bitmex.js +2 -2
  141. package/dist/cjs/src/bitopro.js +1 -1
  142. package/dist/cjs/src/bitrue.js +1 -1
  143. package/dist/cjs/src/bitso.js +1 -1
  144. package/dist/cjs/src/bitstamp.js +3 -2
  145. package/dist/cjs/src/bitteam.js +1 -1
  146. package/dist/cjs/src/bittrade.js +1 -1
  147. package/dist/cjs/src/bitvavo.js +1 -0
  148. package/dist/cjs/src/blockchaincom.js +1 -1
  149. package/dist/cjs/src/blofin.js +1 -1
  150. package/dist/cjs/src/btcbox.js +2 -2
  151. package/dist/cjs/src/btcmarkets.js +1 -1
  152. package/dist/cjs/src/btcturk.js +1 -1
  153. package/dist/cjs/src/bullish.js +2 -2
  154. package/dist/cjs/src/bybit.js +115 -13
  155. package/dist/cjs/src/bybiteu.js +4 -1
  156. package/dist/cjs/src/bydfi.js +1 -1
  157. package/dist/cjs/src/cex.js +2 -1
  158. package/dist/cjs/src/coinbase.js +3 -2
  159. package/dist/cjs/src/coinbaseinternational.js +1 -1
  160. package/dist/cjs/src/coincheck.js +52 -1
  161. package/dist/cjs/src/coinex.js +1 -1
  162. package/dist/cjs/src/coinmate.js +1 -1
  163. package/dist/cjs/src/coinone.js +1 -1
  164. package/dist/cjs/src/coinsph.js +35 -29
  165. package/dist/cjs/src/coinspot.js +1 -1
  166. package/dist/cjs/src/cryptocom.js +1 -1
  167. package/dist/cjs/src/cryptomus.js +1 -1
  168. package/dist/cjs/src/deepcoin.js +1 -1
  169. package/dist/cjs/src/delta.js +24 -2
  170. package/dist/cjs/src/deribit.js +1 -1
  171. package/dist/cjs/src/derive.js +2 -2
  172. package/dist/cjs/src/digifinex.js +13 -1
  173. package/dist/cjs/src/dydx.js +3 -3
  174. package/dist/cjs/src/exmo.js +1 -1
  175. package/dist/cjs/src/extended.js +2 -2
  176. package/dist/cjs/src/fmfwio.js +1 -1
  177. package/dist/cjs/src/foxbit.js +1 -1
  178. package/dist/cjs/src/gate.js +1 -1
  179. package/dist/cjs/src/gateeu.js +2 -1
  180. package/dist/cjs/src/gemini.js +1 -1
  181. package/dist/cjs/src/grvt.js +2 -2
  182. package/dist/cjs/src/hashkey.js +128 -7
  183. package/dist/cjs/src/hibachi.js +21 -11
  184. package/dist/cjs/src/hitbtc.js +0 -1
  185. package/dist/cjs/src/hollaex.js +1 -1
  186. package/dist/cjs/src/htx.js +1 -1
  187. package/dist/cjs/src/hyperliquid.js +14 -7
  188. package/dist/cjs/src/independentreserve.js +1 -1
  189. package/dist/cjs/src/indodax.js +1 -1
  190. package/dist/cjs/src/kraken.js +3 -1
  191. package/dist/cjs/src/krakenfutures.js +1 -1
  192. package/dist/cjs/src/kucoin.js +2 -2
  193. package/dist/cjs/src/kucoineu.js +35 -0
  194. package/dist/cjs/src/kucoinfutures.js +1 -1
  195. package/dist/cjs/src/latoken.js +1 -1
  196. package/dist/cjs/src/lbank.js +1 -1
  197. package/dist/cjs/src/lighter.js +7 -5
  198. package/dist/cjs/src/luno.js +1 -1
  199. package/dist/cjs/src/mercado.js +1 -1
  200. package/dist/cjs/src/mexc.js +1 -1
  201. package/dist/cjs/src/modetrade.js +1 -1
  202. package/dist/cjs/src/mudrex.js +1328 -0
  203. package/dist/cjs/src/myokx.js +4 -1
  204. package/dist/cjs/src/ndax.js +1 -1
  205. package/dist/cjs/src/okx.js +1 -1
  206. package/dist/cjs/src/okxus.js +2 -6
  207. package/dist/cjs/src/onetrading.js +2 -1
  208. package/dist/cjs/src/p2b.js +1 -1
  209. package/dist/cjs/src/pacifica.js +2 -2
  210. package/dist/cjs/src/paradex.js +1 -1
  211. package/dist/cjs/src/paymium.js +1 -1
  212. package/dist/cjs/src/poloniex.js +2 -2
  213. package/dist/cjs/src/pro/alpaca.js +1 -1
  214. package/dist/cjs/src/pro/apex.js +1 -1
  215. package/dist/cjs/src/pro/aster.js +1 -1
  216. package/dist/cjs/src/pro/backpack.js +1 -1
  217. package/dist/cjs/src/pro/bequant.js +1 -1
  218. package/dist/cjs/src/pro/binancecoinm.js +1 -1
  219. package/dist/cjs/src/pro/binanceus.js +1 -1
  220. package/dist/cjs/src/pro/binanceusdm.js +1 -1
  221. package/dist/cjs/src/pro/bingx.js +5 -3
  222. package/dist/cjs/src/pro/bitfinex.js +1 -1
  223. package/dist/cjs/src/pro/bitget.js +10 -8
  224. package/dist/cjs/src/pro/bithumb.js +1 -1
  225. package/dist/cjs/src/pro/bitmart.js +1 -1
  226. package/dist/cjs/src/pro/bitmex.js +1 -1
  227. package/dist/cjs/src/pro/bitrue.js +1 -1
  228. package/dist/cjs/src/pro/bitstamp.js +1 -1
  229. package/dist/cjs/src/pro/bitvavo.js +1 -1
  230. package/dist/cjs/src/pro/blockchaincom.js +1 -1
  231. package/dist/cjs/src/pro/blofin.js +1 -1
  232. package/dist/cjs/src/pro/bullish.js +1 -1
  233. package/dist/cjs/src/pro/bybit.js +1 -1
  234. package/dist/cjs/src/pro/bybiteu.js +1 -1
  235. package/dist/cjs/src/pro/bydfi.js +1 -1
  236. package/dist/cjs/src/pro/cex.js +2 -2
  237. package/dist/cjs/src/pro/coinbase.js +1 -1
  238. package/dist/cjs/src/pro/coinbaseexchange.js +1 -1
  239. package/dist/cjs/src/pro/coinbaseinternational.js +1 -1
  240. package/dist/cjs/src/pro/coincheck.js +1 -1
  241. package/dist/cjs/src/pro/coinex.js +1 -1
  242. package/dist/cjs/src/pro/coinone.js +1 -1
  243. package/dist/cjs/src/pro/cryptocom.js +1 -1
  244. package/dist/cjs/src/pro/deepcoin.js +1 -1
  245. package/dist/cjs/src/pro/deribit.js +1 -1
  246. package/dist/cjs/src/pro/dydx.js +1 -1
  247. package/dist/cjs/src/pro/exmo.js +1 -1
  248. package/dist/cjs/src/pro/gate.js +1 -1
  249. package/dist/cjs/src/pro/gateeu.js +1 -1
  250. package/dist/cjs/src/pro/gemini.js +1 -1
  251. package/dist/cjs/src/pro/grvt.js +2 -2
  252. package/dist/cjs/src/pro/hashkey.js +2 -2
  253. package/dist/cjs/src/pro/hitbtc.js +1 -1
  254. package/dist/cjs/src/pro/hollaex.js +1 -1
  255. package/dist/cjs/src/pro/htx.js +1 -1
  256. package/dist/cjs/src/pro/hyperliquid.js +1 -1
  257. package/dist/cjs/src/pro/independentreserve.js +1 -1
  258. package/dist/cjs/src/pro/kraken.js +2 -2
  259. package/dist/cjs/src/pro/krakenfutures.js +1 -1
  260. package/dist/cjs/src/pro/kucoin.js +1 -1
  261. package/dist/cjs/src/pro/kucoineu.js +29 -0
  262. package/dist/cjs/src/pro/kucoinfutures.js +1 -1
  263. package/dist/cjs/src/pro/lbank.js +0 -1
  264. package/dist/cjs/src/pro/lighter.js +13 -4
  265. package/dist/cjs/src/pro/luno.js +1 -1
  266. package/dist/cjs/src/pro/mexc.js +1 -1
  267. package/dist/cjs/src/pro/mudrex.js +226 -0
  268. package/dist/cjs/src/pro/myokx.js +1 -1
  269. package/dist/cjs/src/pro/ndax.js +1 -1
  270. package/dist/cjs/src/pro/okx.js +1 -1
  271. package/dist/cjs/src/pro/okxus.js +2 -2
  272. package/dist/cjs/src/pro/onetrading.js +1 -1
  273. package/dist/cjs/src/pro/p2b.js +1 -1
  274. package/dist/cjs/src/pro/pacifica.js +1 -1
  275. package/dist/cjs/src/pro/paradex.js +1 -1
  276. package/dist/cjs/src/pro/phemex.js +1 -1
  277. package/dist/cjs/src/pro/poloniex.js +1 -1
  278. package/dist/cjs/src/pro/toobit.js +1 -1
  279. package/dist/cjs/src/pro/upbit.js +1 -1
  280. package/dist/cjs/src/pro/weex.js +1 -1
  281. package/dist/cjs/src/pro/whitebit.js +1 -1
  282. package/dist/cjs/src/pro/xt.js +1 -1
  283. package/dist/cjs/src/protobuf/mexc/compiled.cjs.js +1 -0
  284. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/base/v1beta1/coin.js +0 -1
  285. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/v1beta1/multisig.js +0 -1
  286. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/crypto/secp256k1/keys.js +0 -1
  287. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/tx/signing/v1beta1/signing.js +0 -1
  288. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/tx/v1beta1/tx.js +0 -1
  289. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/accountplus/tx.js +0 -1
  290. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/clob_pair.js +0 -1
  291. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order.js +0 -1
  292. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order_removals.js +0 -1
  293. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/tx.js +0 -1
  294. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/transfer.js +0 -1
  295. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/tx.js +0 -1
  296. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/subaccount.js +0 -1
  297. package/dist/cjs/src/static_dependencies/dydx-v4-client/google/protobuf/any.js +0 -1
  298. package/dist/cjs/src/static_dependencies/dydx-v4-client/helpers.js +0 -6
  299. package/dist/cjs/src/static_dependencies/dydx-v4-client/onboarding.js +0 -1
  300. package/dist/cjs/src/static_dependencies/dydx-v4-client/registry.js +0 -1
  301. package/dist/cjs/src/static_dependencies/ethers/abi-coder.js +12 -1
  302. package/dist/cjs/src/static_dependencies/ethers/address/address.js +1 -1
  303. package/dist/cjs/src/static_dependencies/ethers/coders/abstract-coder.js +0 -1
  304. package/dist/cjs/src/static_dependencies/ethers/coders/address.js +0 -1
  305. package/dist/cjs/src/static_dependencies/ethers/coders/anonymous.js +0 -1
  306. package/dist/cjs/src/static_dependencies/ethers/coders/array.js +0 -1
  307. package/dist/cjs/src/static_dependencies/ethers/coders/boolean.js +0 -1
  308. package/dist/cjs/src/static_dependencies/ethers/coders/bytes.js +0 -1
  309. package/dist/cjs/src/static_dependencies/ethers/coders/fixed-bytes.js +0 -1
  310. package/dist/cjs/src/static_dependencies/ethers/coders/null.js +0 -1
  311. package/dist/cjs/src/static_dependencies/ethers/coders/number.js +0 -1
  312. package/dist/cjs/src/static_dependencies/ethers/coders/string.js +0 -1
  313. package/dist/cjs/src/static_dependencies/ethers/coders/tuple.js +0 -1
  314. package/dist/cjs/src/static_dependencies/ethers/fragments.js +0 -6
  315. package/dist/cjs/src/static_dependencies/ethers/hash/typed-data.js +1 -1
  316. package/dist/cjs/src/static_dependencies/ethers/index.js +10 -1
  317. package/dist/cjs/src/static_dependencies/ethers/typed.js +14 -1
  318. package/dist/cjs/src/static_dependencies/ethers/utils/base58.js +13 -1
  319. package/dist/cjs/src/static_dependencies/ethers/utils/data.js +6 -1
  320. package/dist/cjs/src/static_dependencies/ethers/utils/errors.js +9 -1
  321. package/dist/cjs/src/static_dependencies/ethers/utils/fixednumber.js +0 -1
  322. package/dist/cjs/src/static_dependencies/ethers/utils/index.js +7 -1
  323. package/dist/cjs/src/static_dependencies/ethers/utils/maths.js +5 -1
  324. package/dist/cjs/src/static_dependencies/ethers/utils/properties.js +0 -6
  325. package/dist/cjs/src/static_dependencies/ethers/utils/utf8.js +8 -1
  326. package/dist/cjs/src/static_dependencies/fflake/browser.js +1 -1
  327. package/dist/cjs/src/static_dependencies/messagepack/msgpack.js +0 -6
  328. package/dist/cjs/src/static_dependencies/node-fetch/body.js +5 -1
  329. package/dist/cjs/src/static_dependencies/node-fetch/errors/abort-error.js +0 -1
  330. package/dist/cjs/src/static_dependencies/node-fetch/errors/base.js +0 -6
  331. package/dist/cjs/src/static_dependencies/node-fetch/errors/fetch-error.js +0 -1
  332. package/dist/cjs/src/static_dependencies/node-fetch/headers.js +5 -1
  333. package/dist/cjs/src/static_dependencies/node-fetch/index.js +7 -1
  334. package/dist/cjs/src/static_dependencies/node-fetch/request.js +7 -1
  335. package/dist/cjs/src/static_dependencies/node-fetch/response.js +5 -1
  336. package/dist/cjs/src/static_dependencies/node-fetch/utils/get-search.js +0 -6
  337. package/dist/cjs/src/static_dependencies/node-fetch/utils/is-redirect.js +0 -6
  338. package/dist/cjs/src/static_dependencies/node-fetch/utils/is.js +0 -6
  339. package/dist/cjs/src/static_dependencies/node-fetch/utils/referrer.js +0 -1
  340. package/dist/cjs/src/static_dependencies/proxies/agent-base/index.js +0 -1
  341. package/dist/cjs/src/static_dependencies/proxies/http-proxy-agent/index.js +0 -1
  342. package/dist/cjs/src/static_dependencies/proxies/https-proxy-agent/index.js +0 -1
  343. package/dist/cjs/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +0 -6
  344. package/dist/cjs/src/static_dependencies/qs/formats.js +0 -6
  345. package/dist/cjs/src/static_dependencies/qs/index.js +0 -1
  346. package/dist/cjs/src/static_dependencies/qs/parse.js +0 -1
  347. package/dist/cjs/src/static_dependencies/qs/stringify.js +0 -1
  348. package/dist/cjs/src/static_dependencies/qs/utils.js +0 -6
  349. package/dist/cjs/src/static_dependencies/starknet/constants.js +1 -1
  350. package/dist/cjs/src/static_dependencies/starknet/types/calldata.js +0 -6
  351. package/dist/cjs/src/static_dependencies/starknet/types/lib/contract/abi.js +0 -6
  352. package/dist/cjs/src/static_dependencies/starknet/types/lib/contract/index.js +0 -6
  353. package/dist/cjs/src/static_dependencies/starknet/types/lib/index.js +0 -6
  354. package/dist/cjs/src/static_dependencies/starknet/types/typedData.js +0 -6
  355. package/dist/cjs/src/static_dependencies/starknet/utils/assert.js +0 -6
  356. package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +1 -1
  357. package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +1 -1
  358. package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +1 -1
  359. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/byteArray.js +0 -1
  360. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/cairo.js +0 -1
  361. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +0 -6
  362. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +0 -6
  363. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +0 -6
  364. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/formatter.js +0 -1
  365. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/index.js +1 -1
  366. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/index.js +0 -1
  367. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +0 -1
  368. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +0 -6
  369. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +0 -1
  370. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/requestParser.js +0 -1
  371. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/responseParser.js +0 -1
  372. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/tuple.js +1 -1
  373. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/validate.js +4 -1
  374. package/dist/cjs/src/static_dependencies/starknet/utils/encode.js +0 -1
  375. package/dist/cjs/src/static_dependencies/starknet/utils/hash/classHash.js +3 -1
  376. package/dist/cjs/src/static_dependencies/starknet/utils/merkle.js +0 -1
  377. package/dist/cjs/src/static_dependencies/starknet/utils/num.js +0 -1
  378. package/dist/cjs/src/static_dependencies/starknet/utils/selector.js +0 -1
  379. package/dist/cjs/src/static_dependencies/starknet/utils/shortString.js +0 -1
  380. package/dist/cjs/src/static_dependencies/starknet/utils/typedData.js +1 -1
  381. package/dist/cjs/src/static_dependencies/watchable/src/unpromise.js +0 -6
  382. package/dist/cjs/src/static_dependencies/zklink/zklink-sdk-web.js +0 -6
  383. package/dist/cjs/src/tokocrypto.js +1 -1
  384. package/dist/cjs/src/toobit.js +1 -1
  385. package/dist/cjs/src/upbit.js +1 -1
  386. package/dist/cjs/src/weex.js +1 -1
  387. package/dist/cjs/src/whitebit.js +1 -1
  388. package/dist/cjs/src/woo.js +1 -1
  389. package/dist/cjs/src/woofipro.js +1 -1
  390. package/dist/cjs/src/xt.js +1 -1
  391. package/dist/cjs/src/zaif.js +1 -1
  392. package/dist/cjs/src/zebpay.js +1 -1
  393. package/js/ccxt.d.ts +14 -14
  394. package/js/ccxt.js +10 -16
  395. package/js/src/abstract/aftermath.js +0 -6
  396. package/js/src/abstract/alpaca.js +0 -6
  397. package/js/src/abstract/apex.js +0 -6
  398. package/js/src/abstract/aster.js +0 -6
  399. package/js/src/abstract/backpack.js +0 -6
  400. package/js/src/abstract/bequant.js +0 -6
  401. package/js/src/abstract/bigone.js +0 -6
  402. package/js/src/abstract/binance.d.ts +3 -0
  403. package/js/src/abstract/binance.js +0 -6
  404. package/js/src/abstract/binancecoinm.d.ts +3 -0
  405. package/js/src/abstract/binancecoinm.js +0 -6
  406. package/js/src/abstract/binanceus.d.ts +3 -0
  407. package/js/src/abstract/binanceus.js +0 -6
  408. package/js/src/abstract/binanceusdm.d.ts +3 -0
  409. package/js/src/abstract/binanceusdm.js +0 -6
  410. package/js/src/abstract/bingx.js +0 -6
  411. package/js/src/abstract/bit2c.js +0 -6
  412. package/js/src/abstract/bitbank.js +0 -6
  413. package/js/src/abstract/bitbns.js +0 -6
  414. package/js/src/abstract/bitfinex.js +0 -6
  415. package/js/src/abstract/bitflyer.js +0 -6
  416. package/js/src/abstract/bitget.js +0 -6
  417. package/js/src/abstract/bithumb.js +0 -6
  418. package/js/src/abstract/bitmart.js +0 -6
  419. package/js/src/abstract/bitmex.js +0 -6
  420. package/js/src/abstract/bitopro.js +0 -6
  421. package/js/src/abstract/bitrue.js +0 -6
  422. package/js/src/abstract/bitso.js +0 -6
  423. package/js/src/abstract/bitstamp.js +0 -6
  424. package/js/src/abstract/bitteam.js +0 -6
  425. package/js/src/abstract/bittrade.js +0 -6
  426. package/js/src/abstract/bitvavo.js +0 -6
  427. package/js/src/abstract/blockchaincom.js +0 -6
  428. package/js/src/abstract/blofin.js +0 -6
  429. package/js/src/abstract/btcbox.js +0 -6
  430. package/js/src/abstract/btcmarkets.js +0 -6
  431. package/js/src/abstract/btcturk.js +0 -6
  432. package/js/src/abstract/bullish.js +0 -6
  433. package/js/src/abstract/bybit.d.ts +39 -0
  434. package/js/src/abstract/bybit.js +0 -6
  435. package/js/src/abstract/bybiteu.d.ts +39 -0
  436. package/js/src/abstract/bybiteu.js +0 -6
  437. package/js/src/abstract/bydfi.js +0 -6
  438. package/js/src/abstract/cex.js +0 -6
  439. package/js/src/abstract/coinbase.js +0 -6
  440. package/js/src/abstract/coinbaseexchange.js +0 -6
  441. package/js/src/abstract/coinbaseinternational.js +0 -6
  442. package/js/src/abstract/coincheck.d.ts +3 -0
  443. package/js/src/abstract/coincheck.js +0 -6
  444. package/js/src/abstract/coinex.js +0 -6
  445. package/js/src/abstract/coinmate.js +0 -6
  446. package/js/src/abstract/coinone.js +0 -6
  447. package/js/src/abstract/coinsph.d.ts +8 -1
  448. package/js/src/abstract/coinsph.js +0 -6
  449. package/js/src/abstract/coinspot.js +0 -6
  450. package/js/src/abstract/cryptocom.js +0 -6
  451. package/js/src/abstract/cryptomus.js +0 -6
  452. package/js/src/abstract/deepcoin.js +0 -6
  453. package/js/src/abstract/delta.js +0 -6
  454. package/js/src/abstract/deribit.js +0 -6
  455. package/js/src/abstract/derive.js +0 -6
  456. package/js/src/abstract/digifinex.js +0 -6
  457. package/js/src/abstract/dydx.js +0 -6
  458. package/js/src/abstract/exmo.js +0 -6
  459. package/js/src/abstract/extended.js +0 -6
  460. package/js/src/abstract/fmfwio.js +0 -6
  461. package/js/src/abstract/foxbit.js +0 -6
  462. package/js/src/abstract/gate.js +0 -6
  463. package/js/src/abstract/gateeu.js +0 -6
  464. package/js/src/abstract/gemini.js +0 -6
  465. package/js/src/abstract/grvt.js +0 -6
  466. package/js/src/abstract/hashkey.js +0 -6
  467. package/js/src/abstract/hibachi.js +0 -6
  468. package/js/src/abstract/hitbtc.js +0 -6
  469. package/js/src/abstract/hollaex.js +0 -6
  470. package/js/src/abstract/htx.js +0 -6
  471. package/js/src/abstract/hyperliquid.js +0 -6
  472. package/js/src/abstract/independentreserve.js +0 -6
  473. package/js/src/abstract/indodax.js +0 -6
  474. package/js/src/abstract/kraken.js +0 -6
  475. package/js/src/abstract/krakenfutures.js +0 -6
  476. package/js/src/abstract/kucoin.js +0 -6
  477. package/js/src/abstract/kucoineu.d.ts +356 -0
  478. package/js/src/abstract/kucoineu.js +5 -0
  479. package/js/src/abstract/kucoinfutures.js +0 -6
  480. package/js/src/abstract/latoken.js +0 -6
  481. package/js/src/abstract/lbank.js +0 -6
  482. package/js/src/abstract/lighter.js +0 -6
  483. package/js/src/abstract/luno.js +0 -6
  484. package/js/src/abstract/mercado.js +0 -6
  485. package/js/src/abstract/mexc.js +0 -6
  486. package/js/src/abstract/modetrade.js +0 -6
  487. package/js/src/abstract/mudrex.d.ts +33 -0
  488. package/js/src/abstract/mudrex.js +5 -0
  489. package/js/src/abstract/myokx.js +0 -6
  490. package/js/src/abstract/ndax.js +0 -6
  491. package/js/src/abstract/okx.js +0 -6
  492. package/js/src/abstract/okxus.js +0 -6
  493. package/js/src/abstract/onetrading.js +0 -6
  494. package/js/src/abstract/p2b.js +0 -6
  495. package/js/src/abstract/pacifica.js +0 -6
  496. package/js/src/abstract/paradex.js +0 -6
  497. package/js/src/abstract/paymium.js +0 -6
  498. package/js/src/abstract/phemex.js +0 -6
  499. package/js/src/abstract/poloniex.js +0 -6
  500. package/js/src/abstract/tokocrypto.js +0 -6
  501. package/js/src/abstract/toobit.js +0 -6
  502. package/js/src/abstract/upbit.js +0 -6
  503. package/js/src/abstract/weex.js +0 -6
  504. package/js/src/abstract/whitebit.js +0 -6
  505. package/js/src/abstract/woo.js +0 -6
  506. package/js/src/abstract/woofipro.js +0 -6
  507. package/js/src/abstract/xt.js +0 -6
  508. package/js/src/abstract/zaif.js +0 -6
  509. package/js/src/abstract/zebpay.js +0 -6
  510. package/js/src/aftermath.js +0 -6
  511. package/js/src/alpaca.js +0 -6
  512. package/js/src/apex.js +0 -6
  513. package/js/src/aster.js +2 -8
  514. package/js/src/backpack.js +0 -6
  515. package/js/src/base/Exchange.d.ts +10 -1
  516. package/js/src/base/Exchange.js +34 -9
  517. package/js/src/base/Precise.js +0 -6
  518. package/js/src/base/errorHierarchy.js +0 -6
  519. package/js/src/base/errors.js +0 -6
  520. package/js/src/base/functions/crypto.js +0 -6
  521. package/js/src/base/functions/encode.js +0 -6
  522. package/js/src/base/functions/generic.js +0 -6
  523. package/js/src/base/functions/io.js +0 -6
  524. package/js/src/base/functions/misc.js +0 -6
  525. package/js/src/base/functions/number.js +0 -6
  526. package/js/src/base/functions/platform.js +0 -6
  527. package/js/src/base/functions/rsa.js +0 -6
  528. package/js/src/base/functions/string.js +0 -6
  529. package/js/src/base/functions/throttle.js +0 -6
  530. package/js/src/base/functions/time.js +0 -6
  531. package/js/src/base/functions/totp.js +0 -6
  532. package/js/src/base/functions/type.js +0 -6
  533. package/js/src/base/functions.js +0 -6
  534. package/js/src/base/types.js +0 -6
  535. package/js/src/base/ws/Cache.js +0 -6
  536. package/js/src/base/ws/Client.js +0 -6
  537. package/js/src/base/ws/Future.js +0 -6
  538. package/js/src/base/ws/OrderBook.js +0 -6
  539. package/js/src/base/ws/OrderBookSide.js +0 -6
  540. package/js/src/base/ws/WsClient.js +0 -6
  541. package/js/src/base/ws/functions.js +0 -6
  542. package/js/src/bequant.js +0 -6
  543. package/js/src/bigone.js +0 -6
  544. package/js/src/binance.js +40 -27
  545. package/js/src/binancecoinm.js +0 -6
  546. package/js/src/binanceus.js +0 -6
  547. package/js/src/binanceusdm.js +0 -6
  548. package/js/src/bingx.js +0 -6
  549. package/js/src/bit2c.js +0 -6
  550. package/js/src/bitbank.js +0 -6
  551. package/js/src/bitbns.js +0 -6
  552. package/js/src/bitfinex.js +0 -6
  553. package/js/src/bitflyer.js +0 -6
  554. package/js/src/bitget.js +5 -9
  555. package/js/src/bithumb.js +0 -6
  556. package/js/src/bitmart.js +0 -6
  557. package/js/src/bitmex.js +1 -7
  558. package/js/src/bitopro.js +0 -6
  559. package/js/src/bitrue.js +0 -6
  560. package/js/src/bitso.js +0 -6
  561. package/js/src/bitstamp.js +2 -7
  562. package/js/src/bitteam.js +0 -6
  563. package/js/src/bittrade.js +0 -6
  564. package/js/src/bitvavo.js +1 -6
  565. package/js/src/blockchaincom.js +0 -6
  566. package/js/src/blofin.js +0 -6
  567. package/js/src/btcbox.js +1 -7
  568. package/js/src/btcmarkets.js +0 -6
  569. package/js/src/btcturk.js +0 -6
  570. package/js/src/bullish.js +1 -7
  571. package/js/src/bybit.d.ts +9 -0
  572. package/js/src/bybit.js +114 -18
  573. package/js/src/bybiteu.js +3 -6
  574. package/js/src/bydfi.js +0 -6
  575. package/js/src/cex.d.ts +1 -0
  576. package/js/src/cex.js +1 -6
  577. package/js/src/coinbase.js +3 -8
  578. package/js/src/coinbaseexchange.js +0 -6
  579. package/js/src/coinbaseinternational.js +1 -7
  580. package/js/src/coincheck.d.ts +9 -0
  581. package/js/src/coincheck.js +51 -6
  582. package/js/src/coinex.js +0 -6
  583. package/js/src/coinmate.js +0 -6
  584. package/js/src/coinone.js +0 -6
  585. package/js/src/coinsph.d.ts +27 -27
  586. package/js/src/coinsph.js +35 -34
  587. package/js/src/coinspot.js +0 -6
  588. package/js/src/cryptocom.js +0 -6
  589. package/js/src/cryptomus.js +0 -6
  590. package/js/src/deepcoin.js +0 -6
  591. package/js/src/delta.d.ts +12 -0
  592. package/js/src/delta.js +23 -7
  593. package/js/src/deribit.js +0 -6
  594. package/js/src/derive.js +1 -7
  595. package/js/src/digifinex.d.ts +12 -0
  596. package/js/src/digifinex.js +12 -6
  597. package/js/src/dydx.d.ts +2 -2
  598. package/js/src/dydx.js +2 -8
  599. package/js/src/exmo.js +0 -6
  600. package/js/src/extended.js +1 -7
  601. package/js/src/fmfwio.js +0 -6
  602. package/js/src/foxbit.js +0 -6
  603. package/js/src/gate.js +0 -6
  604. package/js/src/gateeu.js +1 -6
  605. package/js/src/gemini.js +0 -6
  606. package/js/src/grvt.d.ts +1 -1
  607. package/js/src/grvt.js +1 -7
  608. package/js/src/hashkey.d.ts +40 -3
  609. package/js/src/hashkey.js +127 -12
  610. package/js/src/hibachi.d.ts +9 -5
  611. package/js/src/hibachi.js +20 -16
  612. package/js/src/hitbtc.js +0 -6
  613. package/js/src/hollaex.js +0 -6
  614. package/js/src/htx.js +0 -6
  615. package/js/src/hyperliquid.js +13 -12
  616. package/js/src/independentreserve.js +0 -6
  617. package/js/src/indodax.js +0 -6
  618. package/js/src/kraken.js +2 -6
  619. package/js/src/krakenfutures.js +0 -6
  620. package/js/src/kucoin.js +1 -7
  621. package/js/src/kucoineu.d.ts +4 -0
  622. package/js/src/kucoineu.js +28 -0
  623. package/js/src/kucoinfutures.js +0 -6
  624. package/js/src/latoken.js +0 -6
  625. package/js/src/lbank.js +0 -6
  626. package/js/src/lighter.js +6 -10
  627. package/js/src/luno.js +0 -6
  628. package/js/src/mercado.js +0 -6
  629. package/js/src/mexc.js +0 -6
  630. package/js/src/modetrade.js +0 -6
  631. package/js/src/mudrex.d.ts +310 -0
  632. package/js/src/mudrex.js +1321 -0
  633. package/js/src/myokx.js +3 -6
  634. package/js/src/ndax.js +0 -6
  635. package/js/src/okx.js +0 -6
  636. package/js/src/okxus.js +1 -11
  637. package/js/src/onetrading.js +1 -6
  638. package/js/src/p2b.js +0 -6
  639. package/js/src/pacifica.js +1 -7
  640. package/js/src/paradex.js +0 -6
  641. package/js/src/paymium.js +0 -6
  642. package/js/src/phemex.js +0 -6
  643. package/js/src/poloniex.js +1 -7
  644. package/js/src/pro/aftermath.js +0 -6
  645. package/js/src/pro/alpaca.js +0 -6
  646. package/js/src/pro/apex.js +0 -6
  647. package/js/src/pro/aster.js +0 -6
  648. package/js/src/pro/backpack.js +0 -6
  649. package/js/src/pro/bequant.js +0 -6
  650. package/js/src/pro/binance.js +0 -6
  651. package/js/src/pro/binancecoinm.js +0 -6
  652. package/js/src/pro/binanceus.js +0 -6
  653. package/js/src/pro/binanceusdm.js +0 -6
  654. package/js/src/pro/bingx.js +4 -8
  655. package/js/src/pro/bitfinex.js +0 -6
  656. package/js/src/pro/bitget.js +9 -13
  657. package/js/src/pro/bithumb.js +0 -6
  658. package/js/src/pro/bitmart.js +0 -6
  659. package/js/src/pro/bitmex.js +0 -6
  660. package/js/src/pro/bitopro.js +0 -6
  661. package/js/src/pro/bitrue.js +0 -6
  662. package/js/src/pro/bitstamp.js +0 -6
  663. package/js/src/pro/bittrade.js +0 -6
  664. package/js/src/pro/bitvavo.js +0 -6
  665. package/js/src/pro/blockchaincom.js +0 -6
  666. package/js/src/pro/blofin.js +0 -6
  667. package/js/src/pro/bullish.js +0 -6
  668. package/js/src/pro/bybit.js +0 -6
  669. package/js/src/pro/bybiteu.js +0 -6
  670. package/js/src/pro/bydfi.js +0 -6
  671. package/js/src/pro/cex.d.ts +1 -1
  672. package/js/src/pro/cex.js +1 -7
  673. package/js/src/pro/coinbase.js +0 -6
  674. package/js/src/pro/coinbaseexchange.js +0 -6
  675. package/js/src/pro/coinbaseinternational.js +0 -6
  676. package/js/src/pro/coincheck.js +0 -6
  677. package/js/src/pro/coinex.js +0 -6
  678. package/js/src/pro/coinone.js +0 -6
  679. package/js/src/pro/cryptocom.js +0 -6
  680. package/js/src/pro/deepcoin.js +0 -6
  681. package/js/src/pro/deribit.js +0 -6
  682. package/js/src/pro/derive.js +0 -6
  683. package/js/src/pro/dydx.js +0 -6
  684. package/js/src/pro/exmo.js +0 -6
  685. package/js/src/pro/extended.js +0 -6
  686. package/js/src/pro/gate.js +0 -6
  687. package/js/src/pro/gateeu.js +0 -6
  688. package/js/src/pro/gemini.js +0 -6
  689. package/js/src/pro/grvt.d.ts +1 -1
  690. package/js/src/pro/grvt.js +1 -7
  691. package/js/src/pro/hashkey.d.ts +1 -1
  692. package/js/src/pro/hashkey.js +1 -7
  693. package/js/src/pro/hitbtc.js +0 -6
  694. package/js/src/pro/hollaex.js +0 -6
  695. package/js/src/pro/htx.js +0 -6
  696. package/js/src/pro/hyperliquid.js +0 -6
  697. package/js/src/pro/independentreserve.js +0 -6
  698. package/js/src/pro/kraken.js +1 -7
  699. package/js/src/pro/krakenfutures.js +0 -6
  700. package/js/src/pro/kucoin.js +0 -6
  701. package/js/src/pro/kucoineu.d.ts +4 -0
  702. package/js/src/pro/kucoineu.js +22 -0
  703. package/js/src/pro/kucoinfutures.js +0 -6
  704. package/js/src/pro/lbank.js +0 -6
  705. package/js/src/pro/lighter.js +12 -9
  706. package/js/src/pro/luno.js +0 -6
  707. package/js/src/pro/mexc.js +0 -6
  708. package/js/src/pro/modetrade.js +0 -6
  709. package/js/src/pro/mudrex.d.ts +23 -0
  710. package/js/src/pro/mudrex.js +219 -0
  711. package/js/src/pro/myokx.js +0 -6
  712. package/js/src/pro/ndax.js +0 -6
  713. package/js/src/pro/okx.js +0 -6
  714. package/js/src/pro/okxus.js +1 -7
  715. package/js/src/pro/onetrading.js +0 -6
  716. package/js/src/pro/p2b.js +0 -6
  717. package/js/src/pro/pacifica.js +0 -6
  718. package/js/src/pro/paradex.js +0 -6
  719. package/js/src/pro/phemex.js +0 -6
  720. package/js/src/pro/poloniex.js +0 -6
  721. package/js/src/pro/toobit.js +0 -6
  722. package/js/src/pro/upbit.js +0 -6
  723. package/js/src/pro/weex.js +0 -6
  724. package/js/src/pro/whitebit.js +0 -6
  725. package/js/src/pro/woo.js +0 -6
  726. package/js/src/pro/woofipro.js +0 -6
  727. package/js/src/pro/xt.js +0 -6
  728. package/js/src/protobuf/mexc/compiled.cjs +0 -6
  729. package/js/src/protobuf/mexc/compiled.d.cts +0 -6
  730. package/js/src/static_dependencies/dydx-v4-client/cosmos/base/v1beta1/coin.js +0 -6
  731. package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/keys.js +0 -6
  732. package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/v1beta1/multisig.js +0 -6
  733. package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/secp256k1/keys.js +0 -6
  734. package/js/src/static_dependencies/dydx-v4-client/cosmos/tx/signing/v1beta1/signing.js +0 -6
  735. package/js/src/static_dependencies/dydx-v4-client/cosmos/tx/v1beta1/tx.js +0 -6
  736. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/accountplus/tx.js +0 -6
  737. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/block_rate_limit_config.js +0 -6
  738. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/clob_pair.js +0 -6
  739. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/equity_tier_limit_config.js +0 -6
  740. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/finalize_block.js +0 -6
  741. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/liquidations.js +0 -6
  742. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/liquidations_config.js +0 -6
  743. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/matches.js +0 -6
  744. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order.js +0 -6
  745. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order_removals.js +0 -6
  746. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/tx.js +0 -6
  747. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/transfer.js +0 -6
  748. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/tx.js +0 -6
  749. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/asset_position.js +0 -6
  750. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/perpetual_position.js +0 -6
  751. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/subaccount.js +0 -6
  752. package/js/src/static_dependencies/dydx-v4-client/google/protobuf/any.js +0 -6
  753. package/js/src/static_dependencies/dydx-v4-client/helpers.js +0 -6
  754. package/js/src/static_dependencies/dydx-v4-client/long/index.cjs +0 -6
  755. package/js/src/static_dependencies/dydx-v4-client/long/index.d.cts +0 -6
  756. package/js/src/static_dependencies/dydx-v4-client/onboarding.js +0 -6
  757. package/js/src/static_dependencies/dydx-v4-client/registry.js +0 -6
  758. package/js/src/static_dependencies/ethers/abi-coder.js +0 -6
  759. package/js/src/static_dependencies/ethers/address/address.js +0 -6
  760. package/js/src/static_dependencies/ethers/address/checks.js +0 -6
  761. package/js/src/static_dependencies/ethers/address/contract-address.js +0 -6
  762. package/js/src/static_dependencies/ethers/address/index.js +0 -6
  763. package/js/src/static_dependencies/ethers/bytes32.js +0 -6
  764. package/js/src/static_dependencies/ethers/coders/abstract-coder.js +0 -6
  765. package/js/src/static_dependencies/ethers/coders/address.js +0 -6
  766. package/js/src/static_dependencies/ethers/coders/anonymous.js +0 -6
  767. package/js/src/static_dependencies/ethers/coders/array.js +0 -6
  768. package/js/src/static_dependencies/ethers/coders/boolean.js +0 -6
  769. package/js/src/static_dependencies/ethers/coders/bytes.js +0 -6
  770. package/js/src/static_dependencies/ethers/coders/fixed-bytes.js +0 -6
  771. package/js/src/static_dependencies/ethers/coders/null.js +0 -6
  772. package/js/src/static_dependencies/ethers/coders/number.js +0 -6
  773. package/js/src/static_dependencies/ethers/coders/string.js +0 -6
  774. package/js/src/static_dependencies/ethers/coders/tuple.js +0 -6
  775. package/js/src/static_dependencies/ethers/fragments.js +0 -6
  776. package/js/src/static_dependencies/ethers/hash/index.js +0 -6
  777. package/js/src/static_dependencies/ethers/hash/solidity.js +0 -6
  778. package/js/src/static_dependencies/ethers/hash/typed-data.js +0 -6
  779. package/js/src/static_dependencies/ethers/index.js +0 -6
  780. package/js/src/static_dependencies/ethers/interface.js +0 -6
  781. package/js/src/static_dependencies/ethers/typed.js +0 -6
  782. package/js/src/static_dependencies/ethers/utils/base58.js +0 -6
  783. package/js/src/static_dependencies/ethers/utils/base64-browser.js +0 -6
  784. package/js/src/static_dependencies/ethers/utils/base64.js +0 -6
  785. package/js/src/static_dependencies/ethers/utils/data.js +0 -6
  786. package/js/src/static_dependencies/ethers/utils/errors.js +0 -6
  787. package/js/src/static_dependencies/ethers/utils/events.js +0 -6
  788. package/js/src/static_dependencies/ethers/utils/fixednumber.js +0 -6
  789. package/js/src/static_dependencies/ethers/utils/index.js +0 -6
  790. package/js/src/static_dependencies/ethers/utils/maths.js +0 -6
  791. package/js/src/static_dependencies/ethers/utils/properties.js +0 -6
  792. package/js/src/static_dependencies/ethers/utils/rlp-decode.js +0 -6
  793. package/js/src/static_dependencies/ethers/utils/rlp-encode.js +0 -6
  794. package/js/src/static_dependencies/ethers/utils/rlp.js +0 -6
  795. package/js/src/static_dependencies/ethers/utils/units.js +0 -6
  796. package/js/src/static_dependencies/ethers/utils/utf8.js +0 -6
  797. package/js/src/static_dependencies/ethers/utils/uuid.js +0 -6
  798. package/js/src/static_dependencies/fflake/browser.js +0 -6
  799. package/js/src/static_dependencies/messagepack/msgpack.js +0 -6
  800. package/js/src/static_dependencies/node-fetch/body.js +0 -6
  801. package/js/src/static_dependencies/node-fetch/errors/abort-error.js +0 -6
  802. package/js/src/static_dependencies/node-fetch/errors/base.js +0 -6
  803. package/js/src/static_dependencies/node-fetch/errors/fetch-error.js +0 -6
  804. package/js/src/static_dependencies/node-fetch/headers.js +0 -6
  805. package/js/src/static_dependencies/node-fetch/index.js +0 -6
  806. package/js/src/static_dependencies/node-fetch/request.js +0 -6
  807. package/js/src/static_dependencies/node-fetch/response.js +0 -6
  808. package/js/src/static_dependencies/node-fetch/utils/get-search.js +0 -6
  809. package/js/src/static_dependencies/node-fetch/utils/is-redirect.js +0 -6
  810. package/js/src/static_dependencies/node-fetch/utils/is.js +0 -6
  811. package/js/src/static_dependencies/node-fetch/utils/referrer.js +0 -6
  812. package/js/src/static_dependencies/proxies/agent-base/helpers.js +0 -6
  813. package/js/src/static_dependencies/proxies/agent-base/index.js +0 -6
  814. package/js/src/static_dependencies/proxies/http-proxy-agent/index.js +0 -6
  815. package/js/src/static_dependencies/proxies/https-proxy-agent/index.js +0 -6
  816. package/js/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +0 -6
  817. package/js/src/static_dependencies/qs/formats.js +0 -6
  818. package/js/src/static_dependencies/qs/index.js +0 -6
  819. package/js/src/static_dependencies/qs/parse.js +0 -6
  820. package/js/src/static_dependencies/qs/stringify.js +0 -6
  821. package/js/src/static_dependencies/qs/utils.js +0 -6
  822. package/js/src/static_dependencies/starknet/constants.js +0 -6
  823. package/js/src/static_dependencies/starknet/index.js +0 -6
  824. package/js/src/static_dependencies/starknet/types/cairoEnum.js +0 -6
  825. package/js/src/static_dependencies/starknet/types/calldata.js +0 -6
  826. package/js/src/static_dependencies/starknet/types/index.js +0 -6
  827. package/js/src/static_dependencies/starknet/types/lib/contract/abi.js +0 -6
  828. package/js/src/static_dependencies/starknet/types/lib/contract/index.js +0 -6
  829. package/js/src/static_dependencies/starknet/types/lib/contract/legacy.js +0 -6
  830. package/js/src/static_dependencies/starknet/types/lib/contract/sierra.js +0 -6
  831. package/js/src/static_dependencies/starknet/types/lib/index.js +0 -6
  832. package/js/src/static_dependencies/starknet/types/typedData.js +0 -6
  833. package/js/src/static_dependencies/starknet/utils/address.js +0 -6
  834. package/js/src/static_dependencies/starknet/utils/assert.js +0 -6
  835. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +0 -6
  836. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +0 -6
  837. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +0 -6
  838. package/js/src/static_dependencies/starknet/utils/calldata/byteArray.js +0 -6
  839. package/js/src/static_dependencies/starknet/utils/calldata/cairo.js +0 -6
  840. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +0 -6
  841. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +0 -6
  842. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +0 -6
  843. package/js/src/static_dependencies/starknet/utils/calldata/enum/index.js +0 -6
  844. package/js/src/static_dependencies/starknet/utils/calldata/formatter.js +0 -6
  845. package/js/src/static_dependencies/starknet/utils/calldata/index.js +0 -6
  846. package/js/src/static_dependencies/starknet/utils/calldata/parser/index.js +0 -6
  847. package/js/src/static_dependencies/starknet/utils/calldata/parser/interface.js +0 -6
  848. package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +0 -6
  849. package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +0 -6
  850. package/js/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +0 -6
  851. package/js/src/static_dependencies/starknet/utils/calldata/requestParser.js +0 -6
  852. package/js/src/static_dependencies/starknet/utils/calldata/responseParser.js +0 -6
  853. package/js/src/static_dependencies/starknet/utils/calldata/tuple.js +0 -6
  854. package/js/src/static_dependencies/starknet/utils/calldata/validate.js +0 -6
  855. package/js/src/static_dependencies/starknet/utils/encode.js +0 -6
  856. package/js/src/static_dependencies/starknet/utils/hash/classHash.js +0 -6
  857. package/js/src/static_dependencies/starknet/utils/hash/index.js +0 -6
  858. package/js/src/static_dependencies/starknet/utils/merkle.js +0 -6
  859. package/js/src/static_dependencies/starknet/utils/num.js +0 -6
  860. package/js/src/static_dependencies/starknet/utils/selector.js +0 -6
  861. package/js/src/static_dependencies/starknet/utils/shortString.js +0 -6
  862. package/js/src/static_dependencies/starknet/utils/starknetId.js +0 -6
  863. package/js/src/static_dependencies/starknet/utils/typedData.js +0 -6
  864. package/js/src/static_dependencies/starknet/utils/uint256.js +0 -6
  865. package/js/src/static_dependencies/starknet/utils/url.js +0 -6
  866. package/js/src/static_dependencies/watchable/src/index.js +0 -6
  867. package/js/src/static_dependencies/watchable/src/types.js +0 -6
  868. package/js/src/static_dependencies/watchable/src/unpromise.js +0 -6
  869. package/js/src/static_dependencies/zklink/zklink-sdk-web.js +0 -6
  870. package/js/src/tokocrypto.js +0 -6
  871. package/js/src/toobit.js +0 -6
  872. package/js/src/upbit.js +0 -6
  873. package/js/src/weex.js +0 -6
  874. package/js/src/whitebit.js +0 -6
  875. package/js/src/woo.js +0 -6
  876. package/js/src/woofipro.js +0 -6
  877. package/js/src/xt.js +0 -6
  878. package/js/src/zaif.js +0 -6
  879. package/js/src/zebpay.js +0 -6
  880. package/package.json +17 -11
  881. package/dist/cjs/src/abstract/coinmetro.js +0 -11
  882. package/dist/cjs/src/abstract/novadax.js +0 -11
  883. package/dist/cjs/src/ascendex.js +0 -3780
  884. package/dist/cjs/src/coinmetro.js +0 -2030
  885. package/dist/cjs/src/novadax.js +0 -1678
  886. package/dist/cjs/src/pro/ascendex.js +0 -1013
  887. package/js/src/abstract/ascendex.d.ts +0 -80
  888. package/js/src/abstract/ascendex.js +0 -11
  889. package/js/src/abstract/coinmetro.d.ts +0 -37
  890. package/js/src/abstract/coinmetro.js +0 -11
  891. package/js/src/abstract/novadax.d.ts +0 -32
  892. package/js/src/abstract/novadax.js +0 -11
  893. package/js/src/ascendex.d.ts +0 -436
  894. package/js/src/ascendex.js +0 -3779
  895. package/js/src/coinmetro.d.ts +0 -245
  896. package/js/src/coinmetro.js +0 -2029
  897. package/js/src/novadax.d.ts +0 -279
  898. package/js/src/novadax.js +0 -1677
  899. package/js/src/pro/ascendex.d.ts +0 -99
  900. package/js/src/pro/ascendex.js +0 -1012
@@ -0,0 +1,1328 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var mudrex$1 = require('./abstract/mudrex.js');
6
+ var errors = require('./base/errors.js');
7
+ var Precise = require('./base/Precise.js');
8
+
9
+ // ---------------------------------------------------------------------------
10
+ // ---------------------------------------------------------------------------
11
+ /**
12
+ * @class mudrex
13
+ * @augments Exchange
14
+ */
15
+ class mudrex extends mudrex$1["default"] {
16
+ describe() {
17
+ return this.deepExtend(super.describe(), {
18
+ 'id': 'mudrex',
19
+ 'name': 'Mudrex',
20
+ 'countries': ['IN'],
21
+ 'rateLimit': 100, // 10 req/s default
22
+ 'version': 'v1',
23
+ 'pro': true,
24
+ 'certified': false,
25
+ 'dex': false,
26
+ 'hostname': 'trade.mudrex.com',
27
+ 'has': {
28
+ 'CORS': undefined,
29
+ 'spot': false,
30
+ 'margin': false,
31
+ 'swap': true,
32
+ 'future': false,
33
+ 'option': false,
34
+ 'addMargin': true,
35
+ 'cancelOrder': true,
36
+ 'closePosition': true,
37
+ 'createMarketOrder': true,
38
+ 'createOrder': true,
39
+ 'createOrderWithTakeProfitAndStopLoss': true,
40
+ 'createReduceOnlyOrder': true,
41
+ 'editOrder': true,
42
+ 'fetchBalance': true,
43
+ 'fetchClosedOrders': true,
44
+ 'fetchFundingRate': false,
45
+ 'fetchFundingRateHistory': false,
46
+ 'fetchFundingRates': false,
47
+ 'fetchIndexOHLCV': false,
48
+ 'fetchLeverage': true,
49
+ 'fetchMarkets': true,
50
+ 'fetchMarkOHLCV': true,
51
+ 'fetchMyTrades': true,
52
+ 'fetchOHLCV': true,
53
+ 'fetchOpenInterest': false,
54
+ 'fetchOpenInterests': false,
55
+ 'fetchOpenOrders': true,
56
+ 'fetchOrder': true,
57
+ 'fetchOrderBook': false,
58
+ 'fetchOrders': true,
59
+ 'fetchPositions': true,
60
+ 'fetchPositionsHistory': true,
61
+ 'fetchTicker': true,
62
+ 'fetchTickers': true,
63
+ 'fetchTrades': false,
64
+ 'reduceMargin': true,
65
+ 'setLeverage': true,
66
+ 'transfer': true,
67
+ 'watchOHLCV': true,
68
+ 'watchTicker': true,
69
+ 'watchTickers': true,
70
+ },
71
+ 'timeframes': {
72
+ '1m': '1m',
73
+ '3m': '3t',
74
+ '5m': '5t',
75
+ '10m': '10t',
76
+ '15m': '15t',
77
+ '30m': '30t',
78
+ '1h': '1h',
79
+ '4h': '4h',
80
+ '6h': '6h',
81
+ '12h': '12h',
82
+ '1d': '1d',
83
+ '1w': '1w',
84
+ '1M': '1mth',
85
+ },
86
+ 'urls': {
87
+ 'logo': 'https://github.com/user-attachments/assets/12a65022-f416-4bf8-98eb-5b6b9b05cb6a',
88
+ 'api': {
89
+ 'public': 'https://trade.mudrex.com/fapi/v1',
90
+ 'private': 'https://trade.mudrex.com/fapi/v1',
91
+ 'market': 'https://trade.mudrex.com/fapi/v1',
92
+ },
93
+ 'www': 'https://mudrex.com',
94
+ 'doc': 'https://docs.trade.mudrex.com/docs',
95
+ 'fees': 'https://docs.trade.mudrex.com',
96
+ },
97
+ 'api': {
98
+ 'market': {
99
+ 'get': {
100
+ 'price/kline': 1,
101
+ 'price/mark-kline': 1,
102
+ },
103
+ },
104
+ 'public': {
105
+ 'get': {},
106
+ },
107
+ 'private': {
108
+ 'get': {
109
+ 'futures': 1,
110
+ 'futures/{asset_id}': 1,
111
+ 'wallet/funds': 5,
112
+ 'futures/funds': 5,
113
+ 'futures/orders': 1,
114
+ 'futures/orders/history': 1,
115
+ 'futures/orders/{order_id}': 1,
116
+ 'futures/positions': 1,
117
+ 'futures/positions/history': 1,
118
+ 'futures/fee/history': 1,
119
+ 'futures/{asset_id}/leverage': 2,
120
+ 'futures/positions/{position_id}/liq-price': 1,
121
+ },
122
+ 'post': {
123
+ 'wallet/futures/transfer': 5,
124
+ 'futures/transfers/inr': 5,
125
+ 'futures/{asset_id}/order': 2,
126
+ 'futures/positions/{position_id}/close': 2,
127
+ 'futures/positions/{position_id}/close/partial': 2,
128
+ 'futures/positions/{position_id}/reverse': 2,
129
+ 'futures/positions/{position_id}/add-margin': 2,
130
+ 'futures/positions/{position_id}/riskorder': 2,
131
+ 'futures/{asset_id}/leverage': 2,
132
+ },
133
+ 'patch': {
134
+ 'futures/orders/{order_id}': 1,
135
+ 'futures/positions/{position_id}/riskorder': 2,
136
+ },
137
+ 'delete': {
138
+ 'futures/orders/{order_id}': 2,
139
+ },
140
+ },
141
+ },
142
+ 'requiredCredentials': {
143
+ 'apiKey': false,
144
+ 'secret': true,
145
+ },
146
+ 'fees': {
147
+ 'trading': {
148
+ 'tierBased': false,
149
+ 'percentage': true,
150
+ 'taker': this.parseNumber('0.00059'),
151
+ 'maker': this.parseNumber('0.00023'),
152
+ },
153
+ },
154
+ 'options': {
155
+ 'defaultType': 'swap',
156
+ 'broker': '42ce8902-8585-448c-a1e8-0371a6ca7ca8',
157
+ },
158
+ 'exceptions': {
159
+ 'exact': {
160
+ '400 Invalid trade currency': errors.BadRequest,
161
+ },
162
+ 'broad': {
163
+ 'Invalid trade currency': errors.BadRequest,
164
+ 'Params error': errors.BadRequest,
165
+ 'invalid trigger type': errors.BadRequest,
166
+ 'invalid order type': errors.BadRequest,
167
+ 'order price out of permissible range': errors.BadRequest,
168
+ 'quantity not a multiple of the quantity step': errors.BadRequest,
169
+ 'leverage out of permissible range': errors.BadRequest,
170
+ 'insufficient balance': errors.InsufficientFunds,
171
+ 'asset not found': errors.BadSymbol,
172
+ 'leverage not found': errors.OrderNotFound,
173
+ 'order not found': errors.OrderNotFound,
174
+ 'Rate limit exceeded': errors.RateLimitExceeded,
175
+ },
176
+ },
177
+ });
178
+ }
179
+ sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
180
+ const apiUrls = this.safeDict(this.urls, 'api', {});
181
+ const base = this.safeString(apiUrls, api);
182
+ if (base === undefined) {
183
+ throw new errors.ExchangeError(this.id + ' unknown API namespace: ' + api);
184
+ }
185
+ let url = base + '/' + this.implodeParams(path, params);
186
+ let query = this.omit(params, this.extractParams(path));
187
+ headers = (headers !== undefined) ? this.extend({}, headers) : {};
188
+ const brokerId = this.safeString(this.options, 'broker');
189
+ if (brokerId !== undefined) {
190
+ headers['Partner-Id'] = brokerId;
191
+ }
192
+ const methodUpper = method.toUpperCase();
193
+ if (api === 'private') {
194
+ this.checkRequiredCredentials();
195
+ headers['X-Authentication'] = this.secret;
196
+ if (methodUpper === 'POST' || methodUpper === 'PATCH' || methodUpper === 'DELETE') {
197
+ headers['Content-Type'] = 'application/json';
198
+ // is_symbol is a query-string flag even on write requests
199
+ const isSymbol = this.safeString(query, 'is_symbol');
200
+ if (isSymbol !== undefined) {
201
+ query = this.omit(query, 'is_symbol');
202
+ url += '?' + this.urlencode({ 'is_symbol': isSymbol });
203
+ }
204
+ if ((methodUpper === 'DELETE') && this.isEmpty(query)) {
205
+ return { 'url': url, 'method': methodUpper, 'body': undefined, 'headers': headers };
206
+ }
207
+ const bodyStr = this.json(query);
208
+ return { 'url': url, 'method': methodUpper, 'body': bodyStr, 'headers': headers };
209
+ }
210
+ }
211
+ if (Object.keys(query).length) {
212
+ url += '?' + this.urlencode(query);
213
+ }
214
+ return { 'url': url, 'method': methodUpper, 'body': undefined, 'headers': headers };
215
+ }
216
+ handleErrors(code, reason, url, method, headers, body, response, requestHeaders, requestBody) {
217
+ if (response === undefined || typeof response !== 'object') {
218
+ return undefined;
219
+ }
220
+ const success = this.safeBool(response, 'success', true);
221
+ if (!success) {
222
+ const errors$1 = this.safeList(response, 'errors', []);
223
+ const first = this.safeDict(errors$1, 0, {});
224
+ const text = this.safeString(first, 'text', this.json(response));
225
+ const errCode = this.safeString(first, 'code');
226
+ this.throwExactlyMatchedException(this.exceptions['exact'], text, this.id + ' ' + text);
227
+ this.throwExactlyMatchedException(this.exceptions['exact'], errCode, this.id + ' ' + text);
228
+ this.throwBroadlyMatchedException(this.exceptions['broad'], text, this.id + ' ' + text);
229
+ const msg = this.id + ' ' + text;
230
+ const low = text.toLowerCase();
231
+ if (code === 401 || low.indexOf('auth') >= 0) {
232
+ throw new errors.AuthenticationError(msg);
233
+ }
234
+ if (code === 429 || low.indexOf('rate') >= 0) {
235
+ throw new errors.RateLimitExceeded(msg);
236
+ }
237
+ if (low.indexOf('insufficient') >= 0) {
238
+ throw new errors.InsufficientFunds(msg);
239
+ }
240
+ if (code === 400) {
241
+ throw new errors.BadRequest(msg);
242
+ }
243
+ throw new errors.ExchangeError(msg);
244
+ }
245
+ return undefined;
246
+ }
247
+ parseOHLCV(ohlcv, market = undefined) {
248
+ //
249
+ // [ 1782984660, 60681, 60797.6, 60671.8, 60693.3, 275.741 ]
250
+ // [ timestampInSeconds, open, high, low, close, volume ]
251
+ //
252
+ return [
253
+ this.safeTimestamp(ohlcv, 0),
254
+ this.safeNumber(ohlcv, 1),
255
+ this.safeNumber(ohlcv, 2),
256
+ this.safeNumber(ohlcv, 3),
257
+ this.safeNumber(ohlcv, 4),
258
+ this.safeNumber(ohlcv, 5),
259
+ ];
260
+ }
261
+ /**
262
+ * @method
263
+ * @name mudrex#fetchOHLCV
264
+ * @description fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
265
+ * @see https://docs.trade.mudrex.com/docs/historical-kline
266
+ * @param {string} symbol unified symbol of the market to fetch OHLCV data for
267
+ * @param {string} timeframe the length of time each candle represents
268
+ * @param {int} [since] timestamp in ms of the earliest candle to fetch
269
+ * @param {int} [limit] the maximum amount of candles to fetch
270
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
271
+ * @param {int} [params.until] timestamp in ms of the latest candle to fetch
272
+ * @param {string} [params.price] "mark" to fetch mark price candles
273
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
274
+ */
275
+ async fetchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
276
+ await this.loadMarkets();
277
+ const market = this.market(symbol);
278
+ const priceType = this.safeString(params, 'price');
279
+ params = this.omit(params, 'price');
280
+ // the endpoint expects the pair in "BASE/QUOTE" format (comma-separated for multiple)
281
+ const assetPair = market['baseId'] + '/' + market['quoteId'];
282
+ const request = {
283
+ 'assets': assetPair,
284
+ 'aggregation': this.safeString(this.timeframes, timeframe, timeframe),
285
+ };
286
+ // the endpoint requires an explicit time window (in seconds)
287
+ const duration = this.parseTimeframe(timeframe);
288
+ let requestLimit = limit;
289
+ if (requestLimit === undefined) {
290
+ requestLimit = 500;
291
+ }
292
+ const now = this.seconds();
293
+ let startTime = undefined;
294
+ if (since !== undefined) {
295
+ startTime = this.parseToInt(since / 1000);
296
+ }
297
+ else {
298
+ startTime = now - duration * requestLimit;
299
+ }
300
+ let endTime = startTime + duration * requestLimit;
301
+ const until = this.safeInteger(params, 'until');
302
+ if (until !== undefined) {
303
+ params = this.omit(params, 'until');
304
+ endTime = this.parseToInt(until / 1000);
305
+ }
306
+ else if (endTime > now) {
307
+ endTime = now;
308
+ }
309
+ request['start_time'] = startTime;
310
+ request['end_time'] = endTime;
311
+ let response = undefined;
312
+ if (priceType === 'mark') {
313
+ response = await this.marketGetPriceMarkKline(this.extend(request, params));
314
+ }
315
+ else {
316
+ response = await this.marketGetPriceKline(this.extend(request, params));
317
+ }
318
+ //
319
+ // {
320
+ // "success": true,
321
+ // "data": {
322
+ // "asset_ticks": {
323
+ // "btc/usdt": [ [ 1782984660, 60681, 60797.6, 60671.8, 60693.3, 275.741 ] ]
324
+ // }
325
+ // }
326
+ // }
327
+ //
328
+ const data = this.safeDict(response, 'data', {});
329
+ const assetTicks = this.safeDict(data, 'asset_ticks', {});
330
+ const ohlcvs = this.safeList(assetTicks, assetPair.toLowerCase(), []);
331
+ return this.parseOHLCVs(ohlcvs, market, timeframe, since, limit);
332
+ }
333
+ /**
334
+ * @method
335
+ * @name mudrex#fetchMarkOHLCV
336
+ * @description fetches historical mark price candlestick data containing the open, high, low, and close price of a market
337
+ * @see https://docs.trade.mudrex.com/docs
338
+ * @param {string} symbol unified symbol of the market to fetch OHLCV data for
339
+ * @param {string} timeframe the length of time each candle represents
340
+ * @param {int} [since] timestamp in ms of the earliest candle to fetch
341
+ * @param {int} [limit] the maximum amount of candles to fetch
342
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
343
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
344
+ */
345
+ async fetchMarkOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
346
+ return await this.fetchOHLCV(symbol, timeframe, since, limit, this.extend(params, { 'price': 'mark' }));
347
+ }
348
+ /**
349
+ * @method
350
+ * @name mudrex#fetchTicker
351
+ * @description fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
352
+ * @see https://docs.trade.mudrex.com/docs
353
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
354
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
355
+ * @returns {object} a [ticker structure](https://docs.ccxt.com/#/?id=ticker-structure)
356
+ */
357
+ async fetchTicker(symbol, params = {}) {
358
+ await this.loadMarkets();
359
+ const market = this.market(symbol);
360
+ const request = {
361
+ 'asset_id': market['id'],
362
+ 'is_symbol': 1,
363
+ };
364
+ const response = await this.privateGetFuturesAssetId(this.extend(request, params));
365
+ const data = this.safeDict(response, 'data', {});
366
+ return this.parseTicker(data, market);
367
+ }
368
+ /**
369
+ * @method
370
+ * @name mudrex#fetchTickers
371
+ * @description fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
372
+ * @see https://docs.trade.mudrex.com/docs
373
+ * @param {string[]} [symbols] unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
374
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
375
+ * @returns {object} a dictionary of [ticker structures](https://docs.ccxt.com/#/?id=ticker-structure)
376
+ */
377
+ async fetchTickers(symbols = undefined, params = {}) {
378
+ await this.loadMarkets();
379
+ const request = {};
380
+ const response = await this.privateGetFutures(this.extend(request, params));
381
+ const data = this.safeValue(response, 'data', []);
382
+ const rows = Array.isArray(data) ? data : this.safeList(data, 'items', []);
383
+ const resultTickers = {};
384
+ for (let i = 0; i < rows.length; i++) {
385
+ const t = rows[i];
386
+ const sym = this.safeString(t, 'symbol');
387
+ if (sym === undefined) {
388
+ continue;
389
+ }
390
+ const m = this.safeMarket(sym);
391
+ const symbol = m['symbol'];
392
+ if (symbols !== undefined && !this.inArray(symbol, symbols)) {
393
+ continue;
394
+ }
395
+ resultTickers[symbol] = this.parseTicker(t, m);
396
+ }
397
+ return this.filterByArrayTickers(resultTickers, 'symbol', symbols);
398
+ }
399
+ parseTicker(ticker, market = undefined) {
400
+ const ms = this.safeString(ticker, 'symbol');
401
+ market = this.safeMarket(ms, market);
402
+ const symbol = market['symbol'];
403
+ const ts = this.milliseconds();
404
+ const pct = this.safeNumber(ticker, 'change_perc');
405
+ return this.safeTicker({
406
+ 'symbol': symbol,
407
+ 'timestamp': ts,
408
+ 'datetime': this.iso8601(ts),
409
+ 'high': undefined,
410
+ 'low': undefined,
411
+ 'bid': undefined,
412
+ 'bidVolume': undefined,
413
+ 'ask': undefined,
414
+ 'askVolume': undefined,
415
+ 'vwap': undefined,
416
+ 'open': this.safeNumber(ticker, 'last_day_price'),
417
+ 'close': this.safeNumber(ticker, 'price'),
418
+ 'last': this.safeNumber(ticker, 'price'),
419
+ 'previousClose': undefined,
420
+ 'change': undefined,
421
+ 'percentage': pct,
422
+ 'average': undefined,
423
+ 'baseVolume': undefined,
424
+ 'quoteVolume': this.safeNumber(ticker, 'volume'),
425
+ 'info': ticker,
426
+ }, market);
427
+ }
428
+ /**
429
+ * @method
430
+ * @name mudrex#fetchMarkets
431
+ * @description retrieves data on all markets for the exchange
432
+ * @see https://docs.trade.mudrex.com/docs
433
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
434
+ * @returns {object[]} an array of objects representing market data
435
+ */
436
+ async fetchMarkets(params = {}) {
437
+ const aggregated = [];
438
+ let offset = 0;
439
+ const pageLimit = 100;
440
+ let paging = true;
441
+ while (paging === true) {
442
+ const q = this.extend({ 'limit': pageLimit, 'offset': offset }, params);
443
+ const response = await this.privateGetFutures(q);
444
+ const data = this.safeValue(response, 'data', []);
445
+ let items = [];
446
+ if (typeof data === 'object' && !Array.isArray(data)) {
447
+ items = this.safeList(data, 'items', []);
448
+ if (!items.length) {
449
+ items = this.safeList(data, 'results', []);
450
+ }
451
+ if (!items.length && ('symbol' in data)) {
452
+ items = [data];
453
+ }
454
+ }
455
+ else {
456
+ items = this.toArray(data);
457
+ }
458
+ if (!items.length) {
459
+ paging = false;
460
+ break;
461
+ }
462
+ for (let i = 0; i < items.length; i++) {
463
+ aggregated.push(items[i]);
464
+ }
465
+ if (items.length < pageLimit) {
466
+ paging = false;
467
+ }
468
+ else {
469
+ offset += pageLimit;
470
+ }
471
+ }
472
+ const result = [];
473
+ for (let i = 0; i < aggregated.length; i++) {
474
+ result.push(this.parseMarket(aggregated[i]));
475
+ }
476
+ return result;
477
+ }
478
+ parseMarket(asset) {
479
+ const ms = this.safeString(asset, 'symbol');
480
+ let base = ms;
481
+ if (ms !== undefined && ms.endsWith('USDT')) {
482
+ base = ms.slice(0, -4);
483
+ }
484
+ const quote = 'USDT';
485
+ const settle = 'USDT';
486
+ let symbol = undefined;
487
+ if (base !== undefined) {
488
+ symbol = base + '/' + quote + ':' + settle;
489
+ }
490
+ const priceStep = this.safeString(asset, 'price_step', '0.01');
491
+ const qtyStep = this.safeString(asset, 'quantity_step', '0.001');
492
+ return {
493
+ 'id': ms,
494
+ 'lowercaseId': undefined,
495
+ 'symbol': symbol,
496
+ 'base': base,
497
+ 'quote': quote,
498
+ 'settle': settle,
499
+ 'baseId': base,
500
+ 'quoteId': 'USDT',
501
+ 'settleId': 'USDT',
502
+ 'type': 'swap',
503
+ 'spot': false,
504
+ 'margin': false,
505
+ 'swap': true,
506
+ 'future': false,
507
+ 'option': false,
508
+ 'active': true,
509
+ 'contract': true,
510
+ 'linear': true,
511
+ 'inverse': false,
512
+ 'taker': this.safeNumber(this.fees['trading'], 'taker'),
513
+ 'maker': this.safeNumber(this.fees['trading'], 'maker'),
514
+ 'contractSize': this.safeNumber(asset, 'contract_size', 1),
515
+ 'expiry': undefined,
516
+ 'expiryDatetime': undefined,
517
+ 'strike': undefined,
518
+ 'optionType': undefined,
519
+ 'precision': {
520
+ 'amount': this.parseNumber(qtyStep),
521
+ 'price': this.parseNumber(priceStep),
522
+ },
523
+ 'limits': {
524
+ 'amount': {
525
+ 'min': this.safeNumber(asset, 'min_contract'),
526
+ 'max': this.safeNumber(asset, 'max_contract'),
527
+ },
528
+ 'price': {
529
+ 'min': this.safeNumber(asset, 'min_price'),
530
+ 'max': this.safeNumber(asset, 'max_price'),
531
+ },
532
+ 'cost': {
533
+ 'min': this.safeNumber(asset, 'min_notional_value'),
534
+ 'max': undefined,
535
+ },
536
+ },
537
+ 'info': asset,
538
+ 'created': undefined,
539
+ };
540
+ }
541
+ /**
542
+ * @method
543
+ * @name mudrex#fetchBalance
544
+ * @description query for balance and get the amount of funds available for trading or funds locked in orders
545
+ * @see https://docs.trade.mudrex.com/docs
546
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
547
+ * @param {string} [params.type] 'swap' (default) or 'spot' - which wallet balance to fetch
548
+ * @param {string} [params.trade_currency] the settlement currency to query the balance for
549
+ * @returns {object} a [balance structure](https://docs.ccxt.com/#/?id=balance-structure)
550
+ */
551
+ async fetchBalance(params = {}) {
552
+ await this.loadMarkets();
553
+ let type = undefined;
554
+ [type, params] = this.handleMarketTypeAndParams('fetchBalance', undefined, params, 'swap');
555
+ const requested = this.safeStringN(params, ['trade_currency', 'tradeCurrency', 'currency']);
556
+ params = this.omit(params, ['trade_currency', 'tradeCurrency', 'currency']);
557
+ const request = {};
558
+ let response = undefined;
559
+ if (type === 'spot') {
560
+ if (requested !== undefined) {
561
+ request['currency'] = requested;
562
+ }
563
+ response = await this.privateGetWalletFunds(this.extend(request, params));
564
+ }
565
+ else {
566
+ if (requested !== undefined) {
567
+ request['trade_currency'] = requested;
568
+ }
569
+ response = await this.privateGetFuturesFunds(this.extend(request, params));
570
+ }
571
+ let currency = requested;
572
+ if (currency === undefined) {
573
+ currency = 'USDT';
574
+ }
575
+ response['currency'] = currency;
576
+ return this.parseBalance(response);
577
+ }
578
+ parseBalance(response) {
579
+ const data = this.safeDict(response, 'data', {});
580
+ const currency = this.safeString(response, 'currency', 'USDT');
581
+ const timestamp = this.milliseconds();
582
+ const result = {
583
+ 'info': response,
584
+ 'timestamp': timestamp,
585
+ 'datetime': this.iso8601(timestamp),
586
+ };
587
+ const account = this.account();
588
+ const futuresBalance = this.safeString(data, 'balance');
589
+ if (futuresBalance !== undefined) {
590
+ // futures wallet: balance is the free/available margin, locked_amount is used, safeBalance derives total
591
+ account['free'] = futuresBalance;
592
+ account['used'] = this.safeString(data, 'locked_amount');
593
+ }
594
+ else {
595
+ // spot wallet: total is the total, withdrawable is free, safeBalance derives used
596
+ account['total'] = this.safeString(data, 'total');
597
+ account['free'] = this.safeString(data, 'withdrawable');
598
+ }
599
+ result[currency] = account;
600
+ return this.safeBalance(result);
601
+ }
602
+ /**
603
+ * @method
604
+ * @name mudrex#fetchLeverage
605
+ * @description fetch the set leverage for a market
606
+ * @see https://docs.trade.mudrex.com/docs
607
+ * @param {string} symbol unified market symbol
608
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
609
+ * @returns {object} a [leverage structure](https://docs.ccxt.com/#/?id=leverage-structure)
610
+ */
611
+ async fetchLeverage(symbol, params = {}) {
612
+ await this.loadMarkets();
613
+ const market = this.market(symbol);
614
+ const request = {
615
+ 'asset_id': market['id'],
616
+ 'is_symbol': 1,
617
+ };
618
+ const response = await this.privateGetFuturesAssetIdLeverage(this.extend(request, params));
619
+ const data = this.safeDict(response, 'data', {});
620
+ return {
621
+ 'info': response,
622
+ 'symbol': symbol,
623
+ 'marginMode': this.safeStringLower(data, 'margin_type'),
624
+ 'longLeverage': this.safeNumber(data, 'leverage'),
625
+ 'shortLeverage': this.safeNumber(data, 'leverage'),
626
+ };
627
+ }
628
+ /**
629
+ * @method
630
+ * @name mudrex#setLeverage
631
+ * @description set the level of leverage for a market
632
+ * @see https://docs.trade.mudrex.com/docs
633
+ * @param {float} leverage the rate of leverage
634
+ * @param {string} symbol unified market symbol
635
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
636
+ * @param {string} [params.marginType] 'ISOLATED' (default) or 'CROSSED'
637
+ * @returns {object} response from the exchange
638
+ */
639
+ async setLeverage(leverage, symbol = undefined, params = {}) {
640
+ if (symbol === undefined) {
641
+ throw new errors.ArgumentsRequired(this.id + ' setLeverage() requires a symbol');
642
+ }
643
+ await this.loadMarkets();
644
+ const market = this.market(symbol);
645
+ const marginType = this.safeString(params, 'marginType', 'ISOLATED');
646
+ const request = {
647
+ 'asset_id': market['id'],
648
+ 'is_symbol': 1,
649
+ 'margin_type': marginType,
650
+ 'leverage': leverage,
651
+ };
652
+ params = this.omit(params, ['marginType']);
653
+ const response = await this.privatePostFuturesAssetIdLeverage(this.extend(request, params));
654
+ return response;
655
+ }
656
+ /**
657
+ * @method
658
+ * @name mudrex#createOrder
659
+ * @description create a trade order
660
+ * @see https://docs.trade.mudrex.com/docs
661
+ * @param {string} symbol unified market symbol
662
+ * @param {string} type 'market' or 'limit'
663
+ * @param {string} side 'buy' or 'sell'
664
+ * @param {float} amount how much you want to trade in units of the base currency
665
+ * @param {float} [price] the price to fulfill the order, in units of the quote currency (also required for market orders on this exchange)
666
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
667
+ * @param {int} [params.leverage] leverage for the order, required if setLeverage() was not called beforehand
668
+ * @param {bool} [params.reduceOnly] true if the order is reduce only
669
+ * @param {object} [params.takeProfit] *takeProfit object in params* containing the trigger price of the take-profit order attached to this order
670
+ * @param {float} [params.takeProfit.triggerPrice] take profit trigger price
671
+ * @param {object} [params.stopLoss] *stopLoss object in params* containing the trigger price of the stop-loss order attached to this order
672
+ * @param {float} [params.stopLoss.triggerPrice] stop loss trigger price
673
+ * @param {float} [params.takeProfitPrice] the trigger price for a standalone take-profit order on an existing position (requires params.positionId)
674
+ * @param {float} [params.stopLossPrice] the trigger price for a standalone stop-loss order on an existing position (requires params.positionId)
675
+ * @param {string} [params.positionId] the id of the position the standalone stopLossPrice/takeProfitPrice order is attached to
676
+ * @param {string} [params.trade_currency] the settlement currency for the order
677
+ * @returns {object} an [order structure](https://docs.ccxt.com/#/?id=order-structure)
678
+ */
679
+ async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
680
+ await this.loadMarkets();
681
+ const market = this.market(symbol);
682
+ // standalone stop-loss / take-profit orders (stopLossPrice/takeProfitPrice) are attached to
683
+ // an existing position through the riskorder endpoint, so a positionId is required
684
+ const stopLossPrice = this.safeString(params, 'stopLossPrice');
685
+ const takeProfitPrice = this.safeString(params, 'takeProfitPrice');
686
+ if ((stopLossPrice !== undefined) || (takeProfitPrice !== undefined)) {
687
+ const positionId = this.safeString2(params, 'positionId', 'position_id');
688
+ if (positionId === undefined) {
689
+ throw new errors.ArgumentsRequired(this.id + ' createOrder() requires a positionId parameter to place a stopLossPrice or takeProfitPrice order');
690
+ }
691
+ params = this.omit(params, ['stopLossPrice', 'takeProfitPrice', 'positionId', 'position_id']);
692
+ const riskRequest = {
693
+ 'position_id': positionId,
694
+ };
695
+ if (takeProfitPrice !== undefined) {
696
+ riskRequest['is_takeprofit'] = true;
697
+ riskRequest['takeprofit_price'] = this.priceToPrecision(symbol, takeProfitPrice);
698
+ }
699
+ if (stopLossPrice !== undefined) {
700
+ riskRequest['is_stoploss'] = true;
701
+ riskRequest['stoploss_price'] = this.priceToPrecision(symbol, stopLossPrice);
702
+ }
703
+ const riskResponse = await this.privatePostFuturesPositionsPositionIdRiskorder(this.extend(riskRequest, params));
704
+ const riskData = this.safeDict(riskResponse, 'data', riskResponse);
705
+ return this.parseOrder(riskData, market);
706
+ }
707
+ const lev = this.safeInteger(params, 'leverage', 1);
708
+ if ((type === 'market') && (price === undefined)) {
709
+ throw new errors.ArgumentsRequired(this.id + ' createOrder() requires a price argument for market orders');
710
+ }
711
+ const request = {
712
+ 'asset_id': market['id'],
713
+ 'is_symbol': 1,
714
+ 'leverage': this.numberToString(lev),
715
+ 'quantity': this.amountToPrecision(symbol, amount),
716
+ 'order_price': this.priceToPrecision(symbol, price),
717
+ 'order_type': (side === 'buy') ? 'LONG' : 'SHORT',
718
+ 'trigger_type': (type === 'market') ? 'MARKET' : 'LIMIT',
719
+ 'reduce_only': this.safeBool(params, 'reduceOnly', false),
720
+ };
721
+ // mudrex only supports take-profit / stop-loss orders attached to the position-opening order
722
+ const takeProfit = this.safeDict(params, 'takeProfit');
723
+ const stopLoss = this.safeDict(params, 'stopLoss');
724
+ if (takeProfit !== undefined) {
725
+ request['is_takeprofit'] = true;
726
+ request['takeprofit_price'] = this.priceToPrecision(symbol, this.safeStringN(takeProfit, ['triggerPrice', 'stopPrice', 'price']));
727
+ }
728
+ if (stopLoss !== undefined) {
729
+ request['is_stoploss'] = true;
730
+ request['stoploss_price'] = this.priceToPrecision(symbol, this.safeStringN(stopLoss, ['triggerPrice', 'stopPrice', 'price']));
731
+ }
732
+ params = this.omit(params, ['leverage', 'reduceOnly', 'takeProfit', 'stopLoss']);
733
+ const response = await this.privatePostFuturesAssetIdOrder(this.extend(request, params));
734
+ const data = this.safeDict(response, 'data', response);
735
+ // the create response omits the order/trigger type, so restore them from the request
736
+ data['order_type'] = request['order_type'];
737
+ data['trigger_type'] = request['trigger_type'];
738
+ return this.parseOrder(data, market);
739
+ }
740
+ /**
741
+ * @method
742
+ * @name mudrex#editOrder
743
+ * @description edit a trade order
744
+ * @see https://docs.trade.mudrex.com/docs
745
+ * @param {string} id order id
746
+ * @param {string} symbol unified symbol of the market to edit an order in
747
+ * @param {string} type 'market' or 'limit'
748
+ * @param {string} side 'buy' or 'sell'
749
+ * @param {float} [amount] how much of the currency you want to trade in units of the base currency
750
+ * @param {float} [price] the price at which the order is to be fulfilled, in units of the quote currency
751
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
752
+ * @returns {object} an [order structure](https://docs.ccxt.com/#/?id=order-structure)
753
+ */
754
+ async editOrder(id, symbol, type, side, amount = undefined, price = undefined, params = {}) {
755
+ await this.loadMarkets();
756
+ let market = undefined;
757
+ if (symbol !== undefined) {
758
+ market = this.market(symbol);
759
+ }
760
+ const request = {
761
+ 'order_id': id,
762
+ };
763
+ if (amount !== undefined) {
764
+ request['quantity'] = this.amountToPrecision(symbol, amount);
765
+ }
766
+ if (price !== undefined) {
767
+ request['order_price'] = this.priceToPrecision(symbol, price);
768
+ }
769
+ const response = await this.privatePatchFuturesOrdersOrderId(this.extend(request, params));
770
+ const data = this.safeDict(response, 'data', response);
771
+ return this.parseOrder(data, market);
772
+ }
773
+ parseOrderStatus(status) {
774
+ const statuses = {
775
+ 'open': 'open',
776
+ 'created': 'open',
777
+ 'new': 'open',
778
+ 'pending': 'open',
779
+ 'partially_filled': 'open',
780
+ 'filled': 'closed',
781
+ 'completed': 'closed',
782
+ 'cancelled': 'canceled',
783
+ 'canceled': 'canceled',
784
+ 'rejected': 'rejected',
785
+ 'expired': 'expired',
786
+ };
787
+ return this.safeString(statuses, status, status);
788
+ }
789
+ parseOrder(order, market = undefined) {
790
+ const oms = this.safeString(order, 'symbol');
791
+ market = this.safeMarket(oms, market);
792
+ const oid = this.safeString2(order, 'order_id', 'id');
793
+ const rawSide = this.safeStringUpper(order, 'order_type');
794
+ let side = undefined;
795
+ if (rawSide === 'LONG') {
796
+ side = 'buy';
797
+ }
798
+ else if (rawSide === 'SHORT') {
799
+ side = 'sell';
800
+ }
801
+ const trig = this.safeStringUpper(order, 'trigger_type');
802
+ let typ = undefined;
803
+ if (trig === 'MARKET') {
804
+ typ = 'market';
805
+ }
806
+ else if (trig === 'LIMIT') {
807
+ typ = 'limit';
808
+ }
809
+ let ts = this.parse8601(this.safeString(order, 'created_at'));
810
+ if (ts === undefined) {
811
+ ts = this.milliseconds();
812
+ }
813
+ const status = this.parseOrderStatus(this.safeStringLower(order, 'status'));
814
+ const sym = market['symbol'];
815
+ return this.safeOrder({
816
+ 'info': order,
817
+ 'id': oid,
818
+ 'clientOrderId': undefined,
819
+ 'timestamp': ts,
820
+ 'datetime': this.iso8601(ts),
821
+ 'lastTradeTimestamp': undefined,
822
+ 'symbol': sym,
823
+ 'type': typ,
824
+ 'timeInForce': undefined,
825
+ 'postOnly': undefined,
826
+ 'side': side,
827
+ 'price': this.safeNumber2(order, 'price', 'order_price'),
828
+ 'stopPrice': undefined,
829
+ 'triggerPrice': undefined,
830
+ 'amount': this.safeNumber2(order, 'quantity', 'amount'),
831
+ 'cost': undefined,
832
+ 'average': undefined,
833
+ 'filled': undefined,
834
+ 'remaining': undefined,
835
+ 'status': status,
836
+ 'fee': undefined,
837
+ 'trades': [],
838
+ 'fees': [],
839
+ 'lastUpdateTimestamp': undefined,
840
+ 'reduceOnly': this.safeBool(order, 'reduce_only'),
841
+ }, market);
842
+ }
843
+ /**
844
+ * @method
845
+ * @name mudrex#cancelOrder
846
+ * @description cancels an open order
847
+ * @see https://docs.trade.mudrex.com/docs
848
+ * @param {string} id order id
849
+ * @param {string} [symbol] unified symbol of the market the order was made in
850
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
851
+ * @returns {object} An [order structure](https://docs.ccxt.com/#/?id=order-structure)
852
+ */
853
+ async cancelOrder(id, symbol = undefined, params = {}) {
854
+ await this.loadMarkets();
855
+ let market = undefined;
856
+ if (symbol !== undefined) {
857
+ market = this.market(symbol);
858
+ }
859
+ const request = {
860
+ 'order_id': id,
861
+ };
862
+ const response = await this.privateDeleteFuturesOrdersOrderId(this.extend(request, params));
863
+ const data = this.safeDict(response, 'data', response);
864
+ return this.parseOrder(data, market);
865
+ }
866
+ /**
867
+ * @method
868
+ * @name mudrex#fetchOrder
869
+ * @description fetches information on an order made by the user
870
+ * @see https://docs.trade.mudrex.com/docs
871
+ * @param {string} id the order id
872
+ * @param {string} [symbol] unified symbol of the market the order was made in
873
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
874
+ * @returns {object} An [order structure](https://docs.ccxt.com/#/?id=order-structure)
875
+ */
876
+ async fetchOrder(id, symbol = undefined, params = {}) {
877
+ await this.loadMarkets();
878
+ let market = undefined;
879
+ if (symbol !== undefined) {
880
+ market = this.market(symbol);
881
+ }
882
+ const request = {
883
+ 'order_id': id,
884
+ };
885
+ const response = await this.privateGetFuturesOrdersOrderId(this.extend(request, params));
886
+ const data = this.safeDict(response, 'data', response);
887
+ return this.parseOrder(data, market);
888
+ }
889
+ /**
890
+ * @method
891
+ * @name mudrex#fetchOrdersByState
892
+ * @ignore
893
+ * @description fetches a list of orders filtered by their state
894
+ * @param {string} state the state of the orders to fetch
895
+ * @param {string} [symbol] unified market symbol
896
+ * @param {int} [since] the earliest time in ms to fetch orders for
897
+ * @param {int} [limit] the maximum number of order structures to retrieve
898
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
899
+ * @returns {Order[]} a list of [order structures](https://docs.ccxt.com/#/?id=order-structure)
900
+ */
901
+ async fetchOrdersByState(state, symbol = undefined, since = undefined, limit = undefined, params = {}) {
902
+ await this.loadMarkets();
903
+ const q = {};
904
+ if (limit !== undefined) {
905
+ q['limit'] = limit;
906
+ }
907
+ const request = this.extend(q, params);
908
+ let response = undefined;
909
+ if (state === 'closed') {
910
+ response = await this.privateGetFuturesOrdersHistory(request);
911
+ }
912
+ else {
913
+ response = await this.privateGetFuturesOrders(request);
914
+ }
915
+ const data = this.safeValue(response, 'data', []);
916
+ const rows = this.toArray(data);
917
+ let market = undefined;
918
+ if (symbol !== undefined) {
919
+ market = this.market(symbol);
920
+ }
921
+ const orders = [];
922
+ for (let i = 0; i < rows.length; i++) {
923
+ orders.push(this.parseOrder(rows[i], market));
924
+ }
925
+ return this.filterBySymbolSinceLimit(orders, symbol, since, limit);
926
+ }
927
+ /**
928
+ * @method
929
+ * @name mudrex#fetchOrders
930
+ * @description fetches information on multiple orders made by the user
931
+ * @see https://docs.trade.mudrex.com/docs
932
+ * @param {string} [symbol] unified market symbol of the market orders were made in
933
+ * @param {int} [since] the earliest time in ms to fetch orders for
934
+ * @param {int} [limit] the maximum number of order structures to retrieve
935
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
936
+ * @returns {Order[]} a list of [order structures](https://docs.ccxt.com/#/?id=order-structure)
937
+ */
938
+ async fetchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
939
+ return await this.fetchOrdersByState('closed', symbol, since, limit, params);
940
+ }
941
+ /**
942
+ * @method
943
+ * @name mudrex#fetchOpenOrders
944
+ * @description fetch all unfilled currently open orders
945
+ * @see https://docs.trade.mudrex.com/docs
946
+ * @param {string} [symbol] unified market symbol
947
+ * @param {int} [since] the earliest time in ms to fetch open orders for
948
+ * @param {int} [limit] the maximum number of open order structures to retrieve
949
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
950
+ * @returns {Order[]} a list of [order structures](https://docs.ccxt.com/#/?id=order-structure)
951
+ */
952
+ async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
953
+ return await this.fetchOrdersByState('open', symbol, since, limit, params);
954
+ }
955
+ /**
956
+ * @method
957
+ * @name mudrex#fetchClosedOrders
958
+ * @description fetches information on multiple closed orders made by the user
959
+ * @see https://docs.trade.mudrex.com/docs
960
+ * @param {string} [symbol] unified market symbol of the market orders were made in
961
+ * @param {int} [since] the earliest time in ms to fetch orders for
962
+ * @param {int} [limit] the maximum number of order structures to retrieve
963
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
964
+ * @returns {Order[]} a list of [order structures](https://docs.ccxt.com/#/?id=order-structure)
965
+ */
966
+ async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
967
+ return await this.fetchOrdersByState('closed', symbol, since, limit, params);
968
+ }
969
+ /**
970
+ * @method
971
+ * @name mudrex#fetchPositions
972
+ * @description fetch all open positions
973
+ * @see https://docs.trade.mudrex.com/docs
974
+ * @param {string[]} [symbols] list of unified market symbols
975
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
976
+ * @param {string} [params.trade_currency] the settlement currency to query positions for
977
+ * @returns {object[]} a list of [position structures](https://docs.ccxt.com/#/?id=position-structure)
978
+ */
979
+ async fetchPositions(symbols = undefined, params = {}) {
980
+ await this.loadMarkets();
981
+ const q = {};
982
+ const response = await this.privateGetFuturesPositions(this.extend(q, params));
983
+ const data = this.safeValue(response, 'data', []);
984
+ if (data === undefined) {
985
+ return [];
986
+ }
987
+ const rows = this.toArray(data);
988
+ const outPos = [];
989
+ for (let i = 0; i < rows.length; i++) {
990
+ const p = rows[i];
991
+ const symRaw = this.safeString(p, 'symbol');
992
+ const m = this.safeMarket(symRaw);
993
+ const pos = this.parsePosition(p, m);
994
+ outPos.push(pos);
995
+ }
996
+ return this.filterByArrayPositions(outPos, 'symbol', symbols, false);
997
+ }
998
+ /**
999
+ * @method
1000
+ * @name mudrex#fetchPositionsHistory
1001
+ * @description fetches the history of closed positions
1002
+ * @see https://docs.trade.mudrex.com/docs/get-position-history
1003
+ * @param {string[]} [symbols] a list of unified market symbols
1004
+ * @param {int} [since] the earliest time in ms to fetch positions for
1005
+ * @param {int} [limit] the maximum number of position structures to retrieve
1006
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1007
+ * @param {string} [params.trade_currency] the settlement currency to filter positions by
1008
+ * @returns {object[]} a list of [position structures](https://docs.ccxt.com/#/?id=position-structure)
1009
+ */
1010
+ async fetchPositionsHistory(symbols = undefined, since = undefined, limit = undefined, params = {}) {
1011
+ await this.loadMarkets();
1012
+ symbols = this.marketSymbols(symbols);
1013
+ const request = {};
1014
+ if (limit !== undefined) {
1015
+ request['limit'] = limit;
1016
+ }
1017
+ const response = await this.privateGetFuturesPositionsHistory(this.extend(request, params));
1018
+ //
1019
+ // {
1020
+ // "success": true,
1021
+ // "data": [
1022
+ // {
1023
+ // "id": "019f1ed6-...",
1024
+ // "position_type": "SHORT",
1025
+ // "status": "CLOSED",
1026
+ // "leverage": "3",
1027
+ // "entry_price": "1.3112",
1028
+ // "closed_price": "1.3395",
1029
+ // "quantity": "34",
1030
+ // "pnl": "-0.9622",
1031
+ // "created_at": "2026-07-01T10:18:57Z",
1032
+ // "updated_at": "2026-07-01T18:00:21Z",
1033
+ // "symbol": "CAKEUSDT",
1034
+ // "trade_currency": "USDT"
1035
+ // }
1036
+ // ]
1037
+ // }
1038
+ //
1039
+ const data = this.safeList(response, 'data', []);
1040
+ const positions = this.parsePositions(data, symbols);
1041
+ return this.filterBySinceLimit(positions, since, limit);
1042
+ }
1043
+ parsePosition(position, market = undefined) {
1044
+ market = this.safeMarket(undefined, market);
1045
+ const ms = this.safeString(position, 'symbol');
1046
+ const symbol = this.safeSymbol(ms, market);
1047
+ // open positions use "order_type", closed positions (history) use "position_type"
1048
+ const rawSide = this.safeStringUpper2(position, 'order_type', 'position_type');
1049
+ let side = undefined;
1050
+ if (rawSide === 'LONG') {
1051
+ side = 'long';
1052
+ }
1053
+ else if (rawSide === 'SHORT') {
1054
+ side = 'short';
1055
+ }
1056
+ let ts = this.parse8601(this.safeString(position, 'updated_at'));
1057
+ if (ts === undefined) {
1058
+ ts = this.parse8601(this.safeString(position, 'created_at'));
1059
+ }
1060
+ const quantityString = this.safeString(position, 'quantity');
1061
+ const entryPriceString = this.safeString(position, 'entry_price');
1062
+ const contractSizeString = this.safeString(market, 'contractSize', '1');
1063
+ let notional = undefined;
1064
+ if ((quantityString !== undefined) && (entryPriceString !== undefined)) {
1065
+ notional = this.parseNumber(Precise["default"].stringMul(Precise["default"].stringMul(quantityString, entryPriceString), contractSizeString));
1066
+ }
1067
+ const initialMargin = this.safeString(position, 'initial_margin');
1068
+ return {
1069
+ 'info': position,
1070
+ 'id': this.safeString(position, 'id'),
1071
+ 'symbol': symbol,
1072
+ 'timestamp': ts,
1073
+ 'datetime': this.iso8601(ts),
1074
+ 'isolated': true,
1075
+ 'hedged': false,
1076
+ 'side': side,
1077
+ 'contracts': this.safeNumber(position, 'quantity'),
1078
+ 'contractSize': this.safeNumber(market, 'contractSize'),
1079
+ 'entryPrice': this.safeNumber(position, 'entry_price'),
1080
+ 'markPrice': undefined,
1081
+ 'lastPrice': this.safeNumber(position, 'closed_price'), // exit price for closed positions
1082
+ 'notional': notional,
1083
+ 'leverage': this.safeInteger(position, 'leverage'),
1084
+ 'collateral': this.parseNumber(initialMargin),
1085
+ 'initialMargin': this.parseNumber(initialMargin),
1086
+ 'initialMarginPercentage': undefined,
1087
+ 'maintenanceMargin': this.safeNumber(position, 'maintenance_margin'),
1088
+ 'maintenanceMarginPercentage': undefined,
1089
+ 'unrealizedPnl': undefined,
1090
+ 'realizedPnl': this.safeNumber(position, 'pnl'), // realized pnl for closed positions
1091
+ 'liquidationPrice': this.safeNumber(position, 'liquidation_price'),
1092
+ 'marginMode': 'isolated',
1093
+ 'percentage': undefined,
1094
+ };
1095
+ }
1096
+ /**
1097
+ * @method
1098
+ * @name mudrex#closePosition
1099
+ * @description closes an open position for a market
1100
+ * @see https://docs.trade.mudrex.com/docs
1101
+ * @param {string} symbol unified CCXT market symbol
1102
+ * @param {string} [side] 'buy' or 'sell', not required by mudrex
1103
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1104
+ * @param {string} [params.position_id] the id of the position to close, resolved from the symbol if not provided
1105
+ * @param {float} [params.amount] the amount to close for a partial close, closes the whole position if not provided
1106
+ * @returns {object} an [order structure](https://docs.ccxt.com/#/?id=order-structure)
1107
+ */
1108
+ async closePosition(symbol, side = undefined, params = {}) {
1109
+ await this.loadMarkets();
1110
+ let positionId = this.safeString(params, 'position_id');
1111
+ const amount = this.safeValue(params, 'amount');
1112
+ if (positionId === undefined) {
1113
+ const market = this.market(symbol);
1114
+ const positions = await this.fetchPositions([symbol], params);
1115
+ for (let i = 0; i < positions.length; i++) {
1116
+ const p = positions[i];
1117
+ if (side !== undefined && p['side'] !== side) {
1118
+ continue;
1119
+ }
1120
+ if (p['symbol'] === market['symbol']) {
1121
+ positionId = this.safeString(p, 'id');
1122
+ break;
1123
+ }
1124
+ }
1125
+ }
1126
+ if (positionId === undefined) {
1127
+ throw new errors.OrderNotFound(this.id + ' closePosition() could not resolve position_id');
1128
+ }
1129
+ const request = {
1130
+ 'position_id': positionId,
1131
+ };
1132
+ if (amount !== undefined) {
1133
+ const orderType = this.safeStringUpper(params, 'order_type', 'LIMIT');
1134
+ request['order_type'] = orderType;
1135
+ request['quantity'] = this.amountToPrecision(symbol, amount);
1136
+ const lp = this.safeString(params, 'limit_price');
1137
+ if (orderType === 'LIMIT' && lp !== undefined) {
1138
+ request['limit_price'] = lp;
1139
+ }
1140
+ params = this.omit(params, ['order_type', 'limit_price', 'amount', 'position_id']);
1141
+ return await this.privatePostFuturesPositionsPositionIdClosePartial(this.extend(request, params));
1142
+ }
1143
+ params = this.omit(params, ['position_id']);
1144
+ return await this.privatePostFuturesPositionsPositionIdClose(this.extend(request, params));
1145
+ }
1146
+ /**
1147
+ * @method
1148
+ * @name mudrex#addMargin
1149
+ * @description add margin to a position
1150
+ * @see https://docs.trade.mudrex.com/docs
1151
+ * @param {string} symbol unified market symbol
1152
+ * @param {float} amount amount of margin to add
1153
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1154
+ * @param {string} [params.position_id] the id of the position to add margin to, resolved from the symbol if not provided
1155
+ * @returns {object} a [margin structure](https://docs.ccxt.com/#/?id=add-margin-structure)
1156
+ */
1157
+ async addMargin(symbol, amount, params = {}) {
1158
+ await this.loadMarkets();
1159
+ let positionId = this.safeString(params, 'position_id');
1160
+ if (positionId === undefined) {
1161
+ const positions = await this.fetchPositions([symbol], params);
1162
+ for (let i = 0; i < positions.length; i++) {
1163
+ const p = positions[i];
1164
+ if (p['symbol'] === symbol) {
1165
+ positionId = this.safeString(p, 'id');
1166
+ break;
1167
+ }
1168
+ }
1169
+ }
1170
+ if (positionId === undefined) {
1171
+ throw new errors.OrderNotFound(this.id + ' addMargin() could not resolve position_id');
1172
+ }
1173
+ const request = {
1174
+ 'position_id': positionId,
1175
+ 'margin': this.costToPrecision(symbol, amount),
1176
+ };
1177
+ params = this.omit(params, ['position_id']);
1178
+ return await this.privatePostFuturesPositionsPositionIdAddMargin(this.extend(request, params));
1179
+ }
1180
+ /**
1181
+ * @method
1182
+ * @name mudrex#reduceMargin
1183
+ * @description remove margin from a position
1184
+ * @see https://docs.trade.mudrex.com/docs
1185
+ * @param {string} symbol unified market symbol
1186
+ * @param {float} amount the amount of margin to remove
1187
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1188
+ * @returns {object} a [margin structure](https://docs.ccxt.com/#/?id=reduce-margin-structure)
1189
+ */
1190
+ async reduceMargin(symbol, amount, params = {}) {
1191
+ return await this.addMargin(symbol, -amount, params);
1192
+ }
1193
+ /**
1194
+ * @method
1195
+ * @name mudrex#fetchMyTrades
1196
+ * @description fetch all trades made by the user
1197
+ * @see https://docs.trade.mudrex.com/docs
1198
+ * @param {string} [symbol] unified market symbol
1199
+ * @param {int} [since] the earliest time in ms to fetch trades for
1200
+ * @param {int} [limit] the maximum number of trade structures to retrieve
1201
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1202
+ * @param {string} [params.trade_currency] the settlement currency to filter trades by
1203
+ * @returns {Trade[]} a list of [trade structures](https://docs.ccxt.com/#/?id=trade-structure)
1204
+ */
1205
+ async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1206
+ await this.loadMarkets();
1207
+ let market = undefined;
1208
+ if (symbol !== undefined) {
1209
+ market = this.market(symbol);
1210
+ }
1211
+ const request = {};
1212
+ if (limit !== undefined) {
1213
+ request['limit'] = limit;
1214
+ }
1215
+ const response = await this.privateGetFuturesFeeHistory(this.extend(request, params));
1216
+ const data = this.safeValue(response, 'data', []);
1217
+ const rows = this.toArray(data);
1218
+ return this.parseTrades(rows, market, since, limit);
1219
+ }
1220
+ parseTrade(trade, market = undefined) {
1221
+ const ms = this.safeString(trade, 'symbol');
1222
+ market = this.safeMarket(ms, market);
1223
+ const symbol = market['symbol'];
1224
+ let ts = this.parse8601(this.safeString(trade, 'created_at'));
1225
+ if (ts === undefined) {
1226
+ ts = this.safeInteger(trade, 'time');
1227
+ }
1228
+ const side = this.safeStringLower2(trade, 'side', 'order_type');
1229
+ let tradeSide = undefined;
1230
+ if (side === 'buy' || side === 'long') {
1231
+ tradeSide = 'buy';
1232
+ }
1233
+ else if (side === 'sell' || side === 'short') {
1234
+ tradeSide = 'sell';
1235
+ }
1236
+ const feeType = this.safeStringUpper(trade, 'fee_type');
1237
+ let takerOrMaker = undefined;
1238
+ if (feeType === 'TRANSACTION') {
1239
+ takerOrMaker = 'taker';
1240
+ }
1241
+ else if (feeType === 'REBATE') {
1242
+ takerOrMaker = 'maker';
1243
+ }
1244
+ let fee = undefined;
1245
+ const feeCost = this.safeNumber(trade, 'fee_amount');
1246
+ if (feeCost !== undefined) {
1247
+ fee = {
1248
+ 'cost': feeCost,
1249
+ 'currency': this.safeString(trade, 'trade_currency'),
1250
+ };
1251
+ }
1252
+ return this.safeTrade({
1253
+ 'info': trade,
1254
+ 'timestamp': ts,
1255
+ 'datetime': this.iso8601(ts),
1256
+ 'symbol': symbol,
1257
+ 'id': this.safeString2(trade, 'execId', 'id'),
1258
+ 'order': this.safeString(trade, 'order_id'),
1259
+ 'type': this.safeStringLower(trade, 'trigger_type'),
1260
+ 'side': tradeSide,
1261
+ 'takerOrMaker': takerOrMaker,
1262
+ 'price': this.safeNumber(trade, 'price'),
1263
+ 'amount': this.safeNumber2(trade, 'size', 'quantity'),
1264
+ 'cost': this.safeNumber(trade, 'transaction_amount'),
1265
+ 'fee': fee,
1266
+ }, market);
1267
+ }
1268
+ /**
1269
+ * @method
1270
+ * @name mudrex#transfer
1271
+ * @description transfer currency internally between wallets on the same account
1272
+ * @see https://docs.trade.mudrex.com/docs
1273
+ * @param {string} code unified currency code
1274
+ * @param {float} amount amount to transfer
1275
+ * @param {string} fromAccount 'spot' or 'futures'
1276
+ * @param {string} toAccount 'spot' or 'futures'
1277
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1278
+ * @returns {object} a [transfer structure](https://docs.ccxt.com/#/?id=transfer-structure)
1279
+ */
1280
+ async transfer(code, amount, fromAccount, toAccount, params = {}) {
1281
+ const mp = {
1282
+ 'spot': 'SPOT',
1283
+ 'SPOT': 'SPOT',
1284
+ 'futures': 'FUTURES',
1285
+ 'future': 'FUTURES',
1286
+ 'FUTURES': 'FUTURES',
1287
+ };
1288
+ const fw = this.safeString(mp, fromAccount, fromAccount.toUpperCase());
1289
+ const tw = this.safeString(mp, toAccount, toAccount.toUpperCase());
1290
+ const body = {
1291
+ 'from_wallet_type': fw,
1292
+ 'to_wallet_type': tw,
1293
+ 'amount': this.numberToString(amount),
1294
+ };
1295
+ let useInr = false;
1296
+ if (code === 'INR') {
1297
+ useInr = true;
1298
+ }
1299
+ else {
1300
+ // default USDT does not use the inr path
1301
+ const tradeCurrency = this.safeString2(params, 'trade_currency', 'tradeCurrency');
1302
+ if (tradeCurrency === 'INR') {
1303
+ useInr = true;
1304
+ }
1305
+ }
1306
+ let response = undefined;
1307
+ if (useInr) {
1308
+ response = await this.privatePostFuturesTransfersInr(this.extend(body, params));
1309
+ }
1310
+ else {
1311
+ response = await this.privatePostWalletFuturesTransfer(this.extend(body, params));
1312
+ }
1313
+ const data = this.safeDict(response, 'data', response);
1314
+ return {
1315
+ 'info': response,
1316
+ 'id': this.safeString(data, 'id'),
1317
+ 'timestamp': undefined,
1318
+ 'datetime': undefined,
1319
+ 'currency': code,
1320
+ 'amount': amount,
1321
+ 'fromAccount': fw,
1322
+ 'toAccount': tw,
1323
+ 'status': 'ok',
1324
+ };
1325
+ }
1326
+ }
1327
+
1328
+ exports["default"] = mudrex;