Remove 'indexed' from string relType events #211
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.
The changes modify
string indexed relType
tostring relType
per #208.A note on
string indexed
vs.string
in events (from SO):All event arguments with the
indexed
prefix are stored intopics
while non-indexed args are stored in thedata
section of the transaction receipt. Since the string is of arbitrary length, Solidity hashes (keccak256) indexed string arguments and stores the hashes in the events. So filtering forstring indexed relType
in logs is filtering for strings of max size 32 bytes (to fit in bytes32) (= 32 letters), which means longerrelType
strings will get pruned with theindexed
prefix.Consideration: Can't search indexed relType anymore.
Potential solution: Have 32-letter unique ID for each relType (the mapping of ID to relType is stored off-chain), emit relType as normal string and the unique ID as indexed bytes32. Filter on unique ID based on the mapping stored off-chain.