ccxt 4.2.18 → 4.2.19

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 (426) hide show
  1. package/README.md +8 -8
  2. package/dist/ccxt.browser.js +34202 -33193
  3. package/dist/ccxt.browser.min.js +2 -2
  4. package/dist/cjs/ccxt.js +12 -1
  5. package/dist/cjs/src/alpaca.js +18 -18
  6. package/dist/cjs/src/ascendex.js +13 -6
  7. package/dist/cjs/src/base/Exchange.js +266 -27
  8. package/dist/cjs/src/bigone.js +434 -168
  9. package/dist/cjs/src/binance.js +163 -34
  10. package/dist/cjs/src/binanceus.js +8 -0
  11. package/dist/cjs/src/bingx.js +183 -41
  12. package/dist/cjs/src/bitfinex.js +2 -3
  13. package/dist/cjs/src/bitget.js +59 -16
  14. package/dist/cjs/src/bitmart.js +5 -5
  15. package/dist/cjs/src/bitmex.js +4 -6
  16. package/dist/cjs/src/bitpanda.js +5 -1991
  17. package/dist/cjs/src/bitstamp.js +8 -0
  18. package/dist/cjs/src/bybit.js +27 -47
  19. package/dist/cjs/src/coinbase.js +176 -26
  20. package/dist/cjs/src/coincheck.js +1 -0
  21. package/dist/cjs/src/coinex.js +3 -0
  22. package/dist/cjs/src/coinlist.js +13 -6
  23. package/dist/cjs/src/coinone.js +2 -2
  24. package/dist/cjs/src/coinsph.js +4 -5
  25. package/dist/cjs/src/delta.js +7 -1
  26. package/dist/cjs/src/deribit.js +17 -4
  27. package/dist/cjs/src/gate.js +151 -169
  28. package/dist/cjs/src/gemini.js +1 -1
  29. package/dist/cjs/src/hitbtc.js +2 -3
  30. package/dist/cjs/src/htx.js +157 -7
  31. package/dist/cjs/src/huobijp.js +2 -3
  32. package/dist/cjs/src/independentreserve.js +7 -5
  33. package/dist/cjs/src/kraken.js +86 -54
  34. package/dist/cjs/src/kucoin.js +5 -0
  35. package/dist/cjs/src/kucoinfutures.js +131 -77
  36. package/dist/cjs/src/lbank.js +60 -33
  37. package/dist/cjs/src/luno.js +84 -2
  38. package/dist/cjs/src/mexc.js +3 -3
  39. package/dist/cjs/src/oceanex.js +1 -1
  40. package/dist/cjs/src/okx.js +23 -11
  41. package/dist/cjs/{js/src/bitpanda.js → src/onetrading.js} +39 -39
  42. package/dist/cjs/src/phemex.js +37 -27
  43. package/dist/cjs/src/poloniexfutures.js +1 -0
  44. package/dist/cjs/src/pro/binance.js +66 -25
  45. package/dist/cjs/src/pro/bitget.js +1 -1
  46. package/dist/cjs/src/pro/bitpanda.js +5 -1330
  47. package/dist/cjs/src/pro/coinbase.js +4 -1
  48. package/dist/cjs/src/pro/hitbtc.js +5 -4
  49. package/dist/cjs/src/pro/htx.js +6 -1
  50. package/dist/cjs/src/pro/kraken.js +1 -1
  51. package/dist/cjs/src/pro/krakenfutures.js +7 -1
  52. package/dist/cjs/src/pro/kucoin.js +46 -36
  53. package/dist/cjs/src/pro/kucoinfutures.js +45 -37
  54. package/dist/cjs/src/pro/lbank.js +881 -0
  55. package/dist/cjs/src/pro/okx.js +52 -2
  56. package/dist/cjs/{js/src/pro/bitpanda.js → src/pro/onetrading.js} +4 -7
  57. package/dist/cjs/src/pro/poloniex.js +2 -2
  58. package/dist/cjs/src/pro/poloniexfutures.js +43 -35
  59. package/dist/cjs/src/pro/woo.js +126 -0
  60. package/dist/cjs/src/probit.js +4 -2
  61. package/dist/cjs/src/upbit.js +12 -12
  62. package/dist/cjs/src/wavesexchange.js +1 -1
  63. package/dist/cjs/src/whitebit.js +1 -0
  64. package/dist/cjs/src/woo.js +56 -0
  65. package/js/ccxt.d.ts +11 -2
  66. package/js/ccxt.js +8 -2
  67. package/js/src/abstract/bitpanda.d.ts +4 -4
  68. package/js/src/abstract/bitstamp.d.ts +8 -0
  69. package/js/src/abstract/gate.d.ts +1 -0
  70. package/js/src/abstract/gateio.d.ts +1 -0
  71. package/js/src/abstract/htx.d.ts +3 -0
  72. package/js/src/abstract/huobi.d.ts +3 -0
  73. package/js/src/abstract/luno.d.ts +1 -0
  74. package/js/src/abstract/onetrading.d.ts +38 -0
  75. package/js/src/ascendex.js +2 -0
  76. package/js/src/bingx.js +1 -1
  77. package/js/src/bitget.js +22 -3
  78. package/js/src/bitpanda.d.ts +2 -72
  79. package/js/src/bitpanda.js +5 -1991
  80. package/js/src/bitstamp.js +8 -0
  81. package/js/src/deribit.js +11 -3
  82. package/js/src/gate.d.ts +1 -0
  83. package/js/src/gate.js +50 -110
  84. package/js/src/htx.js +3 -0
  85. package/js/src/kraken.d.ts +1 -0
  86. package/js/src/kraken.js +39 -38
  87. package/js/src/lbank.js +1 -0
  88. package/js/src/luno.d.ts +3 -1
  89. package/js/src/luno.js +84 -2
  90. package/js/src/mexc.js +1 -2
  91. package/js/src/onetrading.d.ts +74 -0
  92. package/js/src/onetrading.js +2003 -0
  93. package/js/src/poloniexfutures.js +1 -0
  94. package/js/src/pro/binance.js +6 -1
  95. package/js/src/pro/bitpanda.d.ts +2 -34
  96. package/js/src/pro/bitpanda.js +5 -1330
  97. package/js/src/pro/lbank.d.ts +29 -0
  98. package/js/src/pro/lbank.js +882 -0
  99. package/js/src/pro/onetrading.d.ts +36 -0
  100. package/js/src/pro/onetrading.js +1339 -0
  101. package/package.json +2 -2
  102. package/rollup.config.js +2 -0
  103. package/skip-tests.json +2 -1
  104. package/test-commonjs.cjs +25 -1
  105. package/dist/cjs/js/ccxt.js +0 -478
  106. package/dist/cjs/js/src/abstract/alpaca.js +0 -9
  107. package/dist/cjs/js/src/abstract/ascendex.js +0 -9
  108. package/dist/cjs/js/src/abstract/bigone.js +0 -9
  109. package/dist/cjs/js/src/abstract/binance.js +0 -9
  110. package/dist/cjs/js/src/abstract/bingx.js +0 -9
  111. package/dist/cjs/js/src/abstract/bit2c.js +0 -9
  112. package/dist/cjs/js/src/abstract/bitbank.js +0 -9
  113. package/dist/cjs/js/src/abstract/bitbns.js +0 -9
  114. package/dist/cjs/js/src/abstract/bitfinex.js +0 -9
  115. package/dist/cjs/js/src/abstract/bitfinex2.js +0 -9
  116. package/dist/cjs/js/src/abstract/bitflyer.js +0 -9
  117. package/dist/cjs/js/src/abstract/bitforex.js +0 -9
  118. package/dist/cjs/js/src/abstract/bitget.js +0 -9
  119. package/dist/cjs/js/src/abstract/bithumb.js +0 -9
  120. package/dist/cjs/js/src/abstract/bitmart.js +0 -9
  121. package/dist/cjs/js/src/abstract/bitmex.js +0 -9
  122. package/dist/cjs/js/src/abstract/bitopro.js +0 -9
  123. package/dist/cjs/js/src/abstract/bitpanda.js +0 -9
  124. package/dist/cjs/js/src/abstract/bitrue.js +0 -9
  125. package/dist/cjs/js/src/abstract/bitso.js +0 -9
  126. package/dist/cjs/js/src/abstract/bitstamp.js +0 -9
  127. package/dist/cjs/js/src/abstract/bitteam.js +0 -9
  128. package/dist/cjs/js/src/abstract/bitvavo.js +0 -9
  129. package/dist/cjs/js/src/abstract/bl3p.js +0 -9
  130. package/dist/cjs/js/src/abstract/blockchaincom.js +0 -9
  131. package/dist/cjs/js/src/abstract/btcalpha.js +0 -9
  132. package/dist/cjs/js/src/abstract/btcbox.js +0 -9
  133. package/dist/cjs/js/src/abstract/btcmarkets.js +0 -9
  134. package/dist/cjs/js/src/abstract/btcturk.js +0 -9
  135. package/dist/cjs/js/src/abstract/bybit.js +0 -9
  136. package/dist/cjs/js/src/abstract/cex.js +0 -9
  137. package/dist/cjs/js/src/abstract/coinbase.js +0 -9
  138. package/dist/cjs/js/src/abstract/coinbasepro.js +0 -9
  139. package/dist/cjs/js/src/abstract/coincheck.js +0 -9
  140. package/dist/cjs/js/src/abstract/coinex.js +0 -9
  141. package/dist/cjs/js/src/abstract/coinlist.js +0 -9
  142. package/dist/cjs/js/src/abstract/coinmate.js +0 -9
  143. package/dist/cjs/js/src/abstract/coinone.js +0 -9
  144. package/dist/cjs/js/src/abstract/coinsph.js +0 -9
  145. package/dist/cjs/js/src/abstract/coinspot.js +0 -9
  146. package/dist/cjs/js/src/abstract/cryptocom.js +0 -9
  147. package/dist/cjs/js/src/abstract/currencycom.js +0 -9
  148. package/dist/cjs/js/src/abstract/delta.js +0 -9
  149. package/dist/cjs/js/src/abstract/deribit.js +0 -9
  150. package/dist/cjs/js/src/abstract/digifinex.js +0 -9
  151. package/dist/cjs/js/src/abstract/exmo.js +0 -9
  152. package/dist/cjs/js/src/abstract/gate.js +0 -9
  153. package/dist/cjs/js/src/abstract/gemini.js +0 -9
  154. package/dist/cjs/js/src/abstract/hitbtc.js +0 -9
  155. package/dist/cjs/js/src/abstract/hollaex.js +0 -9
  156. package/dist/cjs/js/src/abstract/htx.js +0 -9
  157. package/dist/cjs/js/src/abstract/huobijp.js +0 -9
  158. package/dist/cjs/js/src/abstract/idex.js +0 -9
  159. package/dist/cjs/js/src/abstract/independentreserve.js +0 -9
  160. package/dist/cjs/js/src/abstract/indodax.js +0 -9
  161. package/dist/cjs/js/src/abstract/kraken.js +0 -9
  162. package/dist/cjs/js/src/abstract/krakenfutures.js +0 -9
  163. package/dist/cjs/js/src/abstract/kucoin.js +0 -9
  164. package/dist/cjs/js/src/abstract/kucoinfutures.js +0 -9
  165. package/dist/cjs/js/src/abstract/kuna.js +0 -9
  166. package/dist/cjs/js/src/abstract/latoken.js +0 -9
  167. package/dist/cjs/js/src/abstract/lbank.js +0 -9
  168. package/dist/cjs/js/src/abstract/luno.js +0 -9
  169. package/dist/cjs/js/src/abstract/lykke.js +0 -9
  170. package/dist/cjs/js/src/abstract/mercado.js +0 -9
  171. package/dist/cjs/js/src/abstract/mexc.js +0 -9
  172. package/dist/cjs/js/src/abstract/ndax.js +0 -9
  173. package/dist/cjs/js/src/abstract/novadax.js +0 -9
  174. package/dist/cjs/js/src/abstract/oceanex.js +0 -9
  175. package/dist/cjs/js/src/abstract/okcoin.js +0 -9
  176. package/dist/cjs/js/src/abstract/okx.js +0 -9
  177. package/dist/cjs/js/src/abstract/p2b.js +0 -9
  178. package/dist/cjs/js/src/abstract/paymium.js +0 -9
  179. package/dist/cjs/js/src/abstract/phemex.js +0 -9
  180. package/dist/cjs/js/src/abstract/poloniex.js +0 -9
  181. package/dist/cjs/js/src/abstract/poloniexfutures.js +0 -9
  182. package/dist/cjs/js/src/abstract/probit.js +0 -9
  183. package/dist/cjs/js/src/abstract/timex.js +0 -9
  184. package/dist/cjs/js/src/abstract/tokocrypto.js +0 -9
  185. package/dist/cjs/js/src/abstract/upbit.js +0 -9
  186. package/dist/cjs/js/src/abstract/wavesexchange.js +0 -9
  187. package/dist/cjs/js/src/abstract/wazirx.js +0 -9
  188. package/dist/cjs/js/src/abstract/whitebit.js +0 -9
  189. package/dist/cjs/js/src/abstract/woo.js +0 -9
  190. package/dist/cjs/js/src/abstract/yobit.js +0 -9
  191. package/dist/cjs/js/src/abstract/zaif.js +0 -9
  192. package/dist/cjs/js/src/abstract/zonda.js +0 -9
  193. package/dist/cjs/js/src/ace.js +0 -1058
  194. package/dist/cjs/js/src/alpaca.js +0 -1125
  195. package/dist/cjs/js/src/ascendex.js +0 -3365
  196. package/dist/cjs/js/src/base/Exchange.js +0 -5260
  197. package/dist/cjs/js/src/base/Precise.js +0 -263
  198. package/dist/cjs/js/src/base/errors.js +0 -299
  199. package/dist/cjs/js/src/base/functions/crypto.js +0 -78
  200. package/dist/cjs/js/src/base/functions/encode.js +0 -44
  201. package/dist/cjs/js/src/base/functions/generic.js +0 -193
  202. package/dist/cjs/js/src/base/functions/misc.js +0 -96
  203. package/dist/cjs/js/src/base/functions/number.js +0 -297
  204. package/dist/cjs/js/src/base/functions/platform.js +0 -28
  205. package/dist/cjs/js/src/base/functions/rsa.js +0 -34
  206. package/dist/cjs/js/src/base/functions/string.js +0 -48
  207. package/dist/cjs/js/src/base/functions/throttle.js +0 -66
  208. package/dist/cjs/js/src/base/functions/time.js +0 -187
  209. package/dist/cjs/js/src/base/functions/totp.js +0 -24
  210. package/dist/cjs/js/src/base/functions/type.js +0 -162
  211. package/dist/cjs/js/src/base/functions.js +0 -157
  212. package/dist/cjs/js/src/base/ws/Cache.js +0 -254
  213. package/dist/cjs/js/src/base/ws/Client.js +0 -299
  214. package/dist/cjs/js/src/base/ws/Future.js +0 -34
  215. package/dist/cjs/js/src/base/ws/OrderBook.js +0 -107
  216. package/dist/cjs/js/src/base/ws/OrderBookSide.js +0 -281
  217. package/dist/cjs/js/src/base/ws/WsClient.js +0 -69
  218. package/dist/cjs/js/src/bequant.js +0 -33
  219. package/dist/cjs/js/src/bigone.js +0 -2213
  220. package/dist/cjs/js/src/binance.js +0 -9851
  221. package/dist/cjs/js/src/binancecoinm.js +0 -45
  222. package/dist/cjs/js/src/binanceus.js +0 -92
  223. package/dist/cjs/js/src/binanceusdm.js +0 -58
  224. package/dist/cjs/js/src/bingx.js +0 -3872
  225. package/dist/cjs/js/src/bit2c.js +0 -916
  226. package/dist/cjs/js/src/bitbank.js +0 -1000
  227. package/dist/cjs/js/src/bitbay.js +0 -17
  228. package/dist/cjs/js/src/bitbns.js +0 -1220
  229. package/dist/cjs/js/src/bitcoincom.js +0 -17
  230. package/dist/cjs/js/src/bitfinex.js +0 -1670
  231. package/dist/cjs/js/src/bitfinex2.js +0 -2990
  232. package/dist/cjs/js/src/bitflyer.js +0 -1045
  233. package/dist/cjs/js/src/bitforex.js +0 -852
  234. package/dist/cjs/js/src/bitget.js +0 -8295
  235. package/dist/cjs/js/src/bithumb.js +0 -1090
  236. package/dist/cjs/js/src/bitmart.js +0 -4454
  237. package/dist/cjs/js/src/bitmex.js +0 -2881
  238. package/dist/cjs/js/src/bitopro.js +0 -1724
  239. package/dist/cjs/js/src/bitrue.js +0 -3253
  240. package/dist/cjs/js/src/bitso.js +0 -1753
  241. package/dist/cjs/js/src/bitstamp.js +0 -2188
  242. package/dist/cjs/js/src/bitteam.js +0 -2309
  243. package/dist/cjs/js/src/bitvavo.js +0 -1968
  244. package/dist/cjs/js/src/bl3p.js +0 -447
  245. package/dist/cjs/js/src/blockchaincom.js +0 -1160
  246. package/dist/cjs/js/src/btcalpha.js +0 -929
  247. package/dist/cjs/js/src/btcbox.js +0 -565
  248. package/dist/cjs/js/src/btcmarkets.js +0 -1237
  249. package/dist/cjs/js/src/btcturk.js +0 -929
  250. package/dist/cjs/js/src/bybit.js +0 -7624
  251. package/dist/cjs/js/src/cex.js +0 -1693
  252. package/dist/cjs/js/src/coinbase.js +0 -3424
  253. package/dist/cjs/js/src/coinbasepro.js +0 -1866
  254. package/dist/cjs/js/src/coincheck.js +0 -844
  255. package/dist/cjs/js/src/coinex.js +0 -5417
  256. package/dist/cjs/js/src/coinlist.js +0 -2337
  257. package/dist/cjs/js/src/coinmate.js +0 -989
  258. package/dist/cjs/js/src/coinone.js +0 -1185
  259. package/dist/cjs/js/src/coinsph.js +0 -1933
  260. package/dist/cjs/js/src/coinspot.js +0 -548
  261. package/dist/cjs/js/src/cryptocom.js +0 -3007
  262. package/dist/cjs/js/src/currencycom.js +0 -2015
  263. package/dist/cjs/js/src/delta.js +0 -3262
  264. package/dist/cjs/js/src/deribit.js +0 -3310
  265. package/dist/cjs/js/src/digifinex.js +0 -4307
  266. package/dist/cjs/js/src/exmo.js +0 -2645
  267. package/dist/cjs/js/src/fmfwio.js +0 -34
  268. package/dist/cjs/js/src/gate.js +0 -7077
  269. package/dist/cjs/js/src/gateio.js +0 -16
  270. package/dist/cjs/js/src/gemini.js +0 -1801
  271. package/dist/cjs/js/src/hitbtc.js +0 -3660
  272. package/dist/cjs/js/src/hitbtc3.js +0 -19
  273. package/dist/cjs/js/src/hollaex.js +0 -1882
  274. package/dist/cjs/js/src/htx.js +0 -9174
  275. package/dist/cjs/js/src/huobi.js +0 -16
  276. package/dist/cjs/js/src/huobijp.js +0 -1918
  277. package/dist/cjs/js/src/idex.js +0 -1770
  278. package/dist/cjs/js/src/independentreserve.js +0 -761
  279. package/dist/cjs/js/src/indodax.js +0 -1069
  280. package/dist/cjs/js/src/kraken.js +0 -2891
  281. package/dist/cjs/js/src/krakenfutures.js +0 -2407
  282. package/dist/cjs/js/src/kucoin.js +0 -4494
  283. package/dist/cjs/js/src/kucoinfutures.js +0 -2529
  284. package/dist/cjs/js/src/kuna.js +0 -1949
  285. package/dist/cjs/js/src/latoken.js +0 -1729
  286. package/dist/cjs/js/src/lbank.js +0 -2851
  287. package/dist/cjs/js/src/luno.js +0 -1044
  288. package/dist/cjs/js/src/lykke.js +0 -1303
  289. package/dist/cjs/js/src/mercado.js +0 -897
  290. package/dist/cjs/js/src/mexc.js +0 -5407
  291. package/dist/cjs/js/src/ndax.js +0 -2450
  292. package/dist/cjs/js/src/novadax.js +0 -1556
  293. package/dist/cjs/js/src/oceanex.js +0 -964
  294. package/dist/cjs/js/src/okcoin.js +0 -3115
  295. package/dist/cjs/js/src/okx.js +0 -7331
  296. package/dist/cjs/js/src/p2b.js +0 -1243
  297. package/dist/cjs/js/src/paymium.js +0 -597
  298. package/dist/cjs/js/src/phemex.js +0 -4725
  299. package/dist/cjs/js/src/poloniex.js +0 -2356
  300. package/dist/cjs/js/src/poloniexfutures.js +0 -1794
  301. package/dist/cjs/js/src/pro/alpaca.js +0 -714
  302. package/dist/cjs/js/src/pro/ascendex.js +0 -957
  303. package/dist/cjs/js/src/pro/bequant.js +0 -33
  304. package/dist/cjs/js/src/pro/binance.js +0 -2796
  305. package/dist/cjs/js/src/pro/binancecoinm.js +0 -23
  306. package/dist/cjs/js/src/pro/binanceus.js +0 -51
  307. package/dist/cjs/js/src/pro/binanceusdm.js +0 -32
  308. package/dist/cjs/js/src/pro/bingx.js +0 -944
  309. package/dist/cjs/js/src/pro/bitcoincom.js +0 -29
  310. package/dist/cjs/js/src/pro/bitfinex.js +0 -672
  311. package/dist/cjs/js/src/pro/bitfinex2.js +0 -1159
  312. package/dist/cjs/js/src/pro/bitget.js +0 -1733
  313. package/dist/cjs/js/src/pro/bitmart.js +0 -1486
  314. package/dist/cjs/js/src/pro/bitmex.js +0 -1576
  315. package/dist/cjs/js/src/pro/bitopro.js +0 -327
  316. package/dist/cjs/js/src/pro/bitrue.js +0 -462
  317. package/dist/cjs/js/src/pro/bitstamp.js +0 -547
  318. package/dist/cjs/js/src/pro/bitvavo.js +0 -704
  319. package/dist/cjs/js/src/pro/blockchaincom.js +0 -794
  320. package/dist/cjs/js/src/pro/bybit.js +0 -1843
  321. package/dist/cjs/js/src/pro/cex.js +0 -1510
  322. package/dist/cjs/js/src/pro/coinbase.js +0 -561
  323. package/dist/cjs/js/src/pro/coinbasepro.js +0 -968
  324. package/dist/cjs/js/src/pro/coinex.js +0 -1095
  325. package/dist/cjs/js/src/pro/cryptocom.js +0 -1020
  326. package/dist/cjs/js/src/pro/currencycom.js +0 -563
  327. package/dist/cjs/js/src/pro/deribit.js +0 -825
  328. package/dist/cjs/js/src/pro/exmo.js +0 -658
  329. package/dist/cjs/js/src/pro/gate.js +0 -1316
  330. package/dist/cjs/js/src/pro/gateio.js +0 -16
  331. package/dist/cjs/js/src/pro/gemini.js +0 -649
  332. package/dist/cjs/js/src/pro/hitbtc.js +0 -1294
  333. package/dist/cjs/js/src/pro/hollaex.js +0 -597
  334. package/dist/cjs/js/src/pro/htx.js +0 -2388
  335. package/dist/cjs/js/src/pro/huobi.js +0 -16
  336. package/dist/cjs/js/src/pro/huobijp.js +0 -606
  337. package/dist/cjs/js/src/pro/idex.js +0 -714
  338. package/dist/cjs/js/src/pro/independentreserve.js +0 -280
  339. package/dist/cjs/js/src/pro/kraken.js +0 -1364
  340. package/dist/cjs/js/src/pro/krakenfutures.js +0 -1506
  341. package/dist/cjs/js/src/pro/kucoin.js +0 -1062
  342. package/dist/cjs/js/src/pro/kucoinfutures.js +0 -989
  343. package/dist/cjs/js/src/pro/luno.js +0 -322
  344. package/dist/cjs/js/src/pro/mexc.js +0 -1170
  345. package/dist/cjs/js/src/pro/ndax.js +0 -545
  346. package/dist/cjs/js/src/pro/okcoin.js +0 -760
  347. package/dist/cjs/js/src/pro/okx.js +0 -1608
  348. package/dist/cjs/js/src/pro/phemex.js +0 -1511
  349. package/dist/cjs/js/src/pro/poloniex.js +0 -1253
  350. package/dist/cjs/js/src/pro/poloniexfutures.js +0 -1022
  351. package/dist/cjs/js/src/pro/probit.js +0 -586
  352. package/dist/cjs/js/src/pro/upbit.js +0 -234
  353. package/dist/cjs/js/src/pro/wazirx.js +0 -776
  354. package/dist/cjs/js/src/pro/whitebit.js +0 -927
  355. package/dist/cjs/js/src/pro/woo.js +0 -895
  356. package/dist/cjs/js/src/probit.js +0 -1867
  357. package/dist/cjs/js/src/static_dependencies/fflake/browser.js +0 -401
  358. package/dist/cjs/js/src/static_dependencies/jsencrypt/JSEncrypt.js +0 -195
  359. package/dist/cjs/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +0 -308
  360. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +0 -554
  361. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +0 -94
  362. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +0 -70
  363. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +0 -91
  364. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +0 -16
  365. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +0 -1760
  366. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +0 -52
  367. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +0 -81
  368. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +0 -376
  369. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/util.js +0 -70
  370. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +0 -1580
  371. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +0 -74
  372. package/dist/cjs/js/src/static_dependencies/noble-curves/_shortw_utils.js +0 -24
  373. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/curve.js +0 -158
  374. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/edwards.js +0 -429
  375. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +0 -176
  376. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/modular.js +0 -324
  377. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/montgomery.js +0 -163
  378. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/utils.js +0 -245
  379. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/weierstrass.js +0 -1018
  380. package/dist/cjs/js/src/static_dependencies/noble-curves/ed25519.js +0 -383
  381. package/dist/cjs/js/src/static_dependencies/noble-curves/secp256k1.js +0 -258
  382. package/dist/cjs/js/src/static_dependencies/noble-hashes/_assert.js +0 -53
  383. package/dist/cjs/js/src/static_dependencies/noble-hashes/_sha2.js +0 -120
  384. package/dist/cjs/js/src/static_dependencies/noble-hashes/_u64.js +0 -69
  385. package/dist/cjs/js/src/static_dependencies/noble-hashes/crypto.js +0 -7
  386. package/dist/cjs/js/src/static_dependencies/noble-hashes/hmac.js +0 -83
  387. package/dist/cjs/js/src/static_dependencies/noble-hashes/md5.js +0 -240
  388. package/dist/cjs/js/src/static_dependencies/noble-hashes/sha1.js +0 -91
  389. package/dist/cjs/js/src/static_dependencies/noble-hashes/sha256.js +0 -130
  390. package/dist/cjs/js/src/static_dependencies/noble-hashes/sha3.js +0 -214
  391. package/dist/cjs/js/src/static_dependencies/noble-hashes/sha512.js +0 -239
  392. package/dist/cjs/js/src/static_dependencies/noble-hashes/utils.js +0 -93
  393. package/dist/cjs/js/src/static_dependencies/node-fetch/body.js +0 -354
  394. package/dist/cjs/js/src/static_dependencies/node-fetch/errors/abort-error.js +0 -16
  395. package/dist/cjs/js/src/static_dependencies/node-fetch/errors/base.js +0 -20
  396. package/dist/cjs/js/src/static_dependencies/node-fetch/errors/fetch-error.js +0 -30
  397. package/dist/cjs/js/src/static_dependencies/node-fetch/headers.js +0 -239
  398. package/dist/cjs/js/src/static_dependencies/node-fetch/index.js +0 -372
  399. package/dist/cjs/js/src/static_dependencies/node-fetch/request.js +0 -273
  400. package/dist/cjs/js/src/static_dependencies/node-fetch/response.js +0 -139
  401. package/dist/cjs/js/src/static_dependencies/node-fetch/utils/get-search.js +0 -14
  402. package/dist/cjs/js/src/static_dependencies/node-fetch/utils/is-redirect.js +0 -16
  403. package/dist/cjs/js/src/static_dependencies/node-fetch/utils/is.js +0 -81
  404. package/dist/cjs/js/src/static_dependencies/node-fetch/utils/referrer.js +0 -292
  405. package/dist/cjs/js/src/static_dependencies/proxies/agent-base/index.js +0 -103
  406. package/dist/cjs/js/src/static_dependencies/proxies/http-proxy-agent/index.js +0 -140
  407. package/dist/cjs/js/src/static_dependencies/proxies/https-proxy-agent/index.js +0 -175
  408. package/dist/cjs/js/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +0 -95
  409. package/dist/cjs/js/src/static_dependencies/qs/index.cjs.js +0 -7
  410. package/dist/cjs/js/src/static_dependencies/scure-base/index.js +0 -383
  411. package/dist/cjs/js/src/timex.js +0 -1562
  412. package/dist/cjs/js/src/tokocrypto.js +0 -2542
  413. package/dist/cjs/js/src/upbit.js +0 -1844
  414. package/dist/cjs/js/src/wavesexchange.js +0 -2607
  415. package/dist/cjs/js/src/wazirx.js +0 -953
  416. package/dist/cjs/js/src/whitebit.js +0 -2310
  417. package/dist/cjs/js/src/woo.js +0 -2769
  418. package/dist/cjs/js/src/yobit.js +0 -1314
  419. package/dist/cjs/js/src/zaif.js +0 -736
  420. package/dist/cjs/js/src/zonda.js +0 -1883
  421. package/dist/cjs/src/abstract/bitpanda.js +0 -9
  422. package/test.ts +0 -0
  423. /package/dist/cjs/{js/src/abstract/ace.js → src/abstract/onetrading.js} +0 -0
  424. /package/dist/cjs/{js/src → src}/pro/coincheck.js +0 -0
  425. /package/dist/cjs/{js/src → src}/pro/coinone.js +0 -0
  426. /package/js/src/abstract/{bitpanda.js → onetrading.js} +0 -0
@@ -20,6 +20,7 @@ class okx extends okx$1 {
20
20
  'watchOrderBookForSymbols': true,
21
21
  'watchBalance': true,
22
22
  'watchOHLCV': true,
23
+ 'watchOHLCVForSymbols': true,
23
24
  'watchOrders': true,
24
25
  'watchMyTrades': true,
25
26
  'watchPositions': true,
@@ -356,6 +357,50 @@ class okx extends okx$1 {
356
357
  }
357
358
  return this.filterBySinceLimit(ohlcv, since, limit, 0, true);
358
359
  }
360
+ async watchOHLCVForSymbols(symbolsAndTimeframes, since = undefined, limit = undefined, params = {}) {
361
+ /**
362
+ * @method
363
+ * @name okx#watchOHLCVForSymbols
364
+ * @description watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
365
+ * @param {string[][]} symbolsAndTimeframes array of arrays containing unified symbols and timeframes to fetch OHLCV data for, example [['BTC/USDT', '1m'], ['LTC/USDT', '5m']]
366
+ * @param {int} [since] timestamp in ms of the earliest candle to fetch
367
+ * @param {int} [limit] the maximum amount of candles to fetch
368
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
369
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
370
+ */
371
+ const symbolsLength = symbolsAndTimeframes.length;
372
+ if (symbolsLength === 0 || !Array.isArray(symbolsAndTimeframes[0])) {
373
+ throw new errors.ArgumentsRequired(this.id + " watchOHLCVForSymbols() requires a an array of symbols and timeframes, like [['BTC/USDT', '1m'], ['LTC/USDT', '5m']]");
374
+ }
375
+ await this.loadMarkets();
376
+ const topics = [];
377
+ const messageHashes = [];
378
+ for (let i = 0; i < symbolsAndTimeframes.length; i++) {
379
+ const symbolAndTimeframe = symbolsAndTimeframes[i];
380
+ const sym = symbolAndTimeframe[0];
381
+ const tf = symbolAndTimeframe[1];
382
+ const marketId = this.marketId(sym);
383
+ const interval = this.safeString(this.timeframes, tf, tf);
384
+ const channel = 'candle' + interval;
385
+ const topic = {
386
+ 'channel': channel,
387
+ 'instId': marketId,
388
+ };
389
+ topics.push(topic);
390
+ messageHashes.push('multi:' + channel + ':' + sym);
391
+ }
392
+ const request = {
393
+ 'op': 'subscribe',
394
+ 'args': topics,
395
+ };
396
+ const url = this.getUrl('candle', 'public');
397
+ const [symbol, timeframe, candles] = await this.watchMultiple(url, messageHashes, request, messageHashes);
398
+ if (this.newUpdates) {
399
+ limit = candles.getLimit(symbol, limit);
400
+ }
401
+ const filtered = this.filterBySinceLimit(candles, since, limit, 0, true);
402
+ return this.createOHLCVObject(symbol, timeframe, filtered);
403
+ }
359
404
  handleOHLCV(client, message) {
360
405
  //
361
406
  // {
@@ -378,7 +423,7 @@ class okx extends okx$1 {
378
423
  const data = this.safeValue(message, 'data', []);
379
424
  const marketId = this.safeString(arg, 'instId');
380
425
  const market = this.safeMarket(marketId);
381
- const symbol = market['id'];
426
+ const symbol = market['symbol'];
382
427
  const interval = channel.replace('candle', '');
383
428
  // use a reverse lookup in a static map instead
384
429
  const timeframe = this.findTimeframe(interval);
@@ -392,8 +437,13 @@ class okx extends okx$1 {
392
437
  this.ohlcvs[symbol][timeframe] = stored;
393
438
  }
394
439
  stored.append(parsed);
395
- const messageHash = channel + ':' + marketId;
440
+ const messageHash = channel + ':' + market['id'];
396
441
  client.resolve(stored, messageHash);
442
+ // for multiOHLCV we need special object, as opposed to other "multi"
443
+ // methods, because OHLCV response item does not contain symbol
444
+ // or timeframe, thus otherwise it would be unrecognizable
445
+ const messageHashForMulti = 'multi:' + channel + ':' + symbol;
446
+ client.resolve([symbol, timeframe, stored], messageHashForMulti);
397
447
  }
398
448
  }
399
449
  async watchOrderBook(symbol, limit = undefined, params = {}) {
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var bitpanda$1 = require('../bitpanda.js');
3
+ var onetrading$1 = require('../onetrading.js');
4
4
  var errors = require('../base/errors.js');
5
5
  var Cache = require('../base/ws/Cache.js');
6
6
 
7
7
  // ---------------------------------------------------------------------------
8
8
  // ---------------------------------------------------------------------------
9
- class bitpanda extends bitpanda$1 {
9
+ class onetrading extends onetrading$1 {
10
10
  describe() {
11
11
  return this.deepExtend(super.describe(), {
12
12
  'has': {
@@ -21,11 +21,8 @@ class bitpanda extends bitpanda$1 {
21
21
  'watchOHLCV': true,
22
22
  },
23
23
  'urls': {
24
- 'test': {
25
- 'ws': 'wss://test.bitpanda.com/ws/api/v2',
26
- },
27
24
  'api': {
28
- 'ws': 'wss://streams.exchange.bitpanda.com',
25
+ 'ws': 'wss://streams.onetrading.com/',
29
26
  },
30
27
  },
31
28
  'options': {
@@ -1338,4 +1335,4 @@ class bitpanda extends bitpanda$1 {
1338
1335
  }
1339
1336
  }
1340
1337
 
1341
- module.exports = bitpanda;
1338
+ module.exports = onetrading;
@@ -940,7 +940,7 @@ class poloniex extends poloniex$1 {
940
940
  // }
941
941
  //
942
942
  const data = this.safeValue(message, 'data', []);
943
- const newTickers = [];
943
+ const newTickers = {};
944
944
  for (let i = 0; i < data.length; i++) {
945
945
  const item = data[i];
946
946
  const marketId = this.safeString(item, 'symbol');
@@ -948,7 +948,7 @@ class poloniex extends poloniex$1 {
948
948
  const ticker = this.parseTicker(item);
949
949
  const symbol = ticker['symbol'];
950
950
  this.tickers[symbol] = ticker;
951
- newTickers.push(ticker);
951
+ newTickers[symbol] = ticker;
952
952
  }
953
953
  }
954
954
  const messageHashes = this.findMessageHashes(client, 'ticker::');
@@ -75,43 +75,51 @@ class poloniexfutures extends poloniexfutures$1 {
75
75
  async negotiateHelper(privateChannel, params = {}) {
76
76
  let response = undefined;
77
77
  const connectId = privateChannel ? 'private' : 'public';
78
- if (privateChannel) {
79
- response = await this.privatePostBulletPrivate(params);
80
- //
81
- // {
82
- // "code": "200000",
83
- // "data": {
84
- // "instanceServers": [
85
- // {
86
- // "pingInterval": 50000,
87
- // "endpoint": "wss://push-private.kucoin.com/endpoint",
88
- // "protocol": "websocket",
89
- // "encrypt": true,
90
- // "pingTimeout": 10000
91
- // }
92
- // ],
93
- // "token": "2neAiuYvAU61ZDXANAGAsiL4-iAExhsBXZxftpOeh_55i3Ysy2q2LEsEWU64mdzUOPusi34M_wGoSf7iNyEWJ1UQy47YbpY4zVdzilNP-Bj3iXzrjjGlWtiYB9J6i9GjsxUuhPw3BlrzazF6ghq4Lzf7scStOz3KkxjwpsOBCH4=.WNQmhZQeUKIkh97KYgU0Lg=="
94
- // }
95
- // }
96
- //
78
+ try {
79
+ if (privateChannel) {
80
+ response = await this.privatePostBulletPrivate(params);
81
+ //
82
+ // {
83
+ // "code": "200000",
84
+ // "data": {
85
+ // "instanceServers": [
86
+ // {
87
+ // "pingInterval": 50000,
88
+ // "endpoint": "wss://push-private.kucoin.com/endpoint",
89
+ // "protocol": "websocket",
90
+ // "encrypt": true,
91
+ // "pingTimeout": 10000
92
+ // }
93
+ // ],
94
+ // "token": "2neAiuYvAU61ZDXANAGAsiL4-iAExhsBXZxftpOeh_55i3Ysy2q2LEsEWU64mdzUOPusi34M_wGoSf7iNyEWJ1UQy47YbpY4zVdzilNP-Bj3iXzrjjGlWtiYB9J6i9GjsxUuhPw3BlrzazF6ghq4Lzf7scStOz3KkxjwpsOBCH4=.WNQmhZQeUKIkh97KYgU0Lg=="
95
+ // }
96
+ // }
97
+ //
98
+ }
99
+ else {
100
+ response = await this.publicPostBulletPublic(params);
101
+ }
102
+ const data = this.safeValue(response, 'data', {});
103
+ const instanceServers = this.safeValue(data, 'instanceServers', []);
104
+ const firstInstanceServer = this.safeValue(instanceServers, 0);
105
+ const pingInterval = this.safeInteger(firstInstanceServer, 'pingInterval');
106
+ const endpoint = this.safeString(firstInstanceServer, 'endpoint');
107
+ const token = this.safeString(data, 'token');
108
+ const result = endpoint + '?' + this.urlencode({
109
+ 'token': token,
110
+ 'privateChannel': privateChannel,
111
+ 'connectId': connectId,
112
+ });
113
+ const client = this.client(result);
114
+ client.keepAlive = pingInterval;
115
+ return result;
97
116
  }
98
- else {
99
- response = await this.publicPostBulletPublic(params);
117
+ catch (e) {
118
+ const future = this.safeValue(this.options['urls'], connectId);
119
+ future.reject(e);
120
+ delete this.options['urls'][connectId];
100
121
  }
101
- const data = this.safeValue(response, 'data', {});
102
- const instanceServers = this.safeValue(data, 'instanceServers', []);
103
- const firstInstanceServer = this.safeValue(instanceServers, 0);
104
- const pingInterval = this.safeInteger(firstInstanceServer, 'pingInterval');
105
- const endpoint = this.safeString(firstInstanceServer, 'endpoint');
106
- const token = this.safeString(data, 'token');
107
- const result = endpoint + '?' + this.urlencode({
108
- 'token': token,
109
- 'privateChannel': privateChannel,
110
- 'connectId': connectId,
111
- });
112
- const client = this.client(result);
113
- client.keepAlive = pingInterval;
114
- return result;
122
+ return undefined;
115
123
  }
116
124
  requestId() {
117
125
  const requestId = this.sum(this.safeInteger(this.options, 'requestId', 0), 1);
@@ -21,6 +21,7 @@ class woo extends woo$1 {
21
21
  'watchTicker': true,
22
22
  'watchTickers': true,
23
23
  'watchTrades': true,
24
+ 'watchPositions': true,
24
25
  },
25
26
  'urls': {
26
27
  'api': {
@@ -45,6 +46,10 @@ class woo extends woo$1 {
45
46
  'tradesLimit': 1000,
46
47
  'ordersLimit': 1000,
47
48
  'requestId': {},
49
+ 'watchPositions': {
50
+ 'fetchPositionsSnapshot': true,
51
+ 'awaitPositionsSnapshot': true, // whether to wait for the positions snapshot before providing updates
52
+ },
48
53
  },
49
54
  'streaming': {
50
55
  'ping': this.ping,
@@ -603,6 +608,126 @@ class woo extends woo$1 {
603
608
  client.resolve(this.orders, messageHashSymbol);
604
609
  }
605
610
  }
611
+ async watchPositions(symbols = undefined, since = undefined, limit = undefined, params = {}) {
612
+ /**
613
+ * @method
614
+ * @name woo#watchPositions
615
+ * @see https://docs.woo.org/#position-push
616
+ * @description watch all open positions
617
+ * @param {string[]|undefined} symbols list of unified market symbols
618
+ * @param {object} params extra parameters specific to the exchange API endpoint
619
+ * @returns {object[]} a list of [position structure]{@link https://docs.ccxt.com/en/latest/manual.html#position-structure}
620
+ */
621
+ await this.loadMarkets();
622
+ let messageHash = '';
623
+ symbols = this.marketSymbols(symbols);
624
+ if (!this.isEmpty(symbols)) {
625
+ messageHash = '::' + symbols.join(',');
626
+ }
627
+ messageHash = 'positions' + messageHash;
628
+ const url = this.urls['api']['ws']['private'] + '/' + this.uid;
629
+ const client = this.client(url);
630
+ this.setPositionsCache(client, symbols);
631
+ const fetchPositionsSnapshot = this.handleOption('watchPositions', 'fetchPositionsSnapshot', true);
632
+ const awaitPositionsSnapshot = this.safeValue('watchPositions', 'awaitPositionsSnapshot', true);
633
+ if (fetchPositionsSnapshot && awaitPositionsSnapshot && this.positions === undefined) {
634
+ const snapshot = await client.future('fetchPositionsSnapshot');
635
+ return this.filterBySymbolsSinceLimit(snapshot, symbols, since, limit, true);
636
+ }
637
+ const request = {
638
+ 'event': 'subscribe',
639
+ 'topic': 'position',
640
+ };
641
+ const newPositions = await this.watchPrivate(messageHash, request, params);
642
+ if (this.newUpdates) {
643
+ return newPositions;
644
+ }
645
+ return this.filterBySymbolsSinceLimit(this.positions, symbols, since, limit, true);
646
+ }
647
+ setPositionsCache(client, type, symbols = undefined) {
648
+ const fetchPositionsSnapshot = this.handleOption('watchPositions', 'fetchPositionsSnapshot', false);
649
+ if (fetchPositionsSnapshot) {
650
+ const messageHash = 'fetchPositionsSnapshot';
651
+ if (!(messageHash in client.futures)) {
652
+ client.future(messageHash);
653
+ this.spawn(this.loadPositionsSnapshot, client, messageHash);
654
+ }
655
+ }
656
+ else {
657
+ this.positions = new Cache.ArrayCacheBySymbolBySide();
658
+ }
659
+ }
660
+ async loadPositionsSnapshot(client, messageHash) {
661
+ const positions = await this.fetchPositions();
662
+ this.positions = new Cache.ArrayCacheBySymbolBySide();
663
+ const cache = this.positions;
664
+ for (let i = 0; i < positions.length; i++) {
665
+ const position = positions[i];
666
+ const contracts = this.safeNumber(position, 'contracts', 0);
667
+ if (contracts > 0) {
668
+ cache.append(position);
669
+ }
670
+ }
671
+ // don't remove the future from the .futures cache
672
+ const future = client.futures[messageHash];
673
+ future.resolve(cache);
674
+ client.resolve(cache, 'positions');
675
+ }
676
+ handlePositions(client, message) {
677
+ //
678
+ // {
679
+ // "topic":"position",
680
+ // "ts":1705292345255,
681
+ // "data":{
682
+ // "positions":{
683
+ // "PERP_LTC_USDT":{
684
+ // "holding":1,
685
+ // "pendingLongQty":0,
686
+ // "pendingShortQty":0,
687
+ // "averageOpenPrice":71.53,
688
+ // "pnl24H":0,
689
+ // "fee24H":0.07153,
690
+ // "settlePrice":71.53,
691
+ // "markPrice":71.32098452065145,
692
+ // "version":7886,
693
+ // "openingTime":1705292304267,
694
+ // "pnl24HPercentage":0,
695
+ // "adlQuantile":1,
696
+ // "positionSide":"BOTH"
697
+ // }
698
+ // }
699
+ // }
700
+ // }
701
+ //
702
+ const data = this.safeValue(message, 'data', {});
703
+ const rawPositions = this.safeValue(data, 'positions', {});
704
+ const postitionsIds = Object.keys(rawPositions);
705
+ if (this.positions === undefined) {
706
+ this.positions = new Cache.ArrayCacheBySymbolBySide();
707
+ }
708
+ const cache = this.positions;
709
+ const newPositions = [];
710
+ for (let i = 0; i < postitionsIds.length; i++) {
711
+ const marketId = postitionsIds[i];
712
+ const market = this.safeMarket(marketId);
713
+ const rawPosition = rawPositions[marketId];
714
+ const position = this.parsePosition(rawPosition, market);
715
+ newPositions.push(position);
716
+ cache.append(position);
717
+ }
718
+ const messageHashes = this.findMessageHashes(client, 'positions::');
719
+ for (let i = 0; i < messageHashes.length; i++) {
720
+ const messageHash = messageHashes[i];
721
+ const parts = messageHash.split('::');
722
+ const symbolsString = parts[1];
723
+ const symbols = symbolsString.split(',');
724
+ const positions = this.filterByArray(newPositions, 'symbol', symbols, false);
725
+ if (!this.isEmpty(positions)) {
726
+ client.resolve(positions, messageHash);
727
+ }
728
+ }
729
+ client.resolve(newPositions, 'positions');
730
+ }
606
731
  async watchBalance(params = {}) {
607
732
  /**
608
733
  * @method
@@ -686,6 +811,7 @@ class woo extends woo$1 {
686
811
  'executionreport': this.handleOrderUpdate,
687
812
  'trade': this.handleTrade,
688
813
  'balance': this.handleBalance,
814
+ 'position': this.handlePositions,
689
815
  };
690
816
  const event = this.safeString(message, 'event');
691
817
  let method = this.safeValue(methods, event);
@@ -776,7 +776,6 @@ class probit extends probit$1 {
776
776
  const market = this.market(symbol);
777
777
  const request = {
778
778
  'market_id': market['id'],
779
- 'limit': 100,
780
779
  'start_time': '1970-01-01T00:00:00.000Z',
781
780
  'end_time': this.iso8601(this.milliseconds()),
782
781
  };
@@ -784,7 +783,10 @@ class probit extends probit$1 {
784
783
  request['start_time'] = this.iso8601(since);
785
784
  }
786
785
  if (limit !== undefined) {
787
- request['limit'] = Math.min(limit, 10000);
786
+ request['limit'] = Math.min(limit, 1000);
787
+ }
788
+ else {
789
+ request['limit'] = 1000; // required to set any value
788
790
  }
789
791
  const response = await this.publicGetTrade(this.extend(request, params));
790
792
  //
@@ -261,11 +261,11 @@ class upbit extends upbit$1 {
261
261
  else if ((locked !== undefined) && locked) {
262
262
  active = false;
263
263
  }
264
- const maxOnetimeWithdrawal = this.safeNumber(withdrawLimits, 'onetime');
265
- const maxDailyWithdrawal = this.safeNumber(withdrawLimits, 'daily', maxOnetimeWithdrawal);
266
- const remainingDailyWithdrawal = this.safeNumber(withdrawLimits, 'remaining_daily', maxDailyWithdrawal);
264
+ const maxOnetimeWithdrawal = this.safeString(withdrawLimits, 'onetime');
265
+ const maxDailyWithdrawal = this.safeString(withdrawLimits, 'daily', maxOnetimeWithdrawal);
266
+ const remainingDailyWithdrawal = this.safeString(withdrawLimits, 'remaining_daily', maxDailyWithdrawal);
267
267
  let maxWithdrawLimit = undefined;
268
- if (remainingDailyWithdrawal > 0) {
268
+ if (Precise["default"].stringGt(remainingDailyWithdrawal, '0')) {
269
269
  maxWithdrawLimit = remainingDailyWithdrawal;
270
270
  }
271
271
  else {
@@ -284,7 +284,7 @@ class upbit extends upbit$1 {
284
284
  'limits': {
285
285
  'withdraw': {
286
286
  'min': this.safeNumber(withdrawLimits, 'minimum'),
287
- 'max': maxWithdrawLimit,
287
+ 'max': this.parseNumber(maxWithdrawLimit),
288
288
  },
289
289
  },
290
290
  };
@@ -344,10 +344,10 @@ class upbit extends upbit$1 {
344
344
  const base = this.safeCurrencyCode(baseId);
345
345
  const quote = this.safeCurrencyCode(quoteId);
346
346
  const state = this.safeString(marketInfo, 'state');
347
- const bidFee = this.safeNumber(response, 'bid_fee');
348
- const askFee = this.safeNumber(response, 'ask_fee');
349
- const fee = Math.max(bidFee, askFee);
350
- return {
347
+ const bidFee = this.safeString(response, 'bid_fee');
348
+ const askFee = this.safeString(response, 'ask_fee');
349
+ const fee = this.parseNumber(Precise["default"].stringMax(bidFee, askFee));
350
+ return this.safeMarketStructure({
351
351
  'id': marketId,
352
352
  'symbol': base + '/' + quote,
353
353
  'base': base,
@@ -396,7 +396,7 @@ class upbit extends upbit$1 {
396
396
  },
397
397
  'info': response,
398
398
  },
399
- };
399
+ });
400
400
  }
401
401
  async fetchMarkets(params = {}) {
402
402
  /**
@@ -425,7 +425,7 @@ class upbit extends upbit$1 {
425
425
  const [quoteId, baseId] = id.split('-');
426
426
  const base = this.safeCurrencyCode(baseId);
427
427
  const quote = this.safeCurrencyCode(quoteId);
428
- return {
428
+ return this.safeMarketStructure({
429
429
  'id': id,
430
430
  'symbol': base + '/' + quote,
431
431
  'base': base,
@@ -475,7 +475,7 @@ class upbit extends upbit$1 {
475
475
  },
476
476
  'created': undefined,
477
477
  'info': market,
478
- };
478
+ });
479
479
  }
480
480
  parseBalance(response) {
481
481
  const result = {
@@ -2092,7 +2092,7 @@ class wavesexchange extends wavesexchange$1 {
2092
2092
  'priceAsset': market['quoteId'],
2093
2093
  };
2094
2094
  if (limit !== undefined) {
2095
- request['limit'] = limit;
2095
+ request['limit'] = Math.min(limit, 100);
2096
2096
  }
2097
2097
  if (since !== undefined) {
2098
2098
  request['timeStart'] = since;
@@ -66,6 +66,7 @@ class whitebit extends whitebit$1 {
66
66
  'fetchOrderTrades': true,
67
67
  'fetchPositionMode': false,
68
68
  'fetchPremiumIndexOHLCV': false,
69
+ 'fetchStatus': true,
69
70
  'fetchTicker': true,
70
71
  'fetchTickers': true,
71
72
  'fetchTime': true,
@@ -42,10 +42,16 @@ class woo extends woo$1 {
42
42
  'createMarketOrderWithCost': false,
43
43
  'createMarketSellOrderWithCost': false,
44
44
  'createOrder': true,
45
+ 'createOrderWithTakeProfitAndStopLoss': true,
45
46
  'createReduceOnlyOrder': true,
46
47
  'createStopLimitOrder': false,
48
+ 'createStopLossOrder': true,
47
49
  'createStopMarketOrder': false,
48
50
  'createStopOrder': false,
51
+ 'createTakeProfitOrder': true,
52
+ 'createTrailingAmountOrder': true,
53
+ 'createTrailingPercentOrder': true,
54
+ 'createTriggerOrder': true,
49
55
  'fetchAccounts': true,
50
56
  'fetchBalance': true,
51
57
  'fetchCanceledOrders': false,
@@ -761,6 +767,56 @@ class woo extends woo$1 {
761
767
  params['createMarketBuyOrderRequiresPrice'] = false;
762
768
  return await this.createOrder(symbol, 'market', 'buy', cost, undefined, params);
763
769
  }
770
+ async createTrailingAmountOrder(symbol, type, side, amount, price = undefined, trailingAmount = undefined, trailingTriggerPrice = undefined, params = {}) {
771
+ /**
772
+ * @method
773
+ * @name woo#createTrailingAmountOrder
774
+ * @description create a trailing order by providing the symbol, type, side, amount, price and trailingAmount
775
+ * @param {string} symbol unified symbol of the market to create an order in
776
+ * @param {string} type 'market' or 'limit'
777
+ * @param {string} side 'buy' or 'sell'
778
+ * @param {float} amount how much you want to trade in units of the base currency, or number of contracts
779
+ * @param {float} [price] the price for the order to be filled at, in units of the quote currency, ignored in market orders
780
+ * @param {float} trailingAmount the quote amount to trail away from the current market price
781
+ * @param {float} trailingTriggerPrice the price to activate a trailing order, default uses the price argument
782
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
783
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
784
+ */
785
+ if (trailingAmount === undefined) {
786
+ throw new errors.ArgumentsRequired(this.id + ' createTrailingAmountOrder() requires a trailingAmount argument');
787
+ }
788
+ if (trailingTriggerPrice === undefined) {
789
+ throw new errors.ArgumentsRequired(this.id + ' createTrailingAmountOrder() requires a trailingTriggerPrice argument');
790
+ }
791
+ params['trailingAmount'] = trailingAmount;
792
+ params['trailingTriggerPrice'] = trailingTriggerPrice;
793
+ return await this.createOrder(symbol, type, side, amount, price, params);
794
+ }
795
+ async createTrailingPercentOrder(symbol, type, side, amount, price = undefined, trailingPercent = undefined, trailingTriggerPrice = undefined, params = {}) {
796
+ /**
797
+ * @method
798
+ * @name woo#createTrailingPercentOrder
799
+ * @description create a trailing order by providing the symbol, type, side, amount, price and trailingPercent
800
+ * @param {string} symbol unified symbol of the market to create an order in
801
+ * @param {string} type 'market' or 'limit'
802
+ * @param {string} side 'buy' or 'sell'
803
+ * @param {float} amount how much you want to trade in units of the base currency, or number of contracts
804
+ * @param {float} [price] the price for the order to be filled at, in units of the quote currency, ignored in market orders
805
+ * @param {float} trailingPercent the percent to trail away from the current market price
806
+ * @param {float} trailingTriggerPrice the price to activate a trailing order, default uses the price argument
807
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
808
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
809
+ */
810
+ if (trailingPercent === undefined) {
811
+ throw new errors.ArgumentsRequired(this.id + ' createTrailingPercentOrder() requires a trailingPercent argument');
812
+ }
813
+ if (trailingTriggerPrice === undefined) {
814
+ throw new errors.ArgumentsRequired(this.id + ' createTrailingPercentOrder() requires a trailingTriggerPrice argument');
815
+ }
816
+ params['trailingPercent'] = trailingPercent;
817
+ params['trailingTriggerPrice'] = trailingTriggerPrice;
818
+ return await this.createOrder(symbol, type, side, amount, price, params);
819
+ }
764
820
  async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
765
821
  /**
766
822
  * @method
package/js/ccxt.d.ts CHANGED
@@ -4,7 +4,7 @@ import * as functions from './src/base/functions.js';
4
4
  import * as errors from './src/base/errors.js';
5
5
  import type { Market, Trade, Fee, Ticker, OrderBook, Order, Transaction, Tickers, Currency, Balance, DepositAddress, WithdrawalResponse, DepositAddressResponse, OHLCV, Balances, PartialBalances, Dictionary, MinMax, Position, FundingRateHistory, Liquidation, FundingHistory, MarginMode, Greeks } from './src/base/types.js';
6
6
  import { BaseError, ExchangeError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, MarginModeAlreadySet, BadResponse, NullResponse, InsufficientFunds, InvalidAddress, InvalidOrder, OrderNotFound, OrderNotCached, CancelPending, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, NotSupported, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, AuthenticationError, AddressPending, NoChange } from './src/base/errors.js';
7
- declare const version = "4.2.17";
7
+ declare const version = "4.2.18";
8
8
  import ace from './src/ace.js';
9
9
  import alpaca from './src/alpaca.js';
10
10
  import ascendex from './src/ascendex.js';
@@ -87,6 +87,7 @@ import novadax from './src/novadax.js';
87
87
  import oceanex from './src/oceanex.js';
88
88
  import okcoin from './src/okcoin.js';
89
89
  import okx from './src/okx.js';
90
+ import onetrading from './src/onetrading.js';
90
91
  import p2b from './src/p2b.js';
91
92
  import paymium from './src/paymium.js';
92
93
  import phemex from './src/phemex.js';
@@ -148,11 +149,13 @@ import krakenPro from './src/pro/kraken.js';
148
149
  import krakenfuturesPro from './src/pro/krakenfutures.js';
149
150
  import kucoinPro from './src/pro/kucoin.js';
150
151
  import kucoinfuturesPro from './src/pro/kucoinfutures.js';
152
+ import lbankPro from './src/pro/lbank.js';
151
153
  import lunoPro from './src/pro/luno.js';
152
154
  import mexcPro from './src/pro/mexc.js';
153
155
  import ndaxPro from './src/pro/ndax.js';
154
156
  import okcoinPro from './src/pro/okcoin.js';
155
157
  import okxPro from './src/pro/okx.js';
158
+ import onetradingPro from './src/pro/onetrading.js';
156
159
  import phemexPro from './src/pro/phemex.js';
157
160
  import poloniexPro from './src/pro/poloniex.js';
158
161
  import poloniexfuturesPro from './src/pro/poloniexfutures.js';
@@ -244,6 +247,7 @@ declare const exchanges: {
244
247
  oceanex: typeof oceanex;
245
248
  okcoin: typeof okcoin;
246
249
  okx: typeof okx;
250
+ onetrading: typeof onetrading;
247
251
  p2b: typeof p2b;
248
252
  paymium: typeof paymium;
249
253
  phemex: typeof phemex;
@@ -307,11 +311,13 @@ declare const pro: {
307
311
  krakenfutures: typeof krakenfuturesPro;
308
312
  kucoin: typeof kucoinPro;
309
313
  kucoinfutures: typeof kucoinfuturesPro;
314
+ lbank: typeof lbankPro;
310
315
  luno: typeof lunoPro;
311
316
  mexc: typeof mexcPro;
312
317
  ndax: typeof ndaxPro;
313
318
  okcoin: typeof okcoinPro;
314
319
  okx: typeof okxPro;
320
+ onetrading: typeof onetradingPro;
315
321
  phemex: typeof phemexPro;
316
322
  poloniex: typeof poloniexPro;
317
323
  poloniexfutures: typeof poloniexfuturesPro;
@@ -372,11 +378,13 @@ declare const ccxt: {
372
378
  krakenfutures: typeof krakenfuturesPro;
373
379
  kucoin: typeof kucoinPro;
374
380
  kucoinfutures: typeof kucoinfuturesPro;
381
+ lbank: typeof lbankPro;
375
382
  luno: typeof lunoPro;
376
383
  mexc: typeof mexcPro;
377
384
  ndax: typeof ndaxPro;
378
385
  okcoin: typeof okcoinPro;
379
386
  okx: typeof okxPro;
387
+ onetrading: typeof onetradingPro;
380
388
  phemex: typeof phemexPro;
381
389
  poloniex: typeof poloniexPro;
382
390
  poloniexfutures: typeof poloniexfuturesPro;
@@ -469,6 +477,7 @@ declare const ccxt: {
469
477
  oceanex: typeof oceanex;
470
478
  okcoin: typeof okcoin;
471
479
  okx: typeof okx;
480
+ onetrading: typeof onetrading;
472
481
  p2b: typeof p2b;
473
482
  paymium: typeof paymium;
474
483
  phemex: typeof phemex;
@@ -486,5 +495,5 @@ declare const ccxt: {
486
495
  zaif: typeof zaif;
487
496
  zonda: typeof zonda;
488
497
  } & typeof functions & typeof errors;
489
- export { version, Exchange, exchanges, pro, Precise, functions, errors, BaseError, ExchangeError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, MarginModeAlreadySet, BadResponse, NullResponse, InsufficientFunds, InvalidAddress, InvalidOrder, OrderNotFound, OrderNotCached, CancelPending, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, NotSupported, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, AuthenticationError, AddressPending, NoChange, Market, Trade, Fee, Ticker, OrderBook, Order, Transaction, Tickers, Currency, Balance, DepositAddress, WithdrawalResponse, DepositAddressResponse, OHLCV, Balances, PartialBalances, Dictionary, MinMax, Position, FundingRateHistory, Liquidation, FundingHistory, MarginMode, Greeks, ace, alpaca, ascendex, bequant, bigone, binance, binancecoinm, binanceus, binanceusdm, bingx, bit2c, bitbank, bitbay, bitbns, bitcoincom, bitfinex, bitfinex2, bitflyer, bitforex, bitget, bithumb, bitmart, bitmex, bitopro, bitpanda, bitrue, bitso, bitstamp, bitteam, bitvavo, bl3p, blockchaincom, btcalpha, btcbox, btcmarkets, btcturk, bybit, cex, coinbase, coinbasepro, coincheck, coinex, coinlist, coinmate, coinone, coinsph, coinspot, cryptocom, currencycom, delta, deribit, digifinex, exmo, fmfwio, gate, gateio, gemini, hitbtc, hitbtc3, hollaex, htx, huobi, huobijp, idex, independentreserve, indodax, kraken, krakenfutures, kucoin, kucoinfutures, kuna, latoken, lbank, luno, lykke, mercado, mexc, ndax, novadax, oceanex, okcoin, okx, p2b, paymium, phemex, poloniex, poloniexfutures, probit, timex, tokocrypto, upbit, wavesexchange, wazirx, whitebit, woo, yobit, zaif, zonda, };
498
+ export { version, Exchange, exchanges, pro, Precise, functions, errors, BaseError, ExchangeError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, MarginModeAlreadySet, BadResponse, NullResponse, InsufficientFunds, InvalidAddress, InvalidOrder, OrderNotFound, OrderNotCached, CancelPending, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, NotSupported, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, AuthenticationError, AddressPending, NoChange, Market, Trade, Fee, Ticker, OrderBook, Order, Transaction, Tickers, Currency, Balance, DepositAddress, WithdrawalResponse, DepositAddressResponse, OHLCV, Balances, PartialBalances, Dictionary, MinMax, Position, FundingRateHistory, Liquidation, FundingHistory, MarginMode, Greeks, ace, alpaca, ascendex, bequant, bigone, binance, binancecoinm, binanceus, binanceusdm, bingx, bit2c, bitbank, bitbay, bitbns, bitcoincom, bitfinex, bitfinex2, bitflyer, bitforex, bitget, bithumb, bitmart, bitmex, bitopro, bitpanda, bitrue, bitso, bitstamp, bitteam, bitvavo, bl3p, blockchaincom, btcalpha, btcbox, btcmarkets, btcturk, bybit, cex, coinbase, coinbasepro, coincheck, coinex, coinlist, coinmate, coinone, coinsph, coinspot, cryptocom, currencycom, delta, deribit, digifinex, exmo, fmfwio, gate, gateio, gemini, hitbtc, hitbtc3, hollaex, htx, huobi, huobijp, idex, independentreserve, indodax, kraken, krakenfutures, kucoin, kucoinfutures, kuna, latoken, lbank, luno, lykke, mercado, mexc, ndax, novadax, oceanex, okcoin, okx, onetrading, p2b, paymium, phemex, poloniex, poloniexfutures, probit, timex, tokocrypto, upbit, wavesexchange, wazirx, whitebit, woo, yobit, zaif, zonda, };
490
499
  export default ccxt;