Closed dddejan closed 5 years ago
Attempt for fix at branch keys-are-memory, @hajduakos please take a look.
05bb5672289914fb70e90e1204d544aa5d48899c looks fine to me. I also used the TypeProvider
at other places in the code to convert between memory/storage types.
By solidity docs, the only non-primitive types that can be used as keys in a mapping are
bytes
andstrings
. In our current model of storage these keys should be represented as SMT arrays which should all work out. But, the solidity compiler marks the non-primitive types of mappings asmemory
, which leads to errors.Running verifier on this gives
For the compiler it doesn't actually make any difference, because they don't store the keys, they just hash it.
@hajduakos let's discuss this. This is particularly important for the treatment of strings, which give the same error if treated as bytes.