Summary
PreDepositVault::constructor() uses .approve(), but this doesn't work for USDT as it does not return true.
Vulnerability Detail
USDT does not return on approval, which makes the EVM revert as it has return length checks and it expects it to return true.
Impact
Deployment of PreDepositVault for USDT fails.
Code Snippet
Tool Used
Manual Review
Recommendation
Use .forceApprove() from SafeERC20.