diff --git a/go.work.sum b/go.work.sum index 90a641a6789e..9a0bb5ace54f 100644 --- a/go.work.sum +++ b/go.work.sum @@ -25,6 +25,7 @@ github.com/docker/docker v1.6.2/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsvi github.com/dop251/goja v0.0.0-20220405120441-9037c2b61cbf/go.mod h1:R9ET47fwRVRPZnOGvHxxhuZcbrMCuiqOz3Rlrh4KSnk= github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= +github.com/ethereum-optimism/op-geth v0.0.0-20220904174542-4311f9d2cead/go.mod h1:EYFyF19u3ezGLD4RqOkLq+ZCXzYbLoNDdZlMt7kyKFg= github.com/ethereum-optimism/op-geth v0.0.0-20220906163738-712cb0a1c140/go.mod h1:EYFyF19u3ezGLD4RqOkLq+ZCXzYbLoNDdZlMt7kyKFg= github.com/fjl/gencodec v0.0.0-20220412091415-8bb9e558978c/go.mod h1:AzA8Lj6YtixmJWL+wkKoBGsLWy9gFrAzi4g+5bCKwpY= github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= diff --git a/op-bindings/Makefile b/op-bindings/Makefile index 12e5993d4387..73c9cb876da4 100644 --- a/op-bindings/Makefile +++ b/op-bindings/Makefile @@ -2,7 +2,7 @@ SHELL := /bin/bash pkg := bindings -all: mkdir bindings deployed +all: mkdir bindings more bindings: l1block-bindings \ l1-cross-domain-messenger-bindings \ @@ -22,76 +22,73 @@ bindings: l1block-bindings \ erc20-bindings \ weth9-bindings -deployed: l1-block-deployed \ - optimism-portal-deployed \ - l2-to-l1-message-passer-deployed \ - gas-price-oracle-deployed +compile: + cd ../packages/contracts-bedrock/ && \ + forge build -o ./tmp-artifacts -l1-block-deployed: l1block-bindings - ./gen_deployed_bytecode.sh L1Block $(pkg) - -l1-cross-domain-messenger-bindings: +l1-cross-domain-messenger-bindings: compile ./gen_bindings.sh contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger $(pkg) -l1-standard-bridge-bindings: +l1-standard-bridge-bindings: compile ./gen_bindings.sh contracts/L1/L1StandardBridge.sol:L1StandardBridge $(pkg) -optimism-portal-deployed: optimism-portal-bindings - ./gen_deployed_bytecode.sh OptimismPortal $(pkg) - -l2-to-l1-message-passer-deployed: l2-to-l1-message-passer-bindings - ./gen_deployed_bytecode.sh L2ToL1MessagePasser $(pkg) - -gas-price-oracle-deployed: gas-price-oracle-bindings - ./gen_deployed_bytecode.sh GasPriceOracle $(pkg) - -optimism-portal-bindings: +optimism-portal-bindings: compile ./gen_bindings.sh contracts/L1/OptimismPortal.sol:OptimismPortal $(pkg) -l2-output-oracle-bindings: +l2-output-oracle-bindings: compile ./gen_bindings.sh contracts/L1/L2OutputOracle.sol:L2OutputOracle $(pkg) -address-manager-bindings: +address-manager-bindings: compile ./gen_bindings.sh contracts/legacy/AddressManager.sol:AddressManager $(pkg) -l1block-bindings: +l1block-bindings: compile ./gen_bindings.sh contracts/L2/L1Block.sol:L1Block $(pkg) -l2-to-l1-message-passer-bindings: +l2-to-l1-message-passer-bindings: compile ./gen_bindings.sh contracts/L2/L2ToL1MessagePasser.sol:L2ToL1MessagePasser $(pkg) -gas-price-oracle-bindings: +gas-price-oracle-bindings: compile ./gen_bindings.sh contracts/L2/GasPriceOracle.sol:GasPriceOracle $(pkg) -l2-cross-domain-messenger-bindings: +l2-cross-domain-messenger-bindings: compile ./gen_bindings.sh contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger $(pkg) -l2-standard-bridge-bindings: +l2-standard-bridge-bindings: compile ./gen_bindings.sh contracts/L2/L2StandardBridge.sol:L2StandardBridge $(pkg) -sequencer-fee-vault-bindings: +sequencer-fee-vault-bindings: compile ./gen_bindings.sh contracts/L2/SequencerFeeVault.sol:SequencerFeeVault $(pkg) -optimism-mintable-erc20-factory-bindings: +optimism-mintable-erc20-factory-bindings: compile ./gen_bindings.sh contracts/universal/OptimismMintableERC20Factory.sol:OptimismMintableERC20Factory $(pkg) -optimism-mintable-erc20-bindings: +optimism-mintable-erc20-bindings: compile ./gen_bindings.sh contracts/universal/OptimismMintableERC20.sol:OptimismMintableERC20 $(pkg) -proxy-bindings: +proxy-bindings: compile ./gen_bindings.sh contracts/universal/Proxy.sol:Proxy $(pkg) -proxy-admin-bindings: +proxy-admin-bindings: compile ./gen_bindings.sh contracts/universal/ProxyAdmin.sol:ProxyAdmin $(pkg) -erc20-bindings: +erc20-bindings: compile ./gen_bindings.sh ERC20 $(pkg) -weth9-bindings: +weth9-bindings: compile ./gen_bindings.sh contracts/vendor/WETH9.sol:WETH9 $(pkg) +more: + go run ./gen/main.go \ + -artifacts ../packages/contracts-bedrock/artifacts,../packages/contracts-governance/artifacts \ + -out ./bindings \ + -contracts OptimismMintableERC20Factory,L2StandardBridge,L1BlockNumber,DeployerWhitelist,Proxy,OptimismPortal,L2ToL1MessagePasser,L2CrossDomainMessenger,GasPriceOracle,SequencerFeeVault,L1Block,LegacyERC20ETH,WETH9,GovernanceToken \ + -package bindings + mkdir: mkdir -p bin $(pkg) clean: rm -rf bin $(pkg) + +test: + go test ./... diff --git a/op-bindings/bindings/deployerwhitelist_more.go b/op-bindings/bindings/deployerwhitelist_more.go new file mode 100755 index 000000000000..69d40a2b4398 --- /dev/null +++ b/op-bindings/bindings/deployerwhitelist_more.go @@ -0,0 +1,25 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package bindings + +import ( + "encoding/json" + + "github.com/ethereum-optimism/optimism/op-bindings/solc" +) + +const DeployerWhitelistStorageLayoutJSON = "{\"storage\":[{\"astId\":2700,\"contract\":\"contracts/legacy/DeployerWhitelist.sol:DeployerWhitelist\",\"label\":\"owner\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_address\"},{\"astId\":2705,\"contract\":\"contracts/legacy/DeployerWhitelist.sol:DeployerWhitelist\",\"label\":\"whitelist\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_mapping(t_address,t_bool)\"}],\"types\":{\"t_address\":{\"encoding\":\"inplace\",\"label\":\"address\",\"numberOfBytes\":\"20\"},\"t_bool\":{\"encoding\":\"inplace\",\"label\":\"bool\",\"numberOfBytes\":\"1\"},\"t_mapping(t_address,t_bool)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e bool)\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_bool\"}}}" + +var DeployerWhitelistStorageLayout = new(solc.StorageLayout) + +var DeployerWhitelistDeployedBin = "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100c85780639b19251a1461010d578063b1540a0114610140578063bdc7b54f1461015357600080fd5b806308fd63221461008257806313af40351461009757806354fd4d50146100aa575b600080fd5b61009561009036600461088a565b61015b565b005b6100956100a53660046108c6565b6102bb565b6100b26104ec565b6040516100bf9190610918565b60405180910390f35b6000546100e89073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100bf565b61013061011b3660046108c6565b60016020526000908152604090205460ff1681565b60405190151581526020016100bf565b61013061014e3660046108c6565b61058f565b6100956105e0565b60005473ffffffffffffffffffffffffffffffffffffffff16331461022d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168515159081179091558251938452908301527f8daaf060c3306c38e068a75c054bf96ecd85a3db1252712c4d93632744c42e0d910160405180910390a15050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610388576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a401610224565b73ffffffffffffffffffffffffffffffffffffffff8116610451576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f4465706c6f79657257686974656c6973743a2063616e206f6e6c79206265206460448201527f697361626c65642076696120656e61626c65417262697472617279436f6e747260648201527f6163744465706c6f796d656e7400000000000000000000000000000000000000608482015260a401610224565b6000546040805173ffffffffffffffffffffffffffffffffffffffff928316815291831660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a1600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60606105177f0000000000000000000000000000000000000000000000000000000000000000610724565b6105407f0000000000000000000000000000000000000000000000000000000000000000610724565b6105697f0000000000000000000000000000000000000000000000000000000000000000610724565b60405160200161057b93929190610969565b604051602081830303815290604052905090565b6000805473ffffffffffffffffffffffffffffffffffffffff1615806105da575073ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff165b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146106ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4465706c6f79657257686974656c6973743a2066756e6374696f6e2063616e2060448201527f6f6e6c792062652063616c6c656420627920746865206f776e6572206f66207460648201527f68697320636f6e74726163740000000000000000000000000000000000000000608482015260a401610224565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681527fc0e106cf568e50698fdbde1eff56f5a5c966cc7958e37e276918e9e4ccdf8cd49060200160405180910390a1600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60608160000361076757505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115610791578061077b81610a0e565b915061078a9050600a83610a75565b915061076b565b60008167ffffffffffffffff8111156107ac576107ac610a89565b6040519080825280601f01601f1916602001820160405280156107d6576020820181803683370190505b5090505b8415610859576107eb600183610ab8565b91506107f8600a86610acf565b610803906030610ae3565b60f81b81838151811061081857610818610afb565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610852600a86610a75565b94506107da565b949350505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461088557600080fd5b919050565b6000806040838503121561089d57600080fd5b6108a683610861565b9150602083013580151581146108bb57600080fd5b809150509250929050565b6000602082840312156108d857600080fd5b6108e182610861565b9392505050565b60005b838110156109035781810151838201526020016108eb565b83811115610912576000848401525b50505050565b60208152600082518060208401526109378160408501602087016108e8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6000845161097b8184602089016108e8565b80830190507f2e0000000000000000000000000000000000000000000000000000000000000080825285516109b7816001850160208a016108e8565b600192019182015283516109d28160028401602088016108e8565b0160020195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610a3f57610a3f6109df565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082610a8457610a84610a46565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082821015610aca57610aca6109df565b500390565b600082610ade57610ade610a46565b500690565b60008219821115610af657610af66109df565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea164736f6c634300080f000a" + +func init() { + if err := json.Unmarshal([]byte(DeployerWhitelistStorageLayoutJSON), DeployerWhitelistStorageLayout); err != nil { + panic(err) + } + + layouts["DeployerWhitelist"] = DeployerWhitelistStorageLayout + deployedBytecodes["DeployerWhitelist"] = DeployerWhitelistDeployedBin +} diff --git a/op-bindings/bindings/gaspriceoracle_deployed.go b/op-bindings/bindings/gaspriceoracle_more.go old mode 100644 new mode 100755 similarity index 80% rename from op-bindings/bindings/gaspriceoracle_deployed.go rename to op-bindings/bindings/gaspriceoracle_more.go index fbde91fd9b75..e080dcad8582 --- a/op-bindings/bindings/gaspriceoracle_deployed.go +++ b/op-bindings/bindings/gaspriceoracle_more.go @@ -1,5 +1,25 @@ // Code generated - DO NOT EDIT. // This file is a generated binding and any manual changes will be lost. + package bindings +import ( + "encoding/json" + + "github.com/ethereum-optimism/optimism/op-bindings/solc" +) + +const GasPriceOracleStorageLayoutJSON = "{\"storage\":[{\"astId\":26690,\"contract\":\"contracts/L2/GasPriceOracle.sol:GasPriceOracle\",\"label\":\"_owner\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_address\"},{\"astId\":1663,\"contract\":\"contracts/L2/GasPriceOracle.sol:GasPriceOracle\",\"label\":\"spacer0\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_uint256\"},{\"astId\":1666,\"contract\":\"contracts/L2/GasPriceOracle.sol:GasPriceOracle\",\"label\":\"spacer1\",\"offset\":0,\"slot\":\"2\",\"type\":\"t_uint256\"},{\"astId\":1669,\"contract\":\"contracts/L2/GasPriceOracle.sol:GasPriceOracle\",\"label\":\"overhead\",\"offset\":0,\"slot\":\"3\",\"type\":\"t_uint256\"},{\"astId\":1672,\"contract\":\"contracts/L2/GasPriceOracle.sol:GasPriceOracle\",\"label\":\"scalar\",\"offset\":0,\"slot\":\"4\",\"type\":\"t_uint256\"},{\"astId\":1675,\"contract\":\"contracts/L2/GasPriceOracle.sol:GasPriceOracle\",\"label\":\"decimals\",\"offset\":0,\"slot\":\"5\",\"type\":\"t_uint256\"}],\"types\":{\"t_address\":{\"encoding\":\"inplace\",\"label\":\"address\",\"numberOfBytes\":\"20\"},\"t_uint256\":{\"encoding\":\"inplace\",\"label\":\"uint256\",\"numberOfBytes\":\"32\"}}}" + +var GasPriceOracleStorageLayout = new(solc.StorageLayout) + var GasPriceOracleDeployedBin = "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80637046559711610097578063de26c4a111610066578063de26c4a1146101c0578063f2fde38b146101d3578063f45e65d8146101e6578063fe173b971461016457600080fd5b8063704655971461016a578063715018a61461017d5780638c8885c8146101855780638da5cb5b1461019857600080fd5b806349948e0e116100d357806349948e0e14610134578063519b4bd31461014757806354fd4d501461014f5780636ef25c3a1461016457600080fd5b80630c18c162146100fa578063313ce567146101165780633577afc51461011f575b600080fd5b61010360035481565b6040519081526020015b60405180910390f35b61010360055481565b61013261012d3660046107e8565b6101ef565b005b610103610142366004610830565b610233565b610103610293565b61015761031d565b60405161010d919061092f565b48610103565b6101326101783660046107e8565b6103c0565b6101326103fd565b6101326101933660046107e8565b610411565b60005460405173ffffffffffffffffffffffffffffffffffffffff909116815260200161010d565b6101036101ce366004610830565b61044e565b6101326101e1366004610980565b6104f9565b61010360045481565b6101f76105b5565b60038190556040518181527f32740b35c0ea213650f60d44366b4fb211c9033b50714e4a1d34e65d5beb9bb4906020015b60405180910390a150565b60008061023f8361044e565b9050600061024b610293565b61025590836109ec565b90506000600554600a6102689190610b4b565b905060006004548361027a91906109ec565b905060006102888383610b86565b979650505050505050565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16635cf249696040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103189190610b9a565b905090565b60606103487f0000000000000000000000000000000000000000000000000000000000000000610636565b6103717f0000000000000000000000000000000000000000000000000000000000000000610636565b61039a7f0000000000000000000000000000000000000000000000000000000000000000610636565b6040516020016103ac93929190610bb3565b604051602081830303815290604052905090565b6103c86105b5565b60048190556040518181527f3336cd9708eaf2769a0f0dc0679f30e80f15dcd88d1921b5a16858e8b85c591a90602001610228565b6104056105b5565b61040f6000610773565b565b6104196105b5565b60058190556040518181527fd68112a8707e326d08be3656b528c1bcc5bbbfc47f4177e2179b14d8640838c190602001610228565b80516000908190815b818110156104d15784818151811061047157610471610c29565b01602001517fff00000000000000000000000000000000000000000000000000000000000000166000036104b1576104aa600484610c58565b92506104bf565b6104bc601084610c58565b92505b806104c981610c70565b915050610457565b506000600354836104e29190610c58565b90506104f081610440610c58565b95945050505050565b6105016105b5565b73ffffffffffffffffffffffffffffffffffffffff81166105a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6105b281610773565b50565b60005473ffffffffffffffffffffffffffffffffffffffff16331461040f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105a0565b60608160000361067957505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b81156106a3578061068d81610c70565b915061069c9050600a83610b86565b915061067d565b60008167ffffffffffffffff8111156106be576106be610801565b6040519080825280601f01601f1916602001820160405280156106e8576020820181803683370190505b5090505b841561076b576106fd600183610ca8565b915061070a600a86610cbf565b610715906030610c58565b60f81b81838151811061072a5761072a610c29565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610764600a86610b86565b94506106ec565b949350505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156107fa57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561084257600080fd5b813567ffffffffffffffff8082111561085a57600080fd5b818401915084601f83011261086e57600080fd5b81358181111561088057610880610801565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156108c6576108c6610801565b816040528281528760208487010111156108df57600080fd5b826020860160208301376000928101602001929092525095945050505050565b60005b8381101561091a578181015183820152602001610902565b83811115610929576000848401525b50505050565b602081526000825180602084015261094e8160408501602087016108ff565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60006020828403121561099257600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146109b657600080fd5b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610a2457610a246109bd565b500290565b600181815b80851115610a8257817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610a6857610a686109bd565b80851615610a7557918102915b93841c9390800290610a2e565b509250929050565b600082610a9957506001610b45565b81610aa657506000610b45565b8160018114610abc5760028114610ac657610ae2565b6001915050610b45565b60ff841115610ad757610ad76109bd565b50506001821b610b45565b5060208310610133831016604e8410600b8410161715610b05575081810a610b45565b610b0f8383610a29565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610b4157610b416109bd565b0290505b92915050565b60006109b68383610a8a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082610b9557610b95610b57565b500490565b600060208284031215610bac57600080fd5b5051919050565b60008451610bc58184602089016108ff565b80830190507f2e000000000000000000000000000000000000000000000000000000000000008082528551610c01816001850160208a016108ff565b60019201918201528351610c1c8160028401602088016108ff565b0160020195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008219821115610c6b57610c6b6109bd565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610ca157610ca16109bd565b5060010190565b600082821015610cba57610cba6109bd565b500390565b600082610cce57610cce610b57565b50069056fea164736f6c634300080f000a" + +func init() { + if err := json.Unmarshal([]byte(GasPriceOracleStorageLayoutJSON), GasPriceOracleStorageLayout); err != nil { + panic(err) + } + + layouts["GasPriceOracle"] = GasPriceOracleStorageLayout + deployedBytecodes["GasPriceOracle"] = GasPriceOracleDeployedBin +} diff --git a/op-bindings/bindings/governancetoken_more.go b/op-bindings/bindings/governancetoken_more.go new file mode 100755 index 000000000000..0917a128fabe --- /dev/null +++ b/op-bindings/bindings/governancetoken_more.go @@ -0,0 +1,25 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package bindings + +import ( + "encoding/json" + + "github.com/ethereum-optimism/optimism/op-bindings/solc" +) + +const GovernanceTokenStorageLayoutJSON = "{\"storage\":[{\"astId\":198,\"contract\":\"contracts/GovernanceToken.sol:GovernanceToken\",\"label\":\"_balances\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_mapping(t_address,t_uint256)\"},{\"astId\":204,\"contract\":\"contracts/GovernanceToken.sol:GovernanceToken\",\"label\":\"_allowances\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_mapping(t_address,t_mapping(t_address,t_uint256))\"},{\"astId\":206,\"contract\":\"contracts/GovernanceToken.sol:GovernanceToken\",\"label\":\"_totalSupply\",\"offset\":0,\"slot\":\"2\",\"type\":\"t_uint256\"},{\"astId\":208,\"contract\":\"contracts/GovernanceToken.sol:GovernanceToken\",\"label\":\"_name\",\"offset\":0,\"slot\":\"3\",\"type\":\"t_string_storage\"},{\"astId\":210,\"contract\":\"contracts/GovernanceToken.sol:GovernanceToken\",\"label\":\"_symbol\",\"offset\":0,\"slot\":\"4\",\"type\":\"t_string_storage\"},{\"astId\":1577,\"contract\":\"contracts/GovernanceToken.sol:GovernanceToken\",\"label\":\"_nonces\",\"offset\":0,\"slot\":\"5\",\"type\":\"t_mapping(t_address,t_struct(Counter)1787_storage)\"},{\"astId\":918,\"contract\":\"contracts/GovernanceToken.sol:GovernanceToken\",\"label\":\"_delegates\",\"offset\":0,\"slot\":\"6\",\"type\":\"t_mapping(t_address,t_address)\"},{\"astId\":924,\"contract\":\"contracts/GovernanceToken.sol:GovernanceToken\",\"label\":\"_checkpoints\",\"offset\":0,\"slot\":\"7\",\"type\":\"t_mapping(t_address,t_array(t_struct(Checkpoint)909_storage)dyn_storage)\"},{\"astId\":928,\"contract\":\"contracts/GovernanceToken.sol:GovernanceToken\",\"label\":\"_totalSupplyCheckpoints\",\"offset\":0,\"slot\":\"8\",\"type\":\"t_array(t_struct(Checkpoint)909_storage)dyn_storage\"},{\"astId\":7,\"contract\":\"contracts/GovernanceToken.sol:GovernanceToken\",\"label\":\"_owner\",\"offset\":0,\"slot\":\"9\",\"type\":\"t_address\"}],\"types\":{\"t_address\":{\"encoding\":\"inplace\",\"label\":\"address\",\"numberOfBytes\":\"20\"},\"t_array(t_struct(Checkpoint)909_storage)dyn_storage\":{\"encoding\":\"dynamic_array\",\"label\":\"struct ERC20Votes.Checkpoint[]\",\"numberOfBytes\":\"32\"},\"t_mapping(t_address,t_address)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e address)\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_address\"},\"t_mapping(t_address,t_array(t_struct(Checkpoint)909_storage)dyn_storage)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e struct ERC20Votes.Checkpoint[])\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_array(t_struct(Checkpoint)909_storage)dyn_storage\"},\"t_mapping(t_address,t_mapping(t_address,t_uint256))\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e mapping(address =\u003e uint256))\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_mapping(t_address,t_uint256)\"},\"t_mapping(t_address,t_struct(Counter)1787_storage)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e struct Counters.Counter)\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_struct(Counter)1787_storage\"},\"t_mapping(t_address,t_uint256)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e uint256)\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_uint256\"},\"t_string_storage\":{\"encoding\":\"bytes\",\"label\":\"string\",\"numberOfBytes\":\"32\"},\"t_struct(Checkpoint)909_storage\":{\"encoding\":\"inplace\",\"label\":\"struct ERC20Votes.Checkpoint\",\"numberOfBytes\":\"32\"},\"t_struct(Counter)1787_storage\":{\"encoding\":\"inplace\",\"label\":\"struct Counters.Counter\",\"numberOfBytes\":\"32\"},\"t_uint224\":{\"encoding\":\"inplace\",\"label\":\"uint224\",\"numberOfBytes\":\"28\"},\"t_uint256\":{\"encoding\":\"inplace\",\"label\":\"uint256\",\"numberOfBytes\":\"32\"},\"t_uint32\":{\"encoding\":\"inplace\",\"label\":\"uint32\",\"numberOfBytes\":\"4\"}}}" + +var GovernanceTokenStorageLayout = new(solc.StorageLayout) + +var GovernanceTokenDeployedBin = "0x608060405234801561001057600080fd5b50600436106101c45760003560e01c8063715018a6116100f9578063a457c2d711610097578063d505accf11610071578063d505accf14610553578063dd62ed3e1461056f578063f1127ed81461059f578063f2fde38b146105cf576101c4565b8063a457c2d7146104d7578063a9059cbb14610507578063c3cda52014610537576101c4565b80638da5cb5b116100d35780638da5cb5b1461043b5780638e539e8c1461045957806395d89b41146104895780639ab24eb0146104a7576101c4565b8063715018a6146103e557806379cc6790146103ef5780637ecebe001461040b576101c4565b80633a46b1a811610166578063587cde1e11610140578063587cde1e146103395780635c19a95c146103695780636fcfff451461038557806370a08231146103b5576101c4565b80633a46b1a8146102d157806340c10f191461030157806342966c681461031d576101c4565b806323b872dd116101a257806323b872dd14610235578063313ce567146102655780633644e5151461028357806339509351146102a1576101c4565b806306fdde03146101c9578063095ea7b3146101e757806318160ddd14610217575b600080fd5b6101d16105eb565b6040516101de9190612a9e565b60405180910390f35b61020160048036038101906101fc9190612b59565b61067d565b60405161020e9190612bb4565b60405180910390f35b61021f6106a0565b60405161022c9190612bde565b60405180910390f35b61024f600480360381019061024a9190612bf9565b6106aa565b60405161025c9190612bb4565b60405180910390f35b61026d6106d9565b60405161027a9190612c68565b60405180910390f35b61028b6106e2565b6040516102989190612c9c565b60405180910390f35b6102bb60048036038101906102b69190612b59565b6106f1565b6040516102c89190612bb4565b60405180910390f35b6102eb60048036038101906102e69190612b59565b61079b565b6040516102f89190612bde565b60405180910390f35b61031b60048036038101906103169190612b59565b61082f565b005b61033760048036038101906103329190612cb7565b6108b9565b005b610353600480360381019061034e9190612ce4565b6108cd565b6040516103609190612d20565b60405180910390f35b610383600480360381019061037e9190612ce4565b610936565b005b61039f600480360381019061039a9190612ce4565b61094a565b6040516103ac9190612d5a565b60405180910390f35b6103cf60048036038101906103ca9190612ce4565b61099e565b6040516103dc9190612bde565b60405180910390f35b6103ed6109e6565b005b61040960048036038101906104049190612b59565b610a6e565b005b61042560048036038101906104209190612ce4565b610a8e565b6040516104329190612bde565b60405180910390f35b610443610ade565b6040516104509190612d20565b60405180910390f35b610473600480360381019061046e9190612cb7565b610b08565b6040516104809190612bde565b60405180910390f35b610491610b5e565b60405161049e9190612a9e565b60405180910390f35b6104c160048036038101906104bc9190612ce4565b610bf0565b6040516104ce9190612bde565b60405180910390f35b6104f160048036038101906104ec9190612b59565b610d01565b6040516104fe9190612bb4565b60405180910390f35b610521600480360381019061051c9190612b59565b610deb565b60405161052e9190612bb4565b60405180910390f35b610551600480360381019061054c9190612dcd565b610e0e565b005b61056d60048036038101906105689190612e5a565b610f12565b005b61058960048036038101906105849190612efc565b611054565b6040516105969190612bde565b60405180910390f35b6105b960048036038101906105b49190612f68565b6110db565b6040516105c6919061301d565b60405180910390f35b6105e960048036038101906105e49190612ce4565b6111eb565b005b6060600380546105fa90613067565b80601f016020809104026020016040519081016040528092919081815260200182805461062690613067565b80156106735780601f1061064857610100808354040283529160200191610673565b820191906000526020600020905b81548152906001019060200180831161065657829003601f168201915b5050505050905090565b6000806106886112e3565b90506106958185856112eb565b600191505092915050565b6000600254905090565b6000806106b56112e3565b90506106c28582856114b6565b6106cd858585611542565b60019150509392505050565b60006012905090565b60006106ec6117c3565b905090565b6000806106fc6112e3565b9050610790818585600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461078b91906130c8565b6112eb565b600191505092915050565b60004382106107df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d69061316a565b60405180910390fd5b610827600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020836118dd565b905092915050565b6108376112e3565b73ffffffffffffffffffffffffffffffffffffffff16610855610ade565b73ffffffffffffffffffffffffffffffffffffffff16146108ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a2906131d6565b60405180910390fd5b6108b582826119e9565b5050565b6108ca6108c46112e3565b826119f7565b50565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6109476109416112e3565b82611a05565b50565b6000610997600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050611b1f565b9050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109ee6112e3565b73ffffffffffffffffffffffffffffffffffffffff16610a0c610ade565b73ffffffffffffffffffffffffffffffffffffffff1614610a62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a59906131d6565b60405180910390fd5b610a6c6000611b72565b565b610a8082610a7a6112e3565b836114b6565b610a8a82826119f7565b5050565b6000610ad7600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611c38565b9050919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000438210610b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b439061316a565b60405180910390fd5b610b576008836118dd565b9050919050565b606060048054610b6d90613067565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9990613067565b8015610be65780601f10610bbb57610100808354040283529160200191610be6565b820191906000526020600020905b815481529060010190602001808311610bc957829003601f168201915b5050505050905090565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050905060008114610cd857600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600182610c8c91906131f6565b81548110610c9d57610c9c61322a565b5b9060005260206000200160000160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16610cdb565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16915050919050565b600080610d0c6112e3565b90506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015610dd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc9906132cb565b60405180910390fd5b610ddf82868684036112eb565b60019250505092915050565b600080610df66112e3565b9050610e03818585611542565b600191505092915050565b83421115610e51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4890613337565b60405180910390fd5b6000610eb3610eab7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf898989604051602001610e909493929190613357565b60405160208183030381529060405280519060200120611c46565b858585611c60565b9050610ebe81611c8b565b8614610eff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef6906133e8565b60405180910390fd5b610f098188611a05565b50505050505050565b83421115610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4c90613454565b60405180910390fd5b60007f0000000000000000000000000000000000000000000000000000000000000000888888610f848c611c8b565b89604051602001610f9a96959493929190613474565b6040516020818303038152906040528051906020012090506000610fbd82611c46565b90506000610fcd82878787611c60565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461103d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103490613521565b60405180910390fd5b6110488a8a8a6112eb565b50505050505050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110e36129c7565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208263ffffffff168154811061113a5761113961322a565b5b906000526020600020016040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681525050905092915050565b6111f36112e3565b73ffffffffffffffffffffffffffffffffffffffff16611211610ade565b73ffffffffffffffffffffffffffffffffffffffff1614611267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125e906131d6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156112d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ce906135b3565b60405180910390fd5b6112e081611b72565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561135b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135290613645565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c2906136d7565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114a99190612bde565b60405180910390a3505050565b60006114c28484611054565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461153c578181101561152e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152590613743565b60405180910390fd5b61153b84848484036112eb565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a9906137d5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611622576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161990613867565b60405180910390fd5b61162d838383611ce9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156116b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116aa906138f9565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461174691906130c8565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117aa9190612bde565b60405180910390a36117bd848484611cee565b50505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614801561183f57507f000000000000000000000000000000000000000000000000000000000000000046145b1561186c577f000000000000000000000000000000000000000000000000000000000000000090506118da565b6118d77f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611cfe565b90505b90565b6000808380549050905060005b8181101561195c5760006118fe8284611d38565b9050848682815481106119145761191361322a565b5b9060005260206000200160000160009054906101000a900463ffffffff1663ffffffff16111561194657809250611956565b60018161195391906130c8565b91505b506118ea565b600082146119be578460018361197291906131f6565b815481106119835761198261322a565b5b9060005260206000200160000160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166119c1565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169250505092915050565b6119f38282611d5e565b5050565b611a018282611deb565b5050565b6000611a10836108cd565b90506000611a1d8461099e565b905082600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4611b19828483611e09565b50505050565b600063ffffffff8016821115611b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b619061398b565b60405180910390fd5b819050919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081600001549050919050565b6000611c59611c536117c3565b83612002565b9050919050565b6000806000611c7187878787612035565b91509150611c7e81612142565b8192505050949350505050565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050611cd881611c38565b9150611ce381612317565b50919050565b505050565b611cf983838361232d565b505050565b60008383834630604051602001611d199594939291906139ab565b6040516020818303038152906040528051906020012090509392505050565b60006002828418611d499190613a2d565b828416611d5691906130c8565b905092915050565b611d688282612358565b611d706124b8565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16611d966106a0565b1115611dd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dce90613ad0565b60405180910390fd5b611de560086124dc836124f2565b50505050565b611df5828261276a565b611e036008612941836124f2565b50505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e455750600081115b15611ffd57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611f2357600080611ecc600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612941856124f2565b915091508473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611f18929190613af0565b60405180910390a250505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611ffc57600080611fa5600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206124dc856124f2565b915091508373ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611ff1929190613af0565b60405180910390a250505b5b505050565b60008282604051602001612017929190613b91565b60405160208183030381529060405280519060200120905092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c1115612070576000600391509150612139565b601b8560ff16141580156120885750601c8560ff1614155b1561209a576000600491509150612139565b6000600187878787604051600081526020016040526040516120bf9493929190613bc8565b6020604051602081039080840390855afa1580156120e1573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561213057600060019250925050612139565b80600092509250505b94509492505050565b6000600481111561215657612155613c0d565b5b81600481111561216957612168613c0d565b5b141561217457612314565b6001600481111561218857612187613c0d565b5b81600481111561219b5761219a613c0d565b5b14156121dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d390613c88565b60405180910390fd5b600260048111156121f0576121ef613c0d565b5b81600481111561220357612202613c0d565b5b1415612244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223b90613cf4565b60405180910390fd5b6003600481111561225857612257613c0d565b5b81600481111561226b5761226a613c0d565b5b14156122ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a390613d86565b60405180910390fd5b6004808111156122bf576122be613c0d565b5b8160048111156122d2576122d1613c0d565b5b1415612313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230a90613e18565b60405180910390fd5b5b50565b6001816000016000828254019250508190555050565b612338838383612957565b612353612344846108cd565b61234d846108cd565b83611e09565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156123c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123bf90613e84565b60405180910390fd5b6123d460008383611ce9565b80600260008282546123e691906130c8565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461243b91906130c8565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124a09190612bde565b60405180910390a36124b460008383611cee565b5050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b600081836124ea91906130c8565b905092915050565b60008060008580549050905060008114612560578560018261251491906131f6565b815481106125255761252461322a565b5b9060005260206000200160000160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16612563565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16925061259183858763ffffffff16565b91506000811180156125e4575043866001836125ad91906131f6565b815481106125be576125bd61322a565b5b9060005260206000200160000160009054906101000a900463ffffffff1663ffffffff16145b15612671576125f28261295c565b8660018361260091906131f6565b815481106126115761261061322a565b5b9060005260206000200160000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550612761565b85604051806040016040528061268643611b1f565b63ffffffff16815260200161269a8561295c565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050505b50935093915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156127da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d190613f16565b60405180910390fd5b6127e682600083611ce9565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561286c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286390613fa8565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546128c391906131f6565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129289190612bde565b60405180910390a361293c83600084611cee565b505050565b6000818361294f91906131f6565b905092915050565b505050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff80168211156129bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b69061403a565b60405180910390fd5b819050919050565b6040518060400160405280600063ffffffff16815260200160007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a3f578082015181840152602081019050612a24565b83811115612a4e576000848401525b50505050565b6000601f19601f8301169050919050565b6000612a7082612a05565b612a7a8185612a10565b9350612a8a818560208601612a21565b612a9381612a54565b840191505092915050565b60006020820190508181036000830152612ab88184612a65565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612af082612ac5565b9050919050565b612b0081612ae5565b8114612b0b57600080fd5b50565b600081359050612b1d81612af7565b92915050565b6000819050919050565b612b3681612b23565b8114612b4157600080fd5b50565b600081359050612b5381612b2d565b92915050565b60008060408385031215612b7057612b6f612ac0565b5b6000612b7e85828601612b0e565b9250506020612b8f85828601612b44565b9150509250929050565b60008115159050919050565b612bae81612b99565b82525050565b6000602082019050612bc96000830184612ba5565b92915050565b612bd881612b23565b82525050565b6000602082019050612bf36000830184612bcf565b92915050565b600080600060608486031215612c1257612c11612ac0565b5b6000612c2086828701612b0e565b9350506020612c3186828701612b0e565b9250506040612c4286828701612b44565b9150509250925092565b600060ff82169050919050565b612c6281612c4c565b82525050565b6000602082019050612c7d6000830184612c59565b92915050565b6000819050919050565b612c9681612c83565b82525050565b6000602082019050612cb16000830184612c8d565b92915050565b600060208284031215612ccd57612ccc612ac0565b5b6000612cdb84828501612b44565b91505092915050565b600060208284031215612cfa57612cf9612ac0565b5b6000612d0884828501612b0e565b91505092915050565b612d1a81612ae5565b82525050565b6000602082019050612d356000830184612d11565b92915050565b600063ffffffff82169050919050565b612d5481612d3b565b82525050565b6000602082019050612d6f6000830184612d4b565b92915050565b612d7e81612c4c565b8114612d8957600080fd5b50565b600081359050612d9b81612d75565b92915050565b612daa81612c83565b8114612db557600080fd5b50565b600081359050612dc781612da1565b92915050565b60008060008060008060c08789031215612dea57612de9612ac0565b5b6000612df889828a01612b0e565b9650506020612e0989828a01612b44565b9550506040612e1a89828a01612b44565b9450506060612e2b89828a01612d8c565b9350506080612e3c89828a01612db8565b92505060a0612e4d89828a01612db8565b9150509295509295509295565b600080600080600080600060e0888a031215612e7957612e78612ac0565b5b6000612e878a828b01612b0e565b9750506020612e988a828b01612b0e565b9650506040612ea98a828b01612b44565b9550506060612eba8a828b01612b44565b9450506080612ecb8a828b01612d8c565b93505060a0612edc8a828b01612db8565b92505060c0612eed8a828b01612db8565b91505092959891949750929550565b60008060408385031215612f1357612f12612ac0565b5b6000612f2185828601612b0e565b9250506020612f3285828601612b0e565b9150509250929050565b612f4581612d3b565b8114612f5057600080fd5b50565b600081359050612f6281612f3c565b92915050565b60008060408385031215612f7f57612f7e612ac0565b5b6000612f8d85828601612b0e565b9250506020612f9e85828601612f53565b9150509250929050565b612fb181612d3b565b82525050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff82169050919050565b612fe881612fb7565b82525050565b6040820160008201516130046000850182612fa8565b5060208201516130176020850182612fdf565b50505050565b60006040820190506130326000830184612fee565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061307f57607f821691505b6020821081141561309357613092613038565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130d382612b23565b91506130de83612b23565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561311357613112613099565b5b828201905092915050565b7f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e656400600082015250565b6000613154601f83612a10565b915061315f8261311e565b602082019050919050565b6000602082019050818103600083015261318381613147565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006131c0602083612a10565b91506131cb8261318a565b602082019050919050565b600060208201905081810360008301526131ef816131b3565b9050919050565b600061320182612b23565b915061320c83612b23565b92508282101561321f5761321e613099565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006132b5602583612a10565b91506132c082613259565b604082019050919050565b600060208201905081810360008301526132e4816132a8565b9050919050565b7f4552433230566f7465733a207369676e61747572652065787069726564000000600082015250565b6000613321601d83612a10565b915061332c826132eb565b602082019050919050565b6000602082019050818103600083015261335081613314565b9050919050565b600060808201905061336c6000830187612c8d565b6133796020830186612d11565b6133866040830185612bcf565b6133936060830184612bcf565b95945050505050565b7f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000600082015250565b60006133d2601983612a10565b91506133dd8261339c565b602082019050919050565b60006020820190508181036000830152613401816133c5565b9050919050565b7f45524332305065726d69743a206578706972656420646561646c696e65000000600082015250565b600061343e601d83612a10565b915061344982613408565b602082019050919050565b6000602082019050818103600083015261346d81613431565b9050919050565b600060c0820190506134896000830189612c8d565b6134966020830188612d11565b6134a36040830187612d11565b6134b06060830186612bcf565b6134bd6080830185612bcf565b6134ca60a0830184612bcf565b979650505050505050565b7f45524332305065726d69743a20696e76616c6964207369676e61747572650000600082015250565b600061350b601e83612a10565b9150613516826134d5565b602082019050919050565b6000602082019050818103600083015261353a816134fe565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061359d602683612a10565b91506135a882613541565b604082019050919050565b600060208201905081810360008301526135cc81613590565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061362f602483612a10565b915061363a826135d3565b604082019050919050565b6000602082019050818103600083015261365e81613622565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006136c1602283612a10565b91506136cc82613665565b604082019050919050565b600060208201905081810360008301526136f0816136b4565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061372d601d83612a10565b9150613738826136f7565b602082019050919050565b6000602082019050818103600083015261375c81613720565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006137bf602583612a10565b91506137ca82613763565b604082019050919050565b600060208201905081810360008301526137ee816137b2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613851602383612a10565b915061385c826137f5565b604082019050919050565b6000602082019050818103600083015261388081613844565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006138e3602683612a10565b91506138ee82613887565b604082019050919050565b60006020820190508181036000830152613912816138d6565b9050919050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203360008201527f3220626974730000000000000000000000000000000000000000000000000000602082015250565b6000613975602683612a10565b915061398082613919565b604082019050919050565b600060208201905081810360008301526139a481613968565b9050919050565b600060a0820190506139c06000830188612c8d565b6139cd6020830187612c8d565b6139da6040830186612c8d565b6139e76060830185612bcf565b6139f46080830184612d11565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613a3882612b23565b9150613a4383612b23565b925082613a5357613a526139fe565b5b828204905092915050565b7f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60008201527f766572666c6f77696e6720766f74657300000000000000000000000000000000602082015250565b6000613aba603083612a10565b9150613ac582613a5e565b604082019050919050565b60006020820190508181036000830152613ae981613aad565b9050919050565b6000604082019050613b056000830185612bcf565b613b126020830184612bcf565b9392505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000613b5a600283613b19565b9150613b6582613b24565b600282019050919050565b6000819050919050565b613b8b613b8682612c83565b613b70565b82525050565b6000613b9c82613b4d565b9150613ba88285613b7a565b602082019150613bb88284613b7a565b6020820191508190509392505050565b6000608082019050613bdd6000830187612c8d565b613bea6020830186612c59565b613bf76040830185612c8d565b613c046060830184612c8d565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b6000613c72601883612a10565b9150613c7d82613c3c565b602082019050919050565b60006020820190508181036000830152613ca181613c65565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b6000613cde601f83612a10565b9150613ce982613ca8565b602082019050919050565b60006020820190508181036000830152613d0d81613cd1565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d70602283612a10565b9150613d7b82613d14565b604082019050919050565b60006020820190508181036000830152613d9f81613d63565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202776272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e02602283612a10565b9150613e0d82613da6565b604082019050919050565b60006020820190508181036000830152613e3181613df5565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000613e6e601f83612a10565b9150613e7982613e38565b602082019050919050565b60006020820190508181036000830152613e9d81613e61565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f00602183612a10565b9150613f0b82613ea4565b604082019050919050565b60006020820190508181036000830152613f2f81613ef3565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f92602283612a10565b9150613f9d82613f36565b604082019050919050565b60006020820190508181036000830152613fc181613f85565b9050919050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203260008201527f3234206269747300000000000000000000000000000000000000000000000000602082015250565b6000614024602783612a10565b915061402f82613fc8565b604082019050919050565b6000602082019050818103600083015261405381614017565b905091905056fea264697066735822122045dad6b0baf930a578db6b014d4fbf359073e8c1d7d2777a11b487c012850a4564736f6c634300080c0033" + +func init() { + if err := json.Unmarshal([]byte(GovernanceTokenStorageLayoutJSON), GovernanceTokenStorageLayout); err != nil { + panic(err) + } + + layouts["GovernanceToken"] = GovernanceTokenStorageLayout + deployedBytecodes["GovernanceToken"] = GovernanceTokenDeployedBin +} diff --git a/op-bindings/bindings/l1block_deployed.go b/op-bindings/bindings/l1block_more.go old mode 100644 new mode 100755 similarity index 73% rename from op-bindings/bindings/l1block_deployed.go rename to op-bindings/bindings/l1block_more.go index ac4240e5fc60..dbbf17f13a62 --- a/op-bindings/bindings/l1block_deployed.go +++ b/op-bindings/bindings/l1block_more.go @@ -1,5 +1,25 @@ // Code generated - DO NOT EDIT. // This file is a generated binding and any manual changes will be lost. + package bindings +import ( + "encoding/json" + + "github.com/ethereum-optimism/optimism/op-bindings/solc" +) + +const L1BlockStorageLayoutJSON = "{\"storage\":[{\"astId\":1909,\"contract\":\"contracts/L2/L1Block.sol:L1Block\",\"label\":\"number\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_uint64\"},{\"astId\":1912,\"contract\":\"contracts/L2/L1Block.sol:L1Block\",\"label\":\"timestamp\",\"offset\":8,\"slot\":\"0\",\"type\":\"t_uint64\"},{\"astId\":1915,\"contract\":\"contracts/L2/L1Block.sol:L1Block\",\"label\":\"basefee\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_uint256\"},{\"astId\":1918,\"contract\":\"contracts/L2/L1Block.sol:L1Block\",\"label\":\"hash\",\"offset\":0,\"slot\":\"2\",\"type\":\"t_bytes32\"},{\"astId\":1921,\"contract\":\"contracts/L2/L1Block.sol:L1Block\",\"label\":\"sequenceNumber\",\"offset\":0,\"slot\":\"3\",\"type\":\"t_uint64\"}],\"types\":{\"t_bytes32\":{\"encoding\":\"inplace\",\"label\":\"bytes32\",\"numberOfBytes\":\"32\"},\"t_uint256\":{\"encoding\":\"inplace\",\"label\":\"uint256\",\"numberOfBytes\":\"32\"},\"t_uint64\":{\"encoding\":\"inplace\",\"label\":\"uint64\",\"numberOfBytes\":\"8\"}}}" + +var L1BlockStorageLayout = new(solc.StorageLayout) + var L1BlockDeployedBin = "0x608060405234801561001057600080fd5b50600436106100885760003560e01c806364ca23ef1161005b57806364ca23ef146100dc5780638381f58a14610109578063b80777ea1461011d578063e591b2821461013d57600080fd5b8063042c2f571461008d57806309bd5a60146100a257806354fd4d50146100be5780635cf24969146100d3575b600080fd5b6100a061009b3660046104a6565b61017d565b005b6100ab60025481565b6040519081526020015b60405180910390f35b6100c66102a9565b6040516100b5919061052d565b6100ab60015481565b6003546100f09067ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016100b5565b6000546100f09067ffffffffffffffff1681565b6000546100f09068010000000000000000900467ffffffffffffffff1681565b61015873deaddeaddeaddeaddeaddeaddeaddeaddead000181565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100b5565b3373deaddeaddeaddeaddeaddeaddeaddeaddead000114610224576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4c31426c6f636b3a206f6e6c7920746865206465706f7369746f72206163636f60448201527f756e742063616e20736574204c3120626c6f636b2076616c7565730000000000606482015260840160405180910390fd5b6000805467ffffffffffffffff9687167fffffffffffffffffffffffffffffffff0000000000000000000000000000000090911617680100000000000000009587169590950294909417909355600191909155600255600380547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001691909216179055565b60606102d47f000000000000000000000000000000000000000000000000000000000000000061034c565b6102fd7f000000000000000000000000000000000000000000000000000000000000000061034c565b6103267f000000000000000000000000000000000000000000000000000000000000000061034c565b6040516020016103389392919061057e565b604051602081830303815290604052905090565b60608160000361038f57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b81156103b957806103a381610623565b91506103b29050600a8361068a565b9150610393565b60008167ffffffffffffffff8111156103d4576103d461069e565b6040519080825280601f01601f1916602001820160405280156103fe576020820181803683370190505b5090505b8415610481576104136001836106cd565b9150610420600a866106e4565b61042b9060306106f8565b60f81b81838151811061044057610440610710565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061047a600a8661068a565b9450610402565b949350505050565b803567ffffffffffffffff811681146104a157600080fd5b919050565b600080600080600060a086880312156104be57600080fd5b6104c786610489565b94506104d560208701610489565b935060408601359250606086013591506104f160808701610489565b90509295509295909350565b60005b83811015610518578181015183820152602001610500565b83811115610527576000848401525b50505050565b602081526000825180602084015261054c8160408501602087016104fd565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b600084516105908184602089016104fd565b80830190507f2e0000000000000000000000000000000000000000000000000000000000000080825285516105cc816001850160208a016104fd565b600192019182015283516105e78160028401602088016104fd565b0160020195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610654576106546105f4565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826106995761069961065b565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000828210156106df576106df6105f4565b500390565b6000826106f3576106f361065b565b500690565b6000821982111561070b5761070b6105f4565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea164736f6c634300080f000a" + +func init() { + if err := json.Unmarshal([]byte(L1BlockStorageLayoutJSON), L1BlockStorageLayout); err != nil { + panic(err) + } + + layouts["L1Block"] = L1BlockStorageLayout + deployedBytecodes["L1Block"] = L1BlockDeployedBin +} diff --git a/op-bindings/bindings/l1blocknumber_more.go b/op-bindings/bindings/l1blocknumber_more.go new file mode 100755 index 000000000000..2e5d4b7917c9 --- /dev/null +++ b/op-bindings/bindings/l1blocknumber_more.go @@ -0,0 +1,25 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package bindings + +import ( + "encoding/json" + + "github.com/ethereum-optimism/optimism/op-bindings/solc" +) + +const L1BlockNumberStorageLayoutJSON = "{\"storage\":null,\"types\":null}" + +var L1BlockNumberStorageLayout = new(solc.StorageLayout) + +var L1BlockNumberDeployedBin = "0x60806040526004361061002d5760003560e01c806354fd4d5014610052578063b9b3efe91461007d57610048565b3661004857600061003c6100a0565b90508060005260206000f35b600061003c6100a0565b34801561005e57600080fd5b50610067610134565b6040516100749190610344565b60405180910390f35b34801561008957600080fd5b506100926100a0565b604051908152602001610074565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638381f58a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610101573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101259190610395565b67ffffffffffffffff16905090565b606061015f7f00000000000000000000000000000000000000000000000000000000000000006101d7565b6101887f00000000000000000000000000000000000000000000000000000000000000006101d7565b6101b17f00000000000000000000000000000000000000000000000000000000000000006101d7565b6040516020016101c3939291906103c6565b604051602081830303815290604052905090565b60608160000361021a57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115610244578061022e8161046b565b915061023d9050600a836104d2565b915061021e565b60008167ffffffffffffffff81111561025f5761025f6104e6565b6040519080825280601f01601f191660200182016040528015610289576020820181803683370190505b5090505b841561030c5761029e600183610515565b91506102ab600a8661052c565b6102b6906030610540565b60f81b8183815181106102cb576102cb610558565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610305600a866104d2565b945061028d565b949350505050565b60005b8381101561032f578181015183820152602001610317565b8381111561033e576000848401525b50505050565b6020815260008251806020840152610363816040850160208701610314565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6000602082840312156103a757600080fd5b815167ffffffffffffffff811681146103bf57600080fd5b9392505050565b600084516103d8818460208901610314565b80830190507f2e000000000000000000000000000000000000000000000000000000000000008082528551610414816001850160208a01610314565b6001920191820152835161042f816002840160208801610314565b0160020195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361049c5761049c61043c565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826104e1576104e16104a3565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000828210156105275761052761043c565b500390565b60008261053b5761053b6104a3565b500690565b600082198211156105535761055361043c565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea164736f6c634300080f000a" + +func init() { + if err := json.Unmarshal([]byte(L1BlockNumberStorageLayoutJSON), L1BlockNumberStorageLayout); err != nil { + panic(err) + } + + layouts["L1BlockNumber"] = L1BlockNumberStorageLayout + deployedBytecodes["L1BlockNumber"] = L1BlockNumberDeployedBin +} diff --git a/op-bindings/bindings/l2crossdomainmessenger_more.go b/op-bindings/bindings/l2crossdomainmessenger_more.go new file mode 100755 index 000000000000..18d16ec40362 --- /dev/null +++ b/op-bindings/bindings/l2crossdomainmessenger_more.go @@ -0,0 +1,25 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package bindings + +import ( + "encoding/json" + + "github.com/ethereum-optimism/optimism/op-bindings/solc" +) + +const L2CrossDomainMessengerStorageLayoutJSON = "{\"storage\":[{\"astId\":26067,\"contract\":\"contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger\",\"label\":\"_initialized\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_uint8\"},{\"astId\":26070,\"contract\":\"contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger\",\"label\":\"_initializing\",\"offset\":1,\"slot\":\"0\",\"type\":\"t_bool\"},{\"astId\":26681,\"contract\":\"contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_array(t_uint256)50_storage\"},{\"astId\":25939,\"contract\":\"contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger\",\"label\":\"_owner\",\"offset\":0,\"slot\":\"51\",\"type\":\"t_address\"},{\"astId\":26059,\"contract\":\"contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"52\",\"type\":\"t_array(t_uint256)49_storage\"},{\"astId\":26232,\"contract\":\"contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger\",\"label\":\"_paused\",\"offset\":0,\"slot\":\"101\",\"type\":\"t_bool\"},{\"astId\":26337,\"contract\":\"contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"102\",\"type\":\"t_array(t_uint256)49_storage\"},{\"astId\":26352,\"contract\":\"contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger\",\"label\":\"_status\",\"offset\":0,\"slot\":\"151\",\"type\":\"t_uint256\"},{\"astId\":26396,\"contract\":\"contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"152\",\"type\":\"t_array(t_uint256)49_storage\"},{\"astId\":23674,\"contract\":\"contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger\",\"label\":\"successfulMessages\",\"offset\":0,\"slot\":\"201\",\"type\":\"t_mapping(t_bytes32,t_bool)\"},{\"astId\":23677,\"contract\":\"contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger\",\"label\":\"xDomainMsgSender\",\"offset\":0,\"slot\":\"202\",\"type\":\"t_address\"},{\"astId\":23680,\"contract\":\"contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger\",\"label\":\"msgNonce\",\"offset\":0,\"slot\":\"203\",\"type\":\"t_uint240\"},{\"astId\":23683,\"contract\":\"contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger\",\"label\":\"otherMessenger\",\"offset\":0,\"slot\":\"204\",\"type\":\"t_address\"},{\"astId\":23688,\"contract\":\"contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger\",\"label\":\"receivedMessages\",\"offset\":0,\"slot\":\"205\",\"type\":\"t_mapping(t_bytes32,t_bool)\"},{\"astId\":23693,\"contract\":\"contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger\",\"label\":\"blockedSystemAddresses\",\"offset\":0,\"slot\":\"206\",\"type\":\"t_mapping(t_address,t_bool)\"}],\"types\":{\"t_address\":{\"encoding\":\"inplace\",\"label\":\"address\",\"numberOfBytes\":\"20\"},\"t_array(t_uint256)49_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[49]\",\"numberOfBytes\":\"1568\"},\"t_array(t_uint256)50_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[50]\",\"numberOfBytes\":\"1600\"},\"t_bool\":{\"encoding\":\"inplace\",\"label\":\"bool\",\"numberOfBytes\":\"1\"},\"t_bytes32\":{\"encoding\":\"inplace\",\"label\":\"bytes32\",\"numberOfBytes\":\"32\"},\"t_mapping(t_address,t_bool)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e bool)\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_bool\"},\"t_mapping(t_bytes32,t_bool)\":{\"encoding\":\"mapping\",\"label\":\"mapping(bytes32 =\u003e bool)\",\"numberOfBytes\":\"32\",\"key\":\"t_bytes32\",\"value\":\"t_bool\"},\"t_uint240\":{\"encoding\":\"inplace\",\"label\":\"uint240\",\"numberOfBytes\":\"30\"},\"t_uint256\":{\"encoding\":\"inplace\",\"label\":\"uint256\",\"numberOfBytes\":\"32\"},\"t_uint8\":{\"encoding\":\"inplace\",\"label\":\"uint8\",\"numberOfBytes\":\"1\"}}}" + +var L2CrossDomainMessengerStorageLayout = new(solc.StorageLayout) + +var L2CrossDomainMessengerDeployedBin = "0x6080604052600436106101805760003560e01c80637dea7cc3116100d6578063c4d66de81161007f578063ecc7042811610059578063ecc704281461042d578063f2fde38b14610492578063f69f8151146104b257600080fd5b8063c4d66de8146103cd578063d764ad0b146103ed578063db505d801461040057600080fd5b8063a7119869116100b0578063a711986914610352578063b1b1b2091461037d578063b28ade25146103ad57600080fd5b80637dea7cc3146102fb5780638456cb59146103125780638da5cb5b1461032757600080fd5b80633f827a5a116101385780635c975abb116101125780635c975abb146102945780636e296e45146102ac578063715018a6146102e657600080fd5b80633f827a5a1461020a5780634b134ce71461023257806354fd4d501461027257600080fd5b80632828d7e8116101695780632828d7e8146101ca5780633dbb202b146101e05780633f4ba83a146101f557600080fd5b8063028f85f7146101855780630c568498146101b4575b600080fd5b34801561019157600080fd5b5061019a601081565b60405163ffffffff90911681526020015b60405180910390f35b3480156101c057600080fd5b5061019a6103e881565b3480156101d657600080fd5b5061019a6103f881565b6101f36101ee366004611ed0565b6104e2565b005b34801561020157600080fd5b506101f3610745565b34801561021657600080fd5b5061021f600181565b60405161ffff90911681526020016101ab565b34801561023e57600080fd5b5061026261024d366004611f35565b60ce6020526000908152604090205460ff1681565b60405190151581526020016101ab565b34801561027e57600080fd5b50610287610757565b6040516101ab9190611fd1565b3480156102a057600080fd5b5060655460ff16610262565b3480156102b857600080fd5b506102c16107fa565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101ab565b3480156102f257600080fd5b506101f36108e6565b34801561030757600080fd5b5061019a62030d4081565b34801561031e57600080fd5b506101f36108f8565b34801561033357600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff166102c1565b34801561035e57600080fd5b5060cc5473ffffffffffffffffffffffffffffffffffffffff166102c1565b34801561038957600080fd5b50610262610398366004611fe4565b60c96020526000908152604090205460ff1681565b3480156103b957600080fd5b5061019a6103c8366004611ffd565b610908565b3480156103d957600080fd5b506101f36103e8366004611f35565b61094e565b6101f36103fb366004612051565b610bc9565b34801561040c57600080fd5b5060cc546102c19073ffffffffffffffffffffffffffffffffffffffff1681565b34801561043957600080fd5b5061048460cb547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016101ab565b34801561049e57600080fd5b506101f36104ad366004611f35565b611278565b3480156104be57600080fd5b506102626104cd366004611fe4565b60cd6020526000908152604090205460ff1681565b60cc5461061a9073ffffffffffffffffffffffffffffffffffffffff1661050a858585610908565b63ffffffff16347fd764ad0b0000000000000000000000000000000000000000000000000000000061057c60cb547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b338a34898c8c604051602401610598979695949392919061211c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261134b565b8373ffffffffffffffffffffffffffffffffffffffff167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a33858561069f60cb547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b866040516106b195949392919061217b565b60405180910390a260405134815233907f8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d5469060200160405180910390a2505060cb80547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808216600101167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b61074d6113d9565b61075561145a565b565b60606107827f00000000000000000000000000000000000000000000000000000000000000006114d7565b6107ab7f00000000000000000000000000000000000000000000000000000000000000006114d7565b6107d47f00000000000000000000000000000000000000000000000000000000000000006114d7565b6040516020016107e6939291906121c9565b604051602081830303815290604052905090565b60ca5460009073ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2153016108c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f43726f7373446f6d61696e4d657373656e6765723a2078446f6d61696e4d657360448201527f7361676553656e646572206973206e6f7420736574000000000000000000000060648201526084015b60405180910390fd5b5060ca5473ffffffffffffffffffffffffffffffffffffffff1690565b6108ee6113d9565b610755600061160c565b6109006113d9565b610755611683565b600062030d4061091960108561226e565b6103e86109286103f88661226e565b61093291906122c9565b61093c91906122ec565b61094691906122ec565b949350505050565b600054610100900460ff161580801561096e5750600054600160ff909116105b806109885750303b158015610988575060005460ff166001145b610a14576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108c0565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610a7257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b60408051600280825260608201835260009260208301908036833701905050905073420000000000000000000000000000000000000781600081518110610abb57610abb612343565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073420000000000000000000000000000000000000081600181518110610b1d57610b1d612343565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610b6183826116de565b508015610bc557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b600260975403610c35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108c0565b6002609755610c42611879565b6000610c88888888888888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118e692505050565b9050610cd160cc54337fffffffffffffffffffffffffeeeeffffffffffffffffffffffffffffffffeeef0173ffffffffffffffffffffffffffffffffffffffff90811691161490565b15610d6a57843414610d65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f43726f7373446f6d61696e4d657373656e6765723a206d69736d61746368656460448201527f206d6573736167652076616c756500000000000000000000000000000000000060648201526084016108c0565b610ebc565b3415610e1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605060248201527f43726f7373446f6d61696e4d657373656e6765723a2076616c7565206d75737460448201527f206265207a65726f20756e6c657373206d6573736167652069732066726f6d2060648201527f612073797374656d206164647265737300000000000000000000000000000000608482015260a4016108c0565b600081815260cd602052604090205460ff16610ebc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520636160448201527f6e6e6f74206265207265706c617965640000000000000000000000000000000060648201526084016108c0565b73ffffffffffffffffffffffffffffffffffffffff8616600090815260ce602052604090205460ff1615610f98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f43726f7373446f6d61696e4d657373656e6765723a2063616e6e6f742073656e60448201527f64206d65737361676520746f20626c6f636b65642073797374656d206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a4016108c0565b600081815260c9602052604090205460ff1615611037576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520686160448201527f7320616c7265616479206265656e2072656c617965640000000000000000000060648201526084016108c0565b61104361afc885612372565b5a10156110d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a20696e737566666963696560448201527f6e742067617320746f2072656c6179206d65737361676500000000000000000060648201526084016108c0565b60ca80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8916179055600061116e8761112661138861afc861238a565b5a611131919061238a565b8887878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506119b492505050565b60ca80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055905080151560010361120957600082815260c9602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a2611268565b600082815260cd602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a25b5050600160975550505050505050565b6112806113d9565b73ffffffffffffffffffffffffffffffffffffffff8116611323576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016108c0565b61132c8161160c565b50565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b6040517fc2b3e5ac0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000009063c2b3e5ac9084906113a1908890889087906004016123a1565b6000604051808303818588803b1580156113ba57600080fd5b505af11580156113ce573d6000803e3d6000fd5b505050505050505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108c0565b6114626119ce565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b60608160000361151a57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115611544578061152e816123e9565b915061153d9050600a83612421565b915061151e565b60008167ffffffffffffffff81111561155f5761155f612314565b6040519080825280601f01601f191660200182016040528015611589576020820181803683370190505b5090505b84156109465761159e60018361238a565b91506115ab600a86612435565b6115b6906030612372565b60f81b8183815181106115cb576115cb612343565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611605600a86612421565b945061158d565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61168b611879565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586114ad3390565b600054610100900460ff16611775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108c0565b60ca805461dead7fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560cc805490911673ffffffffffffffffffffffffffffffffffffffff841617905560005b815181101561185857600160ce60008484815181106117e9576117e9612343565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff16825281019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905580611850816123e9565b9150506117c8565b50611861611a3a565b611869611ad1565b611871611b71565b610bc5611c32565b60655460ff1615610755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016108c0565b600060f087901c808203611908576119008688858b611cd0565b9150506119aa565b8061ffff1660010361192257611900888888888888611cef565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f48617368696e673a20756e6b6e6f776e2063726f737320646f6d61696e206d6560448201527f73736167652076657273696f6e0000000000000000000000000000000000000060648201526084016108c0565b9695505050505050565b600080600080845160208601878a8af19695505050505050565b60655460ff16610755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016108c0565b600054610100900460ff16610755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108c0565b600054610100900460ff16611b68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108c0565b6107553361160c565b600054610100900460ff16611c08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108c0565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b600054610100900460ff16611cc9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108c0565b6001609755565b6000611cde85858585611d12565b805190602001209050949350505050565b6000611cff878787878787611dab565b8051906020012090509695505050505050565b606084848484604051602401611d2b9493929190612449565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b6060868686868686604051602401611dc896959493929190612493565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd764ad0b0000000000000000000000000000000000000000000000000000000017905290509695505050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611e6e57600080fd5b919050565b60008083601f840112611e8557600080fd5b50813567ffffffffffffffff811115611e9d57600080fd5b602083019150836020828501011115611eb557600080fd5b9250929050565b803563ffffffff81168114611e6e57600080fd5b60008060008060608587031215611ee657600080fd5b611eef85611e4a565b9350602085013567ffffffffffffffff811115611f0b57600080fd5b611f1787828801611e73565b9094509250611f2a905060408601611ebc565b905092959194509250565b600060208284031215611f4757600080fd5b611f5082611e4a565b9392505050565b60005b83811015611f72578181015183820152602001611f5a565b83811115611f81576000848401525b50505050565b60008151808452611f9f816020860160208601611f57565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611f506020830184611f87565b600060208284031215611ff657600080fd5b5035919050565b60008060006040848603121561201257600080fd5b833567ffffffffffffffff81111561202957600080fd5b61203586828701611e73565b9094509250612048905060208501611ebc565b90509250925092565b600080600080600080600060c0888a03121561206c57600080fd5b8735965061207c60208901611e4a565b955061208a60408901611e4a565b9450606088013593506080880135925060a088013567ffffffffffffffff8111156120b457600080fd5b6120c08a828b01611e73565b989b979a50959850939692959293505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b878152600073ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401525085606083015263ffffffff8516608083015260c060a083015261216e60c0830184866120d3565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff861681526080602082015260006121ab6080830186886120d3565b905083604083015263ffffffff831660608301529695505050505050565b600084516121db818460208901611f57565b80830190507f2e000000000000000000000000000000000000000000000000000000000000008082528551612217816001850160208a01611f57565b60019201918201528351612232816002840160208801611f57565b0160020195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600063ffffffff808316818516818304811182151516156122915761229161223f565b02949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600063ffffffff808416806122e0576122e061229a565b92169190910492915050565b600063ffffffff80831681851680830382111561230b5761230b61223f565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082198211156123855761238561223f565b500190565b60008282101561239c5761239c61223f565b500390565b73ffffffffffffffffffffffffffffffffffffffff8416815267ffffffffffffffff831660208201526060604082015260006123e06060830184611f87565b95945050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361241a5761241a61223f565b5060010190565b6000826124305761243061229a565b500490565b6000826124445761244461229a565b500690565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250608060408301526124826080830185611f87565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a08301526124de60c0830184611f87565b9897505050505050505056fea164736f6c634300080f000a" + +func init() { + if err := json.Unmarshal([]byte(L2CrossDomainMessengerStorageLayoutJSON), L2CrossDomainMessengerStorageLayout); err != nil { + panic(err) + } + + layouts["L2CrossDomainMessenger"] = L2CrossDomainMessengerStorageLayout + deployedBytecodes["L2CrossDomainMessenger"] = L2CrossDomainMessengerDeployedBin +} diff --git a/op-bindings/bindings/l2standardbridge_more.go b/op-bindings/bindings/l2standardbridge_more.go new file mode 100755 index 000000000000..3360e55e6f6e --- /dev/null +++ b/op-bindings/bindings/l2standardbridge_more.go @@ -0,0 +1,25 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package bindings + +import ( + "encoding/json" + + "github.com/ethereum-optimism/optimism/op-bindings/solc" +) + +const L2StandardBridgeStorageLayoutJSON = "{\"storage\":[{\"astId\":26067,\"contract\":\"contracts/L2/L2StandardBridge.sol:L2StandardBridge\",\"label\":\"_initialized\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_uint8\"},{\"astId\":26070,\"contract\":\"contracts/L2/L2StandardBridge.sol:L2StandardBridge\",\"label\":\"_initializing\",\"offset\":1,\"slot\":\"0\",\"type\":\"t_bool\"},{\"astId\":25154,\"contract\":\"contracts/L2/L2StandardBridge.sol:L2StandardBridge\",\"label\":\"messenger\",\"offset\":2,\"slot\":\"0\",\"type\":\"t_contract(CrossDomainMessenger)24067\"},{\"astId\":25158,\"contract\":\"contracts/L2/L2StandardBridge.sol:L2StandardBridge\",\"label\":\"otherBridge\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_contract(StandardBridge)25835\"},{\"astId\":25165,\"contract\":\"contracts/L2/L2StandardBridge.sol:L2StandardBridge\",\"label\":\"deposits\",\"offset\":0,\"slot\":\"2\",\"type\":\"t_mapping(t_address,t_mapping(t_address,t_uint256))\"}],\"types\":{\"t_address\":{\"encoding\":\"inplace\",\"label\":\"address\",\"numberOfBytes\":\"20\"},\"t_bool\":{\"encoding\":\"inplace\",\"label\":\"bool\",\"numberOfBytes\":\"1\"},\"t_contract(CrossDomainMessenger)24067\":{\"encoding\":\"inplace\",\"label\":\"contract CrossDomainMessenger\",\"numberOfBytes\":\"20\"},\"t_contract(StandardBridge)25835\":{\"encoding\":\"inplace\",\"label\":\"contract StandardBridge\",\"numberOfBytes\":\"20\"},\"t_mapping(t_address,t_mapping(t_address,t_uint256))\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e mapping(address =\u003e uint256))\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_mapping(t_address,t_uint256)\"},\"t_mapping(t_address,t_uint256)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e uint256)\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_uint256\"},\"t_uint256\":{\"encoding\":\"inplace\",\"label\":\"uint256\",\"numberOfBytes\":\"32\"},\"t_uint8\":{\"encoding\":\"inplace\",\"label\":\"uint8\",\"numberOfBytes\":\"1\"}}}" + +var L2StandardBridgeStorageLayout = new(solc.StorageLayout) + +var L2StandardBridgeDeployedBin = "0x6080604052600436106100ec5760003560e01c8063662a633a1161008a578063af565a1311610059578063af565a131461032f578063c4d66de81461034f578063c89701a21461036f578063e11013dd1461039c57600080fd5b8063662a633a146102a357806387087623146102b65780638f601f66146102d6578063a3a795481461031c57600080fd5b806332b7006d116100c657806332b7006d146101f15780633cb747bf14610204578063540abf731461026157806354fd4d501461028157600080fd5b80630166a07a146101ab57806309fc8843146101cb5780631635f5fd146101de57600080fd5b366101a657333b15610185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f4100000000000000000060648201526084015b60405180910390fd5b6101a433333462030d40604051806020016040528060008152506103cb565b005b600080fd5b3480156101b757600080fd5b506101a46101c636600461248e565b610567565b6101a46101d936600461253f565b6108b2565b6101a46101ec366004612592565b610989565b6101a46101ff366004612605565b610d6e565b34801561021057600080fd5b506000546102379062010000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561026d57600080fd5b506101a461027c366004612659565b610e13565b34801561028d57600080fd5b50610296610e23565b6040516102589190612746565b6101a46102b136600461248e565b610ec6565b3480156102c257600080fd5b506101a46102d1366004612759565b610fb3565b3480156102e257600080fd5b5061030e6102f13660046127dc565b600260209081526000928352604080842090915290825290205481565b604051908152602001610258565b6101a461032a366004612759565b611052565b34801561033b57600080fd5b506101a461034a366004612815565b611061565b34801561035b57600080fd5b506101a461036a366004612866565b611374565b34801561037b57600080fd5b506001546102379073ffffffffffffffffffffffffffffffffffffffff1681565b6101a46103aa366004612883565b61151d565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f2849b43074093a05396b6f2a937dee8565b15a48a7b3d4bffb732a5017380af5858460405161042a9291906128e6565b60405180910390a360005460015460405173ffffffffffffffffffffffffffffffffffffffff62010000909304831692633dbb202b9287929116907f1635f5fd000000000000000000000000000000000000000000000000000000009061049b908b908b9086908a906024016128ff565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e086901b909216825261052e92918890600401612948565b6000604051808303818588803b15801561054757600080fd5b505af115801561055b573d6000803e3d6000fd5b50505050505050505050565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff16331480156106495750600154600054604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff938416936201000090930490921691636e296e45916004808201926020929091908290030181865afa15801561060d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610631919061298d565b73ffffffffffffffffffffffffffffffffffffffff16145b6106fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a40161017c565b6040517faf565a1300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808916600483015280881660248301528516604482015260648101849052309063af565a1390608401600060405180830381600087803b15801561077957600080fd5b505af192505050801561078a575060015b6108265761079f878786888760008888611560565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f2755817676249910615f0a6a240ad225abe5343df8d527f7294c4af36a92009a8787878760405161081994939291906129f3565b60405180910390a46108a9565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fd59c65b35445225835c83f50b6ede06a7be047d22e357073e250d9af537518cd878787876040516108a094939291906129f3565b60405180910390a45b50505050505050565b333b15610941576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f41000000000000000000606482015260840161017c565b6109843333348686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506103cb92505050565b505050565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff1633148015610a6b5750600154600054604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff938416936201000090930490921691636e296e45916004808201926020929091908290030181865afa158015610a2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a53919061298d565b73ffffffffffffffffffffffffffffffffffffffff16145b610b1d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20746865206f7468657220627269646760648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a40161017c565b823414610bac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f5374616e646172644272696467653a20616d6f756e742073656e7420646f657360448201527f206e6f74206d6174636820616d6f756e74207265717569726564000000000000606482015260840161017c565b3073ffffffffffffffffffffffffffffffffffffffff851603610c51576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a2063616e6e6f742073656e6420746f207360448201527f656c660000000000000000000000000000000000000000000000000000000000606482015260840161017c565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f31b2166ff604fc5672ea5df08a78081d2bc6d746cadce880747f3643d819e83d858585604051610cb293929190612a29565b60405180910390a36000610cd7855a866040518060200160405280600081525061171d565b905080610d66576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5374616e646172644272696467653a20455448207472616e736665722066616960448201527f6c65640000000000000000000000000000000000000000000000000000000000606482015260840161017c565b505050505050565b333b15610dfd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f41000000000000000000606482015260840161017c565b610e0c85333387878787611737565b5050505050565b6108a9878733888888888861196e565b6060610e4e7f0000000000000000000000000000000000000000000000000000000000000000611c18565b610e777f0000000000000000000000000000000000000000000000000000000000000000611c18565b610ea07f0000000000000000000000000000000000000000000000000000000000000000611c18565b604051602001610eb293929190612a4c565b604051602081830303815290604052905090565b73ffffffffffffffffffffffffffffffffffffffff8716158015610f13575073ffffffffffffffffffffffffffffffffffffffff861673deaddeaddeaddeaddeaddeaddeaddeaddead0000145b15610f2a57610f258585858585610989565b610f39565b610f3986888787878787610567565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fb0444523268717a02698be47d0803aa7468c00acbed2f8bd93a0459cde61dd89878787876040516108a094939291906129f3565b333b15611042576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642066726f6d20616e20454f41000000000000000000606482015260840161017c565b610d66868633338888888861196e565b610d6686338787878787611737565b3330146110f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c60448201527f792062652063616c6c65642062792073656c6600000000000000000000000000606482015260840161017c565b3073ffffffffffffffffffffffffffffffffffffffff851603611195576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5374616e646172644272696467653a206c6f63616c20746f6b656e2063616e6e60448201527f6f742062652073656c6600000000000000000000000000000000000000000000606482015260840161017c565b61119e84611d55565b156112ec576111ad8484611d87565b61125f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a40161017c565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390528516906340c10f1990604401600060405180830381600087803b1580156112cf57600080fd5b505af11580156112e3573d6000803e3d6000fd5b5050505061136e565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526002602090815260408083209387168352929052205461132a908290612af1565b73ffffffffffffffffffffffffffffffffffffffff80861660008181526002602090815260408083209489168352939052919091209190915561136e908383611e2e565b50505050565b600054610100900460ff16158080156113945750600054600160ff909116105b806113ae5750303b1580156113ae575060005460ff166001145b61143a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161017c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561149857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6114b673420000000000000000000000000000000000000783611f02565b801561151957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b61136e3385348686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506103cb92505050565b60005460015460405173ffffffffffffffffffffffffffffffffffffffff62010000909304831692633dbb202b9216907f0166a07a00000000000000000000000000000000000000000000000000000000906115cc908c908e908d908d908d908c908c90602401612b08565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e085901b909216825261165f92918890600401612948565b600060405180830381600087803b15801561167957600080fd5b505af115801561168d573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167f7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf8888878760405161170b94939291906129f3565b60405180910390a45050505050505050565b600080600080845160208601878a8af19695505050505050565b60008773ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381865afa158015611784573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a8919061298d565b90507fffffffffffffffffffffffff215221522152215221522152215221522153000073ffffffffffffffffffffffffffffffffffffffff8916016118e45784341461189c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f4c325374616e646172644272696467653a20455448207769746864726177616c60448201527f73206d75737420696e636c7564652073756666696369656e742045544820766160648201527f6c75650000000000000000000000000000000000000000000000000000000000608482015260a40161017c565b6118df8787878787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506103cb92505050565b6118f4565b6118f4888289898989898961196e565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f73d170910aba9e6d50b102db522b1dbcd796216f5128b445aa2135272886497e8989888860405161170b94939291906129f3565b3073ffffffffffffffffffffffffffffffffffffffff891603611a13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5374616e646172644272696467653a206c6f63616c20746f6b656e2063616e6e60448201527f6f742062652073656c6600000000000000000000000000000000000000000000606482015260840161017c565b611a1c88611d55565b15611b6a57611a2b8888611d87565b611add576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f5374616e646172644272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433230206c60648201527f6f63616c20746f6b656e00000000000000000000000000000000000000000000608482015260a40161017c565b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015260248201869052891690639dc29fac90604401600060405180830381600087803b158015611b4d57600080fd5b505af1158015611b61573d6000803e3d6000fd5b50505050611bfe565b611b8c73ffffffffffffffffffffffffffffffffffffffff891687308761200e565b73ffffffffffffffffffffffffffffffffffffffff8089166000908152600260209081526040808320938b1683529290522054611bca908590612b65565b73ffffffffffffffffffffffffffffffffffffffff808a166000908152600260209081526040808320938c16835292905220555b611c0e8888888888888888611560565b5050505050505050565b606081600003611c5b57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115611c855780611c6f81612b7d565b9150611c7e9050600a83612be4565b9150611c5f565b60008167ffffffffffffffff811115611ca057611ca0612bf8565b6040519080825280601f01601f191660200182016040528015611cca576020820181803683370190505b5090505b8415611d4d57611cdf600183612af1565b9150611cec600a86612c27565b611cf7906030612b65565b60f81b818381518110611d0c57611d0c612c3b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611d46600a86612be4565b9450611cce565b949350505050565b6000611d81827f1d1d8b630000000000000000000000000000000000000000000000000000000061206c565b92915050565b60008273ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df8919061298d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614905092915050565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526109849084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261208f565b600054610100900460ff16611f99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161017c565b600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000073ffffffffffffffffffffffffffffffffffffffff94851602179055600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909216179055565b60405173ffffffffffffffffffffffffffffffffffffffff8085166024830152831660448201526064810182905261136e9085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401611e80565b60006120778361219b565b8015612088575061208883836121ff565b9392505050565b60006120f1826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166122ce9092919063ffffffff16565b805190915015610984578080602001905181019061210f9190612c6a565b610984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161017c565b60006121c7827f01ffc9a7000000000000000000000000000000000000000000000000000000006121ff565b8015611d8157506121f8827fffffffff000000000000000000000000000000000000000000000000000000006121ff565b1592915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000008316602480830191909152825180830390910181526044909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825160009392849283928392918391908a617530fa92503d915060005190508280156122b7575060208210155b80156122c35750600081115b979650505050505050565b6060611d4d84846000858573ffffffffffffffffffffffffffffffffffffffff85163b612357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161017c565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516123809190612c8c565b60006040518083038185875af1925050503d80600081146123bd576040519150601f19603f3d011682016040523d82523d6000602084013e6123c2565b606091505b50915091506122c3828286606083156123dc575081612088565b8251156123ec5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161017c9190612746565b73ffffffffffffffffffffffffffffffffffffffff8116811461244257600080fd5b50565b60008083601f84011261245757600080fd5b50813567ffffffffffffffff81111561246f57600080fd5b60208301915083602082850101111561248757600080fd5b9250929050565b600080600080600080600060c0888a0312156124a957600080fd5b87356124b481612420565b965060208801356124c481612420565b955060408801356124d481612420565b945060608801356124e481612420565b93506080880135925060a088013567ffffffffffffffff81111561250757600080fd5b6125138a828b01612445565b989b979a50959850939692959293505050565b803563ffffffff8116811461253a57600080fd5b919050565b60008060006040848603121561255457600080fd5b61255d84612526565b9250602084013567ffffffffffffffff81111561257957600080fd5b61258586828701612445565b9497909650939450505050565b6000806000806000608086880312156125aa57600080fd5b85356125b581612420565b945060208601356125c581612420565b935060408601359250606086013567ffffffffffffffff8111156125e857600080fd5b6125f488828901612445565b969995985093965092949392505050565b60008060008060006080868803121561261d57600080fd5b853561262881612420565b94506020860135935061263d60408701612526565b9250606086013567ffffffffffffffff8111156125e857600080fd5b600080600080600080600060c0888a03121561267457600080fd5b873561267f81612420565b9650602088013561268f81612420565b9550604088013561269f81612420565b9450606088013593506126b460808901612526565b925060a088013567ffffffffffffffff81111561250757600080fd5b60005b838110156126eb5781810151838201526020016126d3565b8381111561136e5750506000910152565b600081518084526127148160208601602086016126d0565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061208860208301846126fc565b60008060008060008060a0878903121561277257600080fd5b863561277d81612420565b9550602087013561278d81612420565b9450604087013593506127a260608801612526565b9250608087013567ffffffffffffffff8111156127be57600080fd5b6127ca89828a01612445565b979a9699509497509295939492505050565b600080604083850312156127ef57600080fd5b82356127fa81612420565b9150602083013561280a81612420565b809150509250929050565b6000806000806080858703121561282b57600080fd5b843561283681612420565b9350602085013561284681612420565b9250604085013561285681612420565b9396929550929360600135925050565b60006020828403121561287857600080fd5b813561208881612420565b6000806000806060858703121561289957600080fd5b84356128a481612420565b93506128b260208601612526565b9250604085013567ffffffffffffffff8111156128ce57600080fd5b6128da87828801612445565b95989497509550505050565b828152604060208201526000611d4d60408301846126fc565b600073ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152508360408301526080606083015261293e60808301846126fc565b9695505050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815260606020820152600061297760608301856126fc565b905063ffffffff83166040830152949350505050565b60006020828403121561299f57600080fd5b815161208881612420565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8516815283602082015260606040820152600061293e6060830184866129aa565b838152604060208201526000612a436040830184866129aa565b95945050505050565b60008451612a5e8184602089016126d0565b80830190507f2e000000000000000000000000000000000000000000000000000000000000008082528551612a9a816001850160208a016126d0565b60019201918201528351612ab58160028401602088016126d0565b0160020195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015612b0357612b03612ac2565b500390565b600073ffffffffffffffffffffffffffffffffffffffff808a1683528089166020840152808816604084015280871660608401525084608083015260c060a0830152612b5860c0830184866129aa565b9998505050505050505050565b60008219821115612b7857612b78612ac2565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612bae57612bae612ac2565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082612bf357612bf3612bb5565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082612c3657612c36612bb5565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215612c7c57600080fd5b8151801515811461208857600080fd5b60008251612c9e8184602087016126d0565b919091019291505056fea164736f6c634300080f000a" + +func init() { + if err := json.Unmarshal([]byte(L2StandardBridgeStorageLayoutJSON), L2StandardBridgeStorageLayout); err != nil { + panic(err) + } + + layouts["L2StandardBridge"] = L2StandardBridgeStorageLayout + deployedBytecodes["L2StandardBridge"] = L2StandardBridgeDeployedBin +} diff --git a/op-bindings/bindings/l2tol1messagepasser_deployed.go b/op-bindings/bindings/l2tol1messagepasser_more.go old mode 100644 new mode 100755 similarity index 78% rename from op-bindings/bindings/l2tol1messagepasser_deployed.go rename to op-bindings/bindings/l2tol1messagepasser_more.go index 9f6c83895df0..3ce9619d99a9 --- a/op-bindings/bindings/l2tol1messagepasser_deployed.go +++ b/op-bindings/bindings/l2tol1messagepasser_more.go @@ -1,5 +1,25 @@ // Code generated - DO NOT EDIT. // This file is a generated binding and any manual changes will be lost. + package bindings +import ( + "encoding/json" + + "github.com/ethereum-optimism/optimism/op-bindings/solc" +) + +const L2ToL1MessagePasserStorageLayoutJSON = "{\"storage\":[{\"astId\":2393,\"contract\":\"contracts/L2/L2ToL1MessagePasser.sol:L2ToL1MessagePasser\",\"label\":\"sentMessages\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_mapping(t_bytes32,t_bool)\"},{\"astId\":2396,\"contract\":\"contracts/L2/L2ToL1MessagePasser.sol:L2ToL1MessagePasser\",\"label\":\"nonce\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_uint256\"}],\"types\":{\"t_bool\":{\"encoding\":\"inplace\",\"label\":\"bool\",\"numberOfBytes\":\"1\"},\"t_bytes32\":{\"encoding\":\"inplace\",\"label\":\"bytes32\",\"numberOfBytes\":\"32\"},\"t_mapping(t_bytes32,t_bool)\":{\"encoding\":\"mapping\",\"label\":\"mapping(bytes32 =\u003e bool)\",\"numberOfBytes\":\"32\",\"key\":\"t_bytes32\",\"value\":\"t_bool\"},\"t_uint256\":{\"encoding\":\"inplace\",\"label\":\"uint256\",\"numberOfBytes\":\"32\"}}}" + +var L2ToL1MessagePasserStorageLayout = new(solc.StorageLayout) + var L2ToL1MessagePasserDeployedBin = "0x60806040526004361061005e5760003560e01c806382e3702d1161004357806382e3702d146100c7578063affed0e014610107578063c2b3e5ac1461012b57600080fd5b806344df8e701461008757806354fd4d501461009c57600080fd5b366100825761008033620186a060405180602001604052806000815250610139565b005b600080fd5b34801561009357600080fd5b5061008061026d565b3480156100a857600080fd5b506100b16102a5565b6040516100be9190610587565b60405180910390f35b3480156100d357600080fd5b506100f76100e23660046105a1565b60006020819052908152604090205460ff1681565b60405190151581526020016100be565b34801561011357600080fd5b5061011d60015481565b6040519081526020016100be565b6100806101393660046105e9565b600061019e6040518060c0016040528060015481526020013373ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff16815260200134815260200185815260200184815250610348565b6000818152602081905260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915554905191925073ffffffffffffffffffffffffffffffffffffffff8616913391907f87bf7b546c8de873abb0db5b579ec131f8d0cf5b14f39933551cf9ced23a61369061022c903490899089906106ed565b60405180910390a460405181907f2ef6ceb1668fdd882b1f89ddd53a666b0c1113d14cf90c0fbf97c7b1ad880fbb90600090a2505060018054810190555050565b4761027781610395565b60405181907f7967de617a5ac1cc7eba2d6f37570a0135afa950d8bb77cdd35f0d0b4e85a16f90600090a250565b60606102d07f00000000000000000000000000000000000000000000000000000000000000006103c4565b6102f97f00000000000000000000000000000000000000000000000000000000000000006103c4565b6103227f00000000000000000000000000000000000000000000000000000000000000006103c4565b60405160200161033493929190610715565b604051602081830303815290604052905090565b80516020808301516040808501516060860151608087015160a0880151935160009761037897909695910161078b565b604051602081830303815290604052805190602001209050919050565b806040516103a290610501565b6040518091039082f09050801580156103bf573d6000803e3d6000fd5b505050565b60608160000361040757505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115610431578061041b81610811565b915061042a9050600a83610878565b915061040b565b60008167ffffffffffffffff81111561044c5761044c6105ba565b6040519080825280601f01601f191660200182016040528015610476576020820181803683370190505b5090505b84156104f95761048b60018361088c565b9150610498600a866108a3565b6104a39060306108b7565b60f81b8183815181106104b8576104b86108cf565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506104f2600a86610878565b945061047a565b949350505050565b6008806108ff83390190565b60005b83811015610528578181015183820152602001610510565b83811115610537576000848401525b50505050565b6000815180845261055581602086016020860161050d565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061059a602083018461053d565b9392505050565b6000602082840312156105b357600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806000606084860312156105fe57600080fd5b833573ffffffffffffffffffffffffffffffffffffffff8116811461062257600080fd5b925060208401359150604084013567ffffffffffffffff8082111561064657600080fd5b818601915086601f83011261065a57600080fd5b81358181111561066c5761066c6105ba565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156106b2576106b26105ba565b816040528281528960208487010111156106cb57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b83815282602082015260606040820152600061070c606083018461053d565b95945050505050565b6000845161072781846020890161050d565b80830190507f2e000000000000000000000000000000000000000000000000000000000000008082528551610763816001850160208a0161050d565b6001920191820152835161077e81600284016020880161050d565b0160020195945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a08301526107d660c083018461053d565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610842576108426107e2565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261088757610887610849565b500490565b60008282101561089e5761089e6107e2565b500390565b6000826108b2576108b2610849565b500690565b600082198211156108ca576108ca6107e2565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfe608060405230fffea164736f6c634300080f000a" + +func init() { + if err := json.Unmarshal([]byte(L2ToL1MessagePasserStorageLayoutJSON), L2ToL1MessagePasserStorageLayout); err != nil { + panic(err) + } + + layouts["L2ToL1MessagePasser"] = L2ToL1MessagePasserStorageLayout + deployedBytecodes["L2ToL1MessagePasser"] = L2ToL1MessagePasserDeployedBin +} diff --git a/op-bindings/bindings/legacyerc20eth_more.go b/op-bindings/bindings/legacyerc20eth_more.go new file mode 100755 index 000000000000..aac08a3b8a17 --- /dev/null +++ b/op-bindings/bindings/legacyerc20eth_more.go @@ -0,0 +1,25 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package bindings + +import ( + "encoding/json" + + "github.com/ethereum-optimism/optimism/op-bindings/solc" +) + +const LegacyERC20ETHStorageLayoutJSON = "{\"storage\":[{\"astId\":26811,\"contract\":\"contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH\",\"label\":\"_balances\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_mapping(t_address,t_uint256)\"},{\"astId\":26817,\"contract\":\"contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH\",\"label\":\"_allowances\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_mapping(t_address,t_mapping(t_address,t_uint256))\"},{\"astId\":26819,\"contract\":\"contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH\",\"label\":\"_totalSupply\",\"offset\":0,\"slot\":\"2\",\"type\":\"t_uint256\"},{\"astId\":26821,\"contract\":\"contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH\",\"label\":\"_name\",\"offset\":0,\"slot\":\"3\",\"type\":\"t_string_storage\"},{\"astId\":26823,\"contract\":\"contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH\",\"label\":\"_symbol\",\"offset\":0,\"slot\":\"4\",\"type\":\"t_string_storage\"},{\"astId\":24078,\"contract\":\"contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH\",\"label\":\"remoteToken\",\"offset\":0,\"slot\":\"5\",\"type\":\"t_address\"},{\"astId\":24081,\"contract\":\"contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH\",\"label\":\"bridge\",\"offset\":0,\"slot\":\"6\",\"type\":\"t_address\"}],\"types\":{\"t_address\":{\"encoding\":\"inplace\",\"label\":\"address\",\"numberOfBytes\":\"20\"},\"t_mapping(t_address,t_mapping(t_address,t_uint256))\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e mapping(address =\u003e uint256))\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_mapping(t_address,t_uint256)\"},\"t_mapping(t_address,t_uint256)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e uint256)\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_uint256\"},\"t_string_storage\":{\"encoding\":\"bytes\",\"label\":\"string\",\"numberOfBytes\":\"32\"},\"t_uint256\":{\"encoding\":\"inplace\",\"label\":\"uint256\",\"numberOfBytes\":\"32\"}}}" + +var LegacyERC20ETHStorageLayout = new(solc.StorageLayout) + +var LegacyERC20ETHDeployedBin = "0x608060405234801561001057600080fd5b50600436106101365760003560e01c806395d89b41116100b2578063ae1f6aaf11610081578063d6c0b2c411610066578063d6c0b2c4146102bb578063dd62ed3e146102db578063e78cea921461032157600080fd5b8063ae1f6aaf1461025e578063c01e1bd61461029d57600080fd5b806395d89b411461021d5780639dc29fac14610225578063a457c2d714610238578063a9059cbb1461024b57600080fd5b806323b872dd1161010957806339509351116100ee57806339509351146101bf57806340c10f19146101d257806370a08231146101e757600080fd5b806323b872dd1461019d578063313ce567146101b057600080fd5b806301ffc9a71461013b57806306fdde0314610163578063095ea7b31461017857806318160ddd1461018b575b600080fd5b61014e610149366004610852565b610341565b60405190151581526020015b60405180910390f35b61016b610432565b60405161015a919061089b565b61014e610186366004610937565b6104c4565b6002545b60405190815260200161015a565b61014e6101ab366004610961565b610554565b6040516012815260200161015a565b61014e6101cd366004610937565b6105df565b6101e56101e0366004610937565b61066a565b005b61018f6101f536600461099d565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b61016b6106cc565b6101e5610233366004610937565b6106db565b61014e610246366004610937565b61073d565b61014e610259366004610937565b6107c8565b60065473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161015a565b60055473ffffffffffffffffffffffffffffffffffffffff16610278565b6005546102789073ffffffffffffffffffffffffffffffffffffffff1681565b61018f6102e93660046109b8565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6006546102789073ffffffffffffffffffffffffffffffffffffffff1681565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007f1d1d8b63000000000000000000000000000000000000000000000000000000007f0bc32271000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000085168314806103fa57507fffffffff00000000000000000000000000000000000000000000000000000000858116908316145b8061042957507fffffffff00000000000000000000000000000000000000000000000000000000858116908216145b95945050505050565b606060038054610441906109eb565b80601f016020809104026020016040519081016040528092919081815260200182805461046d906109eb565b80156104ba5780601f1061048f576101008083540402835291602001916104ba565b820191906000526020600020905b81548152906001019060200180831161049d57829003601f168201915b5050505050905090565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4c656761637945524332304554483a20617070726f766520697320646973616260448201527f6c6564000000000000000000000000000000000000000000000000000000000060648201526000906084015b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4c656761637945524332304554483a207472616e7366657246726f6d2069732060448201527f64697361626c6564000000000000000000000000000000000000000000000000606482015260009060840161054b565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4c656761637945524332304554483a20696e637265617365416c6c6f77616e6360448201527f652069732064697361626c656400000000000000000000000000000000000000606482015260009060840161054b565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4c656761637945524332304554483a206d696e742069732064697361626c6564604482015260640161054b565b606060048054610441906109eb565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4c656761637945524332304554483a206275726e2069732064697361626c6564604482015260640161054b565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4c656761637945524332304554483a206465637265617365416c6c6f77616e6360448201527f652069732064697361626c656400000000000000000000000000000000000000606482015260009060840161054b565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4c656761637945524332304554483a207472616e73666572206973206469736160448201527f626c656400000000000000000000000000000000000000000000000000000000606482015260009060840161054b565b60006020828403121561086457600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461089457600080fd5b9392505050565b600060208083528351808285015260005b818110156108c8578581018301518582016040015282016108ac565b818111156108da576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461093257600080fd5b919050565b6000806040838503121561094a57600080fd5b6109538361090e565b946020939093013593505050565b60008060006060848603121561097657600080fd5b61097f8461090e565b925061098d6020850161090e565b9150604084013590509250925092565b6000602082840312156109af57600080fd5b6108948261090e565b600080604083850312156109cb57600080fd5b6109d48361090e565b91506109e26020840161090e565b90509250929050565b600181811c908216806109ff57607f821691505b602082108103610a38577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea164736f6c634300080f000a" + +func init() { + if err := json.Unmarshal([]byte(LegacyERC20ETHStorageLayoutJSON), LegacyERC20ETHStorageLayout); err != nil { + panic(err) + } + + layouts["LegacyERC20ETH"] = LegacyERC20ETHStorageLayout + deployedBytecodes["LegacyERC20ETH"] = LegacyERC20ETHDeployedBin +} diff --git a/op-bindings/bindings/optimismmintableerc20factory_more.go b/op-bindings/bindings/optimismmintableerc20factory_more.go new file mode 100755 index 000000000000..ce2409575302 --- /dev/null +++ b/op-bindings/bindings/optimismmintableerc20factory_more.go @@ -0,0 +1,25 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package bindings + +import ( + "encoding/json" + + "github.com/ethereum-optimism/optimism/op-bindings/solc" +) + +const OptimismMintableERC20FactoryStorageLayoutJSON = "{\"storage\":null,\"types\":null}" + +var OptimismMintableERC20FactoryStorageLayout = new(solc.StorageLayout) + +var OptimismMintableERC20FactoryDeployedBin = "0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063896f93d114610046578063ce5ac90f14610082578063e78cea9214610095575b600080fd5b610059610054366004610371565b6100bc565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b610059610090366004610371565b6100d1565b6100597f000000000000000000000000000000000000000000000000000000000000000081565b60006100c98484846100d1565b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff841661017a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d4d696e7461626c654552433230466163746f72793a206d7560448201527f73742070726f766964652072656d6f746520746f6b656e206164647265737300606482015260840160405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000008585856040516101ac9061028a565b6101b9949392919061046b565b604051809103906000f0801580156101d5573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fceeb8e7d520d7f3b65fc11a262b91066940193b05d4f93df07cfdced0eb551cf60405160405180910390a360405133815273ffffffffffffffffffffffffffffffffffffffff80831691908716907f52fe89dd5930f343d25650b62fd367bae47088bcddffd2a88350a6ecdd620cdb9060200160405180910390a3949350505050565b61164b806104c283390190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f8301126102d757600080fd5b813567ffffffffffffffff808211156102f2576102f2610297565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561033857610338610297565b8160405283815286602085880101111561035157600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060006060848603121561038657600080fd5b833573ffffffffffffffffffffffffffffffffffffffff811681146103aa57600080fd5b9250602084013567ffffffffffffffff808211156103c757600080fd5b6103d3878388016102c6565b935060408601359150808211156103e957600080fd5b506103f6868287016102c6565b9150509250925092565b6000815180845260005b818110156104265760208185018101518683018201520161040a565b81811115610438576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250608060408301526104a46080830185610400565b82810360608401526104b68185610400565b97965050505050505056fe60806040523480156200001157600080fd5b506040516200164b3803806200164b833981016040819052620000349162000179565b8181600362000044838262000298565b50600462000053828262000298565b5050600580546001600160a01b039586166001600160a01b03199182161790915560068054969095169516949094179092555062000364915050565b80516001600160a01b0381168114620000a757600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000d457600080fd5b81516001600160401b0380821115620000f157620000f1620000ac565b604051601f8301601f19908116603f011681019082821181831017156200011c576200011c620000ac565b816040528381526020925086838588010111156200013957600080fd5b600091505b838210156200015d57858201830151818301840152908201906200013e565b838211156200016f5760008385830101525b9695505050505050565b600080600080608085870312156200019057600080fd5b6200019b856200008f565b9350620001ab602086016200008f565b60408601519093506001600160401b0380821115620001c957600080fd5b620001d788838901620000c2565b93506060870151915080821115620001ee57600080fd5b50620001fd87828801620000c2565b91505092959194509250565b600181811c908216806200021e57607f821691505b6020821081036200023f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200029357600081815260208120601f850160051c810160208610156200026e5750805b601f850160051c820191505b818110156200028f578281556001016200027a565b5050505b505050565b81516001600160401b03811115620002b457620002b4620000ac565b620002cc81620002c5845462000209565b8462000245565b602080601f831160018114620003045760008415620002eb5750858301515b600019600386901b1c1916600185901b1785556200028f565b600085815260208120601f198616915b82811015620003355788860151825594840194600190910190840162000314565b5085821015620003545787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6112d780620003746000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c806395d89b41116100b2578063ae1f6aaf11610081578063d6c0b2c411610066578063d6c0b2c4146102bb578063dd62ed3e146102db578063e78cea921461032157600080fd5b8063ae1f6aaf1461025e578063c01e1bd61461029d57600080fd5b806395d89b411461021d5780639dc29fac14610225578063a457c2d714610238578063a9059cbb1461024b57600080fd5b806323b872dd1161010957806339509351116100ee57806339509351146101bf57806340c10f19146101d257806370a08231146101e757600080fd5b806323b872dd1461019d578063313ce567146101b057600080fd5b806301ffc9a71461013b57806306fdde0314610163578063095ea7b31461017857806318160ddd1461018b575b600080fd5b61014e610149366004611080565b610341565b60405190151581526020015b60405180910390f35b61016b610432565b60405161015a91906110c9565b61014e610186366004611165565b6104c4565b6002545b60405190815260200161015a565b61014e6101ab36600461118f565b6104dc565b6040516012815260200161015a565b61014e6101cd366004611165565b610500565b6101e56101e0366004611165565b61054c565b005b61018f6101f53660046111cb565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b61016b610656565b6101e5610233366004611165565b610665565b61014e610246366004611165565b61075e565b61014e610259366004611165565b61082f565b60065473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161015a565b60055473ffffffffffffffffffffffffffffffffffffffff16610278565b6005546102789073ffffffffffffffffffffffffffffffffffffffff1681565b61018f6102e93660046111e6565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6006546102789073ffffffffffffffffffffffffffffffffffffffff1681565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007f1d1d8b63000000000000000000000000000000000000000000000000000000007f0bc32271000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000085168314806103fa57507fffffffff00000000000000000000000000000000000000000000000000000000858116908316145b8061042957507fffffffff00000000000000000000000000000000000000000000000000000000858116908216145b95945050505050565b60606003805461044190611219565b80601f016020809104026020016040519081016040528092919081815260200182805461046d90611219565b80156104ba5780601f1061048f576101008083540402835291602001916104ba565b820191906000526020600020905b81548152906001019060200180831161049d57829003601f168201915b5050505050905090565b6000336104d281858561083d565b5060019392505050565b6000336104ea8582856109f1565b6104f5858585610ac8565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906104d2908290869061054790879061129b565b61083d565b60065473ffffffffffffffffffffffffffffffffffffffff1633146105f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696460448201527f67652063616e206d696e7420616e64206275726e00000000000000000000000060648201526084015b60405180910390fd5b6106028282610d7b565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858260405161064a91815260200190565b60405180910390a25050565b60606004805461044190611219565b60065473ffffffffffffffffffffffffffffffffffffffff16331461070c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696460448201527f67652063616e206d696e7420616e64206275726e00000000000000000000000060648201526084016105ef565b6107168282610e9b565b8173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405161064a91815260200190565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015610822576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016105ef565b6104f5828686840361083d565b6000336104d2818585610ac8565b73ffffffffffffffffffffffffffffffffffffffff83166108df576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105ef565b73ffffffffffffffffffffffffffffffffffffffff8216610982576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105ef565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610ac25781811015610ab5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105ef565b610ac2848484840361083d565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610b6b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105ef565b73ffffffffffffffffffffffffffffffffffffffff8216610c0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105ef565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610cc4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016105ef565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220858503905591851681529081208054849290610d0890849061129b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d6e91815260200190565b60405180910390a3610ac2565b73ffffffffffffffffffffffffffffffffffffffff8216610df8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105ef565b8060026000828254610e0a919061129b565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054839290610e4490849061129b565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff8216610f3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016105ef565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205481811015610ff4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016105ef565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604081208383039055600280548492906110309084906112b3565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016109e4565b60006020828403121561109257600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146110c257600080fd5b9392505050565b600060208083528351808285015260005b818110156110f6578581018301518582016040015282016110da565b81811115611108576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461116057600080fd5b919050565b6000806040838503121561117857600080fd5b6111818361113c565b946020939093013593505050565b6000806000606084860312156111a457600080fd5b6111ad8461113c565b92506111bb6020850161113c565b9150604084013590509250925092565b6000602082840312156111dd57600080fd5b6110c28261113c565b600080604083850312156111f957600080fd5b6112028361113c565b91506112106020840161113c565b90509250929050565b600181811c9082168061122d57607f821691505b602082108103611266577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156112ae576112ae61126c565b500190565b6000828210156112c5576112c561126c565b50039056fea164736f6c634300080f000aa164736f6c634300080f000a" + +func init() { + if err := json.Unmarshal([]byte(OptimismMintableERC20FactoryStorageLayoutJSON), OptimismMintableERC20FactoryStorageLayout); err != nil { + panic(err) + } + + layouts["OptimismMintableERC20Factory"] = OptimismMintableERC20FactoryStorageLayout + deployedBytecodes["OptimismMintableERC20Factory"] = OptimismMintableERC20FactoryDeployedBin +} diff --git a/op-bindings/bindings/optimismportal_deployed.go b/op-bindings/bindings/optimismportal_more.go old mode 100644 new mode 100755 similarity index 91% rename from op-bindings/bindings/optimismportal_deployed.go rename to op-bindings/bindings/optimismportal_more.go index e66640ec10df..bcda4761d407 --- a/op-bindings/bindings/optimismportal_deployed.go +++ b/op-bindings/bindings/optimismportal_more.go @@ -1,5 +1,25 @@ // Code generated - DO NOT EDIT. // This file is a generated binding and any manual changes will be lost. + package bindings +import ( + "encoding/json" + + "github.com/ethereum-optimism/optimism/op-bindings/solc" +) + +const OptimismPortalStorageLayoutJSON = "{\"storage\":[{\"astId\":26067,\"contract\":\"contracts/L1/OptimismPortal.sol:OptimismPortal\",\"label\":\"_initialized\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_uint8\"},{\"astId\":26070,\"contract\":\"contracts/L1/OptimismPortal.sol:OptimismPortal\",\"label\":\"_initializing\",\"offset\":1,\"slot\":\"0\",\"type\":\"t_bool\"},{\"astId\":1388,\"contract\":\"contracts/L1/OptimismPortal.sol:OptimismPortal\",\"label\":\"params\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_struct(ResourceParams)1358_storage\"},{\"astId\":1393,\"contract\":\"contracts/L1/OptimismPortal.sol:OptimismPortal\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"2\",\"type\":\"t_array(t_uint256)49_storage\"},{\"astId\":961,\"contract\":\"contracts/L1/OptimismPortal.sol:OptimismPortal\",\"label\":\"l2Sender\",\"offset\":0,\"slot\":\"51\",\"type\":\"t_address\"},{\"astId\":974,\"contract\":\"contracts/L1/OptimismPortal.sol:OptimismPortal\",\"label\":\"finalizedWithdrawals\",\"offset\":0,\"slot\":\"52\",\"type\":\"t_mapping(t_bytes32,t_bool)\"},{\"astId\":979,\"contract\":\"contracts/L1/OptimismPortal.sol:OptimismPortal\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"53\",\"type\":\"t_array(t_uint256)48_storage\"}],\"types\":{\"t_address\":{\"encoding\":\"inplace\",\"label\":\"address\",\"numberOfBytes\":\"20\"},\"t_array(t_uint256)48_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[48]\",\"numberOfBytes\":\"1536\"},\"t_array(t_uint256)49_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[49]\",\"numberOfBytes\":\"1568\"},\"t_bool\":{\"encoding\":\"inplace\",\"label\":\"bool\",\"numberOfBytes\":\"1\"},\"t_bytes32\":{\"encoding\":\"inplace\",\"label\":\"bytes32\",\"numberOfBytes\":\"32\"},\"t_mapping(t_bytes32,t_bool)\":{\"encoding\":\"mapping\",\"label\":\"mapping(bytes32 =\u003e bool)\",\"numberOfBytes\":\"32\",\"key\":\"t_bytes32\",\"value\":\"t_bool\"},\"t_struct(ResourceParams)1358_storage\":{\"encoding\":\"inplace\",\"label\":\"struct ResourceMetering.ResourceParams\",\"numberOfBytes\":\"32\"},\"t_uint128\":{\"encoding\":\"inplace\",\"label\":\"uint128\",\"numberOfBytes\":\"16\"},\"t_uint256\":{\"encoding\":\"inplace\",\"label\":\"uint256\",\"numberOfBytes\":\"32\"},\"t_uint64\":{\"encoding\":\"inplace\",\"label\":\"uint64\",\"numberOfBytes\":\"8\"},\"t_uint8\":{\"encoding\":\"inplace\",\"label\":\"uint8\",\"numberOfBytes\":\"1\"}}}" + +var OptimismPortalStorageLayout = new(solc.StorageLayout) + var OptimismPortalDeployedBin = "0x6080604052600436106100f65760003560e01c8063a14238e71161008a578063cff0ab9611610059578063cff0ab96146102f7578063e9e05c4214610398578063f4daa291146103ab578063fdc9fe1d146103df57600080fd5b8063a14238e71461026d578063c4fc4798146102ad578063ca3e99ba146102cd578063cd7c9789146102e257600080fd5b80636bb0291e116100c65780636bb0291e146102005780638129fc1c14610215578063867ead131461022a5780639bf62d821461024057600080fd5b80621c2ff61461012257806313620abd1461018057806354fd4d50146101b957806364b79208146101db57600080fd5b3661011d5761011b3334620186a06000604051806020016040528060008152506103f2565b005b600080fd5b34801561012e57600080fd5b506101567f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561018c57600080fd5b50610198633b9aca0081565b6040516fffffffffffffffffffffffffffffffff9091168152602001610177565b3480156101c557600080fd5b506101ce6108bf565b60405161017791906132fa565b3480156101e757600080fd5b506101f2627a120081565b604051908152602001610177565b34801561020c57600080fd5b506101f2600481565b34801561022157600080fd5b5061011b610962565b34801561023657600080fd5b506101f261271081565b34801561024c57600080fd5b506033546101569073ffffffffffffffffffffffffffffffffffffffff1681565b34801561027957600080fd5b5061029d61028836600461330d565b60346020526000908152604090205460ff1681565b6040519015158152602001610177565b3480156102b957600080fd5b5061029d6102c836600461330d565b610b20565b3480156102d957600080fd5b506101f2610be5565b3480156102ee57600080fd5b506101f2600881565b34801561030357600080fd5b5060015461035f906fffffffffffffffffffffffffffffffff81169067ffffffffffffffff7001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041683565b604080516fffffffffffffffffffffffffffffffff909416845267ffffffffffffffff9283166020850152911690820152606001610177565b61011b6103a6366004613452565b6103f2565b3480156103b757600080fd5b506101f27f000000000000000000000000000000000000000000000000000000000000000081565b61011b6103ed366004613540565b610bf6565b8260005a905083156104a95773ffffffffffffffffffffffffffffffffffffffff8716156104a957604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f4f7074696d69736d506f7274616c3a206d7573742073656e6420746f2061646460448201527f72657373283029207768656e206372656174696e67206120636f6e747261637460648201526084015b60405180910390fd5b333281146104ca575033731111000000000000000000000000000000001111015b600034888888886040516020016104e5959493929190613634565b604051602081830303815290604052905060008973ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fb3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c328460405161055591906132fa565b60405180910390a45050600154600090610595907801000000000000000000000000000000000000000000000000900467ffffffffffffffff16436136c8565b9050801561071e5760006105ad6004627a120061370e565b6001546105d89190700100000000000000000000000000000000900467ffffffffffffffff16613776565b9050600060086105ec6004627a120061370e565b60015461060c9085906fffffffffffffffffffffffffffffffff166137ea565b610616919061370e565b610620919061370e565b60015490915060009061066c906106569061064e9085906fffffffffffffffffffffffffffffffff166138a6565b612710611297565b6fffffffffffffffffffffffffffffffff6112b2565b905060018411156106df576106dc610656670de0b6b3a76400006106c861069460088361370e565b6106a690670de0b6b3a7640000613776565b6106b160018a6136c8565b6106c390670de0b6b3a764000061391a565b6112c1565b6106d290856137ea565b61064e919061370e565b90505b6fffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000067ffffffffffffffff4316021760015550505b60018054849190601090610751908490700100000000000000000000000000000000900467ffffffffffffffff16613957565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550627a1200600160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff16131561082d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5265736f757263654d65746572696e673a2063616e6e6f7420627579206d6f7260448201527f6520676173207468616e20617661696c61626c6520676173206c696d6974000060648201526084016104a0565b600154600090610859906fffffffffffffffffffffffffffffffff1667ffffffffffffffff8616613983565b6fffffffffffffffffffffffffffffffff169050600061087d48633b9aca006112f2565b61088790836139bb565b905060005a61089690866136c8565b9050808211156108b2576108b26108ad82846136c8565b611302565b5050505050505050505050565b60606108ea7f0000000000000000000000000000000000000000000000000000000000000000611330565b6109137f0000000000000000000000000000000000000000000000000000000000000000611330565b61093c7f0000000000000000000000000000000000000000000000000000000000000000611330565b60405160200161094e939291906139cf565b604051602081830303815290604052905090565b600054610100900460ff16158080156109825750600054600160ff909116105b8061099c5750303b15801561099c575060005460ff166001145b610a28576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016104a0565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610a8657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055610aba61146d565b8015610b1d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b6040517fa25ae55700000000000000000000000000000000000000000000000000000000815260048101829052600090819073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063a25ae557906024016040805180830381865afa158015610baf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd39190613a45565b9050610bde81611550565b9392505050565b610bf36004627a120061370e565b81565b60335473ffffffffffffffffffffffffffffffffffffffff1661dead14610c9f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d506f7274616c3a2063616e206f6e6c79207472696767657260448201527f206f6e65207769746864726177616c20706572207472616e73616374696f6e0060648201526084016104a0565b3073ffffffffffffffffffffffffffffffffffffffff16856040015173ffffffffffffffffffffffffffffffffffffffff1603610d5e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d506f7274616c3a20796f752063616e6e6f742073656e642060448201527f6d6573736167657320746f2074686520706f7274616c20636f6e74726163740060648201526084016104a0565b6040517fa25ae557000000000000000000000000000000000000000000000000000000008152600481018590526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063a25ae557906024016040805180830381865afa158015610deb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0f9190613a45565b9050610e1a81611550565b610ea6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4f7074696d69736d506f7274616c3a2070726f706f73616c206973206e6f742060448201527f7965742066696e616c697a65640000000000000000000000000000000000000060648201526084016104a0565b610ebd610eb836869003860186613a94565b61158a565b815114610f4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f7074696d69736d506f7274616c3a20696e76616c6964206f7574707574207260448201527f6f6f742070726f6f66000000000000000000000000000000000000000000000060648201526084016104a0565b6000610f57876115e6565b9050610f9e81866040013586868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061161692505050565b61102a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4f7074696d69736d506f7274616c3a20696e76616c696420776974686472617760448201527f616c20696e636c7573696f6e2070726f6f66000000000000000000000000000060648201526084016104a0565b60008181526034602052604090205460ff16156110c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173206160448201527f6c7265616479206265656e2066696e616c697a6564000000000000000000000060648201526084016104a0565b600081815260346020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055608087015161111290614e2090613afa565b5a10156111a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f4f7074696d69736d506f7274616c3a20696e73756666696369656e742067617360448201527f20746f2066696e616c697a65207769746864726177616c00000000000000000060648201526084016104a0565b8660200151603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000611204886040015189608001518a606001518b60a001516116dd565b603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead17905560405190915082907fdb5c7652857aa163daadd670e116628fb42e869d8ac4251ef8971d9e5727df1b9061126990841515815260200190565b60405180910390a25050505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b6000818312156112a757816112a9565b825b90505b92915050565b60008183126112a757816112a9565b60006112a9670de0b6b3a7640000836112d9866116f7565b6112e391906137ea565b6112ed919061370e565b61193b565b6000818310156112a757816112a9565b6000805a90505b825a61131590836136c8565b101561132b5761132482613b12565b9150611309565b505050565b60608160000361137357505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b811561139d578061138781613b12565b91506113969050600a836139bb565b9150611377565b60008167ffffffffffffffff8111156113b8576113b861334f565b6040519080825280601f01601f1916602001820160405280156113e2576020820181803683370190505b5090505b8415611465576113f76001836136c8565b9150611404600a86613b4a565b61140f906030613afa565b60f81b81838151811061142457611424613b5e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061145e600a866139bb565b94506113e6565b949350505050565b600054610100900460ff16611504576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016104a0565b60408051606081018252633b9aca00808252600060208301524367ffffffffffffffff169190920181905278010000000000000000000000000000000000000000000000000217600155565b60007f000000000000000000000000000000000000000000000000000000000000000082602001516115829190613afa565b421192915050565b600081600001518260200151836040015184606001516040516020016115c9949392919093845260208401929092526040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b80516020808301516040808501516060860151608087015160a088015193516000976115c9979096959101613b8d565b604080516020810185905260009181018290528190606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252805160209182012090830181905292506116d49101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828201909152600182527f01000000000000000000000000000000000000000000000000000000000000006020830152908587611b7a565b95945050505050565b600080600080845160208601878a8af19695505050505050565b6000808213611762576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e4544000000000000000000000000000000000000000000000060448201526064016104a0565b6000606061176f84611b9e565b03609f8181039490941b90931c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b393909302929092017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c1821361196c57506000919050565b680755bf798b4a1bf1e582126119de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4558505f4f564552464c4f57000000000000000000000000000000000000000060448201526064016104a0565b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b600080611b8686611c74565b9050611b9481868686611ca6565b9695505050505050565b6000808211611c09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e4544000000000000000000000000000000000000000000000060448201526064016104a0565b5060016fffffffffffffffffffffffffffffffff821160071b82811c67ffffffffffffffff1060061b1782811c63ffffffff1060051b1782811c61ffff1060041b1782811c60ff10600390811b90911783811c600f1060021b1783811c909110821b1791821c111790565b60608180519060200120604051602001611c9091815260200190565b6040516020818303038152906040529050919050565b6000806000611cb6878686611ce3565b91509150818015611cd857508051602080830191909120875191880191909120145b979650505050505050565b600060606000611cf285611dfe565b90506000806000611d04848a89611ef9565b81519295509093509150158080611d185750815b611da4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4d65726b6c65547269653a2070726f76696465642070726f6f6620697320696e60448201527f76616c696400000000000000000000000000000000000000000000000000000060648201526084016104a0565b600081611dc05760405180602001604052806000815250611dec565b611dec86611dcf6001886136c8565b81518110611ddf57611ddf613b5e565b6020026020010151612482565b919b919a509098505050505050505050565b60606000611e0b836124ac565b90506000815167ffffffffffffffff811115611e2957611e2961334f565b604051908082528060200260200182016040528015611e6e57816020015b6040805180820190915260608082526020820152815260200190600190039081611e475790505b50905060005b8251811015611ef1576000611ea1848381518110611e9457611e94613b5e565b60200260200101516124df565b90506040518060400160405280828152602001611ebd836124ac565b815250838381518110611ed257611ed2613b5e565b6020026020010181905250508080611ee990613b12565b915050611e74565b509392505050565b60006060818080611f09876125a6565b90506000869050600080611f30604051806040016040528060608152602001606081525090565b60005b8c5181101561243e578c8181518110611f4e57611f4e613b5e565b602002602001015191508284611f649190613afa565b9350611f71600188613afa565b965083600003611ff257815180516020909101208514611fed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4d65726b6c65547269653a20696e76616c696420726f6f74206861736800000060448201526064016104a0565b61212e565b81515160201161209457815180516020909101208514611fed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d65726b6c65547269653a20696e76616c6964206c6172676520696e7465726e60448201527f616c20686173680000000000000000000000000000000000000000000000000060648201526084016104a0565b815185906120a190613be4565b1461212e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4d65726b6c65547269653a20696e76616c696420696e7465726e616c206e6f6460448201527f652068617368000000000000000000000000000000000000000000000000000060648201526084016104a0565b61213a60106001613afa565b826020015151036121ac578551841461243e57600086858151811061216157612161613b5e565b602001015160f81c60f81b60f81c9050600083602001518260ff168151811061218c5761218c613b5e565b6020026020010151905061219f81612729565b965060019450505061242c565b6002826020015151036123a45760006121c48361275f565b90506000816000815181106121db576121db613b5e565b016020015160f81c905060006121f2600283613c26565b6121fd906002613c48565b9050600061220e848360ff16612783565b9050600061221c8b8a612783565b9050600061222a83836127b9565b905060ff851660021480612241575060ff85166003145b15612297578083511480156122565750808251145b1561226857612265818b613afa565b99505b507f8000000000000000000000000000000000000000000000000000000000000000995061243e945050505050565b60ff851615806122aa575060ff85166001145b1561231c57825181146122e657507f8000000000000000000000000000000000000000000000000000000000000000995061243e945050505050565b61230d886020015160018151811061230057612300613b5e565b6020026020010151612729565b9a50975061242c945050505050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4d65726b6c65547269653a2072656365697665642061206e6f6465207769746860448201527f20616e20756e6b6e6f776e20707265666978000000000000000000000000000060648201526084016104a0565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4d65726b6c65547269653a20726563656976656420616e20756e70617273656160448201527f626c65206e6f646500000000000000000000000000000000000000000000000060648201526084016104a0565b8061243681613b12565b915050611f33565b507f800000000000000000000000000000000000000000000000000000000000000084148661246d8786612783565b909e909d50909b509950505050505050505050565b602081015180516060916112ac9161249c906001906136c8565b81518110611e9457611e94613b5e565b6040805180820182526000808252602091820152815180830190925282518252808301908201526060906112ac90612865565b606060008060006124ef85612abe565b91945092509050600081600181111561250a5761250a613c6b565b14612597576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f524c505265616465723a20696e76616c696420524c502062797465732076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016104a0565b6116d485602001518484612fa9565b60606000825160026125b8919061391a565b67ffffffffffffffff8111156125d0576125d061334f565b6040519080825280601f01601f1916602001820160405280156125fa576020820181803683370190505b50905060005b835181101561272257600484828151811061261d5761261d613b5e565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016901c8261265283600261391a565b8151811061266257612662613b5e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060108482815181106126a5576126a5613b5e565b01602001516126b7919060f81c613c26565b60f81b826126c683600261391a565b6126d1906001613afa565b815181106126e1576126e1613b5e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508061271a81613b12565b915050612600565b5092915050565b6000606060208360000151101561274a5761274383613087565b9050612756565b612753836124df565b90505b610bde81613be4565b60606112ac61277e8360200151600081518110611e9457611e94613b5e565b6125a6565b6060825182106127a257506040805160208101909152600081526112ac565b6112a983838486516127b491906136c8565b613092565b6000805b8084511180156127cd5750808351115b801561284e57508281815181106127e6576127e6613b5e565b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191684828151811061282557612825613b5e565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b156112a9578061285d81613b12565b9150506127bd565b606060008061287384612abe565b9193509091506001905081600181111561288f5761288f613c6b565b1461291c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f524c505265616465723a20696e76616c696420524c50206c6973742076616c7560448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084016104a0565b6040805160208082526104208201909252600091816020015b60408051808201909152600080825260208201528152602001906001900390816129355790505090506000835b8651811015612ab357602082106129fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f524c505265616465723a2070726f766964656420524c50206c6973742065786360448201527f65656473206d6178206c697374206c656e67746800000000000000000000000060648201526084016104a0565b600080612a386040518060400160405280858c60000151612a1c91906136c8565b8152602001858c60200151612a319190613afa565b9052612abe565b509150915060405180604001604052808383612a549190613afa565b8152602001848b60200151612a699190613afa565b815250858581518110612a7e57612a7e613b5e565b6020908102919091010152612a94600185613afa565b9350612aa08183613afa565b612aaa9084613afa565b92505050612962565b508152949350505050565b600080600080846000015111612b56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f524c505265616465723a20524c50206974656d2063616e6e6f74206265206e7560448201527f6c6c00000000000000000000000000000000000000000000000000000000000060648201526084016104a0565b6020840151805160001a607f8111612b7b576000600160009450945094505050612fa2565b60b78111612c37576000612b906080836136c8565b905080876000015111612c25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f524c505265616465723a20696e76616c696420524c502073686f72742073747260448201527f696e67000000000000000000000000000000000000000000000000000000000060648201526084016104a0565b60019550935060009250612fa2915050565b60bf8111612da6576000612c4c60b7836136c8565b905080876000015111612ce1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f524c505265616465723a20696e76616c696420524c50206c6f6e67207374726960448201527f6e67206c656e677468000000000000000000000000000000000000000000000060648201526084016104a0565b600183015160208290036101000a9004612cfb8183613afa565b885111612d8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f524c505265616465723a20696e76616c696420524c50206c6f6e67207374726960448201527f6e6700000000000000000000000000000000000000000000000000000000000060648201526084016104a0565b612d95826001613afa565b9650945060009350612fa292505050565b60f78111612e61576000612dbb60c0836136c8565b905080876000015111612e50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f524c505265616465723a20696e76616c696420524c502073686f7274206c697360448201527f740000000000000000000000000000000000000000000000000000000000000060648201526084016104a0565b600195509350849250612fa2915050565b6000612e6e60f7836136c8565b905080876000015111612f03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f524c505265616465723a20696e76616c696420524c50206c6f6e67206c69737460448201527f206c656e6774680000000000000000000000000000000000000000000000000060648201526084016104a0565b600183015160208290036101000a9004612f1d8183613afa565b885111612f86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f524c505265616465723a20696e76616c696420524c50206c6f6e67206c69737460448201526064016104a0565b612f91826001613afa565b9650945060019350612fa292505050565b9193909250565b606060008267ffffffffffffffff811115612fc657612fc661334f565b6040519080825280601f01601f191660200182016040528015612ff0576020820181803683370190505b5090508051600003613003579050610bde565b600061300f8587613afa565b90506020820160005b6130236020876139bb565b81101561305a5782518252613039602084613afa565b9250613046602083613afa565b91508061305281613b12565b915050613018565b5060006001602087066020036101000a039050808251168119845116178252839450505050509392505050565b60606112ac8261326a565b60608182601f011015613101576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f7700000000000000000000000000000000000060448201526064016104a0565b82828401101561316d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f7700000000000000000000000000000000000060448201526064016104a0565b818301845110156131da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e647300000000000000000000000000000060448201526064016104a0565b6060821580156131f95760405191506000825260208201604052613261565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561323257805183526020928301920161321a565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b60606112ac826020015160008460000151612fa9565b60005b8381101561329b578181015183820152602001613283565b838111156132aa576000848401525b50505050565b600081518084526132c8816020860160208601613280565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006112a960208301846132b0565b60006020828403121561331f57600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461334a57600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160c0810167ffffffffffffffff811182821017156133a1576133a161334f565b60405290565b600082601f8301126133b857600080fd5b813567ffffffffffffffff808211156133d3576133d361334f565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156134195761341961334f565b8160405283815286602085880101111561343257600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a0868803121561346a57600080fd5b61347386613326565b945060208601359350604086013567ffffffffffffffff808216821461349857600080fd5b90935060608701359081151582146134af57600080fd5b909250608087013590808211156134c557600080fd5b506134d2888289016133a7565b9150509295509295909350565b6000608082840312156134f157600080fd5b50919050565b60008083601f84011261350957600080fd5b50813567ffffffffffffffff81111561352157600080fd5b60208301915083602082850101111561353957600080fd5b9250929050565b600080600080600060e0868803121561355857600080fd5b853567ffffffffffffffff8082111561357057600080fd5b9087019060c0828a03121561358457600080fd5b61358c61337e565b8235815261359c60208401613326565b60208201526135ad60408401613326565b6040820152606083013560608201526080830135608082015260a0830135828111156135d857600080fd5b6135e48b8286016133a7565b60a0830152509650602088013595506136008960408a016134df565b945060c088013591508082111561361657600080fd5b50613623888289016134f7565b969995985093965092949392505050565b8581528460208201527fffffffffffffffff0000000000000000000000000000000000000000000000008460c01b16604082015282151560f81b604882015260008251613688816049850160208701613280565b919091016049019695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156136da576136da613699565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261371d5761371d6136df565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f80000000000000000000000000000000000000000000000000000000000000008314161561377157613771613699565b500590565b6000808312837f8000000000000000000000000000000000000000000000000000000000000000018312811516156137b0576137b0613699565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0183138116156137e4576137e4613699565b50500390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60008413600084138583048511828216161561382b5761382b613699565b7f8000000000000000000000000000000000000000000000000000000000000000600087128682058812818416161561386657613866613699565b6000871292508782058712848416161561388257613882613699565b8785058712818416161561389857613898613699565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038413811516156138e0576138e0613699565b827f800000000000000000000000000000000000000000000000000000000000000003841281161561391457613914613699565b50500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561395257613952613699565b500290565b600067ffffffffffffffff80831681851680830382111561397a5761397a613699565b01949350505050565b60006fffffffffffffffffffffffffffffffff808316818516818304811182151516156139b2576139b2613699565b02949350505050565b6000826139ca576139ca6136df565b500490565b600084516139e1818460208901613280565b80830190507f2e000000000000000000000000000000000000000000000000000000000000008082528551613a1d816001850160208a01613280565b60019201918201528351613a38816002840160208801613280565b0160020195945050505050565b600060408284031215613a5757600080fd5b6040516040810181811067ffffffffffffffff82111715613a7a57613a7a61334f565b604052825181526020928301519281019290925250919050565b600060808284031215613aa657600080fd5b6040516080810181811067ffffffffffffffff82111715613ac957613ac961334f565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b60008219821115613b0d57613b0d613699565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b4357613b43613699565b5060010190565b600082613b5957613b596136df565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a0830152613bd860c08301846132b0565b98975050505050505050565b805160208083015191908110156134f1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60209190910360031b1b16919050565b600060ff831680613c3957613c396136df565b8060ff84160691505092915050565b600060ff821660ff841680821015613c6257613c62613699565b90039392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea164736f6c634300080f000a" + +func init() { + if err := json.Unmarshal([]byte(OptimismPortalStorageLayoutJSON), OptimismPortalStorageLayout); err != nil { + panic(err) + } + + layouts["OptimismPortal"] = OptimismPortalStorageLayout + deployedBytecodes["OptimismPortal"] = OptimismPortalDeployedBin +} diff --git a/op-bindings/bindings/proxy_more.go b/op-bindings/bindings/proxy_more.go new file mode 100755 index 000000000000..3d13b90d28d3 --- /dev/null +++ b/op-bindings/bindings/proxy_more.go @@ -0,0 +1,25 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package bindings + +import ( + "encoding/json" + + "github.com/ethereum-optimism/optimism/op-bindings/solc" +) + +const ProxyStorageLayoutJSON = "{\"storage\":null,\"types\":null}" + +var ProxyStorageLayout = new(solc.StorageLayout) + +var ProxyDeployedBin = "0x60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100be5780638f283970146100f8578063f851a440146101185761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61012d565b005b61006b61012d565b34801561008157600080fd5b5061006b6100903660046106d9565b610224565b6100a86100a33660046106f4565b610296565b6040516100b59190610777565b60405180910390f35b3480156100ca57600080fd5b506100d3610419565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100b5565b34801561010457600080fd5b5061006b6101133660046106d9565b6104b0565b34801561012457600080fd5b506100d3610517565b60006101577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff8116610201576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a656400000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3660008037600080366000845af43d6000803e8061021e573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061027d575033155b1561028e5761028b816105a3565b50565b61028b61012d565b60606102c07fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102f7575033155b1561040a57610305846105a3565b6000808573ffffffffffffffffffffffffffffffffffffffff16858560405161032f9291906107ea565b600060405180830381855af49150503d806000811461036a576040519150601f19603f3d011682016040523d82523d6000602084013e61036f565b606091505b509150915081610401576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f50726f78793a2064656c656761746563616c6c20746f206e657720696d706c6560448201527f6d656e746174696f6e20636f6e7472616374206661696c65640000000000000060648201526084016101f8565b91506104129050565b61041261012d565b9392505050565b60006104437fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061047a575033155b156104a557507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6104ad61012d565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610509575033155b1561028e5761028b8161060b565b60006105417fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610578575033155b156104a557507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81905560405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60006106357fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038390556040805173ffffffffffffffffffffffffffffffffffffffff8084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff811681146106d457600080fd5b919050565b6000602082840312156106eb57600080fd5b610412826106b0565b60008060006040848603121561070957600080fd5b610712846106b0565b9250602084013567ffffffffffffffff8082111561072f57600080fd5b818601915086601f83011261074357600080fd5b81358181111561075257600080fd5b87602082850101111561076457600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b818110156107a457858101830151858201604001528201610788565b818111156107b6576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b818382376000910190815291905056fea164736f6c634300080f000a" + +func init() { + if err := json.Unmarshal([]byte(ProxyStorageLayoutJSON), ProxyStorageLayout); err != nil { + panic(err) + } + + layouts["Proxy"] = ProxyStorageLayout + deployedBytecodes["Proxy"] = ProxyDeployedBin +} diff --git a/op-bindings/bindings/registry.go b/op-bindings/bindings/registry.go new file mode 100644 index 000000000000..8f42acb879e5 --- /dev/null +++ b/op-bindings/bindings/registry.go @@ -0,0 +1,30 @@ +package bindings + +import ( + "errors" + "fmt" + + "github.com/ethereum-optimism/optimism/op-bindings/solc" + "github.com/ethereum/go-ethereum/common" +) + +var layouts = make(map[string]*solc.StorageLayout) + +var deployedBytecodes = make(map[string]string) + +func GetStorageLayout(name string) (*solc.StorageLayout, error) { + layout := layouts[name] + if layout == nil { + return nil, errors.New("storage layout not found") + } + return layout, nil +} + +func GetDeployedBytecode(name string) ([]byte, error) { + bc := deployedBytecodes[name] + if bc == "" { + return nil, fmt.Errorf("deployed bytecode %s not found", name) + } + + return common.FromHex(bc), nil +} diff --git a/op-bindings/bindings/sequencerfeevault_more.go b/op-bindings/bindings/sequencerfeevault_more.go new file mode 100755 index 000000000000..a0735a8ffaac --- /dev/null +++ b/op-bindings/bindings/sequencerfeevault_more.go @@ -0,0 +1,25 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package bindings + +import ( + "encoding/json" + + "github.com/ethereum-optimism/optimism/op-bindings/solc" +) + +const SequencerFeeVaultStorageLayoutJSON = "{\"storage\":[{\"astId\":2541,\"contract\":\"contracts/L2/SequencerFeeVault.sol:SequencerFeeVault\",\"label\":\"l1FeeWallet\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_address\"}],\"types\":{\"t_address\":{\"encoding\":\"inplace\",\"label\":\"address\",\"numberOfBytes\":\"20\"}}}" + +var SequencerFeeVaultStorageLayout = new(solc.StorageLayout) + +var SequencerFeeVaultDeployedBin = "0x6080604052600436106100435760003560e01c80633ccfd60b1461004f57806354fd4d5014610066578063d3e5792b14610091578063d4ff9218146100bb57600080fd5b3661004a57005b600080fd5b34801561005b57600080fd5b5061006461010d565b005b34801561007257600080fd5b5061007b610296565b60405161008891906104f0565b60405180910390f35b34801561009d57600080fd5b506100ad67d02ab486cedc000081565b604051908152602001610088565b3480156100c757600080fd5b506000546100e89073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610088565b67d02ab486cedc00004710156101cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605360248201527f53657175656e6365724665655661756c743a207769746864726177616c20616d60448201527f6f756e74206d7573742062652067726561746572207468616e206d696e696d7560648201527f6d207769746864726177616c20616d6f756e7400000000000000000000000000608482015260a40160405180910390fd5b600080546040805160208101825283815290517fa3a795480000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109363a3a795489347936102629373deaddeaddeaddeaddeaddeaddeaddeaddead00009373ffffffffffffffffffffffffffffffffffffffff909316924792909160040161050a565b6000604051808303818588803b15801561027b57600080fd5b505af115801561028f573d6000803e3d6000fd5b5050505050565b60606102c17f0000000000000000000000000000000000000000000000000000000000000000610339565b6102ea7f0000000000000000000000000000000000000000000000000000000000000000610339565b6103137f0000000000000000000000000000000000000000000000000000000000000000610339565b60405160200161032593929190610560565b604051602081830303815290604052905090565b60608160000361037c57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b81156103a6578061039081610605565b915061039f9050600a8361066c565b9150610380565b60008167ffffffffffffffff8111156103c1576103c1610680565b6040519080825280601f01601f1916602001820160405280156103eb576020820181803683370190505b5090505b841561046e576104006001836106af565b915061040d600a866106c6565b6104189060306106da565b60f81b81838151811061042d5761042d6106f2565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610467600a8661066c565b94506103ef565b949350505050565b60005b83811015610491578181015183820152602001610479565b838111156104a0576000848401525b50505050565b600081518084526104be816020860160208601610476565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061050360208301846104a6565b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015263ffffffff8416606083015260a0608083015261055560a08301846104a6565b979650505050505050565b60008451610572818460208901610476565b80830190507f2e0000000000000000000000000000000000000000000000000000000000000080825285516105ae816001850160208a01610476565b600192019182015283516105c9816002840160208801610476565b0160020195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610636576106366105d6565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261067b5761067b61063d565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000828210156106c1576106c16105d6565b500390565b6000826106d5576106d561063d565b500690565b600082198211156106ed576106ed6105d6565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea164736f6c634300080f000a" + +func init() { + if err := json.Unmarshal([]byte(SequencerFeeVaultStorageLayoutJSON), SequencerFeeVaultStorageLayout); err != nil { + panic(err) + } + + layouts["SequencerFeeVault"] = SequencerFeeVaultStorageLayout + deployedBytecodes["SequencerFeeVault"] = SequencerFeeVaultDeployedBin +} diff --git a/op-bindings/bindings/weth9_more.go b/op-bindings/bindings/weth9_more.go new file mode 100755 index 000000000000..93b8b7c4e06c --- /dev/null +++ b/op-bindings/bindings/weth9_more.go @@ -0,0 +1,25 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package bindings + +import ( + "encoding/json" + + "github.com/ethereum-optimism/optimism/op-bindings/solc" +) + +const WETH9StorageLayoutJSON = "{\"storage\":[{\"astId\":4,\"contract\":\"contracts/vendor/WETH9.sol:WETH9\",\"label\":\"name\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_string_storage\"},{\"astId\":7,\"contract\":\"contracts/vendor/WETH9.sol:WETH9\",\"label\":\"symbol\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_string_storage\"},{\"astId\":10,\"contract\":\"contracts/vendor/WETH9.sol:WETH9\",\"label\":\"decimals\",\"offset\":0,\"slot\":\"2\",\"type\":\"t_uint8\"},{\"astId\":42,\"contract\":\"contracts/vendor/WETH9.sol:WETH9\",\"label\":\"balanceOf\",\"offset\":0,\"slot\":\"3\",\"type\":\"t_mapping(t_address,t_uint256)\"},{\"astId\":48,\"contract\":\"contracts/vendor/WETH9.sol:WETH9\",\"label\":\"allowance\",\"offset\":0,\"slot\":\"4\",\"type\":\"t_mapping(t_address,t_mapping(t_address,t_uint256))\"}],\"types\":{\"t_address\":{\"encoding\":\"inplace\",\"label\":\"address\",\"numberOfBytes\":\"20\"},\"t_mapping(t_address,t_mapping(t_address,t_uint256))\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e mapping(address =\u003e uint256))\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_mapping(t_address,t_uint256)\"},\"t_mapping(t_address,t_uint256)\":{\"encoding\":\"mapping\",\"label\":\"mapping(address =\u003e uint256)\",\"numberOfBytes\":\"32\",\"key\":\"t_address\",\"value\":\"t_uint256\"},\"t_string_storage\":{\"encoding\":\"bytes\",\"label\":\"string\",\"numberOfBytes\":\"32\"},\"t_uint256\":{\"encoding\":\"inplace\",\"label\":\"uint256\",\"numberOfBytes\":\"32\"},\"t_uint8\":{\"encoding\":\"inplace\",\"label\":\"uint8\",\"numberOfBytes\":\"1\"}}}" + +var WETH9StorageLayout = new(solc.StorageLayout) + +var WETH9DeployedBin = "0x6080604052600436106100bc5760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb146102cb578063d0e30db0146100bc578063dd62ed3e14610311576100bc565b8063313ce5671461024b57806370a082311461027657806395d89b41146102b6576100bc565b806318160ddd116100a557806318160ddd146101aa57806323b872dd146101d15780632e1a7d4d14610221576100bc565b806306fdde03146100c6578063095ea7b314610150575b6100c4610359565b005b3480156100d257600080fd5b506100db6103a8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101155781810151838201526020016100fd565b50505050905090810190601f1680156101425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015c57600080fd5b506101966004803603604081101561017357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610454565b604080519115158252519081900360200190f35b3480156101b657600080fd5b506101bf6104c7565b60408051918252519081900360200190f35b3480156101dd57600080fd5b50610196600480360360608110156101f457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356104cb565b34801561022d57600080fd5b506100c46004803603602081101561024457600080fd5b503561066b565b34801561025757600080fd5b50610260610700565b6040805160ff9092168252519081900360200190f35b34801561028257600080fd5b506101bf6004803603602081101561029957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610709565b3480156102c257600080fd5b506100db61071b565b3480156102d757600080fd5b50610196600480360360408110156102ee57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610793565b34801561031d57600080fd5b506101bf6004803603604081101561033457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166107a7565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b6000805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561044c5780601f106104215761010080835404028352916020019161044c565b820191906000526020600020905b81548152906001019060200180831161042f57829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600360205260408120548211156104fd57600080fd5b73ffffffffffffffffffffffffffffffffffffffff84163314801590610573575073ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14155b156105ed5773ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020548211156105b557600080fd5b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020805483900390555b73ffffffffffffffffffffffffffffffffffffffff808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b3360009081526003602052604090205481111561068757600080fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f193505050501580156106c6573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561044c5780601f106104215761010080835404028352916020019161044c565b60006107a03384846104cb565b9392505050565b60046020908152600092835260408084209091529082529020548156fea265627a7a72315820b2282f823392ab6b42c17b31235784e88e108cd8d10e77cd732aa3e1e7a88a7d64736f6c63430005110032" + +func init() { + if err := json.Unmarshal([]byte(WETH9StorageLayoutJSON), WETH9StorageLayout); err != nil { + panic(err) + } + + layouts["WETH9"] = WETH9StorageLayout + deployedBytecodes["WETH9"] = WETH9DeployedBin +} diff --git a/op-bindings/gen/main.go b/op-bindings/gen/main.go new file mode 100644 index 000000000000..70424f153d18 --- /dev/null +++ b/op-bindings/gen/main.go @@ -0,0 +1,122 @@ +package main + +import ( + "encoding/json" + "flag" + "log" + "os" + "path/filepath" + "strings" + "text/template" + + "github.com/ethereum-optimism/optimism/op-bindings/hardhat" +) + +type flags struct { + ArtifactsDir string + Contracts string + OutDir string + Package string +} + +type data struct { + Name string + StorageLayout string + DeployedBin string + Package string +} + +func main() { + var f flags + flag.StringVar(&f.ArtifactsDir, "artifacts", "", "Comma-separated list of directories containing artifacts and build info") + flag.StringVar(&f.OutDir, "out", "", "Output directory to put code in") + flag.StringVar(&f.Contracts, "contracts", "", "Comma-separated list of contracts to generate code for") + flag.StringVar(&f.Package, "package", "artifacts", "Go package name") + flag.Parse() + + artifacts := strings.Split(f.ArtifactsDir, ",") + contracts := strings.Split(f.Contracts, ",") + + if len(artifacts) == 0 { + log.Fatalf("must define a list of artifacts") + } + + if len(contracts) == 0 { + log.Fatalf("must define a list of contracts") + } + + hh, err := hardhat.New("dummy", artifacts, nil) + if err != nil { + log.Fatalln("error reading artifacts:", err) + } + + t := template.Must(template.New("artifact").Parse(tmpl)) + + for _, name := range contracts { + art, err := hh.GetArtifact(name) + if err != nil { + log.Fatalf("error reading artifact %s: %v\n", name, err) + } + + storage, err := hh.GetStorageLayout(name) + if err != nil { + log.Fatalf("error reading storage layout %s: %v\n", name, err) + } + + ser, err := json.Marshal(storage) + if err != nil { + log.Fatalf("error marshaling storage: %v\n", err) + } + serStr := strings.Replace(string(ser), "\"", "\\\"", -1) + + d := data{ + Name: name, + StorageLayout: serStr, + DeployedBin: art.DeployedBytecode.String(), + Package: f.Package, + } + + fname := filepath.Join(f.OutDir, strings.ToLower(name)+"_more.go") + outfile, err := os.OpenFile( + fname, + os.O_RDWR|os.O_CREATE|os.O_TRUNC, + 0o600, + ) + if err != nil { + log.Fatalf("error opening %s: %v\n", fname, err) + } + + if err := t.Execute(outfile, d); err != nil { + log.Fatalf("error writing template %s: %v", outfile.Name(), err) + } + outfile.Close() + log.Printf("wrote file %s\n", outfile.Name()) + } +} + +var tmpl = `// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package {{.Package}} + +import ( + "encoding/json" + + "github.com/ethereum-optimism/optimism/op-bindings/solc" +) + +const {{.Name}}StorageLayoutJSON = "{{.StorageLayout}}" + +var {{.Name}}StorageLayout = new(solc.StorageLayout) + +var {{.Name}}DeployedBin = "{{.DeployedBin}}" + +func init() { + if err := json.Unmarshal([]byte({{.Name}}StorageLayoutJSON), {{.Name}}StorageLayout); err != nil { + panic(err) + } + + layouts["{{.Name}}"] = {{.Name}}StorageLayout + deployedBytecodes["{{.Name}}"] = {{.Name}}DeployedBin +} +` diff --git a/op-bindings/gen_bindings.sh b/op-bindings/gen_bindings.sh index 8319c0288a21..a44307fa6ed2 100755 --- a/op-bindings/gen_bindings.sh +++ b/op-bindings/gen_bindings.sh @@ -37,10 +37,9 @@ TEMP=$(mktemp -d) CWD=$(pwd) # Build contracts cd ${CONTRACTS_PATH} -forge build -forge inspect ${NAME} abi > ${TEMP}/${TYPE}.abi -forge inspect ${NAME} bytecode > ${TEMP}/${TYPE}.bin -forge inspect ${NAME} deployedBytecode > ${CWD}/bin/${TYPE_LOWER}_deployed.hex +forge inspect -o ./tmp-artifacts ${NAME} abi > ${TEMP}/${TYPE}.abi +forge inspect -o ./tmp-artifacts ${NAME} bytecode > ${TEMP}/${TYPE}.bin +forge inspect -o ./tmp-artifacts ${NAME} deployedBytecode > ${CWD}/bin/${TYPE_LOWER}_deployed.hex # Run ABIGEN cd ${CWD} diff --git a/op-bindings/gen_deployed_bytecode.sh b/op-bindings/gen_deployed_bytecode.sh deleted file mode 100755 index 9cb0e8af1056..000000000000 --- a/op-bindings/gen_deployed_bytecode.sh +++ /dev/null @@ -1,35 +0,0 @@ -#/bin/bash -set -eu - - -if [ "$#" -ne 2 ]; then - echo "This script takes 2 arguments - CONTRACT_NAME PACKAGE" - exit 1 -fi - -need_cmd() { - if ! command -v "$1" > /dev/null 2>&1; then - echo "need '$1' (command not found)" - exit 1 - fi -} - -need_cmd gofmt - - -TYPE=$1 -PACKAGE=$2 - - -# Convert to lower case to respect golang package naming conventions -TYPE_LOWER=$(echo ${TYPE} | tr '[:upper:]' '[:lower:]') -FILENAME="${TYPE_LOWER}_deployed.go" -FILE="${PACKAGE}/${FILENAME}" -DEPLOYED_BYTECODE=$(cat "bin/${TYPE_LOWER}_deployed.hex") - - -echo "// Code generated - DO NOT EDIT." > ${FILE} -echo "// This file is a generated binding and any manual changes will be lost." >> ${FILE} -echo "package ${PACKAGE}" >> ${FILE} -echo "var ${TYPE}DeployedBin = \"${DEPLOYED_BYTECODE}\"" >> ${FILE} -gofmt -s -w ${FILE} diff --git a/op-chain-ops/hardhat/hardhat.go b/op-bindings/hardhat/hardhat.go similarity index 99% rename from op-chain-ops/hardhat/hardhat.go rename to op-bindings/hardhat/hardhat.go index 45e36824fb80..2b2f469b112f 100644 --- a/op-chain-ops/hardhat/hardhat.go +++ b/op-bindings/hardhat/hardhat.go @@ -9,7 +9,7 @@ import ( "strings" "sync" - "github.com/ethereum-optimism/optimism/op-chain-ops/solc" + "github.com/ethereum-optimism/optimism/op-bindings/solc" ) // `Hardhat` encapsulates all of the functionality required to interact diff --git a/op-chain-ops/hardhat/hardhat_test.go b/op-bindings/hardhat/hardhat_test.go similarity index 98% rename from op-chain-ops/hardhat/hardhat_test.go rename to op-bindings/hardhat/hardhat_test.go index 99a4b63ee06c..8334ad06985e 100644 --- a/op-chain-ops/hardhat/hardhat_test.go +++ b/op-bindings/hardhat/hardhat_test.go @@ -3,7 +3,7 @@ package hardhat_test import ( "testing" - "github.com/ethereum-optimism/optimism/op-chain-ops/hardhat" + "github.com/ethereum-optimism/optimism/op-bindings/hardhat" "github.com/stretchr/testify/require" ) diff --git a/op-chain-ops/hardhat/testdata/artifacts/build-info/41b5106372a301360350245ee188494f.json b/op-bindings/hardhat/testdata/artifacts/build-info/41b5106372a301360350245ee188494f.json similarity index 100% rename from op-chain-ops/hardhat/testdata/artifacts/build-info/41b5106372a301360350245ee188494f.json rename to op-bindings/hardhat/testdata/artifacts/build-info/41b5106372a301360350245ee188494f.json diff --git a/op-chain-ops/hardhat/testdata/artifacts/contracts/HelloWorld.sol/HelloWorld.dbg.json b/op-bindings/hardhat/testdata/artifacts/contracts/HelloWorld.sol/HelloWorld.dbg.json similarity index 100% rename from op-chain-ops/hardhat/testdata/artifacts/contracts/HelloWorld.sol/HelloWorld.dbg.json rename to op-bindings/hardhat/testdata/artifacts/contracts/HelloWorld.sol/HelloWorld.dbg.json diff --git a/op-chain-ops/hardhat/testdata/artifacts/contracts/HelloWorld.sol/HelloWorld.json b/op-bindings/hardhat/testdata/artifacts/contracts/HelloWorld.sol/HelloWorld.json similarity index 100% rename from op-chain-ops/hardhat/testdata/artifacts/contracts/HelloWorld.sol/HelloWorld.json rename to op-bindings/hardhat/testdata/artifacts/contracts/HelloWorld.sol/HelloWorld.json diff --git a/op-chain-ops/hardhat/testdata/deployments/goerli/OptimismPortal.json b/op-bindings/hardhat/testdata/deployments/goerli/OptimismPortal.json similarity index 100% rename from op-chain-ops/hardhat/testdata/deployments/goerli/OptimismPortal.json rename to op-bindings/hardhat/testdata/deployments/goerli/OptimismPortal.json diff --git a/op-chain-ops/hardhat/testdata/deployments/goerli/OptimismPortalProxy.json b/op-bindings/hardhat/testdata/deployments/goerli/OptimismPortalProxy.json similarity index 100% rename from op-chain-ops/hardhat/testdata/deployments/goerli/OptimismPortalProxy.json rename to op-bindings/hardhat/testdata/deployments/goerli/OptimismPortalProxy.json diff --git a/op-chain-ops/hardhat/types.go b/op-bindings/hardhat/types.go similarity index 98% rename from op-chain-ops/hardhat/types.go rename to op-bindings/hardhat/types.go index 1f5539577137..6e656a78c133 100644 --- a/op-chain-ops/hardhat/types.go +++ b/op-bindings/hardhat/types.go @@ -3,7 +3,7 @@ package hardhat import ( "encoding/json" - "github.com/ethereum-optimism/optimism/op-chain-ops/solc" + "github.com/ethereum-optimism/optimism/op-bindings/solc" "github.com/ethereum/go-ethereum/accounts/abi" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common/hexutil" diff --git a/op-chain-ops/hardhat/utils.go b/op-bindings/hardhat/utils.go similarity index 100% rename from op-chain-ops/hardhat/utils.go rename to op-bindings/hardhat/utils.go diff --git a/op-chain-ops/solc/types.go b/op-bindings/solc/types.go similarity index 100% rename from op-chain-ops/solc/types.go rename to op-bindings/solc/types.go diff --git a/op-chain-ops/genesis/layer_one.go b/op-chain-ops/genesis/layer_one.go index 61529e1e88ad..50f536b9669c 100644 --- a/op-chain-ops/genesis/layer_one.go +++ b/op-chain-ops/genesis/layer_one.go @@ -11,7 +11,6 @@ import ( "github.com/ethereum-optimism/optimism/op-bindings/bindings" "github.com/ethereum-optimism/optimism/op-bindings/predeploys" "github.com/ethereum-optimism/optimism/op-chain-ops/deployer" - "github.com/ethereum-optimism/optimism/op-chain-ops/hardhat" "github.com/ethereum-optimism/optimism/op-chain-ops/state" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/accounts/abi/bind/backends" @@ -32,7 +31,7 @@ var portalMeteringSlot = common.Hash{31: 0x01} var zeroHash common.Hash -func BuildL1DeveloperGenesis(hh *hardhat.Hardhat, config *DeployConfig) (*core.Genesis, error) { +func BuildL1DeveloperGenesis(config *DeployConfig) (*core.Genesis, error) { if config.L2OutputOracleStartingTimestamp != -1 { return nil, errors.New("l2oo starting timestamp must be -1") } @@ -155,7 +154,7 @@ func BuildL1DeveloperGenesis(hh *hardhat.Hardhat, config *DeployConfig) (*core.G backend.Commit() memDB := state.NewMemoryStateDB(genesis) - if err := SetL1Proxies(hh, memDB, predeploys.DevProxyAdminAddr); err != nil { + if err := SetL1Proxies(memDB, predeploys.DevProxyAdminAddr); err != nil { return nil, err } FundDevAccounts(memDB) diff --git a/op-chain-ops/genesis/layer_one_test.go b/op-chain-ops/genesis/layer_one_test.go index c67bde1bef3a..9378819d20bb 100644 --- a/op-chain-ops/genesis/layer_one_test.go +++ b/op-chain-ops/genesis/layer_one_test.go @@ -3,10 +3,8 @@ package genesis import ( "bytes" "encoding/json" - "fmt" "math/big" "os" - "path/filepath" "testing" "time" @@ -17,7 +15,6 @@ import ( "github.com/ethereum-optimism/optimism/op-bindings/bindings" "github.com/ethereum-optimism/optimism/op-bindings/predeploys" - "github.com/ethereum-optimism/optimism/op-chain-ops/hardhat" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/accounts/abi/bind/backends" "github.com/stretchr/testify/require" @@ -31,20 +28,7 @@ func TestBuildL1DeveloperGenesis(t *testing.T) { require.NoError(t, dec.Decode(config)) config.L1GenesisBlockTimestamp = hexutil.Uint64(time.Now().Unix()) - tmpdir := filepath.Join(os.TempDir(), fmt.Sprintf("l2-test-%d", time.Now().Unix())) - require.NoError(t, Untar("testdata/artifacts.tar.gz", tmpdir)) - - hh, err := hardhat.New( - "goerli", - []string{ - filepath.Join(tmpdir, "contracts-bedrock"), - filepath.Join(tmpdir, "contracts-governance"), - }, - []string{"../../packages/contracts-bedrock/deployments"}, - ) - require.Nil(t, err) - - genesis, err := BuildL1DeveloperGenesis(hh, config) + genesis, err := BuildL1DeveloperGenesis(config) require.NoError(t, err) sim := backends.NewSimulatedBackend( diff --git a/op-chain-ops/genesis/layer_two.go b/op-chain-ops/genesis/layer_two.go index 1a9a68186356..128ed0cd7e10 100644 --- a/op-chain-ops/genesis/layer_two.go +++ b/op-chain-ops/genesis/layer_two.go @@ -1,7 +1,6 @@ package genesis import ( - "github.com/ethereum-optimism/optimism/op-chain-ops/hardhat" "github.com/ethereum-optimism/optimism/op-chain-ops/state" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" @@ -17,7 +16,7 @@ type L2Addresses struct { // BuildL2DeveloperGenesis will build the developer Optimism Genesis // Block. Suitable for devnets. -func BuildL2DeveloperGenesis(hh *hardhat.Hardhat, config *DeployConfig, l1StartBlock *types.Block, l2Addrs *L2Addresses) (*core.Genesis, error) { +func BuildL2DeveloperGenesis(config *DeployConfig, l1StartBlock *types.Block, l2Addrs *L2Addresses) (*core.Genesis, error) { genspec, err := NewL2Genesis(config, l1StartBlock) if err != nil { return nil, err @@ -28,16 +27,16 @@ func BuildL2DeveloperGenesis(hh *hardhat.Hardhat, config *DeployConfig, l1StartB FundDevAccounts(db) SetPrecompileBalances(db) - return BuildL2Genesis(db, hh, config, l1StartBlock, l2Addrs) + return BuildL2Genesis(db, config, l1StartBlock, l2Addrs) } // BuildL2Genesis will build the L2 Optimism Genesis Block -func BuildL2Genesis(db *state.MemoryStateDB, hh *hardhat.Hardhat, config *DeployConfig, l1Block *types.Block, l2Addrs *L2Addresses) (*core.Genesis, error) { +func BuildL2Genesis(db *state.MemoryStateDB, config *DeployConfig, l1Block *types.Block, l2Addrs *L2Addresses) (*core.Genesis, error) { // TODO(tynes): need a function for clearing old, unused storage slots. // Each deployed contract on L2 needs to have its existing storage // inspected and then cleared if they are no longer used. - if err := SetL2Proxies(hh, db, l2Addrs.ProxyAdmin); err != nil { + if err := SetL2Proxies(db, l2Addrs.ProxyAdmin); err != nil { return nil, err } @@ -51,11 +50,11 @@ func BuildL2Genesis(db *state.MemoryStateDB, hh *hardhat.Hardhat, config *Deploy return nil, err } - if err := SetImplementations(hh, db, storage); err != nil { + if err := SetImplementations(db, storage); err != nil { return nil, err } - if err := MigrateDepositHashes(hh, db); err != nil { + if err := MigrateDepositHashes(db); err != nil { return nil, err } diff --git a/op-chain-ops/genesis/layer_two_test.go b/op-chain-ops/genesis/layer_two_test.go index 945b775f1e27..2aee25f8601d 100644 --- a/op-chain-ops/genesis/layer_two_test.go +++ b/op-chain-ops/genesis/layer_two_test.go @@ -4,12 +4,11 @@ import ( "context" "encoding/json" "flag" - "fmt" "math/big" "os" - "path/filepath" "testing" - "time" + + "github.com/ethereum-optimism/optimism/op-bindings/bindings" "github.com/ethereum/go-ethereum/common" @@ -17,9 +16,9 @@ import ( "github.com/ethereum/go-ethereum/core" "github.com/ethereum/go-ethereum/crypto" + "github.com/ethereum-optimism/optimism/op-bindings/hardhat" "github.com/ethereum-optimism/optimism/op-bindings/predeploys" "github.com/ethereum-optimism/optimism/op-chain-ops/genesis" - "github.com/ethereum-optimism/optimism/op-chain-ops/hardhat" "github.com/stretchr/testify/require" ) @@ -32,15 +31,9 @@ func init() { var testKey, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") func TestBuildL2DeveloperGenesis(t *testing.T) { - tmpdir := filepath.Join(os.TempDir(), fmt.Sprintf("l2-test-%d", time.Now().Unix())) - require.NoError(t, genesis.Untar("testdata/artifacts.tar.gz", tmpdir)) - hh, err := hardhat.New( "goerli", - []string{ - filepath.Join(tmpdir, "contracts-bedrock"), - filepath.Join(tmpdir, "contracts-governance"), - }, + nil, []string{"../../packages/contracts-bedrock/deployments"}, ) require.Nil(t, err) @@ -50,8 +43,6 @@ func TestBuildL2DeveloperGenesis(t *testing.T) { proxyAdmin, err := hh.GetDeployment("ProxyAdmin") require.Nil(t, err) - proxy, err := hh.GetArtifact("Proxy") - require.Nil(t, err) backend := backends.NewSimulatedBackend( core.GenesisAlloc{ @@ -61,12 +52,15 @@ func TestBuildL2DeveloperGenesis(t *testing.T) { ) block, err := backend.BlockByNumber(context.Background(), common.Big0) require.NoError(t, err) - gen, err := genesis.BuildL2DeveloperGenesis(hh, config, block, &genesis.L2Addresses{ + gen, err := genesis.BuildL2DeveloperGenesis(config, block, &genesis.L2Addresses{ ProxyAdmin: proxyAdmin.Address, }) require.Nil(t, err) require.NotNil(t, gen) + depB, err := bindings.GetDeployedBytecode("Proxy") + require.NoError(t, err) + for name, address := range predeploys.Predeploys { addr := *address @@ -81,7 +75,7 @@ func TestBuildL2DeveloperGenesis(t *testing.T) { adminSlot, ok := account.Storage[genesis.AdminSlot] require.Equal(t, ok, true) require.Equal(t, adminSlot, proxyAdmin.Address.Hash()) - require.Equal(t, account.Code, []byte(proxy.DeployedBytecode)) + require.Equal(t, account.Code, depB) } if writeFile { diff --git a/op-chain-ops/genesis/setters.go b/op-chain-ops/genesis/setters.go index fb0bb99229a6..940a9372bab2 100644 --- a/op-chain-ops/genesis/setters.go +++ b/op-chain-ops/genesis/setters.go @@ -4,8 +4,9 @@ import ( "fmt" "math/big" + "github.com/ethereum-optimism/optimism/op-bindings/bindings" + "github.com/ethereum-optimism/optimism/op-bindings/predeploys" - "github.com/ethereum-optimism/optimism/op-chain-ops/hardhat" "github.com/ethereum-optimism/optimism/op-chain-ops/immutables" "github.com/ethereum-optimism/optimism/op-chain-ops/state" "github.com/ethereum/go-ethereum/common" @@ -24,20 +25,20 @@ func FundDevAccounts(db vm.StateDB) { // a Proxy and ProxyAdmin deployment present so that the Proxy bytecode // can be set in state and the ProxyAdmin can be set as the admin of the // Proxy. -func SetL2Proxies(hh *hardhat.Hardhat, db vm.StateDB, proxyAdminAddr common.Address) error { - return setProxies(hh, db, proxyAdminAddr, bigL2PredeployNamespace, 2048) +func SetL2Proxies(db vm.StateDB, proxyAdminAddr common.Address) error { + return setProxies(db, proxyAdminAddr, bigL2PredeployNamespace, 2048) } // SetL1Proxies will set each of the proxies in the state. It requires // a Proxy and ProxyAdmin deployment present so that the Proxy bytecode // can be set in state and the ProxyAdmin can be set as the admin of the // Proxy. -func SetL1Proxies(hh *hardhat.Hardhat, db vm.StateDB, proxyAdminAddr common.Address) error { - return setProxies(hh, db, proxyAdminAddr, bigL1PredeployNamespace, 2048) +func SetL1Proxies(db vm.StateDB, proxyAdminAddr common.Address) error { + return setProxies(db, proxyAdminAddr, bigL1PredeployNamespace, 2048) } -func setProxies(hh *hardhat.Hardhat, db vm.StateDB, proxyAdminAddr common.Address, namespace *big.Int, count uint64) error { - proxy, err := hh.GetArtifact("Proxy") +func setProxies(db vm.StateDB, proxyAdminAddr common.Address, namespace *big.Int, count uint64) error { + depBytecode, err := bindings.GetDeployedBytecode("Proxy") if err != nil { return err } @@ -52,7 +53,7 @@ func setProxies(hh *hardhat.Hardhat, db vm.StateDB, proxyAdminAddr common.Addres } db.CreateAccount(addr) - db.SetCode(addr, proxy.DeployedBytecode) + db.SetCode(addr, depBytecode) db.SetState(addr, AdminSlot, proxyAdminAddr.Hash()) } return nil @@ -61,19 +62,13 @@ func setProxies(hh *hardhat.Hardhat, db vm.StateDB, proxyAdminAddr common.Addres // SetImplementations will set the implmentations of the contracts in the state // and configure the proxies to point to the implementations. It also sets // the appropriate storage values for each contract at the proxy address. -func SetImplementations(hh *hardhat.Hardhat, db vm.StateDB, storage StorageConfig) error { +func SetImplementations(db vm.StateDB, storage StorageConfig) error { deployResults, err := immutables.BuildOptimism() if err != nil { return err } for name, address := range predeploys.Predeploys { - // Get the hardhat artifact to access the deployed bytecode - artifact, err := hh.GetArtifact(name) - if err != nil { - return err - } - // Convert the address to the code address var addr common.Address switch *address { @@ -98,12 +93,16 @@ func SetImplementations(hh *hardhat.Hardhat, db vm.StateDB, storage StorageConfi if bytecode, ok := deployResults[name]; ok { db.SetCode(addr, bytecode) } else { - db.SetCode(addr, artifact.DeployedBytecode) + depBytecode, err := bindings.GetDeployedBytecode(name) + if err != nil { + return err + } + db.SetCode(addr, depBytecode) } // Set the storage values if storageConfig, ok := storage[name]; ok { - layout, err := hh.GetStorageLayout(name) + layout, err := bindings.GetStorageLayout(name) if err != nil { return err } @@ -128,8 +127,8 @@ func SetImplementations(hh *hardhat.Hardhat, db vm.StateDB, storage StorageConfi // Get the storage layout of the L2ToL1MessagePasser // Iterate over the storage layout to know which storage slots to ignore // Iterate over each storage slot, compute the migration -func MigrateDepositHashes(hh *hardhat.Hardhat, db vm.StateDB) error { - layout, err := hh.GetStorageLayout("L2ToL1MessagePasser") +func MigrateDepositHashes(db vm.StateDB) error { + layout, err := bindings.GetStorageLayout("L2ToL1MessagePasser") if err != nil { return err } diff --git a/op-chain-ops/genesis/testdata/artifacts.tar.gz b/op-chain-ops/genesis/testdata/artifacts.tar.gz deleted file mode 100644 index dd2b58cc9f8a..000000000000 Binary files a/op-chain-ops/genesis/testdata/artifacts.tar.gz and /dev/null differ diff --git a/op-chain-ops/go.mod b/op-chain-ops/go.mod index 3e2dddf696b0..9e7f3d9fe884 100644 --- a/op-chain-ops/go.mod +++ b/op-chain-ops/go.mod @@ -54,3 +54,5 @@ require ( ) replace github.com/ethereum/go-ethereum v1.10.21 => github.com/ethereum-optimism/op-geth v0.0.0-20220904174542-4311f9d2cead + +replace github.com/ethereum-optimism/optimism/op-bindings v0.5.0 => ../op-bindings diff --git a/op-chain-ops/go.sum b/op-chain-ops/go.sum index f91a73bdf8b5..763a14fbe3dc 100644 --- a/op-chain-ops/go.sum +++ b/op-chain-ops/go.sum @@ -174,8 +174,6 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/ethereum-optimism/optimism/l2geth v0.0.0-20220820030939-de38b6f6f77e h1:LUfy9ofKcen9Cm1T9JyGNnrPLR2AmyelFbohS6bs4X8= github.com/ethereum-optimism/optimism/l2geth v0.0.0-20220820030939-de38b6f6f77e/go.mod h1:Oj5A6Qs/Ao1SP17i3uKroyhz49q/ehagSXRAlvwaI5Y= -github.com/ethereum-optimism/optimism/op-bindings v0.5.0 h1:bJT8KmDu5YAVOqPQHxHkntGlRrtRdTIsH+X28LOIcqU= -github.com/ethereum-optimism/optimism/op-bindings v0.5.0/go.mod h1:Ft+sL57mlBysH6nuXZA11GLMMajfBa8SjpEBtitl1Vw= github.com/ethereum/go-ethereum v1.10.4/go.mod h1:nEE0TP5MtxGzOMd7egIrbPJMQBnhVU3ELNxhBglIzhg= github.com/ethereum/go-ethereum v1.10.16/go.mod h1:Anj6cxczl+AHy63o4X9O8yWNHuN5wMpfb8MAnHkWn7Y= github.com/ethereum/go-ethereum v1.10.23 h1:Xk8XAT4/UuqcjMLIMF+7imjkg32kfVFKoeyQDaO2yWM= diff --git a/op-chain-ops/state/encoding.go b/op-chain-ops/state/encoding.go index 632d74eef95f..7748adfea9d5 100644 --- a/op-chain-ops/state/encoding.go +++ b/op-chain-ops/state/encoding.go @@ -8,7 +8,7 @@ import ( "regexp" "strings" - "github.com/ethereum-optimism/optimism/op-chain-ops/solc" + "github.com/ethereum-optimism/optimism/op-bindings/solc" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common/hexutil" diff --git a/op-chain-ops/state/state.go b/op-chain-ops/state/state.go index 227cbeae530b..bdd2576e50be 100644 --- a/op-chain-ops/state/state.go +++ b/op-chain-ops/state/state.go @@ -5,7 +5,7 @@ import ( "fmt" "math/big" - "github.com/ethereum-optimism/optimism/op-chain-ops/solc" + "github.com/ethereum-optimism/optimism/op-bindings/solc" "github.com/ethereum/go-ethereum/common" ) diff --git a/op-chain-ops/state/state_test.go b/op-chain-ops/state/state_test.go index c491202f0e77..f6def0280b3e 100644 --- a/op-chain-ops/state/state_test.go +++ b/op-chain-ops/state/state_test.go @@ -13,7 +13,7 @@ import ( "github.com/ethereum/go-ethereum/core" "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum-optimism/optimism/op-chain-ops/solc" + "github.com/ethereum-optimism/optimism/op-bindings/solc" "github.com/ethereum-optimism/optimism/op-chain-ops/state" "github.com/ethereum-optimism/optimism/op-chain-ops/state/testdata" diff --git a/op-node/cmd/genesis/cmd.go b/op-node/cmd/genesis/cmd.go index f1ca6b9980ab..92ab03d8f52a 100644 --- a/op-node/cmd/genesis/cmd.go +++ b/op-node/cmd/genesis/cmd.go @@ -4,7 +4,6 @@ import ( "encoding/json" "math/big" "os" - "strings" "github.com/ethereum-optimism/optimism/op-bindings/predeploys" "github.com/ethereum-optimism/optimism/op-node/eth" @@ -13,7 +12,6 @@ import ( "github.com/urfave/cli" "github.com/ethereum-optimism/optimism/op-chain-ops/genesis" - "github.com/ethereum-optimism/optimism/op-chain-ops/hardhat" ) var Subcommands = cli.Commands{ @@ -21,10 +19,6 @@ var Subcommands = cli.Commands{ Name: "devnet", Usage: "Initialize new L1 and L2 genesis files and rollup config suitable for a local devnet", Flags: []cli.Flag{ - cli.StringFlag{ - Name: "artifacts", - Usage: "Comma delimited list of hardhat artifact directories", - }, cli.StringFlag{ Name: "deploy-config", Usage: "Path to hardhat deploy config file", @@ -43,20 +37,13 @@ var Subcommands = cli.Commands{ }, }, Action: func(ctx *cli.Context) error { - artifact := ctx.String("artifacts") - artifacts := strings.Split(artifact, ",") - hh, err := hardhat.New("", artifacts, nil) - if err != nil { - return err - } - deployConfig := ctx.String("deploy-config") config, err := genesis.NewDeployConfig(deployConfig) if err != nil { return err } - l1Genesis, err := genesis.BuildL1DeveloperGenesis(hh, config) + l1Genesis, err := genesis.BuildL1DeveloperGenesis(config) if err != nil { return err } @@ -67,7 +54,7 @@ var Subcommands = cli.Commands{ L1StandardBridgeProxy: predeploys.DevL1StandardBridgeAddr, L1CrossDomainMessengerProxy: predeploys.DevL1CrossDomainMessengerAddr, } - l2Genesis, err := genesis.BuildL2DeveloperGenesis(hh, config, l1StartBlock, l2Addrs) + l2Genesis, err := genesis.BuildL2DeveloperGenesis(config, l1StartBlock, l2Addrs) if err != nil { return err } diff --git a/op-node/go.mod b/op-node/go.mod index ec3a50e11d48..cf195343fd31 100644 --- a/op-node/go.mod +++ b/op-node/go.mod @@ -161,3 +161,5 @@ require ( ) replace github.com/ethereum/go-ethereum v1.10.23 => github.com/ethereum-optimism/op-geth v0.0.0-20220907143004-2aacc679d638 + +replace github.com/ethereum-optimism/optimism/op-bindings v0.5.0 => ../op-bindings diff --git a/op-node/go.sum b/op-node/go.sum index 9e6e4325792b..faeb44b32f3f 100644 --- a/op-node/go.sum +++ b/op-node/go.sum @@ -190,8 +190,6 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.m github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/ethereum-optimism/op-geth v0.0.0-20220907143004-2aacc679d638 h1:LcvgHjeooGBobfEIEYikMzx1MoIAjRqa/ZDdkrhV3Hw= github.com/ethereum-optimism/op-geth v0.0.0-20220907143004-2aacc679d638/go.mod h1:/6CsT5Ceen2WPLI/oCA3xMcZ5sWMF/D46SjM/ayY0Oo= -github.com/ethereum-optimism/optimism/op-bindings v0.5.0 h1:bJT8KmDu5YAVOqPQHxHkntGlRrtRdTIsH+X28LOIcqU= -github.com/ethereum-optimism/optimism/op-bindings v0.5.0/go.mod h1:Ft+sL57mlBysH6nuXZA11GLMMajfBa8SjpEBtitl1Vw= github.com/ethereum-optimism/optimism/op-chain-ops v0.0.0-20220822214343-2106bdb7fc11 h1:be6PccBLLuTZZKC9FuwArNjMVX8R83TCnwknncWJqQw= github.com/ethereum-optimism/optimism/op-chain-ops v0.0.0-20220822214343-2106bdb7fc11/go.mod h1:D+q1th05BC1WA2kq3yyRxYiF8ZwQUbhNA2iwbG8qODE= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= diff --git a/ops-bedrock/devnet-up.sh b/ops-bedrock/devnet-up.sh index 681d2a1bcaa0..a21c63671215 100755 --- a/ops-bedrock/devnet-up.sh +++ b/ops-bedrock/devnet-up.sh @@ -71,7 +71,6 @@ if [ ! -f "$DEVNET/done" ]; then ( cd "$OP_NODE" go run cmd/main.go genesis devnet \ - --artifacts "$CONTRACTS_BEDROCK/artifacts,$CONTRACTS_GOVERNANCE/artifacts" \ --deploy-config /tmp/bedrock-devnet-deploy-config.json \ --outfile.l1 $DEVNET/genesis-l1.json \ --outfile.l2 $DEVNET/genesis-l2.json \