阅读(4915) (14)

单位

2022-05-12 10:40:29 更新

以太单位

文字数字可以采用 后缀weigweiether指定 Ether 的子面额,其中不带后缀的 Ether 数字被假定为 Wei。

assert(1 wei == 1);
assert(1 gwei == 1e9);
assert(1 ether == 1e18);

小面额后缀的唯一效果是乘以十的幂。

笔记

面额finneyszabo已在 0.7.0 版中删除。

时间单位

seconds像, minuteshours,days和after 字面数字这样的后缀weeks 可用于指定时间单位,其中秒是基本单位,单位以下列方式被天真地考虑:

  • 1 == 1 seconds

  • 1 minutes == 60 seconds

  • 1 hours == 60 minutes

  • 1 days == 24 hours

  • 1 weeks == 7 days

如果您使用这些单位执行日历计算,请小心,因为并非每年都等于 365 天,而且由于闰秒,甚至每天都有 24 小时。由于无法预测闰秒,因此必须由外部预言机更新精确的日历库。

笔记

years由于上述原因,该后缀在 0.5.0 版本中已被删除。

这些后缀不能应用于变量。例如,如果你想以天为单位解释一个函数参数,你可以通过以下方式:

function f(uint start, uint daysAfter) public {
    if (block.timestamp >= start + daysAfter * 1 days) {
      // ...
    }
}