Closed kyokosdream closed 2 years ago
I don't think this is an issue because the block time stamp is used for:
When minting or transferring tokens a function checks to see if the current proposal should be cleared, if (24 hours, 86400 seconds) has elapsed since the current proposal was activated (lastProposalStart)
When calling proposeRelease() it checks to see whether a proposal has occurred in the last 7 days (604800 seconds) and reverts execution if one has occurred in that time interval
When users vote it checks to make sure the 24 hour voting period has ended as a requirement for voting.
We need to double check to make sure the vote() function is re-entrant safe.
I believe it is since the ERC721A aux data is already set before incrementing the vote count.
The block time stamp can be manipulated so this represents an opportunity for malicious miners to attack the contract.
Open to suggestions how to refactor the code.