@sonarwatch/portfolio-core 0.15.11 → 0.15.12

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.15.12](https://github.com/sonarwatch/portfolio/compare/core-0.15.11...core-0.15.12) (2025-06-03)
6
+
7
+
8
+
5
9
  ## [0.15.11](https://github.com/sonarwatch/portfolio/compare/core-0.15.10...core-0.15.11) (2025-06-02)
6
10
 
7
11
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonarwatch/portfolio-core",
3
- "version": "0.15.11",
3
+ "version": "0.15.12",
4
4
  "type": "commonjs",
5
5
  "types": "./src/index.d.ts",
6
6
  "dependencies": {
@@ -0,0 +1,9 @@
1
+ import { NetworkIdType } from '../Network';
2
+ import { TokenPrice } from '../TokenPrice';
3
+ export declare class TokenPriceMap extends Map<string, TokenPrice> {
4
+ readonly networkId: NetworkIdType;
5
+ constructor(networkId: NetworkIdType, initialEntries?: [string, TokenPrice][]);
6
+ private formatKey;
7
+ get(address: string): TokenPrice | undefined;
8
+ has(address: string): boolean;
9
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TokenPriceMap = void 0;
4
+ const formatTokenAddress_1 = require("./formatTokenAddress");
5
+ class TokenPriceMap extends Map {
6
+ constructor(networkId, initialEntries) {
7
+ super(initialEntries);
8
+ this.networkId = networkId;
9
+ }
10
+ formatKey(key) {
11
+ return (0, formatTokenAddress_1.formatTokenAddress)(key, this.networkId);
12
+ }
13
+ get(address) {
14
+ return super.get(this.formatKey(address));
15
+ }
16
+ has(address) {
17
+ return super.has(this.formatKey(address));
18
+ }
19
+ }
20
+ exports.TokenPriceMap = TokenPriceMap;
21
+ //# sourceMappingURL=TokenPriceMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TokenPriceMap.js","sourceRoot":"","sources":["../../../../../packages/core/src/utils/TokenPriceMap.ts"],"names":[],"mappings":";;;AAEA,6DAA0D;AAE1D,MAAa,aAAc,SAAQ,GAAuB;IAGxD,YACE,SAAwB,EACxB,cAAuC;QAEvC,KAAK,CAAC,cAAc,CAAC,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAEO,SAAS,CAAC,GAAW;QAC3B,OAAO,IAAA,uCAAkB,EAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IAEQ,GAAG,CAAC,OAAe;QAC1B,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5C,CAAC;IAEQ,GAAG,CAAC,OAAe;QAC1B,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5C,CAAC;CACF;AAtBD,sCAsBC"}
@@ -0,0 +1,4 @@
1
+ import { PortfolioElement } from '../Portfolio';
2
+ import { TokenPriceMap } from './TokenPriceMap';
3
+ export declare const applyPricesToElements: (elements: PortfolioElement[], tokenPrices: TokenPriceMap) => PortfolioElement[];
4
+ export declare const applyPricesToElement: (element: PortfolioElement, tokenPrices: TokenPriceMap) => PortfolioElement;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyPricesToElement = exports.applyPricesToElements = void 0;
4
+ const Portfolio_1 = require("../Portfolio");
5
+ const applyPricesToElements = (elements, tokenPrices) => {
6
+ if (!tokenPrices || !Object.keys(tokenPrices).length)
7
+ return elements;
8
+ return elements.map((element) => (0, exports.applyPricesToElement)(element, tokenPrices));
9
+ };
10
+ exports.applyPricesToElements = applyPricesToElements;
11
+ const applyPricesToElement = (element, tokenPrices) => {
12
+ if (element.type === Portfolio_1.PortfolioElementType.multiple) {
13
+ return Object.assign(Object.assign({}, element), { data: Object.assign(Object.assign({}, element.data), { assets: element.data.assets.map((asset) => {
14
+ if (asset.type === Portfolio_1.PortfolioAssetType.token) {
15
+ const tokenPrice = tokenPrices.get(asset.data.address);
16
+ if (!tokenPrice)
17
+ return asset;
18
+ return Object.assign(Object.assign({}, asset), { data: Object.assign(Object.assign({}, asset.data), { price: tokenPrice.price }), value: tokenPrice.price * asset.data.amount });
19
+ }
20
+ return asset;
21
+ }), value: element.data.assets.reduce((acc, asset) => acc + (asset.value || 0), 0) }) });
22
+ }
23
+ return element;
24
+ };
25
+ exports.applyPricesToElement = applyPricesToElement;
26
+ //# sourceMappingURL=applyPricesToElements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyPricesToElements.js","sourceRoot":"","sources":["../../../../../packages/core/src/utils/applyPricesToElements.ts"],"names":[],"mappings":";;;AAAA,4CAKsB;AAGf,MAAM,qBAAqB,GAAG,CACnC,QAA4B,EAC5B,WAA0B,EACN,EAAE;IACtB,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM;QAAE,OAAO,QAAQ,CAAC;IACtE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,4BAAoB,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;AAC/E,CAAC,CAAC;AANW,QAAA,qBAAqB,yBAMhC;AAEK,MAAM,oBAAoB,GAAG,CAClC,OAAyB,EACzB,WAA0B,EACR,EAAE;IACpB,IAAI,OAAO,CAAC,IAAI,KAAK,gCAAoB,CAAC,QAAQ,EAAE,CAAC;QACnD,OAAO,gCACF,OAAO,KACV,IAAI,kCACC,OAAO,CAAC,IAAI,KACf,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;oBACxC,IAAI,KAAK,CAAC,IAAI,KAAK,8BAAkB,CAAC,KAAK,EAAE,CAAC;wBAC5C,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACvD,IAAI,CAAC,UAAU;4BAAE,OAAO,KAAK,CAAC;wBAE9B,uCACK,KAAK,KACR,IAAI,kCACC,KAAK,CAAC,IAAI,KACb,KAAK,EAAE,UAAU,CAAC,KAAK,KAEzB,KAAK,EAAE,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,IAC3C;oBACJ,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC,CAAC,EACF,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAC/B,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,EACxC,CAAC,CACF,MAEwB,CAAC;IAChC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAlCW,QAAA,oBAAoB,wBAkC/B"}
@@ -45,3 +45,5 @@ export * from './healthRatioToHealthFactor';
45
45
  export * from './promiseTimeout';
46
46
  export * from './isPortfolioElement';
47
47
  export * from './getIsVerifiedFromAsset';
48
+ export * from './TokenPriceMap';
49
+ export * from './applyPricesToElements';
@@ -61,4 +61,6 @@ __exportStar(require("./healthRatioToHealthFactor"), exports);
61
61
  __exportStar(require("./promiseTimeout"), exports);
62
62
  __exportStar(require("./isPortfolioElement"), exports);
63
63
  __exportStar(require("./getIsVerifiedFromAsset"), exports);
64
+ __exportStar(require("./TokenPriceMap"), exports);
65
+ __exportStar(require("./applyPricesToElements"), exports);
64
66
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/core/src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,oDAAkC;AAClC,kEAAgD;AAChD,sDAAoC;AACpC,iDAA+B;AAC/B,sDAAoC;AACpC,kDAAgC;AAChC,uDAAqC;AACrC,4DAA0C;AAC1C,+DAA6C;AAC7C,gDAA8B;AAC9B,oDAAkC;AAClC,mDAAiC;AACjC,wDAAsC;AACtC,qDAAmC;AACnC,+DAA6C;AAC7C,2DAAyC;AACzC,uDAAqC;AACrC,mDAAiC;AACjC,wDAAsC;AACtC,2DAAyC;AACzC,+DAA6C;AAC7C,kEAAgD;AAChD,yDAAuC;AACvC,0DAAwC;AACxC,4DAA0C;AAC1C,8DAA4C;AAC5C,mDAAiC;AACjC,yDAAuC;AACvC,mEAAiD;AACjD,oEAAkD;AAClD,+CAA6B;AAC7B,yDAAuC;AACvC,0DAAwC;AACxC,4DAA0C;AAC1C,wDAAsC;AACtC,2DAAyC;AACzC,sDAAoC;AACpC,uDAAqC;AACrC,uDAAqC;AACrC,sDAAoC;AACpC,uDAAqC;AACrC,8DAA4C;AAC5C,8DAA4C;AAC5C,mDAAiC;AACjC,uDAAqC;AACrC,2DAAyC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/core/src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,oDAAkC;AAClC,kEAAgD;AAChD,sDAAoC;AACpC,iDAA+B;AAC/B,sDAAoC;AACpC,kDAAgC;AAChC,uDAAqC;AACrC,4DAA0C;AAC1C,+DAA6C;AAC7C,gDAA8B;AAC9B,oDAAkC;AAClC,mDAAiC;AACjC,wDAAsC;AACtC,qDAAmC;AACnC,+DAA6C;AAC7C,2DAAyC;AACzC,uDAAqC;AACrC,mDAAiC;AACjC,wDAAsC;AACtC,2DAAyC;AACzC,+DAA6C;AAC7C,kEAAgD;AAChD,yDAAuC;AACvC,0DAAwC;AACxC,4DAA0C;AAC1C,8DAA4C;AAC5C,mDAAiC;AACjC,yDAAuC;AACvC,mEAAiD;AACjD,oEAAkD;AAClD,+CAA6B;AAC7B,yDAAuC;AACvC,0DAAwC;AACxC,4DAA0C;AAC1C,wDAAsC;AACtC,2DAAyC;AACzC,sDAAoC;AACpC,uDAAqC;AACrC,uDAAqC;AACrC,sDAAoC;AACpC,uDAAqC;AACrC,8DAA4C;AAC5C,8DAA4C;AAC5C,mDAAiC;AACjC,uDAAqC;AACrC,2DAAyC;AACzC,kDAAgC;AAChC,0DAAwC"}