Solidity 0.6.11 更新
时间:2022-07-22
本文章向大家介绍Solidity 0.6.11 更新,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Solidity v0.6.11[1] 为 NatSpec 注释添加了继承性,改进了调试数据输出,并修复了为非外部函数打开calldata
的一些小问题。
值得关注的改进
文档注释防范(NatSpec)支持了继承及事件
NatSpec 注释是一种向最终用户描述函数行为的方式。以便为开发者提供更详细的信息。
一个常见的用例是用来记录接口的行为,然后在派生合约(子合约)中实现该接口。以前,必须派生合约中复制文档。现在不需要了,如果派生函数不提供任何 NatSpec 标签,则编译器将自动继承父合约函数的文档。
如果在派生合约函数中使用了任何标签(@param
, @dev
, …),则不会继承,在这种情况下,下一个发行版将提供一项功能,以明确地从某个特定父合约继承,因此请继续关注!
If you provide any of the tags (), then nothing will be inherited. The next release will provide a feature to explicitly inherit from a certain base also in that case, so stay tuned!
此外,事件现在支持 NatSpec。
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.11;
interface Gathering {
/// The address `participant` just registered for the gathering.
event Registered(address participant);
/// Registers `msg.sender` to take part in the gathering.
function register() external;
}
contract MyGathering is Gathering {
mapping(address => bool) public participants;
function register() public override {
participants[msg.sender] = true;
emit Registered(msg.sender);
}
}
在以上示例的派生合约MyGathering
会生成一下的用户文档(userdoc):
{
"events": {
"Registered(address)": {
"notice": "The address `participant` just registered for the gathering."
}
},
"kind": "user",
"methods": {
"register()": {
"notice": "Registers `msg.sender` to take part in the gathering."
}
},
"version": 1
}
新的单位面值 gwei
现在可以使用 gwei
作为单位了,就像使用 wei
, szabo
, finney
和 ether
一样:
reqire(msg.value >= 10 gwei);
参考资料
[1]
Solidity v0.6.11: https://github.com/ethereum/solidity/releases/tag/v0.6.11
本文作者:Tiny熊
作者主页:
https://learnblockchain.cn/people/15
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- shadow dom一个最简单的例子
- 程序员必读:Git提交信息和分支创建规范
- 使用brew cask安装minikube的各种错误和解决方法
- 编写高质量可维护的代码:一目了然的注释
- SAP Hybris - how to find corresponding cronjob for a given import
- Linux与Windows间文件互传之TFTP方式
- 假设检验在数据分析中的应用
- 【前端开发】文本阴影:如何使用text-shadow实现首字线索引效果?
- 9.25【前端开发】超链接伪类:如何在svg元素上使用超链接伪类?
- 竞赛比完,代码、模型怎么处理?Kaggle大神:别删,这都是宝藏
- 9.26【前端开发】背景属性:样式中背景色和背景图片样式如何使用?
- 9.27【前端开发】图片文件格式:常见的图片格式对比有何优劣以及如何使用Google的webp格式?
- 9.28【前端开发】文本属性:如何使用文本阴影等样式?
- 9.29【前端开发】超链接伪类:如何在svg元素上使用超链接伪类?
- Angular input控件的click事件表达式如何被转换成JavaScript函数