scroll-tech / go-ethereum

Scroll's fork of the official Go implementation of the Ethereum protocol

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Suggestion for improvement: SpecialCREATE/CREATE2

joohhnnn opened this issue · comments

Rationale

I found that due to changes in the create and create2 algorithms, even in the case of the same address and nonce, the deployed contract address is different from other Chain. Currently, many projects use fixed addresses on all EVM chains, which can lead to unexpected errors. Can we introduce a function similar to CREATEXXXX that still uses the keccak256 algorithm (used on Ethereum to calculate the deployment contract address) to generate the contract, and allows users to specify a NONCE (if need)?

Implementation

Recover some losses caused by personalized differences.

We use keccak to derive contract addresses, they match the addresses on other EVM chains. If you experienced some discrepancy, please provide more information and we'll look into it.