Issues deploying ERC-2470 Factory to zkSync Era #870
-
Team or ProjectGnosis Guild EnvironmentMainnet L2 block numberNot applicable yet, as deployment is being rejected before confirmation zkSolc Versionlastest zksync-ethers Versionlastest Minimal Reproducible Code or Repo LinkThe deployment process for the ERC-2470 factory is based on the "nick method" (pre-signed transaction). Unfortunately, this method relies on non-EIP-155 transactions, which zkSync Era enforces, causing the transaction to be rejected. The repository describing the deterministic deployment approach can be found here: Does this work on other EVMs? (If yes, please list at least 1 of them)Yes, the deployment works on networks that do not enforce EIP-155. Most networks already support the deterministic deployment contract, but zkSync Era's enforcement of EIP-155 prevents this deployment Description of What Your Contract DoesThe ERC-2470 factory provides a deterministic address for a singleton contract, enabling efficient and reusable contract deployments. Its deployment method involves a pre-signed transaction (nick method) that relies on pre-EIP-155 mechanics. Additional DetailsWe’re experiencing a deployment issue. The chain enforces EIP-155, and this factory uses a pre-signed transaction that does not comply with EIP-155. Consequently, our deployment attempts are being rejected by the zkSync Era RPC provider. For context, the deterministic deployment project (nick factory) follows the same deployment method using pre-signed, non-EIP-155 transactions. While it is supported and present on most other networks, it is not available on zkSync Era. We’d like to know if there’s any way to deploy ERC-2470 on zkSync Era, or if there’s a workaround to bypass this limitation. Looking forward to your guidance! |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
Hey @juliopavila. EIP-155 transactions are not enforced. See this discussion for example. The issue you are experiencing must be for some other reason. Can you share any more details? |
Beta Was this translation helpful? Give feedback.
-
@juliopavila presigned contract creation transactions are not usable on zk stack chains, as zksync EVM uses different bytecode from standard EVM (it is not currently fully EVM equivalent) Unfortunately due to this and other differences in contract creation, it's not currently possible for deterministic deployments that match the address of other EVM chains. You can read more about contract deployment differences here: https://docs.zksync.io/zksync-protocol/differences/contract-deployment |
Beta Was this translation helpful? Give feedback.
Hey @juliopavila. EIP-155 transactions are not enforced. See this discussion for example. The issue you are experiencing must be for some other reason. Can you share any more details?