Let's say there is a Smart Contract and different participants of the network interact with it. Under certain conditions (e.g. a certain method has been executed) there shall be no way to further interact with the Smart Contract anymore but the Smart Contract itself shall still exist ("sealing").
I could define a global variable like "_complete" and set it to true, but I literally want to avoid the ability to interact with it except for retrieving the actual code.
Question 1: is there a way to achieve that?
Question 2: if I use selfdestruct -> what actually remains of the Smart Contract and the interactions respectively the data (like variable values)? Does the address still exist and are there any references left in terms of the Smart Contract?