@sonarwatch/portfolio-core 0.12.25 → 0.12.27

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.12.27](https://github.com/sonarwatch/portfolio/compare/core-0.12.26...core-0.12.27) (2024-06-14)
6
+
7
+
8
+
9
+ ## [0.12.26](https://github.com/sonarwatch/portfolio/compare/core-0.12.25...core-0.12.26) (2024-06-13)
10
+
11
+
12
+
5
13
  ## [0.12.25](https://github.com/sonarwatch/portfolio/compare/core-0.12.24...core-0.12.25) (2024-06-13)
6
14
 
7
15
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonarwatch/portfolio-core",
3
- "version": "0.12.25",
3
+ "version": "0.12.27",
4
4
  "type": "commonjs",
5
5
  "types": "./src/index.d.ts",
6
6
  "dependencies": {
@@ -40,10 +40,10 @@ export type PortfolioAssetAttributes = {
40
40
  * Represents the type of a portfolio element.
41
41
  */
42
42
  export declare const PortfolioElementType: {
43
- readonly single: "single";
44
43
  readonly multiple: "multiple";
45
44
  readonly liquidity: "liquidity";
46
45
  readonly borrowlend: "borrowlend";
46
+ readonly leverage: "leverage";
47
47
  };
48
48
  export type PortfolioElementTypeType = (typeof PortfolioElementType)[keyof typeof PortfolioElementType];
49
49
  /**
@@ -206,42 +206,30 @@ export type PortfolioElementLiquidity = PortfolioElementCommon & {
206
206
  type: 'liquidity';
207
207
  data: PortfolioElementLiquidityData;
208
208
  };
209
+ export declare enum LeverageSide {
210
+ long = 0,
211
+ short = 1
212
+ }
213
+ export type LeveragePosition = {
214
+ name?: string;
215
+ imageUri?: string;
216
+ address?: string;
217
+ size?: number;
218
+ sizeValue: UsdValue;
219
+ collateralValue: UsdValue;
220
+ value: UsdValue;
221
+ liquidationPrice: UsdValue;
222
+ leverage?: number;
223
+ side: LeverageSide;
224
+ };
209
225
  /**
210
226
  * Represents the data of a leverage portfolio element.
211
227
  */
212
228
  export type PortfolioElementLeverageData = {
213
- /**
214
- * The value of the portfolio element in USD.
215
- */
216
229
  value: UsdValue;
217
- /**
218
- * The leverage of the portfolio element.
219
- */
220
230
  leverage?: number;
221
- /**
222
- * The assets supplied in the portfolio element.
223
- */
224
- suppliedAssets: PortfolioAsset[];
225
- /**
226
- * The assets borrowed in the portfolio element.
227
- */
228
- borrowedAssets: PortfolioAsset[];
229
- /**
230
- * The assets rewarded in the portfolio element.
231
- */
232
- rewardAssets: PortfolioAsset[];
233
- /**
234
- * The value of the assets supplied in USD.
235
- */
236
- suppliedValue: UsdValue;
237
- /**
238
- * The value of the assets borrowed in USD.
239
- */
240
- borrowedValue: UsdValue;
241
- /**
242
- * The value of the reward assets in USD.
243
- */
244
- rewardValue: UsdValue;
231
+ collateralAssets: PortfolioAsset[];
232
+ positions: LeveragePosition[];
245
233
  };
246
234
  /**
247
235
  * Represents a leverage portfolio element.
@@ -316,7 +304,7 @@ export type PortfolioElementBorrowLend = PortfolioElementCommon & {
316
304
  /**
317
305
  * Represents a portfolio element.
318
306
  */
319
- export type PortfolioElement = PortfolioElementMultiple | PortfolioElementLiquidity | PortfolioElementBorrowLend;
307
+ export type PortfolioElement = PortfolioElementMultiple | PortfolioElementLiquidity | PortfolioElementLeverage | PortfolioElementBorrowLend;
320
308
  /**
321
309
  * Represents the result of a fetcher.
322
310
  */
package/src/Portfolio.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PortfolioElementType = exports.PortfolioAssetType = void 0;
3
+ exports.LeverageSide = exports.PortfolioElementType = exports.PortfolioAssetType = void 0;
4
4
  /**
5
5
  * Represents the type of a portfolio asset.
6
6
  */
@@ -13,9 +13,14 @@ exports.PortfolioAssetType = {
13
13
  * Represents the type of a portfolio element.
14
14
  */
15
15
  exports.PortfolioElementType = {
16
- single: 'single',
17
16
  multiple: 'multiple',
18
17
  liquidity: 'liquidity',
19
18
  borrowlend: 'borrowlend',
19
+ leverage: 'leverage',
20
20
  };
21
+ var LeverageSide;
22
+ (function (LeverageSide) {
23
+ LeverageSide[LeverageSide["long"] = 0] = "long";
24
+ LeverageSide[LeverageSide["short"] = 1] = "short";
25
+ })(LeverageSide || (exports.LeverageSide = LeverageSide = {}));
21
26
  //# sourceMappingURL=Portfolio.js.map
@@ -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;AAyCX;;GAEG;AACU,QAAA,oBAAoB,GAAG;IAClC,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;CAChB,CAAC"}
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;AAyCX;;GAEG;AACU,QAAA,oBAAoB,GAAG;IAClC,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,UAAU;CACZ,CAAC;AA2LX,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,+CAAI,CAAA;IACJ,iDAAK,CAAA;AACP,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB"}
@@ -13,6 +13,8 @@ function getAssetsFromElement(element) {
13
13
  ];
14
14
  case Portfolio_1.PortfolioElementType.borrowlend:
15
15
  return [...element.data.suppliedAssets];
16
+ case Portfolio_1.PortfolioElementType.leverage:
17
+ return [...element.data.collateralAssets];
16
18
  default:
17
19
  return [];
18
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getAssetsFromElement.js","sourceRoot":"","sources":["../../../../../packages/core/src/utils/getAssetsFromElement.ts"],"names":[],"mappings":";;;AAAA,4CAIsB;AAEtB,SAAgB,oBAAoB,CAClC,OAAyB;IAEzB,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,gCAAoB,CAAC,QAAQ;YAChC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,KAAK,gCAAoB,CAAC,SAAS;YACjC,OAAO;gBACL,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxD,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;aAC/D,CAAC;QACJ,KAAK,gCAAoB,CAAC,UAAU;YAClC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1C;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAhBD,oDAgBC"}
1
+ {"version":3,"file":"getAssetsFromElement.js","sourceRoot":"","sources":["../../../../../packages/core/src/utils/getAssetsFromElement.ts"],"names":[],"mappings":";;;AAAA,4CAIsB;AAEtB,SAAgB,oBAAoB,CAClC,OAAyB;IAEzB,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,gCAAoB,CAAC,QAAQ;YAChC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,KAAK,gCAAoB,CAAC,SAAS;YACjC,OAAO;gBACL,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxD,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;aAC/D,CAAC;QACJ,KAAK,gCAAoB,CAAC,UAAU;YAClC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1C,KAAK,gCAAoB,CAAC,QAAQ;YAChC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC5C;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAlBD,oDAkBC"}
@@ -1,6 +1,7 @@
1
- import { PortfolioElement, PortfolioElementBorrowLend, PortfolioElementLiquidity, PortfolioElementMultiple, PortfolioLiquidity } from '../Portfolio';
1
+ import { PortfolioElement, PortfolioElementBorrowLend, PortfolioElementLeverage, PortfolioElementLiquidity, PortfolioElementMultiple, PortfolioLiquidity } from '../Portfolio';
2
2
  export declare function sortPortfolioElement(element: PortfolioElement): PortfolioElement;
3
3
  export declare function sortElementMultiple(element: PortfolioElementMultiple): PortfolioElementMultiple;
4
4
  export declare function sortElementBorrowLend(element: PortfolioElementBorrowLend): PortfolioElementBorrowLend;
5
5
  export declare function sortElementLiquidity(element: PortfolioElementLiquidity): PortfolioElementLiquidity;
6
6
  export declare function sortPortfolioLiquidity(portfolioLiquidity: PortfolioLiquidity): PortfolioLiquidity;
7
+ export declare function sortElementLeverage(element: PortfolioElementLeverage): PortfolioElementLeverage;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sortPortfolioLiquidity = exports.sortElementLiquidity = exports.sortElementBorrowLend = exports.sortElementMultiple = exports.sortPortfolioElement = void 0;
3
+ exports.sortElementLeverage = exports.sortPortfolioLiquidity = exports.sortElementLiquidity = exports.sortElementBorrowLend = exports.sortElementMultiple = exports.sortPortfolioElement = void 0;
4
4
  const compareUsdValue_1 = require("./compareUsdValue");
5
5
  const Portfolio_1 = require("../Portfolio");
6
6
  const sortAssets_1 = require("./sortAssets");
@@ -12,6 +12,8 @@ function sortPortfolioElement(element) {
12
12
  return sortElementBorrowLend(element);
13
13
  case Portfolio_1.PortfolioElementType.liquidity:
14
14
  return sortElementLiquidity(element);
15
+ case Portfolio_1.PortfolioElementType.leverage:
16
+ return sortElementLeverage(element);
15
17
  default:
16
18
  return element;
17
19
  }
@@ -52,4 +54,11 @@ function sortPortfolioLiquidity(portfolioLiquidity) {
52
54
  return sLiquidity;
53
55
  }
54
56
  exports.sortPortfolioLiquidity = sortPortfolioLiquidity;
57
+ function sortElementLeverage(element) {
58
+ const sortedElement = Object.assign({}, element);
59
+ sortedElement.data.collateralAssets = (0, sortAssets_1.sortMultipleAssets)(element.data.collateralAssets);
60
+ sortedElement.data.positions.sort((a, b) => (0, compareUsdValue_1.compareUsdValue)(a.value, b.value));
61
+ return sortedElement;
62
+ }
63
+ exports.sortElementLeverage = sortElementLeverage;
55
64
  //# sourceMappingURL=sortPortfolioElement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sortPortfolioElement.js","sourceRoot":"","sources":["../../../../../packages/core/src/utils/sortPortfolioElement.ts"],"names":[],"mappings":";;;AAAA,uDAAoD;AACpD,4CAOsB;AACtB,6CAAwE;AAExE,SAAgB,oBAAoB,CAClC,OAAyB;IAEzB,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,gCAAoB,CAAC,QAAQ;YAChC,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACtC,KAAK,gCAAoB,CAAC,UAAU;YAClC,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACxC,KAAK,gCAAoB,CAAC,SAAS;YACjC,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACvC;YACE,OAAO,OAAO,CAAC;IACnB,CAAC;AACH,CAAC;AAbD,oDAaC;AAED,SAAgB,mBAAmB,CACjC,OAAiC;IAEjC,MAAM,aAAa,GAAG,OAAO,CAAC;IAC9B,aAAa,CAAC,IAAI,CAAC,MAAM,GAAG,IAAA,+BAAkB,EAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1E,OAAO,aAAa,CAAC;AACvB,CAAC;AAND,kDAMC;AAED,SAAgB,qBAAqB,CACnC,OAAmC;IAEnC,MAAM,EAAE,GAAG,OAAO,CAAC;IAEnB,UAAU;IACV,MAAM,6BAA6B,GAAG,IAAA,iCAAoB,EACxD,EAAE,CAAC,IAAI,CAAC,cAAc,EACtB,EAAE,CAAC,IAAI,CAAC,cAAc,CACvB,CAAC;IACF,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,6BAA6B,CAAC,YAAY,CAAC;IACpE,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,6BAA6B,CAAC,YAAY,CAAC;IAEpE,WAAW;IACX,MAAM,6BAA6B,GAAG,IAAA,iCAAoB,EACxD,EAAE,CAAC,IAAI,CAAC,cAAc,EACtB,EAAE,CAAC,IAAI,CAAC,cAAc,CACvB,CAAC;IACF,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,6BAA6B,CAAC,YAAY,CAAC;IACpE,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,6BAA6B,CAAC,YAAY,CAAC;IAEpE,UAAU;IACV,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,IAAA,+BAAkB,EAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAChE,OAAO,EAAE,CAAC;AACZ,CAAC;AAxBD,sDAwBC;AAED,SAAgB,oBAAoB,CAClC,OAAkC;IAElC,MAAM,aAAa,GAAG,OAAO,CAAC;IAC9B,aAAa,CAAC,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACxE,sBAAsB,CAAC,CAAC,CAAC,CAC1B,CAAC;IACF,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC3C,IAAA,iCAAe,EAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAClC,CAAC;IACF,OAAO,aAAa,CAAC;AACvB,CAAC;AAXD,oDAWC;AAED,SAAgB,sBAAsB,CACpC,kBAAsC;IAEtC,MAAM,UAAU,GAAG,kBAAkB,CAAC;IACtC,UAAU,CAAC,MAAM,GAAG,IAAA,+BAAkB,EAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1D,UAAU,CAAC,YAAY,GAAG,IAAA,+BAAkB,EAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACtE,OAAO,UAAU,CAAC;AACpB,CAAC;AAPD,wDAOC"}
1
+ {"version":3,"file":"sortPortfolioElement.js","sourceRoot":"","sources":["../../../../../packages/core/src/utils/sortPortfolioElement.ts"],"names":[],"mappings":"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"}