@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.
Files changed (2) hide show
  1. package/lib/index.js +77 -69
  2. 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
- valuePortfolio: function (pubkeys, quote) {
84
- return get_value_pubkeys(pubkeys, quote);
83
+ hydratePubkeys: function (pubkeys) {
84
+ return hydrate_pubkeys(pubkeys);
85
85
  }
86
86
  };
87
- var get_value_pubkeys = function (pubkeys, quote) {
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 + ' | get_value_portfolio | ';
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[i];
117
- symbol = entry.symbol;
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.info(tag, "coinInfoCoinCap: ", coinInfoCoinCap);
127
+ log.debug(tag, "coinInfoCoinCap: ", coinInfoCoinCap);
120
128
  coinInfoCoinGecko = GLOBAL_RATES_COINGECKO[symbol];
121
- log.info(tag, "coinInfoCoinGecko: ", coinInfoCoinGecko);
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.info(symbol, " rateUsdCoinCap: ", rateUsdCoinCap);
185
- log.info(symbol, " rateUsdCoinGecko: ", rateUsdCoinGecko);
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.info(symbol, " percent: ", percent);
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 = totalValueUsd += valuesUsd[symbol] + chosenRate;
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
- hydratedPubkeys.push(entry);
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.info(tag,'names: ',allNames)
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.info(tag, "allCoinsArray: ", allCoinsArray.length);
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
- console.error(tag, 'Error: ', e_2);
262
- throw e_2;
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
- console.error(tag, 'Error: ', e_3);
300
- throw e_3;
307
+ //handle error gracefully
308
+ return [2 /*return*/, {}];
301
309
  case 4: return [2 /*return*/];
302
310
  }
303
311
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pioneer-platform/markets",
3
- "version": "8.1.14",
3
+ "version": "8.1.19",
4
4
  "main": "./lib/index.js",
5
5
  "types": "./lib/index.d.ts",
6
6
  "dependencies": {