-
Notifications
You must be signed in to change notification settings - Fork 810
uplift customlogs package from evm repositories
#4332
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR uplifts the customlogs package from EVM repositories (subnet-evm and coreth) to AvalancheGo to eliminate duplicate maintenance. The package provides utility functions for working with Ethereum logs.
- Adds a new
customlogspackage undervms/evm/ - Introduces
FlattenLogsutility function for converting nested log arrays
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Co-authored-by: rodrigo <[email protected]> Signed-off-by: Jonathan Oppenheimer <[email protected]>
|
Seems weird to uplift untested code, but it seems slightly silly to test this |
customlogs package from evm repositoriescustomlogs package from evm repositories
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: _ext filename suffix doesn't make sense in the context of avalanchego anymore
| import "github.com/ava-labs/libevm/core/types" | ||
|
|
||
| // FlattenLogs converts a nested array of logs to a single array of logs. | ||
| func FlattenLogs(list [][]*types.Log) []*types.Log { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the usage of this in core makes sense... but in filters we just use this to iterate over the logs and check if they match a filter (ref). We don't need to flatten the logs to do this... we could just iterate in 2-D. I feel like we could move this to core/blockchain.go pre-emptively instead and have it live as an unexported helper in that package where it is needed, and just update filters to just perform a 2-d iteration over the logs.
Why this should be merged
There are packages in subnet-evm and coreth that share a lot of functionality / are mirrored. As has been discussed as an evm team wide effort, we are working to uplift these packages to AvalancheGo to prevent the duplicative maintenance of two sets of the same code. This particular package,
customlogsis a relatively easy lift.Here are the packages being unified and uplifted:
coreth: https://github.com/ava-labs/coreth/tree/master/plugin/evm/customlogs
subnet-evm: https://github.com/ava-labs/subnet-evm/tree/master/plugin/evm/customlogs
How this was tested
This is currently 'dead' code; after a new AvalancheGo release is dropped, we can use the code in the evm repositories.
Need to be documented in RELEASES.md?
No