@defisaver/positions-sdk 2.1.148-dev → 2.1.149-shifter-v2-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/fluid/index.d.ts +2 -0
- package/cjs/fluid/index.js +36 -1
- package/cjs/maker/index.d.ts +7 -2
- package/cjs/maker/index.js +27 -10
- package/cjs/markets/index.d.ts +1 -0
- package/cjs/markets/index.js +3 -1
- package/cjs/markets/maker/index.d.ts +1 -0
- package/cjs/markets/maker/index.js +13 -0
- package/cjs/markets/morphoBlue/index.js +122 -122
- package/cjs/portfolio/index.d.ts +5 -1
- package/cjs/portfolio/index.js +290 -27
- package/cjs/types/portfolio.d.ts +26 -10
- package/esm/fluid/index.d.ts +2 -0
- package/esm/fluid/index.js +33 -0
- package/esm/maker/index.d.ts +7 -2
- package/esm/maker/index.js +26 -11
- package/esm/markets/index.d.ts +1 -0
- package/esm/markets/index.js +1 -0
- package/esm/markets/maker/index.d.ts +1 -0
- package/esm/markets/maker/index.js +10 -0
- package/esm/markets/morphoBlue/index.js +122 -122
- package/esm/portfolio/index.d.ts +5 -1
- package/esm/portfolio/index.js +293 -31
- package/esm/types/portfolio.d.ts +26 -10
- package/package.json +1 -1
- package/src/fluid/index.ts +40 -0
- package/src/maker/index.ts +56 -28
- package/src/markets/index.ts +2 -1
- package/src/markets/maker/index.ts +10 -0
- package/src/markets/morphoBlue/index.ts +122 -122
- package/src/portfolio/index.ts +273 -29
- package/src/types/portfolio.ts +31 -12
package/cjs/fluid/index.d.ts
CHANGED
|
@@ -221,3 +221,5 @@ export declare const _getUserPositionsPortfolio: (provider: PublicClient, networ
|
|
|
221
221
|
nftId: string;
|
|
222
222
|
} | undefined;
|
|
223
223
|
}[]>;
|
|
224
|
+
export declare const _getAllFluidMarketDataPortfolio: (provider: PublicClient, network: NetworkNumber) => Promise<Record<string, FluidMarketData>>;
|
|
225
|
+
export declare const getAllFluidMarketDataPortfolio: (provider: EthereumProvider, network: NetworkNumber) => Promise<Record<string, FluidMarketData>>;
|
package/cjs/fluid/index.js
CHANGED
|
@@ -12,7 +12,7 @@ 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._getUserPositionsPortfolio = exports.getUserPositions = exports._getUserPositions = exports.getAllUserEarnPositionsWithFTokens = exports._getAllUserEarnPositionsWithFTokens = exports.getFluidDepositData = exports._getFluidDepositData = exports.getFluidTokenData = exports._getFluidTokenData = exports.getAllFluidMarketDataChunked = exports._getAllFluidMarketDataChunked = exports.getFluidPositionWithMarket = exports._getFluidPositionWithMarket = exports.getFluidPosition = exports._getFluidPosition = exports.getFluidVaultIdsForUser = exports._getFluidVaultIdsForUser = exports.getFluidMarketData = exports._getFluidMarketData = exports.EMPTY_FLUID_DATA = exports.EMPTY_USED_ASSET = exports.attachFluidMerklIncentives = exports.getFluidMerklCampaigns = exports.buildFluidMerklRewardMap = exports.FluidMerklOpportunityType = void 0;
|
|
15
|
+
exports.getAllFluidMarketDataPortfolio = exports._getAllFluidMarketDataPortfolio = exports._getUserPositionsPortfolio = exports.getUserPositions = exports._getUserPositions = exports.getAllUserEarnPositionsWithFTokens = exports._getAllUserEarnPositionsWithFTokens = exports.getFluidDepositData = exports._getFluidDepositData = exports.getFluidTokenData = exports._getFluidTokenData = exports.getAllFluidMarketDataChunked = exports._getAllFluidMarketDataChunked = exports.getFluidPositionWithMarket = exports._getFluidPositionWithMarket = exports.getFluidPosition = exports._getFluidPosition = exports.getFluidVaultIdsForUser = exports._getFluidVaultIdsForUser = exports.getFluidMarketData = exports._getFluidMarketData = exports.EMPTY_FLUID_DATA = exports.EMPTY_USED_ASSET = exports.attachFluidMerklIncentives = exports.getFluidMerklCampaigns = exports.buildFluidMerklRewardMap = exports.FluidMerklOpportunityType = void 0;
|
|
16
16
|
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
17
17
|
const tokens_1 = require("@defisaver/tokens");
|
|
18
18
|
const common_1 = require("../types/common");
|
|
@@ -1410,3 +1410,38 @@ const _getUserPositionsPortfolio = (provider, network, user) => __awaiter(void 0
|
|
|
1410
1410
|
})).filter(md => md.marketData !== undefined);
|
|
1411
1411
|
});
|
|
1412
1412
|
exports._getUserPositionsPortfolio = _getUserPositionsPortfolio;
|
|
1413
|
+
const _getAllFluidMarketDataPortfolio = (provider, network) => __awaiter(void 0, void 0, void 0, function* () {
|
|
1414
|
+
const versions = (0, markets_1.getFluidVersionsDataForNetwork)(network);
|
|
1415
|
+
if (versions.length === 0)
|
|
1416
|
+
return {};
|
|
1417
|
+
const view = (0, contracts_1.FluidViewContractViem)(provider, network);
|
|
1418
|
+
const vaultsData = yield Promise.all(versions.map((version) => view.read.getVaultData([version.marketAddress])));
|
|
1419
|
+
const tokens = Array.from(new Set(vaultsData.map((vaultData) => {
|
|
1420
|
+
const vaultTokens = [(0, tokens_1.getAssetInfoByAddress)(vaultData.supplyToken0, network).symbol, (0, tokens_1.getAssetInfoByAddress)(vaultData.borrowToken0, network).symbol];
|
|
1421
|
+
if (vaultData.supplyToken1 && !(0, utils_1.compareAddresses)(constants_1.ZERO_ADDRESS, vaultData.supplyToken1))
|
|
1422
|
+
vaultTokens.push((0, tokens_1.getAssetInfoByAddress)(vaultData.supplyToken1, network).symbol);
|
|
1423
|
+
if (vaultData.borrowToken1 && !(0, utils_1.compareAddresses)(constants_1.ZERO_ADDRESS, vaultData.borrowToken1))
|
|
1424
|
+
vaultTokens.push((0, tokens_1.getAssetInfoByAddress)(vaultData.borrowToken1, network).symbol);
|
|
1425
|
+
return vaultTokens;
|
|
1426
|
+
}).flat()));
|
|
1427
|
+
// ETH and WBTC needed for other tokens prices
|
|
1428
|
+
if (!tokens.includes('ETH'))
|
|
1429
|
+
tokens.push('ETH');
|
|
1430
|
+
if (!tokens.includes('WBTC'))
|
|
1431
|
+
tokens.push('WBTC');
|
|
1432
|
+
const [tokenPrices, merklCampaigns] = yield Promise.all([
|
|
1433
|
+
getTokensPricesForPortfolio(tokens, provider, network),
|
|
1434
|
+
(0, merkl_1.getFluidMerklCampaigns)(network),
|
|
1435
|
+
]);
|
|
1436
|
+
const parsedMarketsData = yield Promise.all(vaultsData.map((vaultData) => __awaiter(void 0, void 0, void 0, function* () { return parseMarketData(provider, vaultData, network, tokenPrices); })));
|
|
1437
|
+
const marketsData = {};
|
|
1438
|
+
parsedMarketsData.forEach((marketData, i) => {
|
|
1439
|
+
if (!marketData)
|
|
1440
|
+
return;
|
|
1441
|
+
marketsData[versions[i].value] = (0, merkl_1.attachFluidMerklIncentives)(marketData, merklCampaigns);
|
|
1442
|
+
});
|
|
1443
|
+
return marketsData;
|
|
1444
|
+
});
|
|
1445
|
+
exports._getAllFluidMarketDataPortfolio = _getAllFluidMarketDataPortfolio;
|
|
1446
|
+
const getAllFluidMarketDataPortfolio = (provider, network) => __awaiter(void 0, void 0, void 0, function* () { return (0, exports._getAllFluidMarketDataPortfolio)((0, viem_1.getViemProvider)(provider, network, { batch: { multicall: true } }), network); });
|
|
1447
|
+
exports.getAllFluidMarketDataPortfolio = getAllFluidMarketDataPortfolio;
|
package/cjs/maker/index.d.ts
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import { Client, PublicClient } from 'viem';
|
|
2
2
|
import { Blockish, EthAddress, EthereumProvider, NetworkNumber, PositionBalances } from '../types/common';
|
|
3
|
-
import { CdpData, CdpInfo } from '../types';
|
|
3
|
+
import { CdpData, CdpInfo, IlkInfo } from '../types';
|
|
4
4
|
export declare const _getMakerAccountBalances: (provider: PublicClient, network: NetworkNumber, block: Blockish, addressMapping: boolean, cdpId: string, _managerAddress?: EthAddress) => Promise<PositionBalances>;
|
|
5
5
|
export declare const getMakerAccountBalances: (provider: EthereumProvider, network: NetworkNumber, block: Blockish, addressMapping: boolean, cdpId: string, _managerAddress?: EthAddress) => Promise<PositionBalances>;
|
|
6
6
|
export declare const _getUserCdps: (provider: Client, network: NetworkNumber, userAddress: EthAddress) => Promise<CdpInfo[]>;
|
|
7
7
|
export declare const getUserCdps: (provider: EthereumProvider, network: NetworkNumber, userAddress: EthAddress) => Promise<CdpInfo[]>;
|
|
8
|
-
export declare const
|
|
8
|
+
export declare const _getMakerIlksData: (provider: Client, network: NetworkNumber, ilkLabels: string[]) => Promise<Record<string, IlkInfo>>;
|
|
9
|
+
export declare const getMakerIlksData: (provider: EthereumProvider, network: NetworkNumber, ilkLabels: string[]) => Promise<Record<string, IlkInfo>>;
|
|
10
|
+
/**
|
|
11
|
+
* @param ilkInfo optional precomputed ilk data (from `_getMakerIlksData`); when provided the per-ilk reads are skipped
|
|
12
|
+
*/
|
|
13
|
+
export declare const _getMakerCdpData: (provider: Client, network: NetworkNumber, cdp: CdpInfo, ilkInfo?: IlkInfo) => Promise<CdpData>;
|
|
9
14
|
export declare const getMakerCdpData: (provider: EthereumProvider, network: NetworkNumber, cdp: CdpInfo) => Promise<CdpData>;
|
package/cjs/maker/index.js
CHANGED
|
@@ -12,7 +12,7 @@ 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.getMakerCdpData = exports._getMakerCdpData = exports.getUserCdps = exports._getUserCdps = exports.getMakerAccountBalances = exports._getMakerAccountBalances = void 0;
|
|
15
|
+
exports.getMakerCdpData = exports._getMakerCdpData = exports.getMakerIlksData = exports._getMakerIlksData = exports.getUserCdps = exports._getUserCdps = exports.getMakerAccountBalances = exports._getMakerAccountBalances = void 0;
|
|
16
16
|
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
17
17
|
const tokens_1 = require("@defisaver/tokens");
|
|
18
18
|
const contracts_1 = require("../contracts");
|
|
@@ -90,22 +90,39 @@ const _getUserCdps = (provider, network, userAddress) => __awaiter(void 0, void
|
|
|
90
90
|
exports._getUserCdps = _getUserCdps;
|
|
91
91
|
const getUserCdps = (provider, network, userAddress) => __awaiter(void 0, void 0, void 0, function* () { return (0, exports._getUserCdps)((0, viem_1.getViemProvider)(provider, network), network, userAddress); });
|
|
92
92
|
exports.getUserCdps = getUserCdps;
|
|
93
|
-
const
|
|
93
|
+
const _getMakerIlksData = (provider, network, ilkLabels) => __awaiter(void 0, void 0, void 0, function* () {
|
|
94
94
|
const vatContract = (0, contracts_1.McdVatContractViem)(provider, network);
|
|
95
95
|
const spotterContract = (0, contracts_1.McdSpotterContractViem)(provider, network);
|
|
96
96
|
const dogContract = (0, contracts_1.McdDogContractViem)(provider, network);
|
|
97
97
|
const jugContract = (0, contracts_1.McdJugContractViem)(provider, network);
|
|
98
|
-
const
|
|
98
|
+
const par = yield spotterContract.read.par();
|
|
99
|
+
const ilksInfo = yield Promise.all(ilkLabels.map((ilkLabel) => __awaiter(void 0, void 0, void 0, function* () {
|
|
100
|
+
const ilk = (0, tokens_1.stringToBytes)(ilkLabel);
|
|
101
|
+
const [[_, mat], [artGlobal, rate, spot, line], [duty], futureRate, chop,] = yield Promise.all([
|
|
102
|
+
spotterContract.read.ilks([ilk]),
|
|
103
|
+
vatContract.read.ilks([ilk]),
|
|
104
|
+
jugContract.read.ilks([ilk]),
|
|
105
|
+
jugContract.read.drip([ilk]),
|
|
106
|
+
dogContract.read.chop([ilk]),
|
|
107
|
+
]);
|
|
108
|
+
return (0, makerHelpers_1.parseCollateralInfo)(ilk, par.toString(), mat.toString(), artGlobal.toString(), rate.toString(), spot.toString(), line.toString(), duty.toString(), futureRate.toString(), chop.toString());
|
|
109
|
+
})));
|
|
110
|
+
return Object.fromEntries(ilksInfo.map((ilkInfo) => [ilkInfo.ilkLabel, ilkInfo]));
|
|
111
|
+
});
|
|
112
|
+
exports._getMakerIlksData = _getMakerIlksData;
|
|
113
|
+
const getMakerIlksData = (provider, network, ilkLabels) => __awaiter(void 0, void 0, void 0, function* () { return (0, exports._getMakerIlksData)((0, viem_1.getViemProvider)(provider, network, { batch: { multicall: true } }), network, ilkLabels); });
|
|
114
|
+
exports.getMakerIlksData = getMakerIlksData;
|
|
115
|
+
/**
|
|
116
|
+
* @param ilkInfo optional precomputed ilk data (from `_getMakerIlksData`); when provided the per-ilk reads are skipped
|
|
117
|
+
*/
|
|
118
|
+
const _getMakerCdpData = (provider, network, cdp, ilkInfo) => __awaiter(void 0, void 0, void 0, function* () {
|
|
119
|
+
const vatContract = (0, contracts_1.McdVatContractViem)(provider, network);
|
|
120
|
+
const [[ink, art], coll, fetchedIlkInfo,] = yield Promise.all([
|
|
99
121
|
vatContract.read.urns([cdp.ilk, cdp.urn]),
|
|
100
122
|
vatContract.read.gem([cdp.ilk, cdp.urn]),
|
|
101
|
-
|
|
102
|
-
spotterContract.read.ilks([cdp.ilk]),
|
|
103
|
-
vatContract.read.ilks([cdp.ilk]),
|
|
104
|
-
jugContract.read.ilks([cdp.ilk]),
|
|
105
|
-
jugContract.read.drip([cdp.ilk]),
|
|
106
|
-
dogContract.read.chop([cdp.ilk]),
|
|
123
|
+
ilkInfo || (0, exports._getMakerIlksData)(provider, network, [cdp.ilkLabel]).then((ilks) => ilks[cdp.ilkLabel]),
|
|
107
124
|
]);
|
|
108
|
-
const collInfo =
|
|
125
|
+
const collInfo = fetchedIlkInfo;
|
|
109
126
|
const collateral = (0, tokens_1.assetAmountInEth)(ink.toString(), `MCD-${cdp.asset}`);
|
|
110
127
|
const collateralUsd = new decimal_js_1.default(collateral).mul(collInfo.assetPrice).toString();
|
|
111
128
|
const debt = new decimal_js_1.default(art).times(collInfo.currentRate).div(1e27).floor()
|
package/cjs/markets/index.d.ts
CHANGED
|
@@ -8,3 +8,4 @@ export { LlamaLendMarkets } from './llamaLend';
|
|
|
8
8
|
export { LiquityV2Markets, findLiquityV2MarketByAddress } from './liquityV2';
|
|
9
9
|
export { FluidMarkets, getFluidVersionsDataForNetwork, getFluidMarketInfoById, getFTokenAddress, getFluidMarketInfoByAddress, } from './fluid';
|
|
10
10
|
export { AaveV4Spokes, findAaveV4SpokeByAddress } from './aaveV4';
|
|
11
|
+
export { MakerActiveIlks } from './maker';
|
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.findLiquityV2MarketByAddress = exports.LiquityV2Markets = exports.LlamaLendMarkets = exports.morphoMidnightMarketCollateralParams = exports.isTenorMidnightMarket = 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;
|
|
3
|
+
exports.MakerActiveIlks = exports.findAaveV4SpokeByAddress = exports.AaveV4Spokes = exports.getFluidMarketInfoByAddress = exports.getFTokenAddress = exports.getFluidMarketInfoById = exports.getFluidVersionsDataForNetwork = exports.FluidMarkets = exports.findLiquityV2MarketByAddress = exports.LiquityV2Markets = exports.LlamaLendMarkets = exports.morphoMidnightMarketCollateralParams = exports.isTenorMidnightMarket = 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; } });
|
|
@@ -41,3 +41,5 @@ Object.defineProperty(exports, "getFluidMarketInfoByAddress", { enumerable: true
|
|
|
41
41
|
var aaveV4_1 = require("./aaveV4");
|
|
42
42
|
Object.defineProperty(exports, "AaveV4Spokes", { enumerable: true, get: function () { return aaveV4_1.AaveV4Spokes; } });
|
|
43
43
|
Object.defineProperty(exports, "findAaveV4SpokeByAddress", { enumerable: true, get: function () { return aaveV4_1.findAaveV4SpokeByAddress; } });
|
|
44
|
+
var maker_1 = require("./maker");
|
|
45
|
+
Object.defineProperty(exports, "MakerActiveIlks", { enumerable: true, get: function () { return maker_1.MakerActiveIlks; } });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const MakerActiveIlks: string[];
|