From de612dabd923f3d9fecec667accff7ab6e74ea22 Mon Sep 17 00:00:00 2001 From: Florent Tapponnier <160007691+Flotapponnier@users.noreply.github.com> Date: Tue, 11 Aug 2026 13:10:40 +0200 Subject: [PATCH] fix(squid): use fee+gas sum when USD amounts cancel out on stable pairs --- .../bridge-monitor/cmd/monitor/squid_bridge.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/harnesses/bridge-monitor/cmd/monitor/squid_bridge.go b/harnesses/bridge-monitor/cmd/monitor/squid_bridge.go index afc962b8..e5772f69 100644 --- a/harnesses/bridge-monitor/cmd/monitor/squid_bridge.go +++ b/harnesses/bridge-monitor/cmd/monitor/squid_bridge.go @@ -169,7 +169,16 @@ func (s *SquidBridge) TestRoute(route TestRoute, amount, amountUsd float64, rawU gasUsd += v } - costUsd := inUsd - outUsd + gasUsd + // Prefer fromAmountUSD - toAmountUSD as the all-in cost (captures spread + fees + gas + // as netted by the router). Fall back to explicit fee+gas sum when the USD amounts + // are identical (e.g. stable→stable where spot prices cancel out). + diffUsd := inUsd - outUsd + var costUsd float64 + if diffUsd > 0.001 { + costUsd = diffUsd + } else { + costUsd = bridgeFeeUsd + gasUsd + } if costUsd < 0 { costUsd = 0 } @@ -177,7 +186,7 @@ func (s *SquidBridge) TestRoute(route TestRoute, amount, amountUsd float64, rawU if amountUsd > 0 { costPct = (costUsd / amountUsd) * 100 } - slippage := costUsd - bridgeFeeUsd - gasUsd + slippage := diffUsd - bridgeFeeUsd - gasUsd if slippage < 0 { slippage = 0 }