@defisaver/positions-sdk 2.1.13-dev-plasma-fluid1 → 2.1.13-dev-plasma-fluid3
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 +39 -27
- package/cjs/portfolio/index.js +3 -0
- package/esm/fluid/index.js +39 -27
- package/esm/portfolio/index.js +3 -0
- package/package.json +1 -1
- package/src/fluid/index.ts +39 -27
- package/src/portfolio/index.ts +2 -0
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,13 +362,13 @@ 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 = {
|
|
364
369
|
symbol: collAsset0.symbol,
|
|
365
370
|
address: collAsset0.address,
|
|
366
|
-
price: prices[tokenPrices ? collAsset0.symbol :
|
|
371
|
+
price: prices[tokenPrices ? collAsset0.symbol : collAsset0Contract.address],
|
|
367
372
|
totalSupply: new decimal_js_1.default(totalSupplyShares).mul(token0PerSupplyShare).toString(),
|
|
368
373
|
canBeSupplied: true,
|
|
369
374
|
supplyRate: supplyRate0,
|
|
@@ -385,7 +390,7 @@ const parseT2MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
385
390
|
const collSecondAssetData = {
|
|
386
391
|
symbol: collAsset1.symbol,
|
|
387
392
|
address: collAsset1.address,
|
|
388
|
-
price: prices[tokenPrices ? collAsset1.symbol :
|
|
393
|
+
price: prices[tokenPrices ? collAsset1.symbol : collAsset1Contract.address],
|
|
389
394
|
totalSupply: new decimal_js_1.default(totalSupplyShares).mul(token1PerSupplyShare).toString(),
|
|
390
395
|
canBeSupplied: true,
|
|
391
396
|
supplyRate: supplyRate1,
|
|
@@ -410,7 +415,7 @@ const parseT2MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
410
415
|
const borrowRate = new decimal_js_1.default(data.borrowRateVault).div(100).toString();
|
|
411
416
|
const debtAssetData = {
|
|
412
417
|
symbol: debtAsset.symbol,
|
|
413
|
-
price: prices[tokenPrices ? debtAsset.symbol :
|
|
418
|
+
price: prices[tokenPrices ? debtAsset.symbol : debtAssetContract.address],
|
|
414
419
|
address: debtAsset.address,
|
|
415
420
|
totalBorrow: data.totalBorrowVault.toString(),
|
|
416
421
|
canBeBorrowed: true,
|
|
@@ -439,7 +444,7 @@ const parseT2MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
439
444
|
const liquidationMaxLimit = new decimal_js_1.default(data.liquidationMaxLimit).div(100).toString();
|
|
440
445
|
const liqFactor = new decimal_js_1.default(data.liquidationThreshold).div(10000).toString();
|
|
441
446
|
const totalSupplySharesInVault = (0, tokens_1.assetAmountInEth)(data.totalSupplyVault.toString());
|
|
442
|
-
const collSharePrice = new decimal_js_1.default(oraclePrice).mul(prices[tokenPrices ? debtAsset.symbol :
|
|
447
|
+
const collSharePrice = new decimal_js_1.default(oraclePrice).mul(prices[tokenPrices ? debtAsset.symbol : debtAssetContract.address]).toString();
|
|
443
448
|
const totalSupplyVaultUsd = new decimal_js_1.default(totalSupplySharesInVault).mul(collSharePrice).toString();
|
|
444
449
|
const maxSupplySharesUsd = new decimal_js_1.default(maxSupplyShares).mul(collSharePrice).toString();
|
|
445
450
|
const withdrawableUSD = new decimal_js_1.default(withdrawableShares).mul(collSharePrice).toString();
|
|
@@ -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,13 +519,13 @@ 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 = {
|
|
518
526
|
symbol: collAsset.symbol,
|
|
519
527
|
address: collAsset.address,
|
|
520
|
-
price: prices[tokenPrices ? collAsset.symbol :
|
|
528
|
+
price: prices[tokenPrices ? collAsset.symbol : collAssetContract.address],
|
|
521
529
|
totalSupply: data.totalSupplyVault.toString(),
|
|
522
530
|
canBeSupplied: true,
|
|
523
531
|
supplyRate,
|
|
@@ -536,7 +544,7 @@ const parseT3MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
536
544
|
const debtAsset0Data = {
|
|
537
545
|
symbol: debtAsset0.symbol,
|
|
538
546
|
address: debtAsset0.address,
|
|
539
|
-
price: prices[tokenPrices ? debtAsset0.symbol :
|
|
547
|
+
price: prices[tokenPrices ? debtAsset0.symbol : debtAsset0Contract.address],
|
|
540
548
|
totalBorrow: new decimal_js_1.default(totalBorrowShares).mul(token0PerBorrowShare).toString(),
|
|
541
549
|
canBeBorrowed: true,
|
|
542
550
|
borrowRate: borrowRate0,
|
|
@@ -558,7 +566,7 @@ const parseT3MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
558
566
|
const debtAsset1Data = {
|
|
559
567
|
symbol: debtAsset1.symbol,
|
|
560
568
|
address: debtAsset1.address,
|
|
561
|
-
price: prices[tokenPrices ? debtAsset1.symbol :
|
|
569
|
+
price: prices[tokenPrices ? debtAsset1.symbol : debtAsset1Contract.address],
|
|
562
570
|
totalBorrow: new decimal_js_1.default(totalBorrowShares).mul(token1PerBorrowShare).toString(),
|
|
563
571
|
canBeBorrowed: true,
|
|
564
572
|
borrowRate: borrowRate1,
|
|
@@ -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,14 +673,14 @@ 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);
|
|
668
680
|
const collAsset0Data = {
|
|
669
681
|
symbol: collAsset0.symbol,
|
|
670
682
|
address: collAsset0.address,
|
|
671
|
-
price: prices[tokenPrices ? collAsset0.symbol :
|
|
683
|
+
price: prices[tokenPrices ? collAsset0.symbol : collAsset0Contract.address],
|
|
672
684
|
totalSupply: new decimal_js_1.default(totalSupplyShares).mul(token0PerSupplyShare).toString(),
|
|
673
685
|
canBeSupplied: true,
|
|
674
686
|
supplyRate: supplyRate0,
|
|
@@ -690,7 +702,7 @@ const parseT4MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
690
702
|
const collAsset1Data = {
|
|
691
703
|
symbol: collAsset1.symbol,
|
|
692
704
|
address: collAsset1.address,
|
|
693
|
-
price: prices[tokenPrices ? collAsset1.symbol :
|
|
705
|
+
price: prices[tokenPrices ? collAsset1.symbol : collAsset1Contract.address],
|
|
694
706
|
totalSupply: new decimal_js_1.default(totalSupplyShares).mul(token1PerSupplyShare).toString(),
|
|
695
707
|
canBeSupplied: true,
|
|
696
708
|
supplyRate: supplyRate1,
|
|
@@ -712,7 +724,7 @@ const parseT4MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
712
724
|
const debtAsset0Data = {
|
|
713
725
|
symbol: debtAsset0.symbol,
|
|
714
726
|
address: debtAsset0.address,
|
|
715
|
-
price: prices[tokenPrices ? debtAsset0.symbol :
|
|
727
|
+
price: prices[tokenPrices ? debtAsset0.symbol : debtAsset0Contract.address],
|
|
716
728
|
totalBorrow: new decimal_js_1.default(totalBorrowShares).mul(token0PerBorrowShare).toString(),
|
|
717
729
|
canBeBorrowed: true,
|
|
718
730
|
borrowRate: borrowRate0,
|
|
@@ -734,7 +746,7 @@ const parseT4MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
734
746
|
const debtAsset1Data = {
|
|
735
747
|
symbol: debtAsset1.symbol,
|
|
736
748
|
address: debtAsset1.address,
|
|
737
|
-
price: prices[tokenPrices ? debtAsset1.symbol :
|
|
749
|
+
price: prices[tokenPrices ? debtAsset1.symbol : debtAsset1Contract.address],
|
|
738
750
|
totalBorrow: new decimal_js_1.default(totalBorrowShares).mul(token1PerBorrowShare).toString(),
|
|
739
751
|
canBeBorrowed: true,
|
|
740
752
|
borrowRate: borrowRate1,
|
package/cjs/portfolio/index.js
CHANGED
|
@@ -43,6 +43,7 @@ function getPortfolioData(provider, network, defaultProvider, addresses, summerF
|
|
|
43
43
|
return __awaiter(this, void 0, void 0, function* () {
|
|
44
44
|
const isMainnet = network === common_1.NetworkNumber.Eth;
|
|
45
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,13 +356,13 @@ 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 = {
|
|
358
363
|
symbol: collAsset0.symbol,
|
|
359
364
|
address: collAsset0.address,
|
|
360
|
-
price: prices[tokenPrices ? collAsset0.symbol :
|
|
365
|
+
price: prices[tokenPrices ? collAsset0.symbol : collAsset0Contract.address],
|
|
361
366
|
totalSupply: new Dec(totalSupplyShares).mul(token0PerSupplyShare).toString(),
|
|
362
367
|
canBeSupplied: true,
|
|
363
368
|
supplyRate: supplyRate0,
|
|
@@ -379,7 +384,7 @@ const parseT2MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
379
384
|
const collSecondAssetData = {
|
|
380
385
|
symbol: collAsset1.symbol,
|
|
381
386
|
address: collAsset1.address,
|
|
382
|
-
price: prices[tokenPrices ? collAsset1.symbol :
|
|
387
|
+
price: prices[tokenPrices ? collAsset1.symbol : collAsset1Contract.address],
|
|
383
388
|
totalSupply: new Dec(totalSupplyShares).mul(token1PerSupplyShare).toString(),
|
|
384
389
|
canBeSupplied: true,
|
|
385
390
|
supplyRate: supplyRate1,
|
|
@@ -404,7 +409,7 @@ const parseT2MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
404
409
|
const borrowRate = new Dec(data.borrowRateVault).div(100).toString();
|
|
405
410
|
const debtAssetData = {
|
|
406
411
|
symbol: debtAsset.symbol,
|
|
407
|
-
price: prices[tokenPrices ? debtAsset.symbol :
|
|
412
|
+
price: prices[tokenPrices ? debtAsset.symbol : debtAssetContract.address],
|
|
408
413
|
address: debtAsset.address,
|
|
409
414
|
totalBorrow: data.totalBorrowVault.toString(),
|
|
410
415
|
canBeBorrowed: true,
|
|
@@ -433,7 +438,7 @@ const parseT2MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
433
438
|
const liquidationMaxLimit = new Dec(data.liquidationMaxLimit).div(100).toString();
|
|
434
439
|
const liqFactor = new Dec(data.liquidationThreshold).div(10000).toString();
|
|
435
440
|
const totalSupplySharesInVault = assetAmountInEth(data.totalSupplyVault.toString());
|
|
436
|
-
const collSharePrice = new Dec(oraclePrice).mul(prices[tokenPrices ? debtAsset.symbol :
|
|
441
|
+
const collSharePrice = new Dec(oraclePrice).mul(prices[tokenPrices ? debtAsset.symbol : debtAssetContract.address]).toString();
|
|
437
442
|
const totalSupplyVaultUsd = new Dec(totalSupplySharesInVault).mul(collSharePrice).toString();
|
|
438
443
|
const maxSupplySharesUsd = new Dec(maxSupplyShares).mul(collSharePrice).toString();
|
|
439
444
|
const withdrawableUSD = new Dec(withdrawableShares).mul(collSharePrice).toString();
|
|
@@ -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,13 +513,13 @@ 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 = {
|
|
512
520
|
symbol: collAsset.symbol,
|
|
513
521
|
address: collAsset.address,
|
|
514
|
-
price: prices[tokenPrices ? collAsset.symbol :
|
|
522
|
+
price: prices[tokenPrices ? collAsset.symbol : collAssetContract.address],
|
|
515
523
|
totalSupply: data.totalSupplyVault.toString(),
|
|
516
524
|
canBeSupplied: true,
|
|
517
525
|
supplyRate,
|
|
@@ -530,7 +538,7 @@ const parseT3MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
530
538
|
const debtAsset0Data = {
|
|
531
539
|
symbol: debtAsset0.symbol,
|
|
532
540
|
address: debtAsset0.address,
|
|
533
|
-
price: prices[tokenPrices ? debtAsset0.symbol :
|
|
541
|
+
price: prices[tokenPrices ? debtAsset0.symbol : debtAsset0Contract.address],
|
|
534
542
|
totalBorrow: new Dec(totalBorrowShares).mul(token0PerBorrowShare).toString(),
|
|
535
543
|
canBeBorrowed: true,
|
|
536
544
|
borrowRate: borrowRate0,
|
|
@@ -552,7 +560,7 @@ const parseT3MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
552
560
|
const debtAsset1Data = {
|
|
553
561
|
symbol: debtAsset1.symbol,
|
|
554
562
|
address: debtAsset1.address,
|
|
555
|
-
price: prices[tokenPrices ? debtAsset1.symbol :
|
|
563
|
+
price: prices[tokenPrices ? debtAsset1.symbol : debtAsset1Contract.address],
|
|
556
564
|
totalBorrow: new Dec(totalBorrowShares).mul(token1PerBorrowShare).toString(),
|
|
557
565
|
canBeBorrowed: true,
|
|
558
566
|
borrowRate: borrowRate1,
|
|
@@ -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,14 +667,14 @@ 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);
|
|
662
674
|
const collAsset0Data = {
|
|
663
675
|
symbol: collAsset0.symbol,
|
|
664
676
|
address: collAsset0.address,
|
|
665
|
-
price: prices[tokenPrices ? collAsset0.symbol :
|
|
677
|
+
price: prices[tokenPrices ? collAsset0.symbol : collAsset0Contract.address],
|
|
666
678
|
totalSupply: new Dec(totalSupplyShares).mul(token0PerSupplyShare).toString(),
|
|
667
679
|
canBeSupplied: true,
|
|
668
680
|
supplyRate: supplyRate0,
|
|
@@ -684,7 +696,7 @@ const parseT4MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
684
696
|
const collAsset1Data = {
|
|
685
697
|
symbol: collAsset1.symbol,
|
|
686
698
|
address: collAsset1.address,
|
|
687
|
-
price: prices[tokenPrices ? collAsset1.symbol :
|
|
699
|
+
price: prices[tokenPrices ? collAsset1.symbol : collAsset1Contract.address],
|
|
688
700
|
totalSupply: new Dec(totalSupplyShares).mul(token1PerSupplyShare).toString(),
|
|
689
701
|
canBeSupplied: true,
|
|
690
702
|
supplyRate: supplyRate1,
|
|
@@ -706,7 +718,7 @@ const parseT4MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
706
718
|
const debtAsset0Data = {
|
|
707
719
|
symbol: debtAsset0.symbol,
|
|
708
720
|
address: debtAsset0.address,
|
|
709
|
-
price: prices[tokenPrices ? debtAsset0.symbol :
|
|
721
|
+
price: prices[tokenPrices ? debtAsset0.symbol : debtAsset0Contract.address],
|
|
710
722
|
totalBorrow: new Dec(totalBorrowShares).mul(token0PerBorrowShare).toString(),
|
|
711
723
|
canBeBorrowed: true,
|
|
712
724
|
borrowRate: borrowRate0,
|
|
@@ -728,7 +740,7 @@ const parseT4MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
|
|
|
728
740
|
const debtAsset1Data = {
|
|
729
741
|
symbol: debtAsset1.symbol,
|
|
730
742
|
address: debtAsset1.address,
|
|
731
|
-
price: prices[tokenPrices ? debtAsset1.symbol :
|
|
743
|
+
price: prices[tokenPrices ? debtAsset1.symbol : debtAsset1Contract.address],
|
|
732
744
|
totalBorrow: new Dec(totalBorrowShares).mul(token1PerBorrowShare).toString(),
|
|
733
745
|
canBeBorrowed: true,
|
|
734
746
|
borrowRate: borrowRate1,
|
package/esm/portfolio/index.js
CHANGED
|
@@ -37,6 +37,7 @@ export function getPortfolioData(provider, network, defaultProvider, addresses,
|
|
|
37
37
|
return __awaiter(this, void 0, void 0, function* () {
|
|
38
38
|
const isMainnet = network === NetworkNumber.Eth;
|
|
39
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 {
|
|
@@ -458,7 +463,7 @@ const parseT2MarketData = async (provider: PublicClient, data: FluidVaultDataStr
|
|
|
458
463
|
const collFirstAssetData: Partial<FluidAssetData> = {
|
|
459
464
|
symbol: collAsset0.symbol,
|
|
460
465
|
address: collAsset0.address,
|
|
461
|
-
price: prices[tokenPrices ? collAsset0.symbol :
|
|
466
|
+
price: prices[tokenPrices ? collAsset0.symbol : collAsset0Contract.address],
|
|
462
467
|
totalSupply: new Dec(totalSupplyShares).mul(token0PerSupplyShare).toString(),
|
|
463
468
|
canBeSupplied: true,
|
|
464
469
|
supplyRate: supplyRate0,
|
|
@@ -481,7 +486,7 @@ const parseT2MarketData = async (provider: PublicClient, data: FluidVaultDataStr
|
|
|
481
486
|
const collSecondAssetData: Partial<FluidAssetData> = {
|
|
482
487
|
symbol: collAsset1.symbol,
|
|
483
488
|
address: collAsset1.address,
|
|
484
|
-
price: prices[tokenPrices ? collAsset1.symbol :
|
|
489
|
+
price: prices[tokenPrices ? collAsset1.symbol : collAsset1Contract.address],
|
|
485
490
|
totalSupply: new Dec(totalSupplyShares).mul(token1PerSupplyShare).toString(),
|
|
486
491
|
canBeSupplied: true,
|
|
487
492
|
supplyRate: supplyRate1,
|
|
@@ -508,7 +513,7 @@ const parseT2MarketData = async (provider: PublicClient, data: FluidVaultDataStr
|
|
|
508
513
|
const borrowRate = new Dec(data.borrowRateVault).div(100).toString();
|
|
509
514
|
const debtAssetData: Partial<FluidAssetData> = {
|
|
510
515
|
symbol: debtAsset.symbol,
|
|
511
|
-
price: prices[tokenPrices ? debtAsset.symbol :
|
|
516
|
+
price: prices[tokenPrices ? debtAsset.symbol : debtAssetContract.address],
|
|
512
517
|
address: debtAsset.address,
|
|
513
518
|
totalBorrow: data.totalBorrowVault.toString(),
|
|
514
519
|
canBeBorrowed: true,
|
|
@@ -546,7 +551,7 @@ const parseT2MarketData = async (provider: PublicClient, data: FluidVaultDataStr
|
|
|
546
551
|
const liqFactor = new Dec(data.liquidationThreshold).div(10_000).toString();
|
|
547
552
|
|
|
548
553
|
const totalSupplySharesInVault = assetAmountInEth(data.totalSupplyVault.toString());
|
|
549
|
-
const collSharePrice = new Dec(oraclePrice).mul(prices[tokenPrices ? debtAsset.symbol :
|
|
554
|
+
const collSharePrice = new Dec(oraclePrice).mul(prices[tokenPrices ? debtAsset.symbol : debtAssetContract.address]).toString();
|
|
550
555
|
const totalSupplyVaultUsd = new Dec(totalSupplySharesInVault).mul(collSharePrice).toString();
|
|
551
556
|
const maxSupplySharesUsd = new Dec(maxSupplyShares).mul(collSharePrice).toString();
|
|
552
557
|
|
|
@@ -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,14 +650,14 @@ 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();
|
|
649
657
|
const collAssetData: Partial<FluidAssetData> = {
|
|
650
658
|
symbol: collAsset.symbol,
|
|
651
659
|
address: collAsset.address,
|
|
652
|
-
price: prices[tokenPrices ? collAsset.symbol :
|
|
660
|
+
price: prices[tokenPrices ? collAsset.symbol : collAssetContract.address],
|
|
653
661
|
totalSupply: data.totalSupplyVault.toString(),
|
|
654
662
|
canBeSupplied: true,
|
|
655
663
|
supplyRate,
|
|
@@ -670,7 +678,7 @@ const parseT3MarketData = async (provider: PublicClient, data: FluidVaultDataStr
|
|
|
670
678
|
const debtAsset0Data: Partial<FluidAssetData> = {
|
|
671
679
|
symbol: debtAsset0.symbol,
|
|
672
680
|
address: debtAsset0.address,
|
|
673
|
-
price: prices[tokenPrices ? debtAsset0.symbol :
|
|
681
|
+
price: prices[tokenPrices ? debtAsset0.symbol : debtAsset0Contract.address],
|
|
674
682
|
totalBorrow: new Dec(totalBorrowShares).mul(token0PerBorrowShare).toString(),
|
|
675
683
|
canBeBorrowed: true,
|
|
676
684
|
borrowRate: borrowRate0,
|
|
@@ -693,7 +701,7 @@ const parseT3MarketData = async (provider: PublicClient, data: FluidVaultDataStr
|
|
|
693
701
|
const debtAsset1Data: Partial<FluidAssetData> = {
|
|
694
702
|
symbol: debtAsset1.symbol,
|
|
695
703
|
address: debtAsset1.address,
|
|
696
|
-
price: prices[tokenPrices ? debtAsset1.symbol :
|
|
704
|
+
price: prices[tokenPrices ? debtAsset1.symbol : debtAsset1Contract.address],
|
|
697
705
|
totalBorrow: new Dec(totalBorrowShares).mul(token1PerBorrowShare).toString(),
|
|
698
706
|
canBeBorrowed: true,
|
|
699
707
|
borrowRate: borrowRate1,
|
|
@@ -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
|
|
|
@@ -861,7 +873,7 @@ const parseT4MarketData = async (provider: PublicClient, data: FluidVaultDataStr
|
|
|
861
873
|
const collAsset0Data: Partial<FluidAssetData> = {
|
|
862
874
|
symbol: collAsset0.symbol,
|
|
863
875
|
address: collAsset0.address,
|
|
864
|
-
price: prices[tokenPrices ? collAsset0.symbol :
|
|
876
|
+
price: prices[tokenPrices ? collAsset0.symbol : collAsset0Contract.address],
|
|
865
877
|
totalSupply: new Dec(totalSupplyShares).mul(token0PerSupplyShare).toString(),
|
|
866
878
|
canBeSupplied: true,
|
|
867
879
|
supplyRate: supplyRate0,
|
|
@@ -884,7 +896,7 @@ const parseT4MarketData = async (provider: PublicClient, data: FluidVaultDataStr
|
|
|
884
896
|
const collAsset1Data: Partial<FluidAssetData> = {
|
|
885
897
|
symbol: collAsset1.symbol,
|
|
886
898
|
address: collAsset1.address,
|
|
887
|
-
price: prices[tokenPrices ? collAsset1.symbol :
|
|
899
|
+
price: prices[tokenPrices ? collAsset1.symbol : collAsset1Contract.address],
|
|
888
900
|
totalSupply: new Dec(totalSupplyShares).mul(token1PerSupplyShare).toString(),
|
|
889
901
|
canBeSupplied: true,
|
|
890
902
|
supplyRate: supplyRate1,
|
|
@@ -907,7 +919,7 @@ const parseT4MarketData = async (provider: PublicClient, data: FluidVaultDataStr
|
|
|
907
919
|
const debtAsset0Data: Partial<FluidAssetData> = {
|
|
908
920
|
symbol: debtAsset0.symbol,
|
|
909
921
|
address: debtAsset0.address,
|
|
910
|
-
price: prices[tokenPrices ? debtAsset0.symbol :
|
|
922
|
+
price: prices[tokenPrices ? debtAsset0.symbol : debtAsset0Contract.address],
|
|
911
923
|
totalBorrow: new Dec(totalBorrowShares).mul(token0PerBorrowShare).toString(),
|
|
912
924
|
canBeBorrowed: true,
|
|
913
925
|
borrowRate: borrowRate0,
|
|
@@ -930,7 +942,7 @@ const parseT4MarketData = async (provider: PublicClient, data: FluidVaultDataStr
|
|
|
930
942
|
const debtAsset1Data: Partial<FluidAssetData> = {
|
|
931
943
|
symbol: debtAsset1.symbol,
|
|
932
944
|
address: debtAsset1.address,
|
|
933
|
-
price: prices[tokenPrices ? debtAsset1.symbol :
|
|
945
|
+
price: prices[tokenPrices ? debtAsset1.symbol : debtAsset1Contract.address],
|
|
934
946
|
totalBorrow: new Dec(totalBorrowShares).mul(token1PerBorrowShare).toString(),
|
|
935
947
|
canBeBorrowed: true,
|
|
936
948
|
borrowRate: borrowRate1,
|
package/src/portfolio/index.ts
CHANGED
|
@@ -57,6 +57,7 @@ export async function getPortfolioData(provider: EthereumProvider, network: Netw
|
|
|
57
57
|
}> {
|
|
58
58
|
const isMainnet = network === NetworkNumber.Eth;
|
|
59
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) {
|