@pioneer-platform/markets 8.1.14 → 8.1.19
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 +77 -69
- 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
|
-
var tag, valuesUsd, totalValueUsd, allNames, hydratedPubkeys, i, pubkey, j, entry, symbol, coinInfoCoinCap, coinInfoCoinGecko, rateUsdCoinCap, rateUsdCoinGecko, relDiff, percent, chosenRate, valueUsd, e_1;
|
|
89
|
+
var tag, valuesUsd, totalValueUsd, allNames, hydratedPubkeys, i, pubkey, hydratedPubkey, 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,21 @@ 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
|
+
}
|
|
118
|
+
log.info(tag, "pubkey: ", pubkey);
|
|
119
|
+
hydratedPubkey = JSON.parse(JSON.stringify(pubkey));
|
|
120
|
+
hydratedPubkey.balances = [];
|
|
115
121
|
for (j = 0; j < pubkey.balances.length; j++) {
|
|
116
|
-
entry = pubkey.balances[
|
|
117
|
-
|
|
122
|
+
entry = pubkey.balances[j];
|
|
123
|
+
//clone
|
|
124
|
+
log.info(tag, "entry: ", entry);
|
|
125
|
+
symbol = entry.asset;
|
|
118
126
|
coinInfoCoinCap = GLOBAL_RATES_COINCAP[symbol];
|
|
119
|
-
log.
|
|
127
|
+
log.debug(tag, "coinInfoCoinCap: ", coinInfoCoinCap);
|
|
120
128
|
coinInfoCoinGecko = GLOBAL_RATES_COINGECKO[symbol];
|
|
121
|
-
log.
|
|
129
|
+
log.debug(tag, "coinInfoCoinGecko: ", coinInfoCoinGecko);
|
|
122
130
|
rateUsdCoinCap = 0;
|
|
123
131
|
if (GLOBAL_RATES_COINCAP[symbol] && GLOBAL_RATES_COINCAP[symbol].priceUsd) {
|
|
124
132
|
rateUsdCoinCap = GLOBAL_RATES_COINCAP[symbol].priceUsd;
|
|
@@ -126,54 +134,6 @@ var get_value_pubkeys = function (pubkeys, quote) {
|
|
|
126
134
|
else {
|
|
127
135
|
log.error(tag, " COINCAP Missing rate data for " + symbol);
|
|
128
136
|
}
|
|
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
137
|
rateUsdCoinGecko = 0;
|
|
178
138
|
if (GLOBAL_RATES_COINGECKO[symbol] && GLOBAL_RATES_COINGECKO[symbol].current_price) {
|
|
179
139
|
rateUsdCoinGecko = GLOBAL_RATES_COINGECKO[symbol].current_price;
|
|
@@ -181,13 +141,13 @@ var get_value_pubkeys = function (pubkeys, quote) {
|
|
|
181
141
|
else {
|
|
182
142
|
log.error(tag, " COINGECKO Missing rate data for " + symbol);
|
|
183
143
|
}
|
|
184
|
-
log.
|
|
185
|
-
log.
|
|
144
|
+
log.debug(symbol, " rateUsdCoinCap: ", rateUsdCoinCap);
|
|
145
|
+
log.debug(symbol, " rateUsdCoinGecko: ", rateUsdCoinGecko);
|
|
186
146
|
relDiff = function (a, b) {
|
|
187
147
|
return 100 * Math.abs((a - b) / ((a + b) / 2));
|
|
188
148
|
};
|
|
189
149
|
percent = relDiff(Number(rateUsdCoinCap), Number(rateUsdCoinGecko));
|
|
190
|
-
log.
|
|
150
|
+
log.debug(symbol, " percent: ", percent);
|
|
191
151
|
chosenRate = 0;
|
|
192
152
|
if (rateUsdCoinCap === 0) {
|
|
193
153
|
chosenRate = rateUsdCoinGecko;
|
|
@@ -202,15 +162,63 @@ var get_value_pubkeys = function (pubkeys, quote) {
|
|
|
202
162
|
chosenRate = rateUsdCoinGecko;
|
|
203
163
|
}
|
|
204
164
|
chosenRate = Number(chosenRate);
|
|
205
|
-
valuesUsd[symbol] = chosenRate;
|
|
206
165
|
entry.priceUsd = String(chosenRate);
|
|
207
|
-
valueUsd =
|
|
166
|
+
valueUsd = entry.balance * chosenRate;
|
|
167
|
+
entry.valueUsd = String(valueUsd);
|
|
168
|
+
//valueUsd
|
|
169
|
+
totalValueUsd = Number(totalValueUsd) + Number(valueUsd);
|
|
208
170
|
//TODO if quote !== USD
|
|
209
171
|
//calc conversion
|
|
210
|
-
|
|
172
|
+
if (coinInfoCoinCap && coinInfoCoinGecko) {
|
|
173
|
+
entry.marketInfo = {
|
|
174
|
+
symbol: coinInfoCoinCap.symbol || coinInfoCoinGecko.symbol,
|
|
175
|
+
id_coincap: coinInfoCoinCap.id,
|
|
176
|
+
id_coingecko: coinInfoCoinGecko.id,
|
|
177
|
+
rank_coincap: coinInfoCoinCap.rank,
|
|
178
|
+
rank_coingecko: coinInfoCoinGecko.market_cap_rank,
|
|
179
|
+
name_coincap: coinInfoCoinCap.name,
|
|
180
|
+
name_coingecko: coinInfoCoinGecko.name,
|
|
181
|
+
supply: coinInfoCoinCap.supply,
|
|
182
|
+
maxSupply: coinInfoCoinCap.maxSupply,
|
|
183
|
+
marketCapUsd: coinInfoCoinCap.marketCapUsd,
|
|
184
|
+
volumeUsd24Hr: coinInfoCoinCap.volumeUsd24Hr,
|
|
185
|
+
priceUsd: coinInfoCoinCap.priceUsd,
|
|
186
|
+
changePercent24Hr: coinInfoCoinCap.changePercent24Hr,
|
|
187
|
+
vwap24Hr: coinInfoCoinCap.vwap24Hr,
|
|
188
|
+
explorer: coinInfoCoinCap.explorer,
|
|
189
|
+
//gecko
|
|
190
|
+
image: coinInfoCoinGecko.image,
|
|
191
|
+
current_price: coinInfoCoinGecko.current_price,
|
|
192
|
+
market_cap: coinInfoCoinGecko.market_cap,
|
|
193
|
+
fully_diluted_valuation: coinInfoCoinGecko.fully_diluted_valuation,
|
|
194
|
+
total_volume: coinInfoCoinGecko.total_volume,
|
|
195
|
+
high_24h: coinInfoCoinGecko.high_24h,
|
|
196
|
+
low_24h: coinInfoCoinGecko.low_24h,
|
|
197
|
+
price_change_24h: coinInfoCoinGecko.price_change_24h,
|
|
198
|
+
price_change_percentage_24h: coinInfoCoinGecko.price_change_percentage_24h,
|
|
199
|
+
market_cap_change_24h: coinInfoCoinGecko.market_cap_change_24h,
|
|
200
|
+
market_cap_change_percentage_24h: coinInfoCoinGecko.market_cap_change_percentage_24h,
|
|
201
|
+
circulating_supply: coinInfoCoinGecko.circulating_supply,
|
|
202
|
+
total_supply: coinInfoCoinGecko.total_supply,
|
|
203
|
+
max_supply: coinInfoCoinGecko.max_supply,
|
|
204
|
+
ath: coinInfoCoinGecko.ath,
|
|
205
|
+
ath_change_percentage: coinInfoCoinGecko.ath_change_percentage,
|
|
206
|
+
ath_date: coinInfoCoinGecko.ath_date,
|
|
207
|
+
atl: coinInfoCoinGecko.atl,
|
|
208
|
+
atl_change_percentage: coinInfoCoinGecko.atl_change_percentage,
|
|
209
|
+
atl_date: coinInfoCoinGecko.atl_date,
|
|
210
|
+
roi: coinInfoCoinGecko.roi,
|
|
211
|
+
last_updated: coinInfoCoinGecko.last_updated
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
log.error("Incomplete market data!");
|
|
216
|
+
}
|
|
217
|
+
hydratedPubkey.balances.push(entry);
|
|
211
218
|
}
|
|
219
|
+
hydratedPubkeys.push(hydratedPubkey);
|
|
212
220
|
}
|
|
213
|
-
// log.
|
|
221
|
+
// log.debug(tag,'names: ',allNames)
|
|
214
222
|
//let priceData in USD
|
|
215
223
|
//let allValuesUsd = get_prices_in_quote()
|
|
216
224
|
//supplement with icons
|
|
@@ -248,7 +256,7 @@ var get_assets_coincap = function () {
|
|
|
248
256
|
case 2:
|
|
249
257
|
result = _a.sent();
|
|
250
258
|
allCoinsArray = result.data.data;
|
|
251
|
-
log.
|
|
259
|
+
log.debug(tag, "allCoinsArray: ", allCoinsArray.length);
|
|
252
260
|
for (i = 0; i < allCoinsArray.length; i++) {
|
|
253
261
|
coinInfo = allCoinsArray[i];
|
|
254
262
|
log.debug(tag, "coinInfo: ", coinInfo);
|
|
@@ -258,8 +266,8 @@ var get_assets_coincap = function () {
|
|
|
258
266
|
return [2 /*return*/, output];
|
|
259
267
|
case 3:
|
|
260
268
|
e_2 = _a.sent();
|
|
261
|
-
|
|
262
|
-
|
|
269
|
+
//handle error gracefully
|
|
270
|
+
return [2 /*return*/, {}];
|
|
263
271
|
case 4: return [2 /*return*/];
|
|
264
272
|
}
|
|
265
273
|
});
|
|
@@ -296,8 +304,8 @@ var get_assets_coingecko = function () {
|
|
|
296
304
|
return [2 /*return*/, output];
|
|
297
305
|
case 3:
|
|
298
306
|
e_3 = _a.sent();
|
|
299
|
-
|
|
300
|
-
|
|
307
|
+
//handle error gracefully
|
|
308
|
+
return [2 /*return*/, {}];
|
|
301
309
|
case 4: return [2 /*return*/];
|
|
302
310
|
}
|
|
303
311
|
});
|