@defisaver/positions-sdk 1.0.11-fluid-dev10 → 1.0.11-fluid-dev11

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 (76) hide show
  1. package/.mocharc.json +4 -4
  2. package/.nvmrc +1 -1
  3. package/README.md +69 -69
  4. package/cjs/fluid/index.js +18 -3
  5. package/cjs/helpers/morphoBlueHelpers/index.js +66 -66
  6. package/esm/fluid/index.js +18 -3
  7. package/esm/helpers/morphoBlueHelpers/index.js +66 -66
  8. package/package.json +54 -54
  9. package/src/aaveV2/index.ts +227 -227
  10. package/src/aaveV3/index.ts +624 -624
  11. package/src/assets/index.ts +60 -60
  12. package/src/chickenBonds/index.ts +123 -123
  13. package/src/compoundV2/index.ts +220 -220
  14. package/src/compoundV3/index.ts +291 -291
  15. package/src/config/contracts.js +1155 -1155
  16. package/src/constants/index.ts +6 -6
  17. package/src/contracts.ts +135 -135
  18. package/src/curveUsd/index.ts +239 -239
  19. package/src/eulerV2/index.ts +303 -303
  20. package/src/exchange/index.ts +17 -17
  21. package/src/fluid/index.ts +1261 -1241
  22. package/src/helpers/aaveHelpers/index.ts +203 -203
  23. package/src/helpers/chickenBondsHelpers/index.ts +23 -23
  24. package/src/helpers/compoundHelpers/index.ts +248 -248
  25. package/src/helpers/curveUsdHelpers/index.ts +40 -40
  26. package/src/helpers/eulerHelpers/index.ts +234 -234
  27. package/src/helpers/fluidHelpers/index.ts +294 -294
  28. package/src/helpers/index.ts +11 -11
  29. package/src/helpers/liquityV2Helpers/index.ts +80 -80
  30. package/src/helpers/llamaLendHelpers/index.ts +53 -53
  31. package/src/helpers/makerHelpers/index.ts +94 -94
  32. package/src/helpers/morphoBlueHelpers/index.ts +367 -367
  33. package/src/helpers/sparkHelpers/index.ts +154 -154
  34. package/src/index.ts +52 -52
  35. package/src/liquity/index.ts +116 -116
  36. package/src/liquityV2/index.ts +295 -295
  37. package/src/llamaLend/index.ts +275 -275
  38. package/src/maker/index.ts +117 -117
  39. package/src/markets/aave/index.ts +152 -152
  40. package/src/markets/aave/marketAssets.ts +46 -46
  41. package/src/markets/compound/index.ts +213 -213
  42. package/src/markets/compound/marketsAssets.ts +82 -82
  43. package/src/markets/curveUsd/index.ts +69 -69
  44. package/src/markets/euler/index.ts +26 -26
  45. package/src/markets/fluid/index.ts +2454 -2454
  46. package/src/markets/index.ts +27 -27
  47. package/src/markets/liquityV2/index.ts +54 -54
  48. package/src/markets/llamaLend/contractAddresses.ts +141 -141
  49. package/src/markets/llamaLend/index.ts +235 -235
  50. package/src/markets/morphoBlue/index.ts +895 -895
  51. package/src/markets/spark/index.ts +29 -29
  52. package/src/markets/spark/marketAssets.ts +10 -10
  53. package/src/moneymarket/moneymarketCommonService.ts +80 -80
  54. package/src/morphoAaveV2/index.ts +256 -256
  55. package/src/morphoAaveV3/index.ts +630 -630
  56. package/src/morphoBlue/index.ts +202 -202
  57. package/src/multicall/index.ts +33 -33
  58. package/src/services/priceService.ts +130 -130
  59. package/src/services/utils.ts +59 -59
  60. package/src/setup.ts +8 -8
  61. package/src/spark/index.ts +460 -460
  62. package/src/staking/staking.ts +217 -217
  63. package/src/types/aave.ts +275 -275
  64. package/src/types/chickenBonds.ts +45 -45
  65. package/src/types/common.ts +84 -84
  66. package/src/types/compound.ts +133 -133
  67. package/src/types/curveUsd.ts +119 -119
  68. package/src/types/euler.ts +173 -173
  69. package/src/types/fluid.ts +325 -325
  70. package/src/types/index.ts +11 -11
  71. package/src/types/liquity.ts +30 -30
  72. package/src/types/liquityV2.ts +119 -119
  73. package/src/types/llamaLend.ts +155 -155
  74. package/src/types/maker.ts +50 -50
  75. package/src/types/morphoBlue.ts +194 -194
  76. package/src/types/spark.ts +135 -135
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,69 +1,69 @@
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
- - [Morpho Aave V2](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/morphoAaveV2)
10
- - [Morpho Aave V3](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/morphoAaveV3)
11
- - [Compound V2](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/compoundV2)
12
- - [Compound V3](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/compoundV3)
13
- - [Liquity](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/liquity)
14
- - [Chicken Bonds](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/chickenBonds)
15
-
16
- ## Setup
17
- Supported Node version is v10.
18
-
19
- - run `npm install` (first time)
20
- - run `npm run build`
21
-
22
- `build` command will generate contracts and build ejs and esm folders
23
-
24
- ## How to use
25
- [All available imports](https://github.com/defisaver/defisaver-positions-sdk/blob/main/src/index.ts)
26
-
27
- This is a Compound V3 example, and every other protocol is similar
28
- ```js
29
- import Web3 from 'web3';
30
- import { compoundV3 } from '@defisaver/positions-sdk';
31
-
32
-
33
- // every protocol has market data and user data getters
34
- const {
35
- getCompoundV3MarketsData,
36
- getCompoundV3AccountData,
37
- } = compoundV3;
38
-
39
- const provider = 'Your RPC provider';
40
- const web3 = new Web3(provider);
41
-
42
- const user = '0x123...';
43
-
44
- const { assetsData } = await getCompoundV3MarketsData(
45
- web3, // rpc for the network you are using (note: can be tenderly or any other testnet rpc)
46
- 1, // network
47
- selectedMarket, // market object like in /src/markets/compound/index.ts
48
- web3, // this must be mainnet rpc - used for getting prices onchain and calculating apys
49
- );
50
-
51
- const userData = await getCompoundV3AccountData(
52
- web3,
53
- 1, // network
54
- userAddress, // EOA or DSProxy
55
- '', // proxy address of the user, or just empty string if checking for EOA
56
- {
57
- selectedMarket, // market object as in /src/markets/compound/index.ts
58
- assetsData,
59
- }
60
- );
61
- ```
62
-
63
- More examples found [here](https://github.com/defisaver/defisaver-positions-sdk/tree/main/tests)
64
-
65
- ## Testing
66
-
67
- `npm run test` - Run all tests
68
-
69
- `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
+ - [Morpho Aave V2](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/morphoAaveV2)
10
+ - [Morpho Aave V3](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/morphoAaveV3)
11
+ - [Compound V2](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/compoundV2)
12
+ - [Compound V3](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/compoundV3)
13
+ - [Liquity](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/liquity)
14
+ - [Chicken Bonds](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/chickenBonds)
15
+
16
+ ## Setup
17
+ Supported Node version is v10.
18
+
19
+ - run `npm install` (first time)
20
+ - run `npm run build`
21
+
22
+ `build` command will generate contracts and build ejs and esm folders
23
+
24
+ ## How to use
25
+ [All available imports](https://github.com/defisaver/defisaver-positions-sdk/blob/main/src/index.ts)
26
+
27
+ This is a Compound V3 example, and every other protocol is similar
28
+ ```js
29
+ import Web3 from 'web3';
30
+ import { compoundV3 } from '@defisaver/positions-sdk';
31
+
32
+
33
+ // every protocol has market data and user data getters
34
+ const {
35
+ getCompoundV3MarketsData,
36
+ getCompoundV3AccountData,
37
+ } = compoundV3;
38
+
39
+ const provider = 'Your RPC provider';
40
+ const web3 = new Web3(provider);
41
+
42
+ const user = '0x123...';
43
+
44
+ const { assetsData } = await getCompoundV3MarketsData(
45
+ web3, // rpc for the network you are using (note: can be tenderly or any other testnet rpc)
46
+ 1, // network
47
+ selectedMarket, // market object like in /src/markets/compound/index.ts
48
+ web3, // this must be mainnet rpc - used for getting prices onchain and calculating apys
49
+ );
50
+
51
+ const userData = await getCompoundV3AccountData(
52
+ web3,
53
+ 1, // network
54
+ userAddress, // EOA or DSProxy
55
+ '', // proxy address of the user, or just empty string if checking for EOA
56
+ {
57
+ selectedMarket, // market object as in /src/markets/compound/index.ts
58
+ assetsData,
59
+ }
60
+ );
61
+ ```
62
+
63
+ More examples found [here](https://github.com/defisaver/defisaver-positions-sdk/tree/main/tests)
64
+
65
+ ## Testing
66
+
67
+ `npm run test` - Run all tests
68
+
69
+ `npm run test-single --name=your_test_name` - Run single test for specified name e.g. for MyTest.js test name is MyTest
@@ -219,6 +219,13 @@ const getMarketRateForDex = (token1PerShare, token0PerShare, rate0, rate1) => {
219
219
  const rate1PerShare = new decimal_js_1.default(rate1).mul(token1PerShare).div(sharesCombined).toString();
220
220
  return new decimal_js_1.default(rate0PerShare).plus(rate1PerShare).toString();
221
221
  };
222
+ const getAdditionalMarketRateForDex = (token1PerShare, token0PerShare, incentiveSupplyRate0, incentiveSupplyRate1) => {
223
+ console.log(incentiveSupplyRate0, incentiveSupplyRate1);
224
+ const sharesCombined = new decimal_js_1.default(token1PerShare).plus(token0PerShare);
225
+ const rate0PerShare = incentiveSupplyRate0 ? new decimal_js_1.default(incentiveSupplyRate0).mul(token0PerShare).div(sharesCombined).toString() : 0;
226
+ const rate1PerShare = incentiveSupplyRate1 ? new decimal_js_1.default(incentiveSupplyRate1).mul(token1PerShare).div(sharesCombined).toString() : 0;
227
+ return new decimal_js_1.default(rate0PerShare).plus(rate1PerShare).toString();
228
+ };
222
229
  const parseT2MarketData = (web3, data, network, mainnetWeb3) => __awaiter(void 0, void 0, void 0, function* () {
223
230
  const collAsset0 = (0, tokens_1.getAssetInfoByAddress)(data.supplyToken0, network);
224
231
  const collAsset1 = (0, tokens_1.getAssetInfoByAddress)(data.supplyToken1, network);
@@ -257,11 +264,12 @@ const parseT2MarketData = (web3, data, network, mainnetWeb3) => __awaiter(void 0
257
264
  tokenPerSupplyShare: token1PerSupplyShare,
258
265
  supplyReserves: reservesSupplyToken1,
259
266
  };
260
- if (staking_1.STAKING_ASSETS.includes(collFirstAssetData.symbol)) {
261
- collFirstAssetData.incentiveSupplyApy = yield (0, staking_1.getStakingApy)(collAsset1.symbol, mainnetWeb3);
262
- collFirstAssetData.incentiveSupplyToken = collAsset1.symbol;
267
+ if (staking_1.STAKING_ASSETS.includes(collSecondAssetData.symbol)) {
268
+ collSecondAssetData.incentiveSupplyApy = yield (0, staking_1.getStakingApy)(collAsset1.symbol, mainnetWeb3);
269
+ collSecondAssetData.incentiveSupplyToken = collAsset1.symbol;
263
270
  }
264
271
  const marketSupplyRate = getMarketRateForDex(token1PerSupplyShare, token0PerSupplyShare, supplyRate0, supplyRate1);
272
+ const incentiveSupplyRate = getAdditionalMarketRateForDex(token1PerSupplyShare, token0PerSupplyShare, collFirstAssetData.incentiveSupplyApy, collSecondAssetData.incentiveSupplyApy);
265
273
  const borrowRate = new decimal_js_1.default(data.borrowRateVault).div(100).toString();
266
274
  const debtAssetData = {
267
275
  symbol: debtAsset.symbol,
@@ -323,6 +331,7 @@ const parseT2MarketData = (web3, data, network, mainnetWeb3) => __awaiter(void 0
323
331
  liquidationMaxLimit,
324
332
  borrowRate,
325
333
  supplyRate: marketSupplyRate,
334
+ incentiveSupplyRate,
326
335
  totalSupplyToken0,
327
336
  totalSupplyToken1,
328
337
  withdrawableToken0,
@@ -396,6 +405,7 @@ const parseT3MarketData = (web3, data, network, mainnetWeb3) => __awaiter(void 0
396
405
  debtAsset1Data.incentiveSupplyToken = debtAsset1.symbol;
397
406
  }
398
407
  const marketBorrowRate = getMarketRateForDex(token1PerBorrowShare, token0PerBorrowShare, borrowRate0, borrowRate1);
408
+ const incentiveBorrowRate = getAdditionalMarketRateForDex(token1PerBorrowShare, token0PerBorrowShare, debtAsset0Data.incentiveSupplyApy, debtAsset1Data.incentiveSupplyApy);
399
409
  const assetsData = [
400
410
  [collAsset.symbol, collAssetData],
401
411
  [debtAsset0.symbol, debtAsset0Data],
@@ -439,6 +449,7 @@ const parseT3MarketData = (web3, data, network, mainnetWeb3) => __awaiter(void 0
439
449
  liquidationMaxLimit,
440
450
  borrowRate: marketBorrowRate,
441
451
  supplyRate,
452
+ incentiveBorrowRate,
442
453
  borrowableToken0,
443
454
  borrowableToken1,
444
455
  totalBorrowToken0,
@@ -535,7 +546,9 @@ const parseT4MarketData = (web3, data, network, mainnetWeb3) => __awaiter(void 0
535
546
  debtAsset1Data.incentiveSupplyToken = debtAsset1.symbol;
536
547
  }
537
548
  const marketBorrowRate = getMarketRateForDex(token1PerBorrowShare, token0PerBorrowShare, borrowRate0, borrowRate1);
549
+ const incentiveBorrowRate = getAdditionalMarketRateForDex(token1PerBorrowShare, token0PerBorrowShare, debtAsset0Data.incentiveSupplyApy, debtAsset1Data.incentiveSupplyApy);
538
550
  const marketSupplyRate = getMarketRateForDex(token1PerSupplyShare, token0PerSupplyShare, supplyRate0, supplyRate1);
551
+ const incentiveSupplyRate = getAdditionalMarketRateForDex(token1PerSupplyShare, token0PerSupplyShare, collAsset0Data.incentiveSupplyApy, collAsset1Data.incentiveSupplyApy);
539
552
  const assetsData = [
540
553
  [collAsset0.symbol, collAsset0Data],
541
554
  [collAsset1.symbol, collAsset1Data],
@@ -581,7 +594,9 @@ const parseT4MarketData = (web3, data, network, mainnetWeb3) => __awaiter(void 0
581
594
  totalBorrowVaultUsd,
582
595
  liquidationMaxLimit,
583
596
  borrowRate: marketBorrowRate,
597
+ incentiveBorrowRate,
584
598
  supplyRate: marketSupplyRate,
599
+ incentiveSupplyRate,
585
600
  borrowableToken0,
586
601
  borrowableToken1,
587
602
  totalBorrowToken0,
@@ -117,73 +117,73 @@ const getApyAfterValuesEstimation = (selectedMarket, actions, web3, network) =>
117
117
  });
118
118
  exports.getApyAfterValuesEstimation = getApyAfterValuesEstimation;
119
119
  const API_URL = 'https://blue-api.morpho.org/graphql';
120
- const MARKET_QUERY = `
121
- query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
122
- marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
123
- reallocatableLiquidityAssets
124
- targetBorrowUtilization
125
- loanAsset {
126
- address
127
- decimals
128
- priceUsd
129
- }
130
- state {
131
- liquidityAssets
132
- borrowAssets
133
- supplyAssets
134
- }
135
- publicAllocatorSharedLiquidity {
136
- assets
137
- vault {
138
- address
139
- name
140
- }
141
- allocationMarket {
142
- uniqueKey
143
- loanAsset {
144
- address
145
- }
146
- collateralAsset {
147
- address
148
- }
149
- irmAddress
150
- oracle {
151
- address
152
- }
153
- lltv
154
- }
155
- }
156
- loanAsset {
157
- address
158
- }
159
- collateralAsset {
160
- address
161
- }
162
- oracle {
163
- address
164
- }
165
- irmAddress
166
- lltv
167
- }
168
- }
120
+ const MARKET_QUERY = `
121
+ query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
122
+ marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
123
+ reallocatableLiquidityAssets
124
+ targetBorrowUtilization
125
+ loanAsset {
126
+ address
127
+ decimals
128
+ priceUsd
129
+ }
130
+ state {
131
+ liquidityAssets
132
+ borrowAssets
133
+ supplyAssets
134
+ }
135
+ publicAllocatorSharedLiquidity {
136
+ assets
137
+ vault {
138
+ address
139
+ name
140
+ }
141
+ allocationMarket {
142
+ uniqueKey
143
+ loanAsset {
144
+ address
145
+ }
146
+ collateralAsset {
147
+ address
148
+ }
149
+ irmAddress
150
+ oracle {
151
+ address
152
+ }
153
+ lltv
154
+ }
155
+ }
156
+ loanAsset {
157
+ address
158
+ }
159
+ collateralAsset {
160
+ address
161
+ }
162
+ oracle {
163
+ address
164
+ }
165
+ irmAddress
166
+ lltv
167
+ }
168
+ }
169
169
  `;
170
- const REWARDS_QUERY = `
171
- query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
172
- marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
173
- uniqueKey
174
- state {
175
- rewards {
176
- amountPerSuppliedToken
177
- supplyApr
178
- amountPerBorrowedToken
179
- borrowApr
180
- asset {
181
- address
182
- }
183
- }
184
- }
185
- }
186
- }
170
+ const REWARDS_QUERY = `
171
+ query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
172
+ marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
173
+ uniqueKey
174
+ state {
175
+ rewards {
176
+ amountPerSuppliedToken
177
+ supplyApr
178
+ amountPerBorrowedToken
179
+ borrowApr
180
+ asset {
181
+ address
182
+ }
183
+ }
184
+ }
185
+ }
186
+ }
187
187
  `;
188
188
  /**
189
189
  * Get reallocatable liquidity to a given market and target borrow utilization
@@ -213,6 +213,13 @@ const getMarketRateForDex = (token1PerShare, token0PerShare, rate0, rate1) => {
213
213
  const rate1PerShare = new Dec(rate1).mul(token1PerShare).div(sharesCombined).toString();
214
214
  return new Dec(rate0PerShare).plus(rate1PerShare).toString();
215
215
  };
216
+ const getAdditionalMarketRateForDex = (token1PerShare, token0PerShare, incentiveSupplyRate0, incentiveSupplyRate1) => {
217
+ console.log(incentiveSupplyRate0, incentiveSupplyRate1);
218
+ const sharesCombined = new Dec(token1PerShare).plus(token0PerShare);
219
+ const rate0PerShare = incentiveSupplyRate0 ? new Dec(incentiveSupplyRate0).mul(token0PerShare).div(sharesCombined).toString() : 0;
220
+ const rate1PerShare = incentiveSupplyRate1 ? new Dec(incentiveSupplyRate1).mul(token1PerShare).div(sharesCombined).toString() : 0;
221
+ return new Dec(rate0PerShare).plus(rate1PerShare).toString();
222
+ };
216
223
  const parseT2MarketData = (web3, data, network, mainnetWeb3) => __awaiter(void 0, void 0, void 0, function* () {
217
224
  const collAsset0 = getAssetInfoByAddress(data.supplyToken0, network);
218
225
  const collAsset1 = getAssetInfoByAddress(data.supplyToken1, network);
@@ -251,11 +258,12 @@ const parseT2MarketData = (web3, data, network, mainnetWeb3) => __awaiter(void 0
251
258
  tokenPerSupplyShare: token1PerSupplyShare,
252
259
  supplyReserves: reservesSupplyToken1,
253
260
  };
254
- if (STAKING_ASSETS.includes(collFirstAssetData.symbol)) {
255
- collFirstAssetData.incentiveSupplyApy = yield getStakingApy(collAsset1.symbol, mainnetWeb3);
256
- collFirstAssetData.incentiveSupplyToken = collAsset1.symbol;
261
+ if (STAKING_ASSETS.includes(collSecondAssetData.symbol)) {
262
+ collSecondAssetData.incentiveSupplyApy = yield getStakingApy(collAsset1.symbol, mainnetWeb3);
263
+ collSecondAssetData.incentiveSupplyToken = collAsset1.symbol;
257
264
  }
258
265
  const marketSupplyRate = getMarketRateForDex(token1PerSupplyShare, token0PerSupplyShare, supplyRate0, supplyRate1);
266
+ const incentiveSupplyRate = getAdditionalMarketRateForDex(token1PerSupplyShare, token0PerSupplyShare, collFirstAssetData.incentiveSupplyApy, collSecondAssetData.incentiveSupplyApy);
259
267
  const borrowRate = new Dec(data.borrowRateVault).div(100).toString();
260
268
  const debtAssetData = {
261
269
  symbol: debtAsset.symbol,
@@ -317,6 +325,7 @@ const parseT2MarketData = (web3, data, network, mainnetWeb3) => __awaiter(void 0
317
325
  liquidationMaxLimit,
318
326
  borrowRate,
319
327
  supplyRate: marketSupplyRate,
328
+ incentiveSupplyRate,
320
329
  totalSupplyToken0,
321
330
  totalSupplyToken1,
322
331
  withdrawableToken0,
@@ -390,6 +399,7 @@ const parseT3MarketData = (web3, data, network, mainnetWeb3) => __awaiter(void 0
390
399
  debtAsset1Data.incentiveSupplyToken = debtAsset1.symbol;
391
400
  }
392
401
  const marketBorrowRate = getMarketRateForDex(token1PerBorrowShare, token0PerBorrowShare, borrowRate0, borrowRate1);
402
+ const incentiveBorrowRate = getAdditionalMarketRateForDex(token1PerBorrowShare, token0PerBorrowShare, debtAsset0Data.incentiveSupplyApy, debtAsset1Data.incentiveSupplyApy);
393
403
  const assetsData = [
394
404
  [collAsset.symbol, collAssetData],
395
405
  [debtAsset0.symbol, debtAsset0Data],
@@ -433,6 +443,7 @@ const parseT3MarketData = (web3, data, network, mainnetWeb3) => __awaiter(void 0
433
443
  liquidationMaxLimit,
434
444
  borrowRate: marketBorrowRate,
435
445
  supplyRate,
446
+ incentiveBorrowRate,
436
447
  borrowableToken0,
437
448
  borrowableToken1,
438
449
  totalBorrowToken0,
@@ -529,7 +540,9 @@ const parseT4MarketData = (web3, data, network, mainnetWeb3) => __awaiter(void 0
529
540
  debtAsset1Data.incentiveSupplyToken = debtAsset1.symbol;
530
541
  }
531
542
  const marketBorrowRate = getMarketRateForDex(token1PerBorrowShare, token0PerBorrowShare, borrowRate0, borrowRate1);
543
+ const incentiveBorrowRate = getAdditionalMarketRateForDex(token1PerBorrowShare, token0PerBorrowShare, debtAsset0Data.incentiveSupplyApy, debtAsset1Data.incentiveSupplyApy);
532
544
  const marketSupplyRate = getMarketRateForDex(token1PerSupplyShare, token0PerSupplyShare, supplyRate0, supplyRate1);
545
+ const incentiveSupplyRate = getAdditionalMarketRateForDex(token1PerSupplyShare, token0PerSupplyShare, collAsset0Data.incentiveSupplyApy, collAsset1Data.incentiveSupplyApy);
533
546
  const assetsData = [
534
547
  [collAsset0.symbol, collAsset0Data],
535
548
  [collAsset1.symbol, collAsset1Data],
@@ -575,7 +588,9 @@ const parseT4MarketData = (web3, data, network, mainnetWeb3) => __awaiter(void 0
575
588
  totalBorrowVaultUsd,
576
589
  liquidationMaxLimit,
577
590
  borrowRate: marketBorrowRate,
591
+ incentiveBorrowRate,
578
592
  supplyRate: marketSupplyRate,
593
+ incentiveSupplyRate,
579
594
  borrowableToken0,
580
595
  borrowableToken1,
581
596
  totalBorrowToken0,
@@ -107,73 +107,73 @@ export const getApyAfterValuesEstimation = (selectedMarket, actions, web3, netwo
107
107
  return { borrowRate, supplyRate };
108
108
  });
109
109
  const API_URL = 'https://blue-api.morpho.org/graphql';
110
- const MARKET_QUERY = `
111
- query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
112
- marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
113
- reallocatableLiquidityAssets
114
- targetBorrowUtilization
115
- loanAsset {
116
- address
117
- decimals
118
- priceUsd
119
- }
120
- state {
121
- liquidityAssets
122
- borrowAssets
123
- supplyAssets
124
- }
125
- publicAllocatorSharedLiquidity {
126
- assets
127
- vault {
128
- address
129
- name
130
- }
131
- allocationMarket {
132
- uniqueKey
133
- loanAsset {
134
- address
135
- }
136
- collateralAsset {
137
- address
138
- }
139
- irmAddress
140
- oracle {
141
- address
142
- }
143
- lltv
144
- }
145
- }
146
- loanAsset {
147
- address
148
- }
149
- collateralAsset {
150
- address
151
- }
152
- oracle {
153
- address
154
- }
155
- irmAddress
156
- lltv
157
- }
158
- }
110
+ const MARKET_QUERY = `
111
+ query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
112
+ marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
113
+ reallocatableLiquidityAssets
114
+ targetBorrowUtilization
115
+ loanAsset {
116
+ address
117
+ decimals
118
+ priceUsd
119
+ }
120
+ state {
121
+ liquidityAssets
122
+ borrowAssets
123
+ supplyAssets
124
+ }
125
+ publicAllocatorSharedLiquidity {
126
+ assets
127
+ vault {
128
+ address
129
+ name
130
+ }
131
+ allocationMarket {
132
+ uniqueKey
133
+ loanAsset {
134
+ address
135
+ }
136
+ collateralAsset {
137
+ address
138
+ }
139
+ irmAddress
140
+ oracle {
141
+ address
142
+ }
143
+ lltv
144
+ }
145
+ }
146
+ loanAsset {
147
+ address
148
+ }
149
+ collateralAsset {
150
+ address
151
+ }
152
+ oracle {
153
+ address
154
+ }
155
+ irmAddress
156
+ lltv
157
+ }
158
+ }
159
159
  `;
160
- const REWARDS_QUERY = `
161
- query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
162
- marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
163
- uniqueKey
164
- state {
165
- rewards {
166
- amountPerSuppliedToken
167
- supplyApr
168
- amountPerBorrowedToken
169
- borrowApr
170
- asset {
171
- address
172
- }
173
- }
174
- }
175
- }
176
- }
160
+ const REWARDS_QUERY = `
161
+ query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
162
+ marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
163
+ uniqueKey
164
+ state {
165
+ rewards {
166
+ amountPerSuppliedToken
167
+ supplyApr
168
+ amountPerBorrowedToken
169
+ borrowApr
170
+ asset {
171
+ address
172
+ }
173
+ }
174
+ }
175
+ }
176
+ }
177
177
  `;
178
178
  /**
179
179
  * Get reallocatable liquidity to a given market and target borrow utilization