@sonarwatch/portfolio-core 0.12.26 → 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/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.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,6 +206,38 @@ 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
+ };
225
+ /**
226
+ * Represents the data of a leverage portfolio element.
227
+ */
228
+ export type PortfolioElementLeverageData = {
229
+ value: UsdValue;
230
+ leverage?: number;
231
+ collateralAssets: PortfolioAsset[];
232
+ positions: LeveragePosition[];
233
+ };
234
+ /**
235
+ * Represents a leverage portfolio element.
236
+ */
237
+ export type PortfolioElementLeverage = PortfolioElementCommon & {
238
+ type: 'leverage';
239
+ data: PortfolioElementLeverageData;
240
+ };
209
241
  /**
210
242
  * Represents the data of a borrow lend portfolio element.
211
243
  */
@@ -272,7 +304,7 @@ export type PortfolioElementBorrowLend = PortfolioElementCommon & {
272
304
  /**
273
305
  * Represents a portfolio element.
274
306
  */
275
- export type PortfolioElement = PortfolioElementMultiple | PortfolioElementLiquidity | PortfolioElementBorrowLend;
307
+ export type PortfolioElement = PortfolioElementMultiple | PortfolioElementLiquidity | PortfolioElementLeverage | PortfolioElementBorrowLend;
276
308
  /**
277
309
  * Represents the result of a fetcher.
278
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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"}