@defisaver/positions-sdk 2.1.127-dev → 2.1.127-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/config/contracts.d.ts +249 -0
- package/cjs/config/contracts.js +11 -1
- package/cjs/contracts.d.ts +1510 -0
- package/cjs/contracts.js +3 -2
- package/cjs/helpers/index.d.ts +1 -0
- package/cjs/helpers/index.js +2 -1
- package/cjs/helpers/morphoBlueHelpers/index.js +0 -1
- package/cjs/helpers/morphoMidnightHelpers/index.d.ts +16 -0
- package/cjs/helpers/morphoMidnightHelpers/index.js +68 -0
- package/cjs/index.d.ts +2 -1
- package/cjs/index.js +3 -1
- package/cjs/markets/index.d.ts +1 -0
- package/cjs/markets/index.js +4 -1
- package/cjs/markets/morphoMidnight/index.d.ts +16 -0
- package/cjs/markets/morphoMidnight/index.js +159 -0
- package/cjs/morphoBlue/index.d.ts +6 -8
- package/cjs/morphoBlue/index.js +40 -69
- package/cjs/morphoMidnight/index.d.ts +14 -0
- package/cjs/morphoMidnight/index.js +220 -0
- package/cjs/portfolio/discovery.js +4 -0
- package/cjs/portfolio/index.js +45 -1
- package/cjs/services/viem.d.ts +11 -11
- package/cjs/types/index.d.ts +1 -0
- package/cjs/types/index.js +1 -0
- package/cjs/types/morphoBlue.d.ts +0 -9
- package/cjs/types/morphoMidnight.d.ts +91 -0
- package/cjs/types/morphoMidnight.js +15 -0
- package/cjs/types/portfolio.d.ts +4 -0
- package/esm/config/contracts.d.ts +249 -0
- package/esm/config/contracts.js +9 -0
- package/esm/contracts.d.ts +1510 -0
- package/esm/contracts.js +1 -0
- package/esm/helpers/index.d.ts +1 -0
- package/esm/helpers/index.js +1 -0
- package/esm/helpers/morphoBlueHelpers/index.js +0 -1
- package/esm/helpers/morphoMidnightHelpers/index.d.ts +16 -0
- package/esm/helpers/morphoMidnightHelpers/index.js +61 -0
- package/esm/index.d.ts +2 -1
- package/esm/index.js +2 -1
- package/esm/markets/index.d.ts +1 -0
- package/esm/markets/index.js +1 -0
- package/esm/markets/morphoMidnight/index.d.ts +16 -0
- package/esm/markets/morphoMidnight/index.js +148 -0
- package/esm/morphoBlue/index.d.ts +6 -8
- package/esm/morphoBlue/index.js +39 -62
- package/esm/morphoMidnight/index.d.ts +14 -0
- package/esm/morphoMidnight/index.js +207 -0
- package/esm/portfolio/discovery.js +5 -1
- package/esm/portfolio/index.js +47 -3
- package/esm/services/viem.d.ts +11 -11
- package/esm/types/index.d.ts +1 -0
- package/esm/types/index.js +1 -0
- package/esm/types/morphoBlue.d.ts +0 -9
- package/esm/types/morphoMidnight.d.ts +91 -0
- package/esm/types/morphoMidnight.js +12 -0
- package/esm/types/portfolio.d.ts +4 -0
- package/package.json +1 -1
- package/src/config/contracts.ts +9 -0
- package/src/contracts.ts +1 -0
- package/src/helpers/index.ts +1 -0
- package/src/helpers/morphoBlueHelpers/index.ts +0 -1
- package/src/helpers/morphoMidnightHelpers/index.ts +86 -0
- package/src/index.ts +2 -0
- package/src/markets/index.ts +1 -0
- package/src/markets/morphoMidnight/index.ts +161 -0
- package/src/morphoBlue/index.ts +44 -101
- package/src/morphoMidnight/index.ts +234 -0
- package/src/portfolio/discovery.ts +6 -0
- package/src/portfolio/index.ts +46 -2
- package/src/types/index.ts +1 -0
- package/src/types/morphoBlue.ts +0 -11
- package/src/types/morphoMidnight.ts +104 -0
- package/src/types/portfolio.ts +4 -0
package/cjs/contracts.js
CHANGED
|
@@ -33,8 +33,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.
|
|
37
|
-
exports.AaveV4ViewContractViem = exports.SkySavingsContractView = exports.MakerDsrContractViem = exports.YearnViewContractViem = exports.StkAAVEViem = exports.LiquityV2sBoldVaultViem = exports.AaveRewardsControllerViem = void 0;
|
|
36
|
+
exports.UUPSViem = exports.LiquityStabilityPoolViem = exports.LiquityLQTYStakingViem = exports.AaveUmbrellaViewViem = exports.AaveIncentivesControllerViem = exports.FluidViewContractViem = exports.LiquityV2LegacyViewContractViem = exports.LiquityV2ViewContractViem = exports.LiquityActivePoolContractViem = exports.LiquityPriceFeedContractViem = exports.LiquityTroveManagerContractViem = exports.LiquityCollSurplusPoolContractViem = exports.LiquityViewContractViem = exports.BTCPriceFeedContractViem = exports.WeETHPriceFeedContractViem = exports.ComptrollerContractViem = exports.CompoundLoanInfoContractViem = exports.McdJugContractViem = exports.McdDogContractViem = exports.McdSpotterContractViem = exports.McdVatContractViem = exports.McdViewContractViem = exports.McdGetCdpsContractViem = exports.LlamaLendViewContractViem = exports.CrvUSDFactoryContractViem = exports.CrvUSDViewContractViem = exports.EulerV2ViewContractViem = exports.SparkIncentiveDataProviderContractViem = exports.SparkViewContractViem = exports.CompV3ViewContractViem = exports.WstETHPriceFeedContractViem = exports.USDCPriceFeedContractViem = exports.ETHPriceFeedContractViem = exports.COMPPriceFeedContractViem = exports.DFSFeedRegistryContractViem = exports.FeedRegistryContractViem = exports.AaveIncentiveDataProviderV3ContractViem = exports.AaveV3ViewContractViem = exports.AaveLoanInfoV2ContractViem = exports.MorphoMidnightViewContractViem = exports.MorphoBlueViewContractViem = exports.getYearnV3VaultContractViem = exports.getErc4626ContractViem = exports.getErc20ContractViem = exports.getSparkSavingsVaultContractViem = exports.getYearnVaultContractViem = exports.getMorphoVaultContractViem = exports.createViemContractFromConfigFunc = exports.getConfigContractAbi = exports.getConfigContractAddress = void 0;
|
|
37
|
+
exports.AaveV4ViewContractViem = exports.SkySavingsContractView = exports.MakerDsrContractViem = exports.YearnViewContractViem = exports.StkAAVEViem = exports.LiquityV2sBoldVaultViem = exports.AaveRewardsControllerViem = exports.SparkRewardsControllerViem = void 0;
|
|
38
38
|
const viem_1 = require("viem");
|
|
39
39
|
const configRaw = __importStar(require("./config/contracts"));
|
|
40
40
|
// @ts-ignore
|
|
@@ -140,6 +140,7 @@ const getYearnV3VaultContractViem = (client, address) => {
|
|
|
140
140
|
};
|
|
141
141
|
exports.getYearnV3VaultContractViem = getYearnV3VaultContractViem;
|
|
142
142
|
exports.MorphoBlueViewContractViem = (0, exports.createViemContractFromConfigFunc)('MorphoBlueView');
|
|
143
|
+
exports.MorphoMidnightViewContractViem = (0, exports.createViemContractFromConfigFunc)('MidnightView');
|
|
143
144
|
exports.AaveLoanInfoV2ContractViem = (0, exports.createViemContractFromConfigFunc)('AaveLoanInfoV2');
|
|
144
145
|
exports.AaveV3ViewContractViem = (0, exports.createViemContractFromConfigFunc)('AaveV3View');
|
|
145
146
|
exports.AaveIncentiveDataProviderV3ContractViem = (0, exports.createViemContractFromConfigFunc)('AaveUiIncentiveDataProviderV3');
|
package/cjs/helpers/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export * as sparkHelpers from './sparkHelpers';
|
|
|
4
4
|
export * as curveUsdHelpers from './curveUsdHelpers';
|
|
5
5
|
export * as makerHelpers from './makerHelpers';
|
|
6
6
|
export * as morphoBlueHelpers from './morphoBlueHelpers';
|
|
7
|
+
export * as morphoMidnightHelpers from './morphoMidnightHelpers';
|
|
7
8
|
export * as llamaLendHelpers from './llamaLendHelpers';
|
|
8
9
|
export * as liquityV2Helpers from './liquityV2Helpers';
|
|
9
10
|
export * as eulerV2Helpers from './eulerHelpers';
|
package/cjs/helpers/index.js
CHANGED
|
@@ -33,13 +33,14 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.aaveV4Helpers = exports.fluidHelpers = exports.eulerV2Helpers = exports.liquityV2Helpers = exports.llamaLendHelpers = exports.morphoBlueHelpers = exports.makerHelpers = exports.curveUsdHelpers = exports.sparkHelpers = exports.compoundHelpers = exports.aaveHelpers = void 0;
|
|
36
|
+
exports.aaveV4Helpers = exports.fluidHelpers = exports.eulerV2Helpers = exports.liquityV2Helpers = exports.llamaLendHelpers = exports.morphoMidnightHelpers = exports.morphoBlueHelpers = exports.makerHelpers = exports.curveUsdHelpers = exports.sparkHelpers = exports.compoundHelpers = exports.aaveHelpers = void 0;
|
|
37
37
|
exports.aaveHelpers = __importStar(require("./aaveHelpers"));
|
|
38
38
|
exports.compoundHelpers = __importStar(require("./compoundHelpers"));
|
|
39
39
|
exports.sparkHelpers = __importStar(require("./sparkHelpers"));
|
|
40
40
|
exports.curveUsdHelpers = __importStar(require("./curveUsdHelpers"));
|
|
41
41
|
exports.makerHelpers = __importStar(require("./makerHelpers"));
|
|
42
42
|
exports.morphoBlueHelpers = __importStar(require("./morphoBlueHelpers"));
|
|
43
|
+
exports.morphoMidnightHelpers = __importStar(require("./morphoMidnightHelpers"));
|
|
43
44
|
exports.llamaLendHelpers = __importStar(require("./llamaLendHelpers"));
|
|
44
45
|
exports.liquityV2Helpers = __importStar(require("./liquityV2Helpers"));
|
|
45
46
|
exports.eulerV2Helpers = __importStar(require("./eulerHelpers"));
|
|
@@ -361,7 +361,6 @@ const getRewardsForMarket = (marketId_1, ...args_1) => __awaiter(void 0, [market
|
|
|
361
361
|
query: REWARDS_QUERY,
|
|
362
362
|
variables: { marketId, chainId: network },
|
|
363
363
|
}),
|
|
364
|
-
signal: AbortSignal.timeout(utils_1.LONGER_TIMEOUT),
|
|
365
364
|
});
|
|
366
365
|
const data = yield response.json();
|
|
367
366
|
const marketData = (_a = data === null || data === void 0 ? void 0 : data.data) === null || _a === void 0 ? void 0 : _a.marketById;
|
|
@@ -0,0 +1,16 @@
|
|
|
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;
|
|
@@ -0,0 +1,68 @@
|
|
|
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;
|
package/cjs/index.d.ts
CHANGED
|
@@ -16,10 +16,11 @@ import * as markets from './markets';
|
|
|
16
16
|
import * as helpers from './helpers';
|
|
17
17
|
import * as exchange from './exchange';
|
|
18
18
|
import * as morphoBlue from './morphoBlue';
|
|
19
|
+
import * as morphoMidnight from './morphoMidnight';
|
|
19
20
|
import * as llamaLend from './llamaLend';
|
|
20
21
|
import * as eulerV2 from './eulerV2';
|
|
21
22
|
import * as portfolio from './portfolio';
|
|
22
23
|
import * as claiming from './claiming';
|
|
23
24
|
import * as savings from './savings';
|
|
24
25
|
export * from './types';
|
|
25
|
-
export { aaveV2, aaveV3, aaveV4, compoundV2, compoundV3, spark, curveUsd, liquity, liquityV2, maker, exchange, staking, moneymarket, markets, helpers, morphoBlue, llamaLend, eulerV2, fluid, portfolio, claiming, savings, };
|
|
26
|
+
export { aaveV2, aaveV3, aaveV4, compoundV2, compoundV3, spark, curveUsd, liquity, liquityV2, maker, exchange, staking, moneymarket, markets, helpers, morphoBlue, morphoMidnight, llamaLend, eulerV2, fluid, portfolio, claiming, savings, };
|
package/cjs/index.js
CHANGED
|
@@ -36,7 +36,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
36
36
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.savings = exports.claiming = exports.portfolio = exports.fluid = exports.eulerV2 = exports.llamaLend = exports.morphoBlue = exports.helpers = exports.markets = exports.moneymarket = exports.staking = exports.exchange = exports.maker = exports.liquityV2 = exports.liquity = exports.curveUsd = exports.spark = exports.compoundV3 = exports.compoundV2 = exports.aaveV4 = exports.aaveV3 = exports.aaveV2 = void 0;
|
|
39
|
+
exports.savings = exports.claiming = exports.portfolio = exports.fluid = exports.eulerV2 = exports.llamaLend = exports.morphoMidnight = exports.morphoBlue = exports.helpers = exports.markets = exports.moneymarket = exports.staking = exports.exchange = exports.maker = exports.liquityV2 = exports.liquity = exports.curveUsd = exports.spark = exports.compoundV3 = exports.compoundV2 = exports.aaveV4 = exports.aaveV3 = exports.aaveV2 = void 0;
|
|
40
40
|
require("./setup");
|
|
41
41
|
const fluid = __importStar(require("./fluid"));
|
|
42
42
|
exports.fluid = fluid;
|
|
@@ -72,6 +72,8 @@ const exchange = __importStar(require("./exchange"));
|
|
|
72
72
|
exports.exchange = exchange;
|
|
73
73
|
const morphoBlue = __importStar(require("./morphoBlue"));
|
|
74
74
|
exports.morphoBlue = morphoBlue;
|
|
75
|
+
const morphoMidnight = __importStar(require("./morphoMidnight"));
|
|
76
|
+
exports.morphoMidnight = morphoMidnight;
|
|
75
77
|
const llamaLend = __importStar(require("./llamaLend"));
|
|
76
78
|
exports.llamaLend = llamaLend;
|
|
77
79
|
const eulerV2 = __importStar(require("./eulerV2"));
|
package/cjs/markets/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export { CompoundMarkets, compoundV2CollateralAssets, v3ETHCollAssets, v3USDbCCo
|
|
|
3
3
|
export { SparkMarkets } from './spark';
|
|
4
4
|
export { CrvUsdMarkets } from './curveUsd';
|
|
5
5
|
export { MorphoBlueMarkets, findMorphoBlueMarket } from './morphoBlue';
|
|
6
|
+
export { MorphoMidnightMarkets, findMorphoMidnightMarket } from './morphoMidnight';
|
|
6
7
|
export { LlamaLendMarkets } from './llamaLend';
|
|
7
8
|
export { LiquityV2Markets, findLiquityV2MarketByAddress } from './liquityV2';
|
|
8
9
|
export { EulerV2Markets } from './euler';
|
package/cjs/markets/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.findAaveV4SpokeByAddress = exports.AaveV4Spokes = exports.getFluidMarketInfoByAddress = exports.getFTokenAddress = exports.getFluidMarketInfoById = exports.getFluidVersionsDataForNetwork = exports.FluidMarkets = exports.EulerV2Markets = exports.findLiquityV2MarketByAddress = exports.LiquityV2Markets = exports.LlamaLendMarkets = exports.findMorphoBlueMarket = exports.MorphoBlueMarkets = exports.CrvUsdMarkets = exports.SparkMarkets = exports.v3USDTCollAssets = exports.v3USDCeCollAssets = exports.v3USDCCollAssets = exports.v3USDbCCollAssets = exports.v3ETHCollAssets = exports.compoundV2CollateralAssets = exports.CompoundMarkets = exports.getAaveV3MarketByMarketAddress = exports.aaveV3AssetsDefaultMarket = exports.aaveV2AssetsDefaultMarket = exports.aaveV1AssetsDefaultMarket = exports.AaveMarkets = void 0;
|
|
3
|
+
exports.findAaveV4SpokeByAddress = exports.AaveV4Spokes = exports.getFluidMarketInfoByAddress = exports.getFTokenAddress = exports.getFluidMarketInfoById = exports.getFluidVersionsDataForNetwork = exports.FluidMarkets = exports.EulerV2Markets = exports.findLiquityV2MarketByAddress = exports.LiquityV2Markets = exports.LlamaLendMarkets = exports.findMorphoMidnightMarket = exports.MorphoMidnightMarkets = exports.findMorphoBlueMarket = exports.MorphoBlueMarkets = exports.CrvUsdMarkets = exports.SparkMarkets = exports.v3USDTCollAssets = exports.v3USDCeCollAssets = exports.v3USDCCollAssets = exports.v3USDbCCollAssets = exports.v3ETHCollAssets = exports.compoundV2CollateralAssets = exports.CompoundMarkets = exports.getAaveV3MarketByMarketAddress = exports.aaveV3AssetsDefaultMarket = exports.aaveV2AssetsDefaultMarket = exports.aaveV1AssetsDefaultMarket = exports.AaveMarkets = void 0;
|
|
4
4
|
var aave_1 = require("./aave");
|
|
5
5
|
Object.defineProperty(exports, "AaveMarkets", { enumerable: true, get: function () { return aave_1.AaveMarkets; } });
|
|
6
6
|
Object.defineProperty(exports, "aaveV1AssetsDefaultMarket", { enumerable: true, get: function () { return aave_1.aaveV1AssetsDefaultMarket; } });
|
|
@@ -22,6 +22,9 @@ Object.defineProperty(exports, "CrvUsdMarkets", { enumerable: true, get: functio
|
|
|
22
22
|
var morphoBlue_1 = require("./morphoBlue");
|
|
23
23
|
Object.defineProperty(exports, "MorphoBlueMarkets", { enumerable: true, get: function () { return morphoBlue_1.MorphoBlueMarkets; } });
|
|
24
24
|
Object.defineProperty(exports, "findMorphoBlueMarket", { enumerable: true, get: function () { return morphoBlue_1.findMorphoBlueMarket; } });
|
|
25
|
+
var morphoMidnight_1 = require("./morphoMidnight");
|
|
26
|
+
Object.defineProperty(exports, "MorphoMidnightMarkets", { enumerable: true, get: function () { return morphoMidnight_1.MorphoMidnightMarkets; } });
|
|
27
|
+
Object.defineProperty(exports, "findMorphoMidnightMarket", { enumerable: true, get: function () { return morphoMidnight_1.findMorphoMidnightMarket; } });
|
|
25
28
|
var llamaLend_1 = require("./llamaLend");
|
|
26
29
|
Object.defineProperty(exports, "LlamaLendMarkets", { enumerable: true, get: function () { return llamaLend_1.LlamaLendMarkets; } });
|
|
27
30
|
var liquityV2_1 = require("./liquityV2");
|
|
@@ -0,0 +1,16 @@
|
|
|
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;
|
|
@@ -0,0 +1,159 @@
|
|
|
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,16 +1,14 @@
|
|
|
1
1
|
import { Client } from 'viem';
|
|
2
2
|
import { Blockish, EthAddress, EthereumProvider, NetworkNumber, PositionBalances } from '../types/common';
|
|
3
|
-
import {
|
|
4
|
-
export declare const addMorphoBlueRewardsToMarketInfo: (marketInfo: MorphoBlueMarketInfo, rewards: MorphoBlueMarketRewards) => MorphoBlueMarketInfo;
|
|
3
|
+
import { MorphoBlueMarketData, MorphoBlueMarketInfo, MorphoBluePositionData } from '../types';
|
|
5
4
|
export declare function _getMorphoBlueMarketData(provider: Client, network: NetworkNumber, selectedMarket: MorphoBlueMarketData): Promise<MorphoBlueMarketInfo>;
|
|
6
|
-
export declare function _getMorphoBluePortfolioMarketData(provider: Client, network: NetworkNumber, selectedMarket: MorphoBlueMarketData): Promise<MorphoBlueMarketInfo>;
|
|
7
5
|
export declare function getMorphoBlueMarketData(provider: EthereumProvider, network: NetworkNumber, selectedMarket: MorphoBlueMarketData): Promise<MorphoBlueMarketInfo>;
|
|
8
|
-
export declare function getMorphoBluePortfolioMarketData(provider: EthereumProvider, network: NetworkNumber, selectedMarket: MorphoBlueMarketData): Promise<MorphoBlueMarketInfo>;
|
|
9
|
-
export declare const getMorphoBluePositionDataWithMarketInfo: (data: MorphoBluePositionData, marketInfo: MorphoBlueMarketInfo) => MorphoBluePositionData;
|
|
10
|
-
export declare const getMorphoEarnDataWithMarketInfo: (data: MorphoBlueEarnData, marketInfo: MorphoBlueMarketInfo) => MorphoBlueEarnData;
|
|
11
|
-
export declare function getMorphoBlueMarketRewards(network: NetworkNumber, selectedMarket: MorphoBlueMarketData): Promise<MorphoBlueMarketRewards>;
|
|
12
6
|
export declare const _getMorphoBlueAccountBalances: (provider: Client, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress, selectedMarket: MorphoBlueMarketData) => Promise<PositionBalances>;
|
|
13
7
|
export declare const getMorphoBlueAccountBalances: (provider: EthereumProvider, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress, selectedMarket: MorphoBlueMarketData) => Promise<PositionBalances>;
|
|
14
8
|
export declare function _getMorphoBlueAccountData(provider: Client, network: NetworkNumber, account: EthAddress, selectedMarket: MorphoBlueMarketData, marketInfo: MorphoBlueMarketInfo): Promise<MorphoBluePositionData>;
|
|
15
9
|
export declare function getMorphoBlueAccountData(provider: EthereumProvider, network: NetworkNumber, account: EthAddress, selectedMarket: MorphoBlueMarketData, marketInfo: MorphoBlueMarketInfo): Promise<MorphoBluePositionData>;
|
|
16
|
-
export declare function getMorphoEarn(provider: Client, network: NetworkNumber, account: EthAddress, selectedMarket: MorphoBlueMarketData, marketInfo: MorphoBlueMarketInfo): Promise<
|
|
10
|
+
export declare function getMorphoEarn(provider: Client, network: NetworkNumber, account: EthAddress, selectedMarket: MorphoBlueMarketData, marketInfo: MorphoBlueMarketInfo): Promise<{
|
|
11
|
+
apy: string;
|
|
12
|
+
amount: string;
|
|
13
|
+
amountUsd: string;
|
|
14
|
+
}>;
|
package/cjs/morphoBlue/index.js
CHANGED
|
@@ -12,12 +12,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.getMorphoBlueAccountBalances = exports._getMorphoBlueAccountBalances =
|
|
15
|
+
exports.getMorphoBlueAccountBalances = exports._getMorphoBlueAccountBalances = void 0;
|
|
16
16
|
exports._getMorphoBlueMarketData = _getMorphoBlueMarketData;
|
|
17
|
-
exports._getMorphoBluePortfolioMarketData = _getMorphoBluePortfolioMarketData;
|
|
18
17
|
exports.getMorphoBlueMarketData = getMorphoBlueMarketData;
|
|
19
|
-
exports.getMorphoBluePortfolioMarketData = getMorphoBluePortfolioMarketData;
|
|
20
|
-
exports.getMorphoBlueMarketRewards = getMorphoBlueMarketRewards;
|
|
21
18
|
exports._getMorphoBlueAccountData = _getMorphoBlueAccountData;
|
|
22
19
|
exports.getMorphoBlueAccountData = getMorphoBlueAccountData;
|
|
23
20
|
exports.getMorphoEarn = getMorphoEarn;
|
|
@@ -32,21 +29,7 @@ const morphoBlueHelpers_1 = require("../helpers/morphoBlueHelpers");
|
|
|
32
29
|
const priceService_1 = require("../services/priceService");
|
|
33
30
|
const viem_1 = require("../services/viem");
|
|
34
31
|
const HARDCODED_USD_STABLE_PRICE = '100000000'; // $1 with 8 decimals
|
|
35
|
-
|
|
36
|
-
token: 'MORPHO',
|
|
37
|
-
apy,
|
|
38
|
-
incentiveKind: common_1.IncentiveKind.Reward,
|
|
39
|
-
description: 'Eligible for protocol-level MORPHO incentives.',
|
|
40
|
-
}];
|
|
41
|
-
const addMorphoBlueRewardsToMarketInfo = (marketInfo, rewards) => (Object.assign(Object.assign({}, marketInfo), { assetsData: Object.assign(Object.assign({}, marketInfo.assetsData), { [marketInfo.loanToken]: Object.assign(Object.assign({}, marketInfo.assetsData[marketInfo.loanToken]), { supplyIncentives: [
|
|
42
|
-
...marketInfo.assetsData[marketInfo.loanToken].supplyIncentives.filter(({ token }) => token !== 'MORPHO'),
|
|
43
|
-
...getMorphoRewardIncentives(rewards.supplyApy),
|
|
44
|
-
], borrowIncentives: [
|
|
45
|
-
...marketInfo.assetsData[marketInfo.loanToken].borrowIncentives.filter(({ token }) => token !== 'MORPHO'),
|
|
46
|
-
...getMorphoRewardIncentives(rewards.borrowApy),
|
|
47
|
-
] }) }) }));
|
|
48
|
-
exports.addMorphoBlueRewardsToMarketInfo = addMorphoBlueRewardsToMarketInfo;
|
|
49
|
-
function getMorphoBlueMarketDataInternal(provider, network, selectedMarket) {
|
|
32
|
+
function _getMorphoBlueMarketData(provider, network, selectedMarket) {
|
|
50
33
|
return __awaiter(this, void 0, void 0, function* () {
|
|
51
34
|
const { loanToken, collateralToken, oracle, irm, lltv, oracleType, } = selectedMarket;
|
|
52
35
|
const lltvInWei = new decimal_js_1.default(lltv).mul(constants_1.WAD).toString();
|
|
@@ -78,6 +61,16 @@ function getMorphoBlueMarketDataInternal(provider, network, selectedMarket) {
|
|
|
78
61
|
marketInfo = _marketInfo;
|
|
79
62
|
loanTokenPrice = loanTokenPriceRound[1].toString();
|
|
80
63
|
}
|
|
64
|
+
let morphoSupplyApy = '0';
|
|
65
|
+
let morphoBorrowApy = '0';
|
|
66
|
+
try {
|
|
67
|
+
const { supplyApy: _morphoSupplyApy, borrowApy: _morphoBorrowApy } = yield (0, morphoBlueHelpers_1.getRewardsForMarket)(selectedMarket.marketId, network);
|
|
68
|
+
morphoSupplyApy = _morphoSupplyApy;
|
|
69
|
+
morphoBorrowApy = _morphoBorrowApy;
|
|
70
|
+
}
|
|
71
|
+
catch (e) {
|
|
72
|
+
console.error(e);
|
|
73
|
+
}
|
|
81
74
|
const supplyRate = (0, morphoBlueHelpers_1.getSupplyRate)(marketInfo.totalSupplyAssets.toString(), marketInfo.totalBorrowAssets.toString(), marketInfo.borrowRate.toString(), marketInfo.fee.toString());
|
|
82
75
|
const compoundedBorrowRate = (0, morphoBlueHelpers_1.getBorrowRate)(marketInfo.borrowRate.toString(), marketInfo.totalBorrowShares.toString());
|
|
83
76
|
const utillization = new decimal_js_1.default(marketInfo.totalBorrowAssets.toString()).div(marketInfo.totalSupplyAssets.toString()).mul(100).toString();
|
|
@@ -96,8 +89,18 @@ function getMorphoBlueMarketDataInternal(provider, network, selectedMarket) {
|
|
|
96
89
|
totalBorrow: new decimal_js_1.default(marketInfo.totalBorrowAssets.toString()).div(scale).toString(),
|
|
97
90
|
canBeSupplied: true,
|
|
98
91
|
canBeBorrowed: true,
|
|
99
|
-
supplyIncentives: [
|
|
100
|
-
|
|
92
|
+
supplyIncentives: [{
|
|
93
|
+
token: 'MORPHO',
|
|
94
|
+
apy: morphoSupplyApy,
|
|
95
|
+
incentiveKind: common_1.IncentiveKind.Reward,
|
|
96
|
+
description: 'Eligible for protocol-level MORPHO incentives.',
|
|
97
|
+
}],
|
|
98
|
+
borrowIncentives: [{
|
|
99
|
+
token: 'MORPHO',
|
|
100
|
+
apy: morphoBorrowApy,
|
|
101
|
+
incentiveKind: common_1.IncentiveKind.Reward,
|
|
102
|
+
description: 'Eligible for protocol-level MORPHO incentives.',
|
|
103
|
+
}],
|
|
101
104
|
};
|
|
102
105
|
assetsData[(0, utils_1.wethToEth)(collateralTokenInfo.symbol)] = {
|
|
103
106
|
symbol: (0, utils_1.wethToEth)(collateralTokenInfo.symbol),
|
|
@@ -132,56 +135,11 @@ function getMorphoBlueMarketDataInternal(provider, network, selectedMarket) {
|
|
|
132
135
|
};
|
|
133
136
|
});
|
|
134
137
|
}
|
|
135
|
-
function _getMorphoBlueMarketData(provider, network, selectedMarket) {
|
|
136
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
137
|
-
const marketInfo = yield getMorphoBlueMarketDataInternal(provider, network, selectedMarket);
|
|
138
|
-
try {
|
|
139
|
-
const rewards = yield (0, morphoBlueHelpers_1.getRewardsForMarket)(selectedMarket.marketId, network);
|
|
140
|
-
return (0, exports.addMorphoBlueRewardsToMarketInfo)(marketInfo, rewards);
|
|
141
|
-
}
|
|
142
|
-
catch (error) {
|
|
143
|
-
console.error(error);
|
|
144
|
-
return (0, exports.addMorphoBlueRewardsToMarketInfo)(marketInfo, { supplyApy: '0', borrowApy: '0' });
|
|
145
|
-
}
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
function _getMorphoBluePortfolioMarketData(provider, network, selectedMarket) {
|
|
149
|
-
return getMorphoBlueMarketDataInternal(provider, network, selectedMarket);
|
|
150
|
-
}
|
|
151
138
|
function getMorphoBlueMarketData(provider, network, selectedMarket) {
|
|
152
139
|
return __awaiter(this, void 0, void 0, function* () {
|
|
153
140
|
return _getMorphoBlueMarketData((0, viem_1.getViemProvider)(provider, network), network, selectedMarket);
|
|
154
141
|
});
|
|
155
142
|
}
|
|
156
|
-
function getMorphoBluePortfolioMarketData(provider, network, selectedMarket) {
|
|
157
|
-
return _getMorphoBluePortfolioMarketData((0, viem_1.getViemProvider)(provider, network), network, selectedMarket);
|
|
158
|
-
}
|
|
159
|
-
const getMorphoBluePositionDataWithMarketInfo = (data, marketInfo) => (Object.assign(Object.assign({}, data), (0, morphoBlueHelpers_1.getMorphoBlueAggregatedPositionData)({
|
|
160
|
-
usedAssets: data.usedAssets,
|
|
161
|
-
assetsData: marketInfo.assetsData,
|
|
162
|
-
marketInfo,
|
|
163
|
-
})));
|
|
164
|
-
exports.getMorphoBluePositionDataWithMarketInfo = getMorphoBluePositionDataWithMarketInfo;
|
|
165
|
-
const getMorphoEarnDataWithMarketInfo = (data, marketInfo) => {
|
|
166
|
-
const loanTokenInfo = marketInfo.assetsData[marketInfo.loanToken];
|
|
167
|
-
const usedAssets = {
|
|
168
|
-
[marketInfo.loanToken]: {
|
|
169
|
-
symbol: loanTokenInfo.symbol,
|
|
170
|
-
supplied: data.amount,
|
|
171
|
-
borrowed: '0',
|
|
172
|
-
isSupplied: new decimal_js_1.default(data.amount).gt(0),
|
|
173
|
-
isBorrowed: false,
|
|
174
|
-
collateral: false,
|
|
175
|
-
suppliedUsd: data.amountUsd,
|
|
176
|
-
borrowedUsd: '0',
|
|
177
|
-
},
|
|
178
|
-
};
|
|
179
|
-
return Object.assign(Object.assign({}, data), { apy: (0, staking_1.calculateNetApy)({ usedAssets, assetsData: marketInfo.assetsData }).netApy });
|
|
180
|
-
};
|
|
181
|
-
exports.getMorphoEarnDataWithMarketInfo = getMorphoEarnDataWithMarketInfo;
|
|
182
|
-
function getMorphoBlueMarketRewards(network, selectedMarket) {
|
|
183
|
-
return (0, morphoBlueHelpers_1.getRewardsForMarket)(selectedMarket.marketId, network);
|
|
184
|
-
}
|
|
185
143
|
const _getMorphoBlueAccountBalances = (provider, network, block, addressMapping, address, selectedMarket) => __awaiter(void 0, void 0, void 0, function* () {
|
|
186
144
|
let balances = {
|
|
187
145
|
collateral: {},
|
|
@@ -271,10 +229,23 @@ function getMorphoEarn(provider, network, account, selectedMarket, marketInfo) {
|
|
|
271
229
|
const loanTokenInfo = marketInfo.assetsData[marketInfo.loanToken];
|
|
272
230
|
const loanTokenSupplied = (0, tokens_1.assetAmountInEth)(loanInfo.suppliedInAssets.toString(), marketInfo.loanToken);
|
|
273
231
|
const loanTokenSuppliedUsd = new decimal_js_1.default(loanTokenSupplied).mul(loanTokenInfo.price).toString();
|
|
274
|
-
|
|
275
|
-
|
|
232
|
+
const usedAssets = {
|
|
233
|
+
[marketInfo.loanToken]: {
|
|
234
|
+
symbol: loanTokenInfo.symbol,
|
|
235
|
+
supplied: loanTokenSupplied,
|
|
236
|
+
borrowed: '0',
|
|
237
|
+
isSupplied: new decimal_js_1.default(loanInfo.suppliedInAssets.toString()).gt(0),
|
|
238
|
+
isBorrowed: false,
|
|
239
|
+
collateral: false,
|
|
240
|
+
suppliedUsd: loanTokenSuppliedUsd,
|
|
241
|
+
borrowedUsd: '0',
|
|
242
|
+
},
|
|
243
|
+
};
|
|
244
|
+
const { netApy } = (0, staking_1.calculateNetApy)({ usedAssets, assetsData: marketInfo.assetsData });
|
|
245
|
+
return {
|
|
246
|
+
apy: netApy,
|
|
276
247
|
amount: loanTokenSupplied,
|
|
277
248
|
amountUsd: loanTokenSuppliedUsd,
|
|
278
|
-
}
|
|
249
|
+
};
|
|
279
250
|
});
|
|
280
251
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
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
|
+
}>;
|