Skip to content

ERC20PermitUpgradeable (OpenZeppelin Upgradeable)

Audit Snapshot

  • Status: ✅ pass
  • Source type: npm
  • Source path: third_party/famous-contracts/sources/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol
  • Primary issue: No primary issue recorded.
  • Audit corpus size: 98 contracts

Diagnostics

Total diagnostics captured: 3101

By Severity

SeverityCount
warning3099
error2

Most Common Codes

CodeCountExample
W2002940function 'tryRecover' in 'ContextUpgradeable' overrides 'Initializable::tryRecover' which is not marked 'virtual'
W121140duplicate constant state variable 'GENERIC' detected while merging libraries
INVALID_STORAGE_RETURN12function '_getInitializableStorage' return value 'InitializableStorage' uses 'storage' data location (treated as Any)
RAW2[info][NEP-17] NEP-17 transfer method has 2 parameter(s), spec expects 4. See STANDARDS_MAPPING.md for details.
W1012function 'transfer' has 2 parameters (ERC-20 pattern). NEP-17 requires 4 parameters: transfer(from, to, amount, data). The from address is verified via Runtime.checkWitness() and data (type Any) is forwarded to the recipient's onNEP17Payment callback.
W1032ERC-20 method(s) [approve, allowance, transferfrom] detected. These are not part of the NEP-17 spec; Neo uses Runtime.checkWitness() for authorization instead of the approve/allowance pattern. You may keep them as extensions, but they will not contribute to NEP-17 standard detection.
W1132Contract has transfer function but no onNEP17Payment callback. Other contracts cannot send tokens to this contract.
W1081ERC-2612 permit pattern detected (7-parameter permit function). Neo N3 uses Runtime.checkWitness() for authorization; off-chain signature permits are not needed.

Source diagnostic payload: docs/data/famous-contracts-audit-results.json.

References

MIT Licensed