Some tokens(like USDT) has no return value on approve function. This will cause revert with ApprovalFailed in _approveFundsToAssetRouter function.
https://github.com/Cyfrin/2024-10-zksync/blob/cfc1251de29379a9548eeff1eea3c78267288356/era-contracts/l1-contracts/contracts/bridge/L1ERC20Bridge.sol#L230
_approveFundsToAssetRouter function is used to transfers tokens from the depositor address to the bridge. In between, it calls _token.approve to give allowance to L1_ASSET_ROUTER for the amount, which is required for latter deposit operation.
However, some tokens (like USDT) doesn't return value on approval. This will cause issue in the following line where success is checked:
Deposit operations for some tokens like USDT will revert.
Manual Review
Make sure success reflects correct status of approval. Consider using 3rd party like oOpenZeppelin.
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.