The ERC20.transfer()
and ERC20.transferFrom()
functions return a boolean value indicating success. This parameter needs to be checked for success. Some tokens do not revert if the transfer failed but return false instead.
_battle()
function does not check the return value of these functions.
Tokens that don't actually perform the transfer and return false are still counted as a correct transfer.
Manual Review
We recommend using OpenZeppelin’s SafeERC20
versions with the safeTransfer()
and safeTransferFrom()
functions that handle the return values check.
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.