name: diff_review description: 审查智能合约版本之间的变化(升级检查)。
差异审查
该技能帮助您分析代码库两个版本之间的差异,重点关注变更的安全影响。
1. 升级检查 (MultiversX)
当审查智能合约 v1 和 v2 之间的差异时:
- 存储布局:
- 关键: 存储在
VecMapper或SingleValueMapper中的struct的字段顺序是否改变? - 结果: 使用现有数据将错误解释字节(内存损坏)。
- 修复: 将新字段添加到结构体的末尾,永远不要重新排序。
- 关键: 存储在
- 初始化:
- 关键:
v2是否引入了新的存储映射器? - 检查: 它们是否在
#[upgrade]中初始化?(记住#[init]在升级时不会被调用)。
- 关键:
2. 回归测试
- 新功能: 它们是否会破坏旧的约束条件?
- 删除的代码: 是否移除了检查?为什么?
3. 工作流程
- 生成差异:
git diff v1..v2。 - 过滤噪音: 忽略格式化/样式变更。
- 追踪数据: 跟随变更数据结构的流程。