The intended use case would be for contracts to make their first byte of code be the
SET_INDESTRUCTIBLEopcode if they wish…
However, the spec doesn’t say what should happen if SET_INDESTRUCTIBLE is encountered on PC!=0
Some other questions.
- Let’s say we have
CwithSET_INDESTRUCTIBLEat0. ContractXdoesdelegatecall(c) && selfdestruct. DoesCsuccessfully selfdestruct? - Same scenarion with
C. What aboutcallcode(c)?
In general, is the globals.indestructible scoped? I assume it is (by which I mean it’s journalled, and scope-revertals removes stuff from it)