@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,21 +1,39 @@
|
|
|
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';
|
|
13
25
|
// Tenor's ERC-4626 collateral vaults, one per pair and shared by that pair's whole maturity ladder. Each
|
|
14
26
|
// is a collateral of its markets on-chain without being an asset the app deals in — see the note above
|
|
15
27
|
// the Tenor markets below, and https://www.docs.tenor.finance/technical-docs/addresses/#vaults.
|
|
16
28
|
const TENOR_CBBTC_USDC_VAULT_BASE = '0xf6a70085b7f79FA76B04EbF7A2D7D87C3c5c04BC';
|
|
17
29
|
const TENOR_WETH_USDC_VAULT_BASE = '0xe690a58EF52854513462745237F6A213a0d54dF1';
|
|
18
30
|
const TENOR_CBETH_WETH_VAULT_BASE = '0xFa750DD0099eAdB72d401244De73ce7B89edf90F';
|
|
31
|
+
const TENOR_WETH_USDC_VAULT_ETH = '0x7579a75658A7A0b7d277296dFaEecF4018746091';
|
|
32
|
+
const TENOR_STRUSD_USDC_VAULT_ETH = '0xef6955d886fce26D87753dA45192eA50F59dc91c';
|
|
33
|
+
const TENOR_WSRUSD_USDC_VAULT_ETH = '0x09409fa71bCfd3f433571dbeec0C0A9C19B0d30E';
|
|
34
|
+
const TENOR_USD3_USDC_VAULT_ETH = '0x26C46ACb48B46cC99ccB3cf6C365BdaFa2556E80';
|
|
35
|
+
const TENOR_REUSD_USDC_VAULT_ETH = '0xe3891d8cA7E00Bc42157D9bb5797C88D9159AAC6';
|
|
36
|
+
const TENOR_SIUSD_USDC_VAULT_ETH = '0x226ecbf4755a5F81ed721E18c3fDA11f004Ea9e0';
|
|
19
37
|
// Sourced from the official listing at https://markets.morpho.org/fixed/base
|
|
20
38
|
// BASE — USDC/cbBTC, 86% LLTV, monthly maturity ladder
|
|
21
39
|
export const MORPHO_MIDNIGHT_CBBTC_USDC_860_20260731 = (networkId = NetworkNumber.Base) => ({
|
|
@@ -180,19 +198,20 @@ export const MORPHO_MIDNIGHT_CBBTC_USDC_860_20270129 = (networkId = NetworkNumbe
|
|
|
180
198
|
// = Tenor's `fixedMarketIdentifier`; they come back `listed: false`, meaning Tenor — not Morpho — serves
|
|
181
199
|
// the book.
|
|
182
200
|
//
|
|
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`.
|
|
201
|
+
// Every market below is verified by replaying `MidnightView.toId` over the struct these fields build:
|
|
202
|
+
// core address, maturity, rcfThreshold, loan token, gates and the whole ordered collateral set have to
|
|
203
|
+
// match or the hash does not come back as the recorded `marketId`. On-chain each market carries **two**
|
|
204
|
+
// collaterals — the pair's own token, and Tenor's ERC-4626 vault at 98% LLTV (the `metadata.vault` of the
|
|
205
|
+
// parent tenor market, listed at https://www.docs.tenor.finance/technical-docs/addresses/#vaults). The
|
|
206
|
+
// vault is not an asset the app deals in, so it carries `hidden: true`: everything that renders or prices
|
|
207
|
+
// a position skips it and sees a single-collateral market.
|
|
191
208
|
//
|
|
192
|
-
// It is only
|
|
193
|
-
// to the core has to
|
|
194
|
-
//
|
|
195
|
-
//
|
|
209
|
+
// It is only flagged, never dropped or reordered: the market id is the hash of the full struct, so a
|
|
210
|
+
// `Market` handed to the core has to carry the complete set in the chain's own order or the call
|
|
211
|
+
// addresses a market of its own making — which does not revert, because markets are permissionless. On
|
|
212
|
+
// Base the vault happens to come last every time; on mainnet the order varies per market, which is why
|
|
213
|
+
// the flag lives on the entry rather than in a second list. The take path builds no struct — offer
|
|
214
|
+
// tuples carry the market's full collateral set straight from the router's offer JSON.
|
|
196
215
|
export const MORPHO_MIDNIGHT_TENOR_CBBTC_USDC_860_20260827 = (networkId = NetworkNumber.Base) => ({
|
|
197
216
|
chainIds: [NetworkNumber.Base],
|
|
198
217
|
label: 'Tenor cbBTC/USDC',
|
|
@@ -206,12 +225,12 @@ export const MORPHO_MIDNIGHT_TENOR_CBBTC_USDC_860_20260827 = (networkId = Networ
|
|
|
206
225
|
lltv: 0.86,
|
|
207
226
|
liquidationCursor: '300000000000000000',
|
|
208
227
|
oracle: '0x663BECd10daE6C4A3Dcd89F1d76c1174199639B9',
|
|
209
|
-
}
|
|
210
|
-
hiddenCollaterals: [{
|
|
228
|
+
}, {
|
|
211
229
|
token: TENOR_CBBTC_USDC_VAULT_BASE,
|
|
212
230
|
lltv: 0.98,
|
|
213
231
|
liquidationCursor: '300000000000000000',
|
|
214
232
|
oracle: '0x4a24e4bf269cE26aAD2dF00437e7730d25FCdE26',
|
|
233
|
+
hidden: true,
|
|
215
234
|
}],
|
|
216
235
|
maturity: 1787788800, // 2026-08-27T00:00:00Z
|
|
217
236
|
rcfThreshold: '3000000000',
|
|
@@ -234,12 +253,12 @@ export const MORPHO_MIDNIGHT_TENOR_CBBTC_USDC_860_20260924 = (networkId = Networ
|
|
|
234
253
|
lltv: 0.86,
|
|
235
254
|
liquidationCursor: '300000000000000000',
|
|
236
255
|
oracle: '0x663BECd10daE6C4A3Dcd89F1d76c1174199639B9',
|
|
237
|
-
}
|
|
238
|
-
hiddenCollaterals: [{
|
|
256
|
+
}, {
|
|
239
257
|
token: TENOR_CBBTC_USDC_VAULT_BASE,
|
|
240
258
|
lltv: 0.98,
|
|
241
259
|
liquidationCursor: '300000000000000000',
|
|
242
260
|
oracle: '0x4a24e4bf269cE26aAD2dF00437e7730d25FCdE26',
|
|
261
|
+
hidden: true,
|
|
243
262
|
}],
|
|
244
263
|
maturity: 1790208000, // 2026-09-24T00:00:00Z
|
|
245
264
|
rcfThreshold: '3000000000',
|
|
@@ -262,12 +281,12 @@ export const MORPHO_MIDNIGHT_TENOR_CBBTC_USDC_860_20261022 = (networkId = Networ
|
|
|
262
281
|
lltv: 0.86,
|
|
263
282
|
liquidationCursor: '300000000000000000',
|
|
264
283
|
oracle: '0x663BECd10daE6C4A3Dcd89F1d76c1174199639B9',
|
|
265
|
-
}
|
|
266
|
-
hiddenCollaterals: [{
|
|
284
|
+
}, {
|
|
267
285
|
token: TENOR_CBBTC_USDC_VAULT_BASE,
|
|
268
286
|
lltv: 0.98,
|
|
269
287
|
liquidationCursor: '300000000000000000',
|
|
270
288
|
oracle: '0x4a24e4bf269cE26aAD2dF00437e7730d25FCdE26',
|
|
289
|
+
hidden: true,
|
|
271
290
|
}],
|
|
272
291
|
maturity: 1792627200, // 2026-10-22T00:00:00Z
|
|
273
292
|
rcfThreshold: '3000000000',
|
|
@@ -290,12 +309,12 @@ export const MORPHO_MIDNIGHT_TENOR_CBBTC_USDC_860_20261119 = (networkId = Networ
|
|
|
290
309
|
lltv: 0.86,
|
|
291
310
|
liquidationCursor: '300000000000000000',
|
|
292
311
|
oracle: '0x663BECd10daE6C4A3Dcd89F1d76c1174199639B9',
|
|
293
|
-
}
|
|
294
|
-
hiddenCollaterals: [{
|
|
312
|
+
}, {
|
|
295
313
|
token: TENOR_CBBTC_USDC_VAULT_BASE,
|
|
296
314
|
lltv: 0.98,
|
|
297
315
|
liquidationCursor: '300000000000000000',
|
|
298
316
|
oracle: '0x4a24e4bf269cE26aAD2dF00437e7730d25FCdE26',
|
|
317
|
+
hidden: true,
|
|
299
318
|
}],
|
|
300
319
|
maturity: 1795046400, // 2026-11-19T00:00:00Z
|
|
301
320
|
rcfThreshold: '3000000000',
|
|
@@ -318,12 +337,12 @@ export const MORPHO_MIDNIGHT_TENOR_CBBTC_USDC_860_20261217 = (networkId = Networ
|
|
|
318
337
|
lltv: 0.86,
|
|
319
338
|
liquidationCursor: '300000000000000000',
|
|
320
339
|
oracle: '0x663BECd10daE6C4A3Dcd89F1d76c1174199639B9',
|
|
321
|
-
}
|
|
322
|
-
hiddenCollaterals: [{
|
|
340
|
+
}, {
|
|
323
341
|
token: TENOR_CBBTC_USDC_VAULT_BASE,
|
|
324
342
|
lltv: 0.98,
|
|
325
343
|
liquidationCursor: '300000000000000000',
|
|
326
344
|
oracle: '0x4a24e4bf269cE26aAD2dF00437e7730d25FCdE26',
|
|
345
|
+
hidden: true,
|
|
327
346
|
}],
|
|
328
347
|
maturity: 1797465600, // 2026-12-17T00:00:00Z
|
|
329
348
|
rcfThreshold: '3000000000',
|
|
@@ -346,12 +365,12 @@ export const MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20260827 = (networkId = Network
|
|
|
346
365
|
lltv: 0.86,
|
|
347
366
|
liquidationCursor: '300000000000000000',
|
|
348
367
|
oracle: '0xFEa2D58cEfCb9fcb597723c6bAE66fFE4193aFE4',
|
|
349
|
-
}
|
|
350
|
-
hiddenCollaterals: [{
|
|
368
|
+
}, {
|
|
351
369
|
token: TENOR_WETH_USDC_VAULT_BASE,
|
|
352
370
|
lltv: 0.98,
|
|
353
371
|
liquidationCursor: '300000000000000000',
|
|
354
372
|
oracle: '0x784519B1b59A1e1498f077066bB9336672bcc3EE',
|
|
373
|
+
hidden: true,
|
|
355
374
|
}],
|
|
356
375
|
maturity: 1787788800,
|
|
357
376
|
rcfThreshold: '3000000000',
|
|
@@ -374,12 +393,12 @@ export const MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20260924 = (networkId = Network
|
|
|
374
393
|
lltv: 0.86,
|
|
375
394
|
liquidationCursor: '300000000000000000',
|
|
376
395
|
oracle: '0xFEa2D58cEfCb9fcb597723c6bAE66fFE4193aFE4',
|
|
377
|
-
}
|
|
378
|
-
hiddenCollaterals: [{
|
|
396
|
+
}, {
|
|
379
397
|
token: TENOR_WETH_USDC_VAULT_BASE,
|
|
380
398
|
lltv: 0.98,
|
|
381
399
|
liquidationCursor: '300000000000000000',
|
|
382
400
|
oracle: '0x784519B1b59A1e1498f077066bB9336672bcc3EE',
|
|
401
|
+
hidden: true,
|
|
383
402
|
}],
|
|
384
403
|
maturity: 1790208000,
|
|
385
404
|
rcfThreshold: '3000000000',
|
|
@@ -402,12 +421,12 @@ export const MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20261022 = (networkId = Network
|
|
|
402
421
|
lltv: 0.86,
|
|
403
422
|
liquidationCursor: '300000000000000000',
|
|
404
423
|
oracle: '0xFEa2D58cEfCb9fcb597723c6bAE66fFE4193aFE4',
|
|
405
|
-
}
|
|
406
|
-
hiddenCollaterals: [{
|
|
424
|
+
}, {
|
|
407
425
|
token: TENOR_WETH_USDC_VAULT_BASE,
|
|
408
426
|
lltv: 0.98,
|
|
409
427
|
liquidationCursor: '300000000000000000',
|
|
410
428
|
oracle: '0x784519B1b59A1e1498f077066bB9336672bcc3EE',
|
|
429
|
+
hidden: true,
|
|
411
430
|
}],
|
|
412
431
|
maturity: 1792627200,
|
|
413
432
|
rcfThreshold: '3000000000',
|
|
@@ -430,12 +449,12 @@ export const MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20261119 = (networkId = Network
|
|
|
430
449
|
lltv: 0.86,
|
|
431
450
|
liquidationCursor: '300000000000000000',
|
|
432
451
|
oracle: '0xFEa2D58cEfCb9fcb597723c6bAE66fFE4193aFE4',
|
|
433
|
-
}
|
|
434
|
-
hiddenCollaterals: [{
|
|
452
|
+
}, {
|
|
435
453
|
token: TENOR_WETH_USDC_VAULT_BASE,
|
|
436
454
|
lltv: 0.98,
|
|
437
455
|
liquidationCursor: '300000000000000000',
|
|
438
456
|
oracle: '0x784519B1b59A1e1498f077066bB9336672bcc3EE',
|
|
457
|
+
hidden: true,
|
|
439
458
|
}],
|
|
440
459
|
maturity: 1795046400,
|
|
441
460
|
rcfThreshold: '3000000000',
|
|
@@ -458,12 +477,12 @@ export const MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20261217 = (networkId = Network
|
|
|
458
477
|
lltv: 0.86,
|
|
459
478
|
liquidationCursor: '300000000000000000',
|
|
460
479
|
oracle: '0xFEa2D58cEfCb9fcb597723c6bAE66fFE4193aFE4',
|
|
461
|
-
}
|
|
462
|
-
hiddenCollaterals: [{
|
|
480
|
+
}, {
|
|
463
481
|
token: TENOR_WETH_USDC_VAULT_BASE,
|
|
464
482
|
lltv: 0.98,
|
|
465
483
|
liquidationCursor: '300000000000000000',
|
|
466
484
|
oracle: '0x784519B1b59A1e1498f077066bB9336672bcc3EE',
|
|
485
|
+
hidden: true,
|
|
467
486
|
}],
|
|
468
487
|
maturity: 1797465600,
|
|
469
488
|
rcfThreshold: '3000000000',
|
|
@@ -486,12 +505,12 @@ export const MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20260827 = (networkId = Networ
|
|
|
486
505
|
lltv: 0.945,
|
|
487
506
|
liquidationCursor: '300000000000000000',
|
|
488
507
|
oracle: '0xB03855Ad5AFD6B8db8091DD5551CAC4ed621d9E6',
|
|
489
|
-
}
|
|
490
|
-
hiddenCollaterals: [{
|
|
508
|
+
}, {
|
|
491
509
|
token: TENOR_CBETH_WETH_VAULT_BASE,
|
|
492
510
|
lltv: 0.98,
|
|
493
511
|
liquidationCursor: '300000000000000000',
|
|
494
512
|
oracle: '0xa02f629871be35d6db0F88C944cF955554Ec87c0',
|
|
513
|
+
hidden: true,
|
|
495
514
|
}],
|
|
496
515
|
maturity: 1787788800,
|
|
497
516
|
rcfThreshold: '4000000000000000000',
|
|
@@ -514,12 +533,12 @@ export const MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20260924 = (networkId = Networ
|
|
|
514
533
|
lltv: 0.945,
|
|
515
534
|
liquidationCursor: '300000000000000000',
|
|
516
535
|
oracle: '0xB03855Ad5AFD6B8db8091DD5551CAC4ed621d9E6',
|
|
517
|
-
}
|
|
518
|
-
hiddenCollaterals: [{
|
|
536
|
+
}, {
|
|
519
537
|
token: TENOR_CBETH_WETH_VAULT_BASE,
|
|
520
538
|
lltv: 0.98,
|
|
521
539
|
liquidationCursor: '300000000000000000',
|
|
522
540
|
oracle: '0xa02f629871be35d6db0F88C944cF955554Ec87c0',
|
|
541
|
+
hidden: true,
|
|
523
542
|
}],
|
|
524
543
|
maturity: 1790208000,
|
|
525
544
|
rcfThreshold: '4000000000000000000',
|
|
@@ -542,12 +561,12 @@ export const MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261022 = (networkId = Networ
|
|
|
542
561
|
lltv: 0.945,
|
|
543
562
|
liquidationCursor: '300000000000000000',
|
|
544
563
|
oracle: '0xB03855Ad5AFD6B8db8091DD5551CAC4ed621d9E6',
|
|
545
|
-
}
|
|
546
|
-
hiddenCollaterals: [{
|
|
564
|
+
}, {
|
|
547
565
|
token: TENOR_CBETH_WETH_VAULT_BASE,
|
|
548
566
|
lltv: 0.98,
|
|
549
567
|
liquidationCursor: '300000000000000000',
|
|
550
568
|
oracle: '0xa02f629871be35d6db0F88C944cF955554Ec87c0',
|
|
569
|
+
hidden: true,
|
|
551
570
|
}],
|
|
552
571
|
maturity: 1792627200,
|
|
553
572
|
rcfThreshold: '4000000000000000000',
|
|
@@ -570,12 +589,12 @@ export const MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261119 = (networkId = Networ
|
|
|
570
589
|
lltv: 0.945,
|
|
571
590
|
liquidationCursor: '300000000000000000',
|
|
572
591
|
oracle: '0xB03855Ad5AFD6B8db8091DD5551CAC4ed621d9E6',
|
|
573
|
-
}
|
|
574
|
-
hiddenCollaterals: [{
|
|
592
|
+
}, {
|
|
575
593
|
token: TENOR_CBETH_WETH_VAULT_BASE,
|
|
576
594
|
lltv: 0.98,
|
|
577
595
|
liquidationCursor: '300000000000000000',
|
|
578
596
|
oracle: '0xa02f629871be35d6db0F88C944cF955554Ec87c0',
|
|
597
|
+
hidden: true,
|
|
579
598
|
}],
|
|
580
599
|
maturity: 1795046400,
|
|
581
600
|
rcfThreshold: '4000000000000000000',
|
|
@@ -598,12 +617,12 @@ export const MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261217 = (networkId = Networ
|
|
|
598
617
|
lltv: 0.945,
|
|
599
618
|
liquidationCursor: '300000000000000000',
|
|
600
619
|
oracle: '0xB03855Ad5AFD6B8db8091DD5551CAC4ed621d9E6',
|
|
601
|
-
}
|
|
602
|
-
hiddenCollaterals: [{
|
|
620
|
+
}, {
|
|
603
621
|
token: TENOR_CBETH_WETH_VAULT_BASE,
|
|
604
622
|
lltv: 0.98,
|
|
605
623
|
liquidationCursor: '300000000000000000',
|
|
606
624
|
oracle: '0xa02f629871be35d6db0F88C944cF955554Ec87c0',
|
|
625
|
+
hidden: true,
|
|
607
626
|
}],
|
|
608
627
|
maturity: 1797465600,
|
|
609
628
|
rcfThreshold: '4000000000000000000',
|
|
@@ -628,12 +647,12 @@ const createTenorWethUsdcRollingMarket = (value, url, maturity, marketId) => ({
|
|
|
628
647
|
lltv: 0.86,
|
|
629
648
|
liquidationCursor: '300000000000000000',
|
|
630
649
|
oracle: '0xFEa2D58cEfCb9fcb597723c6bAE66fFE4193aFE4',
|
|
631
|
-
}
|
|
632
|
-
hiddenCollaterals: [{
|
|
650
|
+
}, {
|
|
633
651
|
token: TENOR_WETH_USDC_VAULT_BASE,
|
|
634
652
|
lltv: 0.98,
|
|
635
653
|
liquidationCursor: '300000000000000000',
|
|
636
654
|
oracle: '0x784519B1b59A1e1498f077066bB9336672bcc3EE',
|
|
655
|
+
hidden: true,
|
|
637
656
|
}],
|
|
638
657
|
maturity,
|
|
639
658
|
rcfThreshold: '3000000000',
|
|
@@ -656,12 +675,12 @@ const createTenorCbEthWethRollingMarket = (value, url, maturity, marketId) => ({
|
|
|
656
675
|
lltv: 0.945,
|
|
657
676
|
liquidationCursor: '300000000000000000',
|
|
658
677
|
oracle: '0xB03855Ad5AFD6B8db8091DD5551CAC4ed621d9E6',
|
|
659
|
-
}
|
|
660
|
-
hiddenCollaterals: [{
|
|
678
|
+
}, {
|
|
661
679
|
token: TENOR_CBETH_WETH_VAULT_BASE,
|
|
662
680
|
lltv: 0.98,
|
|
663
681
|
liquidationCursor: '300000000000000000',
|
|
664
682
|
oracle: '0xa02f629871be35d6db0F88C944cF955554Ec87c0',
|
|
683
|
+
hidden: true,
|
|
665
684
|
}],
|
|
666
685
|
maturity,
|
|
667
686
|
rcfThreshold: '4000000000000000000',
|
|
@@ -681,6 +700,260 @@ export const MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261030 = () => createTenorCb
|
|
|
681
700
|
export const MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261127 = () => createTenorCbEthWethRollingMarket(MorphoMidnightVersions.MorphoMidnightTenorCbETHWETH_20261127_Base, 'tenor-cbeth-weth-20261127', 1795791600, '0xbb9ee13ffe52f4d52311775b1bd4fa309e402fd01ddfa165023c42dd6e5c051d');
|
|
682
701
|
export const MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261225 = () => createTenorCbEthWethRollingMarket(MorphoMidnightVersions.MorphoMidnightTenorCbETHWETH_20261225_Base, 'tenor-cbeth-weth-20261225', 1798210800, '0x80530386795c88ba8c1ea6d686ae6168525c819ce4e0ea6017cb59afe34fb6d2');
|
|
683
702
|
export const MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20270129 = () => createTenorCbEthWethRollingMarket(MorphoMidnightVersions.MorphoMidnightTenorCbETHWETH_20270129_Base, 'tenor-cbeth-weth-20270129', 1801234800, '0x3cfda244eeec7e5cda2a07ef23e2a5e3fe6ba17882417cafbf3f3c432377ff1d');
|
|
703
|
+
// ── ETHEREUM ─────────────────────────────────────────────────────────────────────────────────────
|
|
704
|
+
const createWBTCUsdcEthMarket = (value, url, maturity, marketId) => ({
|
|
705
|
+
chainIds: [NetworkNumber.Eth],
|
|
706
|
+
label: 'Morpho Midnight WBTC/USDC',
|
|
707
|
+
shortLabel: 'WBTC/USDC',
|
|
708
|
+
url,
|
|
709
|
+
value,
|
|
710
|
+
midnight: MIDNIGHT_ETH,
|
|
711
|
+
loanToken: USDC_ETH,
|
|
712
|
+
collaterals: [{
|
|
713
|
+
token: WBTC_ETH,
|
|
714
|
+
lltv: 0.86,
|
|
715
|
+
liquidationCursor: '300000000000000000',
|
|
716
|
+
oracle: '0xDddd770BADd886dF3864029e4B377B5F6a2B6b83',
|
|
717
|
+
}, {
|
|
718
|
+
token: USDC_ETH,
|
|
719
|
+
lltv: 0.98,
|
|
720
|
+
liquidationCursor: '300000000000000000',
|
|
721
|
+
oracle: '0x8d1A84515B54C58bAc3b18315B6b1f17dA5cf6ca',
|
|
722
|
+
hidden: true,
|
|
723
|
+
}],
|
|
724
|
+
maturity,
|
|
725
|
+
rcfThreshold: '300000000000',
|
|
726
|
+
enterGate: ZERO_ADDRESS,
|
|
727
|
+
liquidatorGate: ZERO_ADDRESS,
|
|
728
|
+
marketId,
|
|
729
|
+
protocolName: 'morpho-midnight',
|
|
730
|
+
curator: 'Morpho',
|
|
731
|
+
});
|
|
732
|
+
const createCbBTCUsdcEthMarket = (value, url, maturity, marketId) => ({
|
|
733
|
+
chainIds: [NetworkNumber.Eth],
|
|
734
|
+
label: 'Morpho Midnight cbBTC/USDC',
|
|
735
|
+
shortLabel: 'cbBTC/USDC',
|
|
736
|
+
url,
|
|
737
|
+
value,
|
|
738
|
+
midnight: MIDNIGHT_ETH,
|
|
739
|
+
loanToken: USDC_ETH,
|
|
740
|
+
collaterals: [{
|
|
741
|
+
token: USDC_ETH,
|
|
742
|
+
lltv: 0.98,
|
|
743
|
+
liquidationCursor: '300000000000000000',
|
|
744
|
+
oracle: '0x8d1A84515B54C58bAc3b18315B6b1f17dA5cf6ca',
|
|
745
|
+
hidden: true,
|
|
746
|
+
}, {
|
|
747
|
+
token: CBBTC_ETH,
|
|
748
|
+
lltv: 0.86,
|
|
749
|
+
liquidationCursor: '300000000000000000',
|
|
750
|
+
oracle: '0xA6D6950c9F177F1De7f7757FB33539e3Ec60182a',
|
|
751
|
+
}],
|
|
752
|
+
maturity,
|
|
753
|
+
rcfThreshold: '300000000000',
|
|
754
|
+
enterGate: ZERO_ADDRESS,
|
|
755
|
+
liquidatorGate: ZERO_ADDRESS,
|
|
756
|
+
marketId,
|
|
757
|
+
protocolName: 'morpho-midnight',
|
|
758
|
+
curator: 'Morpho',
|
|
759
|
+
});
|
|
760
|
+
export const MORPHO_MIDNIGHT_WBTC_USDC_860_20260925_ETH = () => createWBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20260925_Eth, 'wbtc-usdc-20260925', 1790348400, // 2026-09-25T15:00:00Z
|
|
761
|
+
'0x6dae37424723dd8cef0da2db84fd2819f7dfa4e3a98e602ccc3c65ee1fac61c2');
|
|
762
|
+
export const MORPHO_MIDNIGHT_WBTC_USDC_860_20261030_ETH = () => createWBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20261030_Eth, 'wbtc-usdc-20261030', 1793372400, // 2026-10-30T15:00:00Z
|
|
763
|
+
'0xe5e6fbd5d81875dbfb0c94866cb0d300e1c7b9aacc0a458e63dccbcc0ce278c8');
|
|
764
|
+
export const MORPHO_MIDNIGHT_WBTC_USDC_860_20261127_ETH = () => createWBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20261127_Eth, 'wbtc-usdc-20261127', 1795791600, // 2026-11-27T15:00:00Z
|
|
765
|
+
'0xe0efc89dc1f747ba502f6a4100b6b1db9ebd0d57569fd5a54771d3a026b6a27b');
|
|
766
|
+
export const MORPHO_MIDNIGHT_WBTC_USDC_860_20261225_ETH = () => createWBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20261225_Eth, 'wbtc-usdc-20261225', 1798210800, // 2026-12-25T15:00:00Z
|
|
767
|
+
'0x3323abf2d2a3ec804f46552db920d900bb9c7ffd3f48143ab879a918fd6c0977');
|
|
768
|
+
export const MORPHO_MIDNIGHT_WBTC_USDC_860_20270129_ETH = () => createWBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20270129_Eth, 'wbtc-usdc-20270129', 1801234800, // 2027-01-29T15:00:00Z
|
|
769
|
+
'0xf8052f557ce70d39cf9da1bd6e37e44a49f51757afb5dc881f675490ca6b3e9f');
|
|
770
|
+
export const MORPHO_MIDNIGHT_WBTC_USDC_860_20270226_ETH = () => createWBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20270226_Eth, 'wbtc-usdc-20270226', 1803654000, // 2027-02-26T15:00:00Z
|
|
771
|
+
'0x7e399db474781e92b22b5a647d811959f65997b1e2bb68deaade674d8afbbdbd');
|
|
772
|
+
export const MORPHO_MIDNIGHT_WBTC_USDC_860_20270326_ETH = () => createWBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20270326_Eth, 'wbtc-usdc-20270326', 1806073200, // 2027-03-26T15:00:00Z
|
|
773
|
+
'0x54a722a6dbaa237cfe088afd295417091bfb792fe3fac96999af41635977b2b0');
|
|
774
|
+
export const MORPHO_MIDNIGHT_CBBTC_USDC_860_20260925_ETH = () => createCbBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20260925_Eth, 'cbbtc-usdc-20260925', 1790348400, // 2026-09-25T15:00:00Z
|
|
775
|
+
'0x2a9ae59053a64e409e819d3b76750948e06065b3164278915eb80cb1b7474b65');
|
|
776
|
+
export const MORPHO_MIDNIGHT_CBBTC_USDC_860_20261030_ETH = () => createCbBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20261030_Eth, 'cbbtc-usdc-20261030', 1793372400, // 2026-10-30T15:00:00Z
|
|
777
|
+
'0xeea94e3f7185bb8cfcdf41aca2c9776788e86d6c14de345b911b04f75cd49959');
|
|
778
|
+
export const MORPHO_MIDNIGHT_CBBTC_USDC_860_20261127_ETH = () => createCbBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20261127_Eth, 'cbbtc-usdc-20261127', 1795791600, // 2026-11-27T15:00:00Z
|
|
779
|
+
'0xa6454499939a47927d3d27d65dce18486cc2aabbf75f8f5f8482e93567f4a183');
|
|
780
|
+
export const MORPHO_MIDNIGHT_CBBTC_USDC_860_20261225_ETH = () => createCbBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20261225_Eth, 'cbbtc-usdc-20261225', 1798210800, // 2026-12-25T15:00:00Z
|
|
781
|
+
'0xcf447db8cff164867b02edbf7ee7af06d241d4f3a44b34d6e3a3ea872ddea5d6');
|
|
782
|
+
export const MORPHO_MIDNIGHT_CBBTC_USDC_860_20270129_ETH = () => createCbBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20270129_Eth, 'cbbtc-usdc-20270129', 1801234800, // 2027-01-29T15:00:00Z
|
|
783
|
+
'0x9ea83106928cf45829a89c02cea7c73cb3a066d2429d7ca2fcdc0015dc191df1');
|
|
784
|
+
export const MORPHO_MIDNIGHT_CBBTC_USDC_860_20270226_ETH = () => createCbBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20270226_Eth, 'cbbtc-usdc-20270226', 1803654000, // 2027-02-26T15:00:00Z
|
|
785
|
+
'0xf9c1a9849863863a87600beb24394985a04ad3256b0c750baee0841f35f7f0e2');
|
|
786
|
+
export const MORPHO_MIDNIGHT_CBBTC_USDC_860_20270326_ETH = () => createCbBTCUsdcEthMarket(MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20270326_Eth, 'cbbtc-usdc-20270326', 1806073200, // 2027-03-26T15:00:00Z
|
|
787
|
+
'0xb00767d2cc7d5d9e27501a14e7912a089e34da675a2eb9e030072233db2c4c3b');
|
|
788
|
+
// ETHEREUM — Tenor-curated
|
|
789
|
+
export const MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20260925_ETH = () => ({
|
|
790
|
+
chainIds: [NetworkNumber.Eth],
|
|
791
|
+
label: 'Tenor WETH/USDC',
|
|
792
|
+
shortLabel: 'Tenor WETH/USDC',
|
|
793
|
+
url: 'tenor-weth-usdc-20260925',
|
|
794
|
+
value: MorphoMidnightVersions.MorphoMidnightTenorWETHUSDC_20260925_Eth,
|
|
795
|
+
midnight: MIDNIGHT_ETH,
|
|
796
|
+
loanToken: USDC_ETH,
|
|
797
|
+
collaterals: [{
|
|
798
|
+
token: TENOR_WETH_USDC_VAULT_ETH,
|
|
799
|
+
lltv: 0.98,
|
|
800
|
+
liquidationCursor: '300000000000000000',
|
|
801
|
+
oracle: '0x5c4fd2864C21F0b81730B4EC74030130aA2193Ca',
|
|
802
|
+
hidden: true,
|
|
803
|
+
}, {
|
|
804
|
+
token: WETH_ETH,
|
|
805
|
+
lltv: 0.86,
|
|
806
|
+
liquidationCursor: '300000000000000000',
|
|
807
|
+
oracle: '0x0F948CBa8231Db7898ef36A4212581Ad7b1B4580',
|
|
808
|
+
}],
|
|
809
|
+
maturity: 1790348400, // 2026-09-25T15:00:00Z
|
|
810
|
+
rcfThreshold: '300000000000',
|
|
811
|
+
enterGate: ZERO_ADDRESS,
|
|
812
|
+
liquidatorGate: ZERO_ADDRESS,
|
|
813
|
+
marketId: '0x6a463fa464b97f7ba86516be7de82761bfa411522701ede713a269c2c385c70a',
|
|
814
|
+
protocolName: 'morpho-midnight',
|
|
815
|
+
curator: 'Tenor',
|
|
816
|
+
});
|
|
817
|
+
export const MORPHO_MIDNIGHT_TENOR_STRUSD_USDC_860_20260925_ETH = () => ({
|
|
818
|
+
chainIds: [NetworkNumber.Eth],
|
|
819
|
+
label: 'Tenor strUSD/USDC',
|
|
820
|
+
shortLabel: 'Tenor strUSD/USDC',
|
|
821
|
+
url: 'tenor-strusd-usdc-20260925',
|
|
822
|
+
value: MorphoMidnightVersions.MorphoMidnightTenorStrUSDUSDC_20260925_Eth,
|
|
823
|
+
midnight: MIDNIGHT_ETH,
|
|
824
|
+
loanToken: USDC_ETH,
|
|
825
|
+
collaterals: [{
|
|
826
|
+
token: STRUSD_ETH,
|
|
827
|
+
lltv: 0.86,
|
|
828
|
+
liquidationCursor: '300000000000000000',
|
|
829
|
+
oracle: '0x1506c98cE61aC63c8438B710C054a51c5dD9A6A4',
|
|
830
|
+
}, {
|
|
831
|
+
token: TENOR_STRUSD_USDC_VAULT_ETH,
|
|
832
|
+
lltv: 0.98,
|
|
833
|
+
liquidationCursor: '300000000000000000',
|
|
834
|
+
oracle: '0x361904890a43d4af2D1b8cF642A6C5e661Da5641',
|
|
835
|
+
hidden: true,
|
|
836
|
+
}],
|
|
837
|
+
maturity: 1790348400, // 2026-09-25T15:00:00Z
|
|
838
|
+
rcfThreshold: '300000000000',
|
|
839
|
+
enterGate: ZERO_ADDRESS,
|
|
840
|
+
liquidatorGate: ZERO_ADDRESS,
|
|
841
|
+
marketId: '0xa46399e45fe90b7d3c0488c4c73e9b361f758c4481734832a43d764ccdde0c64',
|
|
842
|
+
protocolName: 'morpho-midnight',
|
|
843
|
+
curator: 'Tenor',
|
|
844
|
+
});
|
|
845
|
+
export const MORPHO_MIDNIGHT_TENOR_WSRUSD_USDC_945_20260925_ETH = () => ({
|
|
846
|
+
chainIds: [NetworkNumber.Eth],
|
|
847
|
+
label: 'Tenor wsrUSD/USDC',
|
|
848
|
+
shortLabel: 'Tenor wsrUSD/USDC',
|
|
849
|
+
url: 'tenor-wsrusd-usdc-20260925',
|
|
850
|
+
value: MorphoMidnightVersions.MorphoMidnightTenorWsrUSDUSDC_20260925_Eth,
|
|
851
|
+
midnight: MIDNIGHT_ETH,
|
|
852
|
+
loanToken: USDC_ETH,
|
|
853
|
+
collaterals: [{
|
|
854
|
+
token: TENOR_WSRUSD_USDC_VAULT_ETH,
|
|
855
|
+
lltv: 0.98,
|
|
856
|
+
liquidationCursor: '300000000000000000',
|
|
857
|
+
oracle: '0x7C997e4dddF1D4B7C0D5f290B92d0909ba227c14',
|
|
858
|
+
hidden: true,
|
|
859
|
+
}, {
|
|
860
|
+
token: WSRUSD_ETH,
|
|
861
|
+
lltv: 0.945,
|
|
862
|
+
liquidationCursor: '300000000000000000',
|
|
863
|
+
oracle: '0x938D2eDb20425cF80F008E7ec314Eb456940Da15',
|
|
864
|
+
}],
|
|
865
|
+
maturity: 1790348400, // 2026-09-25T15:00:00Z
|
|
866
|
+
rcfThreshold: '700000000000',
|
|
867
|
+
enterGate: ZERO_ADDRESS,
|
|
868
|
+
liquidatorGate: ZERO_ADDRESS,
|
|
869
|
+
marketId: '0xc028a0b50ba0c606fbf83e5620018f23019b1fb5d1d15b4a5a0d17cc72edcfeb',
|
|
870
|
+
protocolName: 'morpho-midnight',
|
|
871
|
+
curator: 'Tenor',
|
|
872
|
+
});
|
|
873
|
+
export const MORPHO_MIDNIGHT_TENOR_USD3_USDC_915_20260925_ETH = () => ({
|
|
874
|
+
chainIds: [NetworkNumber.Eth],
|
|
875
|
+
label: 'Tenor USD3/USDC',
|
|
876
|
+
shortLabel: 'Tenor USD3/USDC',
|
|
877
|
+
url: 'tenor-usd3-usdc-20260925',
|
|
878
|
+
value: MorphoMidnightVersions.MorphoMidnightTenorUSD3USDC_20260925_Eth,
|
|
879
|
+
midnight: MIDNIGHT_ETH,
|
|
880
|
+
loanToken: USDC_ETH,
|
|
881
|
+
collaterals: [{
|
|
882
|
+
token: USD3_ETH,
|
|
883
|
+
lltv: 0.915,
|
|
884
|
+
liquidationCursor: '300000000000000000',
|
|
885
|
+
oracle: '0x68b4c2B2b2e245AB54a3bD55DfD5A9d84f029C06',
|
|
886
|
+
}, {
|
|
887
|
+
token: TENOR_USD3_USDC_VAULT_ETH,
|
|
888
|
+
lltv: 0.98,
|
|
889
|
+
liquidationCursor: '300000000000000000',
|
|
890
|
+
oracle: '0x2C198EC459e0a035078565dEdc3c206604b57d4D',
|
|
891
|
+
hidden: true,
|
|
892
|
+
}],
|
|
893
|
+
maturity: 1790348400, // 2026-09-25T15:00:00Z
|
|
894
|
+
rcfThreshold: '500000000000',
|
|
895
|
+
enterGate: ZERO_ADDRESS,
|
|
896
|
+
liquidatorGate: ZERO_ADDRESS,
|
|
897
|
+
marketId: '0x1edea0a3875af341ea885fc7eac7e02bfce90c534a1602dbd40fefccfe4c24d4',
|
|
898
|
+
protocolName: 'morpho-midnight',
|
|
899
|
+
curator: 'Tenor',
|
|
900
|
+
});
|
|
901
|
+
export const MORPHO_MIDNIGHT_TENOR_REUSD_USDC_915_20260925_ETH = () => ({
|
|
902
|
+
chainIds: [NetworkNumber.Eth],
|
|
903
|
+
label: 'Tenor reUSD/USDC',
|
|
904
|
+
shortLabel: 'Tenor reUSD/USDC',
|
|
905
|
+
url: 'tenor-reusd-usdc-20260925',
|
|
906
|
+
value: MorphoMidnightVersions.MorphoMidnightTenorReUSDUSDC_20260925_Eth,
|
|
907
|
+
midnight: MIDNIGHT_ETH,
|
|
908
|
+
loanToken: USDC_ETH,
|
|
909
|
+
collaterals: [{
|
|
910
|
+
token: REUSD_ETH,
|
|
911
|
+
lltv: 0.915,
|
|
912
|
+
liquidationCursor: '300000000000000000',
|
|
913
|
+
oracle: '0xA66a4F03Fd8031973f8C7718904ce32385f54E70',
|
|
914
|
+
}, {
|
|
915
|
+
token: TENOR_REUSD_USDC_VAULT_ETH,
|
|
916
|
+
lltv: 0.98,
|
|
917
|
+
liquidationCursor: '300000000000000000',
|
|
918
|
+
oracle: '0xE5f7f5A74E6f4dA2F68b1aa017F204a1883eC0df',
|
|
919
|
+
hidden: true,
|
|
920
|
+
}],
|
|
921
|
+
maturity: 1790348400, // 2026-09-25T15:00:00Z
|
|
922
|
+
rcfThreshold: '500000000000',
|
|
923
|
+
enterGate: ZERO_ADDRESS,
|
|
924
|
+
liquidatorGate: ZERO_ADDRESS,
|
|
925
|
+
marketId: '0xdba251b941d135577e1b423301b2eb6a76dfe11479c843185d20bee9208e7393',
|
|
926
|
+
protocolName: 'morpho-midnight',
|
|
927
|
+
curator: 'Tenor',
|
|
928
|
+
});
|
|
929
|
+
export const MORPHO_MIDNIGHT_TENOR_SIUSD_USDC_915_20260925_ETH = () => ({
|
|
930
|
+
chainIds: [NetworkNumber.Eth],
|
|
931
|
+
label: 'Tenor siUSD/USDC',
|
|
932
|
+
shortLabel: 'Tenor siUSD/USDC',
|
|
933
|
+
url: 'tenor-siusd-usdc-20260925',
|
|
934
|
+
value: MorphoMidnightVersions.MorphoMidnightTenorSiUSDUSDC_20260925_Eth,
|
|
935
|
+
midnight: MIDNIGHT_ETH,
|
|
936
|
+
loanToken: USDC_ETH,
|
|
937
|
+
collaterals: [{
|
|
938
|
+
token: TENOR_SIUSD_USDC_VAULT_ETH,
|
|
939
|
+
lltv: 0.98,
|
|
940
|
+
liquidationCursor: '300000000000000000',
|
|
941
|
+
oracle: '0xE872d1d33b13B52aE7cD9A0CDD4102468350e5fa',
|
|
942
|
+
hidden: true,
|
|
943
|
+
}, {
|
|
944
|
+
token: SIUSD_ETH,
|
|
945
|
+
lltv: 0.915,
|
|
946
|
+
liquidationCursor: '300000000000000000',
|
|
947
|
+
oracle: '0xd2cC46b9B2D761502eF933320ecf0268EC0dfa6d',
|
|
948
|
+
}],
|
|
949
|
+
maturity: 1790348400, // 2026-09-25T15:00:00Z
|
|
950
|
+
rcfThreshold: '500000000000',
|
|
951
|
+
enterGate: ZERO_ADDRESS,
|
|
952
|
+
liquidatorGate: ZERO_ADDRESS,
|
|
953
|
+
marketId: '0x48d95ace842493ce2c1c474c0cb60ac208e9d8a714258e278af9c8ae01a88fa5',
|
|
954
|
+
protocolName: 'morpho-midnight',
|
|
955
|
+
curator: 'Tenor',
|
|
956
|
+
});
|
|
684
957
|
export const MorphoMidnightMarkets = (networkId) => ({
|
|
685
958
|
// BASE — Morpho-curated
|
|
686
959
|
[MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20260731_Base]: MORPHO_MIDNIGHT_CBBTC_USDC_860_20260731(networkId),
|
|
@@ -716,19 +989,44 @@ export const MorphoMidnightMarkets = (networkId) => ({
|
|
|
716
989
|
[MorphoMidnightVersions.MorphoMidnightTenorCbETHWETH_20261127_Base]: MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261127(),
|
|
717
990
|
[MorphoMidnightVersions.MorphoMidnightTenorCbETHWETH_20261225_Base]: MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20261225(),
|
|
718
991
|
[MorphoMidnightVersions.MorphoMidnightTenorCbETHWETH_20270129_Base]: MORPHO_MIDNIGHT_TENOR_CBETH_WETH_945_20270129(),
|
|
992
|
+
// ETHEREUM — Morpho-curated
|
|
993
|
+
[MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20260925_Eth]: MORPHO_MIDNIGHT_WBTC_USDC_860_20260925_ETH(),
|
|
994
|
+
[MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20261030_Eth]: MORPHO_MIDNIGHT_WBTC_USDC_860_20261030_ETH(),
|
|
995
|
+
[MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20261127_Eth]: MORPHO_MIDNIGHT_WBTC_USDC_860_20261127_ETH(),
|
|
996
|
+
[MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20261225_Eth]: MORPHO_MIDNIGHT_WBTC_USDC_860_20261225_ETH(),
|
|
997
|
+
[MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20270129_Eth]: MORPHO_MIDNIGHT_WBTC_USDC_860_20270129_ETH(),
|
|
998
|
+
[MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20270226_Eth]: MORPHO_MIDNIGHT_WBTC_USDC_860_20270226_ETH(),
|
|
999
|
+
[MorphoMidnightVersions.MorphoMidnightWBTCUSDC_860_20270326_Eth]: MORPHO_MIDNIGHT_WBTC_USDC_860_20270326_ETH(),
|
|
1000
|
+
[MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20260925_Eth]: MORPHO_MIDNIGHT_CBBTC_USDC_860_20260925_ETH(),
|
|
1001
|
+
[MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20261030_Eth]: MORPHO_MIDNIGHT_CBBTC_USDC_860_20261030_ETH(),
|
|
1002
|
+
[MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20261127_Eth]: MORPHO_MIDNIGHT_CBBTC_USDC_860_20261127_ETH(),
|
|
1003
|
+
[MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20261225_Eth]: MORPHO_MIDNIGHT_CBBTC_USDC_860_20261225_ETH(),
|
|
1004
|
+
[MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20270129_Eth]: MORPHO_MIDNIGHT_CBBTC_USDC_860_20270129_ETH(),
|
|
1005
|
+
[MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20270226_Eth]: MORPHO_MIDNIGHT_CBBTC_USDC_860_20270226_ETH(),
|
|
1006
|
+
[MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20270326_Eth]: MORPHO_MIDNIGHT_CBBTC_USDC_860_20270326_ETH(),
|
|
1007
|
+
// ETHEREUM — Tenor-curated
|
|
1008
|
+
[MorphoMidnightVersions.MorphoMidnightTenorWETHUSDC_20260925_Eth]: MORPHO_MIDNIGHT_TENOR_WETH_USDC_860_20260925_ETH(),
|
|
1009
|
+
[MorphoMidnightVersions.MorphoMidnightTenorUSD3USDC_20260925_Eth]: MORPHO_MIDNIGHT_TENOR_USD3_USDC_915_20260925_ETH(),
|
|
1010
|
+
// ── Pending `@defisaver/tokens` ────────────────────────────────────────────────────────────────
|
|
1011
|
+
// Collateralised by stablecoins the app does not carry yet, so `getAssetInfoByAddress` hands back the
|
|
1012
|
+
// `?` proto and the market renders an unnamed collateral at a NaN price. The definitions below are
|
|
1013
|
+
// verified against the chain and complete — this map is the only place they are withheld from, so
|
|
1014
|
+
// uncommenting these four lines is the whole re-enable once the assets ship.
|
|
1015
|
+
// [MorphoMidnightVersions.MorphoMidnightTenorStrUSDUSDC_20260925_Eth]: MORPHO_MIDNIGHT_TENOR_STRUSD_USDC_860_20260925_ETH(),
|
|
1016
|
+
// [MorphoMidnightVersions.MorphoMidnightTenorWsrUSDUSDC_20260925_Eth]: MORPHO_MIDNIGHT_TENOR_WSRUSD_USDC_945_20260925_ETH(),
|
|
1017
|
+
// [MorphoMidnightVersions.MorphoMidnightTenorReUSDUSDC_20260925_Eth]: MORPHO_MIDNIGHT_TENOR_REUSD_USDC_915_20260925_ETH(),
|
|
1018
|
+
// [MorphoMidnightVersions.MorphoMidnightTenorSiUSDUSDC_20260925_Eth]: MORPHO_MIDNIGHT_TENOR_SIUSD_USDC_915_20260925_ETH(),
|
|
719
1019
|
});
|
|
720
|
-
// Which markets Tenor's router quotes, by id, for the quote helpers that only receive one.
|
|
721
1020
|
const TENOR_MARKET_IDS = new Set(Object.values(MorphoMidnightMarkets(NetworkNumber.Base))
|
|
722
1021
|
.filter((market) => market.curator === 'Tenor')
|
|
723
1022
|
.map((market) => market.marketId.toLowerCase()));
|
|
724
1023
|
export const isTenorMidnightMarket = (market) => (typeof market === 'string'
|
|
725
1024
|
? TENOR_MARKET_IDS.has(market.toLowerCase())
|
|
726
1025
|
: market.curator === 'Tenor');
|
|
727
|
-
export const findMorphoMidnightMarket = (marketId, network
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
export const morphoMidnightMarketCollateralParams = (market) => [...market.collaterals, ...(market.hiddenCollaterals || [])];
|
|
1026
|
+
export const findMorphoMidnightMarket = (marketId, network) => (Object.values(MorphoMidnightMarkets(network !== null && network !== void 0 ? network : NetworkNumber.Base))
|
|
1027
|
+
.find((market) => market.marketId.toLowerCase() === marketId.toLowerCase()
|
|
1028
|
+
&& (network === undefined || market.chainIds.includes(network))));
|
|
1029
|
+
export const morphoMidnightMarketCollateralParams = (market) => market.collaterals.map(({ token, lltv, liquidationCursor, oracle, }) => ({
|
|
1030
|
+
token, lltv, liquidationCursor, oracle,
|
|
1031
|
+
}));
|
|
1032
|
+
export const morphoMidnightVisibleCollaterals = (market) => market.collaterals.filter((collateral) => !collateral.hidden);
|