The EggVault constructor does not initialize eggNFT, requiring a separate setEggNFT call. If forgotten, the vault becomes unusable.
eggNFT is address(0) until setEggNFT is called, but there’s no check in depositEgg or withdrawEgg.
If setEggNFT is never called, all vault functions will revert due to ownerOf calls on address(0).
Permanent loss of functionality if deployment scripts omit setEggNFT.
Manual review of initialization flow.
Initialize eggNFT directly in the constructor.
Add a require(eggNFT != address(0)) check in critical functions.
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.