ccxt 4.0.80 → 4.0.81

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 (46) hide show
  1. package/CHANGELOG.md +169 -0
  2. package/README.md +3 -3
  3. package/dist/ccxt.browser.js +211 -116
  4. package/dist/ccxt.browser.min.js +3 -3
  5. package/dist/cjs/ccxt.js +1 -1
  6. package/dist/cjs/src/binance.js +9 -0
  7. package/dist/cjs/src/bitget.js +9 -4
  8. package/dist/cjs/src/bitmex.js +3 -1
  9. package/dist/cjs/src/bybit.js +0 -9
  10. package/dist/cjs/src/delta.js +3 -0
  11. package/dist/cjs/src/exmo.js +64 -25
  12. package/dist/cjs/src/gate.js +2 -0
  13. package/dist/cjs/src/hitbtc.js +3 -1
  14. package/dist/cjs/src/huobi.js +2 -0
  15. package/dist/cjs/src/kucoin.js +96 -69
  16. package/dist/cjs/src/pro/krakenfutures.js +1 -1
  17. package/dist/cjs/src/pro/okx.js +8 -3
  18. package/dist/cjs/src/pro/probit.js +2 -2
  19. package/dist/cjs/src/upbit.js +8 -0
  20. package/js/ccxt.d.ts +1 -1
  21. package/js/ccxt.js +1 -1
  22. package/js/src/abstract/binance.d.ts +9 -0
  23. package/js/src/abstract/binancecoinm.d.ts +9 -0
  24. package/js/src/abstract/binanceus.d.ts +9 -0
  25. package/js/src/abstract/binanceusdm.d.ts +9 -0
  26. package/js/src/abstract/gate.d.ts +2 -0
  27. package/js/src/abstract/gateio.d.ts +2 -0
  28. package/js/src/abstract/huobi.d.ts +2 -0
  29. package/js/src/abstract/huobipro.d.ts +2 -0
  30. package/js/src/binance.js +9 -0
  31. package/js/src/bitget.js +9 -4
  32. package/js/src/bitmex.d.ts +1 -1
  33. package/js/src/bitmex.js +3 -1
  34. package/js/src/bybit.js +0 -9
  35. package/js/src/delta.js +3 -0
  36. package/js/src/exmo.js +64 -25
  37. package/js/src/gate.js +2 -0
  38. package/js/src/hitbtc.js +3 -1
  39. package/js/src/huobi.js +2 -0
  40. package/js/src/kucoin.js +96 -69
  41. package/js/src/pro/krakenfutures.js +1 -1
  42. package/js/src/pro/okx.js +8 -3
  43. package/js/src/pro/probit.js +2 -2
  44. package/js/src/upbit.js +9 -1
  45. package/package.json +1 -1
  46. package/skip-tests.json +7 -2
package/js/src/pro/okx.js CHANGED
@@ -98,15 +98,17 @@ export default class okx extends okxRest {
98
98
  }
99
99
  getUrl(channel, access = 'public') {
100
100
  // for context: https://www.okx.com/help-center/changes-to-v5-api-websocket-subscription-parameter-and-url
101
+ const isSandbox = this.options['sandboxMode'];
102
+ const sandboxSuffix = isSandbox ? '?brokerId=9999' : '';
101
103
  const isPublic = (access === 'public');
102
104
  const url = this.urls['api']['ws'];
103
105
  if ((channel.indexOf('candle') > -1) || (channel === 'orders-algo')) {
104
- return url + '/business';
106
+ return url + '/business' + sandboxSuffix;
105
107
  }
106
108
  else if (isPublic) {
107
- return url + '/public';
109
+ return url + '/public' + sandboxSuffix;
108
110
  }
109
- return url + '/private';
111
+ return url + '/private' + sandboxSuffix;
110
112
  }
111
113
  async subscribeMultiple(access, channel, symbols = undefined, params = {}) {
112
114
  await this.loadMarkets();
@@ -1253,6 +1255,9 @@ export default class okx extends okxRest {
1253
1255
  }
1254
1256
  return false;
1255
1257
  }
1258
+ else {
1259
+ client.reject(e);
1260
+ }
1256
1261
  }
1257
1262
  return message;
1258
1263
  }
@@ -518,11 +518,11 @@ export default class probit extends probitRest {
518
518
  this.handleTicker(client, message);
519
519
  }
520
520
  const trades = this.safeValue(message, 'recent_trades', []);
521
- if (trades.length > 0) {
521
+ if (trades.length) {
522
522
  this.handleTrades(client, message);
523
523
  }
524
524
  const orderBook = this.safeValueN(message, ['order_books', 'order_books_l1', 'order_books_l2', 'order_books_l3', 'order_books_l4'], []);
525
- if (orderBook.length > 0) {
525
+ if (orderBook.length) {
526
526
  this.handleOrderBook(client, message, orderBook);
527
527
  }
528
528
  }
package/js/src/upbit.js CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  // ---------------------------------------------------------------------------
8
8
  import Exchange from './abstract/upbit.js';
9
- import { ExchangeError, BadRequest, AuthenticationError, InvalidOrder, InsufficientFunds, OrderNotFound, PermissionDenied, AddressPending } from './base/errors.js';
9
+ import { ExchangeError, BadRequest, AuthenticationError, InvalidOrder, InsufficientFunds, OrderNotFound, PermissionDenied, AddressPending, ArgumentsRequired } from './base/errors.js';
10
10
  import { Precise } from './base/Precise.js';
11
11
  import { TICK_SIZE } from './base/functions/number.js';
12
12
  import { sha512 } from './static_dependencies/noble-hashes/sha512.js';
@@ -1728,12 +1728,20 @@ export default class upbit extends Exchange {
1728
1728
  };
1729
1729
  let method = 'privatePostWithdraws';
1730
1730
  if (code !== 'KRW') {
1731
+ // 2023-05-23 Change to required parameters for digital assets
1732
+ const network = this.safeStringUpper2(params, 'network', 'net_type');
1733
+ if (network === undefined) {
1734
+ throw new ArgumentsRequired(this.id + ' withdraw() requires a network argument');
1735
+ }
1736
+ params = this.omit(params, ['network']);
1737
+ request['net_type'] = network;
1731
1738
  method += 'Coin';
1732
1739
  request['currency'] = currency['id'];
1733
1740
  request['address'] = address;
1734
1741
  if (tag !== undefined) {
1735
1742
  request['secondary_address'] = tag;
1736
1743
  }
1744
+ params = this.omit(params, 'network');
1737
1745
  }
1738
1746
  else {
1739
1747
  method += 'Krw';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccxt",
3
- "version": "4.0.80",
3
+ "version": "4.0.81",
4
4
  "description": "A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 130+ exchanges",
5
5
  "unpkg": "dist/ccxt.browser.js",
6
6
  "type": "module",
package/skip-tests.json CHANGED
@@ -201,6 +201,8 @@
201
201
  }
202
202
  },
203
203
  "bithumb": {
204
+ "skip": "fetchMarkets returning undefined",
205
+ "until": "2023-09-05",
204
206
  "skipMethods": {
205
207
  "fetchTickers": {
206
208
  "quoteVolume": "quoteVolume >= baseVolume * low is failing",
@@ -511,7 +513,8 @@
511
513
  },
512
514
  "fetchTickers": {
513
515
  "bid": "broken bid-ask",
514
- "ask": "broken bid-ask"
516
+ "ask": "broken bid-ask",
517
+ "baseVolume": "negative value"
515
518
  }
516
519
  }
517
520
  },
@@ -915,7 +918,9 @@
915
918
  "skipWs": true,
916
919
  "skipMethods":{
917
920
  "fetchCurrencies": {
918
- "networks": "not yet implemented"
921
+ "networks": "not yet implemented",
922
+ "withdraw": "not provided for some currencies",
923
+ "deposit": "not provided for some currencies"
919
924
  },
920
925
  "loadMarkets": {
921
926
  "currencyIdAndCode": "messed"