塊和事務(wù)屬性

2022-05-12 17:02 更新
  • blockhash(uint blockNumber) returns (bytes32): 給定塊的哈希值,當(dāng)blocknumber它是 256 個(gè)最近的塊之一時(shí);否則返回零
  • block.basefee( uint):當(dāng)前區(qū)塊的基本費(fèi)用(EIP-3198EIP-1559
  • block.chainid( uint): 當(dāng)前鏈 id
  • block.coinbase( ): 當(dāng)前區(qū)塊礦工地址address payable
  • block.difficulty( uint): 當(dāng)前區(qū)塊難度
  • block.gaslimit( uint): 當(dāng)前區(qū)塊gaslimit
  • block.number( uint): 當(dāng)前區(qū)塊號(hào)
  • block.timestamp( uint): 當(dāng)前區(qū)塊時(shí)間戳,自 unix 紀(jì)元以來(lái)的秒數(shù)
  • gasleft() returns (uint256): 剩余氣體
  • msg.data( ): 完整的通話數(shù)據(jù)bytes calldata
  • msg.sender( address): 消息的發(fā)送者(當(dāng)前通話)
  • msg.sig( bytes4):calldata 的前四個(gè)字節(jié)(即函數(shù)標(biāo)識(shí)符)
  • msg.value( uint): 隨消息發(fā)送的 wei 數(shù)量
  • tx.gasprice( uint): 交易的gas價(jià)格
  • tx.origin( address): 交易的發(fā)送者(完整的調(diào)用鏈)

筆記

的所有成員的值msg,包括msg.sender和 msg.value可以為每個(gè)外部函數(shù)調(diào)用而改變。這包括對(duì)庫(kù)函數(shù)的調(diào)用。

筆記

當(dāng)合同在鏈外而不是在包含在塊中的交易的上下文中進(jìn)行評(píng)估時(shí),您不應(yīng)假設(shè)block.*并tx.*引用來(lái)自任何特定塊或交易的值。這些值由執(zhí)行合約的 EVM 實(shí)現(xiàn)提供,并且可以是任意的。

筆記

不要依賴block.timestamp或blockhash作為隨機(jī)性的來(lái)源,除非你知道自己在做什么。

時(shí)間戳和區(qū)塊哈希都會(huì)在一定程度上受到礦工的影響。例如,采礦社區(qū)中的不良行為者可以在選定的哈希上運(yùn)行賭場(chǎng)支付功能,如果他們沒(méi)有收到任何錢,只需重試不同的哈希。

當(dāng)前區(qū)塊的時(shí)間戳必須嚴(yán)格大于上一個(gè)區(qū)塊的時(shí)間戳,但唯一的保證是它將位于規(guī)范鏈中兩個(gè)連續(xù)區(qū)塊的時(shí)間戳之間。

筆記

出于可擴(kuò)展性的原因,區(qū)塊哈希并非對(duì)所有區(qū)塊都可用。您只能訪問(wèn)最近 256 個(gè)區(qū)塊的哈希值,所有其他值將為零。

筆記

該函數(shù)blockhash以前稱為block.blockhash,在 0.4.22 版本中已棄用,并在 0.5.0 版本中刪除。

筆記

該函數(shù)gasleft以前稱為msg.gas,在版本 0.4.21 中已棄用,并在版本 0.5.0 中刪除。

筆記

在 0.7.0 版中,別名now(for block.timestamp) 被刪除。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)