-
Notifications
You must be signed in to change notification settings - Fork 771
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
EVM/VM refactor #1862
EVM/VM refactor #1862
Conversation
@holgerd77 , I think this is somewhat close to being finished, but I just ran into a bit of a blocker. The blocker is caused by the conflicting changes brought by the refactoring of the EVM in your PR (where we assign a state manager to the EVM instance) and @g11tech's PR #1817 , which abstracts stateManager out and adds vmState to wrap its context in the vm. Since VM/EVM/EEI are still highly intertwined, with the Happy to "ping-pong" on this, or just to discuss the desired approach before continuing the work. |
assigning |
Codecov Report
Flags with carried forward coverage won't be shown. Click here to find out more. |
Cool, thanks for your help with this @g11tech. So the issue I was mentioning above seems to be fixed, some of the tests are at least passing now. Next step will be going through the failing tests :) |
f61da21
to
36d0f35
Compare
Still some failing tests, but getting closer. I will not be working on this today/tomorrow, so if anyone feels like fixing a couple tests, feel free! :) Btw majority of the remaining failing vm:API tests are related to |
The issue with the EIP-3529 tests is that |
Fixed some additional tests related to EIP-1153 (transient storage). There are still 3 failing tests in |
48d1607
to
624bcf0
Compare
7d36242
to
6b4db2a
Compare
Ok, this fixes some of the problems, I should have thorougly read the comments before working on this since @acolytec3 already found the problem. I don't like this fix since this makes the VM edit rather "inner" variables of the EVM which we want to avoid. EVM should (?) b e a black box and should handle this stuff internally. I think we can actually do that, if a message finishes, we can check the callstack depth, if the depth is 0 then we know that the "entire" message (i.e. a transaction) has finished and we can cleanup internally. |
CI on
After a fresh clone, install and
Can't reproduce whatever CI is doing 🤔 (Also re-ran CI to be sure) |
…orks to VM (#1649) * common: remove onlySupported and onlyActive hf options * vm: move supportedHardforks option from common * common: remove supportedHardforks option * common: update README for supportedHardforks removal * vm: update README for supportedHardforks addition * common: cleanup in src/index.ts * vm: refactor supportedHardforks per PR feedback * common: remove _chooseHardfork method per PR feedback * vm: updated README per PR feedback * vm: supportedHardforks local variable, switch to enum
…supported HFs to EVM
…cated files, top-level EVM instantiation in VM (introduces eip-3529 test failures)
…e, afterMessage, newContract events to EVM
… options to EVM, removed EVM/Precompiles VM dependency (new test failures)
b7b5f5e
to
89938f2
Compare
707d2c9
to
1a8f1a9
Compare
ec85cb2
to
52452ab
Compare
…cs. Order imports in evm.ts
52452ab
to
ee7831f
Compare
b2d2a14
to
7658494
Compare
Super cool! 🎉 🙏 😀 If you look at the commit history, there is still this one commit 34762b6 from Emmett which sneaked in, this would need to be removed. Also in this commit 57ef8e5 there went in a lot of changes from other work which shouldn't be there. I guess this needs one other round of commit-cherry-picking one by one, starting with the post-Emmett-commit and then going forward. 🙂 I guess for the 57ef8e5 commit it is not possible to use this commit in any way and you need to re-create the work (copy-and-paste) manually and just taking in the changes you intend to apply on this step. Then you should be able to continue to cherry-pick the additional commits. This might sound laborious but I guess this should be done in < 1 hour (if nothing goes wrong 😋). Sorry, but we are so far in the I guess then we can merge in really quickly though, really looking forward to get the main substance of this into the working base state! 🚀 |
Closing in favor of #1892 |
Started from #1831
TODO
For another PR
VmExecution
,VmContext
,ExternalEnvironment
, etc.?)