ccxt 4.1.86 → 4.1.88

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 (234) hide show
  1. package/README.md +9 -11
  2. package/dist/ccxt.browser.js +5673 -8615
  3. package/dist/ccxt.browser.min.js +3 -3
  4. package/dist/cjs/ccxt.js +1 -11
  5. package/dist/cjs/src/base/Exchange.js +95 -27
  6. package/dist/cjs/src/base/ws/Client.js +3 -3
  7. package/dist/cjs/src/base/ws/Future.js +9 -2
  8. package/dist/cjs/src/base/ws/WsClient.js +1 -1
  9. package/dist/cjs/src/binance.js +4 -105
  10. package/dist/cjs/src/binanceus.js +0 -2
  11. package/dist/cjs/src/bit2c.js +8 -2
  12. package/dist/cjs/src/bitforex.js +0 -2
  13. package/dist/cjs/src/bitget.js +3455 -2480
  14. package/dist/cjs/src/bitmart.js +35 -9
  15. package/dist/cjs/src/coinbase.js +2 -0
  16. package/dist/cjs/src/coinbasepro.js +0 -43
  17. package/dist/cjs/src/coinlist.js +0 -2
  18. package/dist/cjs/src/coinsph.js +0 -31
  19. package/dist/cjs/src/cryptocom.js +22 -12
  20. package/dist/cjs/src/gate.js +37 -249
  21. package/dist/cjs/src/gemini.js +1 -0
  22. package/dist/cjs/src/kuna.js +0 -2
  23. package/dist/cjs/src/mexc.js +0 -2
  24. package/dist/cjs/src/novadax.js +28 -16
  25. package/dist/cjs/src/okcoin.js +23 -5
  26. package/dist/cjs/src/okx.js +0 -1
  27. package/dist/cjs/src/pro/binance.js +18 -215
  28. package/dist/cjs/src/pro/bitget.js +780 -736
  29. package/dist/cjs/src/pro/bitmart.js +8 -10
  30. package/dist/cjs/src/pro/bitmex.js +9 -34
  31. package/dist/cjs/src/pro/bitpanda.js +4 -4
  32. package/dist/cjs/src/pro/bybit.js +21 -97
  33. package/dist/cjs/src/pro/coinbasepro.js +36 -40
  34. package/dist/cjs/src/pro/coinex.js +2 -1
  35. package/dist/cjs/src/pro/cryptocom.js +10 -26
  36. package/dist/cjs/src/pro/gate.js +20 -17
  37. package/dist/cjs/src/pro/kucoin.js +39 -39
  38. package/dist/cjs/src/pro/kucoinfutures.js +40 -36
  39. package/dist/cjs/src/pro/okx.js +16 -29
  40. package/dist/cjs/src/tokocrypto.js +0 -1
  41. package/dist/cjs/src/upbit.js +36 -26
  42. package/dist/cjs/src/wazirx.js +0 -2
  43. package/dist/cjs/src/whitebit.js +0 -2
  44. package/dist/cjs/src/woo.js +0 -2
  45. package/js/ccxt.d.ts +3 -15
  46. package/js/ccxt.js +2 -10
  47. package/js/src/abstract/bitget.d.ts +1 -1
  48. package/js/src/ace.d.ts +1 -1
  49. package/js/src/alpaca.d.ts +1 -1
  50. package/js/src/ascendex.d.ts +1 -1
  51. package/js/src/base/Exchange.d.ts +5 -6
  52. package/js/src/base/Exchange.js +96 -28
  53. package/js/src/base/ws/Client.d.ts +2 -2
  54. package/js/src/base/ws/Client.js +4 -4
  55. package/js/src/base/ws/Future.d.ts +5 -2
  56. package/js/src/base/ws/Future.js +8 -2
  57. package/js/src/base/ws/WsClient.d.ts +1 -1
  58. package/js/src/base/ws/WsClient.js +2 -2
  59. package/js/src/bigone.d.ts +1 -1
  60. package/js/src/binance.d.ts +1 -10
  61. package/js/src/binance.js +4 -105
  62. package/js/src/binanceus.js +0 -2
  63. package/js/src/bingx.d.ts +1 -1
  64. package/js/src/bit2c.d.ts +1 -1
  65. package/js/src/bit2c.js +8 -2
  66. package/js/src/bitbank.d.ts +1 -1
  67. package/js/src/bitbns.d.ts +1 -1
  68. package/js/src/bitfinex.d.ts +1 -1
  69. package/js/src/bitfinex2.d.ts +1 -1
  70. package/js/src/bitflyer.d.ts +1 -1
  71. package/js/src/bitforex.d.ts +1 -1
  72. package/js/src/bitforex.js +0 -2
  73. package/js/src/bitget.d.ts +13 -11
  74. package/js/src/bitget.js +3455 -2480
  75. package/js/src/bithumb.d.ts +1 -1
  76. package/js/src/bitmart.d.ts +1 -1
  77. package/js/src/bitmart.js +35 -9
  78. package/js/src/bitmex.d.ts +1 -1
  79. package/js/src/bitopro.d.ts +1 -1
  80. package/js/src/bitpanda.d.ts +1 -1
  81. package/js/src/bitrue.d.ts +1 -1
  82. package/js/src/bitso.d.ts +1 -1
  83. package/js/src/bitstamp.d.ts +1 -1
  84. package/js/src/bitvavo.d.ts +1 -1
  85. package/js/src/bl3p.d.ts +1 -1
  86. package/js/src/blockchaincom.d.ts +1 -1
  87. package/js/src/btcalpha.d.ts +1 -1
  88. package/js/src/btcbox.d.ts +1 -1
  89. package/js/src/btcmarkets.d.ts +1 -1
  90. package/js/src/btcturk.d.ts +1 -1
  91. package/js/src/bybit.d.ts +1 -1
  92. package/js/src/cex.d.ts +1 -1
  93. package/js/src/coinbase.d.ts +1 -1
  94. package/js/src/coinbase.js +2 -0
  95. package/js/src/coinbasepro.d.ts +1 -5
  96. package/js/src/coinbasepro.js +1 -44
  97. package/js/src/coincheck.d.ts +1 -1
  98. package/js/src/coinex.d.ts +1 -1
  99. package/js/src/coinlist.d.ts +1 -1
  100. package/js/src/coinlist.js +0 -2
  101. package/js/src/coinmate.d.ts +1 -1
  102. package/js/src/coinone.d.ts +1 -1
  103. package/js/src/coinsph.d.ts +1 -2
  104. package/js/src/coinsph.js +0 -31
  105. package/js/src/coinspot.d.ts +1 -1
  106. package/js/src/cryptocom.d.ts +1 -1
  107. package/js/src/cryptocom.js +22 -12
  108. package/js/src/currencycom.d.ts +1 -1
  109. package/js/src/delta.d.ts +1 -1
  110. package/js/src/deribit.d.ts +1 -1
  111. package/js/src/digifinex.d.ts +1 -1
  112. package/js/src/exmo.d.ts +1 -1
  113. package/js/src/gate.d.ts +1 -28
  114. package/js/src/gate.js +37 -249
  115. package/js/src/gemini.d.ts +1 -1
  116. package/js/src/gemini.js +1 -0
  117. package/js/src/hitbtc.d.ts +1 -1
  118. package/js/src/hollaex.d.ts +1 -1
  119. package/js/src/htx.d.ts +1 -1
  120. package/js/src/huobijp.d.ts +1 -1
  121. package/js/src/idex.d.ts +1 -1
  122. package/js/src/independentreserve.d.ts +1 -1
  123. package/js/src/indodax.d.ts +1 -1
  124. package/js/src/kraken.d.ts +1 -1
  125. package/js/src/krakenfutures.d.ts +1 -1
  126. package/js/src/kucoin.d.ts +1 -1
  127. package/js/src/kucoinfutures.d.ts +1 -1
  128. package/js/src/kuna.d.ts +1 -1
  129. package/js/src/kuna.js +0 -2
  130. package/js/src/latoken.d.ts +1 -1
  131. package/js/src/lbank.d.ts +1 -1
  132. package/js/src/luno.d.ts +1 -1
  133. package/js/src/lykke.d.ts +1 -1
  134. package/js/src/mercado.d.ts +1 -1
  135. package/js/src/mexc.d.ts +1 -1
  136. package/js/src/mexc.js +0 -2
  137. package/js/src/ndax.d.ts +1 -1
  138. package/js/src/novadax.d.ts +1 -1
  139. package/js/src/novadax.js +28 -16
  140. package/js/src/oceanex.d.ts +1 -1
  141. package/js/src/okcoin.d.ts +1 -1
  142. package/js/src/okcoin.js +23 -5
  143. package/js/src/okx.d.ts +1 -1
  144. package/js/src/okx.js +0 -1
  145. package/js/src/p2b.d.ts +1 -1
  146. package/js/src/paymium.d.ts +1 -1
  147. package/js/src/phemex.d.ts +1 -1
  148. package/js/src/poloniex.d.ts +1 -1
  149. package/js/src/poloniexfutures.d.ts +1 -1
  150. package/js/src/pro/alpaca.d.ts +8 -8
  151. package/js/src/pro/ascendex.d.ts +7 -7
  152. package/js/src/pro/binance.d.ts +22 -24
  153. package/js/src/pro/binance.js +19 -216
  154. package/js/src/pro/bingx.d.ts +7 -7
  155. package/js/src/pro/bitfinex.d.ts +6 -6
  156. package/js/src/pro/bitfinex2.d.ts +11 -11
  157. package/js/src/pro/bitget.d.ts +20 -22
  158. package/js/src/pro/bitget.js +780 -736
  159. package/js/src/pro/bitmart.d.ts +13 -13
  160. package/js/src/pro/bitmart.js +8 -10
  161. package/js/src/pro/bitmex.d.ts +10 -10
  162. package/js/src/pro/bitmex.js +9 -34
  163. package/js/src/pro/bitopro.d.ts +5 -5
  164. package/js/src/pro/bitpanda.d.ts +11 -11
  165. package/js/src/pro/bitpanda.js +4 -4
  166. package/js/src/pro/bitrue.d.ts +5 -5
  167. package/js/src/pro/bitstamp.d.ts +6 -6
  168. package/js/src/pro/bitvavo.d.ts +7 -7
  169. package/js/src/pro/blockchaincom.d.ts +10 -10
  170. package/js/src/pro/bybit.d.ts +15 -16
  171. package/js/src/pro/bybit.js +21 -97
  172. package/js/src/pro/cex.d.ts +20 -20
  173. package/js/src/pro/coinbase.d.ts +7 -6
  174. package/js/src/pro/coinbasepro.d.ts +12 -12
  175. package/js/src/pro/coinbasepro.js +36 -40
  176. package/js/src/pro/coinex.d.ts +12 -12
  177. package/js/src/pro/coinex.js +2 -1
  178. package/js/src/pro/cryptocom.d.ts +14 -14
  179. package/js/src/pro/cryptocom.js +10 -26
  180. package/js/src/pro/currencycom.d.ts +6 -6
  181. package/js/src/pro/deribit.d.ts +8 -8
  182. package/js/src/pro/exmo.d.ts +6 -6
  183. package/js/src/pro/gate.d.ts +12 -11
  184. package/js/src/pro/gate.js +20 -17
  185. package/js/src/pro/gemini.d.ts +7 -7
  186. package/js/src/pro/hitbtc.d.ts +13 -13
  187. package/js/src/pro/hollaex.d.ts +6 -6
  188. package/js/src/pro/htx.d.ts +12 -12
  189. package/js/src/pro/huobijp.d.ts +5 -5
  190. package/js/src/pro/idex.d.ts +7 -7
  191. package/js/src/pro/independentreserve.d.ts +4 -4
  192. package/js/src/pro/kraken.d.ts +11 -11
  193. package/js/src/pro/krakenfutures.d.ts +15 -15
  194. package/js/src/pro/kucoin.d.ts +14 -13
  195. package/js/src/pro/kucoin.js +39 -39
  196. package/js/src/pro/kucoinfutures.d.ts +12 -11
  197. package/js/src/pro/kucoinfutures.js +40 -36
  198. package/js/src/pro/luno.d.ts +3 -3
  199. package/js/src/pro/mexc.d.ts +11 -11
  200. package/js/src/pro/ndax.d.ts +5 -5
  201. package/js/src/pro/okcoin.d.ts +7 -7
  202. package/js/src/pro/okx.d.ts +17 -17
  203. package/js/src/pro/okx.js +16 -29
  204. package/js/src/pro/phemex.d.ts +9 -9
  205. package/js/src/pro/poloniex.d.ts +13 -13
  206. package/js/src/pro/poloniexfutures.d.ts +10 -10
  207. package/js/src/pro/probit.d.ts +7 -7
  208. package/js/src/pro/upbit.d.ts +4 -4
  209. package/js/src/pro/wazirx.d.ts +12 -12
  210. package/js/src/pro/whitebit.d.ts +10 -10
  211. package/js/src/pro/woo.d.ts +11 -11
  212. package/js/src/probit.d.ts +1 -1
  213. package/js/src/timex.d.ts +1 -1
  214. package/js/src/tokocrypto.d.ts +1 -1
  215. package/js/src/tokocrypto.js +0 -1
  216. package/js/src/upbit.d.ts +1 -1
  217. package/js/src/upbit.js +36 -26
  218. package/js/src/wavesexchange.d.ts +1 -1
  219. package/js/src/wazirx.d.ts +1 -1
  220. package/js/src/wazirx.js +0 -2
  221. package/js/src/whitebit.d.ts +1 -1
  222. package/js/src/whitebit.js +0 -2
  223. package/js/src/woo.d.ts +1 -1
  224. package/js/src/woo.js +0 -2
  225. package/js/src/yobit.d.ts +1 -1
  226. package/js/src/zaif.d.ts +1 -1
  227. package/js/src/zonda.d.ts +1 -1
  228. package/jsdoc2md.js +0 -2
  229. package/package.json +1 -1
  230. package/skip-tests.json +3 -14
  231. package/js/src/abstract/bittrex.d.ts +0 -79
  232. package/js/src/abstract/bittrex.js +0 -11
  233. package/js/src/abstract/coinbaseprime.d.ts +0 -69
  234. package/js/src/abstract/coinbaseprime.js +0 -11
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/deribit.js';
2
- import { Balances, Currency, FundingRateHistory, Greeks, Int, Liquidation, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
2
+ import type { Balances, Currency, FundingRateHistory, Greeks, Int, Liquidation, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class deribit
5
5
  * @augments Exchange
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/digifinex.js';
2
- import { FundingRateHistory, Int, OHLCV, Order, OrderSide, OrderType, OrderRequest, Trade, Balances, Str, Transaction, Ticker, OrderBook, Tickers, Strings, Market, Currency } from './base/types.js';
2
+ import type { FundingRateHistory, Int, OHLCV, Order, OrderSide, OrderType, OrderRequest, Trade, Balances, Str, Transaction, Ticker, OrderBook, Tickers, Strings, Market, Currency } from './base/types.js';
3
3
  /**
4
4
  * @class digifinex
5
5
  * @augments Exchange
package/js/src/exmo.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/exmo.js';
2
- import { Dictionary, Int, Order, OrderSide, OrderType, Trade, OrderBook, OHLCV, Balances, Str, Transaction, Ticker, Tickers, Strings, Market, Currency } from './base/types.js';
2
+ import type { Dictionary, Int, Order, OrderSide, OrderType, Trade, OrderBook, OHLCV, Balances, Str, Transaction, Ticker, Tickers, Strings, Market, Currency } from './base/types.js';
3
3
  /**
4
4
  * @class exmo
5
5
  * @augments Exchange
package/js/src/gate.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/gate.js';
2
- import { Int, OrderSide, OrderType, OHLCV, Trade, FundingRateHistory, OpenInterest, Order, Balances, OrderRequest, FundingHistory, Str, Transaction, Ticker, OrderBook, Tickers, Greeks, Strings, Market, Currency, MarketInterface } from './base/types.js';
2
+ import type { Int, OrderSide, OrderType, OHLCV, Trade, FundingRateHistory, OpenInterest, Order, Balances, OrderRequest, FundingHistory, Str, Transaction, Ticker, OrderBook, Tickers, Greeks, Strings, Market, Currency, MarketInterface } from './base/types.js';
3
3
  /**
4
4
  * @class gate
5
5
  * @augments Exchange
@@ -220,33 +220,6 @@ export default class gate extends Exchange {
220
220
  fetchPositions(symbols?: Strings, params?: {}): Promise<import("./base/types.js").Position[]>;
221
221
  fetchLeverageTiers(symbols?: Strings, params?: {}): Promise<{}>;
222
222
  parseMarketLeverageTiers(info: any, market?: Market): any[];
223
- repayMargin(code: string, amount: any, symbol?: Str, params?: {}): Promise<{
224
- id: number;
225
- currency: string;
226
- amount: number;
227
- symbol: string;
228
- timestamp: number;
229
- datetime: string;
230
- info: any;
231
- }>;
232
- borrowMargin(code: string, amount: any, symbol?: Str, params?: {}): Promise<{
233
- id: number;
234
- currency: string;
235
- amount: number;
236
- symbol: string;
237
- timestamp: number;
238
- datetime: string;
239
- info: any;
240
- }>;
241
- parseMarginLoan(info: any, currency?: Currency): {
242
- id: number;
243
- currency: string;
244
- amount: number;
245
- symbol: string;
246
- timestamp: number;
247
- datetime: string;
248
- info: any;
249
- };
250
223
  sign(path: any, api?: any[], method?: string, params?: {}, headers?: any, body?: any): {
251
224
  url: any;
252
225
  method: string;
package/js/src/gate.js CHANGED
@@ -590,12 +590,8 @@ export default class gate extends Exchange {
590
590
  'expiration': 86400, // for conditional orders
591
591
  },
592
592
  'networks': {
593
- 'ALGORAND': 'ALGO',
594
- 'ARBITRUM_NOVA': 'ARBNOVA',
595
- 'ARBITRUM_ONE': 'ARBEVM',
596
- 'AVALANCHE_C': 'AVAX_C',
593
+ 'AVAXC': 'AVAX_C',
597
594
  'BEP20': 'BSC',
598
- 'CHILIZ': 'CHZ',
599
595
  'EOS': 'EOS',
600
596
  'ERC20': 'ETH',
601
597
  'GATECHAIN': 'GTEVM',
@@ -605,30 +601,8 @@ export default class gate extends Exchange {
605
601
  'OKC': 'OKT',
606
602
  'OPTIMISM': 'OPETH',
607
603
  'POLKADOT': 'DOTSM',
608
- 'POLYGON': 'MATIC',
609
- 'SOLANA': 'SOL',
610
604
  'TRC20': 'TRX',
611
605
  },
612
- 'networksById': {
613
- 'ALGO': 'ALGORAND',
614
- 'ARBEVM': 'ARBITRUM_ONE',
615
- 'ARBNOVA': 'ARBITRUM_NOVA',
616
- 'AVAX_C': 'AVALANCHE_C',
617
- 'BSC': 'BEP20',
618
- 'CHZ': 'CHILIZ',
619
- 'DOTSM': 'POLKADOT',
620
- 'EOS': 'EOS',
621
- 'ETH': 'ERC20',
622
- 'GTEVM': 'GATECHAIN',
623
- 'HT': 'HRC20',
624
- 'KSMSM': 'KUSAMA',
625
- 'MATIC': 'POLYGON',
626
- 'NEAR': 'NEAR',
627
- 'OKT': 'OKC',
628
- 'OPETH': 'OPTIMISM',
629
- 'SOL': 'SOLANA',
630
- 'TRX': 'TRC20',
631
- },
632
606
  'timeInForce': {
633
607
  'GTC': 'gtc',
634
608
  'IOC': 'ioc',
@@ -1927,10 +1901,13 @@ export default class gate extends Exchange {
1927
1901
  * @see https://www.gate.io/docs/developers/apiv4/en/#generate-currency-deposit-address
1928
1902
  * @param {string} code unified currency code
1929
1903
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1904
+ * @param {string} [params.network] unified network code (not used directly by gate.io but used by ccxt to filter the response)
1930
1905
  * @returns {object} an [address structure]{@link https://docs.ccxt.com/#/?id=address-structure}
1931
1906
  */
1932
1907
  await this.loadMarkets();
1933
1908
  const currency = this.currency(code);
1909
+ const rawNetwork = this.safeStringUpper(params, 'network');
1910
+ params = this.omit(params, 'network');
1934
1911
  const request = {
1935
1912
  'currency': currency['id'],
1936
1913
  };
@@ -1952,20 +1929,41 @@ export default class gate extends Exchange {
1952
1929
  //
1953
1930
  const currencyId = this.safeString(response, 'currency');
1954
1931
  code = this.safeCurrencyCode(currencyId);
1955
- const addressField = this.safeString(response, 'address');
1932
+ const networkId = this.networkCodeToId(rawNetwork, code);
1933
+ let network = undefined;
1956
1934
  let tag = undefined;
1957
1935
  let address = undefined;
1958
- if (addressField !== undefined) {
1959
- if (addressField.indexOf('New address is being generated for you, please wait') >= 0) {
1960
- throw new BadResponse(this.id + ' ' + 'New address is being generated for you, please wait a few seconds and try again to get the address.');
1961
- }
1962
- if (addressField.indexOf(' ') >= 0) {
1963
- const splitted = addressField.split(' ');
1964
- address = splitted[0];
1965
- tag = splitted[1];
1936
+ if (networkId !== undefined) {
1937
+ const addresses = this.safeValue(response, 'multichain_addresses');
1938
+ for (let i = 0; i < addresses.length; i++) {
1939
+ const entry = addresses[i];
1940
+ const entryNetwork = this.safeString(entry, 'chain');
1941
+ if (networkId === entryNetwork) {
1942
+ const obtainFailed = this.safeInteger(entry, 'obtain_failed');
1943
+ if (obtainFailed) {
1944
+ break;
1945
+ }
1946
+ address = this.safeString(entry, 'address');
1947
+ tag = this.safeString(entry, 'payment_id');
1948
+ network = this.networkIdToCode(networkId, code);
1949
+ break;
1950
+ }
1966
1951
  }
1967
- else {
1968
- address = addressField;
1952
+ }
1953
+ else {
1954
+ const addressField = this.safeString(response, 'address');
1955
+ if (addressField !== undefined) {
1956
+ if (addressField.indexOf('New address is being generated for you, please wait') >= 0) {
1957
+ throw new BadResponse(this.id + ' ' + 'New address is being generated for you, please wait a few seconds and try again to get the address.');
1958
+ }
1959
+ if (addressField.indexOf(' ') >= 0) {
1960
+ const splitted = addressField.split(' ');
1961
+ address = splitted[0];
1962
+ tag = splitted[1];
1963
+ }
1964
+ else {
1965
+ address = addressField;
1966
+ }
1969
1967
  }
1970
1968
  }
1971
1969
  this.checkAddress(address);
@@ -1975,7 +1973,7 @@ export default class gate extends Exchange {
1975
1973
  'currency': code,
1976
1974
  'address': address,
1977
1975
  'tag': tag,
1978
- 'network': undefined,
1976
+ 'network': network,
1979
1977
  };
1980
1978
  }
1981
1979
  async fetchTradingFee(symbol, params = {}) {
@@ -5742,216 +5740,6 @@ export default class gate extends Exchange {
5742
5740
  }
5743
5741
  return tiers;
5744
5742
  }
5745
- async repayMargin(code, amount, symbol = undefined, params = {}) {
5746
- /**
5747
- * @method
5748
- * @name gate#repayMargin
5749
- * @description repay borrowed margin and interest
5750
- * @see https://www.gate.io/docs/apiv4/en/#repay-cross-margin-loan
5751
- * @see https://www.gate.io/docs/apiv4/en/#repay-a-loan
5752
- * @param {string} code unified currency code of the currency to repay
5753
- * @param {float} amount the amount to repay
5754
- * @param {string} symbol unified market symbol, required for isolated margin
5755
- * @param {object} [params] extra parameters specific to the exchange API endpoint
5756
- * @param {string} [params.mode] 'all' or 'partial' payment mode, extra parameter required for isolated margin
5757
- * @param {string} [params.id] '34267567' loan id, extra parameter required for isolated margin
5758
- * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
5759
- */
5760
- let marginMode = undefined;
5761
- [marginMode, params] = this.handleOptionAndParams(params, 'repayMargin', 'marginMode');
5762
- this.checkRequiredArgument('repayMargin', marginMode, 'marginMode', ['cross', 'isolated']);
5763
- this.checkRequiredMarginArgument('repayMargin', symbol, marginMode);
5764
- await this.loadMarkets();
5765
- const currency = this.currency(code);
5766
- const request = {
5767
- 'currency': currency['id'].toUpperCase(),
5768
- 'amount': this.currencyToPrecision(code, amount),
5769
- };
5770
- let response = undefined;
5771
- if ((marginMode === 'cross') && (symbol === undefined)) {
5772
- response = await this.privateMarginPostCrossRepayments(this.extend(request, params));
5773
- }
5774
- else if ((marginMode === 'isolated') || (symbol !== undefined)) {
5775
- if (symbol === undefined) {
5776
- throw new BadRequest(this.id + ' repayMargin() requires a symbol argument for isolated margin');
5777
- }
5778
- const market = this.market(symbol);
5779
- request['currency_pair'] = market['id'];
5780
- request['type'] = 'repay';
5781
- response = await this.privateMarginPostUniLoans(this.extend(request, params));
5782
- }
5783
- //
5784
- // Cross
5785
- //
5786
- // [
5787
- // {
5788
- // "id": "17",
5789
- // "create_time": 1620381696159,
5790
- // "update_time": 1620381696159,
5791
- // "currency": "EOS",
5792
- // "amount": "110.553635",
5793
- // "text": "web",
5794
- // "status": 2,
5795
- // "repaid": "110.506649705159",
5796
- // "repaid_interest": "0.046985294841",
5797
- // "unpaid_interest": "0.0000074393366667"
5798
- // }
5799
- // ]
5800
- //
5801
- // Isolated
5802
- //
5803
- // {
5804
- // "id": "34267567",
5805
- // "create_time": "1656394778",
5806
- // "expire_time": "1657258778",
5807
- // "status": "finished",
5808
- // "side": "borrow",
5809
- // "currency": "USDT",
5810
- // "rate": "0.0002",
5811
- // "amount": "100",
5812
- // "days": 10,
5813
- // "auto_renew": false,
5814
- // "currency_pair": "LTC_USDT",
5815
- // "left": "0",
5816
- // "repaid": "100",
5817
- // "paid_interest": "0.003333333333",
5818
- // "unpaid_interest": "0"
5819
- // }
5820
- //
5821
- if (marginMode === 'cross') {
5822
- response = response[0];
5823
- }
5824
- return this.parseMarginLoan(response, currency);
5825
- }
5826
- async borrowMargin(code, amount, symbol = undefined, params = {}) {
5827
- /**
5828
- * @method
5829
- * @name gate#borrowMargin
5830
- * @description create a loan to borrow margin
5831
- * @see https://www.gate.io/docs/apiv4/en/#create-a-cross-margin-borrow-loan
5832
- * @see https://www.gate.io/docs/developers/apiv4/en/#marginuni
5833
- * @param {string} code unified currency code of the currency to borrow
5834
- * @param {float} amount the amount to borrow
5835
- * @param {string} symbol unified market symbol, required for isolated margin
5836
- * @param {object} [params] extra parameters specific to the exchange API endpoint
5837
- * @param {string} [params.rate] '0.0002' or '0.002' extra parameter required for isolated margin
5838
- * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
5839
- */
5840
- let marginMode = undefined;
5841
- [marginMode, params] = this.handleOptionAndParams(params, 'borrowMargin', 'marginMode');
5842
- this.checkRequiredArgument('borrowMargin', marginMode, 'marginMode', ['cross', 'isolated']);
5843
- this.checkRequiredMarginArgument('borrowMargin', symbol, marginMode);
5844
- await this.loadMarkets();
5845
- const currency = this.currency(code);
5846
- const request = {
5847
- 'currency': currency['id'].toUpperCase(),
5848
- 'amount': this.currencyToPrecision(code, amount),
5849
- };
5850
- let response = undefined;
5851
- if ((marginMode === 'cross') && (symbol === undefined)) {
5852
- response = await this.privateMarginPostCrossLoans(this.extend(request, params));
5853
- }
5854
- else if ((marginMode === 'isolated') || (symbol !== undefined)) {
5855
- if (symbol === undefined) {
5856
- throw new BadRequest(this.id + ' borrowMargin() requires a symbol argument for isolated margin');
5857
- }
5858
- const market = this.market(symbol);
5859
- request['currency_pair'] = market['id'];
5860
- request['type'] = 'borrow';
5861
- response = await this.privateMarginPostUniLoans(this.extend(request, params));
5862
- }
5863
- //
5864
- // Cross
5865
- //
5866
- // {
5867
- // "id": "17",
5868
- // "create_time": 1620381696159,
5869
- // "update_time": 1620381696159,
5870
- // "currency": "EOS",
5871
- // "amount": "110.553635",
5872
- // "text": "web",
5873
- // "status": 2,
5874
- // "repaid": "110.506649705159",
5875
- // "repaid_interest": "0.046985294841",
5876
- // "unpaid_interest": "0.0000074393366667"
5877
- // }
5878
- //
5879
- // Isolated
5880
- //
5881
- // {
5882
- // "id": "34267567",
5883
- // "create_time": "1656394778",
5884
- // "expire_time": "1657258778",
5885
- // "status": "loaned",
5886
- // "side": "borrow",
5887
- // "currency": "USDT",
5888
- // "rate": "0.0002",
5889
- // "amount": "100",
5890
- // "days": 10,
5891
- // "auto_renew": false,
5892
- // "currency_pair": "LTC_USDT",
5893
- // "left": "0",
5894
- // "repaid": "0",
5895
- // "paid_interest": "0",
5896
- // "unpaid_interest": "0.003333333333"
5897
- // }
5898
- //
5899
- return this.parseMarginLoan(response, currency);
5900
- }
5901
- parseMarginLoan(info, currency = undefined) {
5902
- //
5903
- // Cross
5904
- //
5905
- // {
5906
- // "id": "17",
5907
- // "create_time": 1620381696159,
5908
- // "update_time": 1620381696159,
5909
- // "currency": "EOS",
5910
- // "amount": "110.553635",
5911
- // "text": "web",
5912
- // "status": 2,
5913
- // "repaid": "110.506649705159",
5914
- // "repaid_interest": "0.046985294841",
5915
- // "unpaid_interest": "0.0000074393366667"
5916
- // }
5917
- //
5918
- // Isolated
5919
- //
5920
- // {
5921
- // "id": "34267567",
5922
- // "create_time": "1656394778",
5923
- // "expire_time": "1657258778",
5924
- // "status": "loaned",
5925
- // "side": "borrow",
5926
- // "currency": "USDT",
5927
- // "rate": "0.0002",
5928
- // "amount": "100",
5929
- // "days": 10,
5930
- // "auto_renew": false,
5931
- // "currency_pair": "LTC_USDT",
5932
- // "left": "0",
5933
- // "repaid": "0",
5934
- // "paid_interest": "0",
5935
- // "unpaid_interest": "0.003333333333"
5936
- // }
5937
- //
5938
- const marginMode = this.safeString2(this.options, 'defaultMarginMode', 'marginMode', 'cross');
5939
- let timestamp = this.safeInteger(info, 'create_time');
5940
- if (marginMode === 'isolated') {
5941
- timestamp = this.safeTimestamp(info, 'create_time');
5942
- }
5943
- const currencyId = this.safeString(info, 'currency');
5944
- const marketId = this.safeString(info, 'currency_pair');
5945
- return {
5946
- 'id': this.safeInteger(info, 'id'),
5947
- 'currency': this.safeCurrencyCode(currencyId, currency),
5948
- 'amount': this.safeNumber(info, 'amount'),
5949
- 'symbol': this.safeSymbol(marketId, undefined, '_', 'margin'),
5950
- 'timestamp': timestamp,
5951
- 'datetime': this.iso8601(timestamp),
5952
- 'info': info,
5953
- };
5954
- }
5955
5743
  sign(path, api = [], method = 'GET', params = {}, headers = undefined, body = undefined) {
5956
5744
  const authentication = api[0]; // public, private
5957
5745
  const type = api[1]; // spot, margin, future, delivery
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/gemini.js';
2
- import { Balances, Currency, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
2
+ import type { Balances, Currency, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class gemini
5
5
  * @augments Exchange
package/js/src/gemini.js CHANGED
@@ -304,6 +304,7 @@ export default class gemini extends Exchange {
304
304
  /**
305
305
  * @method
306
306
  * @name gemini#fetchCurrenciesFromWeb
307
+ * @ignore
307
308
  * @description fetches all available currencies on an exchange
308
309
  * @param {object} [params] extra parameters specific to the endpoint
309
310
  * @returns {object} an associative dictionary of currencies
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/hitbtc.js';
2
- import { Int, OrderSide, OrderType, FundingRateHistory, OHLCV, Ticker, Order, OrderBook, Dictionary, Position, Str, Trade, Balances, Transaction, MarginMode, Tickers, Strings, Market, Currency } from './base/types.js';
2
+ import type { Int, OrderSide, OrderType, FundingRateHistory, OHLCV, Ticker, Order, OrderBook, Dictionary, Position, Str, Trade, Balances, Transaction, MarginMode, Tickers, Strings, Market, Currency } from './base/types.js';
3
3
  /**
4
4
  * @class hitbtc
5
5
  * @augments Exchange
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/hollaex.js';
2
- import { Balances, Currency, Dictionary, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
2
+ import type { Balances, Currency, Dictionary, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class hollaex
5
5
  * @augments Exchange
package/js/src/htx.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/htx.js';
2
- import { Int, OrderSide, OrderType, Order, OHLCV, Trade, FundingRateHistory, Balances, Str, Transaction, Ticker, OrderBook, Tickers, OrderRequest, Strings, Market, Currency } from './base/types.js';
2
+ import type { Int, OrderSide, OrderType, Order, OHLCV, Trade, FundingRateHistory, Balances, Str, Transaction, Ticker, OrderBook, Tickers, OrderRequest, Strings, Market, Currency } from './base/types.js';
3
3
  /**
4
4
  * @class huobi
5
5
  * @augments Exchange
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/huobijp.js';
2
- import { Balances, Currency, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
2
+ import type { Balances, Currency, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class huobijp
5
5
  * @augments Exchange
package/js/src/idex.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/idex.js';
2
- import { Balances, Currency, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
2
+ import type { Balances, Currency, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class idex
5
5
  * @augments Exchange
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/independentreserve.js';
2
- import { Balances, Int, Market, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade } from './base/types.js';
2
+ import type { Balances, Int, Market, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade } from './base/types.js';
3
3
  /**
4
4
  * @class independentreserve
5
5
  * @augments Exchange
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/indodax.js';
2
- import { Balances, Currency, Int, Market, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
2
+ import type { Balances, Currency, Int, Market, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class indodax
5
5
  * @augments Exchange
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/kraken.js';
2
- import { Int, OrderSide, OrderType, OHLCV, Trade, Order, Balances, Str, Transaction, Ticker, OrderBook, Tickers, Strings, Currency, Market } from './base/types.js';
2
+ import type { Int, OrderSide, OrderType, OHLCV, Trade, Order, Balances, Str, Transaction, Ticker, OrderBook, Tickers, Strings, Currency, Market } from './base/types.js';
3
3
  /**
4
4
  * @class kraken
5
5
  * @augments Exchange
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/krakenfutures.js';
2
- import { Int, OrderSide, OrderType, OHLCV, Trade, FundingRateHistory, OrderRequest, Order, Balances, Str, Ticker, OrderBook, Tickers, Strings, Market, Currency } from './base/types.js';
2
+ import type { Int, OrderSide, OrderType, OHLCV, Trade, FundingRateHistory, OrderRequest, Order, Balances, Str, Ticker, OrderBook, Tickers, Strings, Market, Currency } from './base/types.js';
3
3
  /**
4
4
  * @class krakenfutures
5
5
  * @augments Exchange
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/kucoin.js';
2
- import { Int, OrderSide, OrderType, Order, OHLCV, Trade, Balances, OrderRequest, Str, Transaction, Ticker, OrderBook, Tickers, Strings, Currency, Market } from './base/types.js';
2
+ import type { Int, OrderSide, OrderType, Order, OHLCV, Trade, Balances, OrderRequest, Str, Transaction, Ticker, OrderBook, Tickers, Strings, Currency, Market } from './base/types.js';
3
3
  /**
4
4
  * @class kucoin
5
5
  * @augments Exchange
@@ -1,5 +1,5 @@
1
1
  import kucoin from './abstract/kucoinfutures.js';
2
- import { Int, OrderSide, OrderType, OHLCV, Order, Trade, FundingRateHistory, FundingHistory, Balances, Str, Ticker, OrderBook, Transaction, Strings, Market, Currency } from './base/types.js';
2
+ import type { Int, OrderSide, OrderType, OHLCV, Order, Trade, FundingRateHistory, FundingHistory, Balances, Str, Ticker, OrderBook, Transaction, Strings, Market, Currency } from './base/types.js';
3
3
  export default class kucoinfutures extends kucoin {
4
4
  describe(): any;
5
5
  fetchStatus(params?: {}): Promise<{
package/js/src/kuna.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/kuna.js';
2
- import { Balances, Currency, Int, Market, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
2
+ import type { Balances, Currency, Int, Market, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class kuna
5
5
  * @augments Exchange
package/js/src/kuna.js CHANGED
@@ -33,7 +33,6 @@ export default class kuna extends Exchange {
33
33
  'future': false,
34
34
  'option': false,
35
35
  'addMargin': false,
36
- 'borrowMargin': false,
37
36
  'cancelOrder': true,
38
37
  'cancelOrders': true,
39
38
  'closeAllPositions': false,
@@ -98,7 +97,6 @@ export default class kuna extends Exchange {
98
97
  'fetchWithdrawal': true,
99
98
  'fetchWithdrawals': true,
100
99
  'reduceMargin': false,
101
- 'repayMargin': false,
102
100
  'setLeverage': false,
103
101
  'setMargin': false,
104
102
  'setMarginMode': false,
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/latoken.js';
2
- import { Balances, Currency, Int, Market, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
2
+ import type { Balances, Currency, Int, Market, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class latoken
5
5
  * @augments Exchange
package/js/src/lbank.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/lbank.js';
2
- import { Balances, Currency, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
2
+ import type { Balances, Currency, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class lbank2
5
5
  * @augments Exchange
package/js/src/luno.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/luno.js';
2
- import { Balances, Currency, Int, Market, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade } from './base/types.js';
2
+ import type { Balances, Currency, Int, Market, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade } from './base/types.js';
3
3
  /**
4
4
  * @class luno
5
5
  * @augments Exchange
package/js/src/lykke.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/lykke.js';
2
- import { Balances, Currency, Int, Market, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
2
+ import type { Balances, Currency, Int, Market, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class lykke
5
5
  * @augments Exchange
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/mercado.js';
2
- import { Balances, Currency, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, Transaction } from './base/types.js';
2
+ import type { Balances, Currency, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class mercado
5
5
  * @augments Exchange
package/js/src/mexc.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/mexc.js';
2
- import { IndexType, Int, OrderSide, Balances, OrderType, OHLCV, FundingRateHistory, Position, OrderBook, OrderRequest, FundingHistory, Order, Str, Trade, Transaction, Ticker, Tickers, Strings, Market, Currency } from './base/types.js';
2
+ import type { IndexType, Int, OrderSide, Balances, OrderType, OHLCV, FundingRateHistory, Position, OrderBook, OrderRequest, FundingHistory, Order, Str, Trade, Transaction, Ticker, Tickers, Strings, Market, Currency } from './base/types.js';
3
3
  /**
4
4
  * @class mexc
5
5
  * @augments Exchange
package/js/src/mexc.js CHANGED
@@ -33,7 +33,6 @@ export default class mexc extends Exchange {
33
33
  'future': false,
34
34
  'option': false,
35
35
  'addMargin': true,
36
- 'borrowMargin': false,
37
36
  'cancelAllOrders': true,
38
37
  'cancelOrder': true,
39
38
  'cancelOrders': undefined,
@@ -110,7 +109,6 @@ export default class mexc extends Exchange {
110
109
  'fetchWithdrawal': undefined,
111
110
  'fetchWithdrawals': true,
112
111
  'reduceMargin': true,
113
- 'repayMargin': false,
114
112
  'setLeverage': true,
115
113
  'setMarginMode': undefined,
116
114
  'setPositionMode': true,
package/js/src/ndax.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/ndax.js';
2
- import { Balances, Currency, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, Transaction } from './base/types.js';
2
+ import type { Balances, Currency, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class ndax
5
5
  * @augments Exchange
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/novadax.js';
2
- import { Balances, Currency, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
2
+ import type { Balances, Currency, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class novadax
5
5
  * @augments Exchange