feat: params.RulesHooks.ActivePrecompiles
override
#39
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.
Why this should be merged
The existing
params.RulesHooks.PrecompileOverride
hook can cause thevm.ActivePrecompiles()
return values to be incorrect such that access lists aren't pre-populated with precompile addresses. This new hook rectifies the problem.How this works
The hook receives the default values that would otherwise be returned by
vm.ActivePrecompiles()
and returns an override. UnlikePrecompileOverride()
there is no need to return a boolean override flag too as propagating the hook's return value is sufficient and a noop is merely an echo.The ability to override all addresses is necessary because
PrecompileOverride()
can disable a precompile.How this was tested
Integration test of
vm.ActivePrecompiles()
before and after registering a hook.