{Solidity:log}
Sourcify:迈向更安全的合约交互
作者:Edi Sinovčić,Franziska Heintel 发布于 2020年6月2日
简而言之:为人类构建合理的区块链应用程序很困难。您可以通过利用开源的力量来增强您 dapp 的用户体验。通过将源代码发布到此去中心化存储库并使用元数据文件(将“随机”十六进制字符串转换为人类可读语言),提高认识并提高用户在与您的区块链代码交互(即签名交易)时实际执行的操作的透明度。Sourcify 是一款帮助您完成此操作的工具。如果您…
阅读更多Solidity 0.6.x 特性:数组切片
作者:Solidity 团队 发布于 2020年5月26日
从 0.6.0 版本开始,Solidity 支持数组切片。当您想引用数组的连续部分但不想执行该部分的完整复制时,数组切片非常方便。目前,数组切片仅支持 calldata 数组。如何使用数组切片表达式 x[start:end] 引用 calldata 数组 x 的一部分,从索引 start 开始,到索引 end 之前结束。start 和 end 都是可选的。如果未提供,则 start 默认为 0,end 默认为…
阅读更多Solidity 0.6.8 版本发布公告
作者:Solidity 团队 发布于 2020年5月14日
Solidity v0.6.8 修复了代码生成器中的三个重要错误,并建议使用 SPDX 许可证标识符。此外,对 WebAssembly 的支持已扩展,现在可以直接访问整数类型的最小值和最大值。如果您正在使用数组切片、ABIEncoderV2 中字符串字面量中的反斜杠或担心非 payable 构造函数,请升级。重要的错误修复请注意,下面概述的三个错误都已评定为“非常…”
阅读更多Solidity 0.6.x 特性:使用不可变变量节省存储成本
作者:Daniel Kirchner 发布于 2020年5月13日
在 0.6.5 版本中,Solidity 引入了 immutable 关键字用于状态变量。不可变状态变量只能在合约创建期间赋值,但在已部署合约的整个生命周期内将保持不变。不可变变量的最大优势在于读取它们比读取常规状态变量便宜得多,因为不可变变量不会存储在存储中,而是其值将直接插入到运行时代码中。如何使用不可变变量可以使用 immutable 关键字声明不可变状态变量。它们不能被读取…
阅读更多Solidity 0.6.7 版本发布公告
作者:Solidity 团队 发布于 2020年5月4日
Solidity v0.6.7 引入了对 EIP-165 的支持,方法是使用 type(InterfaceName).interfaceId。语言特性:添加对使用 type(I).interfaceId 的 EIP 165 接口标识符的支持。允许抽象合约中的虚拟修饰符具有空主体。编译器特性:优化器:简化重复的 AND 和 OR 操作。通过命令行界面中的 yul-optimizations 或 standard-json 中的 optimizer.details.yulDetails.optimizerSteps 指定 Yul 优化器要执行的优化步骤。标准 JSON 输入:支持字段 urls 中的前缀 file://。错误修复:SMTChecker:修复使用定点时发生的内部错误。SMTChecker:修复使用数组切片时发生的内部错误。类型检查器:不允许…
阅读更多2020 年 Solidity 峰会进入星际空间
作者:Franziska Heintel 发布于 2020年4月17日
简而言之:正如我们在 Twitter 上宣布的那样,我们将最初计划在柏林举行的线下 Solidity 峰会转变为线上活动。今天,我们很高兴地分享峰会将由 Interspace.Chat 提供支持。Interspace 是一个基于自托管 Jitsi 视频聊天室的虚拟会议基础设施。在此处查看 Solidity 峰会的初步活动议程,并确保注册以参与!什么是 Solidity 峰会?Solidity 峰会是…
阅读更多Solidity 0.6.6 版本发布公告
作者:Solidity 团队 发布于 2020年4月9日
这是一个小的错误修复版本,解决了某些元组赋值的问题。重要的错误修复:修复组件占用多个堆栈槽并在左右两侧具有不同堆栈大小的元组赋值。错误修复:AST 导出:在字段 mutability 中导出 immutable 属性。SMTChecker:修复 CHC 引擎在内部调用继承函数时发生的内部错误。类型检查器:尝试编码设置了 call 选项 gas 和 value 的函数时出错。非常感谢所有帮助使此版本成为可能的贡献者!下载新版本…
阅读更多Solidity 0.6.5 版本发布公告
作者:Solidity 团队 发布于 2020年4月6日
Solidity 0.6.5 版本修复了一个重要错误,并引入了 immutable 作为主要功能。该错误与使用例如 new uint 分配动态内存数组有关。该错误被认为严重程度为“低”,但存在于所有先前版本的 Solidity 中。因此,请阅读有关如何检查您的合约是否在此博文中易受攻击的更多信息。immutable 功能支持在构造时设置合约级变量,如果它们以后不再更改。这些…
阅读更多Solidity 内存数组创建溢出错误
作者:Solidity 团队 发布于 2020年4月6日
3 月 28 日,Certora 的 John Toman 通过以太坊基金会赏金计划报告了 Solidity 代码生成器中的一个错误。该错误已通过 2020 年 4 月 6 日发布的 0.6.5 版本修复。该错误存在于所有先前版本的 Solidity 中。我们将其严重程度评为“低”,因为我们发现该错误并不常见,同时也很难利用。谁应该关注如果您已部署了一个合约,该合约分配了一个用户提供的长度的内存数组,但…
阅读更多Solidity 0.6.x 特性:fallback 和 receive 函数
作者:Elena Gesheva 发布于 2020年3月26日
在 0.6.x 之前的 Solidity 版本中,开发人员通常使用 fallback 函数来处理两种情况下的逻辑:合约接收以太坊且没有数据合约接收数据但没有函数与调用的函数匹配0.6.x 之前 fallback 函数的主要用例是接收以太坊并对其做出反应,这是一种由令牌样式合约使用的典型模式,用于拒绝转账、发出事件或转发以太坊。当合约在没有任何数据的情况下被调用时(例如,通过 .send() 或 .transfer() 函数),该函数将执行。0.5.x 语法…
阅读更多