@defisaver/positions-sdk 2.1.161-portfolio-api-2-dev → 2.1.162-npm-token-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.
- package/cjs/aaveV3/index.d.ts +12 -2
- package/cjs/aaveV3/index.js +7 -1
- package/cjs/aaveV3/sgho.d.ts +16 -2
- package/cjs/claiming/aaveV3.d.ts +2 -2
- package/cjs/claiming/ethena.d.ts +1 -2
- package/cjs/claiming/king.d.ts +1 -2
- package/cjs/claiming/spark.d.ts +2 -2
- package/cjs/fluid/index.d.ts +49 -5
- package/cjs/helpers/aaveHelpers/index.d.ts +9 -1
- package/cjs/helpers/aaveHelpers/index.js +23 -6
- package/cjs/liquity/index.d.ts +12 -2
- package/cjs/liquityV2/index.d.ts +23 -3
- package/cjs/portfolio/index.d.ts +5 -5
- package/cjs/portfolio/index.js +36 -51
- package/cjs/savings/index.js +5 -2
- package/cjs/savings/morphoVaults/index.d.ts +1 -1
- package/cjs/savings/morphoVaults/index.js +56 -18
- package/cjs/savings/morphoVaults/options.d.ts +2 -0
- package/cjs/savings/morphoVaults/options.js +61 -1
- package/cjs/spark/index.js +1 -0
- package/cjs/types/aave.d.ts +3 -98
- package/cjs/types/compound.d.ts +2 -26
- package/cjs/types/curveUsd.d.ts +1 -9
- package/cjs/types/fluid.d.ts +0 -13
- package/cjs/types/index.d.ts +0 -1
- package/cjs/types/index.js +0 -1
- package/cjs/types/liquity.d.ts +0 -12
- package/cjs/types/liquityV2.d.ts +0 -24
- package/cjs/types/llamaLend.d.ts +1 -12
- package/cjs/types/morphoBlue.d.ts +0 -2
- package/cjs/types/portfolio.d.ts +10 -88
- package/cjs/types/savings/morphoVaults.d.ts +10 -2
- package/cjs/types/savings/morphoVaults.js +9 -1
- package/cjs/types/spark.d.ts +1 -21
- package/cjs/umbrella/index.d.ts +3 -2
- package/esm/aaveV3/index.d.ts +12 -2
- package/esm/aaveV3/index.js +7 -1
- package/esm/aaveV3/sgho.d.ts +16 -2
- package/esm/claiming/aaveV3.d.ts +2 -2
- package/esm/claiming/aaveV3.js +1 -1
- package/esm/claiming/ethena.d.ts +1 -2
- package/esm/claiming/king.d.ts +1 -2
- package/esm/claiming/spark.d.ts +2 -2
- package/esm/claiming/spark.js +1 -1
- package/esm/fluid/index.d.ts +49 -5
- package/esm/helpers/aaveHelpers/index.d.ts +9 -1
- package/esm/helpers/aaveHelpers/index.js +20 -5
- package/esm/liquity/index.d.ts +12 -2
- package/esm/liquityV2/index.d.ts +23 -3
- package/esm/portfolio/index.d.ts +5 -5
- package/esm/portfolio/index.js +36 -51
- package/esm/savings/index.js +5 -2
- package/esm/savings/morphoVaults/index.d.ts +1 -1
- package/esm/savings/morphoVaults/index.js +57 -19
- package/esm/savings/morphoVaults/options.d.ts +2 -0
- package/esm/savings/morphoVaults/options.js +61 -1
- package/esm/spark/index.js +1 -0
- package/esm/types/aave.d.ts +3 -98
- package/esm/types/compound.d.ts +2 -26
- package/esm/types/curveUsd.d.ts +1 -9
- package/esm/types/fluid.d.ts +0 -13
- package/esm/types/index.d.ts +0 -1
- package/esm/types/index.js +0 -1
- package/esm/types/liquity.d.ts +0 -12
- package/esm/types/liquityV2.d.ts +0 -24
- package/esm/types/llamaLend.d.ts +1 -12
- package/esm/types/morphoBlue.d.ts +0 -2
- package/esm/types/portfolio.d.ts +10 -88
- package/esm/types/savings/morphoVaults.d.ts +10 -2
- package/esm/types/savings/morphoVaults.js +8 -0
- package/esm/types/spark.d.ts +1 -21
- package/esm/umbrella/index.d.ts +3 -2
- package/package.json +3 -2
- package/src/aaveV3/index.ts +7 -3
- package/src/aaveV3/sgho.ts +17 -2
- package/src/claiming/aaveV3.ts +2 -4
- package/src/claiming/ethena.ts +5 -5
- package/src/claiming/king.ts +3 -3
- package/src/claiming/spark.ts +4 -6
- package/src/fluid/index.ts +3 -4
- package/src/helpers/aaveHelpers/index.ts +24 -7
- package/src/liquity/index.ts +2 -2
- package/src/liquityV2/index.ts +3 -3
- package/src/portfolio/index.ts +57 -76
- package/src/savings/index.ts +5 -2
- package/src/savings/morphoVaults/index.ts +73 -21
- package/src/savings/morphoVaults/options.ts +67 -1
- package/src/spark/index.ts +1 -0
- package/src/types/aave.ts +2 -104
- package/src/types/compound.ts +2 -38
- package/src/types/curveUsd.ts +1 -17
- package/src/types/fluid.ts +0 -14
- package/src/types/index.ts +1 -2
- package/src/types/liquity.ts +1 -13
- package/src/types/liquityV2.ts +1 -26
- package/src/types/llamaLend.ts +1 -19
- package/src/types/morphoBlue.ts +0 -3
- package/src/types/portfolio.ts +11 -111
- package/src/types/savings/morphoVaults.ts +11 -1
- package/src/types/spark.ts +1 -25
- package/src/umbrella/index.ts +1 -2
package/esm/claiming/king.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Client } from 'viem';
|
|
2
2
|
import { EthAddress, NetworkNumber } from '../types/common';
|
|
3
|
-
import { KingRewardsClaimableToken } from '../types/claiming';
|
|
4
3
|
export declare const fetchKingRewards: (walletAddress: EthAddress) => Promise<any>;
|
|
5
|
-
export declare const getKingRewards: (provider: Client, network: NetworkNumber, walletAddresses: EthAddress[]) => Promise<Record<string,
|
|
4
|
+
export declare const getKingRewards: (provider: Client, network: NetworkNumber, walletAddresses: EthAddress[]) => Promise<Record<string, any[]>>;
|
package/esm/claiming/spark.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Client } from 'viem';
|
|
2
2
|
import { EthAddress, NetworkNumber } from '../types/common';
|
|
3
|
-
import {
|
|
3
|
+
import { SparkRewardsClaimableToken } from '../types/claiming';
|
|
4
4
|
export declare const fetchSpkAirdropRewards: (walletAddress: EthAddress) => Promise<any>;
|
|
5
|
-
export declare const fetchSparkAirdropRewards: (provider: Client, network: NetworkNumber, walletAddresses: EthAddress[]) => Promise<Record<string,
|
|
5
|
+
export declare const fetchSparkAirdropRewards: (provider: Client, network: NetworkNumber, walletAddresses: EthAddress[]) => Promise<Record<string, any[]>>;
|
|
6
6
|
export declare const fetchSparkRewards: (provider: Client, network: NetworkNumber, walletAddress: EthAddress, marketAddress: EthAddress) => Promise<SparkRewardsClaimableToken[]>;
|
package/esm/claiming/spark.js
CHANGED
|
@@ -10,7 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
import { assetAmountInEth, getAssetInfoByAddress } from '@defisaver/tokens';
|
|
11
11
|
import Dec from 'decimal.js';
|
|
12
12
|
import { createViemContractFromConfigFunc, SparkIncentiveDataProviderContractViem, SparkRewardsControllerViem, } from '../contracts';
|
|
13
|
-
import { ClaimType, SparkAirdropType
|
|
13
|
+
import { ClaimType, SparkAirdropType } from '../types/claiming';
|
|
14
14
|
import { compareAddresses, getEthAmountForDecimals } from '../services/utils';
|
|
15
15
|
const IGNITION_REWARDS = '0xCBA0C0a2a0B6Bb11233ec4EA85C5bFfea33e724d';
|
|
16
16
|
const PFL3_REWARDS = '0x7ac96180C4d6b2A328D3a19ac059D0E7Fc3C6d41';
|
package/esm/fluid/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Client, PublicClient } from 'viem';
|
|
2
2
|
import { EthAddress, EthereumProvider, NetworkNumber } from '../types/common';
|
|
3
|
-
import { FluidAssetsData,
|
|
3
|
+
import { FluidAssetsData, FluidMarketData, FluidMarketInfo, FluidUsedAssets, FluidVaultData, InnerFluidMarketData } from '../types';
|
|
4
4
|
export { FluidMerklOpportunityType, buildFluidMerklRewardMap, getFluidMerklCampaigns, attachFluidMerklIncentives, } from './merkl';
|
|
5
5
|
export declare const EMPTY_USED_ASSET: {
|
|
6
6
|
isSupplied: boolean;
|
|
@@ -71,10 +71,54 @@ export declare const getFluidTokenData: (provider: EthereumProvider, network: Ne
|
|
|
71
71
|
depositRate: string;
|
|
72
72
|
withdrawRate: string;
|
|
73
73
|
}>;
|
|
74
|
-
export declare const _getFluidDepositData: (provider: Client, network: NetworkNumber, token: string, address: EthAddress) => Promise<
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
74
|
+
export declare const _getFluidDepositData: (provider: Client, network: NetworkNumber, token: string, address: EthAddress) => Promise<{
|
|
75
|
+
fTokenAddress: string | undefined;
|
|
76
|
+
fTokenSymbol: string;
|
|
77
|
+
decimals: string;
|
|
78
|
+
totalDeposited: string;
|
|
79
|
+
withdrawable: string;
|
|
80
|
+
apy: string;
|
|
81
|
+
depositRate: string;
|
|
82
|
+
withdrawRate: string;
|
|
83
|
+
deposited: string;
|
|
84
|
+
depositedShares: string;
|
|
85
|
+
}>;
|
|
86
|
+
export declare const getFluidDepositData: (provider: EthereumProvider, network: NetworkNumber, token: string, address: EthAddress) => Promise<{
|
|
87
|
+
fTokenAddress: string | undefined;
|
|
88
|
+
fTokenSymbol: string;
|
|
89
|
+
decimals: string;
|
|
90
|
+
totalDeposited: string;
|
|
91
|
+
withdrawable: string;
|
|
92
|
+
apy: string;
|
|
93
|
+
depositRate: string;
|
|
94
|
+
withdrawRate: string;
|
|
95
|
+
deposited: string;
|
|
96
|
+
depositedShares: string;
|
|
97
|
+
}>;
|
|
98
|
+
export declare const _getAllUserEarnPositionsWithFTokens: (provider: Client, network: NetworkNumber, user: EthAddress) => Promise<{
|
|
99
|
+
fTokenAddress: string | undefined;
|
|
100
|
+
fTokenSymbol: string;
|
|
101
|
+
decimals: string;
|
|
102
|
+
totalDeposited: string;
|
|
103
|
+
withdrawable: string;
|
|
104
|
+
apy: string;
|
|
105
|
+
depositRate: string;
|
|
106
|
+
withdrawRate: string;
|
|
107
|
+
deposited: string;
|
|
108
|
+
depositedShares: string;
|
|
109
|
+
}[]>;
|
|
110
|
+
export declare const getAllUserEarnPositionsWithFTokens: (provider: EthereumProvider, network: NetworkNumber, user: EthAddress) => Promise<{
|
|
111
|
+
fTokenAddress: string | undefined;
|
|
112
|
+
fTokenSymbol: string;
|
|
113
|
+
decimals: string;
|
|
114
|
+
totalDeposited: string;
|
|
115
|
+
withdrawable: string;
|
|
116
|
+
apy: string;
|
|
117
|
+
depositRate: string;
|
|
118
|
+
withdrawRate: string;
|
|
119
|
+
deposited: string;
|
|
120
|
+
depositedShares: string;
|
|
121
|
+
}[]>;
|
|
78
122
|
export declare const _getUserPositions: (provider: PublicClient, network: NetworkNumber, user: EthAddress) => Promise<{
|
|
79
123
|
marketData: FluidMarketData | undefined;
|
|
80
124
|
userData: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AaveHelperCommon, AaveMarketInfo, AaveV3AggregatedPositionData, AaveV3AssetsData, AaveV3UsedAsset, AaveV3UsedAssets, AaveVersions } from '../../types';
|
|
1
|
+
import { AaveHelperCommon, AaveMarketInfo, AaveV3AggregatedPositionData, AaveV3AssetsData, AaveV3UsedAsset, AaveV3UsedAssets, AaveVersions, EModeCategoriesData } from '../../types';
|
|
2
2
|
import { EthereumProvider, NetworkNumber } from '../../types/common';
|
|
3
3
|
export declare const AAVE_V3_MARKETS: AaveVersions[];
|
|
4
4
|
export declare const isAaveV2: ({ selectedMarket }: {
|
|
@@ -15,6 +15,14 @@ export declare const aaveV3IsInSiloedMode: ({ usedAssets, assetsData }: {
|
|
|
15
15
|
usedAssets: AaveV3UsedAssets;
|
|
16
16
|
assetsData: AaveV3AssetsData;
|
|
17
17
|
}) => boolean;
|
|
18
|
+
export declare const aaveV3IsEmodeIsolated: ({ eModeCategory, eModeCategoriesData }: {
|
|
19
|
+
eModeCategory: number;
|
|
20
|
+
eModeCategoriesData?: EModeCategoriesData;
|
|
21
|
+
}) => boolean;
|
|
22
|
+
export declare const aaveV3CanBeCollateralInEmode: ({ eModeCategory, eModeCategoriesData }: {
|
|
23
|
+
eModeCategory: number;
|
|
24
|
+
eModeCategoriesData?: EModeCategoriesData;
|
|
25
|
+
}, _asset: string) => boolean;
|
|
18
26
|
export declare const aaveAnyGetCollSuppliedAssets: ({ usedAssets }: {
|
|
19
27
|
usedAssets: AaveV3UsedAssets;
|
|
20
28
|
}) => AaveV3UsedAsset[];
|
|
@@ -33,6 +33,12 @@ export const isAaveV2 = ({ selectedMarket }) => selectedMarket.value === AaveVer
|
|
|
33
33
|
export const isAaveV3 = ({ selectedMarket }) => AAVE_V3_MARKETS.includes(selectedMarket.value);
|
|
34
34
|
export const aaveV3IsInIsolationMode = ({ usedAssets, assetsData }) => Object.values(usedAssets).some(({ symbol, collateral }) => collateral && assetsData[symbol].isIsolated);
|
|
35
35
|
export const aaveV3IsInSiloedMode = ({ usedAssets, assetsData }) => Object.values(usedAssets).some(({ symbol, debt }) => debt && assetsData[symbol].isSiloed);
|
|
36
|
+
export const aaveV3IsEmodeIsolated = ({ eModeCategory, eModeCategoriesData }) => { var _a; return eModeCategory !== 0 && !!((_a = eModeCategoriesData === null || eModeCategoriesData === void 0 ? void 0 : eModeCategoriesData[eModeCategory]) === null || _a === void 0 ? void 0 : _a.isolated); };
|
|
37
|
+
export const aaveV3CanBeCollateralInEmode = ({ eModeCategory, eModeCategoriesData }, _asset) => {
|
|
38
|
+
if (!aaveV3IsEmodeIsolated({ eModeCategory, eModeCategoriesData }))
|
|
39
|
+
return true;
|
|
40
|
+
return eModeCategoriesData[eModeCategory].collateralAssets.includes(getNativeAssetFromWrapped(_asset));
|
|
41
|
+
};
|
|
36
42
|
export const aaveAnyGetCollSuppliedAssets = ({ usedAssets }) => Object.values(usedAssets)
|
|
37
43
|
.filter(({ isSupplied, collateral }) => isSupplied && collateral);
|
|
38
44
|
export const aaveAnyGetSuppliableAssets = (_a) => {
|
|
@@ -40,13 +46,16 @@ export const aaveAnyGetSuppliableAssets = (_a) => {
|
|
|
40
46
|
const data = Object.assign({ usedAssets, eModeCategory, assetsData, selectedMarket, network }, rest);
|
|
41
47
|
const collAccountAssets = aaveAnyGetCollSuppliedAssets(data);
|
|
42
48
|
const marketAssets = Object.values(assetsData);
|
|
43
|
-
if (
|
|
49
|
+
if (!isAaveV3(data))
|
|
44
50
|
return marketAssets.filter(({ canBeSupplied }) => canBeSupplied).map(({ symbol }) => ({ symbol, canBeCollateral: true }));
|
|
51
|
+
const canBeCollateralInEmode = (symbol) => aaveV3CanBeCollateralInEmode(data, symbol);
|
|
52
|
+
if (collAccountAssets.length === 0)
|
|
53
|
+
return marketAssets.filter(({ canBeSupplied }) => canBeSupplied).map(({ symbol }) => ({ symbol, canBeCollateral: canBeCollateralInEmode(symbol) }));
|
|
45
54
|
if (aaveV3IsInIsolationMode(data)) {
|
|
46
55
|
const collAsset = collAccountAssets[0].symbol;
|
|
47
|
-
return marketAssets.filter(d => d.canBeSupplied).map(({ symbol }) => ({ symbol, canBeCollateral: symbol === collAsset }));
|
|
56
|
+
return marketAssets.filter(d => d.canBeSupplied).map(({ symbol }) => ({ symbol, canBeCollateral: symbol === collAsset && canBeCollateralInEmode(symbol) }));
|
|
48
57
|
}
|
|
49
|
-
return marketAssets.filter(d => d.canBeSupplied).map(({ symbol, isIsolated }) => ({ symbol, canBeCollateral: !isIsolated }));
|
|
58
|
+
return marketAssets.filter(d => d.canBeSupplied).map(({ symbol, isIsolated }) => ({ symbol, canBeCollateral: !isIsolated && canBeCollateralInEmode(symbol) }));
|
|
50
59
|
};
|
|
51
60
|
export const aaveAnyGetSuppliableAsCollAssets = (_a) => {
|
|
52
61
|
var { usedAssets, eModeCategory, assetsData, selectedMarket, network } = _a, rest = __rest(_a, ["usedAssets", "eModeCategory", "assetsData", "selectedMarket", "network"]);
|
|
@@ -56,12 +65,15 @@ export const aaveAnyGetEmodeMutableProps = ({ eModeCategory, eModeCategoriesData
|
|
|
56
65
|
const asset = getNativeAssetFromWrapped(_asset);
|
|
57
66
|
const assetData = assetsData[asset];
|
|
58
67
|
const eModeCategoryData = (eModeCategoriesData === null || eModeCategoriesData === void 0 ? void 0 : eModeCategoriesData[eModeCategory]) || {
|
|
59
|
-
collateralAssets: [], ltvZeroAssets: [], collateralFactor: '0', liquidationRatio: '0',
|
|
68
|
+
collateralAssets: [], ltvZeroAssets: [], collateralFactor: '0', liquidationRatio: '0', isolated: false,
|
|
60
69
|
};
|
|
61
70
|
if (eModeCategory === 0
|
|
62
71
|
|| !eModeCategoryData.collateralAssets.includes(asset)
|
|
63
72
|
|| new Dec(eModeCategoryData.collateralFactor || 0).eq(0)) {
|
|
64
73
|
const { liquidationRatio, collateralFactor } = assetData;
|
|
74
|
+
if (eModeCategory !== 0 && eModeCategoryData.isolated && !eModeCategoryData.collateralAssets.includes(asset)) {
|
|
75
|
+
return ({ liquidationRatio, collateralFactor: '0' });
|
|
76
|
+
}
|
|
65
77
|
return ({ liquidationRatio, collateralFactor });
|
|
66
78
|
}
|
|
67
79
|
if (eModeCategoryData.ltvZeroAssets.includes(asset))
|
|
@@ -96,7 +108,10 @@ export const aaveAnyGetUserReserveLtvAndLltv = ({ eModeCategory, eModeCategories
|
|
|
96
108
|
|| !eModeCategoryData
|
|
97
109
|
|| !eModeCategoryData.collateralAssets.includes(asset)
|
|
98
110
|
|| new Dec(eModeCategoryData.collateralFactor || 0).eq(0)) {
|
|
99
|
-
|
|
111
|
+
const ltv = eModeCategory !== 0 && (eModeCategoryData === null || eModeCategoryData === void 0 ? void 0 : eModeCategoryData.isolated) && !eModeCategoryData.collateralAssets.includes(asset)
|
|
112
|
+
? '0'
|
|
113
|
+
: assetData.collateralFactor;
|
|
114
|
+
return { ltv, lltv: assetData.liquidationRatio };
|
|
100
115
|
}
|
|
101
116
|
const ltv = eModeCategoryData.ltvZeroAssets.includes(asset) ? '0' : eModeCategoryData.collateralFactor;
|
|
102
117
|
return { ltv, lltv: eModeCategoryData.liquidationRatio };
|
package/esm/liquity/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Client } from 'viem';
|
|
2
2
|
import { Blockish, EthAddress, EthereumProvider, NetworkNumber, PositionBalances } from '../types/common';
|
|
3
|
-
import {
|
|
3
|
+
import { LiquityTroveInfo } from '../types';
|
|
4
4
|
export declare const LIQUITY_NORMAL_MODE_RATIO = 110;
|
|
5
5
|
export declare const LIQUITY_RECOVERY_MODE_RATIO = 150;
|
|
6
6
|
export declare const _getLiquityAccountBalances: (provider: Client, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress) => Promise<PositionBalances>;
|
|
@@ -8,4 +8,14 @@ export declare const getLiquityAccountBalances: (provider: EthereumProvider, net
|
|
|
8
8
|
export declare const getDebtInFront: (provider: EthereumProvider, address: EthAddress) => Promise<string>;
|
|
9
9
|
export declare const _getLiquityTroveInfo: (provider: Client, network: NetworkNumber, address: EthAddress) => Promise<LiquityTroveInfo>;
|
|
10
10
|
export declare const getLiquityTroveInfo: (provider: EthereumProvider, network: NetworkNumber, address: EthAddress) => Promise<LiquityTroveInfo>;
|
|
11
|
-
export declare const getLiquityStakingData: (provider: Client, network: NetworkNumber, address: EthAddress) => Promise<
|
|
11
|
+
export declare const getLiquityStakingData: (provider: Client, network: NetworkNumber, address: EthAddress) => Promise<{
|
|
12
|
+
totalLUSDDeposited: string;
|
|
13
|
+
totalLQTYStaked: string;
|
|
14
|
+
stakedLQTY: string;
|
|
15
|
+
stakedLUSDBalance: string;
|
|
16
|
+
rewardETH: string;
|
|
17
|
+
rewardLUSD: string;
|
|
18
|
+
stabilityRewardETH: string;
|
|
19
|
+
stabilityRewardLQTY: string;
|
|
20
|
+
showStakingBalances: boolean;
|
|
21
|
+
}>;
|
package/esm/liquityV2/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Client, PublicClient } from 'viem';
|
|
2
2
|
import { EthAddress, EthereumProvider, NetworkNumber } from '../types/common';
|
|
3
|
-
import { LiquityV2AssetsData, LiquityV2MarketData, LiquityV2MarketInfo,
|
|
3
|
+
import { LiquityV2AssetsData, LiquityV2MarketData, LiquityV2MarketInfo, LiquityV2TroveData, LiquityV2Versions } from '../types';
|
|
4
4
|
export type SPYieldGainParameters = {
|
|
5
5
|
P: string;
|
|
6
6
|
aggWeightedDebtSum: string;
|
|
@@ -44,5 +44,25 @@ export type sBoldYieldParameters = {
|
|
|
44
44
|
wsETH: string;
|
|
45
45
|
rETH: string;
|
|
46
46
|
};
|
|
47
|
-
export declare const getLiquityV2Staking: (provider: Client, network: NetworkNumber, market: LiquityV2Versions, user: EthAddress) => Promise<
|
|
48
|
-
|
|
47
|
+
export declare const getLiquityV2Staking: (provider: Client, network: NetworkNumber, market: LiquityV2Versions, user: EthAddress) => Promise<{
|
|
48
|
+
totalBOLDDeposited: string;
|
|
49
|
+
stakedBOLDBalance: string;
|
|
50
|
+
stabilityRewardColl: string;
|
|
51
|
+
stabilityRewardYield: string;
|
|
52
|
+
showStakingBalances: boolean;
|
|
53
|
+
debtTokenBalance: string;
|
|
54
|
+
stabilityPoolApy: string;
|
|
55
|
+
}>;
|
|
56
|
+
export declare const getLiquitySAndYBold: (provider: Client, network: NetworkNumber, markets: any, user: EthAddress) => Promise<{
|
|
57
|
+
spApy: string;
|
|
58
|
+
yBoldApy: string;
|
|
59
|
+
totalBoldDepositedSBold: string;
|
|
60
|
+
boldRateSBold: string;
|
|
61
|
+
maxWithdrawSBold: string;
|
|
62
|
+
totalBoldDepositedYBold: string;
|
|
63
|
+
boldRateYBold: string;
|
|
64
|
+
maxWithdrawYBold: string;
|
|
65
|
+
sBoldBalance: string;
|
|
66
|
+
yBoldBalance: string;
|
|
67
|
+
stYBoldBalance: string;
|
|
68
|
+
}>;
|
package/esm/portfolio/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { EthAddress, EthereumProvider, NetworkNumber } from '../types/common';
|
|
2
|
-
import {
|
|
3
|
-
export declare function getPortfolioData(provider: EthereumProvider, network: NetworkNumber, defaultProvider: EthereumProvider, addresses: EthAddress[], isSim?: boolean
|
|
2
|
+
import { PortfolioPositionsData } from '../types';
|
|
3
|
+
export declare function getPortfolioData(provider: EthereumProvider, network: NetworkNumber, defaultProvider: EthereumProvider, addresses: EthAddress[], isSim?: boolean): Promise<{
|
|
4
4
|
positions: PortfolioPositionsData;
|
|
5
|
-
stakingPositions:
|
|
6
|
-
rewardsData:
|
|
7
|
-
markets:
|
|
5
|
+
stakingPositions: any;
|
|
6
|
+
rewardsData: any;
|
|
7
|
+
markets: any;
|
|
8
8
|
}>;
|
|
9
9
|
export * from './discovery';
|
package/esm/portfolio/index.js
CHANGED
|
@@ -34,13 +34,8 @@ import { fetchEthenaAirdropRewards } from '../claiming/ethena';
|
|
|
34
34
|
import { _getAaveV4AccountData, _getAaveV4SpokeData } from '../aaveV4';
|
|
35
35
|
import { getUniswapRewards } from '../claiming/uniswap';
|
|
36
36
|
export function getPortfolioData(provider_1, network_1, defaultProvider_1, addresses_1) {
|
|
37
|
-
return __awaiter(this, arguments, void 0, function* (provider, network, defaultProvider, addresses, isSim = false
|
|
37
|
+
return __awaiter(this, arguments, void 0, function* (provider, network, defaultProvider, addresses, isSim = false) {
|
|
38
38
|
const isMainnet = network === NetworkNumber.Eth;
|
|
39
|
-
const includeStaking = options.staking !== false;
|
|
40
|
-
const includeRewards = options.rewards !== false;
|
|
41
|
-
// The addresses staking and rewards are read for: none when left out, so their fetches below make no calls.
|
|
42
|
-
const stakingAddresses = includeStaking ? addresses : [];
|
|
43
|
-
const rewardsAddresses = includeRewards ? addresses : [];
|
|
44
39
|
const isFluidSupported = [NetworkNumber.Eth, NetworkNumber.Arb, NetworkNumber.Base, NetworkNumber.Plasma].includes(network);
|
|
45
40
|
const morphoMarkets = Object.values(MorphoBlueMarkets(network)).filter((market) => market.chainIds.includes(network));
|
|
46
41
|
const morphoMidnightMarkets = Object.values(MorphoMidnightMarkets(network)).filter((market) => market.chainIds.includes(network));
|
|
@@ -112,7 +107,7 @@ export function getPortfolioData(provider_1, network_1, defaultProvider_1, addre
|
|
|
112
107
|
};
|
|
113
108
|
}
|
|
114
109
|
// TODO: check default values, probably needed when fetching portfolio on unsupported networks
|
|
115
|
-
for (const address of
|
|
110
|
+
for (const address of addresses) {
|
|
116
111
|
stakingPositions[address.toLowerCase()] = {
|
|
117
112
|
aaveV3: {},
|
|
118
113
|
morphoBlue: {},
|
|
@@ -126,20 +121,14 @@ export function getPortfolioData(provider_1, network_1, defaultProvider_1, addre
|
|
|
126
121
|
error: '',
|
|
127
122
|
data: {},
|
|
128
123
|
},
|
|
129
|
-
// Set by the sBOLD/yBOLD fetch below, whether it succeeds or fails.
|
|
130
|
-
liquityV2SBoldYBold: { error: '', data: null },
|
|
131
124
|
};
|
|
132
|
-
}
|
|
133
|
-
for (const address of rewardsAddresses) {
|
|
134
|
-
// merkl, spk, king and uniswap are set by their fetches below, whether they succeed or fail.
|
|
135
125
|
rewardsData[address.toLowerCase()] = {
|
|
136
|
-
merkl: {
|
|
126
|
+
merkl: {},
|
|
137
127
|
aaveV3: {},
|
|
138
128
|
spark: {},
|
|
139
|
-
spk: {
|
|
140
|
-
king: {
|
|
129
|
+
spk: {},
|
|
130
|
+
king: {},
|
|
141
131
|
ethena: {},
|
|
142
|
-
uniswap: { error: '', data: null },
|
|
143
132
|
};
|
|
144
133
|
}
|
|
145
134
|
yield Promise.allSettled([
|
|
@@ -215,7 +204,7 @@ export function getPortfolioData(provider_1, network_1, defaultProvider_1, addre
|
|
|
215
204
|
}
|
|
216
205
|
})),
|
|
217
206
|
// === STAKING DATA (independent of market data) ===
|
|
218
|
-
...
|
|
207
|
+
...addresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
219
208
|
try {
|
|
220
209
|
if (!isFluidSupported)
|
|
221
210
|
return;
|
|
@@ -226,7 +215,7 @@ export function getPortfolioData(provider_1, network_1, defaultProvider_1, addre
|
|
|
226
215
|
stakingPositions[address.toLowerCase()].fluid = { error: `Error fetching Fluid lend data for address ${address}`, data: null };
|
|
227
216
|
}
|
|
228
217
|
})),
|
|
229
|
-
...
|
|
218
|
+
...addresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
230
219
|
try {
|
|
231
220
|
if (!isMainnet)
|
|
232
221
|
return;
|
|
@@ -237,7 +226,7 @@ export function getPortfolioData(provider_1, network_1, defaultProvider_1, addre
|
|
|
237
226
|
stakingPositions[address.toLowerCase()].liquity = { error: `Error fetching Liquity staking data for address ${address}`, data: null };
|
|
238
227
|
}
|
|
239
228
|
})),
|
|
240
|
-
...
|
|
229
|
+
...addresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
241
230
|
try {
|
|
242
231
|
if (!isMainnet)
|
|
243
232
|
return;
|
|
@@ -248,7 +237,7 @@ export function getPortfolioData(provider_1, network_1, defaultProvider_1, addre
|
|
|
248
237
|
stakingPositions[address.toLowerCase()].aaveV3 = { error: `Error fetching Aave V3 staking data for address ${address}`, data: null };
|
|
249
238
|
}
|
|
250
239
|
})),
|
|
251
|
-
...
|
|
240
|
+
...addresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
252
241
|
try {
|
|
253
242
|
if (!isMainnet)
|
|
254
243
|
return;
|
|
@@ -260,7 +249,7 @@ export function getPortfolioData(provider_1, network_1, defaultProvider_1, addre
|
|
|
260
249
|
}
|
|
261
250
|
})),
|
|
262
251
|
// Liquity V2 staking
|
|
263
|
-
...liquityV2MarketsStaking.map(market =>
|
|
252
|
+
...liquityV2MarketsStaking.map(market => addresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
264
253
|
try {
|
|
265
254
|
if (!isMainnet) {
|
|
266
255
|
stakingPositions[address.toLowerCase()].liquityV2[market.value] = { error: '', data: null };
|
|
@@ -279,13 +268,13 @@ export function getPortfolioData(provider_1, network_1, defaultProvider_1, addre
|
|
|
279
268
|
(() => __awaiter(this, void 0, void 0, function* () {
|
|
280
269
|
try {
|
|
281
270
|
if (!isMainnet) {
|
|
282
|
-
for (const address of
|
|
271
|
+
for (const address of addresses) {
|
|
283
272
|
rewardsData[address.toLowerCase()].king = { error: '', data: [] };
|
|
284
273
|
}
|
|
285
274
|
return;
|
|
286
275
|
}
|
|
287
|
-
const kingRewards = yield getKingRewards(client, network,
|
|
288
|
-
for (const address of
|
|
276
|
+
const kingRewards = yield getKingRewards(client, network, addresses);
|
|
277
|
+
for (const address of addresses) {
|
|
289
278
|
const lowerAddress = address.toLowerCase();
|
|
290
279
|
rewardsData[lowerAddress].king = {
|
|
291
280
|
error: '',
|
|
@@ -295,7 +284,7 @@ export function getPortfolioData(provider_1, network_1, defaultProvider_1, addre
|
|
|
295
284
|
}
|
|
296
285
|
catch (error) {
|
|
297
286
|
console.error('Error fetching King rewards data in batch:', error);
|
|
298
|
-
for (const address of
|
|
287
|
+
for (const address of addresses) {
|
|
299
288
|
rewardsData[address.toLowerCase()].king = {
|
|
300
289
|
error: 'Error fetching King rewards data in batch',
|
|
301
290
|
data: null,
|
|
@@ -307,13 +296,13 @@ export function getPortfolioData(provider_1, network_1, defaultProvider_1, addre
|
|
|
307
296
|
(() => __awaiter(this, void 0, void 0, function* () {
|
|
308
297
|
try {
|
|
309
298
|
if (!isMainnet) {
|
|
310
|
-
for (const address of
|
|
299
|
+
for (const address of addresses) {
|
|
311
300
|
rewardsData[address.toLowerCase()].uniswap = { error: '', data: [] };
|
|
312
301
|
}
|
|
313
302
|
return;
|
|
314
303
|
}
|
|
315
|
-
const uniswapRewards = yield getUniswapRewards(client, network,
|
|
316
|
-
for (const address of
|
|
304
|
+
const uniswapRewards = yield getUniswapRewards(client, network, addresses);
|
|
305
|
+
for (const address of addresses) {
|
|
317
306
|
const lowerAddress = address.toLowerCase();
|
|
318
307
|
rewardsData[lowerAddress].uniswap = {
|
|
319
308
|
error: '',
|
|
@@ -323,7 +312,7 @@ export function getPortfolioData(provider_1, network_1, defaultProvider_1, addre
|
|
|
323
312
|
}
|
|
324
313
|
catch (error) {
|
|
325
314
|
console.error('Error fetching Uniswap rewards data in batch:', error);
|
|
326
|
-
for (const address of
|
|
315
|
+
for (const address of addresses) {
|
|
327
316
|
rewardsData[address.toLowerCase()].uniswap = {
|
|
328
317
|
error: 'Error fetching Uniswap rewards data in batch',
|
|
329
318
|
data: null,
|
|
@@ -331,7 +320,7 @@ export function getPortfolioData(provider_1, network_1, defaultProvider_1, addre
|
|
|
331
320
|
}
|
|
332
321
|
}
|
|
333
322
|
}))(),
|
|
334
|
-
...sparkMarkets.map((market) =>
|
|
323
|
+
...sparkMarkets.map((market) => addresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
335
324
|
try {
|
|
336
325
|
if (!isMainnet) {
|
|
337
326
|
rewardsData[address.toLowerCase()].spark[market.value] = { error: '', data: [] };
|
|
@@ -345,7 +334,7 @@ export function getPortfolioData(provider_1, network_1, defaultProvider_1, addre
|
|
|
345
334
|
rewardsData[address.toLowerCase()].spark[market.value] = { error: `Error fetching Spark rewards data for address ${address}`, data: null };
|
|
346
335
|
}
|
|
347
336
|
}))).flat(),
|
|
348
|
-
...
|
|
337
|
+
...addresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
349
338
|
try {
|
|
350
339
|
const merklData = yield getMerklUnclaimedRewards(address, network);
|
|
351
340
|
rewardsData[address.toLowerCase()].merkl = { error: '', data: merklData };
|
|
@@ -355,28 +344,27 @@ export function getPortfolioData(provider_1, network_1, defaultProvider_1, addre
|
|
|
355
344
|
rewardsData[address.toLowerCase()].merkl = { error: `Error fetching Merkl rewards data for address ${address}`, data: null };
|
|
356
345
|
}
|
|
357
346
|
})),
|
|
358
|
-
...aaveV3Markets.map(market =>
|
|
347
|
+
...aaveV3Markets.map(market => addresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
359
348
|
try {
|
|
360
349
|
const aaveData = yield getUnclaimedRewardsForAllMarkets(client, network, address, market.providerAddress);
|
|
361
350
|
rewardsData[address.toLowerCase()].aaveV3[market.value] = { error: '', data: aaveData };
|
|
362
351
|
}
|
|
363
352
|
catch (error) {
|
|
364
353
|
console.error(`Error fetching Aave V3 Merit rewards data for address ${address}:`, error);
|
|
365
|
-
|
|
366
|
-
rewardsData[address.toLowerCase()].aaveV3[market.value] = { error: `Error fetching Aave V3 rewards data for address ${address} on market ${market.value}`, data: null };
|
|
354
|
+
rewardsData[address.toLowerCase()].aaveV3 = { error: `Error fetching Aave V3 rewards data for address ${address}`, data: null };
|
|
367
355
|
}
|
|
368
356
|
}))).flat(),
|
|
369
357
|
// Batch Spark Airdrop rewards
|
|
370
358
|
(() => __awaiter(this, void 0, void 0, function* () {
|
|
371
359
|
try {
|
|
372
360
|
if (!isMainnet) {
|
|
373
|
-
for (const address of
|
|
361
|
+
for (const address of addresses) {
|
|
374
362
|
rewardsData[address.toLowerCase()].spk = { error: '', data: [] };
|
|
375
363
|
}
|
|
376
364
|
return;
|
|
377
365
|
}
|
|
378
|
-
const sparkAirdropRewards = yield fetchSparkAirdropRewards(client, network,
|
|
379
|
-
for (const address of
|
|
366
|
+
const sparkAirdropRewards = yield fetchSparkAirdropRewards(client, network, addresses);
|
|
367
|
+
for (const address of addresses) {
|
|
380
368
|
const lowerAddress = address.toLowerCase();
|
|
381
369
|
rewardsData[lowerAddress].spk = {
|
|
382
370
|
error: '',
|
|
@@ -386,7 +374,7 @@ export function getPortfolioData(provider_1, network_1, defaultProvider_1, addre
|
|
|
386
374
|
}
|
|
387
375
|
catch (error) {
|
|
388
376
|
console.error('Error fetching Spark Airdrop rewards data in batch:', error);
|
|
389
|
-
for (const address of
|
|
377
|
+
for (const address of addresses) {
|
|
390
378
|
rewardsData[address.toLowerCase()].spk = {
|
|
391
379
|
error: 'Error fetching Spark Airdrop rewards data in batch',
|
|
392
380
|
data: null,
|
|
@@ -399,8 +387,8 @@ export function getPortfolioData(provider_1, network_1, defaultProvider_1, addre
|
|
|
399
387
|
if (!isMainnet) {
|
|
400
388
|
return;
|
|
401
389
|
}
|
|
402
|
-
const ethenaAirdropRewards = yield fetchEthenaAirdropRewards(
|
|
403
|
-
for (const address of
|
|
390
|
+
const ethenaAirdropRewards = yield fetchEthenaAirdropRewards(addresses);
|
|
391
|
+
for (const address of addresses) {
|
|
404
392
|
const lowerAddress = address.toLowerCase();
|
|
405
393
|
rewardsData[lowerAddress].ethena = {
|
|
406
394
|
error: '',
|
|
@@ -410,7 +398,7 @@ export function getPortfolioData(provider_1, network_1, defaultProvider_1, addre
|
|
|
410
398
|
}
|
|
411
399
|
catch (error) {
|
|
412
400
|
console.error('Error fetching Ethena Airdrop rewards data:', error);
|
|
413
|
-
for (const address of
|
|
401
|
+
for (const address of addresses) {
|
|
414
402
|
rewardsData[address.toLowerCase()].ethena = {
|
|
415
403
|
error: 'Error fetching Ethena Airdrop rewards data in batch',
|
|
416
404
|
data: null,
|
|
@@ -446,16 +434,15 @@ export function getPortfolioData(provider_1, network_1, defaultProvider_1, addre
|
|
|
446
434
|
try {
|
|
447
435
|
const [accDataPromise, earnDataPromise] = yield Promise.allSettled([
|
|
448
436
|
_getMorphoBlueAccountData(client, network, address, market, morphoMarketsData[market.value]),
|
|
449
|
-
|
|
437
|
+
getMorphoEarn(client, network, address, market, morphoMarketsData[market.value]),
|
|
450
438
|
]);
|
|
451
439
|
if (accDataPromise.status === 'rejected') {
|
|
452
440
|
console.error(`Error fetching MorphoBlue account data for address ${address} on market ${market.value}:`, accDataPromise.reason);
|
|
453
441
|
positions[address.toLowerCase()].morphoBlue[market.value] = { error: `Error fetching MorphoBlue account data for address ${address} on market ${market.value}`, data: null };
|
|
454
442
|
}
|
|
455
443
|
if (earnDataPromise.status === 'rejected') {
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
stakingPositions[address.toLowerCase()].morphoBlue[market.value] = { error: `Error fetching MorphoBlue earn data for address ${address} on market ${market.value}`, data: null };
|
|
444
|
+
console.error(`Error fetching MorphoBlue account data for address ${address} on market ${market.value}:`, earnDataPromise.reason);
|
|
445
|
+
positions[address.toLowerCase()].morphoBlue[market.value] = { error: `Error fetching MorphoBlue account data for address ${address} on market ${market.value}`, data: null };
|
|
459
446
|
}
|
|
460
447
|
if (accDataPromise.status !== 'rejected') {
|
|
461
448
|
const accData = accDataPromise.value;
|
|
@@ -514,11 +501,9 @@ export function getPortfolioData(provider_1, network_1, defaultProvider_1, addre
|
|
|
514
501
|
positions[address.toLowerCase()].spark[market.value] = { error: `Error fetching Spark account data for address ${address} on market ${market.value}`, data: null };
|
|
515
502
|
}
|
|
516
503
|
}))).flat(),
|
|
517
|
-
|
|
518
|
-
// before a vault's data lands and the vault is missing from the result.
|
|
519
|
-
...addresses.flatMap((address) => {
|
|
504
|
+
...addresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
520
505
|
var _a;
|
|
521
|
-
return (
|
|
506
|
+
return (_a = makerCdps[address.toLowerCase()]) === null || _a === void 0 ? void 0 : _a.map((cdpInfo) => __awaiter(this, void 0, void 0, function* () {
|
|
522
507
|
try {
|
|
523
508
|
const cdpData = yield _getMakerCdpData(client, network, cdpInfo);
|
|
524
509
|
if (cdpData) {
|
|
@@ -530,7 +515,7 @@ export function getPortfolioData(provider_1, network_1, defaultProvider_1, addre
|
|
|
530
515
|
positions[address.toLowerCase()].maker[cdpInfo.id] = { error: `Error fetching Maker CDP data for address ${address} with ID ${cdpInfo.id}`, data: null };
|
|
531
516
|
}
|
|
532
517
|
}));
|
|
533
|
-
}),
|
|
518
|
+
})).flat(),
|
|
534
519
|
...aaveV2Markets.map((market) => addresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
535
520
|
try {
|
|
536
521
|
const accData = yield _getAaveV2AccountData(client, network, address, aaveV2MarketsData[market.value].assetsData, market);
|
|
@@ -591,7 +576,7 @@ export function getPortfolioData(provider_1, network_1, defaultProvider_1, addre
|
|
|
591
576
|
}
|
|
592
577
|
}))).flat(),
|
|
593
578
|
// liquity sBold/yBold and staking options
|
|
594
|
-
...
|
|
579
|
+
...addresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
595
580
|
try {
|
|
596
581
|
if (!isMainnet) {
|
|
597
582
|
stakingPositions[address.toLowerCase()].liquityV2SBoldYBold = { error: '', data: null };
|
package/esm/savings/index.js
CHANGED
|
@@ -18,7 +18,8 @@ import * as summerVaults from './summerVaults';
|
|
|
18
18
|
import * as yearnV3Vaults from './yearnV3Vaults';
|
|
19
19
|
export { morphoVaults, yearnVaults, makerDsr, skyOptions, sparkSavingsVaults, summerVaults, yearnV3Vaults, };
|
|
20
20
|
export const getSavingsData = (provider, network, accounts) => __awaiter(void 0, void 0, void 0, function* () {
|
|
21
|
-
const morphoVaultsList = Object.keys(morphoVaults.morphoVaultsOptions.MORPHO_VAULTS)
|
|
21
|
+
const morphoVaultsList = Object.keys(morphoVaults.morphoVaultsOptions.MORPHO_VAULTS)
|
|
22
|
+
.filter((key) => morphoVaults.morphoVaultsOptions.getMorphoVault(key).network === network);
|
|
22
23
|
const yearnVaultsList = Object.keys(yearnVaults.yearnVaultsOptions.YEARN_VAULTS);
|
|
23
24
|
const sparkSavingsVaultsList = Object.keys(sparkSavingsVaults.sparkSavingsVaultsOptions.SPARK_SAVINGS_VAULTS);
|
|
24
25
|
const yearnV3VaultsList = Object.keys(yearnV3Vaults.yearnV3VaultsOptions.YEARN_V3_VAULTS);
|
|
@@ -26,7 +27,7 @@ export const getSavingsData = (provider, network, accounts) => __awaiter(void 0,
|
|
|
26
27
|
.filter((key) => summerVaults.summerVaultsOptions.getSummerVault(key).network === network);
|
|
27
28
|
const savingsData = {};
|
|
28
29
|
yield Promise.all([
|
|
29
|
-
...(
|
|
30
|
+
...(morphoVaultsList.length ? [
|
|
30
31
|
(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
31
32
|
try {
|
|
32
33
|
const vaults = morphoVaultsList.map((vaultKey) => morphoVaults.morphoVaultsOptions.getMorphoVault(vaultKey));
|
|
@@ -37,6 +38,8 @@ export const getSavingsData = (provider, network, accounts) => __awaiter(void 0,
|
|
|
37
38
|
console.error('[getSavingsData] Error fetching morpho vaults:', err);
|
|
38
39
|
}
|
|
39
40
|
}))(),
|
|
41
|
+
] : []),
|
|
42
|
+
...(network === NetworkNumber.Eth ? [
|
|
40
43
|
...yearnVaultsList.map((vaultKey) => __awaiter(void 0, void 0, void 0, function* () {
|
|
41
44
|
try {
|
|
42
45
|
const vault = yearnVaults.yearnVaultsOptions.getYearnVault(vaultKey);
|
|
@@ -3,7 +3,7 @@ import * as morphoVaultsOptions from './options';
|
|
|
3
3
|
import { EthAddress, EthereumProvider, NetworkNumber, MorphoVault, MorphoVaultType, SavingsVaultData } from '../../types';
|
|
4
4
|
export { morphoVaultsOptions, };
|
|
5
5
|
/**
|
|
6
|
-
* Fetches liquidity for all given vaults
|
|
6
|
+
* Fetches liquidity for all given vaults, one API request per vault version (chunked if over the page cap),
|
|
7
7
|
* returned as a map keyed by lowercased vault address. A vault missing from the API response is
|
|
8
8
|
* absent from the map.
|
|
9
9
|
*/
|