@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.
@@ -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 collAsset = (0, tokens_1.getAssetInfo)((0, utils_1.getNativeAssetFromWrapped)((0, tokens_1.getAssetInfoByAddress)(data.supplyToken0, network).symbol), network);
239
- const debtAsset = (0, tokens_1.getAssetInfo)((0, utils_1.getNativeAssetFromWrapped)((0, tokens_1.getAssetInfoByAddress)(data.borrowToken0, network).symbol), network);
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(debtAsset, network, provider);
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 collAsset0 = (0, tokens_1.getAssetInfo)((0, utils_1.getNativeAssetFromWrapped)((0, tokens_1.getAssetInfoByAddress)(data.supplyToken0, network).symbol), network);
349
- const collAsset1 = (0, tokens_1.getAssetInfo)((0, utils_1.getNativeAssetFromWrapped)((0, tokens_1.getAssetInfoByAddress)(data.supplyToken1, network).symbol), network);
350
- const debtAsset = (0, tokens_1.getAssetInfo)((0, utils_1.getNativeAssetFromWrapped)((0, tokens_1.getAssetInfoByAddress)(data.borrowToken0, network).symbol), network);
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([collAsset0.address, collAsset1.address, debtAsset.address], network, provider);
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 : collAsset0.address],
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 : collAsset1.address],
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 : debtAsset.address],
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 : debtAsset.address]).toString();
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 collAsset = (0, tokens_1.getAssetInfo)((0, utils_1.getNativeAssetFromWrapped)((0, tokens_1.getAssetInfoByAddress)(data.supplyToken0, network).symbol), network);
502
- const debtAsset0 = (0, tokens_1.getAssetInfo)((0, utils_1.getNativeAssetFromWrapped)((0, tokens_1.getAssetInfoByAddress)(data.borrowToken0, network).symbol), network);
503
- const debtAsset1 = (0, tokens_1.getAssetInfo)((0, utils_1.getNativeAssetFromWrapped)((0, tokens_1.getAssetInfoByAddress)(data.borrowToken1, network).symbol), network);
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([collAsset.address, debtAsset0.address, debtAsset1.address], network, provider);
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 : collAsset.address],
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 : debtAsset0.address],
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 : debtAsset1.address],
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 collAsset0 = (0, tokens_1.getAssetInfo)((0, utils_1.getNativeAssetFromWrapped)((0, tokens_1.getAssetInfoByAddress)(data.supplyToken0, network).symbol), network);
651
- const collAsset1 = (0, tokens_1.getAssetInfo)((0, utils_1.getNativeAssetFromWrapped)((0, tokens_1.getAssetInfoByAddress)(data.supplyToken1, network).symbol), network);
652
- const debtAsset0 = (0, tokens_1.getAssetInfo)((0, utils_1.getNativeAssetFromWrapped)((0, tokens_1.getAssetInfoByAddress)(data.borrowToken0, network).symbol), network);
653
- const debtAsset1 = (0, tokens_1.getAssetInfo)((0, utils_1.getNativeAssetFromWrapped)((0, tokens_1.getAssetInfoByAddress)(data.borrowToken1, network).symbol), network);
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([collAsset0.address, collAsset1.address, debtAsset0.address, debtAsset1.address], network, provider);
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 : collAsset0.address],
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 : collAsset1.address],
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 : debtAsset0.address],
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 : debtAsset1.address],
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,
@@ -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) {
@@ -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 collAsset = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.supplyToken0, network).symbol), network);
233
- const debtAsset = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.borrowToken0, network).symbol), network);
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(debtAsset, network, provider);
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 collAsset0 = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.supplyToken0, network).symbol), network);
343
- const collAsset1 = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.supplyToken1, network).symbol), network);
344
- const debtAsset = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.borrowToken0, network).symbol), network);
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([collAsset0.address, collAsset1.address, debtAsset.address], network, provider);
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 : collAsset0.address],
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 : collAsset1.address],
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 : debtAsset.address],
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 : debtAsset.address]).toString();
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 collAsset = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.supplyToken0, network).symbol), network);
496
- const debtAsset0 = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.borrowToken0, network).symbol), network);
497
- const debtAsset1 = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.borrowToken1, network).symbol), network);
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([collAsset.address, debtAsset0.address, debtAsset1.address], network, provider);
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 : collAsset.address],
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 : debtAsset0.address],
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 : debtAsset1.address],
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 collAsset0 = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.supplyToken0, network).symbol), network);
645
- const collAsset1 = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.supplyToken1, network).symbol), network);
646
- const debtAsset0 = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.borrowToken0, network).symbol), network);
647
- const debtAsset1 = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.borrowToken1, network).symbol), network);
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([collAsset0.address, collAsset1.address, debtAsset0.address, debtAsset1.address], network, provider);
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 : collAsset0.address],
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 : collAsset1.address],
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 : debtAsset0.address],
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 : debtAsset1.address],
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,
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defisaver/positions-sdk",
3
- "version": "2.1.13-dev-plasma-fluid1",
3
+ "version": "2.1.13-dev-plasma-fluid3",
4
4
  "description": "",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./esm/index.js",
@@ -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 collAsset = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.supplyToken0, network).symbol), network);
304
- const debtAsset = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.borrowToken0, network).symbol), network);
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(debtAsset, network, provider);
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 collAsset0 = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.supplyToken0, network).symbol), network);
422
- const collAsset1 = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.supplyToken1, network).symbol), network);
423
- const debtAsset = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.borrowToken0, network).symbol), network);
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([collAsset0.address, collAsset1.address, debtAsset.address], network, provider);
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 : collAsset0.address],
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 : collAsset1.address],
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 : debtAsset.address],
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 : debtAsset.address]).toString();
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 collAsset = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.supplyToken0, network).symbol), network);
612
- const debtAsset0 = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.borrowToken0, network).symbol), network);
613
- const debtAsset1 = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.borrowToken1, network).symbol), network);
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([collAsset.address, debtAsset0.address, debtAsset1.address], network, provider);
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 : collAsset.address],
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 : debtAsset0.address],
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 : debtAsset1.address],
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 collAsset0 = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.supplyToken0, network).symbol), network);
799
- const collAsset1 = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.supplyToken1, network).symbol), network);
800
- const debtAsset0 = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.borrowToken0, network).symbol), network);
801
- const debtAsset1 = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.borrowToken1, network).symbol), network);
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
- [collAsset0.address, collAsset1.address, debtAsset0.address, debtAsset1.address],
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 : collAsset0.address],
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 : collAsset1.address],
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 : debtAsset0.address],
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 : debtAsset1.address],
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,
@@ -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) {