@sonarwatch/portfolio-core 0.14.105 → 0.14.106

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/README.md CHANGED
@@ -1,3 +1,3 @@
1
- # @sonarwatch/portfolio-core
2
-
3
- This library is @sonarwatch/portfolio-core
1
+ # @sonarwatch/portfolio-core
2
+
3
+ This library is @sonarwatch/portfolio-core
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonarwatch/portfolio-core",
3
- "version": "0.14.105",
3
+ "version": "0.14.106",
4
4
  "type": "commonjs",
5
5
  "types": "./src/index.d.ts",
6
6
  "dependencies": {
@@ -56,6 +56,9 @@ export type PortfolioAssetCommon = {
56
56
  attributes: PortfolioAssetAttributes;
57
57
  name?: string;
58
58
  imageUri?: string;
59
+ ref?: string;
60
+ sourceRefs?: SourceRef[];
61
+ link?: string;
59
62
  };
60
63
  /**
61
64
  * Represents the data of a generic portfolio asset.
@@ -159,6 +162,14 @@ export type Service = {
159
162
  platformId: string;
160
163
  configs: ServiceConfig[];
161
164
  };
165
+ export type SourceRefName = 'Pool' | 'Farm' | 'Market' | 'Vault' | 'Lending Market' | 'Strategy' | 'NFT Mint';
166
+ /**
167
+ * Represents references to on-chain accounts.
168
+ */
169
+ export type SourceRef = {
170
+ address: string;
171
+ name: SourceRefName;
172
+ };
162
173
  /**
163
174
  * Represents the common properties of a portfolio element.
164
175
  */
@@ -178,6 +189,9 @@ export type PortfolioElementCommon = {
178
189
  */
179
190
  export type PortfolioElementMultipleData = {
180
191
  assets: PortfolioAsset[];
192
+ ref?: string;
193
+ sourceRefs?: SourceRef[];
194
+ link?: string;
181
195
  };
182
196
  /**
183
197
  * Represents a multiple portfolio element.
@@ -197,6 +211,9 @@ export type PortfolioLiquidity = {
197
211
  value: UsdValue;
198
212
  yields: Yield[];
199
213
  name?: string;
214
+ ref?: string;
215
+ sourceRefs?: SourceRef[];
216
+ link?: string;
200
217
  };
201
218
  /**
202
219
  * Represents the data of a liquidity portfolio element.
@@ -234,6 +251,9 @@ export type LevPosition = {
234
251
  export type PortfolioElementLeverageData = {
235
252
  positions: LevPosition[];
236
253
  value: UsdValue;
254
+ ref?: string;
255
+ sourceRefs?: SourceRef[];
256
+ link?: string;
237
257
  };
238
258
  /**
239
259
  * Represents a leverage portfolio element.
@@ -308,6 +328,9 @@ export type PortfolioElementBorrowLendData = {
308
328
  * undefined means the loan has no expiration.
309
329
  */
310
330
  expireOn?: number;
331
+ ref?: string;
332
+ sourceRefs?: SourceRef[];
333
+ link?: string;
311
334
  };
312
335
  /**
313
336
  * Represents a borrow lend portfolio element.
@@ -1 +1 @@
1
- {"version":3,"file":"Portfolio.js","sourceRoot":"","sources":["../../../../packages/core/src/Portfolio.ts"],"names":[],"mappings":";;;AAMA;;GAEG;AACU,QAAA,kBAAkB,GAAG;IAChC,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;CAClB,CAAC;AA0CX;;GAEG;AACU,QAAA,oBAAoB,GAAG;IAClC,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,UAAU;CACZ,CAAC;AAgMX,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,+BAAe,CAAA;AACjB,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB"}
1
+ {"version":3,"file":"Portfolio.js","sourceRoot":"","sources":["../../../../packages/core/src/Portfolio.ts"],"names":[],"mappings":";;;AAMA;;GAEG;AACU,QAAA,kBAAkB,GAAG;IAChC,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;CAClB,CAAC;AA0CX;;GAEG;AACU,QAAA,oBAAoB,GAAG;IAClC,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,UAAU;CACZ,CAAC;AA0NX,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,+BAAe,CAAA;AACjB,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB"}
@@ -6,7 +6,7 @@ const sortPortfolioElement_1 = require("./sortPortfolioElement");
6
6
  function mergePortfolioElementMultiples(elements) {
7
7
  const elementsByTag = {};
8
8
  elements.forEach((element) => {
9
- const tag = `${element.networkId}_${element.platformId}_${element.type}_${element.label}`;
9
+ const tag = `${element.networkId}_${element.platformId}_${element.type}_${element.label}_${element.data.ref}_${element.data.link}`;
10
10
  if (!elementsByTag[tag])
11
11
  elementsByTag[tag] = [];
12
12
  elementsByTag[tag].push(element);
@@ -25,6 +25,11 @@ function unsafeMergePortfolioElementMultiples(elements) {
25
25
  value: (0, getUsdValueSum_1.getUsdValueSum)(elements.map((e) => e.value)),
26
26
  data: {
27
27
  assets: elements.map((e) => e.data.assets).flat(1),
28
+ /* eslint-disable @typescript-eslint/no-non-null-assertion */
29
+ ref: elements.at(0).data.ref,
30
+ sourceRefs: elements.at(0).data.sourceRefs,
31
+ link: elements.at(0).data.link,
32
+ /* eslint-enable @typescript-eslint/no-non-null-assertion */
28
33
  },
29
34
  };
30
35
  return (0, sortPortfolioElement_1.sortElementMultiple)(element);
@@ -1 +1 @@
1
- {"version":3,"file":"mergePortfolioElementMultiples.js","sourceRoot":"","sources":["../../../../../packages/core/src/utils/mergePortfolioElementMultiples.ts"],"names":[],"mappings":";;;AACA,qDAAkD;AAClD,iEAA6D;AAE7D,SAAgB,8BAA8B,CAC5C,QAAoC;IAEpC,MAAM,aAAa,GAA+C,EAAE,CAAC;IACrE,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAC1F,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;YAAE,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACjD,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAChD,oCAAoC,CAAC,KAAK,CAAC,CAC5C,CAAC;AACJ,CAAC;AAZD,wEAYC;AAED,SAAS,oCAAoC,CAC3C,QAAoC;IAEpC,MAAM,OAAO,GAAG;QACd,6DAA6D;QAC7D,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,SAAS;QACpC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,UAAU;QACtC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,IAAI;QAC1B,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,KAAK;QAC5B,4DAA4D;QAC5D,KAAK,EAAE,IAAA,+BAAc,EAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,EAAE;YACJ,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;SACnD;KACF,CAAC;IACF,OAAO,IAAA,0CAAmB,EAAC,OAAO,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"mergePortfolioElementMultiples.js","sourceRoot":"","sources":["../../../../../packages/core/src/utils/mergePortfolioElementMultiples.ts"],"names":[],"mappings":";;;AACA,qDAAkD;AAClD,iEAA6D;AAE7D,SAAgB,8BAA8B,CAC5C,QAAoC;IAEpC,MAAM,aAAa,GAA+C,EAAE,CAAC;IACrE,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACnI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;YAAE,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACjD,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAChD,oCAAoC,CAAC,KAAK,CAAC,CAC5C,CAAC;AACJ,CAAC;AAZD,wEAYC;AAED,SAAS,oCAAoC,CAC3C,QAAoC;IAEpC,MAAM,OAAO,GAAG;QACd,6DAA6D;QAC7D,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,SAAS;QACpC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,UAAU;QACtC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,IAAI;QAC1B,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,KAAK;QAC5B,4DAA4D;QAC5D,KAAK,EAAE,IAAA,+BAAc,EAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,EAAE;YACJ,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAClD,6DAA6D;YAC7D,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,GAAG;YAC7B,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,UAAU;YAC3C,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,IAAI;YAC/B,4DAA4D;SAC7D;KACF,CAAC;IACF,OAAO,IAAA,0CAAmB,EAAC,OAAO,CAAC,CAAC;AACtC,CAAC"}