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.
In the past, users of Frontier have to compromise and choose between two different runners:
This PR removes the need of this compromise, and introduces an unified EVM runner that has both good Ethereum compliance and Substrate interoperability. This is done by generalizing the
StackExecutor
inevm
crate to expose a concrete and "dumb"StackState
trait. Users ofevm
now only need to implementStackState
trait, and can re-use all other call/create/transact logic in the executor, which has already passed EVM test suites. Theimpl
ofStackState
in Substrate then uses Substrate's storage transactional layer, which makes it suitable for any Substrate interoperability jobs.