mirror of
https://github.com/cerc-io/watcher-ts
synced 2024-11-19 20:36:19 +00:00
d4db1f5d28
* Implement getting values of dynamic arrays. * Add tests for dynamic arrays of value types. Co-authored-by: nikugogoi <95nikass@gmail.com>
2.2 KiB
2.2 KiB
solidity-mapper
Get value of state variable from storage for a solidity contract.
Pre-requisites
-
NodeJS and NPM
Instructions
Run the tests using the following command
$ yarn test
Different Types
- Value Types
- Booleans
- Integers
- Fixed Point Numbers
- Address
- Contract Types
- Fixed-size byte arrays
- Enums
- Function Types
- Reference Types
- Arrays
- Get all elements in array
- Get element in array by index
- Fixed size arrays
- Integer Type
- Boolean Type
- Address Type
- Fixed-size byte arrays
- Enum type
- Dynamically-sized byte array
- Struct Type
- Mapping Type
- Dynamically-sized arrays
- Integer Type
- Boolean Type
- Address Type
- Fixed-size byte arrays
- Enum Type
- Dynamically-sized byte array
- Struct Type
- Mapping Type
- Nested Arrays
- Fixed size arrays
- Dynamically-sized arrays
- Dynamically-sized byte array
- Bytes
- String
- Structs
- Get struct value with all members
- Value Types
- Get value of a single member in struct
- Reference Types
- Struct type members (nested)
- Array type members
- Bytes and string type members
- Mapping type members
- Mapping Types
- Value Type keys
- Fixed-size byte array keys
- Dynamically-sized byte array keys
- Reference Type Mapping values
- Struct type values
- Array type values
- Dynamically sized Bytes and string type values
- Nested Mapping
- Arrays
Observations
-
The storage layouts are formed according to the rules in https://docs.soliditylang.org/en/latest/internals/layout_in_storage.html#layout-of-state-variables-in-storage
-
Structs can occupy multiple slots depending on the size required by its members.
-
Fixed arrays can occupy multiple slots according to the size of the array and the type of array.