-
Notifications
You must be signed in to change notification settings - Fork 19
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
Agharta/EIP1052 - extCodeHash #4
Conversation
…ng to account being created and self-destructed in the same transaction
@steviezhang build fails
|
Lets merge #5 before this one. |
* Created branch & added new opcode into opcode.go file * Added create2 function * Implemented create function for Create2 contracts * Created branch & added new opcode into opcode.go file * Added create2 function * Implemented create function for Create2 contracts * Finished Create2 opcode & cleaned up comments * Created branch & added new opcode into opcode.go file * Added create2 function * Atlantis config (#50) * Added Atlantis fork in builtin mainnet and morden config * Fixed difficulty test at 10_000_000 block (Atlantis) * Added tests for Atlantis difficulty transition * cmd/geth rename client (#52) * Added error handling for precompiles and removed skipped tests (#54) * Makefile and README updates (#49) * wip makefile updates * Fixed makefile and updated README * Fixed readme changes * Added go module documentation and fixed wiki links to EP * Added go modules on for makefile commands and documentation * makefile: fix version string (#57) * Dockerfile configuration (#56) * Added Dockerfile setup * Added Dockerfile setup * Fixed build command * Removed private repo authentication in Dockerfile * Enforced go modules on for every part of the test command (#60) * docs: update readme (#59) * docs: update readme * Update README.md * Update README.md * ci: prepare assets for release (#64) * ci: prepare assets for release * ci: fix indentation * ci: fix indentation * ci: fix indentation * ci: fix indentation * ci: release in build step * ci: calculate sha256sums * ci: store artifacts * ci: do a reverse copy * ci: fix bash syntax * ci: indicate os in release * ci: pushd and pop'd ;) * Receipt fixes and state trie clearing detail (#62) * receipt and state trie clearing changes * Fixed receipt storage and added backward compatible decoding * Implemented create function for Create2 contracts * Created branch & added new opcode into opcode.go file * Added create2 function * Implemented create function for Create2 contracts * Finished Create2 opcode & cleaned up comments * Created branch & added new opcode into opcode.go file * Added create2 function * Atlantis config (#50) * Added Atlantis fork in builtin mainnet and morden config * Fixed difficulty test at 10_000_000 block (Atlantis) * Added tests for Atlantis difficulty transition * cmd/geth rename client (#52) * Added error handling for precompiles and removed skipped tests (#54) * Makefile and README updates (#49) * wip makefile updates * Fixed makefile and updated README * Fixed readme changes * Added go module documentation and fixed wiki links to EP * Added go modules on for makefile commands and documentation * makefile: fix version string (#57) * Dockerfile configuration (#56) * Added Dockerfile setup * Added Dockerfile setup * Fixed build command * Removed private repo authentication in Dockerfile * Enforced go modules on for every part of the test command (#60) * docs: update readme (#59) * docs: update readme * Update README.md * Update README.md * ci: prepare assets for release (#64) * ci: prepare assets for release * ci: fix indentation * ci: fix indentation * ci: fix indentation * ci: fix indentation * ci: release in build step * ci: calculate sha256sums * ci: store artifacts * ci: do a reverse copy * ci: fix bash syntax * ci: indicate os in release * ci: pushd and pop'd ;) * Receipt fixes and state trie clearing detail (#62) * receipt and state trie clearing changes * Fixed receipt storage and added backward compatible decoding * Implemented create function for Create2 contracts * Created branch & added new opcode into opcode.go file * Added create2 function * Implemented create function for Create2 contracts * Finished Create2 opcode & cleaned up comments * Created branch & added new opcode into opcode.go file * Added create2 function * Added error handling for precompiles and removed skipped tests (#54) * Created branch & added new opcode into opcode.go file * Implemented create function for Create2 contracts * Added create2 function * Implemented create function for Create2 contracts * Rebased with development 2nd * Cleaned up code/comments & removed print statements. * Cleaned up comments & reverted go.mod & go.sum to original * Removed Constantinople tests & some tests involving non-implemented opcodes (EIP 145/1052) to pass CI. * Fixed removal of stBugs, stShift & stExtCodeHash tests * Fixed instructions_test salt parameter passed to CreateAddress2. * Changed local vars to camel case * Fixed error refactor. * Cleaned up comments. Skipped tests involving EIP684 (Collision). * Fixed error checking for evm.Run().
@@ -713,6 +713,23 @@ func TestAllETH(t *testing.T) { | |||
// EIP 158/161 skipped tests | |||
skipTests["RevertPrefoundEmptyOOG.json"] = "State trie clearing unimplemented" | |||
skipTests["FailedCreateRevertsDeletion.json"] = "State trie clearing unimplemented" | |||
|
|||
//Create2 related skipped tests, all these tests use Create2 opcode |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should be able to remove these now, if they are related to Create2, since that is in now
core/vm/jump_table.go
Outdated
jumpTable[EXTCODEHASH] = jumpPtr{ | ||
fn: opExtCodeHash, | ||
valid: true, | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
formatting
looks like the create2 rebase completely broke extcodehash, including previously passing tests, I'll sort through that in a bit |
Let's get everything else merged & then do a re-base |
Closing in favour of #55 |
Implemented extCodeHash.
Note that we are now skipping a large amount of tests due to this being opened before Create2 has been implemented on development. All the below tests use the Create2 opcode and we will have to revisit them when Create2 is merged/on the Create2 branch:
Additionally, we are skipping many Constantinople specific tests:
EDIT: We now skip Constantinople altogether
This is because we never underwent the revoked Constantinople fork, and so our calculations will only match up with post-St. Petersburg calculations