践行区块链

Solidity v7.0 的一些变动

2020-09-07  本文已影响0人  Ashton

最近注意到 Solidity 最新版本已经到 7.x 了。今天抽空看了一下,感觉这次大版本升级的变动还是不大的,基本都是小的语法升级,没什么太大变化。不过有些不兼容的改动还是要注意一下。

0x01 合约调用的变动

之前合约调合约时是通过下面的方式来发送 gas 费和要转账的 eth 的。

x.f.gas(10000).value(2 ether)(arg1, arg2)

新的方式变成了下面这样:

x.f{gas: 10000, value: 2 ether}(arg1, arg2)

老的方式会报错。

0x02 使用 block.timestamp 来替代 now

now 本来就是与 block.timestamp 是等价的,使用 now 容易让人认为时间和交易有关,实际上只与区块有关。直接使用 block.timestamp 更不容易出错。

0x03 gwei 为关键字

之后不能用 gwei 为变量标识符了,实际上大家也确实很少使用 gwei 做标识符,不过作为计量单位确实很常用。

0x04 构造函数没必要声明为 public 或 external 的了

不想被调用的构造函数可以声明为 abstract

上一篇 下一篇

猜你喜欢

热点阅读