@defisaver/positions-sdk 0.0.186 → 0.0.188-dev-markets

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 (78) hide show
  1. package/cjs/compoundV3/index.js +14 -9
  2. package/cjs/config/contracts.d.ts +670 -228
  3. package/cjs/config/contracts.js +41 -5
  4. package/cjs/contracts.d.ts +2 -0
  5. package/cjs/contracts.js +3 -1
  6. package/cjs/helpers/morphoBlueHelpers/index.d.ts +42 -1
  7. package/cjs/helpers/morphoBlueHelpers/index.js +203 -20
  8. package/cjs/markets/compound/index.d.ts +4 -0
  9. package/cjs/markets/compound/index.js +41 -1
  10. package/cjs/markets/compound/marketsAssets.d.ts +14 -0
  11. package/cjs/markets/compound/marketsAssets.js +17 -3
  12. package/cjs/markets/morphoBlue/index.d.ts +8 -0
  13. package/cjs/markets/morphoBlue/index.js +71 -2
  14. package/cjs/morphoBlue/index.js +27 -10
  15. package/cjs/services/priceService.d.ts +3 -0
  16. package/cjs/services/priceService.js +33 -1
  17. package/cjs/types/compound.d.ts +3 -1
  18. package/cjs/types/compound.js +2 -0
  19. package/cjs/types/contracts/generated/CUSDSv3.d.ts +441 -0
  20. package/cjs/types/contracts/generated/CUSDSv3.js +5 -0
  21. package/cjs/types/contracts/generated/CWstETHv3.d.ts +441 -0
  22. package/cjs/types/contracts/generated/CWstETHv3.js +5 -0
  23. package/cjs/types/contracts/generated/DFSFeedRegistry.d.ts +40 -0
  24. package/cjs/types/contracts/generated/DFSFeedRegistry.js +5 -0
  25. package/cjs/types/contracts/generated/MorphoBlueView.d.ts +5 -5
  26. package/cjs/types/contracts/generated/WstETHPriceFeed.d.ts +39 -0
  27. package/cjs/types/contracts/generated/WstETHPriceFeed.js +5 -0
  28. package/cjs/types/contracts/generated/index.d.ts +4 -0
  29. package/cjs/types/morphoBlue.d.ts +37 -1
  30. package/cjs/types/morphoBlue.js +4 -0
  31. package/esm/compoundV3/index.js +15 -10
  32. package/esm/config/contracts.d.ts +670 -228
  33. package/esm/config/contracts.js +41 -5
  34. package/esm/contracts.d.ts +2 -0
  35. package/esm/contracts.js +2 -0
  36. package/esm/helpers/morphoBlueHelpers/index.d.ts +42 -1
  37. package/esm/helpers/morphoBlueHelpers/index.js +200 -20
  38. package/esm/markets/compound/index.d.ts +4 -0
  39. package/esm/markets/compound/index.js +39 -1
  40. package/esm/markets/compound/marketsAssets.d.ts +14 -0
  41. package/esm/markets/compound/marketsAssets.js +16 -2
  42. package/esm/markets/morphoBlue/index.d.ts +8 -0
  43. package/esm/markets/morphoBlue/index.js +65 -1
  44. package/esm/morphoBlue/index.js +30 -13
  45. package/esm/services/priceService.d.ts +3 -0
  46. package/esm/services/priceService.js +31 -1
  47. package/esm/types/compound.d.ts +3 -1
  48. package/esm/types/compound.js +2 -0
  49. package/esm/types/contracts/generated/CUSDSv3.d.ts +441 -0
  50. package/esm/types/contracts/generated/CUSDSv3.js +4 -0
  51. package/esm/types/contracts/generated/CWstETHv3.d.ts +441 -0
  52. package/esm/types/contracts/generated/CWstETHv3.js +4 -0
  53. package/esm/types/contracts/generated/DFSFeedRegistry.d.ts +40 -0
  54. package/esm/types/contracts/generated/DFSFeedRegistry.js +4 -0
  55. package/esm/types/contracts/generated/MorphoBlueView.d.ts +5 -5
  56. package/esm/types/contracts/generated/WstETHPriceFeed.d.ts +39 -0
  57. package/esm/types/contracts/generated/WstETHPriceFeed.js +4 -0
  58. package/esm/types/contracts/generated/index.d.ts +4 -0
  59. package/esm/types/morphoBlue.d.ts +37 -1
  60. package/esm/types/morphoBlue.js +4 -0
  61. package/package.json +2 -2
  62. package/src/compoundV3/index.ts +20 -11
  63. package/src/config/contracts.js +41 -5
  64. package/src/contracts.ts +2 -0
  65. package/src/helpers/morphoBlueHelpers/index.ts +228 -19
  66. package/src/markets/compound/index.ts +42 -2
  67. package/src/markets/compound/marketsAssets.ts +20 -2
  68. package/src/markets/morphoBlue/index.ts +70 -1
  69. package/src/morphoBlue/index.ts +33 -16
  70. package/src/services/priceService.ts +41 -2
  71. package/src/types/compound.ts +2 -0
  72. package/src/types/contracts/generated/CUSDSv3.ts +685 -0
  73. package/src/types/contracts/generated/CWstETHv3.ts +685 -0
  74. package/src/types/contracts/generated/DFSFeedRegistry.ts +77 -0
  75. package/src/types/contracts/generated/MorphoBlueView.ts +9 -5
  76. package/src/types/contracts/generated/WstETHPriceFeed.ts +59 -0
  77. package/src/types/contracts/generated/index.ts +4 -0
  78. package/src/types/morphoBlue.ts +35 -0
@@ -8,7 +8,48 @@ export declare const getMorphoBlueAggregatedPositionData: ({ usedAssets, assetsD
8
8
  }) => MorphoBlueAggregatedPositionData;
9
9
  export declare const getSupplyRate: (totalSupplyAssets: string, totalBorrowAssets: string, borrowRate: string, fee: string) => string;
10
10
  export declare const getBorrowRate: (borrowRate: string, totalBorrowShares: string) => string;
11
- export declare const getApyAfterValuesEstimation: (selectedMarket: MorphoBlueMarketData, action: string, amount: string, asset: string, web3: Web3, network: NetworkNumber) => Promise<{
11
+ export declare const getApyAfterValuesEstimation: (selectedMarket: MorphoBlueMarketData, actions: {
12
+ action: string;
13
+ amount: string;
14
+ asset: string;
15
+ }[], web3: Web3, network: NetworkNumber) => Promise<{
12
16
  borrowRate: string;
13
17
  supplyRate: string;
14
18
  }>;
19
+ /**
20
+ * Get reallocatable liquidity to a given market and target borrow utilization
21
+ * @param marketId - Unique key of the market liquidity is reallocated to
22
+ * @param network - The network number
23
+ * @returns The reallocatable liquidity and target borrow utilization
24
+ */
25
+ export declare const getReallocatableLiquidity: (marketId: string, network?: NetworkNumber) => Promise<{
26
+ reallocatableLiquidity: string;
27
+ targetBorrowUtilization: string;
28
+ }>;
29
+ /**
30
+ * Get liquidity to allocate for a given amount to borrow.
31
+ * First, the function will try to calculate the amount of liquidity to allocate to be able to
32
+ * hit the target utilization. If it is not possible to allocate enough liquidity to hit the
33
+ * target utilization, the function will allocate the amount of liquidity needed to be able to
34
+ * borrow the selected amount.
35
+ * @param amountToBorrow - The amount to borrow
36
+ * @param totalBorrow - The total amount borrowed from market
37
+ * @param totalSupply - The total amount supplied to market
38
+ * @param targetBorrowUtilization - The target borrow utilization of market
39
+ * @param reallocatableLiquidityAssets - The amount of liquidity that can be reallocated from other markets
40
+ * @returns The amount of liquidity to allocate
41
+ */
42
+ export declare const getLiquidityToAllocate: (amountToBorrow: string, totalBorrow: string, totalSupply: string, targetBorrowUtilization: string, reallocatableLiquidityAssets: string) => string;
43
+ /**
44
+ * Get the vaults and withdrawals needed to reallocate liquidity for a given amount to borrow.
45
+ * Amount to be reallocated is calculated in `getLiquidityToAllocate`
46
+ * @param market - The market data
47
+ * @param assetsData - The assets data
48
+ * @param amountToBorrow - Amount being borrowed (not the amount being reallocated)
49
+ * @param network - The network number
50
+ * @returns The vaults and withdrawals needed to reallocate liquidity
51
+ */
52
+ export declare const getReallocation: (market: MorphoBlueMarketData, assetsData: MorphoBlueAssetsData, amountToBorrow: string, network?: NetworkNumber) => Promise<{
53
+ vaults: string[];
54
+ withdrawals: (string | string[])[][][];
55
+ }>;
@@ -12,13 +12,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.getApyAfterValuesEstimation = exports.getBorrowRate = exports.getSupplyRate = exports.getMorphoBlueAggregatedPositionData = void 0;
15
+ exports.getReallocation = exports.getLiquidityToAllocate = exports.getReallocatableLiquidity = exports.getApyAfterValuesEstimation = exports.getBorrowRate = exports.getSupplyRate = exports.getMorphoBlueAggregatedPositionData = void 0;
16
16
  const decimal_js_1 = __importDefault(require("decimal.js"));
17
17
  const tokens_1 = require("@defisaver/tokens");
18
18
  const moneymarket_1 = require("../../moneymarket");
19
19
  const staking_1 = require("../../staking");
20
+ const common_1 = require("../../types/common");
20
21
  const constants_1 = require("../../constants");
21
22
  const contracts_1 = require("../../contracts");
23
+ const utils_1 = require("../../services/utils");
22
24
  const getMorphoBlueAggregatedPositionData = ({ usedAssets, assetsData, marketInfo }) => {
23
25
  var _a, _b, _c, _d, _e, _f;
24
26
  const payload = {};
@@ -83,30 +85,211 @@ const getBorrowRate = (borrowRate, totalBorrowShares) => {
83
85
  return new decimal_js_1.default(compound(borrowRate)).div(1e18).mul(100).toString();
84
86
  };
85
87
  exports.getBorrowRate = getBorrowRate;
86
- const getApyAfterValuesEstimation = (selectedMarket, action, amount, asset, web3, network) => __awaiter(void 0, void 0, void 0, function* () {
88
+ const getApyAfterValuesEstimation = (selectedMarket, actions, web3, network) => __awaiter(void 0, void 0, void 0, function* () {
87
89
  const morphoBlueViewContract = (0, contracts_1.MorphoBlueViewContract)(web3, network);
88
90
  const lltvInWei = (0, tokens_1.assetAmountInWei)(selectedMarket.lltv, 'ETH');
89
91
  const marketData = [selectedMarket.loanToken, selectedMarket.collateralToken, selectedMarket.oracle, selectedMarket.irm, lltvInWei];
90
- const isBorrowOperation = constants_1.borrowOperations.includes(action);
91
- const amountInWei = (0, tokens_1.assetAmountInWei)(amount, asset);
92
- let liquidityAdded;
93
- let liquidityRemoved;
94
- if (isBorrowOperation) {
95
- liquidityAdded = action === 'payback' ? amountInWei : '0';
96
- liquidityRemoved = action === 'borrow' ? amountInWei : '0';
97
- }
98
- else {
99
- liquidityAdded = action === 'collateral' ? amountInWei : '0';
100
- liquidityRemoved = action === 'withdraw' ? amountInWei : '0';
101
- }
102
- const data = yield morphoBlueViewContract.methods.getApyAfterValuesEstimation([
103
- marketData,
104
- isBorrowOperation,
105
- liquidityAdded,
106
- liquidityRemoved,
107
- ]).call();
92
+ const params = actions.map(({ action, asset, amount }) => {
93
+ const isBorrowOperation = constants_1.borrowOperations.includes(action);
94
+ const amountInWei = (0, tokens_1.assetAmountInWei)(amount, asset);
95
+ let liquidityAdded;
96
+ let liquidityRemoved;
97
+ if (isBorrowOperation) {
98
+ liquidityAdded = action === 'payback' ? amountInWei : '0';
99
+ liquidityRemoved = action === 'borrow' ? amountInWei : '0';
100
+ }
101
+ else {
102
+ liquidityAdded = action === 'collateral' ? amountInWei : '0';
103
+ liquidityRemoved = action === 'withdraw' ? amountInWei : '0';
104
+ }
105
+ return {
106
+ liquidityAdded,
107
+ liquidityRemoved,
108
+ isBorrowOperation,
109
+ };
110
+ });
111
+ const data = yield morphoBlueViewContract.methods.getApyAfterValuesEstimation(marketData, params).call();
108
112
  const borrowRate = (0, exports.getBorrowRate)(data.borrowRate, data.market.totalBorrowShares);
109
113
  const supplyRate = (0, exports.getSupplyRate)(data.market.totalSupplyAssets, data.market.totalBorrowAssets, data.borrowRate, data.market.fee);
110
114
  return { borrowRate, supplyRate };
111
115
  });
112
116
  exports.getApyAfterValuesEstimation = getApyAfterValuesEstimation;
117
+ const API_URL = 'https://blue-api.morpho.org/graphql';
118
+ const MARKET_QUERY = `
119
+ query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
120
+ marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
121
+ reallocatableLiquidityAssets
122
+ targetBorrowUtilization
123
+ loanAsset {
124
+ address
125
+ decimals
126
+ priceUsd
127
+ }
128
+ state {
129
+ liquidityAssets
130
+ borrowAssets
131
+ supplyAssets
132
+ }
133
+ publicAllocatorSharedLiquidity {
134
+ assets
135
+ vault {
136
+ address
137
+ name
138
+ }
139
+ allocationMarket {
140
+ uniqueKey
141
+ loanAsset {
142
+ address
143
+ }
144
+ collateralAsset {
145
+ address
146
+ }
147
+ irmAddress
148
+ oracle {
149
+ address
150
+ }
151
+ lltv
152
+ }
153
+ }
154
+ loanAsset {
155
+ address
156
+ }
157
+ collateralAsset {
158
+ address
159
+ }
160
+ oracle {
161
+ address
162
+ }
163
+ irmAddress
164
+ lltv
165
+ }
166
+ }
167
+ `;
168
+ /**
169
+ * Get reallocatable liquidity to a given market and target borrow utilization
170
+ * @param marketId - Unique key of the market liquidity is reallocated to
171
+ * @param network - The network number
172
+ * @returns The reallocatable liquidity and target borrow utilization
173
+ */
174
+ const getReallocatableLiquidity = (marketId, network = common_1.NetworkNumber.Eth) => __awaiter(void 0, void 0, void 0, function* () {
175
+ var _a;
176
+ const response = yield fetch(API_URL, {
177
+ method: 'POST',
178
+ headers: { 'Content-Type': 'application/json' },
179
+ body: JSON.stringify({
180
+ query: MARKET_QUERY,
181
+ variables: { uniqueKey: marketId, chainId: network },
182
+ }),
183
+ });
184
+ const data = yield response.json();
185
+ const marketData = (_a = data === null || data === void 0 ? void 0 : data.data) === null || _a === void 0 ? void 0 : _a.marketByUniqueKey;
186
+ if (!marketData)
187
+ throw new Error('Market data not found');
188
+ return { reallocatableLiquidity: marketData.reallocatableLiquidityAssets, targetBorrowUtilization: marketData.targetBorrowUtilization };
189
+ });
190
+ exports.getReallocatableLiquidity = getReallocatableLiquidity;
191
+ /**
192
+ * Get liquidity to allocate for a given amount to borrow.
193
+ * First, the function will try to calculate the amount of liquidity to allocate to be able to
194
+ * hit the target utilization. If it is not possible to allocate enough liquidity to hit the
195
+ * target utilization, the function will allocate the amount of liquidity needed to be able to
196
+ * borrow the selected amount.
197
+ * @param amountToBorrow - The amount to borrow
198
+ * @param totalBorrow - The total amount borrowed from market
199
+ * @param totalSupply - The total amount supplied to market
200
+ * @param targetBorrowUtilization - The target borrow utilization of market
201
+ * @param reallocatableLiquidityAssets - The amount of liquidity that can be reallocated from other markets
202
+ * @returns The amount of liquidity to allocate
203
+ */
204
+ const getLiquidityToAllocate = (amountToBorrow, totalBorrow, totalSupply, targetBorrowUtilization, reallocatableLiquidityAssets) => {
205
+ const newTotalBorrowAssets = new decimal_js_1.default(totalBorrow).add(amountToBorrow).toString();
206
+ const leftToBorrow = new decimal_js_1.default(totalSupply).sub(totalBorrow).toString();
207
+ let liquidityToAllocate = new decimal_js_1.default(newTotalBorrowAssets).div(targetBorrowUtilization).mul(1e18).sub(totalSupply)
208
+ .toFixed(0)
209
+ .toString();
210
+ if (new decimal_js_1.default(reallocatableLiquidityAssets).lt(liquidityToAllocate) || new decimal_js_1.default(liquidityToAllocate).lt('0')) {
211
+ liquidityToAllocate = new decimal_js_1.default(amountToBorrow).lt(leftToBorrow) ? '0' : new decimal_js_1.default(amountToBorrow).sub(leftToBorrow).toString();
212
+ if (new decimal_js_1.default(reallocatableLiquidityAssets).lt(liquidityToAllocate))
213
+ throw new Error('Not enough liquidity available to allocate');
214
+ }
215
+ return liquidityToAllocate;
216
+ };
217
+ exports.getLiquidityToAllocate = getLiquidityToAllocate;
218
+ /**
219
+ * Get the vaults and withdrawals needed to reallocate liquidity for a given amount to borrow.
220
+ * Amount to be reallocated is calculated in `getLiquidityToAllocate`
221
+ * @param market - The market data
222
+ * @param assetsData - The assets data
223
+ * @param amountToBorrow - Amount being borrowed (not the amount being reallocated)
224
+ * @param network - The network number
225
+ * @returns The vaults and withdrawals needed to reallocate liquidity
226
+ */
227
+ const getReallocation = (market, assetsData, amountToBorrow, network = common_1.NetworkNumber.Eth) => __awaiter(void 0, void 0, void 0, function* () {
228
+ var _b, _c, _d;
229
+ const { marketId, loanToken } = market;
230
+ const response = yield fetch(API_URL, {
231
+ method: 'POST',
232
+ headers: { 'Content-Type': 'application/json' },
233
+ body: JSON.stringify({
234
+ query: MARKET_QUERY,
235
+ variables: { uniqueKey: marketId, chainId: network },
236
+ }),
237
+ });
238
+ const data = yield response.json();
239
+ const marketData = (_b = data === null || data === void 0 ? void 0 : data.data) === null || _b === void 0 ? void 0 : _b.marketByUniqueKey;
240
+ if (!marketData)
241
+ throw new Error('Market data not found');
242
+ const loanAssetInfo = (0, tokens_1.getAssetInfoByAddress)(loanToken, network);
243
+ const { totalBorrow, totalSupply } = assetsData[loanAssetInfo.symbol] || { totalBorrow: '0', totalSupply: '0' };
244
+ const totalBorrowWei = (0, tokens_1.assetAmountInWei)(totalBorrow, loanAssetInfo.symbol);
245
+ const totalSupplyWei = (0, tokens_1.assetAmountInWei)(totalSupply, loanAssetInfo.symbol);
246
+ const newTotalBorrowAssets = new decimal_js_1.default(totalBorrowWei).add(amountToBorrow).toString();
247
+ const newUtil = new decimal_js_1.default(newTotalBorrowAssets).div(totalSupplyWei).toString();
248
+ const newUtilScaled = new decimal_js_1.default(newUtil).mul(1e18).toString();
249
+ if (new decimal_js_1.default(newUtilScaled).lt(marketData.targetBorrowUtilization))
250
+ return { vaults: [], withdrawals: [] };
251
+ const liquidityToAllocate = (0, exports.getLiquidityToAllocate)(amountToBorrow, totalBorrowWei, totalSupplyWei, marketData.targetBorrowUtilization, marketData.reallocatableLiquidityAssets);
252
+ const vaultTotalAssets = marketData.publicAllocatorSharedLiquidity.reduce((acc, item) => {
253
+ const vaultAddress = item.vault.address;
254
+ acc[vaultAddress] = new decimal_js_1.default(acc[vaultAddress] || '0').add(item.assets).toString();
255
+ return acc;
256
+ }, {});
257
+ const sortedVaults = Object.entries(vaultTotalAssets).sort(([, a], [, b]) => new decimal_js_1.default(b || '0').sub(a || '0').toNumber());
258
+ const withdrawalsPerVault = {};
259
+ let totalReallocated = '0';
260
+ for (const [vaultAddress] of sortedVaults) {
261
+ if (new decimal_js_1.default(totalReallocated).gte(liquidityToAllocate))
262
+ break;
263
+ const vaultAllocations = marketData.publicAllocatorSharedLiquidity.filter((item) => (0, utils_1.compareAddresses)(item.vault.address, vaultAddress));
264
+ for (const item of vaultAllocations) {
265
+ if (new decimal_js_1.default(totalReallocated).gte(liquidityToAllocate))
266
+ break;
267
+ const itemAmount = item.assets;
268
+ const leftToAllocate = new decimal_js_1.default(liquidityToAllocate).sub(totalReallocated).toString();
269
+ const amountToTake = new decimal_js_1.default(itemAmount).lt(leftToAllocate) ? itemAmount : leftToAllocate;
270
+ totalReallocated = new decimal_js_1.default(totalReallocated).add(amountToTake).toString();
271
+ const withdrawal = [
272
+ [
273
+ item.allocationMarket.loanAsset.address,
274
+ (_c = item.allocationMarket.collateralAsset) === null || _c === void 0 ? void 0 : _c.address,
275
+ (_d = item.allocationMarket.oracle) === null || _d === void 0 ? void 0 : _d.address,
276
+ item.allocationMarket.irmAddress,
277
+ item.allocationMarket.lltv,
278
+ ],
279
+ amountToTake.toString(),
280
+ item.allocationMarket.uniqueKey,
281
+ ];
282
+ if (!withdrawalsPerVault[vaultAddress]) {
283
+ withdrawalsPerVault[vaultAddress] = [];
284
+ }
285
+ withdrawalsPerVault[vaultAddress].push(withdrawal);
286
+ }
287
+ }
288
+ const vaults = Object.keys(withdrawalsPerVault);
289
+ const withdrawals = vaults.map((vaultAddress) => withdrawalsPerVault[vaultAddress].sort((a, b) => a[2].localeCompare(b[2])).map(w => [w[0], w[1]]));
290
+ return {
291
+ vaults,
292
+ withdrawals,
293
+ };
294
+ });
295
+ exports.getReallocation = getReallocation;
@@ -8,6 +8,8 @@ export declare const COMPOUND_V3_USDCe: (networkId: NetworkNumber) => CompoundMa
8
8
  export declare const COMPOUND_V3_ETH: (networkId: NetworkNumber) => CompoundMarketData;
9
9
  export declare const COMPOUND_V3_USDBC: (networkId: NetworkNumber) => CompoundMarketData;
10
10
  export declare const COMPOUND_V3_USDT: (networkId: NetworkNumber) => CompoundMarketData;
11
+ export declare const COMPOUND_V3_WSTETH: (networkId: NetworkNumber) => CompoundMarketData;
12
+ export declare const COMPOUND_V3_USDS: (networkId: NetworkNumber) => CompoundMarketData;
11
13
  export declare const CompoundMarkets: (networkId: NetworkNumber) => {
12
14
  readonly v2: CompoundMarketData;
13
15
  readonly "v3-ETH": CompoundMarketData;
@@ -15,4 +17,6 @@ export declare const CompoundMarkets: (networkId: NetworkNumber) => {
15
17
  readonly "v3-USDbC": CompoundMarketData;
16
18
  readonly "v3-USDC.e": CompoundMarketData;
17
19
  readonly "v3-USDT": CompoundMarketData;
20
+ readonly "v3-wstETH": CompoundMarketData;
21
+ readonly "v3-USDS": CompoundMarketData;
18
22
  };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CompoundMarkets = exports.COMPOUND_V3_USDT = exports.COMPOUND_V3_USDBC = exports.COMPOUND_V3_ETH = exports.COMPOUND_V3_USDCe = exports.COMPOUND_V3_USDC = exports.COMPOUND_V2 = exports.v3USDTCollAssets = exports.v3USDCeCollAssets = exports.v3USDCCollAssets = exports.v3USDbCCollAssets = exports.v3ETHCollAssets = exports.compoundV2CollateralAssets = void 0;
3
+ exports.CompoundMarkets = exports.COMPOUND_V3_USDS = exports.COMPOUND_V3_WSTETH = exports.COMPOUND_V3_USDT = exports.COMPOUND_V3_USDBC = exports.COMPOUND_V3_ETH = exports.COMPOUND_V3_USDCe = exports.COMPOUND_V3_USDC = exports.COMPOUND_V2 = exports.v3USDTCollAssets = exports.v3USDCeCollAssets = exports.v3USDCCollAssets = exports.v3USDbCCollAssets = exports.v3ETHCollAssets = exports.compoundV2CollateralAssets = void 0;
4
4
  const contracts_1 = require("../../contracts");
5
5
  const types_1 = require("../../types");
6
6
  const common_1 = require("../../types/common");
@@ -21,6 +21,8 @@ const BULKER_OPTIONS = {
21
21
  [types_1.CompoundVersions.CompoundV3USDC]: { supply: 2, withdraw: 5 },
22
22
  [types_1.CompoundVersions.CompoundV3ETH]: STANDARD_BULKER_OPTIONS,
23
23
  [types_1.CompoundVersions.CompoundV3USDT]: STANDARD_BULKER_OPTIONS,
24
+ [types_1.CompoundVersions.CompoundV3wstETH]: STANDARD_BULKER_OPTIONS,
25
+ [types_1.CompoundVersions.CompoundV3USDS]: STANDARD_BULKER_OPTIONS,
24
26
  // Non-existing markets, keeping it because of typescript
25
27
  [types_1.CompoundVersions.CompoundV2]: EMPTY_BULKER_OPTIONS,
26
28
  [types_1.CompoundVersions.CompoundV3USDCe]: EMPTY_BULKER_OPTIONS,
@@ -34,6 +36,8 @@ const BULKER_OPTIONS = {
34
36
  // Non-existing markets, keeping it because of typescript
35
37
  [types_1.CompoundVersions.CompoundV2]: EMPTY_BULKER_OPTIONS,
36
38
  [types_1.CompoundVersions.CompoundV3USDbC]: EMPTY_BULKER_OPTIONS,
39
+ [types_1.CompoundVersions.CompoundV3wstETH]: EMPTY_BULKER_OPTIONS,
40
+ [types_1.CompoundVersions.CompoundV3USDS]: EMPTY_BULKER_OPTIONS,
37
41
  },
38
42
  [common_1.NetworkNumber.Base]: {
39
43
  [types_1.CompoundVersions.CompoundV3ETH]: STANDARD_BULKER_OPTIONS,
@@ -43,6 +47,8 @@ const BULKER_OPTIONS = {
43
47
  [types_1.CompoundVersions.CompoundV2]: EMPTY_BULKER_OPTIONS,
44
48
  [types_1.CompoundVersions.CompoundV3USDCe]: EMPTY_BULKER_OPTIONS,
45
49
  [types_1.CompoundVersions.CompoundV3USDT]: EMPTY_BULKER_OPTIONS,
50
+ [types_1.CompoundVersions.CompoundV3wstETH]: EMPTY_BULKER_OPTIONS,
51
+ [types_1.CompoundVersions.CompoundV3USDS]: EMPTY_BULKER_OPTIONS,
46
52
  },
47
53
  [common_1.NetworkNumber.Opt]: {
48
54
  [types_1.CompoundVersions.CompoundV3USDC]: STANDARD_BULKER_OPTIONS,
@@ -52,6 +58,8 @@ const BULKER_OPTIONS = {
52
58
  [types_1.CompoundVersions.CompoundV3USDbC]: EMPTY_BULKER_OPTIONS,
53
59
  [types_1.CompoundVersions.CompoundV2]: EMPTY_BULKER_OPTIONS,
54
60
  [types_1.CompoundVersions.CompoundV3USDCe]: EMPTY_BULKER_OPTIONS,
61
+ [types_1.CompoundVersions.CompoundV3wstETH]: EMPTY_BULKER_OPTIONS,
62
+ [types_1.CompoundVersions.CompoundV3USDS]: EMPTY_BULKER_OPTIONS,
55
63
  },
56
64
  };
57
65
  exports.COMPOUND_V2 = {
@@ -149,6 +157,36 @@ const COMPOUND_V3_USDT = (networkId) => ({
149
157
  // icon: SvgAdapter(protocolIcons.compoundv3),
150
158
  });
151
159
  exports.COMPOUND_V3_USDT = COMPOUND_V3_USDT;
160
+ const COMPOUND_V3_WSTETH = (networkId) => ({
161
+ chainIds: [common_1.NetworkNumber.Eth],
162
+ label: 'Compound V3 - wstETH',
163
+ shortLabel: 'v3',
164
+ value: types_1.CompoundVersions.CompoundV3wstETH,
165
+ baseAsset: 'wstETH',
166
+ collAssets: networkId ? marketsAssets_1.v3wstETHCollAssets[networkId] : [],
167
+ baseMarket: 'cWstETHv3',
168
+ baseMarketAddress: (0, contracts_1.getConfigContractAddress)('cWstETHv3', networkId),
169
+ secondLabel: 'Market',
170
+ bulkerName: networkId === common_1.NetworkNumber.Eth ? 'CompV3BulkerMainnetETH' : 'CompV3BulkerL2',
171
+ bulkerAddress: (0, contracts_1.getConfigContractAddress)(networkId === common_1.NetworkNumber.Eth ? 'CompV3BulkerMainnetETH' : 'CompV3BulkerL2', networkId),
172
+ bulkerOptions: BULKER_OPTIONS[networkId][types_1.CompoundVersions.CompoundV3wstETH],
173
+ });
174
+ exports.COMPOUND_V3_WSTETH = COMPOUND_V3_WSTETH;
175
+ const COMPOUND_V3_USDS = (networkId) => ({
176
+ chainIds: [common_1.NetworkNumber.Eth],
177
+ label: 'Compound V3 - USDS',
178
+ shortLabel: 'v3',
179
+ value: types_1.CompoundVersions.CompoundV3USDS,
180
+ baseAsset: 'USDS',
181
+ collAssets: networkId ? marketsAssets_1.v3USDSCollAssets[networkId] : [],
182
+ baseMarket: 'cUSDSv3',
183
+ baseMarketAddress: (0, contracts_1.getConfigContractAddress)('cUSDSv3', networkId),
184
+ secondLabel: 'Market',
185
+ bulkerName: networkId === common_1.NetworkNumber.Eth ? 'CompV3BulkerMainnetETH' : 'CompV3BulkerL2',
186
+ bulkerAddress: (0, contracts_1.getConfigContractAddress)(networkId === common_1.NetworkNumber.Eth ? 'CompV3BulkerMainnetETH' : 'CompV3BulkerL2', networkId),
187
+ bulkerOptions: BULKER_OPTIONS[networkId][types_1.CompoundVersions.CompoundV3USDS],
188
+ });
189
+ exports.COMPOUND_V3_USDS = COMPOUND_V3_USDS;
152
190
  const CompoundMarkets = (networkId) => ({
153
191
  [types_1.CompoundVersions.CompoundV2]: exports.COMPOUND_V2,
154
192
  [types_1.CompoundVersions.CompoundV3ETH]: (0, exports.COMPOUND_V3_ETH)(networkId),
@@ -156,5 +194,7 @@ const CompoundMarkets = (networkId) => ({
156
194
  [types_1.CompoundVersions.CompoundV3USDbC]: (0, exports.COMPOUND_V3_USDBC)(networkId),
157
195
  [types_1.CompoundVersions.CompoundV3USDCe]: (0, exports.COMPOUND_V3_USDCe)(networkId),
158
196
  [types_1.CompoundVersions.CompoundV3USDT]: (0, exports.COMPOUND_V3_USDT)(networkId),
197
+ [types_1.CompoundVersions.CompoundV3wstETH]: (0, exports.COMPOUND_V3_WSTETH)(networkId),
198
+ [types_1.CompoundVersions.CompoundV3USDS]: (0, exports.COMPOUND_V3_USDS)(networkId),
159
199
  });
160
200
  exports.CompoundMarkets = CompoundMarkets;
@@ -42,3 +42,17 @@ export declare const v3USDTCollAssets: {
42
42
  42161: string[];
43
43
  8453: never[];
44
44
  };
45
+ export declare const v3USDSCollAssetsEth: string[];
46
+ export declare const v3USDSCollAssets: {
47
+ 1: string[];
48
+ 10: never[];
49
+ 42161: never[];
50
+ 8453: never[];
51
+ };
52
+ export declare const v3wstETHCollAssetsEth: string[];
53
+ export declare const v3wstETHCollAssets: {
54
+ 1: string[];
55
+ 10: never[];
56
+ 42161: never[];
57
+ 8453: never[];
58
+ };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.v3USDTCollAssets = exports.v3USDTCollAssetsOpt = exports.v3USDTCollAssetsArb = exports.v3USDTCollAssetsEth = exports.v3USDbCCollAssets = exports.v3USDbCCollAssetsBase = exports.v3ETHCollAssets = exports.v3ETHCollAssetsOpt = exports.v3ETHCollAssetsArb = exports.v3ETHCollAssetsBase = exports.v3ETHCollAssetsEth = exports.v3USDCeCollAssets = exports.v3USDCeCollAssetsArb = exports.v3USDCCollAssets = exports.v3USDCCollAssetsOpt = exports.v3USDCCollAssetsBase = exports.v3USDCCollAssetsArb = exports.v3USDCCollAssetsEth = exports.compoundV2CollateralAssets = void 0;
3
+ exports.v3wstETHCollAssets = exports.v3wstETHCollAssetsEth = exports.v3USDSCollAssets = exports.v3USDSCollAssetsEth = exports.v3USDTCollAssets = exports.v3USDTCollAssetsOpt = exports.v3USDTCollAssetsArb = exports.v3USDTCollAssetsEth = exports.v3USDbCCollAssets = exports.v3USDbCCollAssetsBase = exports.v3ETHCollAssets = exports.v3ETHCollAssetsOpt = exports.v3ETHCollAssetsArb = exports.v3ETHCollAssetsBase = exports.v3ETHCollAssetsEth = exports.v3USDCeCollAssets = exports.v3USDCeCollAssetsArb = exports.v3USDCCollAssets = exports.v3USDCCollAssetsOpt = exports.v3USDCCollAssetsBase = exports.v3USDCCollAssetsArb = exports.v3USDCCollAssetsEth = exports.compoundV2CollateralAssets = void 0;
4
4
  const tokens_1 = require("@defisaver/tokens");
5
5
  const common_1 = require("../../types/common");
6
6
  exports.compoundV2CollateralAssets = [
@@ -8,7 +8,7 @@ exports.compoundV2CollateralAssets = [
8
8
  'cTUSD', 'cLINK', 'cUSDP', 'cUNI', 'cCOMP', 'cMKR', 'cSUSHI', 'cAAVE', 'cYFI',
9
9
  ].map((symbol) => (0, tokens_1.getAssetInfo)(symbol));
10
10
  exports.v3USDCCollAssetsEth = ['COMP', 'WBTC', 'ETH', 'UNI', 'LINK', 'wstETH', 'cbBTC', 'tBTC'];
11
- exports.v3USDCCollAssetsArb = ['ARB', 'ETH', 'GMX', 'WBTC', 'wstETH', 'ezETH'];
11
+ exports.v3USDCCollAssetsArb = ['ARB', 'ETH', 'GMX', 'WBTC', 'wstETH', 'ezETH', 'wUSDM'];
12
12
  exports.v3USDCCollAssetsBase = ['ETH', 'cbETH', 'wstETH', 'cbBTC'];
13
13
  exports.v3USDCCollAssetsOpt = ['ETH', 'OP', 'WBTC', 'wstETH'];
14
14
  // @dev Keep assets in array, do not assign directly, so we can parse it and edit it programmatically with `scripts/updateMarkets`
@@ -45,7 +45,7 @@ exports.v3USDbCCollAssets = {
45
45
  [common_1.NetworkNumber.Arb]: [],
46
46
  [common_1.NetworkNumber.Base]: exports.v3USDbCCollAssetsBase,
47
47
  };
48
- exports.v3USDTCollAssetsEth = ['COMP', 'ETH', 'WBTC', 'UNI', 'LINK', 'wstETH', 'cbBTC', 'tBTC', 'wUSDM', 'sFRAX'];
48
+ exports.v3USDTCollAssetsEth = ['COMP', 'ETH', 'WBTC', 'UNI', 'LINK', 'wstETH', 'cbBTC', 'tBTC', 'wUSDM', 'sFRAX', 'mETH'];
49
49
  exports.v3USDTCollAssetsArb = ['ETH', 'WBTC', 'wstETH', 'ARB', 'GMX'];
50
50
  exports.v3USDTCollAssetsOpt = ['ETH', 'WBTC', 'OP', 'wstETH'];
51
51
  // @dev Keep assets in array, do not assign directly, so we can parse it and edit it programmatically with `scripts/updateMarkets`
@@ -55,3 +55,17 @@ exports.v3USDTCollAssets = {
55
55
  [common_1.NetworkNumber.Arb]: exports.v3USDTCollAssetsArb,
56
56
  [common_1.NetworkNumber.Base]: [],
57
57
  };
58
+ exports.v3USDSCollAssetsEth = ['wstETH', 'ETH', 'sUSDS', 'cbETH', 'tBTC', 'USDe'];
59
+ exports.v3USDSCollAssets = {
60
+ [common_1.NetworkNumber.Eth]: exports.v3USDSCollAssetsEth,
61
+ [common_1.NetworkNumber.Opt]: [],
62
+ [common_1.NetworkNumber.Arb]: [],
63
+ [common_1.NetworkNumber.Base]: [],
64
+ };
65
+ exports.v3wstETHCollAssetsEth = ['rsETH', 'ezETH'];
66
+ exports.v3wstETHCollAssets = {
67
+ [common_1.NetworkNumber.Eth]: exports.v3wstETHCollAssetsEth,
68
+ [common_1.NetworkNumber.Opt]: [],
69
+ [common_1.NetworkNumber.Arb]: [],
70
+ [common_1.NetworkNumber.Base]: [],
71
+ };
@@ -48,6 +48,10 @@ export declare const MORPHO_BLUE_RETH_ETH_945_BASE: (networkId?: NetworkNumber)
48
48
  export declare const MORPHO_BLUE_CBBTC_ETH_915_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
49
49
  export declare const MORPHO_BLUE_CBBTC_USDC_860_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
50
50
  export declare const MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
51
+ export declare const MORPHO_BLUE_LBTC_WBTC_945: (networkId?: NetworkNumber) => MorphoBlueMarketData;
52
+ export declare const MORPHO_BLUE_LBTC_CBBTC_945_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
53
+ export declare const MORPHO_BLUE_WSTETH_EURC_860_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
54
+ export declare const MORPHO_BLUE_CBBTC_EURC_860_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
51
55
  export declare const MorphoBlueMarkets: (networkId: NetworkNumber) => {
52
56
  readonly morphobluewstethusdc: MorphoBlueMarketData;
53
57
  readonly morphobluesdaiusdc: MorphoBlueMarketData;
@@ -72,6 +76,7 @@ export declare const MorphoBlueMarkets: (networkId: NetworkNumber) => {
72
76
  readonly morphobluecbbtcusdc: MorphoBlueMarketData;
73
77
  readonly morphoblueretheth_945: MorphoBlueMarketData;
74
78
  readonly morphobluesusdeusdc_915: MorphoBlueMarketData;
79
+ readonly morphobluelbtcwbtc_945: MorphoBlueMarketData;
75
80
  readonly morphobluewstetheth_945: MorphoBlueMarketData;
76
81
  readonly morphobluewstetheth_945_exchange_rate: MorphoBlueMarketData;
77
82
  readonly morphobluewstetheth_965_exchange_rate: MorphoBlueMarketData;
@@ -92,6 +97,9 @@ export declare const MorphoBlueMarkets: (networkId: NetworkNumber) => {
92
97
  readonly morphoblueretheth_945_base: MorphoBlueMarketData;
93
98
  readonly morphobluecbbtceth_915_base: MorphoBlueMarketData;
94
99
  readonly morphobluecbbtcusdc_860_base: MorphoBlueMarketData;
100
+ readonly morphobluecbbtceurc_860_base: MorphoBlueMarketData;
101
+ readonly morphobluewstetheurc_860_base: MorphoBlueMarketData;
102
+ readonly morphobluelbtccbbtc_945_base: MorphoBlueMarketData;
95
103
  readonly morphobluewsuperoethbweth_915_base: MorphoBlueMarketData;
96
104
  readonly morphobluecbetheth_945_base: MorphoBlueMarketData;
97
105
  readonly morphobluecbetheth_965_base: MorphoBlueMarketData;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findMorphoBlueMarket = exports.MorphoBlueMarkets = 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_RETH_ETH_945 = exports.MORPHO_BLUE_USDE_DAI_945 = exports.MORPHO_BLUE_USDE_DAI_915 = exports.MORPHO_BLUE_USDE_DAI_860 = exports.MORPHO_BLUE_USDE_DAI_770 = exports.MORPHO_BLUE_SUSDE_DAI_945 = exports.MORPHO_BLUE_SUSDE_DAI_915 = exports.MORPHO_BLUE_SUSDE_DAI_860 = exports.MORPHO_BLUE_SUSDE_DAI_770 = 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_WEETH_ETH_860 = 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_SDAI_ETH = 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;
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_RETH_ETH_945 = exports.MORPHO_BLUE_USDE_DAI_945 = exports.MORPHO_BLUE_USDE_DAI_915 = exports.MORPHO_BLUE_USDE_DAI_860 = exports.MORPHO_BLUE_USDE_DAI_770 = exports.MORPHO_BLUE_SUSDE_DAI_945 = exports.MORPHO_BLUE_SUSDE_DAI_915 = exports.MORPHO_BLUE_SUSDE_DAI_860 = exports.MORPHO_BLUE_SUSDE_DAI_770 = 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_WEETH_ETH_860 = 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_SDAI_ETH = 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_CBBTC_EURC_860_BASE = exports.MORPHO_BLUE_WSTETH_EURC_860_BASE = void 0;
4
5
  const utils_1 = require("../../services/utils");
5
6
  const types_1 = require("../../types");
6
7
  const common_1 = require("../../types/common");
@@ -765,7 +766,7 @@ exports.MORPHO_BLUE_CBBTC_USDC_860_BASE = MORPHO_BLUE_CBBTC_USDC_860_BASE;
765
766
  const MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE = (networkId = common_1.NetworkNumber.Eth) => ({
766
767
  chainIds: [common_1.NetworkNumber.Base],
767
768
  label: 'Morpho',
768
- shortLabel: 'wsuperOETHb/WETH',
769
+ shortLabel: 'wsuperOETHb/ETH',
769
770
  value: types_1.MorphoBlueVersions.MorphoBlueWsuperOETHbWETH_915_Base,
770
771
  url: 'wsuperoethbweth-144bf18d',
771
772
  loanToken: '0x4200000000000000000000000000000000000006',
@@ -778,6 +779,70 @@ const MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE = (networkId = common_1.NetworkNumbe
778
779
  protocolName: 'morpho-blue',
779
780
  });
780
781
  exports.MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE = MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE;
782
+ const MORPHO_BLUE_LBTC_WBTC_945 = (networkId = common_1.NetworkNumber.Eth) => ({
783
+ chainIds: [common_1.NetworkNumber.Eth],
784
+ label: 'Morpho',
785
+ shortLabel: 'LBTC/WBTC',
786
+ value: types_1.MorphoBlueVersions.MorphoBlueLBTCWBTC_945,
787
+ url: 'lbtcwbtc-f6a05662',
788
+ loanToken: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599',
789
+ collateralToken: '0x8236a87084f8B84306f72007F36F2618A5634494',
790
+ oracle: '0xa98105B8227E0f2157816Feb7A331364A9B74F80',
791
+ oracleType: types_1.MorphoBlueOracleType.MARKET_RATE,
792
+ irm: '0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC',
793
+ lltv: 0.945,
794
+ marketId: '0xf6a056627a51e511ec7f48332421432ea6971fc148d8f3c451e14ea108026549',
795
+ protocolName: 'morpho-blue',
796
+ });
797
+ exports.MORPHO_BLUE_LBTC_WBTC_945 = MORPHO_BLUE_LBTC_WBTC_945;
798
+ const MORPHO_BLUE_LBTC_CBBTC_945_BASE = (networkId = common_1.NetworkNumber.Eth) => ({
799
+ chainIds: [common_1.NetworkNumber.Base],
800
+ label: 'Morpho',
801
+ shortLabel: 'LBTC/cbBTC',
802
+ value: types_1.MorphoBlueVersions.MorphoBlueLBTCCbBTC_945_Base,
803
+ url: 'lbtccbbtc-30767836',
804
+ loanToken: '0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf',
805
+ collateralToken: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',
806
+ oracle: '0x9Ae0E86e88AEE94B700240eBE0BD17D969BAD0EA',
807
+ oracleType: types_1.MorphoBlueOracleType.MARKET_RATE,
808
+ irm: '0x46415998764C29aB2a25CbeA6254146D50D22687',
809
+ lltv: 0.945,
810
+ marketId: '0x30767836635facec1282e6ef4a5981406ed4e72727b3a63a3a72c74e8279a8d7',
811
+ protocolName: 'morpho-blue',
812
+ });
813
+ exports.MORPHO_BLUE_LBTC_CBBTC_945_BASE = MORPHO_BLUE_LBTC_CBBTC_945_BASE;
814
+ const MORPHO_BLUE_WSTETH_EURC_860_BASE = (networkId = common_1.NetworkNumber.Eth) => ({
815
+ chainIds: [common_1.NetworkNumber.Base],
816
+ label: 'Morpho',
817
+ shortLabel: 'wstETH/EURC',
818
+ value: types_1.MorphoBlueVersions.MorphoBlueWstEthEURC_860_Base,
819
+ url: 'wstetheurc-f7e40290',
820
+ loanToken: '0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42',
821
+ collateralToken: '0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452',
822
+ oracle: '0xa54122f0E0766258377Ffe732e454A3248f454F4',
823
+ oracleType: types_1.MorphoBlueOracleType.MARKET_RATE,
824
+ irm: '0x46415998764C29aB2a25CbeA6254146D50D22687',
825
+ lltv: 0.86,
826
+ marketId: '0xf7e40290f8ca1d5848b3c129502599aa0f0602eb5f5235218797a34242719561',
827
+ protocolName: 'morpho-blue',
828
+ });
829
+ exports.MORPHO_BLUE_WSTETH_EURC_860_BASE = MORPHO_BLUE_WSTETH_EURC_860_BASE;
830
+ const MORPHO_BLUE_CBBTC_EURC_860_BASE = (networkId = common_1.NetworkNumber.Eth) => ({
831
+ chainIds: [common_1.NetworkNumber.Base],
832
+ label: 'Morpho',
833
+ shortLabel: 'cbBTC/EURC',
834
+ value: types_1.MorphoBlueVersions.MorphoBlueCbBTCEURC_860_Base,
835
+ url: 'cbbtceurc-67ebd84b',
836
+ loanToken: '0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42',
837
+ collateralToken: '0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf',
838
+ oracle: '0xA857411CB2231a6A87a3bEF987a4cED8A067d799',
839
+ oracleType: types_1.MorphoBlueOracleType.MARKET_RATE,
840
+ irm: '0x46415998764C29aB2a25CbeA6254146D50D22687',
841
+ lltv: 0.86,
842
+ marketId: '0x67ebd84b2fb39e3bc5a13d97e4c07abe1ea617e40654826e9abce252e95f049e',
843
+ protocolName: 'morpho-blue',
844
+ });
845
+ exports.MORPHO_BLUE_CBBTC_EURC_860_BASE = MORPHO_BLUE_CBBTC_EURC_860_BASE;
781
846
  const MorphoBlueMarkets = (networkId) => ({
782
847
  [types_1.MorphoBlueVersions.MorphoBlueWstEthUSDC]: (0, exports.MORPHO_BLUE_WSTETH_USDC)(networkId),
783
848
  [types_1.MorphoBlueVersions.MorphoBlueSDAIUSDC]: (0, exports.MORPHO_BLUE_SDAI_USDC)(networkId),
@@ -802,6 +867,7 @@ const MorphoBlueMarkets = (networkId) => ({
802
867
  [types_1.MorphoBlueVersions.MorphoBlueCbBTCUSDC_860]: (0, exports.MORPHO_BLUE_CBBTC_USDC_860)(networkId),
803
868
  [types_1.MorphoBlueVersions.MorphoBlueREthEth_945]: (0, exports.MORPHO_BLUE_RETH_ETH_945)(networkId),
804
869
  [types_1.MorphoBlueVersions.MorphoBlueSUSDeUSDC_915]: (0, exports.MORPHO_BLUE_SUSDE_USDC_915)(networkId),
870
+ [types_1.MorphoBlueVersions.MorphoBlueLBTCWBTC_945]: (0, exports.MORPHO_BLUE_LBTC_WBTC_945)(networkId),
805
871
  // wstETH/WETH
806
872
  [types_1.MorphoBlueVersions.MorphoBlueWstEthEth_945]: (0, exports.MORPHO_BLUE_WSTETH_ETH_945)(networkId),
807
873
  [types_1.MorphoBlueVersions.MorphoBlueWstEthEth_945_Exchange_Rate]: (0, exports.MORPHO_BLUE_WSTETH_ETH_945_EXCHANGE_RATE)(networkId),
@@ -826,6 +892,9 @@ const MorphoBlueMarkets = (networkId) => ({
826
892
  [types_1.MorphoBlueVersions.MorphoBlueREthEth_945_Base]: (0, exports.MORPHO_BLUE_RETH_ETH_945_BASE)(networkId),
827
893
  [types_1.MorphoBlueVersions.MorphoBlueCbBTCEth_915_Base]: (0, exports.MORPHO_BLUE_CBBTC_ETH_915_BASE)(networkId),
828
894
  [types_1.MorphoBlueVersions.MorphoBlueCbBTCUSDC_860_Base]: (0, exports.MORPHO_BLUE_CBBTC_USDC_860_BASE)(networkId),
895
+ [types_1.MorphoBlueVersions.MorphoBlueCbBTCEURC_860_Base]: (0, exports.MORPHO_BLUE_CBBTC_EURC_860_BASE)(networkId),
896
+ [types_1.MorphoBlueVersions.MorphoBlueWstEthEURC_860_Base]: (0, exports.MORPHO_BLUE_WSTETH_EURC_860_BASE)(networkId),
897
+ [types_1.MorphoBlueVersions.MorphoBlueLBTCCbBTC_945_Base]: (0, exports.MORPHO_BLUE_LBTC_CBBTC_945_BASE)(networkId),
829
898
  // wsuperOETHb/WETH Base
830
899
  [types_1.MorphoBlueVersions.MorphoBlueWsuperOETHbWETH_915_Base]: (0, exports.MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE)(networkId),
831
900
  // cbETH/WETH Base