The strategy contracts (StrategyMainnet
, StrategyOp
, and StrategyArb
) lack event emissions for critical state-changing operations. Events are essential for off-chain monitoring, transparency, and debugging. The following critical functions do not emit events:
addRoute()
: Adds new swap routes without tracking changes
claimAndSwap()
: Performs claims and swaps without logging results
_freeFunds()
: Withdraws funds without recording amounts
_deployFunds()
: Deploys funds without tracking deployments
setRouter()
(in StrategyOp/StrategyArb): Updates router without logging changes
Example from StrategyMainnet.sol
:
The lack of events has several negative implications:
Monitoring Limitations:
Difficult to track strategy performance and operations
No way to monitor keeper activities and swap results
Cannot track successful/failed operations without parsing all transactions
Debugging Challenges:
Complex to investigate failed transactions
No historical record of route additions or router changes
Difficult to audit actual vs expected behavior
Integration Issues:
DeFi integrations cannot easily track strategy actions
Limited ability to build monitoring dashboards
No standardized way to track cross-chain operations
Transparency Concerns:
Users cannot easily verify strategy operations
Limited visibility into keeper-executed swaps
No clear audit trail of management actions
Add appropriate events to the interface and emit them in all state-changing functions:
Implementation example:
These events will:
Enable proper monitoring and tracking
Facilitate debugging and auditing
Improve transparency for users and integrators
Follow EVM best practices
Enable better analytics and dashboards
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.