@sonarwatch/portfolio-core 0.15.10 → 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,14 @@
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
+
9
+ ## [0.15.11](https://github.com/sonarwatch/portfolio/compare/core-0.15.10...core-0.15.11) (2025-06-02)
10
+
11
+
12
+
5
13
  ## [0.15.10](https://github.com/sonarwatch/portfolio/compare/core-0.15.9...core-0.15.10) (2025-06-02)
6
14
 
7
15
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonarwatch/portfolio-core",
3
- "version": "0.15.10",
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"}