Storage
The storage keys in Zink is slot based, for example, the first detected
storage in compilation will be using 0
as storage key.
// Loading storage at 0
PUSH0
SLOAD
// Loading storage at 1
PUSH1 0x01
SLOAD
Key-Value
As mentioned above, all key-value pairs follows using number as storage key, however, the value will be limited with 32 bytes, dynamic value like string is currently not supported.
Mapping
Mapping keys are generated via keccak256(slot, key)
Array
Similar to mappings, but the keys will be using u32
/ u64
for indexing due to the optimization
on the wasm side in the zink compiler, which means, the max size of an array is max(u64)
.