Prize rarity depends on msg.sender address
block.difficulty == 0 always in PoS. So the rarity of the prize token depends only on the msg.sender that calls the selectWinner() function:
uint256 rarity = uint256(keccak256(abi.encodePacked(msg.sender, block.difficulty))) % 100;
What rarity of prize token depends exclusively on who calls the selectWinner() function.
Manual review
Use actual randomness -> Chainlink VRF
Root cause: bad RNG Impact: manipulate winner
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.