The intended use case would be for contracts to make their first byte of code be the
SET_INDESTRUCTIBLE
opcode 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
C
withSET_INDESTRUCTIBLE
at0
. ContractX
doesdelegatecall(c) && selfdestruct
. DoesC
successfully 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)