ccxt-ir 4.8.2 → 4.9.3

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.
package/dist/cjs/ccxt.js CHANGED
@@ -45,6 +45,7 @@ var bitso = require('./src/bitso.js');
45
45
  var bitstamp = require('./src/bitstamp.js');
46
46
  var bitteam = require('./src/bitteam.js');
47
47
  var bittrade = require('./src/bittrade.js');
48
+ var bitunix = require('./src/bitunix.js');
48
49
  var bitvavo = require('./src/bitvavo.js');
49
50
  var blockchaincom = require('./src/blockchaincom.js');
50
51
  var blofin = require('./src/blofin.js');
@@ -223,7 +224,7 @@ var xt$1 = require('./src/pro/xt.js');
223
224
 
224
225
  //-----------------------------------------------------------------------------
225
226
  // this is updated by vss.js when building
226
- const version = '4.8.2';
227
+ const version = '4.9.3';
227
228
  Exchange["default"].ccxtVersion = version;
228
229
  const exchanges = {
229
230
  'abantether': abantether["default"],
@@ -259,6 +260,7 @@ const exchanges = {
259
260
  'bitstamp': bitstamp["default"],
260
261
  'bitteam': bitteam["default"],
261
262
  'bittrade': bittrade["default"],
263
+ 'bitunix': bitunix["default"],
262
264
  'bitvavo': bitvavo["default"],
263
265
  'blockchaincom': blockchaincom["default"],
264
266
  'blofin': blofin["default"],
@@ -521,6 +523,7 @@ exports.bitso = bitso["default"];
521
523
  exports.bitstamp = bitstamp["default"];
522
524
  exports.bitteam = bitteam["default"];
523
525
  exports.bittrade = bittrade["default"];
526
+ exports.bitunix = bitunix["default"];
524
527
  exports.bitvavo = bitvavo["default"];
525
528
  exports.blockchaincom = blockchaincom["default"];
526
529
  exports.blofin = blofin["default"];
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var Exchange$1 = require('../base/Exchange.js');
6
+
7
+ // ----------------------------------------------------------------------------
8
+ class Exchange extends Exchange$1["default"] {
9
+ }
10
+
11
+ exports["default"] = Exchange;
@@ -104,6 +104,7 @@ class arzplus extends arzplus$1["default"] {
104
104
  'api/v1/market/symbols': 1,
105
105
  'api/v1/market/tradingview/ohlcv': 1,
106
106
  'api/v1/market/depth': 1,
107
+ 'api/v1/market/irt/info': 1,
107
108
  },
108
109
  },
109
110
  },
@@ -131,11 +132,22 @@ class arzplus extends arzplus$1["default"] {
131
132
  'enable': 'true',
132
133
  };
133
134
  const response = await this.publicGetApiV1MarketSymbols(request);
135
+ const otcMarkets = await this.publicGetApiV1MarketIrtInfo(request);
134
136
  const result = [];
135
137
  for (let i = 0; i < response.length; i++) {
136
138
  const market = this.parseMarket(response[i]);
137
139
  result.push(market);
138
140
  }
141
+ for (let i = 0; i < otcMarkets.length; i++) {
142
+ const marketdata = otcMarkets[i];
143
+ marketdata['quote'] = 'IRT';
144
+ marketdata['id'] = 'OTC_' + marketdata['symbol'] + marketdata['quote'];
145
+ const parsedMarket = this.parseOTCMarkets(marketdata);
146
+ result.push(parsedMarket);
147
+ }
148
+ if (params['type']) {
149
+ return this.filterByArray(result, 'type', params['type'], false);
150
+ }
139
151
  return result;
140
152
  }
141
153
  parseMarket(market) {
@@ -234,6 +246,70 @@ class arzplus extends arzplus$1["default"] {
234
246
  'info': market,
235
247
  };
236
248
  }
249
+ parseOTCMarkets(market) {
250
+ // {
251
+ // symbol: "BTC",
252
+ // ask: "13877900000",
253
+ // bid: "13860999995",
254
+ // name: "bitcoin"
255
+ // },
256
+ const baseAsset = this.safeString(market, 'symbol');
257
+ const quoteAsset = this.safeString(market, 'quote');
258
+ const baseId = baseAsset;
259
+ const quoteId = quoteAsset;
260
+ const base = this.safeCurrencyCode(baseId);
261
+ const quote = this.safeCurrencyCode(quoteId);
262
+ const id = this.safeString(market, 'id');
263
+ return {
264
+ 'id': id,
265
+ 'symbol': base + '/' + quote,
266
+ 'base': base,
267
+ 'quote': quote,
268
+ 'settle': undefined,
269
+ 'baseId': baseId,
270
+ 'quoteId': quoteId,
271
+ 'settleId': undefined,
272
+ 'type': 'otc',
273
+ 'spot': true,
274
+ 'margin': false,
275
+ 'swap': false,
276
+ 'future': false,
277
+ 'option': false,
278
+ 'active': true,
279
+ 'contract': false,
280
+ 'linear': undefined,
281
+ 'inverse': undefined,
282
+ 'contractSize': undefined,
283
+ 'expiry': undefined,
284
+ 'expiryDatetime': undefined,
285
+ 'strike': undefined,
286
+ 'optionType': undefined,
287
+ 'precision': {
288
+ 'amount': undefined,
289
+ 'price': undefined,
290
+ },
291
+ 'limits': {
292
+ 'leverage': {
293
+ 'min': undefined,
294
+ 'max': undefined,
295
+ },
296
+ 'amount': {
297
+ 'min': undefined,
298
+ 'max': undefined,
299
+ },
300
+ 'price': {
301
+ 'min': undefined,
302
+ 'max': undefined,
303
+ },
304
+ 'cost': {
305
+ 'min': undefined,
306
+ 'max': undefined,
307
+ },
308
+ },
309
+ 'created': undefined,
310
+ 'info': market,
311
+ };
312
+ }
237
313
  async fetchTickers(symbols = undefined, params = {}) {
238
314
  /**
239
315
  * @method
@@ -248,8 +324,20 @@ class arzplus extends arzplus$1["default"] {
248
324
  if (symbols !== undefined) {
249
325
  symbols = this.marketSymbols(symbols);
250
326
  }
251
- const response = await this.publicGetApiV1MarketSymbols(params);
252
327
  const result = {};
328
+ if (params['type'] === 'otc') {
329
+ const otcMarkets = await this.publicGetApiV1MarketIrtInfo(params);
330
+ for (let i = 0; i < otcMarkets.length; i++) {
331
+ const marketdata = otcMarkets[i];
332
+ marketdata['quote'] = 'IRT';
333
+ marketdata['id'] = 'OTC_' + marketdata['symbol'] + marketdata['quote'];
334
+ const parsedMarket = this.parseOTCTicker(marketdata);
335
+ const symbol = parsedMarket['symbol'];
336
+ result[symbol] = parsedMarket;
337
+ }
338
+ return this.filterByArrayTickers(result, 'symbol', symbols);
339
+ }
340
+ const response = await this.publicGetApiV1MarketSymbols(params);
253
341
  for (let i = 0; i < response.length; i++) {
254
342
  const request = {
255
343
  'symbol': response[i]['name'],
@@ -349,6 +437,44 @@ class arzplus extends arzplus$1["default"] {
349
437
  'info': ticker,
350
438
  }, market);
351
439
  }
440
+ parseOTCTicker(ticker, market = undefined) {
441
+ // {
442
+ // id: "BTCUSDT",
443
+ // symbol: "BTC",
444
+ // ask: "13877900000",
445
+ // bid: "13860999995",
446
+ // name: "bitcoin"
447
+ // quote: "IRT"
448
+ // }
449
+ const marketType = 'otc';
450
+ const marketId = this.safeString(ticker, 'id');
451
+ const symbol = this.safeSymbol(marketId, market, undefined, marketType);
452
+ const bid = this.safeFloat(ticker, 'bid', 0);
453
+ const ask = this.safeFloat(ticker, 'ask', 0);
454
+ const last = this.safeFloat(ticker, 'ask', 0);
455
+ return this.safeTicker({
456
+ 'symbol': symbol,
457
+ 'timestamp': undefined,
458
+ 'datetime': undefined,
459
+ 'high': undefined,
460
+ 'low': undefined,
461
+ 'bid': bid,
462
+ 'bidVolume': undefined,
463
+ 'ask': ask,
464
+ 'askVolume': undefined,
465
+ 'vwap': undefined,
466
+ 'open': last,
467
+ 'close': last,
468
+ 'last': last,
469
+ 'previousClose': undefined,
470
+ 'change': undefined,
471
+ 'percentage': undefined,
472
+ 'average': undefined,
473
+ 'baseVolume': undefined,
474
+ 'quoteVolume': undefined,
475
+ 'info': ticker,
476
+ }, market);
477
+ }
352
478
  async fetchOHLCV(symbol, timeframe = '1h', since = undefined, limit = undefined, params = {}) {
353
479
  /**
354
480
  * @method
@@ -420,14 +546,16 @@ class arzplus extends arzplus$1["default"] {
420
546
  sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
421
547
  const query = this.omit(params, this.extractParams(path));
422
548
  let url = this.urls['api']['public'] + '/' + path;
423
- if (params['stats'] !== undefined) {
549
+ const symbol = this.safeString(params, 'symbol');
550
+ const stats = this.safeValue(params, 'stats');
551
+ if (stats !== undefined) {
424
552
  url = url + '?' + this.urlencode(query);
425
553
  }
426
554
  if (path === 'api/v1/market/tradingview/ohlcv') {
427
555
  url = url + '?' + this.urlencode(query);
428
556
  }
429
- else if (params['symbol'] !== undefined) {
430
- url = url + '/' + params['symbol'];
557
+ else if (symbol !== undefined) {
558
+ url = url + '/' + symbol;
431
559
  }
432
560
  headers = { 'Content-Type': 'application/json' };
433
561
  return { 'url': url, 'method': method, 'body': body, 'headers': headers };
@@ -0,0 +1,327 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var bitunix$1 = require('./abstract/bitunix.js');
6
+
7
+ // ----------------------------------------------------------------------------
8
+ // ---------------------------------------------------------------------------
9
+ /**
10
+ * @class bitunix
11
+ * @augments Exchange
12
+ * @description Set rateLimit to 1000 if fully verified
13
+ */
14
+ class bitunix extends bitunix$1["default"] {
15
+ describe() {
16
+ return this.deepExtend(super.describe(), {
17
+ 'id': 'bitunix',
18
+ 'name': 'bitunix',
19
+ 'countries': ['IR'],
20
+ 'rateLimit': 1000,
21
+ 'version': '1',
22
+ 'certified': false,
23
+ 'pro': false,
24
+ 'has': {
25
+ 'CORS': undefined,
26
+ 'spot': true,
27
+ 'margin': false,
28
+ 'swap': false,
29
+ 'future': true,
30
+ 'option': false,
31
+ 'addMargin': false,
32
+ 'cancelAllOrders': false,
33
+ 'cancelOrder': false,
34
+ 'cancelOrders': false,
35
+ 'createDepositAddress': false,
36
+ 'createOrder': false,
37
+ 'createStopLimitOrder': false,
38
+ 'createStopMarketOrder': false,
39
+ 'createStopOrder': false,
40
+ 'editOrder': false,
41
+ 'fetchBalance': false,
42
+ 'fetchBorrowInterest': false,
43
+ 'fetchBorrowRateHistories': false,
44
+ 'fetchBorrowRateHistory': false,
45
+ 'fetchClosedOrders': false,
46
+ 'fetchCrossBorrowRate': false,
47
+ 'fetchCrossBorrowRates': false,
48
+ 'fetchCurrencies': false,
49
+ 'fetchDepositAddress': false,
50
+ 'fetchDeposits': false,
51
+ 'fetchFundingHistory': false,
52
+ 'fetchFundingRate': false,
53
+ 'fetchFundingRateHistory': false,
54
+ 'fetchFundingRates': false,
55
+ 'fetchIndexOHLCV': false,
56
+ 'fetchIsolatedBorrowRate': false,
57
+ 'fetchIsolatedBorrowRates': false,
58
+ 'fetchL2OrderBook': false,
59
+ 'fetchL3OrderBook': false,
60
+ 'fetchLedger': false,
61
+ 'fetchLedgerEntry': false,
62
+ 'fetchLeverageTiers': false,
63
+ 'fetchMarkets': true,
64
+ 'fetchMarkOHLCV': false,
65
+ 'fetchMyTrades': false,
66
+ 'fetchOHLCV': true,
67
+ 'fetchOpenInterestHistory': false,
68
+ 'fetchOpenOrders': false,
69
+ 'fetchOrder': false,
70
+ 'fetchOrderBook': true,
71
+ 'fetchOrders': false,
72
+ 'fetchOrderTrades': 'emulated',
73
+ 'fetchPositions': false,
74
+ 'fetchPremiumIndexOHLCV': false,
75
+ 'fetchTicker': true,
76
+ 'fetchTickers': true,
77
+ 'fetchTime': false,
78
+ 'fetchTrades': false,
79
+ 'fetchTradingFee': false,
80
+ 'fetchTradingFees': false,
81
+ 'fetchWithdrawals': false,
82
+ 'setLeverage': false,
83
+ 'setMarginMode': false,
84
+ 'transfer': false,
85
+ 'withdraw': false,
86
+ },
87
+ 'comment': 'This comment is optional',
88
+ 'urls': {
89
+ 'logo': 'https://cdn.arz.digital/cr-odin/img/exchanges/bitunix/64x64.png',
90
+ 'api': {
91
+ 'market': 'https://openapi.bitunix.com/',
92
+ 'tickers': 'https://api.bitunix.com/',
93
+ },
94
+ 'www': 'https://www.bitunix.com/',
95
+ 'doc': [
96
+ 'https://openapidoc.bitunix.com/',
97
+ ],
98
+ },
99
+ 'timeframes': {
100
+ '1m': '1',
101
+ '5m': '5',
102
+ '15m': '15',
103
+ '30m': '30',
104
+ '1h': '60',
105
+ '3h': '180',
106
+ '4h': '240',
107
+ '12h': '720',
108
+ '1d': '1D',
109
+ '1w': '1W',
110
+ },
111
+ 'api': {
112
+ 'public': {
113
+ 'get': {
114
+ 'api/spot/v1/common/coin_pair/list/': 1,
115
+ 'web/api/v1/common/tickers/': 1,
116
+ },
117
+ },
118
+ },
119
+ 'fees': {
120
+ 'trading': {
121
+ 'tierBased': false,
122
+ 'percentage': true,
123
+ 'maker': this.parseNumber('0.001'),
124
+ 'taker': this.parseNumber('0.001'),
125
+ },
126
+ },
127
+ });
128
+ }
129
+ async fetchMarkets(params = {}) {
130
+ /**
131
+ * @method
132
+ * @name bitunix#fetchMarkets
133
+ * @description retrieves data on all markets for bitunix
134
+ * @see https://api-docs.bitunix.ir/#be8d9c51a2
135
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
136
+ * @returns {object[]} an array of objects representing market data
137
+ */
138
+ const response = await this.publicGetApiSpotV1CommonCoinPairList(params);
139
+ const markets = this.safeList(response, 'data');
140
+ const result = [];
141
+ for (let i = 0; i < markets.length; i++) {
142
+ const market = this.parseMarket(markets[i]);
143
+ result.push(market);
144
+ }
145
+ return result;
146
+ }
147
+ parseMarket(market) {
148
+ // {
149
+ // id: 1,
150
+ // symbol: "btcusdt",
151
+ // base: "BTC",
152
+ // baseIcon: "https://img.bitunix.com/config/kv/228408.png",
153
+ // quote: "USDT",
154
+ // quoteIcon: "https://img.bitunix.com/config/coin/USDT.png",
155
+ // basePrecision: 5,
156
+ // quotePrecision: 2,
157
+ // minPrice: "10.0000000000000000",
158
+ // minVolume: "0.0000500000000000",
159
+ // maxAmount: "500000.0000000000000000",
160
+ // minAmount: "0.0000000000000000",
161
+ // maxLimitOrderAmount: "1500000.0000000000000000",
162
+ // maxMarketOrderAmount: "2000000.0000000000000000",
163
+ // maxSlippage: "0.0500",
164
+ // premiumFactor: "0.0500",
165
+ // minBuyPriceOffset: "-0.8000",
166
+ // maxSellPriceOffset: "50.0000",
167
+ // isOpen: 1,
168
+ // isHot: 1,
169
+ // isRecommend: 1,
170
+ // isShow: 1,
171
+ // tradeArea: "USDT",
172
+ // sort: 1,
173
+ // openTime: null,
174
+ // ctime: "2023-05-12T18:03:08Z",
175
+ // precisions: [
176
+ // "0.0100000000000000",
177
+ // "0.1000000000000000",
178
+ // "1.0000000000000000",
179
+ // "10.0000000000000000",
180
+ // "100.0000000000000000"
181
+ // ]
182
+ // }
183
+ const baseId = this.safeString(market, 'base');
184
+ const quoteId = this.safeString(market, 'quote');
185
+ const base = this.safeCurrencyCode(baseId);
186
+ const quote = this.safeCurrencyCode(quoteId);
187
+ const id = (base + quote);
188
+ return {
189
+ 'id': id,
190
+ 'symbol': base + '/' + quote,
191
+ 'base': base,
192
+ 'quote': quote,
193
+ 'settle': undefined,
194
+ 'baseId': baseId,
195
+ 'quoteId': quoteId,
196
+ 'settleId': undefined,
197
+ 'type': 'spot',
198
+ 'spot': true,
199
+ 'margin': false,
200
+ 'swap': false,
201
+ 'future': false,
202
+ 'option': false,
203
+ 'active': true,
204
+ 'contract': false,
205
+ 'linear': undefined,
206
+ 'inverse': undefined,
207
+ 'contractSize': undefined,
208
+ 'expiry': undefined,
209
+ 'expiryDatetime': undefined,
210
+ 'strike': undefined,
211
+ 'optionType': undefined,
212
+ 'precision': {
213
+ 'amount': undefined,
214
+ 'price': undefined,
215
+ },
216
+ 'limits': {
217
+ 'leverage': {
218
+ 'min': undefined,
219
+ 'max': undefined,
220
+ },
221
+ 'amount': {
222
+ 'min': undefined,
223
+ 'max': undefined,
224
+ },
225
+ 'price': {
226
+ 'min': undefined,
227
+ 'max': undefined,
228
+ },
229
+ 'cost': {
230
+ 'min': undefined,
231
+ 'max': undefined,
232
+ },
233
+ },
234
+ 'created': undefined,
235
+ 'info': market,
236
+ };
237
+ }
238
+ async fetchTickers(symbols = undefined, params = {}) {
239
+ /**
240
+ * @method
241
+ * @name bitunix#fetchTickers
242
+ * @description fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
243
+ * @see https://api-docs.bitunix.ir/#be8d9c51a2
244
+ * @param {string[]|undefined} symbols unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
245
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
246
+ * @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
247
+ */
248
+ await this.loadMarkets();
249
+ if (symbols !== undefined) {
250
+ symbols = this.marketSymbols(symbols);
251
+ }
252
+ const response = await this.publicGetWebApiV1CommonTickers();
253
+ const markets = this.safeList(response, 'data');
254
+ const result = {};
255
+ for (let i = 0; i < markets.length; i++) {
256
+ const ticker = this.parseTicker(markets[i]);
257
+ const symbol = ticker['symbol'];
258
+ result[symbol] = ticker;
259
+ }
260
+ return this.filterByArrayTickers(result, 'symbol', symbols);
261
+ }
262
+ async fetchTicker(symbol, params = {}) {
263
+ /**
264
+ * @method
265
+ * @name bitunix#fetchTicker
266
+ * @description fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
267
+ * @see https://api-docs.bitunix.ir/#be8d9c51a2
268
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
269
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
270
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
271
+ */
272
+ const ticker = await this.fetchTickers([symbol]);
273
+ return ticker[symbol];
274
+ }
275
+ parseTicker(ticker, market = undefined) {
276
+ // {
277
+ // symbol: "BTCUSDT",
278
+ // base: "BTC",
279
+ // quote: "USDT",
280
+ // close: "112832.34",
281
+ // rose24h: "0.2276416293",
282
+ // volume: "228310106.7861019"
283
+ // },
284
+ const marketType = 'spot';
285
+ const marketId = this.safeString(ticker, 'symbol');
286
+ const symbol = this.safeSymbol(marketId, market, undefined, marketType);
287
+ const last = this.safeFloat(ticker, 'close', 0);
288
+ const change = this.safeFloat(ticker, 'rose24h', 0);
289
+ const quoteVolume = this.safeFloat(ticker, 'volume', 0);
290
+ let baseVolume = 0;
291
+ if (last !== 0) {
292
+ baseVolume = quoteVolume / last;
293
+ }
294
+ return this.safeTicker({
295
+ 'symbol': symbol,
296
+ 'timestamp': undefined,
297
+ 'datetime': undefined,
298
+ 'high': undefined,
299
+ 'low': undefined,
300
+ 'bid': undefined,
301
+ 'bidVolume': undefined,
302
+ 'ask': undefined,
303
+ 'askVolume': undefined,
304
+ 'vwap': undefined,
305
+ 'open': undefined,
306
+ 'close': last,
307
+ 'last': last,
308
+ 'previousClose': undefined,
309
+ 'change': change,
310
+ 'percentage': change,
311
+ 'average': undefined,
312
+ 'baseVolume': baseVolume,
313
+ 'quoteVolume': quoteVolume,
314
+ 'info': ticker,
315
+ }, market);
316
+ }
317
+ sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
318
+ let url = this.urls['api']['market'] + '/' + path;
319
+ if (path === 'web/api/v1/common/tickers/') {
320
+ url = this.urls['api']['tickers'] + '/' + path;
321
+ }
322
+ headers = { 'Content-Type': 'application/json' };
323
+ return { 'url': url, 'method': method, 'body': body, 'headers': headers };
324
+ }
325
+ }
326
+
327
+ exports["default"] = bitunix;
@@ -1634,7 +1634,7 @@ class xt extends xt$1["default"] {
1634
1634
  response = await this.publicInverseGetFutureMarketV1PublicQAggTicker(this.extend(request, params));
1635
1635
  }
1636
1636
  else {
1637
- response = await this.publicSpotGetTicker24h(this.extend(request, params));
1637
+ response = await this.publicSpotGetTicker(this.extend(request, params));
1638
1638
  }
1639
1639
  //
1640
1640
  // spot
@@ -1897,7 +1897,7 @@ class xt extends xt$1["default"] {
1897
1897
  'change': this.safeNumber(ticker, 'cv'),
1898
1898
  'percentage': this.parseNumber(percentage),
1899
1899
  'average': undefined,
1900
- 'baseVolume': undefined,
1900
+ 'baseVolume': this.safeNumber2(ticker, 'a', 'q'),
1901
1901
  'quoteVolume': this.safeNumber2(ticker, 'a', 'v'),
1902
1902
  'info': ticker,
1903
1903
  }, market);
package/js/ccxt.d.ts CHANGED
@@ -4,7 +4,7 @@ import * as functions from './src/base/functions.js';
4
4
  import * as errors from './src/base/errors.js';
5
5
  import type { Int, int, Str, Strings, Num, Bool, IndexType, OrderSide, OrderType, MarketType, SubType, Dict, NullableDict, List, NullableList, Fee, OHLCV, OHLCVC, implicitReturnType, Market, Currency, Dictionary, MinMax, FeeInterface, TradingFeeInterface, MarketMarginModes, MarketInterface, Trade, Order, OrderBook, Ticker, Transaction, Tickers, CurrencyInterface, Balance, BalanceAccount, Account, PartialBalances, Balances, DepositAddress, WithdrawalResponse, FundingRate, FundingRates, Position, BorrowInterest, LeverageTier, LedgerEntry, DepositWithdrawFeeNetwork, DepositWithdrawFee, TransferEntry, CrossBorrowRate, IsolatedBorrowRate, FundingRateHistory, OpenInterest, Liquidation, OrderRequest, CancellationRequest, FundingHistory, MarginMode, Greeks, Conversion, Option, LastPrice, Leverage, MarginModification, Leverages, LastPrices, Currencies, TradingFees, MarginModes, OptionChain, IsolatedBorrowRates, CrossBorrowRates, LeverageTiers, LongShortRatio, OrderBooks, OpenInterests, ConstructorArgs } from './src/base/types.js';
6
6
  import { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, RestrictedLocation, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, UnsubscribeError } from './src/base/errors.js';
7
- declare const version = "4.8.2";
7
+ declare const version = "4.9.3";
8
8
  import abantether from './src/abantether.js';
9
9
  import afratether from './src/afratether.js';
10
10
  import alpaca from './src/alpaca.js';
@@ -38,6 +38,7 @@ import bitso from './src/bitso.js';
38
38
  import bitstamp from './src/bitstamp.js';
39
39
  import bitteam from './src/bitteam.js';
40
40
  import bittrade from './src/bittrade.js';
41
+ import bitunix from './src/bitunix.js';
41
42
  import bitvavo from './src/bitvavo.js';
42
43
  import blockchaincom from './src/blockchaincom.js';
43
44
  import blofin from './src/blofin.js';
@@ -247,6 +248,7 @@ declare const exchanges: {
247
248
  bitstamp: typeof bitstamp;
248
249
  bitteam: typeof bitteam;
249
250
  bittrade: typeof bittrade;
251
+ bitunix: typeof bitunix;
250
252
  bitvavo: typeof bitvavo;
251
253
  blockchaincom: typeof blockchaincom;
252
254
  blofin: typeof blofin;
@@ -539,6 +541,7 @@ declare const ccxt: {
539
541
  bitstamp: typeof bitstamp;
540
542
  bitteam: typeof bitteam;
541
543
  bittrade: typeof bittrade;
544
+ bitunix: typeof bitunix;
542
545
  bitvavo: typeof bitvavo;
543
546
  blockchaincom: typeof blockchaincom;
544
547
  blofin: typeof blofin;
@@ -642,5 +645,5 @@ declare const ccxt: {
642
645
  zaif: typeof zaif;
643
646
  zonda: typeof zonda;
644
647
  } & typeof functions & typeof errors;
645
- export { version, Exchange, exchanges, pro, Precise, functions, errors, BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, RestrictedLocation, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, UnsubscribeError, Int, int, Str, Strings, Num, Bool, IndexType, OrderSide, OrderType, MarketType, SubType, Dict, NullableDict, List, NullableList, Fee, OHLCV, OHLCVC, implicitReturnType, Market, Currency, ConstructorArgs, Dictionary, MinMax, FeeInterface, TradingFeeInterface, MarketMarginModes, MarketInterface, Trade, Order, OrderBook, OrderBooks, Ticker, Transaction, Tickers, CurrencyInterface, Balance, BalanceAccount, Account, PartialBalances, Balances, DepositAddress, WithdrawalResponse, FundingRate, FundingRates, Position, BorrowInterest, LeverageTier, LedgerEntry, DepositWithdrawFeeNetwork, DepositWithdrawFee, TransferEntry, CrossBorrowRate, IsolatedBorrowRate, FundingRateHistory, OpenInterest, OpenInterests, Liquidation, OrderRequest, CancellationRequest, FundingHistory, MarginMode, Greeks, Conversion, Option, LastPrice, Leverage, LongShortRatio, MarginModification, Leverages, LastPrices, Currencies, TradingFees, MarginModes, OptionChain, IsolatedBorrowRates, CrossBorrowRates, LeverageTiers, abantether, afratether, alpaca, apex, arzinja, arzplus, ascendex, bequant, bigone, binance, binancecoinm, binanceus, binanceusdm, bingx, bit24, bit2c, bitbank, bitbns, bitfinex, bitflyer, bitget, bithumb, bitimen, bitir, bitmart, bitmex, bitopro, bitpin, bitrue, bitso, bitstamp, bitteam, bittrade, bitvavo, blockchaincom, blofin, btcalpha, btcbox, btcmarkets, btcturk, bybit, cex, coinbase, coinbaseadvanced, coinbaseexchange, coinbaseinternational, coincatch, coincheck, coinex, coinmate, coinmetro, coinone, coinsph, coinspot, cryptocom, cryptomus, defx, delta, deribit, derive, digifinex, ellipx, eterex, excoino, exir, exmo, exnovin, farhadexchange, fmfwio, foxbit, gate, gateio, gemini, hashkey, hibachi, hitbtc, hitobit, hollaex, htx, huobi, hyperliquid, independentreserve, indodax, jibitex, kcex, kraken, krakenfutures, kucoin, kucoinfutures, latoken, lbank, luno, mercado, mexc, modetrade, myokx, ndax, nobitex, novadax, oceanex, okcoin, okexchange, okx, okxus, ompfinex, onetrading, oxfun, p2b, paradex, paymium, phemex, poloniex, probit, ramzinex, sarmayex, sarrafex, tabdeal, tetherland, timex, tokocrypto, toobit, tradeogre, twox, ubitex, upbit, vertex, wallex, wavesexchange, whitebit, woo, woofipro, xt, yobit, zaif, zonda, };
648
+ export { version, Exchange, exchanges, pro, Precise, functions, errors, BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, RestrictedLocation, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, UnsubscribeError, Int, int, Str, Strings, Num, Bool, IndexType, OrderSide, OrderType, MarketType, SubType, Dict, NullableDict, List, NullableList, Fee, OHLCV, OHLCVC, implicitReturnType, Market, Currency, ConstructorArgs, Dictionary, MinMax, FeeInterface, TradingFeeInterface, MarketMarginModes, MarketInterface, Trade, Order, OrderBook, OrderBooks, Ticker, Transaction, Tickers, CurrencyInterface, Balance, BalanceAccount, Account, PartialBalances, Balances, DepositAddress, WithdrawalResponse, FundingRate, FundingRates, Position, BorrowInterest, LeverageTier, LedgerEntry, DepositWithdrawFeeNetwork, DepositWithdrawFee, TransferEntry, CrossBorrowRate, IsolatedBorrowRate, FundingRateHistory, OpenInterest, OpenInterests, Liquidation, OrderRequest, CancellationRequest, FundingHistory, MarginMode, Greeks, Conversion, Option, LastPrice, Leverage, LongShortRatio, MarginModification, Leverages, LastPrices, Currencies, TradingFees, MarginModes, OptionChain, IsolatedBorrowRates, CrossBorrowRates, LeverageTiers, abantether, afratether, alpaca, apex, arzinja, arzplus, ascendex, bequant, bigone, binance, binancecoinm, binanceus, binanceusdm, bingx, bit24, bit2c, bitbank, bitbns, bitfinex, bitflyer, bitget, bithumb, bitimen, bitir, bitmart, bitmex, bitopro, bitpin, bitrue, bitso, bitstamp, bitteam, bittrade, bitunix, bitvavo, blockchaincom, blofin, btcalpha, btcbox, btcmarkets, btcturk, bybit, cex, coinbase, coinbaseadvanced, coinbaseexchange, coinbaseinternational, coincatch, coincheck, coinex, coinmate, coinmetro, coinone, coinsph, coinspot, cryptocom, cryptomus, defx, delta, deribit, derive, digifinex, ellipx, eterex, excoino, exir, exmo, exnovin, farhadexchange, fmfwio, foxbit, gate, gateio, gemini, hashkey, hibachi, hitbtc, hitobit, hollaex, htx, huobi, hyperliquid, independentreserve, indodax, jibitex, kcex, kraken, krakenfutures, kucoin, kucoinfutures, latoken, lbank, luno, mercado, mexc, modetrade, myokx, ndax, nobitex, novadax, oceanex, okcoin, okexchange, okx, okxus, ompfinex, onetrading, oxfun, p2b, paradex, paymium, phemex, poloniex, probit, ramzinex, sarmayex, sarrafex, tabdeal, tetherland, timex, tokocrypto, toobit, tradeogre, twox, ubitex, upbit, vertex, wallex, wavesexchange, whitebit, woo, woofipro, xt, yobit, zaif, zonda, };
646
649
  export default ccxt;
package/js/ccxt.js CHANGED
@@ -38,7 +38,7 @@ import * as errors from './src/base/errors.js';
38
38
  import { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, RestrictedLocation, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, UnsubscribeError } from './src/base/errors.js';
39
39
  //-----------------------------------------------------------------------------
40
40
  // this is updated by vss.js when building
41
- const version = '4.8.2';
41
+ const version = '4.9.3';
42
42
  Exchange.ccxtVersion = version;
43
43
  //-----------------------------------------------------------------------------
44
44
  import abantether from './src/abantether.js';
@@ -74,6 +74,7 @@ import bitso from './src/bitso.js';
74
74
  import bitstamp from './src/bitstamp.js';
75
75
  import bitteam from './src/bitteam.js';
76
76
  import bittrade from './src/bittrade.js';
77
+ import bitunix from './src/bitunix.js';
77
78
  import bitvavo from './src/bitvavo.js';
78
79
  import blockchaincom from './src/blockchaincom.js';
79
80
  import blofin from './src/blofin.js';
@@ -284,6 +285,7 @@ const exchanges = {
284
285
  'bitstamp': bitstamp,
285
286
  'bitteam': bitteam,
286
287
  'bittrade': bittrade,
288
+ 'bitunix': bitunix,
287
289
  'bitvavo': bitvavo,
288
290
  'blockchaincom': blockchaincom,
289
291
  'blofin': blofin,
@@ -474,6 +476,6 @@ pro.exchanges = Object.keys(pro);
474
476
  pro['Exchange'] = Exchange; // now the same for rest and ts
475
477
  //-----------------------------------------------------------------------------
476
478
  const ccxt = Object.assign({ version, Exchange, Precise, 'exchanges': Object.keys(exchanges), 'pro': pro }, exchanges, functions, errors);
477
- export { version, Exchange, exchanges, pro, Precise, functions, errors, BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, RestrictedLocation, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, UnsubscribeError, abantether, afratether, alpaca, apex, arzinja, arzplus, ascendex, bequant, bigone, binance, binancecoinm, binanceus, binanceusdm, bingx, bit24, bit2c, bitbank, bitbns, bitfinex, bitflyer, bitget, bithumb, bitimen, bitir, bitmart, bitmex, bitopro, bitpin, bitrue, bitso, bitstamp, bitteam, bittrade, bitvavo, blockchaincom, blofin, btcalpha, btcbox, btcmarkets, btcturk, bybit, cex, coinbase, coinbaseadvanced, coinbaseexchange, coinbaseinternational, coincatch, coincheck, coinex, coinmate, coinmetro, coinone, coinsph, coinspot, cryptocom, cryptomus, defx, delta, deribit, derive, digifinex, ellipx, eterex, excoino, exir, exmo, exnovin, farhadexchange, fmfwio, foxbit, gate, gateio, gemini, hashkey, hibachi, hitbtc, hitobit, hollaex, htx, huobi, hyperliquid, independentreserve, indodax, jibitex, kcex, kraken, krakenfutures, kucoin, kucoinfutures, latoken, lbank, luno, mercado, mexc, modetrade, myokx, ndax, nobitex, novadax, oceanex, okcoin, okexchange, okx, okxus, ompfinex, onetrading, oxfun, p2b, paradex, paymium, phemex, poloniex, probit, ramzinex, sarmayex, sarrafex, tabdeal, tetherland, timex, tokocrypto, toobit, tradeogre, twox, ubitex, upbit, vertex, wallex, wavesexchange, whitebit, woo, woofipro, xt, yobit, zaif, zonda, };
479
+ export { version, Exchange, exchanges, pro, Precise, functions, errors, BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, RestrictedLocation, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, UnsubscribeError, abantether, afratether, alpaca, apex, arzinja, arzplus, ascendex, bequant, bigone, binance, binancecoinm, binanceus, binanceusdm, bingx, bit24, bit2c, bitbank, bitbns, bitfinex, bitflyer, bitget, bithumb, bitimen, bitir, bitmart, bitmex, bitopro, bitpin, bitrue, bitso, bitstamp, bitteam, bittrade, bitunix, bitvavo, blockchaincom, blofin, btcalpha, btcbox, btcmarkets, btcturk, bybit, cex, coinbase, coinbaseadvanced, coinbaseexchange, coinbaseinternational, coincatch, coincheck, coinex, coinmate, coinmetro, coinone, coinsph, coinspot, cryptocom, cryptomus, defx, delta, deribit, derive, digifinex, ellipx, eterex, excoino, exir, exmo, exnovin, farhadexchange, fmfwio, foxbit, gate, gateio, gemini, hashkey, hibachi, hitbtc, hitobit, hollaex, htx, huobi, hyperliquid, independentreserve, indodax, jibitex, kcex, kraken, krakenfutures, kucoin, kucoinfutures, latoken, lbank, luno, mercado, mexc, modetrade, myokx, ndax, nobitex, novadax, oceanex, okcoin, okexchange, okx, okxus, ompfinex, onetrading, oxfun, p2b, paradex, paymium, phemex, poloniex, probit, ramzinex, sarmayex, sarrafex, tabdeal, tetherland, timex, tokocrypto, toobit, tradeogre, twox, ubitex, upbit, vertex, wallex, wavesexchange, whitebit, woo, woofipro, xt, yobit, zaif, zonda, };
478
480
  export default ccxt;
479
481
  //-----------------------------------------------------------------------------