@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.
Files changed (2) hide show
  1. package/lib/index.js +70 -67
  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
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 + ' | 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,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[i];
117
- symbol = entry.symbol;
119
+ entry = pubkey.balances[j];
120
+ log.debug(tag, "entry: ", entry);
121
+ symbol = entry.asset;
118
122
  coinInfoCoinCap = GLOBAL_RATES_COINCAP[symbol];
119
- log.info(tag, "coinInfoCoinCap: ", coinInfoCoinCap);
123
+ log.debug(tag, "coinInfoCoinCap: ", coinInfoCoinCap);
120
124
  coinInfoCoinGecko = GLOBAL_RATES_COINGECKO[symbol];
121
- log.info(tag, "coinInfoCoinGecko: ", coinInfoCoinGecko);
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.info(symbol, " rateUsdCoinCap: ", rateUsdCoinCap);
185
- log.info(symbol, " rateUsdCoinGecko: ", rateUsdCoinGecko);
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.info(symbol, " percent: ", percent);
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 = totalValueUsd += valuesUsd[symbol] + chosenRate;
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.info(tag,'names: ',allNames)
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.info(tag, "allCoinsArray: ", allCoinsArray.length);
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
- console.error(tag, 'Error: ', e_2);
262
- throw e_2;
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
- console.error(tag, 'Error: ', e_3);
300
- throw e_3;
302
+ //handle error gracefully
303
+ return [2 /*return*/, {}];
301
304
  case 4: return [2 /*return*/];
302
305
  }
303
306
  });
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.16",
4
4
  "main": "./lib/index.js",
5
5
  "types": "./lib/index.d.ts",
6
6
  "dependencies": {