ccxt 4.5.33 → 4.5.35

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 (1050) hide show
  1. package/README.md +20 -6
  2. package/dist/ccxt.browser.min.js +3 -3
  3. package/dist/cjs/ccxt.js +4 -4
  4. package/dist/cjs/src/abstract/{btcalpha.js → alp.js} +1 -1
  5. package/dist/cjs/src/abstract/alpaca.js +1 -1
  6. package/dist/cjs/src/abstract/apex.js +1 -1
  7. package/dist/cjs/src/abstract/arkham.js +1 -1
  8. package/dist/cjs/src/abstract/ascendex.js +1 -1
  9. package/dist/cjs/src/abstract/aster.js +1 -1
  10. package/dist/cjs/src/abstract/backpack.js +1 -1
  11. package/dist/cjs/src/abstract/bigone.js +1 -1
  12. package/dist/cjs/src/abstract/binance.js +1 -1
  13. package/dist/cjs/src/abstract/bingx.js +1 -1
  14. package/dist/cjs/src/abstract/bit2c.js +1 -1
  15. package/dist/cjs/src/abstract/bitbank.js +1 -1
  16. package/dist/cjs/src/abstract/bitbns.js +1 -1
  17. package/dist/cjs/src/abstract/bitfinex.js +1 -1
  18. package/dist/cjs/src/abstract/bitflyer.js +1 -1
  19. package/dist/cjs/src/abstract/bitget.js +1 -1
  20. package/dist/cjs/src/abstract/bithumb.js +1 -1
  21. package/dist/cjs/src/abstract/bitmart.js +1 -1
  22. package/dist/cjs/src/abstract/bitmex.js +1 -1
  23. package/dist/cjs/src/abstract/bitopro.js +1 -1
  24. package/dist/cjs/src/abstract/bitrue.js +1 -1
  25. package/dist/cjs/src/abstract/bitso.js +1 -1
  26. package/dist/cjs/src/abstract/bitstamp.js +1 -1
  27. package/dist/cjs/src/abstract/bitteam.js +1 -1
  28. package/dist/cjs/src/abstract/bittrade.js +1 -1
  29. package/dist/cjs/src/abstract/bitvavo.js +1 -1
  30. package/dist/cjs/src/abstract/blockchaincom.js +1 -1
  31. package/dist/cjs/src/abstract/blofin.js +1 -1
  32. package/dist/cjs/src/abstract/btcbox.js +1 -1
  33. package/dist/cjs/src/abstract/btcmarkets.js +1 -1
  34. package/dist/cjs/src/abstract/btcturk.js +1 -1
  35. package/dist/cjs/src/abstract/bullish.js +1 -1
  36. package/dist/cjs/src/abstract/bybit.js +1 -1
  37. package/dist/cjs/src/abstract/bydfi.js +1 -1
  38. package/dist/cjs/src/abstract/cex.js +1 -1
  39. package/dist/cjs/src/abstract/coinbase.js +1 -1
  40. package/dist/cjs/src/abstract/coinbaseexchange.js +1 -1
  41. package/dist/cjs/src/abstract/coinbaseinternational.js +1 -1
  42. package/dist/cjs/src/abstract/coincatch.js +1 -1
  43. package/dist/cjs/src/abstract/coincheck.js +1 -1
  44. package/dist/cjs/src/abstract/coinex.js +1 -1
  45. package/dist/cjs/src/abstract/coinmate.js +1 -1
  46. package/dist/cjs/src/abstract/coinmetro.js +1 -1
  47. package/dist/cjs/src/abstract/coinone.js +1 -1
  48. package/dist/cjs/src/abstract/coinsph.js +1 -1
  49. package/dist/cjs/src/abstract/coinspot.js +1 -1
  50. package/dist/cjs/src/abstract/cryptocom.js +1 -1
  51. package/dist/cjs/src/abstract/cryptomus.js +1 -1
  52. package/dist/cjs/src/abstract/deepcoin.js +1 -1
  53. package/dist/cjs/src/abstract/defx.js +1 -1
  54. package/dist/cjs/src/abstract/delta.js +1 -1
  55. package/dist/cjs/src/abstract/deribit.js +1 -1
  56. package/dist/cjs/src/abstract/derive.js +1 -1
  57. package/dist/cjs/src/abstract/digifinex.js +1 -1
  58. package/dist/cjs/src/abstract/dydx.js +1 -1
  59. package/dist/cjs/src/abstract/exmo.js +1 -1
  60. package/dist/cjs/src/abstract/foxbit.js +1 -1
  61. package/dist/cjs/src/abstract/gate.js +1 -1
  62. package/dist/cjs/src/abstract/gemini.js +1 -1
  63. package/dist/cjs/src/abstract/hashkey.js +1 -1
  64. package/dist/cjs/src/abstract/hibachi.js +1 -1
  65. package/dist/cjs/src/abstract/hitbtc.js +1 -1
  66. package/dist/cjs/src/abstract/hollaex.js +1 -1
  67. package/dist/cjs/src/abstract/htx.js +1 -1
  68. package/dist/cjs/src/abstract/hyperliquid.js +1 -1
  69. package/dist/cjs/src/abstract/independentreserve.js +1 -1
  70. package/dist/cjs/src/abstract/indodax.js +1 -1
  71. package/dist/cjs/src/abstract/kraken.js +1 -1
  72. package/dist/cjs/src/abstract/krakenfutures.js +1 -1
  73. package/dist/cjs/src/abstract/kucoin.js +1 -1
  74. package/dist/cjs/src/abstract/kucoinfutures.js +1 -1
  75. package/dist/cjs/src/abstract/latoken.js +1 -1
  76. package/dist/cjs/src/abstract/lbank.js +1 -1
  77. package/dist/cjs/src/abstract/luno.js +1 -1
  78. package/dist/cjs/src/abstract/mercado.js +1 -1
  79. package/dist/cjs/src/abstract/mexc.js +1 -1
  80. package/dist/cjs/src/abstract/modetrade.js +1 -1
  81. package/dist/cjs/src/abstract/ndax.js +1 -1
  82. package/dist/cjs/src/abstract/novadax.js +1 -1
  83. package/dist/cjs/src/abstract/okx.js +1 -1
  84. package/dist/cjs/src/abstract/onetrading.js +1 -1
  85. package/dist/cjs/src/abstract/oxfun.js +1 -1
  86. package/dist/cjs/src/abstract/p2b.js +1 -1
  87. package/dist/cjs/src/abstract/paradex.js +1 -1
  88. package/dist/cjs/src/abstract/paymium.js +1 -1
  89. package/dist/cjs/src/abstract/phemex.js +1 -1
  90. package/dist/cjs/src/abstract/poloniex.js +1 -1
  91. package/dist/cjs/src/abstract/probit.js +1 -1
  92. package/dist/cjs/src/abstract/timex.js +1 -1
  93. package/dist/cjs/src/abstract/tokocrypto.js +1 -1
  94. package/dist/cjs/src/abstract/toobit.js +1 -1
  95. package/dist/cjs/src/abstract/upbit.js +1 -1
  96. package/dist/cjs/src/abstract/wavesexchange.js +1 -1
  97. package/dist/cjs/src/abstract/whitebit.js +1 -1
  98. package/dist/cjs/src/abstract/woo.js +1 -1
  99. package/dist/cjs/src/abstract/woofipro.js +1 -1
  100. package/dist/cjs/src/abstract/xt.js +1 -1
  101. package/dist/cjs/src/abstract/yobit.js +1 -1
  102. package/dist/cjs/src/abstract/zaif.js +1 -1
  103. package/dist/cjs/src/abstract/zebpay.js +1 -1
  104. package/dist/cjs/src/abstract/zonda.js +1 -1
  105. package/dist/cjs/src/{btcalpha.js → alp.js} +46 -46
  106. package/dist/cjs/src/alpaca.js +1 -1
  107. package/dist/cjs/src/apex.js +1 -1
  108. package/dist/cjs/src/arkham.js +1 -1
  109. package/dist/cjs/src/ascendex.js +3 -3
  110. package/dist/cjs/src/aster.js +16 -23
  111. package/dist/cjs/src/backpack.js +3 -3
  112. package/dist/cjs/src/base/Exchange.js +52 -4
  113. package/dist/cjs/src/base/Precise.js +6 -0
  114. package/dist/cjs/src/base/errors.js +6 -0
  115. package/dist/cjs/src/base/functions/crypto.js +1 -1
  116. package/dist/cjs/src/base/functions/encode.js +1 -1
  117. package/dist/cjs/src/base/functions/misc.js +1 -0
  118. package/dist/cjs/src/base/functions/number.js +6 -0
  119. package/dist/cjs/src/base/functions/platform.js +6 -0
  120. package/dist/cjs/src/base/functions/rsa.js +1 -0
  121. package/dist/cjs/src/base/functions/string.js +6 -0
  122. package/dist/cjs/src/base/functions/throttle.js +1 -1
  123. package/dist/cjs/src/base/functions/time.js +6 -0
  124. package/dist/cjs/src/base/functions/totp.js +1 -0
  125. package/dist/cjs/src/base/functions/type.js +6 -0
  126. package/dist/cjs/src/base/functions.js +1 -1
  127. package/dist/cjs/src/base/ws/Cache.js +6 -0
  128. package/dist/cjs/src/base/ws/Client.js +1 -0
  129. package/dist/cjs/src/base/ws/Future.js +1 -1
  130. package/dist/cjs/src/base/ws/OrderBook.js +1 -1
  131. package/dist/cjs/src/base/ws/OrderBookSide.js +6 -0
  132. package/dist/cjs/src/base/ws/WsClient.js +1 -1
  133. package/dist/cjs/src/bequant.js +1 -1
  134. package/dist/cjs/src/bigone.js +2 -2
  135. package/dist/cjs/src/binance.js +7 -5
  136. package/dist/cjs/src/binancecoinm.js +1 -1
  137. package/dist/cjs/src/binanceus.js +1 -1
  138. package/dist/cjs/src/binanceusdm.js +1 -1
  139. package/dist/cjs/src/bingx.js +87 -2
  140. package/dist/cjs/src/bit2c.js +1 -1
  141. package/dist/cjs/src/bitbank.js +1 -1
  142. package/dist/cjs/src/bitbns.js +1 -1
  143. package/dist/cjs/src/bitfinex.js +7 -12
  144. package/dist/cjs/src/bitflyer.js +1 -1
  145. package/dist/cjs/src/bitget.js +8 -8
  146. package/dist/cjs/src/bithumb.js +1 -1
  147. package/dist/cjs/src/bitmart.js +2 -2
  148. package/dist/cjs/src/bitmex.js +2 -2
  149. package/dist/cjs/src/bitopro.js +1 -1
  150. package/dist/cjs/src/bitrue.js +2 -2
  151. package/dist/cjs/src/bitso.js +2 -2
  152. package/dist/cjs/src/bitstamp.js +2 -2
  153. package/dist/cjs/src/bitteam.js +1 -1
  154. package/dist/cjs/src/bittrade.js +1 -1
  155. package/dist/cjs/src/blockchaincom.js +1 -1
  156. package/dist/cjs/src/blofin.js +2 -2
  157. package/dist/cjs/src/btcbox.js +1 -1
  158. package/dist/cjs/src/btcmarkets.js +1 -1
  159. package/dist/cjs/src/btcturk.js +1 -1
  160. package/dist/cjs/src/bullish.js +1 -1
  161. package/dist/cjs/src/bybit.js +107 -30
  162. package/dist/cjs/src/bydfi.js +1 -1
  163. package/dist/cjs/src/cex.js +2 -2
  164. package/dist/cjs/src/coinbase.js +9 -7
  165. package/dist/cjs/src/coinbaseadvanced.js +1 -1
  166. package/dist/cjs/src/coinbaseexchange.js +1 -1
  167. package/dist/cjs/src/coincatch.js +4 -4
  168. package/dist/cjs/src/coincheck.js +1 -1
  169. package/dist/cjs/src/coinex.js +3 -3
  170. package/dist/cjs/src/coinmate.js +1 -1
  171. package/dist/cjs/src/coinmetro.js +2 -2
  172. package/dist/cjs/src/coinone.js +1 -1
  173. package/dist/cjs/src/coinsph.js +1 -0
  174. package/dist/cjs/src/coinspot.js +1 -1
  175. package/dist/cjs/src/cryptocom.js +6 -2
  176. package/dist/cjs/src/cryptomus.js +2 -2
  177. package/dist/cjs/src/deepcoin.js +2 -2
  178. package/dist/cjs/src/defx.js +2 -2
  179. package/dist/cjs/src/delta.js +4 -4
  180. package/dist/cjs/src/deribit.js +1 -1
  181. package/dist/cjs/src/derive.js +1 -1
  182. package/dist/cjs/src/digifinex.js +2 -2
  183. package/dist/cjs/src/dydx.js +2 -2
  184. package/dist/cjs/src/exmo.js +3 -3
  185. package/dist/cjs/src/fmfwio.js +1 -1
  186. package/dist/cjs/src/foxbit.js +2 -2
  187. package/dist/cjs/src/gate.js +24 -4
  188. package/dist/cjs/src/gateio.js +1 -1
  189. package/dist/cjs/src/gemini.js +1 -1
  190. package/dist/cjs/src/hashkey.js +2 -2
  191. package/dist/cjs/src/hibachi.js +2 -2
  192. package/dist/cjs/src/hitbtc.js +3 -2
  193. package/dist/cjs/src/hollaex.js +1 -1
  194. package/dist/cjs/src/htx.js +27 -2
  195. package/dist/cjs/src/huobi.js +1 -1
  196. package/dist/cjs/src/hyperliquid.js +7 -5
  197. package/dist/cjs/src/independentreserve.js +1 -1
  198. package/dist/cjs/src/indodax.js +1 -1
  199. package/dist/cjs/src/kraken.js +2 -2
  200. package/dist/cjs/src/krakenfutures.js +31 -7
  201. package/dist/cjs/src/kucoin.js +3 -3
  202. package/dist/cjs/src/kucoinfutures.js +2 -2
  203. package/dist/cjs/src/latoken.js +1 -1
  204. package/dist/cjs/src/lbank.js +1 -1
  205. package/dist/cjs/src/luno.js +2 -2
  206. package/dist/cjs/src/mercado.js +1 -1
  207. package/dist/cjs/src/mexc.js +3 -3
  208. package/dist/cjs/src/modetrade.js +2 -2
  209. package/dist/cjs/src/myokx.js +1 -1
  210. package/dist/cjs/src/ndax.js +2 -2
  211. package/dist/cjs/src/novadax.js +1 -1
  212. package/dist/cjs/src/okx.js +7 -5
  213. package/dist/cjs/src/okxus.js +1 -1
  214. package/dist/cjs/src/onetrading.js +1 -1
  215. package/dist/cjs/src/oxfun.js +1 -1
  216. package/dist/cjs/src/p2b.js +1 -1
  217. package/dist/cjs/src/paradex.js +2 -2
  218. package/dist/cjs/src/paymium.js +1 -1
  219. package/dist/cjs/src/phemex.js +1 -1
  220. package/dist/cjs/src/poloniex.js +3 -3
  221. package/dist/cjs/src/pro/alpaca.js +1 -1
  222. package/dist/cjs/src/pro/apex.js +6 -5
  223. package/dist/cjs/src/pro/arkham.js +2 -2
  224. package/dist/cjs/src/pro/ascendex.js +1 -1
  225. package/dist/cjs/src/pro/aster.js +906 -34
  226. package/dist/cjs/src/pro/backpack.js +1 -1
  227. package/dist/cjs/src/pro/bequant.js +1 -1
  228. package/dist/cjs/src/pro/binance.js +6 -1
  229. package/dist/cjs/src/pro/binancecoinm.js +1 -1
  230. package/dist/cjs/src/pro/binanceus.js +1 -1
  231. package/dist/cjs/src/pro/binanceusdm.js +1 -1
  232. package/dist/cjs/src/pro/bingx.js +1 -1
  233. package/dist/cjs/src/pro/bitfinex.js +1 -1
  234. package/dist/cjs/src/pro/bitget.js +15 -2
  235. package/dist/cjs/src/pro/bithumb.js +1 -1
  236. package/dist/cjs/src/pro/bitmart.js +1 -1
  237. package/dist/cjs/src/pro/bitmex.js +1 -1
  238. package/dist/cjs/src/pro/bitrue.js +1 -1
  239. package/dist/cjs/src/pro/bitstamp.js +1 -1
  240. package/dist/cjs/src/pro/bitvavo.js +1 -1
  241. package/dist/cjs/src/pro/blockchaincom.js +1 -1
  242. package/dist/cjs/src/pro/blofin.js +1 -1
  243. package/dist/cjs/src/pro/bullish.js +1 -1
  244. package/dist/cjs/src/pro/bybit.js +1 -1
  245. package/dist/cjs/src/pro/bydfi.js +1 -1
  246. package/dist/cjs/src/pro/cex.js +1 -1
  247. package/dist/cjs/src/pro/coinbase.js +1 -1
  248. package/dist/cjs/src/pro/coinbaseadvanced.js +1 -1
  249. package/dist/cjs/src/pro/coinbaseexchange.js +1 -1
  250. package/dist/cjs/src/pro/coinbaseinternational.js +1 -1
  251. package/dist/cjs/src/pro/coincatch.js +1 -1
  252. package/dist/cjs/src/pro/coincheck.js +1 -1
  253. package/dist/cjs/src/pro/coinex.js +1 -1
  254. package/dist/cjs/src/pro/coinone.js +1 -1
  255. package/dist/cjs/src/pro/cryptocom.js +1 -1
  256. package/dist/cjs/src/pro/deepcoin.js +1 -1
  257. package/dist/cjs/src/pro/defx.js +1 -1
  258. package/dist/cjs/src/pro/deribit.js +1 -1
  259. package/dist/cjs/src/pro/dydx.js +3 -3
  260. package/dist/cjs/src/pro/exmo.js +1 -1
  261. package/dist/cjs/src/pro/gate.js +1 -1
  262. package/dist/cjs/src/pro/gateio.js +1 -1
  263. package/dist/cjs/src/pro/gemini.js +1 -1
  264. package/dist/cjs/src/pro/hashkey.js +1 -1
  265. package/dist/cjs/src/pro/hitbtc.js +1 -1
  266. package/dist/cjs/src/pro/hollaex.js +1 -1
  267. package/dist/cjs/src/pro/htx.js +9 -9
  268. package/dist/cjs/src/pro/huobi.js +1 -1
  269. package/dist/cjs/src/pro/hyperliquid.js +15 -4
  270. package/dist/cjs/src/pro/independentreserve.js +1 -1
  271. package/dist/cjs/src/pro/kraken.js +1 -1
  272. package/dist/cjs/src/pro/krakenfutures.js +1 -1
  273. package/dist/cjs/src/pro/kucoin.js +1 -1
  274. package/dist/cjs/src/pro/kucoinfutures.js +1 -1
  275. package/dist/cjs/src/pro/lbank.js +3 -1
  276. package/dist/cjs/src/pro/luno.js +1 -1
  277. package/dist/cjs/src/pro/mexc.js +1 -1
  278. package/dist/cjs/src/pro/myokx.js +1 -1
  279. package/dist/cjs/src/pro/ndax.js +1 -1
  280. package/dist/cjs/src/pro/okx.js +24 -6
  281. package/dist/cjs/src/pro/okxus.js +1 -1
  282. package/dist/cjs/src/pro/onetrading.js +1 -1
  283. package/dist/cjs/src/pro/oxfun.js +1 -1
  284. package/dist/cjs/src/pro/p2b.js +1 -1
  285. package/dist/cjs/src/pro/paradex.js +1 -1
  286. package/dist/cjs/src/pro/phemex.js +1 -1
  287. package/dist/cjs/src/pro/poloniex.js +1 -1
  288. package/dist/cjs/src/pro/probit.js +1 -1
  289. package/dist/cjs/src/pro/toobit.js +2 -2
  290. package/dist/cjs/src/pro/upbit.js +1 -1
  291. package/dist/cjs/src/pro/whitebit.js +1 -1
  292. package/dist/cjs/src/pro/xt.js +1 -1
  293. package/dist/cjs/src/probit.js +1 -1
  294. package/dist/cjs/src/protobuf/mexc/compiled.cjs.js +0 -1
  295. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/base/v1beta1/coin.js +1 -0
  296. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/v1beta1/multisig.js +1 -0
  297. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/crypto/secp256k1/keys.js +1 -0
  298. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/tx/signing/v1beta1/signing.js +1 -0
  299. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/tx/v1beta1/tx.js +1 -0
  300. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/accountplus/tx.js +1 -0
  301. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/clob_pair.js +1 -0
  302. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order.js +1 -0
  303. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order_removals.js +1 -0
  304. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/tx.js +1 -0
  305. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/transfer.js +1 -0
  306. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/tx.js +1 -0
  307. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/subaccount.js +1 -0
  308. package/dist/cjs/src/static_dependencies/dydx-v4-client/google/protobuf/any.js +1 -0
  309. package/dist/cjs/src/static_dependencies/dydx-v4-client/helpers.js +6 -0
  310. package/dist/cjs/src/static_dependencies/dydx-v4-client/onboarding.js +1 -0
  311. package/dist/cjs/src/static_dependencies/dydx-v4-client/registry.js +1 -0
  312. package/dist/cjs/src/static_dependencies/ethers/abi-coder.js +6 -0
  313. package/dist/cjs/src/static_dependencies/ethers/address/address.js +1 -1
  314. package/dist/cjs/src/static_dependencies/ethers/coders/abstract-coder.js +6 -0
  315. package/dist/cjs/src/static_dependencies/ethers/coders/address.js +1 -0
  316. package/dist/cjs/src/static_dependencies/ethers/coders/anonymous.js +1 -0
  317. package/dist/cjs/src/static_dependencies/ethers/coders/array.js +1 -0
  318. package/dist/cjs/src/static_dependencies/ethers/coders/boolean.js +1 -0
  319. package/dist/cjs/src/static_dependencies/ethers/coders/bytes.js +1 -0
  320. package/dist/cjs/src/static_dependencies/ethers/coders/fixed-bytes.js +1 -0
  321. package/dist/cjs/src/static_dependencies/ethers/coders/null.js +1 -0
  322. package/dist/cjs/src/static_dependencies/ethers/coders/number.js +1 -0
  323. package/dist/cjs/src/static_dependencies/ethers/coders/string.js +1 -0
  324. package/dist/cjs/src/static_dependencies/ethers/coders/tuple.js +1 -0
  325. package/dist/cjs/src/static_dependencies/ethers/fragments.js +6 -0
  326. package/dist/cjs/src/static_dependencies/ethers/hash/typed-data.js +6 -0
  327. package/dist/cjs/src/static_dependencies/ethers/index.js +1 -10
  328. package/dist/cjs/src/static_dependencies/ethers/interface.js +6 -0
  329. package/dist/cjs/src/static_dependencies/ethers/typed.js +6 -0
  330. package/dist/cjs/src/static_dependencies/ethers/utils/base58.js +1 -13
  331. package/dist/cjs/src/static_dependencies/ethers/utils/data.js +1 -6
  332. package/dist/cjs/src/static_dependencies/ethers/utils/errors.js +1 -9
  333. package/dist/cjs/src/static_dependencies/ethers/utils/events.js +6 -0
  334. package/dist/cjs/src/static_dependencies/ethers/utils/fixednumber.js +6 -0
  335. package/dist/cjs/src/static_dependencies/ethers/utils/index.js +1 -7
  336. package/dist/cjs/src/static_dependencies/ethers/utils/maths.js +1 -5
  337. package/dist/cjs/src/static_dependencies/ethers/utils/properties.js +6 -0
  338. package/dist/cjs/src/static_dependencies/ethers/utils/utf8.js +1 -8
  339. package/dist/cjs/src/static_dependencies/fflake/browser.js +1 -1
  340. package/dist/cjs/src/static_dependencies/jsencrypt/JSEncrypt.js +1 -0
  341. package/dist/cjs/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +1 -0
  342. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +1 -1
  343. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +6 -0
  344. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +6 -0
  345. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +6 -0
  346. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +1 -0
  347. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +1 -1
  348. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +6 -0
  349. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +1 -1
  350. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +1 -1
  351. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/util.js +6 -0
  352. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +1 -1
  353. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +6 -0
  354. package/dist/cjs/src/static_dependencies/messagepack/msgpack.js +6 -0
  355. package/dist/cjs/src/static_dependencies/noble-curves/_shortw_utils.js +1 -1
  356. package/dist/cjs/src/static_dependencies/noble-curves/abstract/curve.js +1 -1
  357. package/dist/cjs/src/static_dependencies/noble-curves/abstract/edwards.js +1 -1
  358. package/dist/cjs/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +1 -0
  359. package/dist/cjs/src/static_dependencies/noble-curves/abstract/modular.js +1 -1
  360. package/dist/cjs/src/static_dependencies/noble-curves/abstract/montgomery.js +1 -1
  361. package/dist/cjs/src/static_dependencies/noble-curves/abstract/poseidon.js +1 -1
  362. package/dist/cjs/src/static_dependencies/noble-curves/abstract/utils.js +6 -0
  363. package/dist/cjs/src/static_dependencies/noble-curves/abstract/weierstrass.js +1 -1
  364. package/dist/cjs/src/static_dependencies/noble-curves/ed25519.js +1 -1
  365. package/dist/cjs/src/static_dependencies/noble-curves/p256.js +1 -1
  366. package/dist/cjs/src/static_dependencies/noble-curves/secp256k1.js +1 -1
  367. package/dist/cjs/src/static_dependencies/noble-hashes/_assert.js +6 -0
  368. package/dist/cjs/src/static_dependencies/noble-hashes/_sha2.js +1 -0
  369. package/dist/cjs/src/static_dependencies/noble-hashes/_u64.js +6 -0
  370. package/dist/cjs/src/static_dependencies/noble-hashes/crypto.js +6 -0
  371. package/dist/cjs/src/static_dependencies/noble-hashes/hmac.js +1 -0
  372. package/dist/cjs/src/static_dependencies/noble-hashes/md5.js +1 -0
  373. package/dist/cjs/src/static_dependencies/noble-hashes/pbkdf2.js +1 -0
  374. package/dist/cjs/src/static_dependencies/noble-hashes/ripemd160.js +1 -0
  375. package/dist/cjs/src/static_dependencies/noble-hashes/sha1.js +1 -0
  376. package/dist/cjs/src/static_dependencies/noble-hashes/sha256.js +1 -0
  377. package/dist/cjs/src/static_dependencies/noble-hashes/sha3.js +1 -0
  378. package/dist/cjs/src/static_dependencies/noble-hashes/sha512.js +1 -0
  379. package/dist/cjs/src/static_dependencies/noble-hashes/utils.js +1 -1
  380. package/dist/cjs/src/static_dependencies/node-fetch/body.js +1 -5
  381. package/dist/cjs/src/static_dependencies/node-fetch/errors/abort-error.js +1 -0
  382. package/dist/cjs/src/static_dependencies/node-fetch/errors/base.js +6 -0
  383. package/dist/cjs/src/static_dependencies/node-fetch/errors/fetch-error.js +1 -0
  384. package/dist/cjs/src/static_dependencies/node-fetch/headers.js +1 -5
  385. package/dist/cjs/src/static_dependencies/node-fetch/index.js +1 -7
  386. package/dist/cjs/src/static_dependencies/node-fetch/request.js +1 -7
  387. package/dist/cjs/src/static_dependencies/node-fetch/response.js +1 -5
  388. package/dist/cjs/src/static_dependencies/node-fetch/utils/get-search.js +6 -0
  389. package/dist/cjs/src/static_dependencies/node-fetch/utils/is-redirect.js +6 -0
  390. package/dist/cjs/src/static_dependencies/node-fetch/utils/is.js +6 -0
  391. package/dist/cjs/src/static_dependencies/node-fetch/utils/referrer.js +1 -0
  392. package/dist/cjs/src/static_dependencies/proxies/agent-base/index.js +1 -0
  393. package/dist/cjs/src/static_dependencies/proxies/http-proxy-agent/index.js +1 -0
  394. package/dist/cjs/src/static_dependencies/proxies/https-proxy-agent/index.js +1 -0
  395. package/dist/cjs/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +6 -0
  396. package/dist/cjs/src/static_dependencies/qs/formats.js +6 -0
  397. package/dist/cjs/src/static_dependencies/qs/index.js +1 -0
  398. package/dist/cjs/src/static_dependencies/qs/parse.js +1 -0
  399. package/dist/cjs/src/static_dependencies/qs/stringify.js +1 -0
  400. package/dist/cjs/src/static_dependencies/qs/utils.js +6 -0
  401. package/dist/cjs/src/static_dependencies/scure-base/index.js +6 -0
  402. package/dist/cjs/src/static_dependencies/scure-bip32/index.js +1 -19
  403. package/dist/cjs/src/static_dependencies/scure-bip39/index.js +1 -1
  404. package/dist/cjs/src/static_dependencies/scure-bip39/wordlists/english.js +6 -0
  405. package/dist/cjs/src/static_dependencies/scure-starknet/index.js +1 -1
  406. package/dist/cjs/src/static_dependencies/starknet/constants.js +1 -1
  407. package/dist/cjs/src/static_dependencies/starknet/types/calldata.js +6 -0
  408. package/dist/cjs/src/static_dependencies/starknet/types/lib/contract/abi.js +6 -0
  409. package/dist/cjs/src/static_dependencies/starknet/types/lib/contract/index.js +6 -0
  410. package/dist/cjs/src/static_dependencies/starknet/types/lib/index.js +6 -0
  411. package/dist/cjs/src/static_dependencies/starknet/types/typedData.js +6 -0
  412. package/dist/cjs/src/static_dependencies/starknet/utils/assert.js +6 -0
  413. package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +1 -1
  414. package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +1 -1
  415. package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +1 -1
  416. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/byteArray.js +1 -0
  417. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/cairo.js +1 -0
  418. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +6 -0
  419. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +6 -0
  420. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +6 -0
  421. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/formatter.js +1 -0
  422. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/index.js +1 -1
  423. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/index.js +1 -0
  424. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +1 -0
  425. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +6 -0
  426. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +1 -0
  427. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/requestParser.js +1 -0
  428. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/responseParser.js +1 -0
  429. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/tuple.js +1 -1
  430. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/validate.js +1 -4
  431. package/dist/cjs/src/static_dependencies/starknet/utils/encode.js +1 -0
  432. package/dist/cjs/src/static_dependencies/starknet/utils/hash/classHash.js +1 -3
  433. package/dist/cjs/src/static_dependencies/starknet/utils/merkle.js +1 -0
  434. package/dist/cjs/src/static_dependencies/starknet/utils/num.js +1 -0
  435. package/dist/cjs/src/static_dependencies/starknet/utils/selector.js +1 -0
  436. package/dist/cjs/src/static_dependencies/starknet/utils/shortString.js +1 -0
  437. package/dist/cjs/src/static_dependencies/starknet/utils/typedData.js +1 -1
  438. package/dist/cjs/src/static_dependencies/watchable/src/unpromise.js +6 -0
  439. package/dist/cjs/src/static_dependencies/zklink/zklink-sdk-web.js +6 -0
  440. package/dist/cjs/src/timex.js +1 -0
  441. package/dist/cjs/src/tokocrypto.js +1 -1
  442. package/dist/cjs/src/toobit.js +2 -2
  443. package/dist/cjs/src/upbit.js +1 -1
  444. package/dist/cjs/src/wavesexchange.js +1 -1
  445. package/dist/cjs/src/whitebit.js +2 -2
  446. package/dist/cjs/src/woo.js +4 -4
  447. package/dist/cjs/src/woofipro.js +2 -2
  448. package/dist/cjs/src/xt.js +6 -6
  449. package/dist/cjs/src/yobit.js +1 -1
  450. package/dist/cjs/src/zaif.js +1 -1
  451. package/dist/cjs/src/zebpay.js +3 -3
  452. package/dist/cjs/src/zonda.js +2 -2
  453. package/js/ccxt.d.ts +5 -5
  454. package/js/ccxt.js +10 -4
  455. package/js/src/abstract/alp.js +11 -0
  456. package/js/src/abstract/alpaca.js +6 -0
  457. package/js/src/abstract/apex.js +6 -0
  458. package/js/src/abstract/arkham.js +6 -0
  459. package/js/src/abstract/ascendex.js +6 -0
  460. package/js/src/abstract/aster.d.ts +6 -8
  461. package/js/src/abstract/aster.js +6 -0
  462. package/js/src/abstract/backpack.js +6 -0
  463. package/js/src/abstract/bequant.js +6 -0
  464. package/js/src/abstract/bigone.js +6 -0
  465. package/js/src/abstract/binance.d.ts +2 -0
  466. package/js/src/abstract/binance.js +6 -0
  467. package/js/src/abstract/binancecoinm.d.ts +2 -0
  468. package/js/src/abstract/binancecoinm.js +6 -0
  469. package/js/src/abstract/binanceus.d.ts +2 -0
  470. package/js/src/abstract/binanceus.js +6 -0
  471. package/js/src/abstract/binanceusdm.d.ts +2 -0
  472. package/js/src/abstract/binanceusdm.js +6 -0
  473. package/js/src/abstract/bingx.d.ts +1 -0
  474. package/js/src/abstract/bingx.js +6 -0
  475. package/js/src/abstract/bit2c.js +6 -0
  476. package/js/src/abstract/bitbank.js +6 -0
  477. package/js/src/abstract/bitbns.js +6 -0
  478. package/js/src/abstract/bitfinex.js +6 -0
  479. package/js/src/abstract/bitflyer.js +6 -0
  480. package/js/src/abstract/bitget.js +6 -0
  481. package/js/src/abstract/bithumb.js +6 -0
  482. package/js/src/abstract/bitmart.js +6 -0
  483. package/js/src/abstract/bitmex.js +6 -0
  484. package/js/src/abstract/bitopro.js +6 -0
  485. package/js/src/abstract/bitrue.js +6 -0
  486. package/js/src/abstract/bitso.js +6 -0
  487. package/js/src/abstract/bitstamp.js +6 -0
  488. package/js/src/abstract/bitteam.js +6 -0
  489. package/js/src/abstract/bittrade.js +6 -0
  490. package/js/src/abstract/bitvavo.js +6 -0
  491. package/js/src/abstract/blockchaincom.js +6 -0
  492. package/js/src/abstract/blofin.js +6 -0
  493. package/js/src/abstract/btcbox.js +6 -0
  494. package/js/src/abstract/btcmarkets.js +6 -0
  495. package/js/src/abstract/btcturk.js +6 -0
  496. package/js/src/abstract/bullish.js +6 -0
  497. package/js/src/abstract/bybit.d.ts +15 -0
  498. package/js/src/abstract/bybit.js +6 -0
  499. package/js/src/abstract/bydfi.js +6 -0
  500. package/js/src/abstract/cex.js +6 -0
  501. package/js/src/abstract/coinbase.js +6 -0
  502. package/js/src/abstract/coinbaseadvanced.js +6 -0
  503. package/js/src/abstract/coinbaseexchange.js +6 -0
  504. package/js/src/abstract/coinbaseinternational.js +6 -0
  505. package/js/src/abstract/coincatch.js +6 -0
  506. package/js/src/abstract/coincheck.js +6 -0
  507. package/js/src/abstract/coinex.js +6 -0
  508. package/js/src/abstract/coinmate.js +6 -0
  509. package/js/src/abstract/coinmetro.js +6 -0
  510. package/js/src/abstract/coinone.js +6 -0
  511. package/js/src/abstract/coinsph.js +6 -0
  512. package/js/src/abstract/coinspot.js +6 -0
  513. package/js/src/abstract/cryptocom.d.ts +3 -0
  514. package/js/src/abstract/cryptocom.js +6 -0
  515. package/js/src/abstract/cryptomus.js +6 -0
  516. package/js/src/abstract/deepcoin.js +6 -0
  517. package/js/src/abstract/defx.js +6 -0
  518. package/js/src/abstract/delta.js +6 -0
  519. package/js/src/abstract/deribit.js +6 -0
  520. package/js/src/abstract/derive.js +6 -0
  521. package/js/src/abstract/digifinex.js +6 -0
  522. package/js/src/abstract/dydx.js +6 -0
  523. package/js/src/abstract/exmo.js +6 -0
  524. package/js/src/abstract/fmfwio.js +6 -0
  525. package/js/src/abstract/foxbit.js +6 -0
  526. package/js/src/abstract/gate.d.ts +13 -0
  527. package/js/src/abstract/gate.js +6 -0
  528. package/js/src/abstract/gateio.d.ts +13 -0
  529. package/js/src/abstract/gateio.js +6 -0
  530. package/js/src/abstract/gemini.js +6 -0
  531. package/js/src/abstract/hashkey.js +6 -0
  532. package/js/src/abstract/hibachi.js +6 -0
  533. package/js/src/abstract/hitbtc.js +6 -0
  534. package/js/src/abstract/hollaex.js +6 -0
  535. package/js/src/abstract/htx.d.ts +25 -0
  536. package/js/src/abstract/htx.js +6 -0
  537. package/js/src/abstract/huobi.d.ts +25 -0
  538. package/js/src/abstract/huobi.js +6 -0
  539. package/js/src/abstract/hyperliquid.js +6 -0
  540. package/js/src/abstract/independentreserve.js +6 -0
  541. package/js/src/abstract/indodax.js +6 -0
  542. package/js/src/abstract/kraken.js +6 -0
  543. package/js/src/abstract/krakenfutures.js +6 -0
  544. package/js/src/abstract/kucoin.js +6 -0
  545. package/js/src/abstract/kucoinfutures.js +6 -0
  546. package/js/src/abstract/latoken.js +6 -0
  547. package/js/src/abstract/lbank.js +6 -0
  548. package/js/src/abstract/luno.js +6 -0
  549. package/js/src/abstract/mercado.js +6 -0
  550. package/js/src/abstract/mexc.js +6 -0
  551. package/js/src/abstract/modetrade.js +6 -0
  552. package/js/src/abstract/myokx.js +6 -0
  553. package/js/src/abstract/ndax.js +6 -0
  554. package/js/src/abstract/novadax.js +6 -0
  555. package/js/src/abstract/okx.js +6 -0
  556. package/js/src/abstract/okxus.js +6 -0
  557. package/js/src/abstract/onetrading.js +6 -0
  558. package/js/src/abstract/oxfun.js +6 -0
  559. package/js/src/abstract/p2b.js +6 -0
  560. package/js/src/abstract/paradex.js +6 -0
  561. package/js/src/abstract/paymium.js +6 -0
  562. package/js/src/abstract/phemex.js +6 -0
  563. package/js/src/abstract/poloniex.js +6 -0
  564. package/js/src/abstract/probit.js +6 -0
  565. package/js/src/abstract/timex.js +6 -0
  566. package/js/src/abstract/tokocrypto.js +6 -0
  567. package/js/src/abstract/toobit.js +6 -0
  568. package/js/src/abstract/upbit.js +6 -0
  569. package/js/src/abstract/wavesexchange.js +6 -0
  570. package/js/src/abstract/whitebit.js +6 -0
  571. package/js/src/abstract/woo.js +6 -0
  572. package/js/src/abstract/woofipro.js +6 -0
  573. package/js/src/abstract/xt.js +6 -0
  574. package/js/src/abstract/yobit.js +6 -0
  575. package/js/src/abstract/zaif.js +6 -0
  576. package/js/src/abstract/zebpay.js +6 -0
  577. package/js/src/abstract/zonda.js +6 -0
  578. package/js/src/{btcalpha.d.ts → alp.d.ts} +37 -37
  579. package/js/src/{btcalpha.js → alp.js} +50 -44
  580. package/js/src/alpaca.js +6 -0
  581. package/js/src/apex.js +6 -0
  582. package/js/src/arkham.js +6 -0
  583. package/js/src/ascendex.d.ts +2 -2
  584. package/js/src/ascendex.js +8 -2
  585. package/js/src/aster.js +21 -22
  586. package/js/src/backpack.js +8 -2
  587. package/js/src/base/Exchange.d.ts +2 -0
  588. package/js/src/base/Exchange.js +58 -4
  589. package/js/src/base/Precise.js +6 -0
  590. package/js/src/base/errorHierarchy.js +6 -0
  591. package/js/src/base/errors.js +6 -0
  592. package/js/src/base/functions/crypto.js +6 -0
  593. package/js/src/base/functions/encode.js +6 -0
  594. package/js/src/base/functions/generic.js +6 -0
  595. package/js/src/base/functions/misc.js +6 -0
  596. package/js/src/base/functions/number.js +6 -0
  597. package/js/src/base/functions/platform.js +6 -0
  598. package/js/src/base/functions/rsa.js +6 -0
  599. package/js/src/base/functions/string.js +6 -0
  600. package/js/src/base/functions/throttle.js +6 -0
  601. package/js/src/base/functions/time.js +6 -0
  602. package/js/src/base/functions/totp.js +6 -0
  603. package/js/src/base/functions/type.js +6 -0
  604. package/js/src/base/functions.js +6 -0
  605. package/js/src/base/types.js +6 -0
  606. package/js/src/base/ws/Cache.js +6 -0
  607. package/js/src/base/ws/Client.js +6 -0
  608. package/js/src/base/ws/Future.js +6 -0
  609. package/js/src/base/ws/OrderBook.js +6 -0
  610. package/js/src/base/ws/OrderBookSide.js +6 -0
  611. package/js/src/base/ws/WsClient.js +6 -0
  612. package/js/src/base/ws/functions.js +6 -0
  613. package/js/src/bequant.js +6 -0
  614. package/js/src/bigone.js +7 -1
  615. package/js/src/binance.d.ts +4 -4
  616. package/js/src/binance.js +12 -4
  617. package/js/src/binancecoinm.js +6 -0
  618. package/js/src/binanceus.js +6 -0
  619. package/js/src/binanceusdm.js +6 -0
  620. package/js/src/bingx.d.ts +25 -2
  621. package/js/src/bingx.js +92 -1
  622. package/js/src/bit2c.js +6 -0
  623. package/js/src/bitbank.js +6 -0
  624. package/js/src/bitbns.js +6 -0
  625. package/js/src/bitfinex.d.ts +1 -2
  626. package/js/src/bitfinex.js +12 -11
  627. package/js/src/bitflyer.js +6 -0
  628. package/js/src/bitget.d.ts +3 -3
  629. package/js/src/bitget.js +13 -7
  630. package/js/src/bithumb.js +6 -0
  631. package/js/src/bitmart.d.ts +1 -1
  632. package/js/src/bitmart.js +7 -1
  633. package/js/src/bitmex.d.ts +1 -1
  634. package/js/src/bitmex.js +7 -1
  635. package/js/src/bitopro.js +6 -0
  636. package/js/src/bitrue.js +7 -1
  637. package/js/src/bitso.d.ts +1 -1
  638. package/js/src/bitso.js +7 -1
  639. package/js/src/bitstamp.d.ts +1 -1
  640. package/js/src/bitstamp.js +7 -1
  641. package/js/src/bitteam.js +6 -0
  642. package/js/src/bittrade.js +6 -0
  643. package/js/src/bitvavo.js +6 -0
  644. package/js/src/blockchaincom.js +6 -0
  645. package/js/src/blofin.d.ts +1 -1
  646. package/js/src/blofin.js +7 -1
  647. package/js/src/btcbox.js +6 -0
  648. package/js/src/btcmarkets.js +6 -0
  649. package/js/src/btcturk.js +6 -0
  650. package/js/src/bullish.js +6 -0
  651. package/js/src/bybit.d.ts +14 -2
  652. package/js/src/bybit.js +113 -30
  653. package/js/src/bydfi.js +6 -0
  654. package/js/src/cex.d.ts +1 -1
  655. package/js/src/cex.js +7 -1
  656. package/js/src/coinbase.d.ts +3 -2
  657. package/js/src/coinbase.js +15 -7
  658. package/js/src/coinbaseadvanced.js +6 -0
  659. package/js/src/coinbaseexchange.d.ts +1 -1
  660. package/js/src/coinbaseexchange.js +7 -1
  661. package/js/src/coinbaseinternational.js +6 -0
  662. package/js/src/coincatch.d.ts +3 -3
  663. package/js/src/coincatch.js +9 -3
  664. package/js/src/coincheck.js +6 -0
  665. package/js/src/coinex.d.ts +2 -2
  666. package/js/src/coinex.js +8 -2
  667. package/js/src/coinmate.js +6 -0
  668. package/js/src/coinmetro.d.ts +1 -1
  669. package/js/src/coinmetro.js +7 -1
  670. package/js/src/coinone.js +6 -0
  671. package/js/src/coinsph.js +6 -0
  672. package/js/src/coinspot.js +6 -0
  673. package/js/src/cryptocom.d.ts +1 -1
  674. package/js/src/cryptocom.js +11 -1
  675. package/js/src/cryptomus.js +7 -1
  676. package/js/src/deepcoin.d.ts +1 -1
  677. package/js/src/deepcoin.js +7 -1
  678. package/js/src/defx.d.ts +1 -1
  679. package/js/src/defx.js +7 -1
  680. package/js/src/delta.d.ts +3 -3
  681. package/js/src/delta.js +9 -3
  682. package/js/src/deribit.js +6 -0
  683. package/js/src/derive.js +6 -0
  684. package/js/src/digifinex.d.ts +1 -1
  685. package/js/src/digifinex.js +7 -1
  686. package/js/src/dydx.d.ts +1 -1
  687. package/js/src/dydx.js +7 -1
  688. package/js/src/exmo.d.ts +2 -2
  689. package/js/src/exmo.js +8 -2
  690. package/js/src/fmfwio.js +6 -0
  691. package/js/src/foxbit.js +7 -1
  692. package/js/src/gate.d.ts +3 -3
  693. package/js/src/gate.js +29 -3
  694. package/js/src/gateio.js +6 -0
  695. package/js/src/gemini.js +6 -0
  696. package/js/src/hashkey.d.ts +1 -1
  697. package/js/src/hashkey.js +7 -1
  698. package/js/src/hibachi.d.ts +1 -1
  699. package/js/src/hibachi.js +7 -1
  700. package/js/src/hitbtc.d.ts +2 -2
  701. package/js/src/hitbtc.js +8 -2
  702. package/js/src/hollaex.js +6 -0
  703. package/js/src/htx.d.ts +1 -1
  704. package/js/src/htx.js +32 -1
  705. package/js/src/huobi.js +6 -0
  706. package/js/src/hyperliquid.d.ts +3 -3
  707. package/js/src/hyperliquid.js +12 -4
  708. package/js/src/independentreserve.js +6 -0
  709. package/js/src/indodax.js +6 -0
  710. package/js/src/kraken.d.ts +1 -1
  711. package/js/src/kraken.js +7 -1
  712. package/js/src/krakenfutures.d.ts +2 -0
  713. package/js/src/krakenfutures.js +36 -6
  714. package/js/src/kucoin.d.ts +1 -1
  715. package/js/src/kucoin.js +9 -3
  716. package/js/src/kucoinfutures.d.ts +1 -1
  717. package/js/src/kucoinfutures.js +7 -1
  718. package/js/src/latoken.js +6 -0
  719. package/js/src/lbank.js +6 -0
  720. package/js/src/luno.d.ts +1 -1
  721. package/js/src/luno.js +7 -1
  722. package/js/src/mercado.js +6 -0
  723. package/js/src/mexc.d.ts +2 -2
  724. package/js/src/mexc.js +8 -2
  725. package/js/src/modetrade.d.ts +1 -1
  726. package/js/src/modetrade.js +7 -1
  727. package/js/src/myokx.js +6 -0
  728. package/js/src/ndax.d.ts +1 -1
  729. package/js/src/ndax.js +7 -1
  730. package/js/src/novadax.js +6 -0
  731. package/js/src/okx.d.ts +3 -3
  732. package/js/src/okx.js +12 -4
  733. package/js/src/okxus.js +6 -0
  734. package/js/src/onetrading.js +6 -0
  735. package/js/src/oxfun.js +6 -0
  736. package/js/src/p2b.js +6 -0
  737. package/js/src/paradex.js +7 -1
  738. package/js/src/paymium.js +6 -0
  739. package/js/src/phemex.d.ts +1 -1
  740. package/js/src/phemex.js +7 -1
  741. package/js/src/poloniex.d.ts +2 -2
  742. package/js/src/poloniex.js +8 -2
  743. package/js/src/pro/alpaca.js +6 -0
  744. package/js/src/pro/apex.js +11 -4
  745. package/js/src/pro/arkham.js +7 -1
  746. package/js/src/pro/ascendex.js +6 -0
  747. package/js/src/pro/aster.d.ts +68 -2
  748. package/js/src/pro/aster.js +912 -34
  749. package/js/src/pro/backpack.js +6 -0
  750. package/js/src/pro/bequant.js +6 -0
  751. package/js/src/pro/binance.js +12 -1
  752. package/js/src/pro/binancecoinm.js +6 -0
  753. package/js/src/pro/binanceus.js +6 -0
  754. package/js/src/pro/binanceusdm.js +6 -0
  755. package/js/src/pro/bingx.js +6 -0
  756. package/js/src/pro/bitfinex.js +6 -0
  757. package/js/src/pro/bitget.js +20 -1
  758. package/js/src/pro/bithumb.js +6 -0
  759. package/js/src/pro/bitmart.js +6 -0
  760. package/js/src/pro/bitmex.js +6 -0
  761. package/js/src/pro/bitopro.js +6 -0
  762. package/js/src/pro/bitrue.js +6 -0
  763. package/js/src/pro/bitstamp.js +6 -0
  764. package/js/src/pro/bittrade.js +6 -0
  765. package/js/src/pro/bitvavo.js +6 -0
  766. package/js/src/pro/blockchaincom.js +6 -0
  767. package/js/src/pro/blofin.js +6 -0
  768. package/js/src/pro/bullish.js +6 -0
  769. package/js/src/pro/bybit.js +6 -0
  770. package/js/src/pro/bydfi.js +6 -0
  771. package/js/src/pro/cex.js +6 -0
  772. package/js/src/pro/coinbase.js +6 -0
  773. package/js/src/pro/coinbaseadvanced.js +6 -0
  774. package/js/src/pro/coinbaseexchange.js +6 -0
  775. package/js/src/pro/coinbaseinternational.js +6 -0
  776. package/js/src/pro/coincatch.js +6 -0
  777. package/js/src/pro/coincheck.js +6 -0
  778. package/js/src/pro/coinex.js +6 -0
  779. package/js/src/pro/coinone.js +6 -0
  780. package/js/src/pro/cryptocom.js +6 -0
  781. package/js/src/pro/deepcoin.js +6 -0
  782. package/js/src/pro/defx.js +6 -0
  783. package/js/src/pro/deribit.js +6 -0
  784. package/js/src/pro/derive.js +6 -0
  785. package/js/src/pro/dydx.js +8 -2
  786. package/js/src/pro/exmo.js +6 -0
  787. package/js/src/pro/gate.js +6 -0
  788. package/js/src/pro/gateio.js +6 -0
  789. package/js/src/pro/gemini.js +6 -0
  790. package/js/src/pro/hashkey.js +6 -0
  791. package/js/src/pro/hitbtc.js +6 -0
  792. package/js/src/pro/hollaex.js +6 -0
  793. package/js/src/pro/htx.js +14 -8
  794. package/js/src/pro/huobi.js +6 -0
  795. package/js/src/pro/hyperliquid.d.ts +3 -0
  796. package/js/src/pro/hyperliquid.js +20 -3
  797. package/js/src/pro/independentreserve.js +6 -0
  798. package/js/src/pro/kraken.js +6 -0
  799. package/js/src/pro/krakenfutures.js +6 -0
  800. package/js/src/pro/kucoin.js +6 -0
  801. package/js/src/pro/kucoinfutures.js +6 -0
  802. package/js/src/pro/lbank.js +8 -1
  803. package/js/src/pro/luno.js +6 -0
  804. package/js/src/pro/mexc.js +6 -0
  805. package/js/src/pro/modetrade.js +6 -0
  806. package/js/src/pro/myokx.js +6 -0
  807. package/js/src/pro/ndax.js +6 -0
  808. package/js/src/pro/okx.d.ts +1 -1
  809. package/js/src/pro/okx.js +29 -5
  810. package/js/src/pro/okxus.js +6 -0
  811. package/js/src/pro/onetrading.js +6 -0
  812. package/js/src/pro/oxfun.js +6 -0
  813. package/js/src/pro/p2b.js +6 -0
  814. package/js/src/pro/paradex.js +6 -0
  815. package/js/src/pro/phemex.js +6 -0
  816. package/js/src/pro/poloniex.js +6 -0
  817. package/js/src/pro/probit.js +6 -0
  818. package/js/src/pro/toobit.js +7 -1
  819. package/js/src/pro/upbit.js +6 -0
  820. package/js/src/pro/whitebit.js +6 -0
  821. package/js/src/pro/woo.js +6 -0
  822. package/js/src/pro/woofipro.js +6 -0
  823. package/js/src/pro/xt.js +6 -0
  824. package/js/src/probit.js +6 -0
  825. package/js/src/protobuf/mexc/compiled.cjs +6 -0
  826. package/js/src/static_dependencies/dydx-v4-client/cosmos/base/v1beta1/coin.js +6 -0
  827. package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/keys.js +6 -0
  828. package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/v1beta1/multisig.js +6 -0
  829. package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/secp256k1/keys.js +6 -0
  830. package/js/src/static_dependencies/dydx-v4-client/cosmos/tx/signing/v1beta1/signing.js +6 -0
  831. package/js/src/static_dependencies/dydx-v4-client/cosmos/tx/v1beta1/tx.js +6 -0
  832. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/accountplus/tx.js +6 -0
  833. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/block_rate_limit_config.js +6 -0
  834. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/clob_pair.js +6 -0
  835. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/equity_tier_limit_config.js +6 -0
  836. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/finalize_block.js +6 -0
  837. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/liquidations.js +6 -0
  838. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/liquidations_config.js +6 -0
  839. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/matches.js +6 -0
  840. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order.js +6 -0
  841. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order_removals.js +6 -0
  842. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/tx.js +6 -0
  843. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/transfer.js +6 -0
  844. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/tx.js +6 -0
  845. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/asset_position.js +6 -0
  846. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/perpetual_position.js +6 -0
  847. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/subaccount.js +6 -0
  848. package/js/src/static_dependencies/dydx-v4-client/google/protobuf/any.js +6 -0
  849. package/js/src/static_dependencies/dydx-v4-client/helpers.js +6 -0
  850. package/js/src/static_dependencies/dydx-v4-client/long/index.cjs +6 -0
  851. package/js/src/static_dependencies/dydx-v4-client/onboarding.js +6 -0
  852. package/js/src/static_dependencies/dydx-v4-client/registry.js +6 -0
  853. package/js/src/static_dependencies/ethers/abi-coder.js +6 -0
  854. package/js/src/static_dependencies/ethers/address/address.js +6 -0
  855. package/js/src/static_dependencies/ethers/address/checks.js +6 -0
  856. package/js/src/static_dependencies/ethers/address/contract-address.js +6 -0
  857. package/js/src/static_dependencies/ethers/address/index.js +6 -0
  858. package/js/src/static_dependencies/ethers/bytes32.js +6 -0
  859. package/js/src/static_dependencies/ethers/coders/abstract-coder.js +6 -0
  860. package/js/src/static_dependencies/ethers/coders/address.js +6 -0
  861. package/js/src/static_dependencies/ethers/coders/anonymous.js +6 -0
  862. package/js/src/static_dependencies/ethers/coders/array.js +6 -0
  863. package/js/src/static_dependencies/ethers/coders/boolean.js +6 -0
  864. package/js/src/static_dependencies/ethers/coders/bytes.js +6 -0
  865. package/js/src/static_dependencies/ethers/coders/fixed-bytes.js +6 -0
  866. package/js/src/static_dependencies/ethers/coders/null.js +6 -0
  867. package/js/src/static_dependencies/ethers/coders/number.js +6 -0
  868. package/js/src/static_dependencies/ethers/coders/string.js +6 -0
  869. package/js/src/static_dependencies/ethers/coders/tuple.js +6 -0
  870. package/js/src/static_dependencies/ethers/fragments.js +6 -0
  871. package/js/src/static_dependencies/ethers/hash/index.js +6 -0
  872. package/js/src/static_dependencies/ethers/hash/solidity.js +6 -0
  873. package/js/src/static_dependencies/ethers/hash/typed-data.js +6 -0
  874. package/js/src/static_dependencies/ethers/index.js +6 -0
  875. package/js/src/static_dependencies/ethers/interface.js +6 -0
  876. package/js/src/static_dependencies/ethers/typed.js +6 -0
  877. package/js/src/static_dependencies/ethers/utils/base58.js +6 -0
  878. package/js/src/static_dependencies/ethers/utils/base64-browser.js +6 -0
  879. package/js/src/static_dependencies/ethers/utils/base64.js +6 -0
  880. package/js/src/static_dependencies/ethers/utils/data.js +6 -0
  881. package/js/src/static_dependencies/ethers/utils/errors.js +6 -0
  882. package/js/src/static_dependencies/ethers/utils/events.js +6 -0
  883. package/js/src/static_dependencies/ethers/utils/fixednumber.js +6 -0
  884. package/js/src/static_dependencies/ethers/utils/index.js +6 -0
  885. package/js/src/static_dependencies/ethers/utils/maths.js +6 -0
  886. package/js/src/static_dependencies/ethers/utils/properties.js +6 -0
  887. package/js/src/static_dependencies/ethers/utils/rlp-decode.js +6 -0
  888. package/js/src/static_dependencies/ethers/utils/rlp-encode.js +6 -0
  889. package/js/src/static_dependencies/ethers/utils/rlp.js +6 -0
  890. package/js/src/static_dependencies/ethers/utils/units.js +6 -0
  891. package/js/src/static_dependencies/ethers/utils/utf8.js +6 -0
  892. package/js/src/static_dependencies/ethers/utils/uuid.js +6 -0
  893. package/js/src/static_dependencies/fflake/browser.js +6 -0
  894. package/js/src/static_dependencies/jsencrypt/JSEncrypt.js +6 -0
  895. package/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +6 -0
  896. package/js/src/static_dependencies/jsencrypt/index.js +6 -0
  897. package/js/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +6 -0
  898. package/js/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +6 -0
  899. package/js/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +6 -0
  900. package/js/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +6 -0
  901. package/js/src/static_dependencies/jsencrypt/lib/asn1js/oids.js +6 -0
  902. package/js/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +6 -0
  903. package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +6 -0
  904. package/js/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +6 -0
  905. package/js/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +6 -0
  906. package/js/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +6 -0
  907. package/js/src/static_dependencies/jsencrypt/lib/jsbn/util.js +6 -0
  908. package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +6 -0
  909. package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +6 -0
  910. package/js/src/static_dependencies/messagepack/msgpack.js +6 -0
  911. package/js/src/static_dependencies/noble-curves/_shortw_utils.js +6 -0
  912. package/js/src/static_dependencies/noble-curves/abstract/curve.js +6 -0
  913. package/js/src/static_dependencies/noble-curves/abstract/edwards.js +6 -0
  914. package/js/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +6 -0
  915. package/js/src/static_dependencies/noble-curves/abstract/modular.js +6 -0
  916. package/js/src/static_dependencies/noble-curves/abstract/montgomery.js +6 -0
  917. package/js/src/static_dependencies/noble-curves/abstract/poseidon.js +6 -0
  918. package/js/src/static_dependencies/noble-curves/abstract/utils.js +6 -0
  919. package/js/src/static_dependencies/noble-curves/abstract/weierstrass.js +6 -0
  920. package/js/src/static_dependencies/noble-curves/bn.js +6 -0
  921. package/js/src/static_dependencies/noble-curves/ed25519.js +6 -0
  922. package/js/src/static_dependencies/noble-curves/ed448.js +6 -0
  923. package/js/src/static_dependencies/noble-curves/index.js +6 -0
  924. package/js/src/static_dependencies/noble-curves/jubjub.js +6 -0
  925. package/js/src/static_dependencies/noble-curves/p256.js +6 -0
  926. package/js/src/static_dependencies/noble-curves/p384.js +6 -0
  927. package/js/src/static_dependencies/noble-curves/p521.js +6 -0
  928. package/js/src/static_dependencies/noble-curves/pasta.js +6 -0
  929. package/js/src/static_dependencies/noble-curves/secp256k1.js +6 -0
  930. package/js/src/static_dependencies/noble-hashes/_assert.js +6 -0
  931. package/js/src/static_dependencies/noble-hashes/_blake2.js +6 -0
  932. package/js/src/static_dependencies/noble-hashes/_sha2.js +6 -0
  933. package/js/src/static_dependencies/noble-hashes/_u64.js +6 -0
  934. package/js/src/static_dependencies/noble-hashes/argon2.js +6 -0
  935. package/js/src/static_dependencies/noble-hashes/blake2b.js +6 -0
  936. package/js/src/static_dependencies/noble-hashes/blake2s.js +6 -0
  937. package/js/src/static_dependencies/noble-hashes/blake3.js +6 -0
  938. package/js/src/static_dependencies/noble-hashes/crypto.js +6 -0
  939. package/js/src/static_dependencies/noble-hashes/cryptoNode.js +6 -0
  940. package/js/src/static_dependencies/noble-hashes/eskdf.js +6 -0
  941. package/js/src/static_dependencies/noble-hashes/hkdf.js +6 -0
  942. package/js/src/static_dependencies/noble-hashes/hmac.js +6 -0
  943. package/js/src/static_dependencies/noble-hashes/index.js +6 -0
  944. package/js/src/static_dependencies/noble-hashes/md5.js +6 -0
  945. package/js/src/static_dependencies/noble-hashes/pbkdf2.js +6 -0
  946. package/js/src/static_dependencies/noble-hashes/ripemd160.js +6 -0
  947. package/js/src/static_dependencies/noble-hashes/scrypt.js +6 -0
  948. package/js/src/static_dependencies/noble-hashes/sha1.js +6 -0
  949. package/js/src/static_dependencies/noble-hashes/sha256.js +6 -0
  950. package/js/src/static_dependencies/noble-hashes/sha3-addons.js +6 -0
  951. package/js/src/static_dependencies/noble-hashes/sha3.js +6 -0
  952. package/js/src/static_dependencies/noble-hashes/sha512.js +6 -0
  953. package/js/src/static_dependencies/noble-hashes/utils.js +6 -0
  954. package/js/src/static_dependencies/node-fetch/body.js +6 -0
  955. package/js/src/static_dependencies/node-fetch/errors/abort-error.js +6 -0
  956. package/js/src/static_dependencies/node-fetch/errors/base.js +6 -0
  957. package/js/src/static_dependencies/node-fetch/errors/fetch-error.js +6 -0
  958. package/js/src/static_dependencies/node-fetch/headers.js +6 -0
  959. package/js/src/static_dependencies/node-fetch/index.js +6 -0
  960. package/js/src/static_dependencies/node-fetch/request.js +6 -0
  961. package/js/src/static_dependencies/node-fetch/response.js +6 -0
  962. package/js/src/static_dependencies/node-fetch/utils/get-search.js +6 -0
  963. package/js/src/static_dependencies/node-fetch/utils/is-redirect.js +6 -0
  964. package/js/src/static_dependencies/node-fetch/utils/is.js +6 -0
  965. package/js/src/static_dependencies/node-fetch/utils/referrer.js +6 -0
  966. package/js/src/static_dependencies/proxies/agent-base/helpers.js +6 -0
  967. package/js/src/static_dependencies/proxies/agent-base/index.js +6 -0
  968. package/js/src/static_dependencies/proxies/http-proxy-agent/index.js +6 -0
  969. package/js/src/static_dependencies/proxies/https-proxy-agent/index.js +6 -0
  970. package/js/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +6 -0
  971. package/js/src/static_dependencies/qs/formats.js +6 -0
  972. package/js/src/static_dependencies/qs/index.js +6 -0
  973. package/js/src/static_dependencies/qs/parse.js +6 -0
  974. package/js/src/static_dependencies/qs/stringify.js +6 -0
  975. package/js/src/static_dependencies/qs/utils.js +6 -0
  976. package/js/src/static_dependencies/scure-base/index.js +6 -0
  977. package/js/src/static_dependencies/scure-bip32/index.js +6 -0
  978. package/js/src/static_dependencies/scure-bip39/index.js +6 -0
  979. package/js/src/static_dependencies/scure-bip39/wordlists/english.js +6 -0
  980. package/js/src/static_dependencies/scure-starknet/index.js +6 -0
  981. package/js/src/static_dependencies/starknet/constants.js +6 -0
  982. package/js/src/static_dependencies/starknet/index.js +6 -0
  983. package/js/src/static_dependencies/starknet/types/cairoEnum.js +6 -0
  984. package/js/src/static_dependencies/starknet/types/calldata.js +6 -0
  985. package/js/src/static_dependencies/starknet/types/index.js +6 -0
  986. package/js/src/static_dependencies/starknet/types/lib/contract/abi.js +6 -0
  987. package/js/src/static_dependencies/starknet/types/lib/contract/index.js +6 -0
  988. package/js/src/static_dependencies/starknet/types/lib/contract/legacy.js +6 -0
  989. package/js/src/static_dependencies/starknet/types/lib/contract/sierra.js +6 -0
  990. package/js/src/static_dependencies/starknet/types/lib/index.js +6 -0
  991. package/js/src/static_dependencies/starknet/types/typedData.js +6 -0
  992. package/js/src/static_dependencies/starknet/utils/address.js +6 -0
  993. package/js/src/static_dependencies/starknet/utils/assert.js +6 -0
  994. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +6 -0
  995. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +6 -0
  996. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +6 -0
  997. package/js/src/static_dependencies/starknet/utils/calldata/byteArray.js +6 -0
  998. package/js/src/static_dependencies/starknet/utils/calldata/cairo.js +6 -0
  999. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +6 -0
  1000. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +6 -0
  1001. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +6 -0
  1002. package/js/src/static_dependencies/starknet/utils/calldata/enum/index.js +6 -0
  1003. package/js/src/static_dependencies/starknet/utils/calldata/formatter.js +6 -0
  1004. package/js/src/static_dependencies/starknet/utils/calldata/index.js +6 -0
  1005. package/js/src/static_dependencies/starknet/utils/calldata/parser/index.js +6 -0
  1006. package/js/src/static_dependencies/starknet/utils/calldata/parser/interface.js +6 -0
  1007. package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +6 -0
  1008. package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +6 -0
  1009. package/js/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +6 -0
  1010. package/js/src/static_dependencies/starknet/utils/calldata/requestParser.js +6 -0
  1011. package/js/src/static_dependencies/starknet/utils/calldata/responseParser.js +6 -0
  1012. package/js/src/static_dependencies/starknet/utils/calldata/tuple.js +6 -0
  1013. package/js/src/static_dependencies/starknet/utils/calldata/validate.js +6 -0
  1014. package/js/src/static_dependencies/starknet/utils/encode.js +6 -0
  1015. package/js/src/static_dependencies/starknet/utils/hash/classHash.js +6 -0
  1016. package/js/src/static_dependencies/starknet/utils/hash/index.js +6 -0
  1017. package/js/src/static_dependencies/starknet/utils/merkle.js +6 -0
  1018. package/js/src/static_dependencies/starknet/utils/num.js +6 -0
  1019. package/js/src/static_dependencies/starknet/utils/selector.js +6 -0
  1020. package/js/src/static_dependencies/starknet/utils/shortString.js +6 -0
  1021. package/js/src/static_dependencies/starknet/utils/starknetId.js +6 -0
  1022. package/js/src/static_dependencies/starknet/utils/typedData.js +6 -0
  1023. package/js/src/static_dependencies/starknet/utils/uint256.js +6 -0
  1024. package/js/src/static_dependencies/starknet/utils/url.js +6 -0
  1025. package/js/src/static_dependencies/watchable/src/index.js +6 -0
  1026. package/js/src/static_dependencies/watchable/src/types.js +6 -0
  1027. package/js/src/static_dependencies/watchable/src/unpromise.js +6 -0
  1028. package/js/src/static_dependencies/zklink/zklink-sdk-web.js +6 -0
  1029. package/js/src/timex.js +6 -0
  1030. package/js/src/tokocrypto.js +6 -0
  1031. package/js/src/toobit.d.ts +1 -1
  1032. package/js/src/toobit.js +7 -1
  1033. package/js/src/upbit.js +6 -0
  1034. package/js/src/wavesexchange.js +6 -0
  1035. package/js/src/whitebit.js +7 -1
  1036. package/js/src/woo.d.ts +3 -3
  1037. package/js/src/woo.js +9 -3
  1038. package/js/src/woofipro.d.ts +1 -1
  1039. package/js/src/woofipro.js +7 -1
  1040. package/js/src/xt.d.ts +2 -2
  1041. package/js/src/xt.js +11 -5
  1042. package/js/src/yobit.js +6 -0
  1043. package/js/src/zaif.js +6 -0
  1044. package/js/src/zebpay.d.ts +2 -2
  1045. package/js/src/zebpay.js +8 -2
  1046. package/js/src/zonda.d.ts +1 -1
  1047. package/js/src/zonda.js +7 -1
  1048. package/package.json +1 -1
  1049. package/js/src/abstract/btcalpha.js +0 -5
  1050. /package/js/src/abstract/{btcalpha.d.ts → alp.d.ts} +0 -0
@@ -1,25 +1,35 @@
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 asterRest from '../aster.js';
9
+ import { Precise } from '../base/Precise.js';
3
10
  import { ArgumentsRequired } from '../base/errors.js';
4
- import { ArrayCache, ArrayCacheByTimestamp } from '../base/ws/Cache.js';
11
+ import { ArrayCache, ArrayCacheByTimestamp, ArrayCacheBySymbolById, ArrayCacheBySymbolBySide } from '../base/ws/Cache.js';
5
12
  // ---------------------------------------------------------------------------
6
13
  export default class aster extends asterRest {
7
14
  describe() {
8
15
  return this.deepExtend(super.describe(), {
9
16
  'has': {
10
17
  'ws': true,
11
- 'watchBalance': false,
18
+ 'watchBalance': true,
12
19
  'watchBidsAsks': true,
13
- 'watchTicker': true,
14
- 'watchTickers': true,
15
20
  'watchMarkPrice': true,
16
21
  'watchMarkPrices': true,
17
22
  'watchTrades': true,
18
23
  'watchTradesForSymbols': true,
24
+ 'watchOrders': true,
19
25
  'watchOrderBook': true,
20
26
  'watchOrderBookForSymbols': true,
21
27
  'watchOHLCV': true,
22
28
  'watchOHLCVForSymbols': true,
29
+ 'watchPositions': true,
30
+ 'watchTicker': true,
31
+ 'watchTickers': true,
32
+ 'watchMyTrades': true,
23
33
  'unWatchTicker': true,
24
34
  'unWatchTickers': true,
25
35
  'unWatchMarkPrice': true,
@@ -35,12 +45,40 @@ export default class aster extends asterRest {
35
45
  'urls': {
36
46
  'api': {
37
47
  'ws': {
38
- 'spot': 'wss://sstream.asterdex.com/stream',
39
- 'swap': 'wss://fstream.asterdex.com/stream',
48
+ 'public': {
49
+ 'spot': 'wss://sstream.asterdex.com/stream',
50
+ 'swap': 'wss://fstream.asterdex.com/stream',
51
+ },
52
+ 'private': {
53
+ 'spot': 'wss://sstream.asterdex.com/ws',
54
+ 'swap': 'wss://fstream.asterdex.com/ws',
55
+ },
40
56
  },
41
57
  },
42
58
  },
43
- 'options': {},
59
+ 'options': {
60
+ 'listenKey': {
61
+ 'spot': undefined,
62
+ 'swap': undefined,
63
+ },
64
+ 'lastAuthenticatedTime': {
65
+ 'spot': 0,
66
+ 'swap': 0,
67
+ },
68
+ 'listenKeyRefreshRate': {
69
+ 'spot': 3600000,
70
+ 'swap': 3600000,
71
+ },
72
+ 'watchBalance': {
73
+ 'fetchBalanceSnapshot': false,
74
+ 'awaitBalanceSnapshot': true, // whether to wait for the balance snapshot before providing updates
75
+ },
76
+ 'wallet': 'wb',
77
+ 'watchPositions': {
78
+ 'fetchPositionsSnapshot': true,
79
+ 'awaitPositionsSnapshot': true, // whether to wait for the positions snapshot before providing updates
80
+ },
81
+ },
44
82
  'streaming': {},
45
83
  'exceptions': {},
46
84
  });
@@ -109,7 +147,7 @@ export default class aster extends asterRest {
109
147
  if (symbolsLength === 0) {
110
148
  throw new ArgumentsRequired(this.id + ' ' + methodName + '() requires a non-empty array of symbols');
111
149
  }
112
- const url = this.urls['api']['ws'][type];
150
+ const url = this.urls['api']['ws']['public'][type];
113
151
  const subscriptionArgs = [];
114
152
  const messageHashes = [];
115
153
  const request = {
@@ -152,7 +190,7 @@ export default class aster extends asterRest {
152
190
  if (symbolsLength === 0) {
153
191
  throw new ArgumentsRequired(this.id + ' ' + methodName + '() requires a non-empty array of symbols');
154
192
  }
155
- const url = this.urls['api']['ws'][type];
193
+ const url = this.urls['api']['ws']['public'][type];
156
194
  const subscriptionArgs = [];
157
195
  const messageHashes = [];
158
196
  const request = {
@@ -220,7 +258,7 @@ export default class aster extends asterRest {
220
258
  if (symbolsLength === 0) {
221
259
  throw new ArgumentsRequired(this.id + ' ' + methodName + '() requires a non-empty array of symbols');
222
260
  }
223
- const url = this.urls['api']['ws'][type];
261
+ const url = this.urls['api']['ws']['public'][type];
224
262
  const subscriptionArgs = [];
225
263
  const messageHashes = [];
226
264
  const request = {
@@ -265,7 +303,7 @@ export default class aster extends asterRest {
265
303
  if (symbolsLength === 0) {
266
304
  throw new ArgumentsRequired(this.id + ' ' + methodName + '() requires a non-empty array of symbols');
267
305
  }
268
- const url = this.urls['api']['ws'][type];
306
+ const url = this.urls['api']['ws']['public'][type];
269
307
  const subscriptionArgs = [];
270
308
  const messageHashes = [];
271
309
  const request = {
@@ -391,7 +429,7 @@ export default class aster extends asterRest {
391
429
  if (symbolsLength === 0) {
392
430
  throw new ArgumentsRequired(this.id + ' watchBidsAsks() requires a non-empty array of symbols');
393
431
  }
394
- const url = this.urls['api']['ws'][type];
432
+ const url = this.urls['api']['ws']['public'][type];
395
433
  const subscriptionArgs = [];
396
434
  const messageHashes = [];
397
435
  const request = {
@@ -431,7 +469,7 @@ export default class aster extends asterRest {
431
469
  if (symbolsLength === 0) {
432
470
  throw new ArgumentsRequired(this.id + ' unWatchBidsAsks() requires a non-empty array of symbols');
433
471
  }
434
- const url = this.urls['api']['ws'][type];
472
+ const url = this.urls['api']['ws']['public'][type];
435
473
  const subscriptionArgs = [];
436
474
  const messageHashes = [];
437
475
  const request = {
@@ -542,7 +580,7 @@ export default class aster extends asterRest {
542
580
  if (symbolsLength === 0) {
543
581
  throw new ArgumentsRequired(this.id + ' ' + methodName + '() requires a non-empty array of symbols');
544
582
  }
545
- const url = this.urls['api']['ws'][type];
583
+ const url = this.urls['api']['ws']['public'][type];
546
584
  const subscriptionArgs = [];
547
585
  const messageHashes = [];
548
586
  const request = {
@@ -585,7 +623,7 @@ export default class aster extends asterRest {
585
623
  if (symbolsLength === 0) {
586
624
  throw new ArgumentsRequired(this.id + ' ' + methodName + '() requires a non-empty array of symbols');
587
625
  }
588
- const url = this.urls['api']['ws'][type];
626
+ const url = this.urls['api']['ws']['public'][type];
589
627
  const subscriptionArgs = [];
590
628
  const messageHashes = [];
591
629
  const request = {
@@ -637,30 +675,158 @@ export default class aster extends asterRest {
637
675
  client.resolve(stored, messageHash);
638
676
  }
639
677
  parseWsTrade(trade, market = undefined) {
678
+ //
679
+ // public watchTrades
680
+ //
681
+ // {
682
+ // "e": "trade", // event type
683
+ // "E": 1579481530911, // event time
684
+ // "s": "ETHBTC", // symbol
685
+ // "t": 158410082, // trade id
686
+ // "p": "0.01914100", // price
687
+ // "q": "0.00700000", // quantity
688
+ // "b": 586187049, // buyer order id
689
+ // "a": 586186710, // seller order id
690
+ // "T": 1579481530910, // trade time
691
+ // "m": false, // is the buyer the market maker
692
+ // "M": true // binance docs say it should be ignored
693
+ // }
694
+ //
695
+ // {
696
+ // "e": "aggTrade", // Event type
697
+ // "E": 123456789, // Event time
698
+ // "s": "BNBBTC", // Symbol
699
+ // "a": 12345, // Aggregate trade ID
700
+ // "p": "0.001", // Price
701
+ // "q": "100", // Quantity
702
+ // "f": 100, // First trade ID
703
+ // "l": 105, // Last trade ID
704
+ // "T": 123456785, // Trade time
705
+ // "m": true, // Is the buyer the market maker?
706
+ // "M": true // Ignore
707
+ // }
708
+ //
709
+ // private watchMyTrades spot
710
+ //
711
+ // {
712
+ // "e": "executionReport",
713
+ // "E": 1611063861489,
714
+ // "s": "BNBUSDT",
715
+ // "c": "m4M6AD5MF3b1ERe65l4SPq",
716
+ // "S": "BUY",
717
+ // "o": "MARKET",
718
+ // "f": "GTC",
719
+ // "q": "2.00000000",
720
+ // "p": "0.00000000",
721
+ // "P": "0.00000000",
722
+ // "F": "0.00000000",
723
+ // "g": -1,
724
+ // "C": '',
725
+ // "x": "TRADE",
726
+ // "X": "PARTIALLY_FILLED",
727
+ // "r": "NONE",
728
+ // "i": 1296882607,
729
+ // "l": "0.33200000",
730
+ // "z": "0.33200000",
731
+ // "L": "46.86600000",
732
+ // "n": "0.00033200",
733
+ // "N": "BNB",
734
+ // "T": 1611063861488,
735
+ // "t": 109747654,
736
+ // "I": 2696953381,
737
+ // "w": false,
738
+ // "m": false,
739
+ // "M": true,
740
+ // "O": 1611063861488,
741
+ // "Z": "15.55951200",
742
+ // "Y": "15.55951200",
743
+ // "Q": "0.00000000"
744
+ // }
745
+ //
746
+ // private watchMyTrades future/delivery
747
+ //
748
+ // {
749
+ // "s": "BTCUSDT",
750
+ // "c": "pb2jD6ZQHpfzSdUac8VqMK",
751
+ // "S": "SELL",
752
+ // "o": "MARKET",
753
+ // "f": "GTC",
754
+ // "q": "0.001",
755
+ // "p": "0",
756
+ // "ap": "33468.46000",
757
+ // "sp": "0",
758
+ // "x": "TRADE",
759
+ // "X": "FILLED",
760
+ // "i": 13351197194,
761
+ // "l": "0.001",
762
+ // "z": "0.001",
763
+ // "L": "33468.46",
764
+ // "n": "0.00027086",
765
+ // "N": "BNB",
766
+ // "T": 1612095165362,
767
+ // "t": 458032604,
768
+ // "b": "0",
769
+ // "a": "0",
770
+ // "m": false,
771
+ // "R": false,
772
+ // "wt": "CONTRACT_PRICE",
773
+ // "ot": "MARKET",
774
+ // "ps": "BOTH",
775
+ // "cp": false,
776
+ // "rp": "0.00335000",
777
+ // "pP": false,
778
+ // "si": 0,
779
+ // "ss": 0
780
+ // }
781
+ //
782
+ const id = this.safeString2(trade, 't', 'a');
640
783
  const timestamp = this.safeInteger(trade, 'T');
641
- const symbol = market['symbol'];
642
- const amountString = this.safeString(trade, 'q');
643
- const priceString = this.safeString(trade, 'p');
644
- const isMaker = this.safeBool(trade, 'm');
784
+ const price = this.safeString2(trade, 'L', 'p');
785
+ const amount = this.safeString2(trade, 'q', 'l');
786
+ let cost = this.safeString(trade, 'Y');
787
+ if (cost === undefined) {
788
+ if ((price !== undefined) && (amount !== undefined)) {
789
+ cost = Precise.stringMul(price, amount);
790
+ }
791
+ }
792
+ const marketId = this.safeString(trade, 's');
793
+ const defaultType = (market === undefined) ? this.safeString(this.options, 'defaultType', 'spot') : market['type'];
794
+ const symbol = this.safeSymbol(marketId, market, undefined, defaultType);
795
+ let side = this.safeStringLower(trade, 'S');
645
796
  let takerOrMaker = undefined;
646
- if (isMaker !== undefined) {
647
- takerOrMaker = isMaker ? 'maker' : 'taker';
797
+ const orderId = this.safeString(trade, 'i');
798
+ if ('m' in trade) {
799
+ if (side === undefined) {
800
+ side = trade['m'] ? 'sell' : 'buy'; // this is reversed intentionally
801
+ }
802
+ takerOrMaker = trade['m'] ? 'maker' : 'taker';
803
+ }
804
+ let fee = undefined;
805
+ const feeCost = this.safeString(trade, 'n');
806
+ if (feeCost !== undefined) {
807
+ const feeCurrencyId = this.safeString(trade, 'N');
808
+ const feeCurrencyCode = this.safeCurrencyCode(feeCurrencyId);
809
+ fee = {
810
+ 'cost': feeCost,
811
+ 'currency': feeCurrencyCode,
812
+ };
648
813
  }
814
+ const type = this.safeStringLower(trade, 'o');
649
815
  return this.safeTrade({
650
- 'id': this.safeString(trade, 'a'),
651
816
  'info': trade,
652
817
  'timestamp': timestamp,
653
818
  'datetime': this.iso8601(timestamp),
654
819
  'symbol': symbol,
655
- 'order': undefined,
656
- 'type': undefined,
657
- 'side': undefined,
820
+ 'id': id,
821
+ 'order': orderId,
822
+ 'type': type,
658
823
  'takerOrMaker': takerOrMaker,
659
- 'price': priceString,
660
- 'amount': amountString,
661
- 'cost': undefined,
662
- 'fee': undefined,
663
- }, market);
824
+ 'side': side,
825
+ 'price': price,
826
+ 'amount': amount,
827
+ 'cost': cost,
828
+ 'fee': fee,
829
+ });
664
830
  }
665
831
  /**
666
832
  * @method
@@ -715,7 +881,7 @@ export default class aster extends asterRest {
715
881
  if (symbolsLength === 0) {
716
882
  throw new ArgumentsRequired(this.id + ' ' + methodName + '() requires a non-empty array of symbols');
717
883
  }
718
- const url = this.urls['api']['ws'][type];
884
+ const url = this.urls['api']['ws']['public'][type];
719
885
  const subscriptionArgs = [];
720
886
  const messageHashes = [];
721
887
  const request = {
@@ -757,7 +923,7 @@ export default class aster extends asterRest {
757
923
  if (symbolsLength === 0) {
758
924
  throw new ArgumentsRequired(this.id + ' ' + methodName + '() requires a non-empty array of symbols');
759
925
  }
760
- const url = this.urls['api']['ws'][type];
926
+ const url = this.urls['api']['ws']['public'][type];
761
927
  const subscriptionArgs = [];
762
928
  const messageHashes = [];
763
929
  const request = {
@@ -882,7 +1048,7 @@ export default class aster extends asterRest {
882
1048
  const marketSymbols = this.marketSymbols(symbols, undefined, false, true, true);
883
1049
  const firstMarket = this.market(marketSymbols[0]);
884
1050
  const type = this.safeString(firstMarket, 'type', 'swap');
885
- const url = this.urls['api']['ws'][type];
1051
+ const url = this.urls['api']['ws']['public'][type];
886
1052
  const subscriptionArgs = [];
887
1053
  const messageHashes = [];
888
1054
  const request = {
@@ -929,7 +1095,7 @@ export default class aster extends asterRest {
929
1095
  const marketSymbols = this.marketSymbols(symbols, undefined, false, true, true);
930
1096
  const firstMarket = this.market(marketSymbols[0]);
931
1097
  const type = this.safeString(firstMarket, 'type', 'swap');
932
- const url = this.urls['api']['ws'][type];
1098
+ const url = this.urls['api']['ws']['public'][type];
933
1099
  const subscriptionArgs = [];
934
1100
  const messageHashes = [];
935
1101
  const request = {
@@ -1013,6 +1179,704 @@ export default class aster extends asterRest {
1013
1179
  this.safeNumber(ohlcv, 'v'),
1014
1180
  ];
1015
1181
  }
1182
+ async authenticate(type = 'spot', params = {}) {
1183
+ const time = this.milliseconds();
1184
+ const lastAuthenticatedTimeOptions = this.safeDict(this.options, 'lastAuthenticatedTime', {});
1185
+ const lastAuthenticatedTime = this.safeInteger(lastAuthenticatedTimeOptions, type, 0);
1186
+ const listenKeyRefreshRateOptions = this.safeDict(this.options, 'listenKeyRefreshRate', {});
1187
+ const listenKeyRefreshRate = this.safeInteger(listenKeyRefreshRateOptions, type, 3600000); // 1 hour
1188
+ if (time - lastAuthenticatedTime > listenKeyRefreshRate) {
1189
+ let response = undefined;
1190
+ if (type === 'spot') {
1191
+ response = await this.sapiPrivatePostV1ListenKey(params);
1192
+ }
1193
+ else {
1194
+ response = await this.fapiPrivatePostV1ListenKey(params);
1195
+ }
1196
+ this.options['listenKey'][type] = this.safeString(response, 'listenKey');
1197
+ this.options['lastAuthenticatedTime'][type] = time;
1198
+ params = this.extend({ 'type': type }, params);
1199
+ this.delay(listenKeyRefreshRate, this.keepAliveListenKey, params);
1200
+ }
1201
+ }
1202
+ async keepAliveListenKey(params = {}) {
1203
+ const type = this.safeString(params, 'type', 'spot');
1204
+ const listenKeyOptions = this.safeDict(this.options, 'listenKey', {});
1205
+ const listenKey = this.safeString(listenKeyOptions, type);
1206
+ if (listenKey === undefined) {
1207
+ return;
1208
+ }
1209
+ try {
1210
+ await this.sapiPrivatePutV1ListenKey(); // extend the expiry
1211
+ }
1212
+ catch (error) {
1213
+ const url = this.urls['api']['ws']['private'][type] + '/' + listenKey;
1214
+ const client = this.client(url);
1215
+ const messageHashes = Object.keys(client.futures);
1216
+ for (let i = 0; i < messageHashes.length; i++) {
1217
+ const messageHash = messageHashes[i];
1218
+ client.reject(error, messageHash);
1219
+ }
1220
+ this.options['listenKey'][type] = undefined;
1221
+ this.options['lastAuthenticatedTime'][type] = 0;
1222
+ return;
1223
+ }
1224
+ // whether or not to schedule another listenKey keepAlive request
1225
+ const listenKeyRefreshOptions = this.safeDict(this.options, 'listenKeyRefresh', {});
1226
+ const listenKeyRefreshRate = this.safeInteger(listenKeyRefreshOptions, 'listenKeyRefreshRate', 3600000);
1227
+ this.delay(listenKeyRefreshRate, this.keepAliveListenKey, params);
1228
+ }
1229
+ getPrivateUrl(type = 'spot') {
1230
+ const listenKeyOptions = this.safeDict(this.options, 'listenKey', {});
1231
+ const listenKey = this.safeString(listenKeyOptions, type);
1232
+ const url = this.urls['api']['ws']['private'][type] + '/' + listenKey;
1233
+ return url;
1234
+ }
1235
+ /**
1236
+ * @method
1237
+ * @name aster#watchBalance
1238
+ * @description query for balance and get the amount of funds available for trading or funds locked in orders
1239
+ * @see https://github.com/asterdex/api-docs/blob/master/aster-finance-spot-api.md#payload-account_update
1240
+ * @see https://github.com/asterdex/api-docs/blob/master/aster-finance-futures-api.md#event-balance-and-position-update
1241
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1242
+ * @param {string} [params.type] 'spot' or 'swap', default is 'spot'
1243
+ * @returns {object} a [balance structure]{@link https://docs.ccxt.com/?id=balance-structure}
1244
+ */
1245
+ async watchBalance(params = {}) {
1246
+ await this.loadMarkets();
1247
+ let type = undefined;
1248
+ [type, params] = this.handleMarketTypeAndParams('watchBalance', undefined, params, type);
1249
+ await this.authenticate(type, params);
1250
+ const url = this.getPrivateUrl(type);
1251
+ const client = this.client(url);
1252
+ this.setBalanceCache(client, type);
1253
+ const options = this.safeDict(this.options, 'watchBalance');
1254
+ const fetchBalanceSnapshot = this.safeBool(options, 'fetchBalanceSnapshot', false);
1255
+ const awaitBalanceSnapshot = this.safeBool(options, 'awaitBalanceSnapshot', true);
1256
+ if (fetchBalanceSnapshot && awaitBalanceSnapshot) {
1257
+ await client.future(type + ':fetchBalanceSnapshot');
1258
+ }
1259
+ const messageHash = type + ':balance';
1260
+ const message = undefined;
1261
+ return await this.watch(url, messageHash, message, type);
1262
+ }
1263
+ setBalanceCache(client, type) {
1264
+ if ((type in client.subscriptions) && (type in this.balance)) {
1265
+ return;
1266
+ }
1267
+ const options = this.safeValue(this.options, 'watchBalance');
1268
+ const fetchBalanceSnapshot = this.safeBool(options, 'fetchBalanceSnapshot', false);
1269
+ if (fetchBalanceSnapshot) {
1270
+ const messageHash = type + ':fetchBalanceSnapshot';
1271
+ if (!(messageHash in client.futures)) {
1272
+ client.future(messageHash);
1273
+ this.spawn(this.loadBalanceSnapshot, client, messageHash, type);
1274
+ }
1275
+ }
1276
+ else {
1277
+ this.balance[type] = {};
1278
+ }
1279
+ }
1280
+ async loadBalanceSnapshot(client, messageHash, type) {
1281
+ const params = {
1282
+ 'type': type,
1283
+ };
1284
+ const response = await this.fetchBalance(params);
1285
+ this.balance[type] = this.extend(response, this.safeValue(this.balance, type, {}));
1286
+ // don't remove the future from the .futures cache
1287
+ if (messageHash in client.futures) {
1288
+ const future = client.futures[messageHash];
1289
+ future.resolve();
1290
+ client.resolve(this.balance[type], type + ':balance');
1291
+ }
1292
+ }
1293
+ handleBalance(client, message) {
1294
+ //
1295
+ // spot balance update
1296
+ // {
1297
+ // "B": [
1298
+ // {
1299
+ // "a": "USDT",
1300
+ // "f": "16.29445191",
1301
+ // "l": "0"
1302
+ // },
1303
+ // {
1304
+ // "a": "ETH",
1305
+ // "f": "0.00199920",
1306
+ // "l": "0"
1307
+ // }
1308
+ // ],
1309
+ // "e": "outboundAccountPosition",
1310
+ // "T": 1768547778317,
1311
+ // "u": 1768547778317,
1312
+ // "E": 1768547778321,
1313
+ // "m": "ORDER"
1314
+ // }
1315
+ //
1316
+ // swap balance and position update
1317
+ // {
1318
+ // "e": "ACCOUNT_UPDATE",
1319
+ // "T": 1768551627708,
1320
+ // "E": 1768551627710,
1321
+ // "a": {
1322
+ // "B": [
1323
+ // {
1324
+ // "a": "USDT",
1325
+ // "wb": "39.41184271",
1326
+ // "cw": "39.41184271",
1327
+ // "bc": "0"
1328
+ // }
1329
+ // ],
1330
+ // "P": [
1331
+ // {
1332
+ // "s": "ETHUSDT",
1333
+ // "pa": "0",
1334
+ // "ep": "0.00000000",
1335
+ // "cr": "-0.59070000",
1336
+ // "up": "0",
1337
+ // "mt": "isolated",
1338
+ // "iw": "0",
1339
+ // "ps": "BOTH",
1340
+ // "ma": "USDT"
1341
+ // }
1342
+ // ],
1343
+ // "m": "ORDER"
1344
+ // }
1345
+ // }
1346
+ //
1347
+ const subscriptions = client.subscriptions;
1348
+ const subscriptionsKeys = Object.keys(subscriptions);
1349
+ const accountType = this.getAccountTypeFromSubscriptions(subscriptionsKeys);
1350
+ const messageHash = accountType + ':balance';
1351
+ if (this.balance[accountType] === undefined) {
1352
+ this.balance[accountType] = {};
1353
+ }
1354
+ this.balance[accountType]['info'] = message;
1355
+ message = this.safeDict(message, 'a', message);
1356
+ const B = this.safeList(message, 'B', []);
1357
+ const wallet = this.safeString(this.options, 'wallet', 'wb');
1358
+ for (let i = 0; i < B.length; i++) {
1359
+ const entry = B[i];
1360
+ const currencyId = this.safeString(entry, 'a');
1361
+ const code = this.safeCurrencyCode(currencyId);
1362
+ const account = this.account();
1363
+ account['free'] = this.safeString(entry, 'f');
1364
+ account['used'] = this.safeString(entry, 'l');
1365
+ account['total'] = this.safeString(entry, wallet);
1366
+ this.balance[accountType][code] = account;
1367
+ }
1368
+ const timestamp = this.safeInteger(message, 'E');
1369
+ this.balance[accountType]['timestamp'] = timestamp;
1370
+ this.balance[accountType]['datetime'] = this.iso8601(timestamp);
1371
+ this.balance[accountType] = this.safeBalance(this.balance[accountType]);
1372
+ client.resolve(this.balance[accountType], messageHash);
1373
+ }
1374
+ /**
1375
+ * @method
1376
+ * @name aster#watchPositions
1377
+ * @description watch all open positions
1378
+ * @see https://github.com/asterdex/api-docs/blob/master/aster-finance-futures-api.md#event-balance-and-position-update
1379
+ * @param {string[]|undefined} symbols list of unified market symbols
1380
+ * @param {number} [since] since timestamp
1381
+ * @param {number} [limit] limit
1382
+ * @param {object} params extra parameters specific to the exchange API endpoint
1383
+ * @returns {object[]} a list of [position structure]{@link https://docs.ccxt.com/en/latest/manual.html#position-structure}
1384
+ */
1385
+ async watchPositions(symbols = undefined, since = undefined, limit = undefined, params = {}) {
1386
+ await this.loadMarkets();
1387
+ const type = 'swap';
1388
+ await this.authenticate(type, params);
1389
+ const url = this.getPrivateUrl(type);
1390
+ const client = this.client(url);
1391
+ this.setPositionsCache(client);
1392
+ const messageHashes = [];
1393
+ const messageHash = 'positions';
1394
+ symbols = this.marketSymbols(symbols, 'swap', true, true);
1395
+ if (symbols === undefined) {
1396
+ messageHashes.push(messageHash);
1397
+ }
1398
+ else {
1399
+ for (let i = 0; i < symbols.length; i++) {
1400
+ const symbol = symbols[i];
1401
+ messageHashes.push(messageHash + '::' + symbol);
1402
+ }
1403
+ }
1404
+ const fetchPositionsSnapshot = this.handleOption('watchPositions', 'fetchPositionsSnapshot', true);
1405
+ const awaitPositionsSnapshot = this.handleOption('watchPositions', 'awaitPositionsSnapshot', true);
1406
+ const cache = this.positions;
1407
+ if (fetchPositionsSnapshot && awaitPositionsSnapshot && cache === undefined) {
1408
+ const snapshot = await client.future('fetchPositionsSnapshot');
1409
+ return this.filterBySymbolsSinceLimit(snapshot, symbols, since, limit, true);
1410
+ }
1411
+ const newPositions = await this.watchMultiple(url, messageHashes, undefined, [type]);
1412
+ if (this.newUpdates) {
1413
+ return newPositions;
1414
+ }
1415
+ return this.filterBySymbolsSinceLimit(cache, symbols, since, limit, true);
1416
+ }
1417
+ setPositionsCache(client) {
1418
+ if (this.positions !== undefined) {
1419
+ return;
1420
+ }
1421
+ const fetchPositionsSnapshot = this.handleOption('watchPositions', 'fetchPositionsSnapshot', false);
1422
+ if (fetchPositionsSnapshot) {
1423
+ const messageHash = 'fetchPositionsSnapshot';
1424
+ if (!(messageHash in client.futures)) {
1425
+ client.future(messageHash);
1426
+ this.spawn(this.loadPositionsSnapshot, client, messageHash);
1427
+ }
1428
+ }
1429
+ else {
1430
+ this.positions = new ArrayCacheBySymbolBySide();
1431
+ }
1432
+ }
1433
+ async loadPositionsSnapshot(client, messageHash) {
1434
+ const positions = await this.fetchPositions();
1435
+ this.positions = new ArrayCacheBySymbolBySide();
1436
+ const cache = this.positions;
1437
+ for (let i = 0; i < positions.length; i++) {
1438
+ const position = positions[i];
1439
+ const contracts = this.safeNumber(position, 'contracts', 0);
1440
+ if (contracts > 0) {
1441
+ cache.append(position);
1442
+ }
1443
+ }
1444
+ // don't remove the future from the .futures cache
1445
+ if (messageHash in client.futures) {
1446
+ const future = client.futures[messageHash];
1447
+ future.resolve(cache);
1448
+ client.resolve(cache, 'positions');
1449
+ }
1450
+ }
1451
+ handlePositions(client, message) {
1452
+ //
1453
+ // {
1454
+ // "e": "ACCOUNT_UPDATE",
1455
+ // "T": 1768551627708,
1456
+ // "E": 1768551627710,
1457
+ // "a": {
1458
+ // "B": [
1459
+ // {
1460
+ // "a": "USDT",
1461
+ // "wb": "39.41184271",
1462
+ // "cw": "39.41184271",
1463
+ // "bc": "0"
1464
+ // }
1465
+ // ],
1466
+ // "P": [
1467
+ // {
1468
+ // "s": "ETHUSDT",
1469
+ // "pa": "0",
1470
+ // "ep": "0.00000000",
1471
+ // "cr": "-0.59070000",
1472
+ // "up": "0",
1473
+ // "mt": "isolated",
1474
+ // "iw": "0",
1475
+ // "ps": "BOTH",
1476
+ // "ma": "USDT"
1477
+ // }
1478
+ // ],
1479
+ // "m": "ORDER"
1480
+ // }
1481
+ // }
1482
+ //
1483
+ const messageHash = 'positions';
1484
+ const messageHashes = this.findMessageHashes(client, messageHash);
1485
+ if (!this.isEmpty(messageHashes)) {
1486
+ if (this.positions === undefined) {
1487
+ this.positions = new ArrayCacheBySymbolBySide();
1488
+ }
1489
+ const cache = this.positions;
1490
+ const data = this.safeDict(message, 'a', {});
1491
+ const rawPositions = this.safeList(data, 'P', []);
1492
+ const newPositions = [];
1493
+ for (let i = 0; i < rawPositions.length; i++) {
1494
+ const rawPosition = rawPositions[i];
1495
+ const position = this.parseWsPosition(rawPosition);
1496
+ const timestamp = this.safeInteger(message, 'E');
1497
+ position['timestamp'] = timestamp;
1498
+ position['datetime'] = this.iso8601(timestamp);
1499
+ newPositions.push(position);
1500
+ cache.append(position);
1501
+ const symbol = position['symbol'];
1502
+ const symbolMessageHash = messageHash + '::' + symbol;
1503
+ client.resolve(position, symbolMessageHash);
1504
+ }
1505
+ client.resolve(newPositions, 'positions');
1506
+ }
1507
+ }
1508
+ parseWsPosition(position, market = undefined) {
1509
+ //
1510
+ // {
1511
+ // "s": "BTCUSDT", // Symbol
1512
+ // "pa": "0", // Position Amount
1513
+ // "ep": "0.00000", // Entry Price
1514
+ // "cr": "200", // (Pre-fee) Accumulated Realized
1515
+ // "up": "0", // Unrealized PnL
1516
+ // "mt": "isolated", // Margin Type
1517
+ // "iw": "0.00000000", // Isolated Wallet (if isolated position)
1518
+ // "ps": "BOTH" // Position Side
1519
+ // }
1520
+ //
1521
+ const marketId = this.safeString(position, 's');
1522
+ const contracts = this.safeString(position, 'pa');
1523
+ const contractsAbs = Precise.stringAbs(this.safeString(position, 'pa'));
1524
+ let positionSide = this.safeStringLower(position, 'ps');
1525
+ let hedged = true;
1526
+ if (positionSide === 'both') {
1527
+ hedged = false;
1528
+ if (!Precise.stringEq(contracts, '0')) {
1529
+ if (Precise.stringLt(contracts, '0')) {
1530
+ positionSide = 'short';
1531
+ }
1532
+ else {
1533
+ positionSide = 'long';
1534
+ }
1535
+ }
1536
+ }
1537
+ return this.safePosition({
1538
+ 'info': position,
1539
+ 'id': undefined,
1540
+ 'symbol': this.safeSymbol(marketId, undefined, undefined, 'swap'),
1541
+ 'notional': undefined,
1542
+ 'marginMode': this.safeString(position, 'mt'),
1543
+ 'liquidationPrice': undefined,
1544
+ 'entryPrice': this.safeNumber(position, 'ep'),
1545
+ 'unrealizedPnl': this.safeNumber(position, 'up'),
1546
+ 'percentage': undefined,
1547
+ 'contracts': this.parseNumber(contractsAbs),
1548
+ 'contractSize': undefined,
1549
+ 'markPrice': undefined,
1550
+ 'side': positionSide,
1551
+ 'hedged': hedged,
1552
+ 'timestamp': undefined,
1553
+ 'datetime': undefined,
1554
+ 'maintenanceMargin': undefined,
1555
+ 'maintenanceMarginPercentage': undefined,
1556
+ 'collateral': undefined,
1557
+ 'initialMargin': undefined,
1558
+ 'initialMarginPercentage': undefined,
1559
+ 'leverage': undefined,
1560
+ 'marginRatio': undefined,
1561
+ });
1562
+ }
1563
+ /**
1564
+ * @method
1565
+ * @name aster#watchOrders
1566
+ * @description watches information on multiple orders made by the user
1567
+ * @see https://github.com/asterdex/api-docs/blob/master/aster-finance-spot-api.md#payload-order-update
1568
+ * @see https://github.com/asterdex/api-docs/blob/master/aster-finance-futures-api.md#event-order-update
1569
+ * @param {string} [symbol] unified market symbol of the market orders were made in
1570
+ * @param {int} [since] the earliest time in ms to fetch orders for
1571
+ * @param {int} [limit] the maximum number of order structures to retrieve
1572
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1573
+ * @param {string} [params.type] 'spot' or 'swap', default is 'spot' if symbol is not provided
1574
+ * @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/?id=order-structure}
1575
+ */
1576
+ async watchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1577
+ await this.loadMarkets();
1578
+ let market = undefined;
1579
+ if (symbol !== undefined) {
1580
+ market = this.market(symbol);
1581
+ symbol = market['symbol'];
1582
+ }
1583
+ let messageHash = 'orders';
1584
+ let type = undefined;
1585
+ [type, params] = this.handleMarketTypeAndParams('watchOrders', market, params, type);
1586
+ await this.authenticate(type, params);
1587
+ if (market !== undefined) {
1588
+ messageHash += '::' + symbol;
1589
+ }
1590
+ const url = this.getPrivateUrl(type);
1591
+ const client = this.client(url);
1592
+ this.setBalanceCache(client, type);
1593
+ const orders = await this.watchMultiple(url, [messageHash], undefined, [type]);
1594
+ if (this.newUpdates) {
1595
+ limit = orders.getLimit(symbol, limit);
1596
+ }
1597
+ return this.filterBySymbolSinceLimit(orders, symbol, since, limit, true);
1598
+ }
1599
+ /**
1600
+ * @method
1601
+ * @name aster#watchMyTrades
1602
+ * @description watches information on multiple trades made by the user
1603
+ * @see https://github.com/asterdex/api-docs/blob/master/aster-finance-spot-api.md#payload-order-update
1604
+ * @see https://github.com/asterdex/api-docs/blob/master/aster-finance-futures-api.md#event-order-update
1605
+ * @param {string} [symbol] unified market symbol of the market orders were made in
1606
+ * @param {int} [since] the earliest time in ms to fetch orders for
1607
+ * @param {int} [limit] the maximum number of order structures to retrieve
1608
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1609
+ * @param {string} [params.type] 'spot' or 'swap', default is 'spot' if symbol is not provided
1610
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/?id=trade-structure}
1611
+ */
1612
+ async watchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1613
+ await this.loadMarkets();
1614
+ let market = undefined;
1615
+ if (symbol !== undefined) {
1616
+ market = this.market(symbol);
1617
+ symbol = market['symbol'];
1618
+ }
1619
+ let messageHash = 'myTrades';
1620
+ let type = undefined;
1621
+ [type, params] = this.handleMarketTypeAndParams('watchOrders', market, params, type);
1622
+ await this.authenticate(type, params);
1623
+ if (market !== undefined) {
1624
+ messageHash += '::' + symbol;
1625
+ }
1626
+ const url = this.getPrivateUrl(type);
1627
+ const client = this.client(url);
1628
+ this.setBalanceCache(client, type);
1629
+ const trades = await this.watchMultiple(url, [messageHash], undefined, [type]);
1630
+ if (this.newUpdates) {
1631
+ limit = trades.getLimit(symbol, limit);
1632
+ }
1633
+ return this.filterBySymbolSinceLimit(trades, symbol, since, limit, true);
1634
+ }
1635
+ handleOrderUpdate(client, message) {
1636
+ const rawOrder = this.safeDict(message, 'o', message);
1637
+ const e = this.safeString(message, 'e');
1638
+ if ((e === 'ORDER_TRADE_UPDATE') || (e === 'ALGO_UPDATE')) {
1639
+ message = this.safeDict(message, 'o', message);
1640
+ }
1641
+ this.handleOrder(client, rawOrder);
1642
+ this.handleMyTrade(client, message);
1643
+ }
1644
+ handleMyTrade(client, message) {
1645
+ const messageHash = 'myTrades';
1646
+ const executionType = this.safeString(message, 'x');
1647
+ if (executionType === 'TRADE') {
1648
+ const isSwap = client.url.indexOf('fstream') >= 0;
1649
+ const type = isSwap ? 'swap' : 'spot';
1650
+ const fakeMarket = this.safeMarketStructure({ 'type': type });
1651
+ const trade = this.parseWsTrade(message, fakeMarket);
1652
+ const orderId = this.safeString(trade, 'order');
1653
+ let tradeFee = this.safeDict(trade, 'fee', {});
1654
+ tradeFee = this.extend({}, tradeFee);
1655
+ const symbol = this.safeString(trade, 'symbol');
1656
+ if (orderId !== undefined && tradeFee !== undefined && symbol !== undefined) {
1657
+ const cachedOrders = this.orders;
1658
+ if (cachedOrders !== undefined) {
1659
+ const orders = this.safeValue(cachedOrders.hashmap, symbol, {});
1660
+ const order = this.safeValue(orders, orderId);
1661
+ if (order !== undefined) {
1662
+ // accumulate order fees
1663
+ const fees = this.safeValue(order, 'fees');
1664
+ const fee = this.safeValue(order, 'fee');
1665
+ if (!this.isEmpty(fees)) {
1666
+ let insertNewFeeCurrency = true;
1667
+ for (let i = 0; i < fees.length; i++) {
1668
+ const orderFee = fees[i];
1669
+ if (orderFee['currency'] === tradeFee['currency']) {
1670
+ const feeCost = this.sum(tradeFee['cost'], orderFee['cost']);
1671
+ order['fees'][i]['cost'] = parseFloat(this.currencyToPrecision(tradeFee['currency'], feeCost));
1672
+ insertNewFeeCurrency = false;
1673
+ break;
1674
+ }
1675
+ }
1676
+ if (insertNewFeeCurrency) {
1677
+ order['fees'].push(tradeFee);
1678
+ }
1679
+ }
1680
+ else if (fee !== undefined) {
1681
+ if (fee['currency'] === tradeFee['currency']) {
1682
+ const feeCost = this.sum(fee['cost'], tradeFee['cost']);
1683
+ order['fee']['cost'] = parseFloat(this.currencyToPrecision(tradeFee['currency'], feeCost));
1684
+ }
1685
+ else if (fee['currency'] === undefined) {
1686
+ order['fee'] = tradeFee;
1687
+ }
1688
+ else {
1689
+ order['fees'] = [fee, tradeFee];
1690
+ order['fee'] = undefined;
1691
+ }
1692
+ }
1693
+ else {
1694
+ order['fee'] = tradeFee;
1695
+ }
1696
+ // save this trade in the order
1697
+ const orderTrades = this.safeList(order, 'trades', []);
1698
+ orderTrades.push(trade);
1699
+ order['trades'] = orderTrades;
1700
+ // don't append twice cause it breaks newUpdates mode
1701
+ // this order already exists in the cache
1702
+ }
1703
+ }
1704
+ }
1705
+ if (this.myTrades === undefined) {
1706
+ const limit = this.safeInteger(this.options, 'tradesLimit', 1000);
1707
+ this.myTrades = new ArrayCacheBySymbolById(limit);
1708
+ }
1709
+ const myTrades = this.myTrades;
1710
+ myTrades.append(trade);
1711
+ client.resolve(this.myTrades, messageHash);
1712
+ const messageHashSymbol = messageHash + ':' + symbol;
1713
+ client.resolve(this.myTrades, messageHashSymbol);
1714
+ }
1715
+ }
1716
+ handleOrder(client, message) {
1717
+ //
1718
+ // spot
1719
+ // {
1720
+ // "e": "executionReport", // Event type
1721
+ // "E": 1499405658658, // Event time
1722
+ // "s": "ETHBTC", // Symbol
1723
+ // "c": "mUvoqJxFIILMdfAW5iGSOW", // Client order ID
1724
+ // "S": "BUY", // Side
1725
+ // "o": "LIMIT", // Order type
1726
+ // "f": "GTC", // Time in force
1727
+ // "q": "1.00000000", // Order quantity
1728
+ // "p": "0.10264410", // Order price
1729
+ // "P": "0.00000000", // Stop price
1730
+ // "F": "0.00000000", // Iceberg quantity
1731
+ // "g": -1, // OrderListId
1732
+ // "C": null, // Original client order ID; This is the ID of the order being canceled
1733
+ // "x": "NEW", // Current execution type
1734
+ // "X": "NEW", // Current order status
1735
+ // "r": "NONE", // Order reject reason; will be an error code.
1736
+ // "i": 4293153, // Order ID
1737
+ // "l": "0.00000000", // Last executed quantity
1738
+ // "z": "0.00000000", // Cumulative filled quantity
1739
+ // "L": "0.00000000", // Last executed price
1740
+ // "n": "0", // Commission amount
1741
+ // "N": null, // Commission asset
1742
+ // "T": 1499405658657, // Transaction time
1743
+ // "t": -1, // Trade ID
1744
+ // "I": 8641984, // Ignore
1745
+ // "w": true, // Is the order on the book?
1746
+ // "m": false, // Is this trade the maker side?
1747
+ // "M": false, // Ignore
1748
+ // "O": 1499405658657, // Order creation time
1749
+ // "Z": "0.00000000", // Cumulative quote asset transacted quantity
1750
+ // "Y": "0.00000000" // Last quote asset transacted quantity (i.e. lastPrice * lastQty),
1751
+ // "Q": "0.00000000" // Quote Order Qty
1752
+ // }
1753
+ //
1754
+ // swap
1755
+ // {
1756
+ // "s":"BTCUSDT", // Symbol
1757
+ // "c":"TEST", // Client Order Id
1758
+ // // special client order id:
1759
+ // // starts with "autoclose-": liquidation order
1760
+ // // "adl_autoclose": ADL auto close order
1761
+ // "S":"SELL", // Side
1762
+ // "o":"TRAILING_STOP_MARKET", // Order Type
1763
+ // "f":"GTC", // Time in Force
1764
+ // "q":"0.001", // Original Quantity
1765
+ // "p":"0", // Original Price
1766
+ // "ap":"0", // Average Price
1767
+ // "sp":"7103.04", // Stop Price. Please ignore with TRAILING_STOP_MARKET order
1768
+ // "x":"NEW", // Execution Type
1769
+ // "X":"NEW", // Order Status
1770
+ // "i":8886774, // Order Id
1771
+ // "l":"0", // Order Last Filled Quantity
1772
+ // "z":"0", // Order Filled Accumulated Quantity
1773
+ // "L":"0", // Last Filled Price
1774
+ // "N":"USDT", // Commission Asset, will not push if no commission
1775
+ // "n":"0", // Commission, will not push if no commission
1776
+ // "T":1568879465651, // Order Trade Time
1777
+ // "t":0, // Trade Id
1778
+ // "b":"0", // Bids Notional
1779
+ // "a":"9.91", // Ask Notional
1780
+ // "m":false, // Is this trade the maker side?
1781
+ // "R":false, // Is this reduce only
1782
+ // "wt":"CONTRACT_PRICE", // Stop Price Working Type
1783
+ // "ot":"TRAILING_STOP_MARKET", // Original Order Type
1784
+ // "ps":"LONG", // Position Side
1785
+ // "cp":false, // If Close-All, pushed with conditional order
1786
+ // "AP":"7476.89", // Activation Price, only puhed with TRAILING_STOP_MARKET order
1787
+ // "cr":"5.0", // Callback Rate, only puhed with TRAILING_STOP_MARKET order
1788
+ // "rp":"0" // Realized Profit of the trade
1789
+ // }
1790
+ //
1791
+ const messageHash = 'orders';
1792
+ const messageHashes = this.findMessageHashes(client, messageHash);
1793
+ if (!this.isEmpty(messageHashes)) {
1794
+ const market = this.getMarketFromOrder(client, message);
1795
+ if (this.orders === undefined) {
1796
+ const limit = this.safeInteger(this.options, 'ordersLimit', 1000);
1797
+ this.orders = new ArrayCacheBySymbolById(limit);
1798
+ }
1799
+ const cache = this.orders;
1800
+ const parsed = this.parseWsOrder(message, market);
1801
+ const symbol = market['symbol'];
1802
+ const symbolMessageHash = messageHash + '::' + symbol;
1803
+ cache.append(parsed);
1804
+ client.resolve(cache, symbolMessageHash);
1805
+ client.resolve(cache, messageHash);
1806
+ }
1807
+ }
1808
+ parseWsOrder(order, market = undefined) {
1809
+ const executionType = this.safeString(order, 'x');
1810
+ const marketId = this.safeString(order, 's');
1811
+ market = this.safeMarket(marketId, market);
1812
+ let timestamp = this.safeInteger(order, 'O');
1813
+ const T = this.safeInteger(order, 'T');
1814
+ let lastTradeTimestamp = undefined;
1815
+ if (executionType === 'NEW' || executionType === 'AMENDMENT' || executionType === 'CANCELED') {
1816
+ if (timestamp === undefined) {
1817
+ timestamp = T;
1818
+ }
1819
+ }
1820
+ else if (executionType === 'TRADE') {
1821
+ lastTradeTimestamp = T;
1822
+ }
1823
+ const lastUpdateTimestamp = T;
1824
+ let fee = undefined;
1825
+ const feeCost = this.safeString(order, 'n');
1826
+ if ((feeCost !== undefined) && (Precise.stringGt(feeCost, '0'))) {
1827
+ const feeCurrencyId = this.safeString(order, 'N');
1828
+ const feeCurrency = this.safeCurrencyCode(feeCurrencyId);
1829
+ fee = {
1830
+ 'cost': feeCost,
1831
+ 'currency': feeCurrency,
1832
+ };
1833
+ }
1834
+ const rawStatus = this.safeString(order, 'X');
1835
+ const status = this.parseOrderStatus(rawStatus);
1836
+ let clientOrderId = this.safeString2(order, 'C', 'caid');
1837
+ if ((clientOrderId === undefined) || (clientOrderId.length === 0)) {
1838
+ clientOrderId = this.safeString(order, 'c');
1839
+ }
1840
+ const stopPrice = this.safeStringN(order, ['P', 'sp', 'tp']);
1841
+ let timeInForce = this.safeString(order, 'f');
1842
+ if (timeInForce === 'GTX') {
1843
+ // GTX means "Good Till Crossing" and is an equivalent way of saying Post Only
1844
+ timeInForce = 'PO';
1845
+ }
1846
+ return this.safeOrder({
1847
+ 'info': order,
1848
+ 'symbol': market['symbol'],
1849
+ 'id': this.safeString2(order, 'i', 'aid'),
1850
+ 'clientOrderId': clientOrderId,
1851
+ 'timestamp': timestamp,
1852
+ 'datetime': this.iso8601(timestamp),
1853
+ 'lastTradeTimestamp': lastTradeTimestamp,
1854
+ 'lastUpdateTimestamp': lastUpdateTimestamp,
1855
+ 'type': this.parseOrderType(this.safeStringLower(order, 'o')),
1856
+ 'timeInForce': timeInForce,
1857
+ 'postOnly': undefined,
1858
+ 'reduceOnly': this.safeBool(order, 'R'),
1859
+ 'side': this.safeStringLower(order, 'S'),
1860
+ 'price': this.safeString(order, 'p'),
1861
+ 'stopPrice': stopPrice,
1862
+ 'triggerPrice': stopPrice,
1863
+ 'amount': this.safeString(order, 'q'),
1864
+ 'cost': this.safeString(order, 'Z'),
1865
+ 'average': this.safeString(order, 'ap'),
1866
+ 'filled': this.safeString(order, 'z'),
1867
+ 'remaining': undefined,
1868
+ 'status': status,
1869
+ 'fee': fee,
1870
+ 'trades': undefined,
1871
+ });
1872
+ }
1873
+ getMarketFromOrder(client, order) {
1874
+ const marketId = this.safeString(order, 's');
1875
+ const subscriptions = client.subscriptions;
1876
+ const subscriptionsKeys = Object.keys(subscriptions);
1877
+ const marketType = this.getAccountTypeFromSubscriptions(subscriptionsKeys);
1878
+ return this.safeMarket(marketId, undefined, undefined, marketType);
1879
+ }
1016
1880
  handleMessage(client, message) {
1017
1881
  const stream = this.safeString(message, 'stream');
1018
1882
  if (stream !== undefined) {
@@ -1035,5 +1899,19 @@ export default class aster extends asterRest {
1035
1899
  method.call(this, client, message);
1036
1900
  }
1037
1901
  }
1902
+ else {
1903
+ // private messages
1904
+ const event = this.safeString(message, 'e');
1905
+ if (event === 'outboundAccountPosition') {
1906
+ this.handleBalance(client, message);
1907
+ }
1908
+ else if (event === 'ACCOUNT_UPDATE') {
1909
+ this.handleBalance(client, message);
1910
+ this.handlePositions(client, message);
1911
+ }
1912
+ else if ((event === 'ORDER_TRADE_UPDATE') || (event === 'executionReport')) {
1913
+ this.handleOrderUpdate(client, message);
1914
+ }
1915
+ }
1038
1916
  }
1039
1917
  }