Checking bool
return of ERC20 approve
breaks protocol for mainnet USDT and similar tokens which don't return true
As a result, if the call fails the boolean will still return true for those specific tokens.
All tokens that implement the ERC20-Standard are in scope, which includes tokens such USDT & BNB.
For USDT, the approve function does not return a boolean value. This means that even if the approve were to fail, the bool would still be set to true and the approve within the contract will pass.
Protocol won't work with USDT and similar tokens
Manual Review
Use SafeApprove.
Invalid, low level call will always return true as long as the call succeeds without reverting, so this has no impact described, given approvals can only fail when some weird tokens do not allow a uint256.max approval, which is not described in any of the issues below.
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.