智能合约差异审查Skill diff_review

该技能用于分析智能合约代码版本之间的差异,重点关注升级时的安全检查和存储布局变化,确保升级过程的安全性和数据一致性。关键词:智能合约、差异分析、安全审查、存储布局、升级检查。

智能合约 0 次安装 0 次浏览 更新于 3/21/2026

name: diff_review description: 审查智能合约版本之间的变化(升级检查)。

差异审查

该技能帮助您分析代码库两个版本之间的差异,重点关注变更的安全影响。

1. 升级检查 (MultiversX)

当审查智能合约 v1v2 之间的差异时:

  • 存储布局:
    • 关键: 存储在 VecMapperSingleValueMapper 中的 struct 的字段顺序是否改变?
    • 结果: 使用现有数据将错误解释字节(内存损坏)。
    • 修复: 将新字段添加到结构体的末尾,永远不要重新排序。
  • 初始化:
    • 关键: v2 是否引入了新的存储映射器?
    • 检查: 它们是否在 #[upgrade] 中初始化?(记住 #[init] 在升级时不会被调用)。

2. 回归测试

  • 新功能: 它们是否会破坏旧的约束条件?
  • 删除的代码: 是否移除了检查?为什么?

3. 工作流程

  1. 生成差异: git diff v1..v2
  2. 过滤噪音: 忽略格式化/样式变更。
  3. 追踪数据: 跟随变更数据结构的流程。