@sonarwatch/portfolio-core 0.16.78 → 0.16.79

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/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [0.16.79](https://github.com/sonarwatch/portfolio/compare/core-0.16.78...core-0.16.79) (2025-10-28)
6
+
7
+
8
+
5
9
  ## [0.16.78](https://github.com/sonarwatch/portfolio/compare/core-0.16.77...core-0.16.78) (2025-10-23)
6
10
 
7
11
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonarwatch/portfolio-core",
3
- "version": "0.16.78",
3
+ "version": "0.16.79",
4
4
  "type": "commonjs",
5
5
  "types": "./src/index.d.ts",
6
6
  "repository": {
@@ -3,6 +3,12 @@ import { PortfolioElementLabel, SourceRef } from './Portfolio';
3
3
  export declare const primarySourceId = "primary";
4
4
  export declare const coingeckoSourceId = "coingecko";
5
5
  export declare const jupiterSourceId = "jupiter-datapi";
6
+ /**
7
+ * List of source ids to prioritise when computing the token price.
8
+ * The first id in the list has the highest priority.
9
+ * The last id has the lowest priority.
10
+ */
11
+ export declare const prioritisedSourceIds: string[];
6
12
  export declare const tokenPriceSourceTtl: number;
7
13
  export type TokenPriceUnderlying = {
8
14
  networkId: NetworkIdType;
@@ -49,3 +55,13 @@ export declare function pushTokenPriceSource(sources: TokenPriceSource[], source
49
55
  export declare function updateTokenPriceSources(sources: TokenPriceSource[]): TokenPriceSource[] | undefined;
50
56
  export declare function getTokenPriceUnderlyingFromTokenPrice(tokenPrice: TokenPrice, amountPerLp: number): TokenPriceUnderlying;
51
57
  export declare function getTokenPricesUnderlyingsFromTokensPrices(tokensPrices: TokenPrice[], amountsPerLp: number[]): TokenPriceUnderlying[];
58
+ /**
59
+ * Get the price information from a list of sources.
60
+ * The price is determined by prioritising sources present in the prioritisedSourceIds list
61
+ * If no prioritised source is found, the price is calculated as a weighted average of all sources' price
62
+ * @sources : list of TokenPriceSources
63
+ */
64
+ export declare function getPriceInfoFromSources(sources: TokenPriceSource[]): {
65
+ price: number;
66
+ priceChange24h?: number;
67
+ };
package/src/TokenPrice.js CHANGED
@@ -1,18 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTokenPricesUnderlyingsFromTokensPrices = exports.getTokenPriceUnderlyingFromTokenPrice = exports.updateTokenPriceSources = exports.pushTokenPriceSource = exports.tokenPriceFromSources = exports.tokenPriceSourceTtl = exports.jupiterSourceId = exports.coingeckoSourceId = exports.primarySourceId = void 0;
3
+ exports.getPriceInfoFromSources = exports.getTokenPricesUnderlyingsFromTokensPrices = exports.getTokenPriceUnderlyingFromTokenPrice = exports.updateTokenPriceSources = exports.pushTokenPriceSource = exports.tokenPriceFromSources = exports.tokenPriceSourceTtl = exports.prioritisedSourceIds = exports.jupiterSourceId = exports.coingeckoSourceId = exports.primarySourceId = void 0;
4
4
  const helpers_1 = require("./helpers");
5
5
  const constants_1 = require("./constants");
6
6
  exports.primarySourceId = 'primary';
7
7
  exports.coingeckoSourceId = 'coingecko';
8
8
  exports.jupiterSourceId = 'jupiter-datapi';
9
+ /**
10
+ * List of source ids to prioritise when computing the token price.
11
+ * The first id in the list has the highest priority.
12
+ * The last id has the lowest priority.
13
+ */
14
+ exports.prioritisedSourceIds = [
15
+ exports.primarySourceId,
16
+ exports.jupiterSourceId,
17
+ // Always leave coingeckoSourceId at the end to use it as fallback
18
+ exports.coingeckoSourceId,
19
+ ];
9
20
  exports.tokenPriceSourceTtl = 4 * 60 * 60 * 1000; // 4 hours
10
21
  const MAX_N_SOURCES = 10;
11
22
  function tokenPriceFromSources(sources) {
12
23
  const updatedSources = updateTokenPriceSources(sources);
13
24
  if (!updatedSources || updatedSources.length === 0)
14
25
  return undefined;
15
- const bestSource = updatedSources.reduce((prev, current) => {
26
+ // Determine which source should be used as the main source for the token informations (link, label, platformId, etc)
27
+ const displaySource = updatedSources.reduce((prev, current) => {
16
28
  if (current.platformId !== constants_1.walletTokensPlatformId &&
17
29
  prev.platformId !== constants_1.walletTokensPlatformId &&
18
30
  current.platformId !== prev.platformId) {
@@ -25,52 +37,21 @@ function tokenPriceFromSources(sources) {
25
37
  return current;
26
38
  return prev;
27
39
  });
28
- let price;
29
- let priceChange24h;
30
- let jupiterSource;
31
- let coingeckoSource;
32
- let primarySource;
33
- for (const source of updatedSources) {
34
- if (source.id === exports.primarySourceId)
35
- primarySource = source;
36
- if (source.id === exports.jupiterSourceId)
37
- jupiterSource = source;
38
- if (source.id === exports.coingeckoSourceId)
39
- coingeckoSource = source;
40
- }
41
- if (primarySource) {
42
- price = primarySource.price;
43
- }
44
- else if (jupiterSource) {
45
- price = jupiterSource.price;
46
- if (jupiterSource.priceChange24h)
47
- priceChange24h = jupiterSource.priceChange24h;
48
- }
49
- else if (coingeckoSource) {
50
- price = coingeckoSource.price;
51
- }
52
- else {
53
- const [priceSum, weightSum] = updatedSources.reduce(([cPriceSum, cWeightSum], source) => [
54
- cPriceSum + source.price * source.weight,
55
- cWeightSum + source.weight,
56
- ], [0, 0]);
57
- price = weightSum === 0 ? 0 : priceSum / weightSum;
58
- }
40
+ const { price, priceChange24h } = getPriceInfoFromSources(updatedSources);
59
41
  return {
60
- address: bestSource.address,
61
- networkId: bestSource.networkId,
62
- platformId: bestSource.platformId,
63
- decimals: bestSource.decimals,
64
- price,
42
+ address: displaySource.address,
43
+ networkId: displaySource.networkId,
44
+ platformId: displaySource.platformId,
45
+ elementName: displaySource.elementName,
46
+ liquidityName: displaySource.liquidityName,
47
+ label: displaySource.label,
48
+ underlyings: displaySource.underlyings,
49
+ link: displaySource.link,
50
+ decimals: displaySource.decimals,
51
+ price: price,
65
52
  priceChange24h,
66
- underlyings: bestSource.underlyings,
67
- elementName: bestSource.elementName,
68
- label: bestSource.label,
69
- liquidityName: bestSource.liquidityName,
70
53
  timestamp: Date.now(),
71
54
  sources: updatedSources,
72
- link: bestSource.link,
73
- sourceRefs: bestSource.sourceRefs,
74
55
  };
75
56
  }
76
57
  exports.tokenPriceFromSources = tokenPriceFromSources;
@@ -122,4 +103,52 @@ function getTokenPricesUnderlyingsFromTokensPrices(tokensPrices, amountsPerLp) {
122
103
  }));
123
104
  }
124
105
  exports.getTokenPricesUnderlyingsFromTokensPrices = getTokenPricesUnderlyingsFromTokensPrices;
106
+ /**
107
+ * Get the price information from a list of sources.
108
+ * The price is determined by prioritising sources present in the prioritisedSourceIds list
109
+ * If no prioritised source is found, the price is calculated as a weighted average of all sources' price
110
+ * @sources : list of TokenPriceSources
111
+ */
112
+ function getPriceInfoFromSources(sources) {
113
+ const prioritisedSources = [];
114
+ let price;
115
+ let priceChange24h;
116
+ sources.forEach((s) => {
117
+ if (exports.prioritisedSourceIds.includes(s.id)) {
118
+ prioritisedSources.push(s);
119
+ }
120
+ // Get jupiter price change 24h if available
121
+ if (s.id === exports.jupiterSourceId) {
122
+ priceChange24h = s.priceChange24h;
123
+ }
124
+ });
125
+ const [priceSum, weightSum] = sources.reduce(([cPriceSum, cWeightSum], source) => [
126
+ cPriceSum + source.price * source.weight,
127
+ cWeightSum + source.weight,
128
+ ], [0, 0]);
129
+ price = weightSum === 0 ? 0 : priceSum / weightSum;
130
+ // If there is no high priority sources, return the weighted average of all sources price
131
+ if (!prioritisedSources)
132
+ return {
133
+ price,
134
+ priceChange24h,
135
+ };
136
+ // Else, find the highest priority source available and use its price
137
+ let highestPrioritySource;
138
+ let highestSourceIndex = Number.MAX_SAFE_INTEGER;
139
+ for (const prioritySource of prioritisedSources) {
140
+ const sourceIndex = exports.prioritisedSourceIds.indexOf(prioritySource.id);
141
+ if (sourceIndex !== -1 && sourceIndex < highestSourceIndex) {
142
+ highestPrioritySource = prioritySource;
143
+ highestSourceIndex = sourceIndex;
144
+ }
145
+ }
146
+ if (highestPrioritySource)
147
+ price = highestPrioritySource.price;
148
+ return {
149
+ price,
150
+ priceChange24h,
151
+ };
152
+ }
153
+ exports.getPriceInfoFromSources = getPriceInfoFromSources;
125
154
  //# sourceMappingURL=TokenPrice.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TokenPrice.js","sourceRoot":"","sources":["../../../../packages/core/src/TokenPrice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TokenPrice.js","sourceRoot":"","sources":["../../../../packages/core/src/TokenPrice.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,9 @@ function getAddressesFromElement(element, tokenOnly = true) {
12
12
  ...(((_b = element.data.cross) === null || _b === void 0 ? void 0 : _b.positions.map((p) => p.address).filter((v) => v !== undefined)) || []),
13
13
  ];
14
14
  }
15
+ if (element.type === Portfolio_1.PortfolioElementType.trade) {
16
+ return [element.data.inputAddress, element.data.outputAddress];
17
+ }
15
18
  const assets = (0, getAssetsFromElement_1.getAssetsFromElement)(element);
16
19
  const addressesFromAssets = (0, getAddressesFromAssets_1.getAddressesFromAssets)(assets, tokenOnly);
17
20
  const addressesFromYields = [];
@@ -1 +1 @@
1
- {"version":3,"file":"getAddressesFromElement.js","sourceRoot":"","sources":["../../../../../packages/core/src/utils/getAddressesFromElement.ts"],"names":[],"mappings":";;;AAAA,4CAAsE;AACtE,iEAA8D;AAC9D,qEAAkE;AAElE,SAAgB,uBAAuB,CACrC,OAAyB,EACzB,SAAS,GAAG,IAAI;;IAEhB,IAAI,OAAO,CAAC,IAAI,KAAK,gCAAoB,CAAC,QAAQ,EAAE,CAAC;QACnD,OAAO;YACL,GAAI,CAAC,CAAA,MAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,0CAAE,SAAS,CAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,KAAI,EAAE,CAAc;YACrD,GAAI,CAAC,CAAA,MAAA,OAAO,CAAC,IAAI,CAAC,KAAK,0CAAE,SAAS,CAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,KAAI,EAAE,CAAc;SACtD,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,IAAA,2CAAoB,EAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,mBAAmB,GAAG,IAAA,+CAAsB,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAEtE,MAAM,mBAAmB,GAAa,EAAE,CAAC;IACzC,IAAI,OAAO,CAAC,IAAI,KAAK,gCAAoB,CAAC,UAAU,EAAE,CAAC;QACrD,IAAI,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC7C,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CACpB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CACxD,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC7C,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CACpB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CACxD,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,mBAAmB,EAAE,GAAG,mBAAmB,CAAC,CAAC;AAC1D,CAAC;AApCD,0DAoCC"}
1
+ {"version":3,"file":"getAddressesFromElement.js","sourceRoot":"","sources":["../../../../../packages/core/src/utils/getAddressesFromElement.ts"],"names":[],"mappings":";;;AAAA,4CAAsE;AACtE,iEAA8D;AAC9D,qEAAkE;AAElE,SAAgB,uBAAuB,CACrC,OAAyB,EACzB,SAAS,GAAG,IAAI;;IAEhB,IAAI,OAAO,CAAC,IAAI,KAAK,gCAAoB,CAAC,QAAQ,EAAE,CAAC;QACnD,OAAO;YACL,GAAI,CAAC,CAAA,MAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,0CAAE,SAAS,CAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,KAAI,EAAE,CAAc;YACrD,GAAI,CAAC,CAAA,MAAA,OAAO,CAAC,IAAI,CAAC,KAAK,0CAAE,SAAS,CAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,KAAI,EAAE,CAAc;SACtD,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,gCAAoB,CAAC,KAAK,EAAE,CAAC;QAChD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,2CAAoB,EAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,mBAAmB,GAAG,IAAA,+CAAsB,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAEtE,MAAM,mBAAmB,GAAa,EAAE,CAAC;IACzC,IAAI,OAAO,CAAC,IAAI,KAAK,gCAAoB,CAAC,UAAU,EAAE,CAAC;QACrD,IAAI,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC7C,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CACpB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CACxD,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC7C,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CACpB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CACxD,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,mBAAmB,EAAE,GAAG,mBAAmB,CAAC,CAAC;AAC1D,CAAC;AAzCD,0DAyCC"}