ccxt 4.2.11 → 4.2.13

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 (392) hide show
  1. package/README.md +5 -5
  2. package/build.sh +2 -2
  3. package/dist/ccxt.browser.js +1347 -490
  4. package/dist/ccxt.browser.min.js +3 -3
  5. package/dist/cjs/_virtual/agent.js +7 -0
  6. package/dist/cjs/_virtual/parse-proxy-response.js +7 -0
  7. package/dist/cjs/_virtual/promisify.js +7 -0
  8. package/dist/cjs/ccxt.js +1 -1
  9. package/dist/cjs/js/ccxt.js +474 -0
  10. package/dist/cjs/js/src/abstract/ace.js +9 -0
  11. package/dist/cjs/js/src/abstract/alpaca.js +9 -0
  12. package/dist/cjs/js/src/abstract/ascendex.js +9 -0
  13. package/dist/cjs/js/src/abstract/bigone.js +9 -0
  14. package/dist/cjs/js/src/abstract/binance.js +9 -0
  15. package/dist/cjs/js/src/abstract/bingx.js +9 -0
  16. package/dist/cjs/js/src/abstract/bit2c.js +9 -0
  17. package/dist/cjs/js/src/abstract/bitbank.js +9 -0
  18. package/dist/cjs/js/src/abstract/bitbns.js +9 -0
  19. package/dist/cjs/js/src/abstract/bitfinex.js +9 -0
  20. package/dist/cjs/js/src/abstract/bitfinex2.js +9 -0
  21. package/dist/cjs/js/src/abstract/bitflyer.js +9 -0
  22. package/dist/cjs/js/src/abstract/bitforex.js +9 -0
  23. package/dist/cjs/js/src/abstract/bitget.js +9 -0
  24. package/dist/cjs/js/src/abstract/bithumb.js +9 -0
  25. package/dist/cjs/js/src/abstract/bitmart.js +9 -0
  26. package/dist/cjs/js/src/abstract/bitmex.js +9 -0
  27. package/dist/cjs/js/src/abstract/bitopro.js +9 -0
  28. package/dist/cjs/js/src/abstract/bitpanda.js +9 -0
  29. package/dist/cjs/js/src/abstract/bitrue.js +9 -0
  30. package/dist/cjs/js/src/abstract/bitso.js +9 -0
  31. package/dist/cjs/js/src/abstract/bitstamp.js +9 -0
  32. package/dist/cjs/js/src/abstract/bitteam.js +9 -0
  33. package/dist/cjs/js/src/abstract/bitvavo.js +9 -0
  34. package/dist/cjs/js/src/abstract/bl3p.js +9 -0
  35. package/dist/cjs/js/src/abstract/blockchaincom.js +9 -0
  36. package/dist/cjs/js/src/abstract/btcalpha.js +9 -0
  37. package/dist/cjs/js/src/abstract/btcbox.js +9 -0
  38. package/dist/cjs/js/src/abstract/btcmarkets.js +9 -0
  39. package/dist/cjs/js/src/abstract/btcturk.js +9 -0
  40. package/dist/cjs/js/src/abstract/bybit.js +9 -0
  41. package/dist/cjs/js/src/abstract/cex.js +9 -0
  42. package/dist/cjs/js/src/abstract/coinbase.js +9 -0
  43. package/dist/cjs/js/src/abstract/coinbasepro.js +9 -0
  44. package/dist/cjs/js/src/abstract/coincheck.js +9 -0
  45. package/dist/cjs/js/src/abstract/coinex.js +9 -0
  46. package/dist/cjs/js/src/abstract/coinlist.js +9 -0
  47. package/dist/cjs/js/src/abstract/coinmate.js +9 -0
  48. package/dist/cjs/js/src/abstract/coinone.js +9 -0
  49. package/dist/cjs/js/src/abstract/coinsph.js +9 -0
  50. package/dist/cjs/js/src/abstract/coinspot.js +9 -0
  51. package/dist/cjs/js/src/abstract/cryptocom.js +9 -0
  52. package/dist/cjs/js/src/abstract/currencycom.js +9 -0
  53. package/dist/cjs/js/src/abstract/delta.js +9 -0
  54. package/dist/cjs/js/src/abstract/deribit.js +9 -0
  55. package/dist/cjs/js/src/abstract/digifinex.js +9 -0
  56. package/dist/cjs/js/src/abstract/exmo.js +9 -0
  57. package/dist/cjs/js/src/abstract/gate.js +9 -0
  58. package/dist/cjs/js/src/abstract/gemini.js +9 -0
  59. package/dist/cjs/js/src/abstract/hitbtc.js +9 -0
  60. package/dist/cjs/js/src/abstract/hollaex.js +9 -0
  61. package/dist/cjs/js/src/abstract/htx.js +9 -0
  62. package/dist/cjs/js/src/abstract/huobijp.js +9 -0
  63. package/dist/cjs/js/src/abstract/idex.js +9 -0
  64. package/dist/cjs/js/src/abstract/independentreserve.js +9 -0
  65. package/dist/cjs/js/src/abstract/indodax.js +9 -0
  66. package/dist/cjs/js/src/abstract/kraken.js +9 -0
  67. package/dist/cjs/js/src/abstract/krakenfutures.js +9 -0
  68. package/dist/cjs/js/src/abstract/kucoin.js +9 -0
  69. package/dist/cjs/js/src/abstract/kucoinfutures.js +9 -0
  70. package/dist/cjs/js/src/abstract/kuna.js +9 -0
  71. package/dist/cjs/js/src/abstract/latoken.js +9 -0
  72. package/dist/cjs/js/src/abstract/lbank.js +9 -0
  73. package/dist/cjs/js/src/abstract/luno.js +9 -0
  74. package/dist/cjs/js/src/abstract/lykke.js +9 -0
  75. package/dist/cjs/js/src/abstract/mercado.js +9 -0
  76. package/dist/cjs/js/src/abstract/mexc.js +9 -0
  77. package/dist/cjs/js/src/abstract/ndax.js +9 -0
  78. package/dist/cjs/js/src/abstract/novadax.js +9 -0
  79. package/dist/cjs/js/src/abstract/oceanex.js +9 -0
  80. package/dist/cjs/js/src/abstract/okcoin.js +9 -0
  81. package/dist/cjs/js/src/abstract/okx.js +9 -0
  82. package/dist/cjs/js/src/abstract/p2b.js +9 -0
  83. package/dist/cjs/js/src/abstract/paymium.js +9 -0
  84. package/dist/cjs/js/src/abstract/phemex.js +9 -0
  85. package/dist/cjs/js/src/abstract/poloniex.js +9 -0
  86. package/dist/cjs/js/src/abstract/poloniexfutures.js +9 -0
  87. package/dist/cjs/js/src/abstract/probit.js +9 -0
  88. package/dist/cjs/js/src/abstract/timex.js +9 -0
  89. package/dist/cjs/js/src/abstract/tokocrypto.js +9 -0
  90. package/dist/cjs/js/src/abstract/upbit.js +9 -0
  91. package/dist/cjs/js/src/abstract/wavesexchange.js +9 -0
  92. package/dist/cjs/js/src/abstract/wazirx.js +9 -0
  93. package/dist/cjs/js/src/abstract/whitebit.js +9 -0
  94. package/dist/cjs/js/src/abstract/woo.js +9 -0
  95. package/dist/cjs/js/src/abstract/yobit.js +9 -0
  96. package/dist/cjs/js/src/abstract/zaif.js +9 -0
  97. package/dist/cjs/js/src/abstract/zonda.js +9 -0
  98. package/dist/cjs/js/src/ace.js +1058 -0
  99. package/dist/cjs/js/src/alpaca.js +1125 -0
  100. package/dist/cjs/js/src/ascendex.js +3360 -0
  101. package/dist/cjs/js/src/base/Exchange.js +5110 -0
  102. package/dist/cjs/js/src/base/Precise.js +263 -0
  103. package/dist/cjs/js/src/base/errors.js +299 -0
  104. package/dist/cjs/js/src/base/functions/crypto.js +78 -0
  105. package/dist/cjs/js/src/base/functions/encode.js +44 -0
  106. package/dist/cjs/js/src/base/functions/generic.js +193 -0
  107. package/dist/cjs/js/src/base/functions/misc.js +96 -0
  108. package/dist/cjs/js/src/base/functions/number.js +297 -0
  109. package/dist/cjs/js/src/base/functions/platform.js +28 -0
  110. package/dist/cjs/js/src/base/functions/rsa.js +34 -0
  111. package/dist/cjs/js/src/base/functions/string.js +48 -0
  112. package/dist/cjs/js/src/base/functions/throttle.js +66 -0
  113. package/dist/cjs/js/src/base/functions/time.js +187 -0
  114. package/dist/cjs/js/src/base/functions/totp.js +24 -0
  115. package/dist/cjs/js/src/base/functions/type.js +162 -0
  116. package/dist/cjs/js/src/base/functions.js +157 -0
  117. package/dist/cjs/js/src/base/ws/Cache.js +254 -0
  118. package/dist/cjs/js/src/base/ws/Client.js +299 -0
  119. package/dist/cjs/js/src/base/ws/Future.js +34 -0
  120. package/dist/cjs/js/src/base/ws/OrderBook.js +107 -0
  121. package/dist/cjs/js/src/base/ws/OrderBookSide.js +281 -0
  122. package/dist/cjs/js/src/base/ws/WsClient.js +69 -0
  123. package/dist/cjs/js/src/bequant.js +33 -0
  124. package/dist/cjs/js/src/bigone.js +2209 -0
  125. package/dist/cjs/js/src/binance.js +9736 -0
  126. package/dist/cjs/js/src/binancecoinm.js +45 -0
  127. package/dist/cjs/js/src/binanceus.js +84 -0
  128. package/dist/cjs/js/src/binanceusdm.js +58 -0
  129. package/dist/cjs/js/src/bingx.js +3807 -0
  130. package/dist/cjs/js/src/bit2c.js +916 -0
  131. package/dist/cjs/js/src/bitbank.js +1000 -0
  132. package/dist/cjs/js/src/bitbay.js +17 -0
  133. package/dist/cjs/js/src/bitbns.js +1220 -0
  134. package/dist/cjs/js/src/bitcoincom.js +17 -0
  135. package/dist/cjs/js/src/bitfinex.js +1670 -0
  136. package/dist/cjs/js/src/bitfinex2.js +2990 -0
  137. package/dist/cjs/js/src/bitflyer.js +1045 -0
  138. package/dist/cjs/js/src/bitforex.js +852 -0
  139. package/dist/cjs/js/src/bitget.js +8291 -0
  140. package/dist/cjs/js/src/bithumb.js +1090 -0
  141. package/dist/cjs/js/src/bitmart.js +4454 -0
  142. package/dist/cjs/js/src/bitmex.js +2884 -0
  143. package/dist/cjs/js/src/bitopro.js +1724 -0
  144. package/dist/cjs/js/src/bitpanda.js +2002 -0
  145. package/dist/cjs/js/src/bitrue.js +3253 -0
  146. package/dist/cjs/js/src/bitso.js +1753 -0
  147. package/dist/cjs/js/src/bitstamp.js +2188 -0
  148. package/dist/cjs/js/src/bitteam.js +2309 -0
  149. package/dist/cjs/js/src/bitvavo.js +1968 -0
  150. package/dist/cjs/js/src/bl3p.js +447 -0
  151. package/dist/cjs/js/src/blockchaincom.js +1160 -0
  152. package/dist/cjs/js/src/btcalpha.js +929 -0
  153. package/dist/cjs/js/src/btcbox.js +565 -0
  154. package/dist/cjs/js/src/btcmarkets.js +1237 -0
  155. package/dist/cjs/js/src/btcturk.js +929 -0
  156. package/dist/cjs/js/src/bybit.js +7646 -0
  157. package/dist/cjs/js/src/cex.js +1693 -0
  158. package/dist/cjs/js/src/coinbase.js +3424 -0
  159. package/dist/cjs/js/src/coinbasepro.js +1866 -0
  160. package/dist/cjs/js/src/coincheck.js +843 -0
  161. package/dist/cjs/js/src/coinex.js +5414 -0
  162. package/dist/cjs/js/src/coinlist.js +2329 -0
  163. package/dist/cjs/js/src/coinmate.js +989 -0
  164. package/dist/cjs/js/src/coinone.js +1185 -0
  165. package/dist/cjs/js/src/coinsph.js +1933 -0
  166. package/dist/cjs/js/src/coinspot.js +548 -0
  167. package/dist/cjs/js/src/cryptocom.js +3007 -0
  168. package/dist/cjs/js/src/currencycom.js +2015 -0
  169. package/dist/cjs/js/src/delta.js +3256 -0
  170. package/dist/cjs/js/src/deribit.js +3306 -0
  171. package/dist/cjs/js/src/digifinex.js +4307 -0
  172. package/dist/cjs/js/src/exmo.js +2645 -0
  173. package/dist/cjs/js/src/fmfwio.js +34 -0
  174. package/dist/cjs/js/src/gate.js +7072 -0
  175. package/dist/cjs/js/src/gateio.js +16 -0
  176. package/dist/cjs/js/src/gemini.js +1801 -0
  177. package/dist/cjs/js/src/hitbtc.js +3660 -0
  178. package/dist/cjs/js/src/hitbtc3.js +19 -0
  179. package/dist/cjs/js/src/hollaex.js +1882 -0
  180. package/dist/cjs/js/src/htx.js +9049 -0
  181. package/dist/cjs/js/src/huobi.js +16 -0
  182. package/dist/cjs/js/src/huobijp.js +1918 -0
  183. package/dist/cjs/js/src/idex.js +1770 -0
  184. package/dist/cjs/js/src/independentreserve.js +761 -0
  185. package/dist/cjs/js/src/indodax.js +1069 -0
  186. package/dist/cjs/js/src/kraken.js +2857 -0
  187. package/dist/cjs/js/src/krakenfutures.js +2407 -0
  188. package/dist/cjs/js/src/kucoin.js +4489 -0
  189. package/dist/cjs/js/src/kucoinfutures.js +2475 -0
  190. package/dist/cjs/js/src/kuna.js +1949 -0
  191. package/dist/cjs/js/src/latoken.js +1729 -0
  192. package/dist/cjs/js/src/lbank.js +2851 -0
  193. package/dist/cjs/js/src/luno.js +1044 -0
  194. package/dist/cjs/js/src/lykke.js +1303 -0
  195. package/dist/cjs/js/src/mercado.js +897 -0
  196. package/dist/cjs/js/src/mexc.js +5407 -0
  197. package/dist/cjs/js/src/ndax.js +2450 -0
  198. package/dist/cjs/js/src/novadax.js +1556 -0
  199. package/dist/cjs/js/src/oceanex.js +964 -0
  200. package/dist/cjs/js/src/okcoin.js +3115 -0
  201. package/dist/cjs/js/src/okx.js +7330 -0
  202. package/dist/cjs/js/src/p2b.js +1243 -0
  203. package/dist/cjs/js/src/paymium.js +597 -0
  204. package/dist/cjs/js/src/phemex.js +4722 -0
  205. package/dist/cjs/js/src/poloniex.js +2356 -0
  206. package/dist/cjs/js/src/poloniexfutures.js +1794 -0
  207. package/dist/cjs/js/src/pro/alpaca.js +714 -0
  208. package/dist/cjs/js/src/pro/ascendex.js +957 -0
  209. package/dist/cjs/js/src/pro/bequant.js +33 -0
  210. package/dist/cjs/js/src/pro/binance.js +2796 -0
  211. package/dist/cjs/js/src/pro/binancecoinm.js +23 -0
  212. package/dist/cjs/js/src/pro/binanceus.js +51 -0
  213. package/dist/cjs/js/src/pro/binanceusdm.js +32 -0
  214. package/dist/cjs/js/src/pro/bingx.js +944 -0
  215. package/dist/cjs/js/src/pro/bitcoincom.js +29 -0
  216. package/dist/cjs/js/src/pro/bitfinex.js +672 -0
  217. package/dist/cjs/js/src/pro/bitfinex2.js +1159 -0
  218. package/dist/cjs/js/src/pro/bitget.js +1733 -0
  219. package/dist/cjs/js/src/pro/bitmart.js +1486 -0
  220. package/dist/cjs/js/src/pro/bitmex.js +1576 -0
  221. package/dist/cjs/js/src/pro/bitopro.js +327 -0
  222. package/dist/cjs/js/src/pro/bitpanda.js +1341 -0
  223. package/dist/cjs/js/src/pro/bitrue.js +462 -0
  224. package/dist/cjs/js/src/pro/bitstamp.js +547 -0
  225. package/dist/cjs/js/src/pro/bitvavo.js +704 -0
  226. package/dist/cjs/js/src/pro/blockchaincom.js +794 -0
  227. package/dist/cjs/js/src/pro/bybit.js +1843 -0
  228. package/dist/cjs/js/src/pro/cex.js +1510 -0
  229. package/dist/cjs/js/src/pro/coinbase.js +561 -0
  230. package/dist/cjs/js/src/pro/coinbasepro.js +968 -0
  231. package/dist/cjs/js/src/pro/coinex.js +1095 -0
  232. package/dist/cjs/js/src/pro/cryptocom.js +1020 -0
  233. package/dist/cjs/js/src/pro/currencycom.js +563 -0
  234. package/dist/cjs/js/src/pro/deribit.js +825 -0
  235. package/dist/cjs/js/src/pro/exmo.js +658 -0
  236. package/dist/cjs/js/src/pro/gate.js +1316 -0
  237. package/dist/cjs/js/src/pro/gateio.js +16 -0
  238. package/dist/cjs/js/src/pro/gemini.js +649 -0
  239. package/dist/cjs/js/src/pro/hitbtc.js +1293 -0
  240. package/dist/cjs/js/src/pro/hollaex.js +597 -0
  241. package/dist/cjs/js/src/pro/htx.js +2383 -0
  242. package/dist/cjs/js/src/pro/huobi.js +16 -0
  243. package/dist/cjs/js/src/pro/huobijp.js +606 -0
  244. package/dist/cjs/js/src/pro/idex.js +714 -0
  245. package/dist/cjs/js/src/pro/independentreserve.js +280 -0
  246. package/dist/cjs/js/src/pro/kraken.js +1364 -0
  247. package/dist/cjs/js/src/pro/krakenfutures.js +1500 -0
  248. package/dist/cjs/js/src/pro/kucoin.js +1052 -0
  249. package/dist/cjs/js/src/pro/kucoinfutures.js +981 -0
  250. package/dist/cjs/js/src/pro/luno.js +322 -0
  251. package/dist/cjs/js/src/pro/mexc.js +1170 -0
  252. package/dist/cjs/js/src/pro/ndax.js +545 -0
  253. package/dist/cjs/js/src/pro/okcoin.js +760 -0
  254. package/dist/cjs/js/src/pro/okx.js +1608 -0
  255. package/dist/cjs/js/src/pro/phemex.js +1511 -0
  256. package/dist/cjs/js/src/pro/poloniex.js +1253 -0
  257. package/dist/cjs/js/src/pro/poloniexfutures.js +1014 -0
  258. package/dist/cjs/js/src/pro/probit.js +586 -0
  259. package/dist/cjs/js/src/pro/upbit.js +234 -0
  260. package/dist/cjs/js/src/pro/wazirx.js +776 -0
  261. package/dist/cjs/js/src/pro/whitebit.js +927 -0
  262. package/dist/cjs/js/src/pro/woo.js +769 -0
  263. package/dist/cjs/js/src/probit.js +1867 -0
  264. package/dist/cjs/js/src/static_dependencies/fflake/browser.js +401 -0
  265. package/dist/cjs/js/src/static_dependencies/jsencrypt/JSEncrypt.js +195 -0
  266. package/dist/cjs/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +308 -0
  267. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +554 -0
  268. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +94 -0
  269. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +70 -0
  270. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +91 -0
  271. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +16 -0
  272. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +1760 -0
  273. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +52 -0
  274. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +81 -0
  275. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +376 -0
  276. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/util.js +70 -0
  277. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +1580 -0
  278. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +74 -0
  279. package/dist/cjs/js/src/static_dependencies/noble-curves/_shortw_utils.js +24 -0
  280. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/curve.js +158 -0
  281. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/edwards.js +429 -0
  282. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +176 -0
  283. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/modular.js +324 -0
  284. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/montgomery.js +163 -0
  285. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/utils.js +245 -0
  286. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/weierstrass.js +1018 -0
  287. package/dist/cjs/js/src/static_dependencies/noble-curves/ed25519.js +383 -0
  288. package/dist/cjs/js/src/static_dependencies/noble-curves/secp256k1.js +258 -0
  289. package/dist/cjs/js/src/static_dependencies/noble-hashes/_assert.js +53 -0
  290. package/dist/cjs/js/src/static_dependencies/noble-hashes/_sha2.js +120 -0
  291. package/dist/cjs/js/src/static_dependencies/noble-hashes/_u64.js +69 -0
  292. package/dist/cjs/js/src/static_dependencies/noble-hashes/crypto.js +7 -0
  293. package/dist/cjs/js/src/static_dependencies/noble-hashes/hmac.js +83 -0
  294. package/dist/cjs/js/src/static_dependencies/noble-hashes/md5.js +240 -0
  295. package/dist/cjs/js/src/static_dependencies/noble-hashes/sha1.js +91 -0
  296. package/dist/cjs/js/src/static_dependencies/noble-hashes/sha256.js +130 -0
  297. package/dist/cjs/js/src/static_dependencies/noble-hashes/sha3.js +214 -0
  298. package/dist/cjs/js/src/static_dependencies/noble-hashes/sha512.js +239 -0
  299. package/dist/cjs/js/src/static_dependencies/noble-hashes/utils.js +93 -0
  300. package/dist/cjs/js/src/static_dependencies/node-fetch/body.js +354 -0
  301. package/dist/cjs/js/src/static_dependencies/node-fetch/errors/abort-error.js +16 -0
  302. package/dist/cjs/js/src/static_dependencies/node-fetch/errors/base.js +20 -0
  303. package/dist/cjs/js/src/static_dependencies/node-fetch/errors/fetch-error.js +30 -0
  304. package/dist/cjs/js/src/static_dependencies/node-fetch/headers.js +239 -0
  305. package/dist/cjs/js/src/static_dependencies/node-fetch/index.js +372 -0
  306. package/dist/cjs/js/src/static_dependencies/node-fetch/request.js +273 -0
  307. package/dist/cjs/js/src/static_dependencies/node-fetch/response.js +139 -0
  308. package/dist/cjs/js/src/static_dependencies/node-fetch/utils/get-search.js +14 -0
  309. package/dist/cjs/js/src/static_dependencies/node-fetch/utils/is-redirect.js +16 -0
  310. package/dist/cjs/js/src/static_dependencies/node-fetch/utils/is.js +81 -0
  311. package/dist/cjs/js/src/static_dependencies/node-fetch/utils/referrer.js +292 -0
  312. package/dist/cjs/js/src/static_dependencies/proxies/agent-base/index.js +103 -0
  313. package/dist/cjs/js/src/static_dependencies/proxies/http-proxy-agent/index.js +140 -0
  314. package/dist/cjs/js/src/static_dependencies/proxies/https-proxy-agent/index.js +175 -0
  315. package/dist/cjs/js/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +95 -0
  316. package/dist/cjs/js/src/static_dependencies/qs/index.cjs.js +7 -0
  317. package/dist/cjs/js/src/static_dependencies/scure-base/index.js +383 -0
  318. package/dist/cjs/js/src/timex.js +1562 -0
  319. package/dist/cjs/js/src/tokocrypto.js +2542 -0
  320. package/dist/cjs/js/src/upbit.js +1844 -0
  321. package/dist/cjs/js/src/wavesexchange.js +2607 -0
  322. package/dist/cjs/js/src/wazirx.js +953 -0
  323. package/dist/cjs/js/src/whitebit.js +2309 -0
  324. package/dist/cjs/js/src/woo.js +2765 -0
  325. package/dist/cjs/js/src/yobit.js +1314 -0
  326. package/dist/cjs/js/src/zaif.js +736 -0
  327. package/dist/cjs/js/src/zonda.js +1883 -0
  328. package/js/ccxt.d.ts +1 -1
  329. package/js/ccxt.js +1 -1
  330. package/js/src/abstract/bigone.d.ts +18 -0
  331. package/js/src/abstract/binance.d.ts +2 -0
  332. package/js/src/abstract/binancecoinm.d.ts +2 -0
  333. package/js/src/abstract/binanceus.d.ts +2 -0
  334. package/js/src/abstract/binanceusdm.d.ts +2 -0
  335. package/js/src/abstract/bingx.d.ts +2 -0
  336. package/js/src/abstract/bybit.d.ts +1 -0
  337. package/js/src/abstract/gate.d.ts +11 -0
  338. package/js/src/abstract/gateio.d.ts +11 -0
  339. package/js/src/abstract/okx.d.ts +1 -0
  340. package/js/src/alpaca.js +18 -18
  341. package/js/src/base/Exchange.d.ts +5 -1
  342. package/js/src/base/Exchange.js +101 -12
  343. package/js/src/bigone.d.ts +3 -2
  344. package/js/src/bigone.js +429 -167
  345. package/js/src/binance.js +48 -34
  346. package/js/src/bingx.js +115 -38
  347. package/js/src/bitfinex.d.ts +2 -2
  348. package/js/src/bitfinex.js +2 -3
  349. package/js/src/bitget.js +33 -13
  350. package/js/src/bitmart.d.ts +2 -2
  351. package/js/src/bitmart.js +5 -5
  352. package/js/src/bitmex.js +1 -0
  353. package/js/src/bybit.js +2 -0
  354. package/js/src/coinbase.d.ts +26 -3
  355. package/js/src/coinbase.js +176 -26
  356. package/js/src/coinlist.js +3 -4
  357. package/js/src/coinone.js +1 -1
  358. package/js/src/coinsph.js +2 -3
  359. package/js/src/deribit.js +1 -0
  360. package/js/src/gate.d.ts +4 -4
  361. package/js/src/gate.js +96 -59
  362. package/js/src/gemini.js +1 -1
  363. package/js/src/hitbtc.d.ts +4 -4
  364. package/js/src/hitbtc.js +2 -3
  365. package/js/src/htx.d.ts +1 -0
  366. package/js/src/htx.js +29 -7
  367. package/js/src/huobijp.js +2 -3
  368. package/js/src/independentreserve.js +7 -5
  369. package/js/src/kraken.js +3 -6
  370. package/js/src/lbank.js +59 -33
  371. package/js/src/mexc.js +2 -1
  372. package/js/src/oceanex.js +1 -1
  373. package/js/src/okx.js +14 -3
  374. package/js/src/phemex.js +9 -2
  375. package/js/src/pro/binance.d.ts +2 -23
  376. package/js/src/pro/binance.js +58 -22
  377. package/js/src/pro/coinbase.d.ts +2 -2
  378. package/js/src/pro/coinbase.js +4 -1
  379. package/js/src/pro/coinbasepro.d.ts +2 -2
  380. package/js/src/pro/hitbtc.d.ts +2 -2
  381. package/js/src/pro/kraken.js +1 -1
  382. package/js/src/pro/okx.d.ts +1 -0
  383. package/js/src/pro/okx.js +52 -2
  384. package/js/src/pro/poloniex.d.ts +2 -2
  385. package/js/src/probit.js +4 -2
  386. package/js/src/upbit.d.ts +3 -101
  387. package/js/src/upbit.js +12 -12
  388. package/js/src/wavesexchange.js +1 -1
  389. package/js/src/woo.d.ts +2 -0
  390. package/js/src/woo.js +52 -0
  391. package/package.json +1 -1
  392. package/skip-tests.json +5 -0
package/js/src/binance.js CHANGED
@@ -54,6 +54,7 @@ export default class binance extends Exchange {
54
54
  'createStopLimitOrder': true,
55
55
  'createStopMarketOrder': false,
56
56
  'createStopOrder': true,
57
+ 'createTrailingPercentOrder': true,
57
58
  'editOrder': true,
58
59
  'fetchAccounts': undefined,
59
60
  'fetchBalance': true,
@@ -229,6 +230,7 @@ export default class binance extends Exchange {
229
230
  'asset/convert-transfer/queryByPage': 0.033335,
230
231
  'asset/wallet/balance': 6,
231
232
  'asset/custody/transfer-history': 6,
233
+ 'margin/borrow-repay': 1,
232
234
  'margin/loan': 1,
233
235
  'margin/repay': 1,
234
236
  'margin/account': 1,
@@ -480,6 +482,7 @@ export default class binance extends Exchange {
480
482
  'capital/withdraw/apply': 4.0002,
481
483
  'capital/contract/convertible-coins': 4.0002,
482
484
  'capital/deposit/credit-apply': 0.1,
485
+ 'margin/borrow-repay': 20.001,
483
486
  'margin/transfer': 4.0002,
484
487
  'margin/loan': 20.001,
485
488
  'margin/repay': 20.001,
@@ -6105,12 +6108,13 @@ export default class binance extends Exchange {
6105
6108
  * @name binance#transfer
6106
6109
  * @description transfer currency internally between wallets on the same account
6107
6110
  * @see https://binance-docs.github.io/apidocs/spot/en/#user-universal-transfer-user_data
6108
- * @see https://binance-docs.github.io/apidocs/spot/en/#isolated-margin-account-transfer-margin
6109
6111
  * @param {string} code unified currency code
6110
6112
  * @param {float} amount amount to transfer
6111
6113
  * @param {string} fromAccount account to transfer from
6112
6114
  * @param {string} toAccount account to transfer to
6113
6115
  * @param {object} [params] extra parameters specific to the exchange API endpoint
6116
+ * @param {string} [params.type] exchange specific transfer type
6117
+ * @param {string} [params.symbol] the unified symbol, required for isolated margin transfers
6114
6118
  * @returns {object} a [transfer structure]{@link https://docs.ccxt.com/#/?id=transfer-structure}
6115
6119
  */
6116
6120
  await this.loadMarkets();
@@ -6121,76 +6125,82 @@ export default class binance extends Exchange {
6121
6125
  };
6122
6126
  request['type'] = this.safeString(params, 'type');
6123
6127
  params = this.omit(params, 'type');
6124
- let response = undefined;
6125
6128
  if (request['type'] === undefined) {
6126
6129
  const symbol = this.safeString(params, 'symbol');
6130
+ let market = undefined;
6127
6131
  if (symbol !== undefined) {
6132
+ market = this.market(symbol);
6128
6133
  params = this.omit(params, 'symbol');
6129
6134
  }
6130
6135
  let fromId = this.convertTypeToAccount(fromAccount).toUpperCase();
6131
6136
  let toId = this.convertTypeToAccount(toAccount).toUpperCase();
6137
+ let isolatedSymbol = undefined;
6138
+ if (market !== undefined) {
6139
+ isolatedSymbol = market['id'];
6140
+ }
6132
6141
  if (fromId === 'ISOLATED') {
6133
6142
  if (symbol === undefined) {
6134
6143
  throw new ArgumentsRequired(this.id + ' transfer () requires params["symbol"] when fromAccount is ' + fromAccount);
6135
6144
  }
6136
- else {
6137
- fromId = this.marketId(symbol);
6138
- }
6139
6145
  }
6140
6146
  if (toId === 'ISOLATED') {
6141
6147
  if (symbol === undefined) {
6142
6148
  throw new ArgumentsRequired(this.id + ' transfer () requires params["symbol"] when toAccount is ' + toAccount);
6143
6149
  }
6144
- else {
6145
- toId = this.marketId(symbol);
6146
- }
6147
6150
  }
6148
6151
  const accountsById = this.safeValue(this.options, 'accountsById', {});
6149
6152
  const fromIsolated = !(fromId in accountsById);
6150
6153
  const toIsolated = !(toId in accountsById);
6154
+ if (fromIsolated && (market === undefined)) {
6155
+ isolatedSymbol = fromId; // allow user provide symbol as the from/to account
6156
+ }
6157
+ if (toIsolated && (market === undefined)) {
6158
+ isolatedSymbol = toId;
6159
+ }
6151
6160
  if (fromIsolated || toIsolated) { // Isolated margin transfer
6152
6161
  const fromFuture = fromId === 'UMFUTURE' || fromId === 'CMFUTURE';
6153
6162
  const toFuture = toId === 'UMFUTURE' || toId === 'CMFUTURE';
6154
6163
  const fromSpot = fromId === 'MAIN';
6155
6164
  const toSpot = toId === 'MAIN';
6156
6165
  const funding = fromId === 'FUNDING' || toId === 'FUNDING';
6157
- const mining = fromId === 'MINING' || toId === 'MINING';
6158
6166
  const option = fromId === 'OPTION' || toId === 'OPTION';
6159
- const prohibitedWithIsolated = fromFuture || toFuture || mining || funding || option;
6167
+ const prohibitedWithIsolated = fromFuture || toFuture || funding || option;
6160
6168
  if ((fromIsolated || toIsolated) && prohibitedWithIsolated) {
6161
6169
  throw new BadRequest(this.id + ' transfer () does not allow transfers between ' + fromAccount + ' and ' + toAccount);
6162
6170
  }
6163
6171
  else if (toSpot && fromIsolated) {
6164
- request['transFrom'] = 'ISOLATED_MARGIN';
6165
- request['transTo'] = 'SPOT';
6166
- request['symbol'] = fromId;
6167
- response = await this.sapiPostMarginIsolatedTransfer(this.extend(request, params));
6172
+ fromId = 'ISOLATED_MARGIN';
6173
+ request['fromSymbol'] = isolatedSymbol;
6168
6174
  }
6169
6175
  else if (fromSpot && toIsolated) {
6170
- request['transFrom'] = 'SPOT';
6171
- request['transTo'] = 'ISOLATED_MARGIN';
6172
- request['symbol'] = toId;
6173
- response = await this.sapiPostMarginIsolatedTransfer(this.extend(request, params));
6176
+ toId = 'ISOLATED_MARGIN';
6177
+ request['toSymbol'] = isolatedSymbol;
6174
6178
  }
6175
6179
  else {
6176
- if (fromIsolated) {
6180
+ if (fromIsolated && toIsolated) {
6177
6181
  request['fromSymbol'] = fromId;
6178
- fromId = 'ISOLATEDMARGIN';
6179
- }
6180
- if (toIsolated) {
6181
6182
  request['toSymbol'] = toId;
6183
+ fromId = 'ISOLATEDMARGIN';
6182
6184
  toId = 'ISOLATEDMARGIN';
6183
6185
  }
6184
- request['type'] = fromId + '_' + toId;
6186
+ else {
6187
+ if (fromIsolated) {
6188
+ request['fromSymbol'] = isolatedSymbol;
6189
+ fromId = 'ISOLATEDMARGIN';
6190
+ }
6191
+ if (toIsolated) {
6192
+ request['toSymbol'] = isolatedSymbol;
6193
+ toId = 'ISOLATEDMARGIN';
6194
+ }
6195
+ }
6185
6196
  }
6197
+ request['type'] = fromId + '_' + toId;
6186
6198
  }
6187
6199
  else {
6188
6200
  request['type'] = fromId + '_' + toId;
6189
6201
  }
6190
6202
  }
6191
- if (response === undefined) {
6192
- response = await this.sapiPostAssetTransfer(this.extend(request, params));
6193
- }
6203
+ const response = await this.sapiPostAssetTransfer(this.extend(request, params));
6194
6204
  //
6195
6205
  // {
6196
6206
  // "tranId":13526853623
@@ -9128,7 +9138,7 @@ export default class binance extends Exchange {
9128
9138
  * @method
9129
9139
  * @name binance#repayCrossMargin
9130
9140
  * @description repay borrowed margin and interest
9131
- * @see https://binance-docs.github.io/apidocs/spot/en/#margin-account-repay-margin
9141
+ * @see https://binance-docs.github.io/apidocs/spot/en/#margin-account-borrow-repay-margin
9132
9142
  * @param {string} code unified currency code of the currency to repay
9133
9143
  * @param {float} amount the amount to repay
9134
9144
  * @param {object} [params] extra parameters specific to the exchange API endpoint
@@ -9140,8 +9150,9 @@ export default class binance extends Exchange {
9140
9150
  'asset': currency['id'],
9141
9151
  'amount': this.currencyToPrecision(code, amount),
9142
9152
  'isIsolated': 'FALSE',
9153
+ 'type': 'REPAY',
9143
9154
  };
9144
- const response = await this.sapiPostMarginRepay(this.extend(request, params));
9155
+ const response = await this.sapiPostMarginBorrowRepay(this.extend(request, params));
9145
9156
  //
9146
9157
  // {
9147
9158
  // "tranId": 108988250265,
@@ -9155,7 +9166,7 @@ export default class binance extends Exchange {
9155
9166
  * @method
9156
9167
  * @name binance#repayIsolatedMargin
9157
9168
  * @description repay borrowed margin and interest
9158
- * @see https://binance-docs.github.io/apidocs/spot/en/#margin-account-repay-margin
9169
+ * @see https://binance-docs.github.io/apidocs/spot/en/#margin-account-borrow-repay-margin
9159
9170
  * @param {string} symbol unified market symbol, required for isolated margin
9160
9171
  * @param {string} code unified currency code of the currency to repay
9161
9172
  * @param {float} amount the amount to repay
@@ -9170,8 +9181,9 @@ export default class binance extends Exchange {
9170
9181
  'amount': this.currencyToPrecision(code, amount),
9171
9182
  'symbol': market['id'],
9172
9183
  'isIsolated': 'TRUE',
9184
+ 'type': 'REPAY',
9173
9185
  };
9174
- const response = await this.sapiPostMarginRepay(this.extend(request, params));
9186
+ const response = await this.sapiPostMarginBorrowRepay(this.extend(request, params));
9175
9187
  //
9176
9188
  // {
9177
9189
  // "tranId": 108988250265,
@@ -9185,7 +9197,7 @@ export default class binance extends Exchange {
9185
9197
  * @method
9186
9198
  * @name binance#borrowCrossMargin
9187
9199
  * @description create a loan to borrow margin
9188
- * @see https://binance-docs.github.io/apidocs/spot/en/#margin-account-borrow-margin
9200
+ * @see https://binance-docs.github.io/apidocs/spot/en/#margin-account-borrow-repay-margin
9189
9201
  * @param {string} code unified currency code of the currency to borrow
9190
9202
  * @param {float} amount the amount to borrow
9191
9203
  * @param {object} [params] extra parameters specific to the exchange API endpoint
@@ -9197,8 +9209,9 @@ export default class binance extends Exchange {
9197
9209
  'asset': currency['id'],
9198
9210
  'amount': this.currencyToPrecision(code, amount),
9199
9211
  'isIsolated': 'FALSE',
9212
+ 'type': 'BORROW',
9200
9213
  };
9201
- const response = await this.sapiPostMarginLoan(this.extend(request, params));
9214
+ const response = await this.sapiPostMarginBorrowRepay(this.extend(request, params));
9202
9215
  //
9203
9216
  // {
9204
9217
  // "tranId": 108988250265,
@@ -9212,7 +9225,7 @@ export default class binance extends Exchange {
9212
9225
  * @method
9213
9226
  * @name binance#borrowIsolatedMargin
9214
9227
  * @description create a loan to borrow margin
9215
- * @see https://binance-docs.github.io/apidocs/spot/en/#margin-account-borrow-margin
9228
+ * @see https://binance-docs.github.io/apidocs/spot/en/#margin-account-borrow-repay-margin
9216
9229
  * @param {string} symbol unified market symbol, required for isolated margin
9217
9230
  * @param {string} code unified currency code of the currency to borrow
9218
9231
  * @param {float} amount the amount to borrow
@@ -9227,8 +9240,9 @@ export default class binance extends Exchange {
9227
9240
  'amount': this.currencyToPrecision(code, amount),
9228
9241
  'symbol': market['id'],
9229
9242
  'isIsolated': 'TRUE',
9243
+ 'type': 'BORROW',
9230
9244
  };
9231
- const response = await this.sapiPostMarginLoan(this.extend(request, params));
9245
+ const response = await this.sapiPostMarginBorrowRepay(this.extend(request, params));
9232
9246
  //
9233
9247
  // {
9234
9248
  // "tranId": 108988250265,
package/js/src/bingx.js CHANGED
@@ -39,6 +39,8 @@ export default class bingx extends Exchange {
39
39
  'createMarketSellOrderWithCost': true,
40
40
  'createOrder': true,
41
41
  'createOrders': true,
42
+ 'createTrailingAmountOrder': true,
43
+ 'createTrailingPercentOrder': true,
42
44
  'fetchBalance': true,
43
45
  'fetchClosedOrders': true,
44
46
  'fetchCurrencies': true,
@@ -120,6 +122,7 @@ export default class bingx extends Exchange {
120
122
  'trade/query': 3,
121
123
  'trade/openOrders': 3,
122
124
  'trade/historyOrders': 3,
125
+ 'trade/myTrades': 3,
123
126
  'user/commissionRate': 3,
124
127
  'account/balance': 3,
125
128
  },
@@ -179,6 +182,7 @@ export default class bingx extends Exchange {
179
182
  'user/positions': 3,
180
183
  'user/income': 3,
181
184
  'trade/openOrders': 3,
185
+ 'trade/openOrder': 3,
182
186
  'trade/order': 3,
183
187
  'trade/marginType': 3,
184
188
  'trade/leverage': 3,
@@ -846,6 +850,22 @@ export default class bingx extends Exchange {
846
850
  // "buyerMaker": false
847
851
  // }
848
852
  //
853
+ // spot
854
+ // fetchMyTrades
855
+ // {
856
+ // "symbol": "LTC-USDT",
857
+ // "id": 36237072,
858
+ // "orderId": 1674069326895775744,
859
+ // "price": "85.891",
860
+ // "qty": "0.0582",
861
+ // "quoteQty": "4.9988562000000005",
862
+ // "commission": -0.00005820000000000001,
863
+ // "commissionAsset": "LTC",
864
+ // "time": 1687964205000,
865
+ // "isBuyer": true,
866
+ // "isMaker": false
867
+ // }
868
+ //
849
869
  // swap
850
870
  // fetchTrades
851
871
  //
@@ -908,7 +928,7 @@ export default class bingx extends Exchange {
908
928
  }
909
929
  const cost = this.safeString(trade, 'quoteQty');
910
930
  const type = (cost === undefined) ? 'spot' : 'swap';
911
- const currencyId = this.safeString2(trade, 'currency', 'N');
931
+ const currencyId = this.safeStringN(trade, ['currency', 'N', 'commissionAsset']);
912
932
  const currencyCode = this.safeCurrencyCode(currencyId);
913
933
  const m = this.safeValue(trade, 'm');
914
934
  const marketId = this.safeString(trade, 's');
@@ -924,6 +944,14 @@ export default class bingx extends Exchange {
924
944
  takeOrMaker = 'taker';
925
945
  }
926
946
  }
947
+ const isBuyer = this.safeValue(trade, 'isBuyer');
948
+ if (isBuyer !== undefined) {
949
+ side = isBuyer ? 'buy' : 'sell';
950
+ }
951
+ const isMaker = this.safeValue(trade, 'isMaker');
952
+ if (isMaker !== undefined) {
953
+ takeOrMaker = isMaker ? 'maker' : 'taker';
954
+ }
927
955
  return this.safeTrade({
928
956
  'id': this.safeStringN(trade, ['id', 't']),
929
957
  'info': trade,
@@ -2420,6 +2448,7 @@ export default class bingx extends Exchange {
2420
2448
  'symbol': market['id'],
2421
2449
  };
2422
2450
  const clientOrderIds = this.safeValue(params, 'clientOrderIds');
2451
+ params = this.omit(params, 'clientOrderIds');
2423
2452
  let idsToParse = ids;
2424
2453
  const areClientOrderIds = (clientOrderIds !== undefined);
2425
2454
  if (areClientOrderIds) {
@@ -2438,8 +2467,12 @@ export default class bingx extends Exchange {
2438
2467
  response = await this.spotV1PrivatePostTradeCancelOrders(this.extend(request, params));
2439
2468
  }
2440
2469
  else {
2441
- const swapReqKey = areClientOrderIds ? 'ClientOrderIDList' : 'orderIdList';
2442
- request[swapReqKey] = parsedIds;
2470
+ if (areClientOrderIds) {
2471
+ request['clientOrderIDList'] = this.json(parsedIds);
2472
+ }
2473
+ else {
2474
+ request['orderIdList'] = parsedIds;
2475
+ }
2443
2476
  response = await this.swapV2PrivateDeleteTradeBatchOrders(this.extend(request, params));
2444
2477
  }
2445
2478
  //
@@ -3253,57 +3286,101 @@ export default class bingx extends Exchange {
3253
3286
  * @method
3254
3287
  * @name bingx#fetchMyTrades
3255
3288
  * @description fetch all trades made by the user
3289
+ * @see https://bingx-api.github.io/docs/#/en-us/spot/trade-api.html#Query%20Order%20History
3256
3290
  * @see https://bingx-api.github.io/docs/#/swapV2/trade-api.html#Query%20historical%20transaction%20orders
3257
3291
  * @param {string} [symbol] unified market symbol
3258
3292
  * @param {int} [since] the earliest time in ms to fetch trades for
3259
3293
  * @param {int} [limit] the maximum number of trades structures to retrieve
3260
3294
  * @param {object} [params] extra parameters specific to the exchange API endpoint
3295
+ * @param {int} [params.until] timestamp in ms for the ending date filter, default is undefined
3261
3296
  * @param {string} params.trandingUnit COIN (directly represent assets such as BTC and ETH) or CONT (represents the number of contract sheets)
3262
3297
  * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
3263
3298
  */
3264
3299
  if (symbol === undefined) {
3265
3300
  throw new ArgumentsRequired(this.id + ' fetchMyTrades() requires a symbol argument');
3266
3301
  }
3267
- if (since === undefined) {
3268
- throw new ArgumentsRequired(this.id + ' fetchMyTrades() requires a since argument');
3269
- }
3270
- const tradingUnit = this.safeStringUpper(params, 'tradingUnit', 'CONT');
3271
3302
  await this.loadMarkets();
3272
3303
  const market = this.market(symbol);
3273
- if (market['spot']) {
3274
- throw new BadSymbol(this.id + ' fetchMyTrades() supports swap contracts only');
3275
- }
3304
+ const now = this.milliseconds();
3305
+ let response = undefined;
3276
3306
  const request = {
3277
3307
  'symbol': market['id'],
3278
- 'tradingUnit': tradingUnit,
3279
- 'startTs': since,
3280
- 'endTs': this.nonce(),
3281
3308
  };
3282
- const query = this.omit(params, 'tradingUnit');
3283
- const response = await this.swapV2PrivateGetTradeAllFillOrders(this.extend(request, query));
3284
- //
3285
- // {
3286
- // "code": "0",
3287
- // "msg": '',
3288
- // "data": { fill_orders: [
3289
- // {
3290
- // "volume": "0.1",
3291
- // "price": "106.75",
3292
- // "amount": "10.6750",
3293
- // "commission": "-0.0053",
3294
- // "currency": "USDT",
3295
- // "orderId": "1676213270274379776",
3296
- // "liquidatedPrice": "0.00",
3297
- // "liquidatedMarginRatio": "0.00",
3298
- // "filledTime": "2023-07-04T20:56:01.000+0800"
3299
- // }
3300
- // ]
3301
- // }
3302
- // }
3303
- //
3304
- const data = this.safeValue(response, 'data', []);
3305
- const fillOrders = this.safeValue(data, 'fill_orders', []);
3306
- return this.parseTrades(fillOrders, market, since, limit, query);
3309
+ if (since !== undefined) {
3310
+ const startTimeReq = market['spot'] ? 'startTime' : 'startTs';
3311
+ request[startTimeReq] = since;
3312
+ }
3313
+ else if (market['swap']) {
3314
+ request['startTs'] = now - 7776000000; // 90 days
3315
+ }
3316
+ const until = this.safeInteger(params, 'until');
3317
+ params = this.omit(params, 'until');
3318
+ if (until !== undefined) {
3319
+ const endTimeReq = market['spot'] ? 'endTime' : 'endTs';
3320
+ request[endTimeReq] = until;
3321
+ }
3322
+ else if (market['swap']) {
3323
+ request['endTs'] = now;
3324
+ }
3325
+ let fills = undefined;
3326
+ if (market['spot']) {
3327
+ response = await this.spotV1PrivateGetTradeMyTrades(this.extend(request, params));
3328
+ const data = this.safeValue(response, 'data', []);
3329
+ fills = this.safeValue(data, 'fills', []);
3330
+ //
3331
+ // {
3332
+ // "code": 0,
3333
+ // "msg": "",
3334
+ // "debugMsg": "",
3335
+ // "data": {
3336
+ // "fills": [
3337
+ // {
3338
+ // "symbol": "LTC-USDT",
3339
+ // "id": 36237072,
3340
+ // "orderId": 1674069326895775744,
3341
+ // "price": "85.891",
3342
+ // "qty": "0.0582",
3343
+ // "quoteQty": "4.9988562000000005",
3344
+ // "commission": -0.00005820000000000001,
3345
+ // "commissionAsset": "LTC",
3346
+ // "time": 1687964205000,
3347
+ // "isBuyer": true,
3348
+ // "isMaker": false
3349
+ // }
3350
+ // ]
3351
+ // }
3352
+ // }
3353
+ //
3354
+ }
3355
+ else {
3356
+ const tradingUnit = this.safeStringUpper(params, 'tradingUnit', 'CONT');
3357
+ params = this.omit(params, 'tradingUnit');
3358
+ request['tradingUnit'] = tradingUnit;
3359
+ response = await this.swapV2PrivateGetTradeAllFillOrders(this.extend(request, params));
3360
+ const data = this.safeValue(response, 'data', []);
3361
+ fills = this.safeValue(data, 'fill_orders', []);
3362
+ //
3363
+ // {
3364
+ // "code": "0",
3365
+ // "msg": '',
3366
+ // "data": { fill_orders: [
3367
+ // {
3368
+ // "volume": "0.1",
3369
+ // "price": "106.75",
3370
+ // "amount": "10.6750",
3371
+ // "commission": "-0.0053",
3372
+ // "currency": "USDT",
3373
+ // "orderId": "1676213270274379776",
3374
+ // "liquidatedPrice": "0.00",
3375
+ // "liquidatedMarginRatio": "0.00",
3376
+ // "filledTime": "2023-07-04T20:56:01.000+0800"
3377
+ // }
3378
+ // ]
3379
+ // }
3380
+ // }
3381
+ //
3382
+ }
3383
+ return this.parseTrades(fills, market, since, limit, params);
3307
3384
  }
3308
3385
  parseDepositWithdrawFee(fee, currency = undefined) {
3309
3386
  //
@@ -29,8 +29,8 @@ export default class bitfinex extends Exchange {
29
29
  parseTransfer(transfer: any, currency?: Currency): {
30
30
  info: any;
31
31
  id: any;
32
- timestamp: number;
33
- datetime: string;
32
+ timestamp: any;
33
+ datetime: any;
34
34
  currency: string;
35
35
  amount: any;
36
36
  fromAccount: any;
@@ -792,12 +792,11 @@ export default class bitfinex extends Exchange {
792
792
  // "message": "0.0001 Bitcoin transfered from Margin to Exchange"
793
793
  // }
794
794
  //
795
- const timestamp = this.milliseconds();
796
795
  return {
797
796
  'info': transfer,
798
797
  'id': undefined,
799
- 'timestamp': timestamp,
800
- 'datetime': this.iso8601(timestamp),
798
+ 'timestamp': undefined,
799
+ 'datetime': undefined,
801
800
  'currency': this.safeCurrencyCode(undefined, currency),
802
801
  'amount': undefined,
803
802
  'fromAccount': undefined,
package/js/src/bitget.js CHANGED
@@ -46,6 +46,7 @@ export default class bitget extends Exchange {
46
46
  'createOrder': true,
47
47
  'createOrders': true,
48
48
  'createReduceOnlyOrder': false,
49
+ 'createTrailingPercentOrder': true,
49
50
  'editOrder': true,
50
51
  'fetchAccounts': false,
51
52
  'fetchBalance': true,
@@ -2959,7 +2960,12 @@ export default class bitget extends Exchange {
2959
2960
  'symbol': market['id'],
2960
2961
  };
2961
2962
  if (limit !== undefined) {
2962
- request['limit'] = limit;
2963
+ if (market['contract']) {
2964
+ request['limit'] = Math.min(limit, 1000);
2965
+ }
2966
+ else {
2967
+ request['limit'] = limit;
2968
+ }
2963
2969
  }
2964
2970
  const options = this.safeValue(this.options, 'fetchTrades', {});
2965
2971
  let response = undefined;
@@ -3271,31 +3277,45 @@ export default class bitget extends Exchange {
3271
3277
  const marketType = market['spot'] ? 'spot' : 'swap';
3272
3278
  const timeframes = this.options['timeframes'][marketType];
3273
3279
  const selectedTimeframe = this.safeString(timeframes, timeframe, timeframe);
3274
- let request = {
3280
+ const request = {
3275
3281
  'symbol': market['id'],
3276
3282
  'granularity': selectedTimeframe,
3277
3283
  };
3278
- [request, params] = this.handleUntilOption('endTime', request, params);
3279
- if (since !== undefined) {
3280
- request['startTime'] = limit;
3281
- }
3284
+ const until = this.safeInteger2(params, 'until', 'till');
3285
+ params = this.omit(params, ['until', 'till']);
3282
3286
  if (limit !== undefined) {
3283
3287
  request['limit'] = limit;
3284
3288
  }
3285
3289
  const options = this.safeValue(this.options, 'fetchOHLCV', {});
3290
+ const spotOptions = this.safeValue(options, 'spot', {});
3291
+ const defaultSpotMethod = this.safeString(spotOptions, 'method', 'publicSpotGetV2SpotMarketCandles');
3292
+ const method = this.safeString(params, 'method', defaultSpotMethod);
3293
+ params = this.omit(params, 'method');
3294
+ if (method !== 'publicSpotGetV2SpotMarketHistoryCandles') {
3295
+ if (since !== undefined) {
3296
+ request['startTime'] = since;
3297
+ }
3298
+ if (until !== undefined) {
3299
+ request['endTime'] = until;
3300
+ }
3301
+ }
3286
3302
  let response = undefined;
3287
3303
  if (market['spot']) {
3288
- const spotOptions = this.safeValue(options, 'spot', {});
3289
- const defaultSpotMethod = this.safeString(spotOptions, 'method', 'publicSpotGetV2SpotMarketCandles');
3290
- const method = this.safeString(params, 'method', defaultSpotMethod);
3291
- params = this.omit(params, 'method');
3292
3304
  if (method === 'publicSpotGetV2SpotMarketCandles') {
3293
3305
  response = await this.publicSpotGetV2SpotMarketCandles(this.extend(request, params));
3294
3306
  }
3295
3307
  else if (method === 'publicSpotGetV2SpotMarketHistoryCandles') {
3296
- const until = this.safeInteger2(params, 'until', 'till');
3297
- params = this.omit(params, ['until', 'till']);
3298
- if (until === undefined) {
3308
+ if (since !== undefined) {
3309
+ if (limit === undefined) {
3310
+ limit = 100; // exchange default
3311
+ }
3312
+ const duration = this.parseTimeframe(timeframe) * 1000;
3313
+ request['endTime'] = this.sum(since, duration * limit);
3314
+ }
3315
+ else if (until !== undefined) {
3316
+ request['endTime'] = until;
3317
+ }
3318
+ else {
3299
3319
  request['endTime'] = this.milliseconds();
3300
3320
  }
3301
3321
  response = await this.publicSpotGetV2SpotMarketHistoryCandles(this.extend(request, params));
@@ -109,8 +109,8 @@ export default class bitmart extends Exchange {
109
109
  currency: string;
110
110
  amount: any;
111
111
  symbol: any;
112
- timestamp: number;
113
- datetime: string;
112
+ timestamp: any;
113
+ datetime: any;
114
114
  info: any;
115
115
  };
116
116
  fetchIsolatedBorrowRate(symbol: string, params?: {}): Promise<{
package/js/src/bitmart.js CHANGED
@@ -47,6 +47,7 @@ export default class bitmart extends Exchange {
47
47
  'createStopLimitOrder': false,
48
48
  'createStopMarketOrder': false,
49
49
  'createStopOrder': false,
50
+ 'createTrailingPercentOrder': true,
50
51
  'fetchBalance': true,
51
52
  'fetchBorrowInterest': true,
52
53
  'fetchBorrowRateHistories': false,
@@ -265,8 +266,8 @@ export default class bitmart extends Exchange {
265
266
  'trading': {
266
267
  'tierBased': true,
267
268
  'percentage': true,
268
- 'taker': this.parseNumber('0.0025'),
269
- 'maker': this.parseNumber('0.0025'),
269
+ 'taker': this.parseNumber('0.0040'),
270
+ 'maker': this.parseNumber('0.0035'),
270
271
  'tiers': {
271
272
  'taker': [
272
273
  [this.parseNumber('0'), this.parseNumber('0.0020')],
@@ -3515,14 +3516,13 @@ export default class bitmart extends Exchange {
3515
3516
  // "repay_id": "2afcc16d99bd4707818c5a355dc89bed",
3516
3517
  // }
3517
3518
  //
3518
- const timestamp = this.milliseconds();
3519
3519
  return {
3520
3520
  'id': this.safeString2(info, 'borrow_id', 'repay_id'),
3521
3521
  'currency': this.safeCurrencyCode(undefined, currency),
3522
3522
  'amount': undefined,
3523
3523
  'symbol': undefined,
3524
- 'timestamp': timestamp,
3525
- 'datetime': this.iso8601(timestamp),
3524
+ 'timestamp': undefined,
3525
+ 'datetime': undefined,
3526
3526
  'info': info,
3527
3527
  };
3528
3528
  }
package/js/src/bitmex.js CHANGED
@@ -45,6 +45,7 @@ export default class bitmex extends Exchange {
45
45
  'closePosition': true,
46
46
  'createOrder': true,
47
47
  'createReduceOnlyOrder': true,
48
+ 'createTrailingAmountOrder': true,
48
49
  'editOrder': true,
49
50
  'fetchBalance': true,
50
51
  'fetchClosedOrders': true,
package/js/src/bybit.js CHANGED
@@ -49,6 +49,7 @@ export default class bybit extends Exchange {
49
49
  'createStopLimitOrder': true,
50
50
  'createStopMarketOrder': true,
51
51
  'createStopOrder': true,
52
+ 'createTrailingAmountOrder': true,
52
53
  'editOrder': true,
53
54
  'fetchBalance': true,
54
55
  'fetchBorrowInterest': false,
@@ -295,6 +296,7 @@ export default class bybit extends Exchange {
295
296
  'v5/account/wallet-balance': 1,
296
297
  'v5/account/borrow-history': 1,
297
298
  'v5/account/set-collateral-switch': 5,
299
+ 'v5/account/set-collateral-switch-batch': 5,
298
300
  'v5/account/collateral-info': 1,
299
301
  'v5/asset/coin-greeks': 1,
300
302
  'v5/account/fee-rate': 10,