The USDT contract doesn't implement the IERC20 interface correctly. In this case functions that are supposed to return a bool (like approve does) don't.
When trying to register USDT
token with registerCollateralToken()
. This brakes, due to the following line:
When trying to call approve, it will revert as IERC20 expects a return bool
value but the usdt
contract does not.
https://etherscan.io/token/0xdac17f958d2ee523a2206206994597c13d831ec7#code
This issue will make impossible to register usdt
as a token in the protocol as registerCollateralToken()
with usdt
address will always revert.
Manual analysis.
In order to mitigate this use safeIncreaseAllowance
which supports both cases.
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.