【鏈塊技術43期】智能合約基礎語言(七)——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)交易的發送者(完整的調用鏈)。

4.1 區塊鏈交易熟悉說明

▪ 對於同一個鏈上連續的區塊來說,當前區塊時間戳總是大於上一個區塊的時間戳。

▪ 只能查最近256個塊,所有其它的將返回0。

五、合約相關

▪ selfdestruct(addressrecipt):銷燬當前合約,並把它所有資金髮送到給定的地址。

▪ suicide(address recipient):同selfdestruct。

 

-END-

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章