import { useSupportedChains, useTokenRoutes } from '@metalayer/sdk';
function Component() {
const { data: chainsData, isLoading: chainsLoading } = useSupportedChains();
const { data: tokenRoutes, isLoading: routesLoading } = useTokenRoutes();
if (chainsLoading || routesLoading) return <div>Loading...</div>;
const getChainInfo = (chainId: number) => {
const chain = chainsData?.chains.find(c => c.id === chainId);
return {
name: chain?.name || `Chain ${chainId}`,
icon: chain?.imageUrl,
};
};
const getTokenInfo = (chainId: number, address: string) => {
const key = `${chainId}_${address}`;
const token = tokenRoutes?.tokens[key];
return {
symbol: token?.symbol || 'Unknown',
icon: token?.imageUrl,
};
};
return (
<ul>
{tokenRoutes?.routes.slice(0, 5).map((route, index) => {
const sourceChain = getChainInfo(route.chainInId);
const destChain = getChainInfo(route.chainOutId);
const sourceToken = getTokenInfo(route.chainInId, route.tokenInAddress);
const destToken = getTokenInfo(route.chainOutId, route.tokenOutAddress);
return (
<li key={index} style={{ display: 'flex', alignItems: 'center', gap: '8px' }}>
{sourceToken.icon && <img src={sourceToken.icon} alt={sourceToken.symbol} width={20} />}
{sourceToken.symbol}
{sourceChain.icon && <img src={sourceChain.icon} alt={sourceChain.name} width={20} />}
on {sourceChain.name} →
{destToken.icon && <img src={destToken.icon} alt={destToken.symbol} width={20} />}
{destToken.symbol}
{destChain.icon && <img src={destChain.icon} alt={destChain.name} width={20} />}
on {destChain.name}
</li>
);
})}
</ul>
);
}