Solidity v0.8.9 是一个纯 bug 修复版本,修复了两个重要但影响较小的 bug。
- 第一个 bug 与小于 256 位的带符号整数类型的不可变值有关。该 bug 会导致这些值的符号扩展(清理)无法始终正确执行。它是在 Solidity 0.6.5 中引入的。有关更多信息,请阅读相应的安全警报.
- 第二个 bug 是在 Solidity v0.8.8(两天前发布)中引入的用户定义值类型。底层类型小于 32 字节的用户定义类型使用不正确的存储布局,浪费了存储空间。有关更多信息,请阅读相应的 安全警报。我们对 Truffle 的 Harry Altman (@haltman-at) 表示衷心的感谢,他仅在 0.8.8 发布后几小时就发现了此 bug!
请勿在生产环境中使用 Solidity v0.8.8,并将您的合约更新到 v0.8.9。
完整变更日志
重要 bug 修复
- 不可变值:对带符号不可变值正确执行符号扩展。
- 用户定义值类型:修复底层类型小于 32 字节的用户定义值类型的存储布局。
bug 修复
- AST:导出canonicalName 用于 UserDefinedValueTypeDefinition 和 ContractDefinition。
衷心感谢所有为此次版本发布做出贡献的人!
从这里下载 Solidity 的新版本 这里。