Unchecked Return Values
What it detects
When calling external contracts, ignoring the success flag or return value can hide failures. This detector points out low-level call
or ERC20 transfer
returns that are not checked, potentially leading to inconsistent state.
Typical symptoms
- Results of
call
,delegatecall
, or token transfers unused - No
require
statement for the returned boolean
Solidity snippet (v0.8.25)
pragma solidity ^0.8.25;
contract NoCheck {
function sendEther(address payable to) external {
// Return value ignored
to.call{value: 1 ether}("");
}
}
Why it matters on EVM
Unchecked return values can cause silent failures, leaving contracts in unexpected states or losing funds.