ccxt 4.4.99 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (995) hide show
  1. package/README.md +4 -4
  2. package/dist/373.ccxt.browser.js +7630 -0
  3. package/dist/373.ccxt.browser.min.js +1 -0
  4. package/dist/ccxt.browser.min.js +8 -8
  5. package/dist/cjs/ccxt.js +288 -288
  6. package/dist/cjs/src/abstract/alpaca.js +4 -2
  7. package/dist/cjs/src/abstract/apex.js +4 -2
  8. package/dist/cjs/src/abstract/ascendex.js +4 -2
  9. package/dist/cjs/src/abstract/bigone.js +4 -2
  10. package/dist/cjs/src/abstract/binance.js +4 -2
  11. package/dist/cjs/src/abstract/bingx.js +4 -2
  12. package/dist/cjs/src/abstract/bit2c.js +4 -2
  13. package/dist/cjs/src/abstract/bitbank.js +4 -2
  14. package/dist/cjs/src/abstract/bitbns.js +4 -2
  15. package/dist/cjs/src/abstract/bitfinex.js +4 -2
  16. package/dist/cjs/src/abstract/bitflyer.js +4 -2
  17. package/dist/cjs/src/abstract/bitget.js +4 -2
  18. package/dist/cjs/src/abstract/bithumb.js +4 -2
  19. package/dist/cjs/src/abstract/bitmart.js +4 -2
  20. package/dist/cjs/src/abstract/bitmex.js +4 -2
  21. package/dist/cjs/src/abstract/bitopro.js +4 -2
  22. package/dist/cjs/src/abstract/bitrue.js +4 -2
  23. package/dist/cjs/src/abstract/bitso.js +4 -2
  24. package/dist/cjs/src/abstract/bitstamp.js +4 -2
  25. package/dist/cjs/src/abstract/bitteam.js +4 -2
  26. package/dist/cjs/src/abstract/bittrade.js +4 -2
  27. package/dist/cjs/src/abstract/bitvavo.js +4 -2
  28. package/dist/cjs/src/abstract/blockchaincom.js +4 -2
  29. package/dist/cjs/src/abstract/blofin.js +4 -2
  30. package/dist/cjs/src/abstract/btcalpha.js +4 -2
  31. package/dist/cjs/src/abstract/btcbox.js +4 -2
  32. package/dist/cjs/src/abstract/btcmarkets.js +4 -2
  33. package/dist/cjs/src/abstract/btcturk.js +4 -2
  34. package/dist/cjs/src/abstract/bybit.js +4 -2
  35. package/dist/cjs/src/abstract/cex.js +4 -2
  36. package/dist/cjs/src/abstract/coinbase.js +4 -2
  37. package/dist/cjs/src/abstract/coinbaseexchange.js +4 -2
  38. package/dist/cjs/src/abstract/coinbaseinternational.js +4 -2
  39. package/dist/cjs/src/abstract/coincatch.js +4 -2
  40. package/dist/cjs/src/abstract/coincheck.js +4 -2
  41. package/dist/cjs/src/abstract/coinex.js +4 -2
  42. package/dist/cjs/src/abstract/coinmate.js +4 -2
  43. package/dist/cjs/src/abstract/coinmetro.js +4 -2
  44. package/dist/cjs/src/abstract/coinone.js +4 -2
  45. package/dist/cjs/src/abstract/coinsph.js +4 -2
  46. package/dist/cjs/src/abstract/coinspot.js +4 -2
  47. package/dist/cjs/src/abstract/cryptocom.js +4 -2
  48. package/dist/cjs/src/abstract/cryptomus.js +4 -2
  49. package/dist/cjs/src/abstract/defx.js +4 -2
  50. package/dist/cjs/src/abstract/delta.js +4 -2
  51. package/dist/cjs/src/abstract/deribit.js +4 -2
  52. package/dist/cjs/src/abstract/derive.js +4 -2
  53. package/dist/cjs/src/abstract/digifinex.js +4 -2
  54. package/dist/cjs/src/abstract/ellipx.js +4 -2
  55. package/dist/cjs/src/abstract/exmo.js +4 -2
  56. package/dist/cjs/src/abstract/foxbit.js +4 -2
  57. package/dist/cjs/src/abstract/gate.js +4 -2
  58. package/dist/cjs/src/abstract/gemini.js +4 -2
  59. package/dist/cjs/src/abstract/hashkey.js +4 -2
  60. package/dist/cjs/src/abstract/hibachi.js +4 -2
  61. package/dist/cjs/src/abstract/hitbtc.js +4 -2
  62. package/dist/cjs/src/abstract/hollaex.js +4 -2
  63. package/dist/cjs/src/abstract/htx.js +4 -2
  64. package/dist/cjs/src/abstract/hyperliquid.js +4 -2
  65. package/dist/cjs/src/abstract/independentreserve.js +4 -2
  66. package/dist/cjs/src/abstract/indodax.js +4 -2
  67. package/dist/cjs/src/abstract/kraken.js +4 -2
  68. package/dist/cjs/src/abstract/krakenfutures.js +4 -2
  69. package/dist/cjs/src/abstract/kucoin.js +4 -2
  70. package/dist/cjs/src/abstract/kucoinfutures.js +5 -3
  71. package/dist/cjs/src/abstract/latoken.js +4 -2
  72. package/dist/cjs/src/abstract/lbank.js +4 -2
  73. package/dist/cjs/src/abstract/luno.js +4 -2
  74. package/dist/cjs/src/abstract/mercado.js +4 -2
  75. package/dist/cjs/src/abstract/mexc.js +4 -2
  76. package/dist/cjs/src/abstract/modetrade.js +4 -2
  77. package/dist/cjs/src/abstract/ndax.js +4 -2
  78. package/dist/cjs/src/abstract/novadax.js +4 -2
  79. package/dist/cjs/src/abstract/oceanex.js +4 -2
  80. package/dist/cjs/src/abstract/okcoin.js +4 -2
  81. package/dist/cjs/src/abstract/okx.js +4 -2
  82. package/dist/cjs/src/abstract/onetrading.js +4 -2
  83. package/dist/cjs/src/abstract/oxfun.js +4 -2
  84. package/dist/cjs/src/abstract/p2b.js +4 -2
  85. package/dist/cjs/src/abstract/paradex.js +4 -2
  86. package/dist/cjs/src/abstract/paymium.js +4 -2
  87. package/dist/cjs/src/abstract/phemex.js +4 -2
  88. package/dist/cjs/src/abstract/poloniex.js +4 -2
  89. package/dist/cjs/src/abstract/probit.js +4 -2
  90. package/dist/cjs/src/abstract/timex.js +4 -2
  91. package/dist/cjs/src/abstract/tokocrypto.js +4 -2
  92. package/dist/cjs/src/abstract/tradeogre.js +4 -2
  93. package/dist/cjs/src/abstract/upbit.js +4 -2
  94. package/dist/cjs/src/abstract/vertex.js +4 -2
  95. package/dist/cjs/src/abstract/wavesexchange.js +4 -2
  96. package/dist/cjs/src/abstract/whitebit.js +4 -2
  97. package/dist/cjs/src/abstract/woo.js +4 -2
  98. package/dist/cjs/src/abstract/woofipro.js +4 -2
  99. package/dist/cjs/src/abstract/xt.js +4 -2
  100. package/dist/cjs/src/abstract/yobit.js +4 -2
  101. package/dist/cjs/src/abstract/zaif.js +4 -2
  102. package/dist/cjs/src/abstract/zonda.js +4 -2
  103. package/dist/cjs/src/alpaca.js +5 -3
  104. package/dist/cjs/src/apex.js +5 -3
  105. package/dist/cjs/src/ascendex.js +5 -3
  106. package/dist/cjs/src/base/Exchange.js +42 -2
  107. package/dist/cjs/src/base/Precise.js +6 -0
  108. package/dist/cjs/src/base/errors.js +6 -0
  109. package/dist/cjs/src/base/functions/crypto.js +1 -1
  110. package/dist/cjs/src/base/functions/encode.js +3 -3
  111. package/dist/cjs/src/base/functions/misc.js +1 -0
  112. package/dist/cjs/src/base/functions/number.js +6 -0
  113. package/dist/cjs/src/base/functions/platform.js +6 -0
  114. package/dist/cjs/src/base/functions/rsa.js +1 -0
  115. package/dist/cjs/src/base/functions/string.js +6 -0
  116. package/dist/cjs/src/base/functions/throttle.js +1 -1
  117. package/dist/cjs/src/base/functions/time.js +6 -0
  118. package/dist/cjs/src/base/functions/totp.js +1 -0
  119. package/dist/cjs/src/base/functions/type.js +6 -0
  120. package/dist/cjs/src/base/functions.js +1 -1
  121. package/dist/cjs/src/base/ws/Cache.js +6 -0
  122. package/dist/cjs/src/base/ws/Client.js +9 -2
  123. package/dist/cjs/src/base/ws/Future.js +1 -1
  124. package/dist/cjs/src/base/ws/OrderBook.js +1 -1
  125. package/dist/cjs/src/base/ws/OrderBookSide.js +6 -0
  126. package/dist/cjs/src/base/ws/WsClient.js +5 -3
  127. package/dist/cjs/src/bequant.js +5 -3
  128. package/dist/cjs/src/bigone.js +5 -3
  129. package/dist/cjs/src/binance.js +6 -3
  130. package/dist/cjs/src/binancecoinm.js +5 -3
  131. package/dist/cjs/src/binanceus.js +5 -3
  132. package/dist/cjs/src/binanceusdm.js +5 -3
  133. package/dist/cjs/src/bingx.js +37 -5
  134. package/dist/cjs/src/bit2c.js +5 -3
  135. package/dist/cjs/src/bitbank.js +5 -3
  136. package/dist/cjs/src/bitbns.js +5 -3
  137. package/dist/cjs/src/bitfinex.js +8 -3
  138. package/dist/cjs/src/bitflyer.js +5 -3
  139. package/dist/cjs/src/bitget.js +43 -17
  140. package/dist/cjs/src/bithumb.js +5 -3
  141. package/dist/cjs/src/bitmart.js +5 -3
  142. package/dist/cjs/src/bitmex.js +6 -3
  143. package/dist/cjs/src/bitopro.js +5 -3
  144. package/dist/cjs/src/bitrue.js +5 -3
  145. package/dist/cjs/src/bitso.js +5 -3
  146. package/dist/cjs/src/bitstamp.js +5 -3
  147. package/dist/cjs/src/bitteam.js +5 -3
  148. package/dist/cjs/src/bittrade.js +5 -3
  149. package/dist/cjs/src/bitvavo.js +4 -2
  150. package/dist/cjs/src/blockchaincom.js +5 -3
  151. package/dist/cjs/src/blofin.js +5 -3
  152. package/dist/cjs/src/btcalpha.js +5 -3
  153. package/dist/cjs/src/btcbox.js +5 -3
  154. package/dist/cjs/src/btcmarkets.js +5 -3
  155. package/dist/cjs/src/btcturk.js +5 -3
  156. package/dist/cjs/src/bybit.js +5 -3
  157. package/dist/cjs/src/cex.js +5 -3
  158. package/dist/cjs/src/coinbase.js +4 -2
  159. package/dist/cjs/src/coinbaseadvanced.js +5 -3
  160. package/dist/cjs/src/coinbaseexchange.js +4 -2
  161. package/dist/cjs/src/coinbaseinternational.js +4 -2
  162. package/dist/cjs/src/coincatch.js +5 -3
  163. package/dist/cjs/src/coincheck.js +5 -3
  164. package/dist/cjs/src/coinex.js +6 -4
  165. package/dist/cjs/src/coinmate.js +5 -3
  166. package/dist/cjs/src/coinmetro.js +5 -3
  167. package/dist/cjs/src/coinone.js +5 -3
  168. package/dist/cjs/src/coinsph.js +5 -2
  169. package/dist/cjs/src/coinspot.js +5 -3
  170. package/dist/cjs/src/cryptocom.js +5 -3
  171. package/dist/cjs/src/cryptomus.js +5 -3
  172. package/dist/cjs/src/defx.js +5 -3
  173. package/dist/cjs/src/delta.js +5 -3
  174. package/dist/cjs/src/deribit.js +5 -3
  175. package/dist/cjs/src/derive.js +5 -3
  176. package/dist/cjs/src/digifinex.js +5 -3
  177. package/dist/cjs/src/ellipx.js +5 -3
  178. package/dist/cjs/src/exmo.js +5 -3
  179. package/dist/cjs/src/fmfwio.js +5 -3
  180. package/dist/cjs/src/foxbit.js +8 -7
  181. package/dist/cjs/src/gate.js +26 -3
  182. package/dist/cjs/src/gateio.js +5 -3
  183. package/dist/cjs/src/gemini.js +5 -3
  184. package/dist/cjs/src/hashkey.js +5 -3
  185. package/dist/cjs/src/hibachi.js +5 -3
  186. package/dist/cjs/src/hitbtc.js +5 -2
  187. package/dist/cjs/src/hollaex.js +5 -3
  188. package/dist/cjs/src/htx.js +6 -3
  189. package/dist/cjs/src/huobi.js +5 -3
  190. package/dist/cjs/src/hyperliquid.js +84 -31
  191. package/dist/cjs/src/independentreserve.js +5 -3
  192. package/dist/cjs/src/indodax.js +5 -3
  193. package/dist/cjs/src/kraken.js +5 -3
  194. package/dist/cjs/src/krakenfutures.js +6 -3
  195. package/dist/cjs/src/kucoin.js +5 -3
  196. package/dist/cjs/src/kucoinfutures.js +6 -3
  197. package/dist/cjs/src/latoken.js +5 -3
  198. package/dist/cjs/src/lbank.js +6 -4
  199. package/dist/cjs/src/luno.js +5 -3
  200. package/dist/cjs/src/mercado.js +5 -3
  201. package/dist/cjs/src/mexc.js +12 -3
  202. package/dist/cjs/src/modetrade.js +101 -3
  203. package/dist/cjs/src/myokx.js +5 -3
  204. package/dist/cjs/src/ndax.js +5 -3
  205. package/dist/cjs/src/novadax.js +5 -3
  206. package/dist/cjs/src/oceanex.js +5 -3
  207. package/dist/cjs/src/okcoin.js +5 -3
  208. package/dist/cjs/src/okx.js +5 -3
  209. package/dist/cjs/src/okxus.js +5 -3
  210. package/dist/cjs/src/onetrading.js +38 -3
  211. package/dist/cjs/src/oxfun.js +5 -3
  212. package/dist/cjs/src/p2b.js +37 -3
  213. package/dist/cjs/src/paradex.js +6 -3
  214. package/dist/cjs/src/paymium.js +5 -3
  215. package/dist/cjs/src/phemex.js +4 -2
  216. package/dist/cjs/src/poloniex.js +5 -3
  217. package/dist/cjs/src/pro/alpaca.js +5 -3
  218. package/dist/cjs/src/pro/apex.js +5 -3
  219. package/dist/cjs/src/pro/ascendex.js +5 -3
  220. package/dist/cjs/src/pro/bequant.js +6 -4
  221. package/dist/cjs/src/pro/binance.js +6 -3
  222. package/dist/cjs/src/pro/binancecoinm.js +6 -4
  223. package/dist/cjs/src/pro/binanceus.js +6 -4
  224. package/dist/cjs/src/pro/binanceusdm.js +5 -3
  225. package/dist/cjs/src/pro/bingx.js +5 -3
  226. package/dist/cjs/src/pro/bitfinex.js +5 -3
  227. package/dist/cjs/src/pro/bitget.js +5 -3
  228. package/dist/cjs/src/pro/bithumb.js +5 -3
  229. package/dist/cjs/src/pro/bitmart.js +5 -3
  230. package/dist/cjs/src/pro/bitmex.js +5 -3
  231. package/dist/cjs/src/pro/bitopro.js +4 -2
  232. package/dist/cjs/src/pro/bitrue.js +5 -3
  233. package/dist/cjs/src/pro/bitstamp.js +5 -3
  234. package/dist/cjs/src/pro/bittrade.js +4 -2
  235. package/dist/cjs/src/pro/bitvavo.js +6 -4
  236. package/dist/cjs/src/pro/blockchaincom.js +5 -3
  237. package/dist/cjs/src/pro/blofin.js +5 -3
  238. package/dist/cjs/src/pro/bybit.js +6 -3
  239. package/dist/cjs/src/pro/cex.js +5 -3
  240. package/dist/cjs/src/pro/coinbase.js +5 -3
  241. package/dist/cjs/src/pro/coinbaseadvanced.js +5 -3
  242. package/dist/cjs/src/pro/coinbaseexchange.js +5 -3
  243. package/dist/cjs/src/pro/coinbaseinternational.js +5 -3
  244. package/dist/cjs/src/pro/coincatch.js +5 -3
  245. package/dist/cjs/src/pro/coincheck.js +5 -3
  246. package/dist/cjs/src/pro/coinex.js +6 -4
  247. package/dist/cjs/src/pro/coinone.js +5 -3
  248. package/dist/cjs/src/pro/cryptocom.js +5 -3
  249. package/dist/cjs/src/pro/defx.js +5 -3
  250. package/dist/cjs/src/pro/deribit.js +5 -3
  251. package/dist/cjs/src/pro/derive.js +4 -2
  252. package/dist/cjs/src/pro/exmo.js +5 -3
  253. package/dist/cjs/src/pro/gate.js +5 -3
  254. package/dist/cjs/src/pro/gateio.js +5 -3
  255. package/dist/cjs/src/pro/gemini.js +5 -3
  256. package/dist/cjs/src/pro/hashkey.js +5 -3
  257. package/dist/cjs/src/pro/hitbtc.js +5 -3
  258. package/dist/cjs/src/pro/hollaex.js +5 -3
  259. package/dist/cjs/src/pro/htx.js +5 -3
  260. package/dist/cjs/src/pro/huobi.js +5 -3
  261. package/dist/cjs/src/pro/hyperliquid.js +108 -15
  262. package/dist/cjs/src/pro/independentreserve.js +5 -3
  263. package/dist/cjs/src/pro/kraken.js +5 -3
  264. package/dist/cjs/src/pro/krakenfutures.js +5 -3
  265. package/dist/cjs/src/pro/kucoin.js +6 -4
  266. package/dist/cjs/src/pro/kucoinfutures.js +6 -4
  267. package/dist/cjs/src/pro/lbank.js +5 -2
  268. package/dist/cjs/src/pro/luno.js +5 -3
  269. package/dist/cjs/src/pro/mexc.js +352 -170
  270. package/dist/cjs/src/pro/modetrade.js +4 -2
  271. package/dist/cjs/src/pro/myokx.js +5 -3
  272. package/dist/cjs/src/pro/ndax.js +5 -3
  273. package/dist/cjs/src/pro/okcoin.js +5 -3
  274. package/dist/cjs/src/pro/okx.js +7 -4
  275. package/dist/cjs/src/pro/okxus.js +5 -3
  276. package/dist/cjs/src/pro/onetrading.js +5 -3
  277. package/dist/cjs/src/pro/oxfun.js +6 -4
  278. package/dist/cjs/src/pro/p2b.js +5 -3
  279. package/dist/cjs/src/pro/paradex.js +5 -3
  280. package/dist/cjs/src/pro/phemex.js +5 -3
  281. package/dist/cjs/src/pro/poloniex.js +5 -3
  282. package/dist/cjs/src/pro/probit.js +5 -3
  283. package/dist/cjs/src/pro/tradeogre.js +5 -3
  284. package/dist/cjs/src/pro/upbit.js +5 -3
  285. package/dist/cjs/src/pro/vertex.js +4 -2
  286. package/dist/cjs/src/pro/whitebit.js +5 -3
  287. package/dist/cjs/src/pro/woo.js +4 -2
  288. package/dist/cjs/src/pro/woofipro.js +4 -2
  289. package/dist/cjs/src/pro/xt.js +5 -3
  290. package/dist/cjs/src/probit.js +40 -3
  291. package/dist/cjs/src/protobuf/mexc/compiled.cjs.js +7179 -0
  292. package/dist/cjs/src/static_dependencies/ethers/abi-coder.js +7 -1
  293. package/dist/cjs/src/static_dependencies/ethers/address/address.js +1 -1
  294. package/dist/cjs/src/static_dependencies/ethers/coders/abstract-coder.js +8 -2
  295. package/dist/cjs/src/static_dependencies/ethers/coders/address.js +1 -0
  296. package/dist/cjs/src/static_dependencies/ethers/coders/anonymous.js +1 -0
  297. package/dist/cjs/src/static_dependencies/ethers/coders/array.js +1 -0
  298. package/dist/cjs/src/static_dependencies/ethers/coders/boolean.js +1 -0
  299. package/dist/cjs/src/static_dependencies/ethers/coders/bytes.js +1 -0
  300. package/dist/cjs/src/static_dependencies/ethers/coders/fixed-bytes.js +1 -0
  301. package/dist/cjs/src/static_dependencies/ethers/coders/null.js +1 -0
  302. package/dist/cjs/src/static_dependencies/ethers/coders/number.js +1 -0
  303. package/dist/cjs/src/static_dependencies/ethers/coders/string.js +1 -0
  304. package/dist/cjs/src/static_dependencies/ethers/coders/tuple.js +1 -0
  305. package/dist/cjs/src/static_dependencies/ethers/fragments.js +8 -2
  306. package/dist/cjs/src/static_dependencies/ethers/hash/typed-data.js +8 -2
  307. package/dist/cjs/src/static_dependencies/ethers/index.js +1 -10
  308. package/dist/cjs/src/static_dependencies/ethers/interface.js +8 -2
  309. package/dist/cjs/src/static_dependencies/ethers/typed.js +8 -2
  310. package/dist/cjs/src/static_dependencies/ethers/utils/base58.js +1 -13
  311. package/dist/cjs/src/static_dependencies/ethers/utils/data.js +1 -6
  312. package/dist/cjs/src/static_dependencies/ethers/utils/errors.js +1 -9
  313. package/dist/cjs/src/static_dependencies/ethers/utils/events.js +8 -2
  314. package/dist/cjs/src/static_dependencies/ethers/utils/fixednumber.js +8 -2
  315. package/dist/cjs/src/static_dependencies/ethers/utils/index.js +1 -7
  316. package/dist/cjs/src/static_dependencies/ethers/utils/maths.js +1 -5
  317. package/dist/cjs/src/static_dependencies/ethers/utils/properties.js +6 -0
  318. package/dist/cjs/src/static_dependencies/ethers/utils/utf8.js +1 -8
  319. package/dist/cjs/src/static_dependencies/fflake/browser.js +1 -1
  320. package/dist/cjs/src/static_dependencies/jsencrypt/JSEncrypt.js +1 -0
  321. package/dist/cjs/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +1 -0
  322. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +1 -1
  323. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +6 -0
  324. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +6 -0
  325. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +6 -0
  326. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +1 -0
  327. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +1 -1
  328. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +6 -0
  329. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +1 -1
  330. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +1 -1
  331. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/util.js +6 -0
  332. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +1 -1
  333. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +6 -0
  334. package/dist/cjs/src/static_dependencies/messagepack/msgpack.js +6 -0
  335. package/dist/cjs/src/static_dependencies/noble-curves/_shortw_utils.js +1 -1
  336. package/dist/cjs/src/static_dependencies/noble-curves/abstract/curve.js +1 -1
  337. package/dist/cjs/src/static_dependencies/noble-curves/abstract/edwards.js +1 -1
  338. package/dist/cjs/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +1 -0
  339. package/dist/cjs/src/static_dependencies/noble-curves/abstract/modular.js +1 -1
  340. package/dist/cjs/src/static_dependencies/noble-curves/abstract/montgomery.js +1 -1
  341. package/dist/cjs/src/static_dependencies/noble-curves/abstract/poseidon.js +1 -1
  342. package/dist/cjs/src/static_dependencies/noble-curves/abstract/utils.js +6 -0
  343. package/dist/cjs/src/static_dependencies/noble-curves/abstract/weierstrass.js +1 -1
  344. package/dist/cjs/src/static_dependencies/noble-curves/ed25519.js +1 -1
  345. package/dist/cjs/src/static_dependencies/noble-curves/p256.js +1 -1
  346. package/dist/cjs/src/static_dependencies/noble-curves/secp256k1.js +1 -1
  347. package/dist/cjs/src/static_dependencies/noble-hashes/_assert.js +6 -0
  348. package/dist/cjs/src/static_dependencies/noble-hashes/_sha2.js +1 -0
  349. package/dist/cjs/src/static_dependencies/noble-hashes/_u64.js +6 -0
  350. package/dist/cjs/src/static_dependencies/noble-hashes/crypto.js +6 -0
  351. package/dist/cjs/src/static_dependencies/noble-hashes/hmac.js +1 -0
  352. package/dist/cjs/src/static_dependencies/noble-hashes/md5.js +1 -0
  353. package/dist/cjs/src/static_dependencies/noble-hashes/sha1.js +1 -0
  354. package/dist/cjs/src/static_dependencies/noble-hashes/sha256.js +1 -0
  355. package/dist/cjs/src/static_dependencies/noble-hashes/sha3.js +1 -0
  356. package/dist/cjs/src/static_dependencies/noble-hashes/sha512.js +1 -0
  357. package/dist/cjs/src/static_dependencies/noble-hashes/utils.js +1 -1
  358. package/dist/cjs/src/static_dependencies/node-fetch/body.js +1 -5
  359. package/dist/cjs/src/static_dependencies/node-fetch/errors/abort-error.js +1 -0
  360. package/dist/cjs/src/static_dependencies/node-fetch/errors/base.js +6 -0
  361. package/dist/cjs/src/static_dependencies/node-fetch/errors/fetch-error.js +1 -0
  362. package/dist/cjs/src/static_dependencies/node-fetch/headers.js +1 -5
  363. package/dist/cjs/src/static_dependencies/node-fetch/index.js +8 -14
  364. package/dist/cjs/src/static_dependencies/node-fetch/request.js +1 -7
  365. package/dist/cjs/src/static_dependencies/node-fetch/response.js +4 -6
  366. package/dist/cjs/src/static_dependencies/node-fetch/utils/get-search.js +6 -0
  367. package/dist/cjs/src/static_dependencies/node-fetch/utils/is-redirect.js +6 -0
  368. package/dist/cjs/src/static_dependencies/node-fetch/utils/is.js +6 -0
  369. package/dist/cjs/src/static_dependencies/node-fetch/utils/referrer.js +1 -0
  370. package/dist/cjs/src/static_dependencies/proxies/agent-base/index.js +1 -0
  371. package/dist/cjs/src/static_dependencies/proxies/http-proxy-agent/index.js +1 -0
  372. package/dist/cjs/src/static_dependencies/proxies/https-proxy-agent/index.js +1 -0
  373. package/dist/cjs/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +6 -0
  374. package/dist/cjs/src/static_dependencies/qs/index.cjs.js +3 -1
  375. package/dist/cjs/src/static_dependencies/scure-base/index.js +6 -0
  376. package/dist/cjs/src/static_dependencies/scure-starknet/index.js +1 -1
  377. package/dist/cjs/src/static_dependencies/starknet/constants.js +1 -1
  378. package/dist/cjs/src/static_dependencies/starknet/types/calldata.js +6 -0
  379. package/dist/cjs/src/static_dependencies/starknet/types/lib/contract/abi.js +6 -0
  380. package/dist/cjs/src/static_dependencies/starknet/types/lib/contract/index.js +6 -0
  381. package/dist/cjs/src/static_dependencies/starknet/types/lib/index.js +6 -0
  382. package/dist/cjs/src/static_dependencies/starknet/types/typedData.js +6 -0
  383. package/dist/cjs/src/static_dependencies/starknet/utils/assert.js +9 -1
  384. package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +1 -1
  385. package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +1 -1
  386. package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +1 -1
  387. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/byteArray.js +1 -0
  388. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/cairo.js +1 -0
  389. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +6 -0
  390. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +6 -0
  391. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +6 -0
  392. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/formatter.js +4 -1
  393. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/index.js +8 -8
  394. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/index.js +1 -0
  395. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +1 -0
  396. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +6 -0
  397. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +5 -2
  398. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/requestParser.js +2 -1
  399. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/responseParser.js +5 -2
  400. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/tuple.js +4 -2
  401. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/validate.js +29 -30
  402. package/dist/cjs/src/static_dependencies/starknet/utils/encode.js +1 -0
  403. package/dist/cjs/src/static_dependencies/starknet/utils/hash/classHash.js +1 -3
  404. package/dist/cjs/src/static_dependencies/starknet/utils/merkle.js +1 -0
  405. package/dist/cjs/src/static_dependencies/starknet/utils/num.js +1 -0
  406. package/dist/cjs/src/static_dependencies/starknet/utils/selector.js +1 -0
  407. package/dist/cjs/src/static_dependencies/starknet/utils/shortString.js +1 -0
  408. package/dist/cjs/src/static_dependencies/starknet/utils/typedData.js +3 -3
  409. package/dist/cjs/src/static_dependencies/watchable/src/unpromise.js +6 -0
  410. package/dist/cjs/src/static_dependencies/zklink/zklink-sdk-web.js +6 -0
  411. package/dist/cjs/src/timex.js +5 -2
  412. package/dist/cjs/src/tokocrypto.js +5 -3
  413. package/dist/cjs/src/tradeogre.js +5 -3
  414. package/dist/cjs/src/upbit.js +5 -3
  415. package/dist/cjs/src/vertex.js +5 -3
  416. package/dist/cjs/src/wavesexchange.js +5 -3
  417. package/dist/cjs/src/whitebit.js +5 -3
  418. package/dist/cjs/src/woo.js +5 -3
  419. package/dist/cjs/src/woofipro.js +101 -3
  420. package/dist/cjs/src/xt.js +5 -3
  421. package/dist/cjs/src/yobit.js +5 -3
  422. package/dist/cjs/src/zaif.js +5 -3
  423. package/dist/cjs/src/zonda.js +5 -3
  424. package/js/ccxt.d.ts +1 -1
  425. package/js/ccxt.js +7 -1
  426. package/js/src/abstract/alpaca.js +6 -0
  427. package/js/src/abstract/apex.js +6 -0
  428. package/js/src/abstract/ascendex.js +6 -0
  429. package/js/src/abstract/bequant.js +6 -0
  430. package/js/src/abstract/bigone.js +6 -0
  431. package/js/src/abstract/binance.js +6 -0
  432. package/js/src/abstract/binancecoinm.js +6 -0
  433. package/js/src/abstract/binanceus.js +6 -0
  434. package/js/src/abstract/binanceusdm.js +6 -0
  435. package/js/src/abstract/bingx.d.ts +1 -0
  436. package/js/src/abstract/bingx.js +6 -0
  437. package/js/src/abstract/bit2c.js +6 -0
  438. package/js/src/abstract/bitbank.js +6 -0
  439. package/js/src/abstract/bitbns.js +6 -0
  440. package/js/src/abstract/bitfinex.js +6 -0
  441. package/js/src/abstract/bitflyer.js +6 -0
  442. package/js/src/abstract/bitget.js +6 -0
  443. package/js/src/abstract/bithumb.js +6 -0
  444. package/js/src/abstract/bitmart.js +6 -0
  445. package/js/src/abstract/bitmex.js +6 -0
  446. package/js/src/abstract/bitopro.js +6 -0
  447. package/js/src/abstract/bitrue.js +6 -0
  448. package/js/src/abstract/bitso.js +6 -0
  449. package/js/src/abstract/bitstamp.js +6 -0
  450. package/js/src/abstract/bitteam.js +6 -0
  451. package/js/src/abstract/bittrade.js +6 -0
  452. package/js/src/abstract/bitvavo.js +6 -0
  453. package/js/src/abstract/blockchaincom.js +6 -0
  454. package/js/src/abstract/blofin.js +6 -0
  455. package/js/src/abstract/btcalpha.js +6 -0
  456. package/js/src/abstract/btcbox.js +6 -0
  457. package/js/src/abstract/btcmarkets.js +6 -0
  458. package/js/src/abstract/btcturk.js +6 -0
  459. package/js/src/abstract/bybit.js +6 -0
  460. package/js/src/abstract/cex.js +6 -0
  461. package/js/src/abstract/coinbase.js +6 -0
  462. package/js/src/abstract/coinbaseadvanced.js +6 -0
  463. package/js/src/abstract/coinbaseexchange.js +6 -0
  464. package/js/src/abstract/coinbaseinternational.js +6 -0
  465. package/js/src/abstract/coincatch.js +6 -0
  466. package/js/src/abstract/coincheck.js +6 -0
  467. package/js/src/abstract/coinex.js +6 -0
  468. package/js/src/abstract/coinmate.js +6 -0
  469. package/js/src/abstract/coinmetro.js +6 -0
  470. package/js/src/abstract/coinone.js +6 -0
  471. package/js/src/abstract/coinsph.js +6 -0
  472. package/js/src/abstract/coinspot.js +6 -0
  473. package/js/src/abstract/cryptocom.js +6 -0
  474. package/js/src/abstract/cryptomus.js +6 -0
  475. package/js/src/abstract/defx.js +6 -0
  476. package/js/src/abstract/delta.js +6 -0
  477. package/js/src/abstract/deribit.js +6 -0
  478. package/js/src/abstract/derive.js +6 -0
  479. package/js/src/abstract/digifinex.js +6 -0
  480. package/js/src/abstract/ellipx.js +6 -0
  481. package/js/src/abstract/exmo.js +6 -0
  482. package/js/src/abstract/fmfwio.js +6 -0
  483. package/js/src/abstract/foxbit.js +6 -0
  484. package/js/src/abstract/gate.js +6 -0
  485. package/js/src/abstract/gateio.js +6 -0
  486. package/js/src/abstract/gemini.js +6 -0
  487. package/js/src/abstract/hashkey.js +6 -0
  488. package/js/src/abstract/hibachi.js +6 -0
  489. package/js/src/abstract/hitbtc.js +6 -0
  490. package/js/src/abstract/hollaex.js +6 -0
  491. package/js/src/abstract/htx.js +6 -0
  492. package/js/src/abstract/huobi.js +6 -0
  493. package/js/src/abstract/hyperliquid.js +6 -0
  494. package/js/src/abstract/independentreserve.js +6 -0
  495. package/js/src/abstract/indodax.js +6 -0
  496. package/js/src/abstract/kraken.js +6 -0
  497. package/js/src/abstract/krakenfutures.js +6 -0
  498. package/js/src/abstract/kucoin.js +6 -0
  499. package/js/src/abstract/kucoinfutures.js +6 -0
  500. package/js/src/abstract/latoken.js +6 -0
  501. package/js/src/abstract/lbank.js +6 -0
  502. package/js/src/abstract/luno.js +6 -0
  503. package/js/src/abstract/mercado.js +6 -0
  504. package/js/src/abstract/mexc.js +6 -0
  505. package/js/src/abstract/modetrade.js +6 -0
  506. package/js/src/abstract/myokx.js +6 -0
  507. package/js/src/abstract/ndax.js +6 -0
  508. package/js/src/abstract/novadax.js +6 -0
  509. package/js/src/abstract/oceanex.js +6 -0
  510. package/js/src/abstract/okcoin.js +6 -0
  511. package/js/src/abstract/okx.js +6 -0
  512. package/js/src/abstract/okxus.js +6 -0
  513. package/js/src/abstract/onetrading.js +6 -0
  514. package/js/src/abstract/oxfun.js +6 -0
  515. package/js/src/abstract/p2b.js +6 -0
  516. package/js/src/abstract/paradex.js +6 -0
  517. package/js/src/abstract/paymium.js +6 -0
  518. package/js/src/abstract/phemex.js +6 -0
  519. package/js/src/abstract/poloniex.js +6 -0
  520. package/js/src/abstract/probit.js +6 -0
  521. package/js/src/abstract/timex.js +6 -0
  522. package/js/src/abstract/tokocrypto.js +6 -0
  523. package/js/src/abstract/tradeogre.js +6 -0
  524. package/js/src/abstract/upbit.js +6 -0
  525. package/js/src/abstract/vertex.js +6 -0
  526. package/js/src/abstract/wavesexchange.js +6 -0
  527. package/js/src/abstract/whitebit.js +6 -0
  528. package/js/src/abstract/woo.js +6 -0
  529. package/js/src/abstract/woofipro.js +6 -0
  530. package/js/src/abstract/xt.js +6 -0
  531. package/js/src/abstract/yobit.js +6 -0
  532. package/js/src/abstract/zaif.js +6 -0
  533. package/js/src/abstract/zonda.js +6 -0
  534. package/js/src/alpaca.d.ts +1 -1
  535. package/js/src/alpaca.js +6 -0
  536. package/js/src/apex.d.ts +1 -1
  537. package/js/src/apex.js +6 -0
  538. package/js/src/ascendex.d.ts +1 -1
  539. package/js/src/ascendex.js +6 -0
  540. package/js/src/base/Exchange.d.ts +9 -7
  541. package/js/src/base/Exchange.js +47 -1
  542. package/js/src/base/Precise.js +6 -0
  543. package/js/src/base/errorHierarchy.js +6 -0
  544. package/js/src/base/errors.js +6 -0
  545. package/js/src/base/functions/crypto.js +6 -0
  546. package/js/src/base/functions/encode.js +6 -0
  547. package/js/src/base/functions/generic.js +6 -0
  548. package/js/src/base/functions/misc.js +6 -0
  549. package/js/src/base/functions/number.js +6 -0
  550. package/js/src/base/functions/platform.js +6 -0
  551. package/js/src/base/functions/rsa.js +6 -0
  552. package/js/src/base/functions/string.js +6 -0
  553. package/js/src/base/functions/throttle.js +6 -0
  554. package/js/src/base/functions/time.js +6 -0
  555. package/js/src/base/functions/totp.js +6 -0
  556. package/js/src/base/functions/type.js +6 -0
  557. package/js/src/base/functions.js +6 -0
  558. package/js/src/base/types.d.ts +2 -1
  559. package/js/src/base/types.js +6 -0
  560. package/js/src/base/ws/Cache.js +6 -0
  561. package/js/src/base/ws/Client.d.ts +1 -0
  562. package/js/src/base/ws/Client.js +11 -1
  563. package/js/src/base/ws/Future.js +6 -0
  564. package/js/src/base/ws/OrderBook.js +6 -0
  565. package/js/src/base/ws/OrderBookSide.js +6 -0
  566. package/js/src/base/ws/WsClient.js +6 -0
  567. package/js/src/base/ws/functions.js +6 -0
  568. package/js/src/bequant.js +6 -0
  569. package/js/src/bigone.d.ts +1 -1
  570. package/js/src/bigone.js +6 -0
  571. package/js/src/binance.d.ts +2 -2
  572. package/js/src/binance.js +7 -0
  573. package/js/src/binancecoinm.js +6 -0
  574. package/js/src/binanceus.js +6 -0
  575. package/js/src/binanceusdm.js +6 -0
  576. package/js/src/bingx.d.ts +3 -2
  577. package/js/src/bingx.js +38 -2
  578. package/js/src/bit2c.js +6 -0
  579. package/js/src/bitbank.d.ts +1 -1
  580. package/js/src/bitbank.js +6 -0
  581. package/js/src/bitbns.js +6 -0
  582. package/js/src/bitfinex.d.ts +1 -1
  583. package/js/src/bitfinex.js +9 -0
  584. package/js/src/bitflyer.d.ts +1 -1
  585. package/js/src/bitflyer.js +6 -0
  586. package/js/src/bitget.d.ts +4 -2
  587. package/js/src/bitget.js +44 -14
  588. package/js/src/bithumb.d.ts +1 -1
  589. package/js/src/bithumb.js +6 -0
  590. package/js/src/bitmart.d.ts +2 -2
  591. package/js/src/bitmart.js +6 -0
  592. package/js/src/bitmex.d.ts +2 -2
  593. package/js/src/bitmex.js +7 -0
  594. package/js/src/bitopro.d.ts +1 -1
  595. package/js/src/bitopro.js +6 -0
  596. package/js/src/bitrue.d.ts +2 -2
  597. package/js/src/bitrue.js +6 -0
  598. package/js/src/bitso.d.ts +1 -1
  599. package/js/src/bitso.js +6 -0
  600. package/js/src/bitstamp.d.ts +1 -1
  601. package/js/src/bitstamp.js +6 -0
  602. package/js/src/bitteam.js +6 -0
  603. package/js/src/bittrade.d.ts +1 -1
  604. package/js/src/bittrade.js +6 -0
  605. package/js/src/bitvavo.d.ts +1 -1
  606. package/js/src/bitvavo.js +6 -0
  607. package/js/src/blockchaincom.d.ts +1 -1
  608. package/js/src/blockchaincom.js +6 -0
  609. package/js/src/blofin.d.ts +1 -1
  610. package/js/src/blofin.js +6 -0
  611. package/js/src/btcalpha.js +6 -0
  612. package/js/src/btcbox.js +6 -0
  613. package/js/src/btcmarkets.d.ts +1 -1
  614. package/js/src/btcmarkets.js +6 -0
  615. package/js/src/btcturk.js +6 -0
  616. package/js/src/bybit.d.ts +2 -2
  617. package/js/src/bybit.js +6 -0
  618. package/js/src/cex.js +6 -0
  619. package/js/src/coinbase.d.ts +1 -1
  620. package/js/src/coinbase.js +6 -0
  621. package/js/src/coinbaseadvanced.js +6 -0
  622. package/js/src/coinbaseexchange.d.ts +1 -1
  623. package/js/src/coinbaseexchange.js +6 -0
  624. package/js/src/coinbaseinternational.d.ts +1 -1
  625. package/js/src/coinbaseinternational.js +6 -0
  626. package/js/src/coincatch.d.ts +2 -2
  627. package/js/src/coincatch.js +6 -0
  628. package/js/src/coincheck.js +6 -0
  629. package/js/src/coinex.d.ts +3 -3
  630. package/js/src/coinex.js +7 -1
  631. package/js/src/coinmate.d.ts +1 -1
  632. package/js/src/coinmate.js +6 -0
  633. package/js/src/coinmetro.js +6 -0
  634. package/js/src/coinone.js +6 -0
  635. package/js/src/coinsph.d.ts +1 -1
  636. package/js/src/coinsph.js +6 -0
  637. package/js/src/coinspot.js +6 -0
  638. package/js/src/cryptocom.d.ts +1 -1
  639. package/js/src/cryptocom.js +6 -0
  640. package/js/src/cryptomus.js +6 -0
  641. package/js/src/defx.d.ts +2 -2
  642. package/js/src/defx.js +6 -0
  643. package/js/src/delta.d.ts +1 -1
  644. package/js/src/delta.js +6 -0
  645. package/js/src/deribit.d.ts +1 -1
  646. package/js/src/deribit.js +6 -0
  647. package/js/src/derive.js +6 -0
  648. package/js/src/digifinex.d.ts +2 -2
  649. package/js/src/digifinex.js +6 -0
  650. package/js/src/ellipx.d.ts +1 -1
  651. package/js/src/ellipx.js +6 -0
  652. package/js/src/exmo.d.ts +1 -1
  653. package/js/src/exmo.js +6 -0
  654. package/js/src/fmfwio.js +6 -0
  655. package/js/src/foxbit.d.ts +1 -1
  656. package/js/src/foxbit.js +9 -3
  657. package/js/src/gate.d.ts +2 -2
  658. package/js/src/gate.js +27 -0
  659. package/js/src/gateio.js +6 -0
  660. package/js/src/gemini.d.ts +1 -1
  661. package/js/src/gemini.js +6 -0
  662. package/js/src/hashkey.d.ts +3 -3
  663. package/js/src/hashkey.js +6 -0
  664. package/js/src/hibachi.d.ts +1 -1
  665. package/js/src/hibachi.js +6 -0
  666. package/js/src/hitbtc.d.ts +2 -2
  667. package/js/src/hitbtc.js +6 -0
  668. package/js/src/hollaex.d.ts +1 -1
  669. package/js/src/hollaex.js +6 -0
  670. package/js/src/htx.d.ts +3 -3
  671. package/js/src/htx.js +7 -0
  672. package/js/src/huobi.js +6 -0
  673. package/js/src/hyperliquid.d.ts +12 -2
  674. package/js/src/hyperliquid.js +85 -28
  675. package/js/src/independentreserve.d.ts +1 -1
  676. package/js/src/independentreserve.js +6 -0
  677. package/js/src/indodax.d.ts +1 -1
  678. package/js/src/indodax.js +6 -0
  679. package/js/src/kraken.d.ts +1 -1
  680. package/js/src/kraken.js +6 -0
  681. package/js/src/krakenfutures.d.ts +1 -1
  682. package/js/src/krakenfutures.js +7 -0
  683. package/js/src/kucoin.d.ts +2 -2
  684. package/js/src/kucoin.js +6 -0
  685. package/js/src/kucoinfutures.d.ts +3 -2
  686. package/js/src/kucoinfutures.js +7 -0
  687. package/js/src/latoken.js +6 -0
  688. package/js/src/lbank.d.ts +1 -1
  689. package/js/src/lbank.js +7 -1
  690. package/js/src/luno.js +6 -0
  691. package/js/src/mercado.d.ts +1 -1
  692. package/js/src/mercado.js +6 -0
  693. package/js/src/mexc.d.ts +2 -2
  694. package/js/src/mexc.js +13 -0
  695. package/js/src/modetrade.d.ts +26 -3
  696. package/js/src/modetrade.js +102 -0
  697. package/js/src/myokx.js +6 -0
  698. package/js/src/ndax.d.ts +1 -1
  699. package/js/src/ndax.js +6 -0
  700. package/js/src/novadax.d.ts +1 -1
  701. package/js/src/novadax.js +6 -0
  702. package/js/src/oceanex.js +6 -0
  703. package/js/src/okcoin.d.ts +1 -1
  704. package/js/src/okcoin.js +6 -0
  705. package/js/src/okx.d.ts +2 -2
  706. package/js/src/okx.js +6 -0
  707. package/js/src/okxus.js +6 -0
  708. package/js/src/onetrading.js +39 -0
  709. package/js/src/oxfun.d.ts +1 -1
  710. package/js/src/oxfun.js +6 -0
  711. package/js/src/p2b.js +38 -0
  712. package/js/src/paradex.d.ts +1 -1
  713. package/js/src/paradex.js +7 -0
  714. package/js/src/paymium.js +6 -0
  715. package/js/src/phemex.d.ts +2 -2
  716. package/js/src/phemex.js +6 -0
  717. package/js/src/poloniex.d.ts +2 -2
  718. package/js/src/poloniex.js +6 -0
  719. package/js/src/pro/alpaca.js +6 -0
  720. package/js/src/pro/apex.js +6 -0
  721. package/js/src/pro/ascendex.js +6 -0
  722. package/js/src/pro/bequant.js +6 -0
  723. package/js/src/pro/binance.js +8 -1
  724. package/js/src/pro/binancecoinm.js +6 -0
  725. package/js/src/pro/binanceus.js +6 -0
  726. package/js/src/pro/binanceusdm.js +6 -0
  727. package/js/src/pro/bingx.js +6 -0
  728. package/js/src/pro/bitfinex.js +6 -0
  729. package/js/src/pro/bitget.js +6 -0
  730. package/js/src/pro/bithumb.js +6 -0
  731. package/js/src/pro/bitmart.js +6 -0
  732. package/js/src/pro/bitmex.js +6 -0
  733. package/js/src/pro/bitopro.js +6 -0
  734. package/js/src/pro/bitrue.js +6 -0
  735. package/js/src/pro/bitstamp.js +6 -0
  736. package/js/src/pro/bittrade.js +6 -0
  737. package/js/src/pro/bitvavo.js +7 -1
  738. package/js/src/pro/blockchaincom.js +6 -0
  739. package/js/src/pro/blofin.js +6 -0
  740. package/js/src/pro/bybit.js +7 -0
  741. package/js/src/pro/cex.js +6 -0
  742. package/js/src/pro/coinbase.js +6 -0
  743. package/js/src/pro/coinbaseadvanced.js +6 -0
  744. package/js/src/pro/coinbaseexchange.js +6 -0
  745. package/js/src/pro/coinbaseinternational.js +6 -0
  746. package/js/src/pro/coincatch.js +6 -0
  747. package/js/src/pro/coincheck.js +6 -0
  748. package/js/src/pro/coinex.js +7 -1
  749. package/js/src/pro/coinone.js +6 -0
  750. package/js/src/pro/cryptocom.js +6 -0
  751. package/js/src/pro/defx.js +6 -0
  752. package/js/src/pro/deribit.js +6 -0
  753. package/js/src/pro/derive.js +6 -0
  754. package/js/src/pro/exmo.js +6 -0
  755. package/js/src/pro/gate.js +6 -0
  756. package/js/src/pro/gateio.js +6 -0
  757. package/js/src/pro/gemini.js +6 -0
  758. package/js/src/pro/hashkey.js +6 -0
  759. package/js/src/pro/hitbtc.js +6 -0
  760. package/js/src/pro/hollaex.js +6 -0
  761. package/js/src/pro/htx.js +6 -0
  762. package/js/src/pro/huobi.js +6 -0
  763. package/js/src/pro/hyperliquid.d.ts +26 -0
  764. package/js/src/pro/hyperliquid.js +109 -12
  765. package/js/src/pro/independentreserve.js +6 -0
  766. package/js/src/pro/kraken.js +6 -0
  767. package/js/src/pro/krakenfutures.js +6 -0
  768. package/js/src/pro/kucoin.js +7 -1
  769. package/js/src/pro/kucoinfutures.js +7 -1
  770. package/js/src/pro/lbank.js +6 -0
  771. package/js/src/pro/luno.js +6 -0
  772. package/js/src/pro/mexc.d.ts +9 -6
  773. package/js/src/pro/mexc.js +353 -167
  774. package/js/src/pro/modetrade.js +6 -0
  775. package/js/src/pro/myokx.js +6 -0
  776. package/js/src/pro/ndax.js +6 -0
  777. package/js/src/pro/okcoin.js +6 -0
  778. package/js/src/pro/okx.js +8 -1
  779. package/js/src/pro/okxus.js +6 -0
  780. package/js/src/pro/onetrading.js +6 -0
  781. package/js/src/pro/oxfun.js +7 -1
  782. package/js/src/pro/p2b.js +6 -0
  783. package/js/src/pro/paradex.js +6 -0
  784. package/js/src/pro/phemex.js +6 -0
  785. package/js/src/pro/poloniex.js +6 -0
  786. package/js/src/pro/probit.js +6 -0
  787. package/js/src/pro/tradeogre.js +6 -0
  788. package/js/src/pro/upbit.js +6 -0
  789. package/js/src/pro/vertex.js +6 -0
  790. package/js/src/pro/whitebit.js +6 -0
  791. package/js/src/pro/woo.js +6 -0
  792. package/js/src/pro/woofipro.js +6 -0
  793. package/js/src/pro/xt.js +6 -0
  794. package/js/src/probit.d.ts +1 -1
  795. package/js/src/probit.js +41 -0
  796. package/js/src/protobuf/mexc/compiled.cjs +7186 -0
  797. package/js/src/protobuf/mexc/compiled.d.cts +2 -0
  798. package/js/src/static_dependencies/ethers/abi-coder.js +6 -0
  799. package/js/src/static_dependencies/ethers/address/address.js +6 -0
  800. package/js/src/static_dependencies/ethers/address/checks.js +6 -0
  801. package/js/src/static_dependencies/ethers/address/contract-address.js +6 -0
  802. package/js/src/static_dependencies/ethers/address/index.js +6 -0
  803. package/js/src/static_dependencies/ethers/bytes32.js +6 -0
  804. package/js/src/static_dependencies/ethers/coders/abstract-coder.js +6 -0
  805. package/js/src/static_dependencies/ethers/coders/address.js +6 -0
  806. package/js/src/static_dependencies/ethers/coders/anonymous.js +6 -0
  807. package/js/src/static_dependencies/ethers/coders/array.js +6 -0
  808. package/js/src/static_dependencies/ethers/coders/boolean.js +6 -0
  809. package/js/src/static_dependencies/ethers/coders/bytes.js +6 -0
  810. package/js/src/static_dependencies/ethers/coders/fixed-bytes.js +6 -0
  811. package/js/src/static_dependencies/ethers/coders/null.js +6 -0
  812. package/js/src/static_dependencies/ethers/coders/number.js +6 -0
  813. package/js/src/static_dependencies/ethers/coders/string.js +6 -0
  814. package/js/src/static_dependencies/ethers/coders/tuple.js +6 -0
  815. package/js/src/static_dependencies/ethers/fragments.js +6 -0
  816. package/js/src/static_dependencies/ethers/hash/index.js +6 -0
  817. package/js/src/static_dependencies/ethers/hash/solidity.js +6 -0
  818. package/js/src/static_dependencies/ethers/hash/typed-data.js +6 -0
  819. package/js/src/static_dependencies/ethers/index.js +6 -0
  820. package/js/src/static_dependencies/ethers/interface.js +6 -0
  821. package/js/src/static_dependencies/ethers/typed.js +6 -0
  822. package/js/src/static_dependencies/ethers/utils/base58.js +6 -0
  823. package/js/src/static_dependencies/ethers/utils/base64-browser.js +6 -0
  824. package/js/src/static_dependencies/ethers/utils/base64.js +6 -0
  825. package/js/src/static_dependencies/ethers/utils/data.js +6 -0
  826. package/js/src/static_dependencies/ethers/utils/errors.js +6 -0
  827. package/js/src/static_dependencies/ethers/utils/events.js +6 -0
  828. package/js/src/static_dependencies/ethers/utils/fixednumber.js +6 -0
  829. package/js/src/static_dependencies/ethers/utils/index.js +6 -0
  830. package/js/src/static_dependencies/ethers/utils/maths.js +6 -0
  831. package/js/src/static_dependencies/ethers/utils/properties.js +6 -0
  832. package/js/src/static_dependencies/ethers/utils/rlp-decode.js +6 -0
  833. package/js/src/static_dependencies/ethers/utils/rlp-encode.js +6 -0
  834. package/js/src/static_dependencies/ethers/utils/rlp.js +6 -0
  835. package/js/src/static_dependencies/ethers/utils/units.js +6 -0
  836. package/js/src/static_dependencies/ethers/utils/utf8.js +6 -0
  837. package/js/src/static_dependencies/ethers/utils/uuid.js +6 -0
  838. package/js/src/static_dependencies/fflake/browser.js +6 -0
  839. package/js/src/static_dependencies/jsencrypt/JSEncrypt.js +6 -0
  840. package/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +6 -0
  841. package/js/src/static_dependencies/jsencrypt/index.js +6 -0
  842. package/js/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +6 -0
  843. package/js/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +6 -0
  844. package/js/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +6 -0
  845. package/js/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +6 -0
  846. package/js/src/static_dependencies/jsencrypt/lib/asn1js/oids.js +6 -0
  847. package/js/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +6 -0
  848. package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +6 -0
  849. package/js/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +6 -0
  850. package/js/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +6 -0
  851. package/js/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +6 -0
  852. package/js/src/static_dependencies/jsencrypt/lib/jsbn/util.js +6 -0
  853. package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +6 -0
  854. package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +6 -0
  855. package/js/src/static_dependencies/messagepack/msgpack.js +6 -0
  856. package/js/src/static_dependencies/noble-curves/_shortw_utils.js +6 -0
  857. package/js/src/static_dependencies/noble-curves/abstract/curve.js +6 -0
  858. package/js/src/static_dependencies/noble-curves/abstract/edwards.js +6 -0
  859. package/js/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +6 -0
  860. package/js/src/static_dependencies/noble-curves/abstract/modular.js +6 -0
  861. package/js/src/static_dependencies/noble-curves/abstract/montgomery.js +6 -0
  862. package/js/src/static_dependencies/noble-curves/abstract/poseidon.js +6 -0
  863. package/js/src/static_dependencies/noble-curves/abstract/utils.js +6 -0
  864. package/js/src/static_dependencies/noble-curves/abstract/weierstrass.js +6 -0
  865. package/js/src/static_dependencies/noble-curves/bn.js +6 -0
  866. package/js/src/static_dependencies/noble-curves/ed25519.js +6 -0
  867. package/js/src/static_dependencies/noble-curves/ed448.js +6 -0
  868. package/js/src/static_dependencies/noble-curves/index.js +6 -0
  869. package/js/src/static_dependencies/noble-curves/jubjub.js +6 -0
  870. package/js/src/static_dependencies/noble-curves/p256.js +6 -0
  871. package/js/src/static_dependencies/noble-curves/p384.js +6 -0
  872. package/js/src/static_dependencies/noble-curves/p521.js +6 -0
  873. package/js/src/static_dependencies/noble-curves/pasta.js +6 -0
  874. package/js/src/static_dependencies/noble-curves/secp256k1.js +6 -0
  875. package/js/src/static_dependencies/noble-hashes/_assert.js +6 -0
  876. package/js/src/static_dependencies/noble-hashes/_blake2.js +6 -0
  877. package/js/src/static_dependencies/noble-hashes/_sha2.js +6 -0
  878. package/js/src/static_dependencies/noble-hashes/_u64.js +6 -0
  879. package/js/src/static_dependencies/noble-hashes/argon2.js +6 -0
  880. package/js/src/static_dependencies/noble-hashes/blake2b.js +6 -0
  881. package/js/src/static_dependencies/noble-hashes/blake2s.js +6 -0
  882. package/js/src/static_dependencies/noble-hashes/blake3.js +6 -0
  883. package/js/src/static_dependencies/noble-hashes/crypto.js +6 -0
  884. package/js/src/static_dependencies/noble-hashes/cryptoNode.js +6 -0
  885. package/js/src/static_dependencies/noble-hashes/eskdf.js +6 -0
  886. package/js/src/static_dependencies/noble-hashes/hkdf.js +6 -0
  887. package/js/src/static_dependencies/noble-hashes/hmac.js +6 -0
  888. package/js/src/static_dependencies/noble-hashes/index.js +6 -0
  889. package/js/src/static_dependencies/noble-hashes/md5.js +6 -0
  890. package/js/src/static_dependencies/noble-hashes/pbkdf2.js +6 -0
  891. package/js/src/static_dependencies/noble-hashes/ripemd160.js +6 -0
  892. package/js/src/static_dependencies/noble-hashes/scrypt.js +6 -0
  893. package/js/src/static_dependencies/noble-hashes/sha1.js +6 -0
  894. package/js/src/static_dependencies/noble-hashes/sha256.js +6 -0
  895. package/js/src/static_dependencies/noble-hashes/sha3-addons.js +6 -0
  896. package/js/src/static_dependencies/noble-hashes/sha3.js +6 -0
  897. package/js/src/static_dependencies/noble-hashes/sha512.js +6 -0
  898. package/js/src/static_dependencies/noble-hashes/utils.js +6 -0
  899. package/js/src/static_dependencies/node-fetch/body.js +6 -0
  900. package/js/src/static_dependencies/node-fetch/errors/abort-error.js +6 -0
  901. package/js/src/static_dependencies/node-fetch/errors/base.js +6 -0
  902. package/js/src/static_dependencies/node-fetch/errors/fetch-error.js +6 -0
  903. package/js/src/static_dependencies/node-fetch/headers.js +6 -0
  904. package/js/src/static_dependencies/node-fetch/index.js +6 -0
  905. package/js/src/static_dependencies/node-fetch/request.js +6 -0
  906. package/js/src/static_dependencies/node-fetch/response.js +6 -0
  907. package/js/src/static_dependencies/node-fetch/utils/get-search.js +6 -0
  908. package/js/src/static_dependencies/node-fetch/utils/is-redirect.js +6 -0
  909. package/js/src/static_dependencies/node-fetch/utils/is.js +6 -0
  910. package/js/src/static_dependencies/node-fetch/utils/referrer.js +6 -0
  911. package/js/src/static_dependencies/proxies/agent-base/helpers.js +6 -0
  912. package/js/src/static_dependencies/proxies/agent-base/index.js +6 -0
  913. package/js/src/static_dependencies/proxies/http-proxy-agent/index.js +6 -0
  914. package/js/src/static_dependencies/proxies/https-proxy-agent/index.js +6 -0
  915. package/js/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +6 -0
  916. package/js/src/static_dependencies/qs/formats.cjs +6 -0
  917. package/js/src/static_dependencies/qs/index.cjs +6 -0
  918. package/js/src/static_dependencies/qs/parse.cjs +6 -0
  919. package/js/src/static_dependencies/qs/stringify.cjs +6 -0
  920. package/js/src/static_dependencies/qs/utils.cjs +6 -0
  921. package/js/src/static_dependencies/scure-base/index.js +6 -0
  922. package/js/src/static_dependencies/scure-starknet/index.js +6 -0
  923. package/js/src/static_dependencies/starknet/constants.js +6 -0
  924. package/js/src/static_dependencies/starknet/index.js +6 -0
  925. package/js/src/static_dependencies/starknet/types/cairoEnum.js +6 -0
  926. package/js/src/static_dependencies/starknet/types/calldata.js +6 -0
  927. package/js/src/static_dependencies/starknet/types/index.js +6 -0
  928. package/js/src/static_dependencies/starknet/types/lib/contract/abi.js +6 -0
  929. package/js/src/static_dependencies/starknet/types/lib/contract/index.js +6 -0
  930. package/js/src/static_dependencies/starknet/types/lib/contract/legacy.js +6 -0
  931. package/js/src/static_dependencies/starknet/types/lib/contract/sierra.js +6 -0
  932. package/js/src/static_dependencies/starknet/types/lib/index.js +6 -0
  933. package/js/src/static_dependencies/starknet/types/typedData.js +6 -0
  934. package/js/src/static_dependencies/starknet/utils/address.js +6 -0
  935. package/js/src/static_dependencies/starknet/utils/assert.js +6 -0
  936. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +6 -0
  937. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +6 -0
  938. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +6 -0
  939. package/js/src/static_dependencies/starknet/utils/calldata/byteArray.js +6 -0
  940. package/js/src/static_dependencies/starknet/utils/calldata/cairo.js +6 -0
  941. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +6 -0
  942. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +6 -0
  943. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +6 -0
  944. package/js/src/static_dependencies/starknet/utils/calldata/enum/index.js +6 -0
  945. package/js/src/static_dependencies/starknet/utils/calldata/formatter.js +6 -0
  946. package/js/src/static_dependencies/starknet/utils/calldata/index.js +6 -0
  947. package/js/src/static_dependencies/starknet/utils/calldata/parser/index.js +6 -0
  948. package/js/src/static_dependencies/starknet/utils/calldata/parser/interface.js +6 -0
  949. package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +6 -0
  950. package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +6 -0
  951. package/js/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +6 -0
  952. package/js/src/static_dependencies/starknet/utils/calldata/requestParser.js +6 -0
  953. package/js/src/static_dependencies/starknet/utils/calldata/responseParser.js +6 -0
  954. package/js/src/static_dependencies/starknet/utils/calldata/tuple.js +6 -0
  955. package/js/src/static_dependencies/starknet/utils/calldata/validate.js +6 -0
  956. package/js/src/static_dependencies/starknet/utils/encode.js +6 -0
  957. package/js/src/static_dependencies/starknet/utils/hash/classHash.js +6 -0
  958. package/js/src/static_dependencies/starknet/utils/hash/index.js +6 -0
  959. package/js/src/static_dependencies/starknet/utils/merkle.js +6 -0
  960. package/js/src/static_dependencies/starknet/utils/num.js +6 -0
  961. package/js/src/static_dependencies/starknet/utils/selector.js +6 -0
  962. package/js/src/static_dependencies/starknet/utils/shortString.js +6 -0
  963. package/js/src/static_dependencies/starknet/utils/starknetId.js +6 -0
  964. package/js/src/static_dependencies/starknet/utils/typedData.js +6 -0
  965. package/js/src/static_dependencies/starknet/utils/uint256.js +6 -0
  966. package/js/src/static_dependencies/starknet/utils/url.js +6 -0
  967. package/js/src/static_dependencies/watchable/src/index.js +6 -0
  968. package/js/src/static_dependencies/watchable/src/types.js +6 -0
  969. package/js/src/static_dependencies/watchable/src/unpromise.js +6 -0
  970. package/js/src/static_dependencies/zklink/zklink-sdk-web.js +6 -0
  971. package/js/src/timex.js +6 -0
  972. package/js/src/tokocrypto.d.ts +1 -1
  973. package/js/src/tokocrypto.js +6 -0
  974. package/js/src/tradeogre.js +6 -0
  975. package/js/src/upbit.d.ts +1 -1
  976. package/js/src/upbit.js +6 -0
  977. package/js/src/vertex.d.ts +1 -1
  978. package/js/src/vertex.js +6 -0
  979. package/js/src/wavesexchange.d.ts +1 -1
  980. package/js/src/wavesexchange.js +6 -0
  981. package/js/src/whitebit.d.ts +2 -2
  982. package/js/src/whitebit.js +6 -0
  983. package/js/src/woo.d.ts +4 -4
  984. package/js/src/woo.js +6 -0
  985. package/js/src/woofipro.d.ts +26 -3
  986. package/js/src/woofipro.js +102 -0
  987. package/js/src/xt.d.ts +3 -3
  988. package/js/src/xt.js +6 -0
  989. package/js/src/yobit.d.ts +1 -1
  990. package/js/src/yobit.js +6 -0
  991. package/js/src/zaif.d.ts +1 -1
  992. package/js/src/zaif.js +6 -0
  993. package/js/src/zonda.d.ts +1 -1
  994. package/js/src/zonda.js +6 -0
  995. package/package.json +4 -3
@@ -1,3 +1,9 @@
1
+ // ----------------------------------------------------------------------------
2
+
3
+ // PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
4
+ // https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
5
+ // EDIT THE CORRESPONDENT .ts FILE INSTEAD
6
+
1
7
  // ---------------------------------------------------------------------------
2
8
  import mexcRest from '../mexc.js';
3
9
  import { ArgumentsRequired, AuthenticationError, NotSupported } from '../base/errors.js';
@@ -38,13 +44,14 @@ export default class mexc extends mexcRest {
38
44
  'urls': {
39
45
  'api': {
40
46
  'ws': {
41
- 'spot': 'wss://wbs.mexc.com/ws',
47
+ 'spot': 'wss://wbs-api.mexc.com/ws',
42
48
  'swap': 'wss://contract.mexc.com/edge',
43
49
  },
44
50
  },
45
51
  },
46
52
  'options': {
47
53
  'listenKeyRefreshRate': 1200000,
54
+ 'decompressBinary': false,
48
55
  // TODO add reset connection after #16754 is merged
49
56
  'timeframes': {
50
57
  '1m': 'Min1',
@@ -88,15 +95,7 @@ export default class mexc extends mexcRest {
88
95
  const market = this.market(symbol);
89
96
  const messageHash = 'ticker:' + market['symbol'];
90
97
  if (market['spot']) {
91
- let miniTicker = false;
92
- [miniTicker, params] = this.handleOptionAndParams(params, 'watchTicker', 'miniTicker');
93
- let channel = undefined;
94
- if (miniTicker) {
95
- channel = 'spot@public.miniTicker.v3.api@' + market['id'] + '@UTC+8';
96
- }
97
- else {
98
- channel = 'spot@public.bookTicker.v3.api@' + market['id'];
99
- }
98
+ const channel = 'spot@public.aggre.bookTicker.v3.api.pb@100ms@' + market['id'];
100
99
  return await this.watchSpotPublic(channel, messageHash, params);
101
100
  }
102
101
  else {
@@ -176,9 +175,9 @@ export default class mexc extends mexcRest {
176
175
  // }
177
176
  //
178
177
  this.handleBidAsk(client, message);
179
- const rawTicker = this.safeDict2(message, 'd', 'data');
178
+ const rawTicker = this.safeDictN(message, ['d', 'data', 'publicAggreBookTicker']);
180
179
  const marketId = this.safeString2(message, 's', 'symbol');
181
- const timestamp = this.safeInteger(message, 't');
180
+ const timestamp = this.safeInteger2(message, 't', 'sendtime');
182
181
  const market = this.safeMarket(marketId);
183
182
  const symbol = market['symbol'];
184
183
  let ticker = undefined;
@@ -221,34 +220,33 @@ export default class mexc extends mexcRest {
221
220
  const url = (isSpot) ? this.urls['api']['ws']['spot'] : this.urls['api']['ws']['swap'];
222
221
  const request = {};
223
222
  if (isSpot) {
224
- let miniTicker = false;
225
- [miniTicker, params] = this.handleOptionAndParams(params, 'watchTickers', 'miniTicker');
226
- const topics = [];
227
- if (!miniTicker) {
228
- if (symbols === undefined) {
229
- throw new ArgumentsRequired(this.id + ' watchTickers required symbols argument for the bookTicker channel');
230
- }
231
- const marketIds = this.marketIds(symbols);
232
- for (let i = 0; i < marketIds.length; i++) {
233
- const marketId = marketIds[i];
234
- messageHashes.push('ticker:' + symbols[i]);
235
- const channel = 'spot@public.bookTicker.v3.api@' + marketId;
236
- topics.push(channel);
237
- }
238
- }
239
- else {
240
- topics.push('spot@public.miniTickers.v3.api@UTC+8');
241
- if (symbols === undefined) {
242
- messageHashes.push('spot:ticker');
243
- }
244
- else {
245
- for (let i = 0; i < symbols.length; i++) {
246
- messageHashes.push('ticker:' + symbols[i]);
247
- }
248
- }
249
- }
250
- request['method'] = 'SUBSCRIPTION';
251
- request['params'] = topics;
223
+ throw new NotSupported(this.id + ' watchTickers does not support spot markets');
224
+ // let miniTicker = false;
225
+ // [ miniTicker, params ] = this.handleOptionAndParams (params, 'watchTickers', 'miniTicker');
226
+ // const topics = [];
227
+ // if (!miniTicker) {
228
+ // if (symbols === undefined) {
229
+ // throw new ArgumentsRequired (this.id + ' watchTickers required symbols argument for the bookTicker channel');
230
+ // }
231
+ // const marketIds = this.marketIds (symbols);
232
+ // for (let i = 0; i < marketIds.length; i++) {
233
+ // const marketId = marketIds[i];
234
+ // messageHashes.push ('ticker:' + symbols[i]);
235
+ // const channel = 'spot@public.bookTicker.v3.api@' + marketId;
236
+ // topics.push (channel);
237
+ // }
238
+ // } else {
239
+ // topics.push ('spot@public.miniTickers.v3.api@UTC+8');
240
+ // if (symbols === undefined) {
241
+ // messageHashes.push ('spot:ticker');
242
+ // } else {
243
+ // for (let i = 0; i < symbols.length; i++) {
244
+ // messageHashes.push ('ticker:' + symbols[i]);
245
+ // }
246
+ // }
247
+ // }
248
+ // request['method'] = 'SUBSCRIPTION';
249
+ // request['params'] = topics;
252
250
  }
253
251
  else {
254
252
  request['method'] = 'sub.tickers';
@@ -353,6 +351,11 @@ export default class mexc extends mexcRest {
353
351
  client.resolve(result, topic);
354
352
  }
355
353
  parseWsTicker(ticker, market = undefined) {
354
+ // protobuf ticker
355
+ // "bidprice": "93387.28", // Best bid price
356
+ // "bidquantity": "3.73485", // Best bid quantity
357
+ // "askprice": "93387.29", // Best ask price
358
+ // "askquantity": "7.669875" // Best ask quantity
356
359
  //
357
360
  // spot
358
361
  //
@@ -367,7 +370,7 @@ export default class mexc extends mexcRest {
367
370
  //
368
371
  // {
369
372
  // "s": "BTCUSDT",
370
- // "p": "76522",
373
+ // "p": "76521",
371
374
  // "r": "0.0012",
372
375
  // "tr": "0.0012",
373
376
  // "h": "77196.3",
@@ -393,10 +396,10 @@ export default class mexc extends mexcRest {
393
396
  'low': this.safeNumber(ticker, 'l'),
394
397
  'close': price,
395
398
  'last': price,
396
- 'bid': this.safeNumber(ticker, 'b'),
397
- 'bidVolume': this.safeNumber(ticker, 'B'),
398
- 'ask': this.safeNumber(ticker, 'a'),
399
- 'askVolume': this.safeNumber(ticker, 'A'),
399
+ 'bid': this.safeNumber2(ticker, 'b', 'bidPrice'),
400
+ 'bidVolume': this.safeNumber2(ticker, 'B', 'bidQuantity'),
401
+ 'ask': this.safeNumber2(ticker, 'a', 'askPrice'),
402
+ 'askVolume': this.safeNumber2(ticker, 'A', 'askQuantity'),
400
403
  'vwap': undefined,
401
404
  'previousClose': undefined,
402
405
  'change': undefined,
@@ -433,7 +436,7 @@ export default class mexc extends mexcRest {
433
436
  for (let i = 0; i < symbols.length; i++) {
434
437
  if (isSpot) {
435
438
  const market = this.market(symbols[i]);
436
- topics.push('spot@public.bookTicker.v3.api@' + market['id']);
439
+ topics.push('spot@public.aggre.bookTicker.v3.api.pb@100ms@' + market['id']);
437
440
  }
438
441
  messageHashes.push('bidask:' + symbols[i]);
439
442
  }
@@ -541,7 +544,7 @@ export default class mexc extends mexcRest {
541
544
  /**
542
545
  * @method
543
546
  * @name mexc#watchOHLCV
544
- * @see https://mexcdevelop.github.io/apidocs/spot_v3_en/#kline-streams
547
+ * @see https://www.mexc.com/api-docs/spot-v3/websocket-market-streams#trade-streams
545
548
  * @description watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
546
549
  * @param {string} symbol unified symbol of the market to fetch OHLCV data for
547
550
  * @param {string} timeframe the length of time each candle represents
@@ -559,7 +562,7 @@ export default class mexc extends mexcRest {
559
562
  const messageHash = 'candles:' + symbol + ':' + timeframe;
560
563
  let ohlcv = undefined;
561
564
  if (market['spot']) {
562
- const channel = 'spot@public.kline.v3.api@' + market['id'] + '@' + timeframeId;
565
+ const channel = 'spot@public.kline.v3.api.pb@' + market['id'] + '@' + timeframeId;
563
566
  ohlcv = await this.watchSpotPublic(channel, messageHash, params);
564
567
  }
565
568
  else {
@@ -621,17 +624,47 @@ export default class mexc extends mexcRest {
621
624
  // "symbol": "BTC_USDT",
622
625
  // "ts": 1651230713067
623
626
  // }
627
+ // protobuf
628
+ // {
629
+ // "channel":"spot@public.kline.v3.api.pb@BTCUSDT@Min1",
630
+ // "symbol":"BTCUSDT",
631
+ // "symbolId":"2fb942154ef44a4ab2ef98c8afb6a4a7",
632
+ // "createTime":"1754737941062",
633
+ // "publicSpotKline":{
634
+ // "interval":"Min1",
635
+ // "windowStart":"1754737920",
636
+ // "openingPrice":"117317.31",
637
+ // "closingPrice":"117325.26",
638
+ // "highestPrice":"117341",
639
+ // "lowestPrice":"117317.3",
640
+ // "volume":"3.12599854",
641
+ // "amount":"366804.43",
642
+ // "windowEnd":"1754737980"
643
+ // }
644
+ // }
624
645
  //
625
- const d = this.safeValue2(message, 'd', 'data', {});
626
- const rawOhlcv = this.safeValue(d, 'k', d);
627
- const timeframeId = this.safeString2(rawOhlcv, 'i', 'interval');
628
- const timeframes = this.safeValue(this.options, 'timeframes', {});
629
- const timeframe = this.findTimeframe(timeframeId, timeframes);
630
- const marketId = this.safeString2(message, 's', 'symbol');
631
- const market = this.safeMarket(marketId);
632
- const symbol = market['symbol'];
646
+ let parsed = undefined;
647
+ let symbol = undefined;
648
+ let timeframe = undefined;
649
+ if ('publicSpotKline' in message) {
650
+ symbol = this.symbol(this.safeString(message, 'symbol'));
651
+ const data = this.safeDict(message, 'publicSpotKline', {});
652
+ const timeframeId = this.safeString(data, 'interval');
653
+ timeframe = this.findTimeframe(timeframeId, this.options['timeframes']);
654
+ parsed = this.parseWsOHLCV(data, this.safeMarket(symbol));
655
+ }
656
+ else {
657
+ const d = this.safeValue2(message, 'd', 'data', {});
658
+ const rawOhlcv = this.safeValue(d, 'k', d);
659
+ const timeframeId = this.safeString2(rawOhlcv, 'i', 'interval');
660
+ const timeframes = this.safeValue(this.options, 'timeframes', {});
661
+ timeframe = this.findTimeframe(timeframeId, timeframes);
662
+ const marketId = this.safeString2(message, 's', 'symbol');
663
+ const market = this.safeMarket(marketId);
664
+ symbol = market['symbol'];
665
+ parsed = this.parseWsOHLCV(rawOhlcv, market);
666
+ }
633
667
  const messageHash = 'candles:' + symbol + ':' + timeframe;
634
- const parsed = this.parseWsOHLCV(rawOhlcv, market);
635
668
  this.ohlcvs[symbol] = this.safeValue(this.ohlcvs, symbol, {});
636
669
  let stored = this.safeValue(this.ohlcvs[symbol], timeframe);
637
670
  if (stored === undefined) {
@@ -674,25 +707,37 @@ export default class mexc extends mexcRest {
674
707
  // "rh": 27301.8,
675
708
  // "rl": 27301.8
676
709
  // }
710
+ // protobuf
711
+ //
712
+ // "interval":"Min1",
713
+ // "windowStart":"1754737920",
714
+ // "openingPrice":"117317.31",
715
+ // "closingPrice":"117325.26",
716
+ // "highestPrice":"117341",
717
+ // "lowestPrice":"117317.3",
718
+ // "volume":"3.12599854",
719
+ // "amount":"366804.43",
720
+ // "windowEnd":"1754737980"
677
721
  //
678
722
  return [
679
- this.safeTimestamp(ohlcv, 't'),
680
- this.safeNumber(ohlcv, 'o'),
681
- this.safeNumber(ohlcv, 'h'),
682
- this.safeNumber(ohlcv, 'l'),
683
- this.safeNumber(ohlcv, 'c'),
684
- this.safeNumber2(ohlcv, 'v', 'q'),
723
+ this.safeTimestamp2(ohlcv, 't', 'windowStart'),
724
+ this.safeNumber2(ohlcv, 'o', 'openingPrice'),
725
+ this.safeNumber2(ohlcv, 'h', 'highestPrice'),
726
+ this.safeNumber2(ohlcv, 'l', 'lowestPrice'),
727
+ this.safeNumber2(ohlcv, 'c', 'closingPrice'),
728
+ this.safeNumber2(ohlcv, 'v', 'volume'),
685
729
  ];
686
730
  }
687
731
  /**
688
732
  * @method
689
733
  * @name mexc#watchOrderBook
690
- * @see https://mexcdevelop.github.io/apidocs/spot_v3_en/#diff-depth-stream
734
+ * @see https://www.mexc.com/api-docs/spot-v3/websocket-market-streams#trade-streams
691
735
  * @see https://mexcdevelop.github.io/apidocs/contract_v1_en/#public-channels
692
736
  * @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
693
737
  * @param {string} symbol unified symbol of the market to fetch the order book for
694
738
  * @param {int} [limit] the maximum amount of order book entries to return
695
739
  * @param {object} [params] extra parameters specific to the exchange API endpoint
740
+ * @param {string} [params.frequency] the frequency of the order book updates, default is '10ms', can be '100ms' or '10ms
696
741
  * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
697
742
  */
698
743
  async watchOrderBook(symbol, limit = undefined, params = {}) {
@@ -702,7 +747,9 @@ export default class mexc extends mexcRest {
702
747
  const messageHash = 'orderbook:' + symbol;
703
748
  let orderbook = undefined;
704
749
  if (market['spot']) {
705
- const channel = 'spot@public.increase.depth.v3.api@' + market['id'];
750
+ let frequency = undefined;
751
+ [frequency, params] = this.handleOptionAndParams(params, 'watchOrderBook', 'frequency', '100ms');
752
+ const channel = 'spot@public.aggre.depth.v3.api.pb@' + frequency + '@' + market['id'];
706
753
  orderbook = await this.watchSpotPublic(channel, messageHash, params);
707
754
  }
708
755
  else {
@@ -728,13 +775,13 @@ export default class mexc extends mexcRest {
728
775
  // return the first index of the cache that can be applied to the orderbook or -1 if not possible
729
776
  const nonce = this.safeInteger(orderbook, 'nonce');
730
777
  const firstDelta = this.safeValue(cache, 0);
731
- const firstDeltaNonce = this.safeInteger2(firstDelta, 'r', 'version');
778
+ const firstDeltaNonce = this.safeIntegerN(firstDelta, ['r', 'version', 'fromVersion']);
732
779
  if (nonce < firstDeltaNonce - 1) {
733
780
  return -1;
734
781
  }
735
782
  for (let i = 0; i < cache.length; i++) {
736
783
  const delta = cache[i];
737
- const deltaNonce = this.safeInteger2(delta, 'r', 'version');
784
+ const deltaNonce = this.safeIntegerN(delta, ['r', 'version', 'fromVersion']);
738
785
  if (deltaNonce >= nonce) {
739
786
  return i;
740
787
  }
@@ -784,8 +831,31 @@ export default class mexc extends mexcRest {
784
831
  // "symbol":"BTC_USDT",
785
832
  // "ts":1651239652372
786
833
  // }
834
+ // protofbuf
835
+ // {
836
+ // "channel":"spot@public.aggre.depth.v3.api.pb@100ms@BTCUSDT",
837
+ // "symbol":"BTCUSDT",
838
+ // "sendTime":"1754741322152",
839
+ // "publicAggreDepths":{
840
+ // "asks":[
841
+ // {
842
+ // "price":"117145.49",
843
+ // "quantity":"0"
844
+ // }
845
+ // ],
846
+ // "bids":[
847
+ // {
848
+ // "price":"117053.41",
849
+ // "quantity":"1.86837271"
850
+ // }
851
+ // ],
852
+ // "eventType":"spot@public.aggre.depth.v3.api.pb@100ms",
853
+ // "fromVersion":"43296363236",
854
+ // "toVersion":"43296363255"
855
+ // }
856
+ // }
787
857
  //
788
- const data = this.safeValue2(message, 'd', 'data');
858
+ const data = this.safeDictN(message, ['d', 'data', 'publicAggreDepths']);
789
859
  const marketId = this.safeString2(message, 's', 'symbol');
790
860
  const symbol = this.safeSymbol(marketId);
791
861
  const messageHash = 'orderbook:' + symbol;
@@ -807,7 +877,7 @@ export default class mexc extends mexcRest {
807
877
  }
808
878
  try {
809
879
  this.handleDelta(storedOrderBook, data);
810
- const timestamp = this.safeInteger2(message, 't', 'ts');
880
+ const timestamp = this.safeIntegerN(message, ['t', 'ts', 'sendTime']);
811
881
  storedOrderBook['timestamp'] = timestamp;
812
882
  storedOrderBook['datetime'] = this.iso8601(timestamp);
813
883
  }
@@ -830,15 +900,15 @@ export default class mexc extends mexcRest {
830
900
  bookside.storeArray(bidask);
831
901
  }
832
902
  else {
833
- const price = this.safeFloat(bidask, 'p');
834
- const amount = this.safeFloat(bidask, 'v');
903
+ const price = this.safeFloat2(bidask, 'p', 'price');
904
+ const amount = this.safeFloat2(bidask, 'v', 'quantity');
835
905
  bookside.store(price, amount);
836
906
  }
837
907
  }
838
908
  }
839
909
  handleDelta(orderbook, delta) {
840
910
  const existingNonce = this.safeInteger(orderbook, 'nonce');
841
- const deltaNonce = this.safeInteger2(delta, 'r', 'version');
911
+ const deltaNonce = this.safeIntegerN(delta, ['r', 'version', 'fromVersion']);
842
912
  if (deltaNonce < existingNonce) {
843
913
  // even when doing < comparison, this happens: https://app.travis-ci.com/github/ccxt/ccxt/builds/269234741#L1809
844
914
  // so, we just skip old updates
@@ -855,7 +925,7 @@ export default class mexc extends mexcRest {
855
925
  /**
856
926
  * @method
857
927
  * @name mexc#watchTrades
858
- * @see https://mexcdevelop.github.io/apidocs/spot_v3_en/#trade-streams
928
+ * @see https://www.mexc.com/api-docs/spot-v3/websocket-market-streams#trade-streams
859
929
  * @see https://mexcdevelop.github.io/apidocs/contract_v1_en/#public-channels
860
930
  * @description get the list of most recent trades for a particular symbol
861
931
  * @param {string} symbol unified symbol of the market to fetch trades for
@@ -871,7 +941,7 @@ export default class mexc extends mexcRest {
871
941
  const messageHash = 'trades:' + symbol;
872
942
  let trades = undefined;
873
943
  if (market['spot']) {
874
- const channel = 'spot@public.deals.v3.api@' + market['id'];
944
+ const channel = 'spot@public.aggre.deals.v3.api.pb@100ms@' + market['id'];
875
945
  trades = await this.watchSpotPublic(channel, messageHash, params);
876
946
  }
877
947
  else {
@@ -887,6 +957,23 @@ export default class mexc extends mexcRest {
887
957
  return this.filterBySinceLimit(trades, since, limit, 'timestamp', true);
888
958
  }
889
959
  handleTrades(client, message) {
960
+ // protobuf
961
+ // {
962
+ // "channel": "spot@public.aggre.deals.v3.api.pb@100ms@BTCUSDT",
963
+ // "publicdeals": {
964
+ // "dealsList": [
965
+ // {
966
+ // "price": "93220.00", // Trade price
967
+ // "quantity": "0.04438243", // Trade quantity
968
+ // "tradetype": 2, // Trade type (1: Buy, 2: Sell)
969
+ // "time": 1736409765051 // Trade time
970
+ // }
971
+ // ],
972
+ // "eventtype": "spot@public.aggre.deals.v3.api.pb@100ms" // Event type
973
+ // },
974
+ // "symbol": "BTCUSDT", // Trading pair
975
+ // "sendtime": 1736409765052 // Event time
976
+ // }
890
977
  //
891
978
  // {
892
979
  // "c": "spot@public.deals.v3.api@BTCUSDT",
@@ -928,8 +1015,8 @@ export default class mexc extends mexcRest {
928
1015
  stored = new ArrayCache(limit);
929
1016
  this.trades[symbol] = stored;
930
1017
  }
931
- const d = this.safeValue2(message, 'd', 'data');
932
- const trades = this.safeValue(d, 'deals', [d]);
1018
+ const d = this.safeDictN(message, ['d', 'data', 'publicAggreDeals']);
1019
+ const trades = this.safeList2(d, 'deals', 'dealsList', [d]);
933
1020
  for (let j = 0; j < trades.length; j++) {
934
1021
  let parsedTrade = undefined;
935
1022
  if (market['spot']) {
@@ -945,7 +1032,7 @@ export default class mexc extends mexcRest {
945
1032
  /**
946
1033
  * @method
947
1034
  * @name mexc#watchMyTrades
948
- * @see https://mexcdevelop.github.io/apidocs/spot_v3_en/#spot-account-deals
1035
+ * @see https://www.mexc.com/api-docs/spot-v3/websocket-user-data-streams#spot-account-deals
949
1036
  * @see https://mexcdevelop.github.io/apidocs/contract_v1_en/#private-channels
950
1037
  * @description watches information on multiple trades made by the user
951
1038
  * @param {string} symbol unified market symbol of the market trades were made in
@@ -967,7 +1054,7 @@ export default class mexc extends mexcRest {
967
1054
  [type, params] = this.handleMarketTypeAndParams('watchMyTrades', market, params);
968
1055
  let trades = undefined;
969
1056
  if (type === 'spot') {
970
- const channel = 'spot@private.deals.v3.api';
1057
+ const channel = 'spot@private.deals.v3.api.pb';
971
1058
  trades = await this.watchSpotPrivate(channel, messageHash, params);
972
1059
  }
973
1060
  else {
@@ -996,11 +1083,27 @@ export default class mexc extends mexcRest {
996
1083
  // "s": "BTCUSDT",
997
1084
  // "t": 1678670940700
998
1085
  // }
1086
+ // {
1087
+ // channel: "spot@private.deals.v3.api.pb",
1088
+ // symbol: "MXUSDT",
1089
+ // sendTime: 1736417034332,
1090
+ // privateDeals {
1091
+ // price: "3.6962",
1092
+ // quantity: "1",
1093
+ // amount: "3.6962",
1094
+ // tradeType: 2,
1095
+ // tradeId: "505979017439002624X1",
1096
+ // orderId: "C02__505979017439002624115",
1097
+ // feeAmount: "0.0003998377369698171",
1098
+ // feeCurrency: "MX",
1099
+ // time: 1736417034280
1100
+ // }
1101
+ // }
999
1102
  //
1000
1103
  const messageHash = 'myTrades';
1001
- const data = this.safeValue2(message, 'd', 'data');
1104
+ const data = this.safeDictN(message, ['d', 'data', 'privateDeals']);
1002
1105
  const futuresMarketId = this.safeString(data, 'symbol');
1003
- const marketId = this.safeString(message, 's', futuresMarketId);
1106
+ const marketId = this.safeString2(message, 's', 'symbol', futuresMarketId);
1004
1107
  const market = this.safeMarket(marketId);
1005
1108
  const symbol = market['symbol'];
1006
1109
  let trade = undefined;
@@ -1023,7 +1126,7 @@ export default class mexc extends mexcRest {
1023
1126
  }
1024
1127
  parseWsTrade(trade, market = undefined) {
1025
1128
  //
1026
- // public trade
1129
+ // public trade (protobuf)
1027
1130
  // {
1028
1131
  // "p": "20382.70",
1029
1132
  // "v": "0.043800",
@@ -1043,7 +1146,6 @@ export default class mexc extends mexcRest {
1043
1146
  // "v": "5"
1044
1147
  // }
1045
1148
  //
1046
- //
1047
1149
  // d: {
1048
1150
  // p: '1.0005',
1049
1151
  // v: '5.71',
@@ -1058,23 +1160,37 @@ export default class mexc extends mexcRest {
1058
1160
  // n: '0.005712855',
1059
1161
  // N: 'USDT'
1060
1162
  // }
1061
- let timestamp = this.safeInteger(trade, 'T');
1062
- let tradeId = this.safeString(trade, 't');
1163
+ // protobuf
1164
+ //
1165
+ // {
1166
+ // price: "3.6962",
1167
+ // quantity: "1",
1168
+ // amount: "3.6962",
1169
+ // tradeType: 2,
1170
+ // tradeId: "505979017439002624X1",
1171
+ // orderId: "C02__505979017439002624115",
1172
+ // feeAmount: "0.0003998377369698171",
1173
+ // feeCurrency: "MX",
1174
+ // time: 1736417034280
1175
+ // }
1176
+ //
1177
+ let timestamp = this.safeInteger2(trade, 'T', 'time');
1178
+ let tradeId = this.safeString2(trade, 't', 'tradeId');
1063
1179
  if (timestamp === undefined) {
1064
1180
  timestamp = this.safeInteger(trade, 't');
1065
1181
  tradeId = undefined;
1066
1182
  }
1067
- const priceString = this.safeString(trade, 'p');
1068
- const amountString = this.safeString(trade, 'v');
1069
- const rawSide = this.safeString(trade, 'S');
1183
+ const priceString = this.safeString2(trade, 'p', 'price');
1184
+ const amountString = this.safeString2(trade, 'v', 'quantity');
1185
+ const rawSide = this.safeString2(trade, 'S', 'tradeType');
1070
1186
  const side = (rawSide === '1') ? 'buy' : 'sell';
1071
1187
  const isMaker = this.safeInteger(trade, 'm');
1072
- const feeAmount = this.safeNumber(trade, 'n');
1073
- const feeCurrencyId = this.safeString(trade, 'N');
1188
+ const feeAmount = this.safeString2(trade, 'n', 'feeAmount');
1189
+ const feeCurrencyId = this.safeString2(trade, 'N', 'feeCurrency');
1074
1190
  return this.safeTrade({
1075
1191
  'info': trade,
1076
1192
  'id': tradeId,
1077
- 'order': this.safeString(trade, 'i'),
1193
+ 'order': this.safeString2(trade, 'i', 'orderId'),
1078
1194
  'timestamp': timestamp,
1079
1195
  'datetime': this.iso8601(timestamp),
1080
1196
  'symbol': this.safeSymbol(undefined, market),
@@ -1083,7 +1199,7 @@ export default class mexc extends mexcRest {
1083
1199
  'takerOrMaker': (isMaker) ? 'maker' : 'taker',
1084
1200
  'price': priceString,
1085
1201
  'amount': amountString,
1086
- 'cost': undefined,
1202
+ 'cost': this.safeString(trade, 'amount'),
1087
1203
  'fee': {
1088
1204
  'cost': feeAmount,
1089
1205
  'currency': this.safeCurrencyCode(feeCurrencyId),
@@ -1093,7 +1209,7 @@ export default class mexc extends mexcRest {
1093
1209
  /**
1094
1210
  * @method
1095
1211
  * @name mexc#watchOrders
1096
- * @see https://mexcdevelop.github.io/apidocs/spot_v3_en/#spot-account-orders
1212
+ * @see https://www.mexc.com/api-docs/spot-v3/websocket-user-data-streams#spot-account-orders
1097
1213
  * @see https://mexcdevelop.github.io/apidocs/spot_v3_en/#margin-account-orders
1098
1214
  * @description watches information on multiple orders made by the user
1099
1215
  * @param {string} symbol unified market symbol of the market orders were made in
@@ -1116,7 +1232,7 @@ export default class mexc extends mexcRest {
1116
1232
  [type, params] = this.handleMarketTypeAndParams('watchOrders', market, params);
1117
1233
  let orders = undefined;
1118
1234
  if (type === 'spot') {
1119
- const channel = type + '@private.orders.v3.api';
1235
+ const channel = 'spot@private.orders.v3.api.pb';
1120
1236
  orders = await this.watchSpotPrivate(channel, messageHash, params);
1121
1237
  }
1122
1238
  else {
@@ -1192,11 +1308,18 @@ export default class mexc extends mexcRest {
1192
1308
  // "s": "MXUSDT",
1193
1309
  // "t":1661938138193
1194
1310
  // }
1311
+ // protobuf
1312
+ // {
1313
+ // channel: "spot@private.orders.v3.api.pb",
1314
+ // symbol: "MXUSDT",
1315
+ // sendTime: 1736417034281,
1316
+ // privateOrders {}
1317
+ // }
1195
1318
  //
1196
1319
  const messageHash = 'orders';
1197
- const data = this.safeValue2(message, 'd', 'data');
1320
+ const data = this.safeDictN(message, ['d', 'data', 'privateOrders']);
1198
1321
  const futuresMarketId = this.safeString(data, 'symbol');
1199
- const marketId = this.safeString(message, 's', futuresMarketId);
1322
+ const marketId = this.safeString2(message, 's', 'symbol', futuresMarketId);
1200
1323
  const market = this.safeMarket(marketId);
1201
1324
  const symbol = market['symbol'];
1202
1325
  let parsed = undefined;
@@ -1267,11 +1390,28 @@ export default class mexc extends mexcRest {
1267
1390
  // "s":1,
1268
1391
  // "i":"e03a5c7441e44ed899466a7140b71391",
1269
1392
  // }
1393
+ // protofbuf spot order
1394
+ // {
1395
+ // "id":"C02__583905164440776704043",
1396
+ // "price":"0.001053",
1397
+ // "quantity":"2000",
1398
+ // "amount":"0",
1399
+ // "avgPrice":"0.001007",
1400
+ // "orderType":5,
1401
+ // "tradeType":1,
1402
+ // "remainAmount":"0.092",
1403
+ // "remainQuantity":"0",
1404
+ // "lastDealQuantity":"2000",
1405
+ // "cumulativeQuantity":"2000",
1406
+ // "cumulativeAmount":"2.014",
1407
+ // "status":2,
1408
+ // "createTime":"1754996075502"
1409
+ // }
1270
1410
  //
1271
- const timestamp = this.safeInteger(order, 'O');
1272
- const side = this.safeString(order, 'S');
1273
- const status = this.safeString(order, 's');
1274
- const type = this.safeString(order, 'o');
1411
+ const timestamp = this.safeInteger(order, 'createTime');
1412
+ const side = this.safeString(order, 'tradeType');
1413
+ const status = this.safeString(order, 'status');
1414
+ const type = this.safeString(order, 'orderType');
1275
1415
  let fee = undefined;
1276
1416
  const feeCurrency = this.safeString(order, 'N');
1277
1417
  if (feeCurrency !== undefined) {
@@ -1281,8 +1421,8 @@ export default class mexc extends mexcRest {
1281
1421
  };
1282
1422
  }
1283
1423
  return this.safeOrder({
1284
- 'id': this.safeString(order, 'i'),
1285
- 'clientOrderId': this.safeString(order, 'c'),
1424
+ 'id': this.safeString(order, 'id'),
1425
+ 'clientOrderId': this.safeString(order, 'clientOrderId'),
1286
1426
  'timestamp': timestamp,
1287
1427
  'datetime': this.iso8601(timestamp),
1288
1428
  'lastTradeTimestamp': undefined,
@@ -1291,14 +1431,14 @@ export default class mexc extends mexcRest {
1291
1431
  'type': this.parseWsOrderType(type),
1292
1432
  'timeInForce': this.parseWsTimeInForce(type),
1293
1433
  'side': (side === '1') ? 'buy' : 'sell',
1294
- 'price': this.safeString(order, 'p'),
1434
+ 'price': this.safeString(order, 'price'),
1295
1435
  'stopPrice': undefined,
1296
- 'triggerPrice': this.safeNumber(order, 'P'),
1297
- 'average': this.safeString(order, 'ap'),
1298
- 'amount': this.safeString(order, 'v'),
1299
- 'cost': this.safeString(order, 'a'),
1300
- 'filled': this.safeString(order, 'cv'),
1301
- 'remaining': this.safeString(order, 'V'),
1436
+ 'triggerPrice': undefined,
1437
+ 'average': this.safeString(order, 'avgPrice'),
1438
+ 'amount': this.safeString(order, 'quantity'),
1439
+ 'cost': this.safeString(order, 'amount'),
1440
+ 'filled': this.safeString(order, 'cumulativeQuantity'),
1441
+ 'remaining': this.safeString(order, 'remainQuantity'),
1302
1442
  'fee': fee,
1303
1443
  'trades': undefined,
1304
1444
  'info': order,
@@ -1321,7 +1461,7 @@ export default class mexc extends mexcRest {
1321
1461
  parseWsOrderType(type) {
1322
1462
  const types = {
1323
1463
  '1': 'limit',
1324
- '2': undefined,
1464
+ '2': 'limit',
1325
1465
  '3': undefined,
1326
1466
  '4': undefined,
1327
1467
  '5': 'market',
@@ -1343,7 +1483,7 @@ export default class mexc extends mexcRest {
1343
1483
  /**
1344
1484
  * @method
1345
1485
  * @name mexc#watchBalance
1346
- * @see https://mexcdevelop.github.io/apidocs/spot_v3_en/#spot-account-upadte
1486
+ * @see https://www.mexc.com/api-docs/spot-v3/websocket-user-data-streams#spot-account-update
1347
1487
  * @description watch balance and get the amount of funds available for trading or funds locked in orders
1348
1488
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1349
1489
  * @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
@@ -1354,7 +1494,7 @@ export default class mexc extends mexcRest {
1354
1494
  [type, params] = this.handleMarketTypeAndParams('watchBalance', undefined, params);
1355
1495
  const messageHash = 'balance:' + type;
1356
1496
  if (type === 'spot') {
1357
- const channel = 'spot@private.account.v3.api';
1497
+ const channel = 'spot@private.account.v3.api.pb';
1358
1498
  return await this.watchSpotPrivate(channel, messageHash, params);
1359
1499
  }
1360
1500
  else {
@@ -1393,23 +1533,23 @@ export default class mexc extends mexcRest {
1393
1533
  // "ts": 1680059188190
1394
1534
  // }
1395
1535
  //
1396
- const c = this.safeString(message, 'c');
1536
+ const c = this.safeString2(message, 'c', 'channel');
1397
1537
  const type = (c === undefined) ? 'swap' : 'spot';
1398
1538
  const messageHash = 'balance:' + type;
1399
- const data = this.safeValue2(message, 'd', 'data');
1539
+ const data = this.safeDictN(message, ['d', 'data', 'privateAccount']);
1400
1540
  const futuresTimestamp = this.safeInteger(message, 'ts');
1401
- const timestamp = this.safeInteger(data, 'c', futuresTimestamp);
1541
+ const timestamp = this.safeInteger2(data, 'c', 'time', futuresTimestamp);
1402
1542
  if (!(type in this.balance)) {
1403
1543
  this.balance[type] = {};
1404
1544
  }
1405
1545
  this.balance[type]['info'] = data;
1406
1546
  this.balance[type]['timestamp'] = timestamp;
1407
1547
  this.balance[type]['datetime'] = this.iso8601(timestamp);
1408
- const currencyId = this.safeString2(data, 'a', 'currency');
1548
+ const currencyId = this.safeStringN(data, ['a', 'currency', 'vcoinName']);
1409
1549
  const code = this.safeCurrencyCode(currencyId);
1410
1550
  const account = this.account();
1411
- account['free'] = this.safeString2(data, 'f', 'availableBalance');
1412
- account['used'] = this.safeString2(data, 'l', 'frozenBalance');
1551
+ account['total'] = this.safeStringN(data, ['f', 'availableBalance', 'balanceAmount']);
1552
+ account['used'] = this.safeStringN(data, ['l', 'frozenBalance', 'frozenAmount']);
1413
1553
  this.balance[type][code] = account;
1414
1554
  this.balance[type] = this.safeBalance(this.balance[type]);
1415
1555
  client.resolve(this.balance[type], messageHash);
@@ -1429,17 +1569,10 @@ export default class mexc extends mexcRest {
1429
1569
  let url = undefined;
1430
1570
  let channel = undefined;
1431
1571
  if (market['spot']) {
1432
- let miniTicker = false;
1433
- [miniTicker, params] = this.handleOptionAndParams(params, 'watchTicker', 'miniTicker');
1434
- if (miniTicker) {
1435
- channel = 'spot@public.miniTicker.v3.api@' + market['id'] + '@UTC+8';
1436
- }
1437
- else {
1438
- channel = 'spot@public.bookTicker.v3.api@' + market['id'];
1439
- }
1572
+ channel = 'spot@public.aggre.bookTicker.v3.api.pb@100ms@' + market['id'];
1440
1573
  url = this.urls['api']['ws']['spot'];
1441
1574
  params['unsubscribed'] = true;
1442
- await this.watchSpotPublic(channel, messageHash, params);
1575
+ this.watchSpotPublic(channel, messageHash, params);
1443
1576
  }
1444
1577
  else {
1445
1578
  channel = 'unsub.ticker';
@@ -1447,7 +1580,7 @@ export default class mexc extends mexcRest {
1447
1580
  'symbol': market['id'],
1448
1581
  };
1449
1582
  url = this.urls['api']['ws']['swap'];
1450
- await this.watchSwapPublic(channel, messageHash, requestParams, params);
1583
+ this.watchSwapPublic(channel, messageHash, requestParams, params);
1451
1584
  }
1452
1585
  const client = this.client(url);
1453
1586
  this.handleUnsubscriptions(client, [messageHash]);
@@ -1476,34 +1609,33 @@ export default class mexc extends mexcRest {
1476
1609
  const url = (isSpot) ? this.urls['api']['ws']['spot'] : this.urls['api']['ws']['swap'];
1477
1610
  const request = {};
1478
1611
  if (isSpot) {
1479
- let miniTicker = false;
1480
- [miniTicker, params] = this.handleOptionAndParams(params, 'watchTickers', 'miniTicker');
1481
- const topics = [];
1482
- if (!miniTicker) {
1483
- if (symbols === undefined) {
1484
- throw new ArgumentsRequired(this.id + ' watchTickers required symbols argument for the bookTicker channel');
1485
- }
1486
- const marketIds = this.marketIds(symbols);
1487
- for (let i = 0; i < marketIds.length; i++) {
1488
- const marketId = marketIds[i];
1489
- messageHashes.push('unsubscribe:ticker:' + symbols[i]);
1490
- const channel = 'spot@public.bookTicker.v3.api@' + marketId;
1491
- topics.push(channel);
1492
- }
1493
- }
1494
- else {
1495
- topics.push('spot@public.miniTickers.v3.api@UTC+8');
1496
- if (symbols === undefined) {
1497
- messageHashes.push('unsubscribe:spot:ticker');
1498
- }
1499
- else {
1500
- for (let i = 0; i < symbols.length; i++) {
1501
- messageHashes.push('unsubscribe:ticker:' + symbols[i]);
1502
- }
1503
- }
1504
- }
1505
- request['method'] = 'UNSUBSCRIPTION';
1506
- request['params'] = topics;
1612
+ throw new NotSupported(this.id + ' watchTickers does not support spot markets');
1613
+ // let miniTicker = false;
1614
+ // [ miniTicker, params ] = this.handleOptionAndParams (params, 'watchTickers', 'miniTicker');
1615
+ // const topics = [];
1616
+ // if (!miniTicker) {
1617
+ // if (symbols === undefined) {
1618
+ // throw new ArgumentsRequired (this.id + ' watchTickers required symbols argument for the bookTicker channel');
1619
+ // }
1620
+ // const marketIds = this.marketIds (symbols);
1621
+ // for (let i = 0; i < marketIds.length; i++) {
1622
+ // const marketId = marketIds[i];
1623
+ // messageHashes.push ('unsubscribe:ticker:' + symbols[i]);
1624
+ // const channel = 'spot@public.bookTicker.v3.api@' + marketId;
1625
+ // topics.push (channel);
1626
+ // }
1627
+ // } else {
1628
+ // topics.push ('spot@public.miniTickers.v3.api@UTC+8');
1629
+ // if (symbols === undefined) {
1630
+ // messageHashes.push ('unsubscribe:spot:ticker');
1631
+ // } else {
1632
+ // for (let i = 0; i < symbols.length; i++) {
1633
+ // messageHashes.push ('unsubscribe:ticker:' + symbols[i]);
1634
+ // }
1635
+ // }
1636
+ // }
1637
+ // request['method'] = 'UNSUBSCRIPTION';
1638
+ // request['params'] = topics;
1507
1639
  }
1508
1640
  else {
1509
1641
  request['method'] = 'unsub.tickers';
@@ -1511,7 +1643,7 @@ export default class mexc extends mexcRest {
1511
1643
  messageHashes.push('unsubscribe:ticker');
1512
1644
  }
1513
1645
  const client = this.client(url);
1514
- await this.watchMultiple(url, messageHashes, this.extend(request, params), messageHashes);
1646
+ this.watchMultiple(url, messageHashes, this.extend(request, params), messageHashes);
1515
1647
  this.handleUnsubscriptions(client, messageHashes);
1516
1648
  return undefined;
1517
1649
  }
@@ -1541,7 +1673,7 @@ export default class mexc extends mexcRest {
1541
1673
  for (let i = 0; i < symbols.length; i++) {
1542
1674
  if (isSpot) {
1543
1675
  const market = this.market(symbols[i]);
1544
- topics.push('spot@public.bookTicker.v3.api@' + market['id']);
1676
+ topics.push('spot@public.aggre.bookTicker.v3.api.pb@100ms@' + market['id']);
1545
1677
  }
1546
1678
  messageHashes.push('unsubscribe:bidask:' + symbols[i]);
1547
1679
  }
@@ -1551,7 +1683,7 @@ export default class mexc extends mexcRest {
1551
1683
  'params': topics,
1552
1684
  };
1553
1685
  const client = this.client(url);
1554
- await this.watchMultiple(url, messageHashes, this.extend(request, params), messageHashes);
1686
+ this.watchMultiple(url, messageHashes, this.extend(request, params), messageHashes);
1555
1687
  this.handleUnsubscriptions(client, messageHashes);
1556
1688
  return undefined;
1557
1689
  }
@@ -1575,9 +1707,9 @@ export default class mexc extends mexcRest {
1575
1707
  let url = undefined;
1576
1708
  if (market['spot']) {
1577
1709
  url = this.urls['api']['ws']['spot'];
1578
- const channel = 'spot@public.kline.v3.api@' + market['id'] + '@' + timeframeId;
1710
+ const channel = 'spot@public.kline.v3.api.pb@' + market['id'] + '@' + timeframeId;
1579
1711
  params['unsubscribed'] = true;
1580
- await this.watchSpotPublic(channel, messageHash, params);
1712
+ this.watchSpotPublic(channel, messageHash, params);
1581
1713
  }
1582
1714
  else {
1583
1715
  url = this.urls['api']['ws']['swap'];
@@ -1586,7 +1718,7 @@ export default class mexc extends mexcRest {
1586
1718
  'symbol': market['id'],
1587
1719
  'interval': timeframeId,
1588
1720
  };
1589
- await this.watchSwapPublic(channel, messageHash, requestParams, params);
1721
+ this.watchSwapPublic(channel, messageHash, requestParams, params);
1590
1722
  }
1591
1723
  const client = this.client(url);
1592
1724
  this.handleUnsubscriptions(client, [messageHash]);
@@ -1598,6 +1730,7 @@ export default class mexc extends mexcRest {
1598
1730
  * @description unWatches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
1599
1731
  * @param {string} symbol unified array of symbols
1600
1732
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1733
+ * @param {string} [params.frequency] the frequency of the order book updates, default is '10ms', can be '100ms' or '10ms
1601
1734
  * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
1602
1735
  */
1603
1736
  async unWatchOrderBook(symbol, params = {}) {
@@ -1608,9 +1741,11 @@ export default class mexc extends mexcRest {
1608
1741
  let url = undefined;
1609
1742
  if (market['spot']) {
1610
1743
  url = this.urls['api']['ws']['spot'];
1611
- const channel = 'spot@public.increase.depth.v3.api@' + market['id'];
1744
+ let frequency = undefined;
1745
+ [frequency, params] = this.handleOptionAndParams(params, 'watchOrderBook', 'frequency', '100ms');
1746
+ const channel = 'spot@public.aggre.depth.v3.api.pb@' + frequency + '@' + market['id'];
1612
1747
  params['unsubscribed'] = true;
1613
- await this.watchSpotPublic(channel, messageHash, params);
1748
+ this.watchSpotPublic(channel, messageHash, params);
1614
1749
  }
1615
1750
  else {
1616
1751
  url = this.urls['api']['ws']['swap'];
@@ -1618,7 +1753,7 @@ export default class mexc extends mexcRest {
1618
1753
  const requestParams = {
1619
1754
  'symbol': market['id'],
1620
1755
  };
1621
- await this.watchSwapPublic(channel, messageHash, requestParams, params);
1756
+ this.watchSwapPublic(channel, messageHash, requestParams, params);
1622
1757
  }
1623
1758
  const client = this.client(url);
1624
1759
  this.handleUnsubscriptions(client, [messageHash]);
@@ -1641,9 +1776,9 @@ export default class mexc extends mexcRest {
1641
1776
  let url = undefined;
1642
1777
  if (market['spot']) {
1643
1778
  url = this.urls['api']['ws']['spot'];
1644
- const channel = 'spot@public.deals.v3.api@' + market['id'];
1779
+ const channel = 'spot@public.aggre.deals.v3.api.pb@100ms@' + market['id'];
1645
1780
  params['unsubscribed'] = true;
1646
- await this.watchSpotPublic(channel, messageHash, params);
1781
+ this.watchSpotPublic(channel, messageHash, params);
1647
1782
  }
1648
1783
  else {
1649
1784
  url = this.urls['api']['ws']['swap'];
@@ -1651,7 +1786,7 @@ export default class mexc extends mexcRest {
1651
1786
  const requestParams = {
1652
1787
  'symbol': market['id'],
1653
1788
  };
1654
- await this.watchSwapPublic(channel, messageHash, requestParams, params);
1789
+ this.watchSwapPublic(channel, messageHash, requestParams, params);
1655
1790
  }
1656
1791
  const client = this.client(url);
1657
1792
  this.handleUnsubscriptions(client, [messageHash]);
@@ -1764,6 +1899,7 @@ export default class mexc extends mexcRest {
1764
1899
  const channel = this.safeString(parts, 1);
1765
1900
  const methods = {
1766
1901
  'public.increase.depth.v3.api': this.handleOrderBookSubscription,
1902
+ 'public.aggre.depth.v3.api.pb': this.handleOrderBookSubscription,
1767
1903
  };
1768
1904
  const method = this.safeValue(methods, channel);
1769
1905
  if (method !== undefined) {
@@ -1771,12 +1907,62 @@ export default class mexc extends mexcRest {
1771
1907
  }
1772
1908
  }
1773
1909
  }
1910
+ handleProtobufMessage(client, message) {
1911
+ // protobuf message decoded
1912
+ // {
1913
+ // "channel":"spot@public.kline.v3.api.pb@BTCUSDT@Min1",
1914
+ // "symbol":"BTCUSDT",
1915
+ // "symbolId":"2fb942154ef44a4ab2ef98c8afb6a4a7",
1916
+ // "createTime":"1754737941062",
1917
+ // "publicSpotKline":{
1918
+ // "interval":"Min1",
1919
+ // "windowStart":"1754737920",
1920
+ // "openingPrice":"117317.31",
1921
+ // "closingPrice":"117325.26",
1922
+ // "highestPrice":"117341",
1923
+ // "lowestPrice":"117317.3",
1924
+ // "volume":"3.12599854",
1925
+ // "amount":"366804.43",
1926
+ // "windowEnd":"1754737980"
1927
+ // }
1928
+ // }
1929
+ const channel = this.safeString(message, 'channel');
1930
+ const channelParts = channel.split('@');
1931
+ const channelId = this.safeString(channelParts, 1);
1932
+ if (channelId === 'public.kline.v3.api.pb') {
1933
+ this.handleOHLCV(client, message);
1934
+ }
1935
+ else if (channelId === 'public.aggre.deals.v3.api.pb') {
1936
+ this.handleTrades(client, message);
1937
+ }
1938
+ else if (channelId === 'public.aggre.bookTicker.v3.api.pb') {
1939
+ this.handleTicker(client, message);
1940
+ }
1941
+ else if (channelId === 'public.aggre.depth.v3.api.pb') {
1942
+ this.handleOrderBook(client, message);
1943
+ }
1944
+ else if (channelId === 'private.account.v3.api.pb') {
1945
+ this.handleBalance(client, message);
1946
+ }
1947
+ else if (channelId === 'private.deals.v3.api.pb') {
1948
+ this.handleMyTrade(client, message);
1949
+ }
1950
+ else if (channelId === 'private.orders.v3.api.pb') {
1951
+ this.handleOrder(client, message);
1952
+ }
1953
+ return true;
1954
+ }
1774
1955
  handleMessage(client, message) {
1775
1956
  if (typeof message === 'string') {
1776
1957
  if (message === 'Invalid listen key') {
1777
1958
  const error = new AuthenticationError(this.id + ' invalid listen key');
1778
1959
  client.reject(error);
1960
+ return;
1779
1961
  }
1962
+ }
1963
+ if (this.isBinaryMessage(message)) {
1964
+ message = this.decodeProtoMsg(message);
1965
+ this.handleProtobufMessage(client, message);
1780
1966
  return;
1781
1967
  }
1782
1968
  if ('msg' in message) {