Documentation ¶
Index ¶
Constants ¶
const ( L2ToL1MessagePasser = "0x4200000000000000000000000000000000000016" DeployerWhitelist = "0x4200000000000000000000000000000000000002" WETH9 = "0x4200000000000000000000000000000000000006" L2CrossDomainMessenger = "0x4200000000000000000000000000000000000007" L2StandardBridge = "0x4200000000000000000000000000000000000010" SequencerFeeVault = "0x4200000000000000000000000000000000000011" OptimismMintableERC20Factory = "0x4200000000000000000000000000000000000012" L1BlockNumber = "0x4200000000000000000000000000000000000013" GasPriceOracle = "0x420000000000000000000000000000000000000F" L1Block = "0x4200000000000000000000000000000000000015" GovernanceToken = "0x4200000000000000000000000000000000000042" LegacyMessagePasser = "0x4200000000000000000000000000000000000000" L2ERC721Bridge = "0x4200000000000000000000000000000000000014" OptimismMintableERC721Factory = "0x4200000000000000000000000000000000000017" ProxyAdmin = "0x4200000000000000000000000000000000000018" BaseFeeVault = "0x4200000000000000000000000000000000000019" L1FeeVault = "0x420000000000000000000000000000000000001a" SchemaRegistry = "0x4200000000000000000000000000000000000020" EAS = "0x4200000000000000000000000000000000000021" Create2Deployer = "0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2" MultiCall3 = "0xcA11bde05977b3631167028862bE2a173976CA11" Safe_v130 = "0x69f4D1788e39c87893C980c06EdF4b7f686e2938" SafeL2_v130 = "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA" MultiSendCallOnly_v130 = "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B" SafeSingletonFactory = "0x914d7Fec6aaC8cd542e72Bca78B30650d45643d7" DeterministicDeploymentProxy = "0x4e59b44847b379578588920cA78FbF26c0B4956C" MultiSend_v130 = "0x998739BFdAAdde7C933B942a68053933098f9EDa" Permit2 = "0x000000000022D473030F116dDEE9F6B43aC78BA3" SenderCreator = "0x7fc98430eaedbb6070b35b39d798725049088348" EntryPoint = "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789" )
TODO - we should get a single toml yaml or json file source of truth in @eth-optimism/bedrock package This needs to be kept in sync with @eth-optimism/contracts-ts/wagmi.config.ts which also specifies this To improve robustness and maintainability contracts-bedrock should export all addresses
const (
LegacyERC20ETH = "0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000"
)
Variables ¶
var ( L2ToL1MessagePasserAddr = common.HexToAddress(L2ToL1MessagePasser) DeployerWhitelistAddr = common.HexToAddress(DeployerWhitelist) WETH9Addr = common.HexToAddress(WETH9) L2CrossDomainMessengerAddr = common.HexToAddress(L2CrossDomainMessenger) L2StandardBridgeAddr = common.HexToAddress(L2StandardBridge) SequencerFeeVaultAddr = common.HexToAddress(SequencerFeeVault) OptimismMintableERC20FactoryAddr = common.HexToAddress(OptimismMintableERC20Factory) L1BlockNumberAddr = common.HexToAddress(L1BlockNumber) GasPriceOracleAddr = common.HexToAddress(GasPriceOracle) L1BlockAddr = common.HexToAddress(L1Block) GovernanceTokenAddr = common.HexToAddress(GovernanceToken) LegacyMessagePasserAddr = common.HexToAddress(LegacyMessagePasser) L2ERC721BridgeAddr = common.HexToAddress(L2ERC721Bridge) OptimismMintableERC721FactoryAddr = common.HexToAddress(OptimismMintableERC721Factory) ProxyAdminAddr = common.HexToAddress(ProxyAdmin) BaseFeeVaultAddr = common.HexToAddress(BaseFeeVault) L1FeeVaultAddr = common.HexToAddress(L1FeeVault) SchemaRegistryAddr = common.HexToAddress(SchemaRegistry) EASAddr = common.HexToAddress(EAS) Create2DeployerAddr = common.HexToAddress(Create2Deployer) MultiCall3Addr = common.HexToAddress(MultiCall3) Safe_v130Addr = common.HexToAddress(Safe_v130) SafeL2_v130Addr = common.HexToAddress(SafeL2_v130) MultiSendCallOnly_v130Addr = common.HexToAddress(MultiSendCallOnly_v130) SafeSingletonFactoryAddr = common.HexToAddress(SafeSingletonFactory) DeterministicDeploymentProxyAddr = common.HexToAddress(DeterministicDeploymentProxy) MultiSend_v130Addr = common.HexToAddress(MultiSend_v130) Permit2Addr = common.HexToAddress(Permit2) SenderCreatorAddr = common.HexToAddress(SenderCreator) EntryPointAddr = common.HexToAddress(EntryPoint) Predeploys = make(map[string]*Predeploy) PredeploysByAddress = make(map[common.Address]*Predeploy) )
var ( EIP4788ContractAddr = common.HexToAddress("0x000F3df6D732807Ef1319fB7B8bB8522d0Beac02") EIP4788ContractCode = common.FromHex("0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500") EIP4788ContractCodeHash = common.HexToHash("0xf57acd40259872606d76197ef052f3d35588dadf919ee1f0e3cb9b62d3f4b02c") )
EIP-4788 defines a deterministic deployment transaction that deploys the beacon-block-roots contract. To embed the contract in genesis, we want the deployment-result, not the contract-creation tx input code. Since the contract deployment result is deterministic and the same across every chain, the bytecode can be easily verified by comparing it with chains like Goerli. During deployment it does not modify any contract storage, the storage starts empty. See https://goerli.etherscan.io/tx/0xdf52c2d3bbe38820fff7b5eaab3db1b91f8e1412b56497d88388fb5d4ea1fde0 And https://eips.ethereum.org/EIPS/eip-4788
var (
LegacyERC20ETHAddr = common.HexToAddress(LegacyERC20ETH)
)
Functions ¶
This section is empty.