Commit 42a4cc30 authored by smartcontracts's avatar smartcontracts Committed by GitHub

style(ctb): remove Lib_ and OVM_ prefixes (#2923)

Removes Lib_ and OVM_ prefixes from all contracts. We're no longer using
prefixes for new contracts, I see no good reason to include prefixes for
all of the older contracts that are being included and overhauled as
part of this upgrade. Keeps everything consistent while also removing
some legacy cruft.
parent 2e89f634
---
'@eth-optimism/contracts-bedrock': minor
---
Remove Lib* and OVM* prefixes from all contracts
...@@ -33,7 +33,7 @@ gas-price-oracle-bindings: ...@@ -33,7 +33,7 @@ gas-price-oracle-bindings:
./gen_bindings.sh GasPriceOracle bindings ./gen_bindings.sh GasPriceOracle bindings
address-manager-bindings: address-manager-bindings:
./gen_bindings.sh Lib_AddressManager bindings ./gen_bindings.sh AddressManager bindings
mkdir: mkdir:
mkdir -p bin bindings mkdir -p bin bindings
......
...@@ -28,23 +28,23 @@ var ( ...@@ -28,23 +28,23 @@ var (
_ = event.NewSubscription _ = event.NewSubscription
) )
// LibAddressManagerMetaData contains all meta data concerning the LibAddressManager contract. // AddressManagerMetaData contains all meta data concerning the AddressManager contract.
var LibAddressManagerMetaData = &bind.MetaData{ var AddressManagerMetaData = &bind.MetaData{
ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_oldAddress\",\"type\":\"address\"}],\"name\":\"AddressSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_oldAddress\",\"type\":\"address\"}],\"name\":\"AddressSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
Bin: "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6106d98061007e6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80639b2ea4bd116100505780639b2ea4bd146100b9578063bf40fac1146100cc578063f2fde38b146100df57600080fd5b8063715018a61461006c5780638da5cb5b14610076575b600080fd5b6100746100f2565b005b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100746100c73660046105e4565b610184565b6100906100da366004610632565b6102d0565b6100746100ed36600461066f565b61030c565b60005473ffffffffffffffffffffffffffffffffffffffff163314610178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b610182600061043c565b565b60005473ffffffffffffffffffffffffffffffffffffffff163314610205576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161016f565b6000610210836104b1565b60008181526001602052604090819020805473ffffffffffffffffffffffffffffffffffffffff8681167fffffffffffffffffffffffff000000000000000000000000000000000000000083161790925591519293501690610273908590610691565b6040805191829003822073ffffffffffffffffffffffffffffffffffffffff808716845284166020840152917f9416a153a346f93d95f94b064ae3f148b6460473c6e82b3f9fc2521b873fcd6c910160405180910390a250505050565b6000600160006102df846104b1565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff1692915050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461038d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161016f565b73ffffffffffffffffffffffffffffffffffffffff8116610430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161016f565b6104398161043c565b50565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000816040516020016104c49190610691565b604051602081830303815290604052805190602001209050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261052157600080fd5b813567ffffffffffffffff8082111561053c5761053c6104e1565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610582576105826104e1565b8160405283815286602085880101111561059b57600080fd5b836020870160208301376000602085830101528094505050505092915050565b803573ffffffffffffffffffffffffffffffffffffffff811681146105df57600080fd5b919050565b600080604083850312156105f757600080fd5b823567ffffffffffffffff81111561060e57600080fd5b61061a85828601610510565b925050610629602084016105bb565b90509250929050565b60006020828403121561064457600080fd5b813567ffffffffffffffff81111561065b57600080fd5b61066784828501610510565b949350505050565b60006020828403121561068157600080fd5b61068a826105bb565b9392505050565b6000825160005b818110156106b25760208186018101518583015201610698565b818111156106c1576000828501525b50919091019291505056fea164736f6c634300080a000a", Bin: "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6106d98061007e6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80639b2ea4bd116100505780639b2ea4bd146100b9578063bf40fac1146100cc578063f2fde38b146100df57600080fd5b8063715018a61461006c5780638da5cb5b14610076575b600080fd5b6100746100f2565b005b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100746100c73660046105e4565b610184565b6100906100da366004610632565b6102d0565b6100746100ed36600461066f565b61030c565b60005473ffffffffffffffffffffffffffffffffffffffff163314610178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b610182600061043c565b565b60005473ffffffffffffffffffffffffffffffffffffffff163314610205576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161016f565b6000610210836104b1565b60008181526001602052604090819020805473ffffffffffffffffffffffffffffffffffffffff8681167fffffffffffffffffffffffff000000000000000000000000000000000000000083161790925591519293501690610273908590610691565b6040805191829003822073ffffffffffffffffffffffffffffffffffffffff808716845284166020840152917f9416a153a346f93d95f94b064ae3f148b6460473c6e82b3f9fc2521b873fcd6c910160405180910390a250505050565b6000600160006102df846104b1565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff1692915050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461038d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161016f565b73ffffffffffffffffffffffffffffffffffffffff8116610430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161016f565b6104398161043c565b50565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000816040516020016104c49190610691565b604051602081830303815290604052805190602001209050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261052157600080fd5b813567ffffffffffffffff8082111561053c5761053c6104e1565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610582576105826104e1565b8160405283815286602085880101111561059b57600080fd5b836020870160208301376000602085830101528094505050505092915050565b803573ffffffffffffffffffffffffffffffffffffffff811681146105df57600080fd5b919050565b600080604083850312156105f757600080fd5b823567ffffffffffffffff81111561060e57600080fd5b61061a85828601610510565b925050610629602084016105bb565b90509250929050565b60006020828403121561064457600080fd5b813567ffffffffffffffff81111561065b57600080fd5b61066784828501610510565b949350505050565b60006020828403121561068157600080fd5b61068a826105bb565b9392505050565b6000825160005b818110156106b25760208186018101518583015201610698565b818111156106c1576000828501525b50919091019291505056fea164736f6c634300080a000a",
} }
// LibAddressManagerABI is the input ABI used to generate the binding from. // AddressManagerABI is the input ABI used to generate the binding from.
// Deprecated: Use LibAddressManagerMetaData.ABI instead. // Deprecated: Use AddressManagerMetaData.ABI instead.
var LibAddressManagerABI = LibAddressManagerMetaData.ABI var AddressManagerABI = AddressManagerMetaData.ABI
// LibAddressManagerBin is the compiled bytecode used for deploying new contracts. // AddressManagerBin is the compiled bytecode used for deploying new contracts.
// Deprecated: Use LibAddressManagerMetaData.Bin instead. // Deprecated: Use AddressManagerMetaData.Bin instead.
var LibAddressManagerBin = LibAddressManagerMetaData.Bin var AddressManagerBin = AddressManagerMetaData.Bin
// DeployLibAddressManager deploys a new Ethereum contract, binding an instance of LibAddressManager to it. // DeployAddressManager deploys a new Ethereum contract, binding an instance of AddressManager to it.
func DeployLibAddressManager(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *LibAddressManager, error) { func DeployAddressManager(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *AddressManager, error) {
parsed, err := LibAddressManagerMetaData.GetAbi() parsed, err := AddressManagerMetaData.GetAbi()
if err != nil { if err != nil {
return common.Address{}, nil, nil, err return common.Address{}, nil, nil, err
} }
...@@ -52,111 +52,111 @@ func DeployLibAddressManager(auth *bind.TransactOpts, backend bind.ContractBacke ...@@ -52,111 +52,111 @@ func DeployLibAddressManager(auth *bind.TransactOpts, backend bind.ContractBacke
return common.Address{}, nil, nil, errors.New("GetABI returned nil") return common.Address{}, nil, nil, errors.New("GetABI returned nil")
} }
address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(LibAddressManagerBin), backend) address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(AddressManagerBin), backend)
if err != nil { if err != nil {
return common.Address{}, nil, nil, err return common.Address{}, nil, nil, err
} }
return address, tx, &LibAddressManager{LibAddressManagerCaller: LibAddressManagerCaller{contract: contract}, LibAddressManagerTransactor: LibAddressManagerTransactor{contract: contract}, LibAddressManagerFilterer: LibAddressManagerFilterer{contract: contract}}, nil return address, tx, &AddressManager{AddressManagerCaller: AddressManagerCaller{contract: contract}, AddressManagerTransactor: AddressManagerTransactor{contract: contract}, AddressManagerFilterer: AddressManagerFilterer{contract: contract}}, nil
} }
// LibAddressManager is an auto generated Go binding around an Ethereum contract. // AddressManager is an auto generated Go binding around an Ethereum contract.
type LibAddressManager struct { type AddressManager struct {
LibAddressManagerCaller // Read-only binding to the contract AddressManagerCaller // Read-only binding to the contract
LibAddressManagerTransactor // Write-only binding to the contract AddressManagerTransactor // Write-only binding to the contract
LibAddressManagerFilterer // Log filterer for contract events AddressManagerFilterer // Log filterer for contract events
} }
// LibAddressManagerCaller is an auto generated read-only Go binding around an Ethereum contract. // AddressManagerCaller is an auto generated read-only Go binding around an Ethereum contract.
type LibAddressManagerCaller struct { type AddressManagerCaller struct {
contract *bind.BoundContract // Generic contract wrapper for the low level calls contract *bind.BoundContract // Generic contract wrapper for the low level calls
} }
// LibAddressManagerTransactor is an auto generated write-only Go binding around an Ethereum contract. // AddressManagerTransactor is an auto generated write-only Go binding around an Ethereum contract.
type LibAddressManagerTransactor struct { type AddressManagerTransactor struct {
contract *bind.BoundContract // Generic contract wrapper for the low level calls contract *bind.BoundContract // Generic contract wrapper for the low level calls
} }
// LibAddressManagerFilterer is an auto generated log filtering Go binding around an Ethereum contract events. // AddressManagerFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
type LibAddressManagerFilterer struct { type AddressManagerFilterer struct {
contract *bind.BoundContract // Generic contract wrapper for the low level calls contract *bind.BoundContract // Generic contract wrapper for the low level calls
} }
// LibAddressManagerSession is an auto generated Go binding around an Ethereum contract, // AddressManagerSession is an auto generated Go binding around an Ethereum contract,
// with pre-set call and transact options. // with pre-set call and transact options.
type LibAddressManagerSession struct { type AddressManagerSession struct {
Contract *LibAddressManager // Generic contract binding to set the session for Contract *AddressManager // Generic contract binding to set the session for
CallOpts bind.CallOpts // Call options to use throughout this session CallOpts bind.CallOpts // Call options to use throughout this session
TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
} }
// LibAddressManagerCallerSession is an auto generated read-only Go binding around an Ethereum contract, // AddressManagerCallerSession is an auto generated read-only Go binding around an Ethereum contract,
// with pre-set call options. // with pre-set call options.
type LibAddressManagerCallerSession struct { type AddressManagerCallerSession struct {
Contract *LibAddressManagerCaller // Generic contract caller binding to set the session for Contract *AddressManagerCaller // Generic contract caller binding to set the session for
CallOpts bind.CallOpts // Call options to use throughout this session CallOpts bind.CallOpts // Call options to use throughout this session
} }
// LibAddressManagerTransactorSession is an auto generated write-only Go binding around an Ethereum contract, // AddressManagerTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
// with pre-set transact options. // with pre-set transact options.
type LibAddressManagerTransactorSession struct { type AddressManagerTransactorSession struct {
Contract *LibAddressManagerTransactor // Generic contract transactor binding to set the session for Contract *AddressManagerTransactor // Generic contract transactor binding to set the session for
TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
} }
// LibAddressManagerRaw is an auto generated low-level Go binding around an Ethereum contract. // AddressManagerRaw is an auto generated low-level Go binding around an Ethereum contract.
type LibAddressManagerRaw struct { type AddressManagerRaw struct {
Contract *LibAddressManager // Generic contract binding to access the raw methods on Contract *AddressManager // Generic contract binding to access the raw methods on
} }
// LibAddressManagerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. // AddressManagerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
type LibAddressManagerCallerRaw struct { type AddressManagerCallerRaw struct {
Contract *LibAddressManagerCaller // Generic read-only contract binding to access the raw methods on Contract *AddressManagerCaller // Generic read-only contract binding to access the raw methods on
} }
// LibAddressManagerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. // AddressManagerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
type LibAddressManagerTransactorRaw struct { type AddressManagerTransactorRaw struct {
Contract *LibAddressManagerTransactor // Generic write-only contract binding to access the raw methods on Contract *AddressManagerTransactor // Generic write-only contract binding to access the raw methods on
} }
// NewLibAddressManager creates a new instance of LibAddressManager, bound to a specific deployed contract. // NewAddressManager creates a new instance of AddressManager, bound to a specific deployed contract.
func NewLibAddressManager(address common.Address, backend bind.ContractBackend) (*LibAddressManager, error) { func NewAddressManager(address common.Address, backend bind.ContractBackend) (*AddressManager, error) {
contract, err := bindLibAddressManager(address, backend, backend, backend) contract, err := bindAddressManager(address, backend, backend, backend)
if err != nil { if err != nil {
return nil, err return nil, err
} }
return &LibAddressManager{LibAddressManagerCaller: LibAddressManagerCaller{contract: contract}, LibAddressManagerTransactor: LibAddressManagerTransactor{contract: contract}, LibAddressManagerFilterer: LibAddressManagerFilterer{contract: contract}}, nil return &AddressManager{AddressManagerCaller: AddressManagerCaller{contract: contract}, AddressManagerTransactor: AddressManagerTransactor{contract: contract}, AddressManagerFilterer: AddressManagerFilterer{contract: contract}}, nil
} }
// NewLibAddressManagerCaller creates a new read-only instance of LibAddressManager, bound to a specific deployed contract. // NewAddressManagerCaller creates a new read-only instance of AddressManager, bound to a specific deployed contract.
func NewLibAddressManagerCaller(address common.Address, caller bind.ContractCaller) (*LibAddressManagerCaller, error) { func NewAddressManagerCaller(address common.Address, caller bind.ContractCaller) (*AddressManagerCaller, error) {
contract, err := bindLibAddressManager(address, caller, nil, nil) contract, err := bindAddressManager(address, caller, nil, nil)
if err != nil { if err != nil {
return nil, err return nil, err
} }
return &LibAddressManagerCaller{contract: contract}, nil return &AddressManagerCaller{contract: contract}, nil
} }
// NewLibAddressManagerTransactor creates a new write-only instance of LibAddressManager, bound to a specific deployed contract. // NewAddressManagerTransactor creates a new write-only instance of AddressManager, bound to a specific deployed contract.
func NewLibAddressManagerTransactor(address common.Address, transactor bind.ContractTransactor) (*LibAddressManagerTransactor, error) { func NewAddressManagerTransactor(address common.Address, transactor bind.ContractTransactor) (*AddressManagerTransactor, error) {
contract, err := bindLibAddressManager(address, nil, transactor, nil) contract, err := bindAddressManager(address, nil, transactor, nil)
if err != nil { if err != nil {
return nil, err return nil, err
} }
return &LibAddressManagerTransactor{contract: contract}, nil return &AddressManagerTransactor{contract: contract}, nil
} }
// NewLibAddressManagerFilterer creates a new log filterer instance of LibAddressManager, bound to a specific deployed contract. // NewAddressManagerFilterer creates a new log filterer instance of AddressManager, bound to a specific deployed contract.
func NewLibAddressManagerFilterer(address common.Address, filterer bind.ContractFilterer) (*LibAddressManagerFilterer, error) { func NewAddressManagerFilterer(address common.Address, filterer bind.ContractFilterer) (*AddressManagerFilterer, error) {
contract, err := bindLibAddressManager(address, nil, nil, filterer) contract, err := bindAddressManager(address, nil, nil, filterer)
if err != nil { if err != nil {
return nil, err return nil, err
} }
return &LibAddressManagerFilterer{contract: contract}, nil return &AddressManagerFilterer{contract: contract}, nil
} }
// bindLibAddressManager binds a generic wrapper to an already deployed contract. // bindAddressManager binds a generic wrapper to an already deployed contract.
func bindLibAddressManager(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { func bindAddressManager(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
parsed, err := abi.JSON(strings.NewReader(LibAddressManagerABI)) parsed, err := abi.JSON(strings.NewReader(AddressManagerABI))
if err != nil { if err != nil {
return nil, err return nil, err
} }
...@@ -167,46 +167,46 @@ func bindLibAddressManager(address common.Address, caller bind.ContractCaller, t ...@@ -167,46 +167,46 @@ func bindLibAddressManager(address common.Address, caller bind.ContractCaller, t
// sets the output to result. The result type might be a single field for simple // sets the output to result. The result type might be a single field for simple
// returns, a slice of interfaces for anonymous returns and a struct for named // returns, a slice of interfaces for anonymous returns and a struct for named
// returns. // returns.
func (_LibAddressManager *LibAddressManagerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { func (_AddressManager *AddressManagerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
return _LibAddressManager.Contract.LibAddressManagerCaller.contract.Call(opts, result, method, params...) return _AddressManager.Contract.AddressManagerCaller.contract.Call(opts, result, method, params...)
} }
// Transfer initiates a plain transaction to move funds to the contract, calling // Transfer initiates a plain transaction to move funds to the contract, calling
// its default method if one is available. // its default method if one is available.
func (_LibAddressManager *LibAddressManagerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { func (_AddressManager *AddressManagerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
return _LibAddressManager.Contract.LibAddressManagerTransactor.contract.Transfer(opts) return _AddressManager.Contract.AddressManagerTransactor.contract.Transfer(opts)
} }
// Transact invokes the (paid) contract method with params as input values. // Transact invokes the (paid) contract method with params as input values.
func (_LibAddressManager *LibAddressManagerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { func (_AddressManager *AddressManagerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
return _LibAddressManager.Contract.LibAddressManagerTransactor.contract.Transact(opts, method, params...) return _AddressManager.Contract.AddressManagerTransactor.contract.Transact(opts, method, params...)
} }
// Call invokes the (constant) contract method with params as input values and // Call invokes the (constant) contract method with params as input values and
// sets the output to result. The result type might be a single field for simple // sets the output to result. The result type might be a single field for simple
// returns, a slice of interfaces for anonymous returns and a struct for named // returns, a slice of interfaces for anonymous returns and a struct for named
// returns. // returns.
func (_LibAddressManager *LibAddressManagerCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { func (_AddressManager *AddressManagerCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
return _LibAddressManager.Contract.contract.Call(opts, result, method, params...) return _AddressManager.Contract.contract.Call(opts, result, method, params...)
} }
// Transfer initiates a plain transaction to move funds to the contract, calling // Transfer initiates a plain transaction to move funds to the contract, calling
// its default method if one is available. // its default method if one is available.
func (_LibAddressManager *LibAddressManagerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { func (_AddressManager *AddressManagerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
return _LibAddressManager.Contract.contract.Transfer(opts) return _AddressManager.Contract.contract.Transfer(opts)
} }
// Transact invokes the (paid) contract method with params as input values. // Transact invokes the (paid) contract method with params as input values.
func (_LibAddressManager *LibAddressManagerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { func (_AddressManager *AddressManagerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
return _LibAddressManager.Contract.contract.Transact(opts, method, params...) return _AddressManager.Contract.contract.Transact(opts, method, params...)
} }
// GetAddress is a free data retrieval call binding the contract method 0xbf40fac1. // GetAddress is a free data retrieval call binding the contract method 0xbf40fac1.
// //
// Solidity: function getAddress(string _name) view returns(address) // Solidity: function getAddress(string _name) view returns(address)
func (_LibAddressManager *LibAddressManagerCaller) GetAddress(opts *bind.CallOpts, _name string) (common.Address, error) { func (_AddressManager *AddressManagerCaller) GetAddress(opts *bind.CallOpts, _name string) (common.Address, error) {
var out []interface{} var out []interface{}
err := _LibAddressManager.contract.Call(opts, &out, "getAddress", _name) err := _AddressManager.contract.Call(opts, &out, "getAddress", _name)
if err != nil { if err != nil {
return *new(common.Address), err return *new(common.Address), err
...@@ -221,23 +221,23 @@ func (_LibAddressManager *LibAddressManagerCaller) GetAddress(opts *bind.CallOpt ...@@ -221,23 +221,23 @@ func (_LibAddressManager *LibAddressManagerCaller) GetAddress(opts *bind.CallOpt
// GetAddress is a free data retrieval call binding the contract method 0xbf40fac1. // GetAddress is a free data retrieval call binding the contract method 0xbf40fac1.
// //
// Solidity: function getAddress(string _name) view returns(address) // Solidity: function getAddress(string _name) view returns(address)
func (_LibAddressManager *LibAddressManagerSession) GetAddress(_name string) (common.Address, error) { func (_AddressManager *AddressManagerSession) GetAddress(_name string) (common.Address, error) {
return _LibAddressManager.Contract.GetAddress(&_LibAddressManager.CallOpts, _name) return _AddressManager.Contract.GetAddress(&_AddressManager.CallOpts, _name)
} }
// GetAddress is a free data retrieval call binding the contract method 0xbf40fac1. // GetAddress is a free data retrieval call binding the contract method 0xbf40fac1.
// //
// Solidity: function getAddress(string _name) view returns(address) // Solidity: function getAddress(string _name) view returns(address)
func (_LibAddressManager *LibAddressManagerCallerSession) GetAddress(_name string) (common.Address, error) { func (_AddressManager *AddressManagerCallerSession) GetAddress(_name string) (common.Address, error) {
return _LibAddressManager.Contract.GetAddress(&_LibAddressManager.CallOpts, _name) return _AddressManager.Contract.GetAddress(&_AddressManager.CallOpts, _name)
} }
// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
// //
// Solidity: function owner() view returns(address) // Solidity: function owner() view returns(address)
func (_LibAddressManager *LibAddressManagerCaller) Owner(opts *bind.CallOpts) (common.Address, error) { func (_AddressManager *AddressManagerCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
var out []interface{} var out []interface{}
err := _LibAddressManager.contract.Call(opts, &out, "owner") err := _AddressManager.contract.Call(opts, &out, "owner")
if err != nil { if err != nil {
return *new(common.Address), err return *new(common.Address), err
...@@ -252,83 +252,83 @@ func (_LibAddressManager *LibAddressManagerCaller) Owner(opts *bind.CallOpts) (c ...@@ -252,83 +252,83 @@ func (_LibAddressManager *LibAddressManagerCaller) Owner(opts *bind.CallOpts) (c
// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
// //
// Solidity: function owner() view returns(address) // Solidity: function owner() view returns(address)
func (_LibAddressManager *LibAddressManagerSession) Owner() (common.Address, error) { func (_AddressManager *AddressManagerSession) Owner() (common.Address, error) {
return _LibAddressManager.Contract.Owner(&_LibAddressManager.CallOpts) return _AddressManager.Contract.Owner(&_AddressManager.CallOpts)
} }
// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
// //
// Solidity: function owner() view returns(address) // Solidity: function owner() view returns(address)
func (_LibAddressManager *LibAddressManagerCallerSession) Owner() (common.Address, error) { func (_AddressManager *AddressManagerCallerSession) Owner() (common.Address, error) {
return _LibAddressManager.Contract.Owner(&_LibAddressManager.CallOpts) return _AddressManager.Contract.Owner(&_AddressManager.CallOpts)
} }
// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
// //
// Solidity: function renounceOwnership() returns() // Solidity: function renounceOwnership() returns()
func (_LibAddressManager *LibAddressManagerTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { func (_AddressManager *AddressManagerTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
return _LibAddressManager.contract.Transact(opts, "renounceOwnership") return _AddressManager.contract.Transact(opts, "renounceOwnership")
} }
// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
// //
// Solidity: function renounceOwnership() returns() // Solidity: function renounceOwnership() returns()
func (_LibAddressManager *LibAddressManagerSession) RenounceOwnership() (*types.Transaction, error) { func (_AddressManager *AddressManagerSession) RenounceOwnership() (*types.Transaction, error) {
return _LibAddressManager.Contract.RenounceOwnership(&_LibAddressManager.TransactOpts) return _AddressManager.Contract.RenounceOwnership(&_AddressManager.TransactOpts)
} }
// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
// //
// Solidity: function renounceOwnership() returns() // Solidity: function renounceOwnership() returns()
func (_LibAddressManager *LibAddressManagerTransactorSession) RenounceOwnership() (*types.Transaction, error) { func (_AddressManager *AddressManagerTransactorSession) RenounceOwnership() (*types.Transaction, error) {
return _LibAddressManager.Contract.RenounceOwnership(&_LibAddressManager.TransactOpts) return _AddressManager.Contract.RenounceOwnership(&_AddressManager.TransactOpts)
} }
// SetAddress is a paid mutator transaction binding the contract method 0x9b2ea4bd. // SetAddress is a paid mutator transaction binding the contract method 0x9b2ea4bd.
// //
// Solidity: function setAddress(string _name, address _address) returns() // Solidity: function setAddress(string _name, address _address) returns()
func (_LibAddressManager *LibAddressManagerTransactor) SetAddress(opts *bind.TransactOpts, _name string, _address common.Address) (*types.Transaction, error) { func (_AddressManager *AddressManagerTransactor) SetAddress(opts *bind.TransactOpts, _name string, _address common.Address) (*types.Transaction, error) {
return _LibAddressManager.contract.Transact(opts, "setAddress", _name, _address) return _AddressManager.contract.Transact(opts, "setAddress", _name, _address)
} }
// SetAddress is a paid mutator transaction binding the contract method 0x9b2ea4bd. // SetAddress is a paid mutator transaction binding the contract method 0x9b2ea4bd.
// //
// Solidity: function setAddress(string _name, address _address) returns() // Solidity: function setAddress(string _name, address _address) returns()
func (_LibAddressManager *LibAddressManagerSession) SetAddress(_name string, _address common.Address) (*types.Transaction, error) { func (_AddressManager *AddressManagerSession) SetAddress(_name string, _address common.Address) (*types.Transaction, error) {
return _LibAddressManager.Contract.SetAddress(&_LibAddressManager.TransactOpts, _name, _address) return _AddressManager.Contract.SetAddress(&_AddressManager.TransactOpts, _name, _address)
} }
// SetAddress is a paid mutator transaction binding the contract method 0x9b2ea4bd. // SetAddress is a paid mutator transaction binding the contract method 0x9b2ea4bd.
// //
// Solidity: function setAddress(string _name, address _address) returns() // Solidity: function setAddress(string _name, address _address) returns()
func (_LibAddressManager *LibAddressManagerTransactorSession) SetAddress(_name string, _address common.Address) (*types.Transaction, error) { func (_AddressManager *AddressManagerTransactorSession) SetAddress(_name string, _address common.Address) (*types.Transaction, error) {
return _LibAddressManager.Contract.SetAddress(&_LibAddressManager.TransactOpts, _name, _address) return _AddressManager.Contract.SetAddress(&_AddressManager.TransactOpts, _name, _address)
} }
// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
// //
// Solidity: function transferOwnership(address newOwner) returns() // Solidity: function transferOwnership(address newOwner) returns()
func (_LibAddressManager *LibAddressManagerTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { func (_AddressManager *AddressManagerTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
return _LibAddressManager.contract.Transact(opts, "transferOwnership", newOwner) return _AddressManager.contract.Transact(opts, "transferOwnership", newOwner)
} }
// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
// //
// Solidity: function transferOwnership(address newOwner) returns() // Solidity: function transferOwnership(address newOwner) returns()
func (_LibAddressManager *LibAddressManagerSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { func (_AddressManager *AddressManagerSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
return _LibAddressManager.Contract.TransferOwnership(&_LibAddressManager.TransactOpts, newOwner) return _AddressManager.Contract.TransferOwnership(&_AddressManager.TransactOpts, newOwner)
} }
// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
// //
// Solidity: function transferOwnership(address newOwner) returns() // Solidity: function transferOwnership(address newOwner) returns()
func (_LibAddressManager *LibAddressManagerTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { func (_AddressManager *AddressManagerTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
return _LibAddressManager.Contract.TransferOwnership(&_LibAddressManager.TransactOpts, newOwner) return _AddressManager.Contract.TransferOwnership(&_AddressManager.TransactOpts, newOwner)
} }
// LibAddressManagerAddressSetIterator is returned from FilterAddressSet and is used to iterate over the raw logs and unpacked data for AddressSet events raised by the LibAddressManager contract. // AddressManagerAddressSetIterator is returned from FilterAddressSet and is used to iterate over the raw logs and unpacked data for AddressSet events raised by the AddressManager contract.
type LibAddressManagerAddressSetIterator struct { type AddressManagerAddressSetIterator struct {
Event *LibAddressManagerAddressSet // Event containing the contract specifics and raw log Event *AddressManagerAddressSet // Event containing the contract specifics and raw log
contract *bind.BoundContract // Generic contract to use for unpacking event data contract *bind.BoundContract // Generic contract to use for unpacking event data
event string // Event name to use for unpacking event data event string // Event name to use for unpacking event data
...@@ -342,7 +342,7 @@ type LibAddressManagerAddressSetIterator struct { ...@@ -342,7 +342,7 @@ type LibAddressManagerAddressSetIterator struct {
// Next advances the iterator to the subsequent event, returning whether there // Next advances the iterator to the subsequent event, returning whether there
// are any more events found. In case of a retrieval or parsing error, false is // are any more events found. In case of a retrieval or parsing error, false is
// returned and Error() can be queried for the exact failure. // returned and Error() can be queried for the exact failure.
func (it *LibAddressManagerAddressSetIterator) Next() bool { func (it *AddressManagerAddressSetIterator) Next() bool {
// If the iterator failed, stop iterating // If the iterator failed, stop iterating
if it.fail != nil { if it.fail != nil {
return false return false
...@@ -351,7 +351,7 @@ func (it *LibAddressManagerAddressSetIterator) Next() bool { ...@@ -351,7 +351,7 @@ func (it *LibAddressManagerAddressSetIterator) Next() bool {
if it.done { if it.done {
select { select {
case log := <-it.logs: case log := <-it.logs:
it.Event = new(LibAddressManagerAddressSet) it.Event = new(AddressManagerAddressSet)
if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
it.fail = err it.fail = err
return false return false
...@@ -366,7 +366,7 @@ func (it *LibAddressManagerAddressSetIterator) Next() bool { ...@@ -366,7 +366,7 @@ func (it *LibAddressManagerAddressSetIterator) Next() bool {
// Iterator still in progress, wait for either a data or an error event // Iterator still in progress, wait for either a data or an error event
select { select {
case log := <-it.logs: case log := <-it.logs:
it.Event = new(LibAddressManagerAddressSet) it.Event = new(AddressManagerAddressSet)
if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
it.fail = err it.fail = err
return false return false
...@@ -382,19 +382,19 @@ func (it *LibAddressManagerAddressSetIterator) Next() bool { ...@@ -382,19 +382,19 @@ func (it *LibAddressManagerAddressSetIterator) Next() bool {
} }
// Error returns any retrieval or parsing error occurred during filtering. // Error returns any retrieval or parsing error occurred during filtering.
func (it *LibAddressManagerAddressSetIterator) Error() error { func (it *AddressManagerAddressSetIterator) Error() error {
return it.fail return it.fail
} }
// Close terminates the iteration process, releasing any pending underlying // Close terminates the iteration process, releasing any pending underlying
// resources. // resources.
func (it *LibAddressManagerAddressSetIterator) Close() error { func (it *AddressManagerAddressSetIterator) Close() error {
it.sub.Unsubscribe() it.sub.Unsubscribe()
return nil return nil
} }
// LibAddressManagerAddressSet represents a AddressSet event raised by the LibAddressManager contract. // AddressManagerAddressSet represents a AddressSet event raised by the AddressManager contract.
type LibAddressManagerAddressSet struct { type AddressManagerAddressSet struct {
Name common.Hash Name common.Hash
NewAddress common.Address NewAddress common.Address
OldAddress common.Address OldAddress common.Address
...@@ -404,31 +404,31 @@ type LibAddressManagerAddressSet struct { ...@@ -404,31 +404,31 @@ type LibAddressManagerAddressSet struct {
// FilterAddressSet is a free log retrieval operation binding the contract event 0x9416a153a346f93d95f94b064ae3f148b6460473c6e82b3f9fc2521b873fcd6c. // FilterAddressSet is a free log retrieval operation binding the contract event 0x9416a153a346f93d95f94b064ae3f148b6460473c6e82b3f9fc2521b873fcd6c.
// //
// Solidity: event AddressSet(string indexed _name, address _newAddress, address _oldAddress) // Solidity: event AddressSet(string indexed _name, address _newAddress, address _oldAddress)
func (_LibAddressManager *LibAddressManagerFilterer) FilterAddressSet(opts *bind.FilterOpts, _name []string) (*LibAddressManagerAddressSetIterator, error) { func (_AddressManager *AddressManagerFilterer) FilterAddressSet(opts *bind.FilterOpts, _name []string) (*AddressManagerAddressSetIterator, error) {
var _nameRule []interface{} var _nameRule []interface{}
for _, _nameItem := range _name { for _, _nameItem := range _name {
_nameRule = append(_nameRule, _nameItem) _nameRule = append(_nameRule, _nameItem)
} }
logs, sub, err := _LibAddressManager.contract.FilterLogs(opts, "AddressSet", _nameRule) logs, sub, err := _AddressManager.contract.FilterLogs(opts, "AddressSet", _nameRule)
if err != nil { if err != nil {
return nil, err return nil, err
} }
return &LibAddressManagerAddressSetIterator{contract: _LibAddressManager.contract, event: "AddressSet", logs: logs, sub: sub}, nil return &AddressManagerAddressSetIterator{contract: _AddressManager.contract, event: "AddressSet", logs: logs, sub: sub}, nil
} }
// WatchAddressSet is a free log subscription operation binding the contract event 0x9416a153a346f93d95f94b064ae3f148b6460473c6e82b3f9fc2521b873fcd6c. // WatchAddressSet is a free log subscription operation binding the contract event 0x9416a153a346f93d95f94b064ae3f148b6460473c6e82b3f9fc2521b873fcd6c.
// //
// Solidity: event AddressSet(string indexed _name, address _newAddress, address _oldAddress) // Solidity: event AddressSet(string indexed _name, address _newAddress, address _oldAddress)
func (_LibAddressManager *LibAddressManagerFilterer) WatchAddressSet(opts *bind.WatchOpts, sink chan<- *LibAddressManagerAddressSet, _name []string) (event.Subscription, error) { func (_AddressManager *AddressManagerFilterer) WatchAddressSet(opts *bind.WatchOpts, sink chan<- *AddressManagerAddressSet, _name []string) (event.Subscription, error) {
var _nameRule []interface{} var _nameRule []interface{}
for _, _nameItem := range _name { for _, _nameItem := range _name {
_nameRule = append(_nameRule, _nameItem) _nameRule = append(_nameRule, _nameItem)
} }
logs, sub, err := _LibAddressManager.contract.WatchLogs(opts, "AddressSet", _nameRule) logs, sub, err := _AddressManager.contract.WatchLogs(opts, "AddressSet", _nameRule)
if err != nil { if err != nil {
return nil, err return nil, err
} }
...@@ -438,8 +438,8 @@ func (_LibAddressManager *LibAddressManagerFilterer) WatchAddressSet(opts *bind. ...@@ -438,8 +438,8 @@ func (_LibAddressManager *LibAddressManagerFilterer) WatchAddressSet(opts *bind.
select { select {
case log := <-logs: case log := <-logs:
// New log arrived, parse the event and forward to the user // New log arrived, parse the event and forward to the user
event := new(LibAddressManagerAddressSet) event := new(AddressManagerAddressSet)
if err := _LibAddressManager.contract.UnpackLog(event, "AddressSet", log); err != nil { if err := _AddressManager.contract.UnpackLog(event, "AddressSet", log); err != nil {
return err return err
} }
event.Raw = log event.Raw = log
...@@ -463,18 +463,18 @@ func (_LibAddressManager *LibAddressManagerFilterer) WatchAddressSet(opts *bind. ...@@ -463,18 +463,18 @@ func (_LibAddressManager *LibAddressManagerFilterer) WatchAddressSet(opts *bind.
// ParseAddressSet is a log parse operation binding the contract event 0x9416a153a346f93d95f94b064ae3f148b6460473c6e82b3f9fc2521b873fcd6c. // ParseAddressSet is a log parse operation binding the contract event 0x9416a153a346f93d95f94b064ae3f148b6460473c6e82b3f9fc2521b873fcd6c.
// //
// Solidity: event AddressSet(string indexed _name, address _newAddress, address _oldAddress) // Solidity: event AddressSet(string indexed _name, address _newAddress, address _oldAddress)
func (_LibAddressManager *LibAddressManagerFilterer) ParseAddressSet(log types.Log) (*LibAddressManagerAddressSet, error) { func (_AddressManager *AddressManagerFilterer) ParseAddressSet(log types.Log) (*AddressManagerAddressSet, error) {
event := new(LibAddressManagerAddressSet) event := new(AddressManagerAddressSet)
if err := _LibAddressManager.contract.UnpackLog(event, "AddressSet", log); err != nil { if err := _AddressManager.contract.UnpackLog(event, "AddressSet", log); err != nil {
return nil, err return nil, err
} }
event.Raw = log event.Raw = log
return event, nil return event, nil
} }
// LibAddressManagerOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the LibAddressManager contract. // AddressManagerOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the AddressManager contract.
type LibAddressManagerOwnershipTransferredIterator struct { type AddressManagerOwnershipTransferredIterator struct {
Event *LibAddressManagerOwnershipTransferred // Event containing the contract specifics and raw log Event *AddressManagerOwnershipTransferred // Event containing the contract specifics and raw log
contract *bind.BoundContract // Generic contract to use for unpacking event data contract *bind.BoundContract // Generic contract to use for unpacking event data
event string // Event name to use for unpacking event data event string // Event name to use for unpacking event data
...@@ -488,7 +488,7 @@ type LibAddressManagerOwnershipTransferredIterator struct { ...@@ -488,7 +488,7 @@ type LibAddressManagerOwnershipTransferredIterator struct {
// Next advances the iterator to the subsequent event, returning whether there // Next advances the iterator to the subsequent event, returning whether there
// are any more events found. In case of a retrieval or parsing error, false is // are any more events found. In case of a retrieval or parsing error, false is
// returned and Error() can be queried for the exact failure. // returned and Error() can be queried for the exact failure.
func (it *LibAddressManagerOwnershipTransferredIterator) Next() bool { func (it *AddressManagerOwnershipTransferredIterator) Next() bool {
// If the iterator failed, stop iterating // If the iterator failed, stop iterating
if it.fail != nil { if it.fail != nil {
return false return false
...@@ -497,7 +497,7 @@ func (it *LibAddressManagerOwnershipTransferredIterator) Next() bool { ...@@ -497,7 +497,7 @@ func (it *LibAddressManagerOwnershipTransferredIterator) Next() bool {
if it.done { if it.done {
select { select {
case log := <-it.logs: case log := <-it.logs:
it.Event = new(LibAddressManagerOwnershipTransferred) it.Event = new(AddressManagerOwnershipTransferred)
if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
it.fail = err it.fail = err
return false return false
...@@ -512,7 +512,7 @@ func (it *LibAddressManagerOwnershipTransferredIterator) Next() bool { ...@@ -512,7 +512,7 @@ func (it *LibAddressManagerOwnershipTransferredIterator) Next() bool {
// Iterator still in progress, wait for either a data or an error event // Iterator still in progress, wait for either a data or an error event
select { select {
case log := <-it.logs: case log := <-it.logs:
it.Event = new(LibAddressManagerOwnershipTransferred) it.Event = new(AddressManagerOwnershipTransferred)
if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
it.fail = err it.fail = err
return false return false
...@@ -528,19 +528,19 @@ func (it *LibAddressManagerOwnershipTransferredIterator) Next() bool { ...@@ -528,19 +528,19 @@ func (it *LibAddressManagerOwnershipTransferredIterator) Next() bool {
} }
// Error returns any retrieval or parsing error occurred during filtering. // Error returns any retrieval or parsing error occurred during filtering.
func (it *LibAddressManagerOwnershipTransferredIterator) Error() error { func (it *AddressManagerOwnershipTransferredIterator) Error() error {
return it.fail return it.fail
} }
// Close terminates the iteration process, releasing any pending underlying // Close terminates the iteration process, releasing any pending underlying
// resources. // resources.
func (it *LibAddressManagerOwnershipTransferredIterator) Close() error { func (it *AddressManagerOwnershipTransferredIterator) Close() error {
it.sub.Unsubscribe() it.sub.Unsubscribe()
return nil return nil
} }
// LibAddressManagerOwnershipTransferred represents a OwnershipTransferred event raised by the LibAddressManager contract. // AddressManagerOwnershipTransferred represents a OwnershipTransferred event raised by the AddressManager contract.
type LibAddressManagerOwnershipTransferred struct { type AddressManagerOwnershipTransferred struct {
PreviousOwner common.Address PreviousOwner common.Address
NewOwner common.Address NewOwner common.Address
Raw types.Log // Blockchain specific contextual infos Raw types.Log // Blockchain specific contextual infos
...@@ -549,7 +549,7 @@ type LibAddressManagerOwnershipTransferred struct { ...@@ -549,7 +549,7 @@ type LibAddressManagerOwnershipTransferred struct {
// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
// //
// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
func (_LibAddressManager *LibAddressManagerFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*LibAddressManagerOwnershipTransferredIterator, error) { func (_AddressManager *AddressManagerFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*AddressManagerOwnershipTransferredIterator, error) {
var previousOwnerRule []interface{} var previousOwnerRule []interface{}
for _, previousOwnerItem := range previousOwner { for _, previousOwnerItem := range previousOwner {
...@@ -560,17 +560,17 @@ func (_LibAddressManager *LibAddressManagerFilterer) FilterOwnershipTransferred( ...@@ -560,17 +560,17 @@ func (_LibAddressManager *LibAddressManagerFilterer) FilterOwnershipTransferred(
newOwnerRule = append(newOwnerRule, newOwnerItem) newOwnerRule = append(newOwnerRule, newOwnerItem)
} }
logs, sub, err := _LibAddressManager.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) logs, sub, err := _AddressManager.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
if err != nil { if err != nil {
return nil, err return nil, err
} }
return &LibAddressManagerOwnershipTransferredIterator{contract: _LibAddressManager.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil return &AddressManagerOwnershipTransferredIterator{contract: _AddressManager.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
} }
// WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
// //
// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
func (_LibAddressManager *LibAddressManagerFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *LibAddressManagerOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { func (_AddressManager *AddressManagerFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *AddressManagerOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
var previousOwnerRule []interface{} var previousOwnerRule []interface{}
for _, previousOwnerItem := range previousOwner { for _, previousOwnerItem := range previousOwner {
...@@ -581,7 +581,7 @@ func (_LibAddressManager *LibAddressManagerFilterer) WatchOwnershipTransferred(o ...@@ -581,7 +581,7 @@ func (_LibAddressManager *LibAddressManagerFilterer) WatchOwnershipTransferred(o
newOwnerRule = append(newOwnerRule, newOwnerItem) newOwnerRule = append(newOwnerRule, newOwnerItem)
} }
logs, sub, err := _LibAddressManager.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) logs, sub, err := _AddressManager.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
if err != nil { if err != nil {
return nil, err return nil, err
} }
...@@ -591,8 +591,8 @@ func (_LibAddressManager *LibAddressManagerFilterer) WatchOwnershipTransferred(o ...@@ -591,8 +591,8 @@ func (_LibAddressManager *LibAddressManagerFilterer) WatchOwnershipTransferred(o
select { select {
case log := <-logs: case log := <-logs:
// New log arrived, parse the event and forward to the user // New log arrived, parse the event and forward to the user
event := new(LibAddressManagerOwnershipTransferred) event := new(AddressManagerOwnershipTransferred)
if err := _LibAddressManager.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { if err := _AddressManager.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
return err return err
} }
event.Raw = log event.Raw = log
...@@ -616,9 +616,9 @@ func (_LibAddressManager *LibAddressManagerFilterer) WatchOwnershipTransferred(o ...@@ -616,9 +616,9 @@ func (_LibAddressManager *LibAddressManagerFilterer) WatchOwnershipTransferred(o
// ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
// //
// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
func (_LibAddressManager *LibAddressManagerFilterer) ParseOwnershipTransferred(log types.Log) (*LibAddressManagerOwnershipTransferred, error) { func (_AddressManager *AddressManagerFilterer) ParseOwnershipTransferred(log types.Log) (*AddressManagerOwnershipTransferred, error) {
event := new(LibAddressManagerOwnershipTransferred) event := new(AddressManagerOwnershipTransferred)
if err := _LibAddressManager.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { if err := _AddressManager.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
return nil, err return nil, err
} }
event.Raw = log event.Raw = log
......
...@@ -102,64 +102,15 @@ L2StandardBridge_Test:test_withdraw_onlyEOA() (gas: 251952) ...@@ -102,64 +102,15 @@ L2StandardBridge_Test:test_withdraw_onlyEOA() (gas: 251952)
L2ToL1MessagePasserTest:test_burn() (gas: 112024) L2ToL1MessagePasserTest:test_burn() (gas: 112024)
L2ToL1MessagePasserTest:test_initiateWithdrawal_fromContract() (gas: 67935) L2ToL1MessagePasserTest:test_initiateWithdrawal_fromContract() (gas: 67935)
L2ToL1MessagePasserTest:test_initiateWithdrawal_fromEOA() (gas: 74851) L2ToL1MessagePasserTest:test_initiateWithdrawal_fromEOA() (gas: 74851)
Lib_RLPReader_Test:testReadBool() (gas: 1109) LegacyERC20ETH_Test:test_approve() (gas: 10796)
Lib_RLPReader_Test:test_readAddress() (gas: 1347) LegacyERC20ETH_Test:test_burn() (gas: 10681)
Lib_RLPReader_Test:test_readAddressSmall() (gas: 614) LegacyERC20ETH_Test:test_crossDomain() (gas: 10577)
Lib_RLPReader_Test:test_readAddressTooLarge() (gas: 3646) LegacyERC20ETH_Test:test_decreaseAllowance() (gas: 10731)
Lib_RLPReader_Test:test_readAddressTooShort() (gas: 3603) LegacyERC20ETH_Test:test_increaseAllowance() (gas: 10741)
Lib_RLPReader_Test:test_readBoolInvalidValue() (gas: 3677) LegacyERC20ETH_Test:test_metadata() (gas: 15586)
Lib_RLPReader_Test:test_readBoolLargeInput() (gas: 3550) LegacyERC20ETH_Test:test_mint() (gas: 10627)
Lib_RLPReader_Test:test_readBytes32_revertOnList() (gas: 3998) LegacyERC20ETH_Test:test_transfer() (gas: 10829)
Lib_RLPReader_Test:test_readBytes32_revertOnTooLong() (gas: 3588) LegacyERC20ETH_Test:test_transferFrom() (gas: 13008)
Lib_RLPReader_Test:test_readBytes_bytestring00() (gas: 1823)
Lib_RLPReader_Test:test_readBytes_bytestring01() (gas: 1846)
Lib_RLPReader_Test:test_readBytes_bytestring7f() (gas: 1844)
Lib_RLPReader_Test:test_readBytes_invalidListLength() (gas: 3812)
Lib_RLPReader_Test:test_readBytes_invalidStringLength() (gas: 3768)
Lib_RLPReader_Test:test_readBytes_revertListItem() (gas: 3922)
Lib_RLPReader_Test:test_readList_dictTest1() (gas: 23791)
Lib_RLPReader_Test:test_readList_empty() (gas: 4472)
Lib_RLPReader_Test:test_readList_incorrectLengthInArray() (gas: 4213)
Lib_RLPReader_Test:test_readList_int32Overflow() (gas: 3958)
Lib_RLPReader_Test:test_readList_int32Overflow2() (gas: 4024)
Lib_RLPReader_Test:test_readList_invalidShortList() (gas: 3858)
Lib_RLPReader_Test:test_readList_invalidValue() (gas: 3790)
Lib_RLPReader_Test:test_readList_leadingZerosInLongLengthArray1() (gas: 4196)
Lib_RLPReader_Test:test_readList_leadingZerosInLongLengthArray2() (gas: 4180)
Lib_RLPReader_Test:test_readList_leadingZerosInLongLengthList1() (gas: 38563)
Lib_RLPReader_Test:test_readList_listOfLists() (gas: 9619)
Lib_RLPReader_Test:test_readList_listOfLists2() (gas: 12479)
Lib_RLPReader_Test:test_readList_longList1() (gas: 29013)
Lib_RLPReader_Test:test_readList_longList2() (gas: 202895)
Lib_RLPReader_Test:test_readList_longStringLength() (gas: 3856)
Lib_RLPReader_Test:test_readList_multiList() (gas: 12025)
Lib_RLPReader_Test:test_readList_nonOptimalLongLengthArray1() (gas: 4203)
Lib_RLPReader_Test:test_readList_nonOptimalLongLengthArray2() (gas: 4226)
Lib_RLPReader_Test:test_readList_notLongEnough() (gas: 3844)
Lib_RLPReader_Test:test_readList_shortListMax1() (gas: 40662)
Lib_RLPReader_Test:test_readList_stringList() (gas: 16796)
Lib_RLPReader_Test:test_readString_emptyString() (gas: 1719)
Lib_RLPReader_Test:test_readString_longString() (gas: 3076)
Lib_RLPReader_Test:test_readString_longString2() (gas: 18524)
Lib_RLPReader_Test:test_readString_shortString() (gas: 2280)
Lib_RLPReader_Test:test_readString_shortString2() (gas: 2775)
Lib_RLPReader_Test:test_readUint256_mediumInt1() (gas: 1235)
Lib_RLPReader_Test:test_readUint256_mediumInt2() (gas: 1237)
Lib_RLPReader_Test:test_readUint256_mediumInt3() (gas: 1238)
Lib_RLPReader_Test:test_readUint256_smallInt() (gas: 1084)
Lib_RLPReader_Test:test_readUint256_smallInt2() (gas: 1151)
Lib_RLPReader_Test:test_readUint256_smallInt3() (gas: 1127)
Lib_RLPReader_Test:test_readUint256_smallInt4() (gas: 1128)
Lib_RLPReader_Test:test_readUint256_zero() (gas: 1258)
OVM_ETH_Test:test_approve() (gas: 10760)
OVM_ETH_Test:test_burn() (gas: 10675)
OVM_ETH_Test:test_crossDomain() (gas: 10577)
OVM_ETH_Test:test_decreaseAllowance() (gas: 10731)
OVM_ETH_Test:test_increaseAllowance() (gas: 10741)
OVM_ETH_Test:test_metadata() (gas: 15586)
OVM_ETH_Test:test_mint() (gas: 10621)
OVM_ETH_Test:test_transfer() (gas: 10793)
OVM_ETH_Test:test_transferFrom() (gas: 13008)
OptimismMintableERC20_Test:test_bridge() (gas: 9828) OptimismMintableERC20_Test:test_bridge() (gas: 9828)
OptimismMintableERC20_Test:test_burn() (gas: 52826) OptimismMintableERC20_Test:test_burn() (gas: 52826)
OptimismMintableERC20_Test:test_burnRevertsFromNotBridge() (gas: 13219) OptimismMintableERC20_Test:test_burnRevertsFromNotBridge() (gas: 13219)
...@@ -227,6 +178,55 @@ ProxyAdmin_Test:test_onlyOwnerSetProxyType() (gas: 10751) ...@@ -227,6 +178,55 @@ ProxyAdmin_Test:test_onlyOwnerSetProxyType() (gas: 10751)
ProxyAdmin_Test:test_owner() (gas: 9818) ProxyAdmin_Test:test_owner() (gas: 9818)
ProxyAdmin_Test:test_proxyType() (gas: 20622) ProxyAdmin_Test:test_proxyType() (gas: 20622)
ProxyAdmin_Test:test_setImplementationName() (gas: 39002) ProxyAdmin_Test:test_setImplementationName() (gas: 39002)
RLPReader_Test:testReadBool() (gas: 1109)
RLPReader_Test:test_readAddress() (gas: 1347)
RLPReader_Test:test_readAddressSmall() (gas: 614)
RLPReader_Test:test_readAddressTooLarge() (gas: 3646)
RLPReader_Test:test_readAddressTooShort() (gas: 3603)
RLPReader_Test:test_readBoolInvalidValue() (gas: 3677)
RLPReader_Test:test_readBoolLargeInput() (gas: 3550)
RLPReader_Test:test_readBytes32_revertOnList() (gas: 3998)
RLPReader_Test:test_readBytes32_revertOnTooLong() (gas: 3588)
RLPReader_Test:test_readBytes_bytestring00() (gas: 1823)
RLPReader_Test:test_readBytes_bytestring01() (gas: 1846)
RLPReader_Test:test_readBytes_bytestring7f() (gas: 1844)
RLPReader_Test:test_readBytes_invalidListLength() (gas: 3812)
RLPReader_Test:test_readBytes_invalidStringLength() (gas: 3768)
RLPReader_Test:test_readBytes_revertListItem() (gas: 3922)
RLPReader_Test:test_readList_dictTest1() (gas: 23791)
RLPReader_Test:test_readList_empty() (gas: 4472)
RLPReader_Test:test_readList_incorrectLengthInArray() (gas: 4213)
RLPReader_Test:test_readList_int32Overflow() (gas: 3958)
RLPReader_Test:test_readList_int32Overflow2() (gas: 4024)
RLPReader_Test:test_readList_invalidShortList() (gas: 3858)
RLPReader_Test:test_readList_invalidValue() (gas: 3790)
RLPReader_Test:test_readList_leadingZerosInLongLengthArray1() (gas: 4196)
RLPReader_Test:test_readList_leadingZerosInLongLengthArray2() (gas: 4180)
RLPReader_Test:test_readList_leadingZerosInLongLengthList1() (gas: 38563)
RLPReader_Test:test_readList_listOfLists() (gas: 9619)
RLPReader_Test:test_readList_listOfLists2() (gas: 12479)
RLPReader_Test:test_readList_longList1() (gas: 29013)
RLPReader_Test:test_readList_longList2() (gas: 202895)
RLPReader_Test:test_readList_longStringLength() (gas: 3856)
RLPReader_Test:test_readList_multiList() (gas: 12025)
RLPReader_Test:test_readList_nonOptimalLongLengthArray1() (gas: 4203)
RLPReader_Test:test_readList_nonOptimalLongLengthArray2() (gas: 4226)
RLPReader_Test:test_readList_notLongEnough() (gas: 3844)
RLPReader_Test:test_readList_shortListMax1() (gas: 40662)
RLPReader_Test:test_readList_stringList() (gas: 16796)
RLPReader_Test:test_readString_emptyString() (gas: 1719)
RLPReader_Test:test_readString_longString() (gas: 3076)
RLPReader_Test:test_readString_longString2() (gas: 18524)
RLPReader_Test:test_readString_shortString() (gas: 2280)
RLPReader_Test:test_readString_shortString2() (gas: 2775)
RLPReader_Test:test_readUint256_mediumInt1() (gas: 1235)
RLPReader_Test:test_readUint256_mediumInt2() (gas: 1237)
RLPReader_Test:test_readUint256_mediumInt3() (gas: 1238)
RLPReader_Test:test_readUint256_smallInt() (gas: 1084)
RLPReader_Test:test_readUint256_smallInt2() (gas: 1151)
RLPReader_Test:test_readUint256_smallInt3() (gas: 1127)
RLPReader_Test:test_readUint256_smallInt4() (gas: 1128)
RLPReader_Test:test_readUint256_zero() (gas: 1258)
ResourceMetering_Test:test_initialResourceParams() (gas: 8964) ResourceMetering_Test:test_initialResourceParams() (gas: 8964)
ResourceMetering_Test:test_updateNoGasDelta() (gas: 2008269) ResourceMetering_Test:test_updateNoGasDelta() (gas: 2008269)
ResourceMetering_Test:test_updateOneEmptyBlock() (gas: 18123) ResourceMetering_Test:test_updateOneEmptyBlock() (gas: 18123)
......
...@@ -230,26 +230,26 @@ ...@@ -230,26 +230,26 @@
+--------------+--------------------------+------+--------+-------+----------------------------------------------------------+ +--------------+--------------------------+------+--------+-------+----------------------------------------------------------+
======================= =======================
OVM_ETH LegacyERC20ETH
======================= =======================
+--------------+-------------------------------------------------+------+--------+-------+----------------------------------+ +--------------+-------------------------------------------------+------+--------+-------+----------------------------------------------------+
| Name | Type | Slot | Offset | Bytes | Contract | | Name | Type | Slot | Offset | Bytes | Contract |
+===========================================================================================================================+ +=============================================================================================================================================+
| _balances | mapping(address => uint256) | 0 | 0 | 32 | contracts/L2/OVM_ETH.sol:OVM_ETH | | _balances | mapping(address => uint256) | 0 | 0 | 32 | contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH |
|--------------+-------------------------------------------------+------+--------+-------+----------------------------------| |--------------+-------------------------------------------------+------+--------+-------+----------------------------------------------------|
| _allowances | mapping(address => mapping(address => uint256)) | 1 | 0 | 32 | contracts/L2/OVM_ETH.sol:OVM_ETH | | _allowances | mapping(address => mapping(address => uint256)) | 1 | 0 | 32 | contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH |
|--------------+-------------------------------------------------+------+--------+-------+----------------------------------| |--------------+-------------------------------------------------+------+--------+-------+----------------------------------------------------|
| _totalSupply | uint256 | 2 | 0 | 32 | contracts/L2/OVM_ETH.sol:OVM_ETH | | _totalSupply | uint256 | 2 | 0 | 32 | contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH |
|--------------+-------------------------------------------------+------+--------+-------+----------------------------------| |--------------+-------------------------------------------------+------+--------+-------+----------------------------------------------------|
| _name | string | 3 | 0 | 32 | contracts/L2/OVM_ETH.sol:OVM_ETH | | _name | string | 3 | 0 | 32 | contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH |
|--------------+-------------------------------------------------+------+--------+-------+----------------------------------| |--------------+-------------------------------------------------+------+--------+-------+----------------------------------------------------|
| _symbol | string | 4 | 0 | 32 | contracts/L2/OVM_ETH.sol:OVM_ETH | | _symbol | string | 4 | 0 | 32 | contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH |
|--------------+-------------------------------------------------+------+--------+-------+----------------------------------| |--------------+-------------------------------------------------+------+--------+-------+----------------------------------------------------|
| remoteToken | address | 5 | 0 | 20 | contracts/L2/OVM_ETH.sol:OVM_ETH | | remoteToken | address | 5 | 0 | 20 | contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH |
|--------------+-------------------------------------------------+------+--------+-------+----------------------------------| |--------------+-------------------------------------------------+------+--------+-------+----------------------------------------------------|
| bridge | address | 6 | 0 | 20 | contracts/L2/OVM_ETH.sol:OVM_ETH | | bridge | address | 6 | 0 | 20 | contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH |
+--------------+-------------------------------------------------+------+--------+-------+----------------------------------+ +--------------+-------------------------------------------------+------+--------+-------+----------------------------------------------------+
======================= =======================
➡ SequencerFeeVault ➡ SequencerFeeVault
...@@ -292,7 +292,7 @@ ...@@ -292,7 +292,7 @@
|--------------------+-----------------------------------------------+------+--------+-------+-----------------------------------------------| |--------------------+-----------------------------------------------+------+--------+-------+-----------------------------------------------|
| implementationName | mapping(address => string) | 2 | 0 | 32 | contracts/universal/ProxyAdmin.sol:ProxyAdmin | | implementationName | mapping(address => string) | 2 | 0 | 32 | contracts/universal/ProxyAdmin.sol:ProxyAdmin |
|--------------------+-----------------------------------------------+------+--------+-------+-----------------------------------------------| |--------------------+-----------------------------------------------+------+--------+-------+-----------------------------------------------|
| addressManager | contract Lib_AddressManager | 3 | 0 | 20 | contracts/universal/ProxyAdmin.sol:ProxyAdmin | | addressManager | contract AddressManager | 3 | 0 | 20 | contracts/universal/ProxyAdmin.sol:ProxyAdmin |
|--------------------+-----------------------------------------------+------+--------+-------+-----------------------------------------------| |--------------------+-----------------------------------------------+------+--------+-------+-----------------------------------------------|
| upgrading | bool | 3 | 20 | 1 | contracts/universal/ProxyAdmin.sol:ProxyAdmin | | upgrading | bool | 3 | 20 | 1 | contracts/universal/ProxyAdmin.sol:ProxyAdmin |
+--------------------+-----------------------------------------------+------+--------+-------+-----------------------------------------------+ +--------------------+-----------------------------------------------+------+--------+-------+-----------------------------------------------+
......
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
pragma solidity ^0.8.9; pragma solidity ^0.8.9;
import { Lib_PredeployAddresses } from "../libraries/Lib_PredeployAddresses.sol"; import { PredeployAddresses } from "../libraries/PredeployAddresses.sol";
import { OptimismPortal } from "./OptimismPortal.sol"; import { OptimismPortal } from "./OptimismPortal.sol";
import { CrossDomainMessenger } from "../universal/CrossDomainMessenger.sol"; import { CrossDomainMessenger } from "../universal/CrossDomainMessenger.sol";
...@@ -40,7 +40,7 @@ contract L1CrossDomainMessenger is CrossDomainMessenger { ...@@ -40,7 +40,7 @@ contract L1CrossDomainMessenger is CrossDomainMessenger {
portal = _portal; portal = _portal;
address[] memory blockedSystemAddresses = new address[](1); address[] memory blockedSystemAddresses = new address[](1);
blockedSystemAddresses[0] = address(this); blockedSystemAddresses[0] = address(this);
_initialize(Lib_PredeployAddresses.L2_CROSS_DOMAIN_MESSENGER, blockedSystemAddresses); _initialize(PredeployAddresses.L2_CROSS_DOMAIN_MESSENGER, blockedSystemAddresses);
} }
/** /**
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
pragma solidity ^0.8.9; pragma solidity ^0.8.9;
import { Initializable } from "@openzeppelin/contracts/proxy/utils/Initializable.sol"; import { Initializable } from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
import { Lib_PredeployAddresses } from "../libraries/Lib_PredeployAddresses.sol"; import { PredeployAddresses } from "../libraries/PredeployAddresses.sol";
import { StandardBridge } from "../universal/StandardBridge.sol"; import { StandardBridge } from "../universal/StandardBridge.sol";
/** /**
...@@ -104,7 +104,7 @@ contract L1StandardBridge is StandardBridge, Initializable { ...@@ -104,7 +104,7 @@ contract L1StandardBridge is StandardBridge, Initializable {
* @param _messenger Address of the L1CrossDomainMessenger. * @param _messenger Address of the L1CrossDomainMessenger.
*/ */
function initialize(address payable _messenger) public reinitializer(VERSION) { function initialize(address payable _messenger) public reinitializer(VERSION) {
_initialize(_messenger, payable(Lib_PredeployAddresses.L2_STANDARD_BRIDGE)); _initialize(_messenger, payable(PredeployAddresses.L2_STANDARD_BRIDGE));
} }
/** /**
......
...@@ -4,7 +4,7 @@ pragma solidity 0.8.10; ...@@ -4,7 +4,7 @@ pragma solidity 0.8.10;
import { Initializable } from "@openzeppelin/contracts/proxy/utils/Initializable.sol"; import { Initializable } from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
import { ExcessivelySafeCall } from "excessively-safe-call/src/ExcessivelySafeCall.sol"; import { ExcessivelySafeCall } from "excessively-safe-call/src/ExcessivelySafeCall.sol";
import { L2OutputOracle } from "./L2OutputOracle.sol"; import { L2OutputOracle } from "./L2OutputOracle.sol";
import { WithdrawalVerifier } from "../libraries/Lib_WithdrawalVerifier.sol"; import { WithdrawalVerifier } from "../libraries/WithdrawalVerifier.sol";
import { AddressAliasHelper } from "../vendor/AddressAliasHelper.sol"; import { AddressAliasHelper } from "../vendor/AddressAliasHelper.sol";
import { ResourceMetering } from "./ResourceMetering.sol"; import { ResourceMetering } from "./ResourceMetering.sol";
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
pragma solidity ^0.8.10; pragma solidity ^0.8.10;
import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol"; import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol";
import { Lib_PredeployAddresses } from "../libraries/Lib_PredeployAddresses.sol"; import { PredeployAddresses } from "../libraries/PredeployAddresses.sol";
import { L1Block } from "../L2/L1Block.sol"; import { L1Block } from "../L2/L1Block.sol";
/** /**
...@@ -89,7 +89,7 @@ contract GasPriceOracle is Ownable { ...@@ -89,7 +89,7 @@ contract GasPriceOracle is Ownable {
* @return Latest known L1 base fee. * @return Latest known L1 base fee.
*/ */
function l1BaseFee() public view returns (uint256) { function l1BaseFee() public view returns (uint256) {
return L1Block(Lib_PredeployAddresses.L1_BLOCK_ATTRIBUTES).basefee(); return L1Block(PredeployAddresses.L1_BLOCK_ATTRIBUTES).basefee();
} }
/** /**
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
pragma solidity 0.8.10; pragma solidity 0.8.10;
import { L1Block } from "./L1Block.sol"; import { L1Block } from "./L1Block.sol";
import { Lib_PredeployAddresses } from "../libraries/Lib_PredeployAddresses.sol"; import { PredeployAddresses } from "../libraries/PredeployAddresses.sol";
/** /**
* @custom:legacy * @custom:legacy
...@@ -43,6 +43,6 @@ contract L1BlockNumber { ...@@ -43,6 +43,6 @@ contract L1BlockNumber {
* @return Latest L1 block number. * @return Latest L1 block number.
*/ */
function getL1BlockNumber() public view returns (uint256) { function getL1BlockNumber() public view returns (uint256) {
return L1Block(Lib_PredeployAddresses.L1_BLOCK_ATTRIBUTES).number(); return L1Block(PredeployAddresses.L1_BLOCK_ATTRIBUTES).number();
} }
} }
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
pragma solidity ^0.8.9; pragma solidity ^0.8.9;
import { AddressAliasHelper } from "../vendor/AddressAliasHelper.sol"; import { AddressAliasHelper } from "../vendor/AddressAliasHelper.sol";
import { Lib_PredeployAddresses } from "../libraries/Lib_PredeployAddresses.sol"; import { PredeployAddresses } from "../libraries/PredeployAddresses.sol";
import { CrossDomainMessenger } from "../universal/CrossDomainMessenger.sol"; import { CrossDomainMessenger } from "../universal/CrossDomainMessenger.sol";
import { L2ToL1MessagePasser } from "./L2ToL1MessagePasser.sol"; import { L2ToL1MessagePasser } from "./L2ToL1MessagePasser.sol";
...@@ -23,7 +23,7 @@ contract L2CrossDomainMessenger is CrossDomainMessenger { ...@@ -23,7 +23,7 @@ contract L2CrossDomainMessenger is CrossDomainMessenger {
function initialize(address _l1CrossDomainMessenger) external initializer { function initialize(address _l1CrossDomainMessenger) external initializer {
address[] memory blockedSystemAddresses = new address[](2); address[] memory blockedSystemAddresses = new address[](2);
blockedSystemAddresses[0] = address(this); blockedSystemAddresses[0] = address(this);
blockedSystemAddresses[1] = Lib_PredeployAddresses.L2_TO_L1_MESSAGE_PASSER; blockedSystemAddresses[1] = PredeployAddresses.L2_TO_L1_MESSAGE_PASSER;
_initialize(_l1CrossDomainMessenger, blockedSystemAddresses); _initialize(_l1CrossDomainMessenger, blockedSystemAddresses);
} }
...@@ -61,7 +61,8 @@ contract L2CrossDomainMessenger is CrossDomainMessenger { ...@@ -61,7 +61,8 @@ contract L2CrossDomainMessenger is CrossDomainMessenger {
uint256 _value, uint256 _value,
bytes memory _data bytes memory _data
) internal override { ) internal override {
L2ToL1MessagePasser(payable(Lib_PredeployAddresses.L2_TO_L1_MESSAGE_PASSER)) L2ToL1MessagePasser(payable(PredeployAddresses.L2_TO_L1_MESSAGE_PASSER)).initiateWithdrawal{
.initiateWithdrawal{ value: _value }(_to, _gasLimit, _data); value: _value
}(_to, _gasLimit, _data);
} }
} }
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
pragma solidity ^0.8.9; pragma solidity ^0.8.9;
import { Lib_PredeployAddresses } from "../libraries/Lib_PredeployAddresses.sol"; import { PredeployAddresses } from "../libraries/PredeployAddresses.sol";
import { StandardBridge } from "../universal/StandardBridge.sol"; import { StandardBridge } from "../universal/StandardBridge.sol";
import { OptimismMintableERC20 } from "../universal/OptimismMintableERC20.sol"; import { OptimismMintableERC20 } from "../universal/OptimismMintableERC20.sol";
...@@ -84,7 +84,7 @@ contract L2StandardBridge is StandardBridge { ...@@ -84,7 +84,7 @@ contract L2StandardBridge is StandardBridge {
* @param _otherBridge Address of the L1StandardBridge. * @param _otherBridge Address of the L1StandardBridge.
*/ */
function initialize(address payable _otherBridge) public { function initialize(address payable _otherBridge) public {
_initialize(payable(Lib_PredeployAddresses.L2_CROSS_DOMAIN_MESSENGER), _otherBridge); _initialize(payable(PredeployAddresses.L2_CROSS_DOMAIN_MESSENGER), _otherBridge);
} }
/** /**
...@@ -148,7 +148,7 @@ contract L2StandardBridge is StandardBridge { ...@@ -148,7 +148,7 @@ contract L2StandardBridge is StandardBridge {
uint256 _amount, uint256 _amount,
bytes calldata _extraData bytes calldata _extraData
) external payable virtual { ) external payable virtual {
if (_l1Token == address(0) && _l2Token == Lib_PredeployAddresses.OVM_ETH) { if (_l1Token == address(0) && _l2Token == PredeployAddresses.LEGACY_ERC20_ETH) {
finalizeBridgeETH(_from, _to, _amount, _extraData); finalizeBridgeETH(_from, _to, _amount, _extraData);
} else { } else {
finalizeBridgeERC20(_l2Token, _l1Token, _from, _to, _amount, _extraData); finalizeBridgeERC20(_l2Token, _l1Token, _from, _to, _amount, _extraData);
...@@ -176,7 +176,7 @@ contract L2StandardBridge is StandardBridge { ...@@ -176,7 +176,7 @@ contract L2StandardBridge is StandardBridge {
bytes calldata _extraData bytes calldata _extraData
) internal { ) internal {
address l1Token = OptimismMintableERC20(_l2Token).l1Token(); address l1Token = OptimismMintableERC20(_l2Token).l1Token();
if (_l2Token == Lib_PredeployAddresses.OVM_ETH) { if (_l2Token == PredeployAddresses.LEGACY_ERC20_ETH) {
require(msg.value == _amount, "ETH withdrawals must include sufficient ETH value."); require(msg.value == _amount, "ETH withdrawals must include sufficient ETH value.");
_initiateBridgeETH(_from, _to, _amount, _minGasLimit, _extraData); _initiateBridgeETH(_from, _to, _amount, _minGasLimit, _extraData);
} else { } else {
......
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
pragma solidity ^0.8.9; pragma solidity ^0.8.9;
import { WithdrawalVerifier } from "../libraries/Lib_WithdrawalVerifier.sol"; import { WithdrawalVerifier } from "../libraries/WithdrawalVerifier.sol";
import { Burn } from "../libraries/Burn.sol"; import { Burn } from "../libraries/Burn.sol";
/** /**
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
pragma solidity ^0.8.9; pragma solidity ^0.8.9;
/* Library Imports */ /* Library Imports */
import { Lib_PredeployAddresses } from "../libraries/Lib_PredeployAddresses.sol"; import { PredeployAddresses } from "../libraries/PredeployAddresses.sol";
/* Contract Imports */ /* Contract Imports */
import { L2StandardBridge } from "./L2StandardBridge.sol"; import { L2StandardBridge } from "./L2StandardBridge.sol";
...@@ -42,8 +42,8 @@ contract SequencerFeeVault { ...@@ -42,8 +42,8 @@ contract SequencerFeeVault {
uint256 balance = address(this).balance; uint256 balance = address(this).balance;
L2StandardBridge(payable(Lib_PredeployAddresses.L2_STANDARD_BRIDGE)).withdrawTo{ L2StandardBridge(payable(PredeployAddresses.L2_STANDARD_BRIDGE)).withdrawTo{
value: balance value: balance
}(Lib_PredeployAddresses.OVM_ETH, l1FeeWallet, balance, 0, bytes("")); }(PredeployAddresses.LEGACY_ERC20_ETH, l1FeeWallet, balance, 0, bytes(""));
} }
} }
...@@ -5,9 +5,9 @@ pragma solidity ^0.8.9; ...@@ -5,9 +5,9 @@ pragma solidity ^0.8.9;
import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol"; import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol";
/** /**
* @title Lib_AddressManager * @title AddressManager
*/ */
contract Lib_AddressManager is Ownable { contract AddressManager is Ownable {
/********** /**********
* Events * * Events *
**********/ **********/
......
...@@ -2,27 +2,27 @@ ...@@ -2,27 +2,27 @@
pragma solidity ^0.8.9; pragma solidity ^0.8.9;
/* Library Imports */ /* Library Imports */
import { Lib_AddressManager } from "./Lib_AddressManager.sol"; import { AddressManager } from "./AddressManager.sol";
/** /**
* @title Lib_AddressResolver * @title AddressResolver
*/ */
abstract contract Lib_AddressResolver { abstract contract AddressResolver {
/************* /*************
* Variables * * Variables *
*************/ *************/
Lib_AddressManager public libAddressManager; AddressManager public libAddressManager;
/*************** /***************
* Constructor * * Constructor *
***************/ ***************/
/** /**
* @param _libAddressManager Address of the Lib_AddressManager. * @param _libAddressManager Address of the AddressManager.
*/ */
constructor(address _libAddressManager) { constructor(address _libAddressManager) {
libAddressManager = Lib_AddressManager(_libAddressManager); libAddressManager = AddressManager(_libAddressManager);
} }
/******************** /********************
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
pragma solidity ^0.8.9; pragma solidity ^0.8.9;
/* Library Imports */ /* Library Imports */
import { Lib_PredeployAddresses } from "../libraries/Lib_PredeployAddresses.sol"; import { PredeployAddresses } from "../libraries/PredeployAddresses.sol";
/* Contract Imports */ /* Contract Imports */
import { OptimismMintableERC20 } from "../universal/OptimismMintableERC20.sol"; import { OptimismMintableERC20 } from "../universal/OptimismMintableERC20.sol";
...@@ -11,18 +11,18 @@ import { OptimismMintableERC20 } from "../universal/OptimismMintableERC20.sol"; ...@@ -11,18 +11,18 @@ import { OptimismMintableERC20 } from "../universal/OptimismMintableERC20.sol";
* @custom:legacy * @custom:legacy
* @custom:proxied * @custom:proxied
* @custom:predeploy 0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000 * @custom:predeploy 0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000
* @title OVM_ETH * @title LegacyERC20ETH
* @notice OVM_ETH is a legacy contract that held ETH balances before the Bedrock upgrade. All * @notice LegacyERC20ETH is a legacy contract that held ETH balances before the Bedrock upgrade.
* ETH balances held within this contract were migrated to the state trie as part of the * All ETH balances held within this contract were migrated to the state trie as part of
* Bedrock upgrade. Functions within this contract that mutate state were already disabled * the Bedrock upgrade. Functions within this contract that mutate state were already
* as part of the EVM equivalence upgrade. * disabled as part of the EVM equivalence upgrade.
*/ */
contract OVM_ETH is OptimismMintableERC20 { contract LegacyERC20ETH is OptimismMintableERC20 {
/** /**
* @notice Initializes the contract as an Optimism Mintable ERC20. * @notice Initializes the contract as an Optimism Mintable ERC20.
*/ */
constructor() constructor()
OptimismMintableERC20(Lib_PredeployAddresses.L2_STANDARD_BRIDGE, address(0), "Ether", "ETH") OptimismMintableERC20(PredeployAddresses.L2_STANDARD_BRIDGE, address(0), "Ether", "ETH")
{} {}
/** /**
...@@ -32,7 +32,7 @@ contract OVM_ETH is OptimismMintableERC20 { ...@@ -32,7 +32,7 @@ contract OVM_ETH is OptimismMintableERC20 {
* @param _amount Amount of ETH to mint. * @param _amount Amount of ETH to mint.
*/ */
function mint(address _to, uint256 _amount) public virtual override { function mint(address _to, uint256 _amount) public virtual override {
revert("OVM_ETH: mint is disabled"); revert("LegacyERC20ETH: mint is disabled");
} }
/** /**
...@@ -42,7 +42,7 @@ contract OVM_ETH is OptimismMintableERC20 { ...@@ -42,7 +42,7 @@ contract OVM_ETH is OptimismMintableERC20 {
* @param _amount Amount of ETH to burn. * @param _amount Amount of ETH to burn.
*/ */
function burn(address _from, uint256 _amount) public virtual override { function burn(address _from, uint256 _amount) public virtual override {
revert("OVM_ETH: burn is disabled"); revert("LegacyERC20ETH: burn is disabled");
} }
/** /**
...@@ -52,7 +52,7 @@ contract OVM_ETH is OptimismMintableERC20 { ...@@ -52,7 +52,7 @@ contract OVM_ETH is OptimismMintableERC20 {
* @param _amount Amount of ETH to send. * @param _amount Amount of ETH to send.
*/ */
function transfer(address _recipient, uint256 _amount) public virtual override returns (bool) { function transfer(address _recipient, uint256 _amount) public virtual override returns (bool) {
revert("OVM_ETH: transfer is disabled"); revert("LegacyERC20ETH: transfer is disabled");
} }
/** /**
...@@ -62,7 +62,7 @@ contract OVM_ETH is OptimismMintableERC20 { ...@@ -62,7 +62,7 @@ contract OVM_ETH is OptimismMintableERC20 {
* @param _amount Amount of ETH to approve. * @param _amount Amount of ETH to approve.
*/ */
function approve(address _spender, uint256 _amount) public virtual override returns (bool) { function approve(address _spender, uint256 _amount) public virtual override returns (bool) {
revert("OVM_ETH: approve is disabled"); revert("LegacyERC20ETH: approve is disabled");
} }
/** /**
...@@ -77,7 +77,7 @@ contract OVM_ETH is OptimismMintableERC20 { ...@@ -77,7 +77,7 @@ contract OVM_ETH is OptimismMintableERC20 {
address _recipient, address _recipient,
uint256 _amount uint256 _amount
) public virtual override returns (bool) { ) public virtual override returns (bool) {
revert("OVM_ETH: transferFrom is disabled"); revert("LegacyERC20ETH: transferFrom is disabled");
} }
/** /**
...@@ -92,7 +92,7 @@ contract OVM_ETH is OptimismMintableERC20 { ...@@ -92,7 +92,7 @@ contract OVM_ETH is OptimismMintableERC20 {
override override
returns (bool) returns (bool)
{ {
revert("OVM_ETH: increaseAllowance is disabled"); revert("LegacyERC20ETH: increaseAllowance is disabled");
} }
/** /**
...@@ -107,6 +107,6 @@ contract OVM_ETH is OptimismMintableERC20 { ...@@ -107,6 +107,6 @@ contract OVM_ETH is OptimismMintableERC20 {
override override
returns (bool) returns (bool)
{ {
revert("OVM_ETH: decreaseAllowance is disabled"); revert("LegacyERC20ETH: decreaseAllowance is disabled");
} }
} }
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
pragma solidity ^0.8.9; pragma solidity ^0.8.9;
import { Lib_AddressManager } from "./Lib_AddressManager.sol"; import { AddressManager } from "./AddressManager.sol";
/** /**
* @title Lib_ResolvedDelegateProxy * @title ResolvedDelegateProxy
*/ */
contract Lib_ResolvedDelegateProxy { contract ResolvedDelegateProxy {
/************* /*************
* Variables * * Variables *
*************/ *************/
...@@ -20,18 +20,18 @@ contract Lib_ResolvedDelegateProxy { ...@@ -20,18 +20,18 @@ contract Lib_ResolvedDelegateProxy {
// in the near future. Due to the very limited way that we are using it, this flaw is // in the near future. Due to the very limited way that we are using it, this flaw is
// not an issue in our system. // not an issue in our system.
mapping(address => string) private implementationName; mapping(address => string) private implementationName;
mapping(address => Lib_AddressManager) private addressManager; mapping(address => AddressManager) private addressManager;
/*************** /***************
* Constructor * * Constructor *
***************/ ***************/
/** /**
* @param _libAddressManager Address of the Lib_AddressManager. * @param _libAddressManager Address of the AddressManager.
* @param _implementationName implementationName of the contract to proxy to. * @param _implementationName implementationName of the contract to proxy to.
*/ */
constructor(address _libAddressManager, string memory _implementationName) { constructor(address _libAddressManager, string memory _implementationName) {
addressManager[address(this)] = Lib_AddressManager(_libAddressManager); addressManager[address(this)] = AddressManager(_libAddressManager);
implementationName[address(this)] = _implementationName; implementationName[address(this)] = _implementationName;
} }
......
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
pragma solidity ^0.8.9; pragma solidity ^0.8.9;
/** /**
* @title Lib_BytesUtils * @title BytesUtils
*/ */
library Lib_BytesUtils { library BytesUtils {
/********************** /**********************
* Internal Functions * * Internal Functions *
**********************/ **********************/
......
//SPDX-License-Identifier: MIT //SPDX-License-Identifier: MIT
pragma solidity 0.8.10; pragma solidity 0.8.10;
import { Lib_CrossDomainUtils } from "./Lib_CrossDomainUtils.sol"; import { CrossDomainUtils } from "./CrossDomainUtils.sol";
import { Lib_RLPWriter } from "./rlp/Lib_RLPWriter.sol"; import { RLPWriter } from "./rlp/RLPWriter.sol";
/** /**
* @title CrossDomainHashing * @title CrossDomainHashing
* This library is responsible for holding cross domain utility * This library is responsible for holding cross domain utility
* functions. * functions.
* TODO(tynes): merge with Lib_CrossDomainUtils * TODO(tynes): merge with CrossDomainUtils
* TODO(tynes): fill out more devdocs * TODO(tynes): fill out more devdocs
*/ */
library CrossDomainHashing { library CrossDomainHashing {
...@@ -89,22 +89,22 @@ library CrossDomainHashing { ...@@ -89,22 +89,22 @@ library CrossDomainHashing {
bytes[] memory raw = new bytes[](7); bytes[] memory raw = new bytes[](7);
raw[0] = Lib_RLPWriter.writeBytes(bytes32ToBytes(source)); raw[0] = RLPWriter.writeBytes(bytes32ToBytes(source));
raw[1] = Lib_RLPWriter.writeAddress(_from); raw[1] = RLPWriter.writeAddress(_from);
if (_isCreate == true) { if (_isCreate == true) {
require(_to == address(0)); require(_to == address(0));
raw[2] = Lib_RLPWriter.writeBytes(""); raw[2] = RLPWriter.writeBytes("");
} else { } else {
raw[2] = Lib_RLPWriter.writeAddress(_to); raw[2] = RLPWriter.writeAddress(_to);
} }
raw[3] = Lib_RLPWriter.writeUint(_mint); raw[3] = RLPWriter.writeUint(_mint);
raw[4] = Lib_RLPWriter.writeUint(_value); raw[4] = RLPWriter.writeUint(_value);
raw[5] = Lib_RLPWriter.writeUint(_gas); raw[5] = RLPWriter.writeUint(_gas);
raw[6] = Lib_RLPWriter.writeBytes(_data); raw[6] = RLPWriter.writeBytes(_data);
bytes memory encoded = Lib_RLPWriter.writeList(raw); bytes memory encoded = RLPWriter.writeList(raw);
return abi.encodePacked(uint8(0x7e), uint8(0x0), encoded); return abi.encodePacked(uint8(0x7e), uint8(0x0), encoded);
} }
...@@ -193,7 +193,7 @@ library CrossDomainHashing { ...@@ -193,7 +193,7 @@ library CrossDomainHashing {
bytes memory _data, bytes memory _data,
uint256 _nonce uint256 _nonce
) internal pure returns (bytes memory) { ) internal pure returns (bytes memory) {
return Lib_CrossDomainUtils.encodeXDomainCalldata(_target, _sender, _data, _nonce); return CrossDomainUtils.encodeXDomainCalldata(_target, _sender, _data, _nonce);
} }
/** /**
......
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
pragma solidity ^0.8.9; pragma solidity ^0.8.9;
/** /**
* @title Lib_CrossDomainUtils * @title CrossDomainUtils
*/ */
library Lib_CrossDomainUtils { library CrossDomainUtils {
/** /**
* Generates the correct cross domain calldata for a message. * Generates the correct cross domain calldata for a message.
* @param _target Target contract address. * @param _target Target contract address.
......
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
pragma solidity ^0.8.9; pragma solidity ^0.8.9;
/** /**
* @title Lib_DefaultValues * @title DefaultValues
*/ */
library Lib_DefaultValues { library DefaultValues {
// The default x-domain message sender being set to a non-zero value makes // The default x-domain message sender being set to a non-zero value makes
// deployment a bit more expensive, but in exchange the refund on every call to // deployment a bit more expensive, but in exchange the refund on every call to
// `relayMessage` by the L1 and L2 messengers will be higher. // `relayMessage` by the L1 and L2 messengers will be higher.
......
...@@ -2,16 +2,16 @@ ...@@ -2,16 +2,16 @@
pragma solidity ^0.8.9; pragma solidity ^0.8.9;
/** /**
* @title Lib_PredeployAddresses * @title PredeployAddresses
*/ */
library Lib_PredeployAddresses { library PredeployAddresses {
address internal constant L2_TO_L1_MESSAGE_PASSER = 0x4200000000000000000000000000000000000000; address internal constant L2_TO_L1_MESSAGE_PASSER = 0x4200000000000000000000000000000000000000;
address internal constant L1_MESSAGE_SENDER = 0x4200000000000000000000000000000000000001; address internal constant L1_MESSAGE_SENDER = 0x4200000000000000000000000000000000000001;
address internal constant DEPLOYER_WHITELIST = 0x4200000000000000000000000000000000000002; address internal constant DEPLOYER_WHITELIST = 0x4200000000000000000000000000000000000002;
address payable internal constant OVM_ETH = payable(0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000); address internal constant LEGACY_ERC20_ETH = 0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000;
address internal constant L2_CROSS_DOMAIN_MESSENGER = address internal constant L2_CROSS_DOMAIN_MESSENGER =
0x4200000000000000000000000000000000000007; 0x4200000000000000000000000000000000000007;
address internal constant LIB_ADDRESS_MANAGER = 0x4200000000000000000000000000000000000008; address internal constant ADDRESS_MANAGER = 0x4200000000000000000000000000000000000008;
address internal constant PROXY_EOA = 0x4200000000000000000000000000000000000009; address internal constant PROXY_EOA = 0x4200000000000000000000000000000000000009;
address internal constant L2_STANDARD_BRIDGE = 0x4200000000000000000000000000000000000010; address internal constant L2_STANDARD_BRIDGE = 0x4200000000000000000000000000000000000010;
address internal constant SEQUENCER_FEE_WALLET = 0x4200000000000000000000000000000000000011; address internal constant SEQUENCER_FEE_WALLET = 0x4200000000000000000000000000000000000011;
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
pragma solidity 0.8.10; pragma solidity 0.8.10;
/* Library Imports */ /* Library Imports */
import { Lib_SecureMerkleTrie } from "./trie/Lib_SecureMerkleTrie.sol"; import { SecureMerkleTrie } from "./trie/SecureMerkleTrie.sol";
import { Lib_CrossDomainUtils } from "./Lib_CrossDomainUtils.sol"; import { CrossDomainUtils } from "./CrossDomainUtils.sol";
/** /**
* @title WithdrawalVerifier * @title WithdrawalVerifier
...@@ -80,7 +80,7 @@ library WithdrawalVerifier { ...@@ -80,7 +80,7 @@ library WithdrawalVerifier {
); );
return return
Lib_SecureMerkleTrie.verifyInclusionProof( SecureMerkleTrie.verifyInclusionProof(
abi.encode(storageKey), abi.encode(storageKey),
hex"01", hex"01",
_withdrawalProof, _withdrawalProof,
......
...@@ -2,10 +2,10 @@ ...@@ -2,10 +2,10 @@
pragma solidity ^0.8.9; pragma solidity ^0.8.9;
/** /**
* @title Lib_RLPReader * @title RLPReader
* @dev Adapted from "RLPReader" by Hamdi Allam (hamdi.allam97@gmail.com). * @dev Adapted from "RLPReader" by Hamdi Allam (hamdi.allam97@gmail.com).
*/ */
library Lib_RLPReader { library RLPReader {
/************* /*************
* Constants * * Constants *
*************/ *************/
...@@ -203,7 +203,7 @@ library Lib_RLPReader { ...@@ -203,7 +203,7 @@ library Lib_RLPReader {
out := byte(0, mload(ptr)) out := byte(0, mload(ptr))
} }
require(out == 0 || out == 1, "Lib_RLPReader: Invalid RLP boolean value, must be 0 or 1"); require(out == 0 || out == 1, "RLPReader: Invalid RLP boolean value, must be 0 or 1");
return out != 0; return out != 0;
} }
......
...@@ -2,10 +2,10 @@ ...@@ -2,10 +2,10 @@
pragma solidity ^0.8.9; pragma solidity ^0.8.9;
/** /**
* @title Lib_RLPWriter * @title RLPWriter
* @author Bakaoh (with modifications) * @author Bakaoh (with modifications)
*/ */
library Lib_RLPWriter { library RLPWriter {
/********************** /**********************
* Internal Functions * * Internal Functions *
**********************/ **********************/
......
...@@ -2,14 +2,14 @@ ...@@ -2,14 +2,14 @@
pragma solidity ^0.8.9; pragma solidity ^0.8.9;
/* Library Imports */ /* Library Imports */
import { Lib_BytesUtils } from "../Lib_BytesUtils.sol"; import { BytesUtils } from "../BytesUtils.sol";
import { Lib_RLPReader } from "../rlp/Lib_RLPReader.sol"; import { RLPReader } from "../rlp/RLPReader.sol";
import { Lib_RLPWriter } from "../rlp/Lib_RLPWriter.sol"; import { RLPWriter } from "../rlp/RLPWriter.sol";
/** /**
* @title Lib_MerkleTrie * @title MerkleTrie
*/ */
library Lib_MerkleTrie { library MerkleTrie {
/******************* /*******************
* Data Structures * * Data Structures *
*******************/ *******************/
...@@ -22,7 +22,7 @@ library Lib_MerkleTrie { ...@@ -22,7 +22,7 @@ library Lib_MerkleTrie {
struct TrieNode { struct TrieNode {
bytes encoded; bytes encoded;
Lib_RLPReader.RLPItem[] decoded; RLPReader.RLPItem[] decoded;
} }
/********************** /**********************
...@@ -73,7 +73,7 @@ library Lib_MerkleTrie { ...@@ -73,7 +73,7 @@ library Lib_MerkleTrie {
) internal pure returns (bool _verified) { ) internal pure returns (bool _verified) {
(bool exists, bytes memory value) = get(_key, _proof, _root); (bool exists, bytes memory value) = get(_key, _proof, _root);
return (exists && Lib_BytesUtils.equal(_value, value)); return (exists && BytesUtils.equal(_value, value));
} }
/** /**
...@@ -132,7 +132,7 @@ library Lib_MerkleTrie { ...@@ -132,7 +132,7 @@ library Lib_MerkleTrie {
) )
{ {
uint256 pathLength = 0; uint256 pathLength = 0;
bytes memory key = Lib_BytesUtils.toNibbles(_key); bytes memory key = BytesUtils.toNibbles(_key);
bytes32 currentNodeID = _root; bytes32 currentNodeID = _root;
uint256 currentKeyIndex = 0; uint256 currentKeyIndex = 0;
...@@ -160,7 +160,7 @@ library Lib_MerkleTrie { ...@@ -160,7 +160,7 @@ library Lib_MerkleTrie {
} else { } else {
// Nodes smaller than 31 bytes aren't hashed. // Nodes smaller than 31 bytes aren't hashed.
require( require(
Lib_BytesUtils.toBytes32(currentNode.encoded) == currentNodeID, BytesUtils.toBytes32(currentNode.encoded) == currentNodeID,
"Invalid internal node hash" "Invalid internal node hash"
); );
} }
...@@ -174,7 +174,7 @@ library Lib_MerkleTrie { ...@@ -174,7 +174,7 @@ library Lib_MerkleTrie {
// We're not at the end of the key yet. // We're not at the end of the key yet.
// Figure out what the next node ID should be and continue. // Figure out what the next node ID should be and continue.
uint8 branchKey = uint8(key[currentKeyIndex]); uint8 branchKey = uint8(key[currentKeyIndex]);
Lib_RLPReader.RLPItem memory nextNode = currentNode.decoded[branchKey]; RLPReader.RLPItem memory nextNode = currentNode.decoded[branchKey];
currentNodeID = _getNodeID(nextNode); currentNodeID = _getNodeID(nextNode);
currentKeyIncrement = 1; currentKeyIncrement = 1;
continue; continue;
...@@ -183,8 +183,8 @@ library Lib_MerkleTrie { ...@@ -183,8 +183,8 @@ library Lib_MerkleTrie {
bytes memory path = _getNodePath(currentNode); bytes memory path = _getNodePath(currentNode);
uint8 prefix = uint8(path[0]); uint8 prefix = uint8(path[0]);
uint8 offset = 2 - (prefix % 2); uint8 offset = 2 - (prefix % 2);
bytes memory pathRemainder = Lib_BytesUtils.slice(path, offset); bytes memory pathRemainder = BytesUtils.slice(path, offset);
bytes memory keyRemainder = Lib_BytesUtils.slice(key, currentKeyIndex); bytes memory keyRemainder = BytesUtils.slice(key, currentKeyIndex);
uint256 sharedNibbleLength = _getSharedNibbleLength(pathRemainder, keyRemainder); uint256 sharedNibbleLength = _getSharedNibbleLength(pathRemainder, keyRemainder);
if (prefix == PREFIX_LEAF_EVEN || prefix == PREFIX_LEAF_ODD) { if (prefix == PREFIX_LEAF_EVEN || prefix == PREFIX_LEAF_ODD) {
...@@ -224,7 +224,7 @@ library Lib_MerkleTrie { ...@@ -224,7 +224,7 @@ library Lib_MerkleTrie {
// If our node ID is NULL, then we're at a dead end. // If our node ID is NULL, then we're at a dead end.
bool isFinalNode = currentNodeID == bytes32(RLP_NULL); bool isFinalNode = currentNodeID == bytes32(RLP_NULL);
return (pathLength, Lib_BytesUtils.slice(key, currentKeyIndex), isFinalNode); return (pathLength, BytesUtils.slice(key, currentKeyIndex), isFinalNode);
} }
/** /**
...@@ -233,12 +233,12 @@ library Lib_MerkleTrie { ...@@ -233,12 +233,12 @@ library Lib_MerkleTrie {
* @return _parsed Proof parsed into easily accessible structs. * @return _parsed Proof parsed into easily accessible structs.
*/ */
function _parseProof(bytes memory _proof) private pure returns (TrieNode[] memory _parsed) { function _parseProof(bytes memory _proof) private pure returns (TrieNode[] memory _parsed) {
Lib_RLPReader.RLPItem[] memory nodes = Lib_RLPReader.readList(_proof); RLPReader.RLPItem[] memory nodes = RLPReader.readList(_proof);
TrieNode[] memory proof = new TrieNode[](nodes.length); TrieNode[] memory proof = new TrieNode[](nodes.length);
for (uint256 i = 0; i < nodes.length; i++) { for (uint256 i = 0; i < nodes.length; i++) {
bytes memory encoded = Lib_RLPReader.readBytes(nodes[i]); bytes memory encoded = RLPReader.readBytes(nodes[i]);
proof[i] = TrieNode({ encoded: encoded, decoded: Lib_RLPReader.readList(encoded) }); proof[i] = TrieNode({ encoded: encoded, decoded: RLPReader.readList(encoded) });
} }
return proof; return proof;
...@@ -251,18 +251,18 @@ library Lib_MerkleTrie { ...@@ -251,18 +251,18 @@ library Lib_MerkleTrie {
* @param _node Node to pull an ID for. * @param _node Node to pull an ID for.
* @return _nodeID ID for the node, depending on the size of its contents. * @return _nodeID ID for the node, depending on the size of its contents.
*/ */
function _getNodeID(Lib_RLPReader.RLPItem memory _node) private pure returns (bytes32 _nodeID) { function _getNodeID(RLPReader.RLPItem memory _node) private pure returns (bytes32 _nodeID) {
bytes memory nodeID; bytes memory nodeID;
if (_node.length < 32) { if (_node.length < 32) {
// Nodes smaller than 32 bytes are RLP encoded. // Nodes smaller than 32 bytes are RLP encoded.
nodeID = Lib_RLPReader.readRawBytes(_node); nodeID = RLPReader.readRawBytes(_node);
} else { } else {
// Nodes 32 bytes or larger are hashed. // Nodes 32 bytes or larger are hashed.
nodeID = Lib_RLPReader.readBytes(_node); nodeID = RLPReader.readBytes(_node);
} }
return Lib_BytesUtils.toBytes32(nodeID); return BytesUtils.toBytes32(nodeID);
} }
/** /**
...@@ -271,7 +271,7 @@ library Lib_MerkleTrie { ...@@ -271,7 +271,7 @@ library Lib_MerkleTrie {
* @return _path Node path, converted to an array of nibbles. * @return _path Node path, converted to an array of nibbles.
*/ */
function _getNodePath(TrieNode memory _node) private pure returns (bytes memory _path) { function _getNodePath(TrieNode memory _node) private pure returns (bytes memory _path) {
return Lib_BytesUtils.toNibbles(Lib_RLPReader.readBytes(_node.decoded[0])); return BytesUtils.toNibbles(RLPReader.readBytes(_node.decoded[0]));
} }
/** /**
...@@ -280,7 +280,7 @@ library Lib_MerkleTrie { ...@@ -280,7 +280,7 @@ library Lib_MerkleTrie {
* @return _value Node value, as hex bytes. * @return _value Node value, as hex bytes.
*/ */
function _getNodeValue(TrieNode memory _node) private pure returns (bytes memory _value) { function _getNodeValue(TrieNode memory _node) private pure returns (bytes memory _value) {
return Lib_RLPReader.readBytes(_node.decoded[_node.decoded.length - 1]); return RLPReader.readBytes(_node.decoded[_node.decoded.length - 1]);
} }
/** /**
......
...@@ -2,12 +2,12 @@ ...@@ -2,12 +2,12 @@
pragma solidity ^0.8.9; pragma solidity ^0.8.9;
/* Library Imports */ /* Library Imports */
import { Lib_MerkleTrie } from "./Lib_MerkleTrie.sol"; import { MerkleTrie } from "./MerkleTrie.sol";
/** /**
* @title Lib_SecureMerkleTrie * @title SecureMerkleTrie
*/ */
library Lib_SecureMerkleTrie { library SecureMerkleTrie {
/********************** /**********************
* Internal Functions * * Internal Functions *
**********************/ **********************/
...@@ -31,7 +31,7 @@ library Lib_SecureMerkleTrie { ...@@ -31,7 +31,7 @@ library Lib_SecureMerkleTrie {
bytes32 _root bytes32 _root
) internal pure returns (bool _verified) { ) internal pure returns (bool _verified) {
bytes memory key = _getSecureKey(_key); bytes memory key = _getSecureKey(_key);
return Lib_MerkleTrie.verifyInclusionProof(key, _value, _proof, _root); return MerkleTrie.verifyInclusionProof(key, _value, _proof, _root);
} }
/** /**
...@@ -48,7 +48,7 @@ library Lib_SecureMerkleTrie { ...@@ -48,7 +48,7 @@ library Lib_SecureMerkleTrie {
bytes32 _root bytes32 _root
) internal pure returns (bool _exists, bytes memory _value) { ) internal pure returns (bool _exists, bytes memory _value) {
bytes memory key = _getSecureKey(_key); bytes memory key = _getSecureKey(_key);
return Lib_MerkleTrie.get(key, _proof, _root); return MerkleTrie.get(key, _proof, _root);
} }
/********************* /*********************
......
...@@ -14,13 +14,13 @@ import { L2ToL1MessagePasser } from "../L2/L2ToL1MessagePasser.sol"; ...@@ -14,13 +14,13 @@ import { L2ToL1MessagePasser } from "../L2/L2ToL1MessagePasser.sol";
import { L1CrossDomainMessenger } from "../L1/L1CrossDomainMessenger.sol"; import { L1CrossDomainMessenger } from "../L1/L1CrossDomainMessenger.sol";
import { L2CrossDomainMessenger } from "../L2/L2CrossDomainMessenger.sol"; import { L2CrossDomainMessenger } from "../L2/L2CrossDomainMessenger.sol";
import { AddressAliasHelper } from "../vendor/AddressAliasHelper.sol"; import { AddressAliasHelper } from "../vendor/AddressAliasHelper.sol";
import { OVM_ETH } from "../L2/OVM_ETH.sol"; import { LegacyERC20ETH } from "../legacy/LegacyERC20ETH.sol";
import { Lib_PredeployAddresses } from "../libraries/Lib_PredeployAddresses.sol"; import { PredeployAddresses } from "../libraries/PredeployAddresses.sol";
import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import { Proxy } from "../universal/Proxy.sol"; import { Proxy } from "../universal/Proxy.sol";
import { Initializable } from "@openzeppelin/contracts/proxy/utils/Initializable.sol"; import { Initializable } from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
import { Lib_ResolvedDelegateProxy } from "../legacy/Lib_ResolvedDelegateProxy.sol"; import { ResolvedDelegateProxy } from "../legacy/ResolvedDelegateProxy.sol";
import { Lib_AddressManager } from "../legacy/Lib_AddressManager.sol"; import { AddressManager } from "../legacy/AddressManager.sol";
import { L1ChugSplashProxy } from "../legacy/L1ChugSplashProxy.sol"; import { L1ChugSplashProxy } from "../legacy/L1ChugSplashProxy.sol";
import { iL1ChugSplashDeployer } from "../legacy/L1ChugSplashProxy.sol"; import { iL1ChugSplashDeployer } from "../legacy/L1ChugSplashProxy.sol";
...@@ -130,12 +130,12 @@ contract Portal_Initializer is L2OutputOracle_Initializer { ...@@ -130,12 +130,12 @@ contract Portal_Initializer is L2OutputOracle_Initializer {
contract Messenger_Initializer is L2OutputOracle_Initializer { contract Messenger_Initializer is L2OutputOracle_Initializer {
OptimismPortal op; OptimismPortal op;
Lib_AddressManager addressManager; AddressManager addressManager;
L1CrossDomainMessenger L1Messenger; L1CrossDomainMessenger L1Messenger;
L2CrossDomainMessenger L2Messenger = L2CrossDomainMessenger L2Messenger =
L2CrossDomainMessenger(Lib_PredeployAddresses.L2_CROSS_DOMAIN_MESSENGER); L2CrossDomainMessenger(PredeployAddresses.L2_CROSS_DOMAIN_MESSENGER);
L2ToL1MessagePasser messagePasser = L2ToL1MessagePasser messagePasser =
L2ToL1MessagePasser(payable(Lib_PredeployAddresses.L2_TO_L1_MESSAGE_PASSER)); L2ToL1MessagePasser(payable(PredeployAddresses.L2_TO_L1_MESSAGE_PASSER));
event SentMessage( event SentMessage(
address indexed target, address indexed target,
...@@ -177,7 +177,7 @@ contract Messenger_Initializer is L2OutputOracle_Initializer { ...@@ -177,7 +177,7 @@ contract Messenger_Initializer is L2OutputOracle_Initializer {
// Deploy the address manager // Deploy the address manager
vm.prank(multisig); vm.prank(multisig);
addressManager = new Lib_AddressManager(); addressManager = new AddressManager();
// Setup implementation // Setup implementation
L1CrossDomainMessenger L1MessengerImpl = new L1CrossDomainMessenger(op); L1CrossDomainMessenger L1MessengerImpl = new L1CrossDomainMessenger(op);
...@@ -185,7 +185,7 @@ contract Messenger_Initializer is L2OutputOracle_Initializer { ...@@ -185,7 +185,7 @@ contract Messenger_Initializer is L2OutputOracle_Initializer {
// Setup the address manager and proxy // Setup the address manager and proxy
vm.prank(multisig); vm.prank(multisig);
addressManager.setAddress("OVM_L1CrossDomainMessenger", address(L1MessengerImpl)); addressManager.setAddress("OVM_L1CrossDomainMessenger", address(L1MessengerImpl));
Lib_ResolvedDelegateProxy proxy = new Lib_ResolvedDelegateProxy( ResolvedDelegateProxy proxy = new ResolvedDelegateProxy(
address(addressManager), address(addressManager),
"OVM_L1CrossDomainMessenger" "OVM_L1CrossDomainMessenger"
); );
...@@ -193,7 +193,7 @@ contract Messenger_Initializer is L2OutputOracle_Initializer { ...@@ -193,7 +193,7 @@ contract Messenger_Initializer is L2OutputOracle_Initializer {
L1Messenger.initialize(op); L1Messenger.initialize(op);
vm.etch( vm.etch(
Lib_PredeployAddresses.L2_CROSS_DOMAIN_MESSENGER, PredeployAddresses.L2_CROSS_DOMAIN_MESSENGER,
address(new L2CrossDomainMessenger()).code address(new L2CrossDomainMessenger()).code
); );
...@@ -201,16 +201,18 @@ contract Messenger_Initializer is L2OutputOracle_Initializer { ...@@ -201,16 +201,18 @@ contract Messenger_Initializer is L2OutputOracle_Initializer {
// Set the L2ToL1MessagePasser at the correct address // Set the L2ToL1MessagePasser at the correct address
vm.etch( vm.etch(
Lib_PredeployAddresses.L2_TO_L1_MESSAGE_PASSER, PredeployAddresses.L2_TO_L1_MESSAGE_PASSER,
address(new L2ToL1MessagePasser()).code address(new L2ToL1MessagePasser()).code
); );
// Label addresses
vm.label(address(addressManager), "AddressManager"); vm.label(address(addressManager), "AddressManager");
vm.label(address(L1MessengerImpl), "L1CrossDomainMessenger_Impl"); vm.label(address(L1MessengerImpl), "L1CrossDomainMessenger_Impl");
vm.label(address(L1Messenger), "L1CrossDomainMessenger_Proxy"); vm.label(address(L1Messenger), "L1CrossDomainMessenger_Proxy");
vm.label(Lib_PredeployAddresses.OVM_ETH, "OVM_ETH"); vm.label(PredeployAddresses.LEGACY_ERC20_ETH, "LegacyERC20ETH");
vm.label(Lib_PredeployAddresses.OVM_ETH, "OVM_ETH"); vm.label(PredeployAddresses.L2_TO_L1_MESSAGE_PASSER, "L2ToL1MessagePasser");
vm.label(Lib_PredeployAddresses.L2_TO_L1_MESSAGE_PASSER, "L2ToL1MessagePasser"); vm.label(PredeployAddresses.L2_CROSS_DOMAIN_MESSENGER, "L2CrossDomainMessenger");
vm.label(Lib_PredeployAddresses.L2_CROSS_DOMAIN_MESSENGER, "L2CrossDomainMessenger");
vm.label( vm.label(
AddressAliasHelper.applyL1ToL2Alias(address(L1Messenger)), AddressAliasHelper.applyL1ToL2Alias(address(L1Messenger)),
"L1CrossDomainMessenger_aliased" "L1CrossDomainMessenger_aliased"
...@@ -331,8 +333,8 @@ contract Bridge_Initializer is Messenger_Initializer { ...@@ -331,8 +333,8 @@ contract Bridge_Initializer is Messenger_Initializer {
function setUp() public virtual override { function setUp() public virtual override {
super.setUp(); super.setUp();
vm.label(Lib_PredeployAddresses.L2_STANDARD_BRIDGE, "L2StandardBridge"); vm.label(PredeployAddresses.L2_STANDARD_BRIDGE, "L2StandardBridge");
vm.label(Lib_PredeployAddresses.L2_STANDARD_TOKEN_FACTORY, "L2StandardTokenFactory"); vm.label(PredeployAddresses.L2_STANDARD_TOKEN_FACTORY, "L2StandardTokenFactory");
// Deploy the L1 bridge and initialize it with the address of the // Deploy the L1 bridge and initialize it with the address of the
// L1CrossDomainMessenger // L1CrossDomainMessenger
...@@ -357,19 +359,19 @@ contract Bridge_Initializer is Messenger_Initializer { ...@@ -357,19 +359,19 @@ contract Bridge_Initializer is Messenger_Initializer {
// Deploy the L2StandardBridge, move it to the correct predeploy // Deploy the L2StandardBridge, move it to the correct predeploy
// address and then initialize it // address and then initialize it
L2StandardBridge l2B = new L2StandardBridge(); L2StandardBridge l2B = new L2StandardBridge();
vm.etch(Lib_PredeployAddresses.L2_STANDARD_BRIDGE, address(l2B).code); vm.etch(PredeployAddresses.L2_STANDARD_BRIDGE, address(l2B).code);
L2Bridge = L2StandardBridge(payable(Lib_PredeployAddresses.L2_STANDARD_BRIDGE)); L2Bridge = L2StandardBridge(payable(PredeployAddresses.L2_STANDARD_BRIDGE));
L2Bridge.initialize(payable(address(L1Bridge))); L2Bridge.initialize(payable(address(L1Bridge)));
// Set up the L2 mintable token factory // Set up the L2 mintable token factory
OptimismMintableTokenFactory factory = new OptimismMintableTokenFactory(); OptimismMintableTokenFactory factory = new OptimismMintableTokenFactory();
vm.etch(Lib_PredeployAddresses.L2_STANDARD_TOKEN_FACTORY, address(factory).code); vm.etch(PredeployAddresses.L2_STANDARD_TOKEN_FACTORY, address(factory).code);
L2TokenFactory = OptimismMintableTokenFactory( L2TokenFactory = OptimismMintableTokenFactory(
Lib_PredeployAddresses.L2_STANDARD_TOKEN_FACTORY PredeployAddresses.L2_STANDARD_TOKEN_FACTORY
); );
L2TokenFactory.initialize(Lib_PredeployAddresses.L2_STANDARD_BRIDGE); L2TokenFactory.initialize(PredeployAddresses.L2_STANDARD_BRIDGE);
vm.etch(Lib_PredeployAddresses.OVM_ETH, address(new OVM_ETH()).code); vm.etch(PredeployAddresses.LEGACY_ERC20_ETH, address(new LegacyERC20ETH()).code);
L1Token = new ERC20("Native L1 Token", "L1T"); L1Token = new ERC20("Native L1 Token", "L1T");
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
pragma solidity 0.8.10; pragma solidity 0.8.10;
import { CommonTest } from "./CommonTest.t.sol"; import { CommonTest } from "./CommonTest.t.sol";
import { CrossDomainHashing } from "../libraries/Lib_CrossDomainHashing.sol"; import { CrossDomainHashing } from "../libraries/CrossDomainHashing.sol";
contract CrossDomainHashing_Test is CommonTest { contract CrossDomainHashing_Test is CommonTest {
function test_nonceVersioning(uint240 _nonce, uint16 _version) external { function test_nonceVersioning(uint240 _nonce, uint16 _version) external {
......
...@@ -4,7 +4,7 @@ pragma solidity 0.8.10; ...@@ -4,7 +4,7 @@ pragma solidity 0.8.10;
import { CommonTest } from "./CommonTest.t.sol"; import { CommonTest } from "./CommonTest.t.sol";
import { GasPriceOracle } from "../L2/GasPriceOracle.sol"; import { GasPriceOracle } from "../L2/GasPriceOracle.sol";
import { L1Block } from "../L2/L1Block.sol"; import { L1Block } from "../L2/L1Block.sol";
import { Lib_PredeployAddresses } from "../libraries/Lib_PredeployAddresses.sol"; import { PredeployAddresses } from "../libraries/PredeployAddresses.sol";
contract GasPriceOracle_Test is CommonTest { contract GasPriceOracle_Test is CommonTest {
...@@ -19,11 +19,11 @@ contract GasPriceOracle_Test is CommonTest { ...@@ -19,11 +19,11 @@ contract GasPriceOracle_Test is CommonTest {
function setUp() external { function setUp() external {
// place the L1Block contract at the predeploy address // place the L1Block contract at the predeploy address
vm.etch( vm.etch(
Lib_PredeployAddresses.L1_BLOCK_ATTRIBUTES, PredeployAddresses.L1_BLOCK_ATTRIBUTES,
address(new L1Block()).code address(new L1Block()).code
); );
l1Block = L1Block(Lib_PredeployAddresses.L1_BLOCK_ATTRIBUTES); l1Block = L1Block(PredeployAddresses.L1_BLOCK_ATTRIBUTES);
depositor = l1Block.DEPOSITOR_ACCOUNT(); depositor = l1Block.DEPOSITOR_ACCOUNT();
// We are not setting the gas oracle at its predeploy // We are not setting the gas oracle at its predeploy
......
...@@ -4,15 +4,15 @@ pragma solidity 0.8.10; ...@@ -4,15 +4,15 @@ pragma solidity 0.8.10;
import { Test } from "forge-std/Test.sol"; import { Test } from "forge-std/Test.sol";
import { L1Block } from "../L2/L1Block.sol"; import { L1Block } from "../L2/L1Block.sol";
import { L1BlockNumber } from "../L2/L1BlockNumber.sol"; import { L1BlockNumber } from "../L2/L1BlockNumber.sol";
import { Lib_PredeployAddresses } from "../libraries/Lib_PredeployAddresses.sol"; import { PredeployAddresses } from "../libraries/PredeployAddresses.sol";
contract L1BlockNumberTest is Test { contract L1BlockNumberTest is Test {
L1Block lb; L1Block lb;
L1BlockNumber bn; L1BlockNumber bn;
function setUp() external { function setUp() external {
vm.etch(Lib_PredeployAddresses.L1_BLOCK_ATTRIBUTES, address(new L1Block()).code); vm.etch(PredeployAddresses.L1_BLOCK_ATTRIBUTES, address(new L1Block()).code);
lb = L1Block(Lib_PredeployAddresses.L1_BLOCK_ATTRIBUTES); lb = L1Block(PredeployAddresses.L1_BLOCK_ATTRIBUTES);
bn = new L1BlockNumber(); bn = new L1BlockNumber();
vm.prank(lb.DEPOSITOR_ACCOUNT()); vm.prank(lb.DEPOSITOR_ACCOUNT());
lb.setL1BlockValues(uint64(999), uint64(2), 3, keccak256(abi.encode(1)), uint64(4)); lb.setL1BlockValues(uint64(999), uint64(2), 3, keccak256(abi.encode(1)), uint64(4));
......
...@@ -7,16 +7,16 @@ import { L2OutputOracle_Initializer } from "./L2OutputOracle.t.sol"; ...@@ -7,16 +7,16 @@ import { L2OutputOracle_Initializer } from "./L2OutputOracle.t.sol";
/* Libraries */ /* Libraries */
import { AddressAliasHelper } from "../vendor/AddressAliasHelper.sol"; import { AddressAliasHelper } from "../vendor/AddressAliasHelper.sol";
import { Lib_DefaultValues } from "../libraries/Lib_DefaultValues.sol"; import { DefaultValues } from "../libraries/DefaultValues.sol";
import { Lib_PredeployAddresses } from "../libraries/Lib_PredeployAddresses.sol"; import { PredeployAddresses } from "../libraries/PredeployAddresses.sol";
import { Lib_CrossDomainUtils } from "../libraries/Lib_CrossDomainUtils.sol"; import { CrossDomainUtils } from "../libraries/CrossDomainUtils.sol";
import { WithdrawalVerifier } from "../libraries/Lib_WithdrawalVerifier.sol"; import { WithdrawalVerifier } from "../libraries/WithdrawalVerifier.sol";
/* Target contract dependencies */ /* Target contract dependencies */
import { L2OutputOracle } from "../L1/L2OutputOracle.sol"; import { L2OutputOracle } from "../L1/L2OutputOracle.sol";
import { OptimismPortal } from "../L1/OptimismPortal.sol"; import { OptimismPortal } from "../L1/OptimismPortal.sol";
import { CrossDomainHashing } from "../libraries/Lib_CrossDomainHashing.sol"; import { CrossDomainHashing } from "../libraries/CrossDomainHashing.sol";
/* Target contract */ /* Target contract */
import { L1CrossDomainMessenger } from "../L1/L1CrossDomainMessenger.sol"; import { L1CrossDomainMessenger } from "../L1/L1CrossDomainMessenger.sol";
...@@ -74,7 +74,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer { ...@@ -74,7 +74,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer {
address(op), address(op),
abi.encodeWithSelector( abi.encodeWithSelector(
OptimismPortal.depositTransaction.selector, OptimismPortal.depositTransaction.selector,
Lib_PredeployAddresses.L2_CROSS_DOMAIN_MESSENGER, PredeployAddresses.L2_CROSS_DOMAIN_MESSENGER,
0, 0,
100 + L1Messenger.baseGas(hex"ff"), 100 + L1Messenger.baseGas(hex"ff"),
false, false,
...@@ -93,7 +93,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer { ...@@ -93,7 +93,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer {
vm.expectEmit(true, true, true, true); vm.expectEmit(true, true, true, true);
emit TransactionDeposited( emit TransactionDeposited(
AddressAliasHelper.applyL1ToL2Alias(address(L1Messenger)), AddressAliasHelper.applyL1ToL2Alias(address(L1Messenger)),
Lib_PredeployAddresses.L2_CROSS_DOMAIN_MESSENGER, PredeployAddresses.L2_CROSS_DOMAIN_MESSENGER,
0, 0,
0, 0,
100 + L1Messenger.baseGas(hex"ff"), 100 + L1Messenger.baseGas(hex"ff"),
...@@ -137,7 +137,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer { ...@@ -137,7 +137,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer {
// relayMessage: should send a successful call to the target contract // relayMessage: should send a successful call to the target contract
function test_L1MessengerRelayMessageSucceeds() external { function test_L1MessengerRelayMessageSucceeds() external {
address target = address(0xabcd); address target = address(0xabcd);
address sender = Lib_PredeployAddresses.L2_CROSS_DOMAIN_MESSENGER; address sender = PredeployAddresses.L2_CROSS_DOMAIN_MESSENGER;
vm.expectCall(target, hex"1111"); vm.expectCall(target, hex"1111");
...@@ -171,7 +171,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer { ...@@ -171,7 +171,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer {
function test_L1MessengerRelayMessageToSystemContract() external { function test_L1MessengerRelayMessageToSystemContract() external {
// set the target to be the OptimismPortal // set the target to be the OptimismPortal
address target = address(op); address target = address(op);
address sender = Lib_PredeployAddresses.L2_CROSS_DOMAIN_MESSENGER; address sender = PredeployAddresses.L2_CROSS_DOMAIN_MESSENGER;
bytes memory message = hex"1111"; bytes memory message = hex"1111";
// set the value of op.l2Sender() to be the L2 Cross Domain Messenger. // set the value of op.l2Sender() to be the L2 Cross Domain Messenger.
...@@ -189,7 +189,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer { ...@@ -189,7 +189,7 @@ contract L1CrossDomainMessenger_Test is Messenger_Initializer {
vm.expectRevert("xDomainMessageSender is not set"); vm.expectRevert("xDomainMessageSender is not set");
L1Messenger.xDomainMessageSender(); L1Messenger.xDomainMessageSender();
address sender = Lib_PredeployAddresses.L2_CROSS_DOMAIN_MESSENGER; address sender = PredeployAddresses.L2_CROSS_DOMAIN_MESSENGER;
uint256 senderSlotIndex = 51; uint256 senderSlotIndex = 51;
bytes32 slotValue = vm.load(address(op), bytes32(senderSlotIndex)); bytes32 slotValue = vm.load(address(op), bytes32(senderSlotIndex));
......
...@@ -5,7 +5,7 @@ import { Bridge_Initializer } from "./CommonTest.t.sol"; ...@@ -5,7 +5,7 @@ import { Bridge_Initializer } from "./CommonTest.t.sol";
import { StandardBridge } from "../universal/StandardBridge.sol"; import { StandardBridge } from "../universal/StandardBridge.sol";
import { L2StandardBridge } from "../L2/L2StandardBridge.sol"; import { L2StandardBridge } from "../L2/L2StandardBridge.sol";
import { CrossDomainMessenger } from "../universal/CrossDomainMessenger.sol"; import { CrossDomainMessenger } from "../universal/CrossDomainMessenger.sol";
import { Lib_PredeployAddresses } from "../libraries/Lib_PredeployAddresses.sol"; import { PredeployAddresses } from "../libraries/PredeployAddresses.sol";
import { AddressAliasHelper } from "../vendor/AddressAliasHelper.sol"; import { AddressAliasHelper } from "../vendor/AddressAliasHelper.sol";
import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import { stdStorage, StdStorage } from "forge-std/Test.sol"; import { stdStorage, StdStorage } from "forge-std/Test.sol";
...@@ -25,12 +25,12 @@ contract L1StandardBridge_Test is Bridge_Initializer { ...@@ -25,12 +25,12 @@ contract L1StandardBridge_Test is Bridge_Initializer {
assertEq( assertEq(
address(L1Bridge.otherBridge()), address(L1Bridge.otherBridge()),
Lib_PredeployAddresses.L2_STANDARD_BRIDGE PredeployAddresses.L2_STANDARD_BRIDGE
); );
assertEq( assertEq(
address(L2Bridge), address(L2Bridge),
Lib_PredeployAddresses.L2_STANDARD_BRIDGE PredeployAddresses.L2_STANDARD_BRIDGE
); );
} }
......
...@@ -3,14 +3,14 @@ pragma solidity 0.8.10; ...@@ -3,14 +3,14 @@ pragma solidity 0.8.10;
import { Messenger_Initializer } from "./CommonTest.t.sol"; import { Messenger_Initializer } from "./CommonTest.t.sol";
import { Lib_CrossDomainUtils } from "../libraries/Lib_CrossDomainUtils.sol"; import { CrossDomainUtils } from "../libraries/CrossDomainUtils.sol";
import { AddressAliasHelper } from "../vendor/AddressAliasHelper.sol"; import { AddressAliasHelper } from "../vendor/AddressAliasHelper.sol";
import { L2ToL1MessagePasser } from "../L2/L2ToL1MessagePasser.sol"; import { L2ToL1MessagePasser } from "../L2/L2ToL1MessagePasser.sol";
import { L2OutputOracle } from "../L1/L2OutputOracle.sol"; import { L2OutputOracle } from "../L1/L2OutputOracle.sol";
import { L2CrossDomainMessenger } from "../L2/L2CrossDomainMessenger.sol"; import { L2CrossDomainMessenger } from "../L2/L2CrossDomainMessenger.sol";
import { L1CrossDomainMessenger } from "../L1/L1CrossDomainMessenger.sol"; import { L1CrossDomainMessenger } from "../L1/L1CrossDomainMessenger.sol";
import { CrossDomainHashing } from "../libraries/Lib_CrossDomainHashing.sol"; import { CrossDomainHashing } from "../libraries/CrossDomainHashing.sol";
import { Lib_DefaultValues } from "../libraries/Lib_DefaultValues.sol"; import { DefaultValues } from "../libraries/DefaultValues.sol";
contract L2CrossDomainMessenger_Test is Messenger_Initializer { contract L2CrossDomainMessenger_Test is Messenger_Initializer {
// Receiver address for testing // Receiver address for testing
......
...@@ -4,7 +4,7 @@ pragma solidity 0.8.10; ...@@ -4,7 +4,7 @@ pragma solidity 0.8.10;
import { Bridge_Initializer } from "./CommonTest.t.sol"; import { Bridge_Initializer } from "./CommonTest.t.sol";
import { stdStorage, StdStorage } from "forge-std/Test.sol"; import { stdStorage, StdStorage } from "forge-std/Test.sol";
import { CrossDomainMessenger } from "../universal/CrossDomainMessenger.sol"; import { CrossDomainMessenger } from "../universal/CrossDomainMessenger.sol";
import { Lib_PredeployAddresses } from "../libraries/Lib_PredeployAddresses.sol"; import { PredeployAddresses } from "../libraries/PredeployAddresses.sol";
import { console } from "forge-std/console.sol"; import { console } from "forge-std/console.sol";
contract L2StandardBridge_Test is Bridge_Initializer { contract L2StandardBridge_Test is Bridge_Initializer {
...@@ -52,7 +52,7 @@ contract L2StandardBridge_Test is Bridge_Initializer { ...@@ -52,7 +52,7 @@ contract L2StandardBridge_Test is Bridge_Initializer {
vm.expectRevert("ETH withdrawals must include sufficient ETH value."); vm.expectRevert("ETH withdrawals must include sufficient ETH value.");
vm.prank(alice, alice); vm.prank(alice, alice);
L2Bridge.withdraw( L2Bridge.withdraw(
address(Lib_PredeployAddresses.OVM_ETH), address(PredeployAddresses.LEGACY_ERC20_ETH),
100, 100,
1000, 1000,
hex"" hex""
......
...@@ -3,7 +3,7 @@ pragma solidity 0.8.10; ...@@ -3,7 +3,7 @@ pragma solidity 0.8.10;
import { CommonTest } from "./CommonTest.t.sol"; import { CommonTest } from "./CommonTest.t.sol";
import { L2ToL1MessagePasser } from "../L2/L2ToL1MessagePasser.sol"; import { L2ToL1MessagePasser } from "../L2/L2ToL1MessagePasser.sol";
import { WithdrawalVerifier } from "../libraries/Lib_WithdrawalVerifier.sol"; import { WithdrawalVerifier } from "../libraries/WithdrawalVerifier.sol";
contract L2ToL1MessagePasserTest is CommonTest { contract L2ToL1MessagePasserTest is CommonTest {
L2ToL1MessagePasser messagePasser; L2ToL1MessagePasser messagePasser;
......
...@@ -2,14 +2,14 @@ ...@@ -2,14 +2,14 @@
pragma solidity ^0.8.9; pragma solidity ^0.8.9;
import { CommonTest } from "./CommonTest.t.sol"; import { CommonTest } from "./CommonTest.t.sol";
import { OVM_ETH } from "../L2/OVM_ETH.sol"; import { LegacyERC20ETH } from "../legacy/LegacyERC20ETH.sol";
import { Lib_PredeployAddresses } from "../libraries/Lib_PredeployAddresses.sol"; import { PredeployAddresses } from "../libraries/PredeployAddresses.sol";
contract OVM_ETH_Test is CommonTest { contract LegacyERC20ETH_Test is CommonTest {
OVM_ETH eth; LegacyERC20ETH eth;
function setUp() external { function setUp() external {
eth = new OVM_ETH(); eth = new LegacyERC20ETH();
} }
function test_metadata() external { function test_metadata() external {
...@@ -19,42 +19,42 @@ contract OVM_ETH_Test is CommonTest { ...@@ -19,42 +19,42 @@ contract OVM_ETH_Test is CommonTest {
} }
function test_crossDomain() external { function test_crossDomain() external {
assertEq(eth.l2Bridge(), Lib_PredeployAddresses.L2_STANDARD_BRIDGE); assertEq(eth.l2Bridge(), PredeployAddresses.L2_STANDARD_BRIDGE);
assertEq(eth.l1Token(), address(0)); assertEq(eth.l1Token(), address(0));
} }
function test_transfer() external { function test_transfer() external {
vm.expectRevert("OVM_ETH: transfer is disabled"); vm.expectRevert("LegacyERC20ETH: transfer is disabled");
eth.transfer(alice, 100); eth.transfer(alice, 100);
} }
function test_approve() external { function test_approve() external {
vm.expectRevert("OVM_ETH: approve is disabled"); vm.expectRevert("LegacyERC20ETH: approve is disabled");
eth.approve(alice, 100); eth.approve(alice, 100);
} }
function test_transferFrom() external { function test_transferFrom() external {
vm.expectRevert("OVM_ETH: transferFrom is disabled"); vm.expectRevert("LegacyERC20ETH: transferFrom is disabled");
eth.transferFrom(bob, alice, 100); eth.transferFrom(bob, alice, 100);
} }
function test_increaseAllowance() external { function test_increaseAllowance() external {
vm.expectRevert("OVM_ETH: increaseAllowance is disabled"); vm.expectRevert("LegacyERC20ETH: increaseAllowance is disabled");
eth.increaseAllowance(alice, 100); eth.increaseAllowance(alice, 100);
} }
function test_decreaseAllowance() external { function test_decreaseAllowance() external {
vm.expectRevert("OVM_ETH: decreaseAllowance is disabled"); vm.expectRevert("LegacyERC20ETH: decreaseAllowance is disabled");
eth.decreaseAllowance(alice, 100); eth.decreaseAllowance(alice, 100);
} }
function test_mint() external { function test_mint() external {
vm.expectRevert("OVM_ETH: mint is disabled"); vm.expectRevert("LegacyERC20ETH: mint is disabled");
eth.mint(alice, 100); eth.mint(alice, 100);
} }
function test_burn() external { function test_burn() external {
vm.expectRevert("OVM_ETH: burn is disabled"); vm.expectRevert("LegacyERC20ETH: burn is disabled");
eth.burn(alice, 100); eth.burn(alice, 100);
} }
} }
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
pragma solidity 0.8.10; pragma solidity 0.8.10;
import { Bridge_Initializer } from "./CommonTest.t.sol"; import { Bridge_Initializer } from "./CommonTest.t.sol";
import { LibRLP } from "./Lib_RLP.t.sol"; import { LibRLP } from "./RLP.t.sol";
contract OptimismMintableTokenFactory_Test is Bridge_Initializer { contract OptimismMintableTokenFactory_Test is Bridge_Initializer {
event StandardL2TokenCreated(address indexed _remoteToken, address indexed _localToken); event StandardL2TokenCreated(address indexed _remoteToken, address indexed _localToken);
......
...@@ -6,7 +6,7 @@ import { Portal_Initializer, CommonTest, NextImpl } from "./CommonTest.t.sol"; ...@@ -6,7 +6,7 @@ import { Portal_Initializer, CommonTest, NextImpl } from "./CommonTest.t.sol";
import { AddressAliasHelper } from "../vendor/AddressAliasHelper.sol"; import { AddressAliasHelper } from "../vendor/AddressAliasHelper.sol";
import { L2OutputOracle } from "../L1/L2OutputOracle.sol"; import { L2OutputOracle } from "../L1/L2OutputOracle.sol";
import { OptimismPortal } from "../L1/OptimismPortal.sol"; import { OptimismPortal } from "../L1/OptimismPortal.sol";
import { WithdrawalVerifier } from "../libraries/Lib_WithdrawalVerifier.sol"; import { WithdrawalVerifier } from "../libraries/WithdrawalVerifier.sol";
import { Proxy } from "../universal/Proxy.sol"; import { Proxy } from "../universal/Proxy.sol";
contract OptimismPortal_Test is Portal_Initializer { contract OptimismPortal_Test is Portal_Initializer {
......
...@@ -6,17 +6,17 @@ import { Proxy } from "../universal/Proxy.sol"; ...@@ -6,17 +6,17 @@ import { Proxy } from "../universal/Proxy.sol";
import { ProxyAdmin } from "../universal/ProxyAdmin.sol"; import { ProxyAdmin } from "../universal/ProxyAdmin.sol";
import { SimpleStorage } from "./Proxy.t.sol"; import { SimpleStorage } from "./Proxy.t.sol";
import { L1ChugSplashProxy } from "../legacy/L1ChugSplashProxy.sol"; import { L1ChugSplashProxy } from "../legacy/L1ChugSplashProxy.sol";
import { Lib_ResolvedDelegateProxy } from "../legacy/Lib_ResolvedDelegateProxy.sol"; import { ResolvedDelegateProxy } from "../legacy/ResolvedDelegateProxy.sol";
import { Lib_AddressManager } from "../legacy/Lib_AddressManager.sol"; import { AddressManager } from "../legacy/AddressManager.sol";
contract ProxyAdmin_Test is Test { contract ProxyAdmin_Test is Test {
address alice = address(64); address alice = address(64);
Proxy proxy; Proxy proxy;
L1ChugSplashProxy chugsplash; L1ChugSplashProxy chugsplash;
Lib_ResolvedDelegateProxy resolved; ResolvedDelegateProxy resolved;
Lib_AddressManager addressManager; AddressManager addressManager;
ProxyAdmin admin; ProxyAdmin admin;
...@@ -31,22 +31,22 @@ contract ProxyAdmin_Test is Test { ...@@ -31,22 +31,22 @@ contract ProxyAdmin_Test is Test {
// Deploy the legacy L1ChugSplashProxy with the admin as the owner // Deploy the legacy L1ChugSplashProxy with the admin as the owner
chugsplash = new L1ChugSplashProxy(address(admin)); chugsplash = new L1ChugSplashProxy(address(admin));
// Deploy the legacy Lib_AddressManager // Deploy the legacy AddressManager
addressManager = new Lib_AddressManager(); addressManager = new AddressManager();
// The proxy admin must be the new owner of the address manager // The proxy admin must be the new owner of the address manager
addressManager.transferOwnership(address(admin)); addressManager.transferOwnership(address(admin));
// Deploy a legacy Lib_ResolvedDelegateProxy with the name `a`. // Deploy a legacy ResolvedDelegateProxy with the name `a`.
// Whatever `a` is set to in Lib_AddressManager will be the address // Whatever `a` is set to in AddressManager will be the address
// that is used for the implementation. // that is used for the implementation.
resolved = new Lib_ResolvedDelegateProxy(address(addressManager), "a"); resolved = new ResolvedDelegateProxy(address(addressManager), "a");
// Impersonate alice for setting up the admin. // Impersonate alice for setting up the admin.
vm.startPrank(alice); vm.startPrank(alice);
// Set the address of the address manager in the admin so that it // Set the address of the address manager in the admin so that it
// can resolve the implementation address of legacy // can resolve the implementation address of legacy
// Lib_ResolvedDelegateProxy based proxies. // ResolvedDelegateProxy based proxies.
admin.setAddressManager(addressManager); admin.setAddressManager(addressManager);
// Set the reverse lookup of the Lib_ResolvedDelegateProxy // Set the reverse lookup of the ResolvedDelegateProxy
// proxy // proxy
admin.setImplementationName(address(resolved), "a"); admin.setImplementationName(address(resolved), "a");
...@@ -70,7 +70,7 @@ contract ProxyAdmin_Test is Test { ...@@ -70,7 +70,7 @@ contract ProxyAdmin_Test is Test {
function test_onlyOwnerSetAddressManager() external { function test_onlyOwnerSetAddressManager() external {
vm.expectRevert("UNAUTHORIZED"); vm.expectRevert("UNAUTHORIZED");
admin.setAddressManager(Lib_AddressManager((address(0)))); admin.setAddressManager(AddressManager((address(0))));
} }
function test_onlyOwnerSetImplementationName() external { function test_onlyOwnerSetImplementationName() external {
......
// SPDX-License-Identifier: Unlicense // SPDX-License-Identifier: Unlicense
pragma solidity >=0.8.0; pragma solidity >=0.8.0;
import { Lib_RLPReader } from "../libraries/rlp/Lib_RLPReader.sol"; import { RLPReader } from "../libraries/rlp/RLPReader.sol";
import { CommonTest } from "./CommonTest.t.sol"; import { CommonTest } from "./CommonTest.t.sol";
contract Lib_RLPReader_Test is CommonTest { contract RLPReader_Test is CommonTest {
function testReadBool() external { function testReadBool() external {
assertEq( assertEq(
Lib_RLPReader.readBool(hex"01"), RLPReader.readBool(hex"01"),
true true
); );
assertEq( assertEq(
Lib_RLPReader.readBool(hex"00"), RLPReader.readBool(hex"00"),
false false
); );
} }
function test_readBoolInvalidValue() external { function test_readBoolInvalidValue() external {
vm.expectRevert("Lib_RLPReader: Invalid RLP boolean value, must be 0 or 1"); vm.expectRevert("RLPReader: Invalid RLP boolean value, must be 0 or 1");
Lib_RLPReader.readBool(hex"02"); RLPReader.readBool(hex"02");
} }
function test_readBoolLargeInput() external { function test_readBoolLargeInput() external {
vm.expectRevert("Invalid RLP boolean value."); vm.expectRevert("Invalid RLP boolean value.");
Lib_RLPReader.readBool(hex"0101"); RLPReader.readBool(hex"0101");
} }
function test_readAddress() external { function test_readAddress() external {
assertEq( assertEq(
Lib_RLPReader.readAddress(hex"941212121212121212121212121212121212121212"), RLPReader.readAddress(hex"941212121212121212121212121212121212121212"),
address(0x1212121212121212121212121212121212121212) address(0x1212121212121212121212121212121212121212)
); );
} }
function test_readAddressSmall() external { function test_readAddressSmall() external {
assertEq( assertEq(
Lib_RLPReader.readAddress(hex"12"), RLPReader.readAddress(hex"12"),
address(0) address(0)
); );
} }
function test_readAddressTooLarge() external { function test_readAddressTooLarge() external {
vm.expectRevert("Invalid RLP address value."); vm.expectRevert("Invalid RLP address value.");
Lib_RLPReader.readAddress(hex"94121212121212121212121212121212121212121212121212"); RLPReader.readAddress(hex"94121212121212121212121212121212121212121212121212");
} }
function test_readAddressTooShort() external { function test_readAddressTooShort() external {
vm.expectRevert("Invalid RLP address value."); vm.expectRevert("Invalid RLP address value.");
Lib_RLPReader.readAddress(hex"94121212121212121212121212"); RLPReader.readAddress(hex"94121212121212121212121212");
} }
function test_readBytes_bytestring00() external { function test_readBytes_bytestring00() external {
assertEq( assertEq(
Lib_RLPReader.readBytes(hex"00"), RLPReader.readBytes(hex"00"),
hex"00" hex"00"
); );
} }
function test_readBytes_bytestring01() external { function test_readBytes_bytestring01() external {
assertEq( assertEq(
Lib_RLPReader.readBytes(hex"01"), RLPReader.readBytes(hex"01"),
hex"01" hex"01"
); );
} }
function test_readBytes_bytestring7f() external { function test_readBytes_bytestring7f() external {
assertEq( assertEq(
Lib_RLPReader.readBytes(hex"7f"), RLPReader.readBytes(hex"7f"),
hex"7f" hex"7f"
); );
} }
function test_readBytes_revertListItem() external { function test_readBytes_revertListItem() external {
vm.expectRevert("Invalid RLP bytes value."); vm.expectRevert("Invalid RLP bytes value.");
Lib_RLPReader.readBytes(hex"c7c0c1c0c3c0c1c0"); RLPReader.readBytes(hex"c7c0c1c0c3c0c1c0");
} }
function test_readBytes_invalidStringLength() external { function test_readBytes_invalidStringLength() external {
vm.expectRevert("Invalid RLP long string length."); vm.expectRevert("Invalid RLP long string length.");
Lib_RLPReader.readBytes(hex"b9"); RLPReader.readBytes(hex"b9");
} }
function test_readBytes_invalidListLength() external { function test_readBytes_invalidListLength() external {
vm.expectRevert("Invalid RLP long list length."); vm.expectRevert("Invalid RLP long list length.");
Lib_RLPReader.readBytes(hex"ff"); RLPReader.readBytes(hex"ff");
} }
function test_readBytes32_revertOnList() external { function test_readBytes32_revertOnList() external {
vm.expectRevert("Invalid RLP bytes32 value."); vm.expectRevert("Invalid RLP bytes32 value.");
Lib_RLPReader.readBytes32(hex"c7c0c1c0c3c0c1c0"); RLPReader.readBytes32(hex"c7c0c1c0c3c0c1c0");
} }
function test_readBytes32_revertOnTooLong() external { function test_readBytes32_revertOnTooLong() external {
vm.expectRevert("Invalid RLP bytes32 value."); vm.expectRevert("Invalid RLP bytes32 value.");
Lib_RLPReader.readBytes32(hex"11110000000000000000000000000000000000000000000000000000000000000000"); RLPReader.readBytes32(hex"11110000000000000000000000000000000000000000000000000000000000000000");
} }
function test_readString_emptyString() external { function test_readString_emptyString() external {
assertEq( assertEq(
Lib_RLPReader.readString(hex"80"), RLPReader.readString(hex"80"),
hex"" hex""
); );
} }
function test_readString_shortString() external { function test_readString_shortString() external {
assertEq( assertEq(
Lib_RLPReader.readString(hex"83646f67"), RLPReader.readString(hex"83646f67"),
"dog" "dog"
); );
} }
function test_readString_shortString2() external { function test_readString_shortString2() external {
assertEq( assertEq(
Lib_RLPReader.readString(hex"b74c6f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e7365637465747572206164697069736963696e6720656c69"), RLPReader.readString(hex"b74c6f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e7365637465747572206164697069736963696e6720656c69"),
"Lorem ipsum dolor sit amet, consectetur adipisicing eli" "Lorem ipsum dolor sit amet, consectetur adipisicing eli"
); );
} }
function test_readString_longString() external { function test_readString_longString() external {
assertEq( assertEq(
Lib_RLPReader.readString(hex"b8384c6f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e7365637465747572206164697069736963696e6720656c6974"), RLPReader.readString(hex"b8384c6f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e7365637465747572206164697069736963696e6720656c6974"),
"Lorem ipsum dolor sit amet, consectetur adipisicing elit" "Lorem ipsum dolor sit amet, consectetur adipisicing elit"
); );
} }
function test_readString_longString2() external { function test_readString_longString2() external {
assertEq( assertEq(
Lib_RLPReader.readString(hex"b904004c6f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e73656374657475722061646970697363696e6720656c69742e20437572616269747572206d6175726973206d61676e612c20737573636970697420736564207665686963756c61206e6f6e2c20696163756c697320666175636962757320746f72746f722e2050726f696e20737573636970697420756c74726963696573206d616c6573756164612e204475697320746f72746f7220656c69742c2064696374756d2071756973207472697374697175652065752c20756c7472696365732061742072697375732e204d6f72626920612065737420696d70657264696574206d6920756c6c616d636f7270657220616c6971756574207375736369706974206e6563206c6f72656d2e2041656e65616e2071756973206c656f206d6f6c6c69732c2076756c70757461746520656c6974207661726975732c20636f6e73657175617420656e696d2e204e756c6c6120756c74726963657320747572706973206a7573746f2c20657420706f73756572652075726e6120636f6e7365637465747572206e65632e2050726f696e206e6f6e20636f6e76616c6c6973206d657475732e20446f6e65632074656d706f7220697073756d20696e206d617572697320636f6e67756520736f6c6c696369747564696e2e20566573746962756c756d20616e746520697073756d207072696d697320696e206661756369627573206f726369206c756374757320657420756c74726963657320706f737565726520637562696c69612043757261653b2053757370656e646973736520636f6e76616c6c69732073656d2076656c206d617373612066617563696275732c2065676574206c6163696e6961206c616375732074656d706f722e204e756c6c61207175697320756c747269636965732070757275732e2050726f696e20617563746f722072686f6e637573206e69626820636f6e64696d656e74756d206d6f6c6c69732e20416c697175616d20636f6e73657175617420656e696d206174206d65747573206c75637475732c206120656c656966656e6420707572757320656765737461732e20437572616269747572206174206e696268206d657475732e204e616d20626962656e64756d2c206e6571756520617420617563746f72207472697374697175652c206c6f72656d206c696265726f20616c697175657420617263752c206e6f6e20696e74657264756d2074656c6c7573206c65637475732073697420616d65742065726f732e20437261732072686f6e6375732c206d65747573206163206f726e617265206375727375732c20646f6c6f72206a7573746f20756c747269636573206d657475732c20617420756c6c616d636f7270657220766f6c7574706174"), RLPReader.readString(hex"b904004c6f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e73656374657475722061646970697363696e6720656c69742e20437572616269747572206d6175726973206d61676e612c20737573636970697420736564207665686963756c61206e6f6e2c20696163756c697320666175636962757320746f72746f722e2050726f696e20737573636970697420756c74726963696573206d616c6573756164612e204475697320746f72746f7220656c69742c2064696374756d2071756973207472697374697175652065752c20756c7472696365732061742072697375732e204d6f72626920612065737420696d70657264696574206d6920756c6c616d636f7270657220616c6971756574207375736369706974206e6563206c6f72656d2e2041656e65616e2071756973206c656f206d6f6c6c69732c2076756c70757461746520656c6974207661726975732c20636f6e73657175617420656e696d2e204e756c6c6120756c74726963657320747572706973206a7573746f2c20657420706f73756572652075726e6120636f6e7365637465747572206e65632e2050726f696e206e6f6e20636f6e76616c6c6973206d657475732e20446f6e65632074656d706f7220697073756d20696e206d617572697320636f6e67756520736f6c6c696369747564696e2e20566573746962756c756d20616e746520697073756d207072696d697320696e206661756369627573206f726369206c756374757320657420756c74726963657320706f737565726520637562696c69612043757261653b2053757370656e646973736520636f6e76616c6c69732073656d2076656c206d617373612066617563696275732c2065676574206c6163696e6961206c616375732074656d706f722e204e756c6c61207175697320756c747269636965732070757275732e2050726f696e20617563746f722072686f6e637573206e69626820636f6e64696d656e74756d206d6f6c6c69732e20416c697175616d20636f6e73657175617420656e696d206174206d65747573206c75637475732c206120656c656966656e6420707572757320656765737461732e20437572616269747572206174206e696268206d657475732e204e616d20626962656e64756d2c206e6571756520617420617563746f72207472697374697175652c206c6f72656d206c696265726f20616c697175657420617263752c206e6f6e20696e74657264756d2074656c6c7573206c65637475732073697420616d65742065726f732e20437261732072686f6e6375732c206d65747573206163206f726e617265206375727375732c20646f6c6f72206a7573746f20756c747269636573206d657475732c20617420756c6c616d636f7270657220766f6c7574706174"),
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur mauris magna, suscipit sed vehicula non, iaculis faucibus tortor. Proin suscipit ultricies malesuada. Duis tortor elit, dictum quis tristique eu, ultrices at risus. Morbi a est imperdiet mi ullamcorper aliquet suscipit nec lorem. Aenean quis leo mollis, vulputate elit varius, consequat enim. Nulla ultrices turpis justo, et posuere urna consectetur nec. Proin non convallis metus. Donec tempor ipsum in mauris congue sollicitudin. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse convallis sem vel massa faucibus, eget lacinia lacus tempor. Nulla quis ultricies purus. Proin auctor rhoncus nibh condimentum mollis. Aliquam consequat enim at metus luctus, a eleifend purus egestas. Curabitur at nibh metus. Nam bibendum, neque at auctor tristique, lorem libero aliquet arcu, non interdum tellus lectus sit amet eros. Cras rhoncus, metus ac ornare cursus, dolor justo ultrices metus, at ullamcorper volutpat" "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur mauris magna, suscipit sed vehicula non, iaculis faucibus tortor. Proin suscipit ultricies malesuada. Duis tortor elit, dictum quis tristique eu, ultrices at risus. Morbi a est imperdiet mi ullamcorper aliquet suscipit nec lorem. Aenean quis leo mollis, vulputate elit varius, consequat enim. Nulla ultrices turpis justo, et posuere urna consectetur nec. Proin non convallis metus. Donec tempor ipsum in mauris congue sollicitudin. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse convallis sem vel massa faucibus, eget lacinia lacus tempor. Nulla quis ultricies purus. Proin auctor rhoncus nibh condimentum mollis. Aliquam consequat enim at metus luctus, a eleifend purus egestas. Curabitur at nibh metus. Nam bibendum, neque at auctor tristique, lorem libero aliquet arcu, non interdum tellus lectus sit amet eros. Cras rhoncus, metus ac ornare cursus, dolor justo ultrices metus, at ullamcorper volutpat"
); );
} }
function test_readUint256_zero() external { function test_readUint256_zero() external {
assertEq( assertEq(
Lib_RLPReader.readUint256(hex"80"), RLPReader.readUint256(hex"80"),
0 0
); );
} }
function test_readUint256_smallInt() external { function test_readUint256_smallInt() external {
assertEq( assertEq(
Lib_RLPReader.readUint256(hex"01"), RLPReader.readUint256(hex"01"),
1 1
); );
} }
function test_readUint256_smallInt2() external { function test_readUint256_smallInt2() external {
assertEq( assertEq(
Lib_RLPReader.readUint256(hex"10"), RLPReader.readUint256(hex"10"),
16 16
); );
} }
function test_readUint256_smallInt3() external { function test_readUint256_smallInt3() external {
assertEq( assertEq(
Lib_RLPReader.readUint256(hex"4f"), RLPReader.readUint256(hex"4f"),
79 79
); );
} }
function test_readUint256_smallInt4() external { function test_readUint256_smallInt4() external {
assertEq( assertEq(
Lib_RLPReader.readUint256(hex"7f"), RLPReader.readUint256(hex"7f"),
127 127
); );
} }
function test_readUint256_mediumInt1() external { function test_readUint256_mediumInt1() external {
assertEq( assertEq(
Lib_RLPReader.readUint256(hex"8180"), RLPReader.readUint256(hex"8180"),
128 128
); );
} }
function test_readUint256_mediumInt2() external { function test_readUint256_mediumInt2() external {
assertEq( assertEq(
Lib_RLPReader.readUint256(hex"8203e8"), RLPReader.readUint256(hex"8203e8"),
1000 1000
); );
} }
function test_readUint256_mediumInt3() external { function test_readUint256_mediumInt3() external {
assertEq( assertEq(
Lib_RLPReader.readUint256(hex"830186a0"), RLPReader.readUint256(hex"830186a0"),
100000 100000
); );
} }
function test_readList_empty() external { function test_readList_empty() external {
Lib_RLPReader.RLPItem[] memory list = Lib_RLPReader.readList(hex"c0"); RLPReader.RLPItem[] memory list = RLPReader.readList(hex"c0");
assertEq(list.length, 0); assertEq(list.length, 0);
} }
function test_readList_stringList() external { function test_readList_stringList() external {
Lib_RLPReader.RLPItem[] memory list = Lib_RLPReader.readList(hex"cc83646f6783676f6483636174"); RLPReader.RLPItem[] memory list = RLPReader.readList(hex"cc83646f6783676f6483636174");
assertEq(list.length, 3); assertEq(list.length, 3);
assertEq(Lib_RLPReader.readString(list[0]), Lib_RLPReader.readString(hex"83646f67")); assertEq(RLPReader.readString(list[0]), RLPReader.readString(hex"83646f67"));
assertEq(Lib_RLPReader.readString(list[1]), Lib_RLPReader.readString(hex"83676f64")); assertEq(RLPReader.readString(list[1]), RLPReader.readString(hex"83676f64"));
assertEq(Lib_RLPReader.readString(list[2]), Lib_RLPReader.readString(hex"83636174")); assertEq(RLPReader.readString(list[2]), RLPReader.readString(hex"83636174"));
} }
function test_readList_multiList() external { function test_readList_multiList() external {
Lib_RLPReader.RLPItem[] memory list = Lib_RLPReader.readList(hex"c6827a77c10401"); RLPReader.RLPItem[] memory list = RLPReader.readList(hex"c6827a77c10401");
assertEq(list.length, 3); assertEq(list.length, 3);
assertEq(Lib_RLPReader.readRawBytes(list[0]), hex"827a77"); assertEq(RLPReader.readRawBytes(list[0]), hex"827a77");
assertEq(Lib_RLPReader.readRawBytes(list[1]), hex"c104"); assertEq(RLPReader.readRawBytes(list[1]), hex"c104");
assertEq(Lib_RLPReader.readRawBytes(list[2]), hex"01"); assertEq(RLPReader.readRawBytes(list[2]), hex"01");
} }
function test_readList_shortListMax1() external { function test_readList_shortListMax1() external {
Lib_RLPReader.RLPItem[] memory list = Lib_RLPReader.readList(hex"f784617364668471776572847a78637684617364668471776572847a78637684617364668471776572847a78637684617364668471776572"); RLPReader.RLPItem[] memory list = RLPReader.readList(hex"f784617364668471776572847a78637684617364668471776572847a78637684617364668471776572847a78637684617364668471776572");
assertEq(list.length, 11); assertEq(list.length, 11);
assertEq(Lib_RLPReader.readRawBytes(list[0]), hex"8461736466"); assertEq(RLPReader.readRawBytes(list[0]), hex"8461736466");
assertEq(Lib_RLPReader.readRawBytes(list[1]), hex"8471776572"); assertEq(RLPReader.readRawBytes(list[1]), hex"8471776572");
assertEq(Lib_RLPReader.readRawBytes(list[2]), hex"847a786376"); assertEq(RLPReader.readRawBytes(list[2]), hex"847a786376");
assertEq(Lib_RLPReader.readRawBytes(list[3]), hex"8461736466"); assertEq(RLPReader.readRawBytes(list[3]), hex"8461736466");
assertEq(Lib_RLPReader.readRawBytes(list[4]), hex"8471776572"); assertEq(RLPReader.readRawBytes(list[4]), hex"8471776572");
assertEq(Lib_RLPReader.readRawBytes(list[5]), hex"847a786376"); assertEq(RLPReader.readRawBytes(list[5]), hex"847a786376");
assertEq(Lib_RLPReader.readRawBytes(list[6]), hex"8461736466"); assertEq(RLPReader.readRawBytes(list[6]), hex"8461736466");
assertEq(Lib_RLPReader.readRawBytes(list[7]), hex"8471776572"); assertEq(RLPReader.readRawBytes(list[7]), hex"8471776572");
assertEq(Lib_RLPReader.readRawBytes(list[8]), hex"847a786376"); assertEq(RLPReader.readRawBytes(list[8]), hex"847a786376");
assertEq(Lib_RLPReader.readRawBytes(list[9]), hex"8461736466"); assertEq(RLPReader.readRawBytes(list[9]), hex"8461736466");
assertEq(Lib_RLPReader.readRawBytes(list[10]), hex"8471776572"); assertEq(RLPReader.readRawBytes(list[10]), hex"8471776572");
} }
function test_readList_longList1() external { function test_readList_longList1() external {
Lib_RLPReader.RLPItem[] memory list = Lib_RLPReader.readList(hex"f840cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376"); RLPReader.RLPItem[] memory list = RLPReader.readList(hex"f840cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376");
assertEq(list.length, 4); assertEq(list.length, 4);
assertEq(Lib_RLPReader.readRawBytes(list[0]), hex"cf84617364668471776572847a786376"); assertEq(RLPReader.readRawBytes(list[0]), hex"cf84617364668471776572847a786376");
assertEq(Lib_RLPReader.readRawBytes(list[1]), hex"cf84617364668471776572847a786376"); assertEq(RLPReader.readRawBytes(list[1]), hex"cf84617364668471776572847a786376");
assertEq(Lib_RLPReader.readRawBytes(list[2]), hex"cf84617364668471776572847a786376"); assertEq(RLPReader.readRawBytes(list[2]), hex"cf84617364668471776572847a786376");
assertEq(Lib_RLPReader.readRawBytes(list[3]), hex"cf84617364668471776572847a786376"); assertEq(RLPReader.readRawBytes(list[3]), hex"cf84617364668471776572847a786376");
} }
function test_readList_longList2() external { function test_readList_longList2() external {
Lib_RLPReader.RLPItem[] memory list = Lib_RLPReader.readList(hex"f90200cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376"); RLPReader.RLPItem[] memory list = RLPReader.readList(hex"f90200cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376cf84617364668471776572847a786376");
assertEq(list.length, 32); assertEq(list.length, 32);
for (uint256 i = 0; i < 32; i++) { for (uint256 i = 0; i < 32; i++) {
assertEq(Lib_RLPReader.readRawBytes(list[i]), hex"cf84617364668471776572847a786376"); assertEq(RLPReader.readRawBytes(list[i]), hex"cf84617364668471776572847a786376");
} }
} }
function test_readList_listOfLists() external { function test_readList_listOfLists() external {
Lib_RLPReader.RLPItem[] memory list = Lib_RLPReader.readList(hex"c4c2c0c0c0"); RLPReader.RLPItem[] memory list = RLPReader.readList(hex"c4c2c0c0c0");
assertEq(list.length, 2); assertEq(list.length, 2);
assertEq(Lib_RLPReader.readRawBytes(list[0]), hex"c2c0c0"); assertEq(RLPReader.readRawBytes(list[0]), hex"c2c0c0");
assertEq(Lib_RLPReader.readRawBytes(list[1]), hex"c0"); assertEq(RLPReader.readRawBytes(list[1]), hex"c0");
} }
function test_readList_listOfLists2() external { function test_readList_listOfLists2() external {
Lib_RLPReader.RLPItem[] memory list = Lib_RLPReader.readList(hex"c7c0c1c0c3c0c1c0"); RLPReader.RLPItem[] memory list = RLPReader.readList(hex"c7c0c1c0c3c0c1c0");
assertEq(list.length, 3); assertEq(list.length, 3);
assertEq(Lib_RLPReader.readRawBytes(list[0]), hex"c0"); assertEq(RLPReader.readRawBytes(list[0]), hex"c0");
assertEq(Lib_RLPReader.readRawBytes(list[1]), hex"c1c0"); assertEq(RLPReader.readRawBytes(list[1]), hex"c1c0");
assertEq(Lib_RLPReader.readRawBytes(list[2]), hex"c3c0c1c0"); assertEq(RLPReader.readRawBytes(list[2]), hex"c3c0c1c0");
} }
function test_readList_dictTest1() external { function test_readList_dictTest1() external {
Lib_RLPReader.RLPItem[] memory list = Lib_RLPReader.readList(hex"ecca846b6579318476616c31ca846b6579328476616c32ca846b6579338476616c33ca846b6579348476616c34"); RLPReader.RLPItem[] memory list = RLPReader.readList(hex"ecca846b6579318476616c31ca846b6579328476616c32ca846b6579338476616c33ca846b6579348476616c34");
assertEq(list.length, 4); assertEq(list.length, 4);
assertEq(Lib_RLPReader.readRawBytes(list[0]), hex"ca846b6579318476616c31"); assertEq(RLPReader.readRawBytes(list[0]), hex"ca846b6579318476616c31");
assertEq(Lib_RLPReader.readRawBytes(list[1]), hex"ca846b6579328476616c32"); assertEq(RLPReader.readRawBytes(list[1]), hex"ca846b6579328476616c32");
assertEq(Lib_RLPReader.readRawBytes(list[2]), hex"ca846b6579338476616c33"); assertEq(RLPReader.readRawBytes(list[2]), hex"ca846b6579338476616c33");
assertEq(Lib_RLPReader.readRawBytes(list[3]), hex"ca846b6579348476616c34"); assertEq(RLPReader.readRawBytes(list[3]), hex"ca846b6579348476616c34");
} }
function test_readList_invalidShortList() external { function test_readList_invalidShortList() external {
vm.expectRevert("Invalid RLP short list."); vm.expectRevert("Invalid RLP short list.");
Lib_RLPReader.RLPItem[] memory list = Lib_RLPReader.readList(hex"efdebd"); RLPReader.RLPItem[] memory list = RLPReader.readList(hex"efdebd");
} }
function test_readList_longStringLength() external { function test_readList_longStringLength() external {
vm.expectRevert("Invalid RLP short list."); vm.expectRevert("Invalid RLP short list.");
Lib_RLPReader.RLPItem[] memory list = Lib_RLPReader.readList(hex"efb83600"); RLPReader.RLPItem[] memory list = RLPReader.readList(hex"efb83600");
} }
function test_readList_notLongEnough() external { function test_readList_notLongEnough() external {
vm.expectRevert("Invalid RLP short list."); vm.expectRevert("Invalid RLP short list.");
Lib_RLPReader.RLPItem[] memory list = Lib_RLPReader.readList(hex"efdebdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); RLPReader.RLPItem[] memory list = RLPReader.readList(hex"efdebdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
} }
function test_readList_int32Overflow() external { function test_readList_int32Overflow() external {
vm.expectRevert("Invalid RLP long string."); vm.expectRevert("Invalid RLP long string.");
Lib_RLPReader.RLPItem[] memory list = Lib_RLPReader.readList(hex"bf0f000000000000021111"); RLPReader.RLPItem[] memory list = RLPReader.readList(hex"bf0f000000000000021111");
} }
function test_readList_int32Overflow2() external { function test_readList_int32Overflow2() external {
vm.expectRevert("Invalid RLP long list."); vm.expectRevert("Invalid RLP long list.");
Lib_RLPReader.RLPItem[] memory list = Lib_RLPReader.readList(hex"ff0f000000000000021111"); RLPReader.RLPItem[] memory list = RLPReader.readList(hex"ff0f000000000000021111");
} }
function test_readList_incorrectLengthInArray() external { function test_readList_incorrectLengthInArray() external {
vm.expectRevert("Invalid RLP list value."); vm.expectRevert("Invalid RLP list value.");
Lib_RLPReader.RLPItem[] memory list = Lib_RLPReader.readList(hex"b9002100dc2b275d0f74e8a53e6f4ec61b27f24278820be3f82ea2110e582081b0565df0"); RLPReader.RLPItem[] memory list = RLPReader.readList(hex"b9002100dc2b275d0f74e8a53e6f4ec61b27f24278820be3f82ea2110e582081b0565df0");
} }
function test_readList_leadingZerosInLongLengthArray1() external { function test_readList_leadingZerosInLongLengthArray1() external {
vm.expectRevert("Invalid RLP list value."); vm.expectRevert("Invalid RLP list value.");
Lib_RLPReader.RLPItem[] memory list = Lib_RLPReader.readList(hex"b90040000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f"); RLPReader.RLPItem[] memory list = RLPReader.readList(hex"b90040000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f");
} }
function test_readList_leadingZerosInLongLengthArray2() external { function test_readList_leadingZerosInLongLengthArray2() external {
vm.expectRevert("Invalid RLP list value."); vm.expectRevert("Invalid RLP list value.");
Lib_RLPReader.RLPItem[] memory list = Lib_RLPReader.readList(hex"b800"); RLPReader.RLPItem[] memory list = RLPReader.readList(hex"b800");
} }
function test_readList_leadingZerosInLongLengthList1() external { function test_readList_leadingZerosInLongLengthList1() external {
vm.expectRevert("Provided RLP list exceeds max list length."); vm.expectRevert("Provided RLP list exceeds max list length.");
Lib_RLPReader.RLPItem[] memory list = Lib_RLPReader.readList(hex"fb00000040000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f"); RLPReader.RLPItem[] memory list = RLPReader.readList(hex"fb00000040000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f");
} }
function test_readList_nonOptimalLongLengthArray1() external { function test_readList_nonOptimalLongLengthArray1() external {
vm.expectRevert("Invalid RLP list value."); vm.expectRevert("Invalid RLP list value.");
Lib_RLPReader.RLPItem[] memory list = Lib_RLPReader.readList(hex"b81000112233445566778899aabbccddeeff"); RLPReader.RLPItem[] memory list = RLPReader.readList(hex"b81000112233445566778899aabbccddeeff");
} }
function test_readList_nonOptimalLongLengthArray2() external { function test_readList_nonOptimalLongLengthArray2() external {
vm.expectRevert("Invalid RLP list value."); vm.expectRevert("Invalid RLP list value.");
Lib_RLPReader.RLPItem[] memory list = Lib_RLPReader.readList(hex"b801ff"); RLPReader.RLPItem[] memory list = RLPReader.readList(hex"b801ff");
} }
function test_readList_invalidValue() external { function test_readList_invalidValue() external {
vm.expectRevert("Invalid RLP short string."); vm.expectRevert("Invalid RLP short string.");
Lib_RLPReader.RLPItem[] memory list = Lib_RLPReader.readList(hex"91"); RLPReader.RLPItem[] memory list = RLPReader.readList(hex"91");
} }
} }
...@@ -5,23 +5,23 @@ import { Bridge_Initializer } from "./CommonTest.t.sol"; ...@@ -5,23 +5,23 @@ import { Bridge_Initializer } from "./CommonTest.t.sol";
import { SequencerFeeVault } from "../L2/SequencerFeeVault.sol"; import { SequencerFeeVault } from "../L2/SequencerFeeVault.sol";
import { L2StandardBridge } from "../L2/L2StandardBridge.sol"; import { L2StandardBridge } from "../L2/L2StandardBridge.sol";
import { Lib_PredeployAddresses } from "../libraries/Lib_PredeployAddresses.sol"; import { PredeployAddresses } from "../libraries/PredeployAddresses.sol";
contract SequencerFeeVault_Test is Bridge_Initializer { contract SequencerFeeVault_Test is Bridge_Initializer {
SequencerFeeVault vault = SequencerFeeVault vault =
SequencerFeeVault(payable(Lib_PredeployAddresses.SEQUENCER_FEE_WALLET)); SequencerFeeVault(payable(PredeployAddresses.SEQUENCER_FEE_WALLET));
address constant recipient = address(256); address constant recipient = address(256);
function setUp() public override { function setUp() public override {
super.setUp(); super.setUp();
vm.etch( vm.etch(
Lib_PredeployAddresses.SEQUENCER_FEE_WALLET, PredeployAddresses.SEQUENCER_FEE_WALLET,
address(new SequencerFeeVault()).code address(new SequencerFeeVault()).code
); );
vm.store( vm.store(
Lib_PredeployAddresses.SEQUENCER_FEE_WALLET, PredeployAddresses.SEQUENCER_FEE_WALLET,
bytes32(uint256(0)), bytes32(uint256(0)),
bytes32(uint256(uint160(recipient))) bytes32(uint256(uint160(recipient)))
); );
...@@ -69,10 +69,10 @@ contract SequencerFeeVault_Test is Bridge_Initializer { ...@@ -69,10 +69,10 @@ contract SequencerFeeVault_Test is Bridge_Initializer {
vm.deal(address(vault), vault.MIN_WITHDRAWAL_AMOUNT() + 1); vm.deal(address(vault), vault.MIN_WITHDRAWAL_AMOUNT() + 1);
vm.expectCall( vm.expectCall(
Lib_PredeployAddresses.L2_STANDARD_BRIDGE, PredeployAddresses.L2_STANDARD_BRIDGE,
abi.encodeWithSelector( abi.encodeWithSelector(
L2StandardBridge.withdrawTo.selector, L2StandardBridge.withdrawTo.selector,
Lib_PredeployAddresses.OVM_ETH, PredeployAddresses.LEGACY_ERC20_ETH,
vault.l1FeeWallet(), vault.l1FeeWallet(),
address(vault).balance, address(vault).balance,
0, 0,
......
...@@ -11,8 +11,8 @@ import { ...@@ -11,8 +11,8 @@ import {
ReentrancyGuardUpgradeable ReentrancyGuardUpgradeable
} from "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol"; } from "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol";
import { ExcessivelySafeCall } from "excessively-safe-call/src/ExcessivelySafeCall.sol"; import { ExcessivelySafeCall } from "excessively-safe-call/src/ExcessivelySafeCall.sol";
import { Lib_DefaultValues } from "../libraries/Lib_DefaultValues.sol"; import { DefaultValues } from "../libraries/DefaultValues.sol";
import { CrossDomainHashing } from "../libraries/Lib_CrossDomainHashing.sol"; import { CrossDomainHashing } from "../libraries/CrossDomainHashing.sol";
/** /**
* @title CrossDomainMessenger * @title CrossDomainMessenger
...@@ -153,7 +153,7 @@ abstract contract CrossDomainMessenger is ...@@ -153,7 +153,7 @@ abstract contract CrossDomainMessenger is
*/ */
function xDomainMessageSender() external view returns (address) { function xDomainMessageSender() external view returns (address) {
require( require(
xDomainMsgSender != Lib_DefaultValues.DEFAULT_XDOMAIN_SENDER, xDomainMsgSender != DefaultValues.DEFAULT_XDOMAIN_SENDER,
"xDomainMessageSender is not set" "xDomainMessageSender is not set"
); );
...@@ -287,7 +287,7 @@ abstract contract CrossDomainMessenger is ...@@ -287,7 +287,7 @@ abstract contract CrossDomainMessenger is
0, 0,
_message _message
); );
xDomainMsgSender = Lib_DefaultValues.DEFAULT_XDOMAIN_SENDER; xDomainMsgSender = DefaultValues.DEFAULT_XDOMAIN_SENDER;
if (success == true) { if (success == true) {
successfulMessages[versionedHash] = true; successfulMessages[versionedHash] = true;
...@@ -312,7 +312,7 @@ abstract contract CrossDomainMessenger is ...@@ -312,7 +312,7 @@ abstract contract CrossDomainMessenger is
function _initialize(address _otherMessenger, address[] memory _blockedSystemAddresses) function _initialize(address _otherMessenger, address[] memory _blockedSystemAddresses)
internal internal
{ {
xDomainMsgSender = Lib_DefaultValues.DEFAULT_XDOMAIN_SENDER; xDomainMsgSender = DefaultValues.DEFAULT_XDOMAIN_SENDER;
otherMessenger = _otherMessenger; otherMessenger = _otherMessenger;
for (uint256 i = 0; i < _blockedSystemAddresses.length; i++) { for (uint256 i = 0; i < _blockedSystemAddresses.length; i++) {
......
...@@ -3,7 +3,7 @@ pragma solidity ^0.8.9; ...@@ -3,7 +3,7 @@ pragma solidity ^0.8.9;
/* Contract Imports */ /* Contract Imports */
import { OptimismMintableERC20 } from "../universal/OptimismMintableERC20.sol"; import { OptimismMintableERC20 } from "../universal/OptimismMintableERC20.sol";
import { Lib_PredeployAddresses } from "../libraries/Lib_PredeployAddresses.sol"; import { PredeployAddresses } from "../libraries/PredeployAddresses.sol";
/** /**
* @custom:proxied * @custom:proxied
......
...@@ -3,7 +3,7 @@ pragma solidity ^0.8.9; ...@@ -3,7 +3,7 @@ pragma solidity ^0.8.9;
import { Owned } from "@rari-capital/solmate/src/auth/Owned.sol"; import { Owned } from "@rari-capital/solmate/src/auth/Owned.sol";
import { Proxy } from "./Proxy.sol"; import { Proxy } from "./Proxy.sol";
import { Lib_AddressManager } from "../legacy/Lib_AddressManager.sol"; import { AddressManager } from "../legacy/AddressManager.sol";
import { L1ChugSplashProxy } from "../legacy/L1ChugSplashProxy.sol"; import { L1ChugSplashProxy } from "../legacy/L1ChugSplashProxy.sol";
/** /**
...@@ -65,7 +65,7 @@ contract ProxyAdmin is Owned { ...@@ -65,7 +65,7 @@ contract ProxyAdmin is Owned {
* @notice The address of the address manager, this is required to manage the * @notice The address of the address manager, this is required to manage the
* ResolvedDelegateProxy type. * ResolvedDelegateProxy type.
*/ */
Lib_AddressManager public addressManager; AddressManager public addressManager;
/** /**
* @custom:legacy * @custom:legacy
...@@ -106,7 +106,7 @@ contract ProxyAdmin is Owned { ...@@ -106,7 +106,7 @@ contract ProxyAdmin is Owned {
* *
* @param _address Address of the AddressManager. * @param _address Address of the AddressManager.
*/ */
function setAddressManager(Lib_AddressManager _address) external onlyOwner { function setAddressManager(AddressManager _address) external onlyOwner {
addressManager = _address; addressManager = _address;
} }
......
...@@ -21,7 +21,7 @@ contracts=( ...@@ -21,7 +21,7 @@ contracts=(
L2CrossDomainMessenger L2CrossDomainMessenger
L2StandardBridge L2StandardBridge
L2ToL1MessagePasser L2ToL1MessagePasser
OVM_ETH LegacyERC20ETH
SequencerFeeVault SequencerFeeVault
WETH9 WETH9
ProxyAdmin ProxyAdmin
......
...@@ -16,7 +16,7 @@ export const predeploys = { ...@@ -16,7 +16,7 @@ export const predeploys = {
OptimismMintableTokenFactory: '0x4200000000000000000000000000000000000012', OptimismMintableTokenFactory: '0x4200000000000000000000000000000000000012',
L1BlockNumber: '0x4200000000000000000000000000000000000013', L1BlockNumber: '0x4200000000000000000000000000000000000013',
L1Block: '0x4200000000000000000000000000000000000015', L1Block: '0x4200000000000000000000000000000000000015',
OVM_ETH: '0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000', LegacyERC20ETH: '0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000',
WETH9: '0x4200000000000000000000000000000000000006', WETH9: '0x4200000000000000000000000000000000000006',
GovernanceToken: '0x4200000000000000000000000000000000000042', GovernanceToken: '0x4200000000000000000000000000000000000042',
} }
......
...@@ -112,7 +112,7 @@ task('genesis-l2', 'create a genesis config') ...@@ -112,7 +112,7 @@ task('genesis-l2', 'create a genesis config')
hash: deployConfig.l1BlockInitialHash, hash: deployConfig.l1BlockInitialHash,
sequenceNumber: deployConfig.l1BlockInitialSequenceNumber, sequenceNumber: deployConfig.l1BlockInitialSequenceNumber,
}, },
OVM_ETH: { LegacyERC20ETH: {
bridge: predeploys.L2StandardBridge, bridge: predeploys.L2StandardBridge,
remoteToken: ethers.constants.AddressZero, remoteToken: ethers.constants.AddressZero,
_name: 'Ether', _name: 'Ether',
...@@ -150,9 +150,9 @@ task('genesis-l2', 'create a genesis config') ...@@ -150,9 +150,9 @@ task('genesis-l2', 'create a genesis config')
ethers.utils.hexConcat([prefix, num]) ethers.utils.hexConcat([prefix, num])
) )
// There is no proxy at OVM_ETH or the GovernanceToken // There is no proxy at LegacyERC20ETH or the GovernanceToken
if ( if (
addr === ethers.utils.getAddress(predeploys.OVM_ETH) || addr === ethers.utils.getAddress(predeploys.LegacyERC20ETH) ||
addr === ethers.utils.getAddress(predeploys.GovernanceToken) addr === ethers.utils.getAddress(predeploys.GovernanceToken)
) { ) {
continue continue
...@@ -236,7 +236,7 @@ task('genesis-l2', 'create a genesis config') ...@@ -236,7 +236,7 @@ task('genesis-l2', 'create a genesis config')
const artifact = await hre.artifacts.readArtifact(name) const artifact = await hre.artifacts.readArtifact(name)
assertEvenLength(artifact.deployedBytecode) assertEvenLength(artifact.deployedBytecode)
const allocAddr = name === 'OVM_ETH' ? addr : toCodeAddr(addr) const allocAddr = name === 'LegacyERC20ETH' ? addr : toCodeAddr(addr)
assertEvenLength(allocAddr) assertEvenLength(allocAddr)
alloc[allocAddr] = { alloc[allocAddr] = {
......
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