@defisaver/positions-sdk 2.1.15 → 2.1.17-dev-1

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.
@@ -23,6 +23,8 @@ export declare const getLiquityV2UserTroveIds: (provider: EthereumProvider, netw
23
23
  }[];
24
24
  nextFreeTroveIndex: string;
25
25
  }>;
26
+ export declare const calculateDebtInFrontLiquityV2: (markets: Record<LiquityV2Versions, LiquityV2MarketData>, selectedMarket: LiquityV2Versions, allMarketsUnbackedDebts: Record<LiquityV2Versions, string>, interestRateDebtInFront: string) => string;
27
+ export declare const getDebtInFrontForInterestRateIncludingNewDebtLiquityV2: (newDebt: string, markets: Record<LiquityV2Versions, LiquityV2MarketData>, selectedMarket: LiquityV2Versions, provider: Client, network: NetworkNumber, interestRate: string) => Promise<string>;
26
28
  export declare const getDebtInFrontForInterestRateLiquityV2: (markets: Record<LiquityV2Versions, LiquityV2MarketData>, selectedMarket: LiquityV2Versions, provider: EthereumProvider, network: NetworkNumber, isLegacy: boolean, interestRate: string, debtInFrontBeingMoved?: string) => Promise<string>;
27
29
  export declare const _getLiquityV2TroveData: (provider: Client, network: NetworkNumber, { selectedMarket, assetsData, troveId, allMarketsData, }: {
28
30
  selectedMarket: LiquityV2MarketInfo;
@@ -190,12 +190,40 @@ const getAllMarketsUnbackedDebts = (markets, isLegacy, provider, network) => __a
190
190
  })));
191
191
  return Object.fromEntries(allMarketsUnbackedDebt);
192
192
  });
193
- const calculateDebtInFrontLiquityV2 = (markets, selectedMarket, allMarketsUnbackedDebts, interestRateDebtInFront) => {
193
+ export const calculateDebtInFrontLiquityV2 = (markets, selectedMarket, allMarketsUnbackedDebts, interestRateDebtInFront) => {
194
+ // Sanity check to avoid division by 0. Very unlikely to ever happen.
195
+ const selectedMarketTotalBorrow = new Dec(markets[selectedMarket].assetsData[LiquityV2Markets(NetworkNumber.Eth)[selectedMarket].debtToken].totalBorrow);
196
+ if (selectedMarketTotalBorrow.eq(0))
197
+ return new Dec(0).toString();
194
198
  const selectedMarketUnbackedDebt = new Dec(allMarketsUnbackedDebts[selectedMarket]);
195
199
  const { isLegacy } = LiquityV2Markets(NetworkNumber.Eth)[selectedMarket];
196
- if (selectedMarketUnbackedDebt.eq(0))
197
- return interestRateDebtInFront;
198
- const amountBeingReedemedOnEachMarket = Object.entries(markets).map(([version, market]) => {
200
+ const totalUnbackedDebt = Object.values(allMarketsUnbackedDebts).reduce((acc, val) => acc.plus(new Dec(val)), new Dec(0));
201
+ // When totalUnbackedDebt is 0, redemptions will be proportional with the branch size and not to unbacked debt.
202
+ // When unbacked debt is 0 for branch, next redemption call won't touch that branch, so in order to estimate total debt in front we will:
203
+ // - First add up all the unbacked debt from other branches, as that will be the only debt that will be redeemed on the fist redemption call
204
+ // - Perform split the same way as we would do when totalUnbackedDebt == 0, this would represent the second call to the redemption function
205
+ if (selectedMarketUnbackedDebt.eq(0)) {
206
+ // Special case if the branch debt in front is 0, it means that all debt in front is unbacked debt from other branches.
207
+ if (new Dec(interestRateDebtInFront).eq(0))
208
+ return totalUnbackedDebt.toString();
209
+ // Then calculate how much of that estimated amount would go to each branch
210
+ // Second redemption call - calculate proportional redemption based on updated total debt
211
+ const amountBeingRedeemedOnEachMarketByTotalBorrow = Object.entries(markets).map(([version, market]) => {
212
+ const { isLegacy: isLegacyMarket } = LiquityV2Markets(NetworkNumber.Eth)[version];
213
+ if (version === selectedMarket && isLegacyMarket !== isLegacy)
214
+ return new Dec(interestRateDebtInFront);
215
+ const { assetsData } = market;
216
+ const { debtToken } = LiquityV2Markets(NetworkNumber.Eth)[version];
217
+ // For other markets, subtract their unbacked debt as it will be cleared in first redemption call
218
+ const marketUnbackedDebt = new Dec(allMarketsUnbackedDebts[version]);
219
+ const totalBorrow = new Dec(assetsData[debtToken].totalBorrow).sub(marketUnbackedDebt);
220
+ const amountToRedeem = new Dec(interestRateDebtInFront).mul(totalBorrow).div(selectedMarketTotalBorrow);
221
+ return Dec.min(amountToRedeem, totalBorrow);
222
+ });
223
+ const redemptionAmount = amountBeingRedeemedOnEachMarketByTotalBorrow.reduce((acc, val) => acc.plus(val), new Dec(0));
224
+ return totalUnbackedDebt.plus(redemptionAmount).toString();
225
+ }
226
+ const amountBeingRedeemedOnEachMarketByUnbackedDebt = Object.entries(markets).map(([version, market]) => {
199
227
  const { isLegacy: isLegacyMarket } = LiquityV2Markets(NetworkNumber.Eth)[version];
200
228
  if (version === selectedMarket && isLegacyMarket !== isLegacy)
201
229
  return new Dec(interestRateDebtInFront);
@@ -203,11 +231,24 @@ const calculateDebtInFrontLiquityV2 = (markets, selectedMarket, allMarketsUnback
203
231
  const { debtToken } = LiquityV2Markets(NetworkNumber.Eth)[version];
204
232
  const unbackedDebt = new Dec(allMarketsUnbackedDebts[version]);
205
233
  const totalBorrow = new Dec(assetsData[debtToken].totalBorrow);
206
- const amountToReedem = new Dec(interestRateDebtInFront).mul(unbackedDebt).div(selectedMarketUnbackedDebt);
207
- return Dec.min(amountToReedem, totalBorrow);
234
+ const amountToRedeem = new Dec(interestRateDebtInFront).mul(unbackedDebt).div(selectedMarketUnbackedDebt);
235
+ return Dec.min(amountToRedeem, totalBorrow);
208
236
  });
209
- return amountBeingReedemedOnEachMarket.reduce((acc, val) => acc.plus(val), new Dec(0)).toString();
237
+ return amountBeingRedeemedOnEachMarketByUnbackedDebt.reduce((acc, val) => acc.plus(val), new Dec(0)).toString();
210
238
  };
239
+ // @dev The amount redeemed on each branch depends on the unbacked debt of every branch (the difference between total borrow and stability pool deposits).
240
+ // When new debt is generated on the selected market, the unbacked debt will increase, resulting in a higher redemption amount on that branch.
241
+ // This function accepts the new debt that's about to be generated (e.g., trove creation) and estimates the debt in front based on the new state.
242
+ export const getDebtInFrontForInterestRateIncludingNewDebtLiquityV2 = (newDebt, markets, selectedMarket, provider, network, interestRate) => __awaiter(void 0, void 0, void 0, function* () {
243
+ const marketsWithNewDebt = structuredClone(markets);
244
+ const selectedMarketDebtToken = LiquityV2Markets(network)[selectedMarket].debtToken;
245
+ const currentTotalBorrow = new Dec(marketsWithNewDebt[selectedMarket].assetsData[selectedMarketDebtToken].totalBorrow);
246
+ marketsWithNewDebt[selectedMarket].assetsData[selectedMarketDebtToken].totalBorrow = currentTotalBorrow.add(newDebt).toString();
247
+ const { isLegacy } = LiquityV2Markets(NetworkNumber.Eth)[selectedMarket];
248
+ const allMarketsUnbackedDebts = yield getAllMarketsUnbackedDebts(marketsWithNewDebt, isLegacy, provider, network);
249
+ const interestRateDebtInFront = new Dec(yield getDebtInFrontForInterestRateSingleMarketLiquityV2(provider, network, isLegacy, LiquityV2Markets(network)[selectedMarket].marketAddress, interestRate));
250
+ return calculateDebtInFrontLiquityV2(marketsWithNewDebt, selectedMarket, allMarketsUnbackedDebts, interestRateDebtInFront.toString());
251
+ });
211
252
  const getDebtInFrontLiquityV2 = (markets, selectedMarket, provider, network, viewContract, troveId) => __awaiter(void 0, void 0, void 0, function* () {
212
253
  const { isLegacy } = LiquityV2Markets(NetworkNumber.Eth)[selectedMarket];
213
254
  const allMarketsUnbackedDebts = yield getAllMarketsUnbackedDebts(markets, isLegacy, provider, network);
@@ -15,7 +15,7 @@ export const aaveV3AssetsDefaultMarketOpt = [
15
15
  export const aaveV3AssetsDefaultMarketArb = ['DAI', 'LINK', 'USDC.e', 'WBTC', 'ETH', 'USDT', 'AAVE', 'EURS', 'wstETH', 'MAI', 'rETH', 'LUSD', 'USDC', 'FRAX', 'ARB', 'weETH', 'GHO', 'ezETH', 'rsETH', 'tBTC'];
16
16
  export const aaveV3AssetsDefaultMarketBase = ['ETH', 'cbETH', 'USDbC', 'wstETH', 'USDC', 'weETH', 'cbBTC', 'ezETH', 'GHO', 'wrsETH', 'LBTC', 'EURC', 'AAVE', 'tBTC'];
17
17
  export const aaveV3AssetsDefaultMarketLinea = ['ETH', 'USDC', 'weETH', 'ezETH', 'USDT', 'wstETH', 'wrsETH', 'WBTC'];
18
- export const aaveV3AssetsDefaultMarketPlasma = ['ETH', 'USDT', 'sUSDe', 'USDe', 'weETH', 'XAUt', 'PT USDe Jan', 'PT sUSDe Jan', 'wrsETH', 'wstETH'];
18
+ export const aaveV3AssetsDefaultMarketPlasma = ['ETH', 'USDT', 'sUSDe', 'USDe', 'weETH', 'XAUt', 'PT USDe Jan', 'PT sUSDe Jan', 'wrsETH', 'wstETH', 'syrupUSDT'];
19
19
  // @dev Keep assets in array, do not assign directly, so we can parse it and edit it programmatically with `scripts/updateMarkets`
20
20
  export const aaveV3AssetsDefaultMarket = {
21
21
  [NetworkNumber.Eth]: aaveV3AssetsDefaultMarketEth,
@@ -12,7 +12,6 @@ export declare const MORPHO_BLUE_WSTETH_USDA_EXCHANGE_RATE: (networkId?: Network
12
12
  export declare const MORPHO_BLUE_WSTETH_PYUSD: (networkId?: NetworkNumber) => MorphoBlueMarketData;
13
13
  export declare const MORPHO_BLUE_USDE_USDT: (networkId?: NetworkNumber) => MorphoBlueMarketData;
14
14
  export declare const MORPHO_BLUE_SUSDE_USDT: (networkId?: NetworkNumber) => MorphoBlueMarketData;
15
- export declare const MORPHO_BLUE_SDAI_ETH: (networkId?: NetworkNumber) => MorphoBlueMarketData;
16
15
  export declare const MORPHO_BLUE_MKR_USDC: (networkId?: NetworkNumber) => MorphoBlueMarketData;
17
16
  export declare const MORPHO_BLUE_TBTC_USDC: (networkId?: NetworkNumber) => MorphoBlueMarketData;
18
17
  export declare const MORPHO_BLUE_CBBTC_ETH_915: (networkId?: NetworkNumber) => MorphoBlueMarketData;
@@ -20,21 +19,19 @@ export declare const MORPHO_BLUE_CBBTC_USDC_860: (networkId?: NetworkNumber) =>
20
19
  export declare const MORPHO_BLUE_SUSDE_USDC_915: (networkId?: NetworkNumber) => MorphoBlueMarketData;
21
20
  export declare const MORPHO_BLUE_EZETH_ETH_860: (networkId?: NetworkNumber) => MorphoBlueMarketData;
22
21
  export declare const MORPHO_BLUE_EZETH_ETH_945: (networkId?: NetworkNumber) => MorphoBlueMarketData;
23
- export declare const MORPHO_BLUE_WEETH_ETH_860: (networkId?: NetworkNumber) => MorphoBlueMarketData;
24
22
  export declare const MORPHO_BLUE_WEETH_ETH_945: (networkId?: NetworkNumber) => MorphoBlueMarketData;
25
23
  export declare const MORPHO_BLUE_WSTETH_ETH_945: (networkId?: NetworkNumber) => MorphoBlueMarketData;
26
24
  export declare const MORPHO_BLUE_WSTETH_ETH_945_EXCHANGE_RATE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
27
25
  export declare const MORPHO_BLUE_WSTETH_ETH_965_EXCHANGE_RATE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
28
- export declare const MORPHO_BLUE_SUSDE_DAI_770: (networkId?: NetworkNumber) => MorphoBlueMarketData;
29
26
  export declare const MORPHO_BLUE_SUSDE_DAI_860: (networkId?: NetworkNumber) => MorphoBlueMarketData;
30
27
  export declare const MORPHO_BLUE_SUSDE_DAI_915: (networkId?: NetworkNumber) => MorphoBlueMarketData;
31
28
  export declare const MORPHO_BLUE_SUSDE_DAI_945: (networkId?: NetworkNumber) => MorphoBlueMarketData;
32
- export declare const MORPHO_BLUE_USDE_DAI_770: (networkId?: NetworkNumber) => MorphoBlueMarketData;
33
29
  export declare const MORPHO_BLUE_USDE_DAI_860: (networkId?: NetworkNumber) => MorphoBlueMarketData;
34
30
  export declare const MORPHO_BLUE_USDE_DAI_915: (networkId?: NetworkNumber) => MorphoBlueMarketData;
35
- export declare const MORPHO_BLUE_USDE_DAI_945: (networkId?: NetworkNumber) => MorphoBlueMarketData;
36
- export declare const MORPHO_BLUE_RETH_ETH_945: (networkId?: NetworkNumber) => MorphoBlueMarketData;
37
31
  export declare const MORPHO_BLUE_USR_USDC_915: (networkId?: NetworkNumber) => MorphoBlueMarketData;
32
+ export declare const MORPHO_BLUE_SYRUPUSDC_USDC_915: (networkId?: NetworkNumber) => MorphoBlueMarketData;
33
+ export declare const MORPHO_BLUE_LBTC_USDC_860: (networkId?: NetworkNumber) => MorphoBlueMarketData;
34
+ export declare const MORPHO_BLUE_LBTC_CBBTC_945: (networkId?: NetworkNumber) => MorphoBlueMarketData;
38
35
  export declare const MORPHO_BLUE_CBETH_USDC_860_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
39
36
  export declare const MORPHO_BLUE_CBETH_USDC_860_BASE_1c21c59d: (networkId?: NetworkNumber) => MorphoBlueMarketData;
40
37
  export declare const MORPHO_BLUE_WSTETH_ETH_945_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
@@ -53,6 +50,7 @@ export declare const MORPHO_BLUE_LBTC_WBTC_945: (networkId?: NetworkNumber) => M
53
50
  export declare const MORPHO_BLUE_LBTC_CBBTC_945_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
54
51
  export declare const MORPHO_BLUE_WSTETH_EURC_860_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
55
52
  export declare const MORPHO_BLUE_CBBTC_EURC_860_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
53
+ export declare const MORPHO_BLUE_WETH_EURC_860_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
56
54
  export declare const MorphoBlueMarkets: (networkId: NetworkNumber) => {
57
55
  readonly morphobluewstethusdc: MorphoBlueMarketData;
58
56
  readonly morphobluesdaiusdc: MorphoBlueMarketData;
@@ -62,34 +60,31 @@ export declare const MorphoBlueMarkets: (networkId: NetworkNumber) => {
62
60
  readonly morphobluewstethusdt: MorphoBlueMarketData;
63
61
  readonly morphobluewstethusda_exchange_rate: MorphoBlueMarketData;
64
62
  readonly morphobluwstethpyusd: MorphoBlueMarketData;
65
- readonly morphoblueweetheth_860: MorphoBlueMarketData;
66
63
  readonly morphoblueweetheth_945: MorphoBlueMarketData;
67
64
  readonly morphobluewbtcpyusd: MorphoBlueMarketData;
68
65
  readonly morphobluewbtceth: MorphoBlueMarketData;
69
66
  readonly morphoblueusdeusdt: MorphoBlueMarketData;
70
67
  readonly morphobluesusdeusdt: MorphoBlueMarketData;
71
- readonly morphobluesdaieth: MorphoBlueMarketData;
72
68
  readonly morphoblueezetheth_860: MorphoBlueMarketData;
73
69
  readonly morphoblueezetheth_945: MorphoBlueMarketData;
74
70
  readonly morphobluemkrusdc: MorphoBlueMarketData;
75
71
  readonly morphobluetbtcusdc: MorphoBlueMarketData;
76
72
  readonly morphobluecbbtceth: MorphoBlueMarketData;
77
73
  readonly morphobluecbbtcusdc: MorphoBlueMarketData;
78
- readonly morphoblueretheth_945: MorphoBlueMarketData;
79
74
  readonly morphobluesusdeusdc_915: MorphoBlueMarketData;
80
75
  readonly morphobluelbtcwbtc_945: MorphoBlueMarketData;
81
76
  readonly morphoblueusrusdc_915: MorphoBlueMarketData;
77
+ readonly morphobluesyrupusdcusdc_915: MorphoBlueMarketData;
78
+ readonly morphobluelbtcusdc_860: MorphoBlueMarketData;
79
+ readonly morphobluelbtccbbtc_945: MorphoBlueMarketData;
82
80
  readonly morphobluewstetheth_945: MorphoBlueMarketData;
83
81
  readonly morphobluewstetheth_945_exchange_rate: MorphoBlueMarketData;
84
82
  readonly morphobluewstetheth_965_exchange_rate: MorphoBlueMarketData;
85
- readonly morphobluesusdedai_770: MorphoBlueMarketData;
86
83
  readonly morphobluesusdedai_860: MorphoBlueMarketData;
87
84
  readonly morphobluesusdedai_915: MorphoBlueMarketData;
88
85
  readonly morphobluesusdedai_945: MorphoBlueMarketData;
89
- readonly morphoblueusdedai_770: MorphoBlueMarketData;
90
86
  readonly morphoblueusdedai_860: MorphoBlueMarketData;
91
87
  readonly morphoblueusdedai_915: MorphoBlueMarketData;
92
- readonly morphoblueusdedai_945: MorphoBlueMarketData;
93
88
  readonly morphobluecbethusdc_860_base: MorphoBlueMarketData;
94
89
  readonly morphobluecbethusdc_860_base_1c21c59d: MorphoBlueMarketData;
95
90
  readonly morphobluewstethusdc_860_base: MorphoBlueMarketData;
@@ -102,6 +97,7 @@ export declare const MorphoBlueMarkets: (networkId: NetworkNumber) => {
102
97
  readonly morphobluecbbtceurc_860_base: MorphoBlueMarketData;
103
98
  readonly morphobluewstetheurc_860_base: MorphoBlueMarketData;
104
99
  readonly morphobluelbtccbbtc_945_base: MorphoBlueMarketData;
100
+ readonly morphobluewetheurc_860_base: MorphoBlueMarketData;
105
101
  readonly morphobluewsuperoethbweth_915_base: MorphoBlueMarketData;
106
102
  readonly morphobluecbetheth_945_base: MorphoBlueMarketData;
107
103
  readonly morphobluecbetheth_965_base: MorphoBlueMarketData;
@@ -61,6 +61,7 @@ export const MORPHO_BLUE_ETH_USDC = (networkId = NetworkNumber.Eth) => ({
61
61
  marketId: '0xf9acc677910cc17f650416a22e2a14d5da7ccb9626db18f1bf94efe64f92b372',
62
62
  protocolName: 'morpho-blue',
63
63
  });
64
+ // nadja
64
65
  export const MORPHO_BLUE_WBTC_USDT = (networkId = NetworkNumber.Eth) => ({
65
66
  chainIds: [1],
66
67
  label: 'Morpho',
@@ -181,21 +182,6 @@ export const MORPHO_BLUE_SUSDE_USDT = (networkId = NetworkNumber.Eth) => ({
181
182
  marketId: '0xdc5333039bcf15f1237133f74d5806675d83d9cf19cfd4cfdd9be674842651bf',
182
183
  protocolName: 'morpho-blue',
183
184
  });
184
- export const MORPHO_BLUE_SDAI_ETH = (networkId = NetworkNumber.Eth) => ({
185
- chainIds: [1],
186
- label: 'Morpho',
187
- shortLabel: 'sDAI/ETH',
188
- value: MorphoBlueVersions.MorphoBlueSDAIEth,
189
- url: 'sdaieth',
190
- loanToken: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
191
- collateralToken: '0x83F20F44975D03b1b09e64809B757c47f942BEeA',
192
- oracle: '0x0f9bb760D76af1B5Ca89102084E1963F6698AFda',
193
- oracleType: MorphoBlueOracleType.MARKET_RATE,
194
- irm: '0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC',
195
- lltv: 0.86,
196
- marketId: '0x1929f8139224cb7d5db8c270addc9ce366d37ad279e1135f73c0adce74b0f936',
197
- protocolName: 'morpho-blue',
198
- });
199
185
  export const MORPHO_BLUE_MKR_USDC = (networkId = NetworkNumber.Eth) => ({
200
186
  chainIds: [1],
201
187
  label: 'Morpho',
@@ -303,21 +289,6 @@ export const MORPHO_BLUE_EZETH_ETH_945 = (networkId = NetworkNumber.Eth) => ({
303
289
  protocolName: 'morpho-blue',
304
290
  });
305
291
  // weETH/ETH
306
- export const MORPHO_BLUE_WEETH_ETH_860 = (networkId = NetworkNumber.Eth) => ({
307
- chainIds: [1],
308
- label: 'Morpho',
309
- shortLabel: 'weETH/ETH',
310
- value: MorphoBlueVersions.MorphoBlueWeEthEth_860,
311
- url: 'weetheth-698fe982',
312
- loanToken: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
313
- collateralToken: '0xcd5fe23c85820f7b72d0926fc9b05b43e359b7ee',
314
- oracle: '0x3fa58b74e9a8eA8768eb33c8453e9C2Ed089A40a',
315
- oracleType: MorphoBlueOracleType.MARKET_RATE,
316
- irm: '0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC',
317
- lltv: 0.86,
318
- marketId: '0x698fe98247a40c5771537b5786b2f3f9d78eb487b4ce4d75533cd0e94d88a115',
319
- protocolName: 'morpho-blue',
320
- });
321
292
  export const MORPHO_BLUE_WEETH_ETH_945 = (networkId = NetworkNumber.Eth) => ({
322
293
  chainIds: [1],
323
294
  label: 'Morpho',
@@ -380,21 +351,6 @@ export const MORPHO_BLUE_WSTETH_ETH_965_EXCHANGE_RATE = (networkId = NetworkNumb
380
351
  protocolName: 'morpho-blue',
381
352
  });
382
353
  // sUSDe/DAI
383
- export const MORPHO_BLUE_SUSDE_DAI_770 = (networkId = NetworkNumber.Eth) => ({
384
- chainIds: [1],
385
- label: 'Morpho',
386
- shortLabel: 'sUSDe/DAI',
387
- value: MorphoBlueVersions.MorphoBlueSUSDeDAI_770,
388
- url: 'susdedai-42dcfb38',
389
- loanToken: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
390
- collateralToken: '0x9D39A5DE30e57443BfF2A8307A4256c8797A3497',
391
- oracle: '0x5D916980D5Ae1737a8330Bf24dF812b2911Aae25',
392
- oracleType: MorphoBlueOracleType.ETHENA_RATE,
393
- irm: '0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC',
394
- lltv: 0.77,
395
- marketId: '0x42dcfb38bb98767afb6e38ccf90d59d0d3f0aa216beb3a234f12850323d17536',
396
- protocolName: 'morpho-blue',
397
- });
398
354
  export const MORPHO_BLUE_SUSDE_DAI_860 = (networkId = NetworkNumber.Eth) => ({
399
355
  chainIds: [1],
400
356
  label: 'Morpho',
@@ -441,21 +397,6 @@ export const MORPHO_BLUE_SUSDE_DAI_945 = (networkId = NetworkNumber.Eth) => ({
441
397
  protocolName: 'morpho-blue',
442
398
  });
443
399
  // USDe/DAI
444
- export const MORPHO_BLUE_USDE_DAI_770 = (networkId = NetworkNumber.Eth) => ({
445
- chainIds: [1],
446
- label: 'Morpho',
447
- shortLabel: 'USDe/DAI',
448
- value: MorphoBlueVersions.MorphoBlueUSDeDAI_770,
449
- url: 'usdedai-fd8493f0',
450
- loanToken: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
451
- collateralToken: '0x4c9EDD5852cd905f086C759E8383e09bff1E68B3',
452
- oracle: '0xaE4750d0813B5E37A51f7629beedd72AF1f9cA35',
453
- oracleType: MorphoBlueOracleType.ETHENA_RATE,
454
- irm: '0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC',
455
- lltv: 0.77,
456
- marketId: '0xfd8493f09eb6203615221378d89f53fcd92ff4f7d62cca87eece9a2fff59e86f',
457
- protocolName: 'morpho-blue',
458
- });
459
400
  export const MORPHO_BLUE_USDE_DAI_860 = (networkId = NetworkNumber.Eth) => ({
460
401
  chainIds: [1],
461
402
  label: 'Morpho',
@@ -486,49 +427,64 @@ export const MORPHO_BLUE_USDE_DAI_915 = (networkId = NetworkNumber.Eth) => ({
486
427
  marketId: '0x8e6aeb10c401de3279ac79b4b2ea15fc94b7d9cfc098d6c2a1ff7b2b26d9d02c',
487
428
  protocolName: 'morpho-blue',
488
429
  });
489
- export const MORPHO_BLUE_USDE_DAI_945 = (networkId = NetworkNumber.Eth) => ({
430
+ export const MORPHO_BLUE_USR_USDC_915 = (networkId = NetworkNumber.Eth) => ({
490
431
  chainIds: [1],
491
432
  label: 'Morpho',
492
- shortLabel: 'USDe/DAI',
493
- value: MorphoBlueVersions.MorphoBlueUSDeDAI_945,
494
- url: 'usdedai-db760246',
495
- loanToken: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
496
- collateralToken: '0x4c9EDD5852cd905f086C759E8383e09bff1E68B3',
497
- oracle: '0xaE4750d0813B5E37A51f7629beedd72AF1f9cA35',
498
- oracleType: MorphoBlueOracleType.ETHENA_RATE,
433
+ shortLabel: 'USR/USDC',
434
+ value: MorphoBlueVersions.MorphoBlueUSRUSDC_915,
435
+ url: 'usrusdc-8e7cc042',
436
+ loanToken: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
437
+ collateralToken: '0x66a1E37c9b0eAddca17d3662D6c05F4DECf3e110',
438
+ oracle: '0x8875ceb24E656FCA062759BDCF870F59A2B0187b',
439
+ oracleType: MorphoBlueOracleType.MARKET_RATE,
499
440
  irm: '0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC',
500
- lltv: 0.945,
501
- marketId: '0xdb760246f6859780f6c1b272d47a8f64710777121118e56e0cdb4b8b744a3094',
441
+ lltv: 0.915,
442
+ marketId: '0x8e7cc042d739a365c43d0a52d5f24160fa7ae9b7e7c9a479bd02a56041d4cf77',
502
443
  protocolName: 'morpho-blue',
503
444
  });
504
- export const MORPHO_BLUE_RETH_ETH_945 = (networkId = NetworkNumber.Eth) => ({
445
+ export const MORPHO_BLUE_SYRUPUSDC_USDC_915 = (networkId = NetworkNumber.Eth) => ({
505
446
  chainIds: [1],
506
447
  label: 'Morpho',
507
- shortLabel: 'rETH/ETH',
508
- value: MorphoBlueVersions.MorphoBlueREthEth_945,
509
- url: 'retheth-3c83f77b',
510
- loanToken: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
511
- collateralToken: '0xae78736Cd615f374D3085123A210448E74Fc6393',
512
- oracle: '0x1b4A3F92e5Fffd1d35A98751c9FE4472483579bB',
448
+ shortLabel: 'syrupUSDC/USDC',
449
+ value: MorphoBlueVersions.MorphoBlueSyrupUSDCUSDC_915,
450
+ url: 'syrupusdcusdc-729badf2',
451
+ loanToken: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
452
+ collateralToken: '0x80ac24aA929eaF5013f6436cdA2a7ba190f5Cc0b',
453
+ oracle: '0x80032f4cb6E3573b9ed61E888AF658E48Fb790cC',
513
454
  oracleType: MorphoBlueOracleType.MARKET_RATE,
514
455
  irm: '0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC',
515
- lltv: 0.945,
516
- marketId: '0x3c83f77bde9541f8d3d82533b19bbc1f97eb2f1098bb991728acbfbede09cc5d',
456
+ lltv: 0.915,
457
+ marketId: '0x729badf297ee9f2f6b3f717b96fd355fc6ec00422284ce1968e76647b258cf44',
517
458
  protocolName: 'morpho-blue',
518
459
  });
519
- export const MORPHO_BLUE_USR_USDC_915 = (networkId = NetworkNumber.Eth) => ({
460
+ export const MORPHO_BLUE_LBTC_USDC_860 = (networkId = NetworkNumber.Eth) => ({
520
461
  chainIds: [1],
521
462
  label: 'Morpho',
522
- shortLabel: 'USR/USDC',
523
- value: MorphoBlueVersions.MorphoBlueUSRUSDC_915,
524
- url: 'usrusdc-8e7cc042',
463
+ shortLabel: 'LBTC/USDC',
464
+ value: MorphoBlueVersions.MorphoBlueLBTCUSDC_860,
465
+ url: 'lbtcusdc-bf02d6c6',
525
466
  loanToken: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
526
- collateralToken: '0x66a1E37c9b0eAddca17d3662D6c05F4DECf3e110',
527
- oracle: '0x8875ceb24E656FCA062759BDCF870F59A2B0187b',
467
+ collateralToken: '0x8236a87084f8B84306f72007F36F2618A5634494',
468
+ oracle: '0xDCc04fFaCD7B49035cCdBbbA59a5f955944129DB',
528
469
  oracleType: MorphoBlueOracleType.MARKET_RATE,
529
470
  irm: '0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC',
530
- lltv: 0.915,
531
- marketId: '0x8e7cc042d739a365c43d0a52d5f24160fa7ae9b7e7c9a479bd02a56041d4cf77',
471
+ lltv: 0.860,
472
+ marketId: '0xbf02d6c6852fa0b8247d5514d0c91e6c1fbde9a168ac3fd2033028b5ee5ce6d0',
473
+ protocolName: 'morpho-blue',
474
+ });
475
+ export const MORPHO_BLUE_LBTC_CBBTC_945 = (networkId = NetworkNumber.Eth) => ({
476
+ chainIds: [1],
477
+ label: 'Morpho',
478
+ shortLabel: 'LBTC/cbBTC',
479
+ value: MorphoBlueVersions.MorphoBlueLBTCCbBTC_945,
480
+ url: 'lbtccbbtc-444bbce8',
481
+ loanToken: '0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf',
482
+ collateralToken: '0x8236a87084f8B84306f72007F36F2618A5634494',
483
+ oracle: '0x1Ce1a1e68F26019CAf5E823A56e300755D70D078',
484
+ oracleType: MorphoBlueOracleType.MARKET_RATE,
485
+ irm: '0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC',
486
+ lltv: 0.945,
487
+ marketId: '0x444bbce85350aae535b037d090c8bdf6cc4cfc6d79e17725413b4cb0f6183ad4',
532
488
  protocolName: 'morpho-blue',
533
489
  });
534
490
  // ###### BASE ########
@@ -802,6 +758,21 @@ export const MORPHO_BLUE_CBBTC_EURC_860_BASE = (networkId = NetworkNumber.Eth) =
802
758
  marketId: '0x67ebd84b2fb39e3bc5a13d97e4c07abe1ea617e40654826e9abce252e95f049e',
803
759
  protocolName: 'morpho-blue',
804
760
  });
761
+ export const MORPHO_BLUE_WETH_EURC_860_BASE = (networkId = NetworkNumber.Eth) => ({
762
+ chainIds: [NetworkNumber.Base],
763
+ label: 'Morpho',
764
+ shortLabel: 'ETH/EURC',
765
+ value: MorphoBlueVersions.MorphoBlueWETHEURC_860_Base,
766
+ url: 'wetheurc-a9b5142f',
767
+ loanToken: '0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42',
768
+ collateralToken: '0x4200000000000000000000000000000000000006',
769
+ oracle: '0xE1bb8E5b4930eC9FeC7f7943FCF6227649F14B37',
770
+ oracleType: MorphoBlueOracleType.MARKET_RATE,
771
+ irm: '0x46415998764C29aB2a25CbeA6254146D50D22687',
772
+ lltv: 0.86,
773
+ marketId: '0xa9b5142fa687a24c275faf731f13b52faa9873252bb4e1cb6077aa1f412edb0b',
774
+ protocolName: 'morpho-blue',
775
+ });
805
776
  export const MorphoBlueMarkets = (networkId) => ({
806
777
  [MorphoBlueVersions.MorphoBlueWstEthUSDC]: MORPHO_BLUE_WSTETH_USDC(networkId),
807
778
  [MorphoBlueVersions.MorphoBlueSDAIUSDC]: MORPHO_BLUE_SDAI_USDC(networkId),
@@ -811,37 +782,34 @@ export const MorphoBlueMarkets = (networkId) => ({
811
782
  [MorphoBlueVersions.MorphoBlueWstEthUSDT]: MORPHO_BLUE_WSTETH_USDT(networkId),
812
783
  [MorphoBlueVersions.MorphoBlueWstEthUSDA_Exchange_Rate]: MORPHO_BLUE_WSTETH_USDA_EXCHANGE_RATE(networkId),
813
784
  [MorphoBlueVersions.MorphoBlueWstEthPYUSD]: MORPHO_BLUE_WSTETH_PYUSD(networkId),
814
- [MorphoBlueVersions.MorphoBlueWeEthEth_860]: MORPHO_BLUE_WEETH_ETH_860(networkId),
815
785
  [MorphoBlueVersions.MorphoBlueWeEthEth_945]: MORPHO_BLUE_WEETH_ETH_945(networkId),
816
786
  [MorphoBlueVersions.MorphoBlueWBTCPYUSD]: MORPHO_BLUE_WBTC_PYUSD(networkId),
817
787
  [MorphoBlueVersions.MorphoBlueWBTCEth]: MORPHO_BLUE_WBTC_ETH(networkId),
818
788
  [MorphoBlueVersions.MorphoBlueUSDeUSDT]: MORPHO_BLUE_USDE_USDT(networkId),
819
789
  [MorphoBlueVersions.MorphoBlueSUSDeUSDT]: MORPHO_BLUE_SUSDE_USDT(networkId),
820
- [MorphoBlueVersions.MorphoBlueSDAIEth]: MORPHO_BLUE_SDAI_ETH(networkId),
821
790
  [MorphoBlueVersions.MorphoBlueEzEthEth_860]: MORPHO_BLUE_EZETH_ETH_860(networkId),
822
791
  [MorphoBlueVersions.MorphoBlueEzEthEth_945]: MORPHO_BLUE_EZETH_ETH_945(networkId),
823
792
  [MorphoBlueVersions.MorphoBlueMKRUSDC]: MORPHO_BLUE_MKR_USDC(networkId),
824
793
  [MorphoBlueVersions.MorphoBlueTBTCUSDC]: MORPHO_BLUE_TBTC_USDC(networkId),
825
794
  [MorphoBlueVersions.MorphoBlueCbBTCEth_915]: MORPHO_BLUE_CBBTC_ETH_915(networkId),
826
795
  [MorphoBlueVersions.MorphoBlueCbBTCUSDC_860]: MORPHO_BLUE_CBBTC_USDC_860(networkId),
827
- [MorphoBlueVersions.MorphoBlueREthEth_945]: MORPHO_BLUE_RETH_ETH_945(networkId),
828
796
  [MorphoBlueVersions.MorphoBlueSUSDeUSDC_915]: MORPHO_BLUE_SUSDE_USDC_915(networkId),
829
797
  [MorphoBlueVersions.MorphoBlueLBTCWBTC_945]: MORPHO_BLUE_LBTC_WBTC_945(networkId),
830
798
  [MorphoBlueVersions.MorphoBlueUSRUSDC_915]: MORPHO_BLUE_USR_USDC_915(networkId),
799
+ [MorphoBlueVersions.MorphoBlueSyrupUSDCUSDC_915]: MORPHO_BLUE_SYRUPUSDC_USDC_915(networkId),
800
+ [MorphoBlueVersions.MorphoBlueLBTCUSDC_860]: MORPHO_BLUE_LBTC_USDC_860(networkId),
801
+ [MorphoBlueVersions.MorphoBlueLBTCCbBTC_945]: MORPHO_BLUE_LBTC_CBBTC_945(networkId),
831
802
  // wstETH/WETH
832
803
  [MorphoBlueVersions.MorphoBlueWstEthEth_945]: MORPHO_BLUE_WSTETH_ETH_945(networkId),
833
804
  [MorphoBlueVersions.MorphoBlueWstEthEth_945_Exchange_Rate]: MORPHO_BLUE_WSTETH_ETH_945_EXCHANGE_RATE(networkId),
834
805
  [MorphoBlueVersions.MorphoBlueWstEthEth_965_Exchange_Rate]: MORPHO_BLUE_WSTETH_ETH_965_EXCHANGE_RATE(networkId),
835
806
  // sUSDe/DAI
836
- [MorphoBlueVersions.MorphoBlueSUSDeDAI_770]: MORPHO_BLUE_SUSDE_DAI_770(networkId),
837
807
  [MorphoBlueVersions.MorphoBlueSUSDeDAI_860]: MORPHO_BLUE_SUSDE_DAI_860(networkId),
838
808
  [MorphoBlueVersions.MorphoBlueSUSDeDAI_915]: MORPHO_BLUE_SUSDE_DAI_915(networkId),
839
809
  [MorphoBlueVersions.MorphoBlueSUSDeDAI_945]: MORPHO_BLUE_SUSDE_DAI_945(networkId),
840
810
  // USDe/DAI
841
- [MorphoBlueVersions.MorphoBlueUSDeDAI_770]: MORPHO_BLUE_USDE_DAI_770(networkId),
842
811
  [MorphoBlueVersions.MorphoBlueUSDeDAI_860]: MORPHO_BLUE_USDE_DAI_860(networkId),
843
812
  [MorphoBlueVersions.MorphoBlueUSDeDAI_915]: MORPHO_BLUE_USDE_DAI_915(networkId),
844
- [MorphoBlueVersions.MorphoBlueUSDeDAI_945]: MORPHO_BLUE_USDE_DAI_945(networkId),
845
813
  // Base
846
814
  [MorphoBlueVersions.MorphoBlueCbEthUSDC_860_Base]: MORPHO_BLUE_CBETH_USDC_860_BASE(networkId),
847
815
  [MorphoBlueVersions.MorphoBlueCbEthUSDC_860_Base_1c21c59d]: MORPHO_BLUE_CBETH_USDC_860_BASE_1c21c59d(networkId),
@@ -855,6 +823,7 @@ export const MorphoBlueMarkets = (networkId) => ({
855
823
  [MorphoBlueVersions.MorphoBlueCbBTCEURC_860_Base]: MORPHO_BLUE_CBBTC_EURC_860_BASE(networkId),
856
824
  [MorphoBlueVersions.MorphoBlueWstEthEURC_860_Base]: MORPHO_BLUE_WSTETH_EURC_860_BASE(networkId),
857
825
  [MorphoBlueVersions.MorphoBlueLBTCCbBTC_945_Base]: MORPHO_BLUE_LBTC_CBBTC_945_BASE(networkId),
826
+ [MorphoBlueVersions.MorphoBlueWETHEURC_860_Base]: MORPHO_BLUE_WETH_EURC_860_BASE(networkId),
858
827
  // wsuperOETHb/WETH Base
859
828
  [MorphoBlueVersions.MorphoBlueWsuperOETHbWETH_915_Base]: MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE(networkId),
860
829
  // cbETH/WETH Base
@@ -16,7 +16,11 @@ export const calcLeverageLiqPrice = (leverageType, assetPrice, borrowedUsd, borr
16
16
  return '0';
17
17
  };
18
18
  export const calculateBorrowingAssetLimit = (assetBorrowedUsd, borrowLimitUsd) => new Dec(assetBorrowedUsd).div(borrowLimitUsd).times(100).toString();
19
- export const STABLE_ASSETS = ['DAI', 'USDC', 'USDT', 'TUSD', 'USDP', 'GUSD', 'BUSD', 'SUSD', 'FRAX', 'LUSD', 'USDC.e', 'GHO', 'sDAI', 'crvUSD', 'BOLD'];
19
+ export const STABLE_ASSETS = [
20
+ 'DAI', 'USDC', 'USDT', 'TUSD', 'USDP', 'GUSD', 'BUSD', 'SUSD', 'FRAX', 'LUSD', 'USDC.e', 'GHO', 'sDAI', 'USDA',
21
+ 'USDe', 'sUSDe', 'USDS', 'sUSDS', 'USR', 'EURC', 'BOLD', 'BOLD Legacy', 'RLUSD', 'PT sUSDe July', 'PT eUSDe May',
22
+ 'USDtb', 'eUSDe', 'PT USDe July', 'PT eUSDe Aug', 'PT sUSDe Sep', 'PT USDe Sep', 'PT sUSDe Nov', 'PT USDe Nov', 'PT sUSDe Jan', 'PT USDe Jan',
23
+ ];
20
24
  export const isLeveragedPos = (usedAssets, dustLimit = 5) => {
21
25
  let borrowUnstable = 0;
22
26
  let supplyStable = 0;