// packages/utils/price.ts import { PriceFetchingConfig, PriceFetchingResult, PriceResponse } from './price.types'; const API_BASE_URL = 'https://helper.decane.app'; export async function fetchPrices(config: PriceFetchingConfig): Promise { const { vm, chainId, tokenAddresses } = config; if (tokenAddresses.length === 0) { return { data: { vm, chainId, prices: [] } as PriceResponse }; } const url = new URL(`${API_BASE_URL}/${vm}/prices`); url.searchParams.append('chainId', String(chainId)); url.searchParams.append('tokenAddresses', tokenAddresses.join(',')); try { const response = await fetch(url.toString()); if (!response.ok) { const errorData = await response.json(); return { error: errorData }; } const data = await response.json(); return { data: data.data }; } catch (error: any) { return { error: { code: 500, message: error.message || 'An unexpected error occurred', stack: error.stack, errors: [], }, }; } }