一起学智能合约之六币值单位和时间单位

本文详细介绍了智能合约中使用的货币单位,如ether、finney、szabo和wei,以及它们背后的密码学家故事。同时,讲解了Solidity中时间单位的应用,包括seconds、minutes、hours、days、weeks和years,特别指出处理闰年问题时的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一起学智能合约之六币值单位和时间单位

 

一、货币单位

ether:一个以太币

finney:千分之一个ether

szabo:百万分之一个ether

wei:10^18 wei=1 ether

这些单位其实都是密码学家的名字:

wei: Wei Dai 戴伟 密码学家 ,发表 B-money

finney: Hal Finney 芬尼 密码学家、工作量证明机制(POW)提出

szabo: Nick Szabo 尼克萨博 密码学家、智能合约的提出者。

看一下官网的例子:

pragma solidity ^0.4.0;

 

contract EthUnit{

    uint a;

   

    function f() returns (bool){

      if (2 ether == 2000 finney){

          return true;

      }

     

      return false;

    }

}

 

二、时间单位

时间的单位和大家的认知基本一致:

    1 == 1 seconds

    1 minutes == 60 seconds

    1 hours == 60 minutes

    1 days == 24 hours

    1 weeks = 7 days

    1 years = 365 days

时分秒年月日再加上一个周。不过这里需要注意的一个问题就是闰年的问题,更新日历库是需要消耗Gas的。看一个例子:

pragma solidity ^0.4.0;

 

contract DeleteExample{

   

    function nowInSeconds() returns (uint256){

        return now;

    }

   

    function f(uint start, uint daysAfter) {

        if (now >= start + daysAfter * 1 days) {

           

        }

    }

}

  • 总结

两个单位是Solidity的基础,需要掌握,这个并不难,也谈不上麻烦。看一下基本就能明白,只要记得处理一些小的细节就可以了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值