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>
83 lines
2.2 KiB
Markdown
83 lines
2.2 KiB
Markdown
# solidity-mapper
|
|
|
|
Get value of state variable from storage for a solidity contract.
|
|
|
|
## Pre-requisites
|
|
|
|
* NodeJS and NPM
|
|
|
|
https://nodejs.org/en/ or use https://github.com/nvm-sh/nvm
|
|
|
|
## Instructions
|
|
|
|
Run the tests using the following command
|
|
```bash
|
|
$ yarn test
|
|
```
|
|
|
|
## Different Types
|
|
|
|
* [ ] Value Types
|
|
* [x] Booleans
|
|
* [x] Integers
|
|
* [ ] Fixed Point Numbers
|
|
* [x] Address
|
|
* [x] Contract Types
|
|
* [x] Fixed-size byte arrays
|
|
* [x] Enums
|
|
* [ ] Function Types
|
|
* [ ] Reference Types
|
|
* [ ] Arrays
|
|
* [x] Get all elements in array
|
|
* [x] Get element in array by index
|
|
* [ ] Fixed size arrays
|
|
* [x] Integer Type
|
|
* [x] Boolean Type
|
|
* [x] Address Type
|
|
* [ ] Fixed-size byte arrays
|
|
* [ ] Enum type
|
|
* [ ] Dynamically-sized byte array
|
|
* [x] Struct Type
|
|
* [ ] Mapping Type
|
|
* [ ] Dynamically-sized arrays
|
|
* [x] Integer Type
|
|
* [x] Boolean Type
|
|
* [x] Address Type
|
|
* [ ] Fixed-size byte arrays
|
|
* [x] Enum Type
|
|
* [ ] Dynamically-sized byte array
|
|
* [ ] Struct Type
|
|
* [ ] Mapping Type
|
|
* [ ] Nested Arrays
|
|
* [x] Fixed size arrays
|
|
* [ ] Dynamically-sized arrays
|
|
* [ ] Dynamically-sized byte array
|
|
* [ ] Bytes
|
|
* [x] String
|
|
* [ ] Structs
|
|
* [x] Get struct value with all members
|
|
* [x] Value Types
|
|
* [x] Get value of a single member in struct
|
|
* [ ] Reference Types
|
|
* [x] Struct type members (nested)
|
|
* [ ] Array type members
|
|
* [ ] Bytes and string type members
|
|
* [ ] Mapping type members
|
|
* [ ] Mapping Types
|
|
* [x] Value Type keys
|
|
* [ ] Fixed-size byte array keys
|
|
* [x] Dynamically-sized byte array keys
|
|
* [ ] Reference Type Mapping values
|
|
* [x] Struct type values
|
|
* [ ] Array type values
|
|
* [ ] Dynamically sized Bytes and string type values
|
|
* [x] Nested Mapping
|
|
|
|
## 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.
|