A weak source of randomness is used to determine the outcome of "rap battles" which challengers can exploit and only enter battles they will win.
The winner of rap battles is determined pseudorandomly in RapBattle:_battle
via the code below:
Blockchains are deterministic public ledgers and a challenger can read the variables block.timestamp, block.prevrandao, msg.sender (themselves), and totalBattleSkill before entering a battle. They can use this information to only enter battles where they are guaranteed to win.
PoC add this to OneShotTest.t.sol
- uncomment vm.warp to see scenario where the challenger will not enter a losing battle
Challengers game the system and will only enter battles they will win.
Slither
Manual Review
Foundry
Use Chainlink's VRF service for verifiably random numbers to create fair battles for all rappers.
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.