ccxt-ir 4.23.2 → 4.24.1

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
@@ -23,6 +23,7 @@ var asacoine = require('./src/asacoine.js');
23
23
  var ascendex = require('./src/ascendex.js');
24
24
  var asretether = require('./src/asretether.js');
25
25
  var baazar = require('./src/baazar.js');
26
+ var balinex = require('./src/balinex.js');
26
27
  var bequant = require('./src/bequant.js');
27
28
  var bidarz = require('./src/bidarz.js');
28
29
  var bigone = require('./src/bigone.js');
@@ -264,7 +265,7 @@ var xt$1 = require('./src/pro/xt.js');
264
265
 
265
266
  //-----------------------------------------------------------------------------
266
267
  // this is updated by vss.js when building
267
- const version = '4.23.2';
268
+ const version = '4.24.1';
268
269
  Exchange["default"].ccxtVersion = version;
269
270
  const exchanges = {
270
271
  'abantether': abantether["default"],
@@ -278,6 +279,7 @@ const exchanges = {
278
279
  'ascendex': ascendex["default"],
279
280
  'asretether': asretether["default"],
280
281
  'baazar': baazar["default"],
282
+ 'balinex': balinex["default"],
281
283
  'bequant': bequant["default"],
282
284
  'bidarz': bidarz["default"],
283
285
  'bigone': bigone["default"],
@@ -581,6 +583,7 @@ exports.asacoine = asacoine["default"];
581
583
  exports.ascendex = ascendex["default"];
582
584
  exports.asretether = asretether["default"];
583
585
  exports.baazar = baazar["default"];
586
+ exports.balinex = balinex["default"];
584
587
  exports.bequant = bequant["default"];
585
588
  exports.bidarz = bidarz["default"];
586
589
  exports.bigone = bigone["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;
@@ -0,0 +1,227 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var balinex$1 = require('./abstract/balinex.js');
6
+
7
+ // ----------------------------------------------------------------------------
8
+ // ---------------------------------------------------------------------------
9
+ /**
10
+ * @class balinex
11
+ * @augments Exchange
12
+ */
13
+ class balinex extends balinex$1["default"] {
14
+ describe() {
15
+ return this.deepExtend(super.describe(), {
16
+ 'id': 'balinex',
17
+ 'name': 'Balinex',
18
+ 'countries': ['IR'],
19
+ 'rateLimit': 1000,
20
+ 'version': '1',
21
+ 'certified': false,
22
+ 'pro': false,
23
+ 'has': {
24
+ 'CORS': undefined,
25
+ 'spot': true,
26
+ 'margin': false,
27
+ 'swap': false,
28
+ 'future': false,
29
+ 'option': false,
30
+ 'fetchMarkets': true,
31
+ 'fetchTicker': true,
32
+ 'fetchTickers': true,
33
+ },
34
+ 'urls': {
35
+ 'logo': 'https://balinex.com/favicon.ico',
36
+ 'api': {
37
+ 'public': 'https://api.balinex.com',
38
+ },
39
+ 'www': 'https://balinex.com',
40
+ 'doc': [
41
+ 'https://api.balinex.com/public/markets',
42
+ ],
43
+ },
44
+ 'api': {
45
+ 'public': {
46
+ 'get': {
47
+ 'public/markets': 1,
48
+ },
49
+ },
50
+ },
51
+ });
52
+ }
53
+ async fetchMarkets(params = {}) {
54
+ /**
55
+ * @method
56
+ * @name balinex#fetchMarkets
57
+ * @description retrieves data on all markets for balinex
58
+ * @see https://api.balinex.com/public/markets
59
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
60
+ * @returns {object[]} an array of objects representing market data
61
+ */
62
+ const response = await this.publicGetPublicMarkets(params);
63
+ const data = this.safeDict(response, 'result', {});
64
+ const items = this.safeList(data, 'items', []);
65
+ const result = [];
66
+ for (let i = 0; i < items.length; i++) {
67
+ result.push(this.parseMarket(items[i]));
68
+ }
69
+ return result;
70
+ }
71
+ parseMarket(market) {
72
+ // {
73
+ // "productId": "ADAUSDT",
74
+ // "baseCurrency": "ADA",
75
+ // "quoteCurrency": "USDT",
76
+ // "baseScale": 2,
77
+ // "quoteScale": 4,
78
+ // "lastPrice": "0.2047",
79
+ // "openPrice24h": "0.2089",
80
+ // "highPrice24h": "0.2103",
81
+ // "lowPrice24h": "0.2012",
82
+ // "volume24h": "1530110.38",
83
+ // "quoteVolume24h": "313213.5968",
84
+ // "priceChange24h": "-0.0042",
85
+ // "percentChange24h": "-2.01",
86
+ // "allowBuy": true,
87
+ // "allowSell": true
88
+ // }
89
+ const id = this.safeString(market, 'productId');
90
+ const baseId = this.safeString(market, 'baseCurrency');
91
+ const quoteId = this.safeString(market, 'quoteCurrency');
92
+ const base = this.safeCurrencyCode(baseId);
93
+ const quote = this.safeCurrencyCode(quoteId);
94
+ const allowBuy = this.safeBool(market, 'allowBuy', false);
95
+ const allowSell = this.safeBool(market, 'allowSell', false);
96
+ return {
97
+ 'id': id,
98
+ 'symbol': base + '/' + quote,
99
+ 'base': base,
100
+ 'quote': quote,
101
+ 'settle': undefined,
102
+ 'baseId': baseId,
103
+ 'quoteId': quoteId,
104
+ 'settleId': undefined,
105
+ 'type': 'spot',
106
+ 'spot': true,
107
+ 'margin': false,
108
+ 'swap': false,
109
+ 'future': false,
110
+ 'option': false,
111
+ 'active': allowBuy && allowSell,
112
+ 'contract': false,
113
+ 'linear': undefined,
114
+ 'inverse': undefined,
115
+ 'contractSize': undefined,
116
+ 'expiry': undefined,
117
+ 'expiryDatetime': undefined,
118
+ 'strike': undefined,
119
+ 'optionType': undefined,
120
+ 'precision': {
121
+ 'amount': this.parseNumber(this.parsePrecision(this.safeString(market, 'baseScale'))),
122
+ 'price': this.parseNumber(this.parsePrecision(this.safeString(market, 'quoteScale'))),
123
+ },
124
+ 'limits': {
125
+ 'leverage': { 'min': undefined, 'max': undefined },
126
+ 'amount': { 'min': undefined, 'max': undefined },
127
+ 'price': { 'min': undefined, 'max': undefined },
128
+ 'cost': { 'min': undefined, 'max': undefined },
129
+ },
130
+ 'created': undefined,
131
+ 'info': market,
132
+ };
133
+ }
134
+ async fetchTickers(symbols = undefined, params = {}) {
135
+ /**
136
+ * @method
137
+ * @name balinex#fetchTickers
138
+ * @description fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
139
+ * @see https://api.balinex.com/public/markets
140
+ * @param {string[]|undefined} symbols unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
141
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
142
+ * @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
143
+ */
144
+ await this.loadMarkets();
145
+ if (symbols !== undefined) {
146
+ symbols = this.marketSymbols(symbols);
147
+ }
148
+ const response = await this.publicGetPublicMarkets(params);
149
+ const data = this.safeDict(response, 'result', {});
150
+ const items = this.safeList(data, 'items', []);
151
+ const result = {};
152
+ for (let i = 0; i < items.length; i++) {
153
+ const ticker = this.parseTicker(items[i]);
154
+ const symbol = ticker['symbol'];
155
+ result[symbol] = ticker;
156
+ }
157
+ return this.filterByArrayTickers(result, 'symbol', symbols);
158
+ }
159
+ async fetchTicker(symbol, params = {}) {
160
+ /**
161
+ * @method
162
+ * @name balinex#fetchTicker
163
+ * @description fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
164
+ * @see https://api.balinex.com/public/markets
165
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
166
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
167
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
168
+ */
169
+ const ticker = await this.fetchTickers([symbol], params);
170
+ return ticker[symbol];
171
+ }
172
+ parseTicker(ticker, market = undefined) {
173
+ // {
174
+ // "productId": "BTCIRT",
175
+ // "baseCurrency": "BTC",
176
+ // "quoteCurrency": "IRT",
177
+ // "baseScale": 7,
178
+ // "quoteScale": 0,
179
+ // "lastPrice": "21703802224",
180
+ // "openPrice24h": "21816018777",
181
+ // "highPrice24h": "21823312074",
182
+ // "lowPrice24h": "21341032776",
183
+ // "volume24h": "1.4538258",
184
+ // "quoteVolume24h": "31553547631",
185
+ // "priceChange24h": "-112216553",
186
+ // "percentChange24h": "-0.51",
187
+ // "allowBuy": true,
188
+ // "allowSell": true
189
+ // }
190
+ const marketId = this.safeString(ticker, 'productId');
191
+ market = this.safeMarket(marketId, market);
192
+ const last = this.safeString(ticker, 'lastPrice');
193
+ return this.safeTicker({
194
+ 'symbol': market['symbol'],
195
+ 'timestamp': undefined,
196
+ 'datetime': undefined,
197
+ 'high': this.safeString(ticker, 'highPrice24h'),
198
+ 'low': this.safeString(ticker, 'lowPrice24h'),
199
+ 'bid': undefined,
200
+ 'bidVolume': undefined,
201
+ 'ask': undefined,
202
+ 'askVolume': undefined,
203
+ 'vwap': undefined,
204
+ 'open': this.safeString(ticker, 'openPrice24h'),
205
+ 'close': last,
206
+ 'last': last,
207
+ 'previousClose': undefined,
208
+ 'change': this.safeString(ticker, 'priceChange24h'),
209
+ 'percentage': this.safeString(ticker, 'percentChange24h'),
210
+ 'average': undefined,
211
+ 'baseVolume': this.safeString(ticker, 'volume24h'),
212
+ 'quoteVolume': this.safeString(ticker, 'quoteVolume24h'),
213
+ 'info': ticker,
214
+ }, market);
215
+ }
216
+ sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
217
+ let url = this.urls['api'][api] + '/' + this.implodeParams(path, params);
218
+ const query = this.omit(params, this.extractParams(path));
219
+ if (Object.keys(query).length) {
220
+ url += '?' + this.urlencode(query);
221
+ }
222
+ headers = { 'Accept': 'application/json' };
223
+ return { 'url': url, 'method': method, 'body': body, 'headers': headers };
224
+ }
225
+ }
226
+
227
+ exports["default"] = balinex;
@@ -79,6 +79,7 @@ class bitpin extends bitpin$1["default"] {
79
79
  'fetchTradingFee': false,
80
80
  'fetchTradingFees': false,
81
81
  'fetchWithdrawals': false,
82
+ 'otc': true,
82
83
  'setLeverage': false,
83
84
  'setMarginMode': false,
84
85
  'transfer': false,
@@ -135,18 +136,23 @@ class bitpin extends bitpin$1["default"] {
135
136
  * @description retrieves data on all markets for bitpin
136
137
  * @see https://api-docs.bitpin.ir/#be8d9c51a2
137
138
  * @param {object} [params] extra parameters specific to the exchange API endpoint
139
+ * @param {string} [params.type] market type, 'spot' (default) or 'otc'
138
140
  * @returns {object[]} an array of objects representing market data
139
141
  */
140
- const response = await this.publicGetV1MktMarkets(params);
142
+ const type = this.safeString(params, 'type', 'spot');
143
+ const request = this.omit(params, ['type']);
144
+ const response = await this.publicGetV1MktMarkets(request);
141
145
  const markets = this.safeList(response, 'results');
146
+ const tradableKey = (type === 'otc') ? 'otc_tradable' : 'tradable';
142
147
  const result = [];
143
148
  for (let i = 0; i < markets.length; i++) {
144
- const market = this.parseMarket(markets[i]);
145
- result.push(market);
149
+ if (this.safeBool(markets[i], tradableKey, false)) {
150
+ result.push(this.parseMarket(markets[i], type));
151
+ }
146
152
  }
147
153
  return result;
148
154
  }
149
- parseMarket(market) {
155
+ parseMarket(market, type = 'spot') {
150
156
  const id = this.safeString(market, 'id');
151
157
  const baseCurrency = this.safeDict(market, 'currency1');
152
158
  const quoteCurrency = this.safeDict(market, 'currency2');
@@ -156,6 +162,7 @@ class bitpin extends bitpin$1["default"] {
156
162
  const quote = this.safeCurrencyCode(quoteId);
157
163
  baseId = baseId.toLowerCase();
158
164
  quoteId = quoteId.toLowerCase();
165
+ const tradableKey = (type === 'otc') ? 'otc_tradable' : 'tradable';
159
166
  return {
160
167
  'id': id,
161
168
  'symbol': base + '/' + quote,
@@ -165,13 +172,13 @@ class bitpin extends bitpin$1["default"] {
165
172
  'baseId': baseId,
166
173
  'quoteId': quoteId,
167
174
  'settleId': undefined,
168
- 'type': 'spot',
169
- 'spot': true,
175
+ 'type': type,
176
+ 'spot': type === 'spot',
170
177
  'margin': false,
171
178
  'swap': false,
172
179
  'future': false,
173
180
  'option': false,
174
- 'active': true,
181
+ 'active': this.safeBool(market, tradableKey, false),
175
182
  'contract': false,
176
183
  'linear': undefined,
177
184
  'inverse': undefined,
@@ -214,19 +221,20 @@ class bitpin extends bitpin$1["default"] {
214
221
  * @see https://api-docs.bitpin.ir/#be8d9c51a2
215
222
  * @param {string[]|undefined} symbols unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
216
223
  * @param {object} [params] extra parameters specific to the exchange API endpoint
224
+ * @param {string} [params.type] market type, 'spot' (default) or 'otc'
217
225
  * @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
218
226
  */
219
- await this.loadMarkets();
220
- if (symbols !== undefined) {
221
- symbols = this.marketSymbols(symbols);
222
- }
223
- const response = await this.publicGetV1MktMarkets(params);
227
+ const type = this.safeString(params, 'type', 'spot');
228
+ const request = this.omit(params, ['type']);
229
+ await this.loadMarkets(false, { 'type': type });
230
+ const response = await this.publicGetV1MktMarkets(request);
224
231
  const markets = this.safeList(response, 'results');
232
+ const tradableKey = (type === 'otc') ? 'otc_tradable' : 'tradable';
225
233
  const result = {};
226
234
  for (let i = 0; i < markets.length; i++) {
227
- const is_active = this.safeBool(markets[i], 'tradable');
228
- if (is_active === true) {
229
- const ticker = this.parseTicker(markets[i]);
235
+ if (this.safeBool(markets[i], tradableKey, false)) {
236
+ const market = this.parseMarket(markets[i], type);
237
+ const ticker = this.parseTicker(markets[i], market);
230
238
  const symbol = ticker['symbol'];
231
239
  result[symbol] = ticker;
232
240
  }
@@ -241,9 +249,10 @@ class bitpin extends bitpin$1["default"] {
241
249
  * @see https://api-docs.bitpin.ir/#be8d9c51a2
242
250
  * @param {string} symbol unified symbol of the market to fetch the ticker for
243
251
  * @param {object} [params] extra parameters specific to the exchange API endpoint
252
+ * @param {string} [params.type] market type, 'spot' (default) or 'otc'
244
253
  * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
245
254
  */
246
- const ticker = await this.fetchTickers([symbol]);
255
+ const ticker = await this.fetchTickers([symbol], params);
247
256
  return ticker[symbol];
248
257
  }
249
258
  parseTicker(ticker, market = undefined) {
@@ -360,16 +369,17 @@ class bitpin extends bitpin$1["default"] {
360
369
  // 'popularity_weight': 0,
361
370
  // 'freshness_weight': 0,
362
371
  // }
363
- const marketType = 'spot';
364
- const priceInfo = this.safeValue(ticker, 'order_book_info');
372
+ const marketType = this.safeString(market, 'type', 'spot');
373
+ const priceInfoKey = (marketType === 'otc') ? 'price_info' : 'order_book_info';
374
+ const priceInfo = this.safeDict(ticker, priceInfoKey, {});
365
375
  const marketId = this.safeString(ticker, 'id');
366
376
  const symbol = this.safeSymbol(marketId, market, undefined, marketType);
367
- const high = this.safeFloat(priceInfo, 'max', 0);
368
- const low = this.safeFloat(priceInfo, 'min', 0);
369
- const last = this.safeFloat(priceInfo, 'price', 0);
370
- const change = this.safeFloat(priceInfo, 'change', 0);
371
- const baseVolume = this.safeFloat(priceInfo, 'amount', 0);
372
- const quoteVolume = this.safeFloat(priceInfo, 'value', 0);
377
+ const high = this.safeFloat(priceInfo, 'max');
378
+ const low = this.safeFloat(priceInfo, 'min');
379
+ const last = this.safeFloat(priceInfo, 'price');
380
+ const change = this.safeFloat(priceInfo, 'change');
381
+ const baseVolume = this.safeFloat(priceInfo, 'amount');
382
+ const quoteVolume = this.safeFloat(priceInfo, 'value');
373
383
  return this.safeTicker({
374
384
  'symbol': symbol,
375
385
  'timestamp': undefined,
@@ -78,6 +78,7 @@ class nobitex extends nobitex$1["default"] {
78
78
  'fetchTradingFee': false,
79
79
  'fetchTradingFees': false,
80
80
  'fetchWithdrawals': false,
81
+ 'otc': true,
81
82
  'setLeverage': false,
82
83
  'setMarginMode': false,
83
84
  'transfer': false,
@@ -137,9 +138,12 @@ class nobitex extends nobitex$1["default"] {
137
138
  * @description retrieves data on all markets for nobitex
138
139
  * @see https://apidocs.nobitex.ir/#6ae2dae4a2
139
140
  * @param {object} [params] extra parameters specific to the exchange API endpoint
141
+ * @param {string} [params.type] market type, 'spot' (default) or 'otc'; both use market/stats
140
142
  * @returns {object[]} an array of objects representing market data
141
143
  */
142
- const response = await this.publicGetMarketStats();
144
+ const type = this.safeString(params, 'type', 'spot');
145
+ const request = this.omit(params, ['type']);
146
+ const response = await this.publicGetMarketStats(request);
143
147
  const markets = this.safeDict(response, 'stats');
144
148
  const marketKeys = Object.keys(markets);
145
149
  const result = [];
@@ -148,13 +152,13 @@ class nobitex extends nobitex$1["default"] {
148
152
  if (markets[symbol]['isClosed']) {
149
153
  continue;
150
154
  }
151
- markets[symbol]['symbol'] = symbol;
152
- const market = this.parseMarket(markets[symbol]);
155
+ const data = this.extend(markets[symbol], { 'symbol': symbol });
156
+ const market = this.parseMarket(data, type);
153
157
  result.push(market);
154
158
  }
155
159
  return result;
156
160
  }
157
- parseMarket(market) {
161
+ parseMarket(market, type = 'spot') {
158
162
  // btc-rls: {
159
163
  // isClosed: false,
160
164
  // bestSell: "38820000000",
@@ -185,8 +189,8 @@ class nobitex extends nobitex$1["default"] {
185
189
  'baseId': baseId,
186
190
  'quoteId': quoteId,
187
191
  'settleId': undefined,
188
- 'type': 'spot',
189
- 'spot': true,
192
+ 'type': type,
193
+ 'spot': type === 'spot',
190
194
  'margin': false,
191
195
  'swap': false,
192
196
  'future': false,
@@ -234,13 +238,16 @@ class nobitex extends nobitex$1["default"] {
234
238
  * @see https://apidocs.nobitex.ir/#6ae2dae4a2
235
239
  * @param {string[]|undefined} symbols unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
236
240
  * @param {object} [params] extra parameters specific to the exchange API endpoint
241
+ * @param {string} [params.type] market type, 'spot' (default) or 'otc'; both use market/stats
237
242
  * @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
238
243
  */
239
- await this.loadMarkets();
244
+ const type = this.safeString(params, 'type', 'spot');
245
+ const request = this.omit(params, ['type']);
246
+ await this.loadMarkets(false, { 'type': type });
240
247
  if (symbols !== undefined) {
241
248
  symbols = this.marketSymbols(symbols);
242
249
  }
243
- const response = await this.publicGetMarketStats();
250
+ const response = await this.publicGetMarketStats(request);
244
251
  const markets = this.safeDict(response, 'stats');
245
252
  const marketKeys = Object.keys(markets);
246
253
  const result = {};
@@ -249,8 +256,9 @@ class nobitex extends nobitex$1["default"] {
249
256
  if (markets[symbol]['isClosed']) {
250
257
  continue;
251
258
  }
252
- markets[symbol]['symbol'] = symbol;
253
- const ticker = this.parseTicker(markets[symbol]);
259
+ const data = this.extend(markets[symbol], { 'symbol': symbol });
260
+ const market = this.parseMarket(data, type);
261
+ const ticker = this.parseTicker(data, market);
254
262
  symbol = ticker['symbol'];
255
263
  result[symbol] = ticker;
256
264
  }
@@ -264,10 +272,12 @@ class nobitex extends nobitex$1["default"] {
264
272
  * @see https://apidocs.nobitex.ir/#6ae2dae4a2
265
273
  * @param {string} symbol unified symbol of the market to fetch the ticker for
266
274
  * @param {object} [params] extra parameters specific to the exchange API endpoint
275
+ * @param {string} [params.type] market type, 'spot' (default) or 'otc'; both use market/stats
267
276
  * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
268
277
  */
269
- const ticker = await this.fetchTickers([symbol]);
270
- return ticker[symbol];
278
+ const tickers = await this.fetchTickers([symbol], params);
279
+ const values = Object.values(tickers);
280
+ return this.safeValue(values, 0);
271
281
  }
272
282
  parseTicker(ticker, market = undefined) {
273
283
  // {
@@ -285,19 +295,8 @@ class nobitex extends nobitex$1["default"] {
285
295
  // dayClose: "112800000000",
286
296
  // dayChange: "0.01"
287
297
  // }
288
- const marketType = 'spot';
289
- const rawSymbol = this.safeStringLower(ticker, 'symbol');
290
- const parts = rawSymbol.split('-');
291
- const baseId = parts[0];
292
- let quoteId = parts[1];
293
- if (quoteId === 'rls') {
294
- quoteId = 'irt';
295
- }
296
- const base = this.safeCurrencyCode(baseId.toUpperCase());
297
- const quote = this.safeCurrencyCode(quoteId.toUpperCase());
298
- const marketId = base + '/' + quote;
299
- const marketinfo = this.market(marketId);
300
- const symbol = this.safeSymbol(marketId, market, undefined, marketType);
298
+ market = (market === undefined) ? this.parseMarket(ticker) : market;
299
+ const symbol = market['symbol'];
301
300
  let high = this.safeFloat(ticker, 'dayHigh');
302
301
  let low = this.safeFloat(ticker, 'dayLow');
303
302
  let bid = this.safeFloat(ticker, 'bestBuy');
@@ -309,7 +308,7 @@ class nobitex extends nobitex$1["default"] {
309
308
  let quoteVolume = this.safeFloat(ticker, 'volumeDst');
310
309
  const baseVolume = this.safeFloat(ticker, 'volumeSrc');
311
310
  // adjust Nobitex IRT scaling
312
- if (marketinfo['quote'] === 'IRT') {
311
+ if (market['quote'] === 'IRT') {
313
312
  high = high ? high / 10 : 0;
314
313
  low = low ? low / 10 : 0;
315
314
  bid = bid ? bid / 10 : 0;