Solidity的全局命名空間中存在一些特殊的變量和函數(shù)恨旱。
1.單位換算
以太幣的單位辈毯,以太幣有四種單位,分別是wei
搜贤,szabo
谆沃,finney
和ether
,換算關系如下:
-
1 == 1 wei
:wei
為最小的單位仪芒。 -
1 szabo == 1e12 wei
:1012wei
唁影。 -
1 finney == 1e15 wei
:1015wei
士鸥。 -
1 ether == 1e18 wei
:1018wei
,即1個以太幣对湃。
時間單位鸠珠,有5個時間單位,分別為seconds
, minutes
, hours
, days
和weeks
锌介,換算關系如下:
-
1 == 1 seconds
嗜诀,1秒。 -
1 minutes == 60 seconds
孔祸,1分鐘隆敢。 -
1 hours == 60 minutes
,1小時崔慧。 -
1 days == 24 hours
拂蝎,1天。 -
1 weeks == 7 days
惶室,1周温自。
0.5.0
版本之前還有year
的單位,先版本移除皇钞,因為閏年的存在捣作,即每一年不一定是固定的365天。
2.特殊變量
區(qū)塊和交易的全局變量和函數(shù)
函數(shù):
-
blockhash(uint blockNumber) returns (bytes32)
: 返回給定區(qū)塊的哈希鹅士,僅適用于最近的256個券躁,并且不包括當前塊。 -
gasleft() returns (uint256)
: 剩余的gas
掉盅,為uint
類型也拜。
變量:
- 1.區(qū)塊
-
block.coinbase (address payable)
: 當前區(qū)塊的礦工的地址,為應付地址類型趾痘。 -
block.difficulty (uint)
: 當前區(qū)塊難度值慢哈,為uint
類型。 -
block.gaslimit (uint)
: 當前區(qū)塊限定的最大的gas值永票,為uint
類型卵贱。 -
block.number (uint)
: 當前區(qū)塊高度,為uint
類型侣集。 -
block.timestamp (uint)
: 當前區(qū)塊的時間戳键俱,為uint
類型,從unix 時間戳
開始算起世分。unix 時間戳
為1970/01/01 00:00:00
编振。 -
now (uint)
: 當前區(qū)塊時間戳。(同block.timestamp
臭埋。)
- 2.消息
-
msg.data (bytes calldata)
: 完整的調用數(shù)據(jù)踪央,為bytes
類型臀玄,命名為calldata
。 -
msg.sender (address payable)
: 消息的發(fā)送方畅蹂,為應付地址類型健无。 -
msg.sig (bytes4)
: 調用數(shù)據(jù)的前4個字節(jié),為bytes4
類型液斜,這4個字節(jié)為函數(shù)的簽名累贤。 -
msg.value (uint)
: 伴隨消息發(fā)送的以太幣的數(shù)量,為wei
單位旗唁,為uint
類型。
- 3.交易
-
tx.gasprice (uint)
: 交易的gas
的價格痹束,為uint
類型检疫。 -
tx.origin (address payable)
: 交易的發(fā)送方,為應付地址類型祷嘶。
3.總結
- 單位換算和特殊變量中涉及到的變量都為全局變量屎媳,主要用于提供有關區(qū)塊鏈的信息或是通用的程序函數(shù),方便在編寫智能合約中使用论巍。