@defisaver/positions-sdk 2.1.47 → 2.1.49-pt-apr-dev

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -67,13 +67,17 @@ exports.aaveAnyGetSuppliableAsCollAssets = aaveAnyGetSuppliableAsCollAssets;
67
67
  const aaveAnyGetEmodeMutableProps = ({ eModeCategory, eModeCategoriesData, assetsData, }, _asset) => {
68
68
  const asset = (0, utils_1.getNativeAssetFromWrapped)(_asset);
69
69
  const assetData = assetsData[asset];
70
- const eModeCategoryData = (eModeCategoriesData === null || eModeCategoriesData === void 0 ? void 0 : eModeCategoriesData[eModeCategory]) || { collateralAssets: [], collateralFactor: '0', liquidationRatio: '0' };
70
+ const eModeCategoryData = (eModeCategoriesData === null || eModeCategoriesData === void 0 ? void 0 : eModeCategoriesData[eModeCategory]) || {
71
+ collateralAssets: [], ltvZeroAssets: [], collateralFactor: '0', liquidationRatio: '0',
72
+ };
71
73
  if (eModeCategory === 0
72
74
  || !eModeCategoryData.collateralAssets.includes(asset)
73
75
  || new decimal_js_1.default(eModeCategoryData.collateralFactor || 0).eq(0)) {
74
76
  const { liquidationRatio, collateralFactor } = assetData;
75
77
  return ({ liquidationRatio, collateralFactor });
76
78
  }
79
+ if (eModeCategoryData.ltvZeroAssets.includes(asset))
80
+ return ({ liquidationRatio: '0', collateralFactor: '0' });
77
81
  const { liquidationRatio, collateralFactor } = eModeCategoryData;
78
82
  return ({ liquidationRatio, collateralFactor });
79
83
  };
@@ -18,7 +18,7 @@ exports.aaveV3AssetsDefaultMarketOpt = [
18
18
  exports.aaveV3AssetsDefaultMarketArb = ['DAI', 'LINK', 'USDC.e', 'WBTC', 'ETH', 'USDT', 'AAVE', 'EURS', 'wstETH', 'MAI', 'rETH', 'LUSD', 'USDC', 'FRAX', 'ARB', 'weETH', 'GHO', 'ezETH', 'rsETH', 'tBTC'];
19
19
  exports.aaveV3AssetsDefaultMarketBase = ['ETH', 'cbETH', 'USDbC', 'wstETH', 'USDC', 'weETH', 'cbBTC', 'ezETH', 'GHO', 'wrsETH', 'LBTC', 'EURC', 'AAVE', 'tBTC'];
20
20
  exports.aaveV3AssetsDefaultMarketLinea = ['ETH', 'USDC', 'weETH', 'ezETH', 'USDT', 'wstETH', 'wrsETH', 'WBTC', 'mUSD'];
21
- exports.aaveV3AssetsDefaultMarketPlasma = ['ETH', 'USDT', 'sUSDe', 'USDe', 'weETH', 'XAUt', 'PT USDe Jan', 'PT sUSDe Jan', 'wrsETH', 'wstETH', 'syrupUSDT', 'XPL'];
21
+ exports.aaveV3AssetsDefaultMarketPlasma = ['ETH', 'USDT', 'sUSDe', 'USDe', 'weETH', 'XAUt', 'PT USDe Jan', 'PT sUSDe Jan', 'wrsETH', 'wstETH', 'syrupUSDT', 'XPL', 'PT USDe Apr', 'PT sUSDe Apr'];
22
22
  // @dev Keep assets in array, do not assign directly, so we can parse it and edit it programmatically with `scripts/updateMarkets`
23
23
  exports.aaveV3AssetsDefaultMarket = {
24
24
  [common_1.NetworkNumber.Eth]: exports.aaveV3AssetsDefaultMarketEth,
@@ -31,7 +31,7 @@ exports.STABLE_ASSETS = [
31
31
  'DAI', 'USDC', 'USDT', 'TUSD', 'USDP', 'GUSD', 'BUSD', 'SUSD', 'FRAX', 'LUSD', 'USDC.e', 'GHO', 'sDAI', 'USDA',
32
32
  'USDe', 'sUSDe', 'USDS', 'sUSDS', 'USR', 'EURC', 'BOLD', 'BOLD Legacy', 'RLUSD', 'PT sUSDe July', 'PT eUSDe May',
33
33
  'USDtb', 'eUSDe', 'PT USDe July', 'PT eUSDe Aug', 'PT sUSDe Sep', 'PT USDe Sep', 'PT sUSDe Nov', 'PT USDe Nov', 'PT sUSDe Jan', 'PT USDe Jan',
34
- 'PT sUSDe Feb', 'PT USDe Feb',
34
+ 'PT sUSDe Feb', 'PT USDe Feb', 'PT USDe Apr', 'PT sUSDe Apr',
35
35
  ];
36
36
  const isLeveragedPos = (usedAssets, dustLimit = 5) => {
37
37
  let borrowUnstable = 0;
@@ -87,6 +87,7 @@ const _getSparkMarketsData = (provider, network, selectedMarket) => __awaiter(vo
87
87
  collateralFactor: new decimal_js_1.default(market.ltv).div(10000).toString(),
88
88
  collateralAssets: eModeCategoriesData[emodeCategoryId] ? [...eModeCategoriesData[emodeCategoryId].collateralAssets, selectedMarket.assets[i]] : [selectedMarket.assets[i]],
89
89
  borrowAssets: eModeCategoriesData[emodeCategoryId] ? [...eModeCategoriesData[emodeCategoryId].borrowAssets, selectedMarket.assets[i]] : [selectedMarket.assets[i]],
90
+ ltvZeroAssets: [],
90
91
  };
91
92
  return ({
92
93
  symbol: selectedMarket.assets[i],
@@ -72,7 +72,7 @@ exports.STAKING_ASSETS = [
72
72
  'cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH',
73
73
  'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb', 'sUSDS', 'tETH', 'PT sUSDe Sep', 'PT USDe Sep',
74
74
  'PT sUSDe Nov', 'PT USDe Nov', 'PT USDe Jan', 'PT sUSDe Jan', 'wrsETH', 'wstETH', 'syrupUSDT', 'syrupUSDC', 'wstUSR',
75
- 'PT sUSDe Feb', 'PT USDe Feb',
75
+ 'PT sUSDe Feb', 'PT USDe Feb', 'PT USDe Apr', 'PT sUSDe Apr',
76
76
  ];
77
77
  exports.getStakingApy = (0, memoizee_1.default)((asset_1, ...args_1) => __awaiter(void 0, [asset_1, ...args_1], void 0, function* (asset, network = common_1.NetworkNumber.Eth) {
78
78
  try {
@@ -136,6 +136,10 @@ exports.getStakingApy = (0, memoizee_1.default)((asset_1, ...args_1) => __awaite
136
136
  return yield getApyFromDfsApi('PT sUSDe Feb', network);
137
137
  if (asset === 'PT USDe Feb')
138
138
  return yield getApyFromDfsApi('PT USDe Feb', network);
139
+ if (asset === 'PT sUSDe Apr')
140
+ return yield getApyFromDfsApi('PT sUSDe Apr', network);
141
+ if (asset === 'PT USDe Apr')
142
+ return yield getApyFromDfsApi('PT USDe Apr', network);
139
143
  }
140
144
  catch (e) {
141
145
  console.error(`Failed to fetch APY for ${asset}`);
@@ -38,6 +38,8 @@ export interface EModeCategoryData {
38
38
  collateralBitmap?: string;
39
39
  collateralAssets: string[];
40
40
  borrowAssets: string[];
41
+ ltvzeroBitmap?: string;
42
+ ltvZeroAssets: string[];
41
43
  }
42
44
  export interface EModeCategoryDataMapping {
43
45
  enteringTerms: boolean[];
@@ -63,21 +63,31 @@ export function _getAaveV3MarketData(provider_1, network_1, market_1) {
63
63
  getMeritCampaigns(network, market.value),
64
64
  ]);
65
65
  isBorrowAllowed = isLayer2Network(network) ? isBorrowAllowed : true;
66
+ // same break logic as view contract
67
+ let missCounter = 0;
66
68
  const eModeCategoriesData = {};
67
69
  for (let i = 0; i < eModesInfo.length; i++) {
68
- if (!eModesInfo[i].label)
69
- break;
70
- eModeCategoriesData[i + 1] = {
71
- label: eModesInfo[i].label,
72
- id: i + 1,
73
- liquidationBonus: new Dec(eModesInfo[i].liquidationBonus).div(10000).toString(),
74
- liquidationRatio: new Dec(eModesInfo[i].liquidationThreshold).div(10000).toString(),
75
- collateralFactor: new Dec(eModesInfo[i].ltv).div(10000).toString(),
76
- borrowableBitmap: eModesInfo[i].borrowableBitmap.toString(),
77
- collateralBitmap: eModesInfo[i].collateralBitmap.toString(),
78
- borrowAssets: [],
79
- collateralAssets: [],
80
- };
70
+ if (eModesInfo[i].liquidationThreshold !== 0) {
71
+ eModeCategoriesData[i + 1] = {
72
+ label: eModesInfo[i].label,
73
+ id: i + 1,
74
+ liquidationBonus: new Dec(eModesInfo[i].liquidationBonus).div(10000).toString(),
75
+ liquidationRatio: new Dec(eModesInfo[i].liquidationThreshold).div(10000).toString(),
76
+ collateralFactor: new Dec(eModesInfo[i].ltv).div(10000).toString(),
77
+ borrowableBitmap: eModesInfo[i].borrowableBitmap.toString(),
78
+ collateralBitmap: eModesInfo[i].collateralBitmap.toString(),
79
+ ltvzeroBitmap: eModesInfo[i].ltvzeroBitmap.toString(),
80
+ borrowAssets: [],
81
+ collateralAssets: [],
82
+ ltvZeroAssets: [],
83
+ };
84
+ missCounter = 0;
85
+ }
86
+ else {
87
+ ++missCounter;
88
+ if (missCounter > 2)
89
+ break;
90
+ }
81
91
  }
82
92
  if (networksWithIncentives.includes(network) && rewardInfo) {
83
93
  rewardInfo = rewardInfo.reduce((all, _market) => {
@@ -95,6 +105,8 @@ export function _getAaveV3MarketData(provider_1, network_1, market_1) {
95
105
  eModeCategoriesData[eModeIndex].collateralAssets.push(symbol);
96
106
  if (isEnabledOnBitmap(Number(eModeCategoriesData[eModeIndex].borrowableBitmap), Number(tokenMarket.assetId)))
97
107
  eModeCategoriesData[eModeIndex].borrowAssets.push(symbol);
108
+ if (isEnabledOnBitmap(Number(eModeCategoriesData[eModeIndex].ltvzeroBitmap), Number(tokenMarket.assetId)))
109
+ eModeCategoriesData[eModeIndex].ltvZeroAssets.push(symbol);
98
110
  }
99
111
  const borrowCap = tokenMarket.borrowCap.toString();
100
112
  const borrowCapInWei = new Dec(assetAmountInWei(borrowCap, symbol));
@@ -279,6 +291,7 @@ export function _getAaveV3MarketData(provider_1, network_1, market_1) {
279
291
  collateralFactor: '0',
280
292
  collateralAssets: assetsData.map((a) => a.symbol),
281
293
  borrowAssets: assetsData.map((a) => a.symbol),
294
+ ltvZeroAssets: [],
282
295
  };
283
296
  return { assetsData: payload, eModeCategoriesData };
284
297
  });