编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

「链块技术42期」以太坊智能合约语言:Solidity单位和特殊变量

wxchong 2024-09-25 23:21:51 开源技术 25 ℃ 0 评论

原文链接 http://www.liankuai.tech/public/technology/103.html

区块链应用技术开发:区块链技术教程——智能合约,本文主要讲解了Solidity的货币单位、时间单位以及特殊的变量及函数。掌握区块链技术,了解Solidity的货币单位、时间单位、特殊的变量及函数。

点击区块链技术培训课程获取更多区块链技术学习资料。

一、目录

? 货币单位

? 时间单位

? 特殊的变量及函数

二、货币单位

一个常量的数字,可以使用后缀wei,finney,szabo或ether来在不同面额中转换。如2 ether == 2000 finney的结果是true。

? 1 ether==10^3 finney

? 1 ether==10^6 szabo

? 1 ether==10^18 wei

注意:不含任何后缀的默认单位是wei。

三、时间单位

seconds,minutes,hours,days,weeks,years均可做为后缀,并进行相互转换。

? 1 == 1 seconds

? 1 minutes == 60 seconds

? 1 hours == 60 minutes

? 1 days == 24 hours

? 1 weeks = 7 days

? 1 years = 365 days

注意:

? 不含任何后缀的默认单位是seconds

? 如果你需要进行使用这些单位进行日期计算,需要特别小心,因为不是每年都是365天,且并不是每天都有24小时,因为还有闰秒。

范例:

后缀不能用于变量。如果你想对输入的变量说明其不同的单位,可以使用下面的方式。



四、特殊的变量及函数

有一些变量和函数存在于全局上下文中。主要用来提供一些区块链当前的信息区块和交易的属性。

? block.blockhash(uint blockNumber) returns (bytes32),给定区块号的哈希值,只支持最近256个区块,且不包含当前区块;

? block.coinbase (address) 当前块矿工的地址;

? block.difficulty (uint)当前块的难度;

? block.gaslimit (uint)当前块的gaslimit;

? block.number (uint)当前区块的块号;

? block.timestamp (uint)当前块的时间戳;

? msg.data (bytes)完整的调用数据(calldata)

? msg.gas (uint)当前还剩的gas;

? msg.sender (address)当前调用发起人的地址;

? msg.sig (bytes4)调用数据的前四个字节(函数标识符);

? msg.value (uint)这个消息所附带的货币量,单位为wei;

? now (uint)当前块的时间戳,等同于block.timestamp;

? tx.gasprice (uint) 交易的gas价格;

? tx.origin (address)交易的发送者(完整的调用链)。

3.1 区块链交易熟悉说明

? 对于同一个链上连续的区块来说,当前区块时间戳总是大于上一个区块的时间戳。

? 只能查最近256个块,所有其它的将返回0。

五、合约相关

? selfdestruct(addressrecipt):销毁当前合约,并把它所有资金发送到给定的地址。

? suicide(address recipient):同selfdestruct。


点击查看更多区块链应用成功案例 ,区块链技术开发教程 。

本文完,获取更多资讯,敬请关注区块链工程师。

-END-

附上链块学院网课学习平台链接:http://wk.liankuai.tech/

助教卫星:lkxy007

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表