Sellado de un contrato inteligente / Restos de autodestrucción

Digamos que hay un contrato inteligente y diferentes participantes de la red interactúan con él. Bajo ciertas condiciones (por ejemplo, se ha ejecutado un determinado método), ya no habrá forma de interactuar más con el contrato inteligente, pero el contrato inteligente seguirá existiendo ("sellado").

Podría definir una variable global como "_complete" y configurarla como verdadera, pero literalmente quiero evitar la capacidad de interactuar con ella, excepto para recuperar el código real.

Pregunta 1: ¿hay alguna manera de lograr eso?

Pregunta 2: si uso la autodestrucción -> ¿qué queda realmente del contrato inteligente y las interacciones, respectivamente, los datos (como los valores de las variables)? ¿Todavía existe la dirección y quedan referencias en términos del contrato inteligente?

Gracias

Respuestas (1)

P1 : Puede tener una parada de emergencia para "congelar" las funciones del contrato. Ejemplo: https://github.com/ConsenSys/smart-contract-best-practices/#circuit-breakers-pause-contract-functionity

P2 : Tengo entendido que el ByteCode del contrato se pone a cero en el estado actual. No se puede ejecutar. Lo que queda es la transacción original que implementó el contrato, que aún incluye el ByteCode del contrato, la dirección del contrato que aún acepta ETH (irrecuperable/quemado) y el historial de la cadena de bloques que muestra la evolución completa y el historial del contrato hasta la transacción incluida. que desencadenó la autodestrucción.