ccxt-ir 4.18.1 → 4.20.0
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/README.md +4 -4
- package/dist/ccxt.browser.min.js +7 -7
- package/dist/cjs/ccxt.js +7 -1
- package/dist/cjs/src/baazar.js +8 -4
- package/dist/cjs/src/daric.js +11 -5
- package/dist/cjs/src/digikalagold.js +2 -2
- package/dist/cjs/src/gerami.js +180 -0
- package/dist/cjs/src/goldika.js +6 -2
- package/dist/cjs/src/hamrahgold.js +8 -4
- package/dist/cjs/src/melligold.js +11 -4
- package/dist/cjs/src/ramzinex.js +5 -2
- package/dist/cjs/src/talapp.js +10 -4
- package/dist/cjs/src/technogold.js +8 -4
- package/dist/cjs/src/wallgold.js +6 -2
- package/dist/cjs/src/zarafza.js +8 -4
- package/dist/cjs/src/zarminex.js +5 -5
- package/dist/cjs/src/zarniv.js +8 -5
- package/dist/cjs/src/zarpin.js +185 -0
- package/js/ccxt.d.ts +8 -2
- package/js/ccxt.js +6 -2
- package/js/src/abstract/gerami.d.ts +8 -0
- package/js/src/abstract/gerami.js +11 -0
- package/js/src/abstract/zarpin.d.ts +8 -0
- package/js/src/abstract/zarpin.js +11 -0
- package/js/src/baazar.js +8 -4
- package/js/src/daric.js +11 -5
- package/js/src/digikalagold.js +2 -2
- package/js/src/gerami.d.ts +20 -0
- package/js/src/gerami.js +179 -0
- package/js/src/goldika.js +6 -2
- package/js/src/hamrahgold.js +8 -4
- package/js/src/melligold.js +11 -4
- package/js/src/ramzinex.js +5 -2
- package/js/src/talapp.js +10 -4
- package/js/src/technogold.js +8 -4
- package/js/src/wallgold.js +6 -2
- package/js/src/zarafza.js +8 -4
- package/js/src/zarminex.js +5 -5
- package/js/src/zarniv.js +8 -5
- package/js/src/zarpin.d.ts +21 -0
- package/js/src/zarpin.js +184 -0
- package/js/test.js +49 -48
- package/package.json +1 -1
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');
|
|
@@ -181,6 +182,7 @@ var zaif = require('./src/zaif.js');
|
|
|
181
182
|
var zarafza = require('./src/zarafza.js');
|
|
182
183
|
var zarminex = require('./src/zarminex.js');
|
|
183
184
|
var zarniv = require('./src/zarniv.js');
|
|
185
|
+
var zarpin = require('./src/zarpin.js');
|
|
184
186
|
var zonda = require('./src/zonda.js');
|
|
185
187
|
var alpaca$1 = require('./src/pro/alpaca.js');
|
|
186
188
|
var apex$1 = require('./src/pro/apex.js');
|
|
@@ -258,7 +260,7 @@ var xt$1 = require('./src/pro/xt.js');
|
|
|
258
260
|
|
|
259
261
|
//-----------------------------------------------------------------------------
|
|
260
262
|
// this is updated by vss.js when building
|
|
261
|
-
const version = '4.
|
|
263
|
+
const version = '4.20.0';
|
|
262
264
|
Exchange["default"].ccxtVersion = version;
|
|
263
265
|
const exchanges = {
|
|
264
266
|
'abantether': abantether["default"],
|
|
@@ -346,6 +348,7 @@ const exchanges = {
|
|
|
346
348
|
'gate': gate["default"],
|
|
347
349
|
'gateio': gateio["default"],
|
|
348
350
|
'gemini': gemini["default"],
|
|
351
|
+
'gerami': gerami["default"],
|
|
349
352
|
'goldika': goldika["default"],
|
|
350
353
|
'goldis': goldis["default"],
|
|
351
354
|
'hamrahgold': hamrahgold["default"],
|
|
@@ -430,6 +433,7 @@ const exchanges = {
|
|
|
430
433
|
'zarafza': zarafza["default"],
|
|
431
434
|
'zarminex': zarminex["default"],
|
|
432
435
|
'zarniv': zarniv["default"],
|
|
436
|
+
'zarpin': zarpin["default"],
|
|
433
437
|
'zonda': zonda["default"],
|
|
434
438
|
};
|
|
435
439
|
const pro = {
|
|
@@ -643,6 +647,7 @@ exports.foxbit = foxbit["default"];
|
|
|
643
647
|
exports.gate = gate["default"];
|
|
644
648
|
exports.gateio = gateio["default"];
|
|
645
649
|
exports.gemini = gemini["default"];
|
|
650
|
+
exports.gerami = gerami["default"];
|
|
646
651
|
exports.goldika = goldika["default"];
|
|
647
652
|
exports.goldis = goldis["default"];
|
|
648
653
|
exports.hamrahgold = hamrahgold["default"];
|
|
@@ -727,6 +732,7 @@ exports.zaif = zaif["default"];
|
|
|
727
732
|
exports.zarafza = zarafza["default"];
|
|
728
733
|
exports.zarminex = zarminex["default"];
|
|
729
734
|
exports.zarniv = zarniv["default"];
|
|
735
|
+
exports.zarpin = zarpin["default"];
|
|
730
736
|
exports.zonda = zonda["default"];
|
|
731
737
|
exports["default"] = ccxt;
|
|
732
738
|
exports.exchanges = exchanges;
|
package/dist/cjs/src/baazar.js
CHANGED
|
@@ -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, '
|
|
119
|
-
let ask = this.safeNumber(data, '
|
|
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':
|
|
139
|
-
'last':
|
|
142
|
+
'close': last,
|
|
143
|
+
'last': last,
|
|
140
144
|
'previousClose': undefined,
|
|
141
145
|
'change': undefined,
|
|
142
146
|
'percentage': undefined,
|
package/dist/cjs/src/daric.js
CHANGED
|
@@ -75,7 +75,7 @@ class daric extends Exchange["default"] {
|
|
|
75
75
|
}
|
|
76
76
|
parseMarket(market) {
|
|
77
77
|
const baseId = this.safeString(market, 'destinationCoinSymbol');
|
|
78
|
-
let base = 'XAG';
|
|
78
|
+
let base = 'XAG-1G';
|
|
79
79
|
if (baseId === 'GOLD18') {
|
|
80
80
|
base = 'XAU18';
|
|
81
81
|
}
|
|
@@ -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':
|
|
159
|
+
'bid': bid,
|
|
154
160
|
'bidVolume': undefined,
|
|
155
|
-
'ask':
|
|
161
|
+
'ask': ask,
|
|
156
162
|
'askVolume': undefined,
|
|
157
163
|
'vwap': undefined,
|
|
158
164
|
'open': undefined,
|
|
159
|
-
'close':
|
|
160
|
-
'last':
|
|
165
|
+
'close': last,
|
|
166
|
+
'last': last,
|
|
161
167
|
'previousClose': undefined,
|
|
162
168
|
'change': undefined,
|
|
163
169
|
'percentage': this.safeNumber(ticker, 'change'),
|
|
@@ -69,7 +69,7 @@ class digikalagold extends Exchange["default"] {
|
|
|
69
69
|
}
|
|
70
70
|
parseMarketEntry(response, id) {
|
|
71
71
|
const isGold = id === 'gold18';
|
|
72
|
-
let base = 'XAG';
|
|
72
|
+
let base = 'XAG-1G';
|
|
73
73
|
if (isGold) {
|
|
74
74
|
base = 'XAU18';
|
|
75
75
|
}
|
|
@@ -126,7 +126,7 @@ class digikalagold extends Exchange["default"] {
|
|
|
126
126
|
}
|
|
127
127
|
const response = await this.fetchPrice(params);
|
|
128
128
|
const result = {};
|
|
129
|
-
const marketSymbols = ['XAU18/IRT', 'XAG/IRT'];
|
|
129
|
+
const marketSymbols = ['XAU18/IRT', 'XAG-1G/IRT'];
|
|
130
130
|
for (let i = 0; i < marketSymbols.length; i++) {
|
|
131
131
|
const symbol = marketSymbols[i];
|
|
132
132
|
const market = this.market(symbol);
|
|
@@ -0,0 +1,180 @@
|
|
|
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'];
|
|
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
|
+
return {
|
|
73
|
+
'id': this.safeString(data, 'market'),
|
|
74
|
+
'symbol': base + '/' + quoteId,
|
|
75
|
+
'base': base,
|
|
76
|
+
'quote': quoteId,
|
|
77
|
+
'settle': undefined,
|
|
78
|
+
'baseId': baseId,
|
|
79
|
+
'quoteId': quoteId,
|
|
80
|
+
'settleId': undefined,
|
|
81
|
+
'type': 'otc',
|
|
82
|
+
'spot': false,
|
|
83
|
+
'margin': false,
|
|
84
|
+
'swap': false,
|
|
85
|
+
'future': false,
|
|
86
|
+
'option': false,
|
|
87
|
+
'active': this.safeBool(data, 'buy_is_active') && this.safeBool(data, 'sell_is_active'),
|
|
88
|
+
'contract': false,
|
|
89
|
+
'linear': undefined,
|
|
90
|
+
'inverse': undefined,
|
|
91
|
+
'contractSize': undefined,
|
|
92
|
+
'expiry': undefined,
|
|
93
|
+
'expiryDatetime': undefined,
|
|
94
|
+
'strike': undefined,
|
|
95
|
+
'optionType': undefined,
|
|
96
|
+
'precision': {
|
|
97
|
+
'amount': this.safeNumber(data, 'amount_precision'),
|
|
98
|
+
'price': this.safeNumber(data, 'price_precision'),
|
|
99
|
+
},
|
|
100
|
+
'limits': {
|
|
101
|
+
'leverage': { 'min': undefined, 'max': undefined },
|
|
102
|
+
'amount': {
|
|
103
|
+
'min': this.safeNumber(data, 'buy_min_amount'),
|
|
104
|
+
'max': this.safeNumber(data, 'buy_max_amount'),
|
|
105
|
+
},
|
|
106
|
+
'price': { 'min': undefined, 'max': undefined },
|
|
107
|
+
'cost': { 'min': undefined, 'max': undefined },
|
|
108
|
+
},
|
|
109
|
+
'created': undefined,
|
|
110
|
+
'info': data,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
async fetchTicker(symbol, params = {}) {
|
|
114
|
+
await this.loadMarkets();
|
|
115
|
+
const market = this.market(symbol);
|
|
116
|
+
const response = await this.publicGetPairsPair(this.extend({
|
|
117
|
+
'pair': market['id'],
|
|
118
|
+
}, params));
|
|
119
|
+
return this.parseTicker(response, market);
|
|
120
|
+
}
|
|
121
|
+
async fetchTickers(symbols = undefined, params = {}) {
|
|
122
|
+
await this.loadMarkets();
|
|
123
|
+
if (symbols !== undefined) {
|
|
124
|
+
symbols = this.marketSymbols(symbols);
|
|
125
|
+
}
|
|
126
|
+
const marketSymbols = ['XAU18/IRT', 'XAG-1G/IRT'];
|
|
127
|
+
const result = {};
|
|
128
|
+
for (let i = 0; i < marketSymbols.length; i++) {
|
|
129
|
+
const market = this.market(marketSymbols[i]);
|
|
130
|
+
const response = await this.publicGetPairsPair(this.extend({
|
|
131
|
+
'pair': market['id'],
|
|
132
|
+
}, params));
|
|
133
|
+
const ticker = this.parseTicker(response, market);
|
|
134
|
+
result[ticker['symbol']] = ticker;
|
|
135
|
+
}
|
|
136
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
137
|
+
}
|
|
138
|
+
parseTicker(response, market = undefined) {
|
|
139
|
+
const data = this.safeDict(response, 'data', {});
|
|
140
|
+
const bid = this.safeNumber(data, 'buy_price');
|
|
141
|
+
const ask = this.safeNumber(data, 'sell_price');
|
|
142
|
+
let last = bid;
|
|
143
|
+
if (ask !== undefined && (last === undefined || ask > last)) {
|
|
144
|
+
last = ask;
|
|
145
|
+
}
|
|
146
|
+
return this.safeTicker({
|
|
147
|
+
'symbol': market['symbol'],
|
|
148
|
+
'timestamp': undefined,
|
|
149
|
+
'datetime': undefined,
|
|
150
|
+
'high': undefined,
|
|
151
|
+
'low': undefined,
|
|
152
|
+
'bid': bid,
|
|
153
|
+
'bidVolume': undefined,
|
|
154
|
+
'ask': ask,
|
|
155
|
+
'askVolume': undefined,
|
|
156
|
+
'vwap': undefined,
|
|
157
|
+
'open': undefined,
|
|
158
|
+
'close': last,
|
|
159
|
+
'last': last,
|
|
160
|
+
'previousClose': undefined,
|
|
161
|
+
'change': this.safeNumber(data, 'daily_price_change_amount'),
|
|
162
|
+
'percentage': this.safeNumber(data, 'daily_price_change_percentage'),
|
|
163
|
+
'average': undefined,
|
|
164
|
+
'baseVolume': undefined,
|
|
165
|
+
'quoteVolume': undefined,
|
|
166
|
+
'info': data,
|
|
167
|
+
}, market);
|
|
168
|
+
}
|
|
169
|
+
sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
|
|
170
|
+
let url = this.urls['api'][api] + '/' + this.implodeParams(path, params);
|
|
171
|
+
const query = this.omit(params, this.extractParams(path));
|
|
172
|
+
if (Object.keys(query).length) {
|
|
173
|
+
url += '?' + this.urlencode(query);
|
|
174
|
+
}
|
|
175
|
+
headers = { 'Accept': 'application/json' };
|
|
176
|
+
return { 'url': url, 'method': method, 'body': body, 'headers': headers };
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
exports["default"] = gerami;
|
package/dist/cjs/src/goldika.js
CHANGED
|
@@ -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':
|
|
142
|
-
'last':
|
|
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(
|
|
126
|
-
let ask = this.safeNumber(
|
|
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':
|
|
150
|
-
'last':
|
|
153
|
+
'close': last,
|
|
154
|
+
'last': last,
|
|
151
155
|
'previousClose': previousClose,
|
|
152
156
|
'change': undefined,
|
|
153
157
|
'percentage': this.safeNumber(dailyChange, 'percent'),
|
|
@@ -103,7 +103,10 @@ class melligold extends Exchange["default"] {
|
|
|
103
103
|
parseMarket(response, baseId = undefined) {
|
|
104
104
|
const data = this.safeDict(response, 'data', {});
|
|
105
105
|
const lowerAmounts = this.safeDict(data, 'lower_amounts', {});
|
|
106
|
-
|
|
106
|
+
let base = this.safeCurrencyCode(baseId);
|
|
107
|
+
if (base === 'XAG') {
|
|
108
|
+
base = 'XAG-1G';
|
|
109
|
+
}
|
|
107
110
|
const quote = 'IRT';
|
|
108
111
|
return {
|
|
109
112
|
'id': base + quote,
|
|
@@ -161,7 +164,7 @@ class melligold extends Exchange["default"] {
|
|
|
161
164
|
symbols = this.marketSymbols(symbols);
|
|
162
165
|
}
|
|
163
166
|
const result = {};
|
|
164
|
-
const marketSymbols = ['XAU18/IRT', 'XAG/IRT'];
|
|
167
|
+
const marketSymbols = ['XAU18/IRT', 'XAG-1G/IRT'];
|
|
165
168
|
for (let i = 0; i < marketSymbols.length; i++) {
|
|
166
169
|
const market = this.market(marketSymbols[i]);
|
|
167
170
|
const response = await this.requestWithCookie(this.extend({
|
|
@@ -177,6 +180,10 @@ class melligold extends Exchange["default"] {
|
|
|
177
180
|
const data = this.safeDict(response, 'data', {});
|
|
178
181
|
const buy = this.safeNumber(data, 'price_buy');
|
|
179
182
|
const sell = this.safeNumber(data, 'price_sell');
|
|
183
|
+
let last = buy;
|
|
184
|
+
if (sell !== undefined && (last === undefined || sell > last)) {
|
|
185
|
+
last = sell;
|
|
186
|
+
}
|
|
180
187
|
return this.safeTicker({
|
|
181
188
|
'symbol': market['symbol'],
|
|
182
189
|
'timestamp': this.safeTimestamp(data, 'timestamp'),
|
|
@@ -189,8 +196,8 @@ class melligold extends Exchange["default"] {
|
|
|
189
196
|
'askVolume': undefined,
|
|
190
197
|
'vwap': undefined,
|
|
191
198
|
'open': undefined,
|
|
192
|
-
'close':
|
|
193
|
-
'last':
|
|
199
|
+
'close': last,
|
|
200
|
+
'last': last,
|
|
194
201
|
'previousClose': undefined,
|
|
195
202
|
'change': undefined,
|
|
196
203
|
'percentage': undefined,
|
package/dist/cjs/src/ramzinex.js
CHANGED
|
@@ -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,
|
package/dist/cjs/src/talapp.js
CHANGED
|
@@ -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':
|
|
134
|
+
'bid': bid,
|
|
129
135
|
'bidVolume': undefined,
|
|
130
|
-
'ask':
|
|
136
|
+
'ask': ask,
|
|
131
137
|
'askVolume': undefined,
|
|
132
138
|
'vwap': undefined,
|
|
133
139
|
'open': undefined,
|
|
134
|
-
'close':
|
|
135
|
-
'last':
|
|
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':
|
|
129
|
+
'bid': buy,
|
|
126
130
|
'bidVolume': undefined,
|
|
127
|
-
'ask':
|
|
131
|
+
'ask': sell,
|
|
128
132
|
'askVolume': undefined,
|
|
129
133
|
'vwap': undefined,
|
|
130
134
|
'open': undefined,
|
|
131
|
-
'close':
|
|
132
|
-
'last':
|
|
135
|
+
'close': last,
|
|
136
|
+
'last': last,
|
|
133
137
|
'previousClose': undefined,
|
|
134
138
|
'change': undefined,
|
|
135
139
|
'percentage': undefined,
|
package/dist/cjs/src/wallgold.js
CHANGED
|
@@ -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':
|
|
143
|
-
'last':
|
|
146
|
+
'close': last,
|
|
147
|
+
'last': last,
|
|
144
148
|
'previousClose': undefined,
|
|
145
149
|
'change': undefined,
|
|
146
150
|
'percentage': undefined,
|
package/dist/cjs/src/zarafza.js
CHANGED
|
@@ -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(
|
|
124
|
-
const ask = this.safeNumber(
|
|
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':
|
|
138
|
-
'last':
|
|
141
|
+
'close': last,
|
|
142
|
+
'last': last,
|
|
139
143
|
'previousClose': undefined,
|
|
140
144
|
'change': undefined,
|
|
141
145
|
'percentage': this.safeNumber(sell, 'change'),
|
package/dist/cjs/src/zarminex.js
CHANGED
|
@@ -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, '
|
|
117
|
-
let ask = this.safeNumber(response, '
|
|
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
|
-
|
|
126
|
-
|
|
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'],
|
package/dist/cjs/src/zarniv.js
CHANGED
|
@@ -67,7 +67,7 @@ class zarniv extends Exchange["default"] {
|
|
|
67
67
|
];
|
|
68
68
|
}
|
|
69
69
|
parseMarketEntry(response, metal) {
|
|
70
|
-
let base = 'XAG';
|
|
70
|
+
let base = 'XAG-1G';
|
|
71
71
|
if (metal === 'gold') {
|
|
72
72
|
base = 'XAU18';
|
|
73
73
|
}
|
|
@@ -124,7 +124,7 @@ class zarniv extends Exchange["default"] {
|
|
|
124
124
|
const goldResponse = await this.fetchPrice('gold', params);
|
|
125
125
|
const silverResponse = await this.fetchPrice('silver', params);
|
|
126
126
|
const goldMarket = this.market('XAU18/IRT');
|
|
127
|
-
const silverMarket = this.market('XAG/IRT');
|
|
127
|
+
const silverMarket = this.market('XAG-1G/IRT');
|
|
128
128
|
const goldTicker = this.parseTicker(goldResponse, goldMarket);
|
|
129
129
|
const silverTicker = this.parseTicker(silverResponse, silverMarket);
|
|
130
130
|
const result = {};
|
|
@@ -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, '
|
|
142
|
-
const ask = this.safeNumber(response, '
|
|
143
|
-
|
|
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,
|