ccxt-ir 4.9.4 → 4.9.10

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 (72) hide show
  1. package/README.md +7 -7
  2. package/dist/ccxt.browser.min.js +4 -4
  3. package/dist/cjs/ccxt.js +22 -1
  4. package/dist/cjs/src/abantether.js +88 -69
  5. package/dist/cjs/src/abstract/bitbarg.js +11 -0
  6. package/dist/cjs/src/abstract/bydfi.js +11 -0
  7. package/dist/cjs/src/abstract/cafearz.js +11 -0
  8. package/dist/cjs/src/abstract/kifpoolme.js +11 -0
  9. package/dist/cjs/src/abstract/mazdax.js +11 -0
  10. package/dist/cjs/src/abstract/pingi.js +11 -0
  11. package/dist/cjs/src/abstract/pooleno.js +11 -0
  12. package/dist/cjs/src/afratether.js +84 -36
  13. package/dist/cjs/src/arzplus.js +32 -15
  14. package/dist/cjs/src/bitbarg.js +313 -0
  15. package/dist/cjs/src/bydfi.js +435 -0
  16. package/dist/cjs/src/cafearz.js +347 -0
  17. package/dist/cjs/src/kifpoolme.js +411 -0
  18. package/dist/cjs/src/mazdax.js +536 -0
  19. package/dist/cjs/src/pingi.js +448 -0
  20. package/dist/cjs/src/pooleno.js +348 -0
  21. package/dist/cjs/src/tetherland.js +8 -4
  22. package/dist/cjs/src/twox.js +55 -28
  23. package/js/ccxt.d.ts +23 -2
  24. package/js/ccxt.js +16 -2
  25. package/js/src/abantether.js +88 -69
  26. package/js/src/abstract/abantether.d.ts +1 -1
  27. package/js/src/abstract/bitbarg.d.ts +8 -0
  28. package/js/src/abstract/bitbarg.js +11 -0
  29. package/js/src/abstract/bydfi.d.ts +11 -0
  30. package/js/src/abstract/bydfi.js +11 -0
  31. package/js/src/abstract/cafearz.d.ts +8 -0
  32. package/js/src/abstract/cafearz.js +11 -0
  33. package/js/src/abstract/kifpoolme.d.ts +9 -0
  34. package/js/src/abstract/kifpoolme.js +11 -0
  35. package/js/src/abstract/mazdax.d.ts +11 -0
  36. package/js/src/abstract/mazdax.js +11 -0
  37. package/js/src/abstract/pingi.d.ts +9 -0
  38. package/js/src/abstract/pingi.js +11 -0
  39. package/js/src/abstract/pooleno.d.ts +8 -0
  40. package/js/src/abstract/pooleno.js +11 -0
  41. package/js/src/afratether.js +84 -36
  42. package/js/src/arzplus.d.ts +3 -2
  43. package/js/src/arzplus.js +32 -15
  44. package/js/src/base/Exchange.d.ts +2 -2
  45. package/js/src/bitbarg.d.ts +21 -0
  46. package/js/src/bitbarg.js +312 -0
  47. package/js/src/bydfi.d.ts +23 -0
  48. package/js/src/bydfi.js +434 -0
  49. package/js/src/cafearz.d.ts +21 -0
  50. package/js/src/cafearz.js +346 -0
  51. package/js/src/coinbaseexchange.d.ts +1 -1
  52. package/js/src/kifpoolme.d.ts +23 -0
  53. package/js/src/kifpoolme.js +410 -0
  54. package/js/src/mazdax.d.ts +23 -0
  55. package/js/src/mazdax.js +535 -0
  56. package/js/src/pingi.d.ts +22 -0
  57. package/js/src/pingi.js +447 -0
  58. package/js/src/pooleno.d.ts +21 -0
  59. package/js/src/pooleno.js +347 -0
  60. package/js/src/protobuf/mexc/compiled.d.cts +0 -6
  61. package/js/src/static_dependencies/fflake/browser.d.ts +5 -5
  62. package/js/src/static_dependencies/jsencrypt/lib/asn1js/asn1.d.ts +2 -2
  63. package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +1 -1
  64. package/js/src/static_dependencies/qs/formats.d.cts +0 -6
  65. package/js/src/static_dependencies/qs/index.d.cts +0 -6
  66. package/js/src/static_dependencies/qs/parse.d.cts +0 -6
  67. package/js/src/static_dependencies/qs/stringify.d.cts +0 -6
  68. package/js/src/static_dependencies/qs/utils.d.cts +0 -6
  69. package/js/src/static_dependencies/starknet/utils/calldata/parser/index.d.ts +1 -1
  70. package/js/src/tetherland.js +5 -4
  71. package/js/src/twox.js +55 -28
  72. package/package.json +1 -1
package/dist/cjs/ccxt.js CHANGED
@@ -29,6 +29,7 @@ var bingx = require('./src/bingx.js');
29
29
  var bit24 = require('./src/bit24.js');
30
30
  var bit2c = require('./src/bit2c.js');
31
31
  var bitbank = require('./src/bitbank.js');
32
+ var bitbarg = require('./src/bitbarg.js');
32
33
  var bitbns = require('./src/bitbns.js');
33
34
  var bitfinex = require('./src/bitfinex.js');
34
35
  var bitflyer = require('./src/bitflyer.js');
@@ -54,6 +55,8 @@ var btcbox = require('./src/btcbox.js');
54
55
  var btcmarkets = require('./src/btcmarkets.js');
55
56
  var btcturk = require('./src/btcturk.js');
56
57
  var bybit = require('./src/bybit.js');
58
+ var bydfi = require('./src/bydfi.js');
59
+ var cafearz = require('./src/cafearz.js');
57
60
  var cex = require('./src/cex.js');
58
61
  var coinbase = require('./src/coinbase.js');
59
62
  var coinbaseadvanced = require('./src/coinbaseadvanced.js');
@@ -99,6 +102,7 @@ var independentreserve = require('./src/independentreserve.js');
99
102
  var indodax = require('./src/indodax.js');
100
103
  var jibitex = require('./src/jibitex.js');
101
104
  var kcex = require('./src/kcex.js');
105
+ var kifpoolme = require('./src/kifpoolme.js');
102
106
  var kraken = require('./src/kraken.js');
103
107
  var krakenfutures = require('./src/krakenfutures.js');
104
108
  var kucoin = require('./src/kucoin.js');
@@ -106,6 +110,7 @@ var kucoinfutures = require('./src/kucoinfutures.js');
106
110
  var latoken = require('./src/latoken.js');
107
111
  var lbank = require('./src/lbank.js');
108
112
  var luno = require('./src/luno.js');
113
+ var mazdax = require('./src/mazdax.js');
109
114
  var mercado = require('./src/mercado.js');
110
115
  var mexc = require('./src/mexc.js');
111
116
  var modetrade = require('./src/modetrade.js');
@@ -125,7 +130,9 @@ var p2b = require('./src/p2b.js');
125
130
  var paradex = require('./src/paradex.js');
126
131
  var paymium = require('./src/paymium.js');
127
132
  var phemex = require('./src/phemex.js');
133
+ var pingi = require('./src/pingi.js');
128
134
  var poloniex = require('./src/poloniex.js');
135
+ var pooleno = require('./src/pooleno.js');
129
136
  var probit = require('./src/probit.js');
130
137
  var ramzinex = require('./src/ramzinex.js');
131
138
  var sarmayex = require('./src/sarmayex.js');
@@ -225,7 +232,7 @@ var xt$1 = require('./src/pro/xt.js');
225
232
 
226
233
  //-----------------------------------------------------------------------------
227
234
  // this is updated by vss.js when building
228
- const version = '4.9.4';
235
+ const version = '4.9.10';
229
236
  Exchange["default"].ccxtVersion = version;
230
237
  const exchanges = {
231
238
  'abantether': abantether["default"],
@@ -245,6 +252,7 @@ const exchanges = {
245
252
  'bit24': bit24["default"],
246
253
  'bit2c': bit2c["default"],
247
254
  'bitbank': bitbank["default"],
255
+ 'bitbarg': bitbarg["default"],
248
256
  'bitbns': bitbns["default"],
249
257
  'bitfinex': bitfinex["default"],
250
258
  'bitflyer': bitflyer["default"],
@@ -270,6 +278,8 @@ const exchanges = {
270
278
  'btcmarkets': btcmarkets["default"],
271
279
  'btcturk': btcturk["default"],
272
280
  'bybit': bybit["default"],
281
+ 'bydfi': bydfi["default"],
282
+ 'cafearz': cafearz["default"],
273
283
  'cex': cex["default"],
274
284
  'coinbase': coinbase["default"],
275
285
  'coinbaseadvanced': coinbaseadvanced["default"],
@@ -315,6 +325,7 @@ const exchanges = {
315
325
  'indodax': indodax["default"],
316
326
  'jibitex': jibitex["default"],
317
327
  'kcex': kcex["default"],
328
+ 'kifpoolme': kifpoolme["default"],
318
329
  'kraken': kraken["default"],
319
330
  'krakenfutures': krakenfutures["default"],
320
331
  'kucoin': kucoin["default"],
@@ -322,6 +333,7 @@ const exchanges = {
322
333
  'latoken': latoken["default"],
323
334
  'lbank': lbank["default"],
324
335
  'luno': luno["default"],
336
+ 'mazdax': mazdax["default"],
325
337
  'mercado': mercado["default"],
326
338
  'mexc': mexc["default"],
327
339
  'modetrade': modetrade["default"],
@@ -341,7 +353,9 @@ const exchanges = {
341
353
  'paradex': paradex["default"],
342
354
  'paymium': paymium["default"],
343
355
  'phemex': phemex["default"],
356
+ 'pingi': pingi["default"],
344
357
  'poloniex': poloniex["default"],
358
+ 'pooleno': pooleno["default"],
345
359
  'probit': probit["default"],
346
360
  'ramzinex': ramzinex["default"],
347
361
  'sarmayex': sarmayex["default"],
@@ -509,6 +523,7 @@ exports.bingx = bingx["default"];
509
523
  exports.bit24 = bit24["default"];
510
524
  exports.bit2c = bit2c["default"];
511
525
  exports.bitbank = bitbank["default"];
526
+ exports.bitbarg = bitbarg["default"];
512
527
  exports.bitbns = bitbns["default"];
513
528
  exports.bitfinex = bitfinex["default"];
514
529
  exports.bitflyer = bitflyer["default"];
@@ -534,6 +549,8 @@ exports.btcbox = btcbox["default"];
534
549
  exports.btcmarkets = btcmarkets["default"];
535
550
  exports.btcturk = btcturk["default"];
536
551
  exports.bybit = bybit["default"];
552
+ exports.bydfi = bydfi["default"];
553
+ exports.cafearz = cafearz["default"];
537
554
  exports.cex = cex["default"];
538
555
  exports.coinbase = coinbase["default"];
539
556
  exports.coinbaseadvanced = coinbaseadvanced["default"];
@@ -579,6 +596,7 @@ exports.independentreserve = independentreserve["default"];
579
596
  exports.indodax = indodax["default"];
580
597
  exports.jibitex = jibitex["default"];
581
598
  exports.kcex = kcex["default"];
599
+ exports.kifpoolme = kifpoolme["default"];
582
600
  exports.kraken = kraken["default"];
583
601
  exports.krakenfutures = krakenfutures["default"];
584
602
  exports.kucoin = kucoin["default"];
@@ -586,6 +604,7 @@ exports.kucoinfutures = kucoinfutures["default"];
586
604
  exports.latoken = latoken["default"];
587
605
  exports.lbank = lbank["default"];
588
606
  exports.luno = luno["default"];
607
+ exports.mazdax = mazdax["default"];
589
608
  exports.mercado = mercado["default"];
590
609
  exports.mexc = mexc["default"];
591
610
  exports.modetrade = modetrade["default"];
@@ -605,7 +624,9 @@ exports.p2b = p2b["default"];
605
624
  exports.paradex = paradex["default"];
606
625
  exports.paymium = paymium["default"];
607
626
  exports.phemex = phemex["default"];
627
+ exports.pingi = pingi["default"];
608
628
  exports.poloniex = poloniex["default"];
629
+ exports.pooleno = pooleno["default"];
609
630
  exports.probit = probit["default"];
610
631
  exports.ramzinex = ramzinex["default"];
611
632
  exports.sarmayex = sarmayex["default"];
@@ -23,7 +23,7 @@ class abantether extends abantether$1["default"] {
23
23
  'pro': false,
24
24
  'has': {
25
25
  'CORS': undefined,
26
- 'spot': true,
26
+ 'spot': false,
27
27
  'margin': false,
28
28
  'swap': false,
29
29
  'future': false,
@@ -79,6 +79,7 @@ class abantether extends abantether$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,
@@ -88,7 +89,7 @@ class abantether extends abantether$1["default"] {
88
89
  'urls': {
89
90
  'logo': 'https://cdn.arz.digital/cr-odin/img/exchanges/abantether/64x64.png',
90
91
  'api': {
91
- 'public': 'https://abantether.com',
92
+ 'public': 'https://api.abantether.com',
92
93
  },
93
94
  'www': 'https://abantether.com',
94
95
  'doc': [
@@ -98,7 +99,7 @@ class abantether extends abantether$1["default"] {
98
99
  'api': {
99
100
  'public': {
100
101
  'get': {
101
- 'management/all-coins/': 1,
102
+ 'manager/coins/data': 1,
102
103
  },
103
104
  },
104
105
  },
@@ -117,23 +118,24 @@ class abantether extends abantether$1["default"] {
117
118
  * @method
118
119
  * @name abantether#fetchMarkets
119
120
  * @description retrieves data on all markets for abantether
120
- * @see https://abantether.com/management/all-coins/?format=json
121
+ * @see https://api.abantether.com/manager/coins/data
121
122
  * @param {object} [params] extra parameters specific to the exchange API endpoint
122
123
  * @returns {object[]} an array of objects representing market data
123
124
  */
124
- const response = await this.publicGetManagementAllCoins(params);
125
+ const response = await this.publicGetManagerCoinsData(params);
126
+ const data = this.safeList(response, 'data', []);
125
127
  const result = [];
126
128
  const quotes = ['IRT', 'USDT'];
127
- for (let i = 0; i < response.length; i++) {
128
- const base = this.safeString(response[i], 'symbol');
129
+ for (let i = 0; i < data.length; i++) {
130
+ const base = this.safeString(data[i], 'symbol');
129
131
  for (let index = 0; index < quotes.length; index++) {
130
132
  const quote = quotes[index];
131
- response[i]['base'] = base;
132
- response[i]['quote'] = quote;
133
+ data[i]['base'] = base;
134
+ data[i]['quote'] = quote;
133
135
  if (base === quote) {
134
136
  continue;
135
137
  }
136
- const market = this.parseMarket(response[i]);
138
+ const market = this.parseMarket(data[i]);
137
139
  result.push(market);
138
140
  }
139
141
  }
@@ -141,29 +143,38 @@ class abantether extends abantether$1["default"] {
141
143
  }
142
144
  parseMarket(market) {
143
145
  // {
144
- // 'symbol': 'USDT',
145
- // 'name': 'Tether',
146
- // 'categories': [],
147
- // 'tetherPrice': '1',
148
- // 'priceBuy': '59200.0',
149
- // 'priceSell': '58800.0',
150
- // 'persianName': '\u062a\u062a\u0631',
151
- // 'past24': '0',
152
- // 'marketVolume': '1',
153
- // 'id': '1',
154
- // 'active': true,
155
- // 'irtDecimalPoint': '2',
156
- // 'tetherDecimalPoint': '6',
157
- // 'amountDecimalPoint': '6',
158
- // 'past24volume': '767287.60530837810210936763',
159
- // 'operationStatus': {
160
- // 'buyActive': true,
161
- // 'sellActive': true,
162
- // 'withdrawalActive': true,
163
- // 'depositActive': true,
164
- // 'transferActive': true,
165
- // },
166
- // };
146
+ // "id": 1,
147
+ // "name": "Tether USDt",
148
+ // "symbol": "USDT",
149
+ // "persian_name": "تتر",
150
+ // "is_active": true,
151
+ // "is_withdrawal_active": true,
152
+ // "is_deposit_active": true,
153
+ // "is_mid_wallet_transfer_active": true,
154
+ // "is_buy_active": true,
155
+ // "is_sell_active": true,
156
+ // "is_credit_active": true,
157
+ // "min_trade": "1.00",
158
+ // "max_trade": "100000.00",
159
+ // "tether_price": "1",
160
+ // "price_buy": "113540.0",
161
+ // "price_sell": "112630.0",
162
+ // "volume24h": "225163179366.25",
163
+ // "percent_change_1h": "0.00",
164
+ // "percent_change_24h": "0.00",
165
+ // "percent_change_7d": "0.04",
166
+ // "market_cap": "179884960573.99",
167
+ // "coin_type": "COIN",
168
+ // "exchange_type": "fake",
169
+ // "icon": "f71021586005413ea6f3a0bd1f7d8a55",
170
+ // "fund_tether_buy": "0",
171
+ // "fund_tether_sell": "0",
172
+ // "irt_decimal_point": 2,
173
+ // "tether_decimal_point": 6,
174
+ // "amount_decimal_point": 6,
175
+ // "base": "BTC",
176
+ // "qoute": "USDT",
177
+ // },
167
178
  let baseId = this.safeString(market, 'base');
168
179
  let quoteId = this.safeString(market, 'quote');
169
180
  const base = this.safeCurrencyCode(baseId);
@@ -226,7 +237,7 @@ class abantether extends abantether$1["default"] {
226
237
  * @method
227
238
  * @name abantether#fetchTickers
228
239
  * @description fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
229
- * @see https://abantether.com/management/all-coins/?format=json
240
+ * @see https://api.abantether.com/manager/coins/data
230
241
  * @param {string[]|undefined} symbols unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
231
242
  * @param {object} [params] extra parameters specific to the exchange API endpoint
232
243
  * @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
@@ -235,20 +246,21 @@ class abantether extends abantether$1["default"] {
235
246
  if (symbols !== undefined) {
236
247
  symbols = this.marketSymbols(symbols);
237
248
  }
238
- const response = await this.publicGetManagementAllCoins(params);
249
+ const response = await this.publicGetManagerCoinsData(params);
250
+ const data = this.safeList(response, 'data', []);
239
251
  const result = {};
240
252
  const quotes = ['IRT', 'USDT'];
241
- for (let i = 0; i < response.length; i++) {
242
- const base = this.safeString(response[i], 'symbol');
253
+ for (let i = 0; i < data.length; i++) {
254
+ const base = this.safeString(data[i], 'symbol');
243
255
  for (let index = 0; index < quotes.length; index++) {
244
256
  const quote = quotes[index];
245
257
  if (base === quote) {
246
258
  continue;
247
259
  }
248
- response[i]['base'] = base;
249
- response[i]['quote'] = quote;
250
- response[i]['symbol'] = base + quote;
251
- const ticker = this.parseTicker(response[i]);
260
+ data[i]['base'] = base;
261
+ data[i]['quote'] = quote;
262
+ data[i]['symbol'] = base + quote;
263
+ const ticker = this.parseTicker(data[i]);
252
264
  const symbol = ticker['symbol'];
253
265
  result[symbol] = ticker;
254
266
  }
@@ -260,7 +272,7 @@ class abantether extends abantether$1["default"] {
260
272
  * @method
261
273
  * @name abantether#fetchTicker
262
274
  * @description fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
263
- * @see https://abantether.com/management/all-coins/?format=json
275
+ * @see https://api.abantether.com/manager/coins/data
264
276
  * @param {string} symbol unified symbol of the market to fetch the ticker for
265
277
  * @param {object} [params] extra parameters specific to the exchange API endpoint
266
278
  * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
@@ -270,38 +282,45 @@ class abantether extends abantether$1["default"] {
270
282
  }
271
283
  parseTicker(ticker, market = undefined) {
272
284
  // {
273
- // 'symbol': 'USDT',
274
- // 'name': 'Tether',
275
- // 'categories': [],
276
- // 'tetherPrice': '1',
277
- // 'priceBuy': '59200.0',
278
- // 'priceSell': '58800.0',
279
- // 'persianName': '\u062a\u062a\u0631',
280
- // 'past24': '0',
281
- // 'marketVolume': '1',
282
- // 'id': '1',
283
- // 'active': true,
284
- // 'irtDecimalPoint': '2',
285
- // 'tetherDecimalPoint': '6',
286
- // 'amountDecimalPoint': '6',
287
- // 'past24volume': '767287.60530837810210936763',
288
- // 'operationStatus': {
289
- // 'buyActive': true,
290
- // 'sellActive': true,
291
- // 'withdrawalActive': true,
292
- // 'depositActive': true,
293
- // 'transferActive': true,
294
- // },
295
- // };
285
+ // "id": 2,
286
+ // "name": "Bitcoin",
287
+ // "symbol": "BTC",
288
+ // "persian_name": "بیت کوین",
289
+ // "is_active": true,
290
+ // "is_withdrawal_active": true,
291
+ // "is_deposit_active": true,
292
+ // "is_mid_wallet_transfer_active": true,
293
+ // "is_buy_active": true,
294
+ // "is_sell_active": true,
295
+ // "is_credit_active": true,
296
+ // "min_trade": "1.00",
297
+ // "max_trade": "65000.00",
298
+ // "tether_price": "114909.43000000",
299
+ // "price_buy": "13049114870.800000000",
300
+ // "price_sell": "12944547289.500000000",
301
+ // "volume24h": "93585526493.26",
302
+ // "percent_change_1h": "-0.29",
303
+ // "percent_change_24h": "3.22",
304
+ // "percent_change_7d": "-7.19",
305
+ // "market_cap": "2292874615411.72",
306
+ // "coin_type": "COIN",
307
+ // "exchange_type": "binance",
308
+ // "icon": "561aa10abc0c45f7aa4499f48d618c80",
309
+ // "fund_tether_buy": "0",
310
+ // "fund_tether_sell": "0",
311
+ // "irt_decimal_point": 0,
312
+ // "tether_decimal_point": 2,
313
+ // "amount_decimal_point": 9
314
+ // },
296
315
  const marketType = 'otc';
297
316
  const marketId = this.safeString(ticker, 'symbol');
298
317
  const symbol = this.safeSymbol(marketId, market, undefined, marketType);
299
- let last = this.safeFloat(ticker, 'tetherPrice', 0);
318
+ let last = this.safeFloat(ticker, 'tether_price', 0);
300
319
  if (ticker['quote'] === 'IRT') {
301
- last = this.safeFloat(ticker, 'priceSell', 0);
320
+ last = this.safeFloat(ticker, 'price_buy', 0);
302
321
  }
303
- const change = this.safeFloat(ticker, 'past24', 0);
304
- const baseVolume = this.safeFloat(ticker, 'past24volume', 0);
322
+ const change = this.safeFloat(ticker, 'percent_change_24h', 0);
323
+ const baseVolume = this.safeFloat(ticker, 'volume24h', 0);
305
324
  return this.safeTicker({
306
325
  'symbol': symbol,
307
326
  'timestamp': undefined,
@@ -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,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,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,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,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,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,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;
@@ -23,7 +23,7 @@ class afratether extends afratether$1["default"] {
23
23
  'pro': false,
24
24
  'has': {
25
25
  'CORS': undefined,
26
- 'spot': true,
26
+ 'spot': false,
27
27
  'margin': false,
28
28
  'swap': false,
29
29
  'future': false,
@@ -79,6 +79,7 @@ class afratether extends afratether$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,
@@ -138,21 +139,43 @@ class afratether extends afratether$1["default"] {
138
139
  }
139
140
  parseMarket(market) {
140
141
  // {
141
- // "currencyAbb": "BTC",
142
- // "nameEn": "Bitcoin",
143
- // "nameFa": "بیت کوین",
144
- // "icon": "/assets/crypto/BTC.png",
145
- // "currency": "BTC",
146
- // "prices": [
147
- // {
148
- // "currency": "USDT",
149
- // "price": "67797.1"
142
+ // "currencyAbb": "USDT",
143
+ // "nameEn": "Tether",
144
+ // "nameFa": "تتر",
145
+ // "icon": "/assets/crypto/usdt.png",
146
+ // "round": 1000000,
147
+ // "currency": "USDT",
148
+ // "changeRate24h": "-0.0065",
149
+ // "Klines": [
150
+ // [
151
+ // "1760227200000",
152
+ // "1147500",
153
+ // "1140000",
154
+ // "1145500",
155
+ // "1125000",
156
+ // "0",
157
+ // "0"
158
+ // ],
159
+ // ],
160
+ // "info": {
161
+ // "birth_date": 1412553600000,
162
+ // "open_24h": 1,
163
+ // "open_1w": 1,
164
+ // "open_3M": 1,
165
+ // "open_1y": 1
166
+ // },
167
+ // "prices": {
168
+ // "USDT": {
169
+ // "price": "1"
170
+ // },
171
+ // "IRR": {
172
+ // "price_sell": 1135000,
173
+ // "price_buy": 1123000
150
174
  // }
151
- // ]
152
- // },
153
- const details = this.safeList(market, 'prices');
175
+ // }
176
+ // }
154
177
  let baseId = this.safeString(market, 'currency');
155
- let quoteId = this.safeString(details[0], 'currency');
178
+ let quoteId = 'IRR';
156
179
  const base = this.safeCurrencyCode(baseId);
157
180
  const quote = this.safeCurrencyCode(quoteId);
158
181
  const id = base + quote;
@@ -167,8 +190,8 @@ class afratether extends afratether$1["default"] {
167
190
  'baseId': baseId,
168
191
  'quoteId': quoteId,
169
192
  'settleId': undefined,
170
- 'type': 'spot',
171
- 'spot': true,
193
+ 'type': 'otc',
194
+ 'spot': false,
172
195
  'margin': false,
173
196
  'swap': false,
174
197
  'future': false,
@@ -251,41 +274,66 @@ class afratether extends afratether$1["default"] {
251
274
  }
252
275
  parseTicker(ticker, market = undefined) {
253
276
  // {
254
- // "currencyAbb": "BTC",
255
- // "nameEn": "Bitcoin",
256
- // "nameFa": "بیت کوین",
257
- // "icon": "/assets/crypto/BTC.png",
258
- // "currency": "BTC",
259
- // "prices": [
260
- // {
261
- // "currency": "USDT",
262
- // "price": "67797.1"
277
+ // "currencyAbb": "USDT",
278
+ // "nameEn": "Tether",
279
+ // "nameFa": "تتر",
280
+ // "icon": "/assets/crypto/usdt.png",
281
+ // "round": 1000000,
282
+ // "currency": "USDT",
283
+ // "changeRate24h": "-0.0065",
284
+ // "Klines": [
285
+ // [
286
+ // "1760227200000",
287
+ // "1147500",
288
+ // "1140000",
289
+ // "1145500",
290
+ // "1125000",
291
+ // "0",
292
+ // "0"
293
+ // ],
294
+ // ],
295
+ // "info": {
296
+ // "birth_date": 1412553600000,
297
+ // "open_24h": 1,
298
+ // "open_1w": 1,
299
+ // "open_3M": 1,
300
+ // "open_1y": 1
301
+ // },
302
+ // "prices": {
303
+ // "USDT": {
304
+ // "price": "1"
305
+ // },
306
+ // "IRR": {
307
+ // "price_sell": 1135000,
308
+ // "price_buy": 1123000
263
309
  // }
264
- // ]
265
- // },
310
+ // }
311
+ // }
266
312
  const marketType = 'otc';
267
- const details = this.safeList(ticker, 'prices');
268
313
  const base = this.safeString(ticker, 'currency');
269
- const quote = this.safeString(details[0], 'currency');
270
- const marketId = base + quote;
314
+ const quote = 'IRR';
315
+ const marketId = base + '/' + quote;
271
316
  const symbol = this.safeSymbol(marketId, market, undefined, marketType);
272
- const last = this.safeFloat(details[0], 'price', 0);
317
+ const prices = this.safeDict(ticker, 'prices', {});
318
+ const irrPrices = this.safeDict(prices, 'IRR', {});
319
+ const sell = this.safeFloat(irrPrices, 'price_sell', 0);
320
+ const buy = this.safeFloat(irrPrices, 'price_buy', 0);
273
321
  return this.safeTicker({
274
322
  'symbol': symbol,
275
323
  'timestamp': undefined,
276
324
  'datetime': undefined,
277
325
  'high': undefined,
278
326
  'low': undefined,
279
- 'bid': undefined,
327
+ 'bid': sell,
280
328
  'bidVolume': undefined,
281
- 'ask': undefined,
329
+ 'ask': buy,
282
330
  'askVolume': undefined,
283
331
  'vwap': undefined,
284
332
  'open': undefined,
285
- 'close': last,
286
- 'last': last,
333
+ 'close': buy,
334
+ 'last': buy,
287
335
  'previousClose': undefined,
288
- 'change': undefined,
336
+ 'change': this.safeFloat(ticker, 'changeRate24h', undefined),
289
337
  'percentage': undefined,
290
338
  'average': undefined,
291
339
  'baseVolume': undefined,