The code calls approve(spender, x) on tokens (like USDT) that revert when the current allowance is non-zero. Any second approval reverts, permanently blocking the integration for that token.
// first approve(spender, 100) ok. // later approve(spender, 200) on USDT -> reverts because allowance != 0 // -> the vault can never re-approve; deposits stuck.
token.safeApprove(spender, 0);
token.safeApprove(spender, amount);
// or forceApprove / increaseAllowance
The SaferICO scanner runs 201 detectors over your Solidity source, SAFE-0209 among them. Paste an address or the source itself — a small per-scan fee, shown before you sign, or unlimited on any plan.