From 2e7bbfa4f78a464cb2dc43c8bacf76345fdfce17 Mon Sep 17 00:00:00 2001 From: anikaraghu Date: Wed, 3 Jan 2024 14:23:21 -0800 Subject: [PATCH] Add test, regenerate bindings --- op-bindings/bindings/systemconfig.go | 87 ++++++++++++++++++- op-bindings/bindings/systemconfig_more.go | 4 +- .../test/L1/SystemConfig.t.sol | 17 ++++ 3 files changed, 104 insertions(+), 4 deletions(-) diff --git a/op-bindings/bindings/systemconfig.go b/op-bindings/bindings/systemconfig.go index 14e3c6737c3b..5e04d549202f 100644 --- a/op-bindings/bindings/systemconfig.go +++ b/op-bindings/bindings/systemconfig.go @@ -40,8 +40,8 @@ type ResourceMeteringResourceConfig struct { // SystemConfigMetaData contains all meta data concerning the SystemConfig contract. var SystemConfigMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_overhead\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_scalar\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_batcherHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"_gasLimit\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"_unsafeBlockSigner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_config\",\"type\":\"tuple\",\"internalType\":\"structResourceMetering.ResourceConfig\",\"components\":[{\"name\":\"maxResourceLimit\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"elasticityMultiplier\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"baseFeeMaxChangeDenominator\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"minimumBaseFee\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"systemTxMaxGas\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"maximumBaseFee\",\"type\":\"uint128\",\"internalType\":\"uint128\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"UNSAFE_BLOCK_SIGNER_SLOT\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"VERSION\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"batcherHash\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"gasLimit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_overhead\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_scalar\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_batcherHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"_gasLimit\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"_unsafeBlockSigner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_config\",\"type\":\"tuple\",\"internalType\":\"structResourceMetering.ResourceConfig\",\"components\":[{\"name\":\"maxResourceLimit\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"elasticityMultiplier\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"baseFeeMaxChangeDenominator\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"minimumBaseFee\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"systemTxMaxGas\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"maximumBaseFee\",\"type\":\"uint128\",\"internalType\":\"uint128\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"minimumGasLimit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"overhead\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"resourceConfig\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structResourceMetering.ResourceConfig\",\"components\":[{\"name\":\"maxResourceLimit\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"elasticityMultiplier\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"baseFeeMaxChangeDenominator\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"minimumBaseFee\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"systemTxMaxGas\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"maximumBaseFee\",\"type\":\"uint128\",\"internalType\":\"uint128\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"scalar\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setBatcherHash\",\"inputs\":[{\"name\":\"_batcherHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setGasConfig\",\"inputs\":[{\"name\":\"_overhead\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_scalar\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setGasLimit\",\"inputs\":[{\"name\":\"_gasLimit\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setResourceConfig\",\"inputs\":[{\"name\":\"_config\",\"type\":\"tuple\",\"internalType\":\"structResourceMetering.ResourceConfig\",\"components\":[{\"name\":\"maxResourceLimit\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"elasticityMultiplier\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"baseFeeMaxChangeDenominator\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"minimumBaseFee\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"systemTxMaxGas\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"maximumBaseFee\",\"type\":\"uint128\",\"internalType\":\"uint128\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setUnsafeBlockSigner\",\"inputs\":[{\"name\":\"_unsafeBlockSigner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unsafeBlockSigner\",\"inputs\":[],\"outputs\":[{\"name\":\"addr_\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"ConfigUpdate\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"name\":\"updateType\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"enumSystemConfig.UpdateType\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false}]", - Bin: "0x60806040523480156200001157600080fd5b5060405162002187380380620021878339810160408190526200003491620009c1565b620000458787878787878762000052565b5050505050505062000c19565b600054610100900460ff1615808015620000735750600054600160ff909116105b80620000a3575062000090306200022a60201b620008131760201c565b158015620000a3575060005460ff166001145b6200010c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000130576000805461ff0019166101001790555b6200013a62000239565b6200014588620002a1565b620001508562000320565b6200015c878762000372565b6200016784620003d6565b620001728362000473565b6200017d82620004db565b620001876200081f565b6001600160401b0316846001600160401b03161015620001d95760405162461bcd60e51b815260206004820152601f602482015260008051602062002127833981519152604482015260640162000103565b801562000220576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b6001600160a01b03163b151590565b600054610100900460ff16620002955760405162461bcd60e51b815260206004820152602b60248201526000805160206200216783398151915260448201526a6e697469616c697a696e6760a81b606482015260840162000103565b6200029f6200084c565b565b620002ab620008b3565b6001600160a01b038116620003125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000103565b6200031d816200090f565b50565b60678190556040805160208082018490528251808303909101815290820190915260005b6000600080516020620021478339815191528360405162000366919062000afa565b60405180910390a35050565b60658290556066819055604080516020810184905290810182905260009060600160408051601f198184030181529190529050600160006000805160206200214783398151915283604051620003c9919062000afa565b60405180910390a3505050565b620003e06200081f565b6001600160401b0316816001600160401b03161015620004325760405162461bcd60e51b815260206004820152601f602482015260008051602062002127833981519152604482015260640162000103565b606880546001600160401b0319166001600160401b038316908117909155604080516020808201939093528151808203909301835281019052600262000344565b620004aa7f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c08826200096160201b6200082f1760201c565b604080516001600160a01b03831660208201526000910160408051601f198184030181529190529050600362000344565b8060a001516001600160801b0316816060015163ffffffff1611156200056a5760405162461bcd60e51b815260206004820152603560248201527f53797374656d436f6e6669673a206d696e206261736520666565206d7573742060448201527f6265206c657373207468616e206d617820626173650000000000000000000000606482015260840162000103565b6001816040015160ff1611620005db5760405162461bcd60e51b815260206004820152602f60248201527f53797374656d436f6e6669673a2064656e6f6d696e61746f72206d757374206260448201526e65206c6172676572207468616e203160881b606482015260840162000103565b606854608082015182516001600160401b0390921691620005fd919062000b68565b63ffffffff161115620006425760405162461bcd60e51b815260206004820152601f602482015260008051602062002127833981519152604482015260640162000103565b6000816020015160ff1611620006b35760405162461bcd60e51b815260206004820152602f60248201527f53797374656d436f6e6669673a20656c6173746963697479206d756c7469706c60448201526e06965722063616e6e6f74206265203608c1b606482015260840162000103565b8051602082015163ffffffff82169160ff90911690620006d590829062000b93565b620006e1919062000bc5565b63ffffffff16146200075c5760405162461bcd60e51b815260206004820152603760248201527f53797374656d436f6e6669673a20707265636973696f6e206c6f73732077697460448201527f6820746172676574207265736f75726365206c696d6974000000000000000000606482015260840162000103565b805160698054602084015160408501516060860151608087015160a09097015163ffffffff96871664ffffffffff199095169490941764010000000060ff948516021764ffffffffff60281b191665010000000000939092169290920263ffffffff60301b19161766010000000000009185169190910217600160501b600160f01b0319166a01000000000000000000009390941692909202600160701b600160f01b03191692909217600160701b6001600160801b0390921691909102179055565b606954600090620008479063ffffffff6a010000000000000000000082048116911662000bf4565b905090565b600054610100900460ff16620008a85760405162461bcd60e51b815260206004820152602b60248201526000805160206200216783398151915260448201526a6e697469616c697a696e6760a81b606482015260840162000103565b6200029f336200090f565b6033546001600160a01b031633146200029f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000103565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b9055565b80516001600160a01b03811681146200097d57600080fd5b919050565b805163ffffffff811681146200097d57600080fd5b805160ff811681146200097d57600080fd5b80516001600160801b03811681146200097d57600080fd5b6000806000806000806000878903610180811215620009df57600080fd5b620009ea8962000965565b60208a015160408b015160608c015160808d0151939b50919950975095506001600160401b03808216821462000a1f57600080fd5b81955062000a3060a08c0162000965565b945060c060bf198401121562000a4557600080fd5b604051925060c083019150828210818311171562000a7357634e487b7160e01b600052604160045260246000fd5b5060405262000a8560c08a0162000982565b815262000a9560e08a0162000997565b602082015262000aa96101008a0162000997565b604082015262000abd6101208a0162000982565b606082015262000ad16101408a0162000982565b608082015262000ae56101608a01620009a9565b60a08201528091505092959891949750929550565b600060208083528351808285015260005b8181101562000b295785810183015185820160400152820162000b0b565b8181111562000b3c576000604083870101525b50601f01601f1916929092016040019392505050565b634e487b7160e01b600052601160045260246000fd5b600063ffffffff80831681851680830382111562000b8a5762000b8a62000b52565b01949350505050565b600063ffffffff8084168062000bb957634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b600063ffffffff8083168185168183048111821515161562000beb5762000beb62000b52565b02949350505050565b60006001600160401b0382811684821680830382111562000b8a5762000b8a62000b52565b6114fe8062000c296000396000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c8063b40a817c116100cd578063f2fde38b11610081578063f68016b711610066578063f68016b714610410578063f975e92514610424578063ffa1ad741461043757600080fd5b8063f2fde38b146103f4578063f45e65d81461040757600080fd5b8063c9b26f61116100b2578063c9b26f61146102a4578063cc731b02146102b7578063e81b2c6d146103eb57600080fd5b8063b40a817c1461027e578063c71973f61461029157600080fd5b80634f16540b11610124578063715018a611610109578063715018a6146102455780638da5cb5b1461024d578063935f029e1461026b57600080fd5b80634f16540b146101d557806354fd4d50146101fc57600080fd5b80630c18c1621461015657806318d13918146101725780631fd19ee1146101875780634add321d146101b4575b600080fd5b61015f60655481565b6040519081526020015b60405180910390f35b610185610180366004611156565b61043f565b005b61018f610453565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610169565b6101bc610482565b60405167ffffffffffffffff9091168152602001610169565b61015f7f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c0881565b6102386040518060400160405280600681526020017f312e31312e30000000000000000000000000000000000000000000000000000081525081565b60405161016991906111e3565b6101856104a8565b60335473ffffffffffffffffffffffffffffffffffffffff1661018f565b6101856102793660046111f6565b6104bc565b61018561028c366004611230565b6104d2565b61018561029f366004611359565b6104e3565b6101856102b2366004611375565b6104f4565b61037b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c08101825260695463ffffffff8082168352640100000000820460ff9081166020850152650100000000008304169383019390935266010000000000008104831660608301526a0100000000000000000000810490921660808201526e0100000000000000000000000000009091046fffffffffffffffffffffffffffffffff1660a082015290565b6040516101699190600060c08201905063ffffffff80845116835260ff602085015116602084015260ff6040850151166040840152806060850151166060840152806080850151166080840152506fffffffffffffffffffffffffffffffff60a08401511660a083015292915050565b61015f60675481565b610185610402366004611156565b610505565b61015f60665481565b6068546101bc9067ffffffffffffffff1681565b61018561043236600461138e565b6105be565b61015f600081565b610447610833565b610450816108b4565b50565b600061047d7f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c085490565b905090565b60695460009061047d9063ffffffff6a0100000000000000000000820481169116611430565b6104b0610833565b6104ba6000610971565b565b6104c4610833565b6104ce82826109e8565b5050565b6104da610833565b61045081610a79565b6104eb610833565b61045081610b57565b6104fc610833565b61045081610fcb565b61050d610833565b73ffffffffffffffffffffffffffffffffffffffff81166105b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61045081610971565b600054610100900460ff16158080156105de5750600054600160ff909116105b806105f85750303b1580156105f8575060005460ff166001145b610684576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105ac565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156106e257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6106ea610ff3565b6106f388610505565b6106fc85610fcb565b61070687876109e8565b61070f84610a79565b610718836108b4565b61072182610b57565b610729610482565b67ffffffffffffffff168467ffffffffffffffff1610156107a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f53797374656d436f6e6669673a20676173206c696d697420746f6f206c6f770060448201526064016105ac565b801561080957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b9055565b60335473ffffffffffffffffffffffffffffffffffffffff1633146104ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105ac565b6108dd7f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c08829055565b6040805173ffffffffffffffffffffffffffffffffffffffff8316602082015260009101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060035b60007f1d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be8360405161096591906111e3565b60405180910390a35050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606582905560668190556040805160208101849052908101829052600090606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190529050600160007f1d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be83604051610a6c91906111e3565b60405180910390a3505050565b610a81610482565b67ffffffffffffffff168167ffffffffffffffff161015610afe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f53797374656d436f6e6669673a20676173206c696d697420746f6f206c6f770060448201526064016105ac565b606880547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff83169081179091556040805160208082019390935281518082039093018352810190526002610934565b8060a001516fffffffffffffffffffffffffffffffff16816060015163ffffffff161115610c07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f53797374656d436f6e6669673a206d696e206261736520666565206d7573742060448201527f6265206c657373207468616e206d61782062617365000000000000000000000060648201526084016105ac565b6001816040015160ff1611610c9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f53797374656d436f6e6669673a2064656e6f6d696e61746f72206d757374206260448201527f65206c6172676572207468616e2031000000000000000000000000000000000060648201526084016105ac565b6068546080820151825167ffffffffffffffff90921691610cbf919061145c565b63ffffffff161115610d2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f53797374656d436f6e6669673a20676173206c696d697420746f6f206c6f770060448201526064016105ac565b6000816020015160ff1611610dc4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f53797374656d436f6e6669673a20656c6173746963697479206d756c7469706c60448201527f6965722063616e6e6f742062652030000000000000000000000000000000000060648201526084016105ac565b8051602082015163ffffffff82169160ff90911690610de490829061147b565b610dee91906114c5565b63ffffffff1614610e81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f53797374656d436f6e6669673a20707265636973696f6e206c6f73732077697460448201527f6820746172676574207265736f75726365206c696d697400000000000000000060648201526084016105ac565b805160698054602084015160408501516060860151608087015160a09097015163ffffffff9687167fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009095169490941764010000000060ff94851602177fffffffffffffffffffffffffffffffffffffffffffff0000000000ffffffffff166501000000000093909216929092027fffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffff1617660100000000000091851691909102177fffff0000000000000000000000000000000000000000ffffffffffffffffffff166a010000000000000000000093909416929092027fffff00000000000000000000000000000000ffffffffffffffffffffffffffff16929092176e0100000000000000000000000000006fffffffffffffffffffffffffffffffff90921691909102179055565b6067819055604080516020808201849052825180830390910181529082019091526000610934565b600054610100900460ff1661108a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105ac565b6104ba600054610100900460ff16611124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105ac565b6104ba33610971565b803573ffffffffffffffffffffffffffffffffffffffff8116811461115157600080fd5b919050565b60006020828403121561116857600080fd5b6111718261112d565b9392505050565b6000815180845260005b8181101561119e57602081850181015186830182015201611182565b818111156111b0576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006111716020830184611178565b6000806040838503121561120957600080fd5b50508035926020909101359150565b803567ffffffffffffffff8116811461115157600080fd5b60006020828403121561124257600080fd5b61117182611218565b803563ffffffff8116811461115157600080fd5b803560ff8116811461115157600080fd5b80356fffffffffffffffffffffffffffffffff8116811461115157600080fd5b600060c082840312156112a257600080fd5b60405160c0810181811067ffffffffffffffff821117156112ec577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040529050806112fb8361124b565b81526113096020840161125f565b602082015261131a6040840161125f565b604082015261132b6060840161124b565b606082015261133c6080840161124b565b608082015261134d60a08401611270565b60a08201525092915050565b600060c0828403121561136b57600080fd5b6111718383611290565b60006020828403121561138757600080fd5b5035919050565b6000806000806000806000610180888a0312156113aa57600080fd5b6113b38861112d565b96506020880135955060408801359450606088013593506113d660808901611218565b92506113e460a0890161112d565b91506113f38960c08a01611290565b905092959891949750929550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681851680830382111561145357611453611401565b01949350505050565b600063ffffffff80831681851680830382111561145357611453611401565b600063ffffffff808416806114b9577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b600063ffffffff808316818516818304811182151516156114e8576114e8611401565b0294935050505056fea164736f6c634300080f000a53797374656d436f6e6669673a20676173206c696d697420746f6f206c6f77001d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069", + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_overhead\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_scalar\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_batcherHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"_gasLimit\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"_unsafeBlockSigner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_config\",\"type\":\"tuple\",\"internalType\":\"structResourceMetering.ResourceConfig\",\"components\":[{\"name\":\"maxResourceLimit\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"elasticityMultiplier\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"baseFeeMaxChangeDenominator\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"minimumBaseFee\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"systemTxMaxGas\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"maximumBaseFee\",\"type\":\"uint128\",\"internalType\":\"uint128\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"UNSAFE_BLOCK_SIGNER_SLOT\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"VERSION\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"basefeeScalar\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"batcherHash\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"blobBasefeeScalar\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"gasLimit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_overhead\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_scalar\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_batcherHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"_gasLimit\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"_unsafeBlockSigner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_config\",\"type\":\"tuple\",\"internalType\":\"structResourceMetering.ResourceConfig\",\"components\":[{\"name\":\"maxResourceLimit\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"elasticityMultiplier\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"baseFeeMaxChangeDenominator\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"minimumBaseFee\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"systemTxMaxGas\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"maximumBaseFee\",\"type\":\"uint128\",\"internalType\":\"uint128\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"minimumGasLimit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"overhead\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"resourceConfig\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structResourceMetering.ResourceConfig\",\"components\":[{\"name\":\"maxResourceLimit\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"elasticityMultiplier\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"baseFeeMaxChangeDenominator\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"minimumBaseFee\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"systemTxMaxGas\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"maximumBaseFee\",\"type\":\"uint128\",\"internalType\":\"uint128\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"scalar\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setBatcherHash\",\"inputs\":[{\"name\":\"_batcherHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setGasConfig\",\"inputs\":[{\"name\":\"_overhead\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_scalar\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setGasConfigEcotone\",\"inputs\":[{\"name\":\"_basefeeScalar\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"_blobBasefeeScalar\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setGasLimit\",\"inputs\":[{\"name\":\"_gasLimit\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setResourceConfig\",\"inputs\":[{\"name\":\"_config\",\"type\":\"tuple\",\"internalType\":\"structResourceMetering.ResourceConfig\",\"components\":[{\"name\":\"maxResourceLimit\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"elasticityMultiplier\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"baseFeeMaxChangeDenominator\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"minimumBaseFee\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"systemTxMaxGas\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"maximumBaseFee\",\"type\":\"uint128\",\"internalType\":\"uint128\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setUnsafeBlockSigner\",\"inputs\":[{\"name\":\"_unsafeBlockSigner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unsafeBlockSigner\",\"inputs\":[],\"outputs\":[{\"name\":\"addr_\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"ConfigUpdate\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"name\":\"updateType\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"enumSystemConfig.UpdateType\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false}]", + Bin: "0x60806040523480156200001157600080fd5b50604051620023a5380380620023a5833981016040819052620000349162000a51565b620000458787878787878762000052565b5050505050505062000ca9565b600054610100900460ff1615808015620000735750600054600160ff909116105b80620000a3575062000090306200023760201b620008c51760201c565b158015620000a3575060005460ff166001145b6200010c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000130576000805461ff0019166101001790555b6200013a62000246565b6200014588620002ae565b62000150856200032d565b6200015c87876200037f565b62000169866000620003dd565b620001748462000466565b6200017f8362000503565b6200018a826200056b565b62000194620008af565b6001600160401b0316846001600160401b03161015620001e65760405162461bcd60e51b815260206004820152601f602482015260008051602062002345833981519152604482015260640162000103565b80156200022d576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b6001600160a01b03163b151590565b600054610100900460ff16620002a25760405162461bcd60e51b815260206004820152602b60248201526000805160206200238583398151915260448201526a6e697469616c697a696e6760a81b606482015260840162000103565b620002ac620008dc565b565b620002b862000943565b6001600160a01b0381166200031f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000103565b6200032a816200099f565b50565b60678190556040805160208082018490528251808303909101815290820190915260005b6000600080516020620023658339815191528360405162000373919062000b8a565b60405180910390a35050565b606582905560668190556040805160208101849052808201839052815180820383018152606090910190915260015b60006000805160206200236583398151915283604051620003d0919062000b8a565b60405180910390a3505050565b60688054600160401b600160801b0319166801000000000000000063ffffffff8581169190910263ffffffff60601b1916919091176c0100000000000000000000000091841691909102179055604080516001600160e01b031960e085811b8216602084015284901b1660248201528151808203600801815260289091019091526004620003ae565b62000470620008af565b6001600160401b0316816001600160401b03161015620004c25760405162461bcd60e51b815260206004820152601f602482015260008051602062002345833981519152604482015260640162000103565b606880546001600160401b0319166001600160401b038316908117909155604080516020808201939093528151808203909301835281019052600262000351565b6200053a7f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c0882620009f160201b620008e11760201c565b604080516001600160a01b03831660208201526000910160408051601f198184030181529190529050600362000351565b8060a001516001600160801b0316816060015163ffffffff161115620005fa5760405162461bcd60e51b815260206004820152603560248201527f53797374656d436f6e6669673a206d696e206261736520666565206d7573742060448201527f6265206c657373207468616e206d617820626173650000000000000000000000606482015260840162000103565b6001816040015160ff16116200066b5760405162461bcd60e51b815260206004820152602f60248201527f53797374656d436f6e6669673a2064656e6f6d696e61746f72206d757374206260448201526e65206c6172676572207468616e203160881b606482015260840162000103565b606854608082015182516001600160401b03909216916200068d919062000bf8565b63ffffffff161115620006d25760405162461bcd60e51b815260206004820152601f602482015260008051602062002345833981519152604482015260640162000103565b6000816020015160ff1611620007435760405162461bcd60e51b815260206004820152602f60248201527f53797374656d436f6e6669673a20656c6173746963697479206d756c7469706c60448201526e06965722063616e6e6f74206265203608c1b606482015260840162000103565b8051602082015163ffffffff82169160ff909116906200076590829062000c23565b62000771919062000c55565b63ffffffff1614620007ec5760405162461bcd60e51b815260206004820152603760248201527f53797374656d436f6e6669673a20707265636973696f6e206c6f73732077697460448201527f6820746172676574207265736f75726365206c696d6974000000000000000000606482015260840162000103565b805160698054602084015160408501516060860151608087015160a09097015163ffffffff96871664ffffffffff199095169490941764010000000060ff948516021764ffffffffff60281b191665010000000000939092169290920263ffffffff60301b19161766010000000000009185169190910217600160501b600160f01b0319166a01000000000000000000009390941692909202600160701b600160f01b03191692909217600160701b6001600160801b0390921691909102179055565b606954600090620008d79063ffffffff6a010000000000000000000082048116911662000c84565b905090565b600054610100900460ff16620009385760405162461bcd60e51b815260206004820152602b60248201526000805160206200238583398151915260448201526a6e697469616c697a696e6760a81b606482015260840162000103565b620002ac336200099f565b6033546001600160a01b03163314620002ac5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000103565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b9055565b80516001600160a01b038116811462000a0d57600080fd5b919050565b805163ffffffff8116811462000a0d57600080fd5b805160ff8116811462000a0d57600080fd5b80516001600160801b038116811462000a0d57600080fd5b600080600080600080600087890361018081121562000a6f57600080fd5b62000a7a89620009f5565b60208a015160408b015160608c015160808d0151939b50919950975095506001600160401b03808216821462000aaf57600080fd5b81955062000ac060a08c01620009f5565b945060c060bf198401121562000ad557600080fd5b604051925060c083019150828210818311171562000b0357634e487b7160e01b600052604160045260246000fd5b5060405262000b1560c08a0162000a12565b815262000b2560e08a0162000a27565b602082015262000b396101008a0162000a27565b604082015262000b4d6101208a0162000a12565b606082015262000b616101408a0162000a12565b608082015262000b756101608a0162000a39565b60a08201528091505092959891949750929550565b600060208083528351808285015260005b8181101562000bb95785810183015185820160400152820162000b9b565b8181111562000bcc576000604083870101525b50601f01601f1916929092016040019392505050565b634e487b7160e01b600052601160045260246000fd5b600063ffffffff80831681851680830382111562000c1a5762000c1a62000be2565b01949350505050565b600063ffffffff8084168062000c4957634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b600063ffffffff8083168185168183048111821515161562000c7b5762000c7b62000be2565b02949350505050565b60006001600160401b0382811684821680830382111562000c1a5762000c1a62000be2565b61168c8062000cb96000396000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c8063b40a817c116100d8578063e81b2c6d1161008c578063f68016b711610066578063f68016b7146104a5578063f975e925146104b9578063ffa1ad74146104cc57600080fd5b8063e81b2c6d14610480578063f2fde38b14610489578063f45e65d81461049c57600080fd5b8063c71973f6116100bd578063c71973f614610326578063c9b26f6114610339578063cc731b021461034c57600080fd5b8063b40a817c146102f7578063bfb14fb71461030a57600080fd5b80634f16540b1161013a5780637744864d116101145780637744864d146102915780638da5cb5b146102c6578063935f029e146102e457600080fd5b80634f16540b1461021957806354fd4d5014610240578063715018a61461028957600080fd5b80631fd19ee11161016b5780631fd19ee1146101b857806321d7fde5146101e55780634add321d146101f857600080fd5b80630c18c1621461018757806318d13918146101a3575b600080fd5b61019060655481565b6040519081526020015b60405180910390f35b6101b66101b13660046112b1565b6104d4565b005b6101c06104e8565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161019a565b6101b66101f33660046112e7565b610517565b61020061052d565b60405167ffffffffffffffff909116815260200161019a565b6101907f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c0881565b61027c6040518060400160405280600681526020017f312e31322e30000000000000000000000000000000000000000000000000000081525081565b60405161019a9190611385565b6101b6610553565b6068546102b1906c01000000000000000000000000900463ffffffff1681565b60405163ffffffff909116815260200161019a565b60335473ffffffffffffffffffffffffffffffffffffffff166101c0565b6101b66102f2366004611398565b610567565b6101b66103053660046113d2565b610579565b6068546102b19068010000000000000000900463ffffffff1681565b6101b66103343660046114e7565b61058a565b6101b6610347366004611503565b61059b565b6104106040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c08101825260695463ffffffff8082168352640100000000820460ff9081166020850152650100000000008304169383019390935266010000000000008104831660608301526a0100000000000000000000810490921660808201526e0100000000000000000000000000009091046fffffffffffffffffffffffffffffffff1660a082015290565b60405161019a9190600060c08201905063ffffffff80845116835260ff602085015116602084015260ff6040850151166040840152806060850151166060840152806080850151166080840152506fffffffffffffffffffffffffffffffff60a08401511660a083015292915050565b61019060675481565b6101b66104973660046112b1565b6105ac565b61019060665481565b6068546102009067ffffffffffffffff1681565b6101b66104c736600461151c565b610665565b610190600081565b6104dc6108e5565b6104e581610966565b50565b60006105127f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c085490565b905090565b61051f6108e5565b6105298282610a23565b5050565b6069546000906105129063ffffffff6a01000000000000000000008204811691166115be565b61055b6108e5565b6105656000610b2a565b565b61056f6108e5565b6105298282610ba1565b6105816108e5565b6104e581610bd4565b6105926108e5565b6104e581610cb2565b6105a36108e5565b6104e581611126565b6105b46108e5565b73ffffffffffffffffffffffffffffffffffffffff811661065c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104e581610b2a565b600054610100900460ff16158080156106855750600054600160ff909116105b8061069f5750303b15801561069f575060005460ff166001145b61072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610653565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561078957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61079161114e565b61079a886105ac565b6107a385611126565b6107ad8787610ba1565b6107b8866000610a23565b6107c184610bd4565b6107ca83610966565b6107d382610cb2565b6107db61052d565b67ffffffffffffffff168467ffffffffffffffff161015610858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f53797374656d436f6e6669673a20676173206c696d697420746f6f206c6f77006044820152606401610653565b80156108bb57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b9055565b60335473ffffffffffffffffffffffffffffffffffffffff163314610565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610653565b61098f7f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c08829055565b6040805173ffffffffffffffffffffffffffffffffffffffff8316602082015260009101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060035b60007f1d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be83604051610a179190611385565b60405180910390a35050565b606880547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff166801000000000000000063ffffffff858116919091027fffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff16919091176c0100000000000000000000000091841691909102179055604080517fffffffff0000000000000000000000000000000000000000000000000000000060e085811b8216602084015284901b16602482015281518082036008018152602890910190915260045b60007f1d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be83604051610b1d9190611385565b60405180910390a3505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60658290556066819055604080516020810184905280820183905281518082038301815260609091019091526001610aec565b610bdc61052d565b67ffffffffffffffff168167ffffffffffffffff161015610c59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f53797374656d436f6e6669673a20676173206c696d697420746f6f206c6f77006044820152606401610653565b606880547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff831690811790915560408051602080820193909352815180820390930183528101905260026109e6565b8060a001516fffffffffffffffffffffffffffffffff16816060015163ffffffff161115610d62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f53797374656d436f6e6669673a206d696e206261736520666565206d7573742060448201527f6265206c657373207468616e206d6178206261736500000000000000000000006064820152608401610653565b6001816040015160ff1611610df9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f53797374656d436f6e6669673a2064656e6f6d696e61746f72206d757374206260448201527f65206c6172676572207468616e203100000000000000000000000000000000006064820152608401610653565b6068546080820151825167ffffffffffffffff90921691610e1a91906115ea565b63ffffffff161115610e88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f53797374656d436f6e6669673a20676173206c696d697420746f6f206c6f77006044820152606401610653565b6000816020015160ff1611610f1f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f53797374656d436f6e6669673a20656c6173746963697479206d756c7469706c60448201527f6965722063616e6e6f74206265203000000000000000000000000000000000006064820152608401610653565b8051602082015163ffffffff82169160ff90911690610f3f908290611609565b610f499190611653565b63ffffffff1614610fdc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f53797374656d436f6e6669673a20707265636973696f6e206c6f73732077697460448201527f6820746172676574207265736f75726365206c696d69740000000000000000006064820152608401610653565b805160698054602084015160408501516060860151608087015160a09097015163ffffffff9687167fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009095169490941764010000000060ff94851602177fffffffffffffffffffffffffffffffffffffffffffff0000000000ffffffffff166501000000000093909216929092027fffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffff1617660100000000000091851691909102177fffff0000000000000000000000000000000000000000ffffffffffffffffffff166a010000000000000000000093909416929092027fffff00000000000000000000000000000000ffffffffffffffffffffffffffff16929092176e0100000000000000000000000000006fffffffffffffffffffffffffffffffff90921691909102179055565b60678190556040805160208082018490528251808303909101815290820190915260006109e6565b600054610100900460ff166111e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610653565b610565600054610100900460ff1661127f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610653565b61056533610b2a565b803573ffffffffffffffffffffffffffffffffffffffff811681146112ac57600080fd5b919050565b6000602082840312156112c357600080fd5b6112cc82611288565b9392505050565b803563ffffffff811681146112ac57600080fd5b600080604083850312156112fa57600080fd5b611303836112d3565b9150611311602084016112d3565b90509250929050565b6000815180845260005b8181101561134057602081850181015186830182015201611324565b81811115611352576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006112cc602083018461131a565b600080604083850312156113ab57600080fd5b50508035926020909101359150565b803567ffffffffffffffff811681146112ac57600080fd5b6000602082840312156113e457600080fd5b6112cc826113ba565b803560ff811681146112ac57600080fd5b80356fffffffffffffffffffffffffffffffff811681146112ac57600080fd5b600060c0828403121561143057600080fd5b60405160c0810181811067ffffffffffffffff8211171561147a577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052905080611489836112d3565b8152611497602084016113ed565b60208201526114a8604084016113ed565b60408201526114b9606084016112d3565b60608201526114ca608084016112d3565b60808201526114db60a084016113fe565b60a08201525092915050565b600060c082840312156114f957600080fd5b6112cc838361141e565b60006020828403121561151557600080fd5b5035919050565b6000806000806000806000610180888a03121561153857600080fd5b61154188611288565b9650602088013595506040880135945060608801359350611564608089016113ba565b925061157260a08901611288565b91506115818960c08a0161141e565b905092959891949750929550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff8083168185168083038211156115e1576115e161158f565b01949350505050565b600063ffffffff8083168185168083038211156115e1576115e161158f565b600063ffffffff80841680611647577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b600063ffffffff808316818516818304811182151516156116765761167661158f565b0294935050505056fea164736f6c634300080f000a53797374656d436f6e6669673a20676173206c696d697420746f6f206c6f77001d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069", } // SystemConfigABI is the input ABI used to generate the binding from. @@ -273,6 +273,37 @@ func (_SystemConfig *SystemConfigCallerSession) VERSION() (*big.Int, error) { return _SystemConfig.Contract.VERSION(&_SystemConfig.CallOpts) } +// BasefeeScalar is a free data retrieval call binding the contract method 0xbfb14fb7. +// +// Solidity: function basefeeScalar() view returns(uint32) +func (_SystemConfig *SystemConfigCaller) BasefeeScalar(opts *bind.CallOpts) (uint32, error) { + var out []interface{} + err := _SystemConfig.contract.Call(opts, &out, "basefeeScalar") + + if err != nil { + return *new(uint32), err + } + + out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) + + return out0, err + +} + +// BasefeeScalar is a free data retrieval call binding the contract method 0xbfb14fb7. +// +// Solidity: function basefeeScalar() view returns(uint32) +func (_SystemConfig *SystemConfigSession) BasefeeScalar() (uint32, error) { + return _SystemConfig.Contract.BasefeeScalar(&_SystemConfig.CallOpts) +} + +// BasefeeScalar is a free data retrieval call binding the contract method 0xbfb14fb7. +// +// Solidity: function basefeeScalar() view returns(uint32) +func (_SystemConfig *SystemConfigCallerSession) BasefeeScalar() (uint32, error) { + return _SystemConfig.Contract.BasefeeScalar(&_SystemConfig.CallOpts) +} + // BatcherHash is a free data retrieval call binding the contract method 0xe81b2c6d. // // Solidity: function batcherHash() view returns(bytes32) @@ -304,6 +335,37 @@ func (_SystemConfig *SystemConfigCallerSession) BatcherHash() ([32]byte, error) return _SystemConfig.Contract.BatcherHash(&_SystemConfig.CallOpts) } +// BlobBasefeeScalar is a free data retrieval call binding the contract method 0x7744864d. +// +// Solidity: function blobBasefeeScalar() view returns(uint32) +func (_SystemConfig *SystemConfigCaller) BlobBasefeeScalar(opts *bind.CallOpts) (uint32, error) { + var out []interface{} + err := _SystemConfig.contract.Call(opts, &out, "blobBasefeeScalar") + + if err != nil { + return *new(uint32), err + } + + out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) + + return out0, err + +} + +// BlobBasefeeScalar is a free data retrieval call binding the contract method 0x7744864d. +// +// Solidity: function blobBasefeeScalar() view returns(uint32) +func (_SystemConfig *SystemConfigSession) BlobBasefeeScalar() (uint32, error) { + return _SystemConfig.Contract.BlobBasefeeScalar(&_SystemConfig.CallOpts) +} + +// BlobBasefeeScalar is a free data retrieval call binding the contract method 0x7744864d. +// +// Solidity: function blobBasefeeScalar() view returns(uint32) +func (_SystemConfig *SystemConfigCallerSession) BlobBasefeeScalar() (uint32, error) { + return _SystemConfig.Contract.BlobBasefeeScalar(&_SystemConfig.CallOpts) +} + // GasLimit is a free data retrieval call binding the contract method 0xf68016b7. // // Solidity: function gasLimit() view returns(uint64) @@ -636,6 +698,27 @@ func (_SystemConfig *SystemConfigTransactorSession) SetGasConfig(_overhead *big. return _SystemConfig.Contract.SetGasConfig(&_SystemConfig.TransactOpts, _overhead, _scalar) } +// SetGasConfigEcotone is a paid mutator transaction binding the contract method 0x21d7fde5. +// +// Solidity: function setGasConfigEcotone(uint32 _basefeeScalar, uint32 _blobBasefeeScalar) returns() +func (_SystemConfig *SystemConfigTransactor) SetGasConfigEcotone(opts *bind.TransactOpts, _basefeeScalar uint32, _blobBasefeeScalar uint32) (*types.Transaction, error) { + return _SystemConfig.contract.Transact(opts, "setGasConfigEcotone", _basefeeScalar, _blobBasefeeScalar) +} + +// SetGasConfigEcotone is a paid mutator transaction binding the contract method 0x21d7fde5. +// +// Solidity: function setGasConfigEcotone(uint32 _basefeeScalar, uint32 _blobBasefeeScalar) returns() +func (_SystemConfig *SystemConfigSession) SetGasConfigEcotone(_basefeeScalar uint32, _blobBasefeeScalar uint32) (*types.Transaction, error) { + return _SystemConfig.Contract.SetGasConfigEcotone(&_SystemConfig.TransactOpts, _basefeeScalar, _blobBasefeeScalar) +} + +// SetGasConfigEcotone is a paid mutator transaction binding the contract method 0x21d7fde5. +// +// Solidity: function setGasConfigEcotone(uint32 _basefeeScalar, uint32 _blobBasefeeScalar) returns() +func (_SystemConfig *SystemConfigTransactorSession) SetGasConfigEcotone(_basefeeScalar uint32, _blobBasefeeScalar uint32) (*types.Transaction, error) { + return _SystemConfig.Contract.SetGasConfigEcotone(&_SystemConfig.TransactOpts, _basefeeScalar, _blobBasefeeScalar) +} + // SetGasLimit is a paid mutator transaction binding the contract method 0xb40a817c. // // Solidity: function setGasLimit(uint64 _gasLimit) returns() diff --git a/op-bindings/bindings/systemconfig_more.go b/op-bindings/bindings/systemconfig_more.go index 18c1e0b63c2a..4c53f4703f32 100644 --- a/op-bindings/bindings/systemconfig_more.go +++ b/op-bindings/bindings/systemconfig_more.go @@ -9,11 +9,11 @@ import ( "github.com/ethereum-optimism/optimism/op-bindings/solc" ) -const SystemConfigStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract\":\"src/L1/SystemConfig.sol:SystemConfig\",\"label\":\"_initialized\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_uint8\"},{\"astId\":1001,\"contract\":\"src/L1/SystemConfig.sol:SystemConfig\",\"label\":\"_initializing\",\"offset\":1,\"slot\":\"0\",\"type\":\"t_bool\"},{\"astId\":1002,\"contract\":\"src/L1/SystemConfig.sol:SystemConfig\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_array(t_uint256)50_storage\"},{\"astId\":1003,\"contract\":\"src/L1/SystemConfig.sol:SystemConfig\",\"label\":\"_owner\",\"offset\":0,\"slot\":\"51\",\"type\":\"t_address\"},{\"astId\":1004,\"contract\":\"src/L1/SystemConfig.sol:SystemConfig\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"52\",\"type\":\"t_array(t_uint256)49_storage\"},{\"astId\":1005,\"contract\":\"src/L1/SystemConfig.sol:SystemConfig\",\"label\":\"overhead\",\"offset\":0,\"slot\":\"101\",\"type\":\"t_uint256\"},{\"astId\":1006,\"contract\":\"src/L1/SystemConfig.sol:SystemConfig\",\"label\":\"scalar\",\"offset\":0,\"slot\":\"102\",\"type\":\"t_uint256\"},{\"astId\":1007,\"contract\":\"src/L1/SystemConfig.sol:SystemConfig\",\"label\":\"batcherHash\",\"offset\":0,\"slot\":\"103\",\"type\":\"t_bytes32\"},{\"astId\":1008,\"contract\":\"src/L1/SystemConfig.sol:SystemConfig\",\"label\":\"gasLimit\",\"offset\":0,\"slot\":\"104\",\"type\":\"t_uint64\"},{\"astId\":1009,\"contract\":\"src/L1/SystemConfig.sol:SystemConfig\",\"label\":\"_resourceConfig\",\"offset\":0,\"slot\":\"105\",\"type\":\"t_struct(ResourceConfig)1010_storage\"}],\"types\":{\"t_address\":{\"encoding\":\"inplace\",\"label\":\"address\",\"numberOfBytes\":\"20\"},\"t_array(t_uint256)49_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[49]\",\"numberOfBytes\":\"1568\",\"base\":\"t_uint256\"},\"t_array(t_uint256)50_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[50]\",\"numberOfBytes\":\"1600\",\"base\":\"t_uint256\"},\"t_bool\":{\"encoding\":\"inplace\",\"label\":\"bool\",\"numberOfBytes\":\"1\"},\"t_bytes32\":{\"encoding\":\"inplace\",\"label\":\"bytes32\",\"numberOfBytes\":\"32\"},\"t_struct(ResourceConfig)1010_storage\":{\"encoding\":\"inplace\",\"label\":\"struct ResourceMetering.ResourceConfig\",\"numberOfBytes\":\"32\"},\"t_uint128\":{\"encoding\":\"inplace\",\"label\":\"uint128\",\"numberOfBytes\":\"16\"},\"t_uint256\":{\"encoding\":\"inplace\",\"label\":\"uint256\",\"numberOfBytes\":\"32\"},\"t_uint32\":{\"encoding\":\"inplace\",\"label\":\"uint32\",\"numberOfBytes\":\"4\"},\"t_uint64\":{\"encoding\":\"inplace\",\"label\":\"uint64\",\"numberOfBytes\":\"8\"},\"t_uint8\":{\"encoding\":\"inplace\",\"label\":\"uint8\",\"numberOfBytes\":\"1\"}}}" +const SystemConfigStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contract\":\"src/L1/SystemConfig.sol:SystemConfig\",\"label\":\"_initialized\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_uint8\"},{\"astId\":1001,\"contract\":\"src/L1/SystemConfig.sol:SystemConfig\",\"label\":\"_initializing\",\"offset\":1,\"slot\":\"0\",\"type\":\"t_bool\"},{\"astId\":1002,\"contract\":\"src/L1/SystemConfig.sol:SystemConfig\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_array(t_uint256)50_storage\"},{\"astId\":1003,\"contract\":\"src/L1/SystemConfig.sol:SystemConfig\",\"label\":\"_owner\",\"offset\":0,\"slot\":\"51\",\"type\":\"t_address\"},{\"astId\":1004,\"contract\":\"src/L1/SystemConfig.sol:SystemConfig\",\"label\":\"__gap\",\"offset\":0,\"slot\":\"52\",\"type\":\"t_array(t_uint256)49_storage\"},{\"astId\":1005,\"contract\":\"src/L1/SystemConfig.sol:SystemConfig\",\"label\":\"overhead\",\"offset\":0,\"slot\":\"101\",\"type\":\"t_uint256\"},{\"astId\":1006,\"contract\":\"src/L1/SystemConfig.sol:SystemConfig\",\"label\":\"scalar\",\"offset\":0,\"slot\":\"102\",\"type\":\"t_uint256\"},{\"astId\":1007,\"contract\":\"src/L1/SystemConfig.sol:SystemConfig\",\"label\":\"batcherHash\",\"offset\":0,\"slot\":\"103\",\"type\":\"t_bytes32\"},{\"astId\":1008,\"contract\":\"src/L1/SystemConfig.sol:SystemConfig\",\"label\":\"gasLimit\",\"offset\":0,\"slot\":\"104\",\"type\":\"t_uint64\"},{\"astId\":1009,\"contract\":\"src/L1/SystemConfig.sol:SystemConfig\",\"label\":\"basefeeScalar\",\"offset\":8,\"slot\":\"104\",\"type\":\"t_uint32\"},{\"astId\":1010,\"contract\":\"src/L1/SystemConfig.sol:SystemConfig\",\"label\":\"blobBasefeeScalar\",\"offset\":12,\"slot\":\"104\",\"type\":\"t_uint32\"},{\"astId\":1011,\"contract\":\"src/L1/SystemConfig.sol:SystemConfig\",\"label\":\"_resourceConfig\",\"offset\":0,\"slot\":\"105\",\"type\":\"t_struct(ResourceConfig)1012_storage\"}],\"types\":{\"t_address\":{\"encoding\":\"inplace\",\"label\":\"address\",\"numberOfBytes\":\"20\"},\"t_array(t_uint256)49_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[49]\",\"numberOfBytes\":\"1568\",\"base\":\"t_uint256\"},\"t_array(t_uint256)50_storage\":{\"encoding\":\"inplace\",\"label\":\"uint256[50]\",\"numberOfBytes\":\"1600\",\"base\":\"t_uint256\"},\"t_bool\":{\"encoding\":\"inplace\",\"label\":\"bool\",\"numberOfBytes\":\"1\"},\"t_bytes32\":{\"encoding\":\"inplace\",\"label\":\"bytes32\",\"numberOfBytes\":\"32\"},\"t_struct(ResourceConfig)1012_storage\":{\"encoding\":\"inplace\",\"label\":\"struct ResourceMetering.ResourceConfig\",\"numberOfBytes\":\"32\"},\"t_uint128\":{\"encoding\":\"inplace\",\"label\":\"uint128\",\"numberOfBytes\":\"16\"},\"t_uint256\":{\"encoding\":\"inplace\",\"label\":\"uint256\",\"numberOfBytes\":\"32\"},\"t_uint32\":{\"encoding\":\"inplace\",\"label\":\"uint32\",\"numberOfBytes\":\"4\"},\"t_uint64\":{\"encoding\":\"inplace\",\"label\":\"uint64\",\"numberOfBytes\":\"8\"},\"t_uint8\":{\"encoding\":\"inplace\",\"label\":\"uint8\",\"numberOfBytes\":\"1\"}}}" var SystemConfigStorageLayout = new(solc.StorageLayout) -var SystemConfigDeployedBin = "0x608060405234801561001057600080fd5b50600436106101515760003560e01c8063b40a817c116100cd578063f2fde38b11610081578063f68016b711610066578063f68016b714610410578063f975e92514610424578063ffa1ad741461043757600080fd5b8063f2fde38b146103f4578063f45e65d81461040757600080fd5b8063c9b26f61116100b2578063c9b26f61146102a4578063cc731b02146102b7578063e81b2c6d146103eb57600080fd5b8063b40a817c1461027e578063c71973f61461029157600080fd5b80634f16540b11610124578063715018a611610109578063715018a6146102455780638da5cb5b1461024d578063935f029e1461026b57600080fd5b80634f16540b146101d557806354fd4d50146101fc57600080fd5b80630c18c1621461015657806318d13918146101725780631fd19ee1146101875780634add321d146101b4575b600080fd5b61015f60655481565b6040519081526020015b60405180910390f35b610185610180366004611156565b61043f565b005b61018f610453565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610169565b6101bc610482565b60405167ffffffffffffffff9091168152602001610169565b61015f7f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c0881565b6102386040518060400160405280600681526020017f312e31312e30000000000000000000000000000000000000000000000000000081525081565b60405161016991906111e3565b6101856104a8565b60335473ffffffffffffffffffffffffffffffffffffffff1661018f565b6101856102793660046111f6565b6104bc565b61018561028c366004611230565b6104d2565b61018561029f366004611359565b6104e3565b6101856102b2366004611375565b6104f4565b61037b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c08101825260695463ffffffff8082168352640100000000820460ff9081166020850152650100000000008304169383019390935266010000000000008104831660608301526a0100000000000000000000810490921660808201526e0100000000000000000000000000009091046fffffffffffffffffffffffffffffffff1660a082015290565b6040516101699190600060c08201905063ffffffff80845116835260ff602085015116602084015260ff6040850151166040840152806060850151166060840152806080850151166080840152506fffffffffffffffffffffffffffffffff60a08401511660a083015292915050565b61015f60675481565b610185610402366004611156565b610505565b61015f60665481565b6068546101bc9067ffffffffffffffff1681565b61018561043236600461138e565b6105be565b61015f600081565b610447610833565b610450816108b4565b50565b600061047d7f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c085490565b905090565b60695460009061047d9063ffffffff6a0100000000000000000000820481169116611430565b6104b0610833565b6104ba6000610971565b565b6104c4610833565b6104ce82826109e8565b5050565b6104da610833565b61045081610a79565b6104eb610833565b61045081610b57565b6104fc610833565b61045081610fcb565b61050d610833565b73ffffffffffffffffffffffffffffffffffffffff81166105b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61045081610971565b600054610100900460ff16158080156105de5750600054600160ff909116105b806105f85750303b1580156105f8575060005460ff166001145b610684576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105ac565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156106e257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6106ea610ff3565b6106f388610505565b6106fc85610fcb565b61070687876109e8565b61070f84610a79565b610718836108b4565b61072182610b57565b610729610482565b67ffffffffffffffff168467ffffffffffffffff1610156107a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f53797374656d436f6e6669673a20676173206c696d697420746f6f206c6f770060448201526064016105ac565b801561080957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b9055565b60335473ffffffffffffffffffffffffffffffffffffffff1633146104ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105ac565b6108dd7f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c08829055565b6040805173ffffffffffffffffffffffffffffffffffffffff8316602082015260009101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060035b60007f1d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be8360405161096591906111e3565b60405180910390a35050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606582905560668190556040805160208101849052908101829052600090606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190529050600160007f1d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be83604051610a6c91906111e3565b60405180910390a3505050565b610a81610482565b67ffffffffffffffff168167ffffffffffffffff161015610afe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f53797374656d436f6e6669673a20676173206c696d697420746f6f206c6f770060448201526064016105ac565b606880547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff83169081179091556040805160208082019390935281518082039093018352810190526002610934565b8060a001516fffffffffffffffffffffffffffffffff16816060015163ffffffff161115610c07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f53797374656d436f6e6669673a206d696e206261736520666565206d7573742060448201527f6265206c657373207468616e206d61782062617365000000000000000000000060648201526084016105ac565b6001816040015160ff1611610c9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f53797374656d436f6e6669673a2064656e6f6d696e61746f72206d757374206260448201527f65206c6172676572207468616e2031000000000000000000000000000000000060648201526084016105ac565b6068546080820151825167ffffffffffffffff90921691610cbf919061145c565b63ffffffff161115610d2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f53797374656d436f6e6669673a20676173206c696d697420746f6f206c6f770060448201526064016105ac565b6000816020015160ff1611610dc4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f53797374656d436f6e6669673a20656c6173746963697479206d756c7469706c60448201527f6965722063616e6e6f742062652030000000000000000000000000000000000060648201526084016105ac565b8051602082015163ffffffff82169160ff90911690610de490829061147b565b610dee91906114c5565b63ffffffff1614610e81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f53797374656d436f6e6669673a20707265636973696f6e206c6f73732077697460448201527f6820746172676574207265736f75726365206c696d697400000000000000000060648201526084016105ac565b805160698054602084015160408501516060860151608087015160a09097015163ffffffff9687167fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009095169490941764010000000060ff94851602177fffffffffffffffffffffffffffffffffffffffffffff0000000000ffffffffff166501000000000093909216929092027fffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffff1617660100000000000091851691909102177fffff0000000000000000000000000000000000000000ffffffffffffffffffff166a010000000000000000000093909416929092027fffff00000000000000000000000000000000ffffffffffffffffffffffffffff16929092176e0100000000000000000000000000006fffffffffffffffffffffffffffffffff90921691909102179055565b6067819055604080516020808201849052825180830390910181529082019091526000610934565b600054610100900460ff1661108a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105ac565b6104ba600054610100900460ff16611124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105ac565b6104ba33610971565b803573ffffffffffffffffffffffffffffffffffffffff8116811461115157600080fd5b919050565b60006020828403121561116857600080fd5b6111718261112d565b9392505050565b6000815180845260005b8181101561119e57602081850181015186830182015201611182565b818111156111b0576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006111716020830184611178565b6000806040838503121561120957600080fd5b50508035926020909101359150565b803567ffffffffffffffff8116811461115157600080fd5b60006020828403121561124257600080fd5b61117182611218565b803563ffffffff8116811461115157600080fd5b803560ff8116811461115157600080fd5b80356fffffffffffffffffffffffffffffffff8116811461115157600080fd5b600060c082840312156112a257600080fd5b60405160c0810181811067ffffffffffffffff821117156112ec577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040529050806112fb8361124b565b81526113096020840161125f565b602082015261131a6040840161125f565b604082015261132b6060840161124b565b606082015261133c6080840161124b565b608082015261134d60a08401611270565b60a08201525092915050565b600060c0828403121561136b57600080fd5b6111718383611290565b60006020828403121561138757600080fd5b5035919050565b6000806000806000806000610180888a0312156113aa57600080fd5b6113b38861112d565b96506020880135955060408801359450606088013593506113d660808901611218565b92506113e460a0890161112d565b91506113f38960c08a01611290565b905092959891949750929550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681851680830382111561145357611453611401565b01949350505050565b600063ffffffff80831681851680830382111561145357611453611401565b600063ffffffff808416806114b9577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b600063ffffffff808316818516818304811182151516156114e8576114e8611401565b0294935050505056fea164736f6c634300080f000a" +var SystemConfigDeployedBin = "0x608060405234801561001057600080fd5b50600436106101825760003560e01c8063b40a817c116100d8578063e81b2c6d1161008c578063f68016b711610066578063f68016b7146104a5578063f975e925146104b9578063ffa1ad74146104cc57600080fd5b8063e81b2c6d14610480578063f2fde38b14610489578063f45e65d81461049c57600080fd5b8063c71973f6116100bd578063c71973f614610326578063c9b26f6114610339578063cc731b021461034c57600080fd5b8063b40a817c146102f7578063bfb14fb71461030a57600080fd5b80634f16540b1161013a5780637744864d116101145780637744864d146102915780638da5cb5b146102c6578063935f029e146102e457600080fd5b80634f16540b1461021957806354fd4d5014610240578063715018a61461028957600080fd5b80631fd19ee11161016b5780631fd19ee1146101b857806321d7fde5146101e55780634add321d146101f857600080fd5b80630c18c1621461018757806318d13918146101a3575b600080fd5b61019060655481565b6040519081526020015b60405180910390f35b6101b66101b13660046112b1565b6104d4565b005b6101c06104e8565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161019a565b6101b66101f33660046112e7565b610517565b61020061052d565b60405167ffffffffffffffff909116815260200161019a565b6101907f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c0881565b61027c6040518060400160405280600681526020017f312e31322e30000000000000000000000000000000000000000000000000000081525081565b60405161019a9190611385565b6101b6610553565b6068546102b1906c01000000000000000000000000900463ffffffff1681565b60405163ffffffff909116815260200161019a565b60335473ffffffffffffffffffffffffffffffffffffffff166101c0565b6101b66102f2366004611398565b610567565b6101b66103053660046113d2565b610579565b6068546102b19068010000000000000000900463ffffffff1681565b6101b66103343660046114e7565b61058a565b6101b6610347366004611503565b61059b565b6104106040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c08101825260695463ffffffff8082168352640100000000820460ff9081166020850152650100000000008304169383019390935266010000000000008104831660608301526a0100000000000000000000810490921660808201526e0100000000000000000000000000009091046fffffffffffffffffffffffffffffffff1660a082015290565b60405161019a9190600060c08201905063ffffffff80845116835260ff602085015116602084015260ff6040850151166040840152806060850151166060840152806080850151166080840152506fffffffffffffffffffffffffffffffff60a08401511660a083015292915050565b61019060675481565b6101b66104973660046112b1565b6105ac565b61019060665481565b6068546102009067ffffffffffffffff1681565b6101b66104c736600461151c565b610665565b610190600081565b6104dc6108e5565b6104e581610966565b50565b60006105127f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c085490565b905090565b61051f6108e5565b6105298282610a23565b5050565b6069546000906105129063ffffffff6a01000000000000000000008204811691166115be565b61055b6108e5565b6105656000610b2a565b565b61056f6108e5565b6105298282610ba1565b6105816108e5565b6104e581610bd4565b6105926108e5565b6104e581610cb2565b6105a36108e5565b6104e581611126565b6105b46108e5565b73ffffffffffffffffffffffffffffffffffffffff811661065c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104e581610b2a565b600054610100900460ff16158080156106855750600054600160ff909116105b8061069f5750303b15801561069f575060005460ff166001145b61072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610653565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561078957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61079161114e565b61079a886105ac565b6107a385611126565b6107ad8787610ba1565b6107b8866000610a23565b6107c184610bd4565b6107ca83610966565b6107d382610cb2565b6107db61052d565b67ffffffffffffffff168467ffffffffffffffff161015610858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f53797374656d436f6e6669673a20676173206c696d697420746f6f206c6f77006044820152606401610653565b80156108bb57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b9055565b60335473ffffffffffffffffffffffffffffffffffffffff163314610565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610653565b61098f7f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c08829055565b6040805173ffffffffffffffffffffffffffffffffffffffff8316602082015260009101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060035b60007f1d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be83604051610a179190611385565b60405180910390a35050565b606880547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff166801000000000000000063ffffffff858116919091027fffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff16919091176c0100000000000000000000000091841691909102179055604080517fffffffff0000000000000000000000000000000000000000000000000000000060e085811b8216602084015284901b16602482015281518082036008018152602890910190915260045b60007f1d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be83604051610b1d9190611385565b60405180910390a3505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60658290556066819055604080516020810184905280820183905281518082038301815260609091019091526001610aec565b610bdc61052d565b67ffffffffffffffff168167ffffffffffffffff161015610c59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f53797374656d436f6e6669673a20676173206c696d697420746f6f206c6f77006044820152606401610653565b606880547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff831690811790915560408051602080820193909352815180820390930183528101905260026109e6565b8060a001516fffffffffffffffffffffffffffffffff16816060015163ffffffff161115610d62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f53797374656d436f6e6669673a206d696e206261736520666565206d7573742060448201527f6265206c657373207468616e206d6178206261736500000000000000000000006064820152608401610653565b6001816040015160ff1611610df9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f53797374656d436f6e6669673a2064656e6f6d696e61746f72206d757374206260448201527f65206c6172676572207468616e203100000000000000000000000000000000006064820152608401610653565b6068546080820151825167ffffffffffffffff90921691610e1a91906115ea565b63ffffffff161115610e88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f53797374656d436f6e6669673a20676173206c696d697420746f6f206c6f77006044820152606401610653565b6000816020015160ff1611610f1f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f53797374656d436f6e6669673a20656c6173746963697479206d756c7469706c60448201527f6965722063616e6e6f74206265203000000000000000000000000000000000006064820152608401610653565b8051602082015163ffffffff82169160ff90911690610f3f908290611609565b610f499190611653565b63ffffffff1614610fdc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f53797374656d436f6e6669673a20707265636973696f6e206c6f73732077697460448201527f6820746172676574207265736f75726365206c696d69740000000000000000006064820152608401610653565b805160698054602084015160408501516060860151608087015160a09097015163ffffffff9687167fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009095169490941764010000000060ff94851602177fffffffffffffffffffffffffffffffffffffffffffff0000000000ffffffffff166501000000000093909216929092027fffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffff1617660100000000000091851691909102177fffff0000000000000000000000000000000000000000ffffffffffffffffffff166a010000000000000000000093909416929092027fffff00000000000000000000000000000000ffffffffffffffffffffffffffff16929092176e0100000000000000000000000000006fffffffffffffffffffffffffffffffff90921691909102179055565b60678190556040805160208082018490528251808303909101815290820190915260006109e6565b600054610100900460ff166111e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610653565b610565600054610100900460ff1661127f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610653565b61056533610b2a565b803573ffffffffffffffffffffffffffffffffffffffff811681146112ac57600080fd5b919050565b6000602082840312156112c357600080fd5b6112cc82611288565b9392505050565b803563ffffffff811681146112ac57600080fd5b600080604083850312156112fa57600080fd5b611303836112d3565b9150611311602084016112d3565b90509250929050565b6000815180845260005b8181101561134057602081850181015186830182015201611324565b81811115611352576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006112cc602083018461131a565b600080604083850312156113ab57600080fd5b50508035926020909101359150565b803567ffffffffffffffff811681146112ac57600080fd5b6000602082840312156113e457600080fd5b6112cc826113ba565b803560ff811681146112ac57600080fd5b80356fffffffffffffffffffffffffffffffff811681146112ac57600080fd5b600060c0828403121561143057600080fd5b60405160c0810181811067ffffffffffffffff8211171561147a577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052905080611489836112d3565b8152611497602084016113ed565b60208201526114a8604084016113ed565b60408201526114b9606084016112d3565b60608201526114ca608084016112d3565b60808201526114db60a084016113fe565b60a08201525092915050565b600060c082840312156114f957600080fd5b6112cc838361141e565b60006020828403121561151557600080fd5b5035919050565b6000806000806000806000610180888a03121561153857600080fd5b61154188611288565b9650602088013595506040880135945060608801359350611564608089016113ba565b925061157260a08901611288565b91506115818960c08a0161141e565b905092959891949750929550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff8083168185168083038211156115e1576115e161158f565b01949350505050565b600063ffffffff8083168185168083038211156115e1576115e161158f565b600063ffffffff80841680611647577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b600063ffffffff808316818516818304811182151516156116765761167661158f565b0294935050505056fea164736f6c634300080f000a" func init() { diff --git a/packages/contracts-bedrock/test/L1/SystemConfig.t.sol b/packages/contracts-bedrock/test/L1/SystemConfig.t.sol index 2b57a23f373d..4ecfeb76cdf2 100644 --- a/packages/contracts-bedrock/test/L1/SystemConfig.t.sol +++ b/packages/contracts-bedrock/test/L1/SystemConfig.t.sol @@ -109,6 +109,12 @@ contract SystemConfig_Setters_TestFail is SystemConfig_Init { systemConfig.setGasConfig(0, 0); } + /// @dev Tests that `setGasConfigEcotone` reverts if the caller is not the owner. + function test_setGasConfigEcotone_notOwner_reverts() external { + vm.expectRevert("Ownable: caller is not the owner"); + systemConfig.setGasConfigEcotone(0, 0); + } + /// @dev Tests that `setGasLimit` reverts if the caller is not the owner. function test_setGasLimit_notOwner_reverts() external { vm.expectRevert("Ownable: caller is not the owner"); @@ -216,6 +222,17 @@ contract SystemConfig_Setters_Test is SystemConfig_Init { assertEq(systemConfig.scalar(), newScalar); } + /// @dev Tests that `setGasConfigEcotone` updates the gas limit successfully. + function testFuzz_setGasConfigEcotone_succeeds(uint32 basefeeScalar, uint32 blobBasefeeScalar) external { + vm.expectEmit(true, true, true, true); + emit ConfigUpdate(0, SystemConfig.UpdateType.GAS_CONFIG_ECOTONE, abi.encodePacked(basefeeScalar, blobBasefeeScalar)); + + vm.prank(systemConfig.owner()); + systemConfig.setGasConfigEcotone(basefeeScalar, blobBasefeeScalar); + assertEq(systemConfig.basefeeScalar(), basefeeScalar); + assertEq(systemConfig.blobBasefeeScalar(), blobBasefeeScalar); + } + /// @dev Tests that `setGasLimit` updates the gas limit successfully. function testFuzz_setGasLimit_succeeds(uint64 newGasLimit) external { uint64 minimumGasLimit = systemConfig.minimumGasLimit();