You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Event logs are very difficult to deal with. Should unpack these values into a map and store as json based on the ABI.
ABIs
Should use internal cache to store ABIs -> github.com/hashicorp/golang-lru/v2
This may not work as the ABIs can change over time so we can either
Catch the error when unpacking the log -> Could lead to erroneous errors if the ABI changed indexed positions
Store an array with block ranges for when the contract was updated -> Would require a detailed history of all the contract updates.
Unpacking
Take event log, lookup ABI, iterate through indexed / non-indexed data and create a map with keys from ABI and values from event log
Store this data as json field in DB
This should be done dry so if we wanted to index this data in elasticsearch that it wouldn't be a pain to do it now. Currently data will go to PG but should be able to be lifted and switched to ES if needed to allow better querying across fields within json.
In PG, not sure if we can support any indexes as the json is not uniform. Will need to look into it. If we can, we should figure out a couple protected methods to index such as Transfer or something like that.
The text was updated successfully, but these errors were encountered:
Event logs are very difficult to deal with. Should unpack these values into a map and store as json based on the ABI.
This should be done dry so if we wanted to index this data in elasticsearch that it wouldn't be a pain to do it now. Currently data will go to PG but should be able to be lifted and switched to ES if needed to allow better querying across fields within json.
In PG, not sure if we can support any indexes as the json is not uniform. Will need to look into it. If we can, we should figure out a couple protected methods to index such as
Transfer
or something like that.The text was updated successfully, but these errors were encountered: