@defisaver/positions-sdk 2.1.55 → 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 +1 -0
  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 +1 -0
  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 -637
  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
package/.mocharc.json CHANGED
@@ -1,4 +1,4 @@
1
- {
2
- "require": "ts-node/register",
3
- "extension": ["ts"]
4
- }
1
+ {
2
+ "require": "ts-node/register",
3
+ "extension": ["ts"]
4
+ }
package/.nvmrc CHANGED
@@ -1 +1 @@
1
- v20.17.0
1
+ v20.17.0
package/README.md CHANGED
@@ -1,64 +1,64 @@
1
- # DeFi Saver Positions SDK
2
-
3
- Supported protocols:
4
- - [Maker](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/maker)
5
- - [Spark](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/spark)
6
- - [CrvUSD](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/curveUsd)
7
- - [Aave V2](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/aaveV2)
8
- - [Aave V3](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/aaveV3)
9
- - [Compound V2](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/compoundV2)
10
- - [Compound V3](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/compoundV3)
11
- - [Liquity](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/liquity)
12
-
13
- ## Setup
14
- Supported Node version is v10.
15
-
16
- - run `npm install` (first time)
17
- - run `npm run build`
18
-
19
- `build` command will generate contracts and build ejs and esm folders
20
-
21
- ## How to use
22
- [All available imports](https://github.com/defisaver/defisaver-positions-sdk/blob/main/src/index.ts)
23
-
24
- This is a Compound V3 example, and every other protocol is similar
25
- ```js
26
- import { compoundV3 } from '@defisaver/positions-sdk';
27
-
28
-
29
- // every protocol has market data and user data getters
30
- const {
31
- getCompoundV3MarketsData,
32
- getCompoundV3AccountData,
33
- } = compoundV3;
34
-
35
- const provider = 'Your RPC provider';
36
-
37
- const user = '0x123...';
38
-
39
- const { assetsData } = await getCompoundV3MarketsData(
40
- provider, // rpc for the network you are using (note: can be tenderly or any other testnet rpc)
41
- 1, // network
42
- selectedMarket, // market object like in /src/markets/compound/index.ts
43
- provider, // this must be mainnet rpc - used for getting prices onchain and calculating apys
44
- );
45
-
46
- const userData = await getCompoundV3AccountData(
47
- provider,
48
- 1, // network
49
- userAddress, // EOA or DSProxy
50
- '', // proxy address of the user, or just empty string if checking for EOA
51
- {
52
- selectedMarket, // market object as in /src/markets/compound/index.ts
53
- assetsData,
54
- }
55
- );
56
- ```
57
-
58
- More examples found [here](https://github.com/defisaver/defisaver-positions-sdk/tree/main/tests)
59
-
60
- ## Testing
61
-
62
- `npm run test` - Run all tests
63
-
64
- `npm run test-single --name=your_test_name` - Run single test for specified name e.g. for MyTest.js test name is MyTest
1
+ # DeFi Saver Positions SDK
2
+
3
+ Supported protocols:
4
+ - [Maker](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/maker)
5
+ - [Spark](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/spark)
6
+ - [CrvUSD](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/curveUsd)
7
+ - [Aave V2](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/aaveV2)
8
+ - [Aave V3](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/aaveV3)
9
+ - [Compound V2](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/compoundV2)
10
+ - [Compound V3](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/compoundV3)
11
+ - [Liquity](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/liquity)
12
+
13
+ ## Setup
14
+ Supported Node version is v10.
15
+
16
+ - run `npm install` (first time)
17
+ - run `npm run build`
18
+
19
+ `build` command will generate contracts and build ejs and esm folders
20
+
21
+ ## How to use
22
+ [All available imports](https://github.com/defisaver/defisaver-positions-sdk/blob/main/src/index.ts)
23
+
24
+ This is a Compound V3 example, and every other protocol is similar
25
+ ```js
26
+ import { compoundV3 } from '@defisaver/positions-sdk';
27
+
28
+
29
+ // every protocol has market data and user data getters
30
+ const {
31
+ getCompoundV3MarketsData,
32
+ getCompoundV3AccountData,
33
+ } = compoundV3;
34
+
35
+ const provider = 'Your RPC provider';
36
+
37
+ const user = '0x123...';
38
+
39
+ const { assetsData } = await getCompoundV3MarketsData(
40
+ provider, // rpc for the network you are using (note: can be tenderly or any other testnet rpc)
41
+ 1, // network
42
+ selectedMarket, // market object like in /src/markets/compound/index.ts
43
+ provider, // this must be mainnet rpc - used for getting prices onchain and calculating apys
44
+ );
45
+
46
+ const userData = await getCompoundV3AccountData(
47
+ provider,
48
+ 1, // network
49
+ userAddress, // EOA or DSProxy
50
+ '', // proxy address of the user, or just empty string if checking for EOA
51
+ {
52
+ selectedMarket, // market object as in /src/markets/compound/index.ts
53
+ assetsData,
54
+ }
55
+ );
56
+ ```
57
+
58
+ More examples found [here](https://github.com/defisaver/defisaver-positions-sdk/tree/main/tests)
59
+
60
+ ## Testing
61
+
62
+ `npm run test` - Run all tests
63
+
64
+ `npm run test-single --name=your_test_name` - Run single test for specified name e.g. for MyTest.js test name is MyTest
@@ -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;
@@ -138,73 +139,73 @@ const getApyAfterValuesEstimation = (selectedMarket, actions, provider, network)
138
139
  });
139
140
  exports.getApyAfterValuesEstimation = getApyAfterValuesEstimation;
140
141
  const API_URL = 'https://blue-api.morpho.org/graphql';
141
- const MARKET_QUERY = `
142
- query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
143
- marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
144
- reallocatableLiquidityAssets
145
- targetBorrowUtilization
146
- loanAsset {
147
- address
148
- decimals
149
- priceUsd
150
- }
151
- state {
152
- liquidityAssets
153
- borrowAssets
154
- supplyAssets
155
- }
156
- publicAllocatorSharedLiquidity {
157
- assets
158
- vault {
159
- address
160
- name
161
- }
162
- allocationMarket {
163
- uniqueKey
164
- loanAsset {
165
- address
166
- }
167
- collateralAsset {
168
- address
169
- }
170
- irmAddress
171
- oracle {
172
- address
173
- }
174
- lltv
175
- }
176
- }
177
- loanAsset {
178
- address
179
- }
180
- collateralAsset {
181
- address
182
- }
183
- oracle {
184
- address
185
- }
186
- irmAddress
187
- lltv
188
- }
189
- }
142
+ const MARKET_QUERY = `
143
+ query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
144
+ marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
145
+ reallocatableLiquidityAssets
146
+ targetBorrowUtilization
147
+ loanAsset {
148
+ address
149
+ decimals
150
+ priceUsd
151
+ }
152
+ state {
153
+ liquidityAssets
154
+ borrowAssets
155
+ supplyAssets
156
+ }
157
+ publicAllocatorSharedLiquidity {
158
+ assets
159
+ vault {
160
+ address
161
+ name
162
+ }
163
+ allocationMarket {
164
+ uniqueKey
165
+ loanAsset {
166
+ address
167
+ }
168
+ collateralAsset {
169
+ address
170
+ }
171
+ irmAddress
172
+ oracle {
173
+ address
174
+ }
175
+ lltv
176
+ }
177
+ }
178
+ loanAsset {
179
+ address
180
+ }
181
+ collateralAsset {
182
+ address
183
+ }
184
+ oracle {
185
+ address
186
+ }
187
+ irmAddress
188
+ lltv
189
+ }
190
+ }
190
191
  `;
191
- const REWARDS_QUERY = `
192
- query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
193
- marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
194
- uniqueKey
195
- state {
196
- rewards {
197
- amountPerSuppliedToken
198
- supplyApr
199
- amountPerBorrowedToken
200
- borrowApr
201
- asset {
202
- address
203
- }
204
- }
205
- }
206
- }
207
- }
192
+ const REWARDS_QUERY = `
193
+ query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
194
+ marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
195
+ uniqueKey
196
+ state {
197
+ rewards {
198
+ amountPerSuppliedToken
199
+ supplyApr
200
+ amountPerBorrowedToken
201
+ borrowApr
202
+ asset {
203
+ address
204
+ }
205
+ }
206
+ }
207
+ }
208
+ }
208
209
  `;
209
210
  /**
210
211
  * Get reallocatable liquidity to a given market and target borrow utilization
@@ -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;
@@ -17,6 +17,8 @@ export declare const MORPHO_BLUE_TBTC_USDC: (networkId?: NetworkNumber) => Morph
17
17
  export declare const MORPHO_BLUE_CBBTC_ETH_915: (networkId?: NetworkNumber) => MorphoBlueMarketData;
18
18
  export declare const MORPHO_BLUE_CBBTC_USDC_860: (networkId?: NetworkNumber) => MorphoBlueMarketData;
19
19
  export declare const MORPHO_BLUE_SUSDE_USDC_915: (networkId?: NetworkNumber) => MorphoBlueMarketData;
20
+ export declare const MORPHO_BLUE_SUSDE_USDTB_915: (networkId?: NetworkNumber) => MorphoBlueMarketData;
21
+ export declare const MORPHO_BLUE_USDE_USDTB_915: (networkId?: NetworkNumber) => MorphoBlueMarketData;
20
22
  export declare const MORPHO_BLUE_EZETH_ETH_860: (networkId?: NetworkNumber) => MorphoBlueMarketData;
21
23
  export declare const MORPHO_BLUE_EZETH_ETH_945: (networkId?: NetworkNumber) => MorphoBlueMarketData;
22
24
  export declare const MORPHO_BLUE_WEETH_ETH_945: (networkId?: NetworkNumber) => MorphoBlueMarketData;
@@ -86,6 +88,8 @@ export declare const MorphoBlueMarkets: (networkId: NetworkNumber) => {
86
88
  readonly morphobluelbtccbbtc_945: MorphoBlueMarketData;
87
89
  readonly morphobluesusdsusdt_965: MorphoBlueMarketData;
88
90
  readonly morphobluemorphousdc_625: MorphoBlueMarketData;
91
+ readonly morphobluesusdeusdtb_915: MorphoBlueMarketData;
92
+ readonly morphoblueusdeusdtb_915: MorphoBlueMarketData;
89
93
  readonly morphobluewstetheth_945: MorphoBlueMarketData;
90
94
  readonly morphobluewstetheth_945_exchange_rate: MorphoBlueMarketData;
91
95
  readonly morphobluewstetheth_965_exchange_rate: MorphoBlueMarketData;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MORPHO_BLUE_LBTC_CBBTC_945_BASE = exports.MORPHO_BLUE_LBTC_WBTC_945 = exports.MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE = exports.MORPHO_BLUE_CBBTC_USDC_860_BASE = exports.MORPHO_BLUE_CBBTC_ETH_915_BASE = exports.MORPHO_BLUE_RETH_ETH_945_BASE = exports.MORPHO_BLUE_RETH_USDC_860_BASE = exports.MORPHO_BLUE_ETH_USDC_860_BASE = exports.MORPHO_BLUE_CBETH_ETH_945_BASE = exports.MORPHO_BLUE_CBETH_ETH_965_BASE = exports.MORPHO_BLUE_WSTETH_USDC_860_BASE = exports.MORPHO_BLUE_WSTETH_USDC_860_BASE_13c42741 = exports.MORPHO_BLUE_WSTETH_ETH_965_BASE = exports.MORPHO_BLUE_WSTETH_ETH_945_BASE = exports.MORPHO_BLUE_CBETH_USDC_860_BASE_1c21c59d = exports.MORPHO_BLUE_CBETH_USDC_860_BASE = exports.MORPHO_BLUE_MORPHO_USDC_625 = exports.MORPHO_BLUE_SUSDS_USDT_965 = exports.MORPHO_BLUE_LBTC_CBBTC_945 = exports.MORPHO_BLUE_LBTC_USDC_860 = exports.MORPHO_BLUE_SYRUPUSDC_USDC_915 = exports.MORPHO_BLUE_USR_USDC_915 = exports.MORPHO_BLUE_USDE_DAI_915 = exports.MORPHO_BLUE_USDE_DAI_860 = exports.MORPHO_BLUE_SUSDE_DAI_945 = exports.MORPHO_BLUE_SUSDE_DAI_915 = exports.MORPHO_BLUE_SUSDE_DAI_860 = exports.MORPHO_BLUE_WSTETH_ETH_965_EXCHANGE_RATE = exports.MORPHO_BLUE_WSTETH_ETH_945_EXCHANGE_RATE = exports.MORPHO_BLUE_WSTETH_ETH_945 = exports.MORPHO_BLUE_WEETH_ETH_945 = exports.MORPHO_BLUE_EZETH_ETH_945 = exports.MORPHO_BLUE_EZETH_ETH_860 = exports.MORPHO_BLUE_SUSDE_USDC_915 = exports.MORPHO_BLUE_CBBTC_USDC_860 = exports.MORPHO_BLUE_CBBTC_ETH_915 = exports.MORPHO_BLUE_TBTC_USDC = exports.MORPHO_BLUE_MKR_USDC = exports.MORPHO_BLUE_SUSDE_USDT = exports.MORPHO_BLUE_USDE_USDT = exports.MORPHO_BLUE_WSTETH_PYUSD = exports.MORPHO_BLUE_WSTETH_USDA_EXCHANGE_RATE = exports.MORPHO_BLUE_WSTETH_USDT = exports.MORPHO_BLUE_WBTC_ETH = exports.MORPHO_BLUE_WBTC_PYUSD = exports.MORPHO_BLUE_WBTC_USDT = exports.MORPHO_BLUE_ETH_USDC = exports.MORPHO_BLUE_WBTC_USDC = exports.MORPHO_BLUE_SDAI_USDC = exports.MORPHO_BLUE_WSTETH_USDC = void 0;
4
- exports.findMorphoBlueMarket = exports.MorphoBlueMarkets = exports.MORPHO_BLUE_SUSDS_USDC_945_ARB = exports.MORPHO_BLUE_ETH_USDC_860_ARB = exports.MORPHO_BLUE_WSTETH_USDC_860_ARB = exports.MorphoBlueWBTCUSDC_860_Arb = exports.MORPHO_BLUE_SYRUPUSDC_USDC_915_ARB = exports.MORPHO_BLUE_WETH_EURC_860_BASE = exports.MORPHO_BLUE_CBBTC_EURC_860_BASE = exports.MORPHO_BLUE_WSTETH_EURC_860_BASE = void 0;
3
+ exports.MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE = exports.MORPHO_BLUE_CBBTC_USDC_860_BASE = exports.MORPHO_BLUE_CBBTC_ETH_915_BASE = exports.MORPHO_BLUE_RETH_ETH_945_BASE = exports.MORPHO_BLUE_RETH_USDC_860_BASE = exports.MORPHO_BLUE_ETH_USDC_860_BASE = exports.MORPHO_BLUE_CBETH_ETH_945_BASE = exports.MORPHO_BLUE_CBETH_ETH_965_BASE = exports.MORPHO_BLUE_WSTETH_USDC_860_BASE = exports.MORPHO_BLUE_WSTETH_USDC_860_BASE_13c42741 = exports.MORPHO_BLUE_WSTETH_ETH_965_BASE = exports.MORPHO_BLUE_WSTETH_ETH_945_BASE = exports.MORPHO_BLUE_CBETH_USDC_860_BASE_1c21c59d = exports.MORPHO_BLUE_CBETH_USDC_860_BASE = exports.MORPHO_BLUE_MORPHO_USDC_625 = exports.MORPHO_BLUE_SUSDS_USDT_965 = exports.MORPHO_BLUE_LBTC_CBBTC_945 = exports.MORPHO_BLUE_LBTC_USDC_860 = exports.MORPHO_BLUE_SYRUPUSDC_USDC_915 = exports.MORPHO_BLUE_USR_USDC_915 = exports.MORPHO_BLUE_USDE_DAI_915 = exports.MORPHO_BLUE_USDE_DAI_860 = exports.MORPHO_BLUE_SUSDE_DAI_945 = exports.MORPHO_BLUE_SUSDE_DAI_915 = exports.MORPHO_BLUE_SUSDE_DAI_860 = exports.MORPHO_BLUE_WSTETH_ETH_965_EXCHANGE_RATE = exports.MORPHO_BLUE_WSTETH_ETH_945_EXCHANGE_RATE = exports.MORPHO_BLUE_WSTETH_ETH_945 = exports.MORPHO_BLUE_WEETH_ETH_945 = exports.MORPHO_BLUE_EZETH_ETH_945 = exports.MORPHO_BLUE_EZETH_ETH_860 = exports.MORPHO_BLUE_USDE_USDTB_915 = exports.MORPHO_BLUE_SUSDE_USDTB_915 = exports.MORPHO_BLUE_SUSDE_USDC_915 = exports.MORPHO_BLUE_CBBTC_USDC_860 = exports.MORPHO_BLUE_CBBTC_ETH_915 = exports.MORPHO_BLUE_TBTC_USDC = exports.MORPHO_BLUE_MKR_USDC = exports.MORPHO_BLUE_SUSDE_USDT = exports.MORPHO_BLUE_USDE_USDT = exports.MORPHO_BLUE_WSTETH_PYUSD = exports.MORPHO_BLUE_WSTETH_USDA_EXCHANGE_RATE = exports.MORPHO_BLUE_WSTETH_USDT = exports.MORPHO_BLUE_WBTC_ETH = exports.MORPHO_BLUE_WBTC_PYUSD = exports.MORPHO_BLUE_WBTC_USDT = exports.MORPHO_BLUE_ETH_USDC = exports.MORPHO_BLUE_WBTC_USDC = exports.MORPHO_BLUE_SDAI_USDC = exports.MORPHO_BLUE_WSTETH_USDC = void 0;
4
+ exports.findMorphoBlueMarket = exports.MorphoBlueMarkets = exports.MORPHO_BLUE_SUSDS_USDC_945_ARB = exports.MORPHO_BLUE_ETH_USDC_860_ARB = exports.MORPHO_BLUE_WSTETH_USDC_860_ARB = exports.MorphoBlueWBTCUSDC_860_Arb = exports.MORPHO_BLUE_SYRUPUSDC_USDC_915_ARB = exports.MORPHO_BLUE_WETH_EURC_860_BASE = exports.MORPHO_BLUE_CBBTC_EURC_860_BASE = exports.MORPHO_BLUE_WSTETH_EURC_860_BASE = exports.MORPHO_BLUE_LBTC_CBBTC_945_BASE = exports.MORPHO_BLUE_LBTC_WBTC_945 = void 0;
5
5
  const utils_1 = require("../../services/utils");
6
6
  const types_1 = require("../../types");
7
7
  const common_1 = require("../../types/common");
@@ -277,6 +277,38 @@ const MORPHO_BLUE_SUSDE_USDC_915 = (networkId = common_1.NetworkNumber.Eth) => (
277
277
  protocolName: 'morpho-blue',
278
278
  });
279
279
  exports.MORPHO_BLUE_SUSDE_USDC_915 = MORPHO_BLUE_SUSDE_USDC_915;
280
+ const MORPHO_BLUE_SUSDE_USDTB_915 = (networkId = common_1.NetworkNumber.Eth) => ({
281
+ chainIds: [1],
282
+ label: 'Morpho',
283
+ shortLabel: 'sUSDe/USDTb',
284
+ value: types_1.MorphoBlueVersions.MorphoBlueSUSDeUSDtb_915,
285
+ url: 'susdeusdtb-88a18b2f',
286
+ loanToken: '0xC139190F447e929f090Edeb554D95AbB8b18aC1C',
287
+ collateralToken: '0x9D39A5DE30e57443BfF2A8307A4256c8797A3497',
288
+ oracle: '0x67BcC03438D7d71c39343d7AD21cb73Dc19aDB89',
289
+ oracleType: types_1.MorphoBlueOracleType.MARKET_RATE,
290
+ irm: '0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC',
291
+ lltv: 0.915,
292
+ marketId: '0x88a18b2f4d94e7ad27a381b15531c06abf05a7c99dd5d3c3679875fed6f7e742',
293
+ protocolName: 'morpho-blue',
294
+ });
295
+ exports.MORPHO_BLUE_SUSDE_USDTB_915 = MORPHO_BLUE_SUSDE_USDTB_915;
296
+ const MORPHO_BLUE_USDE_USDTB_915 = (networkId = common_1.NetworkNumber.Eth) => ({
297
+ chainIds: [1],
298
+ label: 'Morpho',
299
+ shortLabel: 'USDe/USDTb',
300
+ value: types_1.MorphoBlueVersions.MorphoBlueUSDeUSDtb_915,
301
+ url: 'usdeusdtb-ba5bb3cc',
302
+ loanToken: '0xC139190F447e929f090Edeb554D95AbB8b18aC1C',
303
+ collateralToken: '0x4c9EDD5852cd905f086C759E8383e09bff1E68B3',
304
+ oracle: '0xaE4750d0813B5E37A51f7629beedd72AF1f9cA35',
305
+ oracleType: types_1.MorphoBlueOracleType.MARKET_RATE,
306
+ irm: '0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC',
307
+ lltv: 0.915,
308
+ marketId: '0xba5bb3ccec8df00a56ac1f4d97ae0fd1461f262b6d4f29631bdec717fa6017fd',
309
+ protocolName: 'morpho-blue',
310
+ });
311
+ exports.MORPHO_BLUE_USDE_USDTB_915 = MORPHO_BLUE_USDE_USDTB_915;
280
312
  // ezETH/ETH
281
313
  const MORPHO_BLUE_EZETH_ETH_860 = (networkId = common_1.NetworkNumber.Eth) => ({
282
314
  chainIds: [1],
@@ -968,6 +1000,8 @@ const MorphoBlueMarkets = (networkId) => ({
968
1000
  [types_1.MorphoBlueVersions.MorphoBlueLBTCCbBTC_945]: (0, exports.MORPHO_BLUE_LBTC_CBBTC_945)(networkId),
969
1001
  [types_1.MorphoBlueVersions.MorphoBluesUSDSUSDT_965]: (0, exports.MORPHO_BLUE_SUSDS_USDT_965)(networkId),
970
1002
  [types_1.MorphoBlueVersions.MorphoBlueMORPHOUSDC_625]: (0, exports.MORPHO_BLUE_MORPHO_USDC_625)(networkId),
1003
+ [types_1.MorphoBlueVersions.MorphoBlueSUSDeUSDtb_915]: (0, exports.MORPHO_BLUE_SUSDE_USDTB_915)(networkId),
1004
+ [types_1.MorphoBlueVersions.MorphoBlueUSDeUSDtb_915]: (0, exports.MORPHO_BLUE_USDE_USDTB_915)(networkId),
971
1005
  // wstETH/WETH
972
1006
  [types_1.MorphoBlueVersions.MorphoBlueWstEthEth_945]: (0, exports.MORPHO_BLUE_WSTETH_ETH_945)(networkId),
973
1007
  [types_1.MorphoBlueVersions.MorphoBlueWstEthEth_945_Exchange_Rate]: (0, exports.MORPHO_BLUE_WSTETH_ETH_945_EXCHANGE_RATE)(networkId),
@@ -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;