The contract owner can change the gameContract address at any time, including during an active game, without any validation. This can break in-progress gameplay interactions, such as minting found eggs.
The setGameContract() function lacks a check to ensure the game is not currently active (gameActive). If changed mid-game, any players relying on the previous game contract logic may encounter errors or failed operations.
For example, users might find eggs through gameplay, but the minting or reward logic may no longer function if it's tied to the old contract address.
Loss of Progress - Players may lose their ability to mint eggs if the contract is changed during gameplay.
Manual review
Add requirement for gameActive variable
Changing the NFT contract address doesn't update the storedEggs and eggDepositors mappings
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.