Closed asymmetric closed 4 years ago
@MrChico could we instead change this to requires 10 <=Int ACCTCODE
?
Won't this change just mean that this is explored the proofs for the fail
specs instead?
@MrChico could we instead change this to
requires 10 <=Int ACCTCODE
?
That's how it was before. We changed it like 2 months ago. For some good reason IIRC. Let me dig it up
As I recall, we need to allow for zero addresses because there are cases when we do want to check for zero equality on address types (SomeAddressSlot == 0
for example). #notPrecompiledAddress
was previously clobbering zero equality checks and was recently updated to avoid this. @asymmetric remember initialize
?
Yeah OK, I agree that we shouldn't move this check to any of the precompile-checking functions/rules, because 0 is not a precompile address.
To summarize:
notPrecompileAddress
is used to check each storage slot of type address
.CALL
is not a precompile.Won't this change just mean that this is explored the proofs for the
fail
specs instead?
@xwvvvvwx AFAIK the conditions in k.json
are not negated in fail specs.
Is this OK to merge?
It's never possible for a contract to have address 0, so we shouldn't waste any time exploring this possibility in proofs.