Normally, a trading hook that can be attached to multiple pools should emit events that uniquely identify which pool / pair a trade belongs to (for example via PoolId or token addresses). This enables accurate per-pool analytics, rewards, and monitoring.
In this implementation, the events only include the buyer/seller, amount, and fee, with no pool or token context. When the same hook is attached to multiple ReFi pools, event consumers cannot distinguish which specific pool generated a trade.
Likelihood:
When the same hook instance is attached to several pools involving ReFi (e.g., ReFi/WETH, ReFi/USDC, ReFi/USDT), each trade emits identical-looking events from the pool’s perspective.
When off-chain systems (indexers, dashboards, reward engines) subscribe only to these hook events without correlating with PoolManager logs, they always see a pool-agnostic stream of ReFi trades.
Impact:
Analytics and dashboards cannot correctly attribute ReFi volume, liquidity, or fees per specific pool, which can mislead protocol decisions and external users.
Any future per-pool logic (e.g., higher rebates on ReFi/WETH, different incentives by pair) becomes brittle or impossible using these events alone, potentially forcing a protocol migration to a new event format.
In practice, any consumer relying purely on ReFiBought / ReFiSold cannot know which pool produced the event.
Add pool/pair context to the events and emit using key.currency0 / key.currency1 (or PoolId).
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.