ccxt-ir 4.19.0 → 4.20.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
@@ -97,6 +97,7 @@ var foxbit = require('./src/foxbit.js');
97
97
  var gate = require('./src/gate.js');
98
98
  var gateio = require('./src/gateio.js');
99
99
  var gemini = require('./src/gemini.js');
100
+ var gerami = require('./src/gerami.js');
100
101
  var goldika = require('./src/goldika.js');
101
102
  var goldis = require('./src/goldis.js');
102
103
  var hamrahgold = require('./src/hamrahgold.js');
@@ -259,7 +260,7 @@ var xt$1 = require('./src/pro/xt.js');
259
260
 
260
261
  //-----------------------------------------------------------------------------
261
262
  // this is updated by vss.js when building
262
- const version = '4.19.0';
263
+ const version = '4.20.1';
263
264
  Exchange["default"].ccxtVersion = version;
264
265
  const exchanges = {
265
266
  'abantether': abantether["default"],
@@ -347,6 +348,7 @@ const exchanges = {
347
348
  'gate': gate["default"],
348
349
  'gateio': gateio["default"],
349
350
  'gemini': gemini["default"],
351
+ 'gerami': gerami["default"],
350
352
  'goldika': goldika["default"],
351
353
  'goldis': goldis["default"],
352
354
  'hamrahgold': hamrahgold["default"],
@@ -645,6 +647,7 @@ exports.foxbit = foxbit["default"];
645
647
  exports.gate = gate["default"];
646
648
  exports.gateio = gateio["default"];
647
649
  exports.gemini = gemini["default"];
650
+ exports.gerami = gerami["default"];
648
651
  exports.goldika = goldika["default"];
649
652
  exports.goldis = goldis["default"];
650
653
  exports.hamrahgold = hamrahgold["default"];
@@ -1 +1 @@
1
- { "type": "commonjs" }
1
+ { "type": "commonjs" }
@@ -115,14 +115,18 @@ class baazar extends Exchange["default"] {
115
115
  }
116
116
  parseTicker(response, market = undefined) {
117
117
  const data = this.safeDict(response, 'data', {});
118
- let bid = this.safeNumber(data, 'sellPrice');
119
- let ask = this.safeNumber(data, 'buyPrice');
118
+ let bid = this.safeNumber(data, 'buyPrice');
119
+ let ask = this.safeNumber(data, 'sellPrice');
120
120
  if (bid !== undefined) {
121
121
  bid = bid / 10;
122
122
  }
123
123
  if (ask !== undefined) {
124
124
  ask = ask / 10;
125
125
  }
126
+ let last = bid;
127
+ if (ask !== undefined && (last === undefined || ask > last)) {
128
+ last = ask;
129
+ }
126
130
  return this.safeTicker({
127
131
  'symbol': market['symbol'],
128
132
  'timestamp': this.safeInteger(data, 'currentTime'),
@@ -135,8 +139,8 @@ class baazar extends Exchange["default"] {
135
139
  'askVolume': undefined,
136
140
  'vwap': undefined,
137
141
  'open': undefined,
138
- 'close': ask,
139
- 'last': ask,
142
+ 'close': last,
143
+ 'last': last,
140
144
  'previousClose': undefined,
141
145
  'change': undefined,
142
146
  'percentage': undefined,
@@ -144,20 +144,26 @@ class daric extends Exchange["default"] {
144
144
  markets = response;
145
145
  }
146
146
  const ticker = this.filterBy(markets, 'destinationCoinSymbol', market['baseId'])[0];
147
+ const bid = this.safeNumber(ticker, 'bestSell');
148
+ const ask = this.safeNumber(ticker, 'bestBuy');
149
+ let last = bid;
150
+ if (ask !== undefined && (last === undefined || ask > last)) {
151
+ last = ask;
152
+ }
147
153
  return this.safeTicker({
148
154
  'symbol': market['symbol'],
149
155
  'timestamp': undefined,
150
156
  'datetime': undefined,
151
157
  'high': this.safeNumber(ticker, 'highestRecentOrder'),
152
158
  'low': this.safeNumber(ticker, 'lowestRecentOrder'),
153
- 'bid': this.safeNumber(ticker, 'bestBuy'),
159
+ 'bid': bid,
154
160
  'bidVolume': undefined,
155
- 'ask': this.safeNumber(ticker, 'bestSell'),
161
+ 'ask': ask,
156
162
  'askVolume': undefined,
157
163
  'vwap': undefined,
158
164
  'open': undefined,
159
- 'close': this.safeNumber(ticker, 'lastOrderPrice'),
160
- 'last': this.safeNumber(ticker, 'lastOrderPrice'),
165
+ 'close': last,
166
+ 'last': last,
161
167
  'previousClose': undefined,
162
168
  'change': undefined,
163
169
  'percentage': this.safeNumber(ticker, 'change'),
@@ -0,0 +1,183 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var Exchange = require('./base/Exchange.js');
6
+
7
+ // ----------------------------------------------------------------------------
8
+ // ---------------------------------------------------------------------------
9
+ /**
10
+ * @class gerami
11
+ * @augments Exchange
12
+ */
13
+ class gerami extends Exchange["default"] {
14
+ describe() {
15
+ return this.deepExtend(super.describe(), {
16
+ 'id': 'gerami',
17
+ 'name': 'Gerami',
18
+ 'countries': ['IR'],
19
+ 'rateLimit': 1000,
20
+ 'certified': false,
21
+ 'pro': false,
22
+ 'has': {
23
+ 'CORS': undefined,
24
+ 'spot': false,
25
+ 'margin': false,
26
+ 'swap': false,
27
+ 'future': false,
28
+ 'option': false,
29
+ 'fetchMarkets': true,
30
+ 'fetchTicker': true,
31
+ 'fetchTickers': true,
32
+ 'otc': true,
33
+ },
34
+ 'options': {
35
+ 'defaultType': 'otc',
36
+ },
37
+ 'urls': {
38
+ 'api': {
39
+ 'public': 'https://api.gerami.com/api/v1',
40
+ },
41
+ 'www': 'https://gerami.com',
42
+ 'doc': 'https://api.gerami.com/api/v1/pairs/XAU750g_IRT',
43
+ },
44
+ 'api': {
45
+ 'public': {
46
+ 'get': {
47
+ 'pairs/{pair}': 1,
48
+ },
49
+ },
50
+ },
51
+ });
52
+ }
53
+ async fetchMarkets(params = {}) {
54
+ const marketIds = ['XAU750g_IRT', 'XAG999g_IRT', 'XCU9999g_IRT'];
55
+ const result = [];
56
+ for (let i = 0; i < marketIds.length; i++) {
57
+ const response = await this.publicGetPairsPair(this.extend({
58
+ 'pair': marketIds[i],
59
+ }, params));
60
+ result.push(this.parseMarket(response));
61
+ }
62
+ return result;
63
+ }
64
+ parseMarket(response) {
65
+ const data = this.safeDict(response, 'data', {});
66
+ const baseId = this.safeString(data, 'base_symbol');
67
+ const quoteId = this.safeString(data, 'quote_symbol');
68
+ let base = 'XAG-1G';
69
+ if (baseId === 'XAU750g') {
70
+ base = 'XAU18';
71
+ }
72
+ if (baseId === 'XCU9999g') {
73
+ base = 'XCU-1G';
74
+ }
75
+ return {
76
+ 'id': this.safeString(data, 'market'),
77
+ 'symbol': base + '/' + quoteId,
78
+ 'base': base,
79
+ 'quote': quoteId,
80
+ 'settle': undefined,
81
+ 'baseId': baseId,
82
+ 'quoteId': quoteId,
83
+ 'settleId': undefined,
84
+ 'type': 'otc',
85
+ 'spot': false,
86
+ 'margin': false,
87
+ 'swap': false,
88
+ 'future': false,
89
+ 'option': false,
90
+ 'active': this.safeBool(data, 'buy_is_active') && this.safeBool(data, 'sell_is_active'),
91
+ 'contract': false,
92
+ 'linear': undefined,
93
+ 'inverse': undefined,
94
+ 'contractSize': undefined,
95
+ 'expiry': undefined,
96
+ 'expiryDatetime': undefined,
97
+ 'strike': undefined,
98
+ 'optionType': undefined,
99
+ 'precision': {
100
+ 'amount': this.safeNumber(data, 'amount_precision'),
101
+ 'price': this.safeNumber(data, 'price_precision'),
102
+ },
103
+ 'limits': {
104
+ 'leverage': { 'min': undefined, 'max': undefined },
105
+ 'amount': {
106
+ 'min': this.safeNumber(data, 'buy_min_amount'),
107
+ 'max': this.safeNumber(data, 'buy_max_amount'),
108
+ },
109
+ 'price': { 'min': undefined, 'max': undefined },
110
+ 'cost': { 'min': undefined, 'max': undefined },
111
+ },
112
+ 'created': undefined,
113
+ 'info': data,
114
+ };
115
+ }
116
+ async fetchTicker(symbol, params = {}) {
117
+ await this.loadMarkets();
118
+ const market = this.market(symbol);
119
+ const response = await this.publicGetPairsPair(this.extend({
120
+ 'pair': market['id'],
121
+ }, params));
122
+ return this.parseTicker(response, market);
123
+ }
124
+ async fetchTickers(symbols = undefined, params = {}) {
125
+ await this.loadMarkets();
126
+ if (symbols !== undefined) {
127
+ symbols = this.marketSymbols(symbols);
128
+ }
129
+ const marketSymbols = ['XAU18/IRT', 'XAG-1G/IRT', 'XCU-1G/IRT'];
130
+ const result = {};
131
+ for (let i = 0; i < marketSymbols.length; i++) {
132
+ const market = this.market(marketSymbols[i]);
133
+ const response = await this.publicGetPairsPair(this.extend({
134
+ 'pair': market['id'],
135
+ }, params));
136
+ const ticker = this.parseTicker(response, market);
137
+ result[ticker['symbol']] = ticker;
138
+ }
139
+ return this.filterByArrayTickers(result, 'symbol', symbols);
140
+ }
141
+ parseTicker(response, market = undefined) {
142
+ const data = this.safeDict(response, 'data', {});
143
+ const bid = this.safeNumber(data, 'buy_price');
144
+ const ask = this.safeNumber(data, 'sell_price');
145
+ let last = bid;
146
+ if (ask !== undefined && (last === undefined || ask > last)) {
147
+ last = ask;
148
+ }
149
+ return this.safeTicker({
150
+ 'symbol': market['symbol'],
151
+ 'timestamp': undefined,
152
+ 'datetime': undefined,
153
+ 'high': undefined,
154
+ 'low': undefined,
155
+ 'bid': bid,
156
+ 'bidVolume': undefined,
157
+ 'ask': ask,
158
+ 'askVolume': undefined,
159
+ 'vwap': undefined,
160
+ 'open': undefined,
161
+ 'close': last,
162
+ 'last': last,
163
+ 'previousClose': undefined,
164
+ 'change': this.safeNumber(data, 'daily_price_change_amount'),
165
+ 'percentage': this.safeNumber(data, 'daily_price_change_percentage'),
166
+ 'average': undefined,
167
+ 'baseVolume': undefined,
168
+ 'quoteVolume': undefined,
169
+ 'info': data,
170
+ }, market);
171
+ }
172
+ sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
173
+ let url = this.urls['api'][api] + '/' + this.implodeParams(path, params);
174
+ const query = this.omit(params, this.extractParams(path));
175
+ if (Object.keys(query).length) {
176
+ url += '?' + this.urlencode(query);
177
+ }
178
+ headers = { 'Accept': 'application/json' };
179
+ return { 'url': url, 'method': method, 'body': body, 'headers': headers };
180
+ }
181
+ }
182
+
183
+ exports["default"] = gerami;
@@ -126,6 +126,10 @@ class goldika extends Exchange["default"] {
126
126
  if (ask !== undefined) {
127
127
  ask = ask / 10;
128
128
  }
129
+ let last = bid;
130
+ if (ask !== undefined && (last === undefined || ask > last)) {
131
+ last = ask;
132
+ }
129
133
  return this.safeTicker({
130
134
  'symbol': market['symbol'],
131
135
  'timestamp': timestamp,
@@ -138,8 +142,8 @@ class goldika extends Exchange["default"] {
138
142
  'askVolume': undefined,
139
143
  'vwap': undefined,
140
144
  'open': undefined,
141
- 'close': ask,
142
- 'last': ask,
145
+ 'close': last,
146
+ 'last': last,
143
147
  'previousClose': undefined,
144
148
  'change': undefined,
145
149
  'percentage': this.safeNumber(data, 'daily_change_percent'),
@@ -122,8 +122,8 @@ class hamrahgold extends Exchange["default"] {
122
122
  const sell = this.safeDict(sellResponse, 'data', {});
123
123
  const changes = this.safeDict(sell, 'changes', {});
124
124
  const dailyChange = this.safeDict(changes, '1d', {});
125
- let bid = this.safeNumber(buy, 'current');
126
- let ask = this.safeNumber(sell, 'current');
125
+ let bid = this.safeNumber(sell, 'current');
126
+ let ask = this.safeNumber(buy, 'current');
127
127
  let previousClose = this.safeNumber(dailyChange, 'price');
128
128
  if (bid !== undefined) {
129
129
  bid = bid / 10;
@@ -134,6 +134,10 @@ class hamrahgold extends Exchange["default"] {
134
134
  if (previousClose !== undefined) {
135
135
  previousClose = previousClose / 10;
136
136
  }
137
+ let last = bid;
138
+ if (ask !== undefined && (last === undefined || ask > last)) {
139
+ last = ask;
140
+ }
137
141
  return this.safeTicker({
138
142
  'symbol': market['symbol'],
139
143
  'timestamp': undefined,
@@ -146,8 +150,8 @@ class hamrahgold extends Exchange["default"] {
146
150
  'askVolume': undefined,
147
151
  'vwap': undefined,
148
152
  'open': undefined,
149
- 'close': ask,
150
- 'last': ask,
153
+ 'close': last,
154
+ 'last': last,
151
155
  'previousClose': previousClose,
152
156
  'change': undefined,
153
157
  'percentage': this.safeNumber(dailyChange, 'percent'),
@@ -55,7 +55,7 @@ class melligold extends Exchange["default"] {
55
55
  });
56
56
  }
57
57
  async fetchMarkets(params = {}) {
58
- const symbols = ['XAU18', 'XAG'];
58
+ const symbols = ['XAU18', 'XAG', 'XCU'];
59
59
  const result = [];
60
60
  for (let i = 0; i < symbols.length; i++) {
61
61
  const response = await this.requestWithCookie(this.extend({
@@ -107,6 +107,9 @@ class melligold extends Exchange["default"] {
107
107
  if (base === 'XAG') {
108
108
  base = 'XAG-1G';
109
109
  }
110
+ if (base === 'XCU') {
111
+ base = 'XCU-1G';
112
+ }
110
113
  const quote = 'IRT';
111
114
  return {
112
115
  'id': base + quote,
@@ -164,7 +167,7 @@ class melligold extends Exchange["default"] {
164
167
  symbols = this.marketSymbols(symbols);
165
168
  }
166
169
  const result = {};
167
- const marketSymbols = ['XAU18/IRT', 'XAG-1G/IRT'];
170
+ const marketSymbols = ['XAU18/IRT', 'XAG-1G/IRT', 'XCU-1G/IRT'];
168
171
  for (let i = 0; i < marketSymbols.length; i++) {
169
172
  const market = this.market(marketSymbols[i]);
170
173
  const response = await this.requestWithCookie(this.extend({
@@ -180,6 +183,10 @@ class melligold extends Exchange["default"] {
180
183
  const data = this.safeDict(response, 'data', {});
181
184
  const buy = this.safeNumber(data, 'price_buy');
182
185
  const sell = this.safeNumber(data, 'price_sell');
186
+ let last = buy;
187
+ if (sell !== undefined && (last === undefined || sell > last)) {
188
+ last = sell;
189
+ }
183
190
  return this.safeTicker({
184
191
  'symbol': market['symbol'],
185
192
  'timestamp': this.safeTimestamp(data, 'timestamp'),
@@ -192,8 +199,8 @@ class melligold extends Exchange["default"] {
192
199
  'askVolume': undefined,
193
200
  'vwap': undefined,
194
201
  'open': undefined,
195
- 'close': buy,
196
- 'last': buy,
202
+ 'close': last,
203
+ 'last': last,
197
204
  'previousClose': undefined,
198
205
  'change': undefined,
199
206
  'percentage': undefined,
@@ -360,7 +360,6 @@ class ramzinex extends ramzinex$1["default"] {
360
360
  let open = this.safeFloat(tickerinfo, 'open');
361
361
  let close = this.safeFloat(tickerinfo, 'close');
362
362
  const change = this.safeFloat(tickerinfo, 'change_percent');
363
- let last = this.safeFloat(ticker, 'buy');
364
363
  let quoteVolume = this.safeFloat(tickerinfo, 'quote_volume');
365
364
  const baseVolume = this.safeFloat(tickerinfo, 'base_volume');
366
365
  if (marketinfo['quote'] === 'IRT') {
@@ -370,9 +369,13 @@ class ramzinex extends ramzinex$1["default"] {
370
369
  ask = ask ? ask / 10 : 0;
371
370
  open = open ? open / 10 : 0;
372
371
  close = close ? close / 10 : 0;
373
- last = last ? last / 10 : 0;
374
372
  quoteVolume = quoteVolume ? quoteVolume / 10 : 0;
375
373
  }
374
+ let last = bid;
375
+ if (ask !== undefined && (last === undefined || ask > last)) {
376
+ last = ask;
377
+ }
378
+ close = last;
376
379
  return this.safeTicker({
377
380
  'symbol': symbol,
378
381
  'timestamp': undefined,
@@ -119,20 +119,26 @@ class talapp extends Exchange["default"] {
119
119
  if (fetchedAt !== undefined) {
120
120
  timestamp = this.parse8601(fetchedAt.replace(' ', 'T') + '+03:30');
121
121
  }
122
+ const bid = this.safeNumber(response, 'buy_gold');
123
+ const ask = this.safeNumber(response, 'sell_gold');
124
+ let last = bid;
125
+ if (ask !== undefined && (last === undefined || ask > last)) {
126
+ last = ask;
127
+ }
122
128
  return this.safeTicker({
123
129
  'symbol': market['symbol'],
124
130
  'timestamp': timestamp,
125
131
  'datetime': undefined,
126
132
  'high': undefined,
127
133
  'low': undefined,
128
- 'bid': this.safeNumber(response, 'buy_gold'),
134
+ 'bid': bid,
129
135
  'bidVolume': undefined,
130
- 'ask': this.safeNumber(response, 'sell_gold'),
136
+ 'ask': ask,
131
137
  'askVolume': undefined,
132
138
  'vwap': undefined,
133
139
  'open': undefined,
134
- 'close': this.safeNumber(response, 'sell_gold'),
135
- 'last': this.safeNumber(response, 'sell_gold'),
140
+ 'close': last,
141
+ 'last': last,
136
142
  'previousClose': undefined,
137
143
  'change': undefined,
138
144
  'percentage': this.safeNumber(response, 'sell_diff'),
@@ -116,20 +116,24 @@ class technogold extends Exchange["default"] {
116
116
  const prices = this.safeDict(response, 'results', {});
117
117
  const buy = this.safeNumber(prices, 'buy_price');
118
118
  const sell = this.safeNumber(prices, 'sell_price');
119
+ let last = buy;
120
+ if (sell !== undefined && (last === undefined || sell > last)) {
121
+ last = sell;
122
+ }
119
123
  return this.safeTicker({
120
124
  'symbol': market['symbol'],
121
125
  'timestamp': undefined,
122
126
  'datetime': undefined,
123
127
  'high': undefined,
124
128
  'low': undefined,
125
- 'bid': sell,
129
+ 'bid': buy,
126
130
  'bidVolume': undefined,
127
- 'ask': buy,
131
+ 'ask': sell,
128
132
  'askVolume': undefined,
129
133
  'vwap': undefined,
130
134
  'open': undefined,
131
- 'close': buy,
132
- 'last': buy,
135
+ 'close': last,
136
+ 'last': last,
133
137
  'previousClose': undefined,
134
138
  'change': undefined,
135
139
  'percentage': undefined,
@@ -125,6 +125,10 @@ class wallgold extends Exchange["default"] {
125
125
  const sellResult = this.safeDict(sellResponse, 'result', buyResult);
126
126
  const bid = this.safeNumber(buyResult, 'price');
127
127
  const ask = this.safeNumber(sellResult, 'price');
128
+ let last = bid;
129
+ if (ask !== undefined && (last === undefined || ask > last)) {
130
+ last = ask;
131
+ }
128
132
  const currentTime = this.safeString(buyResult, 'currentTime');
129
133
  const timestamp = currentTime ? this.parse8601(currentTime) : undefined;
130
134
  return this.safeTicker({
@@ -139,8 +143,8 @@ class wallgold extends Exchange["default"] {
139
143
  'askVolume': undefined,
140
144
  'vwap': undefined,
141
145
  'open': undefined,
142
- 'close': ask,
143
- 'last': ask,
146
+ 'close': last,
147
+ 'last': last,
144
148
  'previousClose': undefined,
145
149
  'change': undefined,
146
150
  'percentage': undefined,
@@ -120,8 +120,12 @@ class zarafza extends Exchange["default"] {
120
120
  const gold = this.safeDict(data, 'G18', {});
121
121
  const buy = this.safeDict(gold, 'buy', {});
122
122
  const sell = this.safeDict(gold, 'sell', {});
123
- const bid = this.safeNumber(buy, 'price');
124
- const ask = this.safeNumber(sell, 'price');
123
+ const bid = this.safeNumber(sell, 'price');
124
+ const ask = this.safeNumber(buy, 'price');
125
+ let last = bid;
126
+ if (ask !== undefined && (last === undefined || ask > last)) {
127
+ last = ask;
128
+ }
125
129
  return this.safeTicker({
126
130
  'symbol': market['symbol'],
127
131
  'timestamp': undefined,
@@ -134,8 +138,8 @@ class zarafza extends Exchange["default"] {
134
138
  'askVolume': undefined,
135
139
  'vwap': undefined,
136
140
  'open': undefined,
137
- 'close': ask,
138
- 'last': ask,
141
+ 'close': last,
142
+ 'last': last,
139
143
  'previousClose': undefined,
140
144
  'change': undefined,
141
145
  'percentage': this.safeNumber(sell, 'change'),
@@ -113,17 +113,17 @@ class zarminex extends Exchange["default"] {
113
113
  return this.filterByArrayTickers(result, 'symbol', symbols);
114
114
  }
115
115
  parseTicker(response, market = undefined) {
116
- let bid = this.safeNumber(response, 'sell');
117
- let ask = this.safeNumber(response, 'buy');
118
- let last = this.safeNumber(response, 'cached_price');
116
+ let bid = this.safeNumber(response, 'buy');
117
+ let ask = this.safeNumber(response, 'sell');
119
118
  if (bid !== undefined) {
120
119
  bid = bid / 10;
121
120
  }
122
121
  if (ask !== undefined) {
123
122
  ask = ask / 10;
124
123
  }
125
- if (last !== undefined) {
126
- last = last / 10;
124
+ let last = bid;
125
+ if (ask !== undefined && (last === undefined || ask > last)) {
126
+ last = ask;
127
127
  }
128
128
  return this.safeTicker({
129
129
  'symbol': market['symbol'],
@@ -138,9 +138,12 @@ class zarniv extends Exchange["default"] {
138
138
  if (serverTime !== undefined) {
139
139
  timestamp = this.parse8601(serverTime + '+03:30');
140
140
  }
141
- const bid = this.safeNumber(response, 'sell_price_per_gram');
142
- const ask = this.safeNumber(response, 'buy_price_per_gram');
143
- const last = this.safeNumber(response, 'base_price_per_gram');
141
+ const bid = this.safeNumber(response, 'buy_price_per_gram');
142
+ const ask = this.safeNumber(response, 'sell_price_per_gram');
143
+ let last = bid;
144
+ if (ask !== undefined && (last === undefined || ask > last)) {
145
+ last = ask;
146
+ }
144
147
  return this.safeTicker({
145
148
  'symbol': market['symbol'],
146
149
  'timestamp': timestamp,
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.19.0";
7
+ declare const version = "4.20.1";
8
8
  import abantether from './src/abantether.js';
9
9
  import afratether from './src/afratether.js';
10
10
  import alpaca from './src/alpaca.js';
@@ -90,6 +90,7 @@ import foxbit from './src/foxbit.js';
90
90
  import gate from './src/gate.js';
91
91
  import gateio from './src/gateio.js';
92
92
  import gemini from './src/gemini.js';
93
+ import gerami from './src/gerami.js';
93
94
  import goldika from './src/goldika.js';
94
95
  import goldis from './src/goldis.js';
95
96
  import hamrahgold from './src/hamrahgold.js';
@@ -335,6 +336,7 @@ declare const exchanges: {
335
336
  gate: typeof gate;
336
337
  gateio: typeof gateio;
337
338
  gemini: typeof gemini;
339
+ gerami: typeof gerami;
338
340
  goldika: typeof goldika;
339
341
  goldis: typeof goldis;
340
342
  hamrahgold: typeof hamrahgold;
@@ -663,6 +665,7 @@ declare const ccxt: {
663
665
  gate: typeof gate;
664
666
  gateio: typeof gateio;
665
667
  gemini: typeof gemini;
668
+ gerami: typeof gerami;
666
669
  goldika: typeof goldika;
667
670
  goldis: typeof goldis;
668
671
  hamrahgold: typeof hamrahgold;
@@ -750,5 +753,5 @@ declare const ccxt: {
750
753
  zarpin: typeof zarpin;
751
754
  zonda: typeof zonda;
752
755
  } & typeof functions & typeof errors;
753
- 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, asacoine, ascendex, asretether, baazar, bequant, bidarz, bigone, binance, binancecoinm, binanceus, binanceusdm, bingx, bit24, bit2c, bitbank, bitbarg, bitbns, bitfinex, bitflyer, bitget, bithumb, bitimen, bitir, bitmart, bitmex, bitopro, bitpin, bitrue, bitso, bitstamp, bitteam, bittrade, bitunix, bitvavo, bitwana, blockchaincom, blofin, btcalpha, btcbox, btcmarkets, btcturk, bybit, bydfi, cafearz, cex, changefa, coinbase, coinbaseadvanced, coinbaseexchange, coinbaseinternational, coincatch, coincheck, coinex, coinmate, coinmetro, coinone, coinsph, coinspot, cryptocom, cryptomus, daric, defx, delta, deribit, derive, digifinex, digikalagold, ellipx, eterex, excoino, exir, exmo, exnovin, farhadexchange, fmfwio, foxbit, gate, gateio, gemini, goldika, goldis, hamrahgold, hamtapay, hashkey, hibachi, hitbtc, hitobit, hollaex, htx, huobi, hyperliquid, independentreserve, indodax, iranexchange, jibitex, kcex, kifpoolme, kraken, krakenfutures, kucoin, kucoinfutures, latoken, lbank, luno, mazdax, melligold, mercado, mexc, milligold, modetrade, myokx, ndax, nobitex, novadax, oceanex, okcoin, okexchange, okx, okxus, ompfinex, onetrading, ourbit, oxfun, p2b, paradex, paymium, phemex, pingi, poloniex, pooleno, probit, raastin, ramzinex, saraf, sarmayex, sarrafex, tabdeal, talaavan, talapp, talasea, technogold, tehran_exchange, tetherland, timex, tokocrypto, toobit, tradeogre, twox, ubitex, upbit, vertex, wallex, wallgold, wavesexchange, whitebit, woo, woofipro, xt, yobit, zaif, zarafza, zarminex, zarniv, zarpin, zonda, };
756
+ 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, asacoine, ascendex, asretether, baazar, bequant, bidarz, bigone, binance, binancecoinm, binanceus, binanceusdm, bingx, bit24, bit2c, bitbank, bitbarg, bitbns, bitfinex, bitflyer, bitget, bithumb, bitimen, bitir, bitmart, bitmex, bitopro, bitpin, bitrue, bitso, bitstamp, bitteam, bittrade, bitunix, bitvavo, bitwana, blockchaincom, blofin, btcalpha, btcbox, btcmarkets, btcturk, bybit, bydfi, cafearz, cex, changefa, coinbase, coinbaseadvanced, coinbaseexchange, coinbaseinternational, coincatch, coincheck, coinex, coinmate, coinmetro, coinone, coinsph, coinspot, cryptocom, cryptomus, daric, defx, delta, deribit, derive, digifinex, digikalagold, ellipx, eterex, excoino, exir, exmo, exnovin, farhadexchange, fmfwio, foxbit, gate, gateio, gemini, gerami, goldika, goldis, hamrahgold, hamtapay, hashkey, hibachi, hitbtc, hitobit, hollaex, htx, huobi, hyperliquid, independentreserve, indodax, iranexchange, jibitex, kcex, kifpoolme, kraken, krakenfutures, kucoin, kucoinfutures, latoken, lbank, luno, mazdax, melligold, mercado, mexc, milligold, modetrade, myokx, ndax, nobitex, novadax, oceanex, okcoin, okexchange, okx, okxus, ompfinex, onetrading, ourbit, oxfun, p2b, paradex, paymium, phemex, pingi, poloniex, pooleno, probit, raastin, ramzinex, saraf, sarmayex, sarrafex, tabdeal, talaavan, talapp, talasea, technogold, tehran_exchange, tetherland, timex, tokocrypto, toobit, tradeogre, twox, ubitex, upbit, vertex, wallex, wallgold, wavesexchange, whitebit, woo, woofipro, xt, yobit, zaif, zarafza, zarminex, zarniv, zarpin, zonda, };
754
757
  export default ccxt;