@defisaver/positions-sdk 2.1.13-dev-plasma-fluid → 2.1.13-dev-plasma-fluid2
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.js +29 -16
- package/cjs/portfolio/index.js +4 -1
- package/esm/fluid/index.js +29 -16
- package/esm/portfolio/index.js +4 -1
- package/package.json +1 -1
- package/src/fluid/index.ts +29 -17
- package/src/portfolio/index.ts +3 -1
package/cjs/fluid/index.js
CHANGED
|
@@ -235,8 +235,10 @@ const getTradingApy = (poolAddress) => __awaiter(void 0, void 0, void 0, functio
|
|
|
235
235
|
});
|
|
236
236
|
const parseT1MarketData = (provider_1, data_1, network_1, ...args_1) => __awaiter(void 0, [provider_1, data_1, network_1, ...args_1], void 0, function* (provider, data, network, tokenPrices = null) {
|
|
237
237
|
var _a, _b;
|
|
238
|
-
const
|
|
239
|
-
const
|
|
238
|
+
const collAssetContract = (0, tokens_1.getAssetInfoByAddress)(data.supplyToken0, network);
|
|
239
|
+
const collAsset = (0, tokens_1.getAssetInfo)((0, utils_1.getNativeAssetFromWrapped)(collAssetContract.symbol), network);
|
|
240
|
+
const debtAssetContract = (0, tokens_1.getAssetInfoByAddress)(data.borrowToken0, network);
|
|
241
|
+
const debtAsset = (0, tokens_1.getAssetInfo)((0, utils_1.getNativeAssetFromWrapped)(debtAssetContract.symbol), network);
|
|
240
242
|
const supplyRate = new decimal_js_1.default(data.supplyRateVault).div(100).toString();
|
|
241
243
|
const borrowRate = new decimal_js_1.default(data.borrowRateVault).div(100).toString();
|
|
242
244
|
const oracleScaleFactor = new decimal_js_1.default(27).add(debtAsset.decimals).sub(collAsset.decimals).toString();
|
|
@@ -247,7 +249,7 @@ const parseT1MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
247
249
|
debtPriceParsed = tokenPrices[debtAsset.symbol] || '0';
|
|
248
250
|
}
|
|
249
251
|
else {
|
|
250
|
-
debtPriceParsed = yield getTokenPriceFromChainlink(
|
|
252
|
+
debtPriceParsed = yield getTokenPriceFromChainlink(debtAssetContract, network, provider);
|
|
251
253
|
}
|
|
252
254
|
const collAssetData = {
|
|
253
255
|
symbol: collAsset.symbol,
|
|
@@ -345,9 +347,12 @@ const parseT1MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
345
347
|
});
|
|
346
348
|
const parseT2MarketData = (provider_1, data_1, network_1, ...args_1) => __awaiter(void 0, [provider_1, data_1, network_1, ...args_1], void 0, function* (provider, data, network, tokenPrices = null) {
|
|
347
349
|
var _a, _b, _c;
|
|
348
|
-
const
|
|
349
|
-
const
|
|
350
|
-
const
|
|
350
|
+
const collAsset0Contract = (0, tokens_1.getAssetInfoByAddress)(data.supplyToken0, network);
|
|
351
|
+
const collAsset0 = (0, tokens_1.getAssetInfo)((0, utils_1.getNativeAssetFromWrapped)(collAsset0Contract.symbol), network);
|
|
352
|
+
const collAsset1Contract = (0, tokens_1.getAssetInfoByAddress)(data.supplyToken1, network);
|
|
353
|
+
const collAsset1 = (0, tokens_1.getAssetInfo)((0, utils_1.getNativeAssetFromWrapped)(collAsset1Contract.symbol), network);
|
|
354
|
+
const debtAssetContract = (0, tokens_1.getAssetInfoByAddress)(data.borrowToken0, network);
|
|
355
|
+
const debtAsset = (0, tokens_1.getAssetInfo)((0, utils_1.getNativeAssetFromWrapped)(debtAssetContract.symbol), network);
|
|
351
356
|
// 18 because collateral is represented in shares for which they use 18 decimals
|
|
352
357
|
const oracleScaleFactor = new decimal_js_1.default(27).add(debtAsset.decimals).sub(18).toString();
|
|
353
358
|
const oracleScale = new decimal_js_1.default(10).pow(oracleScaleFactor).toString();
|
|
@@ -357,7 +362,7 @@ const parseT2MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
357
362
|
prices = tokenPrices;
|
|
358
363
|
}
|
|
359
364
|
else {
|
|
360
|
-
prices = yield getChainLinkPricesForTokens([
|
|
365
|
+
prices = yield getChainLinkPricesForTokens([collAsset0Contract.address, collAsset1Contract.address, debtAssetContract.address], network, provider);
|
|
361
366
|
}
|
|
362
367
|
const { supplyDexFee, totalSupplyShares, supplyRate1, totalSupplyToken1, token0PerSupplyShare, token1PerSupplyShare, totalSupplyToken0, maxSupplyShares, withdrawableToken0, withdrawable0, withdrawableToken1, withdrawable1, supplyRate0, utilizationSupply0, utilizationSupply1, withdrawableShares, reservesSupplyToken0, reservesSupplyToken1, } = (0, fluidHelpers_1.parseDexSupplyData)(data.dexSupplyData, collAsset0.symbol, collAsset1.symbol);
|
|
363
368
|
const collFirstAssetData = {
|
|
@@ -498,9 +503,12 @@ const parseT2MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
498
503
|
});
|
|
499
504
|
const parseT3MarketData = (provider_1, data_1, network_1, ...args_1) => __awaiter(void 0, [provider_1, data_1, network_1, ...args_1], void 0, function* (provider, data, network, tokenPrices = null) {
|
|
500
505
|
var _a, _b, _c, _d;
|
|
501
|
-
const
|
|
502
|
-
const
|
|
503
|
-
const
|
|
506
|
+
const collAssetContract = (0, tokens_1.getAssetInfoByAddress)(data.supplyToken0, network);
|
|
507
|
+
const collAsset = (0, tokens_1.getAssetInfo)((0, utils_1.getNativeAssetFromWrapped)(collAssetContract.symbol), network);
|
|
508
|
+
const debtAsset0Contract = (0, tokens_1.getAssetInfoByAddress)(data.borrowToken0, network);
|
|
509
|
+
const debtAsset0 = (0, tokens_1.getAssetInfo)((0, utils_1.getNativeAssetFromWrapped)(debtAsset0Contract.symbol), network);
|
|
510
|
+
const debtAsset1Contract = (0, tokens_1.getAssetInfoByAddress)(data.borrowToken1, network);
|
|
511
|
+
const debtAsset1 = (0, tokens_1.getAssetInfo)((0, utils_1.getNativeAssetFromWrapped)(debtAsset1Contract.symbol), network);
|
|
504
512
|
const { borrowableShares, maxBorrowShares, borrowDexFee, utilizationBorrow0, utilizationBorrow1, borrowable0, borrowable1, borrowRate0, borrowRate1, totalBorrowShares, token0PerBorrowShare, token1PerBorrowShare, borrowableToken0, borrowableToken1, totalBorrowToken0, totalBorrowToken1, reservesBorrowToken0, reservesBorrowToken1, } = (0, fluidHelpers_1.parseDexBorrowData)(data.dexBorrowData, debtAsset0.symbol, debtAsset1.symbol);
|
|
505
513
|
// 18 because debt is represented in shares for which they use 18 decimals
|
|
506
514
|
const oracleScaleFactor = new decimal_js_1.default(27).add(18).sub(collAsset.decimals).toString();
|
|
@@ -511,7 +519,7 @@ const parseT3MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
511
519
|
prices = tokenPrices;
|
|
512
520
|
}
|
|
513
521
|
else {
|
|
514
|
-
prices = yield getChainLinkPricesForTokens([
|
|
522
|
+
prices = yield getChainLinkPricesForTokens([collAssetContract.address, debtAsset0Contract.address, debtAsset1Contract.address], network, provider);
|
|
515
523
|
}
|
|
516
524
|
const supplyRate = new decimal_js_1.default(data.supplyRateVault).div(100).toString();
|
|
517
525
|
const collAssetData = {
|
|
@@ -647,10 +655,14 @@ const parseT3MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
647
655
|
});
|
|
648
656
|
const parseT4MarketData = (provider_1, data_1, network_1, ...args_1) => __awaiter(void 0, [provider_1, data_1, network_1, ...args_1], void 0, function* (provider, data, network, tokenPrices = null) {
|
|
649
657
|
var _a, _b, _c, _d;
|
|
650
|
-
const
|
|
651
|
-
const
|
|
652
|
-
const
|
|
653
|
-
const
|
|
658
|
+
const collAsset0Contract = (0, tokens_1.getAssetInfoByAddress)(data.supplyToken0, network);
|
|
659
|
+
const collAsset0 = (0, tokens_1.getAssetInfo)((0, utils_1.getNativeAssetFromWrapped)(collAsset0Contract.symbol), network);
|
|
660
|
+
const collAsset1Contract = (0, tokens_1.getAssetInfoByAddress)(data.supplyToken1, network);
|
|
661
|
+
const collAsset1 = (0, tokens_1.getAssetInfo)((0, utils_1.getNativeAssetFromWrapped)(collAsset1Contract.symbol), network);
|
|
662
|
+
const debtAsset0Contract = (0, tokens_1.getAssetInfoByAddress)(data.borrowToken0, network);
|
|
663
|
+
const debtAsset0 = (0, tokens_1.getAssetInfo)((0, utils_1.getNativeAssetFromWrapped)(debtAsset0Contract.symbol), network);
|
|
664
|
+
const debtAsset1Contract = (0, tokens_1.getAssetInfoByAddress)(data.borrowToken1, network);
|
|
665
|
+
const debtAsset1 = (0, tokens_1.getAssetInfo)((0, utils_1.getNativeAssetFromWrapped)(debtAsset1Contract.symbol), network);
|
|
654
666
|
const quoteToken = (0, tokens_1.getAssetInfoByAddress)(data.dexBorrowData.quoteToken, network);
|
|
655
667
|
// 27 - 18 + 18
|
|
656
668
|
const oracleScaleFactor = new decimal_js_1.default(27).toString();
|
|
@@ -661,7 +673,7 @@ const parseT4MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
661
673
|
prices = tokenPrices;
|
|
662
674
|
}
|
|
663
675
|
else {
|
|
664
|
-
prices = yield getChainLinkPricesForTokens([
|
|
676
|
+
prices = yield getChainLinkPricesForTokens([collAsset0Contract.address, collAsset1Contract.address, debtAsset0Contract.address, debtAsset1Contract.address], network, provider);
|
|
665
677
|
}
|
|
666
678
|
const { supplyDexFee, totalSupplyShares, supplyRate1, token0PerSupplyShare, token1PerSupplyShare, totalSupplyToken0, totalSupplyToken1, maxSupplyShares, withdrawableToken0, withdrawable0, withdrawableToken1, withdrawable1, supplyRate0, utilizationSupply0, utilizationSupply1, withdrawableShares, reservesSupplyToken0, reservesSupplyToken1, } = (0, fluidHelpers_1.parseDexSupplyData)(data.dexSupplyData, collAsset0.symbol, collAsset1.symbol);
|
|
667
679
|
const { borrowableShares, maxBorrowShares, borrowDexFee, utilizationBorrow0, utilizationBorrow1, borrowable0, borrowable1, borrowRate0, borrowRate1, totalBorrowShares, token0PerBorrowShare, token1PerBorrowShare, borrowableToken0, borrowableToken1, totalBorrowToken0, totalBorrowToken1, quoteTokensPerShare, reservesBorrowToken0, reservesBorrowToken1, } = (0, fluidHelpers_1.parseDexBorrowData)(data.dexBorrowData, debtAsset0.symbol, debtAsset1.symbol);
|
|
@@ -1194,6 +1206,7 @@ const _getUserPositions = (provider, network, user) => __awaiter(void 0, void 0,
|
|
|
1194
1206
|
const view = (0, contracts_1.FluidViewContractViem)(provider, network);
|
|
1195
1207
|
const data = yield view.read.getUserPositions([user]);
|
|
1196
1208
|
const parsedMarketData = yield Promise.all(data[1].map((vaultData) => __awaiter(void 0, void 0, void 0, function* () { return parseMarketData(provider, vaultData, network); })));
|
|
1209
|
+
console.log(parsedMarketData);
|
|
1197
1210
|
const userData = data[0].map((position, i) => (Object.assign({}, parseUserData(position, parsedMarketData[i]))));
|
|
1198
1211
|
return parsedMarketData.map((market, i) => ({
|
|
1199
1212
|
marketData: market,
|
package/cjs/portfolio/index.js
CHANGED
|
@@ -42,7 +42,8 @@ const king_1 = require("../claiming/king");
|
|
|
42
42
|
function getPortfolioData(provider, network, defaultProvider, addresses, summerFiAddresses) {
|
|
43
43
|
return __awaiter(this, void 0, void 0, function* () {
|
|
44
44
|
const isMainnet = network === common_1.NetworkNumber.Eth;
|
|
45
|
-
const isFluidSupported = [common_1.NetworkNumber.Eth, common_1.NetworkNumber.Arb, common_1.NetworkNumber.Base].includes(network);
|
|
45
|
+
const isFluidSupported = [common_1.NetworkNumber.Eth, common_1.NetworkNumber.Arb, common_1.NetworkNumber.Base, common_1.NetworkNumber.Plasma].includes(network);
|
|
46
|
+
const isMorphoRewardsSupported = [common_1.NetworkNumber.Eth, common_1.NetworkNumber.Base].includes(network);
|
|
46
47
|
const morphoMarkets = Object.values((0, markets_1.MorphoBlueMarkets)(network)).filter((market) => market.chainIds.includes(network));
|
|
47
48
|
const compoundV3Markets = Object.values((0, markets_1.CompoundMarkets)(network)).filter((market) => market.chainIds.includes(network) && market.value !== types_1.CompoundVersions.CompoundV2);
|
|
48
49
|
const sparkMarkets = Object.values((0, markets_1.SparkMarkets)(network)).filter((market) => market.chainIds.includes(network));
|
|
@@ -344,6 +345,8 @@ function getPortfolioData(provider, network, defaultProvider, addresses, summerF
|
|
|
344
345
|
}))).flat(),
|
|
345
346
|
// Batch Morpho Blue rewards
|
|
346
347
|
(() => __awaiter(this, void 0, void 0, function* () {
|
|
348
|
+
if (!isMorphoRewardsSupported)
|
|
349
|
+
return;
|
|
347
350
|
try {
|
|
348
351
|
const morphoRewards = yield (0, morphoBlue_2.fetchMorphoBlueRewards)(client, network, addresses);
|
|
349
352
|
for (const address of addresses) {
|
package/esm/fluid/index.js
CHANGED
|
@@ -229,8 +229,10 @@ const getTradingApy = (poolAddress) => __awaiter(void 0, void 0, void 0, functio
|
|
|
229
229
|
});
|
|
230
230
|
const parseT1MarketData = (provider_1, data_1, network_1, ...args_1) => __awaiter(void 0, [provider_1, data_1, network_1, ...args_1], void 0, function* (provider, data, network, tokenPrices = null) {
|
|
231
231
|
var _a, _b;
|
|
232
|
-
const
|
|
233
|
-
const
|
|
232
|
+
const collAssetContract = getAssetInfoByAddress(data.supplyToken0, network);
|
|
233
|
+
const collAsset = getAssetInfo(getNativeAssetFromWrapped(collAssetContract.symbol), network);
|
|
234
|
+
const debtAssetContract = getAssetInfoByAddress(data.borrowToken0, network);
|
|
235
|
+
const debtAsset = getAssetInfo(getNativeAssetFromWrapped(debtAssetContract.symbol), network);
|
|
234
236
|
const supplyRate = new Dec(data.supplyRateVault).div(100).toString();
|
|
235
237
|
const borrowRate = new Dec(data.borrowRateVault).div(100).toString();
|
|
236
238
|
const oracleScaleFactor = new Dec(27).add(debtAsset.decimals).sub(collAsset.decimals).toString();
|
|
@@ -241,7 +243,7 @@ const parseT1MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
241
243
|
debtPriceParsed = tokenPrices[debtAsset.symbol] || '0';
|
|
242
244
|
}
|
|
243
245
|
else {
|
|
244
|
-
debtPriceParsed = yield getTokenPriceFromChainlink(
|
|
246
|
+
debtPriceParsed = yield getTokenPriceFromChainlink(debtAssetContract, network, provider);
|
|
245
247
|
}
|
|
246
248
|
const collAssetData = {
|
|
247
249
|
symbol: collAsset.symbol,
|
|
@@ -339,9 +341,12 @@ const parseT1MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
339
341
|
});
|
|
340
342
|
const parseT2MarketData = (provider_1, data_1, network_1, ...args_1) => __awaiter(void 0, [provider_1, data_1, network_1, ...args_1], void 0, function* (provider, data, network, tokenPrices = null) {
|
|
341
343
|
var _a, _b, _c;
|
|
342
|
-
const
|
|
343
|
-
const
|
|
344
|
-
const
|
|
344
|
+
const collAsset0Contract = getAssetInfoByAddress(data.supplyToken0, network);
|
|
345
|
+
const collAsset0 = getAssetInfo(getNativeAssetFromWrapped(collAsset0Contract.symbol), network);
|
|
346
|
+
const collAsset1Contract = getAssetInfoByAddress(data.supplyToken1, network);
|
|
347
|
+
const collAsset1 = getAssetInfo(getNativeAssetFromWrapped(collAsset1Contract.symbol), network);
|
|
348
|
+
const debtAssetContract = getAssetInfoByAddress(data.borrowToken0, network);
|
|
349
|
+
const debtAsset = getAssetInfo(getNativeAssetFromWrapped(debtAssetContract.symbol), network);
|
|
345
350
|
// 18 because collateral is represented in shares for which they use 18 decimals
|
|
346
351
|
const oracleScaleFactor = new Dec(27).add(debtAsset.decimals).sub(18).toString();
|
|
347
352
|
const oracleScale = new Dec(10).pow(oracleScaleFactor).toString();
|
|
@@ -351,7 +356,7 @@ const parseT2MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
351
356
|
prices = tokenPrices;
|
|
352
357
|
}
|
|
353
358
|
else {
|
|
354
|
-
prices = yield getChainLinkPricesForTokens([
|
|
359
|
+
prices = yield getChainLinkPricesForTokens([collAsset0Contract.address, collAsset1Contract.address, debtAssetContract.address], network, provider);
|
|
355
360
|
}
|
|
356
361
|
const { supplyDexFee, totalSupplyShares, supplyRate1, totalSupplyToken1, token0PerSupplyShare, token1PerSupplyShare, totalSupplyToken0, maxSupplyShares, withdrawableToken0, withdrawable0, withdrawableToken1, withdrawable1, supplyRate0, utilizationSupply0, utilizationSupply1, withdrawableShares, reservesSupplyToken0, reservesSupplyToken1, } = parseDexSupplyData(data.dexSupplyData, collAsset0.symbol, collAsset1.symbol);
|
|
357
362
|
const collFirstAssetData = {
|
|
@@ -492,9 +497,12 @@ const parseT2MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
492
497
|
});
|
|
493
498
|
const parseT3MarketData = (provider_1, data_1, network_1, ...args_1) => __awaiter(void 0, [provider_1, data_1, network_1, ...args_1], void 0, function* (provider, data, network, tokenPrices = null) {
|
|
494
499
|
var _a, _b, _c, _d;
|
|
495
|
-
const
|
|
496
|
-
const
|
|
497
|
-
const
|
|
500
|
+
const collAssetContract = getAssetInfoByAddress(data.supplyToken0, network);
|
|
501
|
+
const collAsset = getAssetInfo(getNativeAssetFromWrapped(collAssetContract.symbol), network);
|
|
502
|
+
const debtAsset0Contract = getAssetInfoByAddress(data.borrowToken0, network);
|
|
503
|
+
const debtAsset0 = getAssetInfo(getNativeAssetFromWrapped(debtAsset0Contract.symbol), network);
|
|
504
|
+
const debtAsset1Contract = getAssetInfoByAddress(data.borrowToken1, network);
|
|
505
|
+
const debtAsset1 = getAssetInfo(getNativeAssetFromWrapped(debtAsset1Contract.symbol), network);
|
|
498
506
|
const { borrowableShares, maxBorrowShares, borrowDexFee, utilizationBorrow0, utilizationBorrow1, borrowable0, borrowable1, borrowRate0, borrowRate1, totalBorrowShares, token0PerBorrowShare, token1PerBorrowShare, borrowableToken0, borrowableToken1, totalBorrowToken0, totalBorrowToken1, reservesBorrowToken0, reservesBorrowToken1, } = parseDexBorrowData(data.dexBorrowData, debtAsset0.symbol, debtAsset1.symbol);
|
|
499
507
|
// 18 because debt is represented in shares for which they use 18 decimals
|
|
500
508
|
const oracleScaleFactor = new Dec(27).add(18).sub(collAsset.decimals).toString();
|
|
@@ -505,7 +513,7 @@ const parseT3MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
505
513
|
prices = tokenPrices;
|
|
506
514
|
}
|
|
507
515
|
else {
|
|
508
|
-
prices = yield getChainLinkPricesForTokens([
|
|
516
|
+
prices = yield getChainLinkPricesForTokens([collAssetContract.address, debtAsset0Contract.address, debtAsset1Contract.address], network, provider);
|
|
509
517
|
}
|
|
510
518
|
const supplyRate = new Dec(data.supplyRateVault).div(100).toString();
|
|
511
519
|
const collAssetData = {
|
|
@@ -641,10 +649,14 @@ const parseT3MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
641
649
|
});
|
|
642
650
|
const parseT4MarketData = (provider_1, data_1, network_1, ...args_1) => __awaiter(void 0, [provider_1, data_1, network_1, ...args_1], void 0, function* (provider, data, network, tokenPrices = null) {
|
|
643
651
|
var _a, _b, _c, _d;
|
|
644
|
-
const
|
|
645
|
-
const
|
|
646
|
-
const
|
|
647
|
-
const
|
|
652
|
+
const collAsset0Contract = getAssetInfoByAddress(data.supplyToken0, network);
|
|
653
|
+
const collAsset0 = getAssetInfo(getNativeAssetFromWrapped(collAsset0Contract.symbol), network);
|
|
654
|
+
const collAsset1Contract = getAssetInfoByAddress(data.supplyToken1, network);
|
|
655
|
+
const collAsset1 = getAssetInfo(getNativeAssetFromWrapped(collAsset1Contract.symbol), network);
|
|
656
|
+
const debtAsset0Contract = getAssetInfoByAddress(data.borrowToken0, network);
|
|
657
|
+
const debtAsset0 = getAssetInfo(getNativeAssetFromWrapped(debtAsset0Contract.symbol), network);
|
|
658
|
+
const debtAsset1Contract = getAssetInfoByAddress(data.borrowToken1, network);
|
|
659
|
+
const debtAsset1 = getAssetInfo(getNativeAssetFromWrapped(debtAsset1Contract.symbol), network);
|
|
648
660
|
const quoteToken = getAssetInfoByAddress(data.dexBorrowData.quoteToken, network);
|
|
649
661
|
// 27 - 18 + 18
|
|
650
662
|
const oracleScaleFactor = new Dec(27).toString();
|
|
@@ -655,7 +667,7 @@ const parseT4MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
655
667
|
prices = tokenPrices;
|
|
656
668
|
}
|
|
657
669
|
else {
|
|
658
|
-
prices = yield getChainLinkPricesForTokens([
|
|
670
|
+
prices = yield getChainLinkPricesForTokens([collAsset0Contract.address, collAsset1Contract.address, debtAsset0Contract.address, debtAsset1Contract.address], network, provider);
|
|
659
671
|
}
|
|
660
672
|
const { supplyDexFee, totalSupplyShares, supplyRate1, token0PerSupplyShare, token1PerSupplyShare, totalSupplyToken0, totalSupplyToken1, maxSupplyShares, withdrawableToken0, withdrawable0, withdrawableToken1, withdrawable1, supplyRate0, utilizationSupply0, utilizationSupply1, withdrawableShares, reservesSupplyToken0, reservesSupplyToken1, } = parseDexSupplyData(data.dexSupplyData, collAsset0.symbol, collAsset1.symbol);
|
|
661
673
|
const { borrowableShares, maxBorrowShares, borrowDexFee, utilizationBorrow0, utilizationBorrow1, borrowable0, borrowable1, borrowRate0, borrowRate1, totalBorrowShares, token0PerBorrowShare, token1PerBorrowShare, borrowableToken0, borrowableToken1, totalBorrowToken0, totalBorrowToken1, quoteTokensPerShare, reservesBorrowToken0, reservesBorrowToken1, } = parseDexBorrowData(data.dexBorrowData, debtAsset0.symbol, debtAsset1.symbol);
|
|
@@ -1172,6 +1184,7 @@ export const _getUserPositions = (provider, network, user) => __awaiter(void 0,
|
|
|
1172
1184
|
const view = FluidViewContractViem(provider, network);
|
|
1173
1185
|
const data = yield view.read.getUserPositions([user]);
|
|
1174
1186
|
const parsedMarketData = yield Promise.all(data[1].map((vaultData) => __awaiter(void 0, void 0, void 0, function* () { return parseMarketData(provider, vaultData, network); })));
|
|
1187
|
+
console.log(parsedMarketData);
|
|
1175
1188
|
const userData = data[0].map((position, i) => (Object.assign({}, parseUserData(position, parsedMarketData[i]))));
|
|
1176
1189
|
return parsedMarketData.map((market, i) => ({
|
|
1177
1190
|
marketData: market,
|
package/esm/portfolio/index.js
CHANGED
|
@@ -36,7 +36,8 @@ import { getKingRewards } from '../claiming/king';
|
|
|
36
36
|
export function getPortfolioData(provider, network, defaultProvider, addresses, summerFiAddresses) {
|
|
37
37
|
return __awaiter(this, void 0, void 0, function* () {
|
|
38
38
|
const isMainnet = network === NetworkNumber.Eth;
|
|
39
|
-
const isFluidSupported = [NetworkNumber.Eth, NetworkNumber.Arb, NetworkNumber.Base].includes(network);
|
|
39
|
+
const isFluidSupported = [NetworkNumber.Eth, NetworkNumber.Arb, NetworkNumber.Base, NetworkNumber.Plasma].includes(network);
|
|
40
|
+
const isMorphoRewardsSupported = [NetworkNumber.Eth, NetworkNumber.Base].includes(network);
|
|
40
41
|
const morphoMarkets = Object.values(MorphoBlueMarkets(network)).filter((market) => market.chainIds.includes(network));
|
|
41
42
|
const compoundV3Markets = Object.values(CompoundMarkets(network)).filter((market) => market.chainIds.includes(network) && market.value !== CompoundVersions.CompoundV2);
|
|
42
43
|
const sparkMarkets = Object.values(SparkMarkets(network)).filter((market) => market.chainIds.includes(network));
|
|
@@ -338,6 +339,8 @@ export function getPortfolioData(provider, network, defaultProvider, addresses,
|
|
|
338
339
|
}))).flat(),
|
|
339
340
|
// Batch Morpho Blue rewards
|
|
340
341
|
(() => __awaiter(this, void 0, void 0, function* () {
|
|
342
|
+
if (!isMorphoRewardsSupported)
|
|
343
|
+
return;
|
|
341
344
|
try {
|
|
342
345
|
const morphoRewards = yield fetchMorphoBlueRewards(client, network, addresses);
|
|
343
346
|
for (const address of addresses) {
|
package/package.json
CHANGED
package/src/fluid/index.ts
CHANGED
|
@@ -300,8 +300,10 @@ const getTradingApy = async (poolAddress: EthAddress) => {
|
|
|
300
300
|
};
|
|
301
301
|
|
|
302
302
|
const parseT1MarketData = async (provider: PublicClient, data: FluidVaultDataStructOutputStruct, network: NetworkNumber, tokenPrices: Record<string, string> | null = null) => {
|
|
303
|
-
const
|
|
304
|
-
const
|
|
303
|
+
const collAssetContract = getAssetInfoByAddress(data.supplyToken0, network);
|
|
304
|
+
const collAsset = getAssetInfo(getNativeAssetFromWrapped(collAssetContract.symbol), network);
|
|
305
|
+
const debtAssetContract = getAssetInfoByAddress(data.borrowToken0, network);
|
|
306
|
+
const debtAsset = getAssetInfo(getNativeAssetFromWrapped(debtAssetContract.symbol), network);
|
|
305
307
|
|
|
306
308
|
const supplyRate = new Dec(data.supplyRateVault).div(100).toString();
|
|
307
309
|
const borrowRate = new Dec(data.borrowRateVault).div(100).toString();
|
|
@@ -313,7 +315,7 @@ const parseT1MarketData = async (provider: PublicClient, data: FluidVaultDataStr
|
|
|
313
315
|
if (tokenPrices) {
|
|
314
316
|
debtPriceParsed = tokenPrices[debtAsset.symbol] || '0';
|
|
315
317
|
} else {
|
|
316
|
-
debtPriceParsed = await getTokenPriceFromChainlink(
|
|
318
|
+
debtPriceParsed = await getTokenPriceFromChainlink(debtAssetContract, network, provider);
|
|
317
319
|
}
|
|
318
320
|
|
|
319
321
|
const collAssetData: FluidAssetData = {
|
|
@@ -418,9 +420,12 @@ const parseT1MarketData = async (provider: PublicClient, data: FluidVaultDataStr
|
|
|
418
420
|
};
|
|
419
421
|
|
|
420
422
|
const parseT2MarketData = async (provider: PublicClient, data: FluidVaultDataStructOutputStruct, network: NetworkNumber, tokenPrices: Record<string, string> | null = null) => {
|
|
421
|
-
const
|
|
422
|
-
const
|
|
423
|
-
const
|
|
423
|
+
const collAsset0Contract = getAssetInfoByAddress(data.supplyToken0, network);
|
|
424
|
+
const collAsset0 = getAssetInfo(getNativeAssetFromWrapped(collAsset0Contract.symbol), network);
|
|
425
|
+
const collAsset1Contract = getAssetInfoByAddress(data.supplyToken1, network);
|
|
426
|
+
const collAsset1 = getAssetInfo(getNativeAssetFromWrapped(collAsset1Contract.symbol), network);
|
|
427
|
+
const debtAssetContract = getAssetInfoByAddress(data.borrowToken0, network);
|
|
428
|
+
const debtAsset = getAssetInfo(getNativeAssetFromWrapped(debtAssetContract.symbol), network);
|
|
424
429
|
|
|
425
430
|
// 18 because collateral is represented in shares for which they use 18 decimals
|
|
426
431
|
const oracleScaleFactor = new Dec(27).add(debtAsset.decimals).sub(18).toString();
|
|
@@ -431,7 +436,7 @@ const parseT2MarketData = async (provider: PublicClient, data: FluidVaultDataStr
|
|
|
431
436
|
if (tokenPrices) {
|
|
432
437
|
prices = tokenPrices;
|
|
433
438
|
} else {
|
|
434
|
-
prices = await getChainLinkPricesForTokens([
|
|
439
|
+
prices = await getChainLinkPricesForTokens([collAsset0Contract.address, collAsset1Contract.address, debtAssetContract.address], network, provider);
|
|
435
440
|
}
|
|
436
441
|
|
|
437
442
|
const {
|
|
@@ -608,9 +613,12 @@ const parseT2MarketData = async (provider: PublicClient, data: FluidVaultDataStr
|
|
|
608
613
|
};
|
|
609
614
|
|
|
610
615
|
const parseT3MarketData = async (provider: PublicClient, data: FluidVaultDataStructOutputStruct, network: NetworkNumber, tokenPrices: Record<string, string> | null = null) => {
|
|
611
|
-
const
|
|
612
|
-
const
|
|
613
|
-
const
|
|
616
|
+
const collAssetContract = getAssetInfoByAddress(data.supplyToken0, network);
|
|
617
|
+
const collAsset = getAssetInfo(getNativeAssetFromWrapped(collAssetContract.symbol), network);
|
|
618
|
+
const debtAsset0Contract = getAssetInfoByAddress(data.borrowToken0, network);
|
|
619
|
+
const debtAsset0 = getAssetInfo(getNativeAssetFromWrapped(debtAsset0Contract.symbol), network);
|
|
620
|
+
const debtAsset1Contract = getAssetInfoByAddress(data.borrowToken1, network);
|
|
621
|
+
const debtAsset1 = getAssetInfo(getNativeAssetFromWrapped(debtAsset1Contract.symbol), network);
|
|
614
622
|
|
|
615
623
|
const {
|
|
616
624
|
borrowableShares,
|
|
@@ -642,7 +650,7 @@ const parseT3MarketData = async (provider: PublicClient, data: FluidVaultDataStr
|
|
|
642
650
|
if (tokenPrices) {
|
|
643
651
|
prices = tokenPrices;
|
|
644
652
|
} else {
|
|
645
|
-
prices = await getChainLinkPricesForTokens([
|
|
653
|
+
prices = await getChainLinkPricesForTokens([collAssetContract.address, debtAsset0Contract.address, debtAsset1Contract.address], network, provider);
|
|
646
654
|
}
|
|
647
655
|
|
|
648
656
|
const supplyRate = new Dec(data.supplyRateVault).div(100).toString();
|
|
@@ -795,10 +803,14 @@ const parseT3MarketData = async (provider: PublicClient, data: FluidVaultDataStr
|
|
|
795
803
|
};
|
|
796
804
|
|
|
797
805
|
const parseT4MarketData = async (provider: PublicClient, data: FluidVaultDataStructOutputStruct, network: NetworkNumber, tokenPrices: Record<string, string> | null = null) => {
|
|
798
|
-
const
|
|
799
|
-
const
|
|
800
|
-
const
|
|
801
|
-
const
|
|
806
|
+
const collAsset0Contract = getAssetInfoByAddress(data.supplyToken0, network);
|
|
807
|
+
const collAsset0 = getAssetInfo(getNativeAssetFromWrapped(collAsset0Contract.symbol), network);
|
|
808
|
+
const collAsset1Contract = getAssetInfoByAddress(data.supplyToken1, network);
|
|
809
|
+
const collAsset1 = getAssetInfo(getNativeAssetFromWrapped(collAsset1Contract.symbol), network);
|
|
810
|
+
const debtAsset0Contract = getAssetInfoByAddress(data.borrowToken0, network);
|
|
811
|
+
const debtAsset0 = getAssetInfo(getNativeAssetFromWrapped(debtAsset0Contract.symbol), network);
|
|
812
|
+
const debtAsset1Contract = getAssetInfoByAddress(data.borrowToken1, network);
|
|
813
|
+
const debtAsset1 = getAssetInfo(getNativeAssetFromWrapped(debtAsset1Contract.symbol), network);
|
|
802
814
|
const quoteToken = getAssetInfoByAddress(data.dexBorrowData.quoteToken, network);
|
|
803
815
|
|
|
804
816
|
// 27 - 18 + 18
|
|
@@ -811,7 +823,7 @@ const parseT4MarketData = async (provider: PublicClient, data: FluidVaultDataStr
|
|
|
811
823
|
prices = tokenPrices;
|
|
812
824
|
} else {
|
|
813
825
|
prices = await getChainLinkPricesForTokens(
|
|
814
|
-
[
|
|
826
|
+
[collAsset0Contract.address, collAsset1Contract.address, debtAsset0Contract.address, debtAsset1Contract.address],
|
|
815
827
|
network, provider);
|
|
816
828
|
}
|
|
817
829
|
|
|
@@ -1579,7 +1591,7 @@ export const _getUserPositions = async (provider: PublicClient, network: Network
|
|
|
1579
1591
|
const data = await view.read.getUserPositions([user]);
|
|
1580
1592
|
|
|
1581
1593
|
const parsedMarketData = await Promise.all(data[1].map(async (vaultData) => parseMarketData(provider, vaultData, network)));
|
|
1582
|
-
|
|
1594
|
+
console.log(parsedMarketData);
|
|
1583
1595
|
const userData = data[0].map((position, i) => ({ ...parseUserData(position, parsedMarketData[i]) }));
|
|
1584
1596
|
|
|
1585
1597
|
return parsedMarketData.map((market, i) => ({
|
package/src/portfolio/index.ts
CHANGED
|
@@ -56,7 +56,8 @@ export async function getPortfolioData(provider: EthereumProvider, network: Netw
|
|
|
56
56
|
markets: any;
|
|
57
57
|
}> {
|
|
58
58
|
const isMainnet = network === NetworkNumber.Eth;
|
|
59
|
-
const isFluidSupported = [NetworkNumber.Eth, NetworkNumber.Arb, NetworkNumber.Base].includes(network);
|
|
59
|
+
const isFluidSupported = [NetworkNumber.Eth, NetworkNumber.Arb, NetworkNumber.Base, NetworkNumber.Plasma].includes(network);
|
|
60
|
+
const isMorphoRewardsSupported = [NetworkNumber.Eth, NetworkNumber.Base].includes(network);
|
|
60
61
|
|
|
61
62
|
const morphoMarkets = Object.values(MorphoBlueMarkets(network)).filter((market) => market.chainIds.includes(network));
|
|
62
63
|
const compoundV3Markets = Object.values(CompoundMarkets(network)).filter((market) => market.chainIds.includes(network) && market.value !== CompoundVersions.CompoundV2);
|
|
@@ -353,6 +354,7 @@ export async function getPortfolioData(provider: EthereumProvider, network: Netw
|
|
|
353
354
|
})).flat(),
|
|
354
355
|
// Batch Morpho Blue rewards
|
|
355
356
|
(async () => {
|
|
357
|
+
if (!isMorphoRewardsSupported) return;
|
|
356
358
|
try {
|
|
357
359
|
const morphoRewards = await fetchMorphoBlueRewards(client, network, addresses);
|
|
358
360
|
for (const address of addresses) {
|