{ 跳至内容 }

Solidity 0.4.10 版本发布公告

发布于 2017 年 3 月 15 日,作者 Solidity 团队

版本

此版本专注于稳定性,并引入了一些新的智能合约安全特性requireasserttransfer。请注意,新的 revert 函数从 homestead 开始才将是节省 gas 的。

特性

  • 添加 assert(condition),如果 condition 为假,则抛出异常(用于内部错误)。
  • 添加 require(condition),如果 condition 为假,则抛出异常(用于无效输入)。
  • 命令行界面:除非强制,否则不覆盖文件。
  • 引入 .transfer(value) 用于发送 Ether。
  • 代码生成器:支持 revert() 用于回滚中止,但不会消耗所有 gas。
  • 内联汇编:支持 revert(EIP140)作为操作码。
  • 解析器:支持数字中的科学计数法(例如 2e8200e-2)。
  • 类型系统:支持将外部函数显式转换为地址。
  • 类型系统:如果指数的底数是字面量(结果类型可能出乎意料),则发出警告。
  • 类型系统:如果常量状态变量不是编译时常量,则发出警告。

Bug 修复

  • 命令行界面:始终转义文件名(将 /:. 替换为 _)。
  • 命令行界面:不要尝试创建 ... 路径。
  • 命令行界面:允许长库名称。
  • 解析器:不允许八进制字面量。
  • 类型系统:修复由代码中致命错误的持续存在导致的崩溃。
  • 类型系统:不允许元组的复合赋值。
  • 类型系统:检测常量之间的循环依赖。
  • 类型系统:不允许长度为负的数组。
  • 类型系统:修复与无效二元运算符相关的崩溃。
  • 类型系统:不允许使用空元组类型声明 var
  • 类型系统:为成员函数正确地将函数参数类型转换为指针。
  • 类型系统:将构造函数的私有性移入 AST 本身。
  • 内联汇编:在分析期间为非值类型收取一个堆栈槽。
  • 汇编输出:在它引用的操作之后打印源位置,而不是之前。
  • 优化器:在一段时间后停止尝试优化棘手的常量。

衷心感谢所有为发布此版本做出贡献的贡献者!

下载新版本的 Solidity这里.

上一篇文章

下一篇文章

参与进来

GitHub

Twitter

Mastodon

Matrix

了解更多

博客文档用例贡献关于论坛

2024Solidity 团队

安全策略

行为准则