Add London Support#54
Conversation
This reverts commit bcffb19.
London: EIP-3529
…yed code (as opposed to the init code which generates the code to deploy) which starts with 0x3f; this also applies to all CREATE and CREATE2 calls (not just creation initiated from transactions directly)
|
@sorpaas this good to go? |
|
Will do this soon. Sorry for the delay! |
|
@sorpaas anything we can do to help push this PR forward? |
|
@birchmd @joshuajbouw looks like the jsontests are fetched from master, think you'd need to checkout your branch here |
On previous breaking changes like (e.g. Berlin) this we've left it up to @sorpaas to run the tests locally and see they pass, without worrying too much about the GitHub checks. We could make the check smarter if desired, but as I understand it that is not holding up this PR. I hope @sorpaas will take a look at this PR soon and let us know if it can be merged. Note: all tests do indeed pass if running this branch on rust-blockchain/evm-tests#8 |
There was a problem hiding this comment.
This should not be fatal. Fatal is reserved for situations that the evm library cannot handle at all (trying to allocate memory more than 64-bit, for example) and it will abruptly exit all evm execution stack. In short, it's not a normal EVM semantics.
I believe you can just remove this since it is handled already by gasometer.
There was a problem hiding this comment.
Just for eye candy -- I wonder if you can create a private struct DerivedValues and put the parameters inside that struct. It will be easier to extend in the future.
There was a problem hiding this comment.
This function seems to do two different things record_create_transaction_cost and initialize_with_access_list which I'm not certain is strictly related. I suggest we split it out and name them explicitly.
sorpaas
left a comment
There was a problem hiding this comment.
Looks mostly good to me but some grumbles.
|
Also please fix lints! |
|
Thanks for the review @sorpaas ! I have addressed all the comments, please take another look. |
There was a problem hiding this comment.
Remove this line. fail is for Fatal and I don't think this is what we want here.
There was a problem hiding this comment.
Ah sorry. I got this wrong. This is correct.
There was a problem hiding this comment.
Sorry please revert this for now! We use gasometer.fail elsewhere in the same function for error/revert. They should be equivalent with or without, but let's keep it consistent and review the usage later in the future.
This reverts commit 33d9e15.
…hereumTxEnvelope` (rust-ethereum#56) Recently added trait bounds to transaction types include `FromTxWithEncoded` as seen in rust-ethereum#54
rust-ethereum#54) feat: Add `FromTxWithEncoded` bound to `BlockExecutor` transaction This is to allow for empty envelopes
This is a working branch for bringing London into the EVM.
In order to keep to do date with Ethereum upstream, we must actively keep up to date with its milestone updates. This is the hard fork following Berlin, and the London hard fork went live as of August 5th, 2021.
To track the progress of the ETH tests, go to the PR here: TODO!
NOTE: #40 must be merged in first!
Todo
Other EIPs relating to London are not relating to the
evm.