@defisaver/positions-sdk 2.1.150-cirbtc-dev → 2.1.151-midnight-dev
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.
- package/cjs/claiming/compV3.js +0 -1
- package/cjs/config/contracts.d.ts +4 -0
- package/cjs/config/contracts.js +4 -0
- package/cjs/helpers/morphoMidnightHelpers/tenor.d.ts +6 -2
- package/cjs/helpers/morphoMidnightHelpers/tenor.js +5 -1
- package/cjs/markets/index.d.ts +1 -1
- package/cjs/markets/index.js +2 -1
- package/cjs/markets/morphoBlue/index.js +122 -122
- package/cjs/markets/morphoMidnight/index.d.ts +44 -10
- package/cjs/markets/morphoMidnight/index.js +380 -59
- package/cjs/morphoMidnight/index.js +11 -1
- package/cjs/portfolio/index.js +3 -27
- package/cjs/types/morphoMidnight.d.ts +35 -4
- package/cjs/types/morphoMidnight.js +23 -0
- package/esm/claiming/compV3.js +0 -1
- package/esm/config/contracts.d.ts +4 -0
- package/esm/config/contracts.js +4 -0
- package/esm/helpers/morphoMidnightHelpers/tenor.d.ts +6 -2
- package/esm/helpers/morphoMidnightHelpers/tenor.js +6 -2
- package/esm/markets/index.d.ts +1 -1
- package/esm/markets/index.js +1 -1
- package/esm/markets/morphoBlue/index.js +122 -122
- package/esm/markets/morphoMidnight/index.d.ts +44 -10
- package/esm/markets/morphoMidnight/index.js +356 -58
- package/esm/morphoMidnight/index.js +11 -1
- package/esm/portfolio/index.js +4 -28
- package/esm/types/morphoMidnight.d.ts +35 -4
- package/esm/types/morphoMidnight.js +23 -0
- package/package.json +1 -1
- package/src/claiming/compV3.ts +0 -1
- package/src/config/contracts.ts +4 -0
- package/src/helpers/morphoMidnightHelpers/tenor.ts +6 -2
- package/src/markets/index.ts +1 -0
- package/src/markets/morphoBlue/index.ts +122 -122
- package/src/markets/morphoMidnight/index.ts +446 -60
- package/src/morphoMidnight/index.ts +8 -1
- package/src/portfolio/index.ts +3 -27
- package/src/types/morphoMidnight.ts +37 -3
|
@@ -1,24 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20260925_ETH = exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20270326_ETH = exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20270226_ETH = exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20270129_ETH = exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20261225_ETH = exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20261127_ETH = exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20261030_ETH = exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20260925_ETH = exports.MORPHO_MIDNIGHT_WBTC_USDC_860_20270326_ETH = exports.MORPHO_MIDNIGHT_WBTC_USDC_860_20270226_ETH = exports.MORPHO_MIDNIGHT_WBTC_USDC_860_20270129_ETH = exports.MORPHO_MIDNIGHT_WBTC_USDC_860_20261225_ETH = exports.MORPHO_MIDNIGHT_WBTC_USDC_860_20261127_ETH = exports.MORPHO_MIDNIGHT_WBTC_USDC_860_20261030_ETH = exports.MORPHO_MIDNIGHT_WBTC_USDC_860_20260925_ETH = exports.MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20270129 = exports.MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261225 = exports.MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261127 = exports.MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261030 = exports.MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20260925 = exports.MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20270129 = exports.MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20261225 = exports.MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20261127 = exports.MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20261030 = exports.MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20260925 = exports.MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261217 = exports.MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261119 = exports.MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261022 = exports.MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20260924 = exports.MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20260827 = exports.MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20261217 = exports.MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20261119 = exports.MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20261022 = exports.MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20260924 = exports.MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20260827 = exports.MORPHO_MIDNIGHT_TENOR_CBBTC_USDC_860_20261217 = exports.MORPHO_MIDNIGHT_TENOR_CBBTC_USDC_860_20261119 = exports.MORPHO_MIDNIGHT_TENOR_CBBTC_USDC_860_20261022 = exports.MORPHO_MIDNIGHT_TENOR_CBBTC_USDC_860_20260924 = exports.MORPHO_MIDNIGHT_TENOR_CBBTC_USDC_860_20260827 = exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20270129 = exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20261225 = exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20261127 = exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20261030 = exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20260925 = exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20260828 = exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20260731 = exports.midnightCoreAddress = exports.MIDNIGHT_ETH = exports.MIDNIGHT_BASE = void 0;
|
|
4
|
+
exports.morphoMidnightVisibleCollaterals = exports.morphoMidnightMarketCollateralParams = exports.findMorphoMidnightMarket = exports.isTenorMidnightMarket = exports.MorphoMidnightMarkets = exports.MORPHO_MIDNIGHT_TENOR_SIUSD_USDC_915_20260925_ETH = exports.MORPHO_MIDNIGHT_TENOR_REUSD_USDC_915_20260925_ETH = exports.MORPHO_MIDNIGHT_TENOR_USD3_USDC_915_20260925_ETH = exports.MORPHO_MIDNIGHT_TENOR_WSRUSD_USDC_945_20260925_ETH = exports.MORPHO_MIDNIGHT_TENOR_STRUSD_USDC_860_20260925_ETH = void 0;
|
|
4
5
|
const types_1 = require("../../types");
|
|
5
6
|
const constants_1 = require("../../constants");
|
|
6
7
|
/**
|
|
7
|
-
* Morpho Midnight core contract
|
|
8
|
-
*
|
|
9
|
-
* encode for `Midnight.take`.
|
|
8
|
+
* Morpho Midnight core contract, one per chain. Every Midnight market on a chain trades against its core,
|
|
9
|
+
* whoever curates the order book — it is part of the market struct the id is hashed from, and it is what
|
|
10
|
+
* offer tuples encode for `Midnight.take`. Listed at
|
|
11
|
+
* https://docs.morpho.org/get-started/resources/addresses/.
|
|
10
12
|
*/
|
|
11
13
|
exports.MIDNIGHT_BASE = '0xAdedD8ab6dE832766Fedf0FaC4992E5C4D3EA18A';
|
|
14
|
+
exports.MIDNIGHT_ETH = '0x471686c42792F93528B000beF54bC10E3aa2045f';
|
|
15
|
+
const midnightCoreAddress = (network) => (network === types_1.NetworkNumber.Eth ? exports.MIDNIGHT_ETH : exports.MIDNIGHT_BASE);
|
|
16
|
+
exports.midnightCoreAddress = midnightCoreAddress;
|
|
12
17
|
const USDC_BASE = '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913';
|
|
13
18
|
const WETH_BASE = '0x4200000000000000000000000000000000000006';
|
|
14
19
|
const CBBTC_BASE = '0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf';
|
|
15
20
|
const CBETH_BASE = '0x2Ae3F1Ec7F1F5012CFEab0185bfc7aa3cf0DEc22';
|
|
21
|
+
const USDC_ETH = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48';
|
|
22
|
+
const WETH_ETH = '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2';
|
|
23
|
+
const WBTC_ETH = '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599';
|
|
24
|
+
const CBBTC_ETH = '0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf';
|
|
25
|
+
const STRUSD_ETH = '0x280839980a7eD0D7717F64125fE241012E5F5815';
|
|
26
|
+
const WSRUSD_ETH = '0xd3fD63209FA2D55B07A0f6db36C2f43900be3094';
|
|
27
|
+
const USD3_ETH = '0x056B269Eb1f75477a8666ae8C7fE01b64dD55eCc';
|
|
28
|
+
const REUSD_ETH = '0x5086bf358635B81D8C47C66d1C8b9E567Db70c72';
|
|
29
|
+
const SIUSD_ETH = '0xDBDC1Ef57537E34680B898E1FEBD3D68c7389bCB';
|
|
16
30
|
// Tenor's ERC-4626 collateral vaults, one per pair and shared by that pair's whole maturity ladder. Each
|
|
17
31
|
// is a collateral of its markets on-chain without being an asset the app deals in — see the note above
|
|
18
32
|
// the Tenor markets below, and https://www.docs.tenor.finance/technical-docs/addresses/#vaults.
|
|
19
33
|
const TENOR_CBBTC_USDC_VAULT_BASE = '0xf6a70085b7f79FA76B04EbF7A2D7D87C3c5c04BC';
|
|
20
34
|
const TENOR_WETH_USDC_VAULT_BASE = '0xe690a58EF52854513462745237F6A213a0d54dF1';
|
|
21
35
|
const TENOR_CBETH_WETH_VAULT_BASE = '0xFa750DD0099eAdB72d401244De73ce7B89edf90F';
|
|
36
|
+
const TENOR_WETH_USDC_VAULT_ETH = '0x7579a75658A7A0b7d277296dFaEecF4018746091';
|
|
37
|
+
const TENOR_STRUSD_USDC_VAULT_ETH = '0xef6955d886fce26D87753dA45192eA50F59dc91c';
|
|
38
|
+
const TENOR_WSRUSD_USDC_VAULT_ETH = '0x09409fa71bCfd3f433571dbeec0C0A9C19B0d30E';
|
|
39
|
+
const TENOR_USD3_USDC_VAULT_ETH = '0x26C46ACb48B46cC99ccB3cf6C365BdaFa2556E80';
|
|
40
|
+
const TENOR_REUSD_USDC_VAULT_ETH = '0xe3891d8cA7E00Bc42157D9bb5797C88D9159AAC6';
|
|
41
|
+
const TENOR_SIUSD_USDC_VAULT_ETH = '0x226ecbf4755a5F81ed721E18c3fDA11f004Ea9e0';
|
|
22
42
|
// Sourced from the official listing at https://markets.morpho.org/fixed/base
|
|
23
43
|
// BASE — USDC/cbBTC, 86% LLTV, monthly maturity ladder
|
|
24
44
|
const MORPHO_MIDNIGHT_CBBTC_USDC_860_20260731 = (networkId = types_1.NetworkNumber.Base) => ({
|
|
@@ -190,19 +210,20 @@ exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20270129 = MORPHO_MIDNIGHT_CBBTC_USDC_860
|
|
|
190
210
|
// = Tenor's `fixedMarketIdentifier`; they come back `listed: false`, meaning Tenor — not Morpho — serves
|
|
191
211
|
// the book.
|
|
192
212
|
//
|
|
193
|
-
// Every market below is verified
|
|
194
|
-
// maturity, rcfThreshold, loan token, gates and
|
|
195
|
-
//
|
|
196
|
-
//
|
|
197
|
-
// https://www.docs.tenor.finance/technical-docs/addresses/#vaults). The
|
|
198
|
-
// deals in, so it
|
|
199
|
-
//
|
|
200
|
-
// set, the SDK's positional `prices[i]` / `collateral[i]` reads stay aligned with `collaterals`.
|
|
213
|
+
// Every market below is verified by replaying `MidnightView.toId` over the struct these fields build:
|
|
214
|
+
// core address, maturity, rcfThreshold, loan token, gates and the whole ordered collateral set have to
|
|
215
|
+
// match or the hash does not come back as the recorded `marketId`. On-chain each market carries **two**
|
|
216
|
+
// collaterals — the pair's own token, and Tenor's ERC-4626 vault at 98% LLTV (the `metadata.vault` of the
|
|
217
|
+
// parent tenor market, listed at https://www.docs.tenor.finance/technical-docs/addresses/#vaults). The
|
|
218
|
+
// vault is not an asset the app deals in, so it carries `hidden: true`: everything that renders or prices
|
|
219
|
+
// a position skips it and sees a single-collateral market.
|
|
201
220
|
//
|
|
202
|
-
// It is only
|
|
203
|
-
// to the core has to
|
|
204
|
-
//
|
|
205
|
-
//
|
|
221
|
+
// It is only flagged, never dropped or reordered: the market id is the hash of the full struct, so a
|
|
222
|
+
// `Market` handed to the core has to carry the complete set in the chain's own order or the call
|
|
223
|
+
// addresses a market of its own making — which does not revert, because markets are permissionless. On
|
|
224
|
+
// Base the vault happens to come last every time; on mainnet the order varies per market, which is why
|
|
225
|
+
// the flag lives on the entry rather than in a second list. The take path builds no struct — offer
|
|
226
|
+
// tuples carry the market's full collateral set straight from the router's offer JSON.
|
|
206
227
|
const MORPHO_MIDNIGHT_TENOR_CBBTC_USDC_860_20260827 = (networkId = types_1.NetworkNumber.Base) => ({
|
|
207
228
|
chainIds: [types_1.NetworkNumber.Base],
|
|
208
229
|
label: 'Tenor cbBTC/USDC',
|
|
@@ -216,12 +237,12 @@ const MORPHO_MIDNIGHT_TENOR_CBBTC_USDC_860_20260827 = (networkId = types_1.Netwo
|
|
|
216
237
|
lltv: 0.86,
|
|
217
238
|
liquidationCursor: '300000000000000000',
|
|
218
239
|
oracle: '0x663BECd10daE6C4A3Dcd89F1d76c1174199639B9',
|
|
219
|
-
}
|
|
220
|
-
hiddenCollaterals: [{
|
|
240
|
+
}, {
|
|
221
241
|
token: TENOR_CBBTC_USDC_VAULT_BASE,
|
|
222
242
|
lltv: 0.98,
|
|
223
243
|
liquidationCursor: '300000000000000000',
|
|
224
244
|
oracle: '0x4a24e4bf269cE26aAD2dF00437e7730d25FCdE26',
|
|
245
|
+
hidden: true,
|
|
225
246
|
}],
|
|
226
247
|
maturity: 1787788800, // 2026-08-27T00:00:00Z
|
|
227
248
|
rcfThreshold: '3000000000',
|
|
@@ -245,12 +266,12 @@ const MORPHO_MIDNIGHT_TENOR_CBBTC_USDC_860_20260924 = (networkId = types_1.Netwo
|
|
|
245
266
|
lltv: 0.86,
|
|
246
267
|
liquidationCursor: '300000000000000000',
|
|
247
268
|
oracle: '0x663BECd10daE6C4A3Dcd89F1d76c1174199639B9',
|
|
248
|
-
}
|
|
249
|
-
hiddenCollaterals: [{
|
|
269
|
+
}, {
|
|
250
270
|
token: TENOR_CBBTC_USDC_VAULT_BASE,
|
|
251
271
|
lltv: 0.98,
|
|
252
272
|
liquidationCursor: '300000000000000000',
|
|
253
273
|
oracle: '0x4a24e4bf269cE26aAD2dF00437e7730d25FCdE26',
|
|
274
|
+
hidden: true,
|
|
254
275
|
}],
|
|
255
276
|
maturity: 1790208000, // 2026-09-24T00:00:00Z
|
|
256
277
|
rcfThreshold: '3000000000',
|
|
@@ -274,12 +295,12 @@ const MORPHO_MIDNIGHT_TENOR_CBBTC_USDC_860_20261022 = (networkId = types_1.Netwo
|
|
|
274
295
|
lltv: 0.86,
|
|
275
296
|
liquidationCursor: '300000000000000000',
|
|
276
297
|
oracle: '0x663BECd10daE6C4A3Dcd89F1d76c1174199639B9',
|
|
277
|
-
}
|
|
278
|
-
hiddenCollaterals: [{
|
|
298
|
+
}, {
|
|
279
299
|
token: TENOR_CBBTC_USDC_VAULT_BASE,
|
|
280
300
|
lltv: 0.98,
|
|
281
301
|
liquidationCursor: '300000000000000000',
|
|
282
302
|
oracle: '0x4a24e4bf269cE26aAD2dF00437e7730d25FCdE26',
|
|
303
|
+
hidden: true,
|
|
283
304
|
}],
|
|
284
305
|
maturity: 1792627200, // 2026-10-22T00:00:00Z
|
|
285
306
|
rcfThreshold: '3000000000',
|
|
@@ -303,12 +324,12 @@ const MORPHO_MIDNIGHT_TENOR_CBBTC_USDC_860_20261119 = (networkId = types_1.Netwo
|
|
|
303
324
|
lltv: 0.86,
|
|
304
325
|
liquidationCursor: '300000000000000000',
|
|
305
326
|
oracle: '0x663BECd10daE6C4A3Dcd89F1d76c1174199639B9',
|
|
306
|
-
}
|
|
307
|
-
hiddenCollaterals: [{
|
|
327
|
+
}, {
|
|
308
328
|
token: TENOR_CBBTC_USDC_VAULT_BASE,
|
|
309
329
|
lltv: 0.98,
|
|
310
330
|
liquidationCursor: '300000000000000000',
|
|
311
331
|
oracle: '0x4a24e4bf269cE26aAD2dF00437e7730d25FCdE26',
|
|
332
|
+
hidden: true,
|
|
312
333
|
}],
|
|
313
334
|
maturity: 1795046400, // 2026-11-19T00:00:00Z
|
|
314
335
|
rcfThreshold: '3000000000',
|
|
@@ -332,12 +353,12 @@ const MORPHO_MIDNIGHT_TENOR_CBBTC_USDC_860_20261217 = (networkId = types_1.Netwo
|
|
|
332
353
|
lltv: 0.86,
|
|
333
354
|
liquidationCursor: '300000000000000000',
|
|
334
355
|
oracle: '0x663BECd10daE6C4A3Dcd89F1d76c1174199639B9',
|
|
335
|
-
}
|
|
336
|
-
hiddenCollaterals: [{
|
|
356
|
+
}, {
|
|
337
357
|
token: TENOR_CBBTC_USDC_VAULT_BASE,
|
|
338
358
|
lltv: 0.98,
|
|
339
359
|
liquidationCursor: '300000000000000000',
|
|
340
360
|
oracle: '0x4a24e4bf269cE26aAD2dF00437e7730d25FCdE26',
|
|
361
|
+
hidden: true,
|
|
341
362
|
}],
|
|
342
363
|
maturity: 1797465600, // 2026-12-17T00:00:00Z
|
|
343
364
|
rcfThreshold: '3000000000',
|
|
@@ -361,12 +382,12 @@ const MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20260827 = (networkId = types_1.Networ
|
|
|
361
382
|
lltv: 0.86,
|
|
362
383
|
liquidationCursor: '300000000000000000',
|
|
363
384
|
oracle: '0xFEa2D58cEfCb9fcb597723c6bAE66fFE4193aFE4',
|
|
364
|
-
}
|
|
365
|
-
hiddenCollaterals: [{
|
|
385
|
+
}, {
|
|
366
386
|
token: TENOR_WETH_USDC_VAULT_BASE,
|
|
367
387
|
lltv: 0.98,
|
|
368
388
|
liquidationCursor: '300000000000000000',
|
|
369
389
|
oracle: '0x784519B1b59A1e1498f077066bB9336672bcc3EE',
|
|
390
|
+
hidden: true,
|
|
370
391
|
}],
|
|
371
392
|
maturity: 1787788800,
|
|
372
393
|
rcfThreshold: '3000000000',
|
|
@@ -390,12 +411,12 @@ const MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20260924 = (networkId = types_1.Networ
|
|
|
390
411
|
lltv: 0.86,
|
|
391
412
|
liquidationCursor: '300000000000000000',
|
|
392
413
|
oracle: '0xFEa2D58cEfCb9fcb597723c6bAE66fFE4193aFE4',
|
|
393
|
-
}
|
|
394
|
-
hiddenCollaterals: [{
|
|
414
|
+
}, {
|
|
395
415
|
token: TENOR_WETH_USDC_VAULT_BASE,
|
|
396
416
|
lltv: 0.98,
|
|
397
417
|
liquidationCursor: '300000000000000000',
|
|
398
418
|
oracle: '0x784519B1b59A1e1498f077066bB9336672bcc3EE',
|
|
419
|
+
hidden: true,
|
|
399
420
|
}],
|
|
400
421
|
maturity: 1790208000,
|
|
401
422
|
rcfThreshold: '3000000000',
|
|
@@ -419,12 +440,12 @@ const MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20261022 = (networkId = types_1.Networ
|
|
|
419
440
|
lltv: 0.86,
|
|
420
441
|
liquidationCursor: '300000000000000000',
|
|
421
442
|
oracle: '0xFEa2D58cEfCb9fcb597723c6bAE66fFE4193aFE4',
|
|
422
|
-
}
|
|
423
|
-
hiddenCollaterals: [{
|
|
443
|
+
}, {
|
|
424
444
|
token: TENOR_WETH_USDC_VAULT_BASE,
|
|
425
445
|
lltv: 0.98,
|
|
426
446
|
liquidationCursor: '300000000000000000',
|
|
427
447
|
oracle: '0x784519B1b59A1e1498f077066bB9336672bcc3EE',
|
|
448
|
+
hidden: true,
|
|
428
449
|
}],
|
|
429
450
|
maturity: 1792627200,
|
|
430
451
|
rcfThreshold: '3000000000',
|
|
@@ -448,12 +469,12 @@ const MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20261119 = (networkId = types_1.Networ
|
|
|
448
469
|
lltv: 0.86,
|
|
449
470
|
liquidationCursor: '300000000000000000',
|
|
450
471
|
oracle: '0xFEa2D58cEfCb9fcb597723c6bAE66fFE4193aFE4',
|
|
451
|
-
}
|
|
452
|
-
hiddenCollaterals: [{
|
|
472
|
+
}, {
|
|
453
473
|
token: TENOR_WETH_USDC_VAULT_BASE,
|
|
454
474
|
lltv: 0.98,
|
|
455
475
|
liquidationCursor: '300000000000000000',
|
|
456
476
|
oracle: '0x784519B1b59A1e1498f077066bB9336672bcc3EE',
|
|
477
|
+
hidden: true,
|
|
457
478
|
}],
|
|
458
479
|
maturity: 1795046400,
|
|
459
480
|
rcfThreshold: '3000000000',
|
|
@@ -477,12 +498,12 @@ const MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20261217 = (networkId = types_1.Networ
|
|
|
477
498
|
lltv: 0.86,
|
|
478
499
|
liquidationCursor: '300000000000000000',
|
|
479
500
|
oracle: '0xFEa2D58cEfCb9fcb597723c6bAE66fFE4193aFE4',
|
|
480
|
-
}
|
|
481
|
-
hiddenCollaterals: [{
|
|
501
|
+
}, {
|
|
482
502
|
token: TENOR_WETH_USDC_VAULT_BASE,
|
|
483
503
|
lltv: 0.98,
|
|
484
504
|
liquidationCursor: '300000000000000000',
|
|
485
505
|
oracle: '0x784519B1b59A1e1498f077066bB9336672bcc3EE',
|
|
506
|
+
hidden: true,
|
|
486
507
|
}],
|
|
487
508
|
maturity: 1797465600,
|
|
488
509
|
rcfThreshold: '3000000000',
|
|
@@ -506,12 +527,12 @@ const MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20260827 = (networkId = types_1.Netwo
|
|
|
506
527
|
lltv: 0.945,
|
|
507
528
|
liquidationCursor: '300000000000000000',
|
|
508
529
|
oracle: '0xB03855Ad5AFD6B8db8091DD5551CAC4ed621d9E6',
|
|
509
|
-
}
|
|
510
|
-
hiddenCollaterals: [{
|
|
530
|
+
}, {
|
|
511
531
|
token: TENOR_CBETH_WETH_VAULT_BASE,
|
|
512
532
|
lltv: 0.98,
|
|
513
533
|
liquidationCursor: '300000000000000000',
|
|
514
534
|
oracle: '0xa02f629871be35d6db0F88C944cF955554Ec87c0',
|
|
535
|
+
hidden: true,
|
|
515
536
|
}],
|
|
516
537
|
maturity: 1787788800,
|
|
517
538
|
rcfThreshold: '4000000000000000000',
|
|
@@ -535,12 +556,12 @@ const MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20260924 = (networkId = types_1.Netwo
|
|
|
535
556
|
lltv: 0.945,
|
|
536
557
|
liquidationCursor: '300000000000000000',
|
|
537
558
|
oracle: '0xB03855Ad5AFD6B8db8091DD5551CAC4ed621d9E6',
|
|
538
|
-
}
|
|
539
|
-
hiddenCollaterals: [{
|
|
559
|
+
}, {
|
|
540
560
|
token: TENOR_CBETH_WETH_VAULT_BASE,
|
|
541
561
|
lltv: 0.98,
|
|
542
562
|
liquidationCursor: '300000000000000000',
|
|
543
563
|
oracle: '0xa02f629871be35d6db0F88C944cF955554Ec87c0',
|
|
564
|
+
hidden: true,
|
|
544
565
|
}],
|
|
545
566
|
maturity: 1790208000,
|
|
546
567
|
rcfThreshold: '4000000000000000000',
|
|
@@ -564,12 +585,12 @@ const MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261022 = (networkId = types_1.Netwo
|
|
|
564
585
|
lltv: 0.945,
|
|
565
586
|
liquidationCursor: '300000000000000000',
|
|
566
587
|
oracle: '0xB03855Ad5AFD6B8db8091DD5551CAC4ed621d9E6',
|
|
567
|
-
}
|
|
568
|
-
hiddenCollaterals: [{
|
|
588
|
+
}, {
|
|
569
589
|
token: TENOR_CBETH_WETH_VAULT_BASE,
|
|
570
590
|
lltv: 0.98,
|
|
571
591
|
liquidationCursor: '300000000000000000',
|
|
572
592
|
oracle: '0xa02f629871be35d6db0F88C944cF955554Ec87c0',
|
|
593
|
+
hidden: true,
|
|
573
594
|
}],
|
|
574
595
|
maturity: 1792627200,
|
|
575
596
|
rcfThreshold: '4000000000000000000',
|
|
@@ -593,12 +614,12 @@ const MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261119 = (networkId = types_1.Netwo
|
|
|
593
614
|
lltv: 0.945,
|
|
594
615
|
liquidationCursor: '300000000000000000',
|
|
595
616
|
oracle: '0xB03855Ad5AFD6B8db8091DD5551CAC4ed621d9E6',
|
|
596
|
-
}
|
|
597
|
-
hiddenCollaterals: [{
|
|
617
|
+
}, {
|
|
598
618
|
token: TENOR_CBETH_WETH_VAULT_BASE,
|
|
599
619
|
lltv: 0.98,
|
|
600
620
|
liquidationCursor: '300000000000000000',
|
|
601
621
|
oracle: '0xa02f629871be35d6db0F88C944cF955554Ec87c0',
|
|
622
|
+
hidden: true,
|
|
602
623
|
}],
|
|
603
624
|
maturity: 1795046400,
|
|
604
625
|
rcfThreshold: '4000000000000000000',
|
|
@@ -622,12 +643,12 @@ const MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261217 = (networkId = types_1.Netwo
|
|
|
622
643
|
lltv: 0.945,
|
|
623
644
|
liquidationCursor: '300000000000000000',
|
|
624
645
|
oracle: '0xB03855Ad5AFD6B8db8091DD5551CAC4ed621d9E6',
|
|
625
|
-
}
|
|
626
|
-
hiddenCollaterals: [{
|
|
646
|
+
}, {
|
|
627
647
|
token: TENOR_CBETH_WETH_VAULT_BASE,
|
|
628
648
|
lltv: 0.98,
|
|
629
649
|
liquidationCursor: '300000000000000000',
|
|
630
650
|
oracle: '0xa02f629871be35d6db0F88C944cF955554Ec87c0',
|
|
651
|
+
hidden: true,
|
|
631
652
|
}],
|
|
632
653
|
maturity: 1797465600,
|
|
633
654
|
rcfThreshold: '4000000000000000000',
|
|
@@ -653,12 +674,12 @@ const createTenorWethUsdcRollingMarket = (value, url, maturity, marketId) => ({
|
|
|
653
674
|
lltv: 0.86,
|
|
654
675
|
liquidationCursor: '300000000000000000',
|
|
655
676
|
oracle: '0xFEa2D58cEfCb9fcb597723c6bAE66fFE4193aFE4',
|
|
656
|
-
}
|
|
657
|
-
hiddenCollaterals: [{
|
|
677
|
+
}, {
|
|
658
678
|
token: TENOR_WETH_USDC_VAULT_BASE,
|
|
659
679
|
lltv: 0.98,
|
|
660
680
|
liquidationCursor: '300000000000000000',
|
|
661
681
|
oracle: '0x784519B1b59A1e1498f077066bB9336672bcc3EE',
|
|
682
|
+
hidden: true,
|
|
662
683
|
}],
|
|
663
684
|
maturity,
|
|
664
685
|
rcfThreshold: '3000000000',
|
|
@@ -681,12 +702,12 @@ const createTenorCbEthWethRollingMarket = (value, url, maturity, marketId) => ({
|
|
|
681
702
|
lltv: 0.945,
|
|
682
703
|
liquidationCursor: '300000000000000000',
|
|
683
704
|
oracle: '0xB03855Ad5AFD6B8db8091DD5551CAC4ed621d9E6',
|
|
684
|
-
}
|
|
685
|
-
hiddenCollaterals: [{
|
|
705
|
+
}, {
|
|
686
706
|
token: TENOR_CBETH_WETH_VAULT_BASE,
|
|
687
707
|
lltv: 0.98,
|
|
688
708
|
liquidationCursor: '300000000000000000',
|
|
689
709
|
oracle: '0xa02f629871be35d6db0F88C944cF955554Ec87c0',
|
|
710
|
+
hidden: true,
|
|
690
711
|
}],
|
|
691
712
|
maturity,
|
|
692
713
|
rcfThreshold: '4000000000000000000',
|
|
@@ -716,6 +737,280 @@ const MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261225 = () => createTenorCbEthWeth
|
|
|
716
737
|
exports.MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261225 = MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261225;
|
|
717
738
|
const MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20270129 = () => createTenorCbEthWethRollingMarket(types_1.MorphoMidnightVersions.MorphoMidnightTenorCbETHWETH_20270129_Base, 'tenor-cbeth-weth-20270129', 1801234800, '0x3cfda244eeec7e5cda2a07ef23e2a5e3fe6ba17882417cafbf3f3c432377ff1d');
|
|
718
739
|
exports.MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20270129 = MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20270129;
|
|
740
|
+
// ── ETHEREUM ─────────────────────────────────────────────────────────────────────────────────────
|
|
741
|
+
const createWBTCUsdcEthMarket = (value, url, maturity, marketId) => ({
|
|
742
|
+
chainIds: [types_1.NetworkNumber.Eth],
|
|
743
|
+
label: 'Morpho Midnight WBTC/USDC',
|
|
744
|
+
shortLabel: 'WBTC/USDC',
|
|
745
|
+
url,
|
|
746
|
+
value,
|
|
747
|
+
midnight: exports.MIDNIGHT_ETH,
|
|
748
|
+
loanToken: USDC_ETH,
|
|
749
|
+
collaterals: [{
|
|
750
|
+
token: WBTC_ETH,
|
|
751
|
+
lltv: 0.86,
|
|
752
|
+
liquidationCursor: '300000000000000000',
|
|
753
|
+
oracle: '0xDddd770BADd886dF3864029e4B377B5F6a2B6b83',
|
|
754
|
+
}, {
|
|
755
|
+
token: USDC_ETH,
|
|
756
|
+
lltv: 0.98,
|
|
757
|
+
liquidationCursor: '300000000000000000',
|
|
758
|
+
oracle: '0x8d1A84515B54C58bAc3b18315B6b1f17dA5cf6ca',
|
|
759
|
+
hidden: true,
|
|
760
|
+
}],
|
|
761
|
+
maturity,
|
|
762
|
+
rcfThreshold: '300000000000',
|
|
763
|
+
enterGate: constants_1.ZERO_ADDRESS,
|
|
764
|
+
liquidatorGate: constants_1.ZERO_ADDRESS,
|
|
765
|
+
marketId,
|
|
766
|
+
protocolName: 'morpho-midnight',
|
|
767
|
+
curator: 'Morpho',
|
|
768
|
+
});
|
|
769
|
+
const createCbBTCUsdcEthMarket = (value, url, maturity, marketId) => ({
|
|
770
|
+
chainIds: [types_1.NetworkNumber.Eth],
|
|
771
|
+
label: 'Morpho Midnight cbBTC/USDC',
|
|
772
|
+
shortLabel: 'cbBTC/USDC',
|
|
773
|
+
url,
|
|
774
|
+
value,
|
|
775
|
+
midnight: exports.MIDNIGHT_ETH,
|
|
776
|
+
loanToken: USDC_ETH,
|
|
777
|
+
collaterals: [{
|
|
778
|
+
token: USDC_ETH,
|
|
779
|
+
lltv: 0.98,
|
|
780
|
+
liquidationCursor: '300000000000000000',
|
|
781
|
+
oracle: '0x8d1A84515B54C58bAc3b18315B6b1f17dA5cf6ca',
|
|
782
|
+
hidden: true,
|
|
783
|
+
}, {
|
|
784
|
+
token: CBBTC_ETH,
|
|
785
|
+
lltv: 0.86,
|
|
786
|
+
liquidationCursor: '300000000000000000',
|
|
787
|
+
oracle: '0xA6D6950c9F177F1De7f7757FB33539e3Ec60182a',
|
|
788
|
+
}],
|
|
789
|
+
maturity,
|
|
790
|
+
rcfThreshold: '300000000000',
|
|
791
|
+
enterGate: constants_1.ZERO_ADDRESS,
|
|
792
|
+
liquidatorGate: constants_1.ZERO_ADDRESS,
|
|
793
|
+
marketId,
|
|
794
|
+
protocolName: 'morpho-midnight',
|
|
795
|
+
curator: 'Morpho',
|
|
796
|
+
});
|
|
797
|
+
const MORPHO_MIDNIGHT_WBTC_USDC_860_20260925_ETH = () => createWBTCUsdcEthMarket(types_1.MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20260925_Eth, 'wbtc-usdc-20260925', 1790348400, // 2026-09-25T15:00:00Z
|
|
798
|
+
'0x6dae37424723dd8cef0da2db84fd2819f7dfa4e3a98e602ccc3c65ee1fac61c2');
|
|
799
|
+
exports.MORPHO_MIDNIGHT_WBTC_USDC_860_20260925_ETH = MORPHO_MIDNIGHT_WBTC_USDC_860_20260925_ETH;
|
|
800
|
+
const MORPHO_MIDNIGHT_WBTC_USDC_860_20261030_ETH = () => createWBTCUsdcEthMarket(types_1.MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20261030_Eth, 'wbtc-usdc-20261030', 1793372400, // 2026-10-30T15:00:00Z
|
|
801
|
+
'0xe5e6fbd5d81875dbfb0c94866cb0d300e1c7b9aacc0a458e63dccbcc0ce278c8');
|
|
802
|
+
exports.MORPHO_MIDNIGHT_WBTC_USDC_860_20261030_ETH = MORPHO_MIDNIGHT_WBTC_USDC_860_20261030_ETH;
|
|
803
|
+
const MORPHO_MIDNIGHT_WBTC_USDC_860_20261127_ETH = () => createWBTCUsdcEthMarket(types_1.MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20261127_Eth, 'wbtc-usdc-20261127', 1795791600, // 2026-11-27T15:00:00Z
|
|
804
|
+
'0xe0efc89dc1f747ba502f6a4100b6b1db9ebd0d57569fd5a54771d3a026b6a27b');
|
|
805
|
+
exports.MORPHO_MIDNIGHT_WBTC_USDC_860_20261127_ETH = MORPHO_MIDNIGHT_WBTC_USDC_860_20261127_ETH;
|
|
806
|
+
const MORPHO_MIDNIGHT_WBTC_USDC_860_20261225_ETH = () => createWBTCUsdcEthMarket(types_1.MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20261225_Eth, 'wbtc-usdc-20261225', 1798210800, // 2026-12-25T15:00:00Z
|
|
807
|
+
'0x3323abf2d2a3ec804f46552db920d900bb9c7ffd3f48143ab879a918fd6c0977');
|
|
808
|
+
exports.MORPHO_MIDNIGHT_WBTC_USDC_860_20261225_ETH = MORPHO_MIDNIGHT_WBTC_USDC_860_20261225_ETH;
|
|
809
|
+
const MORPHO_MIDNIGHT_WBTC_USDC_860_20270129_ETH = () => createWBTCUsdcEthMarket(types_1.MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20270129_Eth, 'wbtc-usdc-20270129', 1801234800, // 2027-01-29T15:00:00Z
|
|
810
|
+
'0xf8052f557ce70d39cf9da1bd6e37e44a49f51757afb5dc881f675490ca6b3e9f');
|
|
811
|
+
exports.MORPHO_MIDNIGHT_WBTC_USDC_860_20270129_ETH = MORPHO_MIDNIGHT_WBTC_USDC_860_20270129_ETH;
|
|
812
|
+
const MORPHO_MIDNIGHT_WBTC_USDC_860_20270226_ETH = () => createWBTCUsdcEthMarket(types_1.MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20270226_Eth, 'wbtc-usdc-20270226', 1803654000, // 2027-02-26T15:00:00Z
|
|
813
|
+
'0x7e399db474781e92b22b5a647d811959f65997b1e2bb68deaade674d8afbbdbd');
|
|
814
|
+
exports.MORPHO_MIDNIGHT_WBTC_USDC_860_20270226_ETH = MORPHO_MIDNIGHT_WBTC_USDC_860_20270226_ETH;
|
|
815
|
+
const MORPHO_MIDNIGHT_WBTC_USDC_860_20270326_ETH = () => createWBTCUsdcEthMarket(types_1.MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20270326_Eth, 'wbtc-usdc-20270326', 1806073200, // 2027-03-26T15:00:00Z
|
|
816
|
+
'0x54a722a6dbaa237cfe088afd295417091bfb792fe3fac96999af41635977b2b0');
|
|
817
|
+
exports.MORPHO_MIDNIGHT_WBTC_USDC_860_20270326_ETH = MORPHO_MIDNIGHT_WBTC_USDC_860_20270326_ETH;
|
|
818
|
+
const MORPHO_MIDNIGHT_CBBTC_USDC_860_20260925_ETH = () => createCbBTCUsdcEthMarket(types_1.MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20260925_Eth, 'cbbtc-usdc-20260925', 1790348400, // 2026-09-25T15:00:00Z
|
|
819
|
+
'0x2a9ae59053a64e409e819d3b76750948e06065b3164278915eb80cb1b7474b65');
|
|
820
|
+
exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20260925_ETH = MORPHO_MIDNIGHT_CBBTC_USDC_860_20260925_ETH;
|
|
821
|
+
const MORPHO_MIDNIGHT_CBBTC_USDC_860_20261030_ETH = () => createCbBTCUsdcEthMarket(types_1.MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20261030_Eth, 'cbbtc-usdc-20261030', 1793372400, // 2026-10-30T15:00:00Z
|
|
822
|
+
'0xeea94e3f7185bb8cfcdf41aca2c9776788e86d6c14de345b911b04f75cd49959');
|
|
823
|
+
exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20261030_ETH = MORPHO_MIDNIGHT_CBBTC_USDC_860_20261030_ETH;
|
|
824
|
+
const MORPHO_MIDNIGHT_CBBTC_USDC_860_20261127_ETH = () => createCbBTCUsdcEthMarket(types_1.MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20261127_Eth, 'cbbtc-usdc-20261127', 1795791600, // 2026-11-27T15:00:00Z
|
|
825
|
+
'0xa6454499939a47927d3d27d65dce18486cc2aabbf75f8f5f8482e93567f4a183');
|
|
826
|
+
exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20261127_ETH = MORPHO_MIDNIGHT_CBBTC_USDC_860_20261127_ETH;
|
|
827
|
+
const MORPHO_MIDNIGHT_CBBTC_USDC_860_20261225_ETH = () => createCbBTCUsdcEthMarket(types_1.MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20261225_Eth, 'cbbtc-usdc-20261225', 1798210800, // 2026-12-25T15:00:00Z
|
|
828
|
+
'0xcf447db8cff164867b02edbf7ee7af06d241d4f3a44b34d6e3a3ea872ddea5d6');
|
|
829
|
+
exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20261225_ETH = MORPHO_MIDNIGHT_CBBTC_USDC_860_20261225_ETH;
|
|
830
|
+
const MORPHO_MIDNIGHT_CBBTC_USDC_860_20270129_ETH = () => createCbBTCUsdcEthMarket(types_1.MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20270129_Eth, 'cbbtc-usdc-20270129', 1801234800, // 2027-01-29T15:00:00Z
|
|
831
|
+
'0x9ea83106928cf45829a89c02cea7c73cb3a066d2429d7ca2fcdc0015dc191df1');
|
|
832
|
+
exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20270129_ETH = MORPHO_MIDNIGHT_CBBTC_USDC_860_20270129_ETH;
|
|
833
|
+
const MORPHO_MIDNIGHT_CBBTC_USDC_860_20270226_ETH = () => createCbBTCUsdcEthMarket(types_1.MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20270226_Eth, 'cbbtc-usdc-20270226', 1803654000, // 2027-02-26T15:00:00Z
|
|
834
|
+
'0xf9c1a9849863863a87600beb24394985a04ad3256b0c750baee0841f35f7f0e2');
|
|
835
|
+
exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20270226_ETH = MORPHO_MIDNIGHT_CBBTC_USDC_860_20270226_ETH;
|
|
836
|
+
const MORPHO_MIDNIGHT_CBBTC_USDC_860_20270326_ETH = () => createCbBTCUsdcEthMarket(types_1.MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20270326_Eth, 'cbbtc-usdc-20270326', 1806073200, // 2027-03-26T15:00:00Z
|
|
837
|
+
'0xb00767d2cc7d5d9e27501a14e7912a089e34da675a2eb9e030072233db2c4c3b');
|
|
838
|
+
exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20270326_ETH = MORPHO_MIDNIGHT_CBBTC_USDC_860_20270326_ETH;
|
|
839
|
+
// ETHEREUM — Tenor-curated
|
|
840
|
+
const MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20260925_ETH = () => ({
|
|
841
|
+
chainIds: [types_1.NetworkNumber.Eth],
|
|
842
|
+
label: 'Tenor WETH/USDC',
|
|
843
|
+
shortLabel: 'Tenor WETH/USDC',
|
|
844
|
+
url: 'tenor-weth-usdc-20260925',
|
|
845
|
+
value: types_1.MorphoMidnightVersions.MorphoMidnightTenorWETHUSDC_20260925_Eth,
|
|
846
|
+
midnight: exports.MIDNIGHT_ETH,
|
|
847
|
+
loanToken: USDC_ETH,
|
|
848
|
+
collaterals: [{
|
|
849
|
+
token: TENOR_WETH_USDC_VAULT_ETH,
|
|
850
|
+
lltv: 0.98,
|
|
851
|
+
liquidationCursor: '300000000000000000',
|
|
852
|
+
oracle: '0x5c4fd2864C21F0b81730B4EC74030130aA2193Ca',
|
|
853
|
+
hidden: true,
|
|
854
|
+
}, {
|
|
855
|
+
token: WETH_ETH,
|
|
856
|
+
lltv: 0.86,
|
|
857
|
+
liquidationCursor: '300000000000000000',
|
|
858
|
+
oracle: '0x0F948CBa8231Db7898ef36A4212581Ad7b1B4580',
|
|
859
|
+
}],
|
|
860
|
+
maturity: 1790348400, // 2026-09-25T15:00:00Z
|
|
861
|
+
rcfThreshold: '300000000000',
|
|
862
|
+
enterGate: constants_1.ZERO_ADDRESS,
|
|
863
|
+
liquidatorGate: constants_1.ZERO_ADDRESS,
|
|
864
|
+
marketId: '0x6a463fa464b97f7ba86516be7de82761bfa411522701ede713a269c2c385c70a',
|
|
865
|
+
protocolName: 'morpho-midnight',
|
|
866
|
+
curator: 'Tenor',
|
|
867
|
+
});
|
|
868
|
+
exports.MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20260925_ETH = MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20260925_ETH;
|
|
869
|
+
const MORPHO_MIDNIGHT_TENOR_STRUSD_USDC_860_20260925_ETH = () => ({
|
|
870
|
+
chainIds: [types_1.NetworkNumber.Eth],
|
|
871
|
+
label: 'Tenor strUSD/USDC',
|
|
872
|
+
shortLabel: 'Tenor strUSD/USDC',
|
|
873
|
+
url: 'tenor-strusd-usdc-20260925',
|
|
874
|
+
value: types_1.MorphoMidnightVersions.MorphoMidnightTenorStrUSDUSDC_20260925_Eth,
|
|
875
|
+
midnight: exports.MIDNIGHT_ETH,
|
|
876
|
+
loanToken: USDC_ETH,
|
|
877
|
+
collaterals: [{
|
|
878
|
+
token: STRUSD_ETH,
|
|
879
|
+
lltv: 0.86,
|
|
880
|
+
liquidationCursor: '300000000000000000',
|
|
881
|
+
oracle: '0x1506c98cE61aC63c8438B710C054a51c5dD9A6A4',
|
|
882
|
+
}, {
|
|
883
|
+
token: TENOR_STRUSD_USDC_VAULT_ETH,
|
|
884
|
+
lltv: 0.98,
|
|
885
|
+
liquidationCursor: '300000000000000000',
|
|
886
|
+
oracle: '0x361904890a43d4af2D1b8cF642A6C5e661Da5641',
|
|
887
|
+
hidden: true,
|
|
888
|
+
}],
|
|
889
|
+
maturity: 1790348400, // 2026-09-25T15:00:00Z
|
|
890
|
+
rcfThreshold: '300000000000',
|
|
891
|
+
enterGate: constants_1.ZERO_ADDRESS,
|
|
892
|
+
liquidatorGate: constants_1.ZERO_ADDRESS,
|
|
893
|
+
marketId: '0xa46399e45fe90b7d3c0488c4c73e9b361f758c4481734832a43d764ccdde0c64',
|
|
894
|
+
protocolName: 'morpho-midnight',
|
|
895
|
+
curator: 'Tenor',
|
|
896
|
+
});
|
|
897
|
+
exports.MORPHO_MIDNIGHT_TENOR_STRUSD_USDC_860_20260925_ETH = MORPHO_MIDNIGHT_TENOR_STRUSD_USDC_860_20260925_ETH;
|
|
898
|
+
const MORPHO_MIDNIGHT_TENOR_WSRUSD_USDC_945_20260925_ETH = () => ({
|
|
899
|
+
chainIds: [types_1.NetworkNumber.Eth],
|
|
900
|
+
label: 'Tenor wsrUSD/USDC',
|
|
901
|
+
shortLabel: 'Tenor wsrUSD/USDC',
|
|
902
|
+
url: 'tenor-wsrusd-usdc-20260925',
|
|
903
|
+
value: types_1.MorphoMidnightVersions.MorphoMidnightTenorWsrUSDUSDC_20260925_Eth,
|
|
904
|
+
midnight: exports.MIDNIGHT_ETH,
|
|
905
|
+
loanToken: USDC_ETH,
|
|
906
|
+
collaterals: [{
|
|
907
|
+
token: TENOR_WSRUSD_USDC_VAULT_ETH,
|
|
908
|
+
lltv: 0.98,
|
|
909
|
+
liquidationCursor: '300000000000000000',
|
|
910
|
+
oracle: '0x7C997e4dddF1D4B7C0D5f290B92d0909ba227c14',
|
|
911
|
+
hidden: true,
|
|
912
|
+
}, {
|
|
913
|
+
token: WSRUSD_ETH,
|
|
914
|
+
lltv: 0.945,
|
|
915
|
+
liquidationCursor: '300000000000000000',
|
|
916
|
+
oracle: '0x938D2eDb20425cF80F008E7ec314Eb456940Da15',
|
|
917
|
+
}],
|
|
918
|
+
maturity: 1790348400, // 2026-09-25T15:00:00Z
|
|
919
|
+
rcfThreshold: '700000000000',
|
|
920
|
+
enterGate: constants_1.ZERO_ADDRESS,
|
|
921
|
+
liquidatorGate: constants_1.ZERO_ADDRESS,
|
|
922
|
+
marketId: '0xc028a0b50ba0c606fbf83e5620018f23019b1fb5d1d15b4a5a0d17cc72edcfeb',
|
|
923
|
+
protocolName: 'morpho-midnight',
|
|
924
|
+
curator: 'Tenor',
|
|
925
|
+
});
|
|
926
|
+
exports.MORPHO_MIDNIGHT_TENOR_WSRUSD_USDC_945_20260925_ETH = MORPHO_MIDNIGHT_TENOR_WSRUSD_USDC_945_20260925_ETH;
|
|
927
|
+
const MORPHO_MIDNIGHT_TENOR_USD3_USDC_915_20260925_ETH = () => ({
|
|
928
|
+
chainIds: [types_1.NetworkNumber.Eth],
|
|
929
|
+
label: 'Tenor USD3/USDC',
|
|
930
|
+
shortLabel: 'Tenor USD3/USDC',
|
|
931
|
+
url: 'tenor-usd3-usdc-20260925',
|
|
932
|
+
value: types_1.MorphoMidnightVersions.MorphoMidnightTenorUSD3USDC_20260925_Eth,
|
|
933
|
+
midnight: exports.MIDNIGHT_ETH,
|
|
934
|
+
loanToken: USDC_ETH,
|
|
935
|
+
collaterals: [{
|
|
936
|
+
token: USD3_ETH,
|
|
937
|
+
lltv: 0.915,
|
|
938
|
+
liquidationCursor: '300000000000000000',
|
|
939
|
+
oracle: '0x68b4c2B2b2e245AB54a3bD55DfD5A9d84f029C06',
|
|
940
|
+
}, {
|
|
941
|
+
token: TENOR_USD3_USDC_VAULT_ETH,
|
|
942
|
+
lltv: 0.98,
|
|
943
|
+
liquidationCursor: '300000000000000000',
|
|
944
|
+
oracle: '0x2C198EC459e0a035078565dEdc3c206604b57d4D',
|
|
945
|
+
hidden: true,
|
|
946
|
+
}],
|
|
947
|
+
maturity: 1790348400, // 2026-09-25T15:00:00Z
|
|
948
|
+
rcfThreshold: '500000000000',
|
|
949
|
+
enterGate: constants_1.ZERO_ADDRESS,
|
|
950
|
+
liquidatorGate: constants_1.ZERO_ADDRESS,
|
|
951
|
+
marketId: '0x1edea0a3875af341ea885fc7eac7e02bfce90c534a1602dbd40fefccfe4c24d4',
|
|
952
|
+
protocolName: 'morpho-midnight',
|
|
953
|
+
curator: 'Tenor',
|
|
954
|
+
});
|
|
955
|
+
exports.MORPHO_MIDNIGHT_TENOR_USD3_USDC_915_20260925_ETH = MORPHO_MIDNIGHT_TENOR_USD3_USDC_915_20260925_ETH;
|
|
956
|
+
const MORPHO_MIDNIGHT_TENOR_REUSD_USDC_915_20260925_ETH = () => ({
|
|
957
|
+
chainIds: [types_1.NetworkNumber.Eth],
|
|
958
|
+
label: 'Tenor reUSD/USDC',
|
|
959
|
+
shortLabel: 'Tenor reUSD/USDC',
|
|
960
|
+
url: 'tenor-reusd-usdc-20260925',
|
|
961
|
+
value: types_1.MorphoMidnightVersions.MorphoMidnightTenorReUSDUSDC_20260925_Eth,
|
|
962
|
+
midnight: exports.MIDNIGHT_ETH,
|
|
963
|
+
loanToken: USDC_ETH,
|
|
964
|
+
collaterals: [{
|
|
965
|
+
token: REUSD_ETH,
|
|
966
|
+
lltv: 0.915,
|
|
967
|
+
liquidationCursor: '300000000000000000',
|
|
968
|
+
oracle: '0xA66a4F03Fd8031973f8C7718904ce32385f54E70',
|
|
969
|
+
}, {
|
|
970
|
+
token: TENOR_REUSD_USDC_VAULT_ETH,
|
|
971
|
+
lltv: 0.98,
|
|
972
|
+
liquidationCursor: '300000000000000000',
|
|
973
|
+
oracle: '0xE5f7f5A74E6f4dA2F68b1aa017F204a1883eC0df',
|
|
974
|
+
hidden: true,
|
|
975
|
+
}],
|
|
976
|
+
maturity: 1790348400, // 2026-09-25T15:00:00Z
|
|
977
|
+
rcfThreshold: '500000000000',
|
|
978
|
+
enterGate: constants_1.ZERO_ADDRESS,
|
|
979
|
+
liquidatorGate: constants_1.ZERO_ADDRESS,
|
|
980
|
+
marketId: '0xdba251b941d135577e1b423301b2eb6a76dfe11479c843185d20bee9208e7393',
|
|
981
|
+
protocolName: 'morpho-midnight',
|
|
982
|
+
curator: 'Tenor',
|
|
983
|
+
});
|
|
984
|
+
exports.MORPHO_MIDNIGHT_TENOR_REUSD_USDC_915_20260925_ETH = MORPHO_MIDNIGHT_TENOR_REUSD_USDC_915_20260925_ETH;
|
|
985
|
+
const MORPHO_MIDNIGHT_TENOR_SIUSD_USDC_915_20260925_ETH = () => ({
|
|
986
|
+
chainIds: [types_1.NetworkNumber.Eth],
|
|
987
|
+
label: 'Tenor siUSD/USDC',
|
|
988
|
+
shortLabel: 'Tenor siUSD/USDC',
|
|
989
|
+
url: 'tenor-siusd-usdc-20260925',
|
|
990
|
+
value: types_1.MorphoMidnightVersions.MorphoMidnightTenorSiUSDUSDC_20260925_Eth,
|
|
991
|
+
midnight: exports.MIDNIGHT_ETH,
|
|
992
|
+
loanToken: USDC_ETH,
|
|
993
|
+
collaterals: [{
|
|
994
|
+
token: TENOR_SIUSD_USDC_VAULT_ETH,
|
|
995
|
+
lltv: 0.98,
|
|
996
|
+
liquidationCursor: '300000000000000000',
|
|
997
|
+
oracle: '0xE872d1d33b13B52aE7cD9A0CDD4102468350e5fa',
|
|
998
|
+
hidden: true,
|
|
999
|
+
}, {
|
|
1000
|
+
token: SIUSD_ETH,
|
|
1001
|
+
lltv: 0.915,
|
|
1002
|
+
liquidationCursor: '300000000000000000',
|
|
1003
|
+
oracle: '0xd2cC46b9B2D761502eF933320ecf0268EC0dfa6d',
|
|
1004
|
+
}],
|
|
1005
|
+
maturity: 1790348400, // 2026-09-25T15:00:00Z
|
|
1006
|
+
rcfThreshold: '500000000000',
|
|
1007
|
+
enterGate: constants_1.ZERO_ADDRESS,
|
|
1008
|
+
liquidatorGate: constants_1.ZERO_ADDRESS,
|
|
1009
|
+
marketId: '0x48d95ace842493ce2c1c474c0cb60ac208e9d8a714258e278af9c8ae01a88fa5',
|
|
1010
|
+
protocolName: 'morpho-midnight',
|
|
1011
|
+
curator: 'Tenor',
|
|
1012
|
+
});
|
|
1013
|
+
exports.MORPHO_MIDNIGHT_TENOR_SIUSD_USDC_915_20260925_ETH = MORPHO_MIDNIGHT_TENOR_SIUSD_USDC_915_20260925_ETH;
|
|
719
1014
|
const MorphoMidnightMarkets = (networkId) => ({
|
|
720
1015
|
// BASE — Morpho-curated
|
|
721
1016
|
[types_1.MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20260731_Base]: (0, exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20260731)(networkId),
|
|
@@ -751,9 +1046,35 @@ const MorphoMidnightMarkets = (networkId) => ({
|
|
|
751
1046
|
[types_1.MorphoMidnightVersions.MorphoMidnightTenorCbETHWETH_20261127_Base]: (0, exports.MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261127)(),
|
|
752
1047
|
[types_1.MorphoMidnightVersions.MorphoMidnightTenorCbETHWETH_20261225_Base]: (0, exports.MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261225)(),
|
|
753
1048
|
[types_1.MorphoMidnightVersions.MorphoMidnightTenorCbETHWETH_20270129_Base]: (0, exports.MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20270129)(),
|
|
1049
|
+
// ETHEREUM — Morpho-curated
|
|
1050
|
+
[types_1.MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20260925_Eth]: (0, exports.MORPHO_MIDNIGHT_WBTC_USDC_860_20260925_ETH)(),
|
|
1051
|
+
[types_1.MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20261030_Eth]: (0, exports.MORPHO_MIDNIGHT_WBTC_USDC_860_20261030_ETH)(),
|
|
1052
|
+
[types_1.MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20261127_Eth]: (0, exports.MORPHO_MIDNIGHT_WBTC_USDC_860_20261127_ETH)(),
|
|
1053
|
+
[types_1.MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20261225_Eth]: (0, exports.MORPHO_MIDNIGHT_WBTC_USDC_860_20261225_ETH)(),
|
|
1054
|
+
[types_1.MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20270129_Eth]: (0, exports.MORPHO_MIDNIGHT_WBTC_USDC_860_20270129_ETH)(),
|
|
1055
|
+
[types_1.MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20270226_Eth]: (0, exports.MORPHO_MIDNIGHT_WBTC_USDC_860_20270226_ETH)(),
|
|
1056
|
+
[types_1.MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20270326_Eth]: (0, exports.MORPHO_MIDNIGHT_WBTC_USDC_860_20270326_ETH)(),
|
|
1057
|
+
[types_1.MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20260925_Eth]: (0, exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20260925_ETH)(),
|
|
1058
|
+
[types_1.MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20261030_Eth]: (0, exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20261030_ETH)(),
|
|
1059
|
+
[types_1.MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20261127_Eth]: (0, exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20261127_ETH)(),
|
|
1060
|
+
[types_1.MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20261225_Eth]: (0, exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20261225_ETH)(),
|
|
1061
|
+
[types_1.MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20270129_Eth]: (0, exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20270129_ETH)(),
|
|
1062
|
+
[types_1.MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20270226_Eth]: (0, exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20270226_ETH)(),
|
|
1063
|
+
[types_1.MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20270326_Eth]: (0, exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20270326_ETH)(),
|
|
1064
|
+
// ETHEREUM — Tenor-curated
|
|
1065
|
+
[types_1.MorphoMidnightVersions.MorphoMidnightTenorWETHUSDC_20260925_Eth]: (0, exports.MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20260925_ETH)(),
|
|
1066
|
+
[types_1.MorphoMidnightVersions.MorphoMidnightTenorUSD3USDC_20260925_Eth]: (0, exports.MORPHO_MIDNIGHT_TENOR_USD3_USDC_915_20260925_ETH)(),
|
|
1067
|
+
// ── Pending `@defisaver/tokens` ────────────────────────────────────────────────────────────────
|
|
1068
|
+
// Collateralised by stablecoins the app does not carry yet, so `getAssetInfoByAddress` hands back the
|
|
1069
|
+
// `?` proto and the market renders an unnamed collateral at a NaN price. The definitions below are
|
|
1070
|
+
// verified against the chain and complete — this map is the only place they are withheld from, so
|
|
1071
|
+
// uncommenting these four lines is the whole re-enable once the assets ship.
|
|
1072
|
+
// [MorphoMidnightVersions.MorphoMidnightTenorStrUSDUSDC_20260925_Eth]: MORPHO_MIDNIGHT_TENOR_STRUSD_USDC_860_20260925_ETH(),
|
|
1073
|
+
// [MorphoMidnightVersions.MorphoMidnightTenorWsrUSDUSDC_20260925_Eth]: MORPHO_MIDNIGHT_TENOR_WSRUSD_USDC_945_20260925_ETH(),
|
|
1074
|
+
// [MorphoMidnightVersions.MorphoMidnightTenorReUSDUSDC_20260925_Eth]: MORPHO_MIDNIGHT_TENOR_REUSD_USDC_915_20260925_ETH(),
|
|
1075
|
+
// [MorphoMidnightVersions.MorphoMidnightTenorSiUSDUSDC_20260925_Eth]: MORPHO_MIDNIGHT_TENOR_SIUSD_USDC_915_20260925_ETH(),
|
|
754
1076
|
});
|
|
755
1077
|
exports.MorphoMidnightMarkets = MorphoMidnightMarkets;
|
|
756
|
-
// Which markets Tenor's router quotes, by id, for the quote helpers that only receive one.
|
|
757
1078
|
const TENOR_MARKET_IDS = new Set(Object.values((0, exports.MorphoMidnightMarkets)(types_1.NetworkNumber.Base))
|
|
758
1079
|
.filter((market) => market.curator === 'Tenor')
|
|
759
1080
|
.map((market) => market.marketId.toLowerCase()));
|
|
@@ -761,13 +1082,13 @@ const isTenorMidnightMarket = (market) => (typeof market === 'string'
|
|
|
761
1082
|
? TENOR_MARKET_IDS.has(market.toLowerCase())
|
|
762
1083
|
: market.curator === 'Tenor');
|
|
763
1084
|
exports.isTenorMidnightMarket = isTenorMidnightMarket;
|
|
764
|
-
const findMorphoMidnightMarket = (marketId, network
|
|
1085
|
+
const findMorphoMidnightMarket = (marketId, network) => (Object.values((0, exports.MorphoMidnightMarkets)(network !== null && network !== void 0 ? network : types_1.NetworkNumber.Base))
|
|
1086
|
+
.find((market) => market.marketId.toLowerCase() === marketId.toLowerCase()
|
|
1087
|
+
&& (network === undefined || market.chainIds.includes(network))));
|
|
765
1088
|
exports.findMorphoMidnightMarket = findMorphoMidnightMarket;
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
* of that struct. Anything assembling one for a contract call goes through here so it can't quietly build
|
|
770
|
-
* a market of its own instead.
|
|
771
|
-
*/
|
|
772
|
-
const morphoMidnightMarketCollateralParams = (market) => [...market.collaterals, ...(market.hiddenCollaterals || [])];
|
|
1089
|
+
const morphoMidnightMarketCollateralParams = (market) => market.collaterals.map(({ token, lltv, liquidationCursor, oracle, }) => ({
|
|
1090
|
+
token, lltv, liquidationCursor, oracle,
|
|
1091
|
+
}));
|
|
773
1092
|
exports.morphoMidnightMarketCollateralParams = morphoMidnightMarketCollateralParams;
|
|
1093
|
+
const morphoMidnightVisibleCollaterals = (market) => market.collaterals.filter((collateral) => !collateral.hidden);
|
|
1094
|
+
exports.morphoMidnightVisibleCollaterals = morphoMidnightVisibleCollaterals;
|