Skip to content
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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

馃ス Base Mainnet Deployment; EDIT: As of xdeployer v3.0.0, baseMain Deployments Are Possible 馃嵒! #164

Closed
pcaversaccio opened this issue Jul 20, 2023 · 6 comments
Assignees
Labels
documentation 馃摉 Improvements or additions to documentation

Comments

@pcaversaccio
Copy link
Owner

pcaversaccio commented Jul 20, 2023

UPDATE: The predeploy of Create2Deployer is live on Base: 0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2.

cast code 0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 --rpc-url https://mainnet.base.org

Returned bytecode:

0x6080604052600436106100435760003560e01c8063076c37b21461004f578063481286e61461007157806356299481146100ba57806366cfa057146100da57600080fd5b3661004a57005b600080fd5b34801561005b57600080fd5b5061006f61006a366004610327565b6100fa565b005b34801561007d57600080fd5b5061009161008c366004610327565b61014a565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100c657600080fd5b506100916100d5366004610349565b61015d565b3480156100e657600080fd5b5061006f6100f53660046103ca565b610172565b61014582826040518060200161010f9061031a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820381018352601f90910116604052610183565b505050565b600061015683836102e7565b9392505050565b600061016a8484846102f0565b949350505050565b61017d838383610183565b50505050565b6000834710156101f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e636500000060448201526064015b60405180910390fd5b815160000361025f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f60448201526064016101eb565b8282516020840186f5905073ffffffffffffffffffffffffffffffffffffffff8116610156576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f790000000000000060448201526064016101eb565b60006101568383305b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b61014e806104ad83390190565b6000806040838503121561033a57600080fd5b50508035926020909101359150565b60008060006060848603121561035e57600080fd5b8335925060208401359150604084013573ffffffffffffffffffffffffffffffffffffffff8116811461039057600080fd5b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806000606084860312156103df57600080fd5b8335925060208401359150604084013567ffffffffffffffff8082111561040557600080fd5b818601915086601f83011261041957600080fd5b81358181111561042b5761042b61039b565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156104715761047161039b565b8160405282815289602084870101111561048a57600080fd5b826020860160208301376000602084830101528095505050505050925092509256fe608060405234801561001057600080fd5b5061012e806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063249cb3fa14602d575b600080fd5b603c603836600460b1565b604e565b60405190815260200160405180910390f35b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16608857600060aa565b7fa2ef4600d742022d532d4747cb3547474667d6f13804902513b2ec01c848f4b45b9392505050565b6000806040838503121560c357600080fd5b82359150602083013573ffffffffffffffffffffffffffffffffffffffff8116811460ed57600080fd5b80915050925092905056fea26469706673582212205ffd4e6cede7d06a5daf93d48d0541fc68189eeb16608c1999a82063b666eb1164736f6c63430008130033a2646970667358221220fdc4a0fe96e3b21c108ca155438d37c9143fb01278a3c1d274948bad89c564ba64736f6c63430008130033

The above bytecode that is predeployed got verified here: https://etherscan.io/address/0xF49600926c7109BD66Ab97a2c036bf696e58Dbc2#code. You can compare the compiled runtime bytecode and it will match.


TL;DR: Unfortunately, it is not possible to deploy the Create2Deployer contract on the Base production network.

Background

When bridging the funds to the Base mainnet, Base applied a recently introduced (but unfortunately unexpected) behaviour in the Bedrock upgrade that essentially sends a self transfer on L2. I.e. the nonce of the deployer account 0x554282cf65b42fc8fddc6041eb24ce5e8a0632ad was increased by 1 before deploying the Create2Deployer contract. Unfortunately, this means that I can no longer deploy the contract to 0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2. If the demand for this chain is high enough, I might consider redeploying the Create2Deployer contract to a new address including the Base mainnet.

image

@pcaversaccio pcaversaccio added the documentation 馃摉 Improvements or additions to documentation label Jul 20, 2023
@pcaversaccio pcaversaccio self-assigned this Jul 20, 2023
@pcaversaccio pcaversaccio reopened this Jul 20, 2023
@pcaversaccio pcaversaccio closed this as not planned Won't fix, can't repro, duplicate, stale Jul 20, 2023
@pcaversaccio pcaversaccio pinned this issue Jul 20, 2023
@nebolax
Copy link

nebolax commented Nov 6, 2023

Ouffffff this is so sad :((( What would be the alternatives to how to deploy on Base?

@pcaversaccio
Copy link
Owner Author

Ouffffff this is so sad :((( What would be the alternatives to how to deploy on Base?

Well I got good news for you: ethereum-optimism/op-geth#126. It will be added as predeploy to Base. This might take however until January most probably.

@nebolax
Copy link

nebolax commented Nov 6, 2023

By the way, question. If you will include an option to selfdestruct in the new version of Create2Deployer, this would allow in case of such problems to destroy the contract and re-deploy it, right?

Would it pose any security risks? I guess it would not, right?

Then maybe you could add it in the new version so that if similar problems happen in the future, they are not so huge.

@pcaversaccio
Copy link
Owner Author

By the way, question. If you will include an option to selfdestruct in the new version of Create2Deployer, this would allow in case of such problems to destroy the contract and re-deploy it, right?

Would it pose any security risks? I guess it would not, right?

Then maybe you could add it in the new version so that if similar problems happen in the future, they are not so huge.

There will be no selfdestruct nor any other governance function in the new Create2Deployer! If you wanna have a look at the new version, here you go: https://github.com/pcaversaccio/createx. It's muuuuuch more powerful now and will also be available on Base Mainnet.

@pcaversaccio
Copy link
Owner Author

As of xdeployer v3.0.0, baseMain deployments are possible 馃嵒!

@pcaversaccio pcaversaccio reopened this Dec 24, 2023
@pcaversaccio pcaversaccio changed the title 馃ス Base Mainnet Deployment ~~馃ス Base Mainnet Deployment~~ As of xdeployer v3.0.0, baseMain Deployments Are Possible 馃嵒! Dec 24, 2023
@pcaversaccio pcaversaccio changed the title ~~馃ス Base Mainnet Deployment~~ As of xdeployer v3.0.0, baseMain Deployments Are Possible 馃嵒! 馃ス Base Mainnet Deployment; EDIT: As of xdeployer v3.0.0, baseMain Deployments Are Possible 馃嵒! Dec 24, 2023
@nebolax
Copy link

nebolax commented Dec 26, 2023

Awesome!!!!!!!!!! 鉂わ笍

@pcaversaccio pcaversaccio unpinned this issue Jan 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation 馃摉 Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

2 participants