github.com/ethereum-optimism/optimism/l2geth@v0.0.0-20230612200230-50b04ade19e3/rollup/fees/bindings/gaspriceoracle.go (about)

     1  // Code generated - DO NOT EDIT.
     2  // This file is a generated binding and any manual changes will be lost.
     3  
     4  package bindings
     5  
     6  import (
     7  	"math/big"
     8  	"strings"
     9  
    10  	ethereum "github.com/ethereum-optimism/optimism/l2geth"
    11  	"github.com/ethereum-optimism/optimism/l2geth/accounts/abi"
    12  	"github.com/ethereum-optimism/optimism/l2geth/accounts/abi/bind"
    13  	"github.com/ethereum-optimism/optimism/l2geth/common"
    14  	"github.com/ethereum-optimism/optimism/l2geth/core/types"
    15  	"github.com/ethereum-optimism/optimism/l2geth/event"
    16  )
    17  
    18  // Reference imports to suppress errors if they are not otherwise used.
    19  var (
    20  	_ = big.NewInt
    21  	_ = strings.NewReader
    22  	_ = ethereum.NotFound
    23  	_ = abi.U256
    24  	_ = bind.Bind
    25  	_ = common.Big1
    26  	_ = types.BloomLookup
    27  	_ = event.NewSubscription
    28  )
    29  
    30  // GasPriceOracleABI is the input ABI used to generate the binding from.
    31  const GasPriceOracleABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"DecimalsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"GasPriceUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"L1BaseFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"OverheadUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"ScalarUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gasPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"getL1Fee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"getL1GasUsed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1BaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"overhead\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"scalar\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_decimals\",\"type\":\"uint256\"}],\"name\":\"setDecimals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_gasPrice\",\"type\":\"uint256\"}],\"name\":\"setGasPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_baseFee\",\"type\":\"uint256\"}],\"name\":\"setL1BaseFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_overhead\",\"type\":\"uint256\"}],\"name\":\"setOverhead\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_scalar\",\"type\":\"uint256\"}],\"name\":\"setScalar\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
    32  
    33  // GasPriceOracleBin is the compiled bytecode used for deploying new contracts.
    34  var GasPriceOracleBin = "0x608060405234801561001057600080fd5b50604051610e55380380610e5583398101604081905261002f91610167565b61003833610047565b61004181610097565b50610197565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b031633146100f65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811661015b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016100ed565b61016481610047565b50565b60006020828403121561017957600080fd5b81516001600160a01b038116811461019057600080fd5b9392505050565b610caf806101a66000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638c8885c811610097578063de26c4a111610066578063de26c4a1146101cc578063f2fde38b146101df578063f45e65d8146101f2578063fe173b97146101fb57600080fd5b80638c8885c81461016b5780638da5cb5b1461017e578063bede39b5146101a6578063bf1fe420146101b957600080fd5b806349948e0e116100d357806349948e0e14610134578063519b4bd3146101475780637046559714610150578063715018a61461016357600080fd5b80630c18c162146100fa578063313ce567146101165780633577afc51461011f575b600080fd5b61010360035481565b6040519081526020015b60405180910390f35b61010360055481565b61013261012d3660046108d0565b610204565b005b610103610142366004610918565b6102c6565b61010360025481565b61013261015e3660046108d0565b610322565b6101326103d8565b6101326101793660046108d0565b610465565b60005460405173ffffffffffffffffffffffffffffffffffffffff909116815260200161010d565b6101326101b43660046108d0565b61051b565b6101326101c73660046108d0565b6105d1565b6101036101da366004610918565b610687565b6101326101ed3660046109e7565b61072b565b61010360045481565b61010360015481565b60005473ffffffffffffffffffffffffffffffffffffffff16331461028a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60038190556040518181527f32740b35c0ea213650f60d44366b4fb211c9033b50714e4a1d34e65d5beb9bb4906020015b60405180910390a150565b6000806102d283610687565b90506000600254826102e49190610a53565b90506000600554600a6102f79190610bb2565b90506000600454836103099190610a53565b905060006103178383610bbe565b979650505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610281565b60048190556040518181527f3336cd9708eaf2769a0f0dc0679f30e80f15dcd88d1921b5a16858e8b85c591a906020016102bb565b60005473ffffffffffffffffffffffffffffffffffffffff163314610459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610281565b610463600061085b565b565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610281565b60058190556040518181527fd68112a8707e326d08be3656b528c1bcc5bbbfc47f4177e2179b14d8640838c1906020016102bb565b60005473ffffffffffffffffffffffffffffffffffffffff16331461059c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610281565b60028190556040518181527f351fb23757bb5ea0546c85b7996ddd7155f96b939ebaa5ff7bc49c75f27f2c44906020016102bb565b60005473ffffffffffffffffffffffffffffffffffffffff163314610652576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610281565b60018190556040518181527ffcdccc6074c6c42e4bd578aa9870c697dc976a270968452d2b8c8dc369fae396906020016102bb565b600080805b8351811015610704578381815181106106a7576106a7610bf9565b01602001517fff00000000000000000000000000000000000000000000000000000000000000166106e4576106dd600483610c28565b91506106f2565b6106ef601083610c28565b91505b806106fc81610c40565b91505061068c565b506000600354826107159190610c28565b905061072381610440610c28565b949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146107ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610281565b73ffffffffffffffffffffffffffffffffffffffff811661084f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610281565b6108588161085b565b50565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156108e257600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561092a57600080fd5b813567ffffffffffffffff8082111561094257600080fd5b818401915084601f83011261095657600080fd5b813581811115610968576109686108e9565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156109ae576109ae6108e9565b816040528281528760208487010111156109c757600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000602082840312156109f957600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610a1d57600080fd5b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610a8b57610a8b610a24565b500290565b600181815b80851115610ae957817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610acf57610acf610a24565b80851615610adc57918102915b93841c9390800290610a95565b509250929050565b600082610b0057506001610bac565b81610b0d57506000610bac565b8160018114610b235760028114610b2d57610b49565b6001915050610bac565b60ff841115610b3e57610b3e610a24565b50506001821b610bac565b5060208310610133831016604e8410600b8410161715610b6c575081810a610bac565b610b768383610a90565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610ba857610ba8610a24565b0290505b92915050565b6000610a1d8383610af1565b600082610bf4577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008219821115610c3b57610c3b610a24565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610c7257610c72610a24565b506001019056fea2646970667358221220f621ba3a2be0d1a6013dd55747de8ced461c9dc210b1ed78e1fadadb047e304064736f6c63430008090033"
    35  
    36  // DeployGasPriceOracle deploys a new Ethereum contract, binding an instance of GasPriceOracle to it.
    37  func DeployGasPriceOracle(auth *bind.TransactOpts, backend bind.ContractBackend, _owner common.Address) (common.Address, *types.Transaction, *GasPriceOracle, error) {
    38  	parsed, err := abi.JSON(strings.NewReader(GasPriceOracleABI))
    39  	if err != nil {
    40  		return common.Address{}, nil, nil, err
    41  	}
    42  
    43  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(GasPriceOracleBin), backend, _owner)
    44  	if err != nil {
    45  		return common.Address{}, nil, nil, err
    46  	}
    47  	return address, tx, &GasPriceOracle{GasPriceOracleCaller: GasPriceOracleCaller{contract: contract}, GasPriceOracleTransactor: GasPriceOracleTransactor{contract: contract}, GasPriceOracleFilterer: GasPriceOracleFilterer{contract: contract}}, nil
    48  }
    49  
    50  // GasPriceOracle is an auto generated Go binding around an Ethereum contract.
    51  type GasPriceOracle struct {
    52  	GasPriceOracleCaller     // Read-only binding to the contract
    53  	GasPriceOracleTransactor // Write-only binding to the contract
    54  	GasPriceOracleFilterer   // Log filterer for contract events
    55  }
    56  
    57  // GasPriceOracleCaller is an auto generated read-only Go binding around an Ethereum contract.
    58  type GasPriceOracleCaller struct {
    59  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    60  }
    61  
    62  // GasPriceOracleTransactor is an auto generated write-only Go binding around an Ethereum contract.
    63  type GasPriceOracleTransactor struct {
    64  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    65  }
    66  
    67  // GasPriceOracleFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
    68  type GasPriceOracleFilterer struct {
    69  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    70  }
    71  
    72  // GasPriceOracleSession is an auto generated Go binding around an Ethereum contract,
    73  // with pre-set call and transact options.
    74  type GasPriceOracleSession struct {
    75  	Contract     *GasPriceOracle   // Generic contract binding to set the session for
    76  	CallOpts     bind.CallOpts     // Call options to use throughout this session
    77  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
    78  }
    79  
    80  // GasPriceOracleCallerSession is an auto generated read-only Go binding around an Ethereum contract,
    81  // with pre-set call options.
    82  type GasPriceOracleCallerSession struct {
    83  	Contract *GasPriceOracleCaller // Generic contract caller binding to set the session for
    84  	CallOpts bind.CallOpts         // Call options to use throughout this session
    85  }
    86  
    87  // GasPriceOracleTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
    88  // with pre-set transact options.
    89  type GasPriceOracleTransactorSession struct {
    90  	Contract     *GasPriceOracleTransactor // Generic contract transactor binding to set the session for
    91  	TransactOpts bind.TransactOpts         // Transaction auth options to use throughout this session
    92  }
    93  
    94  // GasPriceOracleRaw is an auto generated low-level Go binding around an Ethereum contract.
    95  type GasPriceOracleRaw struct {
    96  	Contract *GasPriceOracle // Generic contract binding to access the raw methods on
    97  }
    98  
    99  // GasPriceOracleCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
   100  type GasPriceOracleCallerRaw struct {
   101  	Contract *GasPriceOracleCaller // Generic read-only contract binding to access the raw methods on
   102  }
   103  
   104  // GasPriceOracleTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
   105  type GasPriceOracleTransactorRaw struct {
   106  	Contract *GasPriceOracleTransactor // Generic write-only contract binding to access the raw methods on
   107  }
   108  
   109  // NewGasPriceOracle creates a new instance of GasPriceOracle, bound to a specific deployed contract.
   110  func NewGasPriceOracle(address common.Address, backend bind.ContractBackend) (*GasPriceOracle, error) {
   111  	contract, err := bindGasPriceOracle(address, backend, backend, backend)
   112  	if err != nil {
   113  		return nil, err
   114  	}
   115  	return &GasPriceOracle{GasPriceOracleCaller: GasPriceOracleCaller{contract: contract}, GasPriceOracleTransactor: GasPriceOracleTransactor{contract: contract}, GasPriceOracleFilterer: GasPriceOracleFilterer{contract: contract}}, nil
   116  }
   117  
   118  // NewGasPriceOracleCaller creates a new read-only instance of GasPriceOracle, bound to a specific deployed contract.
   119  func NewGasPriceOracleCaller(address common.Address, caller bind.ContractCaller) (*GasPriceOracleCaller, error) {
   120  	contract, err := bindGasPriceOracle(address, caller, nil, nil)
   121  	if err != nil {
   122  		return nil, err
   123  	}
   124  	return &GasPriceOracleCaller{contract: contract}, nil
   125  }
   126  
   127  // NewGasPriceOracleTransactor creates a new write-only instance of GasPriceOracle, bound to a specific deployed contract.
   128  func NewGasPriceOracleTransactor(address common.Address, transactor bind.ContractTransactor) (*GasPriceOracleTransactor, error) {
   129  	contract, err := bindGasPriceOracle(address, nil, transactor, nil)
   130  	if err != nil {
   131  		return nil, err
   132  	}
   133  	return &GasPriceOracleTransactor{contract: contract}, nil
   134  }
   135  
   136  // NewGasPriceOracleFilterer creates a new log filterer instance of GasPriceOracle, bound to a specific deployed contract.
   137  func NewGasPriceOracleFilterer(address common.Address, filterer bind.ContractFilterer) (*GasPriceOracleFilterer, error) {
   138  	contract, err := bindGasPriceOracle(address, nil, nil, filterer)
   139  	if err != nil {
   140  		return nil, err
   141  	}
   142  	return &GasPriceOracleFilterer{contract: contract}, nil
   143  }
   144  
   145  // bindGasPriceOracle binds a generic wrapper to an already deployed contract.
   146  func bindGasPriceOracle(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   147  	parsed, err := abi.JSON(strings.NewReader(GasPriceOracleABI))
   148  	if err != nil {
   149  		return nil, err
   150  	}
   151  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   152  }
   153  
   154  // Call invokes the (constant) contract method with params as input values and
   155  // sets the output to result. The result type might be a single field for simple
   156  // returns, a slice of interfaces for anonymous returns and a struct for named
   157  // returns.
   158  func (_GasPriceOracle *GasPriceOracleRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   159  	return _GasPriceOracle.Contract.GasPriceOracleCaller.contract.Call(opts, result, method, params...)
   160  }
   161  
   162  // Transfer initiates a plain transaction to move funds to the contract, calling
   163  // its default method if one is available.
   164  func (_GasPriceOracle *GasPriceOracleRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   165  	return _GasPriceOracle.Contract.GasPriceOracleTransactor.contract.Transfer(opts)
   166  }
   167  
   168  // Transact invokes the (paid) contract method with params as input values.
   169  func (_GasPriceOracle *GasPriceOracleRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   170  	return _GasPriceOracle.Contract.GasPriceOracleTransactor.contract.Transact(opts, method, params...)
   171  }
   172  
   173  // Call invokes the (constant) contract method with params as input values and
   174  // sets the output to result. The result type might be a single field for simple
   175  // returns, a slice of interfaces for anonymous returns and a struct for named
   176  // returns.
   177  func (_GasPriceOracle *GasPriceOracleCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   178  	return _GasPriceOracle.Contract.contract.Call(opts, result, method, params...)
   179  }
   180  
   181  // Transfer initiates a plain transaction to move funds to the contract, calling
   182  // its default method if one is available.
   183  func (_GasPriceOracle *GasPriceOracleTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   184  	return _GasPriceOracle.Contract.contract.Transfer(opts)
   185  }
   186  
   187  // Transact invokes the (paid) contract method with params as input values.
   188  func (_GasPriceOracle *GasPriceOracleTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   189  	return _GasPriceOracle.Contract.contract.Transact(opts, method, params...)
   190  }
   191  
   192  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
   193  //
   194  // Solidity: function decimals() constant returns(uint256)
   195  func (_GasPriceOracle *GasPriceOracleCaller) Decimals(opts *bind.CallOpts) (*big.Int, error) {
   196  	var (
   197  		ret0 = new(*big.Int)
   198  	)
   199  	out := ret0
   200  	err := _GasPriceOracle.contract.Call(opts, out, "decimals")
   201  	return *ret0, err
   202  }
   203  
   204  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
   205  //
   206  // Solidity: function decimals() constant returns(uint256)
   207  func (_GasPriceOracle *GasPriceOracleSession) Decimals() (*big.Int, error) {
   208  	return _GasPriceOracle.Contract.Decimals(&_GasPriceOracle.CallOpts)
   209  }
   210  
   211  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
   212  //
   213  // Solidity: function decimals() constant returns(uint256)
   214  func (_GasPriceOracle *GasPriceOracleCallerSession) Decimals() (*big.Int, error) {
   215  	return _GasPriceOracle.Contract.Decimals(&_GasPriceOracle.CallOpts)
   216  }
   217  
   218  // GasPrice is a free data retrieval call binding the contract method 0xfe173b97.
   219  //
   220  // Solidity: function gasPrice() constant returns(uint256)
   221  func (_GasPriceOracle *GasPriceOracleCaller) GasPrice(opts *bind.CallOpts) (*big.Int, error) {
   222  	var (
   223  		ret0 = new(*big.Int)
   224  	)
   225  	out := ret0
   226  	err := _GasPriceOracle.contract.Call(opts, out, "gasPrice")
   227  	return *ret0, err
   228  }
   229  
   230  // GasPrice is a free data retrieval call binding the contract method 0xfe173b97.
   231  //
   232  // Solidity: function gasPrice() constant returns(uint256)
   233  func (_GasPriceOracle *GasPriceOracleSession) GasPrice() (*big.Int, error) {
   234  	return _GasPriceOracle.Contract.GasPrice(&_GasPriceOracle.CallOpts)
   235  }
   236  
   237  // GasPrice is a free data retrieval call binding the contract method 0xfe173b97.
   238  //
   239  // Solidity: function gasPrice() constant returns(uint256)
   240  func (_GasPriceOracle *GasPriceOracleCallerSession) GasPrice() (*big.Int, error) {
   241  	return _GasPriceOracle.Contract.GasPrice(&_GasPriceOracle.CallOpts)
   242  }
   243  
   244  // GetL1Fee is a free data retrieval call binding the contract method 0x49948e0e.
   245  //
   246  // Solidity: function getL1Fee(bytes _data) constant returns(uint256)
   247  func (_GasPriceOracle *GasPriceOracleCaller) GetL1Fee(opts *bind.CallOpts, _data []byte) (*big.Int, error) {
   248  	var (
   249  		ret0 = new(*big.Int)
   250  	)
   251  	out := ret0
   252  	err := _GasPriceOracle.contract.Call(opts, out, "getL1Fee", _data)
   253  	return *ret0, err
   254  }
   255  
   256  // GetL1Fee is a free data retrieval call binding the contract method 0x49948e0e.
   257  //
   258  // Solidity: function getL1Fee(bytes _data) constant returns(uint256)
   259  func (_GasPriceOracle *GasPriceOracleSession) GetL1Fee(_data []byte) (*big.Int, error) {
   260  	return _GasPriceOracle.Contract.GetL1Fee(&_GasPriceOracle.CallOpts, _data)
   261  }
   262  
   263  // GetL1Fee is a free data retrieval call binding the contract method 0x49948e0e.
   264  //
   265  // Solidity: function getL1Fee(bytes _data) constant returns(uint256)
   266  func (_GasPriceOracle *GasPriceOracleCallerSession) GetL1Fee(_data []byte) (*big.Int, error) {
   267  	return _GasPriceOracle.Contract.GetL1Fee(&_GasPriceOracle.CallOpts, _data)
   268  }
   269  
   270  // GetL1GasUsed is a free data retrieval call binding the contract method 0xde26c4a1.
   271  //
   272  // Solidity: function getL1GasUsed(bytes _data) constant returns(uint256)
   273  func (_GasPriceOracle *GasPriceOracleCaller) GetL1GasUsed(opts *bind.CallOpts, _data []byte) (*big.Int, error) {
   274  	var (
   275  		ret0 = new(*big.Int)
   276  	)
   277  	out := ret0
   278  	err := _GasPriceOracle.contract.Call(opts, out, "getL1GasUsed", _data)
   279  	return *ret0, err
   280  }
   281  
   282  // GetL1GasUsed is a free data retrieval call binding the contract method 0xde26c4a1.
   283  //
   284  // Solidity: function getL1GasUsed(bytes _data) constant returns(uint256)
   285  func (_GasPriceOracle *GasPriceOracleSession) GetL1GasUsed(_data []byte) (*big.Int, error) {
   286  	return _GasPriceOracle.Contract.GetL1GasUsed(&_GasPriceOracle.CallOpts, _data)
   287  }
   288  
   289  // GetL1GasUsed is a free data retrieval call binding the contract method 0xde26c4a1.
   290  //
   291  // Solidity: function getL1GasUsed(bytes _data) constant returns(uint256)
   292  func (_GasPriceOracle *GasPriceOracleCallerSession) GetL1GasUsed(_data []byte) (*big.Int, error) {
   293  	return _GasPriceOracle.Contract.GetL1GasUsed(&_GasPriceOracle.CallOpts, _data)
   294  }
   295  
   296  // L1BaseFee is a free data retrieval call binding the contract method 0x519b4bd3.
   297  //
   298  // Solidity: function l1BaseFee() constant returns(uint256)
   299  func (_GasPriceOracle *GasPriceOracleCaller) L1BaseFee(opts *bind.CallOpts) (*big.Int, error) {
   300  	var (
   301  		ret0 = new(*big.Int)
   302  	)
   303  	out := ret0
   304  	err := _GasPriceOracle.contract.Call(opts, out, "l1BaseFee")
   305  	return *ret0, err
   306  }
   307  
   308  // L1BaseFee is a free data retrieval call binding the contract method 0x519b4bd3.
   309  //
   310  // Solidity: function l1BaseFee() constant returns(uint256)
   311  func (_GasPriceOracle *GasPriceOracleSession) L1BaseFee() (*big.Int, error) {
   312  	return _GasPriceOracle.Contract.L1BaseFee(&_GasPriceOracle.CallOpts)
   313  }
   314  
   315  // L1BaseFee is a free data retrieval call binding the contract method 0x519b4bd3.
   316  //
   317  // Solidity: function l1BaseFee() constant returns(uint256)
   318  func (_GasPriceOracle *GasPriceOracleCallerSession) L1BaseFee() (*big.Int, error) {
   319  	return _GasPriceOracle.Contract.L1BaseFee(&_GasPriceOracle.CallOpts)
   320  }
   321  
   322  // Overhead is a free data retrieval call binding the contract method 0x0c18c162.
   323  //
   324  // Solidity: function overhead() constant returns(uint256)
   325  func (_GasPriceOracle *GasPriceOracleCaller) Overhead(opts *bind.CallOpts) (*big.Int, error) {
   326  	var (
   327  		ret0 = new(*big.Int)
   328  	)
   329  	out := ret0
   330  	err := _GasPriceOracle.contract.Call(opts, out, "overhead")
   331  	return *ret0, err
   332  }
   333  
   334  // Overhead is a free data retrieval call binding the contract method 0x0c18c162.
   335  //
   336  // Solidity: function overhead() constant returns(uint256)
   337  func (_GasPriceOracle *GasPriceOracleSession) Overhead() (*big.Int, error) {
   338  	return _GasPriceOracle.Contract.Overhead(&_GasPriceOracle.CallOpts)
   339  }
   340  
   341  // Overhead is a free data retrieval call binding the contract method 0x0c18c162.
   342  //
   343  // Solidity: function overhead() constant returns(uint256)
   344  func (_GasPriceOracle *GasPriceOracleCallerSession) Overhead() (*big.Int, error) {
   345  	return _GasPriceOracle.Contract.Overhead(&_GasPriceOracle.CallOpts)
   346  }
   347  
   348  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   349  //
   350  // Solidity: function owner() constant returns(address)
   351  func (_GasPriceOracle *GasPriceOracleCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
   352  	var (
   353  		ret0 = new(common.Address)
   354  	)
   355  	out := ret0
   356  	err := _GasPriceOracle.contract.Call(opts, out, "owner")
   357  	return *ret0, err
   358  }
   359  
   360  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   361  //
   362  // Solidity: function owner() constant returns(address)
   363  func (_GasPriceOracle *GasPriceOracleSession) Owner() (common.Address, error) {
   364  	return _GasPriceOracle.Contract.Owner(&_GasPriceOracle.CallOpts)
   365  }
   366  
   367  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   368  //
   369  // Solidity: function owner() constant returns(address)
   370  func (_GasPriceOracle *GasPriceOracleCallerSession) Owner() (common.Address, error) {
   371  	return _GasPriceOracle.Contract.Owner(&_GasPriceOracle.CallOpts)
   372  }
   373  
   374  // Scalar is a free data retrieval call binding the contract method 0xf45e65d8.
   375  //
   376  // Solidity: function scalar() constant returns(uint256)
   377  func (_GasPriceOracle *GasPriceOracleCaller) Scalar(opts *bind.CallOpts) (*big.Int, error) {
   378  	var (
   379  		ret0 = new(*big.Int)
   380  	)
   381  	out := ret0
   382  	err := _GasPriceOracle.contract.Call(opts, out, "scalar")
   383  	return *ret0, err
   384  }
   385  
   386  // Scalar is a free data retrieval call binding the contract method 0xf45e65d8.
   387  //
   388  // Solidity: function scalar() constant returns(uint256)
   389  func (_GasPriceOracle *GasPriceOracleSession) Scalar() (*big.Int, error) {
   390  	return _GasPriceOracle.Contract.Scalar(&_GasPriceOracle.CallOpts)
   391  }
   392  
   393  // Scalar is a free data retrieval call binding the contract method 0xf45e65d8.
   394  //
   395  // Solidity: function scalar() constant returns(uint256)
   396  func (_GasPriceOracle *GasPriceOracleCallerSession) Scalar() (*big.Int, error) {
   397  	return _GasPriceOracle.Contract.Scalar(&_GasPriceOracle.CallOpts)
   398  }
   399  
   400  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
   401  //
   402  // Solidity: function renounceOwnership() returns()
   403  func (_GasPriceOracle *GasPriceOracleTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
   404  	return _GasPriceOracle.contract.Transact(opts, "renounceOwnership")
   405  }
   406  
   407  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
   408  //
   409  // Solidity: function renounceOwnership() returns()
   410  func (_GasPriceOracle *GasPriceOracleSession) RenounceOwnership() (*types.Transaction, error) {
   411  	return _GasPriceOracle.Contract.RenounceOwnership(&_GasPriceOracle.TransactOpts)
   412  }
   413  
   414  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
   415  //
   416  // Solidity: function renounceOwnership() returns()
   417  func (_GasPriceOracle *GasPriceOracleTransactorSession) RenounceOwnership() (*types.Transaction, error) {
   418  	return _GasPriceOracle.Contract.RenounceOwnership(&_GasPriceOracle.TransactOpts)
   419  }
   420  
   421  // SetDecimals is a paid mutator transaction binding the contract method 0x8c8885c8.
   422  //
   423  // Solidity: function setDecimals(uint256 _decimals) returns()
   424  func (_GasPriceOracle *GasPriceOracleTransactor) SetDecimals(opts *bind.TransactOpts, _decimals *big.Int) (*types.Transaction, error) {
   425  	return _GasPriceOracle.contract.Transact(opts, "setDecimals", _decimals)
   426  }
   427  
   428  // SetDecimals is a paid mutator transaction binding the contract method 0x8c8885c8.
   429  //
   430  // Solidity: function setDecimals(uint256 _decimals) returns()
   431  func (_GasPriceOracle *GasPriceOracleSession) SetDecimals(_decimals *big.Int) (*types.Transaction, error) {
   432  	return _GasPriceOracle.Contract.SetDecimals(&_GasPriceOracle.TransactOpts, _decimals)
   433  }
   434  
   435  // SetDecimals is a paid mutator transaction binding the contract method 0x8c8885c8.
   436  //
   437  // Solidity: function setDecimals(uint256 _decimals) returns()
   438  func (_GasPriceOracle *GasPriceOracleTransactorSession) SetDecimals(_decimals *big.Int) (*types.Transaction, error) {
   439  	return _GasPriceOracle.Contract.SetDecimals(&_GasPriceOracle.TransactOpts, _decimals)
   440  }
   441  
   442  // SetGasPrice is a paid mutator transaction binding the contract method 0xbf1fe420.
   443  //
   444  // Solidity: function setGasPrice(uint256 _gasPrice) returns()
   445  func (_GasPriceOracle *GasPriceOracleTransactor) SetGasPrice(opts *bind.TransactOpts, _gasPrice *big.Int) (*types.Transaction, error) {
   446  	return _GasPriceOracle.contract.Transact(opts, "setGasPrice", _gasPrice)
   447  }
   448  
   449  // SetGasPrice is a paid mutator transaction binding the contract method 0xbf1fe420.
   450  //
   451  // Solidity: function setGasPrice(uint256 _gasPrice) returns()
   452  func (_GasPriceOracle *GasPriceOracleSession) SetGasPrice(_gasPrice *big.Int) (*types.Transaction, error) {
   453  	return _GasPriceOracle.Contract.SetGasPrice(&_GasPriceOracle.TransactOpts, _gasPrice)
   454  }
   455  
   456  // SetGasPrice is a paid mutator transaction binding the contract method 0xbf1fe420.
   457  //
   458  // Solidity: function setGasPrice(uint256 _gasPrice) returns()
   459  func (_GasPriceOracle *GasPriceOracleTransactorSession) SetGasPrice(_gasPrice *big.Int) (*types.Transaction, error) {
   460  	return _GasPriceOracle.Contract.SetGasPrice(&_GasPriceOracle.TransactOpts, _gasPrice)
   461  }
   462  
   463  // SetL1BaseFee is a paid mutator transaction binding the contract method 0xbede39b5.
   464  //
   465  // Solidity: function setL1BaseFee(uint256 _baseFee) returns()
   466  func (_GasPriceOracle *GasPriceOracleTransactor) SetL1BaseFee(opts *bind.TransactOpts, _baseFee *big.Int) (*types.Transaction, error) {
   467  	return _GasPriceOracle.contract.Transact(opts, "setL1BaseFee", _baseFee)
   468  }
   469  
   470  // SetL1BaseFee is a paid mutator transaction binding the contract method 0xbede39b5.
   471  //
   472  // Solidity: function setL1BaseFee(uint256 _baseFee) returns()
   473  func (_GasPriceOracle *GasPriceOracleSession) SetL1BaseFee(_baseFee *big.Int) (*types.Transaction, error) {
   474  	return _GasPriceOracle.Contract.SetL1BaseFee(&_GasPriceOracle.TransactOpts, _baseFee)
   475  }
   476  
   477  // SetL1BaseFee is a paid mutator transaction binding the contract method 0xbede39b5.
   478  //
   479  // Solidity: function setL1BaseFee(uint256 _baseFee) returns()
   480  func (_GasPriceOracle *GasPriceOracleTransactorSession) SetL1BaseFee(_baseFee *big.Int) (*types.Transaction, error) {
   481  	return _GasPriceOracle.Contract.SetL1BaseFee(&_GasPriceOracle.TransactOpts, _baseFee)
   482  }
   483  
   484  // SetOverhead is a paid mutator transaction binding the contract method 0x3577afc5.
   485  //
   486  // Solidity: function setOverhead(uint256 _overhead) returns()
   487  func (_GasPriceOracle *GasPriceOracleTransactor) SetOverhead(opts *bind.TransactOpts, _overhead *big.Int) (*types.Transaction, error) {
   488  	return _GasPriceOracle.contract.Transact(opts, "setOverhead", _overhead)
   489  }
   490  
   491  // SetOverhead is a paid mutator transaction binding the contract method 0x3577afc5.
   492  //
   493  // Solidity: function setOverhead(uint256 _overhead) returns()
   494  func (_GasPriceOracle *GasPriceOracleSession) SetOverhead(_overhead *big.Int) (*types.Transaction, error) {
   495  	return _GasPriceOracle.Contract.SetOverhead(&_GasPriceOracle.TransactOpts, _overhead)
   496  }
   497  
   498  // SetOverhead is a paid mutator transaction binding the contract method 0x3577afc5.
   499  //
   500  // Solidity: function setOverhead(uint256 _overhead) returns()
   501  func (_GasPriceOracle *GasPriceOracleTransactorSession) SetOverhead(_overhead *big.Int) (*types.Transaction, error) {
   502  	return _GasPriceOracle.Contract.SetOverhead(&_GasPriceOracle.TransactOpts, _overhead)
   503  }
   504  
   505  // SetScalar is a paid mutator transaction binding the contract method 0x70465597.
   506  //
   507  // Solidity: function setScalar(uint256 _scalar) returns()
   508  func (_GasPriceOracle *GasPriceOracleTransactor) SetScalar(opts *bind.TransactOpts, _scalar *big.Int) (*types.Transaction, error) {
   509  	return _GasPriceOracle.contract.Transact(opts, "setScalar", _scalar)
   510  }
   511  
   512  // SetScalar is a paid mutator transaction binding the contract method 0x70465597.
   513  //
   514  // Solidity: function setScalar(uint256 _scalar) returns()
   515  func (_GasPriceOracle *GasPriceOracleSession) SetScalar(_scalar *big.Int) (*types.Transaction, error) {
   516  	return _GasPriceOracle.Contract.SetScalar(&_GasPriceOracle.TransactOpts, _scalar)
   517  }
   518  
   519  // SetScalar is a paid mutator transaction binding the contract method 0x70465597.
   520  //
   521  // Solidity: function setScalar(uint256 _scalar) returns()
   522  func (_GasPriceOracle *GasPriceOracleTransactorSession) SetScalar(_scalar *big.Int) (*types.Transaction, error) {
   523  	return _GasPriceOracle.Contract.SetScalar(&_GasPriceOracle.TransactOpts, _scalar)
   524  }
   525  
   526  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
   527  //
   528  // Solidity: function transferOwnership(address newOwner) returns()
   529  func (_GasPriceOracle *GasPriceOracleTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
   530  	return _GasPriceOracle.contract.Transact(opts, "transferOwnership", newOwner)
   531  }
   532  
   533  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
   534  //
   535  // Solidity: function transferOwnership(address newOwner) returns()
   536  func (_GasPriceOracle *GasPriceOracleSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
   537  	return _GasPriceOracle.Contract.TransferOwnership(&_GasPriceOracle.TransactOpts, newOwner)
   538  }
   539  
   540  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
   541  //
   542  // Solidity: function transferOwnership(address newOwner) returns()
   543  func (_GasPriceOracle *GasPriceOracleTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
   544  	return _GasPriceOracle.Contract.TransferOwnership(&_GasPriceOracle.TransactOpts, newOwner)
   545  }
   546  
   547  // GasPriceOracleDecimalsUpdatedIterator is returned from FilterDecimalsUpdated and is used to iterate over the raw logs and unpacked data for DecimalsUpdated events raised by the GasPriceOracle contract.
   548  type GasPriceOracleDecimalsUpdatedIterator struct {
   549  	Event *GasPriceOracleDecimalsUpdated // Event containing the contract specifics and raw log
   550  
   551  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   552  	event    string              // Event name to use for unpacking event data
   553  
   554  	logs chan types.Log        // Log channel receiving the found contract events
   555  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   556  	done bool                  // Whether the subscription completed delivering logs
   557  	fail error                 // Occurred error to stop iteration
   558  }
   559  
   560  // Next advances the iterator to the subsequent event, returning whether there
   561  // are any more events found. In case of a retrieval or parsing error, false is
   562  // returned and Error() can be queried for the exact failure.
   563  func (it *GasPriceOracleDecimalsUpdatedIterator) Next() bool {
   564  	// If the iterator failed, stop iterating
   565  	if it.fail != nil {
   566  		return false
   567  	}
   568  	// If the iterator completed, deliver directly whatever's available
   569  	if it.done {
   570  		select {
   571  		case log := <-it.logs:
   572  			it.Event = new(GasPriceOracleDecimalsUpdated)
   573  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   574  				it.fail = err
   575  				return false
   576  			}
   577  			it.Event.Raw = log
   578  			return true
   579  
   580  		default:
   581  			return false
   582  		}
   583  	}
   584  	// Iterator still in progress, wait for either a data or an error event
   585  	select {
   586  	case log := <-it.logs:
   587  		it.Event = new(GasPriceOracleDecimalsUpdated)
   588  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   589  			it.fail = err
   590  			return false
   591  		}
   592  		it.Event.Raw = log
   593  		return true
   594  
   595  	case err := <-it.sub.Err():
   596  		it.done = true
   597  		it.fail = err
   598  		return it.Next()
   599  	}
   600  }
   601  
   602  // Error returns any retrieval or parsing error occurred during filtering.
   603  func (it *GasPriceOracleDecimalsUpdatedIterator) Error() error {
   604  	return it.fail
   605  }
   606  
   607  // Close terminates the iteration process, releasing any pending underlying
   608  // resources.
   609  func (it *GasPriceOracleDecimalsUpdatedIterator) Close() error {
   610  	it.sub.Unsubscribe()
   611  	return nil
   612  }
   613  
   614  // GasPriceOracleDecimalsUpdated represents a DecimalsUpdated event raised by the GasPriceOracle contract.
   615  type GasPriceOracleDecimalsUpdated struct {
   616  	Arg0 *big.Int
   617  	Raw  types.Log // Blockchain specific contextual infos
   618  }
   619  
   620  // FilterDecimalsUpdated is a free log retrieval operation binding the contract event 0xd68112a8707e326d08be3656b528c1bcc5bbbfc47f4177e2179b14d8640838c1.
   621  //
   622  // Solidity: event DecimalsUpdated(uint256 )
   623  func (_GasPriceOracle *GasPriceOracleFilterer) FilterDecimalsUpdated(opts *bind.FilterOpts) (*GasPriceOracleDecimalsUpdatedIterator, error) {
   624  
   625  	logs, sub, err := _GasPriceOracle.contract.FilterLogs(opts, "DecimalsUpdated")
   626  	if err != nil {
   627  		return nil, err
   628  	}
   629  	return &GasPriceOracleDecimalsUpdatedIterator{contract: _GasPriceOracle.contract, event: "DecimalsUpdated", logs: logs, sub: sub}, nil
   630  }
   631  
   632  // WatchDecimalsUpdated is a free log subscription operation binding the contract event 0xd68112a8707e326d08be3656b528c1bcc5bbbfc47f4177e2179b14d8640838c1.
   633  //
   634  // Solidity: event DecimalsUpdated(uint256 )
   635  func (_GasPriceOracle *GasPriceOracleFilterer) WatchDecimalsUpdated(opts *bind.WatchOpts, sink chan<- *GasPriceOracleDecimalsUpdated) (event.Subscription, error) {
   636  
   637  	logs, sub, err := _GasPriceOracle.contract.WatchLogs(opts, "DecimalsUpdated")
   638  	if err != nil {
   639  		return nil, err
   640  	}
   641  	return event.NewSubscription(func(quit <-chan struct{}) error {
   642  		defer sub.Unsubscribe()
   643  		for {
   644  			select {
   645  			case log := <-logs:
   646  				// New log arrived, parse the event and forward to the user
   647  				event := new(GasPriceOracleDecimalsUpdated)
   648  				if err := _GasPriceOracle.contract.UnpackLog(event, "DecimalsUpdated", log); err != nil {
   649  					return err
   650  				}
   651  				event.Raw = log
   652  
   653  				select {
   654  				case sink <- event:
   655  				case err := <-sub.Err():
   656  					return err
   657  				case <-quit:
   658  					return nil
   659  				}
   660  			case err := <-sub.Err():
   661  				return err
   662  			case <-quit:
   663  				return nil
   664  			}
   665  		}
   666  	}), nil
   667  }
   668  
   669  // ParseDecimalsUpdated is a log parse operation binding the contract event 0xd68112a8707e326d08be3656b528c1bcc5bbbfc47f4177e2179b14d8640838c1.
   670  //
   671  // Solidity: event DecimalsUpdated(uint256 )
   672  func (_GasPriceOracle *GasPriceOracleFilterer) ParseDecimalsUpdated(log types.Log) (*GasPriceOracleDecimalsUpdated, error) {
   673  	event := new(GasPriceOracleDecimalsUpdated)
   674  	if err := _GasPriceOracle.contract.UnpackLog(event, "DecimalsUpdated", log); err != nil {
   675  		return nil, err
   676  	}
   677  	return event, nil
   678  }
   679  
   680  // GasPriceOracleGasPriceUpdatedIterator is returned from FilterGasPriceUpdated and is used to iterate over the raw logs and unpacked data for GasPriceUpdated events raised by the GasPriceOracle contract.
   681  type GasPriceOracleGasPriceUpdatedIterator struct {
   682  	Event *GasPriceOracleGasPriceUpdated // Event containing the contract specifics and raw log
   683  
   684  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   685  	event    string              // Event name to use for unpacking event data
   686  
   687  	logs chan types.Log        // Log channel receiving the found contract events
   688  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   689  	done bool                  // Whether the subscription completed delivering logs
   690  	fail error                 // Occurred error to stop iteration
   691  }
   692  
   693  // Next advances the iterator to the subsequent event, returning whether there
   694  // are any more events found. In case of a retrieval or parsing error, false is
   695  // returned and Error() can be queried for the exact failure.
   696  func (it *GasPriceOracleGasPriceUpdatedIterator) Next() bool {
   697  	// If the iterator failed, stop iterating
   698  	if it.fail != nil {
   699  		return false
   700  	}
   701  	// If the iterator completed, deliver directly whatever's available
   702  	if it.done {
   703  		select {
   704  		case log := <-it.logs:
   705  			it.Event = new(GasPriceOracleGasPriceUpdated)
   706  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   707  				it.fail = err
   708  				return false
   709  			}
   710  			it.Event.Raw = log
   711  			return true
   712  
   713  		default:
   714  			return false
   715  		}
   716  	}
   717  	// Iterator still in progress, wait for either a data or an error event
   718  	select {
   719  	case log := <-it.logs:
   720  		it.Event = new(GasPriceOracleGasPriceUpdated)
   721  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   722  			it.fail = err
   723  			return false
   724  		}
   725  		it.Event.Raw = log
   726  		return true
   727  
   728  	case err := <-it.sub.Err():
   729  		it.done = true
   730  		it.fail = err
   731  		return it.Next()
   732  	}
   733  }
   734  
   735  // Error returns any retrieval or parsing error occurred during filtering.
   736  func (it *GasPriceOracleGasPriceUpdatedIterator) Error() error {
   737  	return it.fail
   738  }
   739  
   740  // Close terminates the iteration process, releasing any pending underlying
   741  // resources.
   742  func (it *GasPriceOracleGasPriceUpdatedIterator) Close() error {
   743  	it.sub.Unsubscribe()
   744  	return nil
   745  }
   746  
   747  // GasPriceOracleGasPriceUpdated represents a GasPriceUpdated event raised by the GasPriceOracle contract.
   748  type GasPriceOracleGasPriceUpdated struct {
   749  	Arg0 *big.Int
   750  	Raw  types.Log // Blockchain specific contextual infos
   751  }
   752  
   753  // FilterGasPriceUpdated is a free log retrieval operation binding the contract event 0xfcdccc6074c6c42e4bd578aa9870c697dc976a270968452d2b8c8dc369fae396.
   754  //
   755  // Solidity: event GasPriceUpdated(uint256 )
   756  func (_GasPriceOracle *GasPriceOracleFilterer) FilterGasPriceUpdated(opts *bind.FilterOpts) (*GasPriceOracleGasPriceUpdatedIterator, error) {
   757  
   758  	logs, sub, err := _GasPriceOracle.contract.FilterLogs(opts, "GasPriceUpdated")
   759  	if err != nil {
   760  		return nil, err
   761  	}
   762  	return &GasPriceOracleGasPriceUpdatedIterator{contract: _GasPriceOracle.contract, event: "GasPriceUpdated", logs: logs, sub: sub}, nil
   763  }
   764  
   765  // WatchGasPriceUpdated is a free log subscription operation binding the contract event 0xfcdccc6074c6c42e4bd578aa9870c697dc976a270968452d2b8c8dc369fae396.
   766  //
   767  // Solidity: event GasPriceUpdated(uint256 )
   768  func (_GasPriceOracle *GasPriceOracleFilterer) WatchGasPriceUpdated(opts *bind.WatchOpts, sink chan<- *GasPriceOracleGasPriceUpdated) (event.Subscription, error) {
   769  
   770  	logs, sub, err := _GasPriceOracle.contract.WatchLogs(opts, "GasPriceUpdated")
   771  	if err != nil {
   772  		return nil, err
   773  	}
   774  	return event.NewSubscription(func(quit <-chan struct{}) error {
   775  		defer sub.Unsubscribe()
   776  		for {
   777  			select {
   778  			case log := <-logs:
   779  				// New log arrived, parse the event and forward to the user
   780  				event := new(GasPriceOracleGasPriceUpdated)
   781  				if err := _GasPriceOracle.contract.UnpackLog(event, "GasPriceUpdated", log); err != nil {
   782  					return err
   783  				}
   784  				event.Raw = log
   785  
   786  				select {
   787  				case sink <- event:
   788  				case err := <-sub.Err():
   789  					return err
   790  				case <-quit:
   791  					return nil
   792  				}
   793  			case err := <-sub.Err():
   794  				return err
   795  			case <-quit:
   796  				return nil
   797  			}
   798  		}
   799  	}), nil
   800  }
   801  
   802  // ParseGasPriceUpdated is a log parse operation binding the contract event 0xfcdccc6074c6c42e4bd578aa9870c697dc976a270968452d2b8c8dc369fae396.
   803  //
   804  // Solidity: event GasPriceUpdated(uint256 )
   805  func (_GasPriceOracle *GasPriceOracleFilterer) ParseGasPriceUpdated(log types.Log) (*GasPriceOracleGasPriceUpdated, error) {
   806  	event := new(GasPriceOracleGasPriceUpdated)
   807  	if err := _GasPriceOracle.contract.UnpackLog(event, "GasPriceUpdated", log); err != nil {
   808  		return nil, err
   809  	}
   810  	return event, nil
   811  }
   812  
   813  // GasPriceOracleL1BaseFeeUpdatedIterator is returned from FilterL1BaseFeeUpdated and is used to iterate over the raw logs and unpacked data for L1BaseFeeUpdated events raised by the GasPriceOracle contract.
   814  type GasPriceOracleL1BaseFeeUpdatedIterator struct {
   815  	Event *GasPriceOracleL1BaseFeeUpdated // Event containing the contract specifics and raw log
   816  
   817  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   818  	event    string              // Event name to use for unpacking event data
   819  
   820  	logs chan types.Log        // Log channel receiving the found contract events
   821  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   822  	done bool                  // Whether the subscription completed delivering logs
   823  	fail error                 // Occurred error to stop iteration
   824  }
   825  
   826  // Next advances the iterator to the subsequent event, returning whether there
   827  // are any more events found. In case of a retrieval or parsing error, false is
   828  // returned and Error() can be queried for the exact failure.
   829  func (it *GasPriceOracleL1BaseFeeUpdatedIterator) Next() bool {
   830  	// If the iterator failed, stop iterating
   831  	if it.fail != nil {
   832  		return false
   833  	}
   834  	// If the iterator completed, deliver directly whatever's available
   835  	if it.done {
   836  		select {
   837  		case log := <-it.logs:
   838  			it.Event = new(GasPriceOracleL1BaseFeeUpdated)
   839  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   840  				it.fail = err
   841  				return false
   842  			}
   843  			it.Event.Raw = log
   844  			return true
   845  
   846  		default:
   847  			return false
   848  		}
   849  	}
   850  	// Iterator still in progress, wait for either a data or an error event
   851  	select {
   852  	case log := <-it.logs:
   853  		it.Event = new(GasPriceOracleL1BaseFeeUpdated)
   854  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   855  			it.fail = err
   856  			return false
   857  		}
   858  		it.Event.Raw = log
   859  		return true
   860  
   861  	case err := <-it.sub.Err():
   862  		it.done = true
   863  		it.fail = err
   864  		return it.Next()
   865  	}
   866  }
   867  
   868  // Error returns any retrieval or parsing error occurred during filtering.
   869  func (it *GasPriceOracleL1BaseFeeUpdatedIterator) Error() error {
   870  	return it.fail
   871  }
   872  
   873  // Close terminates the iteration process, releasing any pending underlying
   874  // resources.
   875  func (it *GasPriceOracleL1BaseFeeUpdatedIterator) Close() error {
   876  	it.sub.Unsubscribe()
   877  	return nil
   878  }
   879  
   880  // GasPriceOracleL1BaseFeeUpdated represents a L1BaseFeeUpdated event raised by the GasPriceOracle contract.
   881  type GasPriceOracleL1BaseFeeUpdated struct {
   882  	Arg0 *big.Int
   883  	Raw  types.Log // Blockchain specific contextual infos
   884  }
   885  
   886  // FilterL1BaseFeeUpdated is a free log retrieval operation binding the contract event 0x351fb23757bb5ea0546c85b7996ddd7155f96b939ebaa5ff7bc49c75f27f2c44.
   887  //
   888  // Solidity: event L1BaseFeeUpdated(uint256 )
   889  func (_GasPriceOracle *GasPriceOracleFilterer) FilterL1BaseFeeUpdated(opts *bind.FilterOpts) (*GasPriceOracleL1BaseFeeUpdatedIterator, error) {
   890  
   891  	logs, sub, err := _GasPriceOracle.contract.FilterLogs(opts, "L1BaseFeeUpdated")
   892  	if err != nil {
   893  		return nil, err
   894  	}
   895  	return &GasPriceOracleL1BaseFeeUpdatedIterator{contract: _GasPriceOracle.contract, event: "L1BaseFeeUpdated", logs: logs, sub: sub}, nil
   896  }
   897  
   898  // WatchL1BaseFeeUpdated is a free log subscription operation binding the contract event 0x351fb23757bb5ea0546c85b7996ddd7155f96b939ebaa5ff7bc49c75f27f2c44.
   899  //
   900  // Solidity: event L1BaseFeeUpdated(uint256 )
   901  func (_GasPriceOracle *GasPriceOracleFilterer) WatchL1BaseFeeUpdated(opts *bind.WatchOpts, sink chan<- *GasPriceOracleL1BaseFeeUpdated) (event.Subscription, error) {
   902  
   903  	logs, sub, err := _GasPriceOracle.contract.WatchLogs(opts, "L1BaseFeeUpdated")
   904  	if err != nil {
   905  		return nil, err
   906  	}
   907  	return event.NewSubscription(func(quit <-chan struct{}) error {
   908  		defer sub.Unsubscribe()
   909  		for {
   910  			select {
   911  			case log := <-logs:
   912  				// New log arrived, parse the event and forward to the user
   913  				event := new(GasPriceOracleL1BaseFeeUpdated)
   914  				if err := _GasPriceOracle.contract.UnpackLog(event, "L1BaseFeeUpdated", log); err != nil {
   915  					return err
   916  				}
   917  				event.Raw = log
   918  
   919  				select {
   920  				case sink <- event:
   921  				case err := <-sub.Err():
   922  					return err
   923  				case <-quit:
   924  					return nil
   925  				}
   926  			case err := <-sub.Err():
   927  				return err
   928  			case <-quit:
   929  				return nil
   930  			}
   931  		}
   932  	}), nil
   933  }
   934  
   935  // ParseL1BaseFeeUpdated is a log parse operation binding the contract event 0x351fb23757bb5ea0546c85b7996ddd7155f96b939ebaa5ff7bc49c75f27f2c44.
   936  //
   937  // Solidity: event L1BaseFeeUpdated(uint256 )
   938  func (_GasPriceOracle *GasPriceOracleFilterer) ParseL1BaseFeeUpdated(log types.Log) (*GasPriceOracleL1BaseFeeUpdated, error) {
   939  	event := new(GasPriceOracleL1BaseFeeUpdated)
   940  	if err := _GasPriceOracle.contract.UnpackLog(event, "L1BaseFeeUpdated", log); err != nil {
   941  		return nil, err
   942  	}
   943  	return event, nil
   944  }
   945  
   946  // GasPriceOracleOverheadUpdatedIterator is returned from FilterOverheadUpdated and is used to iterate over the raw logs and unpacked data for OverheadUpdated events raised by the GasPriceOracle contract.
   947  type GasPriceOracleOverheadUpdatedIterator struct {
   948  	Event *GasPriceOracleOverheadUpdated // Event containing the contract specifics and raw log
   949  
   950  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   951  	event    string              // Event name to use for unpacking event data
   952  
   953  	logs chan types.Log        // Log channel receiving the found contract events
   954  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   955  	done bool                  // Whether the subscription completed delivering logs
   956  	fail error                 // Occurred error to stop iteration
   957  }
   958  
   959  // Next advances the iterator to the subsequent event, returning whether there
   960  // are any more events found. In case of a retrieval or parsing error, false is
   961  // returned and Error() can be queried for the exact failure.
   962  func (it *GasPriceOracleOverheadUpdatedIterator) Next() bool {
   963  	// If the iterator failed, stop iterating
   964  	if it.fail != nil {
   965  		return false
   966  	}
   967  	// If the iterator completed, deliver directly whatever's available
   968  	if it.done {
   969  		select {
   970  		case log := <-it.logs:
   971  			it.Event = new(GasPriceOracleOverheadUpdated)
   972  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   973  				it.fail = err
   974  				return false
   975  			}
   976  			it.Event.Raw = log
   977  			return true
   978  
   979  		default:
   980  			return false
   981  		}
   982  	}
   983  	// Iterator still in progress, wait for either a data or an error event
   984  	select {
   985  	case log := <-it.logs:
   986  		it.Event = new(GasPriceOracleOverheadUpdated)
   987  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   988  			it.fail = err
   989  			return false
   990  		}
   991  		it.Event.Raw = log
   992  		return true
   993  
   994  	case err := <-it.sub.Err():
   995  		it.done = true
   996  		it.fail = err
   997  		return it.Next()
   998  	}
   999  }
  1000  
  1001  // Error returns any retrieval or parsing error occurred during filtering.
  1002  func (it *GasPriceOracleOverheadUpdatedIterator) Error() error {
  1003  	return it.fail
  1004  }
  1005  
  1006  // Close terminates the iteration process, releasing any pending underlying
  1007  // resources.
  1008  func (it *GasPriceOracleOverheadUpdatedIterator) Close() error {
  1009  	it.sub.Unsubscribe()
  1010  	return nil
  1011  }
  1012  
  1013  // GasPriceOracleOverheadUpdated represents a OverheadUpdated event raised by the GasPriceOracle contract.
  1014  type GasPriceOracleOverheadUpdated struct {
  1015  	Arg0 *big.Int
  1016  	Raw  types.Log // Blockchain specific contextual infos
  1017  }
  1018  
  1019  // FilterOverheadUpdated is a free log retrieval operation binding the contract event 0x32740b35c0ea213650f60d44366b4fb211c9033b50714e4a1d34e65d5beb9bb4.
  1020  //
  1021  // Solidity: event OverheadUpdated(uint256 )
  1022  func (_GasPriceOracle *GasPriceOracleFilterer) FilterOverheadUpdated(opts *bind.FilterOpts) (*GasPriceOracleOverheadUpdatedIterator, error) {
  1023  
  1024  	logs, sub, err := _GasPriceOracle.contract.FilterLogs(opts, "OverheadUpdated")
  1025  	if err != nil {
  1026  		return nil, err
  1027  	}
  1028  	return &GasPriceOracleOverheadUpdatedIterator{contract: _GasPriceOracle.contract, event: "OverheadUpdated", logs: logs, sub: sub}, nil
  1029  }
  1030  
  1031  // WatchOverheadUpdated is a free log subscription operation binding the contract event 0x32740b35c0ea213650f60d44366b4fb211c9033b50714e4a1d34e65d5beb9bb4.
  1032  //
  1033  // Solidity: event OverheadUpdated(uint256 )
  1034  func (_GasPriceOracle *GasPriceOracleFilterer) WatchOverheadUpdated(opts *bind.WatchOpts, sink chan<- *GasPriceOracleOverheadUpdated) (event.Subscription, error) {
  1035  
  1036  	logs, sub, err := _GasPriceOracle.contract.WatchLogs(opts, "OverheadUpdated")
  1037  	if err != nil {
  1038  		return nil, err
  1039  	}
  1040  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1041  		defer sub.Unsubscribe()
  1042  		for {
  1043  			select {
  1044  			case log := <-logs:
  1045  				// New log arrived, parse the event and forward to the user
  1046  				event := new(GasPriceOracleOverheadUpdated)
  1047  				if err := _GasPriceOracle.contract.UnpackLog(event, "OverheadUpdated", log); err != nil {
  1048  					return err
  1049  				}
  1050  				event.Raw = log
  1051  
  1052  				select {
  1053  				case sink <- event:
  1054  				case err := <-sub.Err():
  1055  					return err
  1056  				case <-quit:
  1057  					return nil
  1058  				}
  1059  			case err := <-sub.Err():
  1060  				return err
  1061  			case <-quit:
  1062  				return nil
  1063  			}
  1064  		}
  1065  	}), nil
  1066  }
  1067  
  1068  // ParseOverheadUpdated is a log parse operation binding the contract event 0x32740b35c0ea213650f60d44366b4fb211c9033b50714e4a1d34e65d5beb9bb4.
  1069  //
  1070  // Solidity: event OverheadUpdated(uint256 )
  1071  func (_GasPriceOracle *GasPriceOracleFilterer) ParseOverheadUpdated(log types.Log) (*GasPriceOracleOverheadUpdated, error) {
  1072  	event := new(GasPriceOracleOverheadUpdated)
  1073  	if err := _GasPriceOracle.contract.UnpackLog(event, "OverheadUpdated", log); err != nil {
  1074  		return nil, err
  1075  	}
  1076  	return event, nil
  1077  }
  1078  
  1079  // GasPriceOracleOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the GasPriceOracle contract.
  1080  type GasPriceOracleOwnershipTransferredIterator struct {
  1081  	Event *GasPriceOracleOwnershipTransferred // Event containing the contract specifics and raw log
  1082  
  1083  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1084  	event    string              // Event name to use for unpacking event data
  1085  
  1086  	logs chan types.Log        // Log channel receiving the found contract events
  1087  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1088  	done bool                  // Whether the subscription completed delivering logs
  1089  	fail error                 // Occurred error to stop iteration
  1090  }
  1091  
  1092  // Next advances the iterator to the subsequent event, returning whether there
  1093  // are any more events found. In case of a retrieval or parsing error, false is
  1094  // returned and Error() can be queried for the exact failure.
  1095  func (it *GasPriceOracleOwnershipTransferredIterator) Next() bool {
  1096  	// If the iterator failed, stop iterating
  1097  	if it.fail != nil {
  1098  		return false
  1099  	}
  1100  	// If the iterator completed, deliver directly whatever's available
  1101  	if it.done {
  1102  		select {
  1103  		case log := <-it.logs:
  1104  			it.Event = new(GasPriceOracleOwnershipTransferred)
  1105  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1106  				it.fail = err
  1107  				return false
  1108  			}
  1109  			it.Event.Raw = log
  1110  			return true
  1111  
  1112  		default:
  1113  			return false
  1114  		}
  1115  	}
  1116  	// Iterator still in progress, wait for either a data or an error event
  1117  	select {
  1118  	case log := <-it.logs:
  1119  		it.Event = new(GasPriceOracleOwnershipTransferred)
  1120  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1121  			it.fail = err
  1122  			return false
  1123  		}
  1124  		it.Event.Raw = log
  1125  		return true
  1126  
  1127  	case err := <-it.sub.Err():
  1128  		it.done = true
  1129  		it.fail = err
  1130  		return it.Next()
  1131  	}
  1132  }
  1133  
  1134  // Error returns any retrieval or parsing error occurred during filtering.
  1135  func (it *GasPriceOracleOwnershipTransferredIterator) Error() error {
  1136  	return it.fail
  1137  }
  1138  
  1139  // Close terminates the iteration process, releasing any pending underlying
  1140  // resources.
  1141  func (it *GasPriceOracleOwnershipTransferredIterator) Close() error {
  1142  	it.sub.Unsubscribe()
  1143  	return nil
  1144  }
  1145  
  1146  // GasPriceOracleOwnershipTransferred represents a OwnershipTransferred event raised by the GasPriceOracle contract.
  1147  type GasPriceOracleOwnershipTransferred struct {
  1148  	PreviousOwner common.Address
  1149  	NewOwner      common.Address
  1150  	Raw           types.Log // Blockchain specific contextual infos
  1151  }
  1152  
  1153  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1154  //
  1155  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  1156  func (_GasPriceOracle *GasPriceOracleFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*GasPriceOracleOwnershipTransferredIterator, error) {
  1157  
  1158  	var previousOwnerRule []interface{}
  1159  	for _, previousOwnerItem := range previousOwner {
  1160  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  1161  	}
  1162  	var newOwnerRule []interface{}
  1163  	for _, newOwnerItem := range newOwner {
  1164  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  1165  	}
  1166  
  1167  	logs, sub, err := _GasPriceOracle.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  1168  	if err != nil {
  1169  		return nil, err
  1170  	}
  1171  	return &GasPriceOracleOwnershipTransferredIterator{contract: _GasPriceOracle.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  1172  }
  1173  
  1174  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1175  //
  1176  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  1177  func (_GasPriceOracle *GasPriceOracleFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *GasPriceOracleOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  1178  
  1179  	var previousOwnerRule []interface{}
  1180  	for _, previousOwnerItem := range previousOwner {
  1181  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  1182  	}
  1183  	var newOwnerRule []interface{}
  1184  	for _, newOwnerItem := range newOwner {
  1185  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  1186  	}
  1187  
  1188  	logs, sub, err := _GasPriceOracle.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  1189  	if err != nil {
  1190  		return nil, err
  1191  	}
  1192  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1193  		defer sub.Unsubscribe()
  1194  		for {
  1195  			select {
  1196  			case log := <-logs:
  1197  				// New log arrived, parse the event and forward to the user
  1198  				event := new(GasPriceOracleOwnershipTransferred)
  1199  				if err := _GasPriceOracle.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  1200  					return err
  1201  				}
  1202  				event.Raw = log
  1203  
  1204  				select {
  1205  				case sink <- event:
  1206  				case err := <-sub.Err():
  1207  					return err
  1208  				case <-quit:
  1209  					return nil
  1210  				}
  1211  			case err := <-sub.Err():
  1212  				return err
  1213  			case <-quit:
  1214  				return nil
  1215  			}
  1216  		}
  1217  	}), nil
  1218  }
  1219  
  1220  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1221  //
  1222  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  1223  func (_GasPriceOracle *GasPriceOracleFilterer) ParseOwnershipTransferred(log types.Log) (*GasPriceOracleOwnershipTransferred, error) {
  1224  	event := new(GasPriceOracleOwnershipTransferred)
  1225  	if err := _GasPriceOracle.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  1226  		return nil, err
  1227  	}
  1228  	return event, nil
  1229  }
  1230  
  1231  // GasPriceOracleScalarUpdatedIterator is returned from FilterScalarUpdated and is used to iterate over the raw logs and unpacked data for ScalarUpdated events raised by the GasPriceOracle contract.
  1232  type GasPriceOracleScalarUpdatedIterator struct {
  1233  	Event *GasPriceOracleScalarUpdated // Event containing the contract specifics and raw log
  1234  
  1235  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1236  	event    string              // Event name to use for unpacking event data
  1237  
  1238  	logs chan types.Log        // Log channel receiving the found contract events
  1239  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1240  	done bool                  // Whether the subscription completed delivering logs
  1241  	fail error                 // Occurred error to stop iteration
  1242  }
  1243  
  1244  // Next advances the iterator to the subsequent event, returning whether there
  1245  // are any more events found. In case of a retrieval or parsing error, false is
  1246  // returned and Error() can be queried for the exact failure.
  1247  func (it *GasPriceOracleScalarUpdatedIterator) Next() bool {
  1248  	// If the iterator failed, stop iterating
  1249  	if it.fail != nil {
  1250  		return false
  1251  	}
  1252  	// If the iterator completed, deliver directly whatever's available
  1253  	if it.done {
  1254  		select {
  1255  		case log := <-it.logs:
  1256  			it.Event = new(GasPriceOracleScalarUpdated)
  1257  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1258  				it.fail = err
  1259  				return false
  1260  			}
  1261  			it.Event.Raw = log
  1262  			return true
  1263  
  1264  		default:
  1265  			return false
  1266  		}
  1267  	}
  1268  	// Iterator still in progress, wait for either a data or an error event
  1269  	select {
  1270  	case log := <-it.logs:
  1271  		it.Event = new(GasPriceOracleScalarUpdated)
  1272  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1273  			it.fail = err
  1274  			return false
  1275  		}
  1276  		it.Event.Raw = log
  1277  		return true
  1278  
  1279  	case err := <-it.sub.Err():
  1280  		it.done = true
  1281  		it.fail = err
  1282  		return it.Next()
  1283  	}
  1284  }
  1285  
  1286  // Error returns any retrieval or parsing error occurred during filtering.
  1287  func (it *GasPriceOracleScalarUpdatedIterator) Error() error {
  1288  	return it.fail
  1289  }
  1290  
  1291  // Close terminates the iteration process, releasing any pending underlying
  1292  // resources.
  1293  func (it *GasPriceOracleScalarUpdatedIterator) Close() error {
  1294  	it.sub.Unsubscribe()
  1295  	return nil
  1296  }
  1297  
  1298  // GasPriceOracleScalarUpdated represents a ScalarUpdated event raised by the GasPriceOracle contract.
  1299  type GasPriceOracleScalarUpdated struct {
  1300  	Arg0 *big.Int
  1301  	Raw  types.Log // Blockchain specific contextual infos
  1302  }
  1303  
  1304  // FilterScalarUpdated is a free log retrieval operation binding the contract event 0x3336cd9708eaf2769a0f0dc0679f30e80f15dcd88d1921b5a16858e8b85c591a.
  1305  //
  1306  // Solidity: event ScalarUpdated(uint256 )
  1307  func (_GasPriceOracle *GasPriceOracleFilterer) FilterScalarUpdated(opts *bind.FilterOpts) (*GasPriceOracleScalarUpdatedIterator, error) {
  1308  
  1309  	logs, sub, err := _GasPriceOracle.contract.FilterLogs(opts, "ScalarUpdated")
  1310  	if err != nil {
  1311  		return nil, err
  1312  	}
  1313  	return &GasPriceOracleScalarUpdatedIterator{contract: _GasPriceOracle.contract, event: "ScalarUpdated", logs: logs, sub: sub}, nil
  1314  }
  1315  
  1316  // WatchScalarUpdated is a free log subscription operation binding the contract event 0x3336cd9708eaf2769a0f0dc0679f30e80f15dcd88d1921b5a16858e8b85c591a.
  1317  //
  1318  // Solidity: event ScalarUpdated(uint256 )
  1319  func (_GasPriceOracle *GasPriceOracleFilterer) WatchScalarUpdated(opts *bind.WatchOpts, sink chan<- *GasPriceOracleScalarUpdated) (event.Subscription, error) {
  1320  
  1321  	logs, sub, err := _GasPriceOracle.contract.WatchLogs(opts, "ScalarUpdated")
  1322  	if err != nil {
  1323  		return nil, err
  1324  	}
  1325  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1326  		defer sub.Unsubscribe()
  1327  		for {
  1328  			select {
  1329  			case log := <-logs:
  1330  				// New log arrived, parse the event and forward to the user
  1331  				event := new(GasPriceOracleScalarUpdated)
  1332  				if err := _GasPriceOracle.contract.UnpackLog(event, "ScalarUpdated", log); err != nil {
  1333  					return err
  1334  				}
  1335  				event.Raw = log
  1336  
  1337  				select {
  1338  				case sink <- event:
  1339  				case err := <-sub.Err():
  1340  					return err
  1341  				case <-quit:
  1342  					return nil
  1343  				}
  1344  			case err := <-sub.Err():
  1345  				return err
  1346  			case <-quit:
  1347  				return nil
  1348  			}
  1349  		}
  1350  	}), nil
  1351  }
  1352  
  1353  // ParseScalarUpdated is a log parse operation binding the contract event 0x3336cd9708eaf2769a0f0dc0679f30e80f15dcd88d1921b5a16858e8b85c591a.
  1354  //
  1355  // Solidity: event ScalarUpdated(uint256 )
  1356  func (_GasPriceOracle *GasPriceOracleFilterer) ParseScalarUpdated(log types.Log) (*GasPriceOracleScalarUpdated, error) {
  1357  	event := new(GasPriceOracleScalarUpdated)
  1358  	if err := _GasPriceOracle.contract.UnpackLog(event, "ScalarUpdated", log); err != nil {
  1359  		return nil, err
  1360  	}
  1361  	return event, nil
  1362  }