A view function returns state that is temporarily inconsistent during an external call in another contract. Third-party integrators (e.g. price oracles, lending markets) read this corrupted view mid-transaction and make decisions on manipulated values.
// Add a reentrancy lock check usable by readers, or expose a lock state
modifier readGuard() { require(!_locked, "reentrant read"); _; }
function getVirtualPrice() public view readGuard returns (uint256) {
return totalAssets() * 1e18 / totalSupply();
}
Incidents this entry cites by name:
Largest recorded losses in the same failure class — related, not the same bug:
The SaferICO scanner runs 201 detectors over your Solidity source, SAFE-0003 among them. Paste an address or the source itself — a small per-scan fee, shown before you sign, or unlimited on any plan.