The StakingPool contract fails to emit events for several critical operations, including strategy additions/removals, fee updates, and ownership changes. This omission significantly impairs the contract's transparency, auditability, and the ability of external systems to react to important state changes.
Smart contracts often interact with off-chain systems and other contracts. Events serve as an efficient, gas-friendly way to communicate important state changes and actions to these external systems. In the StakingPool contract, several crucial functions that alter the contract's state or configuration do not emit events, including:
addStrategy
removeStrategy
reorderStrategies
addFee
updateFee
setUnusedDepositLimit
setPriorityPool
setRebaseController
The absence of these events makes it difficult for external systems to track changes in the contract's configuration, potentially leading to synchronization issues and reduced transparency.
Medium severity due to the loss of critical information and reduced contract transparency.
Systems may operate with outdated information, leading to incorrect decisions or actions.
Auditing contract activities becomes significantly more challenging and resource-intensive.
Users and integrators lack real-time notifications about important contract changes.
Reduced ability to create accurate historical records of contract administration.
Manual code review
Implement events for all critical state-changing operations:
By implementing these recommendations, the StakingPool contract will provide much-needed transparency and enable real-time tracking of important contract changes. This will significantly enhance the contract's auditability, improve user trust, and allow for more efficient integration with external systems.
Similar Issue :
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.