ccxt 4.2.30 → 4.2.34

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 (318) hide show
  1. package/.gitattributes +1 -0
  2. package/CONTRIBUTING.md +20 -1
  3. package/README.md +9 -9
  4. package/build.sh +9 -2
  5. package/cleanup.sh +3 -0
  6. package/dist/ccxt.browser.js +1136 -561
  7. package/dist/ccxt.browser.min.js +3 -3
  8. package/dist/cjs/ccxt.js +1 -1
  9. package/dist/cjs/src/ace.js +3 -2
  10. package/dist/cjs/src/ascendex.js +1 -1
  11. package/dist/cjs/src/base/Exchange.js +66 -24
  12. package/dist/cjs/src/bigone.js +21 -1
  13. package/dist/cjs/src/binance.js +6 -5
  14. package/dist/cjs/src/bingx.js +4 -3
  15. package/dist/cjs/src/bit2c.js +12 -0
  16. package/dist/cjs/src/bitfinex2.js +415 -41
  17. package/dist/cjs/src/bitforex.js +3 -0
  18. package/dist/cjs/src/bitget.js +3 -3
  19. package/dist/cjs/src/bitmart.js +1 -1
  20. package/dist/cjs/src/bitrue.js +3 -3
  21. package/dist/cjs/src/blockchaincom.js +1 -1
  22. package/dist/cjs/src/bybit.js +1 -1
  23. package/dist/cjs/src/coinbase.js +12 -2
  24. package/dist/cjs/src/coinex.js +1 -1
  25. package/dist/cjs/src/cryptocom.js +10 -10
  26. package/dist/cjs/src/deribit.js +1 -0
  27. package/dist/cjs/src/gate.js +34 -29
  28. package/dist/cjs/src/htx.js +1 -1
  29. package/dist/cjs/src/kraken.js +42 -1
  30. package/dist/cjs/src/krakenfutures.js +3 -0
  31. package/dist/cjs/src/kucoin.js +1 -1
  32. package/dist/cjs/src/lbank.js +27 -26
  33. package/dist/cjs/src/mexc.js +2 -1
  34. package/dist/cjs/src/okx.js +20 -5
  35. package/dist/cjs/src/phemex.js +8 -8
  36. package/dist/cjs/src/poloniexfutures.js +3 -0
  37. package/dist/cjs/src/pro/alpaca.js +8 -4
  38. package/dist/cjs/src/pro/ascendex.js +1 -2
  39. package/dist/cjs/src/pro/binance.js +14 -10
  40. package/dist/cjs/src/pro/bingx.js +1 -1
  41. package/dist/cjs/src/pro/bitfinex.js +21 -24
  42. package/dist/cjs/src/pro/bitfinex2.js +13 -17
  43. package/dist/cjs/src/pro/bitget.js +3 -1
  44. package/dist/cjs/src/pro/bitmart.js +3 -8
  45. package/dist/cjs/src/pro/bitmex.js +4 -7
  46. package/dist/cjs/src/pro/bitopro.js +2 -5
  47. package/dist/cjs/src/pro/bitrue.js +1 -1
  48. package/dist/cjs/src/pro/bitstamp.js +2 -3
  49. package/dist/cjs/src/pro/bitvavo.js +12 -5
  50. package/dist/cjs/src/pro/blockchaincom.js +22 -23
  51. package/dist/cjs/src/pro/bybit.js +5 -5
  52. package/dist/cjs/src/pro/cex.js +7 -7
  53. package/dist/cjs/src/pro/coinbase.js +3 -2
  54. package/dist/cjs/src/pro/coinbasepro.js +1 -1
  55. package/dist/cjs/src/pro/coinex.js +15 -13
  56. package/dist/cjs/src/pro/currencycom.js +5 -7
  57. package/dist/cjs/src/pro/deribit.js +4 -4
  58. package/dist/cjs/src/pro/exmo.js +15 -13
  59. package/dist/cjs/src/pro/gate.js +1 -1
  60. package/dist/cjs/src/pro/gemini.js +4 -2
  61. package/dist/cjs/src/pro/hitbtc.js +9 -8
  62. package/dist/cjs/src/pro/hollaex.js +2 -2
  63. package/dist/cjs/src/pro/htx.js +6 -7
  64. package/dist/cjs/src/pro/huobijp.js +3 -5
  65. package/dist/cjs/src/pro/idex.js +1 -1
  66. package/dist/cjs/src/pro/independentreserve.js +14 -13
  67. package/dist/cjs/src/pro/kraken.js +10 -16
  68. package/dist/cjs/src/pro/krakenfutures.js +10 -6
  69. package/dist/cjs/src/pro/kucoin.js +10 -11
  70. package/dist/cjs/src/pro/kucoinfutures.js +12 -11
  71. package/dist/cjs/src/pro/lbank.js +10 -10
  72. package/dist/cjs/src/pro/luno.js +12 -14
  73. package/dist/cjs/src/pro/mexc.js +3 -2
  74. package/dist/cjs/src/pro/ndax.js +7 -13
  75. package/dist/cjs/src/pro/okcoin.js +7 -12
  76. package/dist/cjs/src/pro/okx.js +6 -11
  77. package/dist/cjs/src/pro/onetrading.js +16 -15
  78. package/dist/cjs/src/pro/p2b.js +5 -3
  79. package/dist/cjs/src/pro/phemex.js +16 -11
  80. package/dist/cjs/src/pro/poloniex.js +6 -4
  81. package/dist/cjs/src/pro/poloniexfutures.js +14 -9
  82. package/dist/cjs/src/pro/probit.js +15 -11
  83. package/dist/cjs/src/pro/upbit.js +8 -8
  84. package/dist/cjs/src/pro/wazirx.js +6 -3
  85. package/dist/cjs/src/pro/woo.js +8 -6
  86. package/dist/cjs/src/probit.js +3 -3
  87. package/dist/cjs/src/timex.js +1 -1
  88. package/dist/cjs/src/tokocrypto.js +2 -2
  89. package/dist/cjs/src/wavesexchange.js +2 -1
  90. package/dist/cjs/src/whitebit.js +1 -1
  91. package/dist/cjs/src/woo.js +1 -1
  92. package/dist/cjs/src/yobit.js +39 -0
  93. package/js/ccxt.d.ts +1 -1
  94. package/js/ccxt.js +1 -1
  95. package/js/src/abstract/coinbase.d.ts +10 -0
  96. package/js/src/abstract/okx.d.ts +12 -1
  97. package/js/src/ace.d.ts +1 -1
  98. package/js/src/ace.js +3 -2
  99. package/js/src/alpaca.d.ts +1 -1
  100. package/js/src/ascendex.d.ts +5 -15
  101. package/js/src/ascendex.js +1 -1
  102. package/js/src/base/Exchange.d.ts +88 -79
  103. package/js/src/base/Exchange.js +66 -24
  104. package/js/src/base/types.d.ts +90 -6
  105. package/js/src/bigone.d.ts +5 -15
  106. package/js/src/bigone.js +21 -1
  107. package/js/src/binance.d.ts +13 -23
  108. package/js/src/binance.js +6 -5
  109. package/js/src/bingx.d.ts +6 -16
  110. package/js/src/bingx.js +4 -3
  111. package/js/src/bit2c.d.ts +1 -1
  112. package/js/src/bit2c.js +12 -0
  113. package/js/src/bitbank.d.ts +2 -2
  114. package/js/src/bitbns.d.ts +1 -1
  115. package/js/src/bitfinex.d.ts +5 -5
  116. package/js/src/bitfinex2.d.ts +11 -16
  117. package/js/src/bitfinex2.js +415 -41
  118. package/js/src/bitflyer.d.ts +5 -5
  119. package/js/src/bitforex.d.ts +1 -1
  120. package/js/src/bitforex.js +3 -0
  121. package/js/src/bitget.d.ts +8 -38
  122. package/js/src/bitget.js +3 -3
  123. package/js/src/bithumb.d.ts +2 -2
  124. package/js/src/bitmart.d.ts +10 -21
  125. package/js/src/bitmart.js +1 -1
  126. package/js/src/bitmex.d.ts +3 -3
  127. package/js/src/bitopro.d.ts +2 -2
  128. package/js/src/bitrue.d.ts +5 -15
  129. package/js/src/bitrue.js +3 -3
  130. package/js/src/bitso.d.ts +4 -4
  131. package/js/src/bitstamp.d.ts +2 -2
  132. package/js/src/bitteam.d.ts +1 -1
  133. package/js/src/bitvavo.d.ts +3 -3
  134. package/js/src/bl3p.d.ts +1 -1
  135. package/js/src/blockchaincom.d.ts +2 -2
  136. package/js/src/blockchaincom.js +1 -1
  137. package/js/src/btcalpha.d.ts +1 -1
  138. package/js/src/btcbox.d.ts +1 -1
  139. package/js/src/btcmarkets.d.ts +3 -3
  140. package/js/src/btcturk.d.ts +1 -1
  141. package/js/src/bybit.d.ts +8 -8
  142. package/js/src/bybit.js +1 -1
  143. package/js/src/cex.d.ts +1 -1
  144. package/js/src/coinbase.d.ts +6 -50
  145. package/js/src/coinbase.js +12 -2
  146. package/js/src/coinbasepro.d.ts +2 -2
  147. package/js/src/coincheck.d.ts +1 -1
  148. package/js/src/coinex.d.ts +8 -8
  149. package/js/src/coinex.js +1 -1
  150. package/js/src/coinlist.d.ts +4 -14
  151. package/js/src/coinmate.d.ts +2 -2
  152. package/js/src/coinmetro.d.ts +2 -2
  153. package/js/src/coinone.d.ts +1 -1
  154. package/js/src/coinsph.d.ts +2 -2
  155. package/js/src/coinspot.d.ts +1 -1
  156. package/js/src/cryptocom.d.ts +4 -4
  157. package/js/src/cryptocom.js +10 -10
  158. package/js/src/currencycom.d.ts +2 -2
  159. package/js/src/delta.d.ts +2 -2
  160. package/js/src/deribit.d.ts +4 -14
  161. package/js/src/deribit.js +1 -0
  162. package/js/src/digifinex.d.ts +10 -38
  163. package/js/src/exmo.d.ts +2 -2
  164. package/js/src/gate.d.ts +8 -18
  165. package/js/src/gate.js +34 -29
  166. package/js/src/gemini.d.ts +2 -2
  167. package/js/src/hitbtc.d.ts +6 -16
  168. package/js/src/hollaex.d.ts +2 -2
  169. package/js/src/htx.d.ts +11 -21
  170. package/js/src/htx.js +1 -1
  171. package/js/src/huobijp.d.ts +4 -4
  172. package/js/src/idex.d.ts +3 -3
  173. package/js/src/independentreserve.d.ts +2 -2
  174. package/js/src/indodax.d.ts +2 -2
  175. package/js/src/kraken.d.ts +5 -5
  176. package/js/src/kraken.js +42 -1
  177. package/js/src/krakenfutures.d.ts +7 -7
  178. package/js/src/krakenfutures.js +3 -0
  179. package/js/src/kucoin.d.ts +8 -29
  180. package/js/src/kucoin.js +1 -1
  181. package/js/src/kucoinfutures.d.ts +4 -4
  182. package/js/src/kuna.d.ts +2 -2
  183. package/js/src/latoken.d.ts +4 -14
  184. package/js/src/lbank.d.ts +3 -6
  185. package/js/src/lbank.js +27 -26
  186. package/js/src/luno.d.ts +1 -1
  187. package/js/src/lykke.d.ts +2 -2
  188. package/js/src/mercado.d.ts +2 -2
  189. package/js/src/mexc.d.ts +6 -6
  190. package/js/src/mexc.js +2 -1
  191. package/js/src/ndax.d.ts +2 -2
  192. package/js/src/novadax.d.ts +4 -15
  193. package/js/src/oceanex.d.ts +1 -1
  194. package/js/src/okcoin.d.ts +5 -15
  195. package/js/src/okx.d.ts +8 -18
  196. package/js/src/okx.js +20 -5
  197. package/js/src/onetrading.d.ts +2 -2
  198. package/js/src/p2b.d.ts +1 -1
  199. package/js/src/paymium.d.ts +3 -13
  200. package/js/src/phemex.d.ts +5 -5
  201. package/js/src/phemex.js +8 -8
  202. package/js/src/poloniex.d.ts +4 -14
  203. package/js/src/poloniexfutures.d.ts +1 -1
  204. package/js/src/poloniexfutures.js +3 -0
  205. package/js/src/pro/alpaca.d.ts +2 -2
  206. package/js/src/pro/alpaca.js +8 -4
  207. package/js/src/pro/ascendex.d.ts +2 -2
  208. package/js/src/pro/ascendex.js +1 -2
  209. package/js/src/pro/binance.d.ts +3 -3
  210. package/js/src/pro/binance.js +14 -10
  211. package/js/src/pro/bingx.d.ts +1 -1
  212. package/js/src/pro/bingx.js +1 -1
  213. package/js/src/pro/bitfinex.d.ts +2 -2
  214. package/js/src/pro/bitfinex.js +21 -24
  215. package/js/src/pro/bitfinex2.d.ts +2 -2
  216. package/js/src/pro/bitfinex2.js +13 -17
  217. package/js/src/pro/bitget.js +3 -1
  218. package/js/src/pro/bitmart.d.ts +3 -3
  219. package/js/src/pro/bitmart.js +3 -8
  220. package/js/src/pro/bitmex.d.ts +1 -1
  221. package/js/src/pro/bitmex.js +4 -7
  222. package/js/src/pro/bitopro.d.ts +1 -1
  223. package/js/src/pro/bitopro.js +2 -5
  224. package/js/src/pro/bitrue.js +1 -1
  225. package/js/src/pro/bitstamp.d.ts +1 -1
  226. package/js/src/pro/bitstamp.js +2 -3
  227. package/js/src/pro/bitvavo.d.ts +3 -3
  228. package/js/src/pro/bitvavo.js +12 -5
  229. package/js/src/pro/blockchaincom.d.ts +8 -8
  230. package/js/src/pro/blockchaincom.js +22 -23
  231. package/js/src/pro/bybit.d.ts +2 -2
  232. package/js/src/pro/bybit.js +5 -5
  233. package/js/src/pro/cex.d.ts +1 -1
  234. package/js/src/pro/cex.js +7 -7
  235. package/js/src/pro/coinbase.d.ts +1 -1
  236. package/js/src/pro/coinbase.js +3 -2
  237. package/js/src/pro/coinbasepro.d.ts +1 -1
  238. package/js/src/pro/coinbasepro.js +1 -1
  239. package/js/src/pro/coinex.d.ts +2 -2
  240. package/js/src/pro/coinex.js +15 -13
  241. package/js/src/pro/currencycom.d.ts +1 -1
  242. package/js/src/pro/currencycom.js +5 -7
  243. package/js/src/pro/deribit.d.ts +2 -2
  244. package/js/src/pro/deribit.js +4 -4
  245. package/js/src/pro/exmo.d.ts +2 -2
  246. package/js/src/pro/exmo.js +15 -13
  247. package/js/src/pro/gate.js +1 -1
  248. package/js/src/pro/gemini.d.ts +1 -1
  249. package/js/src/pro/gemini.js +4 -2
  250. package/js/src/pro/hitbtc.d.ts +2 -2
  251. package/js/src/pro/hitbtc.js +9 -8
  252. package/js/src/pro/hollaex.d.ts +2 -2
  253. package/js/src/pro/hollaex.js +2 -2
  254. package/js/src/pro/htx.d.ts +2 -2
  255. package/js/src/pro/htx.js +6 -7
  256. package/js/src/pro/huobijp.d.ts +1 -1
  257. package/js/src/pro/huobijp.js +3 -5
  258. package/js/src/pro/idex.js +1 -1
  259. package/js/src/pro/independentreserve.d.ts +1 -1
  260. package/js/src/pro/independentreserve.js +14 -13
  261. package/js/src/pro/kraken.d.ts +2 -2
  262. package/js/src/pro/kraken.js +10 -16
  263. package/js/src/pro/krakenfutures.d.ts +1 -1
  264. package/js/src/pro/krakenfutures.js +10 -6
  265. package/js/src/pro/kucoin.d.ts +3 -3
  266. package/js/src/pro/kucoin.js +10 -11
  267. package/js/src/pro/kucoinfutures.d.ts +3 -3
  268. package/js/src/pro/kucoinfutures.js +12 -11
  269. package/js/src/pro/lbank.d.ts +1 -1
  270. package/js/src/pro/lbank.js +10 -10
  271. package/js/src/pro/luno.d.ts +2 -2
  272. package/js/src/pro/luno.js +12 -14
  273. package/js/src/pro/mexc.d.ts +2 -2
  274. package/js/src/pro/mexc.js +3 -2
  275. package/js/src/pro/ndax.d.ts +3 -3
  276. package/js/src/pro/ndax.js +7 -13
  277. package/js/src/pro/okcoin.d.ts +1 -1
  278. package/js/src/pro/okcoin.js +7 -12
  279. package/js/src/pro/okx.d.ts +1 -1
  280. package/js/src/pro/okx.js +6 -11
  281. package/js/src/pro/onetrading.d.ts +1 -1
  282. package/js/src/pro/onetrading.js +16 -15
  283. package/js/src/pro/p2b.d.ts +1 -1
  284. package/js/src/pro/p2b.js +5 -3
  285. package/js/src/pro/phemex.d.ts +3 -3
  286. package/js/src/pro/phemex.js +16 -11
  287. package/js/src/pro/poloniex.d.ts +1 -1
  288. package/js/src/pro/poloniex.js +6 -4
  289. package/js/src/pro/poloniexfutures.d.ts +4 -4
  290. package/js/src/pro/poloniexfutures.js +13 -10
  291. package/js/src/pro/probit.d.ts +1 -1
  292. package/js/src/pro/probit.js +14 -12
  293. package/js/src/pro/upbit.js +8 -8
  294. package/js/src/pro/wazirx.d.ts +1 -1
  295. package/js/src/pro/wazirx.js +6 -3
  296. package/js/src/pro/woo.d.ts +3 -3
  297. package/js/src/pro/woo.js +8 -6
  298. package/js/src/probit.d.ts +3 -3
  299. package/js/src/probit.js +3 -3
  300. package/js/src/timex.d.ts +1 -1
  301. package/js/src/timex.js +1 -1
  302. package/js/src/tokocrypto.d.ts +3 -3
  303. package/js/src/tokocrypto.js +2 -2
  304. package/js/src/upbit.d.ts +2 -2
  305. package/js/src/wavesexchange.d.ts +3 -4
  306. package/js/src/wavesexchange.js +2 -1
  307. package/js/src/wazirx.d.ts +1 -1
  308. package/js/src/whitebit.d.ts +5 -15
  309. package/js/src/whitebit.js +1 -1
  310. package/js/src/woo.d.ts +5 -15
  311. package/js/src/woo.js +1 -1
  312. package/js/src/yobit.d.ts +21 -6
  313. package/js/src/yobit.js +39 -0
  314. package/js/src/zaif.d.ts +2 -2
  315. package/js/src/zonda.d.ts +4 -14
  316. package/package.json +22 -8
  317. package/skip-tests.json +9 -1
  318. package/tests-manager.sh +1 -2
@@ -41,6 +41,9 @@ class bitforex extends bitforex$1 {
41
41
  'fetchClosedOrders': true,
42
42
  'fetchCrossBorrowRate': false,
43
43
  'fetchCrossBorrowRates': false,
44
+ 'fetchDepositAddress': false,
45
+ 'fetchDepositAddresses': false,
46
+ 'fetchDepositAddressesByNetwork': false,
44
47
  'fetchFundingHistory': false,
45
48
  'fetchFundingRate': false,
46
49
  'fetchFundingRateHistory': false,
@@ -4135,7 +4135,7 @@ class bitget extends bitget$1 {
4135
4135
  const isTakeProfit = takeProfit !== undefined;
4136
4136
  const isStopLossOrTakeProfitTrigger = isStopLossTriggerOrder || isTakeProfitTriggerOrder;
4137
4137
  const isStopLossOrTakeProfit = isStopLoss || isTakeProfit;
4138
- const trailingTriggerPrice = this.safeString(params, 'trailingTriggerPrice', price);
4138
+ const trailingTriggerPrice = this.safeString(params, 'trailingTriggerPrice', this.numberToString(price));
4139
4139
  const trailingPercent = this.safeString2(params, 'trailingPercent', 'callbackRatio');
4140
4140
  const isTrailingPercentOrder = trailingPercent !== undefined;
4141
4141
  if (this.sum(isTriggerOrder, isStopLossTriggerOrder, isTakeProfitTriggerOrder, isTrailingPercentOrder) > 1) {
@@ -6958,7 +6958,7 @@ class bitget extends bitget$1 {
6958
6958
  * @name bitget#setLeverage
6959
6959
  * @description set the level of leverage for a market
6960
6960
  * @see https://www.bitget.com/api-doc/contract/account/Change-Leverage
6961
- * @param {float} leverage the rate of leverage
6961
+ * @param {int} leverage the rate of leverage
6962
6962
  * @param {string} symbol unified market symbol
6963
6963
  * @param {object} [params] extra parameters specific to the exchange API endpoint
6964
6964
  * @param {string} [params.holdSide] *isolated only* position direction, 'long' or 'short'
@@ -6982,7 +6982,7 @@ class bitget extends bitget$1 {
6982
6982
  const request = {
6983
6983
  'symbol': market['id'],
6984
6984
  'marginCoin': market['settleId'],
6985
- 'leverage': leverage,
6985
+ 'leverage': this.numberToString(leverage),
6986
6986
  'productType': productType,
6987
6987
  // 'holdSide': 'long',
6988
6988
  };
@@ -2416,7 +2416,7 @@ class bitmart extends bitmart$1 {
2416
2416
  }
2417
2417
  const triggerPrice = this.safeStringN(params, ['triggerPrice', 'stopPrice', 'trigger_price']);
2418
2418
  const isTriggerOrder = triggerPrice !== undefined;
2419
- const trailingTriggerPrice = this.safeString2(params, 'trailingTriggerPrice', 'activation_price', price);
2419
+ const trailingTriggerPrice = this.safeString2(params, 'trailingTriggerPrice', 'activation_price', this.numberToString(price));
2420
2420
  const trailingPercent = this.safeString2(params, 'trailingPercent', 'callback_rate');
2421
2421
  const isTrailingPercentOrder = trailingPercent !== undefined;
2422
2422
  if (isLimitOrder) {
@@ -1973,9 +1973,9 @@ class bitrue extends bitrue$1 {
1973
1973
  const amountString = this.numberToString(amount);
1974
1974
  const priceString = this.numberToString(price);
1975
1975
  const quoteAmount = Precise["default"].stringMul(amountString, priceString);
1976
- amount = (cost !== undefined) ? cost : quoteAmount;
1977
- request['amount'] = this.costToPrecision(symbol, amount);
1978
- request['volume'] = this.costToPrecision(symbol, amount);
1976
+ const requestAmount = (cost !== undefined) ? cost : quoteAmount;
1977
+ request['amount'] = this.costToPrecision(symbol, requestAmount);
1978
+ request['volume'] = this.costToPrecision(symbol, requestAmount);
1979
1979
  }
1980
1980
  }
1981
1981
  else {
@@ -525,7 +525,7 @@ class blockchaincom extends blockchaincom$1 {
525
525
  'remaining': remaining,
526
526
  'cost': undefined,
527
527
  'trades': [],
528
- 'fees': {},
528
+ 'fees': [],
529
529
  'info': order,
530
530
  });
531
531
  return result;
@@ -3692,7 +3692,7 @@ class bybit extends bybit$1 {
3692
3692
  const takeProfitTriggerPrice = this.safeValue(params, 'takeProfitPrice');
3693
3693
  const stopLoss = this.safeValue(params, 'stopLoss');
3694
3694
  const takeProfit = this.safeValue(params, 'takeProfit');
3695
- const trailingTriggerPrice = this.safeString2(params, 'trailingTriggerPrice', 'activePrice', price);
3695
+ const trailingTriggerPrice = this.safeString2(params, 'trailingTriggerPrice', 'activePrice', this.numberToString(price));
3696
3696
  const trailingAmount = this.safeString2(params, 'trailingAmount', 'trailingStop');
3697
3697
  const isTrailingAmountOrder = trailingAmount !== undefined;
3698
3698
  const isStopLossTriggerOrder = stopLossTriggerPrice !== undefined;
@@ -204,6 +204,13 @@ class coinbase extends coinbase$1 {
204
204
  'brokerage/best_bid_ask',
205
205
  'brokerage/convert/trade/{trade_id}',
206
206
  'brokerage/time',
207
+ 'brokerage/cfm/balance_summary',
208
+ 'brokerage/cfm/positions',
209
+ 'brokerage/cfm/positions/{product_id}',
210
+ 'brokerage/cfm/sweeps',
211
+ 'brokerage/intx/portfolio/{portfolio_uuid}',
212
+ 'brokerage/intx/positions/{portfolio_uuid}',
213
+ 'brokerage/intx/positions/{portfolio_uuid}/{symbol}',
207
214
  ],
208
215
  'post': [
209
216
  'brokerage/orders',
@@ -214,12 +221,15 @@ class coinbase extends coinbase$1 {
214
221
  'brokerage/portfolios/move_funds',
215
222
  'brokerage/convert/quote',
216
223
  'brokerage/convert/trade/{trade_id}',
224
+ 'brokerage/cfm/sweeps/schedule',
225
+ 'brokerage/intx/allocate',
217
226
  ],
218
227
  'put': [
219
228
  'brokerage/portfolios/{portfolio_uuid}',
220
229
  ],
221
230
  'delete': [
222
231
  'brokerage/portfolios/{portfolio_uuid}',
232
+ 'brokerage/cfm/sweeps',
223
233
  ],
224
234
  },
225
235
  },
@@ -1612,7 +1622,7 @@ class coinbase extends coinbase$1 {
1612
1622
  'info': ticker,
1613
1623
  }, market);
1614
1624
  }
1615
- parseBalance(response, params = {}) {
1625
+ parseCustomBalance(response, params = {}) {
1616
1626
  const balances = this.safeValue2(response, 'data', 'accounts', []);
1617
1627
  const accounts = this.safeValue(params, 'type', this.options['accounts']);
1618
1628
  const v3Accounts = this.safeValue(params, 'type', this.options['v3Accounts']);
@@ -1763,7 +1773,7 @@ class coinbase extends coinbase$1 {
1763
1773
  // "size": 9
1764
1774
  // }
1765
1775
  //
1766
- return this.parseBalance(response, params);
1776
+ return this.parseCustomBalance(response, params);
1767
1777
  }
1768
1778
  async fetchLedger(code = undefined, since = undefined, limit = undefined, params = {}) {
1769
1779
  /**
@@ -4370,7 +4370,7 @@ class coinex extends coinex$1 {
4370
4370
  const request = {
4371
4371
  'coin_type': currency['id'],
4372
4372
  'coin_address': address,
4373
- 'actual_amount': parseFloat(amount),
4373
+ 'actual_amount': parseFloat(this.numberToString(amount)),
4374
4374
  'transfer_method': 'onchain', // onchain, local
4375
4375
  };
4376
4376
  if (networkCode !== undefined) {
@@ -1067,10 +1067,10 @@ class cryptocom extends cryptocom$1 {
1067
1067
  const isTakeProfitTrigger = (takeProfitPrice !== undefined);
1068
1068
  if (isTrigger) {
1069
1069
  request['ref_price'] = this.priceToPrecision(symbol, triggerPrice);
1070
- price = price.toString();
1070
+ const priceString = this.numberToString(price);
1071
1071
  if ((uppercaseType === 'LIMIT') || (uppercaseType === 'STOP_LIMIT') || (uppercaseType === 'TAKE_PROFIT_LIMIT')) {
1072
1072
  if (side === 'buy') {
1073
- if (Precise["default"].stringLt(price, triggerPrice)) {
1073
+ if (Precise["default"].stringLt(priceString, triggerPrice)) {
1074
1074
  request['type'] = 'TAKE_PROFIT_LIMIT';
1075
1075
  }
1076
1076
  else {
@@ -1078,7 +1078,7 @@ class cryptocom extends cryptocom$1 {
1078
1078
  }
1079
1079
  }
1080
1080
  else {
1081
- if (Precise["default"].stringLt(price, triggerPrice)) {
1081
+ if (Precise["default"].stringLt(priceString, triggerPrice)) {
1082
1082
  request['type'] = 'STOP_LIMIT';
1083
1083
  }
1084
1084
  else {
@@ -1088,7 +1088,7 @@ class cryptocom extends cryptocom$1 {
1088
1088
  }
1089
1089
  else {
1090
1090
  if (side === 'buy') {
1091
- if (Precise["default"].stringLt(price, triggerPrice)) {
1091
+ if (Precise["default"].stringLt(priceString, triggerPrice)) {
1092
1092
  request['type'] = 'TAKE_PROFIT';
1093
1093
  }
1094
1094
  else {
@@ -1096,7 +1096,7 @@ class cryptocom extends cryptocom$1 {
1096
1096
  }
1097
1097
  }
1098
1098
  else {
1099
- if (Precise["default"].stringLt(price, triggerPrice)) {
1099
+ if (Precise["default"].stringLt(priceString, triggerPrice)) {
1100
1100
  request['type'] = 'STOP_LOSS';
1101
1101
  }
1102
1102
  else {
@@ -1287,10 +1287,10 @@ class cryptocom extends cryptocom$1 {
1287
1287
  const isStopLossTrigger = (stopLossPrice !== undefined);
1288
1288
  const isTakeProfitTrigger = (takeProfitPrice !== undefined);
1289
1289
  if (isTrigger) {
1290
- price = price.toString();
1290
+ const priceString = this.numberToString(price);
1291
1291
  if ((uppercaseType === 'LIMIT') || (uppercaseType === 'STOP_LIMIT') || (uppercaseType === 'TAKE_PROFIT_LIMIT')) {
1292
1292
  if (side === 'buy') {
1293
- if (Precise["default"].stringLt(price, triggerPrice)) {
1293
+ if (Precise["default"].stringLt(priceString, triggerPrice)) {
1294
1294
  request['type'] = 'TAKE_PROFIT_LIMIT';
1295
1295
  }
1296
1296
  else {
@@ -1298,7 +1298,7 @@ class cryptocom extends cryptocom$1 {
1298
1298
  }
1299
1299
  }
1300
1300
  else {
1301
- if (Precise["default"].stringLt(price, triggerPrice)) {
1301
+ if (Precise["default"].stringLt(priceString, triggerPrice)) {
1302
1302
  request['type'] = 'STOP_LIMIT';
1303
1303
  }
1304
1304
  else {
@@ -1308,7 +1308,7 @@ class cryptocom extends cryptocom$1 {
1308
1308
  }
1309
1309
  else {
1310
1310
  if (side === 'buy') {
1311
- if (Precise["default"].stringLt(price, triggerPrice)) {
1311
+ if (Precise["default"].stringLt(priceString, triggerPrice)) {
1312
1312
  request['type'] = 'TAKE_PROFIT';
1313
1313
  }
1314
1314
  else {
@@ -1316,7 +1316,7 @@ class cryptocom extends cryptocom$1 {
1316
1316
  }
1317
1317
  }
1318
1318
  else {
1319
- if (Precise["default"].stringLt(price, triggerPrice)) {
1319
+ if (Precise["default"].stringLt(priceString, triggerPrice)) {
1320
1320
  request['type'] = 'STOP_LOSS';
1321
1321
  }
1322
1322
  else {
@@ -1343,6 +1343,7 @@ class deribit extends deribit$1 {
1343
1343
  request['end_timestamp'] = now;
1344
1344
  }
1345
1345
  else {
1346
+ since = Math.max(since - 1, 0);
1346
1347
  request['start_timestamp'] = since;
1347
1348
  if (limit === undefined) {
1348
1349
  request['end_timestamp'] = now;
@@ -1618,32 +1618,34 @@ class gate extends gate$1 {
1618
1618
  let withdrawAvailable = this.safeValue(result[code], 'withdraw');
1619
1619
  withdrawAvailable = (withdrawEnabled) ? withdrawEnabled : withdrawAvailable;
1620
1620
  const networks = this.safeValue(result[code], 'networks', {});
1621
- networks[networkCode] = {
1622
- 'info': entry,
1623
- 'id': networkId,
1624
- 'network': networkCode,
1625
- 'currencyId': currencyId,
1626
- 'lowerCaseCurrencyId': currencyIdLower,
1627
- 'deposit': depositEnabled,
1628
- 'withdraw': withdrawEnabled,
1629
- 'active': active,
1630
- 'fee': undefined,
1631
- 'precision': this.parseNumber('1e-4'),
1632
- 'limits': {
1633
- 'amount': {
1634
- 'min': undefined,
1635
- 'max': undefined,
1636
- },
1637
- 'withdraw': {
1638
- 'min': undefined,
1639
- 'max': undefined,
1640
- },
1641
- 'deposit': {
1642
- 'min': undefined,
1643
- 'max': undefined,
1621
+ if (networkCode !== undefined) {
1622
+ networks[networkCode] = {
1623
+ 'info': entry,
1624
+ 'id': networkId,
1625
+ 'network': networkCode,
1626
+ 'currencyId': currencyId,
1627
+ 'lowerCaseCurrencyId': currencyIdLower,
1628
+ 'deposit': depositEnabled,
1629
+ 'withdraw': withdrawEnabled,
1630
+ 'active': active,
1631
+ 'fee': undefined,
1632
+ 'precision': this.parseNumber('1e-4'),
1633
+ 'limits': {
1634
+ 'amount': {
1635
+ 'min': undefined,
1636
+ 'max': undefined,
1637
+ },
1638
+ 'withdraw': {
1639
+ 'min': undefined,
1640
+ 'max': undefined,
1641
+ },
1642
+ 'deposit': {
1643
+ 'min': undefined,
1644
+ 'max': undefined,
1645
+ },
1644
1646
  },
1645
- },
1646
- };
1647
+ };
1648
+ }
1647
1649
  result[code]['networks'] = networks;
1648
1650
  const info = this.safeValue(result[code], 'info', []);
1649
1651
  info.push(entry);
@@ -2599,6 +2601,7 @@ class gate extends gate$1 {
2599
2601
  const [type, query] = this.handleMarketTypeAndParams('fetchTickers', market, params);
2600
2602
  const [request, requestParams] = this.prepareRequest(undefined, type, query);
2601
2603
  let response = undefined;
2604
+ request['timezone'] = 'utc0'; // default to utc
2602
2605
  if (type === 'spot' || type === 'margin') {
2603
2606
  response = await this.publicSpotGetTickers(this.extend(request, requestParams));
2604
2607
  }
@@ -2616,7 +2619,7 @@ class gate extends gate$1 {
2616
2619
  response = await this.publicOptionsGetTickers(this.extend(request, requestParams));
2617
2620
  }
2618
2621
  else {
2619
- throw new errors.NotSupported(this.id + ' fetchTickers() not support this market type');
2622
+ throw new errors.NotSupported(this.id + ' fetchTickers() not support this market type, provide symbols or set params["defaultType"] to one from spot/margin/swap/future/option');
2620
2623
  }
2621
2624
  return this.parseTickers(response, symbols);
2622
2625
  }
@@ -5187,16 +5190,17 @@ class gate extends gate$1 {
5187
5190
  const defaultMarginMode = this.safeString2(this.options, 'marginMode', 'defaultMarginMode');
5188
5191
  const crossLeverageLimit = this.safeString(query, 'cross_leverage_limit');
5189
5192
  let marginMode = this.safeString(query, 'marginMode', defaultMarginMode);
5193
+ let stringifiedMargin = this.numberToString(leverage);
5190
5194
  if (crossLeverageLimit !== undefined) {
5191
5195
  marginMode = 'cross';
5192
- leverage = crossLeverageLimit;
5196
+ stringifiedMargin = crossLeverageLimit;
5193
5197
  }
5194
5198
  if (marginMode === 'cross' || marginMode === 'cross_margin') {
5195
- request['cross_leverage_limit'] = leverage.toString();
5199
+ request['cross_leverage_limit'] = stringifiedMargin;
5196
5200
  request['leverage'] = '0';
5197
5201
  }
5198
5202
  else {
5199
- request['leverage'] = leverage.toString();
5203
+ request['leverage'] = stringifiedMargin;
5200
5204
  }
5201
5205
  let response = undefined;
5202
5206
  if (market['swap']) {
@@ -6931,6 +6935,7 @@ class gate extends gate$1 {
6931
6935
  return this.parseGreeks(entry, market);
6932
6936
  }
6933
6937
  }
6938
+ return undefined;
6934
6939
  }
6935
6940
  parseGreeks(greeks, market = undefined) {
6936
6941
  //
@@ -5009,7 +5009,7 @@ class htx extends htx$1 {
5009
5009
  const marketId = this.safeString2(order, 'contract_code', 'symbol');
5010
5010
  market = this.safeMarket(marketId, market);
5011
5011
  const timestamp = this.safeIntegerN(order, ['created_at', 'created-at', 'create_date']);
5012
- const clientOrderId = this.safeString2(order, 'client_order_id', 'client-order-id');
5012
+ const clientOrderId = this.safeString2(order, 'client_order_id', 'client-or' + 'der-id'); // transpiler regex trick for php issue
5013
5013
  let cost = undefined;
5014
5014
  let amount = undefined;
5015
5015
  if ((type !== undefined) && (type.indexOf('market') >= 0)) {
@@ -975,7 +975,9 @@ class kraken extends kraken$1 {
975
975
  request['interval'] = timeframe;
976
976
  }
977
977
  if (since !== undefined) {
978
- request['since'] = this.parseToInt((since - 1) / 1000);
978
+ // contrary to kraken's api documentation, the since parameter must be passed in nanoseconds
979
+ // the adding of '000000' is copied from the fetchTrades function
980
+ request['since'] = this.numberToString(since) + '000000'; // expected to be in nanoseconds
979
981
  }
980
982
  const response = await this.publicGetOHLC(this.extend(request, params));
981
983
  //
@@ -1507,6 +1509,41 @@ class kraken extends kraken$1 {
1507
1509
  // "txid": "OTI672-HJFAO-XOIPPK"
1508
1510
  // }
1509
1511
  //
1512
+ // {
1513
+ // "error": [],
1514
+ // "result": {
1515
+ // "open": {
1516
+ // "OXVPSU-Q726F-L3SDEP": {
1517
+ // "refid": null,
1518
+ // "userref": 0,
1519
+ // "status": "open",
1520
+ // "opentm": 1706893367.4656649,
1521
+ // "starttm": 0,
1522
+ // "expiretm": 0,
1523
+ // "descr": {
1524
+ // "pair": "XRPEUR",
1525
+ // "type": "sell",
1526
+ // "ordertype": "trailing-stop",
1527
+ // "price": "+50.0000%",
1528
+ // "price2": "0",
1529
+ // "leverage": "none",
1530
+ // "order": "sell 10.00000000 XRPEUR @ trailing stop +50.0000%",
1531
+ // "close": ""
1532
+ // },
1533
+ // "vol": "10.00000000",
1534
+ // "vol_exec": "0.00000000",
1535
+ // "cost": "0.00000000",
1536
+ // "fee": "0.00000000",
1537
+ // "price": "0.00000000",
1538
+ // "stopprice": "0.23424000",
1539
+ // "limitprice": "0.46847000",
1540
+ // "misc": "",
1541
+ // "oflags": "fciq",
1542
+ // "trigger": "index"
1543
+ // }
1544
+ // }
1545
+ // }
1546
+ //
1510
1547
  const description = this.safeValue(order, 'descr', {});
1511
1548
  const orderDescription = this.safeString(description, 'order', description);
1512
1549
  let side = undefined;
@@ -1548,6 +1585,10 @@ class kraken extends kraken$1 {
1548
1585
  // kraken truncates the cost in the api response so we will ignore it and calculate it from average & filled
1549
1586
  // const cost = this.safeString (order, 'cost');
1550
1587
  price = this.safeString(description, 'price', price);
1588
+ // when type = trailling stop returns price = '+50.0000%'
1589
+ if ((price !== undefined) && price.endsWith('%')) {
1590
+ price = undefined; // this is not the price we want
1591
+ }
1551
1592
  if ((price === undefined) || Precise["default"].stringEquals(price, '0')) {
1552
1593
  price = this.safeString(description, 'price2');
1553
1594
  }
@@ -42,6 +42,9 @@ class krakenfutures extends krakenfutures$1 {
42
42
  'fetchClosedOrders': undefined,
43
43
  'fetchCrossBorrowRate': false,
44
44
  'fetchCrossBorrowRates': false,
45
+ 'fetchDepositAddress': false,
46
+ 'fetchDepositAddresses': false,
47
+ 'fetchDepositAddressesByNetwork': false,
45
48
  'fetchFundingHistory': undefined,
46
49
  'fetchFundingRate': 'emulated',
47
50
  'fetchFundingRateHistory': true,
@@ -4422,7 +4422,7 @@ class kucoin extends kucoin$1 {
4422
4422
  let endpart = '';
4423
4423
  headers = (headers !== undefined) ? headers : {};
4424
4424
  let url = this.urls['api'][api];
4425
- if (Object.keys(query).length) {
4425
+ if (!this.isEmpty(query)) {
4426
4426
  if ((method === 'GET') || (method === 'DELETE')) {
4427
4427
  endpoint += '?' + this.rawencode(query);
4428
4428
  }