diff --git a/apps/agentic-chat/src/components/tools/GetLimitOrdersUI.tsx b/apps/agentic-chat/src/components/tools/GetLimitOrdersUI.tsx index 693c18c6..196c32f9 100644 --- a/apps/agentic-chat/src/components/tools/GetLimitOrdersUI.tsx +++ b/apps/agentic-chat/src/components/tools/GetLimitOrdersUI.tsx @@ -6,6 +6,7 @@ import { stopPropagationHandler } from '@/lib/eventHandlers' import { cn } from '@/lib/utils' import { Amount } from '../ui/Amount' +import { AssetIcon } from '../ui/AssetIcon' import { ToolCard } from '../ui/ToolCard' import { useToolStateRender } from './toolUIHelpers' @@ -41,6 +42,8 @@ interface OrderListItemProps { network: string sellTokenSymbol: string buyTokenSymbol: string + sellTokenIcon?: string + buyTokenIcon?: string sellAmount: string buyAmount: string filledPercent: number @@ -53,6 +56,8 @@ function OrderListItem({ network, sellTokenSymbol, buyTokenSymbol, + sellTokenIcon, + buyTokenIcon, sellAmount, buyAmount, filledPercent, @@ -77,11 +82,13 @@ function OrderListItem({
- + + Sell | - + + Buy | @@ -179,6 +186,8 @@ export function GetLimitOrdersUI({ toolPart }: ToolUIComponentProps<'getLimitOrd network={order.network} sellTokenSymbol={order.sellTokenSymbol} buyTokenSymbol={order.buyTokenSymbol} + sellTokenIcon={order.sellTokenIcon} + buyTokenIcon={order.buyTokenIcon} sellAmount={order.sellAmount} buyAmount={order.buyAmount} filledPercent={order.filledPercent} diff --git a/apps/agentic-chat/src/components/tools/GetTransactionHistoryUI.tsx b/apps/agentic-chat/src/components/tools/GetTransactionHistoryUI.tsx index 125ab177..a5e4fa1e 100644 --- a/apps/agentic-chat/src/components/tools/GetTransactionHistoryUI.tsx +++ b/apps/agentic-chat/src/components/tools/GetTransactionHistoryUI.tsx @@ -110,6 +110,8 @@ function TransactionCard({ )} diff --git a/apps/agentic-chat/src/components/tools/InitiateSwapUI.tsx b/apps/agentic-chat/src/components/tools/InitiateSwapUI.tsx index 2a1ad137..e6d9b3ed 100644 --- a/apps/agentic-chat/src/components/tools/InitiateSwapUI.tsx +++ b/apps/agentic-chat/src/components/tools/InitiateSwapUI.tsx @@ -53,6 +53,8 @@ export function InitiateSwapUI({ toolPart }: ToolUIComponentProps<'initiateSwapT { @@ -148,11 +153,11 @@ const TxStepCardSwapPair = ({ return (
- {fromSymbol} +
- {toSymbol} +
) } diff --git a/apps/agentic-server/src/tools/limitOrder/createLimitOrder.ts b/apps/agentic-server/src/tools/limitOrder/createLimitOrder.ts index e8e68134..f44585a5 100644 --- a/apps/agentic-server/src/tools/limitOrder/createLimitOrder.ts +++ b/apps/agentic-server/src/tools/limitOrder/createLimitOrder.ts @@ -44,10 +44,12 @@ export interface LimitOrderSummary { sellAsset: { symbol: string amount: string + icon?: string } buyAsset: { symbol: string estimatedAmount: string + icon?: string } network: string limitPrice: string @@ -154,10 +156,12 @@ export async function executeCreateLimitOrder( sellAsset: { symbol: sellAsset.symbol, amount: input.sellAmount, + icon: sellAsset.icon, }, buyAsset: { symbol: buyAsset.symbol, estimatedAmount: estimatedBuyAmount, + icon: buyAsset.icon, }, network: input.network, limitPrice: input.limitPrice, diff --git a/apps/agentic-server/src/tools/limitOrder/getLimitOrders.ts b/apps/agentic-server/src/tools/limitOrder/getLimitOrders.ts index a8be5dab..1f4332f9 100644 --- a/apps/agentic-server/src/tools/limitOrder/getLimitOrders.ts +++ b/apps/agentic-server/src/tools/limitOrder/getLimitOrders.ts @@ -31,6 +31,8 @@ interface OrderInfo { buyToken: string sellTokenSymbol: string buyTokenSymbol: string + sellTokenIcon?: string + buyTokenIcon?: string sellAmount: string buyAmount: string executedSellAmount: string @@ -44,12 +46,15 @@ interface OrderInfo { const DEFAULT_DECIMALS = 18 -function resolveTokenMetadata(tokenAddress: string, chainId: number): { symbol: string; precision: number } | null { +function resolveTokenMetadata( + tokenAddress: string, + chainId: number +): { symbol: string; precision: number; icon?: string } | null { const network = CHAIN_ID_TO_NETWORK[chainId] as Network | undefined if (!network) return null const asset = AssetService.getInstance().searchByContract(tokenAddress, network)[0] if (!asset) return null - return { symbol: asset.symbol, precision: asset.precision } + return { symbol: asset.symbol, precision: asset.precision, icon: asset.icon } } export interface GetLimitOrdersOutput { @@ -118,6 +123,8 @@ export async function executeGetLimitOrders( buyToken: order.buyToken, sellTokenSymbol: sellTokenMeta?.symbol ?? order.sellToken.slice(0, 10), buyTokenSymbol: buyTokenMeta?.symbol ?? order.buyToken.slice(0, 10), + sellTokenIcon: sellTokenMeta?.icon, + buyTokenIcon: buyTokenMeta?.icon, sellAmount: fromBaseUnit(order.sellAmount, sellPrecision), buyAmount: fromBaseUnit(order.buyAmount, buyPrecision), executedSellAmount: fromBaseUnit(order.executedSellAmount || '0', sellPrecision),