Ich habe ein Problem beim Ändern von block.timestamp. Ich möchte den Zeitstempel in meinem Netzwerk ändern und block.timestamp in einen Unix-Zeitstempel ändern, aber ich habe bei der Änderung einen Fehler erhalten:
TypeError: Ausdruck muss ein Lvalue sein.
block.timestamp = 1577836800;
Gibt es eine Lösung, um dieses Hindernis zu überwinden? Kann ich block.timestamp überhaupt auf diese Weise ändern?
Der Fehler, den Sie erhalten, ist, dass Sie dieser Variablen keinen Wert zuweisen können, da es sich nicht um eine bearbeitbare Variable handelt.
Spezielle Variablen und Funktionen
Es gibt spezielle Variablen und Funktionen, die immer im globalen Namensraum existieren und hauptsächlich dazu dienen, Informationen über die Blockchain bereitzustellen.
block.timestamp
selbst ist ein geschütztes Schlüsselwort in Solidity, das einen bestimmten Wert des Blockzeitstempels für den Block hat, der diesen Code ausgeführt hat. Sie können diesen Wert nicht festlegen.
Vielleicht möchten Sie eine andere Variable auf Ihren Wert setzen und dann überprüfen, ob diese beiden Werte gleich sind?
Wie:
uint checkblock = 1577836800;
if (checkblock <= block.timestamp) {
//code here
}
Nein, Sie können es nicht ändern. Es war die Zeit, als dieser Block vom Bergmann versiegelt wurde
wmk
Shawn Tabrizi
wmk
Shawn Tabrizi