ccxt 4.5.41 → 4.5.43

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 (1002) hide show
  1. package/README.md +6 -5
  2. package/dist/ccxt.browser.min.js +3 -3
  3. package/dist/cjs/ccxt.js +6 -1
  4. package/dist/cjs/src/abstract/aftermath.js +11 -0
  5. package/dist/cjs/src/abstract/alp.js +1 -1
  6. package/dist/cjs/src/abstract/alpaca.js +1 -1
  7. package/dist/cjs/src/abstract/apex.js +1 -1
  8. package/dist/cjs/src/abstract/arkham.js +1 -1
  9. package/dist/cjs/src/abstract/ascendex.js +1 -1
  10. package/dist/cjs/src/abstract/aster.js +1 -1
  11. package/dist/cjs/src/abstract/backpack.js +1 -1
  12. package/dist/cjs/src/abstract/bigone.js +1 -1
  13. package/dist/cjs/src/abstract/binance.js +1 -1
  14. package/dist/cjs/src/abstract/bingx.js +1 -1
  15. package/dist/cjs/src/abstract/bit2c.js +1 -1
  16. package/dist/cjs/src/abstract/bitbank.js +1 -1
  17. package/dist/cjs/src/abstract/bitbns.js +1 -1
  18. package/dist/cjs/src/abstract/bitfinex.js +1 -1
  19. package/dist/cjs/src/abstract/bitflyer.js +1 -1
  20. package/dist/cjs/src/abstract/bitget.js +1 -1
  21. package/dist/cjs/src/abstract/bithumb.js +1 -1
  22. package/dist/cjs/src/abstract/bitmart.js +1 -1
  23. package/dist/cjs/src/abstract/bitmex.js +1 -1
  24. package/dist/cjs/src/abstract/bitopro.js +1 -1
  25. package/dist/cjs/src/abstract/bitrue.js +1 -1
  26. package/dist/cjs/src/abstract/bitso.js +1 -1
  27. package/dist/cjs/src/abstract/bitstamp.js +1 -1
  28. package/dist/cjs/src/abstract/bitteam.js +1 -1
  29. package/dist/cjs/src/abstract/bittrade.js +1 -1
  30. package/dist/cjs/src/abstract/bitvavo.js +1 -1
  31. package/dist/cjs/src/abstract/blockchaincom.js +1 -1
  32. package/dist/cjs/src/abstract/blofin.js +1 -1
  33. package/dist/cjs/src/abstract/btcbox.js +1 -1
  34. package/dist/cjs/src/abstract/btcmarkets.js +1 -1
  35. package/dist/cjs/src/abstract/btcturk.js +1 -1
  36. package/dist/cjs/src/abstract/bullish.js +1 -1
  37. package/dist/cjs/src/abstract/bybit.js +1 -1
  38. package/dist/cjs/src/abstract/bydfi.js +1 -1
  39. package/dist/cjs/src/abstract/cex.js +1 -1
  40. package/dist/cjs/src/abstract/coinbase.js +1 -1
  41. package/dist/cjs/src/abstract/coinbaseexchange.js +1 -1
  42. package/dist/cjs/src/abstract/coinbaseinternational.js +1 -1
  43. package/dist/cjs/src/abstract/coincatch.js +1 -1
  44. package/dist/cjs/src/abstract/coincheck.js +1 -1
  45. package/dist/cjs/src/abstract/coinex.js +1 -1
  46. package/dist/cjs/src/abstract/coinmate.js +1 -1
  47. package/dist/cjs/src/abstract/coinmetro.js +1 -1
  48. package/dist/cjs/src/abstract/coinone.js +1 -1
  49. package/dist/cjs/src/abstract/coinsph.js +1 -1
  50. package/dist/cjs/src/abstract/coinspot.js +1 -1
  51. package/dist/cjs/src/abstract/cryptocom.js +1 -1
  52. package/dist/cjs/src/abstract/cryptomus.js +1 -1
  53. package/dist/cjs/src/abstract/deepcoin.js +1 -1
  54. package/dist/cjs/src/abstract/defx.js +1 -1
  55. package/dist/cjs/src/abstract/delta.js +1 -1
  56. package/dist/cjs/src/abstract/deribit.js +1 -1
  57. package/dist/cjs/src/abstract/derive.js +1 -1
  58. package/dist/cjs/src/abstract/digifinex.js +1 -1
  59. package/dist/cjs/src/abstract/dydx.js +1 -1
  60. package/dist/cjs/src/abstract/exmo.js +1 -1
  61. package/dist/cjs/src/abstract/foxbit.js +1 -1
  62. package/dist/cjs/src/abstract/gate.js +1 -1
  63. package/dist/cjs/src/abstract/gemini.js +1 -1
  64. package/dist/cjs/src/abstract/hashkey.js +1 -1
  65. package/dist/cjs/src/abstract/hibachi.js +1 -1
  66. package/dist/cjs/src/abstract/hitbtc.js +1 -1
  67. package/dist/cjs/src/abstract/hollaex.js +1 -1
  68. package/dist/cjs/src/abstract/htx.js +1 -1
  69. package/dist/cjs/src/abstract/hyperliquid.js +1 -1
  70. package/dist/cjs/src/abstract/independentreserve.js +1 -1
  71. package/dist/cjs/src/abstract/indodax.js +1 -1
  72. package/dist/cjs/src/abstract/kraken.js +1 -1
  73. package/dist/cjs/src/abstract/krakenfutures.js +1 -1
  74. package/dist/cjs/src/abstract/kucoin.js +1 -1
  75. package/dist/cjs/src/abstract/kucoinfutures.js +1 -1
  76. package/dist/cjs/src/abstract/latoken.js +1 -1
  77. package/dist/cjs/src/abstract/lbank.js +1 -1
  78. package/dist/cjs/src/abstract/lighter.js +1 -1
  79. package/dist/cjs/src/abstract/luno.js +1 -1
  80. package/dist/cjs/src/abstract/mercado.js +1 -1
  81. package/dist/cjs/src/abstract/mexc.js +1 -1
  82. package/dist/cjs/src/abstract/modetrade.js +1 -1
  83. package/dist/cjs/src/abstract/ndax.js +1 -1
  84. package/dist/cjs/src/abstract/novadax.js +1 -1
  85. package/dist/cjs/src/abstract/okx.js +1 -1
  86. package/dist/cjs/src/abstract/onetrading.js +1 -1
  87. package/dist/cjs/src/abstract/oxfun.js +1 -1
  88. package/dist/cjs/src/abstract/p2b.js +1 -1
  89. package/dist/cjs/src/abstract/paradex.js +1 -1
  90. package/dist/cjs/src/abstract/paymium.js +1 -1
  91. package/dist/cjs/src/abstract/phemex.js +1 -1
  92. package/dist/cjs/src/abstract/poloniex.js +1 -1
  93. package/dist/cjs/src/abstract/timex.js +1 -1
  94. package/dist/cjs/src/abstract/tokocrypto.js +1 -1
  95. package/dist/cjs/src/abstract/toobit.js +1 -1
  96. package/dist/cjs/src/abstract/upbit.js +1 -1
  97. package/dist/cjs/src/abstract/wavesexchange.js +1 -1
  98. package/dist/cjs/src/abstract/whitebit.js +1 -1
  99. package/dist/cjs/src/abstract/woo.js +1 -1
  100. package/dist/cjs/src/abstract/woofipro.js +1 -1
  101. package/dist/cjs/src/abstract/xt.js +1 -1
  102. package/dist/cjs/src/abstract/yobit.js +1 -1
  103. package/dist/cjs/src/abstract/zaif.js +1 -1
  104. package/dist/cjs/src/abstract/zebpay.js +1 -1
  105. package/dist/cjs/src/abstract/zonda.js +1 -1
  106. package/dist/cjs/src/aftermath.js +1324 -0
  107. package/dist/cjs/src/alp.js +1 -1
  108. package/dist/cjs/src/alpaca.js +1 -1
  109. package/dist/cjs/src/apex.js +1 -1
  110. package/dist/cjs/src/arkham.js +1 -1
  111. package/dist/cjs/src/ascendex.js +1 -1
  112. package/dist/cjs/src/aster.js +1 -1
  113. package/dist/cjs/src/backpack.js +1 -1
  114. package/dist/cjs/src/base/Exchange.js +2 -1
  115. package/dist/cjs/src/base/Precise.js +6 -0
  116. package/dist/cjs/src/base/errors.js +6 -0
  117. package/dist/cjs/src/base/functions/crypto.js +1 -1
  118. package/dist/cjs/src/base/functions/encode.js +1 -1
  119. package/dist/cjs/src/base/functions/io.js +1 -1
  120. package/dist/cjs/src/base/functions/misc.js +1 -0
  121. package/dist/cjs/src/base/functions/number.js +6 -0
  122. package/dist/cjs/src/base/functions/platform.js +6 -0
  123. package/dist/cjs/src/base/functions/rsa.js +1 -0
  124. package/dist/cjs/src/base/functions/string.js +6 -0
  125. package/dist/cjs/src/base/functions/throttle.js +1 -1
  126. package/dist/cjs/src/base/functions/time.js +6 -0
  127. package/dist/cjs/src/base/functions/totp.js +1 -0
  128. package/dist/cjs/src/base/functions/type.js +6 -0
  129. package/dist/cjs/src/base/functions.js +1 -1
  130. package/dist/cjs/src/base/ws/Cache.js +6 -0
  131. package/dist/cjs/src/base/ws/Client.js +1 -0
  132. package/dist/cjs/src/base/ws/Future.js +1 -1
  133. package/dist/cjs/src/base/ws/OrderBook.js +1 -1
  134. package/dist/cjs/src/base/ws/OrderBookSide.js +6 -0
  135. package/dist/cjs/src/base/ws/WsClient.js +1 -1
  136. package/dist/cjs/src/bequant.js +1 -1
  137. package/dist/cjs/src/bigone.js +4 -1
  138. package/dist/cjs/src/binance.js +1 -1
  139. package/dist/cjs/src/binancecoinm.js +1 -1
  140. package/dist/cjs/src/binanceus.js +1 -1
  141. package/dist/cjs/src/binanceusdm.js +1 -1
  142. package/dist/cjs/src/bingx.js +2 -1
  143. package/dist/cjs/src/bit2c.js +1 -1
  144. package/dist/cjs/src/bitbank.js +1 -1
  145. package/dist/cjs/src/bitbns.js +1 -1
  146. package/dist/cjs/src/bitfinex.js +1 -1
  147. package/dist/cjs/src/bitflyer.js +1 -1
  148. package/dist/cjs/src/bitget.js +89 -38
  149. package/dist/cjs/src/bithumb.js +1 -9
  150. package/dist/cjs/src/bitmart.js +1 -1
  151. package/dist/cjs/src/bitmex.js +1 -1
  152. package/dist/cjs/src/bitopro.js +1 -1
  153. package/dist/cjs/src/bitrue.js +1 -1
  154. package/dist/cjs/src/bitso.js +1 -1
  155. package/dist/cjs/src/bitstamp.js +1 -1
  156. package/dist/cjs/src/bitteam.js +1 -1
  157. package/dist/cjs/src/bittrade.js +1 -1
  158. package/dist/cjs/src/blockchaincom.js +1 -1
  159. package/dist/cjs/src/blofin.js +1 -1
  160. package/dist/cjs/src/btcbox.js +1 -1
  161. package/dist/cjs/src/btcmarkets.js +1 -1
  162. package/dist/cjs/src/btcturk.js +1 -1
  163. package/dist/cjs/src/bullish.js +110 -1
  164. package/dist/cjs/src/bybit.js +2 -1
  165. package/dist/cjs/src/bydfi.js +1 -1
  166. package/dist/cjs/src/cex.js +1 -1
  167. package/dist/cjs/src/coinbaseadvanced.js +1 -1
  168. package/dist/cjs/src/coinbaseinternational.js +1 -0
  169. package/dist/cjs/src/coincatch.js +1 -1
  170. package/dist/cjs/src/coincheck.js +1 -1
  171. package/dist/cjs/src/coinex.js +2 -1
  172. package/dist/cjs/src/coinmate.js +1 -1
  173. package/dist/cjs/src/coinmetro.js +2 -2
  174. package/dist/cjs/src/coinone.js +1 -1
  175. package/dist/cjs/src/coinsph.js +1 -0
  176. package/dist/cjs/src/coinspot.js +1 -1
  177. package/dist/cjs/src/cryptocom.js +1 -1
  178. package/dist/cjs/src/cryptomus.js +1 -1
  179. package/dist/cjs/src/deepcoin.js +1 -1
  180. package/dist/cjs/src/defx.js +1 -1
  181. package/dist/cjs/src/delta.js +1 -1
  182. package/dist/cjs/src/deribit.js +1 -1
  183. package/dist/cjs/src/derive.js +1 -1
  184. package/dist/cjs/src/digifinex.js +1 -1
  185. package/dist/cjs/src/dydx.js +1 -1
  186. package/dist/cjs/src/exmo.js +1 -1
  187. package/dist/cjs/src/fmfwio.js +1 -1
  188. package/dist/cjs/src/foxbit.js +1 -1
  189. package/dist/cjs/src/gate.js +2 -1
  190. package/dist/cjs/src/gateio.js +1 -1
  191. package/dist/cjs/src/gemini.js +2 -1
  192. package/dist/cjs/src/hashkey.js +1 -1
  193. package/dist/cjs/src/hibachi.js +1 -1
  194. package/dist/cjs/src/hitbtc.js +1 -0
  195. package/dist/cjs/src/hollaex.js +1 -1
  196. package/dist/cjs/src/htx.js +3 -2
  197. package/dist/cjs/src/huobi.js +1 -1
  198. package/dist/cjs/src/hyperliquid.js +41 -3
  199. package/dist/cjs/src/independentreserve.js +16 -5
  200. package/dist/cjs/src/indodax.js +1 -1
  201. package/dist/cjs/src/kraken.js +1 -1
  202. package/dist/cjs/src/krakenfutures.js +6 -3
  203. package/dist/cjs/src/kucoin.js +21 -4
  204. package/dist/cjs/src/kucoinfutures.js +1 -1
  205. package/dist/cjs/src/latoken.js +1 -1
  206. package/dist/cjs/src/lbank.js +2 -2
  207. package/dist/cjs/src/lighter.js +57 -7
  208. package/dist/cjs/src/luno.js +2 -1
  209. package/dist/cjs/src/mercado.js +1 -1
  210. package/dist/cjs/src/mexc.js +1 -1
  211. package/dist/cjs/src/modetrade.js +1 -1
  212. package/dist/cjs/src/myokx.js +1 -1
  213. package/dist/cjs/src/ndax.js +1 -1
  214. package/dist/cjs/src/novadax.js +1 -1
  215. package/dist/cjs/src/okx.js +18 -3
  216. package/dist/cjs/src/okxus.js +1 -1
  217. package/dist/cjs/src/onetrading.js +1 -1
  218. package/dist/cjs/src/oxfun.js +1 -1
  219. package/dist/cjs/src/p2b.js +1 -1
  220. package/dist/cjs/src/paradex.js +1 -1
  221. package/dist/cjs/src/paymium.js +1 -1
  222. package/dist/cjs/src/poloniex.js +1 -1
  223. package/dist/cjs/src/pro/aftermath.js +375 -0
  224. package/dist/cjs/src/pro/alpaca.js +1 -1
  225. package/dist/cjs/src/pro/apex.js +1 -1
  226. package/dist/cjs/src/pro/arkham.js +1 -1
  227. package/dist/cjs/src/pro/ascendex.js +1 -1
  228. package/dist/cjs/src/pro/aster.js +1 -1
  229. package/dist/cjs/src/pro/backpack.js +1 -1
  230. package/dist/cjs/src/pro/bequant.js +1 -1
  231. package/dist/cjs/src/pro/binancecoinm.js +1 -1
  232. package/dist/cjs/src/pro/binanceus.js +1 -1
  233. package/dist/cjs/src/pro/binanceusdm.js +1 -1
  234. package/dist/cjs/src/pro/bingx.js +6 -2
  235. package/dist/cjs/src/pro/bitfinex.js +1 -1
  236. package/dist/cjs/src/pro/bitget.js +1 -1
  237. package/dist/cjs/src/pro/bithumb.js +1 -1
  238. package/dist/cjs/src/pro/bitmart.js +1 -1
  239. package/dist/cjs/src/pro/bitmex.js +1 -1
  240. package/dist/cjs/src/pro/bitrue.js +1 -1
  241. package/dist/cjs/src/pro/bitstamp.js +1 -1
  242. package/dist/cjs/src/pro/bitvavo.js +1 -1
  243. package/dist/cjs/src/pro/blockchaincom.js +1 -1
  244. package/dist/cjs/src/pro/blofin.js +1 -1
  245. package/dist/cjs/src/pro/bullish.js +1 -1
  246. package/dist/cjs/src/pro/bybit.js +1 -1
  247. package/dist/cjs/src/pro/bydfi.js +1 -1
  248. package/dist/cjs/src/pro/cex.js +25 -29
  249. package/dist/cjs/src/pro/coinbase.js +1 -1
  250. package/dist/cjs/src/pro/coinbaseadvanced.js +1 -1
  251. package/dist/cjs/src/pro/coinbaseexchange.js +1 -1
  252. package/dist/cjs/src/pro/coinbaseinternational.js +1 -1
  253. package/dist/cjs/src/pro/coincatch.js +1 -1
  254. package/dist/cjs/src/pro/coincheck.js +1 -1
  255. package/dist/cjs/src/pro/coinex.js +1 -1
  256. package/dist/cjs/src/pro/coinone.js +1 -1
  257. package/dist/cjs/src/pro/cryptocom.js +1 -1
  258. package/dist/cjs/src/pro/deepcoin.js +1 -1
  259. package/dist/cjs/src/pro/defx.js +1 -1
  260. package/dist/cjs/src/pro/deribit.js +1 -1
  261. package/dist/cjs/src/pro/dydx.js +1 -1
  262. package/dist/cjs/src/pro/exmo.js +1 -1
  263. package/dist/cjs/src/pro/gate.js +1 -1
  264. package/dist/cjs/src/pro/gateio.js +1 -1
  265. package/dist/cjs/src/pro/gemini.js +1 -1
  266. package/dist/cjs/src/pro/hashkey.js +1 -1
  267. package/dist/cjs/src/pro/hitbtc.js +1 -1
  268. package/dist/cjs/src/pro/hollaex.js +1 -1
  269. package/dist/cjs/src/pro/htx.js +1 -1
  270. package/dist/cjs/src/pro/huobi.js +1 -1
  271. package/dist/cjs/src/pro/hyperliquid.js +1 -1
  272. package/dist/cjs/src/pro/independentreserve.js +1 -1
  273. package/dist/cjs/src/pro/kraken.js +1 -1
  274. package/dist/cjs/src/pro/krakenfutures.js +10 -4
  275. package/dist/cjs/src/pro/kucoin.js +1 -1
  276. package/dist/cjs/src/pro/kucoinfutures.js +1 -1
  277. package/dist/cjs/src/pro/lbank.js +1 -0
  278. package/dist/cjs/src/pro/lighter.js +128 -5
  279. package/dist/cjs/src/pro/luno.js +1 -1
  280. package/dist/cjs/src/pro/mexc.js +8 -2
  281. package/dist/cjs/src/pro/myokx.js +1 -1
  282. package/dist/cjs/src/pro/ndax.js +1 -1
  283. package/dist/cjs/src/pro/okx.js +1 -1
  284. package/dist/cjs/src/pro/okxus.js +1 -1
  285. package/dist/cjs/src/pro/onetrading.js +1 -1
  286. package/dist/cjs/src/pro/oxfun.js +1 -1
  287. package/dist/cjs/src/pro/p2b.js +1 -1
  288. package/dist/cjs/src/pro/paradex.js +4 -4
  289. package/dist/cjs/src/pro/phemex.js +1 -1
  290. package/dist/cjs/src/pro/poloniex.js +1 -1
  291. package/dist/cjs/src/pro/toobit.js +1 -1
  292. package/dist/cjs/src/pro/upbit.js +1 -1
  293. package/dist/cjs/src/pro/whitebit.js +1 -1
  294. package/dist/cjs/src/pro/woo.js +3 -8
  295. package/dist/cjs/src/pro/xt.js +1 -1
  296. package/dist/cjs/src/protobuf/mexc/compiled.cjs.js +0 -1
  297. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/base/v1beta1/coin.js +1 -0
  298. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/v1beta1/multisig.js +1 -0
  299. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/crypto/secp256k1/keys.js +1 -0
  300. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/tx/signing/v1beta1/signing.js +1 -0
  301. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/tx/v1beta1/tx.js +1 -0
  302. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/accountplus/tx.js +1 -0
  303. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/clob_pair.js +1 -0
  304. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order.js +1 -0
  305. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order_removals.js +1 -0
  306. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/tx.js +1 -0
  307. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/transfer.js +1 -0
  308. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/tx.js +1 -0
  309. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/subaccount.js +1 -0
  310. package/dist/cjs/src/static_dependencies/dydx-v4-client/google/protobuf/any.js +1 -0
  311. package/dist/cjs/src/static_dependencies/dydx-v4-client/helpers.js +6 -0
  312. package/dist/cjs/src/static_dependencies/dydx-v4-client/onboarding.js +1 -0
  313. package/dist/cjs/src/static_dependencies/dydx-v4-client/registry.js +1 -0
  314. package/dist/cjs/src/static_dependencies/ethers/abi-coder.js +6 -0
  315. package/dist/cjs/src/static_dependencies/ethers/address/address.js +1 -1
  316. package/dist/cjs/src/static_dependencies/ethers/coders/abstract-coder.js +6 -0
  317. package/dist/cjs/src/static_dependencies/ethers/coders/address.js +1 -0
  318. package/dist/cjs/src/static_dependencies/ethers/coders/anonymous.js +1 -0
  319. package/dist/cjs/src/static_dependencies/ethers/coders/array.js +1 -0
  320. package/dist/cjs/src/static_dependencies/ethers/coders/boolean.js +1 -0
  321. package/dist/cjs/src/static_dependencies/ethers/coders/bytes.js +1 -0
  322. package/dist/cjs/src/static_dependencies/ethers/coders/fixed-bytes.js +1 -0
  323. package/dist/cjs/src/static_dependencies/ethers/coders/null.js +1 -0
  324. package/dist/cjs/src/static_dependencies/ethers/coders/number.js +1 -0
  325. package/dist/cjs/src/static_dependencies/ethers/coders/string.js +1 -0
  326. package/dist/cjs/src/static_dependencies/ethers/coders/tuple.js +1 -0
  327. package/dist/cjs/src/static_dependencies/ethers/fragments.js +6 -0
  328. package/dist/cjs/src/static_dependencies/ethers/hash/typed-data.js +6 -0
  329. package/dist/cjs/src/static_dependencies/ethers/index.js +1 -10
  330. package/dist/cjs/src/static_dependencies/ethers/interface.js +6 -0
  331. package/dist/cjs/src/static_dependencies/ethers/typed.js +6 -0
  332. package/dist/cjs/src/static_dependencies/ethers/utils/base58.js +1 -13
  333. package/dist/cjs/src/static_dependencies/ethers/utils/data.js +1 -6
  334. package/dist/cjs/src/static_dependencies/ethers/utils/errors.js +1 -9
  335. package/dist/cjs/src/static_dependencies/ethers/utils/events.js +6 -0
  336. package/dist/cjs/src/static_dependencies/ethers/utils/fixednumber.js +6 -0
  337. package/dist/cjs/src/static_dependencies/ethers/utils/index.js +1 -7
  338. package/dist/cjs/src/static_dependencies/ethers/utils/maths.js +1 -5
  339. package/dist/cjs/src/static_dependencies/ethers/utils/properties.js +6 -0
  340. package/dist/cjs/src/static_dependencies/ethers/utils/utf8.js +1 -8
  341. package/dist/cjs/src/static_dependencies/fflake/browser.js +1 -1
  342. package/dist/cjs/src/static_dependencies/jsencrypt/JSEncrypt.js +1 -0
  343. package/dist/cjs/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +1 -0
  344. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +1 -1
  345. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +6 -0
  346. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +6 -0
  347. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +6 -0
  348. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +1 -0
  349. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +1 -1
  350. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +6 -0
  351. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +1 -1
  352. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +1 -1
  353. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/util.js +6 -0
  354. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +1 -1
  355. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +6 -0
  356. package/dist/cjs/src/static_dependencies/messagepack/msgpack.js +6 -0
  357. package/dist/cjs/src/static_dependencies/noble-curves/_shortw_utils.js +1 -1
  358. package/dist/cjs/src/static_dependencies/noble-curves/abstract/curve.js +1 -1
  359. package/dist/cjs/src/static_dependencies/noble-curves/abstract/edwards.js +1 -1
  360. package/dist/cjs/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +1 -0
  361. package/dist/cjs/src/static_dependencies/noble-curves/abstract/modular.js +1 -1
  362. package/dist/cjs/src/static_dependencies/noble-curves/abstract/montgomery.js +1 -1
  363. package/dist/cjs/src/static_dependencies/noble-curves/abstract/poseidon.js +1 -1
  364. package/dist/cjs/src/static_dependencies/noble-curves/abstract/utils.js +6 -0
  365. package/dist/cjs/src/static_dependencies/noble-curves/abstract/weierstrass.js +1 -1
  366. package/dist/cjs/src/static_dependencies/noble-curves/ed25519.js +1 -1
  367. package/dist/cjs/src/static_dependencies/noble-curves/p256.js +1 -1
  368. package/dist/cjs/src/static_dependencies/noble-curves/secp256k1.js +1 -1
  369. package/dist/cjs/src/static_dependencies/noble-hashes/_assert.js +6 -0
  370. package/dist/cjs/src/static_dependencies/noble-hashes/_sha2.js +1 -0
  371. package/dist/cjs/src/static_dependencies/noble-hashes/_u64.js +6 -0
  372. package/dist/cjs/src/static_dependencies/noble-hashes/crypto.js +6 -0
  373. package/dist/cjs/src/static_dependencies/noble-hashes/hmac.js +1 -0
  374. package/dist/cjs/src/static_dependencies/noble-hashes/md5.js +1 -0
  375. package/dist/cjs/src/static_dependencies/noble-hashes/pbkdf2.js +1 -0
  376. package/dist/cjs/src/static_dependencies/noble-hashes/ripemd160.js +1 -0
  377. package/dist/cjs/src/static_dependencies/noble-hashes/sha1.js +1 -0
  378. package/dist/cjs/src/static_dependencies/noble-hashes/sha256.js +1 -0
  379. package/dist/cjs/src/static_dependencies/noble-hashes/sha3.js +1 -0
  380. package/dist/cjs/src/static_dependencies/noble-hashes/sha512.js +1 -0
  381. package/dist/cjs/src/static_dependencies/noble-hashes/utils.js +1 -1
  382. package/dist/cjs/src/static_dependencies/node-fetch/body.js +1 -5
  383. package/dist/cjs/src/static_dependencies/node-fetch/errors/abort-error.js +1 -0
  384. package/dist/cjs/src/static_dependencies/node-fetch/errors/base.js +6 -0
  385. package/dist/cjs/src/static_dependencies/node-fetch/errors/fetch-error.js +1 -0
  386. package/dist/cjs/src/static_dependencies/node-fetch/headers.js +1 -5
  387. package/dist/cjs/src/static_dependencies/node-fetch/index.js +1 -7
  388. package/dist/cjs/src/static_dependencies/node-fetch/request.js +1 -7
  389. package/dist/cjs/src/static_dependencies/node-fetch/response.js +1 -5
  390. package/dist/cjs/src/static_dependencies/node-fetch/utils/get-search.js +6 -0
  391. package/dist/cjs/src/static_dependencies/node-fetch/utils/is-redirect.js +6 -0
  392. package/dist/cjs/src/static_dependencies/node-fetch/utils/is.js +6 -0
  393. package/dist/cjs/src/static_dependencies/node-fetch/utils/referrer.js +1 -0
  394. package/dist/cjs/src/static_dependencies/proxies/agent-base/index.js +1 -0
  395. package/dist/cjs/src/static_dependencies/proxies/http-proxy-agent/index.js +1 -0
  396. package/dist/cjs/src/static_dependencies/proxies/https-proxy-agent/index.js +1 -0
  397. package/dist/cjs/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +6 -0
  398. package/dist/cjs/src/static_dependencies/qs/formats.js +6 -0
  399. package/dist/cjs/src/static_dependencies/qs/index.js +1 -0
  400. package/dist/cjs/src/static_dependencies/qs/parse.js +1 -0
  401. package/dist/cjs/src/static_dependencies/qs/stringify.js +1 -0
  402. package/dist/cjs/src/static_dependencies/qs/utils.js +6 -0
  403. package/dist/cjs/src/static_dependencies/scure-base/index.js +6 -0
  404. package/dist/cjs/src/static_dependencies/scure-bip32/index.js +1 -19
  405. package/dist/cjs/src/static_dependencies/scure-bip39/index.js +1 -1
  406. package/dist/cjs/src/static_dependencies/scure-bip39/wordlists/english.js +6 -0
  407. package/dist/cjs/src/static_dependencies/scure-starknet/index.js +1 -1
  408. package/dist/cjs/src/static_dependencies/starknet/constants.js +1 -1
  409. package/dist/cjs/src/static_dependencies/starknet/types/calldata.js +6 -0
  410. package/dist/cjs/src/static_dependencies/starknet/types/lib/contract/abi.js +6 -0
  411. package/dist/cjs/src/static_dependencies/starknet/types/lib/contract/index.js +6 -0
  412. package/dist/cjs/src/static_dependencies/starknet/types/lib/index.js +6 -0
  413. package/dist/cjs/src/static_dependencies/starknet/types/typedData.js +6 -0
  414. package/dist/cjs/src/static_dependencies/starknet/utils/assert.js +6 -0
  415. package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +1 -1
  416. package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +1 -1
  417. package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +1 -1
  418. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/byteArray.js +1 -0
  419. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/cairo.js +1 -0
  420. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +6 -0
  421. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +6 -0
  422. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +6 -0
  423. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/formatter.js +1 -0
  424. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/index.js +1 -1
  425. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/index.js +1 -0
  426. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +1 -0
  427. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +6 -0
  428. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +1 -0
  429. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/requestParser.js +1 -0
  430. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/responseParser.js +1 -0
  431. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/tuple.js +1 -1
  432. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/validate.js +1 -4
  433. package/dist/cjs/src/static_dependencies/starknet/utils/encode.js +1 -0
  434. package/dist/cjs/src/static_dependencies/starknet/utils/hash/classHash.js +1 -3
  435. package/dist/cjs/src/static_dependencies/starknet/utils/merkle.js +1 -0
  436. package/dist/cjs/src/static_dependencies/starknet/utils/num.js +1 -0
  437. package/dist/cjs/src/static_dependencies/starknet/utils/selector.js +1 -0
  438. package/dist/cjs/src/static_dependencies/starknet/utils/shortString.js +1 -0
  439. package/dist/cjs/src/static_dependencies/starknet/utils/typedData.js +1 -1
  440. package/dist/cjs/src/static_dependencies/watchable/src/unpromise.js +6 -0
  441. package/dist/cjs/src/static_dependencies/zklink/zklink-sdk-web.js +6 -0
  442. package/dist/cjs/src/timex.js +1 -0
  443. package/dist/cjs/src/tokocrypto.js +1 -1
  444. package/dist/cjs/src/toobit.js +2 -1
  445. package/dist/cjs/src/upbit.js +1 -1
  446. package/dist/cjs/src/wavesexchange.js +1 -1
  447. package/dist/cjs/src/whitebit.js +1 -1
  448. package/dist/cjs/src/woo.js +1 -1
  449. package/dist/cjs/src/woofipro.js +1 -1
  450. package/dist/cjs/src/xt.js +1 -1
  451. package/dist/cjs/src/yobit.js +1 -1
  452. package/dist/cjs/src/zaif.js +1 -1
  453. package/dist/cjs/src/zebpay.js +1 -1
  454. package/dist/cjs/src/zonda.js +1 -1
  455. package/js/ccxt.d.ts +8 -2
  456. package/js/ccxt.js +12 -2
  457. package/js/src/abstract/aftermath.d.ts +33 -0
  458. package/js/src/abstract/aftermath.js +11 -0
  459. package/js/src/abstract/alp.js +6 -0
  460. package/js/src/abstract/alpaca.js +6 -0
  461. package/js/src/abstract/apex.js +6 -0
  462. package/js/src/abstract/arkham.js +6 -0
  463. package/js/src/abstract/ascendex.js +6 -0
  464. package/js/src/abstract/aster.js +6 -0
  465. package/js/src/abstract/backpack.js +6 -0
  466. package/js/src/abstract/bequant.js +6 -0
  467. package/js/src/abstract/bigone.js +6 -0
  468. package/js/src/abstract/binance.js +6 -0
  469. package/js/src/abstract/binancecoinm.js +6 -0
  470. package/js/src/abstract/binanceus.js +6 -0
  471. package/js/src/abstract/binanceusdm.js +6 -0
  472. package/js/src/abstract/bingx.js +6 -0
  473. package/js/src/abstract/bit2c.js +6 -0
  474. package/js/src/abstract/bitbank.js +6 -0
  475. package/js/src/abstract/bitbns.js +6 -0
  476. package/js/src/abstract/bitfinex.js +6 -0
  477. package/js/src/abstract/bitflyer.js +6 -0
  478. package/js/src/abstract/bitget.js +6 -0
  479. package/js/src/abstract/bithumb.js +6 -0
  480. package/js/src/abstract/bitmart.js +6 -0
  481. package/js/src/abstract/bitmex.js +6 -0
  482. package/js/src/abstract/bitopro.js +6 -0
  483. package/js/src/abstract/bitrue.js +6 -0
  484. package/js/src/abstract/bitso.js +6 -0
  485. package/js/src/abstract/bitstamp.js +6 -0
  486. package/js/src/abstract/bitteam.js +6 -0
  487. package/js/src/abstract/bittrade.js +6 -0
  488. package/js/src/abstract/bitvavo.js +6 -0
  489. package/js/src/abstract/blockchaincom.js +6 -0
  490. package/js/src/abstract/blofin.js +6 -0
  491. package/js/src/abstract/btcbox.js +6 -0
  492. package/js/src/abstract/btcmarkets.js +6 -0
  493. package/js/src/abstract/btcturk.js +6 -0
  494. package/js/src/abstract/bullish.js +6 -0
  495. package/js/src/abstract/bybit.js +6 -0
  496. package/js/src/abstract/bydfi.js +6 -0
  497. package/js/src/abstract/cex.js +6 -0
  498. package/js/src/abstract/coinbase.js +6 -0
  499. package/js/src/abstract/coinbaseadvanced.js +6 -0
  500. package/js/src/abstract/coinbaseexchange.js +6 -0
  501. package/js/src/abstract/coinbaseinternational.js +6 -0
  502. package/js/src/abstract/coincatch.js +6 -0
  503. package/js/src/abstract/coincheck.js +6 -0
  504. package/js/src/abstract/coinex.js +6 -0
  505. package/js/src/abstract/coinmate.js +6 -0
  506. package/js/src/abstract/coinmetro.js +6 -0
  507. package/js/src/abstract/coinone.js +6 -0
  508. package/js/src/abstract/coinsph.js +6 -0
  509. package/js/src/abstract/coinspot.js +6 -0
  510. package/js/src/abstract/cryptocom.js +6 -0
  511. package/js/src/abstract/cryptomus.js +6 -0
  512. package/js/src/abstract/deepcoin.js +6 -0
  513. package/js/src/abstract/defx.js +6 -0
  514. package/js/src/abstract/delta.js +6 -0
  515. package/js/src/abstract/deribit.js +6 -0
  516. package/js/src/abstract/derive.js +6 -0
  517. package/js/src/abstract/digifinex.js +6 -0
  518. package/js/src/abstract/dydx.js +6 -0
  519. package/js/src/abstract/exmo.js +6 -0
  520. package/js/src/abstract/fmfwio.js +6 -0
  521. package/js/src/abstract/foxbit.js +6 -0
  522. package/js/src/abstract/gate.js +6 -0
  523. package/js/src/abstract/gateio.js +6 -0
  524. package/js/src/abstract/gemini.js +6 -0
  525. package/js/src/abstract/hashkey.js +6 -0
  526. package/js/src/abstract/hibachi.js +6 -0
  527. package/js/src/abstract/hitbtc.js +6 -0
  528. package/js/src/abstract/hollaex.js +6 -0
  529. package/js/src/abstract/htx.js +6 -0
  530. package/js/src/abstract/huobi.js +6 -0
  531. package/js/src/abstract/hyperliquid.js +6 -0
  532. package/js/src/abstract/independentreserve.js +6 -0
  533. package/js/src/abstract/indodax.js +6 -0
  534. package/js/src/abstract/kraken.js +6 -0
  535. package/js/src/abstract/krakenfutures.js +6 -0
  536. package/js/src/abstract/kucoin.js +6 -0
  537. package/js/src/abstract/kucoinfutures.js +6 -0
  538. package/js/src/abstract/latoken.js +6 -0
  539. package/js/src/abstract/lbank.js +6 -0
  540. package/js/src/abstract/lighter.js +6 -0
  541. package/js/src/abstract/luno.js +6 -0
  542. package/js/src/abstract/mercado.js +6 -0
  543. package/js/src/abstract/mexc.js +6 -0
  544. package/js/src/abstract/modetrade.js +6 -0
  545. package/js/src/abstract/myokx.js +6 -0
  546. package/js/src/abstract/ndax.js +6 -0
  547. package/js/src/abstract/novadax.js +6 -0
  548. package/js/src/abstract/okx.js +6 -0
  549. package/js/src/abstract/okxus.js +6 -0
  550. package/js/src/abstract/onetrading.js +6 -0
  551. package/js/src/abstract/oxfun.js +6 -0
  552. package/js/src/abstract/p2b.js +6 -0
  553. package/js/src/abstract/paradex.js +6 -0
  554. package/js/src/abstract/paymium.js +6 -0
  555. package/js/src/abstract/phemex.js +6 -0
  556. package/js/src/abstract/poloniex.js +6 -0
  557. package/js/src/abstract/timex.js +6 -0
  558. package/js/src/abstract/tokocrypto.js +6 -0
  559. package/js/src/abstract/toobit.js +6 -0
  560. package/js/src/abstract/upbit.js +6 -0
  561. package/js/src/abstract/wavesexchange.js +6 -0
  562. package/js/src/abstract/whitebit.js +6 -0
  563. package/js/src/abstract/woo.js +6 -0
  564. package/js/src/abstract/woofipro.js +6 -0
  565. package/js/src/abstract/xt.js +6 -0
  566. package/js/src/abstract/yobit.js +6 -0
  567. package/js/src/abstract/zaif.js +6 -0
  568. package/js/src/abstract/zebpay.js +6 -0
  569. package/js/src/abstract/zonda.js +6 -0
  570. package/js/src/aftermath.d.ts +291 -0
  571. package/js/src/aftermath.js +1322 -0
  572. package/js/src/alp.js +6 -0
  573. package/js/src/alpaca.js +6 -0
  574. package/js/src/apex.js +6 -0
  575. package/js/src/arkham.js +6 -0
  576. package/js/src/ascendex.js +6 -0
  577. package/js/src/aster.js +6 -0
  578. package/js/src/backpack.js +6 -0
  579. package/js/src/base/Exchange.js +8 -1
  580. package/js/src/base/Precise.js +6 -0
  581. package/js/src/base/errorHierarchy.js +6 -0
  582. package/js/src/base/errors.js +6 -0
  583. package/js/src/base/functions/crypto.js +6 -0
  584. package/js/src/base/functions/encode.js +6 -0
  585. package/js/src/base/functions/generic.js +6 -0
  586. package/js/src/base/functions/io.js +6 -0
  587. package/js/src/base/functions/misc.js +6 -0
  588. package/js/src/base/functions/number.js +6 -0
  589. package/js/src/base/functions/platform.js +6 -0
  590. package/js/src/base/functions/rsa.js +6 -0
  591. package/js/src/base/functions/string.js +6 -0
  592. package/js/src/base/functions/throttle.js +6 -0
  593. package/js/src/base/functions/time.js +6 -0
  594. package/js/src/base/functions/totp.js +6 -0
  595. package/js/src/base/functions/type.js +6 -0
  596. package/js/src/base/functions.js +6 -0
  597. package/js/src/base/types.js +6 -0
  598. package/js/src/base/ws/Cache.js +6 -0
  599. package/js/src/base/ws/Client.js +6 -0
  600. package/js/src/base/ws/Future.js +6 -0
  601. package/js/src/base/ws/OrderBook.js +6 -0
  602. package/js/src/base/ws/OrderBookSide.js +6 -0
  603. package/js/src/base/ws/WsClient.js +6 -0
  604. package/js/src/base/ws/functions.js +6 -0
  605. package/js/src/bequant.js +6 -0
  606. package/js/src/bigone.js +9 -0
  607. package/js/src/binance.js +6 -0
  608. package/js/src/binancecoinm.js +6 -0
  609. package/js/src/binanceus.js +6 -0
  610. package/js/src/binanceusdm.js +6 -0
  611. package/js/src/bingx.js +7 -0
  612. package/js/src/bit2c.js +6 -0
  613. package/js/src/bitbank.js +6 -0
  614. package/js/src/bitbns.js +6 -0
  615. package/js/src/bitfinex.js +6 -0
  616. package/js/src/bitflyer.js +6 -0
  617. package/js/src/bitget.js +94 -37
  618. package/js/src/bithumb.js +6 -8
  619. package/js/src/bitmart.js +6 -0
  620. package/js/src/bitmex.js +6 -0
  621. package/js/src/bitopro.js +6 -0
  622. package/js/src/bitrue.js +6 -0
  623. package/js/src/bitso.js +6 -0
  624. package/js/src/bitstamp.js +6 -0
  625. package/js/src/bitteam.js +6 -0
  626. package/js/src/bittrade.js +6 -0
  627. package/js/src/bitvavo.js +6 -0
  628. package/js/src/blockchaincom.js +6 -0
  629. package/js/src/blofin.js +6 -0
  630. package/js/src/btcbox.js +6 -0
  631. package/js/src/btcmarkets.js +6 -0
  632. package/js/src/btcturk.js +6 -0
  633. package/js/src/bullish.d.ts +12 -1
  634. package/js/src/bullish.js +115 -0
  635. package/js/src/bybit.js +7 -0
  636. package/js/src/bydfi.js +6 -0
  637. package/js/src/cex.js +6 -0
  638. package/js/src/coinbase.js +6 -0
  639. package/js/src/coinbaseadvanced.js +6 -0
  640. package/js/src/coinbaseexchange.js +6 -0
  641. package/js/src/coinbaseinternational.js +8 -1
  642. package/js/src/coincatch.js +6 -0
  643. package/js/src/coincheck.js +6 -0
  644. package/js/src/coinex.js +7 -0
  645. package/js/src/coinmate.js +6 -0
  646. package/js/src/coinmetro.js +7 -1
  647. package/js/src/coinone.js +6 -0
  648. package/js/src/coinsph.js +6 -0
  649. package/js/src/coinspot.js +6 -0
  650. package/js/src/cryptocom.js +6 -0
  651. package/js/src/cryptomus.js +6 -0
  652. package/js/src/deepcoin.js +6 -0
  653. package/js/src/defx.js +6 -0
  654. package/js/src/delta.js +6 -0
  655. package/js/src/deribit.js +6 -0
  656. package/js/src/derive.js +6 -0
  657. package/js/src/digifinex.js +6 -0
  658. package/js/src/dydx.js +6 -0
  659. package/js/src/exmo.js +6 -0
  660. package/js/src/fmfwio.js +6 -0
  661. package/js/src/foxbit.js +6 -0
  662. package/js/src/gate.js +7 -0
  663. package/js/src/gateio.js +6 -0
  664. package/js/src/gemini.js +7 -0
  665. package/js/src/hashkey.js +6 -0
  666. package/js/src/hibachi.js +6 -0
  667. package/js/src/hitbtc.js +6 -0
  668. package/js/src/hollaex.js +6 -0
  669. package/js/src/htx.js +8 -1
  670. package/js/src/huobi.js +6 -0
  671. package/js/src/hyperliquid.d.ts +11 -0
  672. package/js/src/hyperliquid.js +46 -2
  673. package/js/src/independentreserve.d.ts +1 -0
  674. package/js/src/independentreserve.js +21 -4
  675. package/js/src/indodax.js +6 -0
  676. package/js/src/kraken.js +6 -0
  677. package/js/src/krakenfutures.js +11 -2
  678. package/js/src/kucoin.d.ts +1 -0
  679. package/js/src/kucoin.js +26 -3
  680. package/js/src/kucoinfutures.js +6 -0
  681. package/js/src/latoken.js +6 -0
  682. package/js/src/lbank.js +7 -1
  683. package/js/src/lighter.d.ts +6 -1
  684. package/js/src/lighter.js +62 -6
  685. package/js/src/luno.js +7 -0
  686. package/js/src/mercado.js +6 -0
  687. package/js/src/mexc.js +6 -0
  688. package/js/src/modetrade.js +6 -0
  689. package/js/src/myokx.js +6 -0
  690. package/js/src/ndax.js +6 -0
  691. package/js/src/novadax.js +6 -0
  692. package/js/src/okx.js +23 -2
  693. package/js/src/okxus.js +6 -0
  694. package/js/src/onetrading.js +6 -0
  695. package/js/src/oxfun.js +6 -0
  696. package/js/src/p2b.js +6 -0
  697. package/js/src/paradex.js +6 -0
  698. package/js/src/paymium.js +6 -0
  699. package/js/src/phemex.js +6 -0
  700. package/js/src/poloniex.js +6 -0
  701. package/js/src/pro/aftermath.d.ts +55 -0
  702. package/js/src/pro/aftermath.js +374 -0
  703. package/js/src/pro/alpaca.js +6 -0
  704. package/js/src/pro/apex.js +6 -0
  705. package/js/src/pro/arkham.js +6 -0
  706. package/js/src/pro/ascendex.js +6 -0
  707. package/js/src/pro/aster.js +6 -0
  708. package/js/src/pro/backpack.js +6 -0
  709. package/js/src/pro/bequant.js +6 -0
  710. package/js/src/pro/binance.js +6 -0
  711. package/js/src/pro/binancecoinm.js +6 -0
  712. package/js/src/pro/binanceus.js +6 -0
  713. package/js/src/pro/binanceusdm.js +6 -0
  714. package/js/src/pro/bingx.js +11 -1
  715. package/js/src/pro/bitfinex.js +6 -0
  716. package/js/src/pro/bitget.js +6 -0
  717. package/js/src/pro/bithumb.js +6 -0
  718. package/js/src/pro/bitmart.js +6 -0
  719. package/js/src/pro/bitmex.js +6 -0
  720. package/js/src/pro/bitopro.js +6 -0
  721. package/js/src/pro/bitrue.js +6 -0
  722. package/js/src/pro/bitstamp.js +6 -0
  723. package/js/src/pro/bittrade.js +6 -0
  724. package/js/src/pro/bitvavo.js +6 -0
  725. package/js/src/pro/blockchaincom.js +6 -0
  726. package/js/src/pro/blofin.js +6 -0
  727. package/js/src/pro/bullish.js +6 -0
  728. package/js/src/pro/bybit.js +6 -0
  729. package/js/src/pro/bydfi.js +6 -0
  730. package/js/src/pro/cex.d.ts +1 -0
  731. package/js/src/pro/cex.js +30 -28
  732. package/js/src/pro/coinbase.js +6 -0
  733. package/js/src/pro/coinbaseadvanced.js +6 -0
  734. package/js/src/pro/coinbaseexchange.js +6 -0
  735. package/js/src/pro/coinbaseinternational.js +6 -0
  736. package/js/src/pro/coincatch.js +6 -0
  737. package/js/src/pro/coincheck.js +6 -0
  738. package/js/src/pro/coinex.js +6 -0
  739. package/js/src/pro/coinone.js +6 -0
  740. package/js/src/pro/cryptocom.js +6 -0
  741. package/js/src/pro/deepcoin.js +6 -0
  742. package/js/src/pro/defx.js +6 -0
  743. package/js/src/pro/deribit.js +6 -0
  744. package/js/src/pro/derive.js +6 -0
  745. package/js/src/pro/dydx.js +6 -0
  746. package/js/src/pro/exmo.js +6 -0
  747. package/js/src/pro/gate.js +6 -0
  748. package/js/src/pro/gateio.js +6 -0
  749. package/js/src/pro/gemini.js +6 -0
  750. package/js/src/pro/hashkey.js +6 -0
  751. package/js/src/pro/hitbtc.js +6 -0
  752. package/js/src/pro/hollaex.js +6 -0
  753. package/js/src/pro/htx.js +6 -0
  754. package/js/src/pro/huobi.js +6 -0
  755. package/js/src/pro/hyperliquid.js +6 -0
  756. package/js/src/pro/independentreserve.js +6 -0
  757. package/js/src/pro/kraken.js +6 -0
  758. package/js/src/pro/krakenfutures.js +15 -3
  759. package/js/src/pro/kucoin.js +6 -0
  760. package/js/src/pro/kucoinfutures.js +6 -0
  761. package/js/src/pro/lbank.js +6 -0
  762. package/js/src/pro/lighter.d.ts +23 -0
  763. package/js/src/pro/lighter.js +133 -4
  764. package/js/src/pro/luno.js +6 -0
  765. package/js/src/pro/mexc.js +13 -1
  766. package/js/src/pro/modetrade.js +6 -0
  767. package/js/src/pro/myokx.js +6 -0
  768. package/js/src/pro/ndax.js +6 -0
  769. package/js/src/pro/okx.js +6 -0
  770. package/js/src/pro/okxus.js +6 -0
  771. package/js/src/pro/onetrading.js +6 -0
  772. package/js/src/pro/oxfun.js +6 -0
  773. package/js/src/pro/p2b.js +6 -0
  774. package/js/src/pro/paradex.js +9 -3
  775. package/js/src/pro/phemex.js +6 -0
  776. package/js/src/pro/poloniex.js +6 -0
  777. package/js/src/pro/toobit.js +6 -0
  778. package/js/src/pro/upbit.js +6 -0
  779. package/js/src/pro/whitebit.js +6 -0
  780. package/js/src/pro/woo.js +9 -8
  781. package/js/src/pro/woofipro.js +6 -0
  782. package/js/src/pro/xt.js +6 -0
  783. package/js/src/protobuf/mexc/compiled.cjs +6 -0
  784. package/js/src/static_dependencies/dydx-v4-client/cosmos/base/v1beta1/coin.js +6 -0
  785. package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/keys.js +6 -0
  786. package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/v1beta1/multisig.js +6 -0
  787. package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/secp256k1/keys.js +6 -0
  788. package/js/src/static_dependencies/dydx-v4-client/cosmos/tx/signing/v1beta1/signing.js +6 -0
  789. package/js/src/static_dependencies/dydx-v4-client/cosmos/tx/v1beta1/tx.js +6 -0
  790. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/accountplus/tx.js +6 -0
  791. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/block_rate_limit_config.js +6 -0
  792. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/clob_pair.js +6 -0
  793. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/equity_tier_limit_config.js +6 -0
  794. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/finalize_block.js +6 -0
  795. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/liquidations.js +6 -0
  796. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/liquidations_config.js +6 -0
  797. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/matches.js +6 -0
  798. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order.js +6 -0
  799. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order_removals.js +6 -0
  800. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/tx.js +6 -0
  801. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/transfer.js +6 -0
  802. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/tx.js +6 -0
  803. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/asset_position.js +6 -0
  804. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/perpetual_position.js +6 -0
  805. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/subaccount.js +6 -0
  806. package/js/src/static_dependencies/dydx-v4-client/google/protobuf/any.js +6 -0
  807. package/js/src/static_dependencies/dydx-v4-client/helpers.js +6 -0
  808. package/js/src/static_dependencies/dydx-v4-client/long/index.cjs +6 -0
  809. package/js/src/static_dependencies/dydx-v4-client/onboarding.js +6 -0
  810. package/js/src/static_dependencies/dydx-v4-client/registry.js +6 -0
  811. package/js/src/static_dependencies/ethers/abi-coder.js +6 -0
  812. package/js/src/static_dependencies/ethers/address/address.js +6 -0
  813. package/js/src/static_dependencies/ethers/address/checks.js +6 -0
  814. package/js/src/static_dependencies/ethers/address/contract-address.js +6 -0
  815. package/js/src/static_dependencies/ethers/address/index.js +6 -0
  816. package/js/src/static_dependencies/ethers/bytes32.js +6 -0
  817. package/js/src/static_dependencies/ethers/coders/abstract-coder.js +6 -0
  818. package/js/src/static_dependencies/ethers/coders/address.js +6 -0
  819. package/js/src/static_dependencies/ethers/coders/anonymous.js +6 -0
  820. package/js/src/static_dependencies/ethers/coders/array.js +6 -0
  821. package/js/src/static_dependencies/ethers/coders/boolean.js +6 -0
  822. package/js/src/static_dependencies/ethers/coders/bytes.js +6 -0
  823. package/js/src/static_dependencies/ethers/coders/fixed-bytes.js +6 -0
  824. package/js/src/static_dependencies/ethers/coders/null.js +6 -0
  825. package/js/src/static_dependencies/ethers/coders/number.js +6 -0
  826. package/js/src/static_dependencies/ethers/coders/string.js +6 -0
  827. package/js/src/static_dependencies/ethers/coders/tuple.js +6 -0
  828. package/js/src/static_dependencies/ethers/fragments.js +6 -0
  829. package/js/src/static_dependencies/ethers/hash/index.js +6 -0
  830. package/js/src/static_dependencies/ethers/hash/solidity.js +6 -0
  831. package/js/src/static_dependencies/ethers/hash/typed-data.js +6 -0
  832. package/js/src/static_dependencies/ethers/index.js +6 -0
  833. package/js/src/static_dependencies/ethers/interface.js +6 -0
  834. package/js/src/static_dependencies/ethers/typed.js +6 -0
  835. package/js/src/static_dependencies/ethers/utils/base58.js +6 -0
  836. package/js/src/static_dependencies/ethers/utils/base64-browser.js +6 -0
  837. package/js/src/static_dependencies/ethers/utils/base64.js +6 -0
  838. package/js/src/static_dependencies/ethers/utils/data.js +6 -0
  839. package/js/src/static_dependencies/ethers/utils/errors.js +6 -0
  840. package/js/src/static_dependencies/ethers/utils/events.js +6 -0
  841. package/js/src/static_dependencies/ethers/utils/fixednumber.js +6 -0
  842. package/js/src/static_dependencies/ethers/utils/index.js +6 -0
  843. package/js/src/static_dependencies/ethers/utils/maths.js +6 -0
  844. package/js/src/static_dependencies/ethers/utils/properties.js +6 -0
  845. package/js/src/static_dependencies/ethers/utils/rlp-decode.js +6 -0
  846. package/js/src/static_dependencies/ethers/utils/rlp-encode.js +6 -0
  847. package/js/src/static_dependencies/ethers/utils/rlp.js +6 -0
  848. package/js/src/static_dependencies/ethers/utils/units.js +6 -0
  849. package/js/src/static_dependencies/ethers/utils/utf8.js +6 -0
  850. package/js/src/static_dependencies/ethers/utils/uuid.js +6 -0
  851. package/js/src/static_dependencies/fflake/browser.js +6 -0
  852. package/js/src/static_dependencies/jsencrypt/JSEncrypt.js +6 -0
  853. package/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +6 -0
  854. package/js/src/static_dependencies/jsencrypt/index.js +6 -0
  855. package/js/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +6 -0
  856. package/js/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +6 -0
  857. package/js/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +6 -0
  858. package/js/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +6 -0
  859. package/js/src/static_dependencies/jsencrypt/lib/asn1js/oids.js +6 -0
  860. package/js/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +6 -0
  861. package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +1 -1
  862. package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +6 -0
  863. package/js/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +6 -0
  864. package/js/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +6 -0
  865. package/js/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +6 -0
  866. package/js/src/static_dependencies/jsencrypt/lib/jsbn/util.js +6 -0
  867. package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +6 -0
  868. package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +6 -0
  869. package/js/src/static_dependencies/messagepack/msgpack.js +6 -0
  870. package/js/src/static_dependencies/noble-curves/_shortw_utils.js +6 -0
  871. package/js/src/static_dependencies/noble-curves/abstract/curve.js +6 -0
  872. package/js/src/static_dependencies/noble-curves/abstract/edwards.js +6 -0
  873. package/js/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +6 -0
  874. package/js/src/static_dependencies/noble-curves/abstract/modular.js +6 -0
  875. package/js/src/static_dependencies/noble-curves/abstract/montgomery.js +6 -0
  876. package/js/src/static_dependencies/noble-curves/abstract/poseidon.js +6 -0
  877. package/js/src/static_dependencies/noble-curves/abstract/utils.js +6 -0
  878. package/js/src/static_dependencies/noble-curves/abstract/weierstrass.js +6 -0
  879. package/js/src/static_dependencies/noble-curves/bn.js +6 -0
  880. package/js/src/static_dependencies/noble-curves/ed25519.js +6 -0
  881. package/js/src/static_dependencies/noble-curves/ed448.js +6 -0
  882. package/js/src/static_dependencies/noble-curves/index.js +6 -0
  883. package/js/src/static_dependencies/noble-curves/jubjub.js +6 -0
  884. package/js/src/static_dependencies/noble-curves/p256.js +6 -0
  885. package/js/src/static_dependencies/noble-curves/p384.js +6 -0
  886. package/js/src/static_dependencies/noble-curves/p521.js +6 -0
  887. package/js/src/static_dependencies/noble-curves/pasta.js +6 -0
  888. package/js/src/static_dependencies/noble-curves/secp256k1.js +6 -0
  889. package/js/src/static_dependencies/noble-hashes/_assert.js +6 -0
  890. package/js/src/static_dependencies/noble-hashes/_blake2.js +6 -0
  891. package/js/src/static_dependencies/noble-hashes/_sha2.js +6 -0
  892. package/js/src/static_dependencies/noble-hashes/_u64.js +6 -0
  893. package/js/src/static_dependencies/noble-hashes/argon2.js +6 -0
  894. package/js/src/static_dependencies/noble-hashes/blake2b.js +6 -0
  895. package/js/src/static_dependencies/noble-hashes/blake2s.js +6 -0
  896. package/js/src/static_dependencies/noble-hashes/blake3.js +6 -0
  897. package/js/src/static_dependencies/noble-hashes/crypto.js +6 -0
  898. package/js/src/static_dependencies/noble-hashes/cryptoNode.js +6 -0
  899. package/js/src/static_dependencies/noble-hashes/eskdf.js +6 -0
  900. package/js/src/static_dependencies/noble-hashes/hkdf.js +6 -0
  901. package/js/src/static_dependencies/noble-hashes/hmac.js +6 -0
  902. package/js/src/static_dependencies/noble-hashes/index.js +6 -0
  903. package/js/src/static_dependencies/noble-hashes/md5.js +6 -0
  904. package/js/src/static_dependencies/noble-hashes/pbkdf2.js +6 -0
  905. package/js/src/static_dependencies/noble-hashes/ripemd160.js +6 -0
  906. package/js/src/static_dependencies/noble-hashes/scrypt.js +6 -0
  907. package/js/src/static_dependencies/noble-hashes/sha1.js +6 -0
  908. package/js/src/static_dependencies/noble-hashes/sha256.js +6 -0
  909. package/js/src/static_dependencies/noble-hashes/sha3-addons.js +6 -0
  910. package/js/src/static_dependencies/noble-hashes/sha3.js +6 -0
  911. package/js/src/static_dependencies/noble-hashes/sha512.js +6 -0
  912. package/js/src/static_dependencies/noble-hashes/utils.js +6 -0
  913. package/js/src/static_dependencies/node-fetch/body.js +6 -0
  914. package/js/src/static_dependencies/node-fetch/errors/abort-error.js +6 -0
  915. package/js/src/static_dependencies/node-fetch/errors/base.js +6 -0
  916. package/js/src/static_dependencies/node-fetch/errors/fetch-error.js +6 -0
  917. package/js/src/static_dependencies/node-fetch/headers.js +6 -0
  918. package/js/src/static_dependencies/node-fetch/index.js +6 -0
  919. package/js/src/static_dependencies/node-fetch/request.js +6 -0
  920. package/js/src/static_dependencies/node-fetch/response.js +6 -0
  921. package/js/src/static_dependencies/node-fetch/utils/get-search.js +6 -0
  922. package/js/src/static_dependencies/node-fetch/utils/is-redirect.js +6 -0
  923. package/js/src/static_dependencies/node-fetch/utils/is.js +6 -0
  924. package/js/src/static_dependencies/node-fetch/utils/referrer.js +6 -0
  925. package/js/src/static_dependencies/proxies/agent-base/helpers.js +6 -0
  926. package/js/src/static_dependencies/proxies/agent-base/index.js +6 -0
  927. package/js/src/static_dependencies/proxies/http-proxy-agent/index.js +6 -0
  928. package/js/src/static_dependencies/proxies/https-proxy-agent/index.js +6 -0
  929. package/js/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +6 -0
  930. package/js/src/static_dependencies/qs/formats.js +6 -0
  931. package/js/src/static_dependencies/qs/index.js +6 -0
  932. package/js/src/static_dependencies/qs/parse.js +6 -0
  933. package/js/src/static_dependencies/qs/stringify.js +6 -0
  934. package/js/src/static_dependencies/qs/utils.js +6 -0
  935. package/js/src/static_dependencies/scure-base/index.js +6 -0
  936. package/js/src/static_dependencies/scure-bip32/index.js +6 -0
  937. package/js/src/static_dependencies/scure-bip39/index.js +6 -0
  938. package/js/src/static_dependencies/scure-bip39/wordlists/english.js +6 -0
  939. package/js/src/static_dependencies/scure-starknet/index.js +6 -0
  940. package/js/src/static_dependencies/starknet/constants.js +6 -0
  941. package/js/src/static_dependencies/starknet/index.js +6 -0
  942. package/js/src/static_dependencies/starknet/types/cairoEnum.js +6 -0
  943. package/js/src/static_dependencies/starknet/types/calldata.js +6 -0
  944. package/js/src/static_dependencies/starknet/types/index.js +6 -0
  945. package/js/src/static_dependencies/starknet/types/lib/contract/abi.js +6 -0
  946. package/js/src/static_dependencies/starknet/types/lib/contract/index.js +6 -0
  947. package/js/src/static_dependencies/starknet/types/lib/contract/legacy.js +6 -0
  948. package/js/src/static_dependencies/starknet/types/lib/contract/sierra.js +6 -0
  949. package/js/src/static_dependencies/starknet/types/lib/index.js +6 -0
  950. package/js/src/static_dependencies/starknet/types/typedData.js +6 -0
  951. package/js/src/static_dependencies/starknet/utils/address.js +6 -0
  952. package/js/src/static_dependencies/starknet/utils/assert.js +6 -0
  953. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +6 -0
  954. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +6 -0
  955. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +6 -0
  956. package/js/src/static_dependencies/starknet/utils/calldata/byteArray.js +6 -0
  957. package/js/src/static_dependencies/starknet/utils/calldata/cairo.js +6 -0
  958. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +6 -0
  959. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +6 -0
  960. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +6 -0
  961. package/js/src/static_dependencies/starknet/utils/calldata/enum/index.js +6 -0
  962. package/js/src/static_dependencies/starknet/utils/calldata/formatter.js +6 -0
  963. package/js/src/static_dependencies/starknet/utils/calldata/index.js +6 -0
  964. package/js/src/static_dependencies/starknet/utils/calldata/parser/index.d.ts +1 -1
  965. package/js/src/static_dependencies/starknet/utils/calldata/parser/index.js +6 -0
  966. package/js/src/static_dependencies/starknet/utils/calldata/parser/interface.js +6 -0
  967. package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +6 -0
  968. package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +6 -0
  969. package/js/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +6 -0
  970. package/js/src/static_dependencies/starknet/utils/calldata/requestParser.js +6 -0
  971. package/js/src/static_dependencies/starknet/utils/calldata/responseParser.js +6 -0
  972. package/js/src/static_dependencies/starknet/utils/calldata/tuple.js +6 -0
  973. package/js/src/static_dependencies/starknet/utils/calldata/validate.js +6 -0
  974. package/js/src/static_dependencies/starknet/utils/encode.js +6 -0
  975. package/js/src/static_dependencies/starknet/utils/hash/classHash.js +6 -0
  976. package/js/src/static_dependencies/starknet/utils/hash/index.js +6 -0
  977. package/js/src/static_dependencies/starknet/utils/merkle.js +6 -0
  978. package/js/src/static_dependencies/starknet/utils/num.js +6 -0
  979. package/js/src/static_dependencies/starknet/utils/selector.js +6 -0
  980. package/js/src/static_dependencies/starknet/utils/shortString.js +6 -0
  981. package/js/src/static_dependencies/starknet/utils/starknetId.js +6 -0
  982. package/js/src/static_dependencies/starknet/utils/typedData.js +6 -0
  983. package/js/src/static_dependencies/starknet/utils/uint256.js +6 -0
  984. package/js/src/static_dependencies/starknet/utils/url.js +6 -0
  985. package/js/src/static_dependencies/watchable/src/index.js +6 -0
  986. package/js/src/static_dependencies/watchable/src/types.js +6 -0
  987. package/js/src/static_dependencies/watchable/src/unpromise.js +6 -0
  988. package/js/src/static_dependencies/zklink/zklink-sdk-web.js +6 -0
  989. package/js/src/timex.js +6 -0
  990. package/js/src/tokocrypto.js +6 -0
  991. package/js/src/toobit.js +7 -0
  992. package/js/src/upbit.js +6 -0
  993. package/js/src/wavesexchange.js +6 -0
  994. package/js/src/whitebit.js +6 -0
  995. package/js/src/woo.js +6 -0
  996. package/js/src/woofipro.js +6 -0
  997. package/js/src/xt.js +6 -0
  998. package/js/src/yobit.js +6 -0
  999. package/js/src/zaif.js +6 -0
  1000. package/js/src/zebpay.js +6 -0
  1001. package/js/src/zonda.js +6 -0
  1002. package/package.json +3 -2
@@ -0,0 +1,1322 @@
1
+ // ----------------------------------------------------------------------------
2
+
3
+ // PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
4
+ // https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
5
+ // EDIT THE CORRESPONDENT .ts FILE INSTEAD
6
+
7
+ import Exchange from './abstract/aftermath.js';
8
+ import { TICK_SIZE } from './base/functions/number.js';
9
+ import { eddsa } from './base/functions/crypto.js';
10
+ import { ed25519 } from './static_dependencies/noble-curves/ed25519.js';
11
+ import { ArgumentsRequired, NotSupported, ExchangeError } from './base/errors.js';
12
+ export default class aftermath extends Exchange {
13
+ describe() {
14
+ return this.deepExtend(super.describe(), {
15
+ 'id': 'aftermath',
16
+ 'name': 'AftermathFinance',
17
+ 'countries': [],
18
+ 'version': 'v1',
19
+ 'rateLimit': 50,
20
+ 'certified': false,
21
+ 'pro': true,
22
+ 'dex': true,
23
+ 'has': {
24
+ 'CORS': undefined,
25
+ 'spot': false,
26
+ 'margin': false,
27
+ 'swap': true,
28
+ 'future': false,
29
+ 'option': false,
30
+ 'addMargin': true,
31
+ 'cancelOrder': true,
32
+ 'cancelOrders': true,
33
+ 'createOrder': true,
34
+ 'createOrders': true,
35
+ 'editOrder': false,
36
+ 'fetchAccounts': true,
37
+ 'fetchBalance': true,
38
+ 'fetchCurrencies': true,
39
+ 'fetchDepositAddress': false,
40
+ 'fetchDeposits': false,
41
+ 'fetchLedger': false,
42
+ 'fetchMarkets': true,
43
+ 'fetchMyTrades': false,
44
+ 'fetchOHLCV': true,
45
+ 'fetchOpenOrders': true,
46
+ 'fetchOrder': false,
47
+ 'fetchOrderBook': true,
48
+ 'fetchOrders': false,
49
+ 'fetchPosition': true,
50
+ 'fetchPositions': true,
51
+ 'fetchTicker': true,
52
+ 'fetchTickers': true,
53
+ 'fetchTrades': true,
54
+ 'fetchTradingFee': true,
55
+ 'fetchTradingFees': false,
56
+ 'fetchTradingLimits': false,
57
+ 'fetchTransactions': false,
58
+ 'fetchWithdrawals': false,
59
+ 'reduceMargin': true,
60
+ 'setLeverage': true,
61
+ 'transfer': true,
62
+ 'withdraw': true,
63
+ },
64
+ 'timeframes': {
65
+ '1m': '1m',
66
+ '3m': '3m',
67
+ '5m': '5m',
68
+ '15m': '15m',
69
+ '30m': '30m',
70
+ '1h': '1h',
71
+ '2h': '2h',
72
+ '4h': '4h',
73
+ '8h': '8h',
74
+ '12h': '12h',
75
+ '1d': '1d',
76
+ '3d': '3d',
77
+ '1w': '1w',
78
+ '1M': '1M',
79
+ },
80
+ 'urls': {
81
+ 'logo': 'https://github.com/user-attachments/assets/70e5ae86-2f3a-4755-976b-aedb9d3c2807',
82
+ 'api': {
83
+ 'rest': 'https://aftermath.finance/api/ccxt',
84
+ },
85
+ 'test': {
86
+ 'rest': 'https://testnet.aftermath.finance/api/ccxt',
87
+ },
88
+ 'docs': 'https://docs.aftermath.finance',
89
+ },
90
+ 'api': {
91
+ 'public': {
92
+ 'get': {
93
+ 'markets': 1,
94
+ 'currencies': 1,
95
+ },
96
+ 'post': {
97
+ 'ticker': 1,
98
+ 'orderbook': 1,
99
+ 'trades': 1,
100
+ 'OHLCV': 1,
101
+ },
102
+ },
103
+ 'private': {
104
+ 'post': {
105
+ 'accounts': 1,
106
+ 'balance': 1,
107
+ 'myPendingOrders': 1,
108
+ 'positions': 1,
109
+ 'build/allocate': 1,
110
+ 'build/cancelOrders': 1,
111
+ 'build/createAccount': 1,
112
+ 'build/createOrders': 1,
113
+ 'build/deallocate': 1,
114
+ 'build/deposit': 1,
115
+ 'build/setLeverage': 1,
116
+ 'build/withdraw': 1,
117
+ 'submit/allocate': 1,
118
+ 'submit/cancelOrders': 1,
119
+ 'submit/createAccount': 1,
120
+ 'submit/createOrders': 1,
121
+ 'submit/deallocate': 1,
122
+ 'submit/deposit': 1,
123
+ 'submit/setLeverage': 1,
124
+ 'submit/withdraw': 1,
125
+ },
126
+ },
127
+ },
128
+ 'requiredCredentials': {
129
+ 'apiKey': false,
130
+ 'secret': false,
131
+ 'walletAddress': true,
132
+ 'privateKey': true,
133
+ },
134
+ 'precisionMode': TICK_SIZE,
135
+ 'options': {
136
+ 'defaultType': 'swap',
137
+ 'sandboxMode': false,
138
+ },
139
+ 'exceptions': {
140
+ 'exact': {},
141
+ 'broad': {},
142
+ },
143
+ 'features': {
144
+ 'default': {
145
+ 'sandbox': true,
146
+ 'createOrder': {
147
+ 'timeInForce': {
148
+ 'IOC': true,
149
+ 'FOK': true,
150
+ 'PO': true,
151
+ 'GTD': false,
152
+ },
153
+ 'leverage': false,
154
+ 'marketBuyRequiresPrice': false,
155
+ 'marketBuyByCost': false,
156
+ 'selfTradePrevention': false,
157
+ 'trailing': false,
158
+ 'iceberg': false,
159
+ },
160
+ },
161
+ },
162
+ });
163
+ }
164
+ /**
165
+ * @method
166
+ * @name aftermath#fetchCurrencies
167
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/currencies
168
+ * @description fetches all available currencies on an exchange
169
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
170
+ * @returns {object} an associative dictionary of currencies
171
+ */
172
+ async fetchCurrencies(params = {}) {
173
+ const response = await this.publicGetCurrencies(params);
174
+ const currencies = this.parseCurrencies(response);
175
+ //
176
+ // {
177
+ // "BTC": {
178
+ // "id": "BTC",
179
+ // "code": "BTC",
180
+ // "precision": 1e-9,
181
+ // "name": "BTC",
182
+ // "active": true,
183
+ // "deposit": false,
184
+ // "withdraw": false,
185
+ // "limits": {
186
+ // "amount": {},
187
+ // "withdraw": {}
188
+ // },
189
+ // "networks": {}
190
+ // }
191
+ // }
192
+ //
193
+ return currencies;
194
+ }
195
+ parseCurrency(rawCurrency) {
196
+ return this.safeCurrencyStructure({
197
+ 'id': this.safeString(rawCurrency, 'id'),
198
+ 'code': this.safeString(rawCurrency, 'code'),
199
+ 'name': this.safeString(rawCurrency, 'name'),
200
+ 'active': this.safeBool(rawCurrency, 'active'),
201
+ 'deposit': this.safeBool(rawCurrency, 'deposit'),
202
+ 'withdraw': this.safeBool(rawCurrency, 'withdraw'),
203
+ 'precision': this.safeNumber(rawCurrency, 'precision'),
204
+ 'type': 'crypto',
205
+ 'info': rawCurrency,
206
+ });
207
+ }
208
+ /**
209
+ * @method
210
+ * @name aftermath#fetchMarkets
211
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/markets
212
+ * @description retrieves data on all markets for woo
213
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
214
+ * @returns {object[]} an array of objects representing market data
215
+ */
216
+ async fetchMarkets(params = {}) {
217
+ const response = await this.publicGetMarkets(params);
218
+ //
219
+ // [
220
+ // {
221
+ // "id": "0x49bd40cc7880bd358465116157f0271c25d23361b94eace9a25dc2019b449bfc",
222
+ // "symbol": "BTC/USD:USDC",
223
+ // "base": "BTC",
224
+ // "quote": "USD",
225
+ // "baseId": "BTC",
226
+ // "quoteId": "USD",
227
+ // "active": true,
228
+ // "type": "swap",
229
+ // "spot": false,
230
+ // "margin": false,
231
+ // "swap": true,
232
+ // "future": false,
233
+ // "option": false,
234
+ // "contract": true,
235
+ // "settle": "USDC",
236
+ // "settleId": "0x457049371f5b5dc2bda857bb804ca6e93c5a3cae1636d0cd17bb6b6070d19458::usdc::USDC",
237
+ // "contractSize": 0.00001,
238
+ // "linear": true,
239
+ // "inverse": false,
240
+ // "taker": 0.001,
241
+ // "maker": 0.0,
242
+ // "percentage": true,
243
+ // "tierBased": false,
244
+ // "precision": {
245
+ // "amount": 0.00001,
246
+ // "price": 0.0001
247
+ // },
248
+ // "limits": {
249
+ // "cost": {
250
+ // "min": 1.0
251
+ // },
252
+ // "leverage": {
253
+ // "max": 50.0
254
+ // }
255
+ // },
256
+ // "marginModes": {
257
+ // "isolated": true,
258
+ // "cross": false
259
+ // },
260
+ // "subType": "linear"
261
+ // }
262
+ // ]
263
+ //
264
+ return this.parseMarkets(response);
265
+ }
266
+ parseMarket(market) {
267
+ //
268
+ // {
269
+ // "id": "0x49bd40cc7880bd358465116157f0271c25d23361b94eace9a25dc2019b449bfc",
270
+ // "symbol": "BTC/USD:USDC",
271
+ // "base": "BTC",
272
+ // "quote": "USD",
273
+ // "baseId": "BTC",
274
+ // "quoteId": "USD",
275
+ // "active": true,
276
+ // "type": "swap",
277
+ // "spot": false,
278
+ // "margin": false,
279
+ // "swap": true,
280
+ // "future": false,
281
+ // "option": false,
282
+ // "contract": true,
283
+ // "settle": "USDC",
284
+ // "settleId": "0x457049371f5b5dc2bda857bb804ca6e93c5a3cae1636d0cd17bb6b6070d19458::usdc::USDC",
285
+ // "contractSize": 0.00001,
286
+ // "linear": true,
287
+ // "inverse": false,
288
+ // "taker": 0.001,
289
+ // "maker": 0.0,
290
+ // "percentage": true,
291
+ // "tierBased": false,
292
+ // "precision": {
293
+ // "amount": 0.00001,
294
+ // "price": 0.0001
295
+ // },
296
+ // "limits": {
297
+ // "cost": {
298
+ // "min": 1.0
299
+ // },
300
+ // "leverage": {
301
+ // "max": 50.0
302
+ // }
303
+ // },
304
+ // "marginModes": {
305
+ // "isolated": true,
306
+ // "cross": false
307
+ // },
308
+ // "subType": "linear"
309
+ // }
310
+ //
311
+ const precision = this.safeDict(market, 'precision');
312
+ const limits = this.safeDict(market, 'limits');
313
+ return this.safeMarketStructure({
314
+ 'id': this.safeString(market, 'id'),
315
+ 'symbol': this.safeString(market, 'symbol'),
316
+ 'base': this.safeString(market, 'base'),
317
+ 'quote': this.safeString(market, 'quote'),
318
+ 'settle': this.safeString(market, 'settle'),
319
+ 'baseId': this.safeString(market, 'baseId'),
320
+ 'quoteId': this.safeString(market, 'quoteId'),
321
+ 'settleId': this.safeString(market, 'settleId'),
322
+ 'type': this.safeString(market, 'type'),
323
+ 'subType': this.safeString(market, 'subType'),
324
+ 'spot': this.safeBool(market, 'spot'),
325
+ 'margin': this.safeBool(market, 'margin'),
326
+ 'swap': this.safeBool(market, 'swap'),
327
+ 'future': this.safeBool(market, 'future'),
328
+ 'option': this.safeBool(market, 'option'),
329
+ 'active': this.safeBool(market, 'active'),
330
+ 'contract': this.safeBool(market, 'contract'),
331
+ 'linear': this.safeBool(market, 'linear'),
332
+ 'inverse': this.safeBool(market, 'inverse'),
333
+ 'tierBased': this.safeBool(market, 'tierBased'),
334
+ 'percentage': this.safeBool(market, 'percentage'),
335
+ 'contractSize': this.safeNumber(market, 'contractSize'),
336
+ 'expiry': undefined,
337
+ 'expiryDatetime': undefined,
338
+ 'strike': undefined,
339
+ 'optionType': undefined,
340
+ 'taker': this.safeNumber(market, 'taker'),
341
+ 'maker': this.safeNumber(market, 'maker'),
342
+ 'precision': {
343
+ 'amount': this.safeNumber(precision, 'amount'),
344
+ 'price': this.safeNumber(precision, 'price'),
345
+ },
346
+ 'limits': {
347
+ 'leverage': {
348
+ 'min': undefined,
349
+ 'max': this.safeNumber(limits['leverage'], 'max'),
350
+ },
351
+ 'amount': {
352
+ 'min': undefined,
353
+ 'max': undefined,
354
+ },
355
+ 'price': {
356
+ 'min': undefined,
357
+ 'max': undefined,
358
+ },
359
+ 'cost': {
360
+ 'min': this.safeNumber(limits['cost'], 'min'),
361
+ 'max': undefined,
362
+ },
363
+ },
364
+ 'marginModes': this.safeDict(market, 'marginModes'),
365
+ 'created': undefined,
366
+ 'info': market,
367
+ });
368
+ }
369
+ /**
370
+ * @method
371
+ * @name aftermath#fetchTradingFee
372
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/markets
373
+ * @description fetch the trading fees for a market
374
+ * @param {string} symbol unified market symbol
375
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
376
+ * @returns {object} a [fee structure]{@link https://docs.ccxt.com/#/?id=fee-structure}
377
+ */
378
+ async fetchTradingFee(symbol, params = {}) {
379
+ await this.loadMarkets();
380
+ const market = this.market(symbol);
381
+ return this.parseTradingFee(market);
382
+ }
383
+ parseTradingFee(market = undefined) {
384
+ const symbol = this.safeString(market, 'symbol');
385
+ return {
386
+ 'info': market,
387
+ 'symbol': symbol,
388
+ 'maker': this.safeNumber(market, 'maker'),
389
+ 'taker': this.safeNumber(market, 'taker'),
390
+ 'percentage': true,
391
+ 'tierBased': undefined,
392
+ };
393
+ }
394
+ /**
395
+ * @method
396
+ * @name aftermath#fetchTicker
397
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/ticker
398
+ * @description fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
399
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
400
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
401
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
402
+ */
403
+ async fetchTicker(symbol, params = {}) {
404
+ await this.loadMarkets();
405
+ const market = this.market(symbol);
406
+ const request = {
407
+ 'chId': market['id'],
408
+ };
409
+ const response = await this.publicPostTicker(this.extend(request, params));
410
+ //
411
+ // {
412
+ // "ask": 0.1,
413
+ // "askVolume": 0.1,
414
+ // "average": 0.1,
415
+ // "baseVolume": 0.1,
416
+ // "bid": 0.1,
417
+ // "bidVolume": 0.1,
418
+ // "change": 0.1,
419
+ // "close": 0.1,
420
+ // "high": 0.1,
421
+ // "indexPrice": 0.1,
422
+ // "last": 0.1,
423
+ // "low": 0.1,
424
+ // "markPrice": 0.1,
425
+ // "open": 0.1,
426
+ // "percentage": 0.1,
427
+ // "previousClose": 0.1,
428
+ // "quoteVolume": 0.1,
429
+ // "symbol": "string",
430
+ // "timestamp": null,
431
+ // "vwap": 0.1
432
+ // }
433
+ //
434
+ return this.parseTicker(response, market);
435
+ }
436
+ parseTicker(ticker, market = undefined) {
437
+ const timestamp = this.safeInteger(ticker, 'timestamp');
438
+ return this.safeTicker({
439
+ 'symbol': this.safeString(ticker, 'symbol'),
440
+ 'timestamp': timestamp,
441
+ 'datetime': this.iso8601(timestamp),
442
+ 'high': this.safeString(ticker, 'high'),
443
+ 'low': this.safeString(ticker, 'low'),
444
+ 'bid': this.safeString(ticker, 'bid'),
445
+ 'bidVolume': this.safeString(ticker, 'bidVolume'),
446
+ 'ask': this.safeString(ticker, 'ask'),
447
+ 'askVolume': this.safeString(ticker, 'askVolume'),
448
+ 'vwap': this.safeString(ticker, 'vwap'),
449
+ 'open': this.safeString(ticker, 'open'),
450
+ 'close': undefined,
451
+ 'last': undefined,
452
+ 'previousClose': undefined,
453
+ 'change': this.safeString(ticker, 'change'),
454
+ 'percentage': undefined,
455
+ 'average': undefined,
456
+ 'baseVolume': this.safeString(ticker, 'baseVolume'),
457
+ 'quoteVolume': this.safeString(ticker, 'quoteVolume'),
458
+ 'markPrice': undefined,
459
+ 'indexPrice': this.safeString(ticker, 'indexPrice'),
460
+ 'info': ticker,
461
+ }, market);
462
+ }
463
+ /**
464
+ * @method
465
+ * @name aftermath#fetchOrderBook
466
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/orderbook
467
+ * @description fetches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
468
+ * @param {string} symbol unified symbol of the market to fetch the order book for
469
+ * @param {int} [limit] the maximum amount of order book entries to return
470
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
471
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
472
+ */
473
+ async fetchOrderBook(symbol, limit = undefined, params = {}) {
474
+ await this.loadMarkets();
475
+ const market = this.market(symbol);
476
+ const chId = this.safeString(market, 'id');
477
+ const request = {
478
+ 'chId': chId,
479
+ };
480
+ const response = await this.publicPostOrderbook(this.extend(request, params));
481
+ //
482
+ // {
483
+ // "asks":[
484
+ // [76228.1534,11.58777]
485
+ // ],
486
+ // "bids":[
487
+ // [76213.4842,11.96145],
488
+ // ],
489
+ // "datetime":"2025-04-07 09:29:28.213 UTC",
490
+ // "timestamp":1744018168213,
491
+ // "symbol":"BTC/USD:USDC"
492
+ // }
493
+ //
494
+ const timestamp = this.safeInteger(response, 'timestamp');
495
+ const orderbook = this.parseOrderBook(response, symbol, timestamp);
496
+ orderbook['nonce'] = this.safeInteger(response, 'nonce');
497
+ return orderbook;
498
+ }
499
+ /**
500
+ * @method
501
+ * @name aftermath#fetchTrades
502
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/trades
503
+ * @description get the list of most recent trades for a particular symbol
504
+ * @param {string} symbol unified symbol of the market to fetch trades for
505
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
506
+ * @param {int} [limit] the maximum amount of trades to fetch
507
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
508
+ * @param {int} [params.until] the latest time in ms to fetch trades for
509
+ * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
510
+ */
511
+ async fetchTrades(symbol, since = undefined, limit = undefined, params = {}) {
512
+ await this.loadMarkets();
513
+ const market = this.market(symbol);
514
+ const chId = this.safeString(market, 'id');
515
+ const request = {
516
+ 'chId': chId,
517
+ };
518
+ if (limit !== undefined) {
519
+ request['limit'] = Math.min(limit, 50);
520
+ }
521
+ const response = await this.publicPostTrades(this.extend(request, params));
522
+ //
523
+ // {
524
+ // "trades": [
525
+ // {
526
+ // "amount": 0.03378,
527
+ // "datetime": "2025-12-29 22:43:54.639 UTC",
528
+ // "price": 87239.09499000001,
529
+ // "timestamp": 1767048234639,
530
+ // "side": "buy",
531
+ // "symbol": "BTC/USD:USDC"
532
+ // }
533
+ // ],
534
+ // "nextCursor": 573
535
+ // }
536
+ //
537
+ const data = this.safeList(response, 'trades', []);
538
+ return this.parseTrades(data, market, since, limit);
539
+ }
540
+ parseTrade(rawTrade, market = undefined) {
541
+ const trade = this.safeTrade(this.extend({ 'info': rawTrade }, rawTrade));
542
+ trade['id'] = '';
543
+ trade['order'] = undefined;
544
+ trade['takerOrMaker'] = undefined;
545
+ trade['timestamp'] = this.safeInteger(rawTrade, 'timestamp');
546
+ return trade;
547
+ }
548
+ /**
549
+ * @method
550
+ * @name aftermath#fetchOHLCV
551
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/ohlcv
552
+ * @description fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
553
+ * @param {string} symbol unified symbol of the market to fetch OHLCV data for
554
+ * @param {string} timeframe the length of time each candle represents
555
+ * @param {int} [since] timestamp in ms of the earliest candle to fetch
556
+ * @param {int} [limit] max=1000, max=100 when since is defined and is less than (now - (999 * (timeframe in ms)))
557
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
558
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
559
+ */
560
+ async fetchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
561
+ await this.loadMarkets();
562
+ const market = this.market(symbol);
563
+ const chId = this.safeString(market, 'id');
564
+ const request = {
565
+ 'chId': chId,
566
+ 'timeframe': timeframe,
567
+ };
568
+ if (since !== undefined) {
569
+ request['since'] = since;
570
+ }
571
+ if (limit !== undefined) {
572
+ request['limit'] = limit;
573
+ }
574
+ const response = await this.publicPostOHLCV(this.extend(request, params));
575
+ //
576
+ // [
577
+ // [
578
+ // 1743932340000,
579
+ // 83093.5445,
580
+ // 83093.5445,
581
+ // 83093.5445,
582
+ // 83093.5445,
583
+ // 0.0
584
+ // ]
585
+ // ]
586
+ //
587
+ return this.parseOHLCVs(response, market, timeframe, since, limit);
588
+ }
589
+ /**
590
+ * @method
591
+ * @name aftermath#fetchBalance
592
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/balance
593
+ * @description query for balance and get the amount of funds available for trading or funds locked in positions
594
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
595
+ * @param {string} [params.account] account object ID, required
596
+ * @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
597
+ */
598
+ async fetchBalance(params = {}) {
599
+ let account = undefined;
600
+ [account, params] = this.handleOptionAndParams(params, 'fetchBalance', 'account');
601
+ const request = {
602
+ 'account': account,
603
+ };
604
+ if (account === undefined) {
605
+ throw new ArgumentsRequired(this.id + ' fetchBalance() requires account');
606
+ }
607
+ const response = await this.privatePostBalance(this.extend(request, params));
608
+ //
609
+ // {
610
+ // "timestamp": 1744045700352,
611
+ // "balances": {
612
+ // "USDC": {
613
+ // "free": 7.726913939320065,
614
+ // "used": 22.273086060679937,
615
+ // "total": 30.0
616
+ // }
617
+ // }
618
+ // }
619
+ //
620
+ return this.parseBalance(response);
621
+ }
622
+ parseBalance(response) {
623
+ const result = {
624
+ 'info': response,
625
+ };
626
+ const balances = this.safeDict(response, 'balances', []);
627
+ const currencies = Object.keys(balances);
628
+ for (let i = 0; i < currencies.length; i++) {
629
+ const code = currencies[i];
630
+ const balance = balances[code];
631
+ const account = this.account();
632
+ account['free'] = this.safeString(balance, 'free');
633
+ account['used'] = this.safeString(balance, 'used');
634
+ account['total'] = this.safeString(balance, 'total');
635
+ result[code] = account;
636
+ }
637
+ const timestamp = this.safeInteger(response, 'timestamp');
638
+ result['timestamp'] = timestamp;
639
+ result['datetime'] = this.iso8601(timestamp);
640
+ return this.safeBalance(result);
641
+ }
642
+ /**
643
+ * @method
644
+ * @name aftermath#fetchAccounts
645
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/accounts
646
+ * @description query for accounts owned by the walletAddress. An Account is needed for all trading methods.
647
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
648
+ * @returns {Array} a list of [account structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#accounts}
649
+ */
650
+ async fetchAccounts(params = {}) {
651
+ await this.loadMarkets();
652
+ const request = {
653
+ 'address': this.walletAddress,
654
+ };
655
+ const response = await this.privatePostAccounts(this.extend(request, params));
656
+ //
657
+ // [
658
+ // {
659
+ // "id": "0x21c5e3d2f5bcfd4351a62cd70874878b7923b56d79d04225ed96370a7ac844c4",
660
+ // "type": "primary",
661
+ // "code": "USDC",
662
+ // "accountNumber": 14822
663
+ // }
664
+ // ]
665
+ //
666
+ return this.parseAccounts(response);
667
+ }
668
+ parseAccount(account) {
669
+ return {
670
+ 'id': this.safeString(account, 'id'),
671
+ 'type': this.safeString(account, 'type'),
672
+ 'code': this.safeString(account, 'code'),
673
+ 'info': account,
674
+ };
675
+ }
676
+ /**
677
+ * @method
678
+ * @name aftermath#fetchOpenOrders
679
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/my_pending_orders
680
+ * @description fetch all unfilled currently open orders
681
+ * @param {string} symbol unified market symbol
682
+ * @param {int} [since] the earliest time in ms to fetch open orders for
683
+ * @param {int} [limit] the maximum number of open orders structures to retrieve
684
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
685
+ * @param {int} [params.accountNumber] account number to query orders for, required
686
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
687
+ */
688
+ async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
689
+ await this.loadMarkets();
690
+ const market = this.market(symbol);
691
+ let accountNumber = undefined;
692
+ [accountNumber, params] = this.handleOptionAndParams(params, 'fetchOpenOrders', 'accountNumber');
693
+ if (accountNumber === undefined) {
694
+ throw new ArgumentsRequired(this.id + ' fetchOpenOrders() requires an accountNumber parameter in params');
695
+ }
696
+ const request = {
697
+ 'chId': this.safeString(market, 'id'),
698
+ 'accountNumber': accountNumber,
699
+ };
700
+ const response = await this.privatePostMyPendingOrders(this.extend(request, params));
701
+ //
702
+ // [
703
+ // {
704
+ // "id": "340282366919093789037556908196463492660",
705
+ // "datetime": "2025-04-07 14:10:49.472 UTC",
706
+ // "timestamp": 1744035049472,
707
+ // "status": "open",
708
+ // "symbol": "BTC/USD:USDC",
709
+ // "type": "limit",
710
+ // "side": "buy",
711
+ // "price": 10000.0,
712
+ // "amount": 0.0001,
713
+ // "filled": 0.0,
714
+ // "remaining": 0.0001,
715
+ // "cost": 0.0,
716
+ // "trades": [],
717
+ // "fee": {}
718
+ // }
719
+ // ]
720
+ //
721
+ return this.parseOrders(response);
722
+ }
723
+ /**
724
+ * @method
725
+ * @name aftermath#fetchPosition
726
+ * @description fetch data on an open position
727
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/positions
728
+ * @param {string} symbol unified market symbol of the market the position is held in
729
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
730
+ * @param {int} [params.accountNumber] account number to query positions for, required
731
+ * @returns {object} a [position structure]{@link https://docs.ccxt.com/#/?id=position-structure}
732
+ */
733
+ async fetchPosition(symbol, params = {}) {
734
+ const positions = await this.fetchPositions([symbol], params);
735
+ return this.safeDict(positions, 0, {});
736
+ }
737
+ /**
738
+ * @method
739
+ * @name aftermath#fetchPositions
740
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/positions
741
+ * @description fetch all open positions
742
+ * @param {string[]} symbols list of unified market symbols
743
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
744
+ * @param {int} [params.accountNumber] account number to query positions for, required
745
+ * @returns {object[]} a list of [position structure]{@link https://docs.ccxt.com/#/?id=position-structure}
746
+ */
747
+ async fetchPositions(symbols = undefined, params = {}) {
748
+ await this.loadMarkets();
749
+ let accountNumber = undefined;
750
+ [accountNumber, params] = this.handleOptionAndParams(params, 'fetchPositions', 'accountNumber');
751
+ if (accountNumber === undefined) {
752
+ throw new ArgumentsRequired(this.id + ' fetchPositions() requires an accountNumber parameter in params');
753
+ }
754
+ const request = {
755
+ 'accountNumber': accountNumber,
756
+ };
757
+ const response = await this.privatePostPositions(this.extend(request, params));
758
+ //
759
+ // [
760
+ // {
761
+ // "id": "0xb60c5078b060e4aede8e670089c9b1bc6eb231b4bcc0bfb3e97534770ace4d0c:101",
762
+ // "symbol": "BTC/USD",
763
+ // "timestamp": 1744360128358,
764
+ // "datetime": "2025-04-11 08:28:48.358 UTC",
765
+ // "side": "long",
766
+ // "contracts": 0.001,
767
+ // "contractSize": 81299.8225,
768
+ // "entryPrice": 0.000012292609480106,
769
+ // "notional": 81.30326975863777,
770
+ // "leverage": 2.091737393826,
771
+ // "collateral": 38.918646841955464,
772
+ // "initialMargin": 2.0325817439659444,
773
+ // "maintenanceMargin": 1.0162908719829722,
774
+ // "initialMarginPercentage": 0.025,
775
+ // "maintenanceMarginPercentage": 0.0125,
776
+ // "unrealizedPnl": -0.0498699,
777
+ // "liquidationPrice": 42969.81843916013,
778
+ // "marginMode": "isolated",
779
+ // "marginRatio": 0.4780714839977587
780
+ // }
781
+ // ]
782
+ //
783
+ return this.parsePositions(response, symbols);
784
+ }
785
+ parsePosition(position, market = undefined) {
786
+ return this.safePosition(position);
787
+ }
788
+ parseCreateEditOrderArgs(id, symbol, type, side, amount, price = undefined, params = {}) {
789
+ const market = this.market(symbol);
790
+ symbol = market['symbol'];
791
+ const order = {
792
+ 'symbol': symbol,
793
+ 'type': type,
794
+ 'side': side,
795
+ 'amount': amount,
796
+ 'price': price,
797
+ 'params': params,
798
+ };
799
+ if (id !== undefined) {
800
+ order['id'] = id;
801
+ }
802
+ return order;
803
+ }
804
+ /**
805
+ * @method
806
+ * @name aftermath#createOrder
807
+ * @description create a trade order
808
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/build_create_orders
809
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/submit_create_orders
810
+ * @param {string} symbol unified symbol of the market to create an order in
811
+ * @param {string} type 'market' or 'limit'
812
+ * @param {string} side 'buy' or 'sell'
813
+ * @param {float} amount how much of currency you want to trade in units of base currency
814
+ * @param {float} [price] the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
815
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
816
+ * @param {bool} [params.reduceOnly] true or false whether the order is reduce-only
817
+ * @param {Account} [params.account] account id to use, required
818
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
819
+ */
820
+ async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
821
+ await this.loadMarkets();
822
+ let account = undefined;
823
+ [account, params] = this.handleOptionAndParams(params, 'createOrder', 'account');
824
+ const order = this.parseCreateEditOrderArgs(undefined, symbol, type, side, amount, price, params);
825
+ const orders = await this.createOrders([order], { 'account': account });
826
+ return orders[0];
827
+ }
828
+ /**
829
+ * @method
830
+ * @name aftermath#createOrders
831
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/build_create_orders
832
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/submit_create_orders
833
+ * @description create a list of trade orders
834
+ * @param {Array} orders list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
835
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
836
+ * @param {Account} [params.account] account id to use, required
837
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
838
+ */
839
+ async createOrders(orders, params = {}) {
840
+ await this.loadMarkets();
841
+ const ordersRequest = [];
842
+ for (let i = 0; i < orders.length; i++) {
843
+ const order = this.clone(orders[i]);
844
+ const symbol = this.safeString(order, 'symbol');
845
+ const market = this.market(symbol);
846
+ const price = this.safeString(order, 'price');
847
+ const amount = this.safeString(order, 'amount');
848
+ const orderParams = this.safeDict(order, 'params', {});
849
+ const reduceOnly = this.safeBool(orderParams, 'reduceOnly');
850
+ if (reduceOnly !== undefined) {
851
+ order['reduceOnly'] = reduceOnly;
852
+ }
853
+ delete order['symbol'];
854
+ delete order['params'];
855
+ order['chId'] = market['id'];
856
+ if (price !== undefined) {
857
+ order['price'] = this.parseToNumeric(this.priceToPrecision(symbol, price));
858
+ }
859
+ order['amount'] = this.parseToNumeric(this.amountToPrecision(symbol, amount));
860
+ ordersRequest.push(order);
861
+ }
862
+ let account = undefined;
863
+ [account, params] = this.handleOptionAndParams(params, 'createOrders', 'account');
864
+ const txRequest = {
865
+ 'accountId': account,
866
+ 'metadata': {
867
+ 'sender': this.walletAddress,
868
+ },
869
+ 'orders': ordersRequest,
870
+ 'deallocateFreeCollateral': false,
871
+ };
872
+ const tx = await this.privatePostBuildCreateOrders(this.extend(txRequest, params));
873
+ const request = this.signTxEd25519(tx);
874
+ const response = await this.privatePostSubmitCreateOrders(request);
875
+ //
876
+ // [
877
+ // {
878
+ // "id": "340282366919093604570116171100942992979",
879
+ // "datetime": "2025-04-10 10:38:39.323 UTC",
880
+ // "timestamp": 1744281519323,
881
+ // "status": "open",
882
+ // "symbol": "BTC/USD:USDC",
883
+ // "type": "limit",
884
+ // "side": "buy",
885
+ // "price": 10001.0,
886
+ // "average": 0.0,
887
+ // "amount": 0.01,
888
+ // "filled": 0.0,
889
+ // "remaining": 0.01,
890
+ // "cost": 0.0,
891
+ // "trades": [],
892
+ // "fee": {}
893
+ // }
894
+ // ]
895
+ //
896
+ return this.parseOrders(response);
897
+ }
898
+ /**
899
+ * @method
900
+ * @name aftermath#cancelOrder
901
+ * @description cancels an open order
902
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/build_cancel_orders
903
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/submit_cancel_orders
904
+ * @param {string} id order id
905
+ * @param {string} symbol unified symbol of the market the order was made in
906
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
907
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
908
+ */
909
+ async cancelOrder(id, symbol = undefined, params = {}) {
910
+ const orders = await this.cancelOrders([id], symbol, params);
911
+ return this.safeDict(orders, 0);
912
+ }
913
+ /**
914
+ * @method
915
+ * @name aftermath#cancelOrders
916
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/build_cancel_orders
917
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/submit_cancel_orders
918
+ * @description cancel multiple orders
919
+ * @param {string[]} ids order ids
920
+ * @param {string} [symbol] unified market symbol
921
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
922
+ * @param {Account} [params.account] account to cancel orders for, required
923
+ * @returns {Order[]} an list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
924
+ */
925
+ async cancelOrders(ids, symbol = undefined, params = {}) {
926
+ await this.loadMarkets();
927
+ const market = this.market(symbol);
928
+ let account = undefined;
929
+ [account, params] = this.handleOptionAndParams(params, 'cancelOrders', 'account');
930
+ const txRequest = {
931
+ 'accountId': account,
932
+ 'metadata': {
933
+ 'sender': this.walletAddress,
934
+ },
935
+ 'chId': market['id'],
936
+ 'orderIds': ids,
937
+ };
938
+ const tx = await this.privatePostBuildCancelOrders(txRequest);
939
+ const request = this.signTxEd25519(tx);
940
+ const response = await this.privatePostSubmitCancelOrders(request);
941
+ //
942
+ // [
943
+ // {
944
+ // "id": "340282366919093604570116171100942992979",
945
+ // "datetime": "2025-04-10 10:45:16.765 UTC",
946
+ // "timestamp": 1744281916765,
947
+ // "status": "closed",
948
+ // "symbol": "BTC/USD:USDC",
949
+ // "type": "limit",
950
+ // "side": "buy",
951
+ // "price": 10001.0,
952
+ // "amount": 0.01,
953
+ // "filled": 0.0,
954
+ // "remaining": 0.0,
955
+ // "cost": 0.0,
956
+ // "trades": [],
957
+ // "fee": {}
958
+ // }
959
+ // ]
960
+ //
961
+ return this.parseOrders(response);
962
+ }
963
+ async createAccount(symbol, params = {}) {
964
+ await this.loadMarkets();
965
+ const market = this.market(symbol);
966
+ const settleId = market['settleId'];
967
+ const txRequest = {
968
+ 'metadata': {
969
+ 'sender': this.walletAddress,
970
+ },
971
+ 'settleId': settleId,
972
+ };
973
+ const tx = await this.privatePostBuildCreateAccount(txRequest);
974
+ const request = this.signTxEd25519(tx);
975
+ const response = await this.privatePostSubmitCreateAccount(request);
976
+ //
977
+ // [
978
+ // {
979
+ // "id": "0x2238b380cdf548cf9922a76ad8cf41cd886a04c1a68e7d0f99100b84b0b1ee48",
980
+ // "type": "primary",
981
+ // "code": "USDC",
982
+ // "accountNumber": 357
983
+ // },
984
+ // {
985
+ // "id": "0x6048be1c533a25226e2b505f5c7b8c4d731c87e9fb775dc577052c66febf1c93",
986
+ // "type": "subaccount",
987
+ // "code": "USDC",
988
+ // "accountNumber": 357
989
+ // }
990
+ // ]
991
+ //
992
+ return response;
993
+ }
994
+ /**
995
+ * @method
996
+ * @name aftermath#addMargin
997
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/build_allocate
998
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/submit_allocate
999
+ * @description add margin
1000
+ * @param {string} symbol unified market symbol
1001
+ * @param {float} amount amount of margin to add
1002
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1003
+ * @param {Account} [params.account] account id to use, required
1004
+ * @returns {object} a [margin structure]{@link https://docs.ccxt.com/#/?id=add-margin-structure}
1005
+ */
1006
+ async addMargin(symbol, amount, params = {}) {
1007
+ await this.loadMarkets();
1008
+ const market = this.market(symbol);
1009
+ let account = undefined;
1010
+ [account, params] = this.handleOptionAndParams2(params, 'addMargin', 'account', 'accountId');
1011
+ const txRequest = {
1012
+ 'accountId': account,
1013
+ 'chId': market['id'],
1014
+ 'amount': this.parseToNumeric(this.amountToPrecision(symbol, amount)),
1015
+ 'metadata': {
1016
+ 'sender': this.walletAddress,
1017
+ },
1018
+ };
1019
+ const tx = await this.privatePostBuildAllocate(txRequest);
1020
+ const request = this.signTxEd25519(tx);
1021
+ const response = await this.privatePostSubmitAllocate(request);
1022
+ //
1023
+ // {
1024
+ // "id": "0xb60c5078b060e4aede8e670089c9b1bc6eb231b4bcc0bfb3e97534770ace4d0c:101",
1025
+ // "symbol": "BTC/USD",
1026
+ // "contracts": 0.0,
1027
+ // "contractSize": 81656.98359916,
1028
+ // "notional": 0.0,
1029
+ // "leverage": 0.0,
1030
+ // "collateral": 40.0,
1031
+ // "initialMargin": 0.0,
1032
+ // "maintenanceMargin": 0.0,
1033
+ // "initialMarginPercentage": 0.025,
1034
+ // "maintenanceMarginPercentage": 0.0125,
1035
+ // "unrealizedPnl": 0.0,
1036
+ // "marginMode": "isolated"
1037
+ // }
1038
+ //
1039
+ return response;
1040
+ }
1041
+ /**
1042
+ * @method
1043
+ * @name aftermath#reduceMargin
1044
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/build_deallocate
1045
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/submit_deallocate
1046
+ * @description remove margin from a position
1047
+ * @param {string} symbol unified market symbol
1048
+ * @param {float} amount amount of margin to remove
1049
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1050
+ * @param {Account} [params.account] account id to use, required
1051
+ * @returns {object} a [margin structure]{@link https://docs.ccxt.com/#/?id=reduce-margin-structure}
1052
+ */
1053
+ async reduceMargin(symbol, amount, params = {}) {
1054
+ await this.loadMarkets();
1055
+ const market = this.market(symbol);
1056
+ let account = undefined;
1057
+ [account, params] = this.handleOptionAndParams2(params, 'reduceMargin', 'account', 'accountId');
1058
+ const txRequest = {
1059
+ 'accountId': account,
1060
+ 'chId': market['id'],
1061
+ 'amount': this.parseToNumeric(this.amountToPrecision(symbol, amount)),
1062
+ 'metadata': {
1063
+ 'sender': this.walletAddress,
1064
+ },
1065
+ };
1066
+ const tx = await this.privatePostBuildDeallocate(txRequest);
1067
+ const request = this.signTxEd25519(tx);
1068
+ const response = await this.privatePostSubmitDeallocate(request);
1069
+ //
1070
+ // {
1071
+ // "id": "0xb60c5078b060e4aede8e670089c9b1bc6eb231b4bcc0bfb3e97534770ace4d0c:101",
1072
+ // "symbol": "BTC/USD",
1073
+ // "contracts": 0.0,
1074
+ // "contractSize": 81678.2625,
1075
+ // "notional": 0.0,
1076
+ // "leverage": 0.0,
1077
+ // "collateral": 39.0,
1078
+ // "initialMargin": 0.0,
1079
+ // "maintenanceMargin": 0.0,
1080
+ // "initialMarginPercentage": 0.025,
1081
+ // "maintenanceMarginPercentage": 0.0125,
1082
+ // "unrealizedPnl": 0.0,
1083
+ // "marginMode": "isolated"
1084
+ // }
1085
+ //
1086
+ return response;
1087
+ }
1088
+ /**
1089
+ * @method
1090
+ * @name aftermath#transfer
1091
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/build_deposit
1092
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/submit_deposit
1093
+ * @description transfer currency internally between wallets on the same account
1094
+ * @param {string} code unified currency code
1095
+ * @param {float} amount amount to transfer
1096
+ * @param {string} fromAccount account to transfer from
1097
+ * @param {string} toAccount account to transfer to
1098
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1099
+ * @returns {object} a [transfer structure]{@link https://docs.ccxt.com/#/?id=transfer-structure}
1100
+ */
1101
+ async transfer(code, amount, fromAccount, toAccount, params = {}) {
1102
+ await this.loadMarkets();
1103
+ const currency = this.currency(code);
1104
+ const txRequest = {
1105
+ 'metadata': {
1106
+ 'sender': this.walletAddress,
1107
+ },
1108
+ 'accountId': toAccount,
1109
+ 'amount': amount,
1110
+ };
1111
+ const tx = await this.privatePostBuildDeposit(txRequest);
1112
+ const request = this.signTxEd25519(tx);
1113
+ const response = await this.privatePostSubmitDeposit(request);
1114
+ //
1115
+ // {
1116
+ // "id": "0xf93f9bb8bf97eb570410caada92cfa3e66c7ed3a203a164f51d22d41eabe09c0",
1117
+ // "type": "subaccount",
1118
+ // "code": "USDC",
1119
+ // "accountNumber": 101,
1120
+ // "collateral": 1.0
1121
+ // }
1122
+ //
1123
+ return this.extend(this.parseTransfer(response, currency), {
1124
+ 'fromAccount': this.walletAddress,
1125
+ 'toAccount': toAccount,
1126
+ 'amount': amount,
1127
+ });
1128
+ }
1129
+ parseTransfer(transfer, currency = undefined) {
1130
+ const currencyId = this.safeString(transfer, 'code');
1131
+ return {
1132
+ 'info': transfer,
1133
+ 'id': this.safeString(transfer, 'id'),
1134
+ 'timestamp': undefined,
1135
+ 'datetime': undefined,
1136
+ 'currency': this.safeCurrencyCode(currencyId, currency),
1137
+ 'amount': undefined,
1138
+ 'fromAccount': undefined,
1139
+ 'toAccount': undefined,
1140
+ 'status': undefined,
1141
+ };
1142
+ }
1143
+ /**
1144
+ * @method
1145
+ * @name aftermath#withdraw
1146
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/build_withdraw
1147
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/submit_withdraw
1148
+ * @description make a withdrawal
1149
+ * @param {string} code unified currency code
1150
+ * @param {float} amount the amount to withdraw
1151
+ * @param {string} address the address to withdraw to
1152
+ * @param {string} tag
1153
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1154
+ * @param {Account} [params.account] account id to use, required
1155
+ * @returns {object} a [transaction structure]{@link https://docs.ccxt.com/#/?id=transaction-structure}
1156
+ */
1157
+ async withdraw(code, amount, address, tag = undefined, params = {}) {
1158
+ await this.loadMarkets();
1159
+ const currency = this.currency(code);
1160
+ let account = undefined;
1161
+ [account, params] = this.handleOptionAndParams(params, 'withdraw', 'account');
1162
+ if (account === undefined) {
1163
+ throw new ArgumentsRequired(this.id + ' withdraw() requires a account parameter in params');
1164
+ }
1165
+ const txRequest = {
1166
+ 'accountId': account,
1167
+ 'metadata': {
1168
+ 'sender': this.walletAddress,
1169
+ },
1170
+ 'amount': amount,
1171
+ };
1172
+ const tx = await this.privatePostBuildWithdraw(txRequest);
1173
+ const request = this.signTxEd25519(tx);
1174
+ const response = await this.privatePostSubmitWithdraw(request);
1175
+ //
1176
+ // {
1177
+ // "id": "0xf93f9bb8bf97eb570410caada92cfa3e66c7ed3a203a164f51d22d41eabe09c0",
1178
+ // "type": "subaccount",
1179
+ // "code": "USDC",
1180
+ // "accountNumber": 101,
1181
+ // "collateral": 39.0
1182
+ // }
1183
+ //
1184
+ return this.extend(this.parseTransaction(response, currency), {
1185
+ 'addressFrom': account,
1186
+ 'amount': amount,
1187
+ });
1188
+ }
1189
+ parseTransaction(transaction, currency = undefined) {
1190
+ return {
1191
+ 'info': transaction,
1192
+ 'id': this.safeString(transaction, 'id'),
1193
+ 'txid': this.safeString(transaction, 'tx_id'),
1194
+ 'timestamp': undefined,
1195
+ 'datetime': undefined,
1196
+ 'address': undefined,
1197
+ 'addressFrom': undefined,
1198
+ 'addressTo': undefined,
1199
+ 'tag': undefined,
1200
+ 'tagFrom': undefined,
1201
+ 'tagTo': undefined,
1202
+ 'type': undefined,
1203
+ 'amount': undefined,
1204
+ 'currency': this.safeString(transaction, 'code'),
1205
+ 'status': undefined,
1206
+ 'updated': undefined,
1207
+ 'comment': undefined,
1208
+ 'internal': undefined,
1209
+ 'fee': undefined,
1210
+ 'network': undefined,
1211
+ };
1212
+ }
1213
+ /**
1214
+ * @method
1215
+ * @name aftermath#setLeverage
1216
+ * @description set the level of leverage for a market
1217
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/build_set_leverage
1218
+ * @see https://testnet.aftermath.finance/docs/#/CCXT/submit_set_leverage
1219
+ * @param {float} leverage the rate of leverage
1220
+ * @param {string} symbol unified market symbol
1221
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1222
+ * @param {Account} [params.account] account id to use, required
1223
+ * @returns {object} response from the exchange
1224
+ */
1225
+ async setLeverage(leverage, symbol = undefined, params = {}) {
1226
+ if (symbol === undefined) {
1227
+ throw new ArgumentsRequired(this.id + ' setLeverage() requires a symbol argument');
1228
+ }
1229
+ await this.loadMarkets();
1230
+ const market = this.market(symbol);
1231
+ let account = undefined;
1232
+ [account, params] = this.handleOptionAndParams2(params, 'setLeverage', 'account', 'accountId');
1233
+ const txRequest = {
1234
+ 'accountId': account,
1235
+ 'chId': market['id'],
1236
+ 'leverage': leverage,
1237
+ 'metadata': {
1238
+ 'sender': this.walletAddress,
1239
+ },
1240
+ };
1241
+ const tx = await this.privatePostBuildSetLeverage(txRequest);
1242
+ const request = this.signTxEd25519(tx);
1243
+ const response = await this.privatePostSubmitSetLeverage(request);
1244
+ //
1245
+ // {
1246
+ // "id": "0xyydsxxxxxxxxyydsxxxxxxx:141",
1247
+ // "symbol": "BTC/USD:USDC",
1248
+ // "marginMode": "isolated",
1249
+ // "side": "long",
1250
+ // "contracts": 0.001,
1251
+ // "contractSize": 88506.195911625,
1252
+ // "entryPrice": 90999.0,
1253
+ // "notional": 88.50907726931732,
1254
+ // "marginRatio": 1.0000000000041465,
1255
+ // "leverage": 0.9999999999958537,
1256
+ // "collateral": 91.00196251238035,
1257
+ // "initialMargin": 2.212726931732933,
1258
+ // "maintenanceMargin": 1.1063634658664665,
1259
+ // "initialMarginPercentage": 0.025,
1260
+ // "maintenanceMarginPercentage": 0.0125,
1261
+ // "unrealizedPnl": -2.492804088375008,
1262
+ // "liquidationPrice": -3.71625538227e-7
1263
+ // }
1264
+ //
1265
+ return response;
1266
+ }
1267
+ /**
1268
+ * @method
1269
+ * @name aftermath#signTxEd25519
1270
+ * @description Helper to sign some transaction bytes and return a generic transaction execution request.
1271
+ * @param {object} [tx] transaction bytes and the signing digest for them
1272
+ * @returns {object} the input transaction bytes and the signed digest
1273
+ */
1274
+ signTxEd25519(tx) {
1275
+ if (this.privateKey.indexOf('suiprivkey') >= 0) {
1276
+ throw new NotSupported(this.id + ' only support hex encoding private key, please transform bech32 encoding private key');
1277
+ }
1278
+ const signingDigest = this.safeString(tx, 'signingDigest');
1279
+ const digest = this.base64ToBinary(signingDigest);
1280
+ const privateKey = this.base16ToBinary(this.privateKey);
1281
+ const signature = eddsa(digest, privateKey, ed25519);
1282
+ const hexPublicKey = this.safeString(this.options, 'publicKey');
1283
+ if (hexPublicKey === undefined) {
1284
+ throw new ArgumentsRequired(this.id + ' requires hex encoding public key in options');
1285
+ }
1286
+ const publicKey = this.base16ToBinary(hexPublicKey);
1287
+ const suiSignature = this.binaryConcat(this.base16ToBinary('00'), this.binaryConcat(this.base64ToBinary(signature), publicKey));
1288
+ const base64Sig = this.binaryToBase64(suiSignature);
1289
+ const transactionBytes = this.safeString(tx, 'transactionBytes');
1290
+ const signatures = [base64Sig];
1291
+ return { 'transactionBytes': transactionBytes, 'signatures': signatures };
1292
+ }
1293
+ parseOrder(order, market = undefined) {
1294
+ return this.safeOrder(order, market);
1295
+ }
1296
+ handleErrors(httpCode, reason, url, method, headers, body, response, requestHeaders, requestBody) {
1297
+ if (!response) {
1298
+ return undefined; // fallback to default error handler
1299
+ }
1300
+ //
1301
+ // Error with ID: #68498f1e536664f31a7b1aa7
1302
+ //
1303
+ if (body.indexOf('Error') >= 0) {
1304
+ this.throwBroadlyMatchedException(this.exceptions['broad'], body, '');
1305
+ throw new ExchangeError(body);
1306
+ }
1307
+ return undefined;
1308
+ }
1309
+ sign(path, api = 'public', method = 'POST', params = {}, headers = undefined, body = undefined) {
1310
+ const url = this.urls['api']['rest'] + '/' + path;
1311
+ if (api === 'private') {
1312
+ this.checkRequiredCredentials();
1313
+ }
1314
+ if (method === 'POST') {
1315
+ headers = {
1316
+ 'Content-Type': 'application/json',
1317
+ };
1318
+ body = this.json(params);
1319
+ }
1320
+ return { 'url': url, 'method': method, 'body': body, 'headers': headers };
1321
+ }
1322
+ }