Skip to content
This repository has been archived by the owner on Nov 6, 2020. It is now read-only.

Incorrect implementation of EIP 86 #9127

Closed
nhynes opened this issue Jul 15, 2018 · 2 comments
Closed

Incorrect implementation of EIP 86 #9127

nhynes opened this issue Jul 15, 2018 · 2 comments
Assignees
Labels
M4-core ⛓ Core client code / Rust. Z1-question 🙋‍♀️ Issue is a question. Closer should answer.
Milestone

Comments

@nhynes
Copy link

nhynes commented Jul 15, 2018

The specification of EIP 86 suggests that new contracts be created using the semantics of the CREATE2(value, salt, mem_start, mem_size) opcode. Primarily, this requires new contract addresses be created from hash(sender + salt + code_hash).

Currently it seems that Parity does not match the spec since:

Hopefully I'm not missing something very basic here.

@Tbaut Tbaut added Z1-question 🙋‍♀️ Issue is a question. Closer should answer. M4-core ⛓ Core client code / Rust. labels Jul 16, 2018
@Tbaut Tbaut added this to the 2.0 milestone Jul 16, 2018
@Tbaut
Copy link
Contributor

Tbaut commented Jul 16, 2018

@sorpaas can you help?

@sorpaas
Copy link
Collaborator

sorpaas commented Jul 16, 2018

salt is added after EIP-86 is implemented in Parity. That's why we didn't have it. I'll fix this.

One thing we need to take note is that this would break backward compatibility -- for current chain specs with eip86Transition implemented, it will no longer work. One way to fix this is to introduce a new flag (i.e. to support two different versions of EIP-86). I think that maintenance cost is high and I'm not sure whether there are actually chains using this feature right now. So I think I'm going to create the PR using the breaking backward compatibility route.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
M4-core ⛓ Core client code / Rust. Z1-question 🙋‍♀️ Issue is a question. Closer should answer.
Projects
None yet
Development

No branches or pull requests

4 participants