Skip to content
Request an audit

‹ Findings database

PreDepositVault will not work for USDT

MediumGAIB Pre-Vaults audit·Sherlock·AI compute financing·28th March, 2025·by 0xSimaoM-1

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

https://github.com/sherlock-audit/2025-03-gaib/blob/main/pre-vaults/contracts/pre-vaults/gpdUSDT.sol#L47

Tool Used

Manual Review

Recommendation

Use .forceApprove() from SafeERC20.