ccxt 4.2.11 → 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 (375) hide show
  1. package/README.md +5 -5
  2. package/build.sh +2 -2
  3. package/dist/ccxt.browser.js +640 -261
  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/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/bybit.d.ts +1 -0
  336. package/js/src/abstract/gate.d.ts +11 -0
  337. package/js/src/abstract/gateio.d.ts +11 -0
  338. package/js/src/alpaca.js +18 -18
  339. package/js/src/base/Exchange.d.ts +5 -1
  340. package/js/src/base/Exchange.js +101 -12
  341. package/js/src/bigone.d.ts +1 -2
  342. package/js/src/bigone.js +340 -145
  343. package/js/src/binance.js +15 -8
  344. package/js/src/bingx.js +9 -2
  345. package/js/src/bitfinex.d.ts +2 -2
  346. package/js/src/bitfinex.js +2 -3
  347. package/js/src/bitget.js +21 -8
  348. package/js/src/bitmart.d.ts +2 -2
  349. package/js/src/bitmart.js +3 -3
  350. package/js/src/bitmex.js +1 -0
  351. package/js/src/bybit.js +2 -0
  352. package/js/src/coinlist.js +2 -3
  353. package/js/src/coinsph.js +2 -3
  354. package/js/src/deribit.js +1 -0
  355. package/js/src/gate.d.ts +4 -4
  356. package/js/src/gate.js +22 -3
  357. package/js/src/hitbtc.d.ts +4 -4
  358. package/js/src/hitbtc.js +2 -3
  359. package/js/src/htx.js +4 -7
  360. package/js/src/huobijp.js +2 -3
  361. package/js/src/kraken.js +1 -0
  362. package/js/src/mexc.js +2 -1
  363. package/js/src/okx.js +13 -3
  364. package/js/src/pro/binance.d.ts +2 -23
  365. package/js/src/pro/binance.js +58 -22
  366. package/js/src/pro/coinbase.d.ts +2 -2
  367. package/js/src/pro/coinbase.js +4 -1
  368. package/js/src/pro/coinbasepro.d.ts +2 -2
  369. package/js/src/pro/hitbtc.d.ts +2 -2
  370. package/js/src/pro/poloniex.d.ts +2 -2
  371. package/js/src/upbit.d.ts +3 -101
  372. package/js/src/upbit.js +12 -12
  373. package/js/src/woo.js +2 -0
  374. package/package.json +1 -1
  375. package/skip-tests.json +5 -0
@@ -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.11",
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",
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
  },