@defisaver/positions-sdk 2.1.59 → 2.1.61

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.
Files changed (107) hide show
  1. package/cjs/aaveV3/index.d.ts +1 -0
  2. package/cjs/aaveV3/index.js +1 -0
  3. package/cjs/compoundV2/index.d.ts +1 -0
  4. package/cjs/compoundV2/index.js +1 -0
  5. package/cjs/compoundV3/index.d.ts +1 -0
  6. package/cjs/compoundV3/index.js +1 -0
  7. package/cjs/eulerV2/index.d.ts +1 -0
  8. package/cjs/eulerV2/index.js +1 -0
  9. package/cjs/fluid/index.d.ts +3 -0
  10. package/cjs/helpers/aaveHelpers/index.js +1 -0
  11. package/cjs/helpers/compoundHelpers/index.js +2 -0
  12. package/cjs/helpers/curveUsdHelpers/index.js +1 -0
  13. package/cjs/helpers/eulerHelpers/index.js +1 -0
  14. package/cjs/helpers/fluidHelpers/index.js +1 -0
  15. package/cjs/helpers/liquityV2Helpers/index.js +1 -0
  16. package/cjs/helpers/llamaLendHelpers/index.js +1 -0
  17. package/cjs/helpers/morphoBlueHelpers/index.js +3 -2
  18. package/cjs/helpers/sparkHelpers/index.js +1 -0
  19. package/cjs/liquity/index.js +2 -0
  20. package/cjs/maker/index.js +2 -0
  21. package/cjs/moneymarket/moneymarketCommonService.d.ts +1 -0
  22. package/cjs/moneymarket/moneymarketCommonService.js +8 -1
  23. package/cjs/services/utils.d.ts +1 -0
  24. package/cjs/services/utils.js +2 -1
  25. package/cjs/spark/index.d.ts +1 -0
  26. package/cjs/spark/index.js +1 -0
  27. package/cjs/types/aave.d.ts +1 -0
  28. package/cjs/types/common.d.ts +1 -0
  29. package/cjs/types/compound.d.ts +1 -0
  30. package/cjs/types/curveUsd.d.ts +2 -0
  31. package/cjs/types/euler.d.ts +1 -0
  32. package/cjs/types/fluid.d.ts +1 -0
  33. package/cjs/types/liquity.d.ts +1 -0
  34. package/cjs/types/liquityV2.d.ts +2 -0
  35. package/cjs/types/llamaLend.d.ts +2 -0
  36. package/cjs/types/maker.d.ts +1 -0
  37. package/cjs/types/morphoBlue.d.ts +2 -0
  38. package/cjs/types/spark.d.ts +1 -0
  39. package/esm/aaveV3/index.d.ts +1 -0
  40. package/esm/aaveV3/index.js +1 -0
  41. package/esm/compoundV2/index.d.ts +1 -0
  42. package/esm/compoundV2/index.js +1 -0
  43. package/esm/compoundV3/index.d.ts +1 -0
  44. package/esm/compoundV3/index.js +1 -0
  45. package/esm/eulerV2/index.d.ts +1 -0
  46. package/esm/eulerV2/index.js +1 -0
  47. package/esm/fluid/index.d.ts +3 -0
  48. package/esm/helpers/aaveHelpers/index.js +2 -1
  49. package/esm/helpers/compoundHelpers/index.js +3 -1
  50. package/esm/helpers/curveUsdHelpers/index.js +2 -1
  51. package/esm/helpers/eulerHelpers/index.js +2 -1
  52. package/esm/helpers/fluidHelpers/index.js +2 -1
  53. package/esm/helpers/liquityV2Helpers/index.js +2 -1
  54. package/esm/helpers/llamaLendHelpers/index.js +2 -1
  55. package/esm/helpers/morphoBlueHelpers/index.js +5 -4
  56. package/esm/helpers/sparkHelpers/index.js +2 -1
  57. package/esm/liquity/index.js +2 -0
  58. package/esm/maker/index.js +2 -0
  59. package/esm/moneymarket/moneymarketCommonService.d.ts +1 -0
  60. package/esm/moneymarket/moneymarketCommonService.js +6 -0
  61. package/esm/services/utils.d.ts +1 -0
  62. package/esm/services/utils.js +1 -0
  63. package/esm/spark/index.d.ts +1 -0
  64. package/esm/spark/index.js +1 -0
  65. package/esm/types/aave.d.ts +1 -0
  66. package/esm/types/common.d.ts +1 -0
  67. package/esm/types/compound.d.ts +1 -0
  68. package/esm/types/curveUsd.d.ts +2 -0
  69. package/esm/types/euler.d.ts +1 -0
  70. package/esm/types/fluid.d.ts +1 -0
  71. package/esm/types/liquity.d.ts +1 -0
  72. package/esm/types/liquityV2.d.ts +2 -0
  73. package/esm/types/llamaLend.d.ts +2 -0
  74. package/esm/types/maker.d.ts +1 -0
  75. package/esm/types/morphoBlue.d.ts +2 -0
  76. package/esm/types/spark.d.ts +1 -0
  77. package/package.json +1 -1
  78. package/src/aaveV3/index.ts +1 -0
  79. package/src/compoundV2/index.ts +1 -0
  80. package/src/compoundV3/index.ts +1 -0
  81. package/src/eulerV2/index.ts +1 -0
  82. package/src/helpers/aaveHelpers/index.ts +2 -1
  83. package/src/helpers/compoundHelpers/index.ts +3 -1
  84. package/src/helpers/curveUsdHelpers/index.ts +5 -1
  85. package/src/helpers/eulerHelpers/index.ts +2 -1
  86. package/src/helpers/fluidHelpers/index.ts +4 -1
  87. package/src/helpers/liquityV2Helpers/index.ts +4 -1
  88. package/src/helpers/llamaLendHelpers/index.ts +4 -1
  89. package/src/helpers/morphoBlueHelpers/index.ts +5 -4
  90. package/src/helpers/sparkHelpers/index.ts +2 -1
  91. package/src/liquity/index.ts +2 -0
  92. package/src/maker/index.ts +2 -0
  93. package/src/moneymarket/moneymarketCommonService.ts +6 -0
  94. package/src/services/utils.ts +1 -0
  95. package/src/spark/index.ts +1 -0
  96. package/src/types/aave.ts +1 -0
  97. package/src/types/common.ts +1 -0
  98. package/src/types/compound.ts +1 -0
  99. package/src/types/curveUsd.ts +2 -0
  100. package/src/types/euler.ts +1 -0
  101. package/src/types/fluid.ts +2 -1
  102. package/src/types/liquity.ts +1 -0
  103. package/src/types/liquityV2.ts +2 -0
  104. package/src/types/llamaLend.ts +2 -0
  105. package/src/types/maker.ts +1 -0
  106. package/src/types/morphoBlue.ts +2 -0
  107. package/src/types/spark.ts +1 -0
@@ -28,6 +28,7 @@ export declare const EMPTY_AAVE_DATA: {
28
28
  eModeCategories: never[];
29
29
  collRatio: string;
30
30
  suppliedCollateralUsd: string;
31
+ exposure: string;
31
32
  };
32
33
  export declare const _getAaveV3AccountBalances: (provider: Client, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress) => Promise<PositionBalances>;
33
34
  export declare const getAaveV3AccountBalances: (provider: EthereumProvider, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress) => Promise<PositionBalances>;
@@ -332,6 +332,7 @@ exports.EMPTY_AAVE_DATA = {
332
332
  eModeCategories: [],
333
333
  collRatio: '0',
334
334
  suppliedCollateralUsd: '0',
335
+ exposure: 'N/A',
335
336
  };
336
337
  const _getAaveV3AccountBalances = (provider, network, block, addressMapping, address) => __awaiter(void 0, void 0, void 0, function* () {
337
338
  let balances = {
@@ -15,6 +15,7 @@ export declare const EMPTY_COMPOUND_DATA: {
15
15
  incentiveUsd: string;
16
16
  totalInterestUsd: string;
17
17
  borrowStableSupplyUnstable: boolean;
18
+ exposure: string;
18
19
  };
19
20
  export declare const _getCompoundV2AccountBalances: (provider: Client, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress) => Promise<PositionBalances>;
20
21
  export declare const getCompoundV2AccountBalances: (provider: EthereumProvider, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress) => Promise<PositionBalances>;
@@ -99,6 +99,7 @@ exports.EMPTY_COMPOUND_DATA = {
99
99
  incentiveUsd: '0',
100
100
  totalInterestUsd: '0',
101
101
  borrowStableSupplyUnstable: false,
102
+ exposure: 'N/A',
102
103
  };
103
104
  const getCollateralAssetsAddresses = (provider, network, account) => __awaiter(void 0, void 0, void 0, function* () {
104
105
  const contract = (0, contracts_1.ComptrollerContractViem)(provider, network);
@@ -18,6 +18,7 @@ export declare const EMPTY_COMPOUND_V3_DATA: {
18
18
  automationResubscribeRequired: boolean;
19
19
  isAllowed: boolean;
20
20
  lastUpdated: number;
21
+ exposure: string;
21
22
  };
22
23
  export declare const EMPTY_USED_ASSET: {
23
24
  isSupplied: boolean;
@@ -91,6 +91,7 @@ exports.EMPTY_COMPOUND_V3_DATA = {
91
91
  automationResubscribeRequired: false,
92
92
  isAllowed: false,
93
93
  lastUpdated: Date.now(),
94
+ exposure: 'N/A',
94
95
  };
95
96
  exports.EMPTY_USED_ASSET = {
96
97
  isSupplied: false,
@@ -34,6 +34,7 @@ export declare const EMPTY_EULER_V2_DATA: {
34
34
  lastUpdated: number;
35
35
  hasBorrowInDifferentVault: boolean;
36
36
  addressSpaceTakenByAnotherAccount: boolean;
37
+ exposure: string;
37
38
  };
38
39
  export declare const _getEulerV2AccountData: (provider: Client, network: NetworkNumber, addressForPosition: EthAddress, ownerAddress: EthAddress, extractedState: ({
39
40
  selectedMarket: EulerV2Market;
@@ -179,6 +179,7 @@ exports.EMPTY_EULER_V2_DATA = {
179
179
  lastUpdated: Date.now(),
180
180
  hasBorrowInDifferentVault: false,
181
181
  addressSpaceTakenByAnotherAccount: false,
182
+ exposure: 'N/A',
182
183
  };
183
184
  const _getEulerV2AccountData = (provider, network, addressForPosition, ownerAddress, extractedState) => __awaiter(void 0, void 0, void 0, function* () {
184
185
  if (!addressForPosition)
@@ -136,6 +136,7 @@ export declare const _getUserPositions: (provider: PublicClient, network: Networ
136
136
  currentVolatilePairRatio?: string;
137
137
  minCollRatio?: string;
138
138
  collLiquidationRatio?: string;
139
+ exposure: string;
139
140
  owner: string;
140
141
  vaultId: number;
141
142
  usedAssets: FluidUsedAssets;
@@ -167,6 +168,7 @@ export declare const getUserPositions: (provider: EthereumProvider, network: Net
167
168
  currentVolatilePairRatio?: string;
168
169
  minCollRatio?: string;
169
170
  collLiquidationRatio?: string;
171
+ exposure: string;
170
172
  owner: string;
171
173
  vaultId: number;
172
174
  usedAssets: FluidUsedAssets;
@@ -198,6 +200,7 @@ export declare const _getUserPositionsPortfolio: (provider: PublicClient, networ
198
200
  currentVolatilePairRatio?: string;
199
201
  minCollRatio?: string;
200
202
  collLiquidationRatio?: string;
203
+ exposure: string;
201
204
  owner: string;
202
205
  vaultId: number;
203
206
  usedAssets: FluidUsedAssets;
@@ -133,6 +133,7 @@ const aaveAnyGetAggregatedPositionData = (_a) => {
133
133
  payload.netApy = netApy;
134
134
  payload.incentiveUsd = incentiveUsd;
135
135
  payload.totalInterestUsd = totalInterestUsd;
136
+ payload.exposure = (0, moneymarket_1.getExposure)(payload.borrowedUsd, payload.suppliedUsd);
136
137
  return payload;
137
138
  };
138
139
  exports.aaveAnyGetAggregatedPositionData = aaveAnyGetAggregatedPositionData;
@@ -120,6 +120,7 @@ const getCompoundV2AggregatedData = (_a) => {
120
120
  const assetPrice = assetsData[(0, utils_1.handleWbtcLegacy)(leveragedAsset)].price;
121
121
  payload.liquidationPrice = (0, moneymarket_1.calcLeverageLiqPrice)(leveragedType, assetPrice, payload.borrowedUsd, payload.liquidationLimitUsd);
122
122
  }
123
+ payload.exposure = (0, moneymarket_1.getExposure)(payload.borrowedUsd, payload.suppliedUsd);
123
124
  return payload;
124
125
  };
125
126
  exports.getCompoundV2AggregatedData = getCompoundV2AggregatedData;
@@ -169,6 +170,7 @@ const getCompoundV3AggregatedData = (_a) => {
169
170
  }
170
171
  payload.minCollRatio = new decimal_js_1.default(payload.suppliedCollateralUsd).div(payload.borrowLimitUsd).mul(100).toString();
171
172
  payload.collLiquidationRatio = new decimal_js_1.default(payload.suppliedCollateralUsd).div(payload.liquidationLimitUsd).mul(100).toString();
173
+ payload.exposure = (0, moneymarket_1.getExposure)(payload.borrowedUsd, payload.suppliedUsd);
172
174
  return payload;
173
175
  };
174
176
  exports.getCompoundV3AggregatedData = getCompoundV3AggregatedData;
@@ -45,6 +45,7 @@ const getCrvUsdAggregatedData = (_a) => {
45
45
  payload.leveragedAsset = leveragedAsset;
46
46
  payload.liquidationPrice = (0, moneymarket_1.calcLeverageLiqPrice)(leveragedType, usedAssets[selectedMarket.collAsset].price, payload.borrowedUsd, payload.borrowLimitUsd);
47
47
  }
48
+ payload.exposure = (0, moneymarket_1.getExposure)(payload.borrowedUsd, payload.suppliedUsd);
48
49
  return payload;
49
50
  };
50
51
  exports.getCrvUsdAggregatedData = getCrvUsdAggregatedData;
@@ -132,6 +132,7 @@ const getEulerV2AggregatedData = (_a) => {
132
132
  }
133
133
  payload.minCollRatio = new decimal_js_1.default(payload.suppliedCollateralUsd).div(payload.borrowLimitUsd).mul(100).toString();
134
134
  payload.collLiquidationRatio = new decimal_js_1.default(payload.suppliedCollateralUsd).div(payload.liquidationLimitUsd).mul(100).toString();
135
+ payload.exposure = (0, moneymarket_1.getExposure)(payload.borrowedUsd, payload.suppliedUsd);
135
136
  return payload;
136
137
  };
137
138
  exports.getEulerV2AggregatedData = getEulerV2AggregatedData;
@@ -75,6 +75,7 @@ const getFluidAggregatedData = ({ usedAssets, assetsData, marketData, }, supplyS
75
75
  }
76
76
  payload.minCollRatio = new decimal_js_1.default(payload.suppliedUsd).div(payload.borrowLimitUsd).mul(100).toString();
77
77
  payload.collLiquidationRatio = new decimal_js_1.default(payload.suppliedUsd).div(payload.liquidationLimitUsd).mul(100).toString();
78
+ payload.exposure = (0, moneymarket_1.getExposure)(payload.borrowedUsd, payload.suppliedUsd);
78
79
  return payload;
79
80
  };
80
81
  exports.getFluidAggregatedData = getFluidAggregatedData;
@@ -59,6 +59,7 @@ const getLiquityV2AggregatedPositionData = ({ usedAssets, assetsData, minCollRat
59
59
  const assetPrice = assetsData[leveragedAsset].price;
60
60
  payload.liquidationPrice = (0, moneymarket_1.calcLeverageLiqPrice)(leveragedType, assetPrice, payload.borrowedUsd, payload.borrowLimitUsd);
61
61
  }
62
+ payload.exposure = (0, moneymarket_1.getExposure)(payload.borrowedUsd, payload.suppliedUsd);
62
63
  return payload;
63
64
  };
64
65
  exports.getLiquityV2AggregatedPositionData = getLiquityV2AggregatedPositionData;
@@ -53,6 +53,7 @@ const getLlamaLendAggregatedData = (_a) => {
53
53
  payload.leveragedAsset = leveragedAsset;
54
54
  payload.liquidationPrice = (0, moneymarket_1.calcLeverageLiqPrice)(leveragedType, usedAssets[collAsset].price, payload.borrowedUsd, payload.borrowLimitUsd);
55
55
  }
56
+ payload.exposure = (0, moneymarket_1.getExposure)(payload.borrowedUsd, payload.suppliedUsd);
56
57
  return payload;
57
58
  };
58
59
  exports.getLlamaLendAggregatedData = getLlamaLendAggregatedData;
@@ -70,6 +70,7 @@ const getMorphoBlueAggregatedPositionData = ({ usedAssets, assetsData, marketInf
70
70
  }
71
71
  payload.minCollRatio = new decimal_js_1.default(payload.suppliedCollateralUsd).div(payload.borrowLimitUsd).mul(100).toString();
72
72
  payload.collLiquidationRatio = new decimal_js_1.default(payload.suppliedCollateralUsd).div(payload.liquidationLimitUsd).mul(100).toString();
73
+ payload.exposure = (0, moneymarket_1.getExposure)(payload.borrowedUsd, payload.suppliedUsd);
73
74
  return payload;
74
75
  };
75
76
  exports.getMorphoBlueAggregatedPositionData = getMorphoBlueAggregatedPositionData;
@@ -222,7 +223,7 @@ const getReallocatableLiquidity = (marketId_1, ...args_1) => __awaiter(void 0, [
222
223
  query: MARKET_QUERY,
223
224
  variables: { uniqueKey: marketId, chainId: network },
224
225
  }),
225
- signal: AbortSignal.timeout(utils_1.DEFAULT_TIMEOUT),
226
+ signal: AbortSignal.timeout(utils_1.LONGER_TIMEOUT),
226
227
  });
227
228
  const data = yield response.json();
228
229
  const marketData = (_a = data === null || data === void 0 ? void 0 : data.data) === null || _a === void 0 ? void 0 : _a.marketByUniqueKey;
@@ -286,7 +287,7 @@ const getReallocation = (market_1, assetsData_1, amountToBorrow_1, ...args_1) =>
286
287
  query: MARKET_QUERY,
287
288
  variables: { uniqueKey: marketId, chainId: network },
288
289
  }),
289
- signal: AbortSignal.timeout(utils_1.DEFAULT_TIMEOUT),
290
+ signal: AbortSignal.timeout(utils_1.LONGER_TIMEOUT),
290
291
  });
291
292
  const data = yield response.json();
292
293
  const marketData = (_a = data === null || data === void 0 ? void 0 : data.data) === null || _a === void 0 ? void 0 : _a.marketByUniqueKey;
@@ -113,6 +113,7 @@ const sparkGetAggregatedPositionData = (_a) => {
113
113
  payload.collLiquidationRatio = new decimal_js_1.default(payload.suppliedCollateralUsd).div(payload.liquidationLimitUsd).mul(100).toString();
114
114
  payload.healthRatio = new decimal_js_1.default(payload.liquidationLimitUsd).div(payload.borrowedUsd).toDP(4).toString();
115
115
  payload.minHealthRatio = new decimal_js_1.default(payload.liquidationLimitUsd).div(payload.borrowLimitUsd).toDP(4).toString();
116
+ payload.exposure = (0, moneymarket_1.getExposure)(payload.borrowedUsd, payload.suppliedUsd);
116
117
  return payload;
117
118
  };
118
119
  exports.sparkGetAggregatedPositionData = sparkGetAggregatedPositionData;
@@ -21,6 +21,7 @@ const types_1 = require("../types");
21
21
  const constants_1 = require("../constants");
22
22
  const viem_1 = require("../services/viem");
23
23
  const utils_1 = require("../services/utils");
24
+ const moneymarket_1 = require("../moneymarket");
24
25
  exports.LIQUITY_NORMAL_MODE_RATIO = 110; // MCR
25
26
  exports.LIQUITY_RECOVERY_MODE_RATIO = 150; // CCR
26
27
  const _getLiquityAccountBalances = (provider, network, block, addressMapping, address) => __awaiter(void 0, void 0, void 0, function* () {
@@ -91,6 +92,7 @@ const _getLiquityTroveInfo = (provider, network, address) => __awaiter(void 0, v
91
92
  minCollateralRatio: recoveryMode ? exports.LIQUITY_RECOVERY_MODE_RATIO : exports.LIQUITY_NORMAL_MODE_RATIO,
92
93
  priceForRecovery: new decimal_js_1.default(recoveryMode ? exports.LIQUITY_RECOVERY_MODE_RATIO : exports.LIQUITY_NORMAL_MODE_RATIO).mul(totalLUSD).div(totalETH).div(100)
93
94
  .toString(),
95
+ exposure: (0, moneymarket_1.getExposure)((0, tokens_1.assetAmountInEth)(troveInfo[2].toString()), new decimal_js_1.default((0, tokens_1.assetAmountInEth)(troveInfo[1].toString())).mul(assetPrice).toString()),
94
96
  };
95
97
  return payload;
96
98
  });
@@ -20,6 +20,7 @@ const types_1 = require("../types");
20
20
  const utils_1 = require("../services/utils");
21
21
  const makerHelpers_1 = require("../helpers/makerHelpers");
22
22
  const viem_1 = require("../services/viem");
23
+ const moneymarket_1 = require("../moneymarket");
23
24
  const _getMakerAccountBalances = (provider, network, block, addressMapping, cdpId, _managerAddress) => __awaiter(void 0, void 0, void 0, function* () {
24
25
  let balances = {
25
26
  collateral: {},
@@ -149,6 +150,7 @@ const _getMakerCdpData = (provider, network, cdp) => __awaiter(void 0, void 0, v
149
150
  globalDebtCurrent: collInfo.globalDebtCurrent,
150
151
  liquidationFee: collInfo.liquidationFee,
151
152
  lastUpdated: Date.now(),
153
+ exposure: (0, moneymarket_1.getExposure)((0, tokens_1.assetAmountInEth)(debt, 'DAI'), collateralUsd),
152
154
  };
153
155
  });
154
156
  exports._getMakerCdpData = _getMakerCdpData;
@@ -10,3 +10,4 @@ export declare const isLeveragedPos: (usedAssets: MMUsedAssets, dustLimit?: numb
10
10
  leveragedAsset: string;
11
11
  };
12
12
  export declare const aprToApy: (interest: string | number, frequency?: number) => string;
13
+ export declare const getExposure: (borrowedUsd: string, suppliedUsd: string) => string;
@@ -3,7 +3,7 @@ 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.aprToApy = exports.isLeveragedPos = exports.STABLE_ASSETS = exports.calculateBorrowingAssetLimit = exports.calcLeverageLiqPrice = exports.calcShortLiqPrice = exports.calcLongLiqPrice = exports.getAssetsTotal = void 0;
6
+ exports.getExposure = exports.aprToApy = exports.isLeveragedPos = exports.STABLE_ASSETS = exports.calculateBorrowingAssetLimit = exports.calcLeverageLiqPrice = exports.calcShortLiqPrice = exports.calcLongLiqPrice = exports.getAssetsTotal = void 0;
7
7
  const decimal_js_1 = __importDefault(require("decimal.js"));
8
8
  const constants_1 = require("../constants");
9
9
  const common_1 = require("../types/common");
@@ -90,3 +90,10 @@ const aprToApy = (interest, frequency = constants_1.BLOCKS_IN_A_YEAR) => new dec
90
90
  .times(100)
91
91
  .toString();
92
92
  exports.aprToApy = aprToApy;
93
+ const getExposure = (borrowedUsd, suppliedUsd) => {
94
+ if (borrowedUsd === '0' || suppliedUsd === '0')
95
+ return 'N/A';
96
+ const balanceUsd = new decimal_js_1.default(suppliedUsd).sub(borrowedUsd).toString();
97
+ return new decimal_js_1.default(suppliedUsd).div(balanceUsd).toDecimalPlaces(2).toString();
98
+ };
99
+ exports.getExposure = getExposure;
@@ -21,6 +21,7 @@ export declare const MAXUINT: string;
21
21
  export declare const isMaxuint: (amount: string) => boolean;
22
22
  export declare const isMainnetNetwork: (network: NetworkNumber) => network is NetworkNumber.Eth;
23
23
  export declare const DEFAULT_TIMEOUT = 2000;
24
+ export declare const LONGER_TIMEOUT = 5000;
24
25
  /**
25
26
  * Converts web3 hybrid response (that can be used as objects and arrays, so has duplicated values) to objects.
26
27
  * @param value
@@ -3,7 +3,7 @@ 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.getNativeAssetFromWrapped = exports.getWrappedNativeAssetFromUnwrapped = exports.wxplToXpl = exports.xplToWxpl = exports.ethToWethByAddress = exports.wethToEthByAddress = exports.wethToEth = exports.ethToWeth = exports.convertHybridArraysToObjects = exports.DEFAULT_TIMEOUT = exports.isMainnetNetwork = exports.isMaxuint = exports.MAXUINT = exports.isEnabledOnBitmap = exports.mapRange = exports.bytesToString = exports.handleWbtcLegacy = exports.getEthAmountForDecimals = exports.getWeiAmountForDecimals = exports.compareAddresses = exports.isAddress = exports.ADDRESS_REGEX = exports.getAbiItem = exports.wstEthToStEth = exports.stEthToWstEth = exports.addToArrayIf = exports.addToObjectIf = exports.isLayer2Network = void 0;
6
+ exports.getNativeAssetFromWrapped = exports.getWrappedNativeAssetFromUnwrapped = exports.wxplToXpl = exports.xplToWxpl = exports.ethToWethByAddress = exports.wethToEthByAddress = exports.wethToEth = exports.ethToWeth = exports.convertHybridArraysToObjects = exports.LONGER_TIMEOUT = exports.DEFAULT_TIMEOUT = exports.isMainnetNetwork = exports.isMaxuint = exports.MAXUINT = exports.isEnabledOnBitmap = exports.mapRange = exports.bytesToString = exports.handleWbtcLegacy = exports.getEthAmountForDecimals = exports.getWeiAmountForDecimals = exports.compareAddresses = exports.isAddress = exports.ADDRESS_REGEX = exports.getAbiItem = exports.wstEthToStEth = exports.stEthToWstEth = exports.addToArrayIf = exports.addToObjectIf = exports.isLayer2Network = void 0;
7
7
  const decimal_js_1 = __importDefault(require("decimal.js"));
8
8
  const tokens_1 = require("@defisaver/tokens");
9
9
  const common_1 = require("../types/common");
@@ -56,6 +56,7 @@ exports.isMaxuint = isMaxuint;
56
56
  const isMainnetNetwork = (network) => network === common_1.NetworkNumber.Eth;
57
57
  exports.isMainnetNetwork = isMainnetNetwork;
58
58
  exports.DEFAULT_TIMEOUT = 2000; // 2 seconds
59
+ exports.LONGER_TIMEOUT = 5000; // 5 seconds
59
60
  /**
60
61
  * Converts web3 hybrid response (that can be used as objects and arrays, so has duplicated values) to objects.
61
62
  * @param value
@@ -26,6 +26,7 @@ export declare const EMPTY_SPARK_DATA: {
26
26
  suppliedCollateralUsd: string;
27
27
  totalSupplied: string;
28
28
  eModeCategories: never[];
29
+ exposure: string;
29
30
  };
30
31
  export declare const _getSparkAccountBalances: (provider: Client, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress) => Promise<PositionBalances>;
31
32
  export declare const getSparkAccountBalances: (provider: EthereumProvider, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress) => Promise<PositionBalances>;
@@ -233,6 +233,7 @@ exports.EMPTY_SPARK_DATA = {
233
233
  suppliedCollateralUsd: '0',
234
234
  totalSupplied: '0',
235
235
  eModeCategories: [],
236
+ exposure: 'N/A',
236
237
  };
237
238
  const _getSparkAccountBalances = (provider, network, block, addressMapping, address) => __awaiter(void 0, void 0, void 0, function* () {
238
239
  let balances = {
@@ -162,6 +162,7 @@ export interface AaveV3AggregatedPositionData {
162
162
  liqRatio: string;
163
163
  liqPercent: string;
164
164
  leveragedType: LeverageType;
165
+ exposure: string;
165
166
  leveragedAsset?: string;
166
167
  liquidationPrice?: string;
167
168
  minCollRatio?: string;
@@ -90,6 +90,7 @@ export interface MMPositionData {
90
90
  usedAssets: any;
91
91
  netApy: string;
92
92
  lastUpdated: number;
93
+ exposure: string;
93
94
  }
94
95
  export type Balances = Record<AssetSymbol, Amount>;
95
96
  export interface PositionBalances {
@@ -103,6 +103,7 @@ export interface CompoundAggregatedPositionData {
103
103
  minDebt: string;
104
104
  minCollRatio: string;
105
105
  collLiquidationRatio: string;
106
+ exposure: string;
106
107
  }
107
108
  export interface CompoundPositionData extends MMPositionData {
108
109
  ratio: string;
@@ -72,6 +72,7 @@ export interface CrvUSDAggregatedPositionData {
72
72
  minAllowedRatio: number;
73
73
  collFactor: string;
74
74
  leveragedType: LeverageType;
75
+ exposure: string;
75
76
  leveragedAsset?: string;
76
77
  liquidationPrice?: string;
77
78
  }
@@ -111,4 +112,5 @@ export interface CrvUSDUserData {
111
112
  borrowRate?: string;
112
113
  collateralPrice: string;
113
114
  collRatio: string;
115
+ exposure: string;
114
116
  }
@@ -149,4 +149,5 @@ export interface EulerV2AggregatedPositionData {
149
149
  minDebt: string;
150
150
  minCollRatio: string;
151
151
  collLiquidationRatio: string;
152
+ exposure: string;
152
153
  }
@@ -329,6 +329,7 @@ export interface FluidAggregatedVaultData {
329
329
  currentVolatilePairRatio?: string;
330
330
  minCollRatio?: string;
331
331
  collLiquidationRatio?: string;
332
+ exposure: string;
332
333
  }
333
334
  export interface BaseFluidVaultData {
334
335
  owner: string;
@@ -26,4 +26,5 @@ export interface LiquityTroveInfo {
26
26
  minCollateralRatio: number;
27
27
  priceForRecovery: string;
28
28
  debtInFront: string;
29
+ exposure: string;
29
30
  }
@@ -93,6 +93,7 @@ export interface LiquityV2AggregatedTroveData {
93
93
  liquidationPrice: string;
94
94
  ratio: string;
95
95
  collRatio: string;
96
+ exposure: string;
96
97
  }
97
98
  export interface LiquityV2TroveData {
98
99
  usedAssets: LiquityV2UsedAssets;
@@ -115,4 +116,5 @@ export interface LiquityV2TroveData {
115
116
  liquidationPrice: string;
116
117
  debtInFront: string;
117
118
  lastInterestRateAdjTime: string;
119
+ exposure: string;
118
120
  }
@@ -118,6 +118,7 @@ export interface LlamaLendAggregatedPositionData {
118
118
  netApy: string;
119
119
  incentiveUsd: string;
120
120
  totalInterestUsd: string;
121
+ exposure: string;
121
122
  }
122
123
  export interface LlamaLendUsedAsset {
123
124
  isSupplied: boolean;
@@ -155,4 +156,5 @@ export interface LlamaLendUserData {
155
156
  userBands: UserBandData[];
156
157
  loanExists: boolean;
157
158
  borrowRate?: string;
159
+ exposure: string;
158
160
  }
@@ -57,4 +57,5 @@ export interface CdpData {
57
57
  globalDebtCurrent: string;
58
58
  liquidationFee: string;
59
59
  lastUpdated: number;
60
+ exposure: string;
60
61
  }
@@ -135,6 +135,7 @@ export interface MorphoBlueAggregatedPositionData {
135
135
  liquidationPrice?: string;
136
136
  minCollRatio?: string;
137
137
  collLiquidationRatio?: string;
138
+ exposure: string;
138
139
  }
139
140
  export interface MorphoBluePositionData {
140
141
  usedAssets: MMUsedAssets;
@@ -156,6 +157,7 @@ export interface MorphoBluePositionData {
156
157
  liquidationPrice?: string;
157
158
  supplyShares: string;
158
159
  borrowShares: string;
160
+ exposure: string;
159
161
  }
160
162
  export interface MorphoBlueVault {
161
163
  address: string;
@@ -98,6 +98,7 @@ export interface SparkAggregatedPositionData {
98
98
  collLiquidationRatio: string;
99
99
  healthRatio: string;
100
100
  minHealthRatio: string;
101
+ exposure: string;
101
102
  }
102
103
  export interface SparkPositionData extends MMPositionData {
103
104
  ratio: string;
@@ -28,6 +28,7 @@ export declare const EMPTY_AAVE_DATA: {
28
28
  eModeCategories: never[];
29
29
  collRatio: string;
30
30
  suppliedCollateralUsd: string;
31
+ exposure: string;
31
32
  };
32
33
  export declare const _getAaveV3AccountBalances: (provider: Client, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress) => Promise<PositionBalances>;
33
34
  export declare const getAaveV3AccountBalances: (provider: EthereumProvider, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress) => Promise<PositionBalances>;
@@ -321,6 +321,7 @@ export const EMPTY_AAVE_DATA = {
321
321
  eModeCategories: [],
322
322
  collRatio: '0',
323
323
  suppliedCollateralUsd: '0',
324
+ exposure: 'N/A',
324
325
  };
325
326
  export const _getAaveV3AccountBalances = (provider, network, block, addressMapping, address) => __awaiter(void 0, void 0, void 0, function* () {
326
327
  let balances = {
@@ -15,6 +15,7 @@ export declare const EMPTY_COMPOUND_DATA: {
15
15
  incentiveUsd: string;
16
16
  totalInterestUsd: string;
17
17
  borrowStableSupplyUnstable: boolean;
18
+ exposure: string;
18
19
  };
19
20
  export declare const _getCompoundV2AccountBalances: (provider: Client, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress) => Promise<PositionBalances>;
20
21
  export declare const getCompoundV2AccountBalances: (provider: EthereumProvider, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress) => Promise<PositionBalances>;
@@ -91,6 +91,7 @@ export const EMPTY_COMPOUND_DATA = {
91
91
  incentiveUsd: '0',
92
92
  totalInterestUsd: '0',
93
93
  borrowStableSupplyUnstable: false,
94
+ exposure: 'N/A',
94
95
  };
95
96
  const getCollateralAssetsAddresses = (provider, network, account) => __awaiter(void 0, void 0, void 0, function* () {
96
97
  const contract = ComptrollerContractViem(provider, network);
@@ -18,6 +18,7 @@ export declare const EMPTY_COMPOUND_V3_DATA: {
18
18
  automationResubscribeRequired: boolean;
19
19
  isAllowed: boolean;
20
20
  lastUpdated: number;
21
+ exposure: string;
21
22
  };
22
23
  export declare const EMPTY_USED_ASSET: {
23
24
  isSupplied: boolean;
@@ -83,6 +83,7 @@ export const EMPTY_COMPOUND_V3_DATA = {
83
83
  automationResubscribeRequired: false,
84
84
  isAllowed: false,
85
85
  lastUpdated: Date.now(),
86
+ exposure: 'N/A',
86
87
  };
87
88
  export const EMPTY_USED_ASSET = {
88
89
  isSupplied: false,
@@ -34,6 +34,7 @@ export declare const EMPTY_EULER_V2_DATA: {
34
34
  lastUpdated: number;
35
35
  hasBorrowInDifferentVault: boolean;
36
36
  addressSpaceTakenByAnotherAccount: boolean;
37
+ exposure: string;
37
38
  };
38
39
  export declare const _getEulerV2AccountData: (provider: Client, network: NetworkNumber, addressForPosition: EthAddress, ownerAddress: EthAddress, extractedState: ({
39
40
  selectedMarket: EulerV2Market;
@@ -171,6 +171,7 @@ export const EMPTY_EULER_V2_DATA = {
171
171
  lastUpdated: Date.now(),
172
172
  hasBorrowInDifferentVault: false,
173
173
  addressSpaceTakenByAnotherAccount: false,
174
+ exposure: 'N/A',
174
175
  };
175
176
  export const _getEulerV2AccountData = (provider, network, addressForPosition, ownerAddress, extractedState) => __awaiter(void 0, void 0, void 0, function* () {
176
177
  if (!addressForPosition)
@@ -136,6 +136,7 @@ export declare const _getUserPositions: (provider: PublicClient, network: Networ
136
136
  currentVolatilePairRatio?: string;
137
137
  minCollRatio?: string;
138
138
  collLiquidationRatio?: string;
139
+ exposure: string;
139
140
  owner: string;
140
141
  vaultId: number;
141
142
  usedAssets: FluidUsedAssets;
@@ -167,6 +168,7 @@ export declare const getUserPositions: (provider: EthereumProvider, network: Net
167
168
  currentVolatilePairRatio?: string;
168
169
  minCollRatio?: string;
169
170
  collLiquidationRatio?: string;
171
+ exposure: string;
170
172
  owner: string;
171
173
  vaultId: number;
172
174
  usedAssets: FluidUsedAssets;
@@ -198,6 +200,7 @@ export declare const _getUserPositionsPortfolio: (provider: PublicClient, networ
198
200
  currentVolatilePairRatio?: string;
199
201
  minCollRatio?: string;
200
202
  collLiquidationRatio?: string;
203
+ exposure: string;
201
204
  owner: string;
202
205
  vaultId: number;
203
206
  usedAssets: FluidUsedAssets;
@@ -22,7 +22,7 @@ import Dec from 'decimal.js';
22
22
  import { assetAmountInWei, getAssetInfo, getAssetInfoByAddress } from '@defisaver/tokens';
23
23
  import { AaveVersions, } from '../../types';
24
24
  import { getNativeAssetFromWrapped, getWrappedNativeAssetFromUnwrapped } from '../../services/utils';
25
- import { aprToApy, calcLeverageLiqPrice, getAssetsTotal, isLeveragedPos, } from '../../moneymarket';
25
+ import { aprToApy, calcLeverageLiqPrice, getAssetsTotal, getExposure, isLeveragedPos, } from '../../moneymarket';
26
26
  import { calculateNetApy } from '../../staking';
27
27
  import { borrowOperations } from '../../constants';
28
28
  import { LeverageType, } from '../../types/common';
@@ -119,6 +119,7 @@ export const aaveAnyGetAggregatedPositionData = (_a) => {
119
119
  payload.netApy = netApy;
120
120
  payload.incentiveUsd = incentiveUsd;
121
121
  payload.totalInterestUsd = totalInterestUsd;
122
+ payload.exposure = getExposure(payload.borrowedUsd, payload.suppliedUsd);
122
123
  return payload;
123
124
  };
124
125
  const getApyAfterValuesEstimationInner = (selectedMarket, actions, client, network) => __awaiter(void 0, void 0, void 0, function* () {
@@ -23,7 +23,7 @@ import { assetAmountInWei, getAssetInfo, getAssetInfoByAddress } from '@defisave
23
23
  import { CompoundVersions, } from '../../types';
24
24
  import { addToArrayIf, getEthAmountForDecimals, handleWbtcLegacy, wethToEth, } from '../../services/utils';
25
25
  import { BLOCKS_IN_A_YEAR, borrowOperations, SECONDS_PER_YEAR } from '../../constants';
26
- import { aprToApy, calcLeverageLiqPrice, calculateBorrowingAssetLimit, getAssetsTotal, isLeveragedPos, } from '../../moneymarket';
26
+ import { aprToApy, calcLeverageLiqPrice, calculateBorrowingAssetLimit, getAssetsTotal, getExposure, isLeveragedPos, } from '../../moneymarket';
27
27
  import { calculateNetApy, getStakingApy, STAKING_ASSETS } from '../../staking';
28
28
  import { IncentiveKind, LeverageType, NetworkNumber, } from '../../types/common';
29
29
  import { CompoundLoanInfoContractViem, CompV3ViewContractViem } from '../../contracts';
@@ -111,6 +111,7 @@ export const getCompoundV2AggregatedData = (_a) => {
111
111
  const assetPrice = assetsData[handleWbtcLegacy(leveragedAsset)].price;
112
112
  payload.liquidationPrice = calcLeverageLiqPrice(leveragedType, assetPrice, payload.borrowedUsd, payload.liquidationLimitUsd);
113
113
  }
114
+ payload.exposure = getExposure(payload.borrowedUsd, payload.suppliedUsd);
114
115
  return payload;
115
116
  };
116
117
  export const getCompoundV3AggregatedData = (_a) => {
@@ -159,6 +160,7 @@ export const getCompoundV3AggregatedData = (_a) => {
159
160
  }
160
161
  payload.minCollRatio = new Dec(payload.suppliedCollateralUsd).div(payload.borrowLimitUsd).mul(100).toString();
161
162
  payload.collLiquidationRatio = new Dec(payload.suppliedCollateralUsd).div(payload.liquidationLimitUsd).mul(100).toString();
163
+ payload.exposure = getExposure(payload.borrowedUsd, payload.suppliedUsd);
162
164
  return payload;
163
165
  };
164
166
  export const getApyAfterValuesEstimationCompoundV2 = (actions, provider) => __awaiter(void 0, void 0, void 0, function* () {
@@ -10,7 +10,7 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import Dec from 'decimal.js';
13
- import { calcLeverageLiqPrice, getAssetsTotal, isLeveragedPos } from '../../moneymarket';
13
+ import { calcLeverageLiqPrice, getAssetsTotal, getExposure, isLeveragedPos, } from '../../moneymarket';
14
14
  import { mapRange } from '../../services/utils';
15
15
  export const getCrvUsdAggregatedData = (_a) => {
16
16
  var _b;
@@ -39,5 +39,6 @@ export const getCrvUsdAggregatedData = (_a) => {
39
39
  payload.leveragedAsset = leveragedAsset;
40
40
  payload.liquidationPrice = calcLeverageLiqPrice(leveragedType, usedAssets[selectedMarket.collAsset].price, payload.borrowedUsd, payload.borrowLimitUsd);
41
41
  }
42
+ payload.exposure = getExposure(payload.borrowedUsd, payload.suppliedUsd);
42
43
  return payload;
43
44
  };
@@ -21,7 +21,7 @@ var __rest = (this && this.__rest) || function (s, e) {
21
21
  import Dec from 'decimal.js';
22
22
  import { assetAmountInWei } from '@defisaver/tokens';
23
23
  import { LeverageType, } from '../../types/common';
24
- import { calcLeverageLiqPrice, getAssetsTotal, STABLE_ASSETS, } from '../../moneymarket';
24
+ import { calcLeverageLiqPrice, getAssetsTotal, getExposure, STABLE_ASSETS, } from '../../moneymarket';
25
25
  import { calculateNetApy } from '../../staking';
26
26
  import { EulerV2ViewContractViem } from '../../contracts';
27
27
  import { borrowOperations } from '../../constants';
@@ -125,6 +125,7 @@ export const getEulerV2AggregatedData = (_a) => {
125
125
  }
126
126
  payload.minCollRatio = new Dec(payload.suppliedCollateralUsd).div(payload.borrowLimitUsd).mul(100).toString();
127
127
  payload.collLiquidationRatio = new Dec(payload.suppliedCollateralUsd).div(payload.liquidationLimitUsd).mul(100).toString();
128
+ payload.exposure = getExposure(payload.borrowedUsd, payload.suppliedUsd);
128
129
  return payload;
129
130
  };
130
131
  export const getEulerV2BorrowRate = (interestRate) => {