@defisaver/positions-sdk 1.0.26 → 1.0.27-dev-1

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.
@@ -5,7 +5,7 @@ export declare const test: (web3: Web3, network: NetworkNumber) => Promise<strin
5
5
  export declare const aaveV3EmodeCategoriesMapping: (extractedState: any, usedAssets: AaveV3UsedAssets) => {
6
6
  [key: number]: EModeCategoryDataMapping;
7
7
  };
8
- export declare function getAaveV3MarketData(web3: Web3, network: NetworkNumber, market: AaveMarketInfo, defaultWeb3: Web3): Promise<AaveV3MarketData>;
8
+ export declare function getAaveV3MarketData(web3: Web3, network: NetworkNumber, market: AaveMarketInfo, defaultWeb3: Web3, blockNumber?: 'latest' | number): Promise<AaveV3MarketData>;
9
9
  export declare const EMPTY_AAVE_DATA: {
10
10
  usedAssets: {};
11
11
  suppliedUsd: string;
@@ -28,5 +28,5 @@ export declare const EMPTY_AAVE_DATA: {
28
28
  suppliedCollateralUsd: string;
29
29
  };
30
30
  export declare const getAaveV3AccountBalances: (web3: Web3, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress) => Promise<PositionBalances>;
31
- export declare const getAaveV3AccountData: (web3: Web3, network: NetworkNumber, address: EthAddress, extractedState: any) => Promise<AaveV3PositionData>;
31
+ export declare const getAaveV3AccountData: (web3: Web3, network: NetworkNumber, address: EthAddress, extractedState: any, blockNumber?: 'latest' | number) => Promise<AaveV3PositionData>;
32
32
  export declare const getAaveV3FullPositionData: (web3: Web3, network: NetworkNumber, address: string, market: AaveMarketInfo, mainnetWeb3: Web3) => Promise<AaveV3PositionData>;
@@ -55,7 +55,7 @@ const aaveV3EmodeCategoriesMapping = (extractedState, usedAssets) => {
55
55
  return categoriesMapping;
56
56
  };
57
57
  exports.aaveV3EmodeCategoriesMapping = aaveV3EmodeCategoriesMapping;
58
- function getAaveV3MarketData(web3, network, market, defaultWeb3) {
58
+ function getAaveV3MarketData(web3, network, market, defaultWeb3, blockNumber = 'latest') {
59
59
  return __awaiter(this, void 0, void 0, function* () {
60
60
  const _addresses = market.assets.map(a => (0, tokens_1.getAssetInfo)((0, utils_1.ethToWeth)(a), network).address);
61
61
  const isL2 = (0, utils_1.isLayer2Network)(network);
@@ -64,9 +64,9 @@ function getAaveV3MarketData(web3, network, market, defaultWeb3) {
64
64
  const marketAddress = market.providerAddress;
65
65
  // eslint-disable-next-line prefer-const
66
66
  let [loanInfo, eModesInfo, isBorrowAllowed] = yield Promise.all([
67
- loanInfoContract.methods.getFullTokensInfo(marketAddress, _addresses).call(),
68
- loanInfoContract.methods.getAllEmodes(marketAddress).call(),
69
- loanInfoContract.methods.isBorrowAllowed(marketAddress).call(), // Used on L2s check for PriceOracleSentinel (mainnet will always return true)
67
+ loanInfoContract.methods.getFullTokensInfo(marketAddress, _addresses).call({}, blockNumber),
68
+ loanInfoContract.methods.getAllEmodes(marketAddress).call({}, blockNumber),
69
+ loanInfoContract.methods.isBorrowAllowed(marketAddress).call({}, blockNumber), // Used on L2s check for PriceOracleSentinel (mainnet will always return true)
70
70
  ]);
71
71
  isBorrowAllowed = (0, utils_1.isLayer2Network)(network) ? isBorrowAllowed : true;
72
72
  const eModeCategoriesData = {};
@@ -330,7 +330,7 @@ const getAaveV3AccountBalances = (web3, network, block, addressMapping, address)
330
330
  return balances;
331
331
  });
332
332
  exports.getAaveV3AccountBalances = getAaveV3AccountBalances;
333
- const getAaveV3AccountData = (web3, network, address, extractedState) => __awaiter(void 0, void 0, void 0, function* () {
333
+ const getAaveV3AccountData = (web3, network, address, extractedState, blockNumber = 'latest') => __awaiter(void 0, void 0, void 0, function* () {
334
334
  const { selectedMarket: market, assetsData, eModeCategoriesData, } = extractedState;
335
335
  let payload = Object.assign(Object.assign({}, exports.EMPTY_AAVE_DATA), { lastUpdated: Date.now() });
336
336
  if (!address) {
@@ -364,7 +364,7 @@ const getAaveV3AccountData = (web3, network, address, extractedState) => __await
364
364
  },
365
365
  ];
366
366
  const [multicallRes, { 0: stkAaveBalance }] = yield Promise.all([
367
- (0, multicall_1.multicall)(multicallData, web3, network),
367
+ (0, multicall_1.multicall)(multicallData, web3, network, blockNumber),
368
368
  isL2 ? { 0: '0' } : (0, assets_1.getAssetsBalances)(['stkAAVE'], address, network, web3),
369
369
  { 0: '0' },
370
370
  ]);
@@ -12,7 +12,7 @@ exports.morphoAaveV2AssetDefaultMarket = ['DAI', 'ETH', 'USDC', 'USDT', 'WBTC',
12
12
  exports.morphoAaveV3AssetEthMarket = ['ETH', 'wstETH', 'DAI', 'USDC', 'WBTC', 'rETH', 'cbETH', 'sDAI', 'USDT'];
13
13
  exports.aaveV3AssetsDefaultMarketEth = [
14
14
  'ETH', 'wstETH', 'WBTC', 'USDC', 'DAI', 'LINK', 'AAVE', 'cbETH', 'USDT', 'rETH', 'LUSD', 'CRV', 'MKR', 'SNX', 'BAL', 'UNI', 'LDO', 'ENS', '1INCH', 'FRAX', 'GHO', 'RPL', 'sDAI', 'STG', 'KNC', 'FXS', 'crvUSD', 'PYUSD', 'weETH', 'osETH', 'USDe', 'ETHx', 'sUSDe', 'tBTC', 'cbBTC', 'USDS', 'rsETH', 'LBTC', 'eBTC', 'RLUSD', 'PT eUSDe May', 'PT sUSDe July', 'USDtb',
15
- 'eUSDe', 'PT USDe July', 'PT eUSDe Aug', 'EURC', 'FBTC',
15
+ 'eUSDe', 'PT USDe July', 'PT eUSDe Aug', 'EURC', 'FBTC', 'PT sUSDe Sep',
16
16
  ];
17
17
  exports.aaveV3AssetsDefaultMarketOpt = [
18
18
  'DAI', 'USDC.e', 'USDT', 'SUSD', 'AAVE', 'LINK', 'WBTC', 'ETH', 'OP', 'wstETH', 'LUSD', 'MAI', 'rETH', 'USDC',
@@ -113,7 +113,7 @@ const getApyFromDfsApi = (asset) => __awaiter(void 0, void 0, void 0, function*
113
113
  const data = yield res.json();
114
114
  return String(data.apy);
115
115
  });
116
- exports.STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb', 'sUSDS', 'PT eUSDe May', 'PT sUSDe July', 'PT USDe July', 'PT eUSDe Aug', 'tETH'];
116
+ exports.STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb', 'sUSDS', 'PT eUSDe May', 'PT sUSDe July', 'PT USDe July', 'PT eUSDe Aug', 'tETH', 'PT sUSDe Sep'];
117
117
  exports.getStakingApy = (0, memoizee_1.default)((asset, web3, blockNumber = 'latest', fromBlock = undefined) => __awaiter(void 0, void 0, void 0, function* () {
118
118
  try {
119
119
  if (asset === 'stETH' || asset === 'wstETH')
@@ -150,6 +150,8 @@ exports.getStakingApy = (0, memoizee_1.default)((asset, web3, blockNumber = 'lat
150
150
  return yield getApyFromDfsApi('PT USDe July');
151
151
  if (asset === 'PT eUSDe Aug')
152
152
  return yield getApyFromDfsApi('PT eUSDe Aug');
153
+ if (asset === 'PT sUSDe Sep')
154
+ return yield getApyFromDfsApi('PT sUSDe Sep');
153
155
  if (asset === 'tETH')
154
156
  return yield getApyFromDfsApi('tETH');
155
157
  }
@@ -5,7 +5,7 @@ export declare const test: (web3: Web3, network: NetworkNumber) => Promise<strin
5
5
  export declare const aaveV3EmodeCategoriesMapping: (extractedState: any, usedAssets: AaveV3UsedAssets) => {
6
6
  [key: number]: EModeCategoryDataMapping;
7
7
  };
8
- export declare function getAaveV3MarketData(web3: Web3, network: NetworkNumber, market: AaveMarketInfo, defaultWeb3: Web3): Promise<AaveV3MarketData>;
8
+ export declare function getAaveV3MarketData(web3: Web3, network: NetworkNumber, market: AaveMarketInfo, defaultWeb3: Web3, blockNumber?: 'latest' | number): Promise<AaveV3MarketData>;
9
9
  export declare const EMPTY_AAVE_DATA: {
10
10
  usedAssets: {};
11
11
  suppliedUsd: string;
@@ -28,5 +28,5 @@ export declare const EMPTY_AAVE_DATA: {
28
28
  suppliedCollateralUsd: string;
29
29
  };
30
30
  export declare const getAaveV3AccountBalances: (web3: Web3, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress) => Promise<PositionBalances>;
31
- export declare const getAaveV3AccountData: (web3: Web3, network: NetworkNumber, address: EthAddress, extractedState: any) => Promise<AaveV3PositionData>;
31
+ export declare const getAaveV3AccountData: (web3: Web3, network: NetworkNumber, address: EthAddress, extractedState: any, blockNumber?: 'latest' | number) => Promise<AaveV3PositionData>;
32
32
  export declare const getAaveV3FullPositionData: (web3: Web3, network: NetworkNumber, address: string, market: AaveMarketInfo, mainnetWeb3: Web3) => Promise<AaveV3PositionData>;
@@ -47,7 +47,7 @@ export const aaveV3EmodeCategoriesMapping = (extractedState, usedAssets) => {
47
47
  });
48
48
  return categoriesMapping;
49
49
  };
50
- export function getAaveV3MarketData(web3, network, market, defaultWeb3) {
50
+ export function getAaveV3MarketData(web3, network, market, defaultWeb3, blockNumber = 'latest') {
51
51
  return __awaiter(this, void 0, void 0, function* () {
52
52
  const _addresses = market.assets.map(a => getAssetInfo(ethToWeth(a), network).address);
53
53
  const isL2 = isLayer2Network(network);
@@ -56,9 +56,9 @@ export function getAaveV3MarketData(web3, network, market, defaultWeb3) {
56
56
  const marketAddress = market.providerAddress;
57
57
  // eslint-disable-next-line prefer-const
58
58
  let [loanInfo, eModesInfo, isBorrowAllowed] = yield Promise.all([
59
- loanInfoContract.methods.getFullTokensInfo(marketAddress, _addresses).call(),
60
- loanInfoContract.methods.getAllEmodes(marketAddress).call(),
61
- loanInfoContract.methods.isBorrowAllowed(marketAddress).call(), // Used on L2s check for PriceOracleSentinel (mainnet will always return true)
59
+ loanInfoContract.methods.getFullTokensInfo(marketAddress, _addresses).call({}, blockNumber),
60
+ loanInfoContract.methods.getAllEmodes(marketAddress).call({}, blockNumber),
61
+ loanInfoContract.methods.isBorrowAllowed(marketAddress).call({}, blockNumber), // Used on L2s check for PriceOracleSentinel (mainnet will always return true)
62
62
  ]);
63
63
  isBorrowAllowed = isLayer2Network(network) ? isBorrowAllowed : true;
64
64
  const eModeCategoriesData = {};
@@ -320,7 +320,7 @@ export const getAaveV3AccountBalances = (web3, network, block, addressMapping, a
320
320
  });
321
321
  return balances;
322
322
  });
323
- export const getAaveV3AccountData = (web3, network, address, extractedState) => __awaiter(void 0, void 0, void 0, function* () {
323
+ export const getAaveV3AccountData = (web3, network, address, extractedState, blockNumber = 'latest') => __awaiter(void 0, void 0, void 0, function* () {
324
324
  const { selectedMarket: market, assetsData, eModeCategoriesData, } = extractedState;
325
325
  let payload = Object.assign(Object.assign({}, EMPTY_AAVE_DATA), { lastUpdated: Date.now() });
326
326
  if (!address) {
@@ -354,7 +354,7 @@ export const getAaveV3AccountData = (web3, network, address, extractedState) =>
354
354
  },
355
355
  ];
356
356
  const [multicallRes, { 0: stkAaveBalance }] = yield Promise.all([
357
- multicall(multicallData, web3, network),
357
+ multicall(multicallData, web3, network, blockNumber),
358
358
  isL2 ? { 0: '0' } : getAssetsBalances(['stkAAVE'], address, network, web3),
359
359
  { 0: '0' },
360
360
  ]);
@@ -9,7 +9,7 @@ export const morphoAaveV2AssetDefaultMarket = ['DAI', 'ETH', 'USDC', 'USDT', 'WB
9
9
  export const morphoAaveV3AssetEthMarket = ['ETH', 'wstETH', 'DAI', 'USDC', 'WBTC', 'rETH', 'cbETH', 'sDAI', 'USDT'];
10
10
  export const aaveV3AssetsDefaultMarketEth = [
11
11
  'ETH', 'wstETH', 'WBTC', 'USDC', 'DAI', 'LINK', 'AAVE', 'cbETH', 'USDT', 'rETH', 'LUSD', 'CRV', 'MKR', 'SNX', 'BAL', 'UNI', 'LDO', 'ENS', '1INCH', 'FRAX', 'GHO', 'RPL', 'sDAI', 'STG', 'KNC', 'FXS', 'crvUSD', 'PYUSD', 'weETH', 'osETH', 'USDe', 'ETHx', 'sUSDe', 'tBTC', 'cbBTC', 'USDS', 'rsETH', 'LBTC', 'eBTC', 'RLUSD', 'PT eUSDe May', 'PT sUSDe July', 'USDtb',
12
- 'eUSDe', 'PT USDe July', 'PT eUSDe Aug', 'EURC', 'FBTC',
12
+ 'eUSDe', 'PT USDe July', 'PT eUSDe Aug', 'EURC', 'FBTC', 'PT sUSDe Sep',
13
13
  ];
14
14
  export const aaveV3AssetsDefaultMarketOpt = [
15
15
  'DAI', 'USDC.e', 'USDT', 'SUSD', 'AAVE', 'LINK', 'WBTC', 'ETH', 'OP', 'wstETH', 'LUSD', 'MAI', 'rETH', 'USDC',
@@ -107,7 +107,7 @@ const getApyFromDfsApi = (asset) => __awaiter(void 0, void 0, void 0, function*
107
107
  const data = yield res.json();
108
108
  return String(data.apy);
109
109
  });
110
- export const STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb', 'sUSDS', 'PT eUSDe May', 'PT sUSDe July', 'PT USDe July', 'PT eUSDe Aug', 'tETH'];
110
+ export const STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb', 'sUSDS', 'PT eUSDe May', 'PT sUSDe July', 'PT USDe July', 'PT eUSDe Aug', 'tETH', 'PT sUSDe Sep'];
111
111
  export const getStakingApy = memoize((asset, web3, blockNumber = 'latest', fromBlock = undefined) => __awaiter(void 0, void 0, void 0, function* () {
112
112
  try {
113
113
  if (asset === 'stETH' || asset === 'wstETH')
@@ -144,6 +144,8 @@ export const getStakingApy = memoize((asset, web3, blockNumber = 'latest', fromB
144
144
  return yield getApyFromDfsApi('PT USDe July');
145
145
  if (asset === 'PT eUSDe Aug')
146
146
  return yield getApyFromDfsApi('PT eUSDe Aug');
147
+ if (asset === 'PT sUSDe Sep')
148
+ return yield getApyFromDfsApi('PT sUSDe Sep');
147
149
  if (asset === 'tETH')
148
150
  return yield getApyFromDfsApi('tETH');
149
151
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defisaver/positions-sdk",
3
- "version": "1.0.26",
3
+ "version": "1.0.27-dev-1",
4
4
  "description": "",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./esm/index.js",
@@ -14,16 +14,15 @@
14
14
  "lint-check": "eslint src/",
15
15
  "generate-contracts": "node scripts/generateContracts.js",
16
16
  "test": "mocha tests/*",
17
- "test-single": "mocha ./tests/$npm_config_name.ts",
18
17
  "test:debugger": "mocha --inspect-brk tests/*",
19
- "build-test": "npm run build && npm run test",
18
+ "test-single": "mocha ./tests/$npm_config_name.ts",
20
19
  "version-bump": "git commit -am \"Version bump to $(npm version patch | cut -c 2-)\""
21
20
  },
22
21
  "keywords": [],
23
22
  "author": "",
24
23
  "license": "ISC",
25
24
  "dependencies": {
26
- "@defisaver/tokens": "^1.6.14",
25
+ "@defisaver/tokens": "^1.6.16",
27
26
  "@ethersproject/bignumber": "^5.7.0",
28
27
  "@morpho-org/morpho-aave-v3-sdk": "^1.5.3",
29
28
  "@types/lodash": "^4.17.15",
@@ -69,7 +69,7 @@ export const aaveV3EmodeCategoriesMapping = (extractedState: any, usedAssets: Aa
69
69
  return categoriesMapping;
70
70
  };
71
71
 
72
- export async function getAaveV3MarketData(web3: Web3, network: NetworkNumber, market: AaveMarketInfo, defaultWeb3: Web3): Promise<AaveV3MarketData> {
72
+ export async function getAaveV3MarketData(web3: Web3, network: NetworkNumber, market: AaveMarketInfo, defaultWeb3: Web3, blockNumber: 'latest' | number = 'latest'): Promise<AaveV3MarketData> {
73
73
  const _addresses = market.assets.map(a => getAssetInfo(ethToWeth(a), network).address);
74
74
 
75
75
  const isL2 = isLayer2Network(network);
@@ -80,9 +80,9 @@ export async function getAaveV3MarketData(web3: Web3, network: NetworkNumber, ma
80
80
 
81
81
  // eslint-disable-next-line prefer-const
82
82
  let [loanInfo, eModesInfo, isBorrowAllowed] = await Promise.all([
83
- loanInfoContract.methods.getFullTokensInfo(marketAddress, _addresses).call(),
84
- loanInfoContract.methods.getAllEmodes(marketAddress).call(),
85
- loanInfoContract.methods.isBorrowAllowed(marketAddress).call(), // Used on L2s check for PriceOracleSentinel (mainnet will always return true)
83
+ loanInfoContract.methods.getFullTokensInfo(marketAddress, _addresses).call({}, blockNumber),
84
+ loanInfoContract.methods.getAllEmodes(marketAddress).call({}, blockNumber),
85
+ loanInfoContract.methods.isBorrowAllowed(marketAddress).call({}, blockNumber), // Used on L2s check for PriceOracleSentinel (mainnet will always return true)
86
86
  ]);
87
87
  isBorrowAllowed = isLayer2Network(network) ? isBorrowAllowed : true;
88
88
 
@@ -372,7 +372,7 @@ export const getAaveV3AccountBalances = async (web3: Web3, network: NetworkNumbe
372
372
  return balances;
373
373
  };
374
374
 
375
- export const getAaveV3AccountData = async (web3: Web3, network: NetworkNumber, address: EthAddress, extractedState: any): Promise<AaveV3PositionData> => {
375
+ export const getAaveV3AccountData = async (web3: Web3, network: NetworkNumber, address: EthAddress, extractedState: any, blockNumber: 'latest' | number = 'latest'): Promise<AaveV3PositionData> => {
376
376
  const {
377
377
  selectedMarket: market, assetsData, eModeCategoriesData,
378
378
  } = extractedState;
@@ -418,7 +418,7 @@ export const getAaveV3AccountData = async (web3: Web3, network: NetworkNumber, a
418
418
  ];
419
419
 
420
420
  const [multicallRes, { 0: stkAaveBalance }] = await Promise.all([
421
- multicall(multicallData, web3, network),
421
+ multicall(multicallData, web3, network, blockNumber),
422
422
  isL2 ? { 0: '0' } : getAssetsBalances(['stkAAVE'], address, network, web3),
423
423
  { 0: '0' },
424
424
  ]);
@@ -13,7 +13,7 @@ export const morphoAaveV3AssetEthMarket = ['ETH', 'wstETH', 'DAI', 'USDC', 'WBTC
13
13
 
14
14
  export const aaveV3AssetsDefaultMarketEth = [
15
15
  'ETH', 'wstETH', 'WBTC', 'USDC', 'DAI', 'LINK', 'AAVE', 'cbETH', 'USDT', 'rETH', 'LUSD', 'CRV', 'MKR', 'SNX', 'BAL', 'UNI', 'LDO', 'ENS', '1INCH', 'FRAX', 'GHO', 'RPL', 'sDAI', 'STG', 'KNC', 'FXS', 'crvUSD', 'PYUSD', 'weETH', 'osETH', 'USDe', 'ETHx', 'sUSDe', 'tBTC', 'cbBTC', 'USDS', 'rsETH', 'LBTC', 'eBTC', 'RLUSD', 'PT eUSDe May', 'PT sUSDe July', 'USDtb',
16
- 'eUSDe', 'PT USDe July', 'PT eUSDe Aug', 'EURC', 'FBTC',
16
+ 'eUSDe', 'PT USDe July', 'PT eUSDe Aug', 'EURC', 'FBTC', 'PT sUSDe Sep',
17
17
  ];
18
18
  export const aaveV3AssetsDefaultMarketOpt = [
19
19
  'DAI', 'USDC.e', 'USDT', 'SUSD', 'AAVE', 'LINK', 'WBTC', 'ETH', 'OP', 'wstETH', 'LUSD', 'MAI', 'rETH', 'USDC',
@@ -109,7 +109,7 @@ const getApyFromDfsApi = async (asset: string) => {
109
109
  return String(data.apy);
110
110
  };
111
111
 
112
- export const STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb', 'sUSDS', 'PT eUSDe May', 'PT sUSDe July', 'PT USDe July', 'PT eUSDe Aug', 'tETH'];
112
+ export const STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb', 'sUSDS', 'PT eUSDe May', 'PT sUSDe July', 'PT USDe July', 'PT eUSDe Aug', 'tETH', 'PT sUSDe Sep'];
113
113
 
114
114
  export const getStakingApy = memoize(async (asset: string, web3: Web3, blockNumber: 'latest' | number = 'latest', fromBlock: number | undefined = undefined) => {
115
115
  try {
@@ -130,6 +130,7 @@ export const getStakingApy = memoize(async (asset: string, web3: Web3, blockNumb
130
130
  if (asset === 'PT sUSDe July') return await getApyFromDfsApi('PT sUSDe July');
131
131
  if (asset === 'PT USDe July') return await getApyFromDfsApi('PT USDe July');
132
132
  if (asset === 'PT eUSDe Aug') return await getApyFromDfsApi('PT eUSDe Aug');
133
+ if (asset === 'PT sUSDe Sep') return await getApyFromDfsApi('PT sUSDe Sep');
133
134
  if (asset === 'tETH') return await getApyFromDfsApi('tETH');
134
135
  } catch (e) {
135
136
  console.error(`Failed to fetch APY for ${asset}`);