The protocol credits users the nominal transfer amount, but a fee-on-transfer or rebasing token delivers less (or a changing amount), so internal accounting exceeds real holdings and the last users cannot withdraw.
uint256 b0 = token.balanceOf(address(this)); token.safeTransferFrom(msg.sender, address(this), amt); deposits[msg.sender] += token.balanceOf(address(this)) - b0;
The SaferICO scanner runs 201 detectors over your Solidity source, SAFE-0052 among them. Paste an address or the source itself — a small per-scan fee, shown before you sign, or unlimited on any plan.