The Streets::stake
and Streets::unstake
functions accept and transfer OneShot
NFTs, posing a risk of reentrancy in Streets.sol
. However, there are checks in place to defend against reentrancy attacks.
Streets::stake
function: (Not using safeTransferFrom
function).
Streets:unstake
function: (Not using safeTransferFrom
function) and contains a misleading Natspec
comment.
Streets.sol
Misleading Natspec comment.
Unsafe Transfers: Both functions are susceptible to reentrancy attacks, although unstake
has some protection against it (with minimal impact).
Misleading NatSpecs:
The top first misleading NatSpec comment can confuse auditors, researchers, or other developers. It suggests that the ERC721 Token contract variables are declared there, but in reality, it's an ERC721 Token contract Interface. Adjacent to it, an ERC20 Token contract is declared. Auditors, researchers, or other developers, after seeing that NatSpec, may think both are ERC721 Token Contracts variables.
The provided NatSpec can mislead researchers, auditors, or other developers. It suggests the need for a RapBattle
function to update OneShot
NFT metadata. However, as Streets.sol already has privileges to update OneShot
NFT metadata, invoking any RapBattle
functions here is unnecessary.
Manual Review, Foundry.
Utilize the safeTransferFrom
function provided by OpenZeppelin::ERC721
instead of transferFrom
.
Remove or update the misleading NatSpec comments.
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.