@sonarwatch/portfolio-core 0.12.26 → 0.12.28

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.12.26",
3
+ "version": "0.12.28",
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,6 +206,41 @@ export type PortfolioElementLiquidity = PortfolioElementCommon & {
206
206
  type: 'liquidity';
207
207
  data: PortfolioElementLiquidityData;
208
208
  };
209
+ export declare enum LeverageSide {
210
+ long = "long",
211
+ short = "short"
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
+ pnlValue: UsdValue;
223
+ leverage?: number;
224
+ side: LeverageSide;
225
+ };
226
+ /**
227
+ * Represents the data of a leverage portfolio element.
228
+ */
229
+ export type PortfolioElementLeverageData = {
230
+ value: UsdValue;
231
+ leverage?: number;
232
+ collateralAssets: PortfolioAsset[];
233
+ collateralValue: UsdValue;
234
+ positions: LeveragePosition[];
235
+ positionsValue: UsdValue;
236
+ };
237
+ /**
238
+ * Represents a leverage portfolio element.
239
+ */
240
+ export type PortfolioElementLeverage = PortfolioElementCommon & {
241
+ type: 'leverage';
242
+ data: PortfolioElementLeverageData;
243
+ };
209
244
  /**
210
245
  * Represents the data of a borrow lend portfolio element.
211
246
  */
@@ -272,7 +307,7 @@ export type PortfolioElementBorrowLend = PortfolioElementCommon & {
272
307
  /**
273
308
  * Represents a portfolio element.
274
309
  */
275
- export type PortfolioElement = PortfolioElementMultiple | PortfolioElementLiquidity | PortfolioElementBorrowLend;
310
+ export type PortfolioElement = PortfolioElementMultiple | PortfolioElementLiquidity | PortfolioElementLeverage | PortfolioElementBorrowLend;
276
311
  /**
277
312
  * Represents the result of a fetcher.
278
313
  */
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["long"] = "long";
24
+ LeverageSide["short"] = "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,6BAAa,CAAA;IACb,+BAAe,CAAA;AACjB,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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"}