Solidity

由於左值表達式,Solidity 無法修改 block.timestamp

  • November 2, 2018

我在修改 block.timestamp 時遇到問題。我想修改網路中的時間戳並將 block.timestamp 更改為 unix 時間戳,但修改時出現錯誤:

TypeError:表達式必須是左值。

block.timestamp = 1577836800;

有沒有辦法克服這個障礙?我什至可以用這種方式修改 block.timestamp 嗎?

您得到的錯誤是您無法為此變數設置值,因為它不是可編輯的變數。

特殊變數和函式

全域命名空間中始終存在一些特殊的變數和函式,主要用於提供有關區塊鏈的資訊。

block.timestamp它本身是一個受保護的關鍵字,它具有執行此程式碼的塊的塊時間戳的特定值。您無法設置該值。

也許您打算將另一個變數設置為您的值,然後檢查一下這兩個值何時相等?

像:

uint checkblock = 1577836800;

if (checkblock <= block.timestamp) {
  //code here
}

引用自:https://ethereum.stackexchange.com/questions/61633