@defisaver/positions-sdk 2.1.43-aave-v4-dev-5 → 2.1.43-aave-v4-dev-6

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.
@@ -146,6 +146,7 @@ function _getAaveV4AccountData(provider_1, network_1, spokeData_1, address_1) {
146
146
  isSupplied: !new decimal_js_1.default(supplied).eq(0),
147
147
  isBorrowed: usedReserveAsset.isBorrowing,
148
148
  collateral: usedReserveAsset.isUsingAsCollateral,
149
+ collateralFactor: new decimal_js_1.default(usedReserveAsset.collateralFactor).div(10000).toNumber(),
149
150
  };
150
151
  return acc;
151
152
  }, {});
@@ -154,6 +155,7 @@ function _getAaveV4AccountData(provider_1, network_1, spokeData_1, address_1) {
154
155
  usedAssets,
155
156
  assetsData: spokeData.assetsData,
156
157
  network,
158
+ useUserCollateralFactor: true,
157
159
  }));
158
160
  });
159
161
  }
@@ -1,7 +1,9 @@
1
- import { AaveV4AggregatedPositionData, AaveV4AssetsData, AaveV4UsedReserveAssets } from '../../types';
1
+ import { AaveV4AggregatedPositionData, AaveV4AssetsData, AaveV4ReserveAssetData, AaveV4UsedReserveAsset, AaveV4UsedReserveAssets } from '../../types';
2
2
  import { NetworkNumber } from '../../types/common';
3
- export declare const aaveV4GetAggregatedPositionData: ({ usedAssets, assetsData, network, }: {
3
+ export declare const aaveV4GetCollateralFactor: (assetData: AaveV4ReserveAssetData, usedAssetData: AaveV4UsedReserveAsset, useUserCollateralFactor?: boolean) => number;
4
+ export declare const aaveV4GetAggregatedPositionData: ({ usedAssets, assetsData, network, useUserCollateralFactor, }: {
4
5
  usedAssets: AaveV4UsedReserveAssets;
5
6
  assetsData: AaveV4AssetsData;
6
7
  network: NetworkNumber;
8
+ useUserCollateralFactor?: boolean;
7
9
  }) => AaveV4AggregatedPositionData;
@@ -3,18 +3,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.aaveV4GetAggregatedPositionData = void 0;
6
+ exports.aaveV4GetAggregatedPositionData = exports.aaveV4GetCollateralFactor = void 0;
7
7
  const decimal_js_1 = __importDefault(require("decimal.js"));
8
8
  const moneymarket_1 = require("../../moneymarket");
9
- const aaveV4GetAggregatedPositionData = ({ usedAssets, assetsData, network, }) => {
9
+ const aaveV4GetCollateralFactor = (assetData, usedAssetData, useUserCollateralFactor = false) => (useUserCollateralFactor ? usedAssetData.collateralFactor : assetData.collateralFactor);
10
+ exports.aaveV4GetCollateralFactor = aaveV4GetCollateralFactor;
11
+ const aaveV4GetAggregatedPositionData = ({ usedAssets, assetsData, network, useUserCollateralFactor = false, }) => {
10
12
  var _a;
11
13
  const payload = {};
12
14
  payload.suppliedUsd = (0, moneymarket_1.getAssetsTotal)(usedAssets, ({ isSupplied }) => isSupplied, ({ suppliedUsd }) => suppliedUsd);
13
15
  payload.suppliedCollateralUsd = (0, moneymarket_1.getAssetsTotal)(usedAssets, ({ isSupplied, collateral }) => isSupplied && collateral, ({ suppliedUsd }) => suppliedUsd);
14
- payload.borrowLimitUsd = (0, moneymarket_1.getAssetsTotal)(usedAssets, ({ isSupplied, collateral }) => isSupplied && collateral, ({ symbol, suppliedUsd, reserveId }) => new decimal_js_1.default(suppliedUsd).mul(assetsData[`${symbol}-${reserveId}`].collateralFactor));
15
- payload.liquidationLimitUsd = (0, moneymarket_1.getAssetsTotal)(usedAssets, ({ isSupplied, collateral }) => isSupplied && collateral,
16
- // TODO: Verify if liquidation factor is available in Aave V4, currently using collateralFactor as placeholder
17
- ({ symbol, suppliedUsd, reserveId }) => new decimal_js_1.default(suppliedUsd).mul(assetsData[`${symbol}-${reserveId}`].collateralFactor));
16
+ payload.borrowLimitUsd = (0, moneymarket_1.getAssetsTotal)(usedAssets, ({ isSupplied, collateral }) => isSupplied && collateral, ({ symbol, suppliedUsd, reserveId }) => new decimal_js_1.default(suppliedUsd).mul((0, exports.aaveV4GetCollateralFactor)(assetsData[`${symbol}-${reserveId}`], usedAssets[`${symbol}-${reserveId}`], useUserCollateralFactor)));
17
+ payload.liquidationLimitUsd = payload.borrowLimitUsd;
18
18
  payload.borrowedUsd = (0, moneymarket_1.getAssetsTotal)(usedAssets, ({ isBorrowed }) => isBorrowed, ({ borrowedUsd }) => borrowedUsd);
19
19
  payload.drawnUsd = (0, moneymarket_1.getAssetsTotal)(usedAssets, ({ isBorrowed }) => isBorrowed, ({ drawnUsd }) => drawnUsd);
20
20
  payload.premiumUsd = (0, moneymarket_1.getAssetsTotal)(usedAssets, ({ isBorrowed }) => isBorrowed, ({ premiumUsd }) => premiumUsd);
@@ -95,6 +95,7 @@ export interface AaveV4UsedReserveAsset {
95
95
  isSupplied: boolean;
96
96
  isBorrowed: boolean;
97
97
  collateral: boolean;
98
+ collateralFactor: number;
98
99
  }
99
100
  export interface AaveV4AggregatedPositionData {
100
101
  suppliedUsd: string;
@@ -137,6 +137,7 @@ export function _getAaveV4AccountData(provider_1, network_1, spokeData_1, addres
137
137
  isSupplied: !new Dec(supplied).eq(0),
138
138
  isBorrowed: usedReserveAsset.isBorrowing,
139
139
  collateral: usedReserveAsset.isUsingAsCollateral,
140
+ collateralFactor: new Dec(usedReserveAsset.collateralFactor).div(10000).toNumber(),
140
141
  };
141
142
  return acc;
142
143
  }, {});
@@ -145,6 +146,7 @@ export function _getAaveV4AccountData(provider_1, network_1, spokeData_1, addres
145
146
  usedAssets,
146
147
  assetsData: spokeData.assetsData,
147
148
  network,
149
+ useUserCollateralFactor: true,
148
150
  }));
149
151
  });
150
152
  }
@@ -1,7 +1,9 @@
1
- import { AaveV4AggregatedPositionData, AaveV4AssetsData, AaveV4UsedReserveAssets } from '../../types';
1
+ import { AaveV4AggregatedPositionData, AaveV4AssetsData, AaveV4ReserveAssetData, AaveV4UsedReserveAsset, AaveV4UsedReserveAssets } from '../../types';
2
2
  import { NetworkNumber } from '../../types/common';
3
- export declare const aaveV4GetAggregatedPositionData: ({ usedAssets, assetsData, network, }: {
3
+ export declare const aaveV4GetCollateralFactor: (assetData: AaveV4ReserveAssetData, usedAssetData: AaveV4UsedReserveAsset, useUserCollateralFactor?: boolean) => number;
4
+ export declare const aaveV4GetAggregatedPositionData: ({ usedAssets, assetsData, network, useUserCollateralFactor, }: {
4
5
  usedAssets: AaveV4UsedReserveAssets;
5
6
  assetsData: AaveV4AssetsData;
6
7
  network: NetworkNumber;
8
+ useUserCollateralFactor?: boolean;
7
9
  }) => AaveV4AggregatedPositionData;
@@ -1,14 +1,13 @@
1
1
  import Dec from 'decimal.js';
2
2
  import { calcLeverageLiqPrice, getAssetsTotal, isLeveragedPos } from '../../moneymarket';
3
- export const aaveV4GetAggregatedPositionData = ({ usedAssets, assetsData, network, }) => {
3
+ export const aaveV4GetCollateralFactor = (assetData, usedAssetData, useUserCollateralFactor = false) => (useUserCollateralFactor ? usedAssetData.collateralFactor : assetData.collateralFactor);
4
+ export const aaveV4GetAggregatedPositionData = ({ usedAssets, assetsData, network, useUserCollateralFactor = false, }) => {
4
5
  var _a;
5
6
  const payload = {};
6
7
  payload.suppliedUsd = getAssetsTotal(usedAssets, ({ isSupplied }) => isSupplied, ({ suppliedUsd }) => suppliedUsd);
7
8
  payload.suppliedCollateralUsd = getAssetsTotal(usedAssets, ({ isSupplied, collateral }) => isSupplied && collateral, ({ suppliedUsd }) => suppliedUsd);
8
- payload.borrowLimitUsd = getAssetsTotal(usedAssets, ({ isSupplied, collateral }) => isSupplied && collateral, ({ symbol, suppliedUsd, reserveId }) => new Dec(suppliedUsd).mul(assetsData[`${symbol}-${reserveId}`].collateralFactor));
9
- payload.liquidationLimitUsd = getAssetsTotal(usedAssets, ({ isSupplied, collateral }) => isSupplied && collateral,
10
- // TODO: Verify if liquidation factor is available in Aave V4, currently using collateralFactor as placeholder
11
- ({ symbol, suppliedUsd, reserveId }) => new Dec(suppliedUsd).mul(assetsData[`${symbol}-${reserveId}`].collateralFactor));
9
+ payload.borrowLimitUsd = getAssetsTotal(usedAssets, ({ isSupplied, collateral }) => isSupplied && collateral, ({ symbol, suppliedUsd, reserveId }) => new Dec(suppliedUsd).mul(aaveV4GetCollateralFactor(assetsData[`${symbol}-${reserveId}`], usedAssets[`${symbol}-${reserveId}`], useUserCollateralFactor)));
10
+ payload.liquidationLimitUsd = payload.borrowLimitUsd;
12
11
  payload.borrowedUsd = getAssetsTotal(usedAssets, ({ isBorrowed }) => isBorrowed, ({ borrowedUsd }) => borrowedUsd);
13
12
  payload.drawnUsd = getAssetsTotal(usedAssets, ({ isBorrowed }) => isBorrowed, ({ drawnUsd }) => drawnUsd);
14
13
  payload.premiumUsd = getAssetsTotal(usedAssets, ({ isBorrowed }) => isBorrowed, ({ premiumUsd }) => premiumUsd);
@@ -95,6 +95,7 @@ export interface AaveV4UsedReserveAsset {
95
95
  isSupplied: boolean;
96
96
  isBorrowed: boolean;
97
97
  collateral: boolean;
98
+ collateralFactor: number;
98
99
  }
99
100
  export interface AaveV4AggregatedPositionData {
100
101
  suppliedUsd: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defisaver/positions-sdk",
3
- "version": "2.1.43-aave-v4-dev-5",
3
+ "version": "2.1.43-aave-v4-dev-6",
4
4
  "description": "",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./esm/index.js",
@@ -146,6 +146,7 @@ export async function _getAaveV4AccountData(provider: Client, network: NetworkNu
146
146
  isSupplied: !new Dec(supplied).eq(0),
147
147
  isBorrowed: usedReserveAsset.isBorrowing,
148
148
  collateral: usedReserveAsset.isUsingAsCollateral,
149
+ collateralFactor: new Dec(usedReserveAsset.collateralFactor).div(10000).toNumber(),
149
150
  };
150
151
  return acc;
151
152
  }, {});
@@ -157,6 +158,7 @@ export async function _getAaveV4AccountData(provider: Client, network: NetworkNu
157
158
  usedAssets,
158
159
  assetsData: spokeData.assetsData,
159
160
  network,
161
+ useUserCollateralFactor: true,
160
162
  }),
161
163
  };
162
164
  }
@@ -1,16 +1,22 @@
1
1
  import Dec from 'decimal.js';
2
2
  import { calcLeverageLiqPrice, getAssetsTotal, isLeveragedPos } from '../../moneymarket';
3
- import { AaveV4AggregatedPositionData, AaveV4AssetsData, AaveV4UsedReserveAssets } from '../../types';
3
+ import {
4
+ AaveV4AggregatedPositionData, AaveV4AssetsData, AaveV4ReserveAssetData, AaveV4UsedReserveAsset, AaveV4UsedReserveAssets,
5
+ } from '../../types';
4
6
  import { NetworkNumber } from '../../types/common';
5
7
 
8
+ export const aaveV4GetCollateralFactor = (assetData: AaveV4ReserveAssetData, usedAssetData: AaveV4UsedReserveAsset, useUserCollateralFactor: boolean = false): number => (useUserCollateralFactor ? usedAssetData.collateralFactor : assetData.collateralFactor);
9
+
6
10
  export const aaveV4GetAggregatedPositionData = ({
7
11
  usedAssets,
8
12
  assetsData,
9
13
  network,
14
+ useUserCollateralFactor = false,
10
15
  }: {
11
16
  usedAssets: AaveV4UsedReserveAssets,
12
17
  assetsData: AaveV4AssetsData,
13
18
  network: NetworkNumber,
19
+ useUserCollateralFactor?: boolean,
14
20
  }): AaveV4AggregatedPositionData => {
15
21
  const payload = {} as AaveV4AggregatedPositionData;
16
22
  payload.suppliedUsd = getAssetsTotal(usedAssets, ({ isSupplied }: { isSupplied: boolean }) => isSupplied, ({ suppliedUsd }: { suppliedUsd: string }) => suppliedUsd);
@@ -18,14 +24,9 @@ export const aaveV4GetAggregatedPositionData = ({
18
24
  payload.borrowLimitUsd = getAssetsTotal(
19
25
  usedAssets,
20
26
  ({ isSupplied, collateral }: { isSupplied: boolean, collateral: string }) => isSupplied && collateral,
21
- ({ symbol, suppliedUsd, reserveId }: { symbol: string, suppliedUsd: string, reserveId: number }) => new Dec(suppliedUsd).mul(assetsData[`${symbol}-${reserveId}`].collateralFactor),
22
- );
23
- payload.liquidationLimitUsd = getAssetsTotal(
24
- usedAssets,
25
- ({ isSupplied, collateral }: { isSupplied: boolean, collateral: string }) => isSupplied && collateral,
26
- // TODO: Verify if liquidation factor is available in Aave V4, currently using collateralFactor as placeholder
27
- ({ symbol, suppliedUsd, reserveId }: { symbol: string, suppliedUsd: string, reserveId: number }) => new Dec(suppliedUsd).mul(assetsData[`${symbol}-${reserveId}`].collateralFactor),
27
+ ({ symbol, suppliedUsd, reserveId }: { symbol: string, suppliedUsd: string, reserveId: number }) => new Dec(suppliedUsd).mul(aaveV4GetCollateralFactor(assetsData[`${symbol}-${reserveId}`], usedAssets[`${symbol}-${reserveId}`], useUserCollateralFactor)),
28
28
  );
29
+ payload.liquidationLimitUsd = payload.borrowLimitUsd;
29
30
  payload.borrowedUsd = getAssetsTotal(usedAssets, ({ isBorrowed }: { isBorrowed: boolean }) => isBorrowed, ({ borrowedUsd }: { borrowedUsd: string }) => borrowedUsd);
30
31
  payload.drawnUsd = getAssetsTotal(usedAssets, ({ isBorrowed }: { isBorrowed: boolean }) => isBorrowed, ({ drawnUsd }: { drawnUsd: string }) => drawnUsd);
31
32
  payload.premiumUsd = getAssetsTotal(usedAssets, ({ isBorrowed }: { isBorrowed: boolean }) => isBorrowed, ({ premiumUsd }: { premiumUsd: string }) => premiumUsd);
@@ -105,6 +105,7 @@ export interface AaveV4UsedReserveAsset {
105
105
  isSupplied: boolean,
106
106
  isBorrowed: boolean,
107
107
  collateral: boolean,
108
+ collateralFactor: number,
108
109
  }
109
110
 
110
111
  export interface AaveV4AggregatedPositionData {