Solidity語言學習筆記————5、全域性變數
全域性變數(Global Variables)
abi.encode(...) returns (bytes)
:對給定的引數進行ABI編碼。abi.encodePacked(...) returns (bytes)
: Performes packed encoding of the given argumentsabi.encodeWithSelector(bytes4 selector, ...) returns (bytes)
::對給定的引數進行ABI編碼——從第二個預置給定的四位元組選擇器開始abi.encodeWithSignature(string signature, ...) returns (bytes)
:相當於abi.encodeWithSelector(bytes4(keccak256(signature), ...)
block.blockhash(uint blockNumber) returns (bytes32)
: 給定的塊的hash值, 只有最近工作的256個塊的hash值—— 在 0.4.22 後請使用blockhash(uint blockNumber)
.block.coinbase
(address
): 當前塊的礦工的地址block.difficulty
(uint
): 當前塊的難度block.gaslimit
(uint
): 當前塊的gaslimitblock.number
(uint
):當前塊的數量block.timestamp
(uint
):當前塊的時間戳gasleft() returns (uint256)
: 剩餘 gasmsg.data
(bytes
): 完整的calldatamsg.gas
(uint
): 剩餘 gas - 0.4.21後請使用gasleft()
msg.sender
(address
): 訊息的傳送者(當前呼叫)msg.value
(uint
): 和訊息一起傳送的wei的數量now
(uint
): 當前塊的時間戳(block.timestamp
的別名)tx.gasprice
(uint
):交易的gas價格tx.origin
(address
):交易的傳送者(全呼叫鏈)assert(bool condition)
: abort execution and revert state changes if condition isfalse
(用於內部錯誤)require(bool condition)
: abort execution and revert state changes if condition isfalse
(用於輸入錯誤或外部元件的錯誤)require(bool condition, string message)
: abort execution and revert state changes if condition isfalse
(用於輸入錯誤或外部元件的錯誤). 並提供錯誤資訊.revert()
: 中止執行並還原狀態更改revert(string message)
:中止執行並還原狀態更改,提供解釋字串blockhash(uint blockNumber) returns (bytes32)
: : 給定的塊的hash值, 只有最近工作的256個塊的hash值keccak256(...) returns (bytes32)
:計算(緊湊排列的)引數的 Ethereum-SHA3 hash值sha3(...) returns (bytes32)
: an alias tokeccak256
sha256(...) returns (bytes32)
: 計算(緊湊排列的)引數的SHA256 hash值ripemd160(...) returns (bytes20)
:計算 256個(緊湊排列的)引數的RIPEMDecrecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) returns (address)
: 橢圓曲線簽名公鑰恢復,錯誤時返回0addmod(uint x, uint y, uint k) returns (uint)
: compute(x + y) % k
where the addition is performed with arbitrary precision and does not wrap around at2**256
. Assert thatk != 0
starting from version 0.5.0.mulmod(uint x, uint y, uint k) returns (uint)
: compute(x * y) % k
where the multiplication is performed with arbitrary precision and does not wrap around at2**256
. Assert thatk != 0
starting from version 0.5.0.this
(current contract’s type): 當前合約,在地址上顯式轉換super
: 在層次關係上一層的合約selfdestruct(address recipient)
: 銷燬當前的合約,將其資金髮送到指定address
suicide(address recipient)
: a deprecated alias toselfdestruct
<address>.balance
(uint256
): address地址中的賬戶餘額(以wei為單位)<address>.send(uint256 amount) returns (bool)
: 將一定量wei傳送給address地址,若失敗返回false
。<address>.transfer(uint256 amount)
: 將一定量wei傳送給address地址,若失敗丟擲異常。
註解 |
---|
不要依賴於block.timestamp ,now 和blockhash 用作隨機性的來源,除非你知道你在做什麼。 |
時間戳和塊雜湊在一定程度上受礦工的影響。例如,挖掘社群中的壞角色可以在選定的雜湊上執行賭場支付函式,如果他們沒有收到任何錢,只需重試一個不同的雜湊。 |
當前塊時間戳必須嚴格大於最後一個塊的時間戳,但唯一的保證是它將位於規範鏈中的兩個連續塊的時間戳之間的某處。 |
註解 |
---|
由於區塊鏈是變化的,所以塊雜湊對於全部區塊塊不可用。只能訪問最近256個塊的雜湊值,所有其他區塊雜湊將為0。 |
相關文章
- Solidity語言學習筆記————7、單位和全域性變數Solid筆記變數
- Solidity語言學習筆記————6、全域性變數風格指南Solid筆記變數
- Solidity語言學習筆記————1、初識Solidity語言Solid筆記
- Solidity語言學習筆記————22、可見性和GettersSolid筆記
- Solidity語言學習筆記————4、常量Solid筆記
- Solidity語言學習筆記————36、 庫Solid筆記
- Solidity語言學習筆記————38、Solidity彙編Solid筆記
- C語言學習筆記之變數C語言筆記變數
- Python學習筆記(2)慎重使用全域性變數Python筆記變數
- Solidity語言學習筆記————12、陣列Solid筆記陣列
- Solidity語言學習筆記————33、事件(Events)Solid筆記事件
- Solidity語言學習筆記————37、Using forSolid筆記
- Solidity語言學習筆記————34、繼承Solid筆記繼承
- Solidity語言學習筆記————40、儲存中狀態變數的佈局Solid筆記變數
- Solidity語言學習筆記————24、輸入輸出引數Solid筆記
- Solidity語言學習筆記————42、提示和技巧Solid筆記
- Solidity語言學習筆記————43、安全考量Solid筆記
- Solidity語言學習筆記————32、建立合約Solid筆記
- Solidity語言學習筆記————28、純函式Solid筆記函式
- Solidity語言學習筆記————26、回退函式Solid筆記函式
- C語言裡全域性變數管理C語言變數
- C語言區域性變數、全域性變數、靜態區域性變數、靜態全域性變數C語言變數
- Solidity語言學習筆記————41、記憶體佈局Solid筆記記憶體
- Solidity語言學習筆記————10、布林型、整型Solid筆記
- Solidity語言學習筆記————3、Remix的基本使用Solid筆記REM
- Solidity語言學習筆記————15、結構體StructSolid筆記結構體Struct
- Solidity語言學習筆記————18、字串和函式Solid筆記字串函式
- Solidity語言學習筆記————14、左值運算子Solid筆記
- Solidity語言學習筆記————9、左值運算子Solid筆記
- Solidity語言學習筆記————17、原始檔對映Solid筆記
- Solidity語言學習筆記————2、使用編譯器Solid筆記編譯
- Solidity語言學習筆記————39、獨立彙編Solid筆記
- Solidity語言學習筆記————25、作用域和宣告Solid筆記
- Solidity語言學習筆記————27、檢視函式Solid筆記函式
- Solidity語言學習筆記————30、函式過載Solid筆記函式
- Solidity語言學習筆記————16、對映MappingSolid筆記APP
- Solidity語言學習筆記————35、抽象合約和介面Solid筆記抽象
- Solidity語言學習筆記————26、Assert, Require, Revert 和 ExceptionsSolid筆記UIException