Tengo un problema con la modificación de block.timestamp. Me gustaría modificar la marca de tiempo en mi red y cambiar block.timestamp a la marca de tiempo de Unix, pero recibí un error en la modificación:
TypeError: la expresión tiene que ser un lvalue.
block.timestamp = 1577836800;
¿Hay alguna solución para atravesar este obstáculo? ¿Puedo modificar block.timestamp de esa manera?
El error que está recibiendo es que no puede establecer un valor para esta variable, porque no es una variable editable.
Variables especiales y funciones
Hay variables y funciones especiales que siempre existen en el espacio de nombres global y se utilizan principalmente para proporcionar información sobre la cadena de bloques.
block.timestamp
en sí misma es una palabra clave protegida en Solidity que tiene un valor específico de la marca de tiempo del bloque para el bloque que ejecutó este código. No puede establecer ese valor.
¿Quizás tiene la intención de establecer otra variable en su valor y luego verificar para ver cuándo estos dos valores son iguales?
Como:
uint checkblock = 1577836800;
if (checkblock <= block.timestamp) {
//code here
}
No, no puedes modificarlo. Es el momento en que el bloque fue sellado por el minero.
wmk
shawn tabrizi
wmk
shawn tabrizi