The setEggNFT
function allows the owner to change the eggNFT
contract address after deployment. If eggs from the original NFT contract are deposited and the owner subsequently calls setEggNFT
to point to a different NFT contract, the withdrawal mechanism breaks.
The withdrawEgg
function will later attempt to call transferFrom
on the new eggNFT
instance using a tokenId
associated with the original contract, causing the withdrawal to fail revert because the vault doesn't own that token ID on the new contract.
Deposited NFTs become permanently locked in the EggVault
contract, as users cannot withdraw their NFTs if the referenced EggstravaganzaNFT
contract address is changed after their deposit.
Initialize the eggNFT
address immutably in the constructor and remove the setEggNFT
function.
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.