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
@@ -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[]>;
@@ -545,7 +545,7 @@ export default class kraken extends krakenRest {
545
545
  ],
546
546
  'subscription': {
547
547
  'name': name,
548
- 'interval': this.safeString(this.timeframes, timeframe, timeframe),
548
+ 'interval': this.safeValue(this.timeframes, timeframe, timeframe),
549
549
  },
550
550
  };
551
551
  const request = this.deepExtend(subscribe, params);
@@ -13,6 +13,7 @@ export default class okx extends okxRest {
13
13
  watchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
14
14
  handleTicker(client: Client, message: any): any;
15
15
  watchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
16
+ watchOHLCVForSymbols(symbolsAndTimeframes: string[][], since?: Int, limit?: Int, params?: {}): Promise<import("../base/types.js").Dictionary<import("../base/types.js").Dictionary<OHLCV[]>>>;
16
17
  handleOHLCV(client: Client, message: any): void;
17
18
  watchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
18
19
  watchOrderBookForSymbols(symbols: string[], limit?: Int, params?: {}): Promise<OrderBook>;
package/js/src/pro/okx.js CHANGED
@@ -23,6 +23,7 @@ export default class okx extends okxRest {
23
23
  'watchOrderBookForSymbols': true,
24
24
  'watchBalance': true,
25
25
  'watchOHLCV': true,
26
+ 'watchOHLCVForSymbols': true,
26
27
  'watchOrders': true,
27
28
  'watchMyTrades': true,
28
29
  'watchPositions': true,
@@ -359,6 +360,50 @@ export default class okx extends okxRest {
359
360
  }
360
361
  return this.filterBySinceLimit(ohlcv, since, limit, 0, true);
361
362
  }
363
+ async watchOHLCVForSymbols(symbolsAndTimeframes, since = undefined, limit = undefined, params = {}) {
364
+ /**
365
+ * @method
366
+ * @name okx#watchOHLCVForSymbols
367
+ * @description watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
368
+ * @param {string[][]} symbolsAndTimeframes array of arrays containing unified symbols and timeframes to fetch OHLCV data for, example [['BTC/USDT', '1m'], ['LTC/USDT', '5m']]
369
+ * @param {int} [since] timestamp in ms of the earliest candle to fetch
370
+ * @param {int} [limit] the maximum amount of candles to fetch
371
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
372
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
373
+ */
374
+ const symbolsLength = symbolsAndTimeframes.length;
375
+ if (symbolsLength === 0 || !Array.isArray(symbolsAndTimeframes[0])) {
376
+ throw new ArgumentsRequired(this.id + " watchOHLCVForSymbols() requires a an array of symbols and timeframes, like [['BTC/USDT', '1m'], ['LTC/USDT', '5m']]");
377
+ }
378
+ await this.loadMarkets();
379
+ const topics = [];
380
+ const messageHashes = [];
381
+ for (let i = 0; i < symbolsAndTimeframes.length; i++) {
382
+ const symbolAndTimeframe = symbolsAndTimeframes[i];
383
+ const sym = symbolAndTimeframe[0];
384
+ const tf = symbolAndTimeframe[1];
385
+ const marketId = this.marketId(sym);
386
+ const interval = this.safeString(this.timeframes, tf, tf);
387
+ const channel = 'candle' + interval;
388
+ const topic = {
389
+ 'channel': channel,
390
+ 'instId': marketId,
391
+ };
392
+ topics.push(topic);
393
+ messageHashes.push('multi:' + channel + ':' + sym);
394
+ }
395
+ const request = {
396
+ 'op': 'subscribe',
397
+ 'args': topics,
398
+ };
399
+ const url = this.getUrl('candle', 'public');
400
+ const [symbol, timeframe, candles] = await this.watchMultiple(url, messageHashes, request, messageHashes);
401
+ if (this.newUpdates) {
402
+ limit = candles.getLimit(symbol, limit);
403
+ }
404
+ const filtered = this.filterBySinceLimit(candles, since, limit, 0, true);
405
+ return this.createOHLCVObject(symbol, timeframe, filtered);
406
+ }
362
407
  handleOHLCV(client, message) {
363
408
  //
364
409
  // {
@@ -381,7 +426,7 @@ export default class okx extends okxRest {
381
426
  const data = this.safeValue(message, 'data', []);
382
427
  const marketId = this.safeString(arg, 'instId');
383
428
  const market = this.safeMarket(marketId);
384
- const symbol = market['id'];
429
+ const symbol = market['symbol'];
385
430
  const interval = channel.replace('candle', '');
386
431
  // use a reverse lookup in a static map instead
387
432
  const timeframe = this.findTimeframe(interval);
@@ -395,8 +440,13 @@ export default class okx extends okxRest {
395
440
  this.ohlcvs[symbol][timeframe] = stored;
396
441
  }
397
442
  stored.append(parsed);
398
- const messageHash = channel + ':' + marketId;
443
+ const messageHash = channel + ':' + market['id'];
399
444
  client.resolve(stored, messageHash);
445
+ // for multiOHLCV we need special object, as opposed to other "multi"
446
+ // methods, because OHLCV response item does not contain symbol
447
+ // or timeframe, thus otherwise it would be unrecognizable
448
+ const messageHashForMulti = 'multi:' + channel + ':' + symbol;
449
+ client.resolve([symbol, timeframe, stored], messageHashForMulti);
400
450
  }
401
451
  }
402
452
  async watchOrderBook(symbol, limit = undefined, params = {}) {
@@ -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/probit.js CHANGED
@@ -779,7 +779,6 @@ export default class probit extends Exchange {
779
779
  const market = this.market(symbol);
780
780
  const request = {
781
781
  'market_id': market['id'],
782
- 'limit': 100,
783
782
  'start_time': '1970-01-01T00:00:00.000Z',
784
783
  'end_time': this.iso8601(this.milliseconds()),
785
784
  };
@@ -787,7 +786,10 @@ export default class probit extends Exchange {
787
786
  request['start_time'] = this.iso8601(since);
788
787
  }
789
788
  if (limit !== undefined) {
790
- request['limit'] = Math.min(limit, 10000);
789
+ request['limit'] = Math.min(limit, 1000);
790
+ }
791
+ else {
792
+ request['limit'] = 1000; // required to set any value
791
793
  }
792
794
  const response = await this.publicGetTrade(this.extend(request, params));
793
795
  //
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 = {
@@ -2095,7 +2095,7 @@ export default class wavesexchange extends Exchange {
2095
2095
  'priceAsset': market['quoteId'],
2096
2096
  };
2097
2097
  if (limit !== undefined) {
2098
- request['limit'] = limit;
2098
+ request['limit'] = Math.min(limit, 100);
2099
2099
  }
2100
2100
  if (since !== undefined) {
2101
2101
  request['timeStart'] = since;
package/js/src/woo.d.ts CHANGED
@@ -14,6 +14,8 @@ export default class woo extends Exchange {
14
14
  fetchTradingFees(params?: {}): Promise<{}>;
15
15
  fetchCurrencies(params?: {}): Promise<{}>;
16
16
  createMarketBuyOrderWithCost(symbol: string, cost: any, params?: {}): Promise<Order>;
17
+ createTrailingAmountOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, trailingAmount?: any, trailingTriggerPrice?: any, params?: {}): Promise<Order>;
18
+ createTrailingPercentOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, trailingPercent?: any, trailingTriggerPrice?: any, params?: {}): Promise<Order>;
17
19
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
18
20
  editOrder(id: string, symbol: any, type: any, side: any, amount?: any, price?: any, params?: {}): Promise<Order>;
19
21
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
package/js/src/woo.js CHANGED
@@ -49,6 +49,8 @@ export default class woo extends Exchange {
49
49
  'createStopLimitOrder': false,
50
50
  'createStopMarketOrder': false,
51
51
  'createStopOrder': false,
52
+ 'createTrailingAmountOrder': true,
53
+ 'createTrailingPercentOrder': true,
52
54
  'fetchAccounts': true,
53
55
  'fetchBalance': true,
54
56
  'fetchCanceledOrders': false,
@@ -764,6 +766,56 @@ export default class woo extends Exchange {
764
766
  params['createMarketBuyOrderRequiresPrice'] = false;
765
767
  return await this.createOrder(symbol, 'market', 'buy', cost, undefined, params);
766
768
  }
769
+ async createTrailingAmountOrder(symbol, type, side, amount, price = undefined, trailingAmount = undefined, trailingTriggerPrice = undefined, params = {}) {
770
+ /**
771
+ * @method
772
+ * @name createTrailingAmountOrder
773
+ * @description create a trailing order by providing the symbol, type, side, amount, price and trailingAmount
774
+ * @param {string} symbol unified symbol of the market to create an order in
775
+ * @param {string} type 'market' or 'limit'
776
+ * @param {string} side 'buy' or 'sell'
777
+ * @param {float} amount how much you want to trade in units of the base currency, or number of contracts
778
+ * @param {float} [price] the price for the order to be filled at, in units of the quote currency, ignored in market orders
779
+ * @param {float} trailingAmount the quote amount to trail away from the current market price
780
+ * @param {float} trailingTriggerPrice the price to activate a trailing order, default uses the price argument
781
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
782
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
783
+ */
784
+ if (trailingAmount === undefined) {
785
+ throw new ArgumentsRequired(this.id + ' createTrailingAmountOrder() requires a trailingAmount argument');
786
+ }
787
+ if (trailingTriggerPrice === undefined) {
788
+ throw new ArgumentsRequired(this.id + ' createTrailingAmountOrder() requires a trailingTriggerPrice argument');
789
+ }
790
+ params['trailingAmount'] = trailingAmount;
791
+ params['trailingTriggerPrice'] = trailingTriggerPrice;
792
+ return await this.createOrder(symbol, type, side, amount, price, params);
793
+ }
794
+ async createTrailingPercentOrder(symbol, type, side, amount, price = undefined, trailingPercent = undefined, trailingTriggerPrice = undefined, params = {}) {
795
+ /**
796
+ * @method
797
+ * @name createTrailingPercentOrder
798
+ * @description create a trailing order by providing the symbol, type, side, amount, price and trailingPercent
799
+ * @param {string} symbol unified symbol of the market to create an order in
800
+ * @param {string} type 'market' or 'limit'
801
+ * @param {string} side 'buy' or 'sell'
802
+ * @param {float} amount how much you want to trade in units of the base currency, or number of contracts
803
+ * @param {float} [price] the price for the order to be filled at, in units of the quote currency, ignored in market orders
804
+ * @param {float} trailingPercent the percent to trail away from the current market price
805
+ * @param {float} trailingTriggerPrice the price to activate a trailing order, default uses the price argument
806
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
807
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
808
+ */
809
+ if (trailingPercent === undefined) {
810
+ throw new ArgumentsRequired(this.id + ' createTrailingPercentOrder() requires a trailingPercent argument');
811
+ }
812
+ if (trailingTriggerPrice === undefined) {
813
+ throw new ArgumentsRequired(this.id + ' createTrailingPercentOrder() requires a trailingTriggerPrice argument');
814
+ }
815
+ params['trailingPercent'] = trailingPercent;
816
+ params['trailingTriggerPrice'] = trailingTriggerPrice;
817
+ return await this.createOrder(symbol, type, side, amount, price, params);
818
+ }
767
819
  async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
768
820
  /**
769
821
  * @method
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccxt",
3
- "version": "4.2.11",
3
+ "version": "4.2.13",
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",
package/skip-tests.json CHANGED
@@ -625,6 +625,11 @@
625
625
  "bid": "broken bid-ask",
626
626
  "ask": "broken bid-ask",
627
627
  "baseVolume": "negative value"
628
+ },
629
+ "loadMarkets": {
630
+ "taker": "key is there when run locally, but not on travis",
631
+ "maker": "key is there when run locally, but not on travis",
632
+ "currencyIdAndCode": true
628
633
  }
629
634
  }
630
635
  },