簡單數據類型:bool值true或者false
整形uint無符號整數,int有符號整數,ufixed和fixed代表分數
address可以存儲最大20字節值(十六進制表示),用於存儲以太坊地址。屬性balance檢測地址餘額,send用於向地址發送以太幣。
數組類型:generic數組類型,普通數組類型
byte字節數組類型,byte1,byte2...
字符串類型:byte創建原始字符串
string創建UTF-8字符串
結構類型:struct類似於C語言struct
枚舉類型:enum
mapping類型:是一個hash表,只存在storage中作爲狀態變量聲明
var 申明狀態變量
全局可用變量:
區塊和交易的屬性
- block.blockhash(uint blockNumber) returns (bytes32):返回給定區塊號的哈希值,只支持最近256個區塊,且不包含當前區塊。
- block.coinbase (address): 當前塊礦工的地址。
- block.difficulty (uint):當前塊的難度。
- block.gaslimit (uint):當前塊的gaslimit。
- block.number (uint):當前區塊的塊號。
- block.timestamp (uint): 當前塊的Unix時間戳(從1970/1/1 00:00:00 UTC開始所經過的秒數)
- msg.data (bytes): 完整的調用數據(calldata)。
- msg.gas (uint): 當前還剩的gas。
- msg.sender (address): 當前調用發起人的地址。
- msg.sig (bytes4):調用數據(calldata)的前四個字節(例如爲:函數標識符)。
- msg.value (uint): 這個消息所附帶的以太幣,單位爲wei。
- now (uint): 當前塊的時間戳(block.timestamp的別名)
- tx.gasprice (uint) : 交易的gas價格。
- tx.origin (address): 交易的發送者(全調用鏈)
地址類型相關
-
<address>.balance (uint256):Address的餘額,以wei爲單位。
-
<address>.transfer(uint256 amount):發送給定數量的ether到某個地址,以wei爲單位。失敗時拋出異常。
-
<address>.send(uint256 amount) returns (bool):發送給定數量的ether到某個地址,以wei爲單位, 失敗時返回false。
-
<address>.call(...) returns (bool):發起底層的call調用。失敗時返回false。
-
<address>.callcode(...) returns (bool):發起底層的callcode調用,失敗時返回false。
-
<address>.delegatecall(...) returns (bool):發起底層的delegatecall調用,失敗時返回false。
合約相關
- this(當前合約的類型):表示當前合約,可以顯式的轉換爲Address
- selfdestruct(address recipient):銷燬當前合約,並把它所有資金髮送到給定的地址。
- suicide(address recipient):selfdestruct的別名