ccxt 4.2.17 → 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 (439) hide show
  1. package/README.md +9 -9
  2. package/dist/ccxt.browser.js +48992 -47725
  3. package/dist/ccxt.browser.min.js +3 -3
  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/coincheck.js +208 -0
  49. package/dist/cjs/src/pro/hitbtc.js +5 -4
  50. package/dist/cjs/src/pro/htx.js +6 -1
  51. package/dist/cjs/src/pro/kraken.js +1 -1
  52. package/dist/cjs/src/pro/krakenfutures.js +7 -1
  53. package/dist/cjs/src/pro/kucoin.js +46 -36
  54. package/dist/cjs/src/pro/kucoinfutures.js +45 -37
  55. package/dist/cjs/src/pro/lbank.js +881 -0
  56. package/dist/cjs/src/pro/okx.js +52 -2
  57. package/dist/cjs/{js/src/pro/bitpanda.js → src/pro/onetrading.js} +4 -7
  58. package/dist/cjs/src/pro/poloniex.js +2 -2
  59. package/dist/cjs/src/pro/poloniexfutures.js +43 -35
  60. package/dist/cjs/src/pro/woo.js +126 -0
  61. package/dist/cjs/src/probit.js +4 -2
  62. package/dist/cjs/src/upbit.js +12 -12
  63. package/dist/cjs/src/wavesexchange.js +1 -1
  64. package/dist/cjs/src/whitebit.js +1 -0
  65. package/dist/cjs/src/woo.js +56 -0
  66. package/js/ccxt.d.ts +14 -2
  67. package/js/ccxt.js +10 -2
  68. package/js/src/abstract/bitpanda.d.ts +4 -4
  69. package/js/src/abstract/bitstamp.d.ts +8 -0
  70. package/js/src/abstract/gate.d.ts +1 -0
  71. package/js/src/abstract/gateio.d.ts +1 -0
  72. package/js/src/abstract/htx.d.ts +3 -0
  73. package/js/src/abstract/huobi.d.ts +3 -0
  74. package/js/src/abstract/luno.d.ts +1 -0
  75. package/js/src/abstract/onetrading.d.ts +38 -0
  76. package/js/src/ascendex.js +2 -0
  77. package/js/src/base/Exchange.d.ts +2 -3
  78. package/js/src/base/Exchange.js +5 -2
  79. package/js/src/binance.js +7 -1
  80. package/js/src/bingx.d.ts +1 -0
  81. package/js/src/bingx.js +26 -0
  82. package/js/src/bitget.js +22 -3
  83. package/js/src/bitpanda.d.ts +2 -72
  84. package/js/src/bitpanda.js +5 -1991
  85. package/js/src/bitstamp.js +8 -0
  86. package/js/src/bybit.js +21 -47
  87. package/js/src/coincheck.js +1 -0
  88. package/js/src/deribit.js +16 -4
  89. package/js/src/gate.d.ts +1 -0
  90. package/js/src/gate.js +50 -110
  91. package/js/src/htx.js +3 -0
  92. package/js/src/kraken.d.ts +1 -0
  93. package/js/src/kraken.js +40 -39
  94. package/js/src/lbank.js +1 -0
  95. package/js/src/luno.d.ts +3 -1
  96. package/js/src/luno.js +84 -2
  97. package/js/src/mexc.js +1 -2
  98. package/js/src/onetrading.d.ts +74 -0
  99. package/js/src/onetrading.js +2003 -0
  100. package/js/src/poloniexfutures.js +1 -0
  101. package/js/src/pro/binance.js +7 -2
  102. package/js/src/pro/bitget.js +1 -1
  103. package/js/src/pro/bitpanda.d.ts +2 -34
  104. package/js/src/pro/bitpanda.js +5 -1330
  105. package/js/src/pro/coincheck.d.ts +12 -0
  106. package/js/src/pro/coincheck.js +209 -0
  107. package/js/src/pro/kucoin.js +43 -35
  108. package/js/src/pro/kucoinfutures.js +45 -37
  109. package/js/src/pro/lbank.d.ts +29 -0
  110. package/js/src/pro/lbank.js +882 -0
  111. package/js/src/pro/onetrading.d.ts +36 -0
  112. package/js/src/pro/onetrading.js +1339 -0
  113. package/js/src/pro/poloniexfutures.js +43 -35
  114. package/js/src/whitebit.js +1 -0
  115. package/package.json +2 -2
  116. package/rollup.config.js +2 -0
  117. package/skip-tests.json +14 -2
  118. package/test-commonjs.cjs +25 -1
  119. package/dist/cjs/js/ccxt.js +0 -476
  120. package/dist/cjs/js/src/abstract/alpaca.js +0 -9
  121. package/dist/cjs/js/src/abstract/ascendex.js +0 -9
  122. package/dist/cjs/js/src/abstract/bigone.js +0 -9
  123. package/dist/cjs/js/src/abstract/binance.js +0 -9
  124. package/dist/cjs/js/src/abstract/bingx.js +0 -9
  125. package/dist/cjs/js/src/abstract/bit2c.js +0 -9
  126. package/dist/cjs/js/src/abstract/bitbank.js +0 -9
  127. package/dist/cjs/js/src/abstract/bitbns.js +0 -9
  128. package/dist/cjs/js/src/abstract/bitfinex.js +0 -9
  129. package/dist/cjs/js/src/abstract/bitfinex2.js +0 -9
  130. package/dist/cjs/js/src/abstract/bitflyer.js +0 -9
  131. package/dist/cjs/js/src/abstract/bitforex.js +0 -9
  132. package/dist/cjs/js/src/abstract/bitget.js +0 -9
  133. package/dist/cjs/js/src/abstract/bithumb.js +0 -9
  134. package/dist/cjs/js/src/abstract/bitmart.js +0 -9
  135. package/dist/cjs/js/src/abstract/bitmex.js +0 -9
  136. package/dist/cjs/js/src/abstract/bitopro.js +0 -9
  137. package/dist/cjs/js/src/abstract/bitpanda.js +0 -9
  138. package/dist/cjs/js/src/abstract/bitrue.js +0 -9
  139. package/dist/cjs/js/src/abstract/bitso.js +0 -9
  140. package/dist/cjs/js/src/abstract/bitstamp.js +0 -9
  141. package/dist/cjs/js/src/abstract/bitteam.js +0 -9
  142. package/dist/cjs/js/src/abstract/bitvavo.js +0 -9
  143. package/dist/cjs/js/src/abstract/bl3p.js +0 -9
  144. package/dist/cjs/js/src/abstract/blockchaincom.js +0 -9
  145. package/dist/cjs/js/src/abstract/btcalpha.js +0 -9
  146. package/dist/cjs/js/src/abstract/btcbox.js +0 -9
  147. package/dist/cjs/js/src/abstract/btcmarkets.js +0 -9
  148. package/dist/cjs/js/src/abstract/btcturk.js +0 -9
  149. package/dist/cjs/js/src/abstract/bybit.js +0 -9
  150. package/dist/cjs/js/src/abstract/cex.js +0 -9
  151. package/dist/cjs/js/src/abstract/coinbase.js +0 -9
  152. package/dist/cjs/js/src/abstract/coinbasepro.js +0 -9
  153. package/dist/cjs/js/src/abstract/coincheck.js +0 -9
  154. package/dist/cjs/js/src/abstract/coinex.js +0 -9
  155. package/dist/cjs/js/src/abstract/coinlist.js +0 -9
  156. package/dist/cjs/js/src/abstract/coinmate.js +0 -9
  157. package/dist/cjs/js/src/abstract/coinone.js +0 -9
  158. package/dist/cjs/js/src/abstract/coinsph.js +0 -9
  159. package/dist/cjs/js/src/abstract/coinspot.js +0 -9
  160. package/dist/cjs/js/src/abstract/cryptocom.js +0 -9
  161. package/dist/cjs/js/src/abstract/currencycom.js +0 -9
  162. package/dist/cjs/js/src/abstract/delta.js +0 -9
  163. package/dist/cjs/js/src/abstract/deribit.js +0 -9
  164. package/dist/cjs/js/src/abstract/digifinex.js +0 -9
  165. package/dist/cjs/js/src/abstract/exmo.js +0 -9
  166. package/dist/cjs/js/src/abstract/gate.js +0 -9
  167. package/dist/cjs/js/src/abstract/gemini.js +0 -9
  168. package/dist/cjs/js/src/abstract/hitbtc.js +0 -9
  169. package/dist/cjs/js/src/abstract/hollaex.js +0 -9
  170. package/dist/cjs/js/src/abstract/htx.js +0 -9
  171. package/dist/cjs/js/src/abstract/huobijp.js +0 -9
  172. package/dist/cjs/js/src/abstract/idex.js +0 -9
  173. package/dist/cjs/js/src/abstract/independentreserve.js +0 -9
  174. package/dist/cjs/js/src/abstract/indodax.js +0 -9
  175. package/dist/cjs/js/src/abstract/kraken.js +0 -9
  176. package/dist/cjs/js/src/abstract/krakenfutures.js +0 -9
  177. package/dist/cjs/js/src/abstract/kucoin.js +0 -9
  178. package/dist/cjs/js/src/abstract/kucoinfutures.js +0 -9
  179. package/dist/cjs/js/src/abstract/kuna.js +0 -9
  180. package/dist/cjs/js/src/abstract/latoken.js +0 -9
  181. package/dist/cjs/js/src/abstract/lbank.js +0 -9
  182. package/dist/cjs/js/src/abstract/luno.js +0 -9
  183. package/dist/cjs/js/src/abstract/lykke.js +0 -9
  184. package/dist/cjs/js/src/abstract/mercado.js +0 -9
  185. package/dist/cjs/js/src/abstract/mexc.js +0 -9
  186. package/dist/cjs/js/src/abstract/ndax.js +0 -9
  187. package/dist/cjs/js/src/abstract/novadax.js +0 -9
  188. package/dist/cjs/js/src/abstract/oceanex.js +0 -9
  189. package/dist/cjs/js/src/abstract/okcoin.js +0 -9
  190. package/dist/cjs/js/src/abstract/okx.js +0 -9
  191. package/dist/cjs/js/src/abstract/p2b.js +0 -9
  192. package/dist/cjs/js/src/abstract/paymium.js +0 -9
  193. package/dist/cjs/js/src/abstract/phemex.js +0 -9
  194. package/dist/cjs/js/src/abstract/poloniex.js +0 -9
  195. package/dist/cjs/js/src/abstract/poloniexfutures.js +0 -9
  196. package/dist/cjs/js/src/abstract/probit.js +0 -9
  197. package/dist/cjs/js/src/abstract/timex.js +0 -9
  198. package/dist/cjs/js/src/abstract/tokocrypto.js +0 -9
  199. package/dist/cjs/js/src/abstract/upbit.js +0 -9
  200. package/dist/cjs/js/src/abstract/wavesexchange.js +0 -9
  201. package/dist/cjs/js/src/abstract/wazirx.js +0 -9
  202. package/dist/cjs/js/src/abstract/whitebit.js +0 -9
  203. package/dist/cjs/js/src/abstract/woo.js +0 -9
  204. package/dist/cjs/js/src/abstract/yobit.js +0 -9
  205. package/dist/cjs/js/src/abstract/zaif.js +0 -9
  206. package/dist/cjs/js/src/abstract/zonda.js +0 -9
  207. package/dist/cjs/js/src/ace.js +0 -1058
  208. package/dist/cjs/js/src/alpaca.js +0 -1125
  209. package/dist/cjs/js/src/ascendex.js +0 -3365
  210. package/dist/cjs/js/src/base/Exchange.js +0 -5257
  211. package/dist/cjs/js/src/base/Precise.js +0 -263
  212. package/dist/cjs/js/src/base/errors.js +0 -299
  213. package/dist/cjs/js/src/base/functions/crypto.js +0 -78
  214. package/dist/cjs/js/src/base/functions/encode.js +0 -44
  215. package/dist/cjs/js/src/base/functions/generic.js +0 -193
  216. package/dist/cjs/js/src/base/functions/misc.js +0 -96
  217. package/dist/cjs/js/src/base/functions/number.js +0 -297
  218. package/dist/cjs/js/src/base/functions/platform.js +0 -28
  219. package/dist/cjs/js/src/base/functions/rsa.js +0 -34
  220. package/dist/cjs/js/src/base/functions/string.js +0 -48
  221. package/dist/cjs/js/src/base/functions/throttle.js +0 -66
  222. package/dist/cjs/js/src/base/functions/time.js +0 -187
  223. package/dist/cjs/js/src/base/functions/totp.js +0 -24
  224. package/dist/cjs/js/src/base/functions/type.js +0 -162
  225. package/dist/cjs/js/src/base/functions.js +0 -157
  226. package/dist/cjs/js/src/base/ws/Cache.js +0 -254
  227. package/dist/cjs/js/src/base/ws/Client.js +0 -299
  228. package/dist/cjs/js/src/base/ws/Future.js +0 -34
  229. package/dist/cjs/js/src/base/ws/OrderBook.js +0 -107
  230. package/dist/cjs/js/src/base/ws/OrderBookSide.js +0 -281
  231. package/dist/cjs/js/src/base/ws/WsClient.js +0 -69
  232. package/dist/cjs/js/src/bequant.js +0 -33
  233. package/dist/cjs/js/src/bigone.js +0 -2213
  234. package/dist/cjs/js/src/binance.js +0 -9845
  235. package/dist/cjs/js/src/binancecoinm.js +0 -45
  236. package/dist/cjs/js/src/binanceus.js +0 -92
  237. package/dist/cjs/js/src/binanceusdm.js +0 -58
  238. package/dist/cjs/js/src/bingx.js +0 -3846
  239. package/dist/cjs/js/src/bit2c.js +0 -916
  240. package/dist/cjs/js/src/bitbank.js +0 -1000
  241. package/dist/cjs/js/src/bitbay.js +0 -17
  242. package/dist/cjs/js/src/bitbns.js +0 -1220
  243. package/dist/cjs/js/src/bitcoincom.js +0 -17
  244. package/dist/cjs/js/src/bitfinex.js +0 -1670
  245. package/dist/cjs/js/src/bitfinex2.js +0 -2990
  246. package/dist/cjs/js/src/bitflyer.js +0 -1045
  247. package/dist/cjs/js/src/bitforex.js +0 -852
  248. package/dist/cjs/js/src/bitget.js +0 -8295
  249. package/dist/cjs/js/src/bithumb.js +0 -1090
  250. package/dist/cjs/js/src/bitmart.js +0 -4454
  251. package/dist/cjs/js/src/bitmex.js +0 -2881
  252. package/dist/cjs/js/src/bitopro.js +0 -1724
  253. package/dist/cjs/js/src/bitrue.js +0 -3253
  254. package/dist/cjs/js/src/bitso.js +0 -1753
  255. package/dist/cjs/js/src/bitstamp.js +0 -2188
  256. package/dist/cjs/js/src/bitteam.js +0 -2309
  257. package/dist/cjs/js/src/bitvavo.js +0 -1968
  258. package/dist/cjs/js/src/bl3p.js +0 -447
  259. package/dist/cjs/js/src/blockchaincom.js +0 -1160
  260. package/dist/cjs/js/src/btcalpha.js +0 -929
  261. package/dist/cjs/js/src/btcbox.js +0 -565
  262. package/dist/cjs/js/src/btcmarkets.js +0 -1237
  263. package/dist/cjs/js/src/btcturk.js +0 -929
  264. package/dist/cjs/js/src/bybit.js +0 -7650
  265. package/dist/cjs/js/src/cex.js +0 -1693
  266. package/dist/cjs/js/src/coinbase.js +0 -3424
  267. package/dist/cjs/js/src/coinbasepro.js +0 -1866
  268. package/dist/cjs/js/src/coincheck.js +0 -843
  269. package/dist/cjs/js/src/coinex.js +0 -5417
  270. package/dist/cjs/js/src/coinlist.js +0 -2337
  271. package/dist/cjs/js/src/coinmate.js +0 -989
  272. package/dist/cjs/js/src/coinone.js +0 -1185
  273. package/dist/cjs/js/src/coinsph.js +0 -1933
  274. package/dist/cjs/js/src/coinspot.js +0 -548
  275. package/dist/cjs/js/src/cryptocom.js +0 -3007
  276. package/dist/cjs/js/src/currencycom.js +0 -2015
  277. package/dist/cjs/js/src/delta.js +0 -3262
  278. package/dist/cjs/js/src/deribit.js +0 -3306
  279. package/dist/cjs/js/src/digifinex.js +0 -4307
  280. package/dist/cjs/js/src/exmo.js +0 -2645
  281. package/dist/cjs/js/src/fmfwio.js +0 -34
  282. package/dist/cjs/js/src/gate.js +0 -7077
  283. package/dist/cjs/js/src/gateio.js +0 -16
  284. package/dist/cjs/js/src/gemini.js +0 -1801
  285. package/dist/cjs/js/src/hitbtc.js +0 -3660
  286. package/dist/cjs/js/src/hitbtc3.js +0 -19
  287. package/dist/cjs/js/src/hollaex.js +0 -1882
  288. package/dist/cjs/js/src/htx.js +0 -9174
  289. package/dist/cjs/js/src/huobi.js +0 -16
  290. package/dist/cjs/js/src/huobijp.js +0 -1918
  291. package/dist/cjs/js/src/idex.js +0 -1770
  292. package/dist/cjs/js/src/independentreserve.js +0 -761
  293. package/dist/cjs/js/src/indodax.js +0 -1069
  294. package/dist/cjs/js/src/kraken.js +0 -2891
  295. package/dist/cjs/js/src/krakenfutures.js +0 -2407
  296. package/dist/cjs/js/src/kucoin.js +0 -4494
  297. package/dist/cjs/js/src/kucoinfutures.js +0 -2529
  298. package/dist/cjs/js/src/kuna.js +0 -1949
  299. package/dist/cjs/js/src/latoken.js +0 -1729
  300. package/dist/cjs/js/src/lbank.js +0 -2851
  301. package/dist/cjs/js/src/luno.js +0 -1044
  302. package/dist/cjs/js/src/lykke.js +0 -1303
  303. package/dist/cjs/js/src/mercado.js +0 -897
  304. package/dist/cjs/js/src/mexc.js +0 -5407
  305. package/dist/cjs/js/src/ndax.js +0 -2450
  306. package/dist/cjs/js/src/novadax.js +0 -1556
  307. package/dist/cjs/js/src/oceanex.js +0 -964
  308. package/dist/cjs/js/src/okcoin.js +0 -3115
  309. package/dist/cjs/js/src/okx.js +0 -7331
  310. package/dist/cjs/js/src/p2b.js +0 -1243
  311. package/dist/cjs/js/src/paymium.js +0 -597
  312. package/dist/cjs/js/src/phemex.js +0 -4725
  313. package/dist/cjs/js/src/poloniex.js +0 -2356
  314. package/dist/cjs/js/src/poloniexfutures.js +0 -1794
  315. package/dist/cjs/js/src/pro/alpaca.js +0 -714
  316. package/dist/cjs/js/src/pro/ascendex.js +0 -957
  317. package/dist/cjs/js/src/pro/bequant.js +0 -33
  318. package/dist/cjs/js/src/pro/binance.js +0 -2796
  319. package/dist/cjs/js/src/pro/binancecoinm.js +0 -23
  320. package/dist/cjs/js/src/pro/binanceus.js +0 -51
  321. package/dist/cjs/js/src/pro/binanceusdm.js +0 -32
  322. package/dist/cjs/js/src/pro/bingx.js +0 -944
  323. package/dist/cjs/js/src/pro/bitcoincom.js +0 -29
  324. package/dist/cjs/js/src/pro/bitfinex.js +0 -672
  325. package/dist/cjs/js/src/pro/bitfinex2.js +0 -1159
  326. package/dist/cjs/js/src/pro/bitget.js +0 -1733
  327. package/dist/cjs/js/src/pro/bitmart.js +0 -1486
  328. package/dist/cjs/js/src/pro/bitmex.js +0 -1576
  329. package/dist/cjs/js/src/pro/bitopro.js +0 -327
  330. package/dist/cjs/js/src/pro/bitrue.js +0 -462
  331. package/dist/cjs/js/src/pro/bitstamp.js +0 -547
  332. package/dist/cjs/js/src/pro/bitvavo.js +0 -704
  333. package/dist/cjs/js/src/pro/blockchaincom.js +0 -794
  334. package/dist/cjs/js/src/pro/bybit.js +0 -1843
  335. package/dist/cjs/js/src/pro/cex.js +0 -1510
  336. package/dist/cjs/js/src/pro/coinbase.js +0 -561
  337. package/dist/cjs/js/src/pro/coinbasepro.js +0 -968
  338. package/dist/cjs/js/src/pro/coinex.js +0 -1095
  339. package/dist/cjs/js/src/pro/cryptocom.js +0 -1020
  340. package/dist/cjs/js/src/pro/currencycom.js +0 -563
  341. package/dist/cjs/js/src/pro/deribit.js +0 -825
  342. package/dist/cjs/js/src/pro/exmo.js +0 -658
  343. package/dist/cjs/js/src/pro/gate.js +0 -1316
  344. package/dist/cjs/js/src/pro/gateio.js +0 -16
  345. package/dist/cjs/js/src/pro/gemini.js +0 -649
  346. package/dist/cjs/js/src/pro/hitbtc.js +0 -1294
  347. package/dist/cjs/js/src/pro/hollaex.js +0 -597
  348. package/dist/cjs/js/src/pro/htx.js +0 -2388
  349. package/dist/cjs/js/src/pro/huobi.js +0 -16
  350. package/dist/cjs/js/src/pro/huobijp.js +0 -606
  351. package/dist/cjs/js/src/pro/idex.js +0 -714
  352. package/dist/cjs/js/src/pro/independentreserve.js +0 -280
  353. package/dist/cjs/js/src/pro/kraken.js +0 -1364
  354. package/dist/cjs/js/src/pro/krakenfutures.js +0 -1506
  355. package/dist/cjs/js/src/pro/kucoin.js +0 -1054
  356. package/dist/cjs/js/src/pro/kucoinfutures.js +0 -981
  357. package/dist/cjs/js/src/pro/luno.js +0 -322
  358. package/dist/cjs/js/src/pro/mexc.js +0 -1170
  359. package/dist/cjs/js/src/pro/ndax.js +0 -545
  360. package/dist/cjs/js/src/pro/okcoin.js +0 -760
  361. package/dist/cjs/js/src/pro/okx.js +0 -1608
  362. package/dist/cjs/js/src/pro/phemex.js +0 -1511
  363. package/dist/cjs/js/src/pro/poloniex.js +0 -1253
  364. package/dist/cjs/js/src/pro/poloniexfutures.js +0 -1014
  365. package/dist/cjs/js/src/pro/probit.js +0 -586
  366. package/dist/cjs/js/src/pro/upbit.js +0 -234
  367. package/dist/cjs/js/src/pro/wazirx.js +0 -776
  368. package/dist/cjs/js/src/pro/whitebit.js +0 -927
  369. package/dist/cjs/js/src/pro/woo.js +0 -895
  370. package/dist/cjs/js/src/probit.js +0 -1867
  371. package/dist/cjs/js/src/static_dependencies/fflake/browser.js +0 -401
  372. package/dist/cjs/js/src/static_dependencies/jsencrypt/JSEncrypt.js +0 -195
  373. package/dist/cjs/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +0 -308
  374. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +0 -554
  375. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +0 -94
  376. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +0 -70
  377. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +0 -91
  378. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +0 -16
  379. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +0 -1760
  380. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +0 -52
  381. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +0 -81
  382. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +0 -376
  383. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/util.js +0 -70
  384. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +0 -1580
  385. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +0 -74
  386. package/dist/cjs/js/src/static_dependencies/noble-curves/_shortw_utils.js +0 -24
  387. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/curve.js +0 -158
  388. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/edwards.js +0 -429
  389. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +0 -176
  390. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/modular.js +0 -324
  391. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/montgomery.js +0 -163
  392. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/utils.js +0 -245
  393. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/weierstrass.js +0 -1018
  394. package/dist/cjs/js/src/static_dependencies/noble-curves/ed25519.js +0 -383
  395. package/dist/cjs/js/src/static_dependencies/noble-curves/secp256k1.js +0 -258
  396. package/dist/cjs/js/src/static_dependencies/noble-hashes/_assert.js +0 -53
  397. package/dist/cjs/js/src/static_dependencies/noble-hashes/_sha2.js +0 -120
  398. package/dist/cjs/js/src/static_dependencies/noble-hashes/_u64.js +0 -69
  399. package/dist/cjs/js/src/static_dependencies/noble-hashes/crypto.js +0 -7
  400. package/dist/cjs/js/src/static_dependencies/noble-hashes/hmac.js +0 -83
  401. package/dist/cjs/js/src/static_dependencies/noble-hashes/md5.js +0 -240
  402. package/dist/cjs/js/src/static_dependencies/noble-hashes/sha1.js +0 -91
  403. package/dist/cjs/js/src/static_dependencies/noble-hashes/sha256.js +0 -130
  404. package/dist/cjs/js/src/static_dependencies/noble-hashes/sha3.js +0 -214
  405. package/dist/cjs/js/src/static_dependencies/noble-hashes/sha512.js +0 -239
  406. package/dist/cjs/js/src/static_dependencies/noble-hashes/utils.js +0 -93
  407. package/dist/cjs/js/src/static_dependencies/node-fetch/body.js +0 -354
  408. package/dist/cjs/js/src/static_dependencies/node-fetch/errors/abort-error.js +0 -16
  409. package/dist/cjs/js/src/static_dependencies/node-fetch/errors/base.js +0 -20
  410. package/dist/cjs/js/src/static_dependencies/node-fetch/errors/fetch-error.js +0 -30
  411. package/dist/cjs/js/src/static_dependencies/node-fetch/headers.js +0 -239
  412. package/dist/cjs/js/src/static_dependencies/node-fetch/index.js +0 -372
  413. package/dist/cjs/js/src/static_dependencies/node-fetch/request.js +0 -273
  414. package/dist/cjs/js/src/static_dependencies/node-fetch/response.js +0 -139
  415. package/dist/cjs/js/src/static_dependencies/node-fetch/utils/get-search.js +0 -14
  416. package/dist/cjs/js/src/static_dependencies/node-fetch/utils/is-redirect.js +0 -16
  417. package/dist/cjs/js/src/static_dependencies/node-fetch/utils/is.js +0 -81
  418. package/dist/cjs/js/src/static_dependencies/node-fetch/utils/referrer.js +0 -292
  419. package/dist/cjs/js/src/static_dependencies/proxies/agent-base/index.js +0 -103
  420. package/dist/cjs/js/src/static_dependencies/proxies/http-proxy-agent/index.js +0 -140
  421. package/dist/cjs/js/src/static_dependencies/proxies/https-proxy-agent/index.js +0 -175
  422. package/dist/cjs/js/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +0 -95
  423. package/dist/cjs/js/src/static_dependencies/qs/index.cjs.js +0 -7
  424. package/dist/cjs/js/src/static_dependencies/scure-base/index.js +0 -383
  425. package/dist/cjs/js/src/timex.js +0 -1562
  426. package/dist/cjs/js/src/tokocrypto.js +0 -2542
  427. package/dist/cjs/js/src/upbit.js +0 -1844
  428. package/dist/cjs/js/src/wavesexchange.js +0 -2607
  429. package/dist/cjs/js/src/wazirx.js +0 -953
  430. package/dist/cjs/js/src/whitebit.js +0 -2309
  431. package/dist/cjs/js/src/woo.js +0 -2769
  432. package/dist/cjs/js/src/yobit.js +0 -1314
  433. package/dist/cjs/js/src/zaif.js +0 -736
  434. package/dist/cjs/js/src/zonda.js +0 -1883
  435. package/dist/cjs/src/abstract/bitpanda.js +0 -9
  436. package/test.ts +0 -0
  437. /package/dist/cjs/{js/src/abstract/ace.js → src/abstract/onetrading.js} +0 -0
  438. /package/dist/cjs/{js/src → src}/pro/coinone.js +0 -0
  439. /package/js/src/abstract/{bitpanda.js → onetrading.js} +0 -0
@@ -340,6 +340,14 @@ class bitstamp extends bitstamp$1 {
340
340
  'earn/subscribe/': 1,
341
341
  'earn/subscriptions/setting/': 1,
342
342
  'earn/unsubscribe': 1,
343
+ 'wecan_withdrawal/': 1,
344
+ 'wecan_address/': 1,
345
+ 'trac_withdrawal/': 1,
346
+ 'trac_address/': 1,
347
+ 'eurcv_withdrawal/': 1,
348
+ 'eurcv_address/': 1,
349
+ 'pyusd_withdrawal/': 1,
350
+ 'pyusd_address/': 1,
343
351
  },
344
352
  },
345
353
  },
@@ -41,11 +41,16 @@ class bybit extends bybit$1 {
41
41
  'createMarketSellOrderWithCost': false,
42
42
  'createOrder': true,
43
43
  'createOrders': true,
44
+ 'createOrderWithTakeProfitAndStopLoss': true,
44
45
  'createPostOnlyOrder': true,
45
46
  'createReduceOnlyOrder': true,
46
47
  'createStopLimitOrder': true,
48
+ 'createStopLossOrder': true,
47
49
  'createStopMarketOrder': true,
48
50
  'createStopOrder': true,
51
+ 'createTakeProfitOrder': true,
52
+ 'createTrailingAmountOrder': true,
53
+ 'createTriggerOrder': true,
49
54
  'editOrder': true,
50
55
  'fetchBalance': true,
51
56
  'fetchBorrowInterest': false,
@@ -292,6 +297,7 @@ class bybit extends bybit$1 {
292
297
  'v5/account/wallet-balance': 1,
293
298
  'v5/account/borrow-history': 1,
294
299
  'v5/account/set-collateral-switch': 5,
300
+ 'v5/account/set-collateral-switch-batch': 5,
295
301
  'v5/account/collateral-info': 1,
296
302
  'v5/asset/coin-greeks': 1,
297
303
  'v5/account/fee-rate': 10,
@@ -3957,7 +3963,7 @@ class bybit extends bybit$1 {
3957
3963
  response = await this.privatePostOptionUsdcOpenapiPrivateV1ReplaceOrder(this.extend(request, params));
3958
3964
  }
3959
3965
  else {
3960
- const isStop = this.safeValue(params, 'stop', false);
3966
+ const isStop = this.safeValue2(params, 'stop', 'trigger', false);
3961
3967
  const triggerPrice = this.safeValue2(params, 'stopPrice', 'triggerPrice');
3962
3968
  const stopLossPrice = this.safeValue(params, 'stopLossPrice');
3963
3969
  const isStopLossOrder = stopLossPrice !== undefined;
@@ -4136,8 +4142,8 @@ class bybit extends bybit$1 {
4136
4142
  // 'orderLinkId': 'string', // one of order_id, stop_order_id or order_link_id is required
4137
4143
  // 'orderId': id,
4138
4144
  };
4139
- const isStop = this.safeValue(params, 'stop', false);
4140
- params = this.omit(params, ['stop']);
4145
+ const isStop = this.safeValue2(params, 'stop', 'trigger', false);
4146
+ params = this.omit(params, ['stop', 'trigger']);
4141
4147
  if (id !== undefined) { // The user can also use argument params["order_link_id"]
4142
4148
  request['orderId'] = id;
4143
4149
  }
@@ -4198,9 +4204,9 @@ class bybit extends bybit$1 {
4198
4204
  };
4199
4205
  if (market['spot']) {
4200
4206
  // only works for spot market
4201
- const isStop = this.safeValue(params, 'stop', false);
4202
- params = this.omit(params, ['stop']);
4203
- request['orderFilter'] = isStop ? 'tpslOrder' : 'Order';
4207
+ const isStop = this.safeValue2(params, 'stop', 'trigger', false);
4208
+ params = this.omit(params, ['stop', 'trigger']);
4209
+ request['orderFilter'] = isStop ? 'StopOrder' : 'Order';
4204
4210
  }
4205
4211
  if (id !== undefined) { // The user can also use argument params["orderLinkId"]
4206
4212
  request['orderId'] = id;
@@ -4247,14 +4253,14 @@ class bybit extends bybit$1 {
4247
4253
  response = await this.privatePostOptionUsdcOpenapiPrivateV1CancelAll(this.extend(request, params));
4248
4254
  }
4249
4255
  else {
4250
- const isStop = this.safeValue(params, 'stop', false);
4256
+ const isStop = this.safeValue2(params, 'stop', 'trigger', false);
4251
4257
  if (isStop) {
4252
4258
  request['orderFilter'] = 'StopOrder';
4253
4259
  }
4254
4260
  else {
4255
4261
  request['orderFilter'] = 'Order';
4256
4262
  }
4257
- params = this.omit(params, ['stop']);
4263
+ params = this.omit(params, ['stop', 'trigger']);
4258
4264
  response = await this.privatePostPerpetualUsdcOpenapiPrivateV1CancelAll(this.extend(request, params));
4259
4265
  }
4260
4266
  //
@@ -4321,10 +4327,10 @@ class bybit extends bybit$1 {
4321
4327
  request['settleCoin'] = this.safeString(params, 'settleCoin', defaultSettle);
4322
4328
  }
4323
4329
  }
4324
- const isStop = this.safeValue(params, 'stop', false);
4325
- params = this.omit(params, ['stop']);
4330
+ const isStop = this.safeValue2(params, 'stop', 'trigger', false);
4331
+ params = this.omit(params, ['stop', 'trigger']);
4326
4332
  if (isStop) {
4327
- request['orderFilter'] = 'tpslOrder';
4333
+ request['orderFilter'] = 'StopOrder';
4328
4334
  }
4329
4335
  const response = await this.privatePostV5OrderCancelAll(this.extend(request, params));
4330
4336
  //
@@ -4389,8 +4395,8 @@ class bybit extends bybit$1 {
4389
4395
  else {
4390
4396
  request['category'] = 'OPTION';
4391
4397
  }
4392
- const isStop = this.safeValue(params, 'stop', false);
4393
- params = this.omit(params, ['stop']);
4398
+ const isStop = this.safeValue2(params, 'stop', 'trigger', false);
4399
+ params = this.omit(params, ['stop', 'trigger']);
4394
4400
  if (isStop) {
4395
4401
  request['orderFilter'] = 'StopOrder';
4396
4402
  }
@@ -4492,12 +4498,7 @@ class bybit extends bybit$1 {
4492
4498
  const isStop = this.safeValueN(params, ['trigger', 'stop'], false);
4493
4499
  params = this.omit(params, ['trigger', 'stop']);
4494
4500
  if (isStop) {
4495
- if (type === 'spot') {
4496
- request['orderFilter'] = 'tpslOrder';
4497
- }
4498
- else {
4499
- request['orderFilter'] = 'StopOrder';
4500
- }
4501
+ request['orderFilter'] = 'StopOrder';
4501
4502
  }
4502
4503
  if (limit !== undefined) {
4503
4504
  request['limit'] = limit;
@@ -4656,7 +4657,7 @@ class bybit extends bybit$1 {
4656
4657
  * @param {int} [since] the earliest time in ms to fetch open orders for
4657
4658
  * @param {int} [limit] the maximum number of open orders structures to retrieve
4658
4659
  * @param {object} [params] extra parameters specific to the exchange API endpoint
4659
- * @param {boolean} [params.stop] true if stop order
4660
+ * @param {boolean} [params.stop] set to true for fetching open stop orders
4660
4661
  * @param {string} [params.type] market type, ['swap', 'option', 'spot']
4661
4662
  * @param {string} [params.subType] market subType, ['linear', 'inverse']
4662
4663
  * @param {string} [params.baseCoin] Base coin. Supports linear, inverse & option
@@ -4690,15 +4691,10 @@ class bybit extends bybit$1 {
4690
4691
  return await this.fetchUsdcOpenOrders(symbol, since, limit, params);
4691
4692
  }
4692
4693
  request['category'] = type;
4693
- const isStop = this.safeValue(params, 'stop', false);
4694
- params = this.omit(params, ['stop']);
4694
+ const isStop = this.safeValue2(params, 'stop', 'trigger', false);
4695
+ params = this.omit(params, ['stop', 'trigger']);
4695
4696
  if (isStop) {
4696
- if (type === 'spot') {
4697
- request['orderFilter'] = 'tpslOrder';
4698
- }
4699
- else {
4700
- request['orderFilter'] = 'StopOrder';
4701
- }
4697
+ request['orderFilter'] = 'StopOrder';
4702
4698
  }
4703
4699
  if (limit !== undefined) {
4704
4700
  request['limit'] = limit;
@@ -4830,12 +4826,11 @@ class bybit extends bybit$1 {
4830
4826
  * @method
4831
4827
  * @name bybit#fetchMyTrades
4832
4828
  * @description fetch all trades made by the user
4833
- * @see https://bybit-exchange.github.io/docs/v5/position/execution
4829
+ * @see https://bybit-exchange.github.io/docs/api-explorer/v5/position/execution
4834
4830
  * @param {string} symbol unified market symbol
4835
4831
  * @param {int} [since] the earliest time in ms to fetch trades for
4836
4832
  * @param {int} [limit] the maximum number of trades structures to retrieve
4837
4833
  * @param {object} [params] extra parameters specific to the exchange API endpoint
4838
- * @param {boolean} [params.stop] true if stop order
4839
4834
  * @param {string} [params.type] market type, ['swap', 'option', 'spot']
4840
4835
  * @param {string} [params.subType] market subType, ['linear', 'inverse']
4841
4836
  * @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [availble parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
@@ -4849,7 +4844,7 @@ class bybit extends bybit$1 {
4849
4844
  }
4850
4845
  const [enableUnifiedMargin, enableUnifiedAccount] = await this.isUnifiedEnabled();
4851
4846
  const isUnifiedAccount = (enableUnifiedMargin || enableUnifiedAccount);
4852
- const request = {};
4847
+ let request = {};
4853
4848
  let market = undefined;
4854
4849
  let isUsdcSettled = false;
4855
4850
  if (symbol !== undefined) {
@@ -4863,28 +4858,13 @@ class bybit extends bybit$1 {
4863
4858
  return await this.fetchMyUsdcTrades(symbol, since, limit, params);
4864
4859
  }
4865
4860
  request['category'] = type;
4866
- const isStop = this.safeValue(params, 'stop', false);
4867
- params = this.omit(params, ['stop', 'type']);
4868
- if (isStop) {
4869
- if (type === 'spot') {
4870
- request['orderFilter'] = 'tpslOrder';
4871
- }
4872
- else {
4873
- request['orderFilter'] = 'StopOrder';
4874
- }
4875
- }
4876
4861
  if (limit !== undefined) {
4877
4862
  request['limit'] = limit;
4878
4863
  }
4879
4864
  if (since !== undefined) {
4880
4865
  request['startTime'] = since;
4881
4866
  }
4882
- const until = this.safeInteger2(params, 'until', 'till'); // unified in milliseconds
4883
- const endTime = this.safeInteger(params, 'endTime', until); // exchange-specific in milliseconds
4884
- params = this.omit(params, ['endTime', 'till', 'until']);
4885
- if (endTime !== undefined) {
4886
- request['endTime'] = endTime;
4887
- }
4867
+ [request, params] = this.handleUntilOption('endTime', request, params);
4888
4868
  const response = await this.privateGetV5ExecutionList(this.extend(request, params));
4889
4869
  //
4890
4870
  // {
@@ -102,7 +102,7 @@ class coinbase extends coinbase$1 {
102
102
  'setLeverage': false,
103
103
  'setMarginMode': false,
104
104
  'setPositionMode': false,
105
- 'withdraw': undefined,
105
+ 'withdraw': true,
106
106
  },
107
107
  'urls': {
108
108
  'logo': 'https://user-images.githubusercontent.com/1294454/40811661-b6eceae2-653a-11e8-829e-10bfadb078cf.jpg',
@@ -773,46 +773,102 @@ class coinbase extends coinbase$1 {
773
773
  // "next_step": null
774
774
  // }
775
775
  //
776
- const subtotalObject = this.safeValue(transaction, 'subtotal', {});
777
- const feeObject = this.safeValue(transaction, 'fee', {});
778
- const id = this.safeString(transaction, 'id');
779
- const timestamp = this.parse8601(this.safeValue(transaction, 'created_at'));
780
- const updated = this.parse8601(this.safeValue(transaction, 'updated_at'));
781
- const type = this.safeString(transaction, 'resource');
782
- const amount = this.safeNumber(subtotalObject, 'amount');
783
- const currencyId = this.safeString(subtotalObject, 'currency');
784
- const code = this.safeCurrencyCode(currencyId, currency);
785
- const feeCost = this.safeNumber(feeObject, 'amount');
786
- const feeCurrencyId = this.safeString(feeObject, 'currency');
787
- const feeCurrency = this.safeCurrencyCode(feeCurrencyId);
788
- const fee = {
789
- 'cost': feeCost,
790
- 'currency': feeCurrency,
791
- };
776
+ // withdraw
777
+ //
778
+ // {
779
+ // "id": "a1794ecf-5693-55fa-70cf-ef731748ed82",
780
+ // "type": "send",
781
+ // "status": "pending",
782
+ // "amount": {
783
+ // "amount": "-14.008308",
784
+ // "currency": "USDC"
785
+ // },
786
+ // "native_amount": {
787
+ // "amount": "-18.74",
788
+ // "currency": "CAD"
789
+ // },
790
+ // "description": null,
791
+ // "created_at": "2024-01-12T01:27:31Z",
792
+ // "updated_at": "2024-01-12T01:27:31Z",
793
+ // "resource": "transaction",
794
+ // "resource_path": "/v2/accounts/a34bgfad-ed67-538b-bffc-730c98c10da0/transactions/a1794ecf-5693-55fa-70cf-ef731748ed82",
795
+ // "instant_exchange": false,
796
+ // "network": {
797
+ // "status": "pending",
798
+ // "status_description": "Pending (est. less than 10 minutes)",
799
+ // "transaction_fee": {
800
+ // "amount": "4.008308",
801
+ // "currency": "USDC"
802
+ // },
803
+ // "transaction_amount": {
804
+ // "amount": "10.000000",
805
+ // "currency": "USDC"
806
+ // },
807
+ // "confirmations": 0
808
+ // },
809
+ // "to": {
810
+ // "resource": "ethereum_address",
811
+ // "address": "0x9...",
812
+ // "currency": "USDC",
813
+ // "address_info": {
814
+ // "address": "0x9..."
815
+ // }
816
+ // },
817
+ // "idem": "748d8591-dg9a-7831-a45b-crd61dg78762",
818
+ // "details": {
819
+ // "title": "Sent USDC",
820
+ // "subtitle": "To USDC address on Ethereum network",
821
+ // "header": "Sent 14.008308 USDC ($18.74)",
822
+ // "health": "warning"
823
+ // },
824
+ // "hide_native_amount": false
825
+ // }
826
+ //
827
+ const transactionType = this.safeString(transaction, 'type');
828
+ let amountAndCurrencyObject = undefined;
829
+ let feeObject = undefined;
830
+ if (transactionType === 'send') {
831
+ const network = this.safeValue(transaction, 'network', {});
832
+ amountAndCurrencyObject = this.safeValue(network, 'transaction_amount', {});
833
+ feeObject = this.safeValue(network, 'transaction_fee', {});
834
+ }
835
+ else {
836
+ amountAndCurrencyObject = this.safeValue(transaction, 'subtotal', {});
837
+ feeObject = this.safeValue(transaction, 'fee', {});
838
+ }
792
839
  let status = this.parseTransactionStatus(this.safeString(transaction, 'status'));
793
840
  if (status === undefined) {
794
841
  const committed = this.safeValue(transaction, 'committed');
795
842
  status = committed ? 'ok' : 'pending';
796
843
  }
844
+ const id = this.safeString(transaction, 'id');
845
+ const currencyId = this.safeString(amountAndCurrencyObject, 'currency');
846
+ const feeCurrencyId = this.safeString(feeObject, 'currency');
847
+ const datetime = this.safeValue(transaction, 'created_at');
848
+ const toObject = this.safeValue(transaction, 'to', {});
849
+ const toAddress = this.safeString(toObject, 'address');
797
850
  return {
798
851
  'info': transaction,
799
852
  'id': id,
800
853
  'txid': id,
801
- 'timestamp': timestamp,
802
- 'datetime': this.iso8601(timestamp),
854
+ 'timestamp': this.parse8601(datetime),
855
+ 'datetime': datetime,
803
856
  'network': undefined,
804
- 'address': undefined,
805
- 'addressTo': undefined,
857
+ 'address': toAddress,
858
+ 'addressTo': toAddress,
806
859
  'addressFrom': undefined,
807
860
  'tag': undefined,
808
861
  'tagTo': undefined,
809
862
  'tagFrom': undefined,
810
- 'type': type,
811
- 'amount': amount,
812
- 'currency': code,
863
+ 'type': this.safeString(transaction, 'resource'),
864
+ 'amount': this.safeNumber(amountAndCurrencyObject, 'amount'),
865
+ 'currency': this.safeCurrencyCode(currencyId, currency),
813
866
  'status': status,
814
- 'updated': updated,
815
- 'fee': fee,
867
+ 'updated': this.parse8601(this.safeValue(transaction, 'updated_at')),
868
+ 'fee': {
869
+ 'cost': this.safeNumber(feeObject, 'amount'),
870
+ 'currency': this.safeCurrencyCode(feeCurrencyId),
871
+ },
816
872
  };
817
873
  }
818
874
  parseTrade(trade, market = undefined) {
@@ -3166,6 +3222,100 @@ class coinbase extends coinbase$1 {
3166
3222
  const tickers = this.safeValue(response, 'pricebooks', []);
3167
3223
  return this.parseTickers(tickers, symbols);
3168
3224
  }
3225
+ async withdraw(code, amount, address, tag = undefined, params = {}) {
3226
+ /**
3227
+ * @method
3228
+ * @name coinbase#withdraw
3229
+ * @description make a withdrawal
3230
+ * @see https://docs.cloud.coinbase.com/sign-in-with-coinbase/docs/api-transactions#send-money
3231
+ * @param {string} code unified currency code
3232
+ * @param {float} amount the amount to withdraw
3233
+ * @param {string} address the address to withdraw to
3234
+ * @param {string} [tag] an optional tag for the withdrawal
3235
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
3236
+ * @returns {object} a [transaction structure]{@link https://docs.ccxt.com/#/?id=transaction-structure}
3237
+ */
3238
+ [tag, params] = this.handleWithdrawTagAndParams(tag, params);
3239
+ this.checkAddress(address);
3240
+ await this.loadMarkets();
3241
+ const currency = this.currency(code);
3242
+ let accountId = this.safeString2(params, 'account_id', 'accountId');
3243
+ params = this.omit(params, ['account_id', 'accountId']);
3244
+ if (accountId === undefined) {
3245
+ if (code === undefined) {
3246
+ throw new errors.ArgumentsRequired(this.id + ' withdraw() requires an account_id (or accountId) parameter OR a currency code argument');
3247
+ }
3248
+ accountId = await this.findAccountId(code);
3249
+ if (accountId === undefined) {
3250
+ throw new errors.ExchangeError(this.id + ' withdraw() could not find account id for ' + code);
3251
+ }
3252
+ }
3253
+ const request = {
3254
+ 'account_id': accountId,
3255
+ 'type': 'send',
3256
+ 'to': address,
3257
+ 'amount': amount,
3258
+ 'currency': currency['id'],
3259
+ };
3260
+ if (tag !== undefined) {
3261
+ request['destination_tag'] = tag;
3262
+ }
3263
+ const response = await this.v2PrivatePostAccountsAccountIdTransactions(this.extend(request, params));
3264
+ //
3265
+ // {
3266
+ // "data": {
3267
+ // "id": "a1794ecf-5693-55fa-70cf-ef731748ed82",
3268
+ // "type": "send",
3269
+ // "status": "pending",
3270
+ // "amount": {
3271
+ // "amount": "-14.008308",
3272
+ // "currency": "USDC"
3273
+ // },
3274
+ // "native_amount": {
3275
+ // "amount": "-18.74",
3276
+ // "currency": "CAD"
3277
+ // },
3278
+ // "description": null,
3279
+ // "created_at": "2024-01-12T01:27:31Z",
3280
+ // "updated_at": "2024-01-12T01:27:31Z",
3281
+ // "resource": "transaction",
3282
+ // "resource_path": "/v2/accounts/a34bgfad-ed67-538b-bffc-730c98c10da0/transactions/a1794ecf-5693-55fa-70cf-ef731748ed82",
3283
+ // "instant_exchange": false,
3284
+ // "network": {
3285
+ // "status": "pending",
3286
+ // "status_description": "Pending (est. less than 10 minutes)",
3287
+ // "transaction_fee": {
3288
+ // "amount": "4.008308",
3289
+ // "currency": "USDC"
3290
+ // },
3291
+ // "transaction_amount": {
3292
+ // "amount": "10.000000",
3293
+ // "currency": "USDC"
3294
+ // },
3295
+ // "confirmations": 0
3296
+ // },
3297
+ // "to": {
3298
+ // "resource": "ethereum_address",
3299
+ // "address": "0x9...",
3300
+ // "currency": "USDC",
3301
+ // "address_info": {
3302
+ // "address": "0x9..."
3303
+ // }
3304
+ // },
3305
+ // "idem": "748d8591-dg9a-7831-a45b-crd61dg78762",
3306
+ // "details": {
3307
+ // "title": "Sent USDC",
3308
+ // "subtitle": "To USDC address on Ethereum network",
3309
+ // "header": "Sent 14.008308 USDC ($18.74)",
3310
+ // "health": "warning"
3311
+ // },
3312
+ // "hide_native_amount": false
3313
+ // }
3314
+ // }
3315
+ //
3316
+ const data = this.safeValue(response, 'data', {});
3317
+ return this.parseTransaction(data, currency);
3318
+ }
3169
3319
  sign(path, api = [], method = 'GET', params = {}, headers = undefined, body = undefined) {
3170
3320
  const version = api[0];
3171
3321
  const signed = api[1] === 'private';
@@ -65,6 +65,7 @@ class coincheck extends coincheck$1 {
65
65
  'setLeverage': false,
66
66
  'setMarginMode': false,
67
67
  'setPositionMode': false,
68
+ 'ws': true,
68
69
  },
69
70
  'urls': {
70
71
  'logo': 'https://user-images.githubusercontent.com/51840849/87182088-1d6d6380-c2ec-11ea-9c64-8ab9f9b289f5.jpg',
@@ -51,6 +51,9 @@ class coinex extends coinex$1 {
51
51
  'createOrder': true,
52
52
  'createOrders': true,
53
53
  'createReduceOnlyOrder': true,
54
+ 'createStopLossOrder': true,
55
+ 'createTakeProfitOrder': true,
56
+ 'createTriggerOrder': true,
54
57
  'editOrder': true,
55
58
  'fetchBalance': true,
56
59
  'fetchBorrowInterest': true,
@@ -148,6 +148,9 @@ class coinlist extends coinlist$1 {
148
148
  'v1/symbols/{symbol}/auctions/{auction_code}': 1,
149
149
  'v1/time': 1,
150
150
  'v1/assets': 1,
151
+ 'v1/leaderboard': 1,
152
+ 'v1/affiliate/{competition_code}': 1,
153
+ 'v1/competition/{competition_id}': 1,
151
154
  },
152
155
  },
153
156
  'private': {
@@ -155,6 +158,7 @@ class coinlist extends coinlist$1 {
155
158
  'v1/fees': 1,
156
159
  'v1/accounts': 1,
157
160
  'v1/accounts/{trader_id}': 1,
161
+ 'v1/accounts/{trader_id}/alias': 1,
158
162
  'v1/accounts/{trader_id}/ledger': 1,
159
163
  'v1/accounts/{trader_id}/wallets': 1,
160
164
  'v1/accounts/{trader_id}/wallet-ledger': 1,
@@ -167,7 +171,9 @@ class coinlist extends coinlist$1 {
167
171
  'v1/balances': 1,
168
172
  'v1/transfers': 1,
169
173
  'v1/user': 1,
170
- 'v1/credits': 1, // not unified
174
+ 'v1/credits': 1,
175
+ 'v1/positions': 1,
176
+ 'v1/accounts/{trader_id}/competitions': 1,
171
177
  },
172
178
  'post': {
173
179
  'v1/keys': 1,
@@ -178,7 +184,9 @@ class coinlist extends coinlist$1 {
178
184
  'v1/transfers/from-wallet': 1,
179
185
  'v1/transfers/internal-transfer': 1,
180
186
  'v1/transfers/withdrawal-request': 1,
181
- 'v1/orders/bulk': 1, // not unified
187
+ 'v1/orders/bulk': 1,
188
+ 'v1/accounts/{trader_id}/competitions': 1,
189
+ 'v1/accounts/{trader_id}/create-competition': 1,
182
190
  },
183
191
  'patch': {
184
192
  'v1/orders/{order_id}': 1,
@@ -750,7 +758,7 @@ class coinlist extends coinlist$1 {
750
758
  request['start_time'] = this.iso8601(since);
751
759
  }
752
760
  if (limit !== undefined) {
753
- request['count'] = limit;
761
+ request['count'] = Math.min(limit, 500);
754
762
  }
755
763
  const until = this.safeInteger2(params, 'till', 'until');
756
764
  if (until !== undefined) {
@@ -1109,11 +1117,10 @@ class coinlist extends coinlist$1 {
1109
1117
  // "net_liquidation_value_usd": "string"
1110
1118
  // }
1111
1119
  //
1112
- const timestamp = this.milliseconds();
1113
1120
  const result = {
1114
1121
  'info': response,
1115
- 'timestamp': timestamp,
1116
- 'datetime': this.iso8601(timestamp),
1122
+ 'timestamp': undefined,
1123
+ 'datetime': undefined,
1117
1124
  };
1118
1125
  const totalBalances = this.safeValue(response, 'asset_balances', {});
1119
1126
  const usedBalances = this.safeValue(response, 'asset_holds', {});
@@ -76,7 +76,7 @@ class coinone extends coinone$1 {
76
76
  'setLeverage': false,
77
77
  'setMarginMode': false,
78
78
  'setPositionMode': false,
79
- 'ws': false,
79
+ 'ws': true,
80
80
  },
81
81
  'urls': {
82
82
  'logo': 'https://user-images.githubusercontent.com/1294454/38003300-adc12fba-323f-11e8-8525-725f53c4a659.jpg',
@@ -709,7 +709,7 @@ class coinone extends coinone$1 {
709
709
  'target_currency': market['base'],
710
710
  };
711
711
  if (limit !== undefined) {
712
- request['size'] = limit; // only support 10, 50, 100, 150, 200
712
+ request['size'] = Math.min(limit, 200);
713
713
  }
714
714
  const response = await this.v2PublicGetTradesQuoteCurrencyTargetCurrency(this.extend(request, params));
715
715
  //
@@ -996,10 +996,10 @@ class coinsph extends coinsph$1 {
996
996
  'currency': this.safeCurrencyCode(feeCurrencyId),
997
997
  };
998
998
  }
999
- const isBuyer = this.safeString2(trade, 'isBuyer', 'isBuyerMaker', undefined);
999
+ const isBuyer = this.safeValue2(trade, 'isBuyer', 'isBuyerMaker', undefined);
1000
1000
  let side = undefined;
1001
1001
  if (isBuyer !== undefined) {
1002
- side = (isBuyer === 'true') ? 'buy' : 'sell';
1002
+ side = (isBuyer === true) ? 'buy' : 'sell';
1003
1003
  }
1004
1004
  const isMaker = this.safeString2(trade, 'isMaker', undefined);
1005
1005
  let takerOrMaker = undefined;
@@ -1061,11 +1061,10 @@ class coinsph extends coinsph$1 {
1061
1061
  }
1062
1062
  parseBalance(response) {
1063
1063
  const balances = this.safeValue(response, 'balances', []);
1064
- const timestamp = this.milliseconds();
1065
1064
  const result = {
1066
1065
  'info': response,
1067
- 'timestamp': timestamp,
1068
- 'datetime': this.iso8601(timestamp),
1066
+ 'timestamp': undefined,
1067
+ 'datetime': undefined,
1069
1068
  };
1070
1069
  for (let i = 0; i < balances.length; i++) {
1071
1070
  const balance = balances[i];
@@ -2071,7 +2071,13 @@ class delta extends delta$1 {
2071
2071
  if (limit !== undefined) {
2072
2072
  request['page_size'] = limit;
2073
2073
  }
2074
- const response = await this[method](this.extend(request, params));
2074
+ let response = undefined;
2075
+ if (method === 'privateGetOrders') {
2076
+ response = await this.privateGetOrders(this.extend(request, params));
2077
+ }
2078
+ else if (method === 'privateGetOrdersHistory') {
2079
+ response = await this.privateGetOrdersHistory(this.extend(request, params));
2080
+ }
2075
2081
  //
2076
2082
  // {
2077
2083
  // "success": true,