Was chatting with @pipermerriam about this idea, curious if there are existing EIPs or proposals for it.
Basically, this proposal would be for a new calling opcode like
STATICCALL that would ensure no state reads are occurring (along with state writes), and additionally that no environment variable reads are occurring (e.g.
The use of this would be for an additional degree of confidence in library calls not accessing state, inspired most prominently by Casper’s “purity checker” which ensures that the validator’s signature code does not access these values and is a “pure call”.
Let me know what you think, if there’s no other EIPs and this is a good idea I will create one.