From d64f4acb91fbc156cb025732415d40789d42dea9 Mon Sep 17 00:00:00 2001 From: Stark Sama Date: Fri, 13 Mar 2026 12:44:07 +0800 Subject: [PATCH] fix: lower rebalance fee cap and clamp trend growth display --- src/config/fees.ts | 2 +- .../components/charts/volume-chart.tsx | 21 +++++++++++++------ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/config/fees.ts b/src/config/fees.ts index 53b840c3..155237cc 100644 --- a/src/config/fees.ts +++ b/src/config/fees.ts @@ -3,7 +3,7 @@ import { parseUnits } from 'viem'; const FEE_DENOMINATOR_PPM = 1_000_000n; const REBALANCE_FEE_RATE_PPM = 30n; // 0.3 bps = 0.003% const LEVERAGE_FEE_RATE_PPM = 75n; // 0.75 bps = 0.0075% -export const REBALANCE_FEE_CEILING_USD = 10; +export const REBALANCE_FEE_CEILING_USD = 5; export const LEVERAGE_FEE_CEILING_USD = 5; type FeeParams = { diff --git a/src/features/market-detail/components/charts/volume-chart.tsx b/src/features/market-detail/components/charts/volume-chart.tsx index b7fc12f5..9f17d9f0 100644 --- a/src/features/market-detail/components/charts/volume-chart.tsx +++ b/src/features/market-detail/components/charts/volume-chart.tsx @@ -30,6 +30,18 @@ type VolumeChartProps = { market: Market; }; +const MAX_NET_GROWTH_PERCENT = 20_000; + +function formatNetChangePercentage(value: number): string { + if (!Number.isFinite(value)) return '0.00%'; + + if (value > MAX_NET_GROWTH_PERCENT) { + return '>' + MAX_NET_GROWTH_PERCENT.toLocaleString() + '%'; + } + + return (value >= 0 ? '+' : '') + value.toFixed(2) + '%'; +} + function VolumeChart({ marketId, chainId, market }: VolumeChartProps) { const selectedTimeframe = useMarketDetailChartState((s) => s.selectedTimeframe); const selectedTimeRange = useMarketDetailChartState((s) => s.selectedTimeRange); @@ -191,8 +203,7 @@ function VolumeChart({ marketId, chainId, market }: VolumeChartProps) {
{formatValue(supplyStats.current)} = 0 ? 'text-emerald-500' : 'text-rose-500'}`}> - {supplyStats.netChangePercentage >= 0 ? '+' : ''} - {supplyStats.netChangePercentage.toFixed(2)}% + {formatNetChangePercentage(supplyStats.netChangePercentage)}
@@ -201,8 +212,7 @@ function VolumeChart({ marketId, chainId, market }: VolumeChartProps) {
{formatValue(borrowStats.current)} = 0 ? 'text-emerald-500' : 'text-rose-500'}`}> - {borrowStats.netChangePercentage >= 0 ? '+' : ''} - {borrowStats.netChangePercentage.toFixed(2)}% + {formatNetChangePercentage(borrowStats.netChangePercentage)}
@@ -211,8 +221,7 @@ function VolumeChart({ marketId, chainId, market }: VolumeChartProps) {
{formatValue(liquidityStats.current)} = 0 ? 'text-emerald-500' : 'text-rose-500'}`}> - {liquidityStats.netChangePercentage >= 0 ? '+' : ''} - {liquidityStats.netChangePercentage.toFixed(2)}% + {formatNetChangePercentage(liquidityStats.netChangePercentage)}