用途:在实现、扩展或审查 ERC 代币合约时提供标准合规指导,也用于与外部代币集成(如 DeFi 协议、交易市场)。
主要能力: ERC20:必需 totalSupply、balanceOf、transfer、allowance、approve、transferFrom;外部 ERC20 调用务必用 OpenZeppelin SafeERC20 包装以处理返回 false 而非回滚的代币;approve 存在竞态条件,可用 increaseAllowance/decreaseAllowance 或 ERC20Permit(EIP-2612) 缓解;治理代币可用 ERC20Votes;注意 USDT 等 transfer 不返回布尔值。 ERC721:必需 balanceOf、ownerOf、safeTransferFrom、transferFrom、approve、setApprovalForAll、getApproved、isApprovedForAll;优先 safeTransferFrom;ERC721Enumerable 上链追踪但转账 gas 高;元数据常用链下 IPFS/Arweave,全链上用 Base64;注意 onERC721Received 回调重入,采用 nonReentrant 或 Checks-Effects-Interactions。 ERC1155:适用于单合约管理多代币类型,批量操作更省 gas;用 safeBatchTransferFrom 与 balanceOfBatch;URI 用 {id} 替换模式;注意漏实现 balanceOfBatch 或接收回调错误。 ERC4626:convertToShares 与 convertToAssets;取整偏向金库,deposit/mint 向下取整、withdraw/redeem 向上取整;首存者可操纵份额价格,首笔存款向 address(0) 铸造死份额防范。
实现选型:OpenZeppelin gas 较高但可读性好、扩展多,适合多数项目;Solady gas 更低、更优化但扩展较少,适合 gas 敏感应用。
测试策略:ERC20 测转账、授权与边界值;ERC721 测铸造、转移、授权并验证回调;ERC1155 测批量转移、URI 替换与回调;ERC4626 测存取对称性、份额计算与取整边界。
增强能力(MCP):可用 erc://{standard} 查询接口定义,用 check_vulnerability、match_vulnerability_patterns、search_vulnerabilities、get_remediation 做漏洞检测与修复,用 generate_erc 生成合规模板。
限制:资料未提供具体安装命令、版本号、收费与平台信息。