github.com/status-im/status-go@v1.1.0/contracts/uniswapV2/uniswapv2pair.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 uniswapv2
     5  
     6  import (
     7  	"errors"
     8  	"math/big"
     9  	"strings"
    10  
    11  	ethereum "github.com/ethereum/go-ethereum"
    12  	"github.com/ethereum/go-ethereum/accounts/abi"
    13  	"github.com/ethereum/go-ethereum/accounts/abi/bind"
    14  	"github.com/ethereum/go-ethereum/common"
    15  	"github.com/ethereum/go-ethereum/core/types"
    16  	"github.com/ethereum/go-ethereum/event"
    17  )
    18  
    19  // Reference imports to suppress errors if they are not otherwise used.
    20  var (
    21  	_ = errors.New
    22  	_ = big.NewInt
    23  	_ = strings.NewReader
    24  	_ = ethereum.NotFound
    25  	_ = bind.Bind
    26  	_ = common.Big1
    27  	_ = types.BloomLookup
    28  	_ = event.NewSubscription
    29  	_ = abi.ConvertType
    30  )
    31  
    32  // Uniswapv2MetaData contains all meta data concerning the Uniswapv2 contract.
    33  var Uniswapv2MetaData = &bind.MetaData{
    34  	ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0In\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1In\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Swap\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"indexed\":false,\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"}],\"name\":\"Sync\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MINIMUM_LIQUIDITY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReserves\",\"outputs\":[{\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"blockTimestampLast\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price0CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price1CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"skim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sync\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
    35  }
    36  
    37  // Uniswapv2ABI is the input ABI used to generate the binding from.
    38  // Deprecated: Use Uniswapv2MetaData.ABI instead.
    39  var Uniswapv2ABI = Uniswapv2MetaData.ABI
    40  
    41  // Uniswapv2 is an auto generated Go binding around an Ethereum contract.
    42  type Uniswapv2 struct {
    43  	Uniswapv2Caller     // Read-only binding to the contract
    44  	Uniswapv2Transactor // Write-only binding to the contract
    45  	Uniswapv2Filterer   // Log filterer for contract events
    46  }
    47  
    48  // Uniswapv2Caller is an auto generated read-only Go binding around an Ethereum contract.
    49  type Uniswapv2Caller struct {
    50  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    51  }
    52  
    53  // Uniswapv2Transactor is an auto generated write-only Go binding around an Ethereum contract.
    54  type Uniswapv2Transactor struct {
    55  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    56  }
    57  
    58  // Uniswapv2Filterer is an auto generated log filtering Go binding around an Ethereum contract events.
    59  type Uniswapv2Filterer struct {
    60  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    61  }
    62  
    63  // Uniswapv2Session is an auto generated Go binding around an Ethereum contract,
    64  // with pre-set call and transact options.
    65  type Uniswapv2Session struct {
    66  	Contract     *Uniswapv2        // Generic contract binding to set the session for
    67  	CallOpts     bind.CallOpts     // Call options to use throughout this session
    68  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
    69  }
    70  
    71  // Uniswapv2CallerSession is an auto generated read-only Go binding around an Ethereum contract,
    72  // with pre-set call options.
    73  type Uniswapv2CallerSession struct {
    74  	Contract *Uniswapv2Caller // Generic contract caller binding to set the session for
    75  	CallOpts bind.CallOpts    // Call options to use throughout this session
    76  }
    77  
    78  // Uniswapv2TransactorSession is an auto generated write-only Go binding around an Ethereum contract,
    79  // with pre-set transact options.
    80  type Uniswapv2TransactorSession struct {
    81  	Contract     *Uniswapv2Transactor // Generic contract transactor binding to set the session for
    82  	TransactOpts bind.TransactOpts    // Transaction auth options to use throughout this session
    83  }
    84  
    85  // Uniswapv2Raw is an auto generated low-level Go binding around an Ethereum contract.
    86  type Uniswapv2Raw struct {
    87  	Contract *Uniswapv2 // Generic contract binding to access the raw methods on
    88  }
    89  
    90  // Uniswapv2CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
    91  type Uniswapv2CallerRaw struct {
    92  	Contract *Uniswapv2Caller // Generic read-only contract binding to access the raw methods on
    93  }
    94  
    95  // Uniswapv2TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
    96  type Uniswapv2TransactorRaw struct {
    97  	Contract *Uniswapv2Transactor // Generic write-only contract binding to access the raw methods on
    98  }
    99  
   100  // NewUniswapv2 creates a new instance of Uniswapv2, bound to a specific deployed contract.
   101  func NewUniswapv2(address common.Address, backend bind.ContractBackend) (*Uniswapv2, error) {
   102  	contract, err := bindUniswapv2(address, backend, backend, backend)
   103  	if err != nil {
   104  		return nil, err
   105  	}
   106  	return &Uniswapv2{Uniswapv2Caller: Uniswapv2Caller{contract: contract}, Uniswapv2Transactor: Uniswapv2Transactor{contract: contract}, Uniswapv2Filterer: Uniswapv2Filterer{contract: contract}}, nil
   107  }
   108  
   109  // NewUniswapv2Caller creates a new read-only instance of Uniswapv2, bound to a specific deployed contract.
   110  func NewUniswapv2Caller(address common.Address, caller bind.ContractCaller) (*Uniswapv2Caller, error) {
   111  	contract, err := bindUniswapv2(address, caller, nil, nil)
   112  	if err != nil {
   113  		return nil, err
   114  	}
   115  	return &Uniswapv2Caller{contract: contract}, nil
   116  }
   117  
   118  // NewUniswapv2Transactor creates a new write-only instance of Uniswapv2, bound to a specific deployed contract.
   119  func NewUniswapv2Transactor(address common.Address, transactor bind.ContractTransactor) (*Uniswapv2Transactor, error) {
   120  	contract, err := bindUniswapv2(address, nil, transactor, nil)
   121  	if err != nil {
   122  		return nil, err
   123  	}
   124  	return &Uniswapv2Transactor{contract: contract}, nil
   125  }
   126  
   127  // NewUniswapv2Filterer creates a new log filterer instance of Uniswapv2, bound to a specific deployed contract.
   128  func NewUniswapv2Filterer(address common.Address, filterer bind.ContractFilterer) (*Uniswapv2Filterer, error) {
   129  	contract, err := bindUniswapv2(address, nil, nil, filterer)
   130  	if err != nil {
   131  		return nil, err
   132  	}
   133  	return &Uniswapv2Filterer{contract: contract}, nil
   134  }
   135  
   136  // bindUniswapv2 binds a generic wrapper to an already deployed contract.
   137  func bindUniswapv2(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   138  	parsed, err := Uniswapv2MetaData.GetAbi()
   139  	if err != nil {
   140  		return nil, err
   141  	}
   142  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
   143  }
   144  
   145  // Call invokes the (constant) contract method with params as input values and
   146  // sets the output to result. The result type might be a single field for simple
   147  // returns, a slice of interfaces for anonymous returns and a struct for named
   148  // returns.
   149  func (_Uniswapv2 *Uniswapv2Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   150  	return _Uniswapv2.Contract.Uniswapv2Caller.contract.Call(opts, result, method, params...)
   151  }
   152  
   153  // Transfer initiates a plain transaction to move funds to the contract, calling
   154  // its default method if one is available.
   155  func (_Uniswapv2 *Uniswapv2Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   156  	return _Uniswapv2.Contract.Uniswapv2Transactor.contract.Transfer(opts)
   157  }
   158  
   159  // Transact invokes the (paid) contract method with params as input values.
   160  func (_Uniswapv2 *Uniswapv2Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   161  	return _Uniswapv2.Contract.Uniswapv2Transactor.contract.Transact(opts, method, params...)
   162  }
   163  
   164  // Call invokes the (constant) contract method with params as input values and
   165  // sets the output to result. The result type might be a single field for simple
   166  // returns, a slice of interfaces for anonymous returns and a struct for named
   167  // returns.
   168  func (_Uniswapv2 *Uniswapv2CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   169  	return _Uniswapv2.Contract.contract.Call(opts, result, method, params...)
   170  }
   171  
   172  // Transfer initiates a plain transaction to move funds to the contract, calling
   173  // its default method if one is available.
   174  func (_Uniswapv2 *Uniswapv2TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   175  	return _Uniswapv2.Contract.contract.Transfer(opts)
   176  }
   177  
   178  // Transact invokes the (paid) contract method with params as input values.
   179  func (_Uniswapv2 *Uniswapv2TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   180  	return _Uniswapv2.Contract.contract.Transact(opts, method, params...)
   181  }
   182  
   183  // DOMAINSEPARATOR is a free data retrieval call binding the contract method 0x3644e515.
   184  //
   185  // Solidity: function DOMAIN_SEPARATOR() view returns(bytes32)
   186  func (_Uniswapv2 *Uniswapv2Caller) DOMAINSEPARATOR(opts *bind.CallOpts) ([32]byte, error) {
   187  	var out []interface{}
   188  	err := _Uniswapv2.contract.Call(opts, &out, "DOMAIN_SEPARATOR")
   189  
   190  	if err != nil {
   191  		return *new([32]byte), err
   192  	}
   193  
   194  	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
   195  
   196  	return out0, err
   197  
   198  }
   199  
   200  // DOMAINSEPARATOR is a free data retrieval call binding the contract method 0x3644e515.
   201  //
   202  // Solidity: function DOMAIN_SEPARATOR() view returns(bytes32)
   203  func (_Uniswapv2 *Uniswapv2Session) DOMAINSEPARATOR() ([32]byte, error) {
   204  	return _Uniswapv2.Contract.DOMAINSEPARATOR(&_Uniswapv2.CallOpts)
   205  }
   206  
   207  // DOMAINSEPARATOR is a free data retrieval call binding the contract method 0x3644e515.
   208  //
   209  // Solidity: function DOMAIN_SEPARATOR() view returns(bytes32)
   210  func (_Uniswapv2 *Uniswapv2CallerSession) DOMAINSEPARATOR() ([32]byte, error) {
   211  	return _Uniswapv2.Contract.DOMAINSEPARATOR(&_Uniswapv2.CallOpts)
   212  }
   213  
   214  // MINIMUMLIQUIDITY is a free data retrieval call binding the contract method 0xba9a7a56.
   215  //
   216  // Solidity: function MINIMUM_LIQUIDITY() pure returns(uint256)
   217  func (_Uniswapv2 *Uniswapv2Caller) MINIMUMLIQUIDITY(opts *bind.CallOpts) (*big.Int, error) {
   218  	var out []interface{}
   219  	err := _Uniswapv2.contract.Call(opts, &out, "MINIMUM_LIQUIDITY")
   220  
   221  	if err != nil {
   222  		return *new(*big.Int), err
   223  	}
   224  
   225  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   226  
   227  	return out0, err
   228  
   229  }
   230  
   231  // MINIMUMLIQUIDITY is a free data retrieval call binding the contract method 0xba9a7a56.
   232  //
   233  // Solidity: function MINIMUM_LIQUIDITY() pure returns(uint256)
   234  func (_Uniswapv2 *Uniswapv2Session) MINIMUMLIQUIDITY() (*big.Int, error) {
   235  	return _Uniswapv2.Contract.MINIMUMLIQUIDITY(&_Uniswapv2.CallOpts)
   236  }
   237  
   238  // MINIMUMLIQUIDITY is a free data retrieval call binding the contract method 0xba9a7a56.
   239  //
   240  // Solidity: function MINIMUM_LIQUIDITY() pure returns(uint256)
   241  func (_Uniswapv2 *Uniswapv2CallerSession) MINIMUMLIQUIDITY() (*big.Int, error) {
   242  	return _Uniswapv2.Contract.MINIMUMLIQUIDITY(&_Uniswapv2.CallOpts)
   243  }
   244  
   245  // PERMITTYPEHASH is a free data retrieval call binding the contract method 0x30adf81f.
   246  //
   247  // Solidity: function PERMIT_TYPEHASH() pure returns(bytes32)
   248  func (_Uniswapv2 *Uniswapv2Caller) PERMITTYPEHASH(opts *bind.CallOpts) ([32]byte, error) {
   249  	var out []interface{}
   250  	err := _Uniswapv2.contract.Call(opts, &out, "PERMIT_TYPEHASH")
   251  
   252  	if err != nil {
   253  		return *new([32]byte), err
   254  	}
   255  
   256  	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
   257  
   258  	return out0, err
   259  
   260  }
   261  
   262  // PERMITTYPEHASH is a free data retrieval call binding the contract method 0x30adf81f.
   263  //
   264  // Solidity: function PERMIT_TYPEHASH() pure returns(bytes32)
   265  func (_Uniswapv2 *Uniswapv2Session) PERMITTYPEHASH() ([32]byte, error) {
   266  	return _Uniswapv2.Contract.PERMITTYPEHASH(&_Uniswapv2.CallOpts)
   267  }
   268  
   269  // PERMITTYPEHASH is a free data retrieval call binding the contract method 0x30adf81f.
   270  //
   271  // Solidity: function PERMIT_TYPEHASH() pure returns(bytes32)
   272  func (_Uniswapv2 *Uniswapv2CallerSession) PERMITTYPEHASH() ([32]byte, error) {
   273  	return _Uniswapv2.Contract.PERMITTYPEHASH(&_Uniswapv2.CallOpts)
   274  }
   275  
   276  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
   277  //
   278  // Solidity: function allowance(address owner, address spender) view returns(uint256)
   279  func (_Uniswapv2 *Uniswapv2Caller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) {
   280  	var out []interface{}
   281  	err := _Uniswapv2.contract.Call(opts, &out, "allowance", owner, spender)
   282  
   283  	if err != nil {
   284  		return *new(*big.Int), err
   285  	}
   286  
   287  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   288  
   289  	return out0, err
   290  
   291  }
   292  
   293  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
   294  //
   295  // Solidity: function allowance(address owner, address spender) view returns(uint256)
   296  func (_Uniswapv2 *Uniswapv2Session) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
   297  	return _Uniswapv2.Contract.Allowance(&_Uniswapv2.CallOpts, owner, spender)
   298  }
   299  
   300  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
   301  //
   302  // Solidity: function allowance(address owner, address spender) view returns(uint256)
   303  func (_Uniswapv2 *Uniswapv2CallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
   304  	return _Uniswapv2.Contract.Allowance(&_Uniswapv2.CallOpts, owner, spender)
   305  }
   306  
   307  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
   308  //
   309  // Solidity: function balanceOf(address owner) view returns(uint256)
   310  func (_Uniswapv2 *Uniswapv2Caller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) {
   311  	var out []interface{}
   312  	err := _Uniswapv2.contract.Call(opts, &out, "balanceOf", owner)
   313  
   314  	if err != nil {
   315  		return *new(*big.Int), err
   316  	}
   317  
   318  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   319  
   320  	return out0, err
   321  
   322  }
   323  
   324  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
   325  //
   326  // Solidity: function balanceOf(address owner) view returns(uint256)
   327  func (_Uniswapv2 *Uniswapv2Session) BalanceOf(owner common.Address) (*big.Int, error) {
   328  	return _Uniswapv2.Contract.BalanceOf(&_Uniswapv2.CallOpts, owner)
   329  }
   330  
   331  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
   332  //
   333  // Solidity: function balanceOf(address owner) view returns(uint256)
   334  func (_Uniswapv2 *Uniswapv2CallerSession) BalanceOf(owner common.Address) (*big.Int, error) {
   335  	return _Uniswapv2.Contract.BalanceOf(&_Uniswapv2.CallOpts, owner)
   336  }
   337  
   338  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
   339  //
   340  // Solidity: function decimals() pure returns(uint8)
   341  func (_Uniswapv2 *Uniswapv2Caller) Decimals(opts *bind.CallOpts) (uint8, error) {
   342  	var out []interface{}
   343  	err := _Uniswapv2.contract.Call(opts, &out, "decimals")
   344  
   345  	if err != nil {
   346  		return *new(uint8), err
   347  	}
   348  
   349  	out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8)
   350  
   351  	return out0, err
   352  
   353  }
   354  
   355  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
   356  //
   357  // Solidity: function decimals() pure returns(uint8)
   358  func (_Uniswapv2 *Uniswapv2Session) Decimals() (uint8, error) {
   359  	return _Uniswapv2.Contract.Decimals(&_Uniswapv2.CallOpts)
   360  }
   361  
   362  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
   363  //
   364  // Solidity: function decimals() pure returns(uint8)
   365  func (_Uniswapv2 *Uniswapv2CallerSession) Decimals() (uint8, error) {
   366  	return _Uniswapv2.Contract.Decimals(&_Uniswapv2.CallOpts)
   367  }
   368  
   369  // Factory is a free data retrieval call binding the contract method 0xc45a0155.
   370  //
   371  // Solidity: function factory() view returns(address)
   372  func (_Uniswapv2 *Uniswapv2Caller) Factory(opts *bind.CallOpts) (common.Address, error) {
   373  	var out []interface{}
   374  	err := _Uniswapv2.contract.Call(opts, &out, "factory")
   375  
   376  	if err != nil {
   377  		return *new(common.Address), err
   378  	}
   379  
   380  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   381  
   382  	return out0, err
   383  
   384  }
   385  
   386  // Factory is a free data retrieval call binding the contract method 0xc45a0155.
   387  //
   388  // Solidity: function factory() view returns(address)
   389  func (_Uniswapv2 *Uniswapv2Session) Factory() (common.Address, error) {
   390  	return _Uniswapv2.Contract.Factory(&_Uniswapv2.CallOpts)
   391  }
   392  
   393  // Factory is a free data retrieval call binding the contract method 0xc45a0155.
   394  //
   395  // Solidity: function factory() view returns(address)
   396  func (_Uniswapv2 *Uniswapv2CallerSession) Factory() (common.Address, error) {
   397  	return _Uniswapv2.Contract.Factory(&_Uniswapv2.CallOpts)
   398  }
   399  
   400  // GetReserves is a free data retrieval call binding the contract method 0x0902f1ac.
   401  //
   402  // Solidity: function getReserves() view returns(uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast)
   403  func (_Uniswapv2 *Uniswapv2Caller) GetReserves(opts *bind.CallOpts) (struct {
   404  	Reserve0           *big.Int
   405  	Reserve1           *big.Int
   406  	BlockTimestampLast uint32
   407  }, error) {
   408  	var out []interface{}
   409  	err := _Uniswapv2.contract.Call(opts, &out, "getReserves")
   410  
   411  	outstruct := new(struct {
   412  		Reserve0           *big.Int
   413  		Reserve1           *big.Int
   414  		BlockTimestampLast uint32
   415  	})
   416  	if err != nil {
   417  		return *outstruct, err
   418  	}
   419  
   420  	outstruct.Reserve0 = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   421  	outstruct.Reserve1 = *abi.ConvertType(out[1], new(*big.Int)).(**big.Int)
   422  	outstruct.BlockTimestampLast = *abi.ConvertType(out[2], new(uint32)).(*uint32)
   423  
   424  	return *outstruct, err
   425  
   426  }
   427  
   428  // GetReserves is a free data retrieval call binding the contract method 0x0902f1ac.
   429  //
   430  // Solidity: function getReserves() view returns(uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast)
   431  func (_Uniswapv2 *Uniswapv2Session) GetReserves() (struct {
   432  	Reserve0           *big.Int
   433  	Reserve1           *big.Int
   434  	BlockTimestampLast uint32
   435  }, error) {
   436  	return _Uniswapv2.Contract.GetReserves(&_Uniswapv2.CallOpts)
   437  }
   438  
   439  // GetReserves is a free data retrieval call binding the contract method 0x0902f1ac.
   440  //
   441  // Solidity: function getReserves() view returns(uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast)
   442  func (_Uniswapv2 *Uniswapv2CallerSession) GetReserves() (struct {
   443  	Reserve0           *big.Int
   444  	Reserve1           *big.Int
   445  	BlockTimestampLast uint32
   446  }, error) {
   447  	return _Uniswapv2.Contract.GetReserves(&_Uniswapv2.CallOpts)
   448  }
   449  
   450  // KLast is a free data retrieval call binding the contract method 0x7464fc3d.
   451  //
   452  // Solidity: function kLast() view returns(uint256)
   453  func (_Uniswapv2 *Uniswapv2Caller) KLast(opts *bind.CallOpts) (*big.Int, error) {
   454  	var out []interface{}
   455  	err := _Uniswapv2.contract.Call(opts, &out, "kLast")
   456  
   457  	if err != nil {
   458  		return *new(*big.Int), err
   459  	}
   460  
   461  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   462  
   463  	return out0, err
   464  
   465  }
   466  
   467  // KLast is a free data retrieval call binding the contract method 0x7464fc3d.
   468  //
   469  // Solidity: function kLast() view returns(uint256)
   470  func (_Uniswapv2 *Uniswapv2Session) KLast() (*big.Int, error) {
   471  	return _Uniswapv2.Contract.KLast(&_Uniswapv2.CallOpts)
   472  }
   473  
   474  // KLast is a free data retrieval call binding the contract method 0x7464fc3d.
   475  //
   476  // Solidity: function kLast() view returns(uint256)
   477  func (_Uniswapv2 *Uniswapv2CallerSession) KLast() (*big.Int, error) {
   478  	return _Uniswapv2.Contract.KLast(&_Uniswapv2.CallOpts)
   479  }
   480  
   481  // Name is a free data retrieval call binding the contract method 0x06fdde03.
   482  //
   483  // Solidity: function name() pure returns(string)
   484  func (_Uniswapv2 *Uniswapv2Caller) Name(opts *bind.CallOpts) (string, error) {
   485  	var out []interface{}
   486  	err := _Uniswapv2.contract.Call(opts, &out, "name")
   487  
   488  	if err != nil {
   489  		return *new(string), err
   490  	}
   491  
   492  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   493  
   494  	return out0, err
   495  
   496  }
   497  
   498  // Name is a free data retrieval call binding the contract method 0x06fdde03.
   499  //
   500  // Solidity: function name() pure returns(string)
   501  func (_Uniswapv2 *Uniswapv2Session) Name() (string, error) {
   502  	return _Uniswapv2.Contract.Name(&_Uniswapv2.CallOpts)
   503  }
   504  
   505  // Name is a free data retrieval call binding the contract method 0x06fdde03.
   506  //
   507  // Solidity: function name() pure returns(string)
   508  func (_Uniswapv2 *Uniswapv2CallerSession) Name() (string, error) {
   509  	return _Uniswapv2.Contract.Name(&_Uniswapv2.CallOpts)
   510  }
   511  
   512  // Nonces is a free data retrieval call binding the contract method 0x7ecebe00.
   513  //
   514  // Solidity: function nonces(address owner) view returns(uint256)
   515  func (_Uniswapv2 *Uniswapv2Caller) Nonces(opts *bind.CallOpts, owner common.Address) (*big.Int, error) {
   516  	var out []interface{}
   517  	err := _Uniswapv2.contract.Call(opts, &out, "nonces", owner)
   518  
   519  	if err != nil {
   520  		return *new(*big.Int), err
   521  	}
   522  
   523  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   524  
   525  	return out0, err
   526  
   527  }
   528  
   529  // Nonces is a free data retrieval call binding the contract method 0x7ecebe00.
   530  //
   531  // Solidity: function nonces(address owner) view returns(uint256)
   532  func (_Uniswapv2 *Uniswapv2Session) Nonces(owner common.Address) (*big.Int, error) {
   533  	return _Uniswapv2.Contract.Nonces(&_Uniswapv2.CallOpts, owner)
   534  }
   535  
   536  // Nonces is a free data retrieval call binding the contract method 0x7ecebe00.
   537  //
   538  // Solidity: function nonces(address owner) view returns(uint256)
   539  func (_Uniswapv2 *Uniswapv2CallerSession) Nonces(owner common.Address) (*big.Int, error) {
   540  	return _Uniswapv2.Contract.Nonces(&_Uniswapv2.CallOpts, owner)
   541  }
   542  
   543  // Price0CumulativeLast is a free data retrieval call binding the contract method 0x5909c0d5.
   544  //
   545  // Solidity: function price0CumulativeLast() view returns(uint256)
   546  func (_Uniswapv2 *Uniswapv2Caller) Price0CumulativeLast(opts *bind.CallOpts) (*big.Int, error) {
   547  	var out []interface{}
   548  	err := _Uniswapv2.contract.Call(opts, &out, "price0CumulativeLast")
   549  
   550  	if err != nil {
   551  		return *new(*big.Int), err
   552  	}
   553  
   554  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   555  
   556  	return out0, err
   557  
   558  }
   559  
   560  // Price0CumulativeLast is a free data retrieval call binding the contract method 0x5909c0d5.
   561  //
   562  // Solidity: function price0CumulativeLast() view returns(uint256)
   563  func (_Uniswapv2 *Uniswapv2Session) Price0CumulativeLast() (*big.Int, error) {
   564  	return _Uniswapv2.Contract.Price0CumulativeLast(&_Uniswapv2.CallOpts)
   565  }
   566  
   567  // Price0CumulativeLast is a free data retrieval call binding the contract method 0x5909c0d5.
   568  //
   569  // Solidity: function price0CumulativeLast() view returns(uint256)
   570  func (_Uniswapv2 *Uniswapv2CallerSession) Price0CumulativeLast() (*big.Int, error) {
   571  	return _Uniswapv2.Contract.Price0CumulativeLast(&_Uniswapv2.CallOpts)
   572  }
   573  
   574  // Price1CumulativeLast is a free data retrieval call binding the contract method 0x5a3d5493.
   575  //
   576  // Solidity: function price1CumulativeLast() view returns(uint256)
   577  func (_Uniswapv2 *Uniswapv2Caller) Price1CumulativeLast(opts *bind.CallOpts) (*big.Int, error) {
   578  	var out []interface{}
   579  	err := _Uniswapv2.contract.Call(opts, &out, "price1CumulativeLast")
   580  
   581  	if err != nil {
   582  		return *new(*big.Int), err
   583  	}
   584  
   585  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   586  
   587  	return out0, err
   588  
   589  }
   590  
   591  // Price1CumulativeLast is a free data retrieval call binding the contract method 0x5a3d5493.
   592  //
   593  // Solidity: function price1CumulativeLast() view returns(uint256)
   594  func (_Uniswapv2 *Uniswapv2Session) Price1CumulativeLast() (*big.Int, error) {
   595  	return _Uniswapv2.Contract.Price1CumulativeLast(&_Uniswapv2.CallOpts)
   596  }
   597  
   598  // Price1CumulativeLast is a free data retrieval call binding the contract method 0x5a3d5493.
   599  //
   600  // Solidity: function price1CumulativeLast() view returns(uint256)
   601  func (_Uniswapv2 *Uniswapv2CallerSession) Price1CumulativeLast() (*big.Int, error) {
   602  	return _Uniswapv2.Contract.Price1CumulativeLast(&_Uniswapv2.CallOpts)
   603  }
   604  
   605  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
   606  //
   607  // Solidity: function symbol() pure returns(string)
   608  func (_Uniswapv2 *Uniswapv2Caller) Symbol(opts *bind.CallOpts) (string, error) {
   609  	var out []interface{}
   610  	err := _Uniswapv2.contract.Call(opts, &out, "symbol")
   611  
   612  	if err != nil {
   613  		return *new(string), err
   614  	}
   615  
   616  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   617  
   618  	return out0, err
   619  
   620  }
   621  
   622  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
   623  //
   624  // Solidity: function symbol() pure returns(string)
   625  func (_Uniswapv2 *Uniswapv2Session) Symbol() (string, error) {
   626  	return _Uniswapv2.Contract.Symbol(&_Uniswapv2.CallOpts)
   627  }
   628  
   629  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
   630  //
   631  // Solidity: function symbol() pure returns(string)
   632  func (_Uniswapv2 *Uniswapv2CallerSession) Symbol() (string, error) {
   633  	return _Uniswapv2.Contract.Symbol(&_Uniswapv2.CallOpts)
   634  }
   635  
   636  // Token0 is a free data retrieval call binding the contract method 0x0dfe1681.
   637  //
   638  // Solidity: function token0() view returns(address)
   639  func (_Uniswapv2 *Uniswapv2Caller) Token0(opts *bind.CallOpts) (common.Address, error) {
   640  	var out []interface{}
   641  	err := _Uniswapv2.contract.Call(opts, &out, "token0")
   642  
   643  	if err != nil {
   644  		return *new(common.Address), err
   645  	}
   646  
   647  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   648  
   649  	return out0, err
   650  
   651  }
   652  
   653  // Token0 is a free data retrieval call binding the contract method 0x0dfe1681.
   654  //
   655  // Solidity: function token0() view returns(address)
   656  func (_Uniswapv2 *Uniswapv2Session) Token0() (common.Address, error) {
   657  	return _Uniswapv2.Contract.Token0(&_Uniswapv2.CallOpts)
   658  }
   659  
   660  // Token0 is a free data retrieval call binding the contract method 0x0dfe1681.
   661  //
   662  // Solidity: function token0() view returns(address)
   663  func (_Uniswapv2 *Uniswapv2CallerSession) Token0() (common.Address, error) {
   664  	return _Uniswapv2.Contract.Token0(&_Uniswapv2.CallOpts)
   665  }
   666  
   667  // Token1 is a free data retrieval call binding the contract method 0xd21220a7.
   668  //
   669  // Solidity: function token1() view returns(address)
   670  func (_Uniswapv2 *Uniswapv2Caller) Token1(opts *bind.CallOpts) (common.Address, error) {
   671  	var out []interface{}
   672  	err := _Uniswapv2.contract.Call(opts, &out, "token1")
   673  
   674  	if err != nil {
   675  		return *new(common.Address), err
   676  	}
   677  
   678  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   679  
   680  	return out0, err
   681  
   682  }
   683  
   684  // Token1 is a free data retrieval call binding the contract method 0xd21220a7.
   685  //
   686  // Solidity: function token1() view returns(address)
   687  func (_Uniswapv2 *Uniswapv2Session) Token1() (common.Address, error) {
   688  	return _Uniswapv2.Contract.Token1(&_Uniswapv2.CallOpts)
   689  }
   690  
   691  // Token1 is a free data retrieval call binding the contract method 0xd21220a7.
   692  //
   693  // Solidity: function token1() view returns(address)
   694  func (_Uniswapv2 *Uniswapv2CallerSession) Token1() (common.Address, error) {
   695  	return _Uniswapv2.Contract.Token1(&_Uniswapv2.CallOpts)
   696  }
   697  
   698  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
   699  //
   700  // Solidity: function totalSupply() view returns(uint256)
   701  func (_Uniswapv2 *Uniswapv2Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
   702  	var out []interface{}
   703  	err := _Uniswapv2.contract.Call(opts, &out, "totalSupply")
   704  
   705  	if err != nil {
   706  		return *new(*big.Int), err
   707  	}
   708  
   709  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   710  
   711  	return out0, err
   712  
   713  }
   714  
   715  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
   716  //
   717  // Solidity: function totalSupply() view returns(uint256)
   718  func (_Uniswapv2 *Uniswapv2Session) TotalSupply() (*big.Int, error) {
   719  	return _Uniswapv2.Contract.TotalSupply(&_Uniswapv2.CallOpts)
   720  }
   721  
   722  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
   723  //
   724  // Solidity: function totalSupply() view returns(uint256)
   725  func (_Uniswapv2 *Uniswapv2CallerSession) TotalSupply() (*big.Int, error) {
   726  	return _Uniswapv2.Contract.TotalSupply(&_Uniswapv2.CallOpts)
   727  }
   728  
   729  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
   730  //
   731  // Solidity: function approve(address spender, uint256 value) returns(bool)
   732  func (_Uniswapv2 *Uniswapv2Transactor) Approve(opts *bind.TransactOpts, spender common.Address, value *big.Int) (*types.Transaction, error) {
   733  	return _Uniswapv2.contract.Transact(opts, "approve", spender, value)
   734  }
   735  
   736  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
   737  //
   738  // Solidity: function approve(address spender, uint256 value) returns(bool)
   739  func (_Uniswapv2 *Uniswapv2Session) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) {
   740  	return _Uniswapv2.Contract.Approve(&_Uniswapv2.TransactOpts, spender, value)
   741  }
   742  
   743  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
   744  //
   745  // Solidity: function approve(address spender, uint256 value) returns(bool)
   746  func (_Uniswapv2 *Uniswapv2TransactorSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) {
   747  	return _Uniswapv2.Contract.Approve(&_Uniswapv2.TransactOpts, spender, value)
   748  }
   749  
   750  // Burn is a paid mutator transaction binding the contract method 0x89afcb44.
   751  //
   752  // Solidity: function burn(address to) returns(uint256 amount0, uint256 amount1)
   753  func (_Uniswapv2 *Uniswapv2Transactor) Burn(opts *bind.TransactOpts, to common.Address) (*types.Transaction, error) {
   754  	return _Uniswapv2.contract.Transact(opts, "burn", to)
   755  }
   756  
   757  // Burn is a paid mutator transaction binding the contract method 0x89afcb44.
   758  //
   759  // Solidity: function burn(address to) returns(uint256 amount0, uint256 amount1)
   760  func (_Uniswapv2 *Uniswapv2Session) Burn(to common.Address) (*types.Transaction, error) {
   761  	return _Uniswapv2.Contract.Burn(&_Uniswapv2.TransactOpts, to)
   762  }
   763  
   764  // Burn is a paid mutator transaction binding the contract method 0x89afcb44.
   765  //
   766  // Solidity: function burn(address to) returns(uint256 amount0, uint256 amount1)
   767  func (_Uniswapv2 *Uniswapv2TransactorSession) Burn(to common.Address) (*types.Transaction, error) {
   768  	return _Uniswapv2.Contract.Burn(&_Uniswapv2.TransactOpts, to)
   769  }
   770  
   771  // Initialize is a paid mutator transaction binding the contract method 0x485cc955.
   772  //
   773  // Solidity: function initialize(address , address ) returns()
   774  func (_Uniswapv2 *Uniswapv2Transactor) Initialize(opts *bind.TransactOpts, arg0 common.Address, arg1 common.Address) (*types.Transaction, error) {
   775  	return _Uniswapv2.contract.Transact(opts, "initialize", arg0, arg1)
   776  }
   777  
   778  // Initialize is a paid mutator transaction binding the contract method 0x485cc955.
   779  //
   780  // Solidity: function initialize(address , address ) returns()
   781  func (_Uniswapv2 *Uniswapv2Session) Initialize(arg0 common.Address, arg1 common.Address) (*types.Transaction, error) {
   782  	return _Uniswapv2.Contract.Initialize(&_Uniswapv2.TransactOpts, arg0, arg1)
   783  }
   784  
   785  // Initialize is a paid mutator transaction binding the contract method 0x485cc955.
   786  //
   787  // Solidity: function initialize(address , address ) returns()
   788  func (_Uniswapv2 *Uniswapv2TransactorSession) Initialize(arg0 common.Address, arg1 common.Address) (*types.Transaction, error) {
   789  	return _Uniswapv2.Contract.Initialize(&_Uniswapv2.TransactOpts, arg0, arg1)
   790  }
   791  
   792  // Mint is a paid mutator transaction binding the contract method 0x6a627842.
   793  //
   794  // Solidity: function mint(address to) returns(uint256 liquidity)
   795  func (_Uniswapv2 *Uniswapv2Transactor) Mint(opts *bind.TransactOpts, to common.Address) (*types.Transaction, error) {
   796  	return _Uniswapv2.contract.Transact(opts, "mint", to)
   797  }
   798  
   799  // Mint is a paid mutator transaction binding the contract method 0x6a627842.
   800  //
   801  // Solidity: function mint(address to) returns(uint256 liquidity)
   802  func (_Uniswapv2 *Uniswapv2Session) Mint(to common.Address) (*types.Transaction, error) {
   803  	return _Uniswapv2.Contract.Mint(&_Uniswapv2.TransactOpts, to)
   804  }
   805  
   806  // Mint is a paid mutator transaction binding the contract method 0x6a627842.
   807  //
   808  // Solidity: function mint(address to) returns(uint256 liquidity)
   809  func (_Uniswapv2 *Uniswapv2TransactorSession) Mint(to common.Address) (*types.Transaction, error) {
   810  	return _Uniswapv2.Contract.Mint(&_Uniswapv2.TransactOpts, to)
   811  }
   812  
   813  // Permit is a paid mutator transaction binding the contract method 0xd505accf.
   814  //
   815  // Solidity: function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) returns()
   816  func (_Uniswapv2 *Uniswapv2Transactor) Permit(opts *bind.TransactOpts, owner common.Address, spender common.Address, value *big.Int, deadline *big.Int, v uint8, r [32]byte, s [32]byte) (*types.Transaction, error) {
   817  	return _Uniswapv2.contract.Transact(opts, "permit", owner, spender, value, deadline, v, r, s)
   818  }
   819  
   820  // Permit is a paid mutator transaction binding the contract method 0xd505accf.
   821  //
   822  // Solidity: function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) returns()
   823  func (_Uniswapv2 *Uniswapv2Session) Permit(owner common.Address, spender common.Address, value *big.Int, deadline *big.Int, v uint8, r [32]byte, s [32]byte) (*types.Transaction, error) {
   824  	return _Uniswapv2.Contract.Permit(&_Uniswapv2.TransactOpts, owner, spender, value, deadline, v, r, s)
   825  }
   826  
   827  // Permit is a paid mutator transaction binding the contract method 0xd505accf.
   828  //
   829  // Solidity: function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) returns()
   830  func (_Uniswapv2 *Uniswapv2TransactorSession) Permit(owner common.Address, spender common.Address, value *big.Int, deadline *big.Int, v uint8, r [32]byte, s [32]byte) (*types.Transaction, error) {
   831  	return _Uniswapv2.Contract.Permit(&_Uniswapv2.TransactOpts, owner, spender, value, deadline, v, r, s)
   832  }
   833  
   834  // Skim is a paid mutator transaction binding the contract method 0xbc25cf77.
   835  //
   836  // Solidity: function skim(address to) returns()
   837  func (_Uniswapv2 *Uniswapv2Transactor) Skim(opts *bind.TransactOpts, to common.Address) (*types.Transaction, error) {
   838  	return _Uniswapv2.contract.Transact(opts, "skim", to)
   839  }
   840  
   841  // Skim is a paid mutator transaction binding the contract method 0xbc25cf77.
   842  //
   843  // Solidity: function skim(address to) returns()
   844  func (_Uniswapv2 *Uniswapv2Session) Skim(to common.Address) (*types.Transaction, error) {
   845  	return _Uniswapv2.Contract.Skim(&_Uniswapv2.TransactOpts, to)
   846  }
   847  
   848  // Skim is a paid mutator transaction binding the contract method 0xbc25cf77.
   849  //
   850  // Solidity: function skim(address to) returns()
   851  func (_Uniswapv2 *Uniswapv2TransactorSession) Skim(to common.Address) (*types.Transaction, error) {
   852  	return _Uniswapv2.Contract.Skim(&_Uniswapv2.TransactOpts, to)
   853  }
   854  
   855  // Swap is a paid mutator transaction binding the contract method 0x022c0d9f.
   856  //
   857  // Solidity: function swap(uint256 amount0Out, uint256 amount1Out, address to, bytes data) returns()
   858  func (_Uniswapv2 *Uniswapv2Transactor) Swap(opts *bind.TransactOpts, amount0Out *big.Int, amount1Out *big.Int, to common.Address, data []byte) (*types.Transaction, error) {
   859  	return _Uniswapv2.contract.Transact(opts, "swap", amount0Out, amount1Out, to, data)
   860  }
   861  
   862  // Swap is a paid mutator transaction binding the contract method 0x022c0d9f.
   863  //
   864  // Solidity: function swap(uint256 amount0Out, uint256 amount1Out, address to, bytes data) returns()
   865  func (_Uniswapv2 *Uniswapv2Session) Swap(amount0Out *big.Int, amount1Out *big.Int, to common.Address, data []byte) (*types.Transaction, error) {
   866  	return _Uniswapv2.Contract.Swap(&_Uniswapv2.TransactOpts, amount0Out, amount1Out, to, data)
   867  }
   868  
   869  // Swap is a paid mutator transaction binding the contract method 0x022c0d9f.
   870  //
   871  // Solidity: function swap(uint256 amount0Out, uint256 amount1Out, address to, bytes data) returns()
   872  func (_Uniswapv2 *Uniswapv2TransactorSession) Swap(amount0Out *big.Int, amount1Out *big.Int, to common.Address, data []byte) (*types.Transaction, error) {
   873  	return _Uniswapv2.Contract.Swap(&_Uniswapv2.TransactOpts, amount0Out, amount1Out, to, data)
   874  }
   875  
   876  // Sync is a paid mutator transaction binding the contract method 0xfff6cae9.
   877  //
   878  // Solidity: function sync() returns()
   879  func (_Uniswapv2 *Uniswapv2Transactor) Sync(opts *bind.TransactOpts) (*types.Transaction, error) {
   880  	return _Uniswapv2.contract.Transact(opts, "sync")
   881  }
   882  
   883  // Sync is a paid mutator transaction binding the contract method 0xfff6cae9.
   884  //
   885  // Solidity: function sync() returns()
   886  func (_Uniswapv2 *Uniswapv2Session) Sync() (*types.Transaction, error) {
   887  	return _Uniswapv2.Contract.Sync(&_Uniswapv2.TransactOpts)
   888  }
   889  
   890  // Sync is a paid mutator transaction binding the contract method 0xfff6cae9.
   891  //
   892  // Solidity: function sync() returns()
   893  func (_Uniswapv2 *Uniswapv2TransactorSession) Sync() (*types.Transaction, error) {
   894  	return _Uniswapv2.Contract.Sync(&_Uniswapv2.TransactOpts)
   895  }
   896  
   897  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
   898  //
   899  // Solidity: function transfer(address to, uint256 value) returns(bool)
   900  func (_Uniswapv2 *Uniswapv2Transactor) Transfer(opts *bind.TransactOpts, to common.Address, value *big.Int) (*types.Transaction, error) {
   901  	return _Uniswapv2.contract.Transact(opts, "transfer", to, value)
   902  }
   903  
   904  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
   905  //
   906  // Solidity: function transfer(address to, uint256 value) returns(bool)
   907  func (_Uniswapv2 *Uniswapv2Session) Transfer(to common.Address, value *big.Int) (*types.Transaction, error) {
   908  	return _Uniswapv2.Contract.Transfer(&_Uniswapv2.TransactOpts, to, value)
   909  }
   910  
   911  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
   912  //
   913  // Solidity: function transfer(address to, uint256 value) returns(bool)
   914  func (_Uniswapv2 *Uniswapv2TransactorSession) Transfer(to common.Address, value *big.Int) (*types.Transaction, error) {
   915  	return _Uniswapv2.Contract.Transfer(&_Uniswapv2.TransactOpts, to, value)
   916  }
   917  
   918  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
   919  //
   920  // Solidity: function transferFrom(address from, address to, uint256 value) returns(bool)
   921  func (_Uniswapv2 *Uniswapv2Transactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) {
   922  	return _Uniswapv2.contract.Transact(opts, "transferFrom", from, to, value)
   923  }
   924  
   925  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
   926  //
   927  // Solidity: function transferFrom(address from, address to, uint256 value) returns(bool)
   928  func (_Uniswapv2 *Uniswapv2Session) TransferFrom(from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) {
   929  	return _Uniswapv2.Contract.TransferFrom(&_Uniswapv2.TransactOpts, from, to, value)
   930  }
   931  
   932  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
   933  //
   934  // Solidity: function transferFrom(address from, address to, uint256 value) returns(bool)
   935  func (_Uniswapv2 *Uniswapv2TransactorSession) TransferFrom(from common.Address, to common.Address, value *big.Int) (*types.Transaction, error) {
   936  	return _Uniswapv2.Contract.TransferFrom(&_Uniswapv2.TransactOpts, from, to, value)
   937  }
   938  
   939  // Uniswapv2ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the Uniswapv2 contract.
   940  type Uniswapv2ApprovalIterator struct {
   941  	Event *Uniswapv2Approval // Event containing the contract specifics and raw log
   942  
   943  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   944  	event    string              // Event name to use for unpacking event data
   945  
   946  	logs chan types.Log        // Log channel receiving the found contract events
   947  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   948  	done bool                  // Whether the subscription completed delivering logs
   949  	fail error                 // Occurred error to stop iteration
   950  }
   951  
   952  // Next advances the iterator to the subsequent event, returning whether there
   953  // are any more events found. In case of a retrieval or parsing error, false is
   954  // returned and Error() can be queried for the exact failure.
   955  func (it *Uniswapv2ApprovalIterator) Next() bool {
   956  	// If the iterator failed, stop iterating
   957  	if it.fail != nil {
   958  		return false
   959  	}
   960  	// If the iterator completed, deliver directly whatever's available
   961  	if it.done {
   962  		select {
   963  		case log := <-it.logs:
   964  			it.Event = new(Uniswapv2Approval)
   965  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   966  				it.fail = err
   967  				return false
   968  			}
   969  			it.Event.Raw = log
   970  			return true
   971  
   972  		default:
   973  			return false
   974  		}
   975  	}
   976  	// Iterator still in progress, wait for either a data or an error event
   977  	select {
   978  	case log := <-it.logs:
   979  		it.Event = new(Uniswapv2Approval)
   980  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   981  			it.fail = err
   982  			return false
   983  		}
   984  		it.Event.Raw = log
   985  		return true
   986  
   987  	case err := <-it.sub.Err():
   988  		it.done = true
   989  		it.fail = err
   990  		return it.Next()
   991  	}
   992  }
   993  
   994  // Error returns any retrieval or parsing error occurred during filtering.
   995  func (it *Uniswapv2ApprovalIterator) Error() error {
   996  	return it.fail
   997  }
   998  
   999  // Close terminates the iteration process, releasing any pending underlying
  1000  // resources.
  1001  func (it *Uniswapv2ApprovalIterator) Close() error {
  1002  	it.sub.Unsubscribe()
  1003  	return nil
  1004  }
  1005  
  1006  // Uniswapv2Approval represents a Approval event raised by the Uniswapv2 contract.
  1007  type Uniswapv2Approval struct {
  1008  	Owner   common.Address
  1009  	Spender common.Address
  1010  	Value   *big.Int
  1011  	Raw     types.Log // Blockchain specific contextual infos
  1012  }
  1013  
  1014  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  1015  //
  1016  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
  1017  func (_Uniswapv2 *Uniswapv2Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*Uniswapv2ApprovalIterator, error) {
  1018  
  1019  	var ownerRule []interface{}
  1020  	for _, ownerItem := range owner {
  1021  		ownerRule = append(ownerRule, ownerItem)
  1022  	}
  1023  	var spenderRule []interface{}
  1024  	for _, spenderItem := range spender {
  1025  		spenderRule = append(spenderRule, spenderItem)
  1026  	}
  1027  
  1028  	logs, sub, err := _Uniswapv2.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule)
  1029  	if err != nil {
  1030  		return nil, err
  1031  	}
  1032  	return &Uniswapv2ApprovalIterator{contract: _Uniswapv2.contract, event: "Approval", logs: logs, sub: sub}, nil
  1033  }
  1034  
  1035  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  1036  //
  1037  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
  1038  func (_Uniswapv2 *Uniswapv2Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *Uniswapv2Approval, owner []common.Address, spender []common.Address) (event.Subscription, error) {
  1039  
  1040  	var ownerRule []interface{}
  1041  	for _, ownerItem := range owner {
  1042  		ownerRule = append(ownerRule, ownerItem)
  1043  	}
  1044  	var spenderRule []interface{}
  1045  	for _, spenderItem := range spender {
  1046  		spenderRule = append(spenderRule, spenderItem)
  1047  	}
  1048  
  1049  	logs, sub, err := _Uniswapv2.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule)
  1050  	if err != nil {
  1051  		return nil, err
  1052  	}
  1053  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1054  		defer sub.Unsubscribe()
  1055  		for {
  1056  			select {
  1057  			case log := <-logs:
  1058  				// New log arrived, parse the event and forward to the user
  1059  				event := new(Uniswapv2Approval)
  1060  				if err := _Uniswapv2.contract.UnpackLog(event, "Approval", log); err != nil {
  1061  					return err
  1062  				}
  1063  				event.Raw = log
  1064  
  1065  				select {
  1066  				case sink <- event:
  1067  				case err := <-sub.Err():
  1068  					return err
  1069  				case <-quit:
  1070  					return nil
  1071  				}
  1072  			case err := <-sub.Err():
  1073  				return err
  1074  			case <-quit:
  1075  				return nil
  1076  			}
  1077  		}
  1078  	}), nil
  1079  }
  1080  
  1081  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  1082  //
  1083  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
  1084  func (_Uniswapv2 *Uniswapv2Filterer) ParseApproval(log types.Log) (*Uniswapv2Approval, error) {
  1085  	event := new(Uniswapv2Approval)
  1086  	if err := _Uniswapv2.contract.UnpackLog(event, "Approval", log); err != nil {
  1087  		return nil, err
  1088  	}
  1089  	event.Raw = log
  1090  	return event, nil
  1091  }
  1092  
  1093  // Uniswapv2BurnIterator is returned from FilterBurn and is used to iterate over the raw logs and unpacked data for Burn events raised by the Uniswapv2 contract.
  1094  type Uniswapv2BurnIterator struct {
  1095  	Event *Uniswapv2Burn // Event containing the contract specifics and raw log
  1096  
  1097  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1098  	event    string              // Event name to use for unpacking event data
  1099  
  1100  	logs chan types.Log        // Log channel receiving the found contract events
  1101  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1102  	done bool                  // Whether the subscription completed delivering logs
  1103  	fail error                 // Occurred error to stop iteration
  1104  }
  1105  
  1106  // Next advances the iterator to the subsequent event, returning whether there
  1107  // are any more events found. In case of a retrieval or parsing error, false is
  1108  // returned and Error() can be queried for the exact failure.
  1109  func (it *Uniswapv2BurnIterator) Next() bool {
  1110  	// If the iterator failed, stop iterating
  1111  	if it.fail != nil {
  1112  		return false
  1113  	}
  1114  	// If the iterator completed, deliver directly whatever's available
  1115  	if it.done {
  1116  		select {
  1117  		case log := <-it.logs:
  1118  			it.Event = new(Uniswapv2Burn)
  1119  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1120  				it.fail = err
  1121  				return false
  1122  			}
  1123  			it.Event.Raw = log
  1124  			return true
  1125  
  1126  		default:
  1127  			return false
  1128  		}
  1129  	}
  1130  	// Iterator still in progress, wait for either a data or an error event
  1131  	select {
  1132  	case log := <-it.logs:
  1133  		it.Event = new(Uniswapv2Burn)
  1134  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1135  			it.fail = err
  1136  			return false
  1137  		}
  1138  		it.Event.Raw = log
  1139  		return true
  1140  
  1141  	case err := <-it.sub.Err():
  1142  		it.done = true
  1143  		it.fail = err
  1144  		return it.Next()
  1145  	}
  1146  }
  1147  
  1148  // Error returns any retrieval or parsing error occurred during filtering.
  1149  func (it *Uniswapv2BurnIterator) Error() error {
  1150  	return it.fail
  1151  }
  1152  
  1153  // Close terminates the iteration process, releasing any pending underlying
  1154  // resources.
  1155  func (it *Uniswapv2BurnIterator) Close() error {
  1156  	it.sub.Unsubscribe()
  1157  	return nil
  1158  }
  1159  
  1160  // Uniswapv2Burn represents a Burn event raised by the Uniswapv2 contract.
  1161  type Uniswapv2Burn struct {
  1162  	Sender  common.Address
  1163  	Amount0 *big.Int
  1164  	Amount1 *big.Int
  1165  	To      common.Address
  1166  	Raw     types.Log // Blockchain specific contextual infos
  1167  }
  1168  
  1169  // FilterBurn is a free log retrieval operation binding the contract event 0xdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496.
  1170  //
  1171  // Solidity: event Burn(address indexed sender, uint256 amount0, uint256 amount1, address indexed to)
  1172  func (_Uniswapv2 *Uniswapv2Filterer) FilterBurn(opts *bind.FilterOpts, sender []common.Address, to []common.Address) (*Uniswapv2BurnIterator, error) {
  1173  
  1174  	var senderRule []interface{}
  1175  	for _, senderItem := range sender {
  1176  		senderRule = append(senderRule, senderItem)
  1177  	}
  1178  
  1179  	var toRule []interface{}
  1180  	for _, toItem := range to {
  1181  		toRule = append(toRule, toItem)
  1182  	}
  1183  
  1184  	logs, sub, err := _Uniswapv2.contract.FilterLogs(opts, "Burn", senderRule, toRule)
  1185  	if err != nil {
  1186  		return nil, err
  1187  	}
  1188  	return &Uniswapv2BurnIterator{contract: _Uniswapv2.contract, event: "Burn", logs: logs, sub: sub}, nil
  1189  }
  1190  
  1191  // WatchBurn is a free log subscription operation binding the contract event 0xdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496.
  1192  //
  1193  // Solidity: event Burn(address indexed sender, uint256 amount0, uint256 amount1, address indexed to)
  1194  func (_Uniswapv2 *Uniswapv2Filterer) WatchBurn(opts *bind.WatchOpts, sink chan<- *Uniswapv2Burn, sender []common.Address, to []common.Address) (event.Subscription, error) {
  1195  
  1196  	var senderRule []interface{}
  1197  	for _, senderItem := range sender {
  1198  		senderRule = append(senderRule, senderItem)
  1199  	}
  1200  
  1201  	var toRule []interface{}
  1202  	for _, toItem := range to {
  1203  		toRule = append(toRule, toItem)
  1204  	}
  1205  
  1206  	logs, sub, err := _Uniswapv2.contract.WatchLogs(opts, "Burn", senderRule, toRule)
  1207  	if err != nil {
  1208  		return nil, err
  1209  	}
  1210  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1211  		defer sub.Unsubscribe()
  1212  		for {
  1213  			select {
  1214  			case log := <-logs:
  1215  				// New log arrived, parse the event and forward to the user
  1216  				event := new(Uniswapv2Burn)
  1217  				if err := _Uniswapv2.contract.UnpackLog(event, "Burn", log); err != nil {
  1218  					return err
  1219  				}
  1220  				event.Raw = log
  1221  
  1222  				select {
  1223  				case sink <- event:
  1224  				case err := <-sub.Err():
  1225  					return err
  1226  				case <-quit:
  1227  					return nil
  1228  				}
  1229  			case err := <-sub.Err():
  1230  				return err
  1231  			case <-quit:
  1232  				return nil
  1233  			}
  1234  		}
  1235  	}), nil
  1236  }
  1237  
  1238  // ParseBurn is a log parse operation binding the contract event 0xdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496.
  1239  //
  1240  // Solidity: event Burn(address indexed sender, uint256 amount0, uint256 amount1, address indexed to)
  1241  func (_Uniswapv2 *Uniswapv2Filterer) ParseBurn(log types.Log) (*Uniswapv2Burn, error) {
  1242  	event := new(Uniswapv2Burn)
  1243  	if err := _Uniswapv2.contract.UnpackLog(event, "Burn", log); err != nil {
  1244  		return nil, err
  1245  	}
  1246  	event.Raw = log
  1247  	return event, nil
  1248  }
  1249  
  1250  // Uniswapv2MintIterator is returned from FilterMint and is used to iterate over the raw logs and unpacked data for Mint events raised by the Uniswapv2 contract.
  1251  type Uniswapv2MintIterator struct {
  1252  	Event *Uniswapv2Mint // Event containing the contract specifics and raw log
  1253  
  1254  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1255  	event    string              // Event name to use for unpacking event data
  1256  
  1257  	logs chan types.Log        // Log channel receiving the found contract events
  1258  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1259  	done bool                  // Whether the subscription completed delivering logs
  1260  	fail error                 // Occurred error to stop iteration
  1261  }
  1262  
  1263  // Next advances the iterator to the subsequent event, returning whether there
  1264  // are any more events found. In case of a retrieval or parsing error, false is
  1265  // returned and Error() can be queried for the exact failure.
  1266  func (it *Uniswapv2MintIterator) Next() bool {
  1267  	// If the iterator failed, stop iterating
  1268  	if it.fail != nil {
  1269  		return false
  1270  	}
  1271  	// If the iterator completed, deliver directly whatever's available
  1272  	if it.done {
  1273  		select {
  1274  		case log := <-it.logs:
  1275  			it.Event = new(Uniswapv2Mint)
  1276  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1277  				it.fail = err
  1278  				return false
  1279  			}
  1280  			it.Event.Raw = log
  1281  			return true
  1282  
  1283  		default:
  1284  			return false
  1285  		}
  1286  	}
  1287  	// Iterator still in progress, wait for either a data or an error event
  1288  	select {
  1289  	case log := <-it.logs:
  1290  		it.Event = new(Uniswapv2Mint)
  1291  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1292  			it.fail = err
  1293  			return false
  1294  		}
  1295  		it.Event.Raw = log
  1296  		return true
  1297  
  1298  	case err := <-it.sub.Err():
  1299  		it.done = true
  1300  		it.fail = err
  1301  		return it.Next()
  1302  	}
  1303  }
  1304  
  1305  // Error returns any retrieval or parsing error occurred during filtering.
  1306  func (it *Uniswapv2MintIterator) Error() error {
  1307  	return it.fail
  1308  }
  1309  
  1310  // Close terminates the iteration process, releasing any pending underlying
  1311  // resources.
  1312  func (it *Uniswapv2MintIterator) Close() error {
  1313  	it.sub.Unsubscribe()
  1314  	return nil
  1315  }
  1316  
  1317  // Uniswapv2Mint represents a Mint event raised by the Uniswapv2 contract.
  1318  type Uniswapv2Mint struct {
  1319  	Sender  common.Address
  1320  	Amount0 *big.Int
  1321  	Amount1 *big.Int
  1322  	Raw     types.Log // Blockchain specific contextual infos
  1323  }
  1324  
  1325  // FilterMint is a free log retrieval operation binding the contract event 0x4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f.
  1326  //
  1327  // Solidity: event Mint(address indexed sender, uint256 amount0, uint256 amount1)
  1328  func (_Uniswapv2 *Uniswapv2Filterer) FilterMint(opts *bind.FilterOpts, sender []common.Address) (*Uniswapv2MintIterator, error) {
  1329  
  1330  	var senderRule []interface{}
  1331  	for _, senderItem := range sender {
  1332  		senderRule = append(senderRule, senderItem)
  1333  	}
  1334  
  1335  	logs, sub, err := _Uniswapv2.contract.FilterLogs(opts, "Mint", senderRule)
  1336  	if err != nil {
  1337  		return nil, err
  1338  	}
  1339  	return &Uniswapv2MintIterator{contract: _Uniswapv2.contract, event: "Mint", logs: logs, sub: sub}, nil
  1340  }
  1341  
  1342  // WatchMint is a free log subscription operation binding the contract event 0x4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f.
  1343  //
  1344  // Solidity: event Mint(address indexed sender, uint256 amount0, uint256 amount1)
  1345  func (_Uniswapv2 *Uniswapv2Filterer) WatchMint(opts *bind.WatchOpts, sink chan<- *Uniswapv2Mint, sender []common.Address) (event.Subscription, error) {
  1346  
  1347  	var senderRule []interface{}
  1348  	for _, senderItem := range sender {
  1349  		senderRule = append(senderRule, senderItem)
  1350  	}
  1351  
  1352  	logs, sub, err := _Uniswapv2.contract.WatchLogs(opts, "Mint", senderRule)
  1353  	if err != nil {
  1354  		return nil, err
  1355  	}
  1356  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1357  		defer sub.Unsubscribe()
  1358  		for {
  1359  			select {
  1360  			case log := <-logs:
  1361  				// New log arrived, parse the event and forward to the user
  1362  				event := new(Uniswapv2Mint)
  1363  				if err := _Uniswapv2.contract.UnpackLog(event, "Mint", log); err != nil {
  1364  					return err
  1365  				}
  1366  				event.Raw = log
  1367  
  1368  				select {
  1369  				case sink <- event:
  1370  				case err := <-sub.Err():
  1371  					return err
  1372  				case <-quit:
  1373  					return nil
  1374  				}
  1375  			case err := <-sub.Err():
  1376  				return err
  1377  			case <-quit:
  1378  				return nil
  1379  			}
  1380  		}
  1381  	}), nil
  1382  }
  1383  
  1384  // ParseMint is a log parse operation binding the contract event 0x4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f.
  1385  //
  1386  // Solidity: event Mint(address indexed sender, uint256 amount0, uint256 amount1)
  1387  func (_Uniswapv2 *Uniswapv2Filterer) ParseMint(log types.Log) (*Uniswapv2Mint, error) {
  1388  	event := new(Uniswapv2Mint)
  1389  	if err := _Uniswapv2.contract.UnpackLog(event, "Mint", log); err != nil {
  1390  		return nil, err
  1391  	}
  1392  	event.Raw = log
  1393  	return event, nil
  1394  }
  1395  
  1396  // Uniswapv2SwapIterator is returned from FilterSwap and is used to iterate over the raw logs and unpacked data for Swap events raised by the Uniswapv2 contract.
  1397  type Uniswapv2SwapIterator struct {
  1398  	Event *Uniswapv2Swap // Event containing the contract specifics and raw log
  1399  
  1400  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1401  	event    string              // Event name to use for unpacking event data
  1402  
  1403  	logs chan types.Log        // Log channel receiving the found contract events
  1404  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1405  	done bool                  // Whether the subscription completed delivering logs
  1406  	fail error                 // Occurred error to stop iteration
  1407  }
  1408  
  1409  // Next advances the iterator to the subsequent event, returning whether there
  1410  // are any more events found. In case of a retrieval or parsing error, false is
  1411  // returned and Error() can be queried for the exact failure.
  1412  func (it *Uniswapv2SwapIterator) Next() bool {
  1413  	// If the iterator failed, stop iterating
  1414  	if it.fail != nil {
  1415  		return false
  1416  	}
  1417  	// If the iterator completed, deliver directly whatever's available
  1418  	if it.done {
  1419  		select {
  1420  		case log := <-it.logs:
  1421  			it.Event = new(Uniswapv2Swap)
  1422  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1423  				it.fail = err
  1424  				return false
  1425  			}
  1426  			it.Event.Raw = log
  1427  			return true
  1428  
  1429  		default:
  1430  			return false
  1431  		}
  1432  	}
  1433  	// Iterator still in progress, wait for either a data or an error event
  1434  	select {
  1435  	case log := <-it.logs:
  1436  		it.Event = new(Uniswapv2Swap)
  1437  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1438  			it.fail = err
  1439  			return false
  1440  		}
  1441  		it.Event.Raw = log
  1442  		return true
  1443  
  1444  	case err := <-it.sub.Err():
  1445  		it.done = true
  1446  		it.fail = err
  1447  		return it.Next()
  1448  	}
  1449  }
  1450  
  1451  // Error returns any retrieval or parsing error occurred during filtering.
  1452  func (it *Uniswapv2SwapIterator) Error() error {
  1453  	return it.fail
  1454  }
  1455  
  1456  // Close terminates the iteration process, releasing any pending underlying
  1457  // resources.
  1458  func (it *Uniswapv2SwapIterator) Close() error {
  1459  	it.sub.Unsubscribe()
  1460  	return nil
  1461  }
  1462  
  1463  // Uniswapv2Swap represents a Swap event raised by the Uniswapv2 contract.
  1464  type Uniswapv2Swap struct {
  1465  	Sender     common.Address
  1466  	Amount0In  *big.Int
  1467  	Amount1In  *big.Int
  1468  	Amount0Out *big.Int
  1469  	Amount1Out *big.Int
  1470  	To         common.Address
  1471  	Raw        types.Log // Blockchain specific contextual infos
  1472  }
  1473  
  1474  // FilterSwap is a free log retrieval operation binding the contract event 0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822.
  1475  //
  1476  // Solidity: event Swap(address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to)
  1477  func (_Uniswapv2 *Uniswapv2Filterer) FilterSwap(opts *bind.FilterOpts, sender []common.Address, to []common.Address) (*Uniswapv2SwapIterator, error) {
  1478  
  1479  	var senderRule []interface{}
  1480  	for _, senderItem := range sender {
  1481  		senderRule = append(senderRule, senderItem)
  1482  	}
  1483  
  1484  	var toRule []interface{}
  1485  	for _, toItem := range to {
  1486  		toRule = append(toRule, toItem)
  1487  	}
  1488  
  1489  	logs, sub, err := _Uniswapv2.contract.FilterLogs(opts, "Swap", senderRule, toRule)
  1490  	if err != nil {
  1491  		return nil, err
  1492  	}
  1493  	return &Uniswapv2SwapIterator{contract: _Uniswapv2.contract, event: "Swap", logs: logs, sub: sub}, nil
  1494  }
  1495  
  1496  // WatchSwap is a free log subscription operation binding the contract event 0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822.
  1497  //
  1498  // Solidity: event Swap(address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to)
  1499  func (_Uniswapv2 *Uniswapv2Filterer) WatchSwap(opts *bind.WatchOpts, sink chan<- *Uniswapv2Swap, sender []common.Address, to []common.Address) (event.Subscription, error) {
  1500  
  1501  	var senderRule []interface{}
  1502  	for _, senderItem := range sender {
  1503  		senderRule = append(senderRule, senderItem)
  1504  	}
  1505  
  1506  	var toRule []interface{}
  1507  	for _, toItem := range to {
  1508  		toRule = append(toRule, toItem)
  1509  	}
  1510  
  1511  	logs, sub, err := _Uniswapv2.contract.WatchLogs(opts, "Swap", senderRule, toRule)
  1512  	if err != nil {
  1513  		return nil, err
  1514  	}
  1515  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1516  		defer sub.Unsubscribe()
  1517  		for {
  1518  			select {
  1519  			case log := <-logs:
  1520  				// New log arrived, parse the event and forward to the user
  1521  				event := new(Uniswapv2Swap)
  1522  				if err := _Uniswapv2.contract.UnpackLog(event, "Swap", log); err != nil {
  1523  					return err
  1524  				}
  1525  				event.Raw = log
  1526  
  1527  				select {
  1528  				case sink <- event:
  1529  				case err := <-sub.Err():
  1530  					return err
  1531  				case <-quit:
  1532  					return nil
  1533  				}
  1534  			case err := <-sub.Err():
  1535  				return err
  1536  			case <-quit:
  1537  				return nil
  1538  			}
  1539  		}
  1540  	}), nil
  1541  }
  1542  
  1543  // ParseSwap is a log parse operation binding the contract event 0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822.
  1544  //
  1545  // Solidity: event Swap(address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to)
  1546  func (_Uniswapv2 *Uniswapv2Filterer) ParseSwap(log types.Log) (*Uniswapv2Swap, error) {
  1547  	event := new(Uniswapv2Swap)
  1548  	if err := _Uniswapv2.contract.UnpackLog(event, "Swap", log); err != nil {
  1549  		return nil, err
  1550  	}
  1551  	event.Raw = log
  1552  	return event, nil
  1553  }
  1554  
  1555  // Uniswapv2SyncIterator is returned from FilterSync and is used to iterate over the raw logs and unpacked data for Sync events raised by the Uniswapv2 contract.
  1556  type Uniswapv2SyncIterator struct {
  1557  	Event *Uniswapv2Sync // Event containing the contract specifics and raw log
  1558  
  1559  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1560  	event    string              // Event name to use for unpacking event data
  1561  
  1562  	logs chan types.Log        // Log channel receiving the found contract events
  1563  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1564  	done bool                  // Whether the subscription completed delivering logs
  1565  	fail error                 // Occurred error to stop iteration
  1566  }
  1567  
  1568  // Next advances the iterator to the subsequent event, returning whether there
  1569  // are any more events found. In case of a retrieval or parsing error, false is
  1570  // returned and Error() can be queried for the exact failure.
  1571  func (it *Uniswapv2SyncIterator) Next() bool {
  1572  	// If the iterator failed, stop iterating
  1573  	if it.fail != nil {
  1574  		return false
  1575  	}
  1576  	// If the iterator completed, deliver directly whatever's available
  1577  	if it.done {
  1578  		select {
  1579  		case log := <-it.logs:
  1580  			it.Event = new(Uniswapv2Sync)
  1581  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1582  				it.fail = err
  1583  				return false
  1584  			}
  1585  			it.Event.Raw = log
  1586  			return true
  1587  
  1588  		default:
  1589  			return false
  1590  		}
  1591  	}
  1592  	// Iterator still in progress, wait for either a data or an error event
  1593  	select {
  1594  	case log := <-it.logs:
  1595  		it.Event = new(Uniswapv2Sync)
  1596  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1597  			it.fail = err
  1598  			return false
  1599  		}
  1600  		it.Event.Raw = log
  1601  		return true
  1602  
  1603  	case err := <-it.sub.Err():
  1604  		it.done = true
  1605  		it.fail = err
  1606  		return it.Next()
  1607  	}
  1608  }
  1609  
  1610  // Error returns any retrieval or parsing error occurred during filtering.
  1611  func (it *Uniswapv2SyncIterator) Error() error {
  1612  	return it.fail
  1613  }
  1614  
  1615  // Close terminates the iteration process, releasing any pending underlying
  1616  // resources.
  1617  func (it *Uniswapv2SyncIterator) Close() error {
  1618  	it.sub.Unsubscribe()
  1619  	return nil
  1620  }
  1621  
  1622  // Uniswapv2Sync represents a Sync event raised by the Uniswapv2 contract.
  1623  type Uniswapv2Sync struct {
  1624  	Reserve0 *big.Int
  1625  	Reserve1 *big.Int
  1626  	Raw      types.Log // Blockchain specific contextual infos
  1627  }
  1628  
  1629  // FilterSync is a free log retrieval operation binding the contract event 0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1.
  1630  //
  1631  // Solidity: event Sync(uint112 reserve0, uint112 reserve1)
  1632  func (_Uniswapv2 *Uniswapv2Filterer) FilterSync(opts *bind.FilterOpts) (*Uniswapv2SyncIterator, error) {
  1633  
  1634  	logs, sub, err := _Uniswapv2.contract.FilterLogs(opts, "Sync")
  1635  	if err != nil {
  1636  		return nil, err
  1637  	}
  1638  	return &Uniswapv2SyncIterator{contract: _Uniswapv2.contract, event: "Sync", logs: logs, sub: sub}, nil
  1639  }
  1640  
  1641  // WatchSync is a free log subscription operation binding the contract event 0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1.
  1642  //
  1643  // Solidity: event Sync(uint112 reserve0, uint112 reserve1)
  1644  func (_Uniswapv2 *Uniswapv2Filterer) WatchSync(opts *bind.WatchOpts, sink chan<- *Uniswapv2Sync) (event.Subscription, error) {
  1645  
  1646  	logs, sub, err := _Uniswapv2.contract.WatchLogs(opts, "Sync")
  1647  	if err != nil {
  1648  		return nil, err
  1649  	}
  1650  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1651  		defer sub.Unsubscribe()
  1652  		for {
  1653  			select {
  1654  			case log := <-logs:
  1655  				// New log arrived, parse the event and forward to the user
  1656  				event := new(Uniswapv2Sync)
  1657  				if err := _Uniswapv2.contract.UnpackLog(event, "Sync", log); err != nil {
  1658  					return err
  1659  				}
  1660  				event.Raw = log
  1661  
  1662  				select {
  1663  				case sink <- event:
  1664  				case err := <-sub.Err():
  1665  					return err
  1666  				case <-quit:
  1667  					return nil
  1668  				}
  1669  			case err := <-sub.Err():
  1670  				return err
  1671  			case <-quit:
  1672  				return nil
  1673  			}
  1674  		}
  1675  	}), nil
  1676  }
  1677  
  1678  // ParseSync is a log parse operation binding the contract event 0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1.
  1679  //
  1680  // Solidity: event Sync(uint112 reserve0, uint112 reserve1)
  1681  func (_Uniswapv2 *Uniswapv2Filterer) ParseSync(log types.Log) (*Uniswapv2Sync, error) {
  1682  	event := new(Uniswapv2Sync)
  1683  	if err := _Uniswapv2.contract.UnpackLog(event, "Sync", log); err != nil {
  1684  		return nil, err
  1685  	}
  1686  	event.Raw = log
  1687  	return event, nil
  1688  }
  1689  
  1690  // Uniswapv2TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the Uniswapv2 contract.
  1691  type Uniswapv2TransferIterator struct {
  1692  	Event *Uniswapv2Transfer // Event containing the contract specifics and raw log
  1693  
  1694  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1695  	event    string              // Event name to use for unpacking event data
  1696  
  1697  	logs chan types.Log        // Log channel receiving the found contract events
  1698  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1699  	done bool                  // Whether the subscription completed delivering logs
  1700  	fail error                 // Occurred error to stop iteration
  1701  }
  1702  
  1703  // Next advances the iterator to the subsequent event, returning whether there
  1704  // are any more events found. In case of a retrieval or parsing error, false is
  1705  // returned and Error() can be queried for the exact failure.
  1706  func (it *Uniswapv2TransferIterator) Next() bool {
  1707  	// If the iterator failed, stop iterating
  1708  	if it.fail != nil {
  1709  		return false
  1710  	}
  1711  	// If the iterator completed, deliver directly whatever's available
  1712  	if it.done {
  1713  		select {
  1714  		case log := <-it.logs:
  1715  			it.Event = new(Uniswapv2Transfer)
  1716  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1717  				it.fail = err
  1718  				return false
  1719  			}
  1720  			it.Event.Raw = log
  1721  			return true
  1722  
  1723  		default:
  1724  			return false
  1725  		}
  1726  	}
  1727  	// Iterator still in progress, wait for either a data or an error event
  1728  	select {
  1729  	case log := <-it.logs:
  1730  		it.Event = new(Uniswapv2Transfer)
  1731  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1732  			it.fail = err
  1733  			return false
  1734  		}
  1735  		it.Event.Raw = log
  1736  		return true
  1737  
  1738  	case err := <-it.sub.Err():
  1739  		it.done = true
  1740  		it.fail = err
  1741  		return it.Next()
  1742  	}
  1743  }
  1744  
  1745  // Error returns any retrieval or parsing error occurred during filtering.
  1746  func (it *Uniswapv2TransferIterator) Error() error {
  1747  	return it.fail
  1748  }
  1749  
  1750  // Close terminates the iteration process, releasing any pending underlying
  1751  // resources.
  1752  func (it *Uniswapv2TransferIterator) Close() error {
  1753  	it.sub.Unsubscribe()
  1754  	return nil
  1755  }
  1756  
  1757  // Uniswapv2Transfer represents a Transfer event raised by the Uniswapv2 contract.
  1758  type Uniswapv2Transfer struct {
  1759  	From  common.Address
  1760  	To    common.Address
  1761  	Value *big.Int
  1762  	Raw   types.Log // Blockchain specific contextual infos
  1763  }
  1764  
  1765  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  1766  //
  1767  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
  1768  func (_Uniswapv2 *Uniswapv2Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*Uniswapv2TransferIterator, error) {
  1769  
  1770  	var fromRule []interface{}
  1771  	for _, fromItem := range from {
  1772  		fromRule = append(fromRule, fromItem)
  1773  	}
  1774  	var toRule []interface{}
  1775  	for _, toItem := range to {
  1776  		toRule = append(toRule, toItem)
  1777  	}
  1778  
  1779  	logs, sub, err := _Uniswapv2.contract.FilterLogs(opts, "Transfer", fromRule, toRule)
  1780  	if err != nil {
  1781  		return nil, err
  1782  	}
  1783  	return &Uniswapv2TransferIterator{contract: _Uniswapv2.contract, event: "Transfer", logs: logs, sub: sub}, nil
  1784  }
  1785  
  1786  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  1787  //
  1788  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
  1789  func (_Uniswapv2 *Uniswapv2Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *Uniswapv2Transfer, from []common.Address, to []common.Address) (event.Subscription, error) {
  1790  
  1791  	var fromRule []interface{}
  1792  	for _, fromItem := range from {
  1793  		fromRule = append(fromRule, fromItem)
  1794  	}
  1795  	var toRule []interface{}
  1796  	for _, toItem := range to {
  1797  		toRule = append(toRule, toItem)
  1798  	}
  1799  
  1800  	logs, sub, err := _Uniswapv2.contract.WatchLogs(opts, "Transfer", fromRule, toRule)
  1801  	if err != nil {
  1802  		return nil, err
  1803  	}
  1804  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1805  		defer sub.Unsubscribe()
  1806  		for {
  1807  			select {
  1808  			case log := <-logs:
  1809  				// New log arrived, parse the event and forward to the user
  1810  				event := new(Uniswapv2Transfer)
  1811  				if err := _Uniswapv2.contract.UnpackLog(event, "Transfer", log); err != nil {
  1812  					return err
  1813  				}
  1814  				event.Raw = log
  1815  
  1816  				select {
  1817  				case sink <- event:
  1818  				case err := <-sub.Err():
  1819  					return err
  1820  				case <-quit:
  1821  					return nil
  1822  				}
  1823  			case err := <-sub.Err():
  1824  				return err
  1825  			case <-quit:
  1826  				return nil
  1827  			}
  1828  		}
  1829  	}), nil
  1830  }
  1831  
  1832  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  1833  //
  1834  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
  1835  func (_Uniswapv2 *Uniswapv2Filterer) ParseTransfer(log types.Log) (*Uniswapv2Transfer, error) {
  1836  	event := new(Uniswapv2Transfer)
  1837  	if err := _Uniswapv2.contract.UnpackLog(event, "Transfer", log); err != nil {
  1838  		return nil, err
  1839  	}
  1840  	event.Raw = log
  1841  	return event, nil
  1842  }