Commit 88bb6877 authored by Joshua Gutow's avatar Joshua Gutow Committed by GitHub

op-bindings: Provide common.Address types of predeploys (#2797)

* op-bindings: Provide common.Address types of predeploys

We provide both a string literal which contains the address as const
a hex string and as the type common.Address.

We typically use addresses in the common.Address type so this avoids
users having to do the conversion manually.

* Use new predeploy address types
Co-authored-by: default avatarmergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
parent bceb2e56
package predeploys package predeploys
import "github.com/ethereum/go-ethereum/common"
const ( const (
L2ToL1MessagePasser = "0x4200000000000000000000000000000000000000" L2ToL1MessagePasser = "0x4200000000000000000000000000000000000000"
OVM_DeployerWhitelist = "0x4200000000000000000000000000000000000002" OVM_DeployerWhitelist = "0x4200000000000000000000000000000000000002"
...@@ -14,3 +16,18 @@ const ( ...@@ -14,3 +16,18 @@ const (
L1Block = "0x4200000000000000000000000000000000000015" L1Block = "0x4200000000000000000000000000000000000015"
GovernanceToken = "0x4200000000000000000000000000000000000042" GovernanceToken = "0x4200000000000000000000000000000000000042"
) )
var (
L2ToL1MessagePasserAddr = common.HexToAddress(L2ToL1MessagePasser)
OVM_DeployerWhitelistAddr = common.HexToAddress(OVM_DeployerWhitelist)
OVM_ETHAddr = common.HexToAddress(OVM_ETH)
WETH9Addr = common.HexToAddress(WETH9)
L2CrossDomainMessengerAddr = common.HexToAddress(L2CrossDomainMessenger)
L2StandardBridgeAddr = common.HexToAddress(L2StandardBridge)
SequencerFeeVaultAddr = common.HexToAddress(SequencerFeeVault)
OptimismMintableTokenFactoryAddr = common.HexToAddress(OptimismMintableTokenFactory)
L1BlockNumberAddr = common.HexToAddress(L1BlockNumber)
OVM_GasPriceOracleAddr = common.HexToAddress(OVM_GasPriceOracle)
L1BlockAddr = common.HexToAddress(L1Block)
GovernanceTokenAddr = common.HexToAddress(GovernanceToken)
)
...@@ -96,7 +96,7 @@ func defaultSystemConfig(t *testing.T) SystemConfig { ...@@ -96,7 +96,7 @@ func defaultSystemConfig(t *testing.T) SystemConfig {
P2PSignerHDPath: p2pSignerHDPath, P2PSignerHDPath: p2pSignerHDPath,
DeployerHDPath: l2OutputHDPath, DeployerHDPath: l2OutputHDPath,
CliqueSignerDerivationPath: cliqueSignerHDPath, CliqueSignerDerivationPath: cliqueSignerHDPath,
L1InfoPredeployAddress: common.HexToAddress(predeploys.L1Block), L1InfoPredeployAddress: predeploys.L1BlockAddr,
L1BlockTime: 2, L1BlockTime: 2,
L1ChainID: big.NewInt(900), L1ChainID: big.NewInt(900),
L2ChainID: big.NewInt(901), L2ChainID: big.NewInt(901),
...@@ -710,7 +710,7 @@ func TestWithdrawals(t *testing.T) { ...@@ -710,7 +710,7 @@ func TestWithdrawals(t *testing.T) {
require.Nil(t, err, "Waiting for deposit tx on L1") require.Nil(t, err, "Waiting for deposit tx on L1")
// Bind L2 Withdrawer Contract // Bind L2 Withdrawer Contract
l2withdrawer, err := bindings.NewL2ToL1MessagePasser(common.HexToAddress(predeploys.L2ToL1MessagePasser), l2Seq) l2withdrawer, err := bindings.NewL2ToL1MessagePasser(predeploys.L2ToL1MessagePasserAddr, l2Seq)
require.Nil(t, err, "binding withdrawer on L2") require.Nil(t, err, "binding withdrawer on L2")
// Wait for deposit to arrive // Wait for deposit to arrive
......
...@@ -62,7 +62,7 @@ func (n *nodeAPI) OutputAtBlock(ctx context.Context, number rpc.BlockNumber) ([] ...@@ -62,7 +62,7 @@ func (n *nodeAPI) OutputAtBlock(ctx context.Context, number rpc.BlockNumber) ([]
return nil, ethereum.NotFound return nil, ethereum.NotFound
} }
proof, err := n.client.GetProof(ctx, common.HexToAddress(predeploys.L2ToL1MessagePasser), toBlockNumArg(number)) proof, err := n.client.GetProof(ctx, predeploys.L2ToL1MessagePasserAddr, toBlockNumArg(number))
if err != nil { if err != nil {
n.log.Error("failed to get contract proof", "err", err) n.log.Error("failed to get contract proof", "err", err)
return nil, err return nil, err
......
...@@ -84,7 +84,7 @@ func TestOutputAtBlock(t *testing.T) { ...@@ -84,7 +84,7 @@ func TestOutputAtBlock(t *testing.T) {
l2Client := &mockL2Client{} l2Client := &mockL2Client{}
l2Client.mock.On("GetBlockHeader", "latest").Return(&header) l2Client.mock.On("GetBlockHeader", "latest").Return(&header)
l2Client.mock.On("GetProof", common.HexToAddress(predeploys.L2ToL1MessagePasser), "latest").Return(&result) l2Client.mock.On("GetProof", predeploys.L2ToL1MessagePasserAddr, "latest").Return(&result)
server, err := newRPCServer(context.Background(), rpcCfg, rollupCfg, l2Client, log, "0.0") server, err := newRPCServer(context.Background(), rpcCfg, rollupCfg, l2Client, log, "0.0")
assert.NoError(t, err) assert.NoError(t, err)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment