Severity: Informational / False Positive
Description:
Slither flags unchecked-transfer on ILinkToken.transferFrom and transferAndCall in LotteryFactory.sol. Standard ERC20 implementations return false on failure, requiring a wrapper check.
Analysis:
The protocol exclusively interacts with the official Chainlink LINK Token (ERC-677). The LINK token contract implementation uses strict math checks (Solidity 0.8+ safe math) and reverts on failure (e.g., insufficient balance or allowance) rather than returning false.
Decision:
Risk Accepted. Adding require(success) is dead code that increases gas costs without adding security, as the transaction would have already reverted at the token level.
Reference:
- Status: ✅ Passed
- Findings: 0 Critical, 0 High, 0 Medium, 0 Low.
- Methodology:
- Analyzed core protocol logic (
src/). - Filtered external dependencies (
lib/chainlink) to exclude upstream false positives (e.g.,tx.originusage in Chainlink automation). - Validated strict boolean checks on all external ERC20/ERC677 transfers.
- Analyzed core protocol logic (