Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
nebula
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
exchain
nebula
Commits
68c65502
Unverified
Commit
68c65502
authored
Jan 03, 2024
by
Wyatt Barnes
Committed by
GitHub
Jan 03, 2024
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update Predeploys Spec (#8802)
parent
f08acace
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
150 additions
and
23 deletions
+150
-23
predeploys.md
specs/predeploys.md
+150
-23
No files found.
specs/predeploys.md
View file @
68c65502
...
@@ -24,6 +24,16 @@
...
@@ -24,6 +24,16 @@
-
[
SchemaRegistry
](
#schemaregistry
)
-
[
SchemaRegistry
](
#schemaregistry
)
-
[
EAS
](
#eas
)
-
[
EAS
](
#eas
)
-
[
create2Deployer
](
#create2deployer
)
-
[
create2Deployer
](
#create2deployer
)
-
[
Safe
](
#safe
)
-
[
SafeL2
](
#safel2
)
-
[
MultiSend
](
#multisend
)
-
[
MultiSendCallOnly
](
#multisendcallonly
)
-
[
SafeSingletonFactory
](
#safesingletonfactory
)
-
[
MultiCall3
](
#multicall3
)
-
[
Arachnid's Deterministic Deployment Proxy
](
#arachnids-deterministic-deployment-proxy
)
-
[
Permit2
](
#permit2
)
-
[
ERC-4337 EntryPoint
](
#erc-4337-entrypoint
)
-
[
ERC-4337 SenderCreator
](
#erc-4337-sendercreator
)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
...
@@ -48,29 +58,42 @@ The following table includes each of the predeploys. The system version
...
@@ -48,29 +58,42 @@ The following table includes each of the predeploys. The system version
indicates when the predeploy was introduced. The possible values are
`Legacy`
indicates when the predeploy was introduced. The possible values are
`Legacy`
or
`Bedrock`
or
`Canyon`
. Deprecated contracts should not be used.
or
`Bedrock`
or
`Canyon`
. Deprecated contracts should not be used.
| Name | Address | Introduced | Deprecated | Proxied |
| Name | Address | Introduced | Deprecated | Proxied |
| ----------------------------- | ------------------------------------------ | ---------- | ---------- |---------|
| ----------------------------------------- | ------------------------------------------ | ----------- | ---------- | ------- |
| LegacyMessagePasser | 0x4200000000000000000000000000000000000000 | Legacy | Yes | Yes |
| LegacyMessagePasser | 0x4200000000000000000000000000000000000000 | Legacy | Yes | Yes |
| DeployerWhitelist | 0x4200000000000000000000000000000000000002 | Legacy | Yes | Yes |
| DeployerWhitelist | 0x4200000000000000000000000000000000000002 | Legacy | Yes | Yes |
| LegacyERC20ETH | 0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000 | Legacy | Yes | No |
| LegacyERC20ETH | 0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000 | Legacy | Yes | No |
| WETH9 | 0x4200000000000000000000000000000000000006 | Legacy | No | No |
| WETH9 | 0x4200000000000000000000000000000000000006 | Legacy | No | No |
| L2CrossDomainMessenger | 0x4200000000000000000000000000000000000007 | Legacy | No | Yes |
| L2CrossDomainMessenger | 0x4200000000000000000000000000000000000007 | Legacy | No | Yes |
| L2StandardBridge | 0x4200000000000000000000000000000000000010 | Legacy | No | Yes |
| L2StandardBridge | 0x4200000000000000000000000000000000000010 | Legacy | No | Yes |
| SequencerFeeVault | 0x4200000000000000000000000000000000000011 | Legacy | No | Yes |
| SequencerFeeVault | 0x4200000000000000000000000000000000000011 | Legacy | No | Yes |
| OptimismMintableERC20Factory | 0x4200000000000000000000000000000000000012 | Legacy | No | Yes |
| OptimismMintableERC20Factory | 0x4200000000000000000000000000000000000012 | Legacy | No | Yes |
| L1BlockNumber | 0x4200000000000000000000000000000000000013 | Legacy | Yes | Yes |
| L1BlockNumber | 0x4200000000000000000000000000000000000013 | Legacy | Yes | Yes |
| GasPriceOracle | 0x420000000000000000000000000000000000000F | Legacy | No | Yes |
| GasPriceOracle | 0x420000000000000000000000000000000000000F | Legacy | No | Yes |
| GovernanceToken | 0x4200000000000000000000000000000000000042 | Legacy | No | No |
| GovernanceToken | 0x4200000000000000000000000000000000000042 | Legacy | No | No |
| L1Block | 0x4200000000000000000000000000000000000015 | Bedrock | No | Yes |
| L1Block | 0x4200000000000000000000000000000000000015 | Bedrock | No | Yes |
| L2ToL1MessagePasser | 0x4200000000000000000000000000000000000016 | Bedrock | No | Yes |
| L2ToL1MessagePasser | 0x4200000000000000000000000000000000000016 | Bedrock | No | Yes |
| L2ERC721Bridge | 0x4200000000000000000000000000000000000014 | Legacy | No | Yes |
| L2ERC721Bridge | 0x4200000000000000000000000000000000000014 | Legacy | No | Yes |
| OptimismMintableERC721Factory | 0x4200000000000000000000000000000000000017 | Bedrock | No | Yes |
| OptimismMintableERC721Factory | 0x4200000000000000000000000000000000000017 | Bedrock | No | Yes |
| ProxyAdmin | 0x4200000000000000000000000000000000000018 | Bedrock | No | Yes |
| ProxyAdmin | 0x4200000000000000000000000000000000000018 | Bedrock | No | Yes |
| BaseFeeVault | 0x4200000000000000000000000000000000000019 | Bedrock | No | Yes |
| BaseFeeVault | 0x4200000000000000000000000000000000000019 | Bedrock | No | Yes |
| L1FeeVault | 0x420000000000000000000000000000000000001a | Bedrock | No | Yes |
| L1FeeVault | 0x420000000000000000000000000000000000001a | Bedrock | No | Yes |
| SchemaRegistry | 0x4200000000000000000000000000000000000020 | Bedrock | No | Yes |
| SchemaRegistry | 0x4200000000000000000000000000000000000020 | Bedrock | No | Yes |
| EAS | 0x4200000000000000000000000000000000000021 | Bedrock | No | Yes |
| EAS | 0x4200000000000000000000000000000000000021 | Bedrock | No | Yes |
| create2Deployer | 0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 | Canyon | No | No |
| create2Deployer | 0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2 | Canyon | No | No |
| Safe | 0x69f4D1788e39c87893C980c06EdF4b7f686e2938 | Bedrock
*
| No | No |
| SafeL2 | 0xfb1bffC9d739B8D520DaF37dF666da4C687191EA | Bedrock
*
| No | No |
| MultiSend | 0x998739BFdAAdde7C933B942a68053933098f9EDa | Bedrock
*
| No | No |
| MultiSendCallOnly | 0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B | Bedrock
*
| No | No |
| SafeSingletonFactory | 0x914d7Fec6aaC8cd542e72Bca78B30650d45643d7 | Bedrock
*
| No | No |
| MultiCall3 | 0xcA11bde05977b3631167028862bE2a173976CA11 | Bedrock
*
| No | No |
| Arachnid's Deterministic Deployment Proxy | 0x4e59b44847b379578588920cA78FbF26c0B4956C | Bedrock
*
| No | No |
| Permit2 | 0x000000000022D473030F116dDEE9F6B43aC78BA3 | Bedrock
*
| No | No |
| ERC-4337 EntryPoint | 0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789 | Bedrock
*
| No | No |
| ERC-4337 SenderCreator | 0x7fc98430eaedbb6070b35b39d798725049088348 | Bedrock
*
| No | No |
\*
Early Bedrock chains do not include these contracts at genesis,
but all chains going forward will have them at genesis
## LegacyMessagePasser
## LegacyMessagePasser
...
@@ -385,3 +408,107 @@ Address: `0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2`
...
@@ -385,3 +408,107 @@ Address: `0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2`
When Canyon activates, the contract code at
`0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2`
is set to
When Canyon activates, the contract code at
`0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2`
is set to
`0x6080604052600436106100435760003560e01c8063076c37b21461004f578063481286e61461007157806356299481146100ba57806366cfa057146100da57600080fd5b3661004a57005b600080fd5b34801561005b57600080fd5b5061006f61006a366004610327565b6100fa565b005b34801561007d57600080fd5b5061009161008c366004610327565b61014a565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100c657600080fd5b506100916100d5366004610349565b61015d565b3480156100e657600080fd5b5061006f6100f53660046103ca565b610172565b61014582826040518060200161010f9061031a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820381018352601f90910116604052610183565b505050565b600061015683836102e7565b9392505050565b600061016a8484846102f0565b949350505050565b61017d838383610183565b50505050565b6000834710156101f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e636500000060448201526064015b60405180910390fd5b815160000361025f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f60448201526064016101eb565b8282516020840186f5905073ffffffffffffffffffffffffffffffffffffffff8116610156576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f790000000000000060448201526064016101eb565b60006101568383305b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b61014e806104ad83390190565b6000806040838503121561033a57600080fd5b50508035926020909101359150565b60008060006060848603121561035e57600080fd5b8335925060208401359150604084013573ffffffffffffffffffffffffffffffffffffffff8116811461039057600080fd5b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806000606084860312156103df57600080fd5b8335925060208401359150604084013567ffffffffffffffff8082111561040557600080fd5b818601915086601f83011261041957600080fd5b81358181111561042b5761042b61039b565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156104715761047161039b565b8160405282815289602084870101111561048a57600080fd5b826020860160208301376000602084830101528095505050505050925092509256fe608060405234801561001057600080fd5b5061012e806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063249cb3fa14602d575b600080fd5b603c603836600460b1565b604e565b60405190815260200160405180910390f35b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16608857600060aa565b7fa2ef4600d742022d532d4747cb3547474667d6f13804902513b2ec01c848f4b45b9392505050565b6000806040838503121560c357600080fd5b82359150602083013573ffffffffffffffffffffffffffffffffffffffff8116811460ed57600080fd5b80915050925092905056fea26469706673582212205ffd4e6cede7d06a5daf93d48d0541fc68189eeb16608c1999a82063b666eb1164736f6c63430008130033a2646970667358221220fdc4a0fe96e3b21c108ca155438d37c9143fb01278a3c1d274948bad89c564ba64736f6c63430008130033`
.
`0x6080604052600436106100435760003560e01c8063076c37b21461004f578063481286e61461007157806356299481146100ba57806366cfa057146100da57600080fd5b3661004a57005b600080fd5b34801561005b57600080fd5b5061006f61006a366004610327565b6100fa565b005b34801561007d57600080fd5b5061009161008c366004610327565b61014a565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100c657600080fd5b506100916100d5366004610349565b61015d565b3480156100e657600080fd5b5061006f6100f53660046103ca565b610172565b61014582826040518060200161010f9061031a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820381018352601f90910116604052610183565b505050565b600061015683836102e7565b9392505050565b600061016a8484846102f0565b949350505050565b61017d838383610183565b50505050565b6000834710156101f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e636500000060448201526064015b60405180910390fd5b815160000361025f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f60448201526064016101eb565b8282516020840186f5905073ffffffffffffffffffffffffffffffffffffffff8116610156576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f790000000000000060448201526064016101eb565b60006101568383305b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b61014e806104ad83390190565b6000806040838503121561033a57600080fd5b50508035926020909101359150565b60008060006060848603121561035e57600080fd5b8335925060208401359150604084013573ffffffffffffffffffffffffffffffffffffffff8116811461039057600080fd5b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806000606084860312156103df57600080fd5b8335925060208401359150604084013567ffffffffffffffff8082111561040557600080fd5b818601915086601f83011261041957600080fd5b81358181111561042b5761042b61039b565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156104715761047161039b565b8160405282815289602084870101111561048a57600080fd5b826020860160208301376000602084830101528095505050505050925092509256fe608060405234801561001057600080fd5b5061012e806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063249cb3fa14602d575b600080fd5b603c603836600460b1565b604e565b60405190815260200160405180910390f35b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16608857600060aa565b7fa2ef4600d742022d532d4747cb3547474667d6f13804902513b2ec01c848f4b45b9392505050565b6000806040838503121560c357600080fd5b82359150602083013573ffffffffffffffffffffffffffffffffffffffff8116811460ed57600080fd5b80915050925092905056fea26469706673582212205ffd4e6cede7d06a5daf93d48d0541fc68189eeb16608c1999a82063b666eb1164736f6c63430008130033a2646970667358221220fdc4a0fe96e3b21c108ca155438d37c9143fb01278a3c1d274948bad89c564ba64736f6c63430008130033`
.
## Safe
[
Implementation
](
https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/GnosisSafe.sol
)
Address:
`0x69f4D1788e39c87893C980c06EdF4b7f686e2938`
A multisignature wallet with support for confirmations using signed messages based on ERC191.
Differs from
[
SafeL2
](
#safel2
)
by not emitting events to save gas.
## SafeL2
[
Implementation
](
https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/GnosisSafeL2.sol
)
Address:
`0xfb1bffC9d739B8D520DaF37dF666da4C687191EA`
A multisignature wallet with support for confirmations using signed messages based on ERC191.
Differs from
[
Safe
](
#safe
)
by emitting events.
## MultiSend
[
Implementation
](
https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/libraries/MultiSend.sol
)
Address:
`0x998739BFdAAdde7C933B942a68053933098f9EDa`
Allows to batch multiple transactions into one.
## MultiSendCallOnly
[
Implementation
](
https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/libraries/MultiSendCallOnly.sol
)
Address:
`0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B`
Allows to batch multiple transactions into one, but only calls.
## SafeSingletonFactory
[
Implementation
](
https://github.com/safe-global/safe-singleton-factory/blob/main/source/deterministic-deployment-proxy.yul
)
Address:
`0x914d7Fec6aaC8cd542e72Bca78B30650d45643d7`
Singleton factory used by Safe-related contracts based on
[
Arachnid's Deterministic Deployment Proxy
](
#arachnids-deterministic-deployment-proxy
)
.
The original library used a pre-signed transaction without a chain ID to allow deployment on different chains.
Some chains do not allow such transactions to be submitted; therefore, this contract will provide the same factory
that can be deployed via a pre-signed transaction that includes the chain ID. The key that is used to sign is
controlled by the Safe team.
## MultiCall3
[
Implementation
](
https://github.com/mds1/multicall/blob/main/src/Multicall3.sol
)
Address:
`0xcA11bde05977b3631167028862bE2a173976CA11`
`MultiCall3`
has two main use cases:
-
Aggregate results from multiple contract reads into a single JSON-RPC request.
-
Execute multiple state-changing calls in a single transaction.
## Arachnid's Deterministic Deployment Proxy
[
Implementation
](
https://github.com/Arachnid/deterministic-deployment-proxy/blob/master/source/deterministic-deployment-proxy.yul
)
Address:
`0x4e59b44847b379578588920cA78FbF26c0B4956C`
This contract can deploy other contracts with a deterministic address on any chain using
`CREATE2`
. The
`CREATE2`
call will deploy a contract (like
`CREATE`
opcode) but instead of the address being
`keccak256(rlp([deployer_address, nonce]))`
it instead uses the hash of the contract's bytecode and a salt.
This means that a given deployer address will deploy the
same code to the same address no matter when or where they issue the deployment. The deployer is deployed
ith a one-time-use-account, so no matter what chain the deployer is on, its address will always be the same. This
means the only variables in determining the address of your contract are its bytecode hash and the provided salt.
Between the use of
`CREATE2`
opcode and the one-time-use-account for the deployer, this contracts ensures
that a given contract will exist at the exact same address on every chain, but without having to use the
same gas pricing or limits every time.
## Permit2
[
Implementation
](
https://github.com/Uniswap/permit2/blob/main/src/Permit2.sol
)
Address:
`0x000000000022D473030F116dDEE9F6B43aC78BA3`
Permit2 introduces a low-overhead, next-generation token approval/meta-tx system to make token approvals easier,
more secure, and more consistent across applications.
## ERC-4337 EntryPoint
[
Implementation
](
https://github.com/eth-infinitism/account-abstraction/blob/v0.6.0/contracts/core/EntryPoint.sol
)
Address:
`0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789`
This contract verifies and executes the bundles of ERC-4337
[
UserOperations
](
https://www.erc4337.io/docs/understanding-ERC-4337/user-operation
)
sent to it.
## ERC-4337 SenderCreator
[
Implementation
](
https://github.com/eth-infinitism/account-abstraction/blob/v0.6.0/contracts/core/SenderCreator.sol
)
Address:
`0x7fc98430eaedbb6070b35b39d798725049088348`
Helper contract for
[
EntryPoint
](
#erc-4337-entrypoint
)
, to call
`userOp.initCode`
from a "neutral" address,
which is explicitly not
`EntryPoint`
itself.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment