@defisaver/positions-sdk 2.1.54 → 2.1.56-dev-exposure

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 (184) hide show
  1. package/.mocharc.json +4 -4
  2. package/.nvmrc +1 -1
  3. package/README.md +64 -64
  4. package/cjs/aaveV3/index.d.ts +1 -0
  5. package/cjs/aaveV3/index.js +5 -2
  6. package/cjs/compoundV2/index.d.ts +1 -0
  7. package/cjs/compoundV2/index.js +1 -0
  8. package/cjs/compoundV3/index.d.ts +1 -0
  9. package/cjs/compoundV3/index.js +1 -0
  10. package/cjs/eulerV2/index.d.ts +1 -0
  11. package/cjs/eulerV2/index.js +1 -0
  12. package/cjs/fluid/index.d.ts +3 -0
  13. package/cjs/helpers/aaveHelpers/index.js +1 -0
  14. package/cjs/helpers/compoundHelpers/index.js +2 -0
  15. package/cjs/helpers/curveUsdHelpers/index.js +1 -0
  16. package/cjs/helpers/eulerHelpers/index.js +1 -0
  17. package/cjs/helpers/fluidHelpers/index.js +1 -0
  18. package/cjs/helpers/liquityV2Helpers/index.js +1 -0
  19. package/cjs/helpers/llamaLendHelpers/index.js +1 -0
  20. package/cjs/helpers/morphoBlueHelpers/index.js +67 -66
  21. package/cjs/helpers/sparkHelpers/index.js +1 -0
  22. package/cjs/liquity/index.js +2 -0
  23. package/cjs/maker/index.js +2 -0
  24. package/cjs/markets/morphoBlue/index.d.ts +4 -0
  25. package/cjs/markets/morphoBlue/index.js +36 -2
  26. package/cjs/moneymarket/moneymarketCommonService.d.ts +1 -0
  27. package/cjs/moneymarket/moneymarketCommonService.js +8 -1
  28. package/cjs/savings/morphoVaults/index.js +17 -17
  29. package/cjs/spark/index.d.ts +1 -0
  30. package/cjs/spark/index.js +1 -0
  31. package/cjs/types/aave.d.ts +1 -0
  32. package/cjs/types/common.d.ts +1 -0
  33. package/cjs/types/compound.d.ts +1 -0
  34. package/cjs/types/curveUsd.d.ts +2 -0
  35. package/cjs/types/euler.d.ts +1 -0
  36. package/cjs/types/fluid.d.ts +1 -0
  37. package/cjs/types/liquity.d.ts +1 -0
  38. package/cjs/types/liquityV2.d.ts +2 -0
  39. package/cjs/types/llamaLend.d.ts +2 -0
  40. package/cjs/types/maker.d.ts +1 -0
  41. package/cjs/types/morphoBlue.d.ts +4 -0
  42. package/cjs/types/morphoBlue.js +2 -0
  43. package/cjs/types/spark.d.ts +1 -0
  44. package/esm/aaveV3/index.d.ts +1 -0
  45. package/esm/aaveV3/index.js +5 -2
  46. package/esm/compoundV2/index.d.ts +1 -0
  47. package/esm/compoundV2/index.js +1 -0
  48. package/esm/compoundV3/index.d.ts +1 -0
  49. package/esm/compoundV3/index.js +1 -0
  50. package/esm/eulerV2/index.d.ts +1 -0
  51. package/esm/eulerV2/index.js +1 -0
  52. package/esm/fluid/index.d.ts +3 -0
  53. package/esm/helpers/aaveHelpers/index.js +2 -1
  54. package/esm/helpers/compoundHelpers/index.js +3 -1
  55. package/esm/helpers/curveUsdHelpers/index.js +2 -1
  56. package/esm/helpers/eulerHelpers/index.js +2 -1
  57. package/esm/helpers/fluidHelpers/index.js +2 -1
  58. package/esm/helpers/liquityV2Helpers/index.js +2 -1
  59. package/esm/helpers/llamaLendHelpers/index.js +2 -1
  60. package/esm/helpers/morphoBlueHelpers/index.js +68 -67
  61. package/esm/helpers/sparkHelpers/index.js +2 -1
  62. package/esm/liquity/index.js +2 -0
  63. package/esm/maker/index.js +2 -0
  64. package/esm/markets/morphoBlue/index.d.ts +4 -0
  65. package/esm/markets/morphoBlue/index.js +32 -0
  66. package/esm/moneymarket/moneymarketCommonService.d.ts +1 -0
  67. package/esm/moneymarket/moneymarketCommonService.js +6 -0
  68. package/esm/savings/morphoVaults/index.js +17 -17
  69. package/esm/spark/index.d.ts +1 -0
  70. package/esm/spark/index.js +1 -0
  71. package/esm/types/aave.d.ts +1 -0
  72. package/esm/types/common.d.ts +1 -0
  73. package/esm/types/compound.d.ts +1 -0
  74. package/esm/types/curveUsd.d.ts +2 -0
  75. package/esm/types/euler.d.ts +1 -0
  76. package/esm/types/fluid.d.ts +1 -0
  77. package/esm/types/liquity.d.ts +1 -0
  78. package/esm/types/liquityV2.d.ts +2 -0
  79. package/esm/types/llamaLend.d.ts +2 -0
  80. package/esm/types/maker.d.ts +1 -0
  81. package/esm/types/morphoBlue.d.ts +4 -0
  82. package/esm/types/morphoBlue.js +2 -0
  83. package/esm/types/spark.d.ts +1 -0
  84. package/package.json +48 -48
  85. package/src/aaveV2/index.ts +240 -240
  86. package/src/aaveV3/index.ts +638 -635
  87. package/src/aaveV3/merit.ts +97 -97
  88. package/src/aaveV3/merkl.ts +74 -74
  89. package/src/claiming/aaveV3.ts +154 -154
  90. package/src/claiming/compV3.ts +22 -22
  91. package/src/claiming/ethena.ts +61 -61
  92. package/src/claiming/index.ts +12 -12
  93. package/src/claiming/king.ts +66 -66
  94. package/src/claiming/morphoBlue.ts +118 -118
  95. package/src/claiming/spark.ts +225 -225
  96. package/src/compoundV2/index.ts +245 -244
  97. package/src/compoundV3/index.ts +275 -274
  98. package/src/config/contracts.ts +1320 -1320
  99. package/src/constants/index.ts +10 -10
  100. package/src/contracts.ts +171 -171
  101. package/src/curveUsd/index.ts +254 -254
  102. package/src/eulerV2/index.ts +325 -324
  103. package/src/exchange/index.ts +25 -25
  104. package/src/fluid/index.ts +1800 -1800
  105. package/src/helpers/aaveHelpers/index.ts +203 -202
  106. package/src/helpers/compoundHelpers/index.ts +278 -276
  107. package/src/helpers/curveUsdHelpers/index.ts +44 -40
  108. package/src/helpers/eulerHelpers/index.ts +230 -229
  109. package/src/helpers/fluidHelpers/index.ts +338 -335
  110. package/src/helpers/index.ts +10 -10
  111. package/src/helpers/liquityV2Helpers/index.ts +85 -82
  112. package/src/helpers/llamaLendHelpers/index.ts +56 -53
  113. package/src/helpers/makerHelpers/index.ts +52 -52
  114. package/src/helpers/morphoBlueHelpers/index.ts +406 -405
  115. package/src/helpers/sparkHelpers/index.ts +170 -169
  116. package/src/index.ts +49 -49
  117. package/src/liquity/index.ts +161 -159
  118. package/src/liquityV2/index.ts +703 -703
  119. package/src/llamaLend/index.ts +305 -305
  120. package/src/maker/index.ts +225 -223
  121. package/src/markets/aave/index.ts +118 -118
  122. package/src/markets/aave/marketAssets.ts +54 -54
  123. package/src/markets/compound/index.ts +243 -243
  124. package/src/markets/compound/marketsAssets.ts +97 -97
  125. package/src/markets/curveUsd/index.ts +69 -69
  126. package/src/markets/euler/index.ts +26 -26
  127. package/src/markets/fluid/index.ts +2900 -2900
  128. package/src/markets/index.ts +25 -25
  129. package/src/markets/liquityV2/index.ts +102 -102
  130. package/src/markets/llamaLend/contractAddresses.ts +141 -141
  131. package/src/markets/llamaLend/index.ts +235 -235
  132. package/src/markets/morphoBlue/index.ts +1020 -988
  133. package/src/markets/spark/index.ts +29 -29
  134. package/src/markets/spark/marketAssets.ts +12 -12
  135. package/src/moneymarket/moneymarketCommonService.ts +90 -84
  136. package/src/morphoBlue/index.ts +274 -274
  137. package/src/portfolio/index.ts +586 -586
  138. package/src/savings/index.ts +95 -95
  139. package/src/savings/makerDsr/index.ts +53 -53
  140. package/src/savings/makerDsr/options.ts +9 -9
  141. package/src/savings/morphoVaults/index.ts +80 -80
  142. package/src/savings/morphoVaults/options.ts +193 -193
  143. package/src/savings/skyOptions/index.ts +95 -95
  144. package/src/savings/skyOptions/options.ts +10 -10
  145. package/src/savings/sparkSavingsVaults/index.ts +60 -60
  146. package/src/savings/sparkSavingsVaults/options.ts +35 -35
  147. package/src/savings/yearnV3Vaults/index.ts +61 -61
  148. package/src/savings/yearnV3Vaults/options.ts +55 -55
  149. package/src/savings/yearnVaults/index.ts +73 -73
  150. package/src/savings/yearnVaults/options.ts +32 -32
  151. package/src/services/priceService.ts +278 -278
  152. package/src/services/utils.ts +115 -115
  153. package/src/services/viem.ts +57 -57
  154. package/src/setup.ts +8 -8
  155. package/src/spark/index.ts +460 -459
  156. package/src/staking/eligibility.ts +53 -53
  157. package/src/staking/index.ts +1 -1
  158. package/src/staking/staking.ts +192 -192
  159. package/src/types/aave.ts +200 -199
  160. package/src/types/claiming.ts +114 -114
  161. package/src/types/common.ts +116 -115
  162. package/src/types/compound.ts +146 -145
  163. package/src/types/curveUsd.ts +125 -123
  164. package/src/types/euler.ts +177 -176
  165. package/src/types/fluid.ts +486 -485
  166. package/src/types/index.ts +15 -15
  167. package/src/types/liquity.ts +31 -30
  168. package/src/types/liquityV2.ts +130 -128
  169. package/src/types/llamaLend.ts +163 -161
  170. package/src/types/maker.ts +64 -63
  171. package/src/types/merit.ts +1 -1
  172. package/src/types/merkl.ts +70 -70
  173. package/src/types/morphoBlue.ts +206 -202
  174. package/src/types/portfolio.ts +60 -60
  175. package/src/types/savings/index.ts +23 -23
  176. package/src/types/savings/makerDsr.ts +13 -13
  177. package/src/types/savings/morphoVaults.ts +32 -32
  178. package/src/types/savings/sky.ts +14 -14
  179. package/src/types/savings/sparkSavingsVaults.ts +15 -15
  180. package/src/types/savings/yearnV3Vaults.ts +17 -17
  181. package/src/types/savings/yearnVaults.ts +14 -14
  182. package/src/types/spark.ts +136 -135
  183. package/src/umbrella/index.ts +69 -69
  184. package/src/umbrella/umbrellaUtils.ts +29 -29
@@ -54,23 +54,23 @@ const morphoVaultsOptions = __importStar(require("./options"));
54
54
  exports.morphoVaultsOptions = morphoVaultsOptions;
55
55
  const viem_1 = require("../../services/viem");
56
56
  const contracts_1 = require("../../contracts");
57
- const vaultDataQuery = (vaultAddress) => `query vaultByAddress {
58
- vaultByAddress(chainId: 1, address: "${vaultAddress}") {
59
- id,
60
- dailyApy,
61
- dailyApys {
62
- apy, netApy
63
- },
64
- monthlyApys {
65
- apy, netApy
66
- },
67
- liquidity {
68
- underlying, usd,
69
- },
70
- asset {
71
- priceUsd
72
- }
73
- }
57
+ const vaultDataQuery = (vaultAddress) => `query vaultByAddress {
58
+ vaultByAddress(chainId: 1, address: "${vaultAddress}") {
59
+ id,
60
+ dailyApy,
61
+ dailyApys {
62
+ apy, netApy
63
+ },
64
+ monthlyApys {
65
+ apy, netApy
66
+ },
67
+ liquidity {
68
+ underlying, usd,
69
+ },
70
+ asset {
71
+ priceUsd
72
+ }
73
+ }
74
74
  }`;
75
75
  const MORPHO_BLUE_API = 'https://blue-api.morpho.org/graphql';
76
76
  const _getMorphoVaultData = (provider, network, morphoVault, accounts) => __awaiter(void 0, void 0, void 0, function* () {
@@ -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
  }
@@ -23,6 +23,8 @@ export declare enum MorphoBlueVersions {
23
23
  MorphoBlueUSRUSDC_915 = "morphoblueusrusdc_915",// USR/USDC
24
24
  MorphoBlueSyrupUSDCUSDC_915 = "morphobluesyrupusdcusdc_915",// syrupUSDC/USDC
25
25
  MorphoBluesUSDSUSDT_965 = "morphobluesusdsusdt_965",// sUSDS/USDT
26
+ MorphoBlueSUSDeUSDtb_915 = "morphobluesusdeusdtb_915",// sUSDe/USDTb
27
+ MorphoBlueUSDeUSDtb_915 = "morphoblueusdeusdtb_915",// USDe/USDTb
26
28
  MorphoBlueEzEthEth_860 = "morphoblueezetheth_860",
27
29
  MorphoBlueEzEthEth_945 = "morphoblueezetheth_945",
28
30
  MorphoBlueWeEthEth_945 = "morphoblueweetheth_945",
@@ -127,6 +129,7 @@ export interface MorphoBlueAggregatedPositionData {
127
129
  liquidationPrice?: string;
128
130
  minCollRatio?: string;
129
131
  collLiquidationRatio?: string;
132
+ exposure: string;
130
133
  }
131
134
  export interface MorphoBluePositionData {
132
135
  usedAssets: MMUsedAssets;
@@ -148,6 +151,7 @@ export interface MorphoBluePositionData {
148
151
  liquidationPrice?: string;
149
152
  supplyShares: string;
150
153
  borrowShares: string;
154
+ exposure: string;
151
155
  }
152
156
  export interface MorphoBlueVault {
153
157
  address: string;
@@ -27,6 +27,8 @@ var MorphoBlueVersions;
27
27
  MorphoBlueVersions["MorphoBlueUSRUSDC_915"] = "morphoblueusrusdc_915";
28
28
  MorphoBlueVersions["MorphoBlueSyrupUSDCUSDC_915"] = "morphobluesyrupusdcusdc_915";
29
29
  MorphoBlueVersions["MorphoBluesUSDSUSDT_965"] = "morphobluesusdsusdt_965";
30
+ MorphoBlueVersions["MorphoBlueSUSDeUSDtb_915"] = "morphobluesusdeusdtb_915";
31
+ MorphoBlueVersions["MorphoBlueUSDeUSDtb_915"] = "morphoblueusdeusdtb_915";
30
32
  // ezETH/ETH
31
33
  MorphoBlueVersions["MorphoBlueEzEthEth_860"] = "morphoblueezetheth_860";
32
34
  MorphoBlueVersions["MorphoBlueEzEthEth_945"] = "morphoblueezetheth_945";
@@ -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 = {
@@ -358,7 +359,7 @@ export const _getAaveV3AccountBalances = (provider, network, block, addressMappi
358
359
  });
359
360
  export const getAaveV3AccountBalances = (provider, network, block, addressMapping, address) => __awaiter(void 0, void 0, void 0, function* () { return _getAaveV3AccountBalances(getViemProvider(provider, network), network, block, addressMapping, address); });
360
361
  export const _getAaveV3AccountData = (provider_1, network_1, address_1, extractedState_1, ...args_1) => __awaiter(void 0, [provider_1, network_1, address_1, extractedState_1, ...args_1], void 0, function* (provider, network, address, extractedState, blockNumber = 'latest') {
361
- const { selectedMarket: market, assetsData, } = extractedState;
362
+ const { selectedMarket: market, assetsData, eModeCategoriesData, } = extractedState;
362
363
  let payload = Object.assign(Object.assign({}, EMPTY_AAVE_DATA), { lastUpdated: Date.now() });
363
364
  if (!address) {
364
365
  return payload;
@@ -384,7 +385,9 @@ export const _getAaveV3AccountData = (provider_1, network_1, address_1, extracte
384
385
  const supplied = assetAmountInEth(tokenInfo.balance.toString(), asset);
385
386
  const borrowedStable = assetAmountInEth(tokenInfo.borrowsStable.toString(), asset);
386
387
  const borrowedVariable = assetAmountInEth(tokenInfo.borrowsVariable.toString(), asset);
387
- const enabledAsCollateral = assetsData[asset].usageAsCollateralEnabled ? tokenInfo.enabledAsCollateral : false;
388
+ const eModeCategoryData = eModeCategoriesData[+eModeCategory.toString()];
389
+ const usageAsCollateralIsEnabledInEmode = eModeCategoryData === null || eModeCategoryData === void 0 ? void 0 : eModeCategoryData.collateralAssets.includes(asset);
390
+ const enabledAsCollateral = (assetsData[asset].usageAsCollateralEnabled || usageAsCollateralIsEnabledInEmode) ? tokenInfo.enabledAsCollateral : false;
388
391
  let interestMode;
389
392
  if (borrowedVariable === '0' && borrowedStable !== '0') {
390
393
  interestMode = '1';
@@ -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) => {
@@ -1,7 +1,7 @@
1
1
  import Dec from 'decimal.js';
2
2
  import { assetAmountInEth } from '@defisaver/tokens';
3
3
  import { FluidVaultType, } from '../../types';
4
- import { calcLeverageLiqPrice, getAssetsTotal, isLeveragedPos } from '../../moneymarket';
4
+ import { calcLeverageLiqPrice, getAssetsTotal, getExposure, isLeveragedPos, } from '../../moneymarket';
5
5
  import { calculateNetApy } from '../../staking';
6
6
  import { LeverageType } from '../../types/common';
7
7
  import { getEthAmountForDecimals } from '../../services/utils';
@@ -69,6 +69,7 @@ export const getFluidAggregatedData = ({ usedAssets, assetsData, marketData, },
69
69
  }
70
70
  payload.minCollRatio = new Dec(payload.suppliedUsd).div(payload.borrowLimitUsd).mul(100).toString();
71
71
  payload.collLiquidationRatio = new Dec(payload.suppliedUsd).div(payload.liquidationLimitUsd).mul(100).toString();
72
+ payload.exposure = getExposure(payload.borrowedUsd, payload.suppliedUsd);
72
73
  return payload;
73
74
  };
74
75
  export const parseDexSupplyData = (dexSupplyData, collAsset0, collAsset1) => {
@@ -1,5 +1,5 @@
1
1
  import Dec from 'decimal.js';
2
- import { calcLeverageLiqPrice, getAssetsTotal, isLeveragedPos } from '../../moneymarket';
2
+ import { calcLeverageLiqPrice, getAssetsTotal, getExposure, isLeveragedPos, } from '../../moneymarket';
3
3
  import { calculateInterestEarned } from '../../staking';
4
4
  export const calculateNetApyLiquityV2 = (usedAssets, assetsData, interestRate) => {
5
5
  const sumValues = Object.values(usedAssets).reduce((_acc, usedAsset) => {
@@ -52,5 +52,6 @@ export const getLiquityV2AggregatedPositionData = ({ usedAssets, assetsData, min
52
52
  const assetPrice = assetsData[leveragedAsset].price;
53
53
  payload.liquidationPrice = calcLeverageLiqPrice(leveragedType, assetPrice, payload.borrowedUsd, payload.borrowLimitUsd);
54
54
  }
55
+ payload.exposure = getExposure(payload.borrowedUsd, payload.suppliedUsd);
55
56
  return payload;
56
57
  };
@@ -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
  import { calculateNetApy } from '../../staking';
16
16
  export const getLlamaLendAggregatedData = (_a) => {
@@ -47,5 +47,6 @@ export const getLlamaLendAggregatedData = (_a) => {
47
47
  payload.leveragedAsset = leveragedAsset;
48
48
  payload.liquidationPrice = calcLeverageLiqPrice(leveragedType, usedAssets[collAsset].price, payload.borrowedUsd, payload.borrowLimitUsd);
49
49
  }
50
+ payload.exposure = getExposure(payload.borrowedUsd, payload.suppliedUsd);
50
51
  return payload;
51
52
  };
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import Dec from 'decimal.js';
11
11
  import { assetAmountInWei, getAssetInfo, getAssetInfoByAddress } from '@defisaver/tokens';
12
- import { aprToApy, calcLeverageLiqPrice, getAssetsTotal, isLeveragedPos, } from '../../moneymarket';
12
+ import { aprToApy, calcLeverageLiqPrice, getAssetsTotal, getExposure, isLeveragedPos, } from '../../moneymarket';
13
13
  import { calculateNetApy } from '../../staking';
14
14
  import { LeverageType, NetworkNumber, } from '../../types/common';
15
15
  import { borrowOperations, SECONDS_PER_YEAR, WAD } from '../../constants';
@@ -64,6 +64,7 @@ export const getMorphoBlueAggregatedPositionData = ({ usedAssets, assetsData, ma
64
64
  }
65
65
  payload.minCollRatio = new Dec(payload.suppliedCollateralUsd).div(payload.borrowLimitUsd).mul(100).toString();
66
66
  payload.collLiquidationRatio = new Dec(payload.suppliedCollateralUsd).div(payload.liquidationLimitUsd).mul(100).toString();
67
+ payload.exposure = getExposure(payload.borrowedUsd, payload.suppliedUsd);
67
68
  return payload;
68
69
  };
69
70
  const compound = (ratePerSeconds) => {
@@ -128,73 +129,73 @@ export const getApyAfterValuesEstimation = (selectedMarket, actions, provider, n
128
129
  return { borrowRate, supplyRate };
129
130
  });
130
131
  const API_URL = 'https://blue-api.morpho.org/graphql';
131
- const MARKET_QUERY = `
132
- query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
133
- marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
134
- reallocatableLiquidityAssets
135
- targetBorrowUtilization
136
- loanAsset {
137
- address
138
- decimals
139
- priceUsd
140
- }
141
- state {
142
- liquidityAssets
143
- borrowAssets
144
- supplyAssets
145
- }
146
- publicAllocatorSharedLiquidity {
147
- assets
148
- vault {
149
- address
150
- name
151
- }
152
- allocationMarket {
153
- uniqueKey
154
- loanAsset {
155
- address
156
- }
157
- collateralAsset {
158
- address
159
- }
160
- irmAddress
161
- oracle {
162
- address
163
- }
164
- lltv
165
- }
166
- }
167
- loanAsset {
168
- address
169
- }
170
- collateralAsset {
171
- address
172
- }
173
- oracle {
174
- address
175
- }
176
- irmAddress
177
- lltv
178
- }
179
- }
132
+ const MARKET_QUERY = `
133
+ query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
134
+ marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
135
+ reallocatableLiquidityAssets
136
+ targetBorrowUtilization
137
+ loanAsset {
138
+ address
139
+ decimals
140
+ priceUsd
141
+ }
142
+ state {
143
+ liquidityAssets
144
+ borrowAssets
145
+ supplyAssets
146
+ }
147
+ publicAllocatorSharedLiquidity {
148
+ assets
149
+ vault {
150
+ address
151
+ name
152
+ }
153
+ allocationMarket {
154
+ uniqueKey
155
+ loanAsset {
156
+ address
157
+ }
158
+ collateralAsset {
159
+ address
160
+ }
161
+ irmAddress
162
+ oracle {
163
+ address
164
+ }
165
+ lltv
166
+ }
167
+ }
168
+ loanAsset {
169
+ address
170
+ }
171
+ collateralAsset {
172
+ address
173
+ }
174
+ oracle {
175
+ address
176
+ }
177
+ irmAddress
178
+ lltv
179
+ }
180
+ }
180
181
  `;
181
- const REWARDS_QUERY = `
182
- query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
183
- marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
184
- uniqueKey
185
- state {
186
- rewards {
187
- amountPerSuppliedToken
188
- supplyApr
189
- amountPerBorrowedToken
190
- borrowApr
191
- asset {
192
- address
193
- }
194
- }
195
- }
196
- }
197
- }
182
+ const REWARDS_QUERY = `
183
+ query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
184
+ marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
185
+ uniqueKey
186
+ state {
187
+ rewards {
188
+ amountPerSuppliedToken
189
+ supplyApr
190
+ amountPerBorrowedToken
191
+ borrowApr
192
+ asset {
193
+ address
194
+ }
195
+ }
196
+ }
197
+ }
198
+ }
198
199
  `;
199
200
  /**
200
201
  * Get reallocatable liquidity to a given market and target borrow utilization
@@ -20,7 +20,7 @@ var __rest = (this && this.__rest) || function (s, e) {
20
20
  };
21
21
  import Dec from 'decimal.js';
22
22
  import { assetAmountInWei, getAssetInfo, getAssetInfoByAddress } from '@defisaver/tokens';
23
- import { aprToApy, calcLeverageLiqPrice, getAssetsTotal, isLeveragedPos, } from '../../moneymarket';
23
+ import { aprToApy, calcLeverageLiqPrice, getAssetsTotal, getExposure, isLeveragedPos, } from '../../moneymarket';
24
24
  import { calculateNetApy } from '../../staking';
25
25
  import { ethToWeth, getNativeAssetFromWrapped, wethToEth } from '../../services/utils';
26
26
  import { SparkViewContractViem } from '../../contracts';
@@ -102,6 +102,7 @@ export const sparkGetAggregatedPositionData = (_a) => {
102
102
  payload.collLiquidationRatio = new Dec(payload.suppliedCollateralUsd).div(payload.liquidationLimitUsd).mul(100).toString();
103
103
  payload.healthRatio = new Dec(payload.liquidationLimitUsd).div(payload.borrowedUsd).toDP(4).toString();
104
104
  payload.minHealthRatio = new Dec(payload.liquidationLimitUsd).div(payload.borrowLimitUsd).toDP(4).toString();
105
+ payload.exposure = getExposure(payload.borrowedUsd, payload.suppliedUsd);
105
106
  return payload;
106
107
  };
107
108
  export const getApyAfterValuesEstimation = (selectedMarket, actions, provider) => __awaiter(void 0, void 0, void 0, function* () {
@@ -15,6 +15,7 @@ import { LIQUITY_TROVE_STATUS_ENUM } from '../types';
15
15
  import { ZERO_ADDRESS } from '../constants';
16
16
  import { getViemProvider, setViemBlockNumber } from '../services/viem';
17
17
  import { getEthAmountForDecimals } from '../services/utils';
18
+ import { getExposure } from '../moneymarket';
18
19
  export const LIQUITY_NORMAL_MODE_RATIO = 110; // MCR
19
20
  export const LIQUITY_RECOVERY_MODE_RATIO = 150; // CCR
20
21
  export const _getLiquityAccountBalances = (provider, network, block, addressMapping, address) => __awaiter(void 0, void 0, void 0, function* () {
@@ -82,6 +83,7 @@ export const _getLiquityTroveInfo = (provider, network, address) => __awaiter(vo
82
83
  minCollateralRatio: recoveryMode ? LIQUITY_RECOVERY_MODE_RATIO : LIQUITY_NORMAL_MODE_RATIO,
83
84
  priceForRecovery: new Dec(recoveryMode ? LIQUITY_RECOVERY_MODE_RATIO : LIQUITY_NORMAL_MODE_RATIO).mul(totalLUSD).div(totalETH).div(100)
84
85
  .toString(),
86
+ exposure: getExposure(assetAmountInEth(troveInfo[2].toString()), new Dec(assetAmountInEth(troveInfo[1].toString())).mul(assetPrice).toString()),
85
87
  };
86
88
  return payload;
87
89
  });