fix(sol-types): many ABI coder fixes #434
Merged
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.
Motivation
While writing tests for #433, I found that word calculation was off, so I found all these separate bugs relating to size calculation.
SolCall::Arguments
toParameters
abi_decode
panic when using sol types of fixed bytes #433String
andBytes
encoded size calculation32 + self.len().next_multiple_of(32)
, this returns 0 -> 64, 1 -> 64; when it should be 0 -> 64; 1 -> 92, so it was a word off most of the time.self.tokenize().total_words() * 32
1 (offset) + elements.total_words()
, while it was1 + N
elements.total_words()
, while it waselements.head_words()
cc @prestwich (:
Solution
PR Checklist