Skip to content
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

Refactor EVM integration #1479

Open
enlight opened this issue Sep 12, 2019 · 0 comments
Open

Refactor EVM integration #1479

enlight opened this issue Sep 12, 2019 · 0 comments
Assignees
Labels
maintenance Tools & maintenance tasks

Comments

@enlight
Copy link
Contributor

enlight commented Sep 12, 2019

Right now to get an instance of the EVM we do NewLoomVm()->NewLoomEvm()->NewEvm()->NewEnv()->go-ethereum/core/vm.NewEVM() and loomchain.State is passed through these layers all the way to NewEvm() making it hard to reason about what kind of state changes can affect EVM calls.

The EVM integration code should not have direct access to loomchain.State, and it shouldn't be directly accessing feature flags nor on-chain config settings via that state, any configuration should be explicitly specified when creating the top level EVM wrapper (i.e. NewLoomVm()).

@enlight enlight added the maintenance Tools & maintenance tasks label Sep 12, 2019
@enlight enlight self-assigned this Sep 12, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
maintenance Tools & maintenance tasks
Projects
None yet
Development

No branches or pull requests

1 participant