Solidity
由於左值表達式,Solidity 無法修改 block.timestamp
我在修改 block.timestamp 時遇到問題。我想修改網路中的時間戳並將 block.timestamp 更改為 unix 時間戳,但修改時出現錯誤:
TypeError:表達式必須是左值。
block.timestamp = 1577836800;
有沒有辦法克服這個障礙?我什至可以用這種方式修改 block.timestamp 嗎?
您得到的錯誤是您無法為此變數設置值,因為它不是可編輯的變數。
全域命名空間中始終存在一些特殊的變數和函式,主要用於提供有關區塊鏈的資訊。
block.timestamp
它本身是一個受保護的關鍵字,它具有執行此程式碼的塊的塊時間戳的特定值。您無法設置該值。也許您打算將另一個變數設置為您的值,然後檢查一下這兩個值何時相等?
像:
uint checkblock = 1577836800; if (checkblock <= block.timestamp) { //code here }