The RankedChoice contract is missing Event emmision for Critical parameters changes, which might affects its integration with other contract or off-chain entity.
Vulnerability Details
No events are emmited in the RankedChoice::rankCandidates, RankedChoice::rankCandidatesbySig, and RankedChoice::selectPresident which are all functions that modifies critical state variables , but no events broadcast the changes.
Reduced transparency
Difficulty in tracking changes
Innefficient or impossible integration with other contracts and offchain services.
manual Analysis
Add event declaration and emit them when critical changes are made
In the RankedChoice::rankCandidates event CandidateRanked(address[] rankedAddresses, address rankedBy)should be emitted
and in the RankedChoice::rankCandidatesbySig event emit CandidateRankedBySignature(orderedCandidates, signer)should be emitted
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.