0xtrails
Version:
SDK for Trails
63 lines • 1.58 kB
TypeScript
import { Address, PublicClient } from 'viem';
export interface VaultConfig {
address: Address;
name: string;
chainId: number;
asset: {
symbol: string;
name: string;
address: Address;
decimals: number;
logoUrl?: string;
};
}
export interface Pool {
id: string;
name: string;
protocol: string;
chainId: number;
apy: number;
tvl: number;
token: {
symbol: string;
name: string;
address: string;
decimals: number;
logoUrl?: string;
};
depositAddress: string;
isActive: boolean;
poolUrl?: string;
protocolUrl?: string;
wrappedTokenGatewayAddress?: string;
}
/**
* Fetch vault data from Morpho GraphQL API
*/
export declare function fetchVaultData(vaultAddress: Address, chainId: number): Promise<any | null>;
/**
* Calculate vault APY from SDK data
*/
export declare function calculateVaultApy(vault: any): number;
/**
* Calculate rewards APR from API data
*/
export declare function calculateRewardsApr(vaultData: any): number;
/**
* Hook to fetch Morpho vaults
*/
export declare function useMorphoVaults(): {
data: Pool[];
loading: boolean;
error: Error | null;
};
/**
* Get all vaults for a specific chain
*/
export declare function getVaultsForChain(chainId: number, _publicClient: PublicClient): Promise<Pool[]>;
/**
* Get all vaults across all chains
*/
export declare function getAllVaults(_publicClient: PublicClient): Promise<Pool[]>;
export default useMorphoVaults;
//# sourceMappingURL=morpho.d.ts.map