This repository has been archived by the owner on Aug 1, 2023. It is now read-only.
Adding support for encoding and decoding of complex SSZ types #487
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I had to add some handling of scopes (SSZReader.slice()) and also some type hierarchy. Let me try to justify why
The size of the list of variable size type is easy to calculate from the first offset, because the fixed part of encoding only contains offsets.
The size of a vector is known at the time of designing the data structure.
But the size of the list when reading a list of fixed size type is not encoded. To find out what the size is, one must carefully maintain the scopes and then divide the corresponding scope of the list by the size of one element (size of one element is known at the time of defining the data structure).
Moreover The length of a scope for a list is unknown until we read the offset of the next variable element in the parent container or the reminder of the fixed part.
Signed-off-by: Jiri Peinlich jiri.peinlich@gmail.com