@defisaver/positions-sdk 2.1.24-dev-savings-3 → 2.1.25-dev-pt-feb-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.
Files changed (88) hide show
  1. package/cjs/config/contracts.d.ts +0 -173
  2. package/cjs/config/contracts.js +1 -23
  3. package/cjs/contracts.d.ts +0 -1650
  4. package/cjs/contracts.js +1 -22
  5. package/cjs/fluid/index.js +4 -16
  6. package/cjs/index.d.ts +1 -2
  7. package/cjs/index.js +1 -3
  8. package/cjs/markets/aave/marketAssets.js +1 -1
  9. package/cjs/moneymarket/moneymarketCommonService.js +1 -0
  10. package/cjs/staking/staking.js +5 -0
  11. package/cjs/types/index.d.ts +0 -1
  12. package/cjs/types/index.js +0 -1
  13. package/esm/config/contracts.d.ts +0 -173
  14. package/esm/config/contracts.js +0 -22
  15. package/esm/contracts.d.ts +0 -1650
  16. package/esm/contracts.js +0 -18
  17. package/esm/fluid/index.js +4 -16
  18. package/esm/index.d.ts +1 -2
  19. package/esm/index.js +1 -2
  20. package/esm/markets/aave/marketAssets.js +1 -1
  21. package/esm/moneymarket/moneymarketCommonService.js +1 -0
  22. package/esm/staking/staking.js +5 -0
  23. package/esm/types/index.d.ts +0 -1
  24. package/esm/types/index.js +0 -1
  25. package/package.json +3 -4
  26. package/src/config/contracts.ts +1 -23
  27. package/src/contracts.ts +1 -23
  28. package/src/fluid/index.ts +4 -17
  29. package/src/index.ts +0 -2
  30. package/src/markets/aave/marketAssets.ts +1 -1
  31. package/src/moneymarket/moneymarketCommonService.ts +1 -0
  32. package/src/staking/staking.ts +3 -0
  33. package/src/types/index.ts +1 -2
  34. package/cjs/savings/index.d.ts +0 -7
  35. package/cjs/savings/index.js +0 -75
  36. package/cjs/savings/makerDSR/index.d.ts +0 -7
  37. package/cjs/savings/makerDSR/index.js +0 -94
  38. package/cjs/savings/makerDSR/options.d.ts +0 -2
  39. package/cjs/savings/makerDSR/options.js +0 -11
  40. package/cjs/savings/morphoVaults/index.d.ts +0 -7
  41. package/cjs/savings/morphoVaults/index.js +0 -118
  42. package/cjs/savings/morphoVaults/options.d.ts +0 -16
  43. package/cjs/savings/morphoVaults/options.js +0 -112
  44. package/cjs/savings/yearnVaults/index.d.ts +0 -9
  45. package/cjs/savings/yearnVaults/index.js +0 -113
  46. package/cjs/savings/yearnVaults/options.d.ts +0 -6
  47. package/cjs/savings/yearnVaults/options.js +0 -29
  48. package/cjs/types/savings/index.d.ts +0 -15
  49. package/cjs/types/savings/index.js +0 -19
  50. package/cjs/types/savings/makerDsr.d.ts +0 -11
  51. package/cjs/types/savings/makerDsr.js +0 -7
  52. package/cjs/types/savings/morphoVaults.d.ts +0 -23
  53. package/cjs/types/savings/morphoVaults.js +0 -19
  54. package/cjs/types/savings/yearnVaults.d.ts +0 -12
  55. package/cjs/types/savings/yearnVaults.js +0 -9
  56. package/esm/savings/index.d.ts +0 -7
  57. package/esm/savings/index.js +0 -36
  58. package/esm/savings/makerDSR/index.d.ts +0 -7
  59. package/esm/savings/makerDSR/index.js +0 -53
  60. package/esm/savings/makerDSR/options.d.ts +0 -2
  61. package/esm/savings/makerDSR/options.js +0 -8
  62. package/esm/savings/morphoVaults/index.d.ts +0 -7
  63. package/esm/savings/morphoVaults/index.js +0 -77
  64. package/esm/savings/morphoVaults/options.d.ts +0 -16
  65. package/esm/savings/morphoVaults/options.js +0 -108
  66. package/esm/savings/yearnVaults/index.d.ts +0 -9
  67. package/esm/savings/yearnVaults/index.js +0 -70
  68. package/esm/savings/yearnVaults/options.d.ts +0 -6
  69. package/esm/savings/yearnVaults/options.js +0 -25
  70. package/esm/types/savings/index.d.ts +0 -15
  71. package/esm/types/savings/index.js +0 -3
  72. package/esm/types/savings/makerDsr.d.ts +0 -11
  73. package/esm/types/savings/makerDsr.js +0 -4
  74. package/esm/types/savings/morphoVaults.d.ts +0 -23
  75. package/esm/types/savings/morphoVaults.js +0 -16
  76. package/esm/types/savings/yearnVaults.d.ts +0 -12
  77. package/esm/types/savings/yearnVaults.js +0 -6
  78. package/src/savings/index.ts +0 -43
  79. package/src/savings/makerDsr/index.ts +0 -54
  80. package/src/savings/makerDsr/options.ts +0 -9
  81. package/src/savings/morphoVaults/index.ts +0 -81
  82. package/src/savings/morphoVaults/options.ts +0 -123
  83. package/src/savings/yearnVaults/index.ts +0 -74
  84. package/src/savings/yearnVaults/options.ts +0 -30
  85. package/src/types/savings/index.ts +0 -18
  86. package/src/types/savings/makerDsr.ts +0 -13
  87. package/src/types/savings/morphoVaults.ts +0 -25
  88. package/src/types/savings/yearnVaults.ts +0 -14
package/esm/contracts.js CHANGED
@@ -45,22 +45,6 @@ export const createViemContractFromConfigFunc = (name, _address) => (client, net
45
45
  client,
46
46
  });
47
47
  };
48
- export const getMorphoVaultContractViem = (client, address) => {
49
- const abi = getConfigContractAbi('MorphoVault');
50
- return getContract({
51
- address,
52
- abi,
53
- client,
54
- });
55
- };
56
- export const getYearnVaultContractViem = (client, address) => {
57
- const abi = getConfigContractAbi('YearnVault');
58
- return getContract({
59
- address,
60
- abi,
61
- client,
62
- });
63
- };
64
48
  export const MorphoBlueViewContractViem = createViemContractFromConfigFunc('MorphoBlueView');
65
49
  export const AaveLoanInfoV2ContractViem = createViemContractFromConfigFunc('AaveLoanInfoV2');
66
50
  export const AaveV3ViewContractViem = createViemContractFromConfigFunc('AaveV3View');
@@ -105,5 +89,3 @@ export const SparkRewardsControllerViem = createViemContractFromConfigFunc('Spar
105
89
  export const AaveRewardsControllerViem = createViemContractFromConfigFunc('AaveRewardsController');
106
90
  export const LiquityV2sBoldVaultViem = createViemContractFromConfigFunc('LiquityV2sBoldVault');
107
91
  export const StkAAVEViem = createViemContractFromConfigFunc('StkAAVE');
108
- export const YearnViewContractViem = createViemContractFromConfigFunc('YearnView');
109
- export const MakerDsrContractViem = createViemContractFromConfigFunc('MakerDsr');
@@ -1130,23 +1130,11 @@ export const _getAllFluidMarketDataChunked = (network, provider) => __awaiter(vo
1130
1130
  });
1131
1131
  export const getAllFluidMarketDataChunked = (network, provider) => __awaiter(void 0, void 0, void 0, function* () { return _getAllFluidMarketDataChunked(network, getViemProvider(provider, network, { batch: { multicall: true } })); });
1132
1132
  export const _getFluidTokenData = (provider, network, token) => __awaiter(void 0, void 0, void 0, function* () {
1133
- var _a, _b;
1134
1133
  const view = FluidViewContractViem(provider, network);
1135
1134
  const fTokenAddress = getFTokenAddress(token, network);
1136
- const [data, rewardsApiResponse,] = yield Promise.all([
1137
- yield view.read.getFTokenData([fTokenAddress]),
1138
- fetch(`https://api.fluid.instadapp.io/v2/lending/${network}/tokens/${fTokenAddress}`),
1139
- ]);
1140
- let rewardsData = { rewards: [] };
1141
- if (!rewardsApiResponse.ok) {
1142
- console.log('External API Failure: Failed to fetch fluid rewards APY');
1143
- }
1144
- else {
1145
- rewardsData = yield rewardsApiResponse.json();
1146
- }
1147
- const supplyRate = new Dec((rewardsData === null || rewardsData === void 0 ? void 0 : rewardsData.supplyRate) || '0').div(100).toString();
1148
- const rewardRates = ((_a = rewardsData === null || rewardsData === void 0 ? void 0 : rewardsData.rewards) === null || _a === void 0 ? void 0 : _a.reduce((acc, item) => acc.add(new Dec(item.rate || '0').div(100)), new Dec(0))) || '0';
1149
- const stakeRate = new Dec(((_b = rewardsData === null || rewardsData === void 0 ? void 0 : rewardsData.asset) === null || _b === void 0 ? void 0 : _b.stakingApr) || '0').div(100).toString();
1135
+ const data = yield view.read.getFTokenData([fTokenAddress]);
1136
+ const supplyRate = new Dec(data.supplyRate).div(100).toString();
1137
+ const rewardsRate = new Dec(data.rewardsRate).div(1e12).toString();
1150
1138
  const decimals = data.decimals.toString();
1151
1139
  const depositRate = new Dec(getEthAmountForDecimals(data.convertToShares.toString(), decimals)).toString();
1152
1140
  const withdrawRate = new Dec(getEthAmountForDecimals(data.convertToAssets.toString(), decimals)).toString();
@@ -1156,7 +1144,7 @@ export const _getFluidTokenData = (provider, network, token) => __awaiter(void 0
1156
1144
  decimals,
1157
1145
  totalDeposited: getEthAmountForDecimals(data.totalAssets.toString(), decimals),
1158
1146
  withdrawable: getEthAmountForDecimals(data.withdrawable.toString(), decimals),
1159
- apy: new Dec(supplyRate).plus(rewardRates).plus(stakeRate).toString(),
1147
+ apy: new Dec(supplyRate).add(rewardsRate).toString(),
1160
1148
  depositRate,
1161
1149
  withdrawRate,
1162
1150
  };
package/esm/index.d.ts CHANGED
@@ -19,6 +19,5 @@ import * as llamaLend from './llamaLend';
19
19
  import * as eulerV2 from './eulerV2';
20
20
  import * as portfolio from './portfolio';
21
21
  import * as claiming from './claiming';
22
- import * as savings from './savings';
23
22
  export * from './types';
24
- export { aaveV2, aaveV3, compoundV2, compoundV3, spark, curveUsd, liquity, liquityV2, maker, exchange, staking, moneymarket, markets, helpers, morphoBlue, llamaLend, eulerV2, fluid, portfolio, claiming, savings, };
23
+ export { aaveV2, aaveV3, compoundV2, compoundV3, spark, curveUsd, liquity, liquityV2, maker, exchange, staking, moneymarket, markets, helpers, morphoBlue, llamaLend, eulerV2, fluid, portfolio, claiming, };
package/esm/index.js CHANGED
@@ -19,6 +19,5 @@ import * as llamaLend from './llamaLend';
19
19
  import * as eulerV2 from './eulerV2';
20
20
  import * as portfolio from './portfolio';
21
21
  import * as claiming from './claiming';
22
- import * as savings from './savings';
23
22
  export * from './types';
24
- export { aaveV2, aaveV3, compoundV2, compoundV3, spark, curveUsd, liquity, liquityV2, maker, exchange, staking, moneymarket, markets, helpers, morphoBlue, llamaLend, eulerV2, fluid, portfolio, claiming, savings, };
23
+ export { aaveV2, aaveV3, compoundV2, compoundV3, spark, curveUsd, liquity, liquityV2, maker, exchange, staking, moneymarket, markets, helpers, morphoBlue, llamaLend, eulerV2, fluid, portfolio, claiming, };
@@ -7,7 +7,7 @@ export const aaveV1AssetsDefaultMarket = [
7
7
  export const aaveV2AssetsDefaultMarket = ['USDT', 'WBTC', 'ETH', 'YFI', 'ZRX', 'UNI', 'AAVE', 'BAT', 'BUSD', 'DAI', 'ENJ', 'KNCL', 'LINK', 'MANA', 'MKR', 'REN', 'SNX', 'SUSD', 'TUSD', 'USDC', 'CRV', 'GUSD', 'BAL', 'xSUSHI', 'RENFIL', 'RAI', 'AMPL', 'USDP', 'DPI', 'FRAX', 'FEI', 'stETH', 'ENS', 'UST', 'CVX', '1INCH', 'LUSD'];
8
8
  export const aaveV3AssetsDefaultMarketEth = [
9
9
  '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',
10
- 'eUSDe', 'PT USDe July', 'PT eUSDe Aug', 'EURC', 'FBTC', 'PT sUSDe Sep', 'PT USDe Sep', 'tETH', 'ezETH', 'XAUt', 'PT sUSDe Nov', 'PT USDe Nov',
10
+ 'eUSDe', 'PT USDe July', 'PT eUSDe Aug', 'EURC', 'FBTC', 'PT sUSDe Sep', 'PT USDe Sep', 'tETH', 'ezETH', 'XAUt', 'PT sUSDe Nov', 'PT USDe Nov', 'PT sUSDe Feb', 'PT USDe Feb',
11
11
  ];
12
12
  export const aaveV3AssetsDefaultMarketOpt = [
13
13
  'DAI', 'USDC.e', 'USDT', 'SUSD', 'AAVE', 'LINK', 'WBTC', 'ETH', 'OP', 'wstETH', 'LUSD', 'MAI', 'rETH', 'USDC',
@@ -20,6 +20,7 @@ export const STABLE_ASSETS = [
20
20
  'DAI', 'USDC', 'USDT', 'TUSD', 'USDP', 'GUSD', 'BUSD', 'SUSD', 'FRAX', 'LUSD', 'USDC.e', 'GHO', 'sDAI', 'USDA',
21
21
  'USDe', 'sUSDe', 'USDS', 'sUSDS', 'USR', 'EURC', 'BOLD', 'BOLD Legacy', 'RLUSD', 'PT sUSDe July', 'PT eUSDe May',
22
22
  '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',
23
+ 'PT sUSDe Feb', 'PT USDe Feb',
23
24
  ];
24
25
  export const isLeveragedPos = (usedAssets, dustLimit = 5) => {
25
26
  let borrowUnstable = 0;
@@ -66,6 +66,7 @@ export const STAKING_ASSETS = [
66
66
  'cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH',
67
67
  'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb', 'sUSDS', 'tETH', 'PT sUSDe Sep', 'PT USDe Sep',
68
68
  'PT sUSDe Nov', 'PT USDe Nov', 'PT USDe Jan', 'PT sUSDe Jan', 'wrsETH', 'wstETH', 'syrupUSDT', 'syrupUSDC', 'wstUSR',
69
+ 'PT sUSDe Feb', 'PT USDe Feb',
69
70
  ];
70
71
  export const getStakingApy = memoize((asset_1, ...args_1) => __awaiter(void 0, [asset_1, ...args_1], void 0, function* (asset, network = NetworkNumber.Eth) {
71
72
  try {
@@ -125,6 +126,10 @@ export const getStakingApy = memoize((asset_1, ...args_1) => __awaiter(void 0, [
125
126
  return yield getApyFromDfsApi('syrupUSDC');
126
127
  if (asset === 'wstUSR')
127
128
  return yield getApyFromDfsApi('wstUSR');
129
+ if (asset === 'PT sUSDe Feb')
130
+ return yield getApyFromDfsApi('PT sUSDe Feb', network);
131
+ if (asset === 'PT USDe Feb')
132
+ return yield getApyFromDfsApi('PT USDe Feb', network);
128
133
  }
129
134
  catch (e) {
130
135
  console.error(`Failed to fetch APY for ${asset}`);
@@ -12,4 +12,3 @@ export * from './fluid';
12
12
  export * from './portfolio';
13
13
  export * from './merit';
14
14
  export * from './merkl';
15
- export * from './savings';
@@ -12,4 +12,3 @@ export * from './fluid';
12
12
  export * from './portfolio';
13
13
  export * from './merit';
14
14
  export * from './merkl';
15
- export * from './savings';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defisaver/positions-sdk",
3
- "version": "2.1.24-dev-savings-3",
3
+ "version": "2.1.25-dev-pt-feb-dev",
4
4
  "description": "",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./esm/index.js",
@@ -21,14 +21,13 @@
21
21
  "author": "",
22
22
  "license": "ISC",
23
23
  "dependencies": {
24
- "@defisaver/tokens": "^1.7.12",
24
+ "@defisaver/tokens": "1.7.13-dev-pt-feb-dev",
25
25
  "@types/lodash": "^4.17.15",
26
26
  "@types/memoizee": "^0.4.12",
27
27
  "decimal.js": "^10.6.0",
28
28
  "lodash": "^4.17.21",
29
29
  "memoizee": "^0.4.17",
30
- "viem": "^2.37.9",
31
- "graphql-request": "^1.8.2"
30
+ "viem": "^2.37.9"
32
31
  },
33
32
  "devDependencies": {
34
33
  "@defisaver/eslint-config": "^1.0.1",
@@ -1257,26 +1257,4 @@ export const StkAAVE = {
1257
1257
  "address": "0x4da27a545c0c5B758a6BA100e3a049001de870f5",
1258
1258
  }
1259
1259
  }
1260
- } as const;
1261
- export const MorphoVault = {
1262
- "abi": [{"inputs":[],"name":"acceptTimelock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"convertToAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DECIMALS_OFFSET","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],
1263
- } as const;
1264
- export const YearnVault = {
1265
- "abi": [{"stateMutability":"view","type":"function","name":"balanceOf","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":3923},{"stateMutability":"view","type":"function","name":"totalAssets","inputs":[],"outputs":[{"name":"","type":"uint256"}],"gas":8698},{"stateMutability":"view","type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256"}],"gas":3768}]
1266
- } as const;
1267
- export const YearnView = {
1268
- "abi": [{"inputs":[{"internalType":"address","name":"_vault","type":"address"}],"name":"getPoolLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],
1269
- "networks": {
1270
- "1": {
1271
- "address": "0x36314D468E1da48Fb637fFB7c7DBDF222eC3FFe7",
1272
- }
1273
- }
1274
- } as const;
1275
- export const MakerDsr = {
1276
- "abi": [{"constant":true,"inputs":[],"name":"chi","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pie","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Pie","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}],
1277
- "networks": {
1278
- "1": {
1279
- "address": "0x197e90f9fad81970ba7976f33cbd77088e5d7cf7",
1280
- }
1281
- }
1282
- }
1260
+ } as const;
package/src/contracts.ts CHANGED
@@ -67,24 +67,6 @@ export const createViemContractFromConfigFunc = <TKey extends ConfigKey>(name: T
67
67
  });
68
68
  };
69
69
 
70
- export const getMorphoVaultContractViem = (client: Client, address: HexString) => {
71
- const abi = getConfigContractAbi('MorphoVault') as typeof configRaw['MorphoVault']['abi'];
72
- return getContract({
73
- address,
74
- abi,
75
- client,
76
- });
77
- };
78
-
79
- export const getYearnVaultContractViem = (client: Client, address: HexString) => {
80
- const abi = getConfigContractAbi('YearnVault') as typeof configRaw['YearnVault']['abi'];
81
- return getContract({
82
- address,
83
- abi,
84
- client,
85
- });
86
- };
87
-
88
70
  export const MorphoBlueViewContractViem = createViemContractFromConfigFunc('MorphoBlueView');
89
71
  export const AaveLoanInfoV2ContractViem = createViemContractFromConfigFunc('AaveLoanInfoV2');
90
72
  export const AaveV3ViewContractViem = createViemContractFromConfigFunc('AaveV3View');
@@ -136,8 +118,4 @@ export const SparkRewardsControllerViem = createViemContractFromConfigFunc('Spar
136
118
 
137
119
  export const AaveRewardsControllerViem = createViemContractFromConfigFunc('AaveRewardsController');
138
120
  export const LiquityV2sBoldVaultViem = createViemContractFromConfigFunc('LiquityV2sBoldVault');
139
- export const StkAAVEViem = createViemContractFromConfigFunc('StkAAVE');
140
-
141
- export const YearnViewContractViem = createViemContractFromConfigFunc('YearnView');
142
-
143
- export const MakerDsrContractViem = createViemContractFromConfigFunc('MakerDsr');
121
+ export const StkAAVEViem = createViemContractFromConfigFunc('StkAAVE');
@@ -1526,22 +1526,9 @@ export const getAllFluidMarketDataChunked = async (
1526
1526
  export const _getFluidTokenData = async (provider: Client, network: NetworkNumber, token: string) => {
1527
1527
  const view = FluidViewContractViem(provider, network);
1528
1528
  const fTokenAddress = getFTokenAddress(token, network);
1529
- const [
1530
- data,
1531
- rewardsApiResponse,
1532
- ] = await Promise.all([
1533
- await view.read.getFTokenData([fTokenAddress]),
1534
- fetch(`https://api.fluid.instadapp.io/v2/lending/${network}/tokens/${fTokenAddress}`),
1535
- ]);
1536
- let rewardsData = { rewards: [] } as any;
1537
- if (!rewardsApiResponse.ok) {
1538
- console.log('External API Failure: Failed to fetch fluid rewards APY');
1539
- } else {
1540
- rewardsData = await rewardsApiResponse.json();
1541
- }
1542
- const supplyRate = new Dec(rewardsData?.supplyRate || '0').div(100).toString();
1543
- const rewardRates = rewardsData?.rewards?.reduce((acc: Dec, item: any) => acc.add(new Dec(item.rate || '0').div(100)), new Dec(0)) || '0';
1544
- const stakeRate = new Dec(rewardsData?.asset?.stakingApr || '0').div(100).toString();
1529
+ const data = await view.read.getFTokenData([fTokenAddress]);
1530
+ const supplyRate = new Dec(data.supplyRate).div(100).toString();
1531
+ const rewardsRate = new Dec(data.rewardsRate).div(1e12).toString();
1545
1532
  const decimals = data.decimals.toString();
1546
1533
 
1547
1534
  const depositRate = new Dec(getEthAmountForDecimals(data.convertToShares.toString(), decimals)).toString();
@@ -1553,7 +1540,7 @@ export const _getFluidTokenData = async (provider: Client, network: NetworkNumbe
1553
1540
  decimals,
1554
1541
  totalDeposited: getEthAmountForDecimals(data.totalAssets.toString(), decimals),
1555
1542
  withdrawable: getEthAmountForDecimals(data.withdrawable.toString(), decimals),
1556
- apy: new Dec(supplyRate).plus(rewardRates).plus(stakeRate).toString(),
1543
+ apy: new Dec(supplyRate).add(rewardsRate).toString(),
1557
1544
  depositRate,
1558
1545
  withdrawRate,
1559
1546
  };
package/src/index.ts CHANGED
@@ -20,7 +20,6 @@ import * as llamaLend from './llamaLend';
20
20
  import * as eulerV2 from './eulerV2';
21
21
  import * as portfolio from './portfolio';
22
22
  import * as claiming from './claiming';
23
- import * as savings from './savings';
24
23
 
25
24
  export * from './types';
26
25
 
@@ -45,5 +44,4 @@ export {
45
44
  fluid,
46
45
  portfolio,
47
46
  claiming,
48
- savings,
49
47
  };
@@ -10,7 +10,7 @@ export const aaveV2AssetsDefaultMarket = ['USDT', 'WBTC', 'ETH', 'YFI', 'ZRX', '
10
10
 
11
11
  export const aaveV3AssetsDefaultMarketEth = [
12
12
  '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',
13
- 'eUSDe', 'PT USDe July', 'PT eUSDe Aug', 'EURC', 'FBTC', 'PT sUSDe Sep', 'PT USDe Sep', 'tETH', 'ezETH', 'XAUt', 'PT sUSDe Nov', 'PT USDe Nov',
13
+ 'eUSDe', 'PT USDe July', 'PT eUSDe Aug', 'EURC', 'FBTC', 'PT sUSDe Sep', 'PT USDe Sep', 'tETH', 'ezETH', 'XAUt', 'PT sUSDe Nov', 'PT USDe Nov', 'PT sUSDe Feb', 'PT USDe Feb',
14
14
  ];
15
15
  export const aaveV3AssetsDefaultMarketOpt = [
16
16
  'DAI', 'USDC.e', 'USDT', 'SUSD', 'AAVE', 'LINK', 'WBTC', 'ETH', 'OP', 'wstETH', 'LUSD', 'MAI', 'rETH', 'USDC',
@@ -24,6 +24,7 @@ export const STABLE_ASSETS = [
24
24
  'DAI', 'USDC', 'USDT', 'TUSD', 'USDP', 'GUSD', 'BUSD', 'SUSD', 'FRAX', 'LUSD', 'USDC.e', 'GHO', 'sDAI', 'USDA',
25
25
  'USDe', 'sUSDe', 'USDS', 'sUSDS', 'USR', 'EURC', 'BOLD', 'BOLD Legacy', 'RLUSD', 'PT sUSDe July', 'PT eUSDe May',
26
26
  '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',
27
+ 'PT sUSDe Feb', 'PT USDe Feb',
27
28
  ];
28
29
 
29
30
  export const isLeveragedPos = (usedAssets: MMUsedAssets, dustLimit = 5) => {
@@ -64,6 +64,7 @@ export const STAKING_ASSETS = [
64
64
  'cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH',
65
65
  'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb', 'sUSDS', 'tETH', 'PT sUSDe Sep', 'PT USDe Sep',
66
66
  'PT sUSDe Nov', 'PT USDe Nov', 'PT USDe Jan', 'PT sUSDe Jan', 'wrsETH', 'wstETH', 'syrupUSDT', 'syrupUSDC', 'wstUSR',
67
+ 'PT sUSDe Feb', 'PT USDe Feb',
67
68
  ];
68
69
 
69
70
  export const getStakingApy = memoize(async (asset: string, network: number = NetworkNumber.Eth) => {
@@ -96,6 +97,8 @@ export const getStakingApy = memoize(async (asset: string, network: number = Net
96
97
  if (asset === 'syrupUSDT') return await getApyFromDfsApi('syrupUSDT');
97
98
  if (asset === 'syrupUSDC') return await getApyFromDfsApi('syrupUSDC');
98
99
  if (asset === 'wstUSR') return await getApyFromDfsApi('wstUSR');
100
+ if (asset === 'PT sUSDe Feb') return await getApyFromDfsApi('PT sUSDe Feb', network);
101
+ if (asset === 'PT USDe Feb') return await getApyFromDfsApi('PT USDe Feb', network);
99
102
  } catch (e) {
100
103
  console.error(`Failed to fetch APY for ${asset}`);
101
104
  }
@@ -11,5 +11,4 @@ export * from './euler';
11
11
  export * from './fluid';
12
12
  export * from './portfolio';
13
13
  export * from './merit';
14
- export * from './merkl';
15
- export * from './savings';
14
+ export * from './merkl';
@@ -1,7 +0,0 @@
1
- import { MakerDsrType, MorphoVaultType, YearnVaultType } from '../types';
2
- import { EthAddress, EthereumProvider, NetworkNumber } from '../types/common';
3
- import * as morphoVaults from './morphoVaults';
4
- import * as yearnVaults from './yearnVaults';
5
- import * as makerDsr from './makerDSR';
6
- export { morphoVaults, yearnVaults, makerDsr, };
7
- export declare const getSavingsData: (provider: EthereumProvider, network: NetworkNumber, accounts: EthAddress[]) => Promise<Partial<Record<MakerDsrType | MorphoVaultType | YearnVaultType, import("../types").SavingsVaultData>>>;
@@ -1,75 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
- return new (P || (P = Promise))(function (resolve, reject) {
38
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
- step((generator = generator.apply(thisArg, _arguments || [])).next());
42
- });
43
- };
44
- Object.defineProperty(exports, "__esModule", { value: true });
45
- exports.getSavingsData = exports.makerDsr = exports.yearnVaults = exports.morphoVaults = void 0;
46
- const types_1 = require("../types");
47
- const morphoVaults = __importStar(require("./morphoVaults"));
48
- exports.morphoVaults = morphoVaults;
49
- const yearnVaults = __importStar(require("./yearnVaults"));
50
- exports.yearnVaults = yearnVaults;
51
- const makerDsr = __importStar(require("./makerDSR"));
52
- exports.makerDsr = makerDsr;
53
- const getSavingsData = (provider, network, accounts) => __awaiter(void 0, void 0, void 0, function* () {
54
- const morphoVaultsList = Object.keys(morphoVaults.morphoVaultsOptions.MORPHO_VAULTS);
55
- const yearnVaultsList = Object.keys(yearnVaults.yearnVaultsOptions.YEARN_VAULTS);
56
- const savingsData = {};
57
- yield Promise.all([
58
- ...morphoVaultsList.map((vaultKey) => __awaiter(void 0, void 0, void 0, function* () {
59
- const vault = morphoVaults.morphoVaultsOptions.getMorphoVault(vaultKey);
60
- const data = yield morphoVaults.getMorphoVaultData(provider, network, vault, accounts);
61
- savingsData[vaultKey] = data;
62
- })),
63
- ...yearnVaultsList.map((vaultKey) => __awaiter(void 0, void 0, void 0, function* () {
64
- const vault = yearnVaults.yearnVaultsOptions.getYearnVault(vaultKey);
65
- const data = yield yearnVaults.getYearnVaultData(provider, network, vault, accounts);
66
- savingsData[vaultKey] = data;
67
- })),
68
- (() => __awaiter(void 0, void 0, void 0, function* () {
69
- const data = yield makerDsr.getMakerDsrData(provider, network, accounts);
70
- savingsData[types_1.MakerDsrType.MakerDsrVault] = data;
71
- }))(),
72
- ]);
73
- return savingsData;
74
- });
75
- exports.getSavingsData = getSavingsData;
@@ -1,7 +0,0 @@
1
- import { Client } from 'viem';
2
- import { SavingsVaultData } from '../../types';
3
- import { EthAddress, EthereumProvider, NetworkNumber } from '../../types/common';
4
- import * as makerDsrOptions from './options';
5
- export { makerDsrOptions, };
6
- export declare const _getMakerDsrData: (provider: Client, network: NetworkNumber, accounts: EthAddress[]) => Promise<SavingsVaultData>;
7
- export declare function getMakerDsrData(provider: EthereumProvider, network: NetworkNumber, accounts: EthAddress[]): Promise<SavingsVaultData>;
@@ -1,94 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
- return new (P || (P = Promise))(function (resolve, reject) {
38
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
- step((generator = generator.apply(thisArg, _arguments || [])).next());
42
- });
43
- };
44
- var __importDefault = (this && this.__importDefault) || function (mod) {
45
- return (mod && mod.__esModule) ? mod : { "default": mod };
46
- };
47
- Object.defineProperty(exports, "__esModule", { value: true });
48
- exports._getMakerDsrData = exports.makerDsrOptions = void 0;
49
- exports.getMakerDsrData = getMakerDsrData;
50
- const decimal_js_1 = __importDefault(require("decimal.js"));
51
- const viem_1 = require("../../services/viem");
52
- const types_1 = require("../../types");
53
- const makerDsrOptions = __importStar(require("./options"));
54
- exports.makerDsrOptions = makerDsrOptions;
55
- const contracts_1 = require("../../contracts");
56
- const _getMakerDsrData = (provider, network, accounts) => __awaiter(void 0, void 0, void 0, function* () {
57
- const contract = (0, contracts_1.MakerDsrContractViem)(provider, network);
58
- const pieAmounts = {};
59
- const [Pie, chi] = yield Promise.all([
60
- contract.read.Pie(),
61
- contract.read.chi(),
62
- ...accounts.map((account) => __awaiter(void 0, void 0, void 0, function* () {
63
- const pieAmount = yield contract.read.pie([account]);
64
- pieAmounts[account] = pieAmount;
65
- })),
66
- ]);
67
- const totalSupplyRad = new decimal_js_1.default(Pie).mul(chi).toString();
68
- const poolSize = new decimal_js_1.default(totalSupplyRad).div(1e45).toString();
69
- const supplied = {};
70
- accounts.forEach((account) => {
71
- const pie = pieAmounts[account] || BigInt(0);
72
- const radAmount = new decimal_js_1.default(pie).mul(chi).toString();
73
- supplied[account.toLowerCase()] = new decimal_js_1.default(radAmount).div(1e45).toString();
74
- });
75
- return {
76
- poolSize,
77
- liquidity: poolSize,
78
- supplied,
79
- asset: 'DAI',
80
- optionType: types_1.MakerDsrType.MakerDsrVault,
81
- };
82
- });
83
- exports._getMakerDsrData = _getMakerDsrData;
84
- function getMakerDsrData(provider, network, accounts) {
85
- return __awaiter(this, void 0, void 0, function* () {
86
- return (0, exports._getMakerDsrData)((0, viem_1.getViemProvider)(provider, network, {
87
- batch: {
88
- multicall: {
89
- batchSize: 2500000,
90
- },
91
- },
92
- }), network, accounts);
93
- });
94
- }
@@ -1,2 +0,0 @@
1
- import { MakerDsrVault } from '../../types';
2
- export declare const MAKER_DSR_VAULT: MakerDsrVault;
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MAKER_DSR_VAULT = void 0;
4
- const types_1 = require("../../types");
5
- exports.MAKER_DSR_VAULT = {
6
- type: types_1.MakerDsrType.MakerDsrVault,
7
- name: 'Maker DSR',
8
- address: '0x197e90f9fad81970ba7976f33cbd77088e5d7cf7',
9
- asset: 'DAI',
10
- deploymentBlock: 8928160,
11
- };
@@ -1,7 +0,0 @@
1
- import { Client } from 'viem';
2
- import * as morphoVaultsOptions from './options';
3
- import { EthAddress, EthereumProvider, NetworkNumber } from '../../types/common';
4
- import { MorphoVault, SavingsVaultData } from '../../types';
5
- export { morphoVaultsOptions, };
6
- export declare const _getMorphoVaultData: (provider: Client, network: NetworkNumber, morphoVault: MorphoVault, accounts: EthAddress[]) => Promise<SavingsVaultData>;
7
- export declare function getMorphoVaultData(provider: EthereumProvider, network: NetworkNumber, morphoVault: MorphoVault, accounts: EthAddress[]): Promise<SavingsVaultData>;