diff --git a/app/autovault/components/VaultListV2.tsx b/app/autovault/components/VaultListV2.tsx index 1b084603..ad18065a 100644 --- a/app/autovault/components/VaultListV2.tsx +++ b/app/autovault/components/VaultListV2.tsx @@ -7,6 +7,7 @@ import { useTokens } from '@/components/providers/TokenProvider'; import { TokenIcon } from '@/components/TokenIcon'; import { UserVaultV2 } from '@/data-sources/subgraph/v2-vaults'; import { formatReadable } from '@/utils/balance'; +import { parseCapIdParams } from '@/utils/morpho'; import { SupportedNetworks, getNetworkImg } from '@/utils/networks'; type VaultListV2Props = { @@ -44,7 +45,7 @@ export function VaultListV2({ vaults, loading }: VaultListV2Props) { return (
| ID | Asset | APY | -Agents | Collaterals | Action | @@ -63,13 +63,17 @@ export function VaultListV2({ vaults, loading }: VaultListV2Props) { const token = findToken(vault.asset, vault.networkId); const networkImg = getNetworkImg(vault.networkId); + const collaterals = vault.caps + .map(cap => parseCapIdParams(cap.idParams).collateralToken) + .filter(collat => collat !== undefined) + return ( -
|---|---|---|---|---|
|
{networkImg &&
|
@@ -93,23 +97,31 @@ export function VaultListV2({ vaults, loading }: VaultListV2Props) {
{/* APY */}
- -- - | - - {/* Agents */} -- -- + + {vault.avgApy && (vault.avgApy * 100).toFixed(2) + '%'} + | {/* Collaterals */}
- --
+ {
+ collaterals.map((tokenAddress) => (
+
+
+ ))
+ }
|
{/* Action */}
-
+
diff --git a/src/data-sources/morpho-api/v2-vaults.ts b/src/data-sources/morpho-api/v2-vaults.ts
index d3649ac4..c0e287d0 100644
--- a/src/data-sources/morpho-api/v2-vaults.ts
+++ b/src/data-sources/morpho-api/v2-vaults.ts
@@ -15,6 +15,7 @@ export type VaultV2Cap = {
export type VaultV2Details = {
id: string;
+ address: string;
asset: string;
symbol: string;
name: string;
@@ -93,6 +94,7 @@ function transformCap(apiCap: ApiVaultV2Cap): VaultV2Cap {
function transformVault(apiVault: ApiVaultV2): VaultV2Details {
return {
id: apiVault.id,
+ address: apiVault.address,
asset: apiVault.asset.address,
symbol: apiVault.symbol,
name: apiVault.name,
@@ -108,19 +110,24 @@ function transformVault(apiVault: ApiVaultV2): VaultV2Details {
}
/**
- * Fetches VaultV2 details from Morpho API
+ * Core function to fetch VaultV2 details from Morpho API
+ * Handles both single and multiple vault addresses
*
- * @param vaultAddress - The vault address
+ * @param vaultAddresses - Array of vault addresses
* @param network - The network/chain ID
- * @returns VaultV2Details or null if not found
+ * @returns Array of VaultV2Details
*/
-export const fetchVaultV2Details = async (
- vaultAddress: string,
+const fetchVaultV2DetailsCore = async (
+ vaultAddresses: string[],
network: SupportedNetworks,
-): Promise |