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.
This is the part of the full replacement of the evmone API proposed in #2480.
Here we translate structures representing blocks/transactions and implement required interfaces (StateView and BlockHashes). Transactions are also executed in evmone APIv2 but effects of the execution (StateDiff) are not applied to the state. The state transitions are still handled by Silkworm in the old way (IntraBlockState + evmone/EVMC).
The results of both executions are compared against each other to verify the evmone APIv2 works correctly.
In summary, we execute every transaction twice, but this allows us to verify the correctness of the new API and its integration. Moreover, the unit tests and RPC are unaffected by the change. We plan to incrementally move the EVM execution to the new API.