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