Update MultipleWinnersBuilder.sol: Packed Structs #347
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.
Well, this PR made a slight change within the elements of that struct which avoids usage of 1 extra slot. Usually, EVM allocates 2**256 slots to each contract and each slot comprises of 32 bytes. And the usage of slots costs us gas, which makes it better if any contract is achieving the same thing in less slots.
Let's suppose there are two structs:
Now, Struct A uses up 3 slots and is 3rd slot seems kind of expensive cuz only 1 byte is allotted to that entire 32 bytes slot..Let's optimize this
Well, this makes sense and we neglected the usage of 1 slot by optimizing Struct A to Struct B. The same thing is done with the help of this PR. Note that
RNGInterface rngService
is a kind of address as far I am concerned.For a better explanation, refer this
Thanks @PierrickGT