The EggstravaganzaNFT contract lacks proper initialization controls for the critical gameContract parameter, creating a risk of complete system failure if initialization is forgotten or performed incorrectly.
The NFT contract relies on the owner to set the game contract address after deployment, but there are no safeguards around this critical initialization step:
If the owner forgets to call setGameContract after deployment:
The gameContract variable remains uninitialized (address(0))
All calls to mintEgg will revert with "Unauthorized minter" since no contract is authorized
The entire game system becomes non-functional as players cannot receive eggs
If initialization is forgotten, the entire game system becomes non-functional
No eggs can be minted, breaking the core functionality of the game
No clear error messages to indicate what went wrong
Requires redeployment of contracts to fix
Manual code review
Implement proper initialization controls:
This ensures the game contract is set during deployment, eliminating the risk of forgotten initialization.
Owner is trusted and is not expected to interact in ways that would compromise security
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.