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 usdtcontract does not.
https://etherscan.io/token/0xdac17f958d2ee523a2206206994597c13d831ec7#code
This issue will make impossible to register usdtas 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.