ccxt 4.1.51 → 4.1.52

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 (182) hide show
  1. package/README.md +110 -113
  2. package/dist/ccxt.browser.js +1361 -2933
  3. package/dist/ccxt.browser.min.js +7 -7
  4. package/dist/cjs/ccxt.js +1 -7
  5. package/dist/cjs/src/alpaca.js +62 -64
  6. package/dist/cjs/src/ascendex.js +3 -1
  7. package/dist/cjs/src/base/Exchange.js +10 -0
  8. package/dist/cjs/src/bigone.js +60 -77
  9. package/dist/cjs/src/binance.js +1 -0
  10. package/dist/cjs/src/bingx.js +4 -11
  11. package/dist/cjs/src/bitbank.js +58 -59
  12. package/dist/cjs/src/bitbns.js +1 -0
  13. package/dist/cjs/src/bitfinex.js +1 -0
  14. package/dist/cjs/src/bitfinex2.js +1 -0
  15. package/dist/cjs/src/bitflyer.js +1 -0
  16. package/dist/cjs/src/bitget.js +3 -8
  17. package/dist/cjs/src/bithumb.js +1 -0
  18. package/dist/cjs/src/bitmart.js +10 -1
  19. package/dist/cjs/src/bitmex.js +114 -119
  20. package/dist/cjs/src/bitopro.js +63 -65
  21. package/dist/cjs/src/bitpanda.js +60 -60
  22. package/dist/cjs/src/bitrue.js +67 -71
  23. package/dist/cjs/src/bitso.js +1 -0
  24. package/dist/cjs/src/bitstamp.js +1 -0
  25. package/dist/cjs/src/bittrex.js +57 -57
  26. package/dist/cjs/src/bitvavo.js +10 -2
  27. package/dist/cjs/src/blockchaincom.js +2 -2
  28. package/dist/cjs/src/btcalpha.js +59 -60
  29. package/dist/cjs/src/btcmarkets.js +68 -69
  30. package/dist/cjs/src/btcturk.js +72 -74
  31. package/dist/cjs/src/bybit.js +3 -1
  32. package/dist/cjs/src/coinbase.js +7 -2
  33. package/dist/cjs/src/coinbasepro.js +1 -0
  34. package/dist/cjs/src/coincheck.js +1 -0
  35. package/dist/cjs/src/coinex.js +4 -0
  36. package/dist/cjs/src/coinlist.js +60 -60
  37. package/dist/cjs/src/coinmate.js +1 -0
  38. package/dist/cjs/src/coinsph.js +2 -4
  39. package/dist/cjs/src/cryptocom.js +1 -0
  40. package/dist/cjs/src/currencycom.js +2 -2
  41. package/dist/cjs/src/deribit.js +2 -0
  42. package/dist/cjs/src/digifinex.js +5 -2
  43. package/dist/cjs/src/exmo.js +1 -0
  44. package/dist/cjs/src/gate.js +2 -0
  45. package/dist/cjs/src/gemini.js +2 -0
  46. package/dist/cjs/src/hitbtc.js +4 -0
  47. package/dist/cjs/src/hollaex.js +2 -0
  48. package/dist/cjs/src/htx.js +4 -0
  49. package/dist/cjs/src/huobijp.js +2 -0
  50. package/dist/cjs/src/idex.js +2 -0
  51. package/dist/cjs/src/indodax.js +1 -0
  52. package/dist/cjs/src/kraken.js +3 -3
  53. package/dist/cjs/src/kucoin.js +6 -5
  54. package/dist/cjs/src/kuna.js +3 -1
  55. package/dist/cjs/src/latoken.js +1 -0
  56. package/dist/cjs/src/lbank.js +1 -0
  57. package/dist/cjs/src/lykke.js +2 -0
  58. package/dist/cjs/src/mercado.js +1 -0
  59. package/dist/cjs/src/mexc.js +2 -0
  60. package/dist/cjs/src/ndax.js +2 -0
  61. package/dist/cjs/src/novadax.js +1 -0
  62. package/dist/cjs/src/okcoin.js +2 -0
  63. package/dist/cjs/src/okx.js +2 -0
  64. package/dist/cjs/src/phemex.js +2 -0
  65. package/dist/cjs/src/poloniex.js +1 -0
  66. package/dist/cjs/src/pro/binance.js +5 -3
  67. package/dist/cjs/src/pro/coinbase.js +12 -3
  68. package/dist/cjs/src/pro/cryptocom.js +17 -17
  69. package/dist/cjs/src/pro/krakenfutures.js +15 -15
  70. package/dist/cjs/src/probit.js +4 -2
  71. package/dist/cjs/src/tidex.js +1 -0
  72. package/dist/cjs/src/timex.js +2 -0
  73. package/dist/cjs/src/upbit.js +2 -0
  74. package/dist/cjs/src/wavesexchange.js +2 -1
  75. package/dist/cjs/src/whitebit.js +1 -0
  76. package/dist/cjs/src/woo.js +1 -0
  77. package/dist/cjs/src/zaif.js +1 -0
  78. package/dist/cjs/src/zonda.js +1 -0
  79. package/js/ccxt.d.ts +2 -8
  80. package/js/ccxt.js +2 -6
  81. package/js/src/alpaca.d.ts +3 -2
  82. package/js/src/alpaca.js +62 -64
  83. package/js/src/ascendex.js +3 -1
  84. package/js/src/base/Exchange.d.ts +2 -0
  85. package/js/src/base/Exchange.js +10 -0
  86. package/js/src/base/types.d.ts +6 -3
  87. package/js/src/bigone.d.ts +3 -3
  88. package/js/src/bigone.js +60 -77
  89. package/js/src/binance.js +1 -0
  90. package/js/src/bingx.d.ts +2 -2
  91. package/js/src/bingx.js +4 -11
  92. package/js/src/bitbank.d.ts +3 -2
  93. package/js/src/bitbank.js +58 -59
  94. package/js/src/bitbns.js +1 -0
  95. package/js/src/bitfinex.js +1 -0
  96. package/js/src/bitfinex2.js +1 -0
  97. package/js/src/bitflyer.js +1 -0
  98. package/js/src/bitget.d.ts +1 -2
  99. package/js/src/bitget.js +3 -8
  100. package/js/src/bithumb.js +1 -0
  101. package/js/src/bitmart.js +10 -1
  102. package/js/src/bitmex.d.ts +3 -2
  103. package/js/src/bitmex.js +114 -119
  104. package/js/src/bitopro.d.ts +3 -2
  105. package/js/src/bitopro.js +63 -65
  106. package/js/src/bitpanda.d.ts +3 -2
  107. package/js/src/bitpanda.js +60 -60
  108. package/js/src/bitrue.d.ts +3 -2
  109. package/js/src/bitrue.js +67 -71
  110. package/js/src/bitso.js +1 -0
  111. package/js/src/bitstamp.js +1 -0
  112. package/js/src/bittrex.d.ts +3 -2
  113. package/js/src/bittrex.js +57 -57
  114. package/js/src/bitvavo.js +10 -2
  115. package/js/src/blockchaincom.js +2 -2
  116. package/js/src/btcalpha.d.ts +3 -2
  117. package/js/src/btcalpha.js +59 -60
  118. package/js/src/btcmarkets.d.ts +3 -2
  119. package/js/src/btcmarkets.js +68 -69
  120. package/js/src/btcturk.d.ts +3 -2
  121. package/js/src/btcturk.js +72 -74
  122. package/js/src/bybit.js +3 -1
  123. package/js/src/coinbase.js +7 -2
  124. package/js/src/coinbasepro.js +1 -0
  125. package/js/src/coincheck.js +1 -0
  126. package/js/src/coinex.js +4 -0
  127. package/js/src/coinlist.d.ts +3 -2
  128. package/js/src/coinlist.js +60 -60
  129. package/js/src/coinmate.js +1 -0
  130. package/js/src/coinsph.js +2 -4
  131. package/js/src/cryptocom.js +1 -0
  132. package/js/src/currencycom.js +2 -2
  133. package/js/src/deribit.js +2 -0
  134. package/js/src/digifinex.js +5 -2
  135. package/js/src/exmo.js +1 -0
  136. package/js/src/gate.js +2 -0
  137. package/js/src/gemini.js +2 -0
  138. package/js/src/hitbtc.js +4 -0
  139. package/js/src/hollaex.js +2 -0
  140. package/js/src/htx.js +4 -0
  141. package/js/src/huobijp.js +2 -0
  142. package/js/src/idex.js +2 -0
  143. package/js/src/indodax.js +1 -0
  144. package/js/src/kraken.js +3 -3
  145. package/js/src/kucoin.js +6 -5
  146. package/js/src/kuna.js +3 -1
  147. package/js/src/latoken.js +1 -0
  148. package/js/src/lbank.js +1 -0
  149. package/js/src/lykke.js +2 -0
  150. package/js/src/mercado.js +1 -0
  151. package/js/src/mexc.js +2 -0
  152. package/js/src/ndax.js +2 -0
  153. package/js/src/novadax.js +1 -0
  154. package/js/src/okcoin.js +2 -0
  155. package/js/src/okx.js +2 -0
  156. package/js/src/phemex.js +2 -0
  157. package/js/src/poloniex.js +1 -0
  158. package/js/src/pro/binance.js +5 -3
  159. package/js/src/pro/coinbase.js +12 -3
  160. package/js/src/pro/cryptocom.js +17 -17
  161. package/js/src/pro/krakenfutures.js +15 -15
  162. package/js/src/probit.js +4 -2
  163. package/js/src/tidex.js +1 -0
  164. package/js/src/timex.js +2 -0
  165. package/js/src/upbit.js +2 -0
  166. package/js/src/wavesexchange.js +2 -1
  167. package/js/src/whitebit.js +1 -0
  168. package/js/src/woo.js +1 -0
  169. package/js/src/zaif.js +1 -0
  170. package/js/src/zonda.js +1 -0
  171. package/package.json +1 -1
  172. package/skip-tests.json +2 -3
  173. package/dist/cjs/src/btctradeua.js +0 -571
  174. package/dist/cjs/src/coinfalcon.js +0 -1012
  175. package/js/src/abstract/btctradeua.d.ts +0 -20
  176. package/js/src/abstract/btctradeua.js +0 -11
  177. package/js/src/abstract/coinfalcon.d.ts +0 -26
  178. package/js/src/abstract/coinfalcon.js +0 -11
  179. package/js/src/btctradeua.d.ts +0 -30
  180. package/js/src/btctradeua.js +0 -572
  181. package/js/src/coinfalcon.d.ts +0 -53
  182. package/js/src/coinfalcon.js +0 -1013
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/coinlist.js';
2
- import { Balances, Int, OHLCV, Order, OrderBook, OrderSide, OrderType, Ticker, Tickers, Trade, Transaction } from './base/types.js';
2
+ import { Balances, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Ticker, Tickers, Trade, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class coinlist
5
5
  * @extends Exchange
@@ -9,7 +9,8 @@ export default class coinlist extends Exchange {
9
9
  calculateRateLimiterCost(api: any, method: any, path: any, params: any, config?: {}): number;
10
10
  fetchTime(params?: {}): Promise<number>;
11
11
  fetchCurrencies(params?: {}): Promise<{}>;
12
- fetchMarkets(params?: {}): Promise<any[]>;
12
+ fetchMarkets(params?: {}): Promise<Market[]>;
13
+ parseMarket(market: any): Market;
13
14
  fetchTickers(symbols?: string[], params?: {}): Promise<Tickers>;
14
15
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
15
16
  parseTicker(ticker: any, market?: any): Ticker;
@@ -415,68 +415,66 @@ export default class coinlist extends Exchange {
415
415
  // }
416
416
  //
417
417
  const markets = this.safeValue(response, 'symbols', []);
418
- const result = [];
419
- for (let i = 0; i < markets.length; i++) {
420
- const market = markets[i];
421
- const id = this.safeString(market, 'symbol');
422
- const baseId = this.safeString(market, 'base_currency');
423
- const quoteId = this.safeString(market, 'quote_currency');
424
- const base = this.safeCurrencyCode(baseId);
425
- const quote = this.safeCurrencyCode(quoteId);
426
- const amountPrecision = this.safeString(market, 'minimum_size_increment');
427
- const pricePrecision = this.safeString(market, 'minimum_price_increment');
428
- const created = this.safeString(market, 'list_time');
429
- result.push({
430
- 'id': id,
431
- 'symbol': base + '/' + quote,
432
- 'base': base,
433
- 'quote': quote,
434
- 'settle': undefined,
435
- 'baseId': baseId,
436
- 'quoteId': quoteId,
437
- 'settleId': undefined,
438
- 'type': 'spot',
439
- 'spot': true,
440
- 'margin': false,
441
- 'swap': false,
442
- 'future': false,
443
- 'option': false,
444
- 'active': true,
445
- 'contract': false,
446
- 'linear': undefined,
447
- 'inverse': undefined,
448
- 'contractSize': undefined,
449
- 'expiry': undefined,
450
- 'expiryDatetime': undefined,
451
- 'strike': undefined,
452
- 'optionType': undefined,
453
- 'precision': {
454
- 'amount': this.parseNumber(amountPrecision),
455
- 'price': this.parseNumber(pricePrecision),
418
+ return this.parseMarkets(markets);
419
+ }
420
+ parseMarket(market) {
421
+ const id = this.safeString(market, 'symbol');
422
+ const baseId = this.safeString(market, 'base_currency');
423
+ const quoteId = this.safeString(market, 'quote_currency');
424
+ const base = this.safeCurrencyCode(baseId);
425
+ const quote = this.safeCurrencyCode(quoteId);
426
+ const amountPrecision = this.safeString(market, 'minimum_size_increment');
427
+ const pricePrecision = this.safeString(market, 'minimum_price_increment');
428
+ const created = this.safeString(market, 'list_time');
429
+ return {
430
+ 'id': id,
431
+ 'symbol': base + '/' + quote,
432
+ 'base': base,
433
+ 'quote': quote,
434
+ 'settle': undefined,
435
+ 'baseId': baseId,
436
+ 'quoteId': quoteId,
437
+ 'settleId': undefined,
438
+ 'type': 'spot',
439
+ 'spot': true,
440
+ 'margin': false,
441
+ 'swap': false,
442
+ 'future': false,
443
+ 'option': false,
444
+ 'active': true,
445
+ 'contract': false,
446
+ 'linear': undefined,
447
+ 'inverse': undefined,
448
+ 'contractSize': undefined,
449
+ 'expiry': undefined,
450
+ 'expiryDatetime': undefined,
451
+ 'strike': undefined,
452
+ 'optionType': undefined,
453
+ 'precision': {
454
+ 'amount': this.parseNumber(amountPrecision),
455
+ 'price': this.parseNumber(pricePrecision),
456
+ },
457
+ 'limits': {
458
+ 'leverage': {
459
+ 'min': undefined,
460
+ 'max': undefined,
456
461
  },
457
- 'limits': {
458
- 'leverage': {
459
- 'min': undefined,
460
- 'max': undefined,
461
- },
462
- 'amount': {
463
- 'min': undefined,
464
- 'max': undefined,
465
- },
466
- 'price': {
467
- 'min': undefined,
468
- 'max': undefined,
469
- },
470
- 'cost': {
471
- 'min': undefined,
472
- 'max': undefined,
473
- },
462
+ 'amount': {
463
+ 'min': undefined,
464
+ 'max': undefined,
474
465
  },
475
- 'created': this.parse8601(created),
476
- 'info': market,
477
- });
478
- }
479
- return result;
466
+ 'price': {
467
+ 'min': undefined,
468
+ 'max': undefined,
469
+ },
470
+ 'cost': {
471
+ 'min': undefined,
472
+ 'max': undefined,
473
+ },
474
+ },
475
+ 'created': this.parse8601(created),
476
+ 'info': market,
477
+ };
480
478
  }
481
479
  async fetchTickers(symbols = undefined, params = {}) {
482
480
  /**
@@ -2039,6 +2037,8 @@ export default class coinlist extends Exchange {
2039
2037
  'status': undefined,
2040
2038
  'updated': undefined,
2041
2039
  'fee': fee,
2040
+ 'comment': this.safeString(transaction, 'description'),
2041
+ 'internal': undefined,
2042
2042
  };
2043
2043
  }
2044
2044
  parseTransactionType(type) {
@@ -491,6 +491,7 @@ export default class coinmate extends Exchange {
491
491
  'tagTo': undefined,
492
492
  'updated': undefined,
493
493
  'comment': undefined,
494
+ 'internal': undefined,
494
495
  'fee': {
495
496
  'cost': this.safeNumber(transaction, 'fee'),
496
497
  'currency': code,
package/js/src/coinsph.js CHANGED
@@ -1764,11 +1764,8 @@ export default class coinsph extends Exchange {
1764
1764
  if (feeCost !== undefined) {
1765
1765
  fee = { 'currency': code, 'cost': feeCost };
1766
1766
  }
1767
- let internal = this.safeInteger(transaction, 'transferType');
1768
- if (internal !== undefined) {
1769
- internal = internal ? true : false;
1770
- }
1771
1767
  const network = this.safeString(transaction, 'network');
1768
+ const internal = network === 'Internal';
1772
1769
  return {
1773
1770
  'info': transaction,
1774
1771
  'id': id,
@@ -1788,6 +1785,7 @@ export default class coinsph extends Exchange {
1788
1785
  'status': status,
1789
1786
  'updated': updated,
1790
1787
  'internal': internal,
1788
+ 'comment': undefined,
1791
1789
  'fee': fee,
1792
1790
  };
1793
1791
  }
@@ -2413,6 +2413,7 @@ export default class cryptocom extends Exchange {
2413
2413
  'status': status,
2414
2414
  'updated': this.safeInteger(transaction, 'update_time'),
2415
2415
  'internal': undefined,
2416
+ 'comment': this.safeString(transaction, 'client_wid'),
2416
2417
  'fee': fee,
2417
2418
  };
2418
2419
  }
@@ -1616,7 +1616,7 @@ export default class currencycom extends Exchange {
1616
1616
  fee['currency'] = code;
1617
1617
  fee['cost'] = feeCost;
1618
1618
  }
1619
- const result = {
1619
+ return {
1620
1620
  'info': transaction,
1621
1621
  'id': this.safeString(transaction, 'id'),
1622
1622
  'txid': this.safeString(transaction, 'blockchainTransactionHash'),
@@ -1634,10 +1634,10 @@ export default class currencycom extends Exchange {
1634
1634
  'tagFrom': undefined,
1635
1635
  'tagTo': undefined,
1636
1636
  'updated': undefined,
1637
+ 'internal': undefined,
1637
1638
  'comment': undefined,
1638
1639
  'fee': fee,
1639
1640
  };
1640
- return result;
1641
1641
  }
1642
1642
  parseTransactionStatus(status) {
1643
1643
  const statuses = {
package/js/src/deribit.js CHANGED
@@ -2315,6 +2315,8 @@ export default class deribit extends Exchange {
2315
2315
  'status': status,
2316
2316
  'updated': updated,
2317
2317
  'network': undefined,
2318
+ 'internal': undefined,
2319
+ 'comment': undefined,
2318
2320
  'fee': fee,
2319
2321
  };
2320
2322
  }
@@ -1636,7 +1636,7 @@ export default class digifinex extends Exchange {
1636
1636
  const amount = this.safeValue(rawOrder, 'amount');
1637
1637
  const price = this.safeValue(rawOrder, 'price');
1638
1638
  const orderParams = this.safeValue(rawOrder, 'params', {});
1639
- const marginResult = this.handleMarginModeAndParams('createOrders', params);
1639
+ const marginResult = this.handleMarginModeAndParams('createOrders', orderParams);
1640
1640
  const currentMarginMode = marginResult[0];
1641
1641
  if (currentMarginMode !== undefined) {
1642
1642
  if (marginMode === undefined) {
@@ -1648,7 +1648,8 @@ export default class digifinex extends Exchange {
1648
1648
  }
1649
1649
  }
1650
1650
  }
1651
- const orderRequest = this.createOrderRequest(marketId, type, side, amount, price, orderParams);
1651
+ let orderRequest = this.createOrderRequest(marketId, type, side, amount, price, orderParams);
1652
+ orderRequest = this.omit(orderRequest, 'marginMode');
1652
1653
  ordersRequests.push(orderRequest);
1653
1654
  }
1654
1655
  const market = this.market(symbol);
@@ -2812,6 +2813,8 @@ export default class digifinex extends Exchange {
2812
2813
  'currency': code,
2813
2814
  'status': status,
2814
2815
  'updated': updated,
2816
+ 'internal': undefined,
2817
+ 'comment': undefined,
2815
2818
  'fee': fee,
2816
2819
  };
2817
2820
  }
package/js/src/exmo.js CHANGED
@@ -2297,6 +2297,7 @@ export default class exmo extends Exchange {
2297
2297
  'tagTo': undefined,
2298
2298
  'updated': this.safeTimestamp(transaction, 'updated'),
2299
2299
  'comment': comment,
2300
+ 'internal': undefined,
2300
2301
  'fee': fee,
2301
2302
  };
2302
2303
  }
package/js/src/gate.js CHANGED
@@ -3643,6 +3643,8 @@ export default class gate extends Exchange {
3643
3643
  'timestamp': timestamp,
3644
3644
  'datetime': this.iso8601(timestamp),
3645
3645
  'updated': undefined,
3646
+ 'internal': undefined,
3647
+ 'comment': undefined,
3646
3648
  'fee': {
3647
3649
  'currency': code,
3648
3650
  'cost': this.parseNumber(feeCostString),
package/js/src/gemini.js CHANGED
@@ -1601,6 +1601,8 @@ export default class gemini extends Exchange {
1601
1601
  'currency': code,
1602
1602
  'status': this.parseTransactionStatus(statusRaw),
1603
1603
  'updated': undefined,
1604
+ 'internal': undefined,
1605
+ 'comment': this.safeString(transaction, 'message'),
1604
1606
  'fee': fee,
1605
1607
  };
1606
1608
  }
package/js/src/hitbtc.js CHANGED
@@ -1443,6 +1443,9 @@ export default class hitbtc extends Exchange {
1443
1443
  const sender = this.safeValue(native, 'senders');
1444
1444
  const addressFrom = this.safeString(sender, 0);
1445
1445
  const amount = this.safeNumber(native, 'amount');
1446
+ const subType = this.safeString(transaction, 'subtype');
1447
+ const internal = subType === 'OFFCHAIN';
1448
+ // https://api.hitbtc.com/#check-if-offchain-is-available
1446
1449
  const fee = {
1447
1450
  'currency': undefined,
1448
1451
  'cost': undefined,
@@ -1472,6 +1475,7 @@ export default class hitbtc extends Exchange {
1472
1475
  'tagTo': tagTo,
1473
1476
  'updated': updated,
1474
1477
  'comment': undefined,
1478
+ 'internal': internal,
1475
1479
  'fee': fee,
1476
1480
  };
1477
1481
  }
package/js/src/hollaex.js CHANGED
@@ -1654,6 +1654,8 @@ export default class hollaex extends Exchange {
1654
1654
  'currency': currency['code'],
1655
1655
  'status': status,
1656
1656
  'updated': updated,
1657
+ 'comment': this.safeString(transaction, 'message'),
1658
+ 'internal': undefined,
1657
1659
  'fee': fee,
1658
1660
  };
1659
1661
  }
package/js/src/htx.js CHANGED
@@ -6072,6 +6072,8 @@ export default class htx extends Exchange {
6072
6072
  if (networkId === 'ETH' && txHash.indexOf('0x') < 0) {
6073
6073
  txHash = '0x' + txHash;
6074
6074
  }
6075
+ const subType = this.safeString(transaction, 'sub-type');
6076
+ const internal = subType === 'FAST';
6075
6077
  return {
6076
6078
  'info': transaction,
6077
6079
  'id': this.safeString2(transaction, 'id', 'data'),
@@ -6090,6 +6092,8 @@ export default class htx extends Exchange {
6090
6092
  'currency': code,
6091
6093
  'status': this.parseTransactionStatus(this.safeString(transaction, 'state')),
6092
6094
  'updated': this.safeInteger(transaction, 'updated-at'),
6095
+ 'comment': undefined,
6096
+ 'internal': internal,
6093
6097
  'fee': {
6094
6098
  'currency': code,
6095
6099
  'cost': this.parseNumber(feeCost),
package/js/src/huobijp.js CHANGED
@@ -1732,6 +1732,8 @@ export default class huobijp extends Exchange {
1732
1732
  'currency': code,
1733
1733
  'status': this.parseTransactionStatus(this.safeString(transaction, 'state')),
1734
1734
  'updated': this.safeInteger(transaction, 'updated-at'),
1735
+ 'comment': undefined,
1736
+ 'internal': undefined,
1735
1737
  'fee': {
1736
1738
  'currency': code,
1737
1739
  'cost': this.parseNumber(feeCost),
package/js/src/idex.js CHANGED
@@ -1677,6 +1677,8 @@ export default class idex extends Exchange {
1677
1677
  'currency': code,
1678
1678
  'status': status,
1679
1679
  'updated': updated,
1680
+ 'comment': undefined,
1681
+ 'internal': undefined,
1680
1682
  'fee': fee,
1681
1683
  };
1682
1684
  }
package/js/src/indodax.js CHANGED
@@ -1002,6 +1002,7 @@ export default class indodax extends Exchange {
1002
1002
  'tag': undefined,
1003
1003
  'tagTo': undefined,
1004
1004
  'comment': this.safeString(transaction, 'withdraw_memo'),
1005
+ 'internal': undefined,
1005
1006
  'fee': fee,
1006
1007
  'info': transaction,
1007
1008
  };
package/js/src/kraken.js CHANGED
@@ -1713,9 +1713,7 @@ export default class kraken extends Exchange {
1713
1713
  if (!(id in result)) {
1714
1714
  throw new OrderNotFound(this.id + ' fetchOrder() could not find order id ' + id);
1715
1715
  }
1716
- const order = this.parseOrder(this.extend({ 'id': id }, result[id]));
1717
- order['info'] = order;
1718
- return order;
1716
+ return this.parseOrder(this.extend({ 'id': id }, result[id]));
1719
1717
  }
1720
1718
  async fetchOrderTrades(id, symbol = undefined, since = undefined, limit = undefined, params = {}) {
1721
1719
  /**
@@ -2162,6 +2160,8 @@ export default class kraken extends Exchange {
2162
2160
  'txid': txid,
2163
2161
  'timestamp': timestamp,
2164
2162
  'datetime': this.iso8601(timestamp),
2163
+ 'comment': undefined,
2164
+ 'internal': undefined,
2165
2165
  'fee': {
2166
2166
  'currency': code,
2167
2167
  'cost': feeCost,
package/js/src/kucoin.js CHANGED
@@ -1760,8 +1760,8 @@ export default class kucoin extends Exchange {
1760
1760
  * @method
1761
1761
  * @name kucoin#fetchOrderBook
1762
1762
  * @description fetches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
1763
- * @see https://docs.kucoin.com/#get-part-order-book-aggregated
1764
- * @see https://docs.kucoin.com/#get-full-order-book-aggregated
1763
+ * @see https://www.kucoin.com/docs/rest/spot-trading/market-data/get-part-order-book-aggregated-
1764
+ * @see https://www.kucoin.com/docs/rest/spot-trading/market-data/get-full-order-book-aggregated-
1765
1765
  * @param {string} symbol unified symbol of the market to fetch the order book for
1766
1766
  * @param {int} [limit] the maximum amount of order book entries to return
1767
1767
  * @param {object} [params] extra parameters specific to the kucoin api endpoint
@@ -1771,7 +1771,6 @@ export default class kucoin extends Exchange {
1771
1771
  const market = this.market(symbol);
1772
1772
  const level = this.safeInteger(params, 'level', 2);
1773
1773
  const request = { 'symbol': market['id'] };
1774
- let method = 'publicGetMarketOrderbookLevelLevelLimit';
1775
1774
  const isAuthenticated = this.checkRequiredCredentials(false);
1776
1775
  let response = undefined;
1777
1776
  if (!isAuthenticated || limit !== undefined) {
@@ -1787,11 +1786,11 @@ export default class kucoin extends Exchange {
1787
1786
  }
1788
1787
  request['limit'] = limit ? limit : 100;
1789
1788
  }
1789
+ response = await this.publicGetMarketOrderbookLevelLevelLimit(this.extend(request, params));
1790
1790
  }
1791
1791
  else {
1792
- method = 'privateGetMarketOrderbookLevel2'; // recommended (v3)
1792
+ response = await this.privateGetMarketOrderbookLevel2(this.extend(request, params));
1793
1793
  }
1794
- response = await this[method](this.extend(request, params));
1795
1794
  //
1796
1795
  // public (v1) market/orderbook/level2_20 and market/orderbook/level2_100
1797
1796
  //
@@ -3163,6 +3162,7 @@ export default class kucoin extends Exchange {
3163
3162
  updated = updated * 1000;
3164
3163
  }
3165
3164
  }
3165
+ const internal = this.safeValue(transaction, 'isInner');
3166
3166
  const tag = this.safeString(transaction, 'memo');
3167
3167
  return {
3168
3168
  'info': transaction,
@@ -3182,6 +3182,7 @@ export default class kucoin extends Exchange {
3182
3182
  'type': type,
3183
3183
  'status': this.parseTransactionStatus(rawStatus),
3184
3184
  'comment': this.safeString(transaction, 'remark'),
3185
+ 'internal': internal,
3185
3186
  'fee': fee,
3186
3187
  'updated': updated,
3187
3188
  };
package/js/src/kuna.js CHANGED
@@ -1773,6 +1773,7 @@ export default class kuna extends Exchange {
1773
1773
  const type = this.safeStringLower(transaction, 'type');
1774
1774
  const address = this.safeString(transaction, 'address');
1775
1775
  const isDeposit = (type === 'deposit');
1776
+ const parsedType = isDeposit ? type : 'withdrawal';
1776
1777
  return {
1777
1778
  'info': transaction,
1778
1779
  'id': this.safeString(transaction, 'id'),
@@ -1785,13 +1786,14 @@ export default class kuna extends Exchange {
1785
1786
  'address': address,
1786
1787
  'addressTo': address,
1787
1788
  'amount': this.safeNumber(transaction, 'amount'),
1788
- 'type': !isDeposit ? 'withdrawal' : type,
1789
+ 'type': parsedType,
1789
1790
  'status': this.parseTransactionStatus(this.safeString(transaction, 'status')),
1790
1791
  'updated': this.parse8601(this.safeString(transaction, 'updatedAt')),
1791
1792
  'tagFrom': undefined,
1792
1793
  'tag': undefined,
1793
1794
  'tagTo': undefined,
1794
1795
  'comment': this.safeString(transaction, 'memo'),
1796
+ 'internal': undefined,
1795
1797
  'fee': {
1796
1798
  'cost': this.safeNumber(transaction, 'fee'),
1797
1799
  'currency': code,
package/js/src/latoken.js CHANGED
@@ -1495,6 +1495,7 @@ export default class latoken extends Exchange {
1495
1495
  'status': status,
1496
1496
  'updated': undefined,
1497
1497
  'comment': undefined,
1498
+ 'internal': undefined,
1498
1499
  'fee': fee,
1499
1500
  };
1500
1501
  }
package/js/src/lbank.js CHANGED
@@ -782,6 +782,7 @@ export default class lbank extends Exchange {
782
782
  'tag': undefined,
783
783
  'tagTo': undefined,
784
784
  'comment': undefined,
785
+ 'internal': undefined,
785
786
  'fee': undefined,
786
787
  'info': transaction,
787
788
  };
package/js/src/lykke.js CHANGED
@@ -1165,6 +1165,8 @@ export default class lykke extends Exchange {
1165
1165
  'currency': code,
1166
1166
  'status': undefined,
1167
1167
  'updated': undefined,
1168
+ 'internal': undefined,
1169
+ 'comment': undefined,
1168
1170
  'fee': fee,
1169
1171
  };
1170
1172
  }
package/js/src/mercado.js CHANGED
@@ -713,6 +713,7 @@ export default class mercado extends Exchange {
713
713
  'tag': undefined,
714
714
  'tagTo': undefined,
715
715
  'comment': undefined,
716
+ 'internal': undefined,
716
717
  'fee': undefined,
717
718
  'info': transaction,
718
719
  };
package/js/src/mexc.js CHANGED
@@ -4542,6 +4542,8 @@ export default class mexc extends Exchange {
4542
4542
  'currency': code,
4543
4543
  'status': status,
4544
4544
  'updated': undefined,
4545
+ 'comment': undefined,
4546
+ 'internal': undefined,
4545
4547
  'fee': fee,
4546
4548
  };
4547
4549
  }
package/js/src/ndax.js CHANGED
@@ -2267,6 +2267,8 @@ export default class ndax extends Exchange {
2267
2267
  'status': this.parseTransactionStatusByType(transactionStatus, type),
2268
2268
  'updated': updated,
2269
2269
  'fee': fee,
2270
+ 'internal': undefined,
2271
+ 'comment': undefined,
2270
2272
  'network': undefined,
2271
2273
  };
2272
2274
  }
package/js/src/novadax.js CHANGED
@@ -1424,6 +1424,7 @@ export default class novadax extends Exchange {
1424
1424
  'timestamp': timestamp,
1425
1425
  'datetime': this.iso8601(timestamp),
1426
1426
  'comment': undefined,
1427
+ 'internal': undefined,
1427
1428
  'fee': {
1428
1429
  'currency': undefined,
1429
1430
  'cost': undefined,
package/js/src/okcoin.js CHANGED
@@ -2714,6 +2714,8 @@ export default class okcoin extends Exchange {
2714
2714
  'txid': txid,
2715
2715
  'timestamp': timestamp,
2716
2716
  'datetime': this.iso8601(timestamp),
2717
+ 'comment': undefined,
2718
+ 'internal': undefined,
2717
2719
  'fee': {
2718
2720
  'currency': code,
2719
2721
  'cost': feeCost,
package/js/src/okx.js CHANGED
@@ -4892,6 +4892,8 @@ export default class okx extends Exchange {
4892
4892
  'txid': txid,
4893
4893
  'timestamp': timestamp,
4894
4894
  'datetime': this.iso8601(timestamp),
4895
+ 'internal': undefined,
4896
+ 'comment': undefined,
4895
4897
  'fee': {
4896
4898
  'currency': code,
4897
4899
  'cost': feeCost,
package/js/src/phemex.js CHANGED
@@ -3325,6 +3325,8 @@ export default class phemex extends Exchange {
3325
3325
  'currency': code,
3326
3326
  'status': status,
3327
3327
  'updated': undefined,
3328
+ 'comment': undefined,
3329
+ 'internal': undefined,
3328
3330
  'fee': fee,
3329
3331
  };
3330
3332
  }
@@ -2253,6 +2253,7 @@ export default class poloniex extends Exchange {
2253
2253
  'timestamp': timestamp,
2254
2254
  'datetime': this.iso8601(timestamp),
2255
2255
  'comment': undefined,
2256
+ 'internal': undefined,
2256
2257
  'fee': {
2257
2258
  'currency': code,
2258
2259
  'cost': this.parseNumber(feeCostString),
@@ -2362,8 +2362,10 @@ export default class binance extends binanceRest {
2362
2362
  market = this.getMarketFromSymbols(symbols);
2363
2363
  messageHash = '::' + symbols.join(',');
2364
2364
  }
2365
- const defaultType = this.safeString2(this.options, 'watchPositions', 'defaultType', 'future');
2366
- let type = this.safeString(params, 'type', defaultType);
2365
+ let type = this.handleMarketTypeAndParams('watchPositions', market, params);
2366
+ if (type === 'spot' || type === 'margin') {
2367
+ type = 'future';
2368
+ }
2367
2369
  let subType = undefined;
2368
2370
  [subType, params] = this.handleSubTypeAndParams('watchPositions', market, params);
2369
2371
  if (this.isLinear(type, subType)) {
@@ -2508,7 +2510,7 @@ export default class binance extends binanceRest {
2508
2510
  return this.safePosition({
2509
2511
  'info': position,
2510
2512
  'id': undefined,
2511
- 'symbol': this.safeSymbol(marketId),
2513
+ 'symbol': this.safeSymbol(marketId, undefined, undefined, 'future'),
2512
2514
  'notional': undefined,
2513
2515
  'marginMode': this.safeString(position, 'mt'),
2514
2516
  'liquidationPrice': undefined,
@@ -15,14 +15,23 @@ export default class coinbase extends coinbaseRest {
15
15
  return this.deepExtend(super.describe(), {
16
16
  'has': {
17
17
  'ws': true,
18
+ 'cancelAllOrdersWs': false,
19
+ 'cancelOrdersWs': false,
20
+ 'cancelOrderWs': false,
21
+ 'createOrderWs': false,
22
+ 'editOrderWs': false,
23
+ 'fetchBalanceWs': false,
24
+ 'fetchOpenOrdersWs': false,
25
+ 'fetchOrderWs': false,
26
+ 'fetchTradesWs': false,
27
+ 'watchBalance': false,
28
+ 'watchMyTrades': false,
18
29
  'watchOHLCV': false,
19
30
  'watchOrderBook': true,
31
+ 'watchOrders': true,
20
32
  'watchTicker': true,
21
33
  'watchTickers': true,
22
34
  'watchTrades': true,
23
- 'watchBalance': false,
24
- 'watchOrders': true,
25
- 'watchMyTrades': false,
26
35
  },
27
36
  'urls': {
28
37
  'api': {