@defisaver/positions-sdk 2.1.151 → 2.1.152-shifter-v2-dev-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/fluid/index.d.ts +2 -0
- package/cjs/fluid/index.js +36 -1
- package/cjs/helpers/morphoMidnightHelpers/tenor.d.ts +6 -2
- package/cjs/helpers/morphoMidnightHelpers/tenor.js +5 -1
- package/cjs/maker/index.d.ts +7 -2
- package/cjs/maker/index.js +27 -10
- package/cjs/markets/index.d.ts +2 -1
- package/cjs/markets/index.js +4 -1
- package/cjs/markets/maker/index.d.ts +1 -0
- package/cjs/markets/maker/index.js +13 -0
- package/cjs/markets/morphoMidnight/index.d.ts +92 -10
- package/cjs/markets/morphoMidnight/index.js +519 -60
- package/cjs/morphoMidnight/index.js +11 -1
- package/cjs/portfolio/index.d.ts +5 -1
- package/cjs/portfolio/index.js +287 -0
- package/cjs/types/morphoMidnight.d.ts +57 -4
- package/cjs/types/morphoMidnight.js +45 -0
- package/cjs/types/portfolio.d.ts +26 -10
- package/esm/claiming/compV3.js +0 -1
- package/esm/config/contracts.d.ts +4 -0
- package/esm/config/contracts.js +4 -0
- package/esm/fluid/index.d.ts +2 -0
- package/esm/fluid/index.js +33 -0
- package/esm/helpers/morphoMidnightHelpers/tenor.d.ts +6 -2
- package/esm/helpers/morphoMidnightHelpers/tenor.js +6 -2
- package/esm/maker/index.d.ts +7 -2
- package/esm/maker/index.js +26 -11
- package/esm/markets/index.d.ts +2 -1
- package/esm/markets/index.js +2 -1
- package/esm/markets/maker/index.d.ts +1 -0
- package/esm/markets/maker/index.js +10 -0
- package/esm/markets/morphoMidnight/index.d.ts +92 -10
- package/esm/markets/morphoMidnight/index.js +473 -59
- package/esm/morphoMidnight/index.js +11 -1
- package/esm/portfolio/index.d.ts +5 -1
- package/esm/portfolio/index.js +289 -3
- package/esm/types/morphoMidnight.d.ts +57 -4
- package/esm/types/morphoMidnight.js +45 -0
- package/esm/types/portfolio.d.ts +26 -10
- package/package.json +1 -1
- package/src/claiming/compV3.ts +0 -1
- package/src/config/contracts.ts +4 -0
- package/src/fluid/index.ts +40 -0
- package/src/helpers/morphoMidnightHelpers/tenor.ts +6 -2
- package/src/maker/index.ts +56 -28
- package/src/markets/index.ts +3 -1
- package/src/markets/maker/index.ts +10 -0
- package/src/markets/morphoMidnight/index.ts +724 -61
- package/src/morphoMidnight/index.ts +8 -1
- package/src/portfolio/index.ts +270 -2
- package/src/types/morphoMidnight.ts +59 -3
- package/src/types/portfolio.ts +31 -12
|
@@ -1,21 +1,41 @@
|
|
|
1
1
|
import { MorphoMidnightVersions, NetworkNumber, } from '../../types';
|
|
2
2
|
import { ZERO_ADDRESS } from '../../constants';
|
|
3
3
|
/**
|
|
4
|
-
* Morpho Midnight core contract
|
|
5
|
-
*
|
|
6
|
-
* encode for `Midnight.take`.
|
|
4
|
+
* Morpho Midnight core contract, one per chain. Every Midnight market on a chain trades against its core,
|
|
5
|
+
* whoever curates the order book — it is part of the market struct the id is hashed from, and it is what
|
|
6
|
+
* offer tuples encode for `Midnight.take`. Listed at
|
|
7
|
+
* https://docs.morpho.org/get-started/resources/addresses/.
|
|
7
8
|
*/
|
|
8
9
|
export const MIDNIGHT_BASE = '0xAdedD8ab6dE832766Fedf0FaC4992E5C4D3EA18A';
|
|
10
|
+
export const MIDNIGHT_ETH = '0x471686c42792F93528B000beF54bC10E3aa2045f';
|
|
11
|
+
export const midnightCoreAddress = (network) => (network === NetworkNumber.Eth ? MIDNIGHT_ETH : MIDNIGHT_BASE);
|
|
9
12
|
const USDC_BASE = '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913';
|
|
10
13
|
const WETH_BASE = '0x4200000000000000000000000000000000000006';
|
|
11
14
|
const CBBTC_BASE = '0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf';
|
|
12
15
|
const CBETH_BASE = '0x2Ae3F1Ec7F1F5012CFEab0185bfc7aa3cf0DEc22';
|
|
16
|
+
const USDC_ETH = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48';
|
|
17
|
+
const WETH_ETH = '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2';
|
|
18
|
+
const WBTC_ETH = '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599';
|
|
19
|
+
const CBBTC_ETH = '0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf';
|
|
20
|
+
const STRUSD_ETH = '0x280839980a7eD0D7717F64125fE241012E5F5815';
|
|
21
|
+
const WSRUSD_ETH = '0xd3fD63209FA2D55B07A0f6db36C2f43900be3094';
|
|
22
|
+
const USD3_ETH = '0x056B269Eb1f75477a8666ae8C7fE01b64dD55eCc';
|
|
23
|
+
const REUSD_ETH = '0x5086bf358635B81D8C47C66d1C8b9E567Db70c72';
|
|
24
|
+
const SIUSD_ETH = '0xDBDC1Ef57537E34680B898E1FEBD3D68c7389bCB';
|
|
25
|
+
const WSTETH_ETH = '0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0';
|
|
13
26
|
// Tenor's ERC-4626 collateral vaults, one per pair and shared by that pair's whole maturity ladder. Each
|
|
14
27
|
// is a collateral of its markets on-chain without being an asset the app deals in — see the note above
|
|
15
28
|
// the Tenor markets below, and https://www.docs.tenor.finance/technical-docs/addresses/#vaults.
|
|
16
29
|
const TENOR_CBBTC_USDC_VAULT_BASE = '0xf6a70085b7f79FA76B04EbF7A2D7D87C3c5c04BC';
|
|
17
30
|
const TENOR_WETH_USDC_VAULT_BASE = '0xe690a58EF52854513462745237F6A213a0d54dF1';
|
|
18
31
|
const TENOR_CBETH_WETH_VAULT_BASE = '0xFa750DD0099eAdB72d401244De73ce7B89edf90F';
|
|
32
|
+
const TENOR_WETH_USDC_VAULT_ETH = '0x7579a75658A7A0b7d277296dFaEecF4018746091';
|
|
33
|
+
const TENOR_STRUSD_USDC_VAULT_ETH = '0xef6955d886fce26D87753dA45192eA50F59dc91c';
|
|
34
|
+
const TENOR_WSRUSD_USDC_VAULT_ETH = '0x09409fa71bCfd3f433571dbeec0C0A9C19B0d30E';
|
|
35
|
+
const TENOR_USD3_USDC_VAULT_ETH = '0x26C46ACb48B46cC99ccB3cf6C365BdaFa2556E80';
|
|
36
|
+
const TENOR_REUSD_USDC_VAULT_ETH = '0xe3891d8cA7E00Bc42157D9bb5797C88D9159AAC6';
|
|
37
|
+
const TENOR_SIUSD_USDC_VAULT_ETH = '0x226ecbf4755a5F81ed721E18c3fDA11f004Ea9e0';
|
|
38
|
+
const TENOR_WSTETH_WETH_VAULT_ETH = '0xe1Bdb88eE5DBaCE653ecD2123E8396BB5BA8adc5';
|
|
19
39
|
// Sourced from the official listing at https://markets.morpho.org/fixed/base
|
|
20
40
|
// BASE — USDC/cbBTC, 86% LLTV, monthly maturity ladder
|
|
21
41
|
export const MORPHO_MIDNIGHT_CBBTC_USDC_860_20260731 = (networkId = NetworkNumber.Base) => ({
|
|
@@ -180,19 +200,20 @@ export const MORPHO_MIDNIGHT_CBBTC_USDC_860_20270129 = (networkId = NetworkNumbe
|
|
|
180
200
|
// = Tenor's `fixedMarketIdentifier`; they come back `listed: false`, meaning Tenor — not Morpho — serves
|
|
181
201
|
// the book.
|
|
182
202
|
//
|
|
183
|
-
// Every market below is verified
|
|
184
|
-
// maturity, rcfThreshold, loan token, gates and
|
|
185
|
-
//
|
|
186
|
-
//
|
|
187
|
-
// https://www.docs.tenor.finance/technical-docs/addresses/#vaults). The
|
|
188
|
-
// deals in, so it
|
|
189
|
-
//
|
|
190
|
-
// set, the SDK's positional `prices[i]` / `collateral[i]` reads stay aligned with `collaterals`.
|
|
203
|
+
// Every market below is verified by replaying `MidnightView.toId` over the struct these fields build:
|
|
204
|
+
// core address, maturity, rcfThreshold, loan token, gates and the whole ordered collateral set have to
|
|
205
|
+
// match or the hash does not come back as the recorded `marketId`. On-chain each market carries **two**
|
|
206
|
+
// collaterals — the pair's own token, and Tenor's ERC-4626 vault at 98% LLTV (the `metadata.vault` of the
|
|
207
|
+
// parent tenor market, listed at https://www.docs.tenor.finance/technical-docs/addresses/#vaults). The
|
|
208
|
+
// vault is not an asset the app deals in, so it carries `hidden: true`: everything that renders or prices
|
|
209
|
+
// a position skips it and sees a single-collateral market.
|
|
191
210
|
//
|
|
192
|
-
// It is only
|
|
193
|
-
// to the core has to
|
|
194
|
-
//
|
|
195
|
-
//
|
|
211
|
+
// It is only flagged, never dropped or reordered: the market id is the hash of the full struct, so a
|
|
212
|
+
// `Market` handed to the core has to carry the complete set in the chain's own order or the call
|
|
213
|
+
// addresses a market of its own making — which does not revert, because markets are permissionless. On
|
|
214
|
+
// Base the vault happens to come last every time; on mainnet the order varies per market, which is why
|
|
215
|
+
// the flag lives on the entry rather than in a second list. The take path builds no struct — offer
|
|
216
|
+
// tuples carry the market's full collateral set straight from the router's offer JSON.
|
|
196
217
|
export const MORPHO_MIDNIGHT_TENOR_CBBTC_USDC_860_20260827 = (networkId = NetworkNumber.Base) => ({
|
|
197
218
|
chainIds: [NetworkNumber.Base],
|
|
198
219
|
label: 'Tenor cbBTC/USDC',
|
|
@@ -206,12 +227,12 @@ export const MORPHO_MIDNIGHT_TENOR_CBBTC_USDC_860_20260827 = (networkId = Networ
|
|
|
206
227
|
lltv: 0.86,
|
|
207
228
|
liquidationCursor: '300000000000000000',
|
|
208
229
|
oracle: '0x663BECd10daE6C4A3Dcd89F1d76c1174199639B9',
|
|
209
|
-
}
|
|
210
|
-
hiddenCollaterals: [{
|
|
230
|
+
}, {
|
|
211
231
|
token: TENOR_CBBTC_USDC_VAULT_BASE,
|
|
212
232
|
lltv: 0.98,
|
|
213
233
|
liquidationCursor: '300000000000000000',
|
|
214
234
|
oracle: '0x4a24e4bf269cE26aAD2dF00437e7730d25FCdE26',
|
|
235
|
+
hidden: true,
|
|
215
236
|
}],
|
|
216
237
|
maturity: 1787788800, // 2026-08-27T00:00:00Z
|
|
217
238
|
rcfThreshold: '3000000000',
|
|
@@ -234,12 +255,12 @@ export const MORPHO_MIDNIGHT_TENOR_CBBTC_USDC_860_20260924 = (networkId = Networ
|
|
|
234
255
|
lltv: 0.86,
|
|
235
256
|
liquidationCursor: '300000000000000000',
|
|
236
257
|
oracle: '0x663BECd10daE6C4A3Dcd89F1d76c1174199639B9',
|
|
237
|
-
}
|
|
238
|
-
hiddenCollaterals: [{
|
|
258
|
+
}, {
|
|
239
259
|
token: TENOR_CBBTC_USDC_VAULT_BASE,
|
|
240
260
|
lltv: 0.98,
|
|
241
261
|
liquidationCursor: '300000000000000000',
|
|
242
262
|
oracle: '0x4a24e4bf269cE26aAD2dF00437e7730d25FCdE26',
|
|
263
|
+
hidden: true,
|
|
243
264
|
}],
|
|
244
265
|
maturity: 1790208000, // 2026-09-24T00:00:00Z
|
|
245
266
|
rcfThreshold: '3000000000',
|
|
@@ -262,12 +283,12 @@ export const MORPHO_MIDNIGHT_TENOR_CBBTC_USDC_860_20261022 = (networkId = Networ
|
|
|
262
283
|
lltv: 0.86,
|
|
263
284
|
liquidationCursor: '300000000000000000',
|
|
264
285
|
oracle: '0x663BECd10daE6C4A3Dcd89F1d76c1174199639B9',
|
|
265
|
-
}
|
|
266
|
-
hiddenCollaterals: [{
|
|
286
|
+
}, {
|
|
267
287
|
token: TENOR_CBBTC_USDC_VAULT_BASE,
|
|
268
288
|
lltv: 0.98,
|
|
269
289
|
liquidationCursor: '300000000000000000',
|
|
270
290
|
oracle: '0x4a24e4bf269cE26aAD2dF00437e7730d25FCdE26',
|
|
291
|
+
hidden: true,
|
|
271
292
|
}],
|
|
272
293
|
maturity: 1792627200, // 2026-10-22T00:00:00Z
|
|
273
294
|
rcfThreshold: '3000000000',
|
|
@@ -290,12 +311,12 @@ export const MORPHO_MIDNIGHT_TENOR_CBBTC_USDC_860_20261119 = (networkId = Networ
|
|
|
290
311
|
lltv: 0.86,
|
|
291
312
|
liquidationCursor: '300000000000000000',
|
|
292
313
|
oracle: '0x663BECd10daE6C4A3Dcd89F1d76c1174199639B9',
|
|
293
|
-
}
|
|
294
|
-
hiddenCollaterals: [{
|
|
314
|
+
}, {
|
|
295
315
|
token: TENOR_CBBTC_USDC_VAULT_BASE,
|
|
296
316
|
lltv: 0.98,
|
|
297
317
|
liquidationCursor: '300000000000000000',
|
|
298
318
|
oracle: '0x4a24e4bf269cE26aAD2dF00437e7730d25FCdE26',
|
|
319
|
+
hidden: true,
|
|
299
320
|
}],
|
|
300
321
|
maturity: 1795046400, // 2026-11-19T00:00:00Z
|
|
301
322
|
rcfThreshold: '3000000000',
|
|
@@ -318,12 +339,12 @@ export const MORPHO_MIDNIGHT_TENOR_CBBTC_USDC_860_20261217 = (networkId = Networ
|
|
|
318
339
|
lltv: 0.86,
|
|
319
340
|
liquidationCursor: '300000000000000000',
|
|
320
341
|
oracle: '0x663BECd10daE6C4A3Dcd89F1d76c1174199639B9',
|
|
321
|
-
}
|
|
322
|
-
hiddenCollaterals: [{
|
|
342
|
+
}, {
|
|
323
343
|
token: TENOR_CBBTC_USDC_VAULT_BASE,
|
|
324
344
|
lltv: 0.98,
|
|
325
345
|
liquidationCursor: '300000000000000000',
|
|
326
346
|
oracle: '0x4a24e4bf269cE26aAD2dF00437e7730d25FCdE26',
|
|
347
|
+
hidden: true,
|
|
327
348
|
}],
|
|
328
349
|
maturity: 1797465600, // 2026-12-17T00:00:00Z
|
|
329
350
|
rcfThreshold: '3000000000',
|
|
@@ -346,12 +367,12 @@ export const MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20260827 = (networkId = Network
|
|
|
346
367
|
lltv: 0.86,
|
|
347
368
|
liquidationCursor: '300000000000000000',
|
|
348
369
|
oracle: '0xFEa2D58cEfCb9fcb597723c6bAE66fFE4193aFE4',
|
|
349
|
-
}
|
|
350
|
-
hiddenCollaterals: [{
|
|
370
|
+
}, {
|
|
351
371
|
token: TENOR_WETH_USDC_VAULT_BASE,
|
|
352
372
|
lltv: 0.98,
|
|
353
373
|
liquidationCursor: '300000000000000000',
|
|
354
374
|
oracle: '0x784519B1b59A1e1498f077066bB9336672bcc3EE',
|
|
375
|
+
hidden: true,
|
|
355
376
|
}],
|
|
356
377
|
maturity: 1787788800,
|
|
357
378
|
rcfThreshold: '3000000000',
|
|
@@ -374,12 +395,12 @@ export const MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20260924 = (networkId = Network
|
|
|
374
395
|
lltv: 0.86,
|
|
375
396
|
liquidationCursor: '300000000000000000',
|
|
376
397
|
oracle: '0xFEa2D58cEfCb9fcb597723c6bAE66fFE4193aFE4',
|
|
377
|
-
}
|
|
378
|
-
hiddenCollaterals: [{
|
|
398
|
+
}, {
|
|
379
399
|
token: TENOR_WETH_USDC_VAULT_BASE,
|
|
380
400
|
lltv: 0.98,
|
|
381
401
|
liquidationCursor: '300000000000000000',
|
|
382
402
|
oracle: '0x784519B1b59A1e1498f077066bB9336672bcc3EE',
|
|
403
|
+
hidden: true,
|
|
383
404
|
}],
|
|
384
405
|
maturity: 1790208000,
|
|
385
406
|
rcfThreshold: '3000000000',
|
|
@@ -402,12 +423,12 @@ export const MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20261022 = (networkId = Network
|
|
|
402
423
|
lltv: 0.86,
|
|
403
424
|
liquidationCursor: '300000000000000000',
|
|
404
425
|
oracle: '0xFEa2D58cEfCb9fcb597723c6bAE66fFE4193aFE4',
|
|
405
|
-
}
|
|
406
|
-
hiddenCollaterals: [{
|
|
426
|
+
}, {
|
|
407
427
|
token: TENOR_WETH_USDC_VAULT_BASE,
|
|
408
428
|
lltv: 0.98,
|
|
409
429
|
liquidationCursor: '300000000000000000',
|
|
410
430
|
oracle: '0x784519B1b59A1e1498f077066bB9336672bcc3EE',
|
|
431
|
+
hidden: true,
|
|
411
432
|
}],
|
|
412
433
|
maturity: 1792627200,
|
|
413
434
|
rcfThreshold: '3000000000',
|
|
@@ -430,12 +451,12 @@ export const MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20261119 = (networkId = Network
|
|
|
430
451
|
lltv: 0.86,
|
|
431
452
|
liquidationCursor: '300000000000000000',
|
|
432
453
|
oracle: '0xFEa2D58cEfCb9fcb597723c6bAE66fFE4193aFE4',
|
|
433
|
-
}
|
|
434
|
-
hiddenCollaterals: [{
|
|
454
|
+
}, {
|
|
435
455
|
token: TENOR_WETH_USDC_VAULT_BASE,
|
|
436
456
|
lltv: 0.98,
|
|
437
457
|
liquidationCursor: '300000000000000000',
|
|
438
458
|
oracle: '0x784519B1b59A1e1498f077066bB9336672bcc3EE',
|
|
459
|
+
hidden: true,
|
|
439
460
|
}],
|
|
440
461
|
maturity: 1795046400,
|
|
441
462
|
rcfThreshold: '3000000000',
|
|
@@ -458,12 +479,12 @@ export const MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20261217 = (networkId = Network
|
|
|
458
479
|
lltv: 0.86,
|
|
459
480
|
liquidationCursor: '300000000000000000',
|
|
460
481
|
oracle: '0xFEa2D58cEfCb9fcb597723c6bAE66fFE4193aFE4',
|
|
461
|
-
}
|
|
462
|
-
hiddenCollaterals: [{
|
|
482
|
+
}, {
|
|
463
483
|
token: TENOR_WETH_USDC_VAULT_BASE,
|
|
464
484
|
lltv: 0.98,
|
|
465
485
|
liquidationCursor: '300000000000000000',
|
|
466
486
|
oracle: '0x784519B1b59A1e1498f077066bB9336672bcc3EE',
|
|
487
|
+
hidden: true,
|
|
467
488
|
}],
|
|
468
489
|
maturity: 1797465600,
|
|
469
490
|
rcfThreshold: '3000000000',
|
|
@@ -486,12 +507,12 @@ export const MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20260827 = (networkId = Networ
|
|
|
486
507
|
lltv: 0.945,
|
|
487
508
|
liquidationCursor: '300000000000000000',
|
|
488
509
|
oracle: '0xB03855Ad5AFD6B8db8091DD5551CAC4ed621d9E6',
|
|
489
|
-
}
|
|
490
|
-
hiddenCollaterals: [{
|
|
510
|
+
}, {
|
|
491
511
|
token: TENOR_CBETH_WETH_VAULT_BASE,
|
|
492
512
|
lltv: 0.98,
|
|
493
513
|
liquidationCursor: '300000000000000000',
|
|
494
514
|
oracle: '0xa02f629871be35d6db0F88C944cF955554Ec87c0',
|
|
515
|
+
hidden: true,
|
|
495
516
|
}],
|
|
496
517
|
maturity: 1787788800,
|
|
497
518
|
rcfThreshold: '4000000000000000000',
|
|
@@ -514,12 +535,12 @@ export const MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20260924 = (networkId = Networ
|
|
|
514
535
|
lltv: 0.945,
|
|
515
536
|
liquidationCursor: '300000000000000000',
|
|
516
537
|
oracle: '0xB03855Ad5AFD6B8db8091DD5551CAC4ed621d9E6',
|
|
517
|
-
}
|
|
518
|
-
hiddenCollaterals: [{
|
|
538
|
+
}, {
|
|
519
539
|
token: TENOR_CBETH_WETH_VAULT_BASE,
|
|
520
540
|
lltv: 0.98,
|
|
521
541
|
liquidationCursor: '300000000000000000',
|
|
522
542
|
oracle: '0xa02f629871be35d6db0F88C944cF955554Ec87c0',
|
|
543
|
+
hidden: true,
|
|
523
544
|
}],
|
|
524
545
|
maturity: 1790208000,
|
|
525
546
|
rcfThreshold: '4000000000000000000',
|
|
@@ -542,12 +563,12 @@ export const MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261022 = (networkId = Networ
|
|
|
542
563
|
lltv: 0.945,
|
|
543
564
|
liquidationCursor: '300000000000000000',
|
|
544
565
|
oracle: '0xB03855Ad5AFD6B8db8091DD5551CAC4ed621d9E6',
|
|
545
|
-
}
|
|
546
|
-
hiddenCollaterals: [{
|
|
566
|
+
}, {
|
|
547
567
|
token: TENOR_CBETH_WETH_VAULT_BASE,
|
|
548
568
|
lltv: 0.98,
|
|
549
569
|
liquidationCursor: '300000000000000000',
|
|
550
570
|
oracle: '0xa02f629871be35d6db0F88C944cF955554Ec87c0',
|
|
571
|
+
hidden: true,
|
|
551
572
|
}],
|
|
552
573
|
maturity: 1792627200,
|
|
553
574
|
rcfThreshold: '4000000000000000000',
|
|
@@ -570,12 +591,12 @@ export const MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261119 = (networkId = Networ
|
|
|
570
591
|
lltv: 0.945,
|
|
571
592
|
liquidationCursor: '300000000000000000',
|
|
572
593
|
oracle: '0xB03855Ad5AFD6B8db8091DD5551CAC4ed621d9E6',
|
|
573
|
-
}
|
|
574
|
-
hiddenCollaterals: [{
|
|
594
|
+
}, {
|
|
575
595
|
token: TENOR_CBETH_WETH_VAULT_BASE,
|
|
576
596
|
lltv: 0.98,
|
|
577
597
|
liquidationCursor: '300000000000000000',
|
|
578
598
|
oracle: '0xa02f629871be35d6db0F88C944cF955554Ec87c0',
|
|
599
|
+
hidden: true,
|
|
579
600
|
}],
|
|
580
601
|
maturity: 1795046400,
|
|
581
602
|
rcfThreshold: '4000000000000000000',
|
|
@@ -598,12 +619,12 @@ export const MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261217 = (networkId = Networ
|
|
|
598
619
|
lltv: 0.945,
|
|
599
620
|
liquidationCursor: '300000000000000000',
|
|
600
621
|
oracle: '0xB03855Ad5AFD6B8db8091DD5551CAC4ed621d9E6',
|
|
601
|
-
}
|
|
602
|
-
hiddenCollaterals: [{
|
|
622
|
+
}, {
|
|
603
623
|
token: TENOR_CBETH_WETH_VAULT_BASE,
|
|
604
624
|
lltv: 0.98,
|
|
605
625
|
liquidationCursor: '300000000000000000',
|
|
606
626
|
oracle: '0xa02f629871be35d6db0F88C944cF955554Ec87c0',
|
|
627
|
+
hidden: true,
|
|
607
628
|
}],
|
|
608
629
|
maturity: 1797465600,
|
|
609
630
|
rcfThreshold: '4000000000000000000',
|
|
@@ -628,12 +649,12 @@ const createTenorWethUsdcRollingMarket = (value, url, maturity, marketId) => ({
|
|
|
628
649
|
lltv: 0.86,
|
|
629
650
|
liquidationCursor: '300000000000000000',
|
|
630
651
|
oracle: '0xFEa2D58cEfCb9fcb597723c6bAE66fFE4193aFE4',
|
|
631
|
-
}
|
|
632
|
-
hiddenCollaterals: [{
|
|
652
|
+
}, {
|
|
633
653
|
token: TENOR_WETH_USDC_VAULT_BASE,
|
|
634
654
|
lltv: 0.98,
|
|
635
655
|
liquidationCursor: '300000000000000000',
|
|
636
656
|
oracle: '0x784519B1b59A1e1498f077066bB9336672bcc3EE',
|
|
657
|
+
hidden: true,
|
|
637
658
|
}],
|
|
638
659
|
maturity,
|
|
639
660
|
rcfThreshold: '3000000000',
|
|
@@ -656,12 +677,12 @@ const createTenorCbEthWethRollingMarket = (value, url, maturity, marketId) => ({
|
|
|
656
677
|
lltv: 0.945,
|
|
657
678
|
liquidationCursor: '300000000000000000',
|
|
658
679
|
oracle: '0xB03855Ad5AFD6B8db8091DD5551CAC4ed621d9E6',
|
|
659
|
-
}
|
|
660
|
-
hiddenCollaterals: [{
|
|
680
|
+
}, {
|
|
661
681
|
token: TENOR_CBETH_WETH_VAULT_BASE,
|
|
662
682
|
lltv: 0.98,
|
|
663
683
|
liquidationCursor: '300000000000000000',
|
|
664
684
|
oracle: '0xa02f629871be35d6db0F88C944cF955554Ec87c0',
|
|
685
|
+
hidden: true,
|
|
665
686
|
}],
|
|
666
687
|
maturity,
|
|
667
688
|
rcfThreshold: '4000000000000000000',
|
|
@@ -681,7 +702,352 @@ export const MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261030 = () => createTenorCb
|
|
|
681
702
|
export const MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261127 = () => createTenorCbEthWethRollingMarket(MorphoMidnightVersions.MorphoMidnightTenorCbETHWETH_20261127_Base, 'tenor-cbeth-weth-20261127', 1795791600, '0xbb9ee13ffe52f4d52311775b1bd4fa309e402fd01ddfa165023c42dd6e5c051d');
|
|
682
703
|
export const MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261225 = () => createTenorCbEthWethRollingMarket(MorphoMidnightVersions.MorphoMidnightTenorCbETHWETH_20261225_Base, 'tenor-cbeth-weth-20261225', 1798210800, '0x80530386795c88ba8c1ea6d686ae6168525c819ce4e0ea6017cb59afe34fb6d2');
|
|
683
704
|
export const MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20270129 = () => createTenorCbEthWethRollingMarket(MorphoMidnightVersions.MorphoMidnightTenorCbETHWETH_20270129_Base, 'tenor-cbeth-weth-20270129', 1801234800, '0x3cfda244eeec7e5cda2a07ef23e2a5e3fe6ba17882417cafbf3f3c432377ff1d');
|
|
684
|
-
|
|
705
|
+
// ── ETHEREUM ─────────────────────────────────────────────────────────────────────────────────────
|
|
706
|
+
const createWBTCUsdcEthMarket = (value, url, maturity, marketId) => ({
|
|
707
|
+
chainIds: [NetworkNumber.Eth],
|
|
708
|
+
label: 'Morpho Midnight WBTC/USDC',
|
|
709
|
+
shortLabel: 'WBTC/USDC',
|
|
710
|
+
url,
|
|
711
|
+
value,
|
|
712
|
+
midnight: MIDNIGHT_ETH,
|
|
713
|
+
loanToken: USDC_ETH,
|
|
714
|
+
collaterals: [{
|
|
715
|
+
token: WBTC_ETH,
|
|
716
|
+
lltv: 0.86,
|
|
717
|
+
liquidationCursor: '300000000000000000',
|
|
718
|
+
oracle: '0xDddd770BADd886dF3864029e4B377B5F6a2B6b83',
|
|
719
|
+
}, {
|
|
720
|
+
token: USDC_ETH,
|
|
721
|
+
lltv: 0.98,
|
|
722
|
+
liquidationCursor: '300000000000000000',
|
|
723
|
+
oracle: '0x8d1A84515B54C58bAc3b18315B6b1f17dA5cf6ca',
|
|
724
|
+
hidden: true,
|
|
725
|
+
}],
|
|
726
|
+
maturity,
|
|
727
|
+
rcfThreshold: '300000000000',
|
|
728
|
+
enterGate: ZERO_ADDRESS,
|
|
729
|
+
liquidatorGate: ZERO_ADDRESS,
|
|
730
|
+
marketId,
|
|
731
|
+
protocolName: 'morpho-midnight',
|
|
732
|
+
curator: 'Morpho',
|
|
733
|
+
});
|
|
734
|
+
const createCbBTCUsdcEthMarket = (value, url, maturity, marketId) => ({
|
|
735
|
+
chainIds: [NetworkNumber.Eth],
|
|
736
|
+
label: 'Morpho Midnight cbBTC/USDC',
|
|
737
|
+
shortLabel: 'cbBTC/USDC',
|
|
738
|
+
url,
|
|
739
|
+
value,
|
|
740
|
+
midnight: MIDNIGHT_ETH,
|
|
741
|
+
loanToken: USDC_ETH,
|
|
742
|
+
collaterals: [{
|
|
743
|
+
token: USDC_ETH,
|
|
744
|
+
lltv: 0.98,
|
|
745
|
+
liquidationCursor: '300000000000000000',
|
|
746
|
+
oracle: '0x8d1A84515B54C58bAc3b18315B6b1f17dA5cf6ca',
|
|
747
|
+
hidden: true,
|
|
748
|
+
}, {
|
|
749
|
+
token: CBBTC_ETH,
|
|
750
|
+
lltv: 0.86,
|
|
751
|
+
liquidationCursor: '300000000000000000',
|
|
752
|
+
oracle: '0xA6D6950c9F177F1De7f7757FB33539e3Ec60182a',
|
|
753
|
+
}],
|
|
754
|
+
maturity,
|
|
755
|
+
rcfThreshold: '300000000000',
|
|
756
|
+
enterGate: ZERO_ADDRESS,
|
|
757
|
+
liquidatorGate: ZERO_ADDRESS,
|
|
758
|
+
marketId,
|
|
759
|
+
protocolName: 'morpho-midnight',
|
|
760
|
+
curator: 'Morpho',
|
|
761
|
+
});
|
|
762
|
+
export const MORPHO_MIDNIGHT_WBTC_USDC_860_20260925_ETH = () => createWBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20260925_Eth, 'wbtc-usdc-20260925', 1790348400, // 2026-09-25T15:00:00Z
|
|
763
|
+
'0x6dae37424723dd8cef0da2db84fd2819f7dfa4e3a98e602ccc3c65ee1fac61c2');
|
|
764
|
+
export const MORPHO_MIDNIGHT_WBTC_USDC_860_20261030_ETH = () => createWBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20261030_Eth, 'wbtc-usdc-20261030', 1793372400, // 2026-10-30T15:00:00Z
|
|
765
|
+
'0xe5e6fbd5d81875dbfb0c94866cb0d300e1c7b9aacc0a458e63dccbcc0ce278c8');
|
|
766
|
+
export const MORPHO_MIDNIGHT_WBTC_USDC_860_20261127_ETH = () => createWBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20261127_Eth, 'wbtc-usdc-20261127', 1795791600, // 2026-11-27T15:00:00Z
|
|
767
|
+
'0xe0efc89dc1f747ba502f6a4100b6b1db9ebd0d57569fd5a54771d3a026b6a27b');
|
|
768
|
+
export const MORPHO_MIDNIGHT_WBTC_USDC_860_20261225_ETH = () => createWBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20261225_Eth, 'wbtc-usdc-20261225', 1798210800, // 2026-12-25T15:00:00Z
|
|
769
|
+
'0x3323abf2d2a3ec804f46552db920d900bb9c7ffd3f48143ab879a918fd6c0977');
|
|
770
|
+
export const MORPHO_MIDNIGHT_WBTC_USDC_860_20270129_ETH = () => createWBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20270129_Eth, 'wbtc-usdc-20270129', 1801234800, // 2027-01-29T15:00:00Z
|
|
771
|
+
'0xf8052f557ce70d39cf9da1bd6e37e44a49f51757afb5dc881f675490ca6b3e9f');
|
|
772
|
+
export const MORPHO_MIDNIGHT_WBTC_USDC_860_20270226_ETH = () => createWBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20270226_Eth, 'wbtc-usdc-20270226', 1803654000, // 2027-02-26T15:00:00Z
|
|
773
|
+
'0x7e399db474781e92b22b5a647d811959f65997b1e2bb68deaade674d8afbbdbd');
|
|
774
|
+
export const MORPHO_MIDNIGHT_WBTC_USDC_860_20270326_ETH = () => createWBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20270326_Eth, 'wbtc-usdc-20270326', 1806073200, // 2027-03-26T15:00:00Z
|
|
775
|
+
'0x54a722a6dbaa237cfe088afd295417091bfb792fe3fac96999af41635977b2b0');
|
|
776
|
+
export const MORPHO_MIDNIGHT_CBBTC_USDC_860_20260925_ETH = () => createCbBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20260925_Eth, 'cbbtc-usdc-20260925', 1790348400, // 2026-09-25T15:00:00Z
|
|
777
|
+
'0x2a9ae59053a64e409e819d3b76750948e06065b3164278915eb80cb1b7474b65');
|
|
778
|
+
export const MORPHO_MIDNIGHT_CBBTC_USDC_860_20261030_ETH = () => createCbBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20261030_Eth, 'cbbtc-usdc-20261030', 1793372400, // 2026-10-30T15:00:00Z
|
|
779
|
+
'0xeea94e3f7185bb8cfcdf41aca2c9776788e86d6c14de345b911b04f75cd49959');
|
|
780
|
+
export const MORPHO_MIDNIGHT_CBBTC_USDC_860_20261127_ETH = () => createCbBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20261127_Eth, 'cbbtc-usdc-20261127', 1795791600, // 2026-11-27T15:00:00Z
|
|
781
|
+
'0xa6454499939a47927d3d27d65dce18486cc2aabbf75f8f5f8482e93567f4a183');
|
|
782
|
+
export const MORPHO_MIDNIGHT_CBBTC_USDC_860_20261225_ETH = () => createCbBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20261225_Eth, 'cbbtc-usdc-20261225', 1798210800, // 2026-12-25T15:00:00Z
|
|
783
|
+
'0xcf447db8cff164867b02edbf7ee7af06d241d4f3a44b34d6e3a3ea872ddea5d6');
|
|
784
|
+
export const MORPHO_MIDNIGHT_CBBTC_USDC_860_20270129_ETH = () => createCbBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20270129_Eth, 'cbbtc-usdc-20270129', 1801234800, // 2027-01-29T15:00:00Z
|
|
785
|
+
'0x9ea83106928cf45829a89c02cea7c73cb3a066d2429d7ca2fcdc0015dc191df1');
|
|
786
|
+
export const MORPHO_MIDNIGHT_CBBTC_USDC_860_20270226_ETH = () => createCbBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20270226_Eth, 'cbbtc-usdc-20270226', 1803654000, // 2027-02-26T15:00:00Z
|
|
787
|
+
'0xf9c1a9849863863a87600beb24394985a04ad3256b0c750baee0841f35f7f0e2');
|
|
788
|
+
export const MORPHO_MIDNIGHT_CBBTC_USDC_860_20270326_ETH = () => createCbBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20270326_Eth, 'cbbtc-usdc-20270326', 1806073200, // 2027-03-26T15:00:00Z
|
|
789
|
+
'0xb00767d2cc7d5d9e27501a14e7912a089e34da675a2eb9e030072233db2c4c3b');
|
|
790
|
+
// ETHEREUM — Tenor-curated, one rolling ladder per pair
|
|
791
|
+
const createTenorReUSDUsdcEthMarket = (value, url, maturity, marketId) => ({
|
|
792
|
+
chainIds: [NetworkNumber.Eth],
|
|
793
|
+
label: 'Tenor reUSD/USDC',
|
|
794
|
+
shortLabel: 'Tenor reUSD/USDC',
|
|
795
|
+
url,
|
|
796
|
+
value,
|
|
797
|
+
midnight: MIDNIGHT_ETH,
|
|
798
|
+
loanToken: USDC_ETH,
|
|
799
|
+
collaterals: [{
|
|
800
|
+
token: REUSD_ETH,
|
|
801
|
+
lltv: 0.915,
|
|
802
|
+
liquidationCursor: '300000000000000000',
|
|
803
|
+
oracle: '0xA66a4F03Fd8031973f8C7718904ce32385f54E70',
|
|
804
|
+
}, {
|
|
805
|
+
token: TENOR_REUSD_USDC_VAULT_ETH,
|
|
806
|
+
lltv: 0.98,
|
|
807
|
+
liquidationCursor: '300000000000000000',
|
|
808
|
+
oracle: '0xE5f7f5A74E6f4dA2F68b1aa017F204a1883eC0df',
|
|
809
|
+
hidden: true,
|
|
810
|
+
}],
|
|
811
|
+
maturity,
|
|
812
|
+
rcfThreshold: '500000000000',
|
|
813
|
+
enterGate: ZERO_ADDRESS,
|
|
814
|
+
liquidatorGate: ZERO_ADDRESS,
|
|
815
|
+
marketId,
|
|
816
|
+
protocolName: 'morpho-midnight',
|
|
817
|
+
curator: 'Tenor',
|
|
818
|
+
});
|
|
819
|
+
export const MORPHO_MIDNIGHT_TENOR_REUSD_USDC_915_20260925_ETH = () => createTenorReUSDUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightTenorReUSDUSDC_20260925_Eth, 'tenor-reusd-usdc-20260925', 1790348400, // 2026-09-25T15:00:00Z
|
|
820
|
+
'0xdba251b941d135577e1b423301b2eb6a76dfe11479c843185d20bee9208e7393');
|
|
821
|
+
export const MORPHO_MIDNIGHT_TENOR_REUSD_USDC_915_20261030_ETH = () => createTenorReUSDUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightTenorReUSDUSDC_20261030_Eth, 'tenor-reusd-usdc-20261030', 1793372400, // 2026-10-30T15:00:00Z
|
|
822
|
+
'0x0fdbbc14a6275905b3fc7372e7ce2828eafced9f2c3e442990682055839092c3');
|
|
823
|
+
export const MORPHO_MIDNIGHT_TENOR_REUSD_USDC_915_20261127_ETH = () => createTenorReUSDUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightTenorReUSDUSDC_20261127_Eth, 'tenor-reusd-usdc-20261127', 1795791600, // 2026-11-27T15:00:00Z
|
|
824
|
+
'0x1cf59f7382f72aee174e251ffaed5b8ada9e052da326fc3f32626bb52e126db6');
|
|
825
|
+
export const MORPHO_MIDNIGHT_TENOR_REUSD_USDC_915_20261225_ETH = () => createTenorReUSDUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightTenorReUSDUSDC_20261225_Eth, 'tenor-reusd-usdc-20261225', 1798210800, // 2026-12-25T15:00:00Z
|
|
826
|
+
'0xc78981202d07dae20266843ca668a20057beaafe3291b326529558227a03c9ad');
|
|
827
|
+
const createTenorSiUSDUsdcEthMarket = (value, url, maturity, marketId) => ({
|
|
828
|
+
chainIds: [NetworkNumber.Eth],
|
|
829
|
+
label: 'Tenor siUSD/USDC',
|
|
830
|
+
shortLabel: 'Tenor siUSD/USDC',
|
|
831
|
+
url,
|
|
832
|
+
value,
|
|
833
|
+
midnight: MIDNIGHT_ETH,
|
|
834
|
+
loanToken: USDC_ETH,
|
|
835
|
+
collaterals: [{
|
|
836
|
+
token: TENOR_SIUSD_USDC_VAULT_ETH,
|
|
837
|
+
lltv: 0.98,
|
|
838
|
+
liquidationCursor: '300000000000000000',
|
|
839
|
+
oracle: '0xE872d1d33b13B52aE7cD9A0CDD4102468350e5fa',
|
|
840
|
+
hidden: true,
|
|
841
|
+
}, {
|
|
842
|
+
token: SIUSD_ETH,
|
|
843
|
+
lltv: 0.915,
|
|
844
|
+
liquidationCursor: '300000000000000000',
|
|
845
|
+
oracle: '0xd2cC46b9B2D761502eF933320ecf0268EC0dfa6d',
|
|
846
|
+
}],
|
|
847
|
+
maturity,
|
|
848
|
+
rcfThreshold: '500000000000',
|
|
849
|
+
enterGate: ZERO_ADDRESS,
|
|
850
|
+
liquidatorGate: ZERO_ADDRESS,
|
|
851
|
+
marketId,
|
|
852
|
+
protocolName: 'morpho-midnight',
|
|
853
|
+
curator: 'Tenor',
|
|
854
|
+
});
|
|
855
|
+
export const MORPHO_MIDNIGHT_TENOR_SIUSD_USDC_915_20260925_ETH = () => createTenorSiUSDUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightTenorSiUSDUSDC_20260925_Eth, 'tenor-siusd-usdc-20260925', 1790348400, // 2026-09-25T15:00:00Z
|
|
856
|
+
'0x48d95ace842493ce2c1c474c0cb60ac208e9d8a714258e278af9c8ae01a88fa5');
|
|
857
|
+
export const MORPHO_MIDNIGHT_TENOR_SIUSD_USDC_915_20261030_ETH = () => createTenorSiUSDUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightTenorSiUSDUSDC_20261030_Eth, 'tenor-siusd-usdc-20261030', 1793372400, // 2026-10-30T15:00:00Z
|
|
858
|
+
'0x64985d39a1bae43d2741e7900cd42a2456dbacaee10e73f937abb1c9885d79da');
|
|
859
|
+
export const MORPHO_MIDNIGHT_TENOR_SIUSD_USDC_915_20261127_ETH = () => createTenorSiUSDUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightTenorSiUSDUSDC_20261127_Eth, 'tenor-siusd-usdc-20261127', 1795791600, // 2026-11-27T15:00:00Z
|
|
860
|
+
'0xed33721166c3f28bc834ce34135cf19b407056275eedf5faf662ccc7a821b7eb');
|
|
861
|
+
export const MORPHO_MIDNIGHT_TENOR_SIUSD_USDC_915_20261225_ETH = () => createTenorSiUSDUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightTenorSiUSDUSDC_20261225_Eth, 'tenor-siusd-usdc-20261225', 1798210800, // 2026-12-25T15:00:00Z
|
|
862
|
+
'0xe47e71bd0faf8383881b81b7d781ab93bf7bd4d4dc44c9c40add360841e5b26d');
|
|
863
|
+
const createTenorStrUSDUsdcEthMarket = (value, url, maturity, marketId) => ({
|
|
864
|
+
chainIds: [NetworkNumber.Eth],
|
|
865
|
+
label: 'Tenor strUSD/USDC',
|
|
866
|
+
shortLabel: 'Tenor strUSD/USDC',
|
|
867
|
+
url,
|
|
868
|
+
value,
|
|
869
|
+
midnight: MIDNIGHT_ETH,
|
|
870
|
+
loanToken: USDC_ETH,
|
|
871
|
+
collaterals: [{
|
|
872
|
+
token: STRUSD_ETH,
|
|
873
|
+
lltv: 0.86,
|
|
874
|
+
liquidationCursor: '300000000000000000',
|
|
875
|
+
oracle: '0x1506c98cE61aC63c8438B710C054a51c5dD9A6A4',
|
|
876
|
+
}, {
|
|
877
|
+
token: TENOR_STRUSD_USDC_VAULT_ETH,
|
|
878
|
+
lltv: 0.98,
|
|
879
|
+
liquidationCursor: '300000000000000000',
|
|
880
|
+
oracle: '0x361904890a43d4af2D1b8cF642A6C5e661Da5641',
|
|
881
|
+
hidden: true,
|
|
882
|
+
}],
|
|
883
|
+
maturity,
|
|
884
|
+
rcfThreshold: '300000000000',
|
|
885
|
+
enterGate: ZERO_ADDRESS,
|
|
886
|
+
liquidatorGate: ZERO_ADDRESS,
|
|
887
|
+
marketId,
|
|
888
|
+
protocolName: 'morpho-midnight',
|
|
889
|
+
curator: 'Tenor',
|
|
890
|
+
});
|
|
891
|
+
export const MORPHO_MIDNIGHT_TENOR_STRUSD_USDC_860_20260925_ETH = () => createTenorStrUSDUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightTenorStrUSDUSDC_20260925_Eth, 'tenor-strusd-usdc-20260925', 1790348400, // 2026-09-25T15:00:00Z
|
|
892
|
+
'0xa46399e45fe90b7d3c0488c4c73e9b361f758c4481734832a43d764ccdde0c64');
|
|
893
|
+
export const MORPHO_MIDNIGHT_TENOR_STRUSD_USDC_860_20261030_ETH = () => createTenorStrUSDUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightTenorStrUSDUSDC_20261030_Eth, 'tenor-strusd-usdc-20261030', 1793372400, // 2026-10-30T15:00:00Z
|
|
894
|
+
'0xe473f755d4bd358a676d9385036d8a9e28b64aac250d0959d56d935bed80d675');
|
|
895
|
+
export const MORPHO_MIDNIGHT_TENOR_STRUSD_USDC_860_20261127_ETH = () => createTenorStrUSDUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightTenorStrUSDUSDC_20261127_Eth, 'tenor-strusd-usdc-20261127', 1795791600, // 2026-11-27T15:00:00Z
|
|
896
|
+
'0x41d4f364feb13ead0b892b252eeb3636969de96a5be843400c86835aa98b1d67');
|
|
897
|
+
export const MORPHO_MIDNIGHT_TENOR_STRUSD_USDC_860_20261225_ETH = () => createTenorStrUSDUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightTenorStrUSDUSDC_20261225_Eth, 'tenor-strusd-usdc-20261225', 1798210800, // 2026-12-25T15:00:00Z
|
|
898
|
+
'0x91e872193d98f3452424b5dd05e15ac291ed38236af5ff9ff02371bb8efbedb7');
|
|
899
|
+
const createTenorUSD3UsdcEthMarket = (value, url, maturity, marketId) => ({
|
|
900
|
+
chainIds: [NetworkNumber.Eth],
|
|
901
|
+
label: 'Tenor USD3/USDC',
|
|
902
|
+
shortLabel: 'Tenor USD3/USDC',
|
|
903
|
+
url,
|
|
904
|
+
value,
|
|
905
|
+
midnight: MIDNIGHT_ETH,
|
|
906
|
+
loanToken: USDC_ETH,
|
|
907
|
+
collaterals: [{
|
|
908
|
+
token: USD3_ETH,
|
|
909
|
+
lltv: 0.915,
|
|
910
|
+
liquidationCursor: '300000000000000000',
|
|
911
|
+
oracle: '0x68b4c2B2b2e245AB54a3bD55DfD5A9d84f029C06',
|
|
912
|
+
}, {
|
|
913
|
+
token: TENOR_USD3_USDC_VAULT_ETH,
|
|
914
|
+
lltv: 0.98,
|
|
915
|
+
liquidationCursor: '300000000000000000',
|
|
916
|
+
oracle: '0x2C198EC459e0a035078565dEdc3c206604b57d4D',
|
|
917
|
+
hidden: true,
|
|
918
|
+
}],
|
|
919
|
+
maturity,
|
|
920
|
+
rcfThreshold: '500000000000',
|
|
921
|
+
enterGate: ZERO_ADDRESS,
|
|
922
|
+
liquidatorGate: ZERO_ADDRESS,
|
|
923
|
+
marketId,
|
|
924
|
+
protocolName: 'morpho-midnight',
|
|
925
|
+
curator: 'Tenor',
|
|
926
|
+
});
|
|
927
|
+
export const MORPHO_MIDNIGHT_TENOR_USD3_USDC_915_20260925_ETH = () => createTenorUSD3UsdcEthMarket(MorphoMidnightVersions.MorphoMidnightTenorUSD3USDC_20260925_Eth, 'tenor-usd3-usdc-20260925', 1790348400, // 2026-09-25T15:00:00Z
|
|
928
|
+
'0x1edea0a3875af341ea885fc7eac7e02bfce90c534a1602dbd40fefccfe4c24d4');
|
|
929
|
+
export const MORPHO_MIDNIGHT_TENOR_USD3_USDC_915_20261030_ETH = () => createTenorUSD3UsdcEthMarket(MorphoMidnightVersions.MorphoMidnightTenorUSD3USDC_20261030_Eth, 'tenor-usd3-usdc-20261030', 1793372400, // 2026-10-30T15:00:00Z
|
|
930
|
+
'0x11c6795118a68a7bf5d8995240614454291a698ac387aa6c0e23db46ec5112ed');
|
|
931
|
+
export const MORPHO_MIDNIGHT_TENOR_USD3_USDC_915_20261127_ETH = () => createTenorUSD3UsdcEthMarket(MorphoMidnightVersions.MorphoMidnightTenorUSD3USDC_20261127_Eth, 'tenor-usd3-usdc-20261127', 1795791600, // 2026-11-27T15:00:00Z
|
|
932
|
+
'0x72ee2771278a1d78e7970a60dc1723c95e16a4384893b044cdbd707347f1abf6');
|
|
933
|
+
export const MORPHO_MIDNIGHT_TENOR_USD3_USDC_915_20261225_ETH = () => createTenorUSD3UsdcEthMarket(MorphoMidnightVersions.MorphoMidnightTenorUSD3USDC_20261225_Eth, 'tenor-usd3-usdc-20261225', 1798210800, // 2026-12-25T15:00:00Z
|
|
934
|
+
'0x2a6b8c5d4fc953e0f747590267d7b4018f35246ba0fdbf8adbc269a2491bdde1');
|
|
935
|
+
const createTenorWETHUsdcEthMarket = (value, url, maturity, marketId) => ({
|
|
936
|
+
chainIds: [NetworkNumber.Eth],
|
|
937
|
+
label: 'Tenor WETH/USDC',
|
|
938
|
+
shortLabel: 'Tenor WETH/USDC',
|
|
939
|
+
url,
|
|
940
|
+
value,
|
|
941
|
+
midnight: MIDNIGHT_ETH,
|
|
942
|
+
loanToken: USDC_ETH,
|
|
943
|
+
collaterals: [{
|
|
944
|
+
token: TENOR_WETH_USDC_VAULT_ETH,
|
|
945
|
+
lltv: 0.98,
|
|
946
|
+
liquidationCursor: '300000000000000000',
|
|
947
|
+
oracle: '0x5c4fd2864C21F0b81730B4EC74030130aA2193Ca',
|
|
948
|
+
hidden: true,
|
|
949
|
+
}, {
|
|
950
|
+
token: WETH_ETH,
|
|
951
|
+
lltv: 0.86,
|
|
952
|
+
liquidationCursor: '300000000000000000',
|
|
953
|
+
oracle: '0x0F948CBa8231Db7898ef36A4212581Ad7b1B4580',
|
|
954
|
+
}],
|
|
955
|
+
maturity,
|
|
956
|
+
rcfThreshold: '300000000000',
|
|
957
|
+
enterGate: ZERO_ADDRESS,
|
|
958
|
+
liquidatorGate: ZERO_ADDRESS,
|
|
959
|
+
marketId,
|
|
960
|
+
protocolName: 'morpho-midnight',
|
|
961
|
+
curator: 'Tenor',
|
|
962
|
+
});
|
|
963
|
+
export const MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20260925_ETH = () => createTenorWETHUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightTenorWETHUSDC_20260925_Eth, 'tenor-weth-usdc-20260925', 1790348400, // 2026-09-25T15:00:00Z
|
|
964
|
+
'0x6a463fa464b97f7ba86516be7de82761bfa411522701ede713a269c2c385c70a');
|
|
965
|
+
export const MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20261030_ETH = () => createTenorWETHUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightTenorWETHUSDC_20261030_Eth, 'tenor-weth-usdc-20261030', 1793372400, // 2026-10-30T15:00:00Z
|
|
966
|
+
'0xbd6a19559ca14acff13ac124ac0302c0ce6c41ff6a34841242752601e8b0e42c');
|
|
967
|
+
export const MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20261127_ETH = () => createTenorWETHUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightTenorWETHUSDC_20261127_Eth, 'tenor-weth-usdc-20261127', 1795791600, // 2026-11-27T15:00:00Z
|
|
968
|
+
'0x348fb368e0f88eb63e739c6753bb0fbf306fb269a8dc0585542a6e4be5c63d6c');
|
|
969
|
+
export const MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20261225_ETH = () => createTenorWETHUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightTenorWETHUSDC_20261225_Eth, 'tenor-weth-usdc-20261225', 1798210800, // 2026-12-25T15:00:00Z
|
|
970
|
+
'0xbe554be39e1df0ac1e8287d78ec8de26f0ea6197c6797bdeaed5350f45ae5b9f');
|
|
971
|
+
const createTenorWsrUSDUsdcEthMarket = (value, url, maturity, marketId) => ({
|
|
972
|
+
chainIds: [NetworkNumber.Eth],
|
|
973
|
+
label: 'Tenor wsrUSD/USDC',
|
|
974
|
+
shortLabel: 'Tenor wsrUSD/USDC',
|
|
975
|
+
url,
|
|
976
|
+
value,
|
|
977
|
+
midnight: MIDNIGHT_ETH,
|
|
978
|
+
loanToken: USDC_ETH,
|
|
979
|
+
collaterals: [{
|
|
980
|
+
token: TENOR_WSRUSD_USDC_VAULT_ETH,
|
|
981
|
+
lltv: 0.98,
|
|
982
|
+
liquidationCursor: '300000000000000000',
|
|
983
|
+
oracle: '0x7C997e4dddF1D4B7C0D5f290B92d0909ba227c14',
|
|
984
|
+
hidden: true,
|
|
985
|
+
}, {
|
|
986
|
+
token: WSRUSD_ETH,
|
|
987
|
+
lltv: 0.945,
|
|
988
|
+
liquidationCursor: '300000000000000000',
|
|
989
|
+
oracle: '0x938D2eDb20425cF80F008E7ec314Eb456940Da15',
|
|
990
|
+
}],
|
|
991
|
+
maturity,
|
|
992
|
+
rcfThreshold: '700000000000',
|
|
993
|
+
enterGate: ZERO_ADDRESS,
|
|
994
|
+
liquidatorGate: ZERO_ADDRESS,
|
|
995
|
+
marketId,
|
|
996
|
+
protocolName: 'morpho-midnight',
|
|
997
|
+
curator: 'Tenor',
|
|
998
|
+
});
|
|
999
|
+
export const MORPHO_MIDNIGHT_TENOR_WSRUSD_USDC_945_20260925_ETH = () => createTenorWsrUSDUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightTenorWsrUSDUSDC_20260925_Eth, 'tenor-wsrusd-usdc-20260925', 1790348400, // 2026-09-25T15:00:00Z
|
|
1000
|
+
'0xc028a0b50ba0c606fbf83e5620018f23019b1fb5d1d15b4a5a0d17cc72edcfeb');
|
|
1001
|
+
export const MORPHO_MIDNIGHT_TENOR_WSRUSD_USDC_945_20261030_ETH = () => createTenorWsrUSDUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightTenorWsrUSDUSDC_20261030_Eth, 'tenor-wsrusd-usdc-20261030', 1793372400, // 2026-10-30T15:00:00Z
|
|
1002
|
+
'0xc6079abce78d158671adedd6778c55edb786f4e4bc7097a59e7fb56e9ddda1b9');
|
|
1003
|
+
export const MORPHO_MIDNIGHT_TENOR_WSRUSD_USDC_945_20261127_ETH = () => createTenorWsrUSDUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightTenorWsrUSDUSDC_20261127_Eth, 'tenor-wsrusd-usdc-20261127', 1795791600, // 2026-11-27T15:00:00Z
|
|
1004
|
+
'0x8d4dafdceb706a31e06fba2946e5e12ac9656f98ba430eeb695b553333d78640');
|
|
1005
|
+
export const MORPHO_MIDNIGHT_TENOR_WSRUSD_USDC_945_20261225_ETH = () => createTenorWsrUSDUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightTenorWsrUSDUSDC_20261225_Eth, 'tenor-wsrusd-usdc-20261225', 1798210800, // 2026-12-25T15:00:00Z
|
|
1006
|
+
'0x02763ffcac291ea4b16ed0b3e3e524ee9aa07248a6e4ea6613e3724b54cce116');
|
|
1007
|
+
const createTenorWstETHWethEthMarket = (value, url, maturity, marketId) => ({
|
|
1008
|
+
chainIds: [NetworkNumber.Eth],
|
|
1009
|
+
label: 'Tenor wstETH/WETH',
|
|
1010
|
+
shortLabel: 'Tenor wstETH/WETH',
|
|
1011
|
+
url,
|
|
1012
|
+
value,
|
|
1013
|
+
midnight: MIDNIGHT_ETH,
|
|
1014
|
+
loanToken: WETH_ETH,
|
|
1015
|
+
collaterals: [{
|
|
1016
|
+
token: WSTETH_ETH,
|
|
1017
|
+
lltv: 0.965,
|
|
1018
|
+
liquidationCursor: '300000000000000000',
|
|
1019
|
+
oracle: '0xbD60A6770b27E084E8617335ddE769241B0e71D8',
|
|
1020
|
+
}, {
|
|
1021
|
+
token: TENOR_WSTETH_WETH_VAULT_ETH,
|
|
1022
|
+
lltv: 0.98,
|
|
1023
|
+
liquidationCursor: '300000000000000000',
|
|
1024
|
+
oracle: '0x4eA702113EFAE91B906fC9eC1415dd7a9B860c89',
|
|
1025
|
+
hidden: true,
|
|
1026
|
+
}],
|
|
1027
|
+
maturity,
|
|
1028
|
+
rcfThreshold: '600000000000000000000',
|
|
1029
|
+
enterGate: ZERO_ADDRESS,
|
|
1030
|
+
liquidatorGate: ZERO_ADDRESS,
|
|
1031
|
+
marketId,
|
|
1032
|
+
protocolName: 'morpho-midnight',
|
|
1033
|
+
curator: 'Tenor',
|
|
1034
|
+
});
|
|
1035
|
+
export const MORPHO_MIDNIGHT_TENOR_WSTETH_WETH_965_20260925_ETH = () => createTenorWstETHWethEthMarket(MorphoMidnightVersions.MorphoMidnightTenorWstETHWETH_20260925_Eth, 'tenor-wsteth-weth-20260925', 1790348400, // 2026-09-25T15:00:00Z
|
|
1036
|
+
'0x9ac6a639ace1c291b68b212eb1a95fd080332793f7bfc7dbed58b92bc518ca70');
|
|
1037
|
+
export const MORPHO_MIDNIGHT_TENOR_WSTETH_WETH_965_20261030_ETH = () => createTenorWstETHWethEthMarket(MorphoMidnightVersions.MorphoMidnightTenorWstETHWETH_20261030_Eth, 'tenor-wsteth-weth-20261030', 1793372400, // 2026-10-30T15:00:00Z
|
|
1038
|
+
'0xf032c0184869e9b856b20cdcc298a1ebbec2cd4ee86e6189ff94852fa368a1b3');
|
|
1039
|
+
export const MORPHO_MIDNIGHT_TENOR_WSTETH_WETH_965_20261127_ETH = () => createTenorWstETHWethEthMarket(MorphoMidnightVersions.MorphoMidnightTenorWstETHWETH_20261127_Eth, 'tenor-wsteth-weth-20261127', 1795791600, // 2026-11-27T15:00:00Z
|
|
1040
|
+
'0x0cc2301b2247d109d5a05d7a95012077cbdf9908f9f72f315de601c1f7b438f9');
|
|
1041
|
+
export const MORPHO_MIDNIGHT_TENOR_WSTETH_WETH_965_20261225_ETH = () => createTenorWstETHWethEthMarket(MorphoMidnightVersions.MorphoMidnightTenorWstETHWETH_20261225_Eth, 'tenor-wsteth-weth-20261225', 1798210800, // 2026-12-25T15:00:00Z
|
|
1042
|
+
'0x646f7959780a1555f7696aad335a197fe45710f73f0bcf70f26712923249af4b');
|
|
1043
|
+
/**
|
|
1044
|
+
* Collaterals we deliberately do not list. Their markets are defined and verified above — they are real
|
|
1045
|
+
* markets — but withheld from the map below, so nothing in the app offers, prices or routes to them.
|
|
1046
|
+
*/
|
|
1047
|
+
const EXCLUDED_COLLATERALS = [STRUSD_ETH, WSRUSD_ETH, REUSD_ETH, SIUSD_ETH, USD3_ETH];
|
|
1048
|
+
const isExcludedMarket = (market) => market.collaterals.some((collateral) => !collateral.hidden
|
|
1049
|
+
&& EXCLUDED_COLLATERALS.some((token) => token.toLowerCase() === collateral.token.toLowerCase()));
|
|
1050
|
+
const allMorphoMidnightMarkets = (networkId) => ({
|
|
685
1051
|
// BASE — Morpho-curated
|
|
686
1052
|
[MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20260731_Base]: MORPHO_MIDNIGHT_CBBTC_USDC_860_20260731(networkId),
|
|
687
1053
|
[MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20260828_Base]: MORPHO_MIDNIGHT_CBBTC_USDC_860_20260828(networkId),
|
|
@@ -716,19 +1082,67 @@ export const MorphoMidnightMarkets = (networkId) => ({
|
|
|
716
1082
|
[MorphoMidnightVersions.MorphoMidnightTenorCbETHWETH_20261127_Base]: MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261127(),
|
|
717
1083
|
[MorphoMidnightVersions.MorphoMidnightTenorCbETHWETH_20261225_Base]: MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261225(),
|
|
718
1084
|
[MorphoMidnightVersions.MorphoMidnightTenorCbETHWETH_20270129_Base]: MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20270129(),
|
|
1085
|
+
// ETHEREUM — Morpho-curated
|
|
1086
|
+
[MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20260925_Eth]: MORPHO_MIDNIGHT_WBTC_USDC_860_20260925_ETH(),
|
|
1087
|
+
[MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20261030_Eth]: MORPHO_MIDNIGHT_WBTC_USDC_860_20261030_ETH(),
|
|
1088
|
+
[MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20261127_Eth]: MORPHO_MIDNIGHT_WBTC_USDC_860_20261127_ETH(),
|
|
1089
|
+
[MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20261225_Eth]: MORPHO_MIDNIGHT_WBTC_USDC_860_20261225_ETH(),
|
|
1090
|
+
[MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20270129_Eth]: MORPHO_MIDNIGHT_WBTC_USDC_860_20270129_ETH(),
|
|
1091
|
+
[MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20270226_Eth]: MORPHO_MIDNIGHT_WBTC_USDC_860_20270226_ETH(),
|
|
1092
|
+
[MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20270326_Eth]: MORPHO_MIDNIGHT_WBTC_USDC_860_20270326_ETH(),
|
|
1093
|
+
[MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20260925_Eth]: MORPHO_MIDNIGHT_CBBTC_USDC_860_20260925_ETH(),
|
|
1094
|
+
[MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20261030_Eth]: MORPHO_MIDNIGHT_CBBTC_USDC_860_20261030_ETH(),
|
|
1095
|
+
[MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20261127_Eth]: MORPHO_MIDNIGHT_CBBTC_USDC_860_20261127_ETH(),
|
|
1096
|
+
[MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20261225_Eth]: MORPHO_MIDNIGHT_CBBTC_USDC_860_20261225_ETH(),
|
|
1097
|
+
[MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20270129_Eth]: MORPHO_MIDNIGHT_CBBTC_USDC_860_20270129_ETH(),
|
|
1098
|
+
[MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20270226_Eth]: MORPHO_MIDNIGHT_CBBTC_USDC_860_20270226_ETH(),
|
|
1099
|
+
[MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20270326_Eth]: MORPHO_MIDNIGHT_CBBTC_USDC_860_20270326_ETH(),
|
|
1100
|
+
// ETHEREUM — Tenor-curated
|
|
1101
|
+
[MorphoMidnightVersions.MorphoMidnightTenorReUSDUSDC_20260925_Eth]: MORPHO_MIDNIGHT_TENOR_REUSD_USDC_915_20260925_ETH(),
|
|
1102
|
+
[MorphoMidnightVersions.MorphoMidnightTenorReUSDUSDC_20261030_Eth]: MORPHO_MIDNIGHT_TENOR_REUSD_USDC_915_20261030_ETH(),
|
|
1103
|
+
[MorphoMidnightVersions.MorphoMidnightTenorReUSDUSDC_20261127_Eth]: MORPHO_MIDNIGHT_TENOR_REUSD_USDC_915_20261127_ETH(),
|
|
1104
|
+
[MorphoMidnightVersions.MorphoMidnightTenorReUSDUSDC_20261225_Eth]: MORPHO_MIDNIGHT_TENOR_REUSD_USDC_915_20261225_ETH(),
|
|
1105
|
+
[MorphoMidnightVersions.MorphoMidnightTenorSiUSDUSDC_20260925_Eth]: MORPHO_MIDNIGHT_TENOR_SIUSD_USDC_915_20260925_ETH(),
|
|
1106
|
+
[MorphoMidnightVersions.MorphoMidnightTenorSiUSDUSDC_20261030_Eth]: MORPHO_MIDNIGHT_TENOR_SIUSD_USDC_915_20261030_ETH(),
|
|
1107
|
+
[MorphoMidnightVersions.MorphoMidnightTenorSiUSDUSDC_20261127_Eth]: MORPHO_MIDNIGHT_TENOR_SIUSD_USDC_915_20261127_ETH(),
|
|
1108
|
+
[MorphoMidnightVersions.MorphoMidnightTenorSiUSDUSDC_20261225_Eth]: MORPHO_MIDNIGHT_TENOR_SIUSD_USDC_915_20261225_ETH(),
|
|
1109
|
+
[MorphoMidnightVersions.MorphoMidnightTenorStrUSDUSDC_20260925_Eth]: MORPHO_MIDNIGHT_TENOR_STRUSD_USDC_860_20260925_ETH(),
|
|
1110
|
+
[MorphoMidnightVersions.MorphoMidnightTenorStrUSDUSDC_20261030_Eth]: MORPHO_MIDNIGHT_TENOR_STRUSD_USDC_860_20261030_ETH(),
|
|
1111
|
+
[MorphoMidnightVersions.MorphoMidnightTenorStrUSDUSDC_20261127_Eth]: MORPHO_MIDNIGHT_TENOR_STRUSD_USDC_860_20261127_ETH(),
|
|
1112
|
+
[MorphoMidnightVersions.MorphoMidnightTenorStrUSDUSDC_20261225_Eth]: MORPHO_MIDNIGHT_TENOR_STRUSD_USDC_860_20261225_ETH(),
|
|
1113
|
+
[MorphoMidnightVersions.MorphoMidnightTenorUSD3USDC_20260925_Eth]: MORPHO_MIDNIGHT_TENOR_USD3_USDC_915_20260925_ETH(),
|
|
1114
|
+
[MorphoMidnightVersions.MorphoMidnightTenorUSD3USDC_20261030_Eth]: MORPHO_MIDNIGHT_TENOR_USD3_USDC_915_20261030_ETH(),
|
|
1115
|
+
[MorphoMidnightVersions.MorphoMidnightTenorUSD3USDC_20261127_Eth]: MORPHO_MIDNIGHT_TENOR_USD3_USDC_915_20261127_ETH(),
|
|
1116
|
+
[MorphoMidnightVersions.MorphoMidnightTenorUSD3USDC_20261225_Eth]: MORPHO_MIDNIGHT_TENOR_USD3_USDC_915_20261225_ETH(),
|
|
1117
|
+
[MorphoMidnightVersions.MorphoMidnightTenorWETHUSDC_20260925_Eth]: MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20260925_ETH(),
|
|
1118
|
+
[MorphoMidnightVersions.MorphoMidnightTenorWETHUSDC_20261030_Eth]: MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20261030_ETH(),
|
|
1119
|
+
[MorphoMidnightVersions.MorphoMidnightTenorWETHUSDC_20261127_Eth]: MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20261127_ETH(),
|
|
1120
|
+
[MorphoMidnightVersions.MorphoMidnightTenorWETHUSDC_20261225_Eth]: MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20261225_ETH(),
|
|
1121
|
+
[MorphoMidnightVersions.MorphoMidnightTenorWsrUSDUSDC_20260925_Eth]: MORPHO_MIDNIGHT_TENOR_WSRUSD_USDC_945_20260925_ETH(),
|
|
1122
|
+
[MorphoMidnightVersions.MorphoMidnightTenorWsrUSDUSDC_20261030_Eth]: MORPHO_MIDNIGHT_TENOR_WSRUSD_USDC_945_20261030_ETH(),
|
|
1123
|
+
[MorphoMidnightVersions.MorphoMidnightTenorWsrUSDUSDC_20261127_Eth]: MORPHO_MIDNIGHT_TENOR_WSRUSD_USDC_945_20261127_ETH(),
|
|
1124
|
+
[MorphoMidnightVersions.MorphoMidnightTenorWsrUSDUSDC_20261225_Eth]: MORPHO_MIDNIGHT_TENOR_WSRUSD_USDC_945_20261225_ETH(),
|
|
1125
|
+
[MorphoMidnightVersions.MorphoMidnightTenorWstETHWETH_20260925_Eth]: MORPHO_MIDNIGHT_TENOR_WSTETH_WETH_965_20260925_ETH(),
|
|
1126
|
+
[MorphoMidnightVersions.MorphoMidnightTenorWstETHWETH_20261030_Eth]: MORPHO_MIDNIGHT_TENOR_WSTETH_WETH_965_20261030_ETH(),
|
|
1127
|
+
[MorphoMidnightVersions.MorphoMidnightTenorWstETHWETH_20261127_Eth]: MORPHO_MIDNIGHT_TENOR_WSTETH_WETH_965_20261127_ETH(),
|
|
1128
|
+
[MorphoMidnightVersions.MorphoMidnightTenorWstETHWETH_20261225_Eth]: MORPHO_MIDNIGHT_TENOR_WSTETH_WETH_965_20261225_ETH(),
|
|
719
1129
|
});
|
|
720
|
-
|
|
1130
|
+
export const MorphoMidnightMarkets = (networkId) => {
|
|
1131
|
+
const all = allMorphoMidnightMarkets(networkId);
|
|
1132
|
+
if (!EXCLUDED_COLLATERALS.length)
|
|
1133
|
+
return all;
|
|
1134
|
+
return Object.fromEntries(Object.entries(all).filter(([, market]) => !isExcludedMarket(market)));
|
|
1135
|
+
};
|
|
721
1136
|
const TENOR_MARKET_IDS = new Set(Object.values(MorphoMidnightMarkets(NetworkNumber.Base))
|
|
722
1137
|
.filter((market) => market.curator === 'Tenor')
|
|
723
1138
|
.map((market) => market.marketId.toLowerCase()));
|
|
724
1139
|
export const isTenorMidnightMarket = (market) => (typeof market === 'string'
|
|
725
1140
|
? TENOR_MARKET_IDS.has(market.toLowerCase())
|
|
726
1141
|
: market.curator === 'Tenor');
|
|
727
|
-
export const findMorphoMidnightMarket = (marketId, network
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
export const morphoMidnightMarketCollateralParams = (market) => [...market.collaterals, ...(market.hiddenCollaterals || [])];
|
|
1142
|
+
export const findMorphoMidnightMarket = (marketId, network) => (Object.values(MorphoMidnightMarkets(network !== null && network !== void 0 ? network : NetworkNumber.Base))
|
|
1143
|
+
.find((market) => market.marketId.toLowerCase() === marketId.toLowerCase()
|
|
1144
|
+
&& (network === undefined || market.chainIds.includes(network))));
|
|
1145
|
+
export const morphoMidnightMarketCollateralParams = (market) => market.collaterals.map(({ token, lltv, liquidationCursor, oracle, }) => ({
|
|
1146
|
+
token, lltv, liquidationCursor, oracle,
|
|
1147
|
+
}));
|
|
1148
|
+
export const morphoMidnightVisibleCollaterals = (market) => market.collaterals.filter((collateral) => !collateral.hidden);
|