github.com/diadata-org/diadata@v1.4.593/pkg/dia/scraper/exchange-scrapers/uniswapv3/UniswapV3.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 UniswapV3
     5  
     6  import (
     7  	"math/big"
     8  	"strings"
     9  
    10  	ethereum "github.com/ethereum/go-ethereum"
    11  	"github.com/ethereum/go-ethereum/accounts/abi"
    12  	"github.com/ethereum/go-ethereum/accounts/abi/bind"
    13  	"github.com/ethereum/go-ethereum/common"
    14  	"github.com/ethereum/go-ethereum/core/types"
    15  	"github.com/ethereum/go-ethereum/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  	_ = bind.Bind
    24  	_ = common.Big1
    25  	_ = types.BloomLookup
    26  	_ = event.NewSubscription
    27  )
    28  
    29  // UniswapV3ABI is the input ABI used to generate the binding from.
    30  const UniswapV3ABI = "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"}],\"name\":\"FeeAmountEnabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"}],\"name\":\"enableFeeAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"name\":\"feeAmountTickSpacing\",\"outputs\":[{\"internalType\":\"int24\",\"name\":\"\",\"type\":\"int24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"name\":\"getPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"parameters\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
    31  
    32  // UniswapV3 is an auto generated Go binding around an Ethereum contract.
    33  type UniswapV3 struct {
    34  	UniswapV3Caller     // Read-only binding to the contract
    35  	UniswapV3Transactor // Write-only binding to the contract
    36  	UniswapV3Filterer   // Log filterer for contract events
    37  }
    38  
    39  // UniswapV3Caller is an auto generated read-only Go binding around an Ethereum contract.
    40  type UniswapV3Caller struct {
    41  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    42  }
    43  
    44  // UniswapV3Transactor is an auto generated write-only Go binding around an Ethereum contract.
    45  type UniswapV3Transactor struct {
    46  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    47  }
    48  
    49  // UniswapV3Filterer is an auto generated log filtering Go binding around an Ethereum contract events.
    50  type UniswapV3Filterer struct {
    51  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    52  }
    53  
    54  // UniswapV3Session is an auto generated Go binding around an Ethereum contract,
    55  // with pre-set call and transact options.
    56  type UniswapV3Session struct {
    57  	Contract     *UniswapV3        // Generic contract binding to set the session for
    58  	CallOpts     bind.CallOpts     // Call options to use throughout this session
    59  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
    60  }
    61  
    62  // UniswapV3CallerSession is an auto generated read-only Go binding around an Ethereum contract,
    63  // with pre-set call options.
    64  type UniswapV3CallerSession struct {
    65  	Contract *UniswapV3Caller // Generic contract caller binding to set the session for
    66  	CallOpts bind.CallOpts    // Call options to use throughout this session
    67  }
    68  
    69  // UniswapV3TransactorSession is an auto generated write-only Go binding around an Ethereum contract,
    70  // with pre-set transact options.
    71  type UniswapV3TransactorSession struct {
    72  	Contract     *UniswapV3Transactor // Generic contract transactor binding to set the session for
    73  	TransactOpts bind.TransactOpts    // Transaction auth options to use throughout this session
    74  }
    75  
    76  // UniswapV3Raw is an auto generated low-level Go binding around an Ethereum contract.
    77  type UniswapV3Raw struct {
    78  	Contract *UniswapV3 // Generic contract binding to access the raw methods on
    79  }
    80  
    81  // UniswapV3CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
    82  type UniswapV3CallerRaw struct {
    83  	Contract *UniswapV3Caller // Generic read-only contract binding to access the raw methods on
    84  }
    85  
    86  // UniswapV3TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
    87  type UniswapV3TransactorRaw struct {
    88  	Contract *UniswapV3Transactor // Generic write-only contract binding to access the raw methods on
    89  }
    90  
    91  // NewUniswapV3 creates a new instance of UniswapV3, bound to a specific deployed contract.
    92  func NewUniswapV3(address common.Address, backend bind.ContractBackend) (*UniswapV3, error) {
    93  	contract, err := bindUniswapV3(address, backend, backend, backend)
    94  	if err != nil {
    95  		return nil, err
    96  	}
    97  	return &UniswapV3{UniswapV3Caller: UniswapV3Caller{contract: contract}, UniswapV3Transactor: UniswapV3Transactor{contract: contract}, UniswapV3Filterer: UniswapV3Filterer{contract: contract}}, nil
    98  }
    99  
   100  // NewUniswapV3Caller creates a new read-only instance of UniswapV3, bound to a specific deployed contract.
   101  func NewUniswapV3Caller(address common.Address, caller bind.ContractCaller) (*UniswapV3Caller, error) {
   102  	contract, err := bindUniswapV3(address, caller, nil, nil)
   103  	if err != nil {
   104  		return nil, err
   105  	}
   106  	return &UniswapV3Caller{contract: contract}, nil
   107  }
   108  
   109  // NewUniswapV3Transactor creates a new write-only instance of UniswapV3, bound to a specific deployed contract.
   110  func NewUniswapV3Transactor(address common.Address, transactor bind.ContractTransactor) (*UniswapV3Transactor, error) {
   111  	contract, err := bindUniswapV3(address, nil, transactor, nil)
   112  	if err != nil {
   113  		return nil, err
   114  	}
   115  	return &UniswapV3Transactor{contract: contract}, nil
   116  }
   117  
   118  // NewUniswapV3Filterer creates a new log filterer instance of UniswapV3, bound to a specific deployed contract.
   119  func NewUniswapV3Filterer(address common.Address, filterer bind.ContractFilterer) (*UniswapV3Filterer, error) {
   120  	contract, err := bindUniswapV3(address, nil, nil, filterer)
   121  	if err != nil {
   122  		return nil, err
   123  	}
   124  	return &UniswapV3Filterer{contract: contract}, nil
   125  }
   126  
   127  // bindUniswapV3 binds a generic wrapper to an already deployed contract.
   128  func bindUniswapV3(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   129  	parsed, err := abi.JSON(strings.NewReader(UniswapV3ABI))
   130  	if err != nil {
   131  		return nil, err
   132  	}
   133  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   134  }
   135  
   136  // Call invokes the (constant) contract method with params as input values and
   137  // sets the output to result. The result type might be a single field for simple
   138  // returns, a slice of interfaces for anonymous returns and a struct for named
   139  // returns.
   140  func (_UniswapV3 *UniswapV3Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   141  	return _UniswapV3.Contract.UniswapV3Caller.contract.Call(opts, result, method, params...)
   142  }
   143  
   144  // Transfer initiates a plain transaction to move funds to the contract, calling
   145  // its default method if one is available.
   146  func (_UniswapV3 *UniswapV3Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   147  	return _UniswapV3.Contract.UniswapV3Transactor.contract.Transfer(opts)
   148  }
   149  
   150  // Transact invokes the (paid) contract method with params as input values.
   151  func (_UniswapV3 *UniswapV3Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   152  	return _UniswapV3.Contract.UniswapV3Transactor.contract.Transact(opts, method, params...)
   153  }
   154  
   155  // Call invokes the (constant) contract method with params as input values and
   156  // sets the output to result. The result type might be a single field for simple
   157  // returns, a slice of interfaces for anonymous returns and a struct for named
   158  // returns.
   159  func (_UniswapV3 *UniswapV3CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   160  	return _UniswapV3.Contract.contract.Call(opts, result, method, params...)
   161  }
   162  
   163  // Transfer initiates a plain transaction to move funds to the contract, calling
   164  // its default method if one is available.
   165  func (_UniswapV3 *UniswapV3TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   166  	return _UniswapV3.Contract.contract.Transfer(opts)
   167  }
   168  
   169  // Transact invokes the (paid) contract method with params as input values.
   170  func (_UniswapV3 *UniswapV3TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   171  	return _UniswapV3.Contract.contract.Transact(opts, method, params...)
   172  }
   173  
   174  // FeeAmountTickSpacing is a free data retrieval call binding the contract method 0x22afcccb.
   175  //
   176  // Solidity: function feeAmountTickSpacing(uint24 ) view returns(int24)
   177  func (_UniswapV3 *UniswapV3Caller) FeeAmountTickSpacing(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) {
   178  	var out []interface{}
   179  	err := _UniswapV3.contract.Call(opts, &out, "feeAmountTickSpacing", arg0)
   180  
   181  	if err != nil {
   182  		return *new(*big.Int), err
   183  	}
   184  
   185  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   186  
   187  	return out0, err
   188  
   189  }
   190  
   191  // FeeAmountTickSpacing is a free data retrieval call binding the contract method 0x22afcccb.
   192  //
   193  // Solidity: function feeAmountTickSpacing(uint24 ) view returns(int24)
   194  func (_UniswapV3 *UniswapV3Session) FeeAmountTickSpacing(arg0 *big.Int) (*big.Int, error) {
   195  	return _UniswapV3.Contract.FeeAmountTickSpacing(&_UniswapV3.CallOpts, arg0)
   196  }
   197  
   198  // FeeAmountTickSpacing is a free data retrieval call binding the contract method 0x22afcccb.
   199  //
   200  // Solidity: function feeAmountTickSpacing(uint24 ) view returns(int24)
   201  func (_UniswapV3 *UniswapV3CallerSession) FeeAmountTickSpacing(arg0 *big.Int) (*big.Int, error) {
   202  	return _UniswapV3.Contract.FeeAmountTickSpacing(&_UniswapV3.CallOpts, arg0)
   203  }
   204  
   205  // GetPool is a free data retrieval call binding the contract method 0x1698ee82.
   206  //
   207  // Solidity: function getPool(address , address , uint24 ) view returns(address)
   208  func (_UniswapV3 *UniswapV3Caller) GetPool(opts *bind.CallOpts, arg0 common.Address, arg1 common.Address, arg2 *big.Int) (common.Address, error) {
   209  	var out []interface{}
   210  	err := _UniswapV3.contract.Call(opts, &out, "getPool", arg0, arg1, arg2)
   211  
   212  	if err != nil {
   213  		return *new(common.Address), err
   214  	}
   215  
   216  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   217  
   218  	return out0, err
   219  
   220  }
   221  
   222  // GetPool is a free data retrieval call binding the contract method 0x1698ee82.
   223  //
   224  // Solidity: function getPool(address , address , uint24 ) view returns(address)
   225  func (_UniswapV3 *UniswapV3Session) GetPool(arg0 common.Address, arg1 common.Address, arg2 *big.Int) (common.Address, error) {
   226  	return _UniswapV3.Contract.GetPool(&_UniswapV3.CallOpts, arg0, arg1, arg2)
   227  }
   228  
   229  // GetPool is a free data retrieval call binding the contract method 0x1698ee82.
   230  //
   231  // Solidity: function getPool(address , address , uint24 ) view returns(address)
   232  func (_UniswapV3 *UniswapV3CallerSession) GetPool(arg0 common.Address, arg1 common.Address, arg2 *big.Int) (common.Address, error) {
   233  	return _UniswapV3.Contract.GetPool(&_UniswapV3.CallOpts, arg0, arg1, arg2)
   234  }
   235  
   236  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   237  //
   238  // Solidity: function owner() view returns(address)
   239  func (_UniswapV3 *UniswapV3Caller) Owner(opts *bind.CallOpts) (common.Address, error) {
   240  	var out []interface{}
   241  	err := _UniswapV3.contract.Call(opts, &out, "owner")
   242  
   243  	if err != nil {
   244  		return *new(common.Address), err
   245  	}
   246  
   247  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   248  
   249  	return out0, err
   250  
   251  }
   252  
   253  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   254  //
   255  // Solidity: function owner() view returns(address)
   256  func (_UniswapV3 *UniswapV3Session) Owner() (common.Address, error) {
   257  	return _UniswapV3.Contract.Owner(&_UniswapV3.CallOpts)
   258  }
   259  
   260  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   261  //
   262  // Solidity: function owner() view returns(address)
   263  func (_UniswapV3 *UniswapV3CallerSession) Owner() (common.Address, error) {
   264  	return _UniswapV3.Contract.Owner(&_UniswapV3.CallOpts)
   265  }
   266  
   267  // Parameters is a free data retrieval call binding the contract method 0x89035730.
   268  //
   269  // Solidity: function parameters() view returns(address factory, address token0, address token1, uint24 fee, int24 tickSpacing)
   270  func (_UniswapV3 *UniswapV3Caller) Parameters(opts *bind.CallOpts) (struct {
   271  	Factory     common.Address
   272  	Token0      common.Address
   273  	Token1      common.Address
   274  	Fee         *big.Int
   275  	TickSpacing *big.Int
   276  }, error) {
   277  	var out []interface{}
   278  	err := _UniswapV3.contract.Call(opts, &out, "parameters")
   279  
   280  	outstruct := new(struct {
   281  		Factory     common.Address
   282  		Token0      common.Address
   283  		Token1      common.Address
   284  		Fee         *big.Int
   285  		TickSpacing *big.Int
   286  	})
   287  
   288  	outstruct.Factory = out[0].(common.Address)
   289  	outstruct.Token0 = out[1].(common.Address)
   290  	outstruct.Token1 = out[2].(common.Address)
   291  	outstruct.Fee = out[3].(*big.Int)
   292  	outstruct.TickSpacing = out[4].(*big.Int)
   293  
   294  	return *outstruct, err
   295  
   296  }
   297  
   298  // Parameters is a free data retrieval call binding the contract method 0x89035730.
   299  //
   300  // Solidity: function parameters() view returns(address factory, address token0, address token1, uint24 fee, int24 tickSpacing)
   301  func (_UniswapV3 *UniswapV3Session) Parameters() (struct {
   302  	Factory     common.Address
   303  	Token0      common.Address
   304  	Token1      common.Address
   305  	Fee         *big.Int
   306  	TickSpacing *big.Int
   307  }, error) {
   308  	return _UniswapV3.Contract.Parameters(&_UniswapV3.CallOpts)
   309  }
   310  
   311  // Parameters is a free data retrieval call binding the contract method 0x89035730.
   312  //
   313  // Solidity: function parameters() view returns(address factory, address token0, address token1, uint24 fee, int24 tickSpacing)
   314  func (_UniswapV3 *UniswapV3CallerSession) Parameters() (struct {
   315  	Factory     common.Address
   316  	Token0      common.Address
   317  	Token1      common.Address
   318  	Fee         *big.Int
   319  	TickSpacing *big.Int
   320  }, error) {
   321  	return _UniswapV3.Contract.Parameters(&_UniswapV3.CallOpts)
   322  }
   323  
   324  // CreatePool is a paid mutator transaction binding the contract method 0xa1671295.
   325  //
   326  // Solidity: function createPool(address tokenA, address tokenB, uint24 fee) returns(address pool)
   327  func (_UniswapV3 *UniswapV3Transactor) CreatePool(opts *bind.TransactOpts, tokenA common.Address, tokenB common.Address, fee *big.Int) (*types.Transaction, error) {
   328  	return _UniswapV3.contract.Transact(opts, "createPool", tokenA, tokenB, fee)
   329  }
   330  
   331  // CreatePool is a paid mutator transaction binding the contract method 0xa1671295.
   332  //
   333  // Solidity: function createPool(address tokenA, address tokenB, uint24 fee) returns(address pool)
   334  func (_UniswapV3 *UniswapV3Session) CreatePool(tokenA common.Address, tokenB common.Address, fee *big.Int) (*types.Transaction, error) {
   335  	return _UniswapV3.Contract.CreatePool(&_UniswapV3.TransactOpts, tokenA, tokenB, fee)
   336  }
   337  
   338  // CreatePool is a paid mutator transaction binding the contract method 0xa1671295.
   339  //
   340  // Solidity: function createPool(address tokenA, address tokenB, uint24 fee) returns(address pool)
   341  func (_UniswapV3 *UniswapV3TransactorSession) CreatePool(tokenA common.Address, tokenB common.Address, fee *big.Int) (*types.Transaction, error) {
   342  	return _UniswapV3.Contract.CreatePool(&_UniswapV3.TransactOpts, tokenA, tokenB, fee)
   343  }
   344  
   345  // EnableFeeAmount is a paid mutator transaction binding the contract method 0x8a7c195f.
   346  //
   347  // Solidity: function enableFeeAmount(uint24 fee, int24 tickSpacing) returns()
   348  func (_UniswapV3 *UniswapV3Transactor) EnableFeeAmount(opts *bind.TransactOpts, fee *big.Int, tickSpacing *big.Int) (*types.Transaction, error) {
   349  	return _UniswapV3.contract.Transact(opts, "enableFeeAmount", fee, tickSpacing)
   350  }
   351  
   352  // EnableFeeAmount is a paid mutator transaction binding the contract method 0x8a7c195f.
   353  //
   354  // Solidity: function enableFeeAmount(uint24 fee, int24 tickSpacing) returns()
   355  func (_UniswapV3 *UniswapV3Session) EnableFeeAmount(fee *big.Int, tickSpacing *big.Int) (*types.Transaction, error) {
   356  	return _UniswapV3.Contract.EnableFeeAmount(&_UniswapV3.TransactOpts, fee, tickSpacing)
   357  }
   358  
   359  // EnableFeeAmount is a paid mutator transaction binding the contract method 0x8a7c195f.
   360  //
   361  // Solidity: function enableFeeAmount(uint24 fee, int24 tickSpacing) returns()
   362  func (_UniswapV3 *UniswapV3TransactorSession) EnableFeeAmount(fee *big.Int, tickSpacing *big.Int) (*types.Transaction, error) {
   363  	return _UniswapV3.Contract.EnableFeeAmount(&_UniswapV3.TransactOpts, fee, tickSpacing)
   364  }
   365  
   366  // SetOwner is a paid mutator transaction binding the contract method 0x13af4035.
   367  //
   368  // Solidity: function setOwner(address _owner) returns()
   369  func (_UniswapV3 *UniswapV3Transactor) SetOwner(opts *bind.TransactOpts, _owner common.Address) (*types.Transaction, error) {
   370  	return _UniswapV3.contract.Transact(opts, "setOwner", _owner)
   371  }
   372  
   373  // SetOwner is a paid mutator transaction binding the contract method 0x13af4035.
   374  //
   375  // Solidity: function setOwner(address _owner) returns()
   376  func (_UniswapV3 *UniswapV3Session) SetOwner(_owner common.Address) (*types.Transaction, error) {
   377  	return _UniswapV3.Contract.SetOwner(&_UniswapV3.TransactOpts, _owner)
   378  }
   379  
   380  // SetOwner is a paid mutator transaction binding the contract method 0x13af4035.
   381  //
   382  // Solidity: function setOwner(address _owner) returns()
   383  func (_UniswapV3 *UniswapV3TransactorSession) SetOwner(_owner common.Address) (*types.Transaction, error) {
   384  	return _UniswapV3.Contract.SetOwner(&_UniswapV3.TransactOpts, _owner)
   385  }
   386  
   387  // UniswapV3FeeAmountEnabledIterator is returned from FilterFeeAmountEnabled and is used to iterate over the raw logs and unpacked data for FeeAmountEnabled events raised by the UniswapV3 contract.
   388  type UniswapV3FeeAmountEnabledIterator struct {
   389  	Event *UniswapV3FeeAmountEnabled // Event containing the contract specifics and raw log
   390  
   391  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   392  	event    string              // Event name to use for unpacking event data
   393  
   394  	logs chan types.Log        // Log channel receiving the found contract events
   395  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   396  	done bool                  // Whether the subscription completed delivering logs
   397  	fail error                 // Occurred error to stop iteration
   398  }
   399  
   400  // Next advances the iterator to the subsequent event, returning whether there
   401  // are any more events found. In case of a retrieval or parsing error, false is
   402  // returned and Error() can be queried for the exact failure.
   403  func (it *UniswapV3FeeAmountEnabledIterator) Next() bool {
   404  	// If the iterator failed, stop iterating
   405  	if it.fail != nil {
   406  		return false
   407  	}
   408  	// If the iterator completed, deliver directly whatever's available
   409  	if it.done {
   410  		select {
   411  		case log := <-it.logs:
   412  			it.Event = new(UniswapV3FeeAmountEnabled)
   413  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   414  				it.fail = err
   415  				return false
   416  			}
   417  			it.Event.Raw = log
   418  			return true
   419  
   420  		default:
   421  			return false
   422  		}
   423  	}
   424  	// Iterator still in progress, wait for either a data or an error event
   425  	select {
   426  	case log := <-it.logs:
   427  		it.Event = new(UniswapV3FeeAmountEnabled)
   428  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   429  			it.fail = err
   430  			return false
   431  		}
   432  		it.Event.Raw = log
   433  		return true
   434  
   435  	case err := <-it.sub.Err():
   436  		it.done = true
   437  		it.fail = err
   438  		return it.Next()
   439  	}
   440  }
   441  
   442  // Error returns any retrieval or parsing error occurred during filtering.
   443  func (it *UniswapV3FeeAmountEnabledIterator) Error() error {
   444  	return it.fail
   445  }
   446  
   447  // Close terminates the iteration process, releasing any pending underlying
   448  // resources.
   449  func (it *UniswapV3FeeAmountEnabledIterator) Close() error {
   450  	it.sub.Unsubscribe()
   451  	return nil
   452  }
   453  
   454  // UniswapV3FeeAmountEnabled represents a FeeAmountEnabled event raised by the UniswapV3 contract.
   455  type UniswapV3FeeAmountEnabled struct {
   456  	Fee         *big.Int
   457  	TickSpacing *big.Int
   458  	Raw         types.Log // Blockchain specific contextual infos
   459  }
   460  
   461  // FilterFeeAmountEnabled is a free log retrieval operation binding the contract event 0xc66a3fdf07232cdd185febcc6579d408c241b47ae2f9907d84be655141eeaecc.
   462  //
   463  // Solidity: event FeeAmountEnabled(uint24 indexed fee, int24 indexed tickSpacing)
   464  func (_UniswapV3 *UniswapV3Filterer) FilterFeeAmountEnabled(opts *bind.FilterOpts, fee []*big.Int, tickSpacing []*big.Int) (*UniswapV3FeeAmountEnabledIterator, error) {
   465  
   466  	var feeRule []interface{}
   467  	for _, feeItem := range fee {
   468  		feeRule = append(feeRule, feeItem)
   469  	}
   470  	var tickSpacingRule []interface{}
   471  	for _, tickSpacingItem := range tickSpacing {
   472  		tickSpacingRule = append(tickSpacingRule, tickSpacingItem)
   473  	}
   474  
   475  	logs, sub, err := _UniswapV3.contract.FilterLogs(opts, "FeeAmountEnabled", feeRule, tickSpacingRule)
   476  	if err != nil {
   477  		return nil, err
   478  	}
   479  	return &UniswapV3FeeAmountEnabledIterator{contract: _UniswapV3.contract, event: "FeeAmountEnabled", logs: logs, sub: sub}, nil
   480  }
   481  
   482  // WatchFeeAmountEnabled is a free log subscription operation binding the contract event 0xc66a3fdf07232cdd185febcc6579d408c241b47ae2f9907d84be655141eeaecc.
   483  //
   484  // Solidity: event FeeAmountEnabled(uint24 indexed fee, int24 indexed tickSpacing)
   485  func (_UniswapV3 *UniswapV3Filterer) WatchFeeAmountEnabled(opts *bind.WatchOpts, sink chan<- *UniswapV3FeeAmountEnabled, fee []*big.Int, tickSpacing []*big.Int) (event.Subscription, error) {
   486  
   487  	var feeRule []interface{}
   488  	for _, feeItem := range fee {
   489  		feeRule = append(feeRule, feeItem)
   490  	}
   491  	var tickSpacingRule []interface{}
   492  	for _, tickSpacingItem := range tickSpacing {
   493  		tickSpacingRule = append(tickSpacingRule, tickSpacingItem)
   494  	}
   495  
   496  	logs, sub, err := _UniswapV3.contract.WatchLogs(opts, "FeeAmountEnabled", feeRule, tickSpacingRule)
   497  	if err != nil {
   498  		return nil, err
   499  	}
   500  	return event.NewSubscription(func(quit <-chan struct{}) error {
   501  		defer sub.Unsubscribe()
   502  		for {
   503  			select {
   504  			case log := <-logs:
   505  				// New log arrived, parse the event and forward to the user
   506  				event := new(UniswapV3FeeAmountEnabled)
   507  				if err := _UniswapV3.contract.UnpackLog(event, "FeeAmountEnabled", log); err != nil {
   508  					return err
   509  				}
   510  				event.Raw = log
   511  
   512  				select {
   513  				case sink <- event:
   514  				case err := <-sub.Err():
   515  					return err
   516  				case <-quit:
   517  					return nil
   518  				}
   519  			case err := <-sub.Err():
   520  				return err
   521  			case <-quit:
   522  				return nil
   523  			}
   524  		}
   525  	}), nil
   526  }
   527  
   528  // ParseFeeAmountEnabled is a log parse operation binding the contract event 0xc66a3fdf07232cdd185febcc6579d408c241b47ae2f9907d84be655141eeaecc.
   529  //
   530  // Solidity: event FeeAmountEnabled(uint24 indexed fee, int24 indexed tickSpacing)
   531  func (_UniswapV3 *UniswapV3Filterer) ParseFeeAmountEnabled(log types.Log) (*UniswapV3FeeAmountEnabled, error) {
   532  	event := new(UniswapV3FeeAmountEnabled)
   533  	if err := _UniswapV3.contract.UnpackLog(event, "FeeAmountEnabled", log); err != nil {
   534  		return nil, err
   535  	}
   536  	event.Raw = log
   537  	return event, nil
   538  }
   539  
   540  // UniswapV3OwnerChangedIterator is returned from FilterOwnerChanged and is used to iterate over the raw logs and unpacked data for OwnerChanged events raised by the UniswapV3 contract.
   541  type UniswapV3OwnerChangedIterator struct {
   542  	Event *UniswapV3OwnerChanged // Event containing the contract specifics and raw log
   543  
   544  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   545  	event    string              // Event name to use for unpacking event data
   546  
   547  	logs chan types.Log        // Log channel receiving the found contract events
   548  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   549  	done bool                  // Whether the subscription completed delivering logs
   550  	fail error                 // Occurred error to stop iteration
   551  }
   552  
   553  // Next advances the iterator to the subsequent event, returning whether there
   554  // are any more events found. In case of a retrieval or parsing error, false is
   555  // returned and Error() can be queried for the exact failure.
   556  func (it *UniswapV3OwnerChangedIterator) Next() bool {
   557  	// If the iterator failed, stop iterating
   558  	if it.fail != nil {
   559  		return false
   560  	}
   561  	// If the iterator completed, deliver directly whatever's available
   562  	if it.done {
   563  		select {
   564  		case log := <-it.logs:
   565  			it.Event = new(UniswapV3OwnerChanged)
   566  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   567  				it.fail = err
   568  				return false
   569  			}
   570  			it.Event.Raw = log
   571  			return true
   572  
   573  		default:
   574  			return false
   575  		}
   576  	}
   577  	// Iterator still in progress, wait for either a data or an error event
   578  	select {
   579  	case log := <-it.logs:
   580  		it.Event = new(UniswapV3OwnerChanged)
   581  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   582  			it.fail = err
   583  			return false
   584  		}
   585  		it.Event.Raw = log
   586  		return true
   587  
   588  	case err := <-it.sub.Err():
   589  		it.done = true
   590  		it.fail = err
   591  		return it.Next()
   592  	}
   593  }
   594  
   595  // Error returns any retrieval or parsing error occurred during filtering.
   596  func (it *UniswapV3OwnerChangedIterator) Error() error {
   597  	return it.fail
   598  }
   599  
   600  // Close terminates the iteration process, releasing any pending underlying
   601  // resources.
   602  func (it *UniswapV3OwnerChangedIterator) Close() error {
   603  	it.sub.Unsubscribe()
   604  	return nil
   605  }
   606  
   607  // UniswapV3OwnerChanged represents a OwnerChanged event raised by the UniswapV3 contract.
   608  type UniswapV3OwnerChanged struct {
   609  	OldOwner common.Address
   610  	NewOwner common.Address
   611  	Raw      types.Log // Blockchain specific contextual infos
   612  }
   613  
   614  // FilterOwnerChanged is a free log retrieval operation binding the contract event 0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c.
   615  //
   616  // Solidity: event OwnerChanged(address indexed oldOwner, address indexed newOwner)
   617  func (_UniswapV3 *UniswapV3Filterer) FilterOwnerChanged(opts *bind.FilterOpts, oldOwner []common.Address, newOwner []common.Address) (*UniswapV3OwnerChangedIterator, error) {
   618  
   619  	var oldOwnerRule []interface{}
   620  	for _, oldOwnerItem := range oldOwner {
   621  		oldOwnerRule = append(oldOwnerRule, oldOwnerItem)
   622  	}
   623  	var newOwnerRule []interface{}
   624  	for _, newOwnerItem := range newOwner {
   625  		newOwnerRule = append(newOwnerRule, newOwnerItem)
   626  	}
   627  
   628  	logs, sub, err := _UniswapV3.contract.FilterLogs(opts, "OwnerChanged", oldOwnerRule, newOwnerRule)
   629  	if err != nil {
   630  		return nil, err
   631  	}
   632  	return &UniswapV3OwnerChangedIterator{contract: _UniswapV3.contract, event: "OwnerChanged", logs: logs, sub: sub}, nil
   633  }
   634  
   635  // WatchOwnerChanged is a free log subscription operation binding the contract event 0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c.
   636  //
   637  // Solidity: event OwnerChanged(address indexed oldOwner, address indexed newOwner)
   638  func (_UniswapV3 *UniswapV3Filterer) WatchOwnerChanged(opts *bind.WatchOpts, sink chan<- *UniswapV3OwnerChanged, oldOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
   639  
   640  	var oldOwnerRule []interface{}
   641  	for _, oldOwnerItem := range oldOwner {
   642  		oldOwnerRule = append(oldOwnerRule, oldOwnerItem)
   643  	}
   644  	var newOwnerRule []interface{}
   645  	for _, newOwnerItem := range newOwner {
   646  		newOwnerRule = append(newOwnerRule, newOwnerItem)
   647  	}
   648  
   649  	logs, sub, err := _UniswapV3.contract.WatchLogs(opts, "OwnerChanged", oldOwnerRule, newOwnerRule)
   650  	if err != nil {
   651  		return nil, err
   652  	}
   653  	return event.NewSubscription(func(quit <-chan struct{}) error {
   654  		defer sub.Unsubscribe()
   655  		for {
   656  			select {
   657  			case log := <-logs:
   658  				// New log arrived, parse the event and forward to the user
   659  				event := new(UniswapV3OwnerChanged)
   660  				if err := _UniswapV3.contract.UnpackLog(event, "OwnerChanged", log); err != nil {
   661  					return err
   662  				}
   663  				event.Raw = log
   664  
   665  				select {
   666  				case sink <- event:
   667  				case err := <-sub.Err():
   668  					return err
   669  				case <-quit:
   670  					return nil
   671  				}
   672  			case err := <-sub.Err():
   673  				return err
   674  			case <-quit:
   675  				return nil
   676  			}
   677  		}
   678  	}), nil
   679  }
   680  
   681  // ParseOwnerChanged is a log parse operation binding the contract event 0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c.
   682  //
   683  // Solidity: event OwnerChanged(address indexed oldOwner, address indexed newOwner)
   684  func (_UniswapV3 *UniswapV3Filterer) ParseOwnerChanged(log types.Log) (*UniswapV3OwnerChanged, error) {
   685  	event := new(UniswapV3OwnerChanged)
   686  	if err := _UniswapV3.contract.UnpackLog(event, "OwnerChanged", log); err != nil {
   687  		return nil, err
   688  	}
   689  	event.Raw = log
   690  	return event, nil
   691  }
   692  
   693  // UniswapV3PoolCreatedIterator is returned from FilterPoolCreated and is used to iterate over the raw logs and unpacked data for PoolCreated events raised by the UniswapV3 contract.
   694  type UniswapV3PoolCreatedIterator struct {
   695  	Event *UniswapV3PoolCreated // Event containing the contract specifics and raw log
   696  
   697  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   698  	event    string              // Event name to use for unpacking event data
   699  
   700  	logs chan types.Log        // Log channel receiving the found contract events
   701  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   702  	done bool                  // Whether the subscription completed delivering logs
   703  	fail error                 // Occurred error to stop iteration
   704  }
   705  
   706  // Next advances the iterator to the subsequent event, returning whether there
   707  // are any more events found. In case of a retrieval or parsing error, false is
   708  // returned and Error() can be queried for the exact failure.
   709  func (it *UniswapV3PoolCreatedIterator) Next() bool {
   710  	// If the iterator failed, stop iterating
   711  	if it.fail != nil {
   712  		return false
   713  	}
   714  	// If the iterator completed, deliver directly whatever's available
   715  	if it.done {
   716  		select {
   717  		case log := <-it.logs:
   718  			it.Event = new(UniswapV3PoolCreated)
   719  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   720  				it.fail = err
   721  				return false
   722  			}
   723  			it.Event.Raw = log
   724  			return true
   725  
   726  		default:
   727  			return false
   728  		}
   729  	}
   730  	// Iterator still in progress, wait for either a data or an error event
   731  	select {
   732  	case log := <-it.logs:
   733  		it.Event = new(UniswapV3PoolCreated)
   734  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   735  			it.fail = err
   736  			return false
   737  		}
   738  		it.Event.Raw = log
   739  		return true
   740  
   741  	case err := <-it.sub.Err():
   742  		it.done = true
   743  		it.fail = err
   744  		return it.Next()
   745  	}
   746  }
   747  
   748  // Error returns any retrieval or parsing error occurred during filtering.
   749  func (it *UniswapV3PoolCreatedIterator) Error() error {
   750  	return it.fail
   751  }
   752  
   753  // Close terminates the iteration process, releasing any pending underlying
   754  // resources.
   755  func (it *UniswapV3PoolCreatedIterator) Close() error {
   756  	it.sub.Unsubscribe()
   757  	return nil
   758  }
   759  
   760  // UniswapV3PoolCreated represents a PoolCreated event raised by the UniswapV3 contract.
   761  type UniswapV3PoolCreated struct {
   762  	Token0      common.Address
   763  	Token1      common.Address
   764  	Fee         *big.Int
   765  	TickSpacing *big.Int
   766  	Pool        common.Address
   767  	Raw         types.Log // Blockchain specific contextual infos
   768  }
   769  
   770  // FilterPoolCreated is a free log retrieval operation binding the contract event 0x783cca1c0412dd0d695e784568c96da2e9c22ff989357a2e8b1d9b2b4e6b7118.
   771  //
   772  // Solidity: event PoolCreated(address indexed token0, address indexed token1, uint24 indexed fee, int24 tickSpacing, address pool)
   773  func (_UniswapV3 *UniswapV3Filterer) FilterPoolCreated(opts *bind.FilterOpts, token0 []common.Address, token1 []common.Address, fee []*big.Int) (*UniswapV3PoolCreatedIterator, error) {
   774  
   775  	var token0Rule []interface{}
   776  	for _, token0Item := range token0 {
   777  		token0Rule = append(token0Rule, token0Item)
   778  	}
   779  	var token1Rule []interface{}
   780  	for _, token1Item := range token1 {
   781  		token1Rule = append(token1Rule, token1Item)
   782  	}
   783  	var feeRule []interface{}
   784  	for _, feeItem := range fee {
   785  		feeRule = append(feeRule, feeItem)
   786  	}
   787  
   788  	logs, sub, err := _UniswapV3.contract.FilterLogs(opts, "PoolCreated", token0Rule, token1Rule, feeRule)
   789  	if err != nil {
   790  		return nil, err
   791  	}
   792  	return &UniswapV3PoolCreatedIterator{contract: _UniswapV3.contract, event: "PoolCreated", logs: logs, sub: sub}, nil
   793  }
   794  
   795  // WatchPoolCreated is a free log subscription operation binding the contract event 0x783cca1c0412dd0d695e784568c96da2e9c22ff989357a2e8b1d9b2b4e6b7118.
   796  //
   797  // Solidity: event PoolCreated(address indexed token0, address indexed token1, uint24 indexed fee, int24 tickSpacing, address pool)
   798  func (_UniswapV3 *UniswapV3Filterer) WatchPoolCreated(opts *bind.WatchOpts, sink chan<- *UniswapV3PoolCreated, token0 []common.Address, token1 []common.Address, fee []*big.Int) (event.Subscription, error) {
   799  
   800  	var token0Rule []interface{}
   801  	for _, token0Item := range token0 {
   802  		token0Rule = append(token0Rule, token0Item)
   803  	}
   804  	var token1Rule []interface{}
   805  	for _, token1Item := range token1 {
   806  		token1Rule = append(token1Rule, token1Item)
   807  	}
   808  	var feeRule []interface{}
   809  	for _, feeItem := range fee {
   810  		feeRule = append(feeRule, feeItem)
   811  	}
   812  
   813  	logs, sub, err := _UniswapV3.contract.WatchLogs(opts, "PoolCreated", token0Rule, token1Rule, feeRule)
   814  	if err != nil {
   815  		return nil, err
   816  	}
   817  	return event.NewSubscription(func(quit <-chan struct{}) error {
   818  		defer sub.Unsubscribe()
   819  		for {
   820  			select {
   821  			case log := <-logs:
   822  				// New log arrived, parse the event and forward to the user
   823  				event := new(UniswapV3PoolCreated)
   824  				if err := _UniswapV3.contract.UnpackLog(event, "PoolCreated", log); err != nil {
   825  					return err
   826  				}
   827  				event.Raw = log
   828  
   829  				select {
   830  				case sink <- event:
   831  				case err := <-sub.Err():
   832  					return err
   833  				case <-quit:
   834  					return nil
   835  				}
   836  			case err := <-sub.Err():
   837  				return err
   838  			case <-quit:
   839  				return nil
   840  			}
   841  		}
   842  	}), nil
   843  }
   844  
   845  // ParsePoolCreated is a log parse operation binding the contract event 0x783cca1c0412dd0d695e784568c96da2e9c22ff989357a2e8b1d9b2b4e6b7118.
   846  //
   847  // Solidity: event PoolCreated(address indexed token0, address indexed token1, uint24 indexed fee, int24 tickSpacing, address pool)
   848  func (_UniswapV3 *UniswapV3Filterer) ParsePoolCreated(log types.Log) (*UniswapV3PoolCreated, error) {
   849  	event := new(UniswapV3PoolCreated)
   850  	if err := _UniswapV3.contract.UnpackLog(event, "PoolCreated", log); err != nil {
   851  		return nil, err
   852  	}
   853  	event.Raw = log
   854  	return event, nil
   855  }