堆区间

主要观点:介绍了在 Solidity 中区间算术的应用,重点关注内存/堆分配值的区间。阐述了 EVM 中值的存储位置,如栈、内存、调用数据等,多数大于等于 32 字节的值需存储在栈外。还介绍了 Solidity 中以堆形式表示的类型,如数组、结构体、映射等及其存储位置。
关键信息

  • EVM 中有 5 个值存储位置。
  • Solidity 中以堆形式表示的类型及存储位置。
  • 两种表示堆对象的方式:一种是通过长度和键值对表示,另一种是用字节向量表示。
  • 独立对象方法的特点及与 yul/assembly mload & mstore操作的关系。
  • 最佳模型是独立表示每个内存对象并根据 Solidity 内存分配规则定义可能的偏移量。
    重要细节
  • Solidity 编译器会自动为存储变量分配数字槽。
  • 用字节向量表示堆对象时,若不知堆对象在字节向量中的位置会丢失大量信息。
  • 在独立对象方法中,索引到对象时的键/索引是区间,比较可进行“重叠”测试。
  • 本周电影推荐为《虎豹小霸王》,评分 9.1/10 并配有图片。
阅读 10
0 条评论