The _approveFundsToAssetRouter from L1ERC20Bridge.sol function uses _token.approve and checks the success value. This approach will revert for tokens that do not return a boolean value on approval.
Some ERC20 tokens do not return a boolean value on the approve function, such as USDT. The current implementation of L1ERC20Bridge assumes that the approve function will always return a boolean value, which can lead to unexpected reverts.
The function will revert for tokens that do not return a boolean value on the approve function, causing a denial of service in L1ERC20Bridge.deposit for those tokens.
Manual review.
Use SafeERC20.forceApprove from OpenZeppelin to correctly handle tokens that do not return boolean values on approve.
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.