@pioneer-platform/markets 8.1.14 → 8.1.16
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/lib/index.js +70 -67
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -80,17 +80,17 @@ module.exports = {
|
|
|
80
80
|
getPricesInQuote: function (assets, quote) {
|
|
81
81
|
return get_prices_in_quote(assets, quote);
|
|
82
82
|
},
|
|
83
|
-
|
|
84
|
-
return
|
|
83
|
+
hydratePubkeys: function (pubkeys) {
|
|
84
|
+
return hydrate_pubkeys(pubkeys);
|
|
85
85
|
}
|
|
86
86
|
};
|
|
87
|
-
var
|
|
87
|
+
var hydrate_pubkeys = function (pubkeys) {
|
|
88
88
|
return __awaiter(this, void 0, void 0, function () {
|
|
89
89
|
var tag, valuesUsd, totalValueUsd, allNames, hydratedPubkeys, i, pubkey, j, entry, symbol, coinInfoCoinCap, coinInfoCoinGecko, rateUsdCoinCap, rateUsdCoinGecko, relDiff, percent, chosenRate, valueUsd, e_1;
|
|
90
90
|
return __generator(this, function (_a) {
|
|
91
91
|
switch (_a.label) {
|
|
92
92
|
case 0:
|
|
93
|
-
tag = TAG + ' |
|
|
93
|
+
tag = TAG + ' | hydrate_pubkeys | ';
|
|
94
94
|
_a.label = 1;
|
|
95
95
|
case 1:
|
|
96
96
|
_a.trys.push([1, 6, , 7]);
|
|
@@ -112,13 +112,17 @@ var get_value_pubkeys = function (pubkeys, quote) {
|
|
|
112
112
|
hydratedPubkeys = [];
|
|
113
113
|
for (i = 0; i < pubkeys.length; i++) {
|
|
114
114
|
pubkey = pubkeys[i];
|
|
115
|
+
if (!pubkey.balances) { // @ts-ignore
|
|
116
|
+
pubkey.balances = [];
|
|
117
|
+
}
|
|
115
118
|
for (j = 0; j < pubkey.balances.length; j++) {
|
|
116
|
-
entry = pubkey.balances[
|
|
117
|
-
|
|
119
|
+
entry = pubkey.balances[j];
|
|
120
|
+
log.debug(tag, "entry: ", entry);
|
|
121
|
+
symbol = entry.asset;
|
|
118
122
|
coinInfoCoinCap = GLOBAL_RATES_COINCAP[symbol];
|
|
119
|
-
log.
|
|
123
|
+
log.debug(tag, "coinInfoCoinCap: ", coinInfoCoinCap);
|
|
120
124
|
coinInfoCoinGecko = GLOBAL_RATES_COINGECKO[symbol];
|
|
121
|
-
log.
|
|
125
|
+
log.debug(tag, "coinInfoCoinGecko: ", coinInfoCoinGecko);
|
|
122
126
|
rateUsdCoinCap = 0;
|
|
123
127
|
if (GLOBAL_RATES_COINCAP[symbol] && GLOBAL_RATES_COINCAP[symbol].priceUsd) {
|
|
124
128
|
rateUsdCoinCap = GLOBAL_RATES_COINCAP[symbol].priceUsd;
|
|
@@ -126,54 +130,6 @@ var get_value_pubkeys = function (pubkeys, quote) {
|
|
|
126
130
|
else {
|
|
127
131
|
log.error(tag, " COINCAP Missing rate data for " + symbol);
|
|
128
132
|
}
|
|
129
|
-
//look for symbol conflicts
|
|
130
|
-
if (coinInfoCoinCap.symbol === coinInfoCoinGecko.symbol) {
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
//
|
|
134
|
-
if (coinInfoCoinCap.symbol) {
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
entry.marketInfo = {
|
|
138
|
-
symbol: coinInfoCoinCap.symbol || coinInfoCoinGecko.symbol,
|
|
139
|
-
id_coincap: coinInfoCoinCap.id,
|
|
140
|
-
id_coingecko: coinInfoCoinGecko.id,
|
|
141
|
-
rank_coincap: coinInfoCoinCap.rank,
|
|
142
|
-
rank_coingecko: coinInfoCoinGecko.market_cap_rank,
|
|
143
|
-
name_coincap: coinInfoCoinCap.name,
|
|
144
|
-
name_coingecko: coinInfoCoinGecko.name,
|
|
145
|
-
supply: coinInfoCoinCap.supply,
|
|
146
|
-
maxSupply: coinInfoCoinCap.maxSupply,
|
|
147
|
-
marketCapUsd: coinInfoCoinCap.marketCapUsd,
|
|
148
|
-
volumeUsd24Hr: coinInfoCoinCap.volumeUsd24Hr,
|
|
149
|
-
priceUsd: coinInfoCoinCap.priceUsd,
|
|
150
|
-
changePercent24Hr: coinInfoCoinCap.changePercent24Hr,
|
|
151
|
-
vwap24Hr: coinInfoCoinCap.vwap24Hr,
|
|
152
|
-
explorer: coinInfoCoinCap.explorer,
|
|
153
|
-
//gecko
|
|
154
|
-
image: coinInfoCoinGecko.image,
|
|
155
|
-
current_price: coinInfoCoinGecko.current_price,
|
|
156
|
-
market_cap: coinInfoCoinGecko.market_cap,
|
|
157
|
-
fully_diluted_valuation: coinInfoCoinGecko.fully_diluted_valuation,
|
|
158
|
-
total_volume: coinInfoCoinGecko.total_volume,
|
|
159
|
-
high_24h: coinInfoCoinGecko.high_24h,
|
|
160
|
-
low_24h: coinInfoCoinGecko.low_24h,
|
|
161
|
-
price_change_24h: coinInfoCoinGecko.price_change_24h,
|
|
162
|
-
price_change_percentage_24h: coinInfoCoinGecko.price_change_percentage_24h,
|
|
163
|
-
market_cap_change_24h: coinInfoCoinGecko.market_cap_change_24h,
|
|
164
|
-
market_cap_change_percentage_24h: coinInfoCoinGecko.market_cap_change_percentage_24h,
|
|
165
|
-
circulating_supply: coinInfoCoinGecko.circulating_supply,
|
|
166
|
-
total_supply: coinInfoCoinGecko.total_supply,
|
|
167
|
-
max_supply: coinInfoCoinGecko.max_supply,
|
|
168
|
-
ath: coinInfoCoinGecko.ath,
|
|
169
|
-
ath_change_percentage: coinInfoCoinGecko.ath_change_percentage,
|
|
170
|
-
ath_date: coinInfoCoinGecko.ath_date,
|
|
171
|
-
atl: coinInfoCoinGecko.atl,
|
|
172
|
-
atl_change_percentage: coinInfoCoinGecko.atl_change_percentage,
|
|
173
|
-
atl_date: coinInfoCoinGecko.atl_date,
|
|
174
|
-
roi: coinInfoCoinGecko.roi,
|
|
175
|
-
last_updated: coinInfoCoinGecko.last_updated
|
|
176
|
-
};
|
|
177
133
|
rateUsdCoinGecko = 0;
|
|
178
134
|
if (GLOBAL_RATES_COINGECKO[symbol] && GLOBAL_RATES_COINGECKO[symbol].current_price) {
|
|
179
135
|
rateUsdCoinGecko = GLOBAL_RATES_COINGECKO[symbol].current_price;
|
|
@@ -181,13 +137,13 @@ var get_value_pubkeys = function (pubkeys, quote) {
|
|
|
181
137
|
else {
|
|
182
138
|
log.error(tag, " COINGECKO Missing rate data for " + symbol);
|
|
183
139
|
}
|
|
184
|
-
log.
|
|
185
|
-
log.
|
|
140
|
+
log.debug(symbol, " rateUsdCoinCap: ", rateUsdCoinCap);
|
|
141
|
+
log.debug(symbol, " rateUsdCoinGecko: ", rateUsdCoinGecko);
|
|
186
142
|
relDiff = function (a, b) {
|
|
187
143
|
return 100 * Math.abs((a - b) / ((a + b) / 2));
|
|
188
144
|
};
|
|
189
145
|
percent = relDiff(Number(rateUsdCoinCap), Number(rateUsdCoinGecko));
|
|
190
|
-
log.
|
|
146
|
+
log.debug(symbol, " percent: ", percent);
|
|
191
147
|
chosenRate = 0;
|
|
192
148
|
if (rateUsdCoinCap === 0) {
|
|
193
149
|
chosenRate = rateUsdCoinGecko;
|
|
@@ -202,15 +158,62 @@ var get_value_pubkeys = function (pubkeys, quote) {
|
|
|
202
158
|
chosenRate = rateUsdCoinGecko;
|
|
203
159
|
}
|
|
204
160
|
chosenRate = Number(chosenRate);
|
|
205
|
-
valuesUsd[symbol] = chosenRate;
|
|
206
161
|
entry.priceUsd = String(chosenRate);
|
|
207
|
-
valueUsd =
|
|
162
|
+
valueUsd = entry.balance * chosenRate;
|
|
163
|
+
entry.valueUsd = String(valueUsd);
|
|
164
|
+
//valueUsd
|
|
165
|
+
totalValueUsd += totalValueUsd + valueUsd;
|
|
208
166
|
//TODO if quote !== USD
|
|
209
167
|
//calc conversion
|
|
168
|
+
if (coinInfoCoinCap && coinInfoCoinGecko) {
|
|
169
|
+
entry.marketInfo = {
|
|
170
|
+
symbol: coinInfoCoinCap.symbol || coinInfoCoinGecko.symbol,
|
|
171
|
+
id_coincap: coinInfoCoinCap.id,
|
|
172
|
+
id_coingecko: coinInfoCoinGecko.id,
|
|
173
|
+
rank_coincap: coinInfoCoinCap.rank,
|
|
174
|
+
rank_coingecko: coinInfoCoinGecko.market_cap_rank,
|
|
175
|
+
name_coincap: coinInfoCoinCap.name,
|
|
176
|
+
name_coingecko: coinInfoCoinGecko.name,
|
|
177
|
+
supply: coinInfoCoinCap.supply,
|
|
178
|
+
maxSupply: coinInfoCoinCap.maxSupply,
|
|
179
|
+
marketCapUsd: coinInfoCoinCap.marketCapUsd,
|
|
180
|
+
volumeUsd24Hr: coinInfoCoinCap.volumeUsd24Hr,
|
|
181
|
+
priceUsd: coinInfoCoinCap.priceUsd,
|
|
182
|
+
changePercent24Hr: coinInfoCoinCap.changePercent24Hr,
|
|
183
|
+
vwap24Hr: coinInfoCoinCap.vwap24Hr,
|
|
184
|
+
explorer: coinInfoCoinCap.explorer,
|
|
185
|
+
//gecko
|
|
186
|
+
image: coinInfoCoinGecko.image,
|
|
187
|
+
current_price: coinInfoCoinGecko.current_price,
|
|
188
|
+
market_cap: coinInfoCoinGecko.market_cap,
|
|
189
|
+
fully_diluted_valuation: coinInfoCoinGecko.fully_diluted_valuation,
|
|
190
|
+
total_volume: coinInfoCoinGecko.total_volume,
|
|
191
|
+
high_24h: coinInfoCoinGecko.high_24h,
|
|
192
|
+
low_24h: coinInfoCoinGecko.low_24h,
|
|
193
|
+
price_change_24h: coinInfoCoinGecko.price_change_24h,
|
|
194
|
+
price_change_percentage_24h: coinInfoCoinGecko.price_change_percentage_24h,
|
|
195
|
+
market_cap_change_24h: coinInfoCoinGecko.market_cap_change_24h,
|
|
196
|
+
market_cap_change_percentage_24h: coinInfoCoinGecko.market_cap_change_percentage_24h,
|
|
197
|
+
circulating_supply: coinInfoCoinGecko.circulating_supply,
|
|
198
|
+
total_supply: coinInfoCoinGecko.total_supply,
|
|
199
|
+
max_supply: coinInfoCoinGecko.max_supply,
|
|
200
|
+
ath: coinInfoCoinGecko.ath,
|
|
201
|
+
ath_change_percentage: coinInfoCoinGecko.ath_change_percentage,
|
|
202
|
+
ath_date: coinInfoCoinGecko.ath_date,
|
|
203
|
+
atl: coinInfoCoinGecko.atl,
|
|
204
|
+
atl_change_percentage: coinInfoCoinGecko.atl_change_percentage,
|
|
205
|
+
atl_date: coinInfoCoinGecko.atl_date,
|
|
206
|
+
roi: coinInfoCoinGecko.roi,
|
|
207
|
+
last_updated: coinInfoCoinGecko.last_updated
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
log.error("Incomplete market data!");
|
|
212
|
+
}
|
|
210
213
|
hydratedPubkeys.push(entry);
|
|
211
214
|
}
|
|
212
215
|
}
|
|
213
|
-
// log.
|
|
216
|
+
// log.debug(tag,'names: ',allNames)
|
|
214
217
|
//let priceData in USD
|
|
215
218
|
//let allValuesUsd = get_prices_in_quote()
|
|
216
219
|
//supplement with icons
|
|
@@ -248,7 +251,7 @@ var get_assets_coincap = function () {
|
|
|
248
251
|
case 2:
|
|
249
252
|
result = _a.sent();
|
|
250
253
|
allCoinsArray = result.data.data;
|
|
251
|
-
log.
|
|
254
|
+
log.debug(tag, "allCoinsArray: ", allCoinsArray.length);
|
|
252
255
|
for (i = 0; i < allCoinsArray.length; i++) {
|
|
253
256
|
coinInfo = allCoinsArray[i];
|
|
254
257
|
log.debug(tag, "coinInfo: ", coinInfo);
|
|
@@ -258,8 +261,8 @@ var get_assets_coincap = function () {
|
|
|
258
261
|
return [2 /*return*/, output];
|
|
259
262
|
case 3:
|
|
260
263
|
e_2 = _a.sent();
|
|
261
|
-
|
|
262
|
-
|
|
264
|
+
//handle error gracefully
|
|
265
|
+
return [2 /*return*/, {}];
|
|
263
266
|
case 4: return [2 /*return*/];
|
|
264
267
|
}
|
|
265
268
|
});
|
|
@@ -296,8 +299,8 @@ var get_assets_coingecko = function () {
|
|
|
296
299
|
return [2 /*return*/, output];
|
|
297
300
|
case 3:
|
|
298
301
|
e_3 = _a.sent();
|
|
299
|
-
|
|
300
|
-
|
|
302
|
+
//handle error gracefully
|
|
303
|
+
return [2 /*return*/, {}];
|
|
301
304
|
case 4: return [2 /*return*/];
|
|
302
305
|
}
|
|
303
306
|
});
|