@defisaver/positions-sdk 2.1.24-dev-savings-2 → 2.1.24-dev-savings-4

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.
@@ -1146,11 +1146,23 @@ exports._getAllFluidMarketDataChunked = _getAllFluidMarketDataChunked;
1146
1146
  const getAllFluidMarketDataChunked = (network, provider) => __awaiter(void 0, void 0, void 0, function* () { return (0, exports._getAllFluidMarketDataChunked)(network, (0, viem_1.getViemProvider)(provider, network, { batch: { multicall: true } })); });
1147
1147
  exports.getAllFluidMarketDataChunked = getAllFluidMarketDataChunked;
1148
1148
  const _getFluidTokenData = (provider, network, token) => __awaiter(void 0, void 0, void 0, function* () {
1149
+ var _a, _b;
1149
1150
  const view = (0, contracts_1.FluidViewContractViem)(provider, network);
1150
1151
  const fTokenAddress = (0, markets_1.getFTokenAddress)(token, network);
1151
- const data = yield view.read.getFTokenData([fTokenAddress]);
1152
- const supplyRate = new decimal_js_1.default(data.supplyRate).div(100).toString();
1153
- const rewardsRate = new decimal_js_1.default(data.rewardsRate).div(1e12).toString();
1152
+ const [data, rewardsApiResponse,] = yield Promise.all([
1153
+ yield view.read.getFTokenData([fTokenAddress]),
1154
+ fetch(`https://api.fluid.instadapp.io/v2/lending/${network}/tokens/${fTokenAddress}`),
1155
+ ]);
1156
+ let rewardsData = { rewards: [] };
1157
+ if (!rewardsApiResponse.ok) {
1158
+ console.log('External API Failure: Failed to fetch fluid rewards APY');
1159
+ }
1160
+ else {
1161
+ rewardsData = yield rewardsApiResponse.json();
1162
+ }
1163
+ const supplyRate = new decimal_js_1.default((rewardsData === null || rewardsData === void 0 ? void 0 : rewardsData.supplyRate) || '0').div(100).toString();
1164
+ 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 decimal_js_1.default(item.rate || '0').div(100)), new decimal_js_1.default(0))) || '0';
1165
+ const stakeRate = new decimal_js_1.default(((_b = rewardsData === null || rewardsData === void 0 ? void 0 : rewardsData.asset) === null || _b === void 0 ? void 0 : _b.stakingApr) || '0').div(100).toString();
1154
1166
  const decimals = data.decimals.toString();
1155
1167
  const depositRate = new decimal_js_1.default((0, utils_1.getEthAmountForDecimals)(data.convertToShares.toString(), decimals)).toString();
1156
1168
  const withdrawRate = new decimal_js_1.default((0, utils_1.getEthAmountForDecimals)(data.convertToAssets.toString(), decimals)).toString();
@@ -1160,7 +1172,7 @@ const _getFluidTokenData = (provider, network, token) => __awaiter(void 0, void
1160
1172
  decimals,
1161
1173
  totalDeposited: (0, utils_1.getEthAmountForDecimals)(data.totalAssets.toString(), decimals),
1162
1174
  withdrawable: (0, utils_1.getEthAmountForDecimals)(data.withdrawable.toString(), decimals),
1163
- apy: new decimal_js_1.default(supplyRate).add(rewardsRate).toString(),
1175
+ apy: new decimal_js_1.default(supplyRate).plus(rewardRates).plus(stakeRate).toString(),
1164
1176
  depositRate,
1165
1177
  withdrawRate,
1166
1178
  };
@@ -6,7 +6,7 @@ exports.MORPHO_VAULT_FLAGSHIP_ETH = {
6
6
  type: types_1.MorphoVaultType.MorphoVaultFlagshipEth,
7
7
  name: 'Flagship ETH',
8
8
  address: '0x38989BBA00BDF8181F4082995b3DEAe96163aC5D',
9
- asset: 'ETH',
9
+ asset: 'WETH',
10
10
  deploymentBlock: 18927491,
11
11
  };
12
12
  exports.MORPHO_VAULT_GAUNTLET_USDC_CORE = {
@@ -27,21 +27,21 @@ exports.MORPHO_VAULT_RE7_WETH = {
27
27
  type: types_1.MorphoVaultType.MorphoVaultRe7Weth,
28
28
  name: 'RE7 WETH',
29
29
  address: '0x78Fc2c2eD1A4cDb5402365934aE5648aDAd094d0',
30
- asset: 'ETH',
30
+ asset: 'WETH',
31
31
  deploymentBlock: 19121118,
32
32
  };
33
33
  exports.MORPHO_VAULT_GAUNTLET_WETH_CORE = {
34
34
  type: types_1.MorphoVaultType.MorphoVaultGauntletWETHCore,
35
35
  name: 'Gauntlet WETH Core',
36
36
  address: '0x4881Ef0BF6d2365D3dd6499ccd7532bcdBCE0658',
37
- asset: 'ETH',
37
+ asset: 'WETH',
38
38
  deploymentBlock: 19541126,
39
39
  };
40
40
  exports.MORPHO_VAULT_GAUNTLET_WETH_PRIME = {
41
41
  type: types_1.MorphoVaultType.MorphoVaultGauntletWETHPrime,
42
42
  name: 'Gauntlet WETH Prime',
43
43
  address: '0x2371e134e3455e0593363cBF89d3b6cf53740618',
44
- asset: 'ETH',
44
+ asset: 'WETH',
45
45
  deploymentBlock: 19372149,
46
46
  };
47
47
  exports.MORPHO_VAULT_BOOSTED_USDC = {
@@ -1130,11 +1130,23 @@ 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;
1133
1134
  const view = FluidViewContractViem(provider, network);
1134
1135
  const fTokenAddress = getFTokenAddress(token, network);
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();
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();
1138
1150
  const decimals = data.decimals.toString();
1139
1151
  const depositRate = new Dec(getEthAmountForDecimals(data.convertToShares.toString(), decimals)).toString();
1140
1152
  const withdrawRate = new Dec(getEthAmountForDecimals(data.convertToAssets.toString(), decimals)).toString();
@@ -1144,7 +1156,7 @@ export const _getFluidTokenData = (provider, network, token) => __awaiter(void 0
1144
1156
  decimals,
1145
1157
  totalDeposited: getEthAmountForDecimals(data.totalAssets.toString(), decimals),
1146
1158
  withdrawable: getEthAmountForDecimals(data.withdrawable.toString(), decimals),
1147
- apy: new Dec(supplyRate).add(rewardsRate).toString(),
1159
+ apy: new Dec(supplyRate).plus(rewardRates).plus(stakeRate).toString(),
1148
1160
  depositRate,
1149
1161
  withdrawRate,
1150
1162
  };
@@ -3,7 +3,7 @@ export const MORPHO_VAULT_FLAGSHIP_ETH = {
3
3
  type: MorphoVaultType.MorphoVaultFlagshipEth,
4
4
  name: 'Flagship ETH',
5
5
  address: '0x38989BBA00BDF8181F4082995b3DEAe96163aC5D',
6
- asset: 'ETH',
6
+ asset: 'WETH',
7
7
  deploymentBlock: 18927491,
8
8
  };
9
9
  export const MORPHO_VAULT_GAUNTLET_USDC_CORE = {
@@ -24,21 +24,21 @@ export const MORPHO_VAULT_RE7_WETH = {
24
24
  type: MorphoVaultType.MorphoVaultRe7Weth,
25
25
  name: 'RE7 WETH',
26
26
  address: '0x78Fc2c2eD1A4cDb5402365934aE5648aDAd094d0',
27
- asset: 'ETH',
27
+ asset: 'WETH',
28
28
  deploymentBlock: 19121118,
29
29
  };
30
30
  export const MORPHO_VAULT_GAUNTLET_WETH_CORE = {
31
31
  type: MorphoVaultType.MorphoVaultGauntletWETHCore,
32
32
  name: 'Gauntlet WETH Core',
33
33
  address: '0x4881Ef0BF6d2365D3dd6499ccd7532bcdBCE0658',
34
- asset: 'ETH',
34
+ asset: 'WETH',
35
35
  deploymentBlock: 19541126,
36
36
  };
37
37
  export const MORPHO_VAULT_GAUNTLET_WETH_PRIME = {
38
38
  type: MorphoVaultType.MorphoVaultGauntletWETHPrime,
39
39
  name: 'Gauntlet WETH Prime',
40
40
  address: '0x2371e134e3455e0593363cBF89d3b6cf53740618',
41
- asset: 'ETH',
41
+ asset: 'WETH',
42
42
  deploymentBlock: 19372149,
43
43
  };
44
44
  export const MORPHO_VAULT_BOOSTED_USDC = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defisaver/positions-sdk",
3
- "version": "2.1.24-dev-savings-2",
3
+ "version": "2.1.24-dev-savings-4",
4
4
  "description": "",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./esm/index.js",
@@ -1526,9 +1526,22 @@ 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 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();
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();
1532
1545
  const decimals = data.decimals.toString();
1533
1546
 
1534
1547
  const depositRate = new Dec(getEthAmountForDecimals(data.convertToShares.toString(), decimals)).toString();
@@ -1540,7 +1553,7 @@ export const _getFluidTokenData = async (provider: Client, network: NetworkNumbe
1540
1553
  decimals,
1541
1554
  totalDeposited: getEthAmountForDecimals(data.totalAssets.toString(), decimals),
1542
1555
  withdrawable: getEthAmountForDecimals(data.withdrawable.toString(), decimals),
1543
- apy: new Dec(supplyRate).add(rewardsRate).toString(),
1556
+ apy: new Dec(supplyRate).plus(rewardRates).plus(stakeRate).toString(),
1544
1557
  depositRate,
1545
1558
  withdrawRate,
1546
1559
  };
@@ -4,7 +4,7 @@ export const MORPHO_VAULT_FLAGSHIP_ETH: MorphoVault = {
4
4
  type: MorphoVaultType.MorphoVaultFlagshipEth,
5
5
  name: 'Flagship ETH',
6
6
  address: '0x38989BBA00BDF8181F4082995b3DEAe96163aC5D',
7
- asset: 'ETH',
7
+ asset: 'WETH',
8
8
  deploymentBlock: 18927491,
9
9
  };
10
10
 
@@ -28,7 +28,7 @@ export const MORPHO_VAULT_RE7_WETH: MorphoVault = {
28
28
  type: MorphoVaultType.MorphoVaultRe7Weth,
29
29
  name: 'RE7 WETH',
30
30
  address: '0x78Fc2c2eD1A4cDb5402365934aE5648aDAd094d0',
31
- asset: 'ETH',
31
+ asset: 'WETH',
32
32
  deploymentBlock: 19121118,
33
33
  };
34
34
 
@@ -36,7 +36,7 @@ export const MORPHO_VAULT_GAUNTLET_WETH_CORE: MorphoVault = {
36
36
  type: MorphoVaultType.MorphoVaultGauntletWETHCore,
37
37
  name: 'Gauntlet WETH Core',
38
38
  address: '0x4881Ef0BF6d2365D3dd6499ccd7532bcdBCE0658',
39
- asset: 'ETH',
39
+ asset: 'WETH',
40
40
  deploymentBlock: 19541126,
41
41
  };
42
42
 
@@ -44,7 +44,7 @@ export const MORPHO_VAULT_GAUNTLET_WETH_PRIME: MorphoVault = {
44
44
  type: MorphoVaultType.MorphoVaultGauntletWETHPrime,
45
45
  name: 'Gauntlet WETH Prime',
46
46
  address: '0x2371e134e3455e0593363cBF89d3b6cf53740618',
47
- asset: 'ETH',
47
+ asset: 'WETH',
48
48
  deploymentBlock: 19372149,
49
49
  };
50
50