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),