UNPKG

lending-apy-fetcher-ts

Version:

TypeScript library for fetching APYs from DeFi lending protocols

92 lines (82 loc) 2.95 kB
// Initialize environment variables (loads .env file) export function initializeEnvironment(): void { try { require('dotenv').config(); } catch (error) { // dotenv is not installed, continue without it } } // Auto-initialize on import initializeEnvironment(); // Main exports export { ApyFetcher } from './fetcher'; // Types export type { ApyData, Protocol, ApyResult, GroupedApys, BestApyResult, TokenMapping, NetworkTokenMappings, } from './types'; // Errors export { ApyFetcherError, NetworkError, ValidationError, AuthenticationError, } from './types'; // Protocols export { ETHEREUM, POLYGON, ARBITRUM, OPTIMISM } from './protocols'; // Protocols // export { KaminoProtocol } from './protocols/kamino'; export { AaveEthProtocol } from './protocols/aave-eth'; export { AavePolygonProtocol } from './protocols/aave-polygon'; export { AaveArbitrumProtocol } from './protocols/aave-arbitrum'; export { AaveOptimismProtocol } from './protocols/aave-optimism'; // Convenience function import { ApyFetcher } from './fetcher'; import { ApyData, ApyResult, Protocol } from './types'; // import { AppConfig } from './config'; /** * Simple convenience function to fetch APYs from all protocols * @param config Optional configuration, defaults to environment-based config * @param gracefulDegradation Continue with other protocols if one fails (default: true) * @returns Promise<ApyData[]> Array of APY data from all protocols */ export async function getApys( protocols?: Protocol[], gracefulDegradation: boolean = true ): Promise<ApyData[]> { const fetcher = new ApyFetcher(protocols); return await fetcher.fetchApys(gracefulDegradation); } /** * Get APYs with detailed results per protocol * @param config Optional configuration, defaults to environment-based config * @param gracefulDegradation Continue with other protocols if one fails (default: true) * @returns Promise<ApyResult[]> Array of results with success/error status per protocol */ export async function getApysWithResults( protocols?: Protocol[], gracefulDegradation: boolean = true ): Promise<ApyResult[]> { const fetcher = new ApyFetcher(protocols); return await fetcher.fetchApysWithResults(gracefulDegradation); } /** * Get the best APY for a specific token across all protocols * @param tokenSymbol Token symbol to search for (e.g., 'USDC', 'WETH') * @param config Optional configuration, defaults to environment-based config * @param gracefulDegradation Continue with other protocols if one fails (default: true) * @returns Promise<BestApyResult | null> Best APY result or null if token not found */ export async function getBestApyForToken( protocols: Protocol[], tokenSymbol: string, gracefulDegradation: boolean = true ): Promise<import('./types').BestApyResult | null> { const fetcher = new ApyFetcher(protocols); return await fetcher.getBestApyForToken(tokenSymbol, gracefulDegradation); }