@defisaver/positions-sdk 2.1.13-dev-plasma-fluid1 → 2.1.13-dev-plasma-fluid2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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,7 +362,7 @@ const parseT2MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
357
362
  prices = tokenPrices;
358
363
  }
359
364
  else {
360
- prices = yield getChainLinkPricesForTokens([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 = {
@@ -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,7 +519,7 @@ const parseT3MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
511
519
  prices = tokenPrices;
512
520
  }
513
521
  else {
514
- prices = yield getChainLinkPricesForTokens([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 = {
@@ -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,7 +673,7 @@ const parseT4MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
661
673
  prices = tokenPrices;
662
674
  }
663
675
  else {
664
- prices = yield getChainLinkPricesForTokens([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);
@@ -1194,6 +1206,7 @@ const _getUserPositions = (provider, network, user) => __awaiter(void 0, void 0,
1194
1206
  const view = (0, contracts_1.FluidViewContractViem)(provider, network);
1195
1207
  const data = yield view.read.getUserPositions([user]);
1196
1208
  const parsedMarketData = yield Promise.all(data[1].map((vaultData) => __awaiter(void 0, void 0, void 0, function* () { return parseMarketData(provider, vaultData, network); })));
1209
+ console.log(parsedMarketData);
1197
1210
  const userData = data[0].map((position, i) => (Object.assign({}, parseUserData(position, parsedMarketData[i]))));
1198
1211
  return parsedMarketData.map((market, i) => ({
1199
1212
  marketData: market,
@@ -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,7 +356,7 @@ const parseT2MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
351
356
  prices = tokenPrices;
352
357
  }
353
358
  else {
354
- prices = yield getChainLinkPricesForTokens([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 = {
@@ -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,7 +513,7 @@ const parseT3MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
505
513
  prices = tokenPrices;
506
514
  }
507
515
  else {
508
- prices = yield getChainLinkPricesForTokens([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 = {
@@ -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,7 +667,7 @@ const parseT4MarketData = (provider_1, data_1, network_1, ...args_1) => __awaite
655
667
  prices = tokenPrices;
656
668
  }
657
669
  else {
658
- prices = yield getChainLinkPricesForTokens([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);
@@ -1172,6 +1184,7 @@ export const _getUserPositions = (provider, network, user) => __awaiter(void 0,
1172
1184
  const view = FluidViewContractViem(provider, network);
1173
1185
  const data = yield view.read.getUserPositions([user]);
1174
1186
  const parsedMarketData = yield Promise.all(data[1].map((vaultData) => __awaiter(void 0, void 0, void 0, function* () { return parseMarketData(provider, vaultData, network); })));
1187
+ console.log(parsedMarketData);
1175
1188
  const userData = data[0].map((position, i) => (Object.assign({}, parseUserData(position, parsedMarketData[i]))));
1176
1189
  return parsedMarketData.map((market, i) => ({
1177
1190
  marketData: market,
@@ -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-fluid2",
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 {
@@ -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,7 +650,7 @@ const parseT3MarketData = async (provider: PublicClient, data: FluidVaultDataStr
642
650
  if (tokenPrices) {
643
651
  prices = tokenPrices;
644
652
  } else {
645
- prices = await getChainLinkPricesForTokens([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();
@@ -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
 
@@ -1579,7 +1591,7 @@ export const _getUserPositions = async (provider: PublicClient, network: Network
1579
1591
  const data = await view.read.getUserPositions([user]);
1580
1592
 
1581
1593
  const parsedMarketData = await Promise.all(data[1].map(async (vaultData) => parseMarketData(provider, vaultData, network)));
1582
-
1594
+ console.log(parsedMarketData);
1583
1595
  const userData = data[0].map((position, i) => ({ ...parseUserData(position, parsedMarketData[i]) }));
1584
1596
 
1585
1597
  return parsedMarketData.map((market, i) => ({
@@ -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) {