@defisaver/positions-sdk 2.1.127-midnight-dev → 2.1.127-uniswap-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.
Files changed (88) hide show
  1. package/cjs/claiming/index.d.ts +2 -1
  2. package/cjs/claiming/index.js +3 -1
  3. package/cjs/claiming/uniswap.d.ts +4 -0
  4. package/cjs/claiming/uniswap.js +70 -0
  5. package/cjs/config/contracts.d.ts +22 -249
  6. package/cjs/config/contracts.js +10 -11
  7. package/cjs/contracts.d.ts +35 -1510
  8. package/cjs/contracts.js +3 -3
  9. package/cjs/helpers/index.d.ts +0 -1
  10. package/cjs/helpers/index.js +1 -2
  11. package/cjs/helpers/morphoBlueHelpers/index.js +1 -0
  12. package/cjs/index.d.ts +1 -2
  13. package/cjs/index.js +1 -3
  14. package/cjs/markets/index.d.ts +0 -1
  15. package/cjs/markets/index.js +1 -4
  16. package/cjs/morphoBlue/index.d.ts +8 -6
  17. package/cjs/morphoBlue/index.js +69 -40
  18. package/cjs/portfolio/discovery.js +0 -4
  19. package/cjs/portfolio/index.js +30 -45
  20. package/cjs/services/viem.d.ts +11 -11
  21. package/cjs/types/claiming.d.ts +2 -0
  22. package/cjs/types/claiming.js +2 -0
  23. package/cjs/types/index.d.ts +0 -1
  24. package/cjs/types/index.js +0 -1
  25. package/cjs/types/morphoBlue.d.ts +9 -0
  26. package/cjs/types/portfolio.d.ts +0 -4
  27. package/esm/claiming/index.d.ts +2 -1
  28. package/esm/claiming/index.js +2 -1
  29. package/esm/claiming/uniswap.d.ts +4 -0
  30. package/esm/claiming/uniswap.js +62 -0
  31. package/esm/config/contracts.d.ts +22 -249
  32. package/esm/config/contracts.js +8 -9
  33. package/esm/contracts.d.ts +35 -1510
  34. package/esm/contracts.js +1 -1
  35. package/esm/helpers/index.d.ts +0 -1
  36. package/esm/helpers/index.js +0 -1
  37. package/esm/helpers/morphoBlueHelpers/index.js +1 -0
  38. package/esm/index.d.ts +1 -2
  39. package/esm/index.js +1 -2
  40. package/esm/markets/index.d.ts +0 -1
  41. package/esm/markets/index.js +0 -1
  42. package/esm/morphoBlue/index.d.ts +8 -6
  43. package/esm/morphoBlue/index.js +62 -39
  44. package/esm/portfolio/discovery.js +1 -5
  45. package/esm/portfolio/index.js +32 -47
  46. package/esm/services/viem.d.ts +11 -11
  47. package/esm/types/claiming.d.ts +2 -0
  48. package/esm/types/claiming.js +2 -0
  49. package/esm/types/index.d.ts +0 -1
  50. package/esm/types/index.js +0 -1
  51. package/esm/types/morphoBlue.d.ts +9 -0
  52. package/esm/types/portfolio.d.ts +0 -4
  53. package/package.json +1 -1
  54. package/src/claiming/index.ts +2 -0
  55. package/src/claiming/uniswap.ts +65 -0
  56. package/src/config/contracts.ts +9 -9
  57. package/src/contracts.ts +2 -1
  58. package/src/helpers/index.ts +0 -1
  59. package/src/helpers/morphoBlueHelpers/index.ts +1 -0
  60. package/src/index.ts +0 -2
  61. package/src/markets/index.ts +0 -1
  62. package/src/morphoBlue/index.ts +101 -44
  63. package/src/portfolio/discovery.ts +0 -6
  64. package/src/portfolio/index.ts +30 -46
  65. package/src/types/claiming.ts +2 -0
  66. package/src/types/index.ts +0 -1
  67. package/src/types/morphoBlue.ts +11 -0
  68. package/src/types/portfolio.ts +0 -4
  69. package/cjs/helpers/morphoMidnightHelpers/index.d.ts +0 -16
  70. package/cjs/helpers/morphoMidnightHelpers/index.js +0 -68
  71. package/cjs/markets/morphoMidnight/index.d.ts +0 -16
  72. package/cjs/markets/morphoMidnight/index.js +0 -159
  73. package/cjs/morphoMidnight/index.d.ts +0 -14
  74. package/cjs/morphoMidnight/index.js +0 -220
  75. package/cjs/types/morphoMidnight.d.ts +0 -91
  76. package/cjs/types/morphoMidnight.js +0 -15
  77. package/esm/helpers/morphoMidnightHelpers/index.d.ts +0 -16
  78. package/esm/helpers/morphoMidnightHelpers/index.js +0 -61
  79. package/esm/markets/morphoMidnight/index.d.ts +0 -16
  80. package/esm/markets/morphoMidnight/index.js +0 -148
  81. package/esm/morphoMidnight/index.d.ts +0 -14
  82. package/esm/morphoMidnight/index.js +0 -207
  83. package/esm/types/morphoMidnight.d.ts +0 -91
  84. package/esm/types/morphoMidnight.js +0 -12
  85. package/src/helpers/morphoMidnightHelpers/index.ts +0 -86
  86. package/src/markets/morphoMidnight/index.ts +0 -161
  87. package/src/morphoMidnight/index.ts +0 -234
  88. package/src/types/morphoMidnight.ts +0 -104
@@ -6,7 +6,6 @@ export * from './liquity';
6
6
  export * from './liquityV2';
7
7
  export * from './maker';
8
8
  export * from './morphoBlue';
9
- export * from './morphoMidnight';
10
9
  export * from './llamaLend';
11
10
  export * from './euler';
12
11
  export * from './fluid';
@@ -235,6 +235,17 @@ export interface MorphoBluePositionData {
235
235
  exposure: string,
236
236
  }
237
237
 
238
+ export interface MorphoBlueEarnData {
239
+ apy: string,
240
+ amount: string,
241
+ amountUsd: string,
242
+ }
243
+
244
+ export interface MorphoBlueMarketRewards {
245
+ supplyApy: string,
246
+ borrowApy: string,
247
+ }
248
+
238
249
  export interface MorphoBlueVault {
239
250
  address: string,
240
251
  }
@@ -10,7 +10,6 @@ import { LiquityV2TroveData, LiquityV2Versions } from './liquityV2';
10
10
  import { LlamaLendUserData, LlamaLendVersionsType } from './llamaLend';
11
11
  import { CdpData } from './maker';
12
12
  import { MorphoBluePositionData, MorphoBlueVersions } from './morphoBlue';
13
- import { MorphoMidnightPositionData, MorphoMidnightVersions } from './morphoMidnight';
14
13
  import { SparkPositionData, SparkVersions } from './spark';
15
14
 
16
15
  export interface PortfolioProtocolData<T> {
@@ -25,9 +24,6 @@ export interface PortfolioPositionsDataForAddress {
25
24
  morphoBlue: {
26
25
  [key in MorphoBlueVersions]?: PortfolioProtocolData<MorphoBluePositionData>;
27
26
  };
28
- morphoMidnight: {
29
- [key in MorphoMidnightVersions]?: PortfolioProtocolData<MorphoMidnightPositionData>;
30
- };
31
27
  compoundV3: {
32
28
  [key in CompoundVersions]?: PortfolioProtocolData<CompoundV3PositionData>;
33
29
  };
@@ -1,16 +0,0 @@
1
- import { MMUsedAssets } from '../../types/common';
2
- import { MorphoMidnightAggregatedPositionData, MorphoMidnightAssetsData, MorphoMidnightMarketInfo } from '../../types';
3
- /**
4
- * Aggregate a Morpho Midnight position. Midnight markets are multi-collateral, so the borrow limit is
5
- * the sum of each collateral's USD value times its own lltv (Aave-v4 style), rather than a single pair.
6
- *
7
- * Note on amounts: `borrowedUsd` is derived from the position's `debt`, which is the face value owed at
8
- * maturity (principal + fixed interest). Health is therefore measured against the full maturity debt,
9
- * matching how MidnightView computes `ratio`. Fixed-rate APY is not derived on-chain in MVP, so
10
- * `netApy` reflects the `'0'` rates in `assetsData` (see the module getter).
11
- */
12
- export declare const getMorphoMidnightAggregatedPositionData: ({ usedAssets, assetsData, marketInfo, }: {
13
- usedAssets: MMUsedAssets;
14
- assetsData: MorphoMidnightAssetsData;
15
- marketInfo: MorphoMidnightMarketInfo;
16
- }) => MorphoMidnightAggregatedPositionData;
@@ -1,68 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getMorphoMidnightAggregatedPositionData = void 0;
7
- const decimal_js_1 = __importDefault(require("decimal.js"));
8
- const moneymarket_1 = require("../../moneymarket");
9
- const staking_1 = require("../../staking");
10
- const common_1 = require("../../types/common");
11
- /**
12
- * Aggregate a Morpho Midnight position. Midnight markets are multi-collateral, so the borrow limit is
13
- * the sum of each collateral's USD value times its own lltv (Aave-v4 style), rather than a single pair.
14
- *
15
- * Note on amounts: `borrowedUsd` is derived from the position's `debt`, which is the face value owed at
16
- * maturity (principal + fixed interest). Health is therefore measured against the full maturity debt,
17
- * matching how MidnightView computes `ratio`. Fixed-rate APY is not derived on-chain in MVP, so
18
- * `netApy` reflects the `'0'` rates in `assetsData` (see the module getter).
19
- */
20
- const getMorphoMidnightAggregatedPositionData = ({ usedAssets, assetsData, marketInfo, }) => {
21
- var _a;
22
- const payload = {};
23
- payload.suppliedUsd = (0, moneymarket_1.getAssetsTotal)(usedAssets, ({ isSupplied }) => isSupplied, ({ suppliedUsd }) => suppliedUsd);
24
- payload.suppliedCollateralUsd = (0, moneymarket_1.getAssetsTotal)(usedAssets, ({ isSupplied, collateral }) => isSupplied && collateral, ({ suppliedUsd }) => suppliedUsd);
25
- payload.borrowedUsd = (0, moneymarket_1.getAssetsTotal)(usedAssets, ({ isBorrowed }) => isBorrowed, ({ borrowedUsd }) => borrowedUsd);
26
- // borrowLimit = Σ collateralUsd_i * lltv_i (per-collateral lltv carried on assetsData)
27
- payload.borrowLimitUsd = (0, moneymarket_1.getAssetsTotal)(usedAssets, ({ isSupplied, collateral }) => isSupplied && collateral, ({ symbol, suppliedUsd }) => { var _a; return new decimal_js_1.default(suppliedUsd).mul(((_a = assetsData[symbol]) === null || _a === void 0 ? void 0 : _a.lltv) || 0); });
28
- payload.liquidationLimitUsd = payload.borrowLimitUsd;
29
- const leftToBorrowUsd = new decimal_js_1.default(payload.borrowLimitUsd).sub(payload.borrowedUsd);
30
- payload.leftToBorrowUsd = leftToBorrowUsd.lte('0') ? '0' : leftToBorrowUsd.toString();
31
- const loanTokenPrice = ((_a = assetsData[marketInfo.loanToken]) === null || _a === void 0 ? void 0 : _a.price) || '0';
32
- payload.leftToBorrow = new decimal_js_1.default(loanTokenPrice).eq(0) ? '0' : new decimal_js_1.default(payload.leftToBorrowUsd).div(loanTokenPrice).toString();
33
- const { netApy, incentiveUsd, totalInterestUsd } = (0, staking_1.calculateNetApy)({ usedAssets, assetsData: assetsData });
34
- payload.netApy = netApy;
35
- payload.incentiveUsd = incentiveUsd;
36
- payload.totalInterestUsd = totalInterestUsd;
37
- payload.ltv = new decimal_js_1.default(payload.suppliedCollateralUsd).eq(0) ? '0' : new decimal_js_1.default(payload.borrowedUsd).div(payload.suppliedCollateralUsd).toString();
38
- payload.ratio = new decimal_js_1.default(payload.borrowedUsd).eq(0) ? '0' : new decimal_js_1.default(payload.suppliedCollateralUsd).div(payload.borrowedUsd).mul(100).toString();
39
- payload.healthRatio = new decimal_js_1.default(payload.borrowedUsd).eq(0) ? 'Infinity' : new decimal_js_1.default(payload.liquidationLimitUsd).div(payload.borrowedUsd).toDP(4).toString();
40
- const { leveragedType, leveragedAsset } = (0, moneymarket_1.isLeveragedPos)(usedAssets);
41
- payload.leveragedType = leveragedType;
42
- payload.liquidationPrice = '';
43
- if (leveragedType !== '') {
44
- payload.leveragedAsset = leveragedAsset;
45
- let assetPrice = assetsData[leveragedAsset].price;
46
- if (leveragedType === common_1.LeverageType.VolatilePair) {
47
- const borrowedAsset = Object.values(usedAssets).find(({ borrowedUsd }) => +borrowedUsd > 0);
48
- const borrowedAssetPrice = assetsData[borrowedAsset.symbol].price;
49
- const leveragedAssetPrice = assetsData[leveragedAsset].price;
50
- const isReverse = new decimal_js_1.default(leveragedAssetPrice).lt(borrowedAssetPrice);
51
- if (isReverse) {
52
- payload.leveragedType = common_1.LeverageType.VolatilePairReverse;
53
- payload.currentVolatilePairRatio = new decimal_js_1.default(borrowedAssetPrice).div(leveragedAssetPrice).toDP(18).toString();
54
- assetPrice = new decimal_js_1.default(borrowedAssetPrice).div(assetPrice).toString();
55
- }
56
- else {
57
- assetPrice = new decimal_js_1.default(assetPrice).div(borrowedAssetPrice).toString();
58
- payload.currentVolatilePairRatio = new decimal_js_1.default(leveragedAssetPrice).div(borrowedAssetPrice).toDP(18).toString();
59
- }
60
- }
61
- payload.liquidationPrice = (0, moneymarket_1.calcLeverageLiqPrice)(payload.leveragedType, assetPrice, payload.borrowedUsd, payload.liquidationLimitUsd);
62
- }
63
- payload.minCollRatio = new decimal_js_1.default(payload.borrowLimitUsd).eq(0) ? '0' : new decimal_js_1.default(payload.suppliedCollateralUsd).div(payload.borrowLimitUsd).mul(100).toString();
64
- payload.collLiquidationRatio = new decimal_js_1.default(payload.liquidationLimitUsd).eq(0) ? '0' : new decimal_js_1.default(payload.suppliedCollateralUsd).div(payload.liquidationLimitUsd).mul(100).toString();
65
- payload.exposure = (0, moneymarket_1.getExposure)(payload.borrowedUsd, payload.suppliedUsd);
66
- return payload;
67
- };
68
- exports.getMorphoMidnightAggregatedPositionData = getMorphoMidnightAggregatedPositionData;
@@ -1,16 +0,0 @@
1
- import { MorphoMidnightMarketData, NetworkNumber } from '../../types';
2
- export declare const MORPHO_MIDNIGHT_CBBTC_USDC_860_20260731: (networkId?: NetworkNumber) => MorphoMidnightMarketData;
3
- export declare const MORPHO_MIDNIGHT_CBBTC_USDC_860_20260828: (networkId?: NetworkNumber) => MorphoMidnightMarketData;
4
- export declare const MORPHO_MIDNIGHT_CBBTC_USDC_860_20260925: (networkId?: NetworkNumber) => MorphoMidnightMarketData;
5
- export declare const MORPHO_MIDNIGHT_CBBTC_USDC_860_20261030: (networkId?: NetworkNumber) => MorphoMidnightMarketData;
6
- export declare const MORPHO_MIDNIGHT_CBBTC_USDC_860_20261127: (networkId?: NetworkNumber) => MorphoMidnightMarketData;
7
- export declare const MORPHO_MIDNIGHT_CBBTC_USDC_860_20261225: (networkId?: NetworkNumber) => MorphoMidnightMarketData;
8
- export declare const MorphoMidnightMarkets: (networkId: NetworkNumber) => {
9
- readonly morphomidnightcbbtcusdc_860_20260731_base: MorphoMidnightMarketData;
10
- readonly morphomidnightcbbtcusdc_860_20260828_base: MorphoMidnightMarketData;
11
- readonly morphomidnightcbbtcusdc_860_20260925_base: MorphoMidnightMarketData;
12
- readonly morphomidnightcbbtcusdc_860_20261030_base: MorphoMidnightMarketData;
13
- readonly morphomidnightcbbtcusdc_860_20261127_base: MorphoMidnightMarketData;
14
- readonly morphomidnightcbbtcusdc_860_20261225_base: MorphoMidnightMarketData;
15
- };
16
- export declare const findMorphoMidnightMarket: (marketId: string, network?: NetworkNumber) => MorphoMidnightMarketData | undefined;
@@ -1,159 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findMorphoMidnightMarket = exports.MorphoMidnightMarkets = 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 = void 0;
4
- const types_1 = require("../../types");
5
- // Morpho Midnight core contract on Base (same for every market).
6
- const MIDNIGHT_BASE = '0xAdedD8ab6dE832766Fedf0FaC4992E5C4D3EA18A';
7
- const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000';
8
- // Curated Morpho Midnight markets. Each market is fixed-term: it is uniquely identified on-chain by
9
- // `marketId` (bytes32), derived from the static struct below via MidnightView.toId. Because markets
10
- // churn as maturities roll, this list is hand-maintained for the pairs/maturities the app supports.
11
- // Sourced from the official listing at https://markets.morpho.org/fixed/base (see its sitemap.xml) —
12
- // currently a single USDC/cbBTC pair offered on a monthly maturity ladder; new maturities are added
13
- // there progressively. Every `marketId` here is verified against MidnightView.toId(marketStruct) in
14
- // tests/morphoMidnight.ts.
15
- // BASE — USDC/cbBTC, 86% LLTV, monthly maturity ladder
16
- const MORPHO_MIDNIGHT_CBBTC_USDC_860_20260731 = (networkId = types_1.NetworkNumber.Base) => ({
17
- chainIds: [types_1.NetworkNumber.Base],
18
- label: 'Morpho Midnight cbBTC/USDC',
19
- shortLabel: 'cbBTC/USDC',
20
- url: 'cbbtc-usdc-20260731',
21
- value: types_1.MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20260731_Base,
22
- midnight: MIDNIGHT_BASE,
23
- loanToken: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', // USDC
24
- collaterals: [{
25
- token: '0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf', // cbBTC
26
- lltv: 0.86,
27
- liquidationCursor: '300000000000000000',
28
- oracle: '0x663BECd10daE6C4A3Dcd89F1d76c1174199639B9',
29
- }],
30
- maturity: 1785510000, // 2026-07-31T15:00:00Z
31
- rcfThreshold: '3000000000',
32
- enterGate: ZERO_ADDRESS,
33
- liquidatorGate: ZERO_ADDRESS,
34
- marketId: '0x168e31250e0008b50d2255a5ab85e0265acd6c12e4f9a1336134b36a65a47937',
35
- protocolName: 'morpho-midnight',
36
- });
37
- exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20260731 = MORPHO_MIDNIGHT_CBBTC_USDC_860_20260731;
38
- const MORPHO_MIDNIGHT_CBBTC_USDC_860_20260828 = (networkId = types_1.NetworkNumber.Base) => ({
39
- chainIds: [types_1.NetworkNumber.Base],
40
- label: 'Morpho Midnight cbBTC/USDC',
41
- shortLabel: 'cbBTC/USDC',
42
- url: 'cbbtc-usdc-20260828',
43
- value: types_1.MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20260828_Base,
44
- midnight: MIDNIGHT_BASE,
45
- loanToken: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', // USDC
46
- collaterals: [{
47
- token: '0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf', // cbBTC
48
- lltv: 0.86,
49
- liquidationCursor: '300000000000000000',
50
- oracle: '0x663BECd10daE6C4A3Dcd89F1d76c1174199639B9',
51
- }],
52
- maturity: 1787929200, // 2026-08-28T15:00:00Z
53
- rcfThreshold: '3000000000',
54
- enterGate: ZERO_ADDRESS,
55
- liquidatorGate: ZERO_ADDRESS,
56
- marketId: '0x05959752fdeff325962b9d263edb421efc6e2186a49360dba6c32e86ebf6c84c',
57
- protocolName: 'morpho-midnight',
58
- });
59
- exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20260828 = MORPHO_MIDNIGHT_CBBTC_USDC_860_20260828;
60
- const MORPHO_MIDNIGHT_CBBTC_USDC_860_20260925 = (networkId = types_1.NetworkNumber.Base) => ({
61
- chainIds: [types_1.NetworkNumber.Base],
62
- label: 'Morpho Midnight cbBTC/USDC',
63
- shortLabel: 'cbBTC/USDC',
64
- url: 'cbbtc-usdc-20260925',
65
- value: types_1.MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20260925_Base,
66
- midnight: MIDNIGHT_BASE,
67
- loanToken: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', // USDC
68
- collaterals: [{
69
- token: '0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf', // cbBTC
70
- lltv: 0.86,
71
- liquidationCursor: '300000000000000000',
72
- oracle: '0x663BECd10daE6C4A3Dcd89F1d76c1174199639B9',
73
- }],
74
- maturity: 1790348400, // 2026-09-25T15:00:00Z
75
- rcfThreshold: '3000000000',
76
- enterGate: ZERO_ADDRESS,
77
- liquidatorGate: ZERO_ADDRESS,
78
- marketId: '0x549cd072daf99328554f3a6d2d4d6f4a07f1c59369e891e6391946f9cf75f221',
79
- protocolName: 'morpho-midnight',
80
- });
81
- exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20260925 = MORPHO_MIDNIGHT_CBBTC_USDC_860_20260925;
82
- const MORPHO_MIDNIGHT_CBBTC_USDC_860_20261030 = (networkId = types_1.NetworkNumber.Base) => ({
83
- chainIds: [types_1.NetworkNumber.Base],
84
- label: 'Morpho Midnight cbBTC/USDC',
85
- shortLabel: 'cbBTC/USDC',
86
- url: 'cbbtc-usdc-20261030',
87
- value: types_1.MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20261030_Base,
88
- midnight: MIDNIGHT_BASE,
89
- loanToken: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', // USDC
90
- collaterals: [{
91
- token: '0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf', // cbBTC
92
- lltv: 0.86,
93
- liquidationCursor: '300000000000000000',
94
- oracle: '0x663BECd10daE6C4A3Dcd89F1d76c1174199639B9',
95
- }],
96
- maturity: 1793372400, // 2026-10-30T15:00:00Z
97
- rcfThreshold: '3000000000',
98
- enterGate: ZERO_ADDRESS,
99
- liquidatorGate: ZERO_ADDRESS,
100
- marketId: '0x43d6120738c57b2bc5835901f8250fdf7fc8054efbb006c6ccba61ec898e5ed9',
101
- protocolName: 'morpho-midnight',
102
- });
103
- exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20261030 = MORPHO_MIDNIGHT_CBBTC_USDC_860_20261030;
104
- const MORPHO_MIDNIGHT_CBBTC_USDC_860_20261127 = (networkId = types_1.NetworkNumber.Base) => ({
105
- chainIds: [types_1.NetworkNumber.Base],
106
- label: 'Morpho Midnight cbBTC/USDC',
107
- shortLabel: 'cbBTC/USDC',
108
- url: 'cbbtc-usdc-20261127',
109
- value: types_1.MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20261127_Base,
110
- midnight: MIDNIGHT_BASE,
111
- loanToken: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', // USDC
112
- collaterals: [{
113
- token: '0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf', // cbBTC
114
- lltv: 0.86,
115
- liquidationCursor: '300000000000000000',
116
- oracle: '0x663BECd10daE6C4A3Dcd89F1d76c1174199639B9',
117
- }],
118
- maturity: 1795791600, // 2026-11-27T15:00:00Z
119
- rcfThreshold: '3000000000',
120
- enterGate: ZERO_ADDRESS,
121
- liquidatorGate: ZERO_ADDRESS,
122
- marketId: '0xe1878eec035b601f301484e63a49a428f8e008e2bf57a2fd88a3fc3a4c1b1acd',
123
- protocolName: 'morpho-midnight',
124
- });
125
- exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20261127 = MORPHO_MIDNIGHT_CBBTC_USDC_860_20261127;
126
- const MORPHO_MIDNIGHT_CBBTC_USDC_860_20261225 = (networkId = types_1.NetworkNumber.Base) => ({
127
- chainIds: [types_1.NetworkNumber.Base],
128
- label: 'Morpho Midnight cbBTC/USDC',
129
- shortLabel: 'cbBTC/USDC',
130
- url: 'cbbtc-usdc-20261225',
131
- value: types_1.MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20261225_Base,
132
- midnight: MIDNIGHT_BASE,
133
- loanToken: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', // USDC
134
- collaterals: [{
135
- token: '0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf', // cbBTC
136
- lltv: 0.86,
137
- liquidationCursor: '300000000000000000',
138
- oracle: '0x663BECd10daE6C4A3Dcd89F1d76c1174199639B9',
139
- }],
140
- maturity: 1798210800, // 2026-12-25T15:00:00Z
141
- rcfThreshold: '3000000000',
142
- enterGate: ZERO_ADDRESS,
143
- liquidatorGate: ZERO_ADDRESS,
144
- marketId: '0x9593c3a6dba45b6106af8dc8b45ba8c505d90d3d68a3d33f7c278dd921b637da',
145
- protocolName: 'morpho-midnight',
146
- });
147
- exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20261225 = MORPHO_MIDNIGHT_CBBTC_USDC_860_20261225;
148
- const MorphoMidnightMarkets = (networkId) => ({
149
- // BASE
150
- [types_1.MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20260731_Base]: (0, exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20260731)(networkId),
151
- [types_1.MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20260828_Base]: (0, exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20260828)(networkId),
152
- [types_1.MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20260925_Base]: (0, exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20260925)(networkId),
153
- [types_1.MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20261030_Base]: (0, exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20261030)(networkId),
154
- [types_1.MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20261127_Base]: (0, exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20261127)(networkId),
155
- [types_1.MorphoMidnightVersions.MorphoMidnightCbBTCUSDC_860_20261225_Base]: (0, exports.MORPHO_MIDNIGHT_CBBTC_USDC_860_20261225)(networkId),
156
- });
157
- exports.MorphoMidnightMarkets = MorphoMidnightMarkets;
158
- const findMorphoMidnightMarket = (marketId, network = types_1.NetworkNumber.Base) => Object.values((0, exports.MorphoMidnightMarkets)(network)).find((market) => market.marketId.toLowerCase() === marketId.toLowerCase());
159
- exports.findMorphoMidnightMarket = findMorphoMidnightMarket;
@@ -1,14 +0,0 @@
1
- import { Client } from 'viem';
2
- import { Blockish, EthAddress, EthereumProvider, NetworkNumber, PositionBalances } from '../types/common';
3
- import { MorphoMidnightMarketData, MorphoMidnightMarketInfo, MorphoMidnightPositionData } from '../types';
4
- export declare function _getMorphoMidnightMarketData(provider: Client, network: NetworkNumber, selectedMarket: MorphoMidnightMarketData): Promise<MorphoMidnightMarketInfo>;
5
- export declare function getMorphoMidnightMarketData(provider: EthereumProvider, network: NetworkNumber, selectedMarket: MorphoMidnightMarketData): Promise<MorphoMidnightMarketInfo>;
6
- export declare function _getMorphoMidnightAccountData(provider: Client, network: NetworkNumber, account: EthAddress, selectedMarket: MorphoMidnightMarketData, marketInfo: MorphoMidnightMarketInfo): Promise<MorphoMidnightPositionData>;
7
- export declare function getMorphoMidnightAccountData(provider: EthereumProvider, network: NetworkNumber, account: EthAddress, selectedMarket: MorphoMidnightMarketData, marketInfo: MorphoMidnightMarketInfo): Promise<MorphoMidnightPositionData>;
8
- export declare const _getMorphoMidnightAccountBalances: (provider: Client, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress, selectedMarket: MorphoMidnightMarketData) => Promise<PositionBalances>;
9
- export declare const getMorphoMidnightAccountBalances: (provider: EthereumProvider, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress, selectedMarket: MorphoMidnightMarketData) => Promise<PositionBalances>;
10
- export declare function getMorphoMidnightEarn(provider: Client, network: NetworkNumber, account: EthAddress, selectedMarket: MorphoMidnightMarketData, marketInfo: MorphoMidnightMarketInfo): Promise<{
11
- apy: string;
12
- amount: string;
13
- amountUsd: string;
14
- }>;
@@ -1,220 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.getMorphoMidnightAccountBalances = exports._getMorphoMidnightAccountBalances = void 0;
16
- exports._getMorphoMidnightMarketData = _getMorphoMidnightMarketData;
17
- exports.getMorphoMidnightMarketData = getMorphoMidnightMarketData;
18
- exports._getMorphoMidnightAccountData = _getMorphoMidnightAccountData;
19
- exports.getMorphoMidnightAccountData = getMorphoMidnightAccountData;
20
- exports.getMorphoMidnightEarn = getMorphoMidnightEarn;
21
- const decimal_js_1 = __importDefault(require("decimal.js"));
22
- const tokens_1 = require("@defisaver/tokens");
23
- const common_1 = require("../types/common");
24
- const contracts_1 = require("../contracts");
25
- const constants_1 = require("../constants");
26
- const staking_1 = require("../staking");
27
- const utils_1 = require("../services/utils");
28
- const morphoMidnightHelpers_1 = require("../helpers/morphoMidnightHelpers");
29
- const priceService_1 = require("../services/priceService");
30
- const viem_1 = require("../services/viem");
31
- const HARDCODED_USD_STABLE_PRICE = '100000000'; // $1 with 8 decimals
32
- const nowInSeconds = () => Math.floor(Date.now() / 1000);
33
- function _getMorphoMidnightMarketData(provider, network, selectedMarket) {
34
- return __awaiter(this, void 0, void 0, function* () {
35
- const { loanToken, collaterals, marketId } = selectedMarket;
36
- const loanTokenInfo = (0, tokens_1.getAssetInfoByAddress)(loanToken, network);
37
- const loanSym = (0, utils_1.wethToEth)(loanTokenInfo.symbol);
38
- const loanTokenFeedAddress = (0, priceService_1.getChainlinkAssetAddress)(loanTokenInfo.symbol, network);
39
- const viewContract = (0, contracts_1.MorphoMidnightViewContractViem)(provider, network);
40
- const isHardcodedUsdStable = ['USDA', 'RLUSD'].includes(loanTokenInfo.symbol);
41
- let marketInfo;
42
- let loanTokenPrice;
43
- if ((0, utils_1.isMainnetNetwork)(network)) {
44
- const feedRegistryContract = (0, contracts_1.FeedRegistryContractViem)(provider, common_1.NetworkNumber.Eth);
45
- const [_loanTokenPrice, _marketInfo] = yield Promise.all([
46
- isHardcodedUsdStable ? Promise.resolve(HARDCODED_USD_STABLE_PRICE) : feedRegistryContract.read.latestAnswer([loanTokenFeedAddress, constants_1.USD_QUOTE]),
47
- viewContract.read.getMarketInfo([marketId]),
48
- ]);
49
- marketInfo = _marketInfo;
50
- loanTokenPrice = _loanTokenPrice;
51
- }
52
- else {
53
- // Currently only Base is supported
54
- const feedRegistryContract = (0, contracts_1.DFSFeedRegistryContractViem)(provider, network);
55
- const [loanTokenPriceRound, _marketInfo] = yield Promise.all([
56
- isHardcodedUsdStable ? Promise.resolve([0, HARDCODED_USD_STABLE_PRICE]) : feedRegistryContract.read.latestRoundData([loanTokenFeedAddress, constants_1.USD_QUOTE]),
57
- viewContract.read.getMarketInfo([marketId]),
58
- ]);
59
- marketInfo = _marketInfo;
60
- loanTokenPrice = loanTokenPriceRound[1].toString();
61
- }
62
- const loanTokenUsd = new decimal_js_1.default(loanTokenPrice).div(1e8).toString();
63
- const totalUnits = marketInfo.totalUnits.toString();
64
- const withdrawable = marketInfo.withdrawable.toString();
65
- const totalDebt = decimal_js_1.default.max(new decimal_js_1.default(totalUnits).sub(withdrawable), 0).toString();
66
- const assetsData = {};
67
- assetsData[loanSym] = {
68
- symbol: loanSym,
69
- address: loanToken,
70
- price: loanTokenUsd,
71
- supplyRate: '0', // fixed rate is orderbook-derived, not exposed on-chain (MVP)
72
- borrowRate: '0',
73
- totalSupply: (0, tokens_1.assetAmountInEth)(totalUnits, loanSym),
74
- totalBorrow: (0, tokens_1.assetAmountInEth)(totalDebt, loanSym),
75
- canBeSupplied: true,
76
- canBeBorrowed: true,
77
- supplyIncentives: [],
78
- borrowIncentives: [],
79
- };
80
- const collateralSymbols = [];
81
- collaterals.forEach((coll, i) => {
82
- const collInfo = (0, tokens_1.getAssetInfoByAddress)(coll.token, network);
83
- const collSym = (0, utils_1.wethToEth)(collInfo.symbol);
84
- collateralSymbols.push(collSym);
85
- // Oracle price is returned in loan-token terms, scaled by 10^(36 + loanDec - collDec)
86
- const scale = new decimal_js_1.default(10).pow(new decimal_js_1.default(36).add(loanTokenInfo.decimals).sub(collInfo.decimals).toString()).toString();
87
- const rawPrice = marketInfo.prices[i] ? marketInfo.prices[i].toString() : '0';
88
- const oracleRate = new decimal_js_1.default(rawPrice).div(scale).toString();
89
- assetsData[collSym] = {
90
- symbol: collSym,
91
- address: coll.token,
92
- price: new decimal_js_1.default(loanTokenUsd).mul(oracleRate).toString(),
93
- supplyRate: '0',
94
- borrowRate: '0',
95
- lltv: new decimal_js_1.default(coll.lltv).toString(),
96
- canBeSupplied: true,
97
- canBeBorrowed: false,
98
- supplyIncentives: [],
99
- borrowIncentives: [],
100
- };
101
- });
102
- const utillization = new decimal_js_1.default(totalUnits).eq(0) ? '0' : new decimal_js_1.default(totalDebt).div(totalUnits).mul(100).toString();
103
- return {
104
- id: marketInfo.id,
105
- loanToken: loanSym,
106
- collaterals: collateralSymbols,
107
- maturity: selectedMarket.maturity,
108
- isMatured: nowInSeconds() >= selectedMarket.maturity,
109
- totalUnits: (0, tokens_1.assetAmountInEth)(totalUnits, loanSym),
110
- withdrawable: (0, tokens_1.assetAmountInEth)(withdrawable, loanSym),
111
- totalDebt: (0, tokens_1.assetAmountInEth)(totalDebt, loanSym),
112
- lossFactor: marketInfo.lossFactor.toString(),
113
- tickSpacing: marketInfo.tickSpacing,
114
- utillization,
115
- assetsData,
116
- };
117
- });
118
- }
119
- function getMorphoMidnightMarketData(provider, network, selectedMarket) {
120
- return __awaiter(this, void 0, void 0, function* () {
121
- return _getMorphoMidnightMarketData((0, viem_1.getViemProvider)(provider, network), network, selectedMarket);
122
- });
123
- }
124
- function _getMorphoMidnightAccountData(provider, network, account, selectedMarket, marketInfo) {
125
- return __awaiter(this, void 0, void 0, function* () {
126
- const { marketId, collaterals } = selectedMarket;
127
- const viewContract = (0, contracts_1.MorphoMidnightViewContractViem)(provider, network);
128
- const positionInfo = yield viewContract.read.getPositionInfo([marketId, account]);
129
- const usedAssets = {};
130
- const loanTokenData = marketInfo.assetsData[marketInfo.loanToken];
131
- const credit = (0, tokens_1.assetAmountInEth)(positionInfo.credit.toString(), marketInfo.loanToken);
132
- const debt = (0, tokens_1.assetAmountInEth)(positionInfo.debt.toString(), marketInfo.loanToken);
133
- // A user holds either credit (lender) or debt (borrower) in a market, never both.
134
- usedAssets[marketInfo.loanToken] = {
135
- symbol: marketInfo.loanToken,
136
- supplied: credit,
137
- borrowed: debt,
138
- isSupplied: new decimal_js_1.default(positionInfo.credit.toString()).gt(0),
139
- isBorrowed: new decimal_js_1.default(positionInfo.debt.toString()).gt(0),
140
- collateral: false,
141
- suppliedUsd: new decimal_js_1.default(credit).mul(loanTokenData.price).toString(),
142
- borrowedUsd: new decimal_js_1.default(debt).mul(loanTokenData.price).toString(),
143
- };
144
- // positionInfo.collateral is index-aligned with the market's collateral set (0 where unused).
145
- collaterals.forEach((coll, i) => {
146
- const collInfo = (0, tokens_1.getAssetInfoByAddress)(coll.token, network);
147
- const collSym = (0, utils_1.wethToEth)(collInfo.symbol);
148
- const rawAmount = positionInfo.collateral[i] ? positionInfo.collateral[i].toString() : '0';
149
- const supplied = (0, tokens_1.assetAmountInEth)(rawAmount, collSym);
150
- const collData = marketInfo.assetsData[collSym];
151
- usedAssets[collSym] = {
152
- symbol: collSym,
153
- supplied,
154
- borrowed: '0',
155
- isSupplied: new decimal_js_1.default(rawAmount).gt(0),
156
- isBorrowed: false,
157
- collateral: true,
158
- suppliedUsd: new decimal_js_1.default(supplied).mul((collData === null || collData === void 0 ? void 0 : collData.price) || 0).toString(),
159
- borrowedUsd: '0',
160
- };
161
- });
162
- return Object.assign({ usedAssets,
163
- credit,
164
- debt, maturity: marketInfo.maturity, isMatured: marketInfo.isMatured }, (0, morphoMidnightHelpers_1.getMorphoMidnightAggregatedPositionData)({ usedAssets, assetsData: marketInfo.assetsData, marketInfo }));
165
- });
166
- }
167
- function getMorphoMidnightAccountData(provider, network, account, selectedMarket, marketInfo) {
168
- return __awaiter(this, void 0, void 0, function* () {
169
- return _getMorphoMidnightAccountData((0, viem_1.getViemProvider)(provider, network), network, account, selectedMarket, marketInfo);
170
- });
171
- }
172
- const _getMorphoMidnightAccountBalances = (provider, network, block, addressMapping, address, selectedMarket) => __awaiter(void 0, void 0, void 0, function* () {
173
- const balances = { collateral: {}, debt: {} };
174
- if (!address)
175
- return balances;
176
- const { marketId, loanToken, collaterals } = selectedMarket;
177
- const viewContract = (0, contracts_1.MorphoMidnightViewContractViem)(provider, network, block);
178
- const positionInfo = yield viewContract.read.getPositionInfo([marketId, address], (0, viem_1.setViemBlockNumber)(block));
179
- const loanTokenInfo = (0, tokens_1.getAssetInfoByAddress)(loanToken, network);
180
- balances.debt = {
181
- [addressMapping ? loanTokenInfo.address.toLowerCase() : (0, utils_1.wethToEth)(loanTokenInfo.symbol)]: (0, tokens_1.assetAmountInEth)(positionInfo.debt.toString(), (0, utils_1.wethToEth)(loanTokenInfo.symbol)),
182
- };
183
- const collateral = {};
184
- collaterals.forEach((coll, i) => {
185
- const collInfo = (0, tokens_1.getAssetInfoByAddress)(coll.token, network);
186
- const rawAmount = positionInfo.collateral[i] ? positionInfo.collateral[i].toString() : '0';
187
- collateral[addressMapping ? collInfo.address.toLowerCase() : (0, utils_1.wethToEth)(collInfo.symbol)] = (0, tokens_1.assetAmountInEth)(rawAmount, (0, utils_1.wethToEth)(collInfo.symbol));
188
- });
189
- balances.collateral = collateral;
190
- return balances;
191
- });
192
- exports._getMorphoMidnightAccountBalances = _getMorphoMidnightAccountBalances;
193
- const getMorphoMidnightAccountBalances = (provider, network, block, addressMapping, address, selectedMarket) => __awaiter(void 0, void 0, void 0, function* () { return (0, exports._getMorphoMidnightAccountBalances)((0, viem_1.getViemProvider)(provider, network), network, block, addressMapping, address, selectedMarket); });
194
- exports.getMorphoMidnightAccountBalances = getMorphoMidnightAccountBalances;
195
- // Lender-side (credit-only) supply position, mirroring getMorphoEarn. `amount` is the credit face value
196
- // redeemable at maturity; `apy` is '0' in MVP because the fixed yield is orderbook-derived, not on-chain.
197
- function getMorphoMidnightEarn(provider, network, account, selectedMarket, marketInfo) {
198
- return __awaiter(this, void 0, void 0, function* () {
199
- const { marketId } = selectedMarket;
200
- const viewContract = (0, contracts_1.MorphoMidnightViewContractViem)(provider, network);
201
- const positionInfo = yield viewContract.read.getPositionInfo([marketId, account]);
202
- const loanTokenData = marketInfo.assetsData[marketInfo.loanToken];
203
- const credit = (0, tokens_1.assetAmountInEth)(positionInfo.credit.toString(), marketInfo.loanToken);
204
- const creditUsd = new decimal_js_1.default(credit).mul(loanTokenData.price).toString();
205
- const usedAssets = {
206
- [marketInfo.loanToken]: {
207
- symbol: marketInfo.loanToken,
208
- supplied: credit,
209
- borrowed: '0',
210
- isSupplied: new decimal_js_1.default(positionInfo.credit.toString()).gt(0),
211
- isBorrowed: false,
212
- collateral: false,
213
- suppliedUsd: creditUsd,
214
- borrowedUsd: '0',
215
- },
216
- };
217
- const { netApy } = (0, staking_1.calculateNetApy)({ usedAssets, assetsData: marketInfo.assetsData });
218
- return { apy: netApy, amount: credit, amountUsd: creditUsd };
219
- });
220
- }
@@ -1,91 +0,0 @@
1
- import { EthAddress, IncentiveData, LeverageType, MMUsedAssets, NetworkNumber } from './common';
2
- export declare enum MorphoMidnightVersions {
3
- MorphoMidnightCbBTCUSDC_860_20260731_Base = "morphomidnightcbbtcusdc_860_20260731_base",
4
- MorphoMidnightCbBTCUSDC_860_20260828_Base = "morphomidnightcbbtcusdc_860_20260828_base",
5
- MorphoMidnightCbBTCUSDC_860_20260925_Base = "morphomidnightcbbtcusdc_860_20260925_base",
6
- MorphoMidnightCbBTCUSDC_860_20261030_Base = "morphomidnightcbbtcusdc_860_20261030_base",
7
- MorphoMidnightCbBTCUSDC_860_20261127_Base = "morphomidnightcbbtcusdc_860_20261127_base",
8
- MorphoMidnightCbBTCUSDC_860_20261225_Base = "morphomidnightcbbtcusdc_860_20261225_base"
9
- }
10
- export interface MorphoMidnightCollateralParams {
11
- token: EthAddress;
12
- lltv: number | string;
13
- liquidationCursor: number | string;
14
- oracle: EthAddress;
15
- }
16
- export interface MorphoMidnightMarketData {
17
- chainIds: NetworkNumber[];
18
- label: string;
19
- shortLabel: string;
20
- url: string;
21
- value: MorphoMidnightVersions;
22
- midnight: EthAddress;
23
- loanToken: EthAddress;
24
- collaterals: MorphoMidnightCollateralParams[];
25
- maturity: number;
26
- rcfThreshold: number | string;
27
- enterGate: EthAddress;
28
- liquidatorGate: EthAddress;
29
- marketId: string;
30
- protocolName: string;
31
- }
32
- export interface MorphoMidnightAssetData {
33
- symbol: string;
34
- address: string;
35
- price: string;
36
- supplyRate: string;
37
- borrowRate: string;
38
- supplyIncentives: IncentiveData[];
39
- borrowIncentives: IncentiveData[];
40
- totalSupply?: string;
41
- totalBorrow?: string;
42
- canBeSupplied?: boolean;
43
- canBeBorrowed?: boolean;
44
- lltv?: string;
45
- }
46
- export type MorphoMidnightAssetsData = {
47
- [key: string]: MorphoMidnightAssetData;
48
- };
49
- export interface MorphoMidnightMarketInfo {
50
- id: string;
51
- loanToken: string;
52
- collaterals: string[];
53
- maturity: number;
54
- isMatured: boolean;
55
- totalUnits: string;
56
- withdrawable: string;
57
- totalDebt: string;
58
- lossFactor: string;
59
- tickSpacing: number;
60
- utillization: string;
61
- assetsData: MorphoMidnightAssetsData;
62
- }
63
- export interface MorphoMidnightAggregatedPositionData {
64
- suppliedUsd: string;
65
- suppliedCollateralUsd: string;
66
- borrowedUsd: string;
67
- borrowLimitUsd: string;
68
- liquidationLimitUsd: string;
69
- leftToBorrowUsd: string;
70
- leftToBorrow: string;
71
- netApy: string;
72
- incentiveUsd: string;
73
- totalInterestUsd: string;
74
- ltv: string;
75
- ratio: string;
76
- healthRatio: string;
77
- leveragedType: LeverageType;
78
- leveragedAsset?: string;
79
- currentVolatilePairRatio?: string;
80
- liquidationPrice?: string;
81
- minCollRatio?: string;
82
- collLiquidationRatio?: string;
83
- exposure: string;
84
- }
85
- export interface MorphoMidnightPositionData extends MorphoMidnightAggregatedPositionData {
86
- usedAssets: MMUsedAssets;
87
- credit: string;
88
- debt: string;
89
- maturity: number;
90
- isMatured: boolean;
91
- }
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MorphoMidnightVersions = void 0;
4
- var MorphoMidnightVersions;
5
- (function (MorphoMidnightVersions) {
6
- // BASE
7
- // Fixed-term markets are disambiguated by maturity (YYYYMMDD), so the same pair recurs across dates.
8
- // Sourced from the official listing at https://markets.morpho.org/fixed/base (see sitemap.xml).
9
- MorphoMidnightVersions["MorphoMidnightCbBTCUSDC_860_20260731_Base"] = "morphomidnightcbbtcusdc_860_20260731_base";
10
- MorphoMidnightVersions["MorphoMidnightCbBTCUSDC_860_20260828_Base"] = "morphomidnightcbbtcusdc_860_20260828_base";
11
- MorphoMidnightVersions["MorphoMidnightCbBTCUSDC_860_20260925_Base"] = "morphomidnightcbbtcusdc_860_20260925_base";
12
- MorphoMidnightVersions["MorphoMidnightCbBTCUSDC_860_20261030_Base"] = "morphomidnightcbbtcusdc_860_20261030_base";
13
- MorphoMidnightVersions["MorphoMidnightCbBTCUSDC_860_20261127_Base"] = "morphomidnightcbbtcusdc_860_20261127_base";
14
- MorphoMidnightVersions["MorphoMidnightCbBTCUSDC_860_20261225_Base"] = "morphomidnightcbbtcusdc_860_20261225_base";
15
- })(MorphoMidnightVersions || (exports.MorphoMidnightVersions = MorphoMidnightVersions = {}));