ccxt 4.2.10 → 4.2.12

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 (383) hide show
  1. package/README.md +5 -5
  2. package/build.sh +4 -4
  3. package/dist/ccxt.browser.js +695 -282
  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 +2142 -0
  125. package/dist/cjs/js/src/binance.js +9729 -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 +3737 -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 +8284 -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 +3274 -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 +7054 -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 +9024 -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 +759 -0
  185. package/dist/cjs/js/src/indodax.js +1069 -0
  186. package/dist/cjs/js/src/kraken.js +2861 -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 +2825 -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 +7329 -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 +4715 -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 +1558 -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 +1865 -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 +2715 -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/dist/cjs/src/base/Exchange.js +11 -0
  329. package/dist/cjs/src/bingx.js +0 -10
  330. package/dist/cjs/src/bitget.js +14 -5
  331. package/dist/cjs/src/bybit.js +1 -1
  332. package/dist/cjs/src/kucoin.js +29 -5
  333. package/js/ccxt.d.ts +1 -1
  334. package/js/ccxt.js +1 -1
  335. package/js/src/abstract/bigone.d.ts +18 -0
  336. package/js/src/abstract/binance.d.ts +2 -0
  337. package/js/src/abstract/binancecoinm.d.ts +2 -0
  338. package/js/src/abstract/binanceus.d.ts +2 -0
  339. package/js/src/abstract/binanceusdm.d.ts +2 -0
  340. package/js/src/abstract/bybit.d.ts +1 -0
  341. package/js/src/abstract/gate.d.ts +11 -0
  342. package/js/src/abstract/gateio.d.ts +11 -0
  343. package/js/src/alpaca.js +18 -18
  344. package/js/src/base/Exchange.d.ts +6 -1
  345. package/js/src/base/Exchange.js +112 -12
  346. package/js/src/bigone.d.ts +1 -2
  347. package/js/src/bigone.js +340 -145
  348. package/js/src/binance.js +15 -8
  349. package/js/src/bingx.d.ts +0 -1
  350. package/js/src/bingx.js +9 -12
  351. package/js/src/bitfinex.d.ts +2 -2
  352. package/js/src/bitfinex.js +2 -3
  353. package/js/src/bitget.js +35 -13
  354. package/js/src/bitmart.d.ts +2 -2
  355. package/js/src/bitmart.js +3 -3
  356. package/js/src/bitmex.js +1 -0
  357. package/js/src/bybit.js +3 -1
  358. package/js/src/coinlist.js +2 -3
  359. package/js/src/coinsph.js +2 -3
  360. package/js/src/deribit.js +1 -0
  361. package/js/src/gate.d.ts +4 -4
  362. package/js/src/gate.js +22 -3
  363. package/js/src/hitbtc.d.ts +4 -4
  364. package/js/src/hitbtc.js +2 -3
  365. package/js/src/htx.js +4 -7
  366. package/js/src/huobijp.js +2 -3
  367. package/js/src/kraken.js +1 -0
  368. package/js/src/kucoin.js +29 -5
  369. package/js/src/mexc.js +2 -1
  370. package/js/src/okx.js +13 -3
  371. package/js/src/pro/binance.d.ts +2 -23
  372. package/js/src/pro/binance.js +58 -22
  373. package/js/src/pro/coinbase.d.ts +2 -2
  374. package/js/src/pro/coinbase.js +4 -1
  375. package/js/src/pro/coinbasepro.d.ts +2 -2
  376. package/js/src/pro/hitbtc.d.ts +2 -2
  377. package/js/src/pro/poloniex.d.ts +2 -2
  378. package/js/src/upbit.d.ts +3 -101
  379. package/js/src/upbit.js +12 -12
  380. package/js/src/woo.js +2 -0
  381. package/package.json +11 -11
  382. package/skip-tests.json +5 -0
  383. package/tests-manager.sh +2 -2
package/js/src/kucoin.js CHANGED
@@ -3448,10 +3448,12 @@ export default class kucoin extends Exchange {
3448
3448
  * @name kucoin#fetchBalance
3449
3449
  * @description query for balance and get the amount of funds available for trading or funds locked in orders
3450
3450
  * @see https://docs.kucoin.com/#list-accounts
3451
+ * @see https://www.kucoin.com/docs/rest/account/basic-info/get-account-list-spot-margin-trade_hf
3451
3452
  * @see https://docs.kucoin.com/#query-isolated-margin-account-info
3452
3453
  * @param {object} [params] extra parameters specific to the exchange API endpoint
3453
3454
  * @param {object} [params.marginMode] 'cross' or 'isolated', margin type for fetching margin balance
3454
3455
  * @param {object} [params.type] extra parameters specific to the exchange API endpoint
3456
+ * @param {object} [params.hf] *default if false* if true, the result includes the balance of the high frequency account
3455
3457
  * @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
3456
3458
  */
3457
3459
  await this.loadMarkets();
@@ -3463,8 +3465,13 @@ export default class kucoin extends Exchange {
3463
3465
  const defaultType = this.safeString2(this.options, 'fetchBalance', 'defaultType', 'spot');
3464
3466
  const requestedType = this.safeString(params, 'type', defaultType);
3465
3467
  const accountsByType = this.safeValue(this.options, 'accountsByType');
3466
- const type = this.safeString(accountsByType, requestedType, requestedType);
3468
+ let type = this.safeString(accountsByType, requestedType, requestedType);
3467
3469
  params = this.omit(params, 'type');
3470
+ const isHf = this.safeValue(params, 'hf', false);
3471
+ if (isHf) {
3472
+ type = 'trade_hf';
3473
+ }
3474
+ params = this.omit(params, 'hf');
3468
3475
  const [marginMode, query] = this.handleMarginModeAndParams('fetchBalance', params);
3469
3476
  let response = undefined;
3470
3477
  const request = {};
@@ -3546,7 +3553,7 @@ export default class kucoin extends Exchange {
3546
3553
  'datetime': undefined,
3547
3554
  };
3548
3555
  if (isolated) {
3549
- const assets = this.safeValue(data, 'assets', []);
3556
+ const assets = this.safeValue(data, 'assets', data);
3550
3557
  for (let i = 0; i < assets.length; i++) {
3551
3558
  const entry = assets[i];
3552
3559
  const marketId = this.safeString(entry, 'symbol');
@@ -3877,12 +3884,14 @@ export default class kucoin extends Exchange {
3877
3884
  * @method
3878
3885
  * @name kucoin#fetchLedger
3879
3886
  * @see https://docs.kucoin.com/#get-account-ledgers
3887
+ * @see https://www.kucoin.com/docs/rest/account/basic-info/get-account-ledgers-trade_hf
3888
+ * @see https://www.kucoin.com/docs/rest/account/basic-info/get-account-ledgers-margin_hf
3880
3889
  * @description fetch the history of changes, actions done by the user or operations that altered balance of the user
3881
- * @see https://docs.kucoin.com/#get-account-ledgers
3882
3890
  * @param {string} code unified currency code, default is undefined
3883
3891
  * @param {int} [since] timestamp in ms of the earliest ledger entry, default is undefined
3884
3892
  * @param {int} [limit] max number of ledger entrys to return, default is undefined
3885
3893
  * @param {object} [params] extra parameters specific to the exchange API endpoint
3894
+ * @param {boolean} [params.hf] default false, when true will fetch ledger entries for the high frequency trading account
3886
3895
  * @param {int} [params.until] the latest time in ms to fetch entries for
3887
3896
  * @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [availble parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
3888
3897
  * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger-structure}
@@ -3891,6 +3900,8 @@ export default class kucoin extends Exchange {
3891
3900
  await this.loadAccounts();
3892
3901
  let paginate = false;
3893
3902
  [paginate, params] = this.handleOptionAndParams(params, 'fetchLedger', 'paginate');
3903
+ const isHf = this.safeValue(params, 'hf');
3904
+ params = this.omit(params, 'hf');
3894
3905
  if (paginate) {
3895
3906
  return await this.fetchPaginatedCallDynamic('fetchLedger', code, since, limit, params);
3896
3907
  }
@@ -3911,7 +3922,20 @@ export default class kucoin extends Exchange {
3911
3922
  request['currency'] = currency['id'];
3912
3923
  }
3913
3924
  [request, params] = this.handleUntilOption('endAt', request, params);
3914
- const response = await this.privateGetAccountsLedgers(this.extend(request, params));
3925
+ let marginMode = undefined;
3926
+ [marginMode, params] = this.handleMarginModeAndParams('fetchLedger', params);
3927
+ let response = undefined;
3928
+ if (isHf) {
3929
+ if (marginMode !== undefined) {
3930
+ response = await this.privateGetHfMarginAccountLedgers(this.extend(request, params));
3931
+ }
3932
+ else {
3933
+ response = await this.privateGetHfAccountsLedgers(this.extend(request, params));
3934
+ }
3935
+ }
3936
+ else {
3937
+ response = await this.privateGetAccountsLedgers(this.extend(request, params));
3938
+ }
3915
3939
  //
3916
3940
  // {
3917
3941
  // "code":"200000",
@@ -3950,7 +3974,7 @@ export default class kucoin extends Exchange {
3950
3974
  // }
3951
3975
  //
3952
3976
  const data = this.safeValue(response, 'data');
3953
- const items = this.safeValue(data, 'items');
3977
+ const items = this.safeValue(data, 'items', data);
3954
3978
  return this.parseLedger(items, currency, since, limit);
3955
3979
  }
3956
3980
  calculateRateLimiterCost(api, method, path, params, config = {}) {
package/js/src/mexc.js CHANGED
@@ -1328,7 +1328,8 @@ export default class mexc extends Exchange {
1328
1328
  // ]
1329
1329
  // }
1330
1330
  //
1331
- orderbook = this.parseOrderBook(response, symbol);
1331
+ const spotTimestamp = this.safeInteger(response, 'timestamp');
1332
+ orderbook = this.parseOrderBook(response, symbol, spotTimestamp);
1332
1333
  orderbook['nonce'] = this.safeInteger(response, 'lastUpdateId');
1333
1334
  }
1334
1335
  else if (market['swap']) {
package/js/src/okx.js CHANGED
@@ -41,6 +41,7 @@ export default class okx extends Exchange {
41
41
  'createDepositAddress': false,
42
42
  'createMarketBuyOrderWithCost': true,
43
43
  'createMarketSellOrderWithCost': true,
44
+ 'createTrailingPercentOrder': true,
44
45
  'createOrder': true,
45
46
  'createOrders': true,
46
47
  'createPostOnlyOrder': true,
@@ -160,8 +161,7 @@ export default class okx extends Exchange {
160
161
  'referral': {
161
162
  // old reflink 0% discount https://www.okx.com/join/1888677
162
163
  // new reflink 20% discount https://www.okx.com/join/CCXT2023
163
- // okx + ccxt campaign reflink with 20% discount https://www.okx.com/activities/ccxt-trade-and-earn?channelid=CCXT2023
164
- 'url': 'https://www.okx.com/activities/ccxt-trade-and-earn?channelid=CCXT2023',
164
+ 'url': 'https://www.okx.com/join/CCXT2023',
165
165
  'discount': 0.2,
166
166
  },
167
167
  'test': {
@@ -1218,10 +1218,20 @@ export default class okx extends Exchange {
1218
1218
  for (let i = 0; i < data.length; i++) {
1219
1219
  const event = data[i];
1220
1220
  const state = this.safeString(event, 'state');
1221
+ update['eta'] = this.safeInteger(event, 'end');
1222
+ update['url'] = this.safeString(event, 'href');
1221
1223
  if (state === 'ongoing') {
1222
- update['eta'] = this.safeInteger(event, 'end');
1223
1224
  update['status'] = 'maintenance';
1224
1225
  }
1226
+ else if (state === 'scheduled') {
1227
+ update['status'] = 'ok';
1228
+ }
1229
+ else if (state === 'completed') {
1230
+ update['status'] = 'ok';
1231
+ }
1232
+ else if (state === 'canceled') {
1233
+ update['status'] = 'ok';
1234
+ }
1225
1235
  }
1226
1236
  return update;
1227
1237
  }
@@ -4,7 +4,7 @@ import Client from '../base/ws/Client.js';
4
4
  export default class binance extends binanceRest {
5
5
  describe(): any;
6
6
  requestId(url: any): any;
7
- stream(type: any, subscriptionHash: any): string;
7
+ stream(type: any, subscriptionHash: any, numSubscriptions?: number): string;
8
8
  watchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
9
9
  watchOrderBookForSymbols(symbols: string[], limit?: Int, params?: {}): Promise<OrderBook>;
10
10
  fetchOrderBookSnapshot(client: any, message: any, subscription: any): Promise<void>;
@@ -22,28 +22,7 @@ export default class binance extends binanceRest {
22
22
  handleOHLCV(client: Client, message: any): void;
23
23
  watchTicker(symbol: string, params?: {}): Promise<Ticker>;
24
24
  watchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
25
- parseWsTicker(message: any, marketType: any): {
26
- symbol: string;
27
- timestamp: any;
28
- datetime: string;
29
- high: number;
30
- low: number;
31
- bid: number;
32
- bidVolume: number;
33
- ask: number;
34
- askVolume: number;
35
- vwap: number;
36
- open: number;
37
- close: number;
38
- last: number;
39
- previousClose: number;
40
- change: number;
41
- percentage: number;
42
- average: any;
43
- baseVolume: number;
44
- quoteVolume: number;
45
- info: any;
46
- };
25
+ parseWsTicker(message: any, marketType: any): Ticker;
47
26
  handleTicker(client: Client, message: any): void;
48
27
  handleTickers(client: Client, message: any): void;
49
28
  signParams(params?: {}): any;
@@ -73,6 +73,12 @@ export default class binance extends binanceRest {
73
73
  'future': 50,
74
74
  'delivery': 50, // max 200
75
75
  },
76
+ 'subscriptionLimitByStream': {
77
+ 'spot': 200,
78
+ 'margin': 200,
79
+ 'future': 200,
80
+ 'delivery': 200,
81
+ },
76
82
  'streamBySubscriptionsHash': {},
77
83
  'streamIndex': -1,
78
84
  // get updates every 1000ms or 100ms
@@ -121,7 +127,7 @@ export default class binance extends binanceRest {
121
127
  this.options['requestId'][url] = newValue;
122
128
  return newValue;
123
129
  }
124
- stream(type, subscriptionHash) {
130
+ stream(type, subscriptionHash, numSubscriptions = 1) {
125
131
  const streamBySubscriptionsHash = this.safeValue(this.options, 'streamBySubscriptionsHash', {});
126
132
  let stream = this.safeString(streamBySubscriptionsHash, subscriptionHash);
127
133
  if (stream === undefined) {
@@ -133,6 +139,17 @@ export default class binance extends binanceRest {
133
139
  this.options['streamIndex'] = streamIndex;
134
140
  stream = this.numberToString(normalizedIndex);
135
141
  this.options['streamBySubscriptionsHash'][subscriptionHash] = stream;
142
+ const subscriptionsByStreams = this.safeValue(this.options, 'numSubscriptionsByStream');
143
+ if (subscriptionsByStreams === undefined) {
144
+ this.options['numSubscriptionsByStream'] = {};
145
+ }
146
+ const subscriptionsByStream = this.safeInteger(this.options['numSubscriptionsByStream'], stream, 0);
147
+ const newNumSubscriptions = subscriptionsByStream + numSubscriptions;
148
+ const subscriptionLimitByStream = this.safeInteger(this.options, 'subscriptionLimitByStream', 200);
149
+ if (newNumSubscriptions > subscriptionLimitByStream) {
150
+ throw new BadRequest(this.id + ' reached the limit of subscriptions by stream. Increase the number of streams, or increase the stream limit or subscription limit by stream if the exchange allows.');
151
+ }
152
+ this.options['numSubscriptionsByStream'][stream] = subscriptionsByStream + numSubscriptions;
136
153
  }
137
154
  return stream;
138
155
  }
@@ -203,8 +220,14 @@ export default class binance extends binanceRest {
203
220
  type = firstMarket['linear'] ? 'future' : 'delivery';
204
221
  }
205
222
  const name = 'depth';
206
- const url = this.urls['api']['ws'][type] + '/' + this.stream(type, 'multipleOrderbook');
207
- const requestId = this.requestId(url);
223
+ let streamHash = 'multipleOrderbook';
224
+ if (symbols !== undefined) {
225
+ const symbolsLength = symbols.length;
226
+ if (symbolsLength > 200) {
227
+ throw new BadRequest(this.id + ' watchOrderBookForSymbols() accepts 200 symbols at most. To watch more symbols call watchOrderBookForSymbols() multiple times');
228
+ }
229
+ streamHash += '::' + symbols.join(',');
230
+ }
208
231
  const watchOrderBookRate = this.safeString(this.options, 'watchOrderBookRate', '100');
209
232
  const subParams = [];
210
233
  const messageHashes = [];
@@ -216,6 +239,9 @@ export default class binance extends binanceRest {
216
239
  const symbolHash = messageHash + '@' + watchOrderBookRate + 'ms';
217
240
  subParams.push(symbolHash);
218
241
  }
242
+ const messageHashesLength = messageHashes.length;
243
+ const url = this.urls['api']['ws'][type] + '/' + this.stream(type, streamHash, messageHashesLength);
244
+ const requestId = this.requestId(url);
219
245
  const request = {
220
246
  'method': 'SUBSCRIBE',
221
247
  'params': subParams,
@@ -459,6 +485,14 @@ export default class binance extends binanceRest {
459
485
  */
460
486
  await this.loadMarkets();
461
487
  symbols = this.marketSymbols(symbols, undefined, false, true, true);
488
+ let streamHash = 'multipleTrades';
489
+ if (symbols !== undefined) {
490
+ const symbolsLength = symbols.length;
491
+ if (symbolsLength > 200) {
492
+ throw new BadRequest(this.id + ' watchTradesForSymbols() accepts 200 symbols at most. To watch more symbols call watchTradesForSymbols() multiple times');
493
+ }
494
+ streamHash += '::' + symbols.join(',');
495
+ }
462
496
  const options = this.safeValue(this.options, 'watchTradesForSymbols', {});
463
497
  const name = this.safeString(options, 'name', 'trade');
464
498
  const firstMarket = this.market(symbols[0]);
@@ -474,7 +508,8 @@ export default class binance extends binanceRest {
474
508
  subParams.push(currentMessageHash);
475
509
  }
476
510
  const query = this.omit(params, 'type');
477
- const url = this.urls['api']['ws'][type] + '/' + this.stream(type, 'multipleTrades');
511
+ const subParamsLength = subParams.length;
512
+ const url = this.urls['api']['ws'][type] + '/' + this.stream(type, streamHash, subParamsLength);
478
513
  const requestId = this.requestId(url);
479
514
  const request = {
480
515
  'method': 'SUBSCRIBE',
@@ -958,30 +993,30 @@ export default class binance extends binanceRest {
958
993
  }
959
994
  const marketId = this.safeString(message, 's');
960
995
  const symbol = this.safeSymbol(marketId, undefined, undefined, marketType);
961
- const last = this.safeFloat(message, 'c');
962
- const ticker = {
996
+ const market = this.safeMarket(marketId, undefined, undefined, marketType);
997
+ const last = this.safeString(message, 'c');
998
+ return this.safeTicker({
963
999
  'symbol': symbol,
964
1000
  'timestamp': timestamp,
965
1001
  'datetime': this.iso8601(timestamp),
966
- 'high': this.safeFloat(message, 'h'),
967
- 'low': this.safeFloat(message, 'l'),
968
- 'bid': this.safeFloat(message, 'b'),
969
- 'bidVolume': this.safeFloat(message, 'B'),
970
- 'ask': this.safeFloat(message, 'a'),
971
- 'askVolume': this.safeFloat(message, 'A'),
972
- 'vwap': this.safeFloat(message, 'w'),
973
- 'open': this.safeFloat(message, 'o'),
1002
+ 'high': this.safeString(message, 'h'),
1003
+ 'low': this.safeString(message, 'l'),
1004
+ 'bid': this.safeString(message, 'b'),
1005
+ 'bidVolume': this.safeString(message, 'B'),
1006
+ 'ask': this.safeString(message, 'a'),
1007
+ 'askVolume': this.safeString(message, 'A'),
1008
+ 'vwap': this.safeString(message, 'w'),
1009
+ 'open': this.safeString(message, 'o'),
974
1010
  'close': last,
975
1011
  'last': last,
976
- 'previousClose': this.safeFloat(message, 'x'),
977
- 'change': this.safeFloat(message, 'p'),
978
- 'percentage': this.safeFloat(message, 'P'),
1012
+ 'previousClose': this.safeString(message, 'x'),
1013
+ 'change': this.safeString(message, 'p'),
1014
+ 'percentage': this.safeString(message, 'P'),
979
1015
  'average': undefined,
980
- 'baseVolume': this.safeFloat(message, 'v'),
981
- 'quoteVolume': this.safeFloat(message, 'q'),
1016
+ 'baseVolume': this.safeString(message, 'v'),
1017
+ 'quoteVolume': this.safeString(message, 'q'),
982
1018
  'info': message,
983
- };
984
- return ticker;
1019
+ }, market);
985
1020
  }
986
1021
  handleTicker(client, message) {
987
1022
  //
@@ -2246,7 +2281,8 @@ export default class binance extends binanceRest {
2246
2281
  market = this.getMarketFromSymbols(symbols);
2247
2282
  messageHash = '::' + symbols.join(',');
2248
2283
  }
2249
- let type = this.handleMarketTypeAndParams('watchPositions', market, params);
2284
+ let type = undefined;
2285
+ [type, params] = this.handleMarketTypeAndParams('watchPositions', market, params);
2250
2286
  if (type === 'spot' || type === 'margin') {
2251
2287
  type = 'future';
2252
2288
  }
@@ -1,10 +1,10 @@
1
1
  import coinbaseRest from '../coinbase.js';
2
- import { Ticker, Int, Trade, OrderBook, Order } from '../base/types.js';
2
+ import { Strings, Tickers, Ticker, Int, Trade, OrderBook, Order } from '../base/types.js';
3
3
  export default class coinbase extends coinbaseRest {
4
4
  describe(): any;
5
5
  subscribe(name: any, symbol?: any, params?: {}): Promise<any>;
6
6
  watchTicker(symbol: any, params?: {}): Promise<Ticker>;
7
- watchTickers(symbols?: any, params?: {}): Promise<any>;
7
+ watchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
8
8
  handleTickers(client: any, message: any): any;
9
9
  parseWsTicker(ticker: any, market?: any): Ticker;
10
10
  watchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
@@ -117,7 +117,10 @@ export default class coinbase extends coinbaseRest {
117
117
  }
118
118
  const name = 'ticker_batch';
119
119
  const tickers = await this.subscribe(name, symbols, params);
120
- return tickers;
120
+ if (this.newUpdates) {
121
+ return tickers;
122
+ }
123
+ return this.tickers;
121
124
  }
122
125
  handleTickers(client, message) {
123
126
  //
@@ -1,5 +1,5 @@
1
1
  import coinbaseproRest from '../coinbasepro.js';
2
- import type { Int, Ticker, Str, Strings, OrderBook, Trade, Order } from '../base/types.js';
2
+ import type { Tickers, Int, Ticker, Str, Strings, OrderBook, Trade, Order } from '../base/types.js';
3
3
  import Client from '../base/ws/Client.js';
4
4
  export default class coinbasepro extends coinbaseproRest {
5
5
  describe(): any;
@@ -12,7 +12,7 @@ export default class coinbasepro extends coinbaseproRest {
12
12
  subscribe(name: any, symbol?: any, messageHashStart?: any, params?: {}): Promise<any>;
13
13
  subscribeMultiple(name: any, symbols?: any[], messageHashStart?: any, params?: {}): Promise<any>;
14
14
  watchTicker(symbol: string, params?: {}): Promise<Ticker>;
15
- watchTickers(symbols?: Strings, params?: {}): Promise<any>;
15
+ watchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
16
16
  watchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
17
17
  watchTradesForSymbols(symbols: string[], since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
18
18
  watchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
@@ -1,5 +1,5 @@
1
1
  import hitbtcRest from '../hitbtc.js';
2
- import type { Int, OHLCV, OrderSide, OrderType, Strings } from '../base/types.js';
2
+ import type { Tickers, Int, OHLCV, OrderSide, OrderType, Strings } from '../base/types.js';
3
3
  import Client from '../base/ws/Client.js';
4
4
  import { Str, OrderBook, Order, Trade, Ticker, Balances } from '../base/types';
5
5
  export default class hitbtc extends hitbtcRest {
@@ -13,7 +13,7 @@ export default class hitbtc extends hitbtcRest {
13
13
  handleDelta(bookside: any, delta: any): void;
14
14
  handleDeltas(bookside: any, deltas: any): void;
15
15
  watchTicker(symbol: string, params?: {}): Promise<Ticker>;
16
- watchTickers(symbols?: any, params?: {}): Promise<any>;
16
+ watchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
17
17
  handleTicker(client: Client, message: any): any;
18
18
  parseWsTicker(ticker: any, market?: any): Ticker;
19
19
  watchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
@@ -1,5 +1,5 @@
1
1
  import poloniexRest from '../poloniex.js';
2
- import type { Int, OHLCV, OrderSide, OrderType, Str, Strings, OrderBook, Order, Trade, Ticker, Balances } from '../base/types.js';
2
+ import type { Tickers, Int, OHLCV, OrderSide, OrderType, Str, Strings, OrderBook, Order, Trade, Ticker, Balances } from '../base/types.js';
3
3
  import Client from '../base/ws/Client.js';
4
4
  export default class poloniex extends poloniexRest {
5
5
  describe(): any;
@@ -13,7 +13,7 @@ export default class poloniex extends poloniexRest {
13
13
  handleOrderRequest(client: Client, message: any): void;
14
14
  watchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
15
15
  watchTicker(symbol: string, params?: {}): Promise<Ticker>;
16
- watchTickers(symbols?: any, params?: {}): Promise<any>;
16
+ watchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
17
17
  watchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
18
18
  watchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
19
19
  watchOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
package/js/src/upbit.d.ts CHANGED
@@ -17,7 +17,7 @@ export default class upbit extends Exchange {
17
17
  limits: {
18
18
  withdraw: {
19
19
  min: number;
20
- max: any;
20
+ max: number;
21
21
  };
22
22
  };
23
23
  }>;
@@ -31,111 +31,13 @@ export default class upbit extends Exchange {
31
31
  precision: any;
32
32
  limits: {
33
33
  withdraw: {
34
- min: number;
35
- max: any;
36
- };
37
- };
38
- }>;
39
- fetchMarket(symbol: string, params?: {}): Promise<{
40
- id: string;
41
- symbol: string;
42
- base: string;
43
- quote: string;
44
- settle: any;
45
- baseId: string;
46
- quoteId: string;
47
- settleId: any;
48
- type: string;
49
- spot: boolean;
50
- margin: boolean;
51
- swap: boolean;
52
- future: boolean;
53
- option: boolean;
54
- active: boolean;
55
- contract: boolean;
56
- linear: any;
57
- inverse: any;
58
- taker: number;
59
- maker: number;
60
- contractSize: any;
61
- expiry: any;
62
- expiryDatetime: any;
63
- strike: any;
64
- optionType: any;
65
- precision: {
66
- amount: number;
67
- price: number;
68
- };
69
- limits: {
70
- leverage: {
71
- min: any;
72
- max: any;
73
- };
74
- amount: {
75
- min: number;
76
- max: any;
77
- };
78
- price: {
79
- min: any;
80
- max: any;
81
- };
82
- cost: {
83
- min: number;
84
- max: number;
85
- };
86
- info: any;
87
- };
88
- }>;
89
- fetchMarketById(id: string, params?: {}): Promise<{
90
- id: string;
91
- symbol: string;
92
- base: string;
93
- quote: string;
94
- settle: any;
95
- baseId: string;
96
- quoteId: string;
97
- settleId: any;
98
- type: string;
99
- spot: boolean;
100
- margin: boolean;
101
- swap: boolean;
102
- future: boolean;
103
- option: boolean;
104
- active: boolean;
105
- contract: boolean;
106
- linear: any;
107
- inverse: any;
108
- taker: number;
109
- maker: number;
110
- contractSize: any;
111
- expiry: any;
112
- expiryDatetime: any;
113
- strike: any;
114
- optionType: any;
115
- precision: {
116
- amount: number;
117
- price: number;
118
- };
119
- limits: {
120
- leverage: {
121
- min: any;
122
- max: any;
123
- };
124
- amount: {
125
- min: number;
126
- max: any;
127
- };
128
- price: {
129
- min: any;
130
- max: any;
131
- };
132
- cost: {
133
34
  min: number;
134
35
  max: number;
135
36
  };
136
- info: any;
137
37
  };
138
38
  }>;
39
+ fetchMarket(symbol: string, params?: {}): Promise<import("./base/types.js").MarketInterface>;
40
+ fetchMarketById(id: string, params?: {}): Promise<import("./base/types.js").MarketInterface>;
139
41
  fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
140
42
  parseMarket(market: any): Market;
141
43
  parseBalance(response: any): Balances;
package/js/src/upbit.js CHANGED
@@ -264,11 +264,11 @@ export default class upbit extends Exchange {
264
264
  else if ((locked !== undefined) && locked) {
265
265
  active = false;
266
266
  }
267
- const maxOnetimeWithdrawal = this.safeNumber(withdrawLimits, 'onetime');
268
- const maxDailyWithdrawal = this.safeNumber(withdrawLimits, 'daily', maxOnetimeWithdrawal);
269
- const remainingDailyWithdrawal = this.safeNumber(withdrawLimits, 'remaining_daily', maxDailyWithdrawal);
267
+ const maxOnetimeWithdrawal = this.safeString(withdrawLimits, 'onetime');
268
+ const maxDailyWithdrawal = this.safeString(withdrawLimits, 'daily', maxOnetimeWithdrawal);
269
+ const remainingDailyWithdrawal = this.safeString(withdrawLimits, 'remaining_daily', maxDailyWithdrawal);
270
270
  let maxWithdrawLimit = undefined;
271
- if (remainingDailyWithdrawal > 0) {
271
+ if (Precise.stringGt(remainingDailyWithdrawal, '0')) {
272
272
  maxWithdrawLimit = remainingDailyWithdrawal;
273
273
  }
274
274
  else {
@@ -287,7 +287,7 @@ export default class upbit extends Exchange {
287
287
  'limits': {
288
288
  'withdraw': {
289
289
  'min': this.safeNumber(withdrawLimits, 'minimum'),
290
- 'max': maxWithdrawLimit,
290
+ 'max': this.parseNumber(maxWithdrawLimit),
291
291
  },
292
292
  },
293
293
  };
@@ -347,10 +347,10 @@ export default class upbit extends Exchange {
347
347
  const base = this.safeCurrencyCode(baseId);
348
348
  const quote = this.safeCurrencyCode(quoteId);
349
349
  const state = this.safeString(marketInfo, 'state');
350
- const bidFee = this.safeNumber(response, 'bid_fee');
351
- const askFee = this.safeNumber(response, 'ask_fee');
352
- const fee = Math.max(bidFee, askFee);
353
- return {
350
+ const bidFee = this.safeString(response, 'bid_fee');
351
+ const askFee = this.safeString(response, 'ask_fee');
352
+ const fee = this.parseNumber(Precise.stringMax(bidFee, askFee));
353
+ return this.safeMarketStructure({
354
354
  'id': marketId,
355
355
  'symbol': base + '/' + quote,
356
356
  'base': base,
@@ -399,7 +399,7 @@ export default class upbit extends Exchange {
399
399
  },
400
400
  'info': response,
401
401
  },
402
- };
402
+ });
403
403
  }
404
404
  async fetchMarkets(params = {}) {
405
405
  /**
@@ -428,7 +428,7 @@ export default class upbit extends Exchange {
428
428
  const [quoteId, baseId] = id.split('-');
429
429
  const base = this.safeCurrencyCode(baseId);
430
430
  const quote = this.safeCurrencyCode(quoteId);
431
- return {
431
+ return this.safeMarketStructure({
432
432
  'id': id,
433
433
  'symbol': base + '/' + quote,
434
434
  'base': base,
@@ -478,7 +478,7 @@ export default class upbit extends Exchange {
478
478
  },
479
479
  'created': undefined,
480
480
  'info': market,
481
- };
481
+ });
482
482
  }
483
483
  parseBalance(response) {
484
484
  const result = {
package/js/src/woo.js CHANGED
@@ -44,6 +44,8 @@ export default class woo extends Exchange {
44
44
  'createMarketOrder': false,
45
45
  'createMarketOrderWithCost': false,
46
46
  'createMarketSellOrderWithCost': false,
47
+ 'createTrailingAmountOrder': true,
48
+ 'createTrailingPercentOrder': true,
47
49
  'createOrder': true,
48
50
  'createReduceOnlyOrder': true,
49
51
  'createStopLimitOrder': false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccxt",
3
- "version": "4.2.10",
3
+ "version": "4.2.12",
4
4
  "description": "A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 100+ exchanges",
5
5
  "unpkg": "dist/ccxt.browser.js",
6
6
  "type": "module",
@@ -35,17 +35,17 @@
35
35
  "pre-transpile": "npm run export-exchanges && npm run vss && npm run tsBuild && npm run emitAPI && npm run validate-types && npm run tsBuildExamples && npm run copy-python-files && npm run check-js-syntax && npm run bundle",
36
36
  "pre-transpile-pr": "npm run export-exchanges && npm run tsBuild && npm run emitAPI && npm run check-js-syntax",
37
37
  "post-transpile": "npm run check-python-syntax && npm run check-php-syntax",
38
- "test-ws": "npm run build && node run-tests --ws",
39
- "test": "npm run build && npm run commonjs-test && npm run static-tests && node run-tests",
40
- "fast-test": "npm run commonjs-test && node run-tests --js",
38
+ "test-ws": "npm run build && node run-tests --ws --useProxy",
39
+ "test": "npm run build && npm run commonjs-test && npm run static-tests && node run-tests --useProxy",
40
+ "fast-test": "npm run commonjs-test && node run-tests --js --useProxy",
41
41
  "commonjs-test": "node test-commonjs.cjs",
42
- "fast-test-ws": "node run-tests --ws --js",
43
- "test-js": "npm run commonjs-test && node run-tests --js",
44
- "test-js-ws": "node run-tests --ws --js",
45
- "test-py": "node run-tests --python",
46
- "test-py-ws": "node run-tests --ws --python",
47
- "test-php": "node run-tests --php",
48
- "test-php-ws": "node run-tests --ws --php",
42
+ "fast-test-ws": "node run-tests --ws --js --useProxy",
43
+ "test-js": "npm run commonjs-test && node run-tests --js --useProxy",
44
+ "test-js-ws": "node run-tests --ws --js --useProxy",
45
+ "test-py": "node run-tests --python --useProxy",
46
+ "test-py-ws": "node run-tests --ws --python --useProxy",
47
+ "test-php": "node run-tests --php --useProxy",
48
+ "test-php-ws": "node run-tests --ws --php --useProxy",
49
49
  "test-base": "npm run test-js-base && npm run test-python-base && npm run test-php-base && npm run id-tests && npm run static-tests",
50
50
  "test-base-ws": "npm run test-js-base-ws && npm run test-python-base-ws && npm run test-php-base-ws",
51
51
  "test-js-base": "node ./js/src/test/base/test.base.js",