-
Notifications
You must be signed in to change notification settings - Fork 272
Conversation
Hey @z2trillion, it will be nice to have CREATE/CREATE2 since a lot of ethereum tests depends on it. |
Hi @z2trillion I think generating test data is necessary and takes time. I would be happy if we work together 🙂 I am going to implement verifying contract address. |
@ashWhiteHat I will be working on this issue as @z2trillion is occupied with another issue. Happy to collaborate :) |
Hi @roynalnaruto I added my commits to this PR.
I already implemented generate contract address but the verification haven't done yet. Please push the changes if you finish working in order to avoid conflict. I won't work for 10 hours because I sleep. Thank you! |
2f0adb0
to
f554215
Compare
Thank you @roynalnaruto |
I finished implementing before calling contract. I won't work for 20 hours. |
Hey @ashWhiteHat it will be nice if we can move forward with it! |
Hi @ashWhiteHat , if you don't mind, I could take this. I found you have taken many tasks (#364, #323, #377 and this one) and afraid that you're overloaded. But you have put some effort on this task and if you want to complete it, it's also fine with me. 😄 |
Thank you @KimiWu123 ! Followings are reference.
Please ping me whenever you have questions 😀 |
During the discussion with @KimiWu123. We have a question of the What would be the In the flow of CREATE opcode. The opcode reads the input from memory and runs the input in the next context. We can use the example 3 for CREATE opcode on EVM.codes.
This one writes The CREATE opcode creates a new context and runs Possible answers of the codehash field to
Tracing go-ethereum supports it should be empty code_hash. |
code_hash in the StepStateTransisition should be 2 for the reason you have stated. however, 1 is also true, but only in the sense the sense that EXTCODEHASH for this address will still return the empty code hash until the until the RETURN at the end of the create call. |
For creation context the
I think when it's creation and we call |
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.
First pass review
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.
First pass
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.
LGTM! Final 2 nits.
BTW I checked with the circuit impl the main difference between is:
- Handles insufficient balance, nonce overflow, depth overflow in the same gadget
- Skips new context if init code is empty
- Does keccak table lookup itself without checking bytecod length (which I think we need)
The rest is similar with different order.
Co-authored-by: Han <[email protected]>
Co-authored-by: Han <[email protected]>
Finally! Thanks 👍 What do you think if I merge this first and create another pr for above difference? |
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.
LGTM! Nice work!
Close #371