import type { FormatReserveUSDResponse, ReserveDataHumanized } from '@sodax/sdk'; import { useQuery, type UseQueryResult } from '@tanstack/react-query'; import { useSodaxContext } from '../shared/useSodaxContext.js'; import type { ReadHookParams } from '../shared/types.js'; export type ReserveUsdFormat = ReserveDataHumanized & FormatReserveUSDResponse; export type UseReservesUsdFormatParams = ReadHookParams; /** * React hook returning reserves with USD-formatted values for the Sodax money market. * Chains `getReservesHumanized` → `buildReserveDataWithPrice` → `formatReservesUSD`. */ export function useReservesUsdFormat({ queryOptions, }: UseReservesUsdFormatParams = {}): UseQueryResult { const { sodax } = useSodaxContext(); return useQuery({ queryKey: ['mm', 'reservesUsdFormat'], queryFn: async () => { const reserves = await sodax.moneyMarket.data.getReservesHumanized(); return sodax.moneyMarket.data.formatReservesUSD(sodax.moneyMarket.data.buildReserveDataWithPrice(reserves)); }, ...queryOptions, }); }