github.com/diadata-org/diadata@v1.4.593/pkg/dia/scraper/exchange-scrapers/traderjoe2.1/traderjoeILBPair/ILBPair.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 traderjoeILBPair
     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  // ILBPairMetaData contains all meta data concerning the ILBPair contract.
    33  var ILBPairMetaData = &bind.MetaData{
    34  	ABI: "[{\"inputs\":[],\"name\":\"LBPair__AddressZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LBPair__AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LBPair__EmptyMarketConfigs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LBPair__FlashLoanCallbackFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LBPair__FlashLoanInsufficientAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LBPair__InsufficientAmountIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LBPair__InsufficientAmountOut\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LBPair__InvalidInput\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LBPair__InvalidStaticFeeParameters\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LBPair__MaxTotalFeeExceeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LBPair__OnlyFactory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LBPair__OnlyProtocolFeeRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LBPair__OutOfLiquidity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LBPair__TokenNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"id\",\"type\":\"uint24\"}],\"name\":\"LBPair__ZeroAmount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"id\",\"type\":\"uint24\"}],\"name\":\"LBPair__ZeroAmountsOut\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LBPair__ZeroBorrowAmount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"id\",\"type\":\"uint24\"}],\"name\":\"LBPair__ZeroShares\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LBToken__AddressThisOrZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LBToken__BurnExceedsBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LBToken__InvalidLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"LBToken__SelfApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"LBToken__SpenderNotApproved\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LBToken__TransferExceedsBalance\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"protocolFees\",\"type\":\"bytes32\"}],\"name\":\"CollectedProtocolFees\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"id\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"totalFees\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"protocolFees\",\"type\":\"bytes32\"}],\"name\":\"CompositionFees\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"amounts\",\"type\":\"bytes32[]\"}],\"name\":\"DepositedToBins\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contractILBFlashLoanCallback\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"activeId\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"amounts\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"totalFees\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"protocolFees\",\"type\":\"bytes32\"}],\"name\":\"FlashLoan\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"idReference\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"volatilityReference\",\"type\":\"uint24\"}],\"name\":\"ForcedDecay\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"oracleLength\",\"type\":\"uint16\"}],\"name\":\"OracleLengthIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"baseFactor\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"filterPeriod\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"decayPeriod\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"reductionFactor\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"variableFeeControl\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"protocolShare\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"maxVolatilityAccumulator\",\"type\":\"uint24\"}],\"name\":\"StaticFeeParametersSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"id\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"amountsIn\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"amountsOut\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"volatilityAccumulator\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"totalFees\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"protocolFees\",\"type\":\"bytes32\"}],\"name\":\"Swap\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"amounts\",\"type\":\"bytes32[]\"}],\"name\":\"WithdrawnFromBins\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"approveForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amountsToBurn\",\"type\":\"uint256[]\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"amounts\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collectProtocolFees\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"collectedProtocolFees\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractILBFlashLoanCallback\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"amounts\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"flashLoan\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"forceDecay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getActiveId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"activeId\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"id\",\"type\":\"uint24\"}],\"name\":\"getBin\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"binReserveX\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"binReserveY\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBinStep\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"binStep\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFactory\",\"outputs\":[{\"internalType\":\"contractILBFactory\",\"name\":\"factory\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"getIdFromPrice\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"id\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"swapForY\",\"type\":\"bool\"},{\"internalType\":\"uint24\",\"name\":\"id\",\"type\":\"uint24\"}],\"name\":\"getNextNonEmptyBin\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"nextId\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOracleParameters\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"sampleLifetime\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"size\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"activeSize\",\"type\":\"uint16\"},{\"internalType\":\"uint40\",\"name\":\"lastUpdated\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"firstTimestamp\",\"type\":\"uint40\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"lookupTimestamp\",\"type\":\"uint40\"}],\"name\":\"getOracleSampleAt\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"cumulativeId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"cumulativeVolatility\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"cumulativeBinCrossed\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"id\",\"type\":\"uint24\"}],\"name\":\"getPriceFromId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProtocolFees\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"protocolFeeX\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"protocolFeeY\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReserves\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"reserveX\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"reserveY\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStaticFeeParameters\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"baseFactor\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"filterPeriod\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"decayPeriod\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"reductionFactor\",\"type\":\"uint16\"},{\"internalType\":\"uint24\",\"name\":\"variableFeeControl\",\"type\":\"uint24\"},{\"internalType\":\"uint16\",\"name\":\"protocolShare\",\"type\":\"uint16\"},{\"internalType\":\"uint24\",\"name\":\"maxVolatilityAccumulator\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"amountOut\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"swapForY\",\"type\":\"bool\"}],\"name\":\"getSwapIn\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"amountIn\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amountOutLeft\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"fee\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"amountIn\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"swapForY\",\"type\":\"bool\"}],\"name\":\"getSwapOut\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"amountInLeft\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amountOut\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"fee\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenX\",\"outputs\":[{\"internalType\":\"contractIERC20\",\"name\":\"tokenX\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenY\",\"outputs\":[{\"internalType\":\"contractIERC20\",\"name\":\"tokenY\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVariableFeeParameters\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"volatilityAccumulator\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"volatilityReference\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"idReference\",\"type\":\"uint24\"},{\"internalType\":\"uint40\",\"name\":\"timeOfLastUpdate\",\"type\":\"uint40\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"newLength\",\"type\":\"uint16\"}],\"name\":\"increaseOracleLength\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"baseFactor\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"filterPeriod\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"decayPeriod\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"reductionFactor\",\"type\":\"uint16\"},{\"internalType\":\"uint24\",\"name\":\"variableFeeControl\",\"type\":\"uint24\"},{\"internalType\":\"uint16\",\"name\":\"protocolShare\",\"type\":\"uint16\"},{\"internalType\":\"uint24\",\"name\":\"maxVolatilityAccumulator\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"activeId\",\"type\":\"uint24\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"liquidityConfigs\",\"type\":\"bytes32[]\"},{\"internalType\":\"address\",\"name\":\"refundTo\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"amountsReceived\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"amountsLeft\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"liquidityMinted\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"baseFactor\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"filterPeriod\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"decayPeriod\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"reductionFactor\",\"type\":\"uint16\"},{\"internalType\":\"uint24\",\"name\":\"variableFeeControl\",\"type\":\"uint24\"},{\"internalType\":\"uint16\",\"name\":\"protocolShare\",\"type\":\"uint16\"},{\"internalType\":\"uint24\",\"name\":\"maxVolatilityAccumulator\",\"type\":\"uint24\"}],\"name\":\"setStaticFeeParameters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"swapForY\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"amountsOut\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]",
    35  }
    36  
    37  // ILBPairABI is the input ABI used to generate the binding from.
    38  // Deprecated: Use ILBPairMetaData.ABI instead.
    39  var ILBPairABI = ILBPairMetaData.ABI
    40  
    41  // ILBPair is an auto generated Go binding around an Ethereum contract.
    42  type ILBPair struct {
    43  	ILBPairCaller     // Read-only binding to the contract
    44  	ILBPairTransactor // Write-only binding to the contract
    45  	ILBPairFilterer   // Log filterer for contract events
    46  }
    47  
    48  // ILBPairCaller is an auto generated read-only Go binding around an Ethereum contract.
    49  type ILBPairCaller struct {
    50  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    51  }
    52  
    53  // ILBPairTransactor is an auto generated write-only Go binding around an Ethereum contract.
    54  type ILBPairTransactor struct {
    55  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    56  }
    57  
    58  // ILBPairFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
    59  type ILBPairFilterer struct {
    60  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    61  }
    62  
    63  // ILBPairSession is an auto generated Go binding around an Ethereum contract,
    64  // with pre-set call and transact options.
    65  type ILBPairSession struct {
    66  	Contract     *ILBPair          // Generic contract binding to set the session for
    67  	CallOpts     bind.CallOpts     // Call options to use throughout this session
    68  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
    69  }
    70  
    71  // ILBPairCallerSession is an auto generated read-only Go binding around an Ethereum contract,
    72  // with pre-set call options.
    73  type ILBPairCallerSession struct {
    74  	Contract *ILBPairCaller // Generic contract caller binding to set the session for
    75  	CallOpts bind.CallOpts  // Call options to use throughout this session
    76  }
    77  
    78  // ILBPairTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
    79  // with pre-set transact options.
    80  type ILBPairTransactorSession struct {
    81  	Contract     *ILBPairTransactor // Generic contract transactor binding to set the session for
    82  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
    83  }
    84  
    85  // ILBPairRaw is an auto generated low-level Go binding around an Ethereum contract.
    86  type ILBPairRaw struct {
    87  	Contract *ILBPair // Generic contract binding to access the raw methods on
    88  }
    89  
    90  // ILBPairCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
    91  type ILBPairCallerRaw struct {
    92  	Contract *ILBPairCaller // Generic read-only contract binding to access the raw methods on
    93  }
    94  
    95  // ILBPairTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
    96  type ILBPairTransactorRaw struct {
    97  	Contract *ILBPairTransactor // Generic write-only contract binding to access the raw methods on
    98  }
    99  
   100  // NewILBPair creates a new instance of ILBPair, bound to a specific deployed contract.
   101  func NewILBPair(address common.Address, backend bind.ContractBackend) (*ILBPair, error) {
   102  	contract, err := bindILBPair(address, backend, backend, backend)
   103  	if err != nil {
   104  		return nil, err
   105  	}
   106  	return &ILBPair{ILBPairCaller: ILBPairCaller{contract: contract}, ILBPairTransactor: ILBPairTransactor{contract: contract}, ILBPairFilterer: ILBPairFilterer{contract: contract}}, nil
   107  }
   108  
   109  // NewILBPairCaller creates a new read-only instance of ILBPair, bound to a specific deployed contract.
   110  func NewILBPairCaller(address common.Address, caller bind.ContractCaller) (*ILBPairCaller, error) {
   111  	contract, err := bindILBPair(address, caller, nil, nil)
   112  	if err != nil {
   113  		return nil, err
   114  	}
   115  	return &ILBPairCaller{contract: contract}, nil
   116  }
   117  
   118  // NewILBPairTransactor creates a new write-only instance of ILBPair, bound to a specific deployed contract.
   119  func NewILBPairTransactor(address common.Address, transactor bind.ContractTransactor) (*ILBPairTransactor, error) {
   120  	contract, err := bindILBPair(address, nil, transactor, nil)
   121  	if err != nil {
   122  		return nil, err
   123  	}
   124  	return &ILBPairTransactor{contract: contract}, nil
   125  }
   126  
   127  // NewILBPairFilterer creates a new log filterer instance of ILBPair, bound to a specific deployed contract.
   128  func NewILBPairFilterer(address common.Address, filterer bind.ContractFilterer) (*ILBPairFilterer, error) {
   129  	contract, err := bindILBPair(address, nil, nil, filterer)
   130  	if err != nil {
   131  		return nil, err
   132  	}
   133  	return &ILBPairFilterer{contract: contract}, nil
   134  }
   135  
   136  // bindILBPair binds a generic wrapper to an already deployed contract.
   137  func bindILBPair(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   138  	parsed, err := ILBPairMetaData.GetAbi()
   139  	if err != nil {
   140  		return nil, err
   141  	}
   142  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
   143  }
   144  
   145  // Call invokes the (constant) contract method with params as input values and
   146  // sets the output to result. The result type might be a single field for simple
   147  // returns, a slice of interfaces for anonymous returns and a struct for named
   148  // returns.
   149  func (_ILBPair *ILBPairRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   150  	return _ILBPair.Contract.ILBPairCaller.contract.Call(opts, result, method, params...)
   151  }
   152  
   153  // Transfer initiates a plain transaction to move funds to the contract, calling
   154  // its default method if one is available.
   155  func (_ILBPair *ILBPairRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   156  	return _ILBPair.Contract.ILBPairTransactor.contract.Transfer(opts)
   157  }
   158  
   159  // Transact invokes the (paid) contract method with params as input values.
   160  func (_ILBPair *ILBPairRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   161  	return _ILBPair.Contract.ILBPairTransactor.contract.Transact(opts, method, params...)
   162  }
   163  
   164  // Call invokes the (constant) contract method with params as input values and
   165  // sets the output to result. The result type might be a single field for simple
   166  // returns, a slice of interfaces for anonymous returns and a struct for named
   167  // returns.
   168  func (_ILBPair *ILBPairCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   169  	return _ILBPair.Contract.contract.Call(opts, result, method, params...)
   170  }
   171  
   172  // Transfer initiates a plain transaction to move funds to the contract, calling
   173  // its default method if one is available.
   174  func (_ILBPair *ILBPairTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   175  	return _ILBPair.Contract.contract.Transfer(opts)
   176  }
   177  
   178  // Transact invokes the (paid) contract method with params as input values.
   179  func (_ILBPair *ILBPairTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   180  	return _ILBPair.Contract.contract.Transact(opts, method, params...)
   181  }
   182  
   183  // BalanceOf is a free data retrieval call binding the contract method 0x00fdd58e.
   184  //
   185  // Solidity: function balanceOf(address account, uint256 id) view returns(uint256)
   186  func (_ILBPair *ILBPairCaller) BalanceOf(opts *bind.CallOpts, account common.Address, id *big.Int) (*big.Int, error) {
   187  	var out []interface{}
   188  	err := _ILBPair.contract.Call(opts, &out, "balanceOf", account, id)
   189  
   190  	if err != nil {
   191  		return *new(*big.Int), err
   192  	}
   193  
   194  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   195  
   196  	return out0, err
   197  
   198  }
   199  
   200  // BalanceOf is a free data retrieval call binding the contract method 0x00fdd58e.
   201  //
   202  // Solidity: function balanceOf(address account, uint256 id) view returns(uint256)
   203  func (_ILBPair *ILBPairSession) BalanceOf(account common.Address, id *big.Int) (*big.Int, error) {
   204  	return _ILBPair.Contract.BalanceOf(&_ILBPair.CallOpts, account, id)
   205  }
   206  
   207  // BalanceOf is a free data retrieval call binding the contract method 0x00fdd58e.
   208  //
   209  // Solidity: function balanceOf(address account, uint256 id) view returns(uint256)
   210  func (_ILBPair *ILBPairCallerSession) BalanceOf(account common.Address, id *big.Int) (*big.Int, error) {
   211  	return _ILBPair.Contract.BalanceOf(&_ILBPair.CallOpts, account, id)
   212  }
   213  
   214  // BalanceOfBatch is a free data retrieval call binding the contract method 0x4e1273f4.
   215  //
   216  // Solidity: function balanceOfBatch(address[] accounts, uint256[] ids) view returns(uint256[])
   217  func (_ILBPair *ILBPairCaller) BalanceOfBatch(opts *bind.CallOpts, accounts []common.Address, ids []*big.Int) ([]*big.Int, error) {
   218  	var out []interface{}
   219  	err := _ILBPair.contract.Call(opts, &out, "balanceOfBatch", accounts, ids)
   220  
   221  	if err != nil {
   222  		return *new([]*big.Int), err
   223  	}
   224  
   225  	out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int)
   226  
   227  	return out0, err
   228  
   229  }
   230  
   231  // BalanceOfBatch is a free data retrieval call binding the contract method 0x4e1273f4.
   232  //
   233  // Solidity: function balanceOfBatch(address[] accounts, uint256[] ids) view returns(uint256[])
   234  func (_ILBPair *ILBPairSession) BalanceOfBatch(accounts []common.Address, ids []*big.Int) ([]*big.Int, error) {
   235  	return _ILBPair.Contract.BalanceOfBatch(&_ILBPair.CallOpts, accounts, ids)
   236  }
   237  
   238  // BalanceOfBatch is a free data retrieval call binding the contract method 0x4e1273f4.
   239  //
   240  // Solidity: function balanceOfBatch(address[] accounts, uint256[] ids) view returns(uint256[])
   241  func (_ILBPair *ILBPairCallerSession) BalanceOfBatch(accounts []common.Address, ids []*big.Int) ([]*big.Int, error) {
   242  	return _ILBPair.Contract.BalanceOfBatch(&_ILBPair.CallOpts, accounts, ids)
   243  }
   244  
   245  // GetActiveId is a free data retrieval call binding the contract method 0xdbe65edc.
   246  //
   247  // Solidity: function getActiveId() view returns(uint24 activeId)
   248  func (_ILBPair *ILBPairCaller) GetActiveId(opts *bind.CallOpts) (*big.Int, error) {
   249  	var out []interface{}
   250  	err := _ILBPair.contract.Call(opts, &out, "getActiveId")
   251  
   252  	if err != nil {
   253  		return *new(*big.Int), err
   254  	}
   255  
   256  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   257  
   258  	return out0, err
   259  
   260  }
   261  
   262  // GetActiveId is a free data retrieval call binding the contract method 0xdbe65edc.
   263  //
   264  // Solidity: function getActiveId() view returns(uint24 activeId)
   265  func (_ILBPair *ILBPairSession) GetActiveId() (*big.Int, error) {
   266  	return _ILBPair.Contract.GetActiveId(&_ILBPair.CallOpts)
   267  }
   268  
   269  // GetActiveId is a free data retrieval call binding the contract method 0xdbe65edc.
   270  //
   271  // Solidity: function getActiveId() view returns(uint24 activeId)
   272  func (_ILBPair *ILBPairCallerSession) GetActiveId() (*big.Int, error) {
   273  	return _ILBPair.Contract.GetActiveId(&_ILBPair.CallOpts)
   274  }
   275  
   276  // GetBin is a free data retrieval call binding the contract method 0x0abe9688.
   277  //
   278  // Solidity: function getBin(uint24 id) view returns(uint128 binReserveX, uint128 binReserveY)
   279  func (_ILBPair *ILBPairCaller) GetBin(opts *bind.CallOpts, id *big.Int) (struct {
   280  	BinReserveX *big.Int
   281  	BinReserveY *big.Int
   282  }, error) {
   283  	var out []interface{}
   284  	err := _ILBPair.contract.Call(opts, &out, "getBin", id)
   285  
   286  	outstruct := new(struct {
   287  		BinReserveX *big.Int
   288  		BinReserveY *big.Int
   289  	})
   290  	if err != nil {
   291  		return *outstruct, err
   292  	}
   293  
   294  	outstruct.BinReserveX = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   295  	outstruct.BinReserveY = *abi.ConvertType(out[1], new(*big.Int)).(**big.Int)
   296  
   297  	return *outstruct, err
   298  
   299  }
   300  
   301  // GetBin is a free data retrieval call binding the contract method 0x0abe9688.
   302  //
   303  // Solidity: function getBin(uint24 id) view returns(uint128 binReserveX, uint128 binReserveY)
   304  func (_ILBPair *ILBPairSession) GetBin(id *big.Int) (struct {
   305  	BinReserveX *big.Int
   306  	BinReserveY *big.Int
   307  }, error) {
   308  	return _ILBPair.Contract.GetBin(&_ILBPair.CallOpts, id)
   309  }
   310  
   311  // GetBin is a free data retrieval call binding the contract method 0x0abe9688.
   312  //
   313  // Solidity: function getBin(uint24 id) view returns(uint128 binReserveX, uint128 binReserveY)
   314  func (_ILBPair *ILBPairCallerSession) GetBin(id *big.Int) (struct {
   315  	BinReserveX *big.Int
   316  	BinReserveY *big.Int
   317  }, error) {
   318  	return _ILBPair.Contract.GetBin(&_ILBPair.CallOpts, id)
   319  }
   320  
   321  // GetBinStep is a free data retrieval call binding the contract method 0x17f11ecc.
   322  //
   323  // Solidity: function getBinStep() view returns(uint16 binStep)
   324  func (_ILBPair *ILBPairCaller) GetBinStep(opts *bind.CallOpts) (uint16, error) {
   325  	var out []interface{}
   326  	err := _ILBPair.contract.Call(opts, &out, "getBinStep")
   327  
   328  	if err != nil {
   329  		return *new(uint16), err
   330  	}
   331  
   332  	out0 := *abi.ConvertType(out[0], new(uint16)).(*uint16)
   333  
   334  	return out0, err
   335  
   336  }
   337  
   338  // GetBinStep is a free data retrieval call binding the contract method 0x17f11ecc.
   339  //
   340  // Solidity: function getBinStep() view returns(uint16 binStep)
   341  func (_ILBPair *ILBPairSession) GetBinStep() (uint16, error) {
   342  	return _ILBPair.Contract.GetBinStep(&_ILBPair.CallOpts)
   343  }
   344  
   345  // GetBinStep is a free data retrieval call binding the contract method 0x17f11ecc.
   346  //
   347  // Solidity: function getBinStep() view returns(uint16 binStep)
   348  func (_ILBPair *ILBPairCallerSession) GetBinStep() (uint16, error) {
   349  	return _ILBPair.Contract.GetBinStep(&_ILBPair.CallOpts)
   350  }
   351  
   352  // GetFactory is a free data retrieval call binding the contract method 0x88cc58e4.
   353  //
   354  // Solidity: function getFactory() view returns(address factory)
   355  func (_ILBPair *ILBPairCaller) GetFactory(opts *bind.CallOpts) (common.Address, error) {
   356  	var out []interface{}
   357  	err := _ILBPair.contract.Call(opts, &out, "getFactory")
   358  
   359  	if err != nil {
   360  		return *new(common.Address), err
   361  	}
   362  
   363  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   364  
   365  	return out0, err
   366  
   367  }
   368  
   369  // GetFactory is a free data retrieval call binding the contract method 0x88cc58e4.
   370  //
   371  // Solidity: function getFactory() view returns(address factory)
   372  func (_ILBPair *ILBPairSession) GetFactory() (common.Address, error) {
   373  	return _ILBPair.Contract.GetFactory(&_ILBPair.CallOpts)
   374  }
   375  
   376  // GetFactory is a free data retrieval call binding the contract method 0x88cc58e4.
   377  //
   378  // Solidity: function getFactory() view returns(address factory)
   379  func (_ILBPair *ILBPairCallerSession) GetFactory() (common.Address, error) {
   380  	return _ILBPair.Contract.GetFactory(&_ILBPair.CallOpts)
   381  }
   382  
   383  // GetIdFromPrice is a free data retrieval call binding the contract method 0xf5e29329.
   384  //
   385  // Solidity: function getIdFromPrice(uint256 price) view returns(uint24 id)
   386  func (_ILBPair *ILBPairCaller) GetIdFromPrice(opts *bind.CallOpts, price *big.Int) (*big.Int, error) {
   387  	var out []interface{}
   388  	err := _ILBPair.contract.Call(opts, &out, "getIdFromPrice", price)
   389  
   390  	if err != nil {
   391  		return *new(*big.Int), err
   392  	}
   393  
   394  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   395  
   396  	return out0, err
   397  
   398  }
   399  
   400  // GetIdFromPrice is a free data retrieval call binding the contract method 0xf5e29329.
   401  //
   402  // Solidity: function getIdFromPrice(uint256 price) view returns(uint24 id)
   403  func (_ILBPair *ILBPairSession) GetIdFromPrice(price *big.Int) (*big.Int, error) {
   404  	return _ILBPair.Contract.GetIdFromPrice(&_ILBPair.CallOpts, price)
   405  }
   406  
   407  // GetIdFromPrice is a free data retrieval call binding the contract method 0xf5e29329.
   408  //
   409  // Solidity: function getIdFromPrice(uint256 price) view returns(uint24 id)
   410  func (_ILBPair *ILBPairCallerSession) GetIdFromPrice(price *big.Int) (*big.Int, error) {
   411  	return _ILBPair.Contract.GetIdFromPrice(&_ILBPair.CallOpts, price)
   412  }
   413  
   414  // GetNextNonEmptyBin is a free data retrieval call binding the contract method 0xa41a01fb.
   415  //
   416  // Solidity: function getNextNonEmptyBin(bool swapForY, uint24 id) view returns(uint24 nextId)
   417  func (_ILBPair *ILBPairCaller) GetNextNonEmptyBin(opts *bind.CallOpts, swapForY bool, id *big.Int) (*big.Int, error) {
   418  	var out []interface{}
   419  	err := _ILBPair.contract.Call(opts, &out, "getNextNonEmptyBin", swapForY, id)
   420  
   421  	if err != nil {
   422  		return *new(*big.Int), err
   423  	}
   424  
   425  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   426  
   427  	return out0, err
   428  
   429  }
   430  
   431  // GetNextNonEmptyBin is a free data retrieval call binding the contract method 0xa41a01fb.
   432  //
   433  // Solidity: function getNextNonEmptyBin(bool swapForY, uint24 id) view returns(uint24 nextId)
   434  func (_ILBPair *ILBPairSession) GetNextNonEmptyBin(swapForY bool, id *big.Int) (*big.Int, error) {
   435  	return _ILBPair.Contract.GetNextNonEmptyBin(&_ILBPair.CallOpts, swapForY, id)
   436  }
   437  
   438  // GetNextNonEmptyBin is a free data retrieval call binding the contract method 0xa41a01fb.
   439  //
   440  // Solidity: function getNextNonEmptyBin(bool swapForY, uint24 id) view returns(uint24 nextId)
   441  func (_ILBPair *ILBPairCallerSession) GetNextNonEmptyBin(swapForY bool, id *big.Int) (*big.Int, error) {
   442  	return _ILBPair.Contract.GetNextNonEmptyBin(&_ILBPair.CallOpts, swapForY, id)
   443  }
   444  
   445  // GetOracleParameters is a free data retrieval call binding the contract method 0x55182894.
   446  //
   447  // Solidity: function getOracleParameters() view returns(uint8 sampleLifetime, uint16 size, uint16 activeSize, uint40 lastUpdated, uint40 firstTimestamp)
   448  func (_ILBPair *ILBPairCaller) GetOracleParameters(opts *bind.CallOpts) (struct {
   449  	SampleLifetime uint8
   450  	Size           uint16
   451  	ActiveSize     uint16
   452  	LastUpdated    *big.Int
   453  	FirstTimestamp *big.Int
   454  }, error) {
   455  	var out []interface{}
   456  	err := _ILBPair.contract.Call(opts, &out, "getOracleParameters")
   457  
   458  	outstruct := new(struct {
   459  		SampleLifetime uint8
   460  		Size           uint16
   461  		ActiveSize     uint16
   462  		LastUpdated    *big.Int
   463  		FirstTimestamp *big.Int
   464  	})
   465  	if err != nil {
   466  		return *outstruct, err
   467  	}
   468  
   469  	outstruct.SampleLifetime = *abi.ConvertType(out[0], new(uint8)).(*uint8)
   470  	outstruct.Size = *abi.ConvertType(out[1], new(uint16)).(*uint16)
   471  	outstruct.ActiveSize = *abi.ConvertType(out[2], new(uint16)).(*uint16)
   472  	outstruct.LastUpdated = *abi.ConvertType(out[3], new(*big.Int)).(**big.Int)
   473  	outstruct.FirstTimestamp = *abi.ConvertType(out[4], new(*big.Int)).(**big.Int)
   474  
   475  	return *outstruct, err
   476  
   477  }
   478  
   479  // GetOracleParameters is a free data retrieval call binding the contract method 0x55182894.
   480  //
   481  // Solidity: function getOracleParameters() view returns(uint8 sampleLifetime, uint16 size, uint16 activeSize, uint40 lastUpdated, uint40 firstTimestamp)
   482  func (_ILBPair *ILBPairSession) GetOracleParameters() (struct {
   483  	SampleLifetime uint8
   484  	Size           uint16
   485  	ActiveSize     uint16
   486  	LastUpdated    *big.Int
   487  	FirstTimestamp *big.Int
   488  }, error) {
   489  	return _ILBPair.Contract.GetOracleParameters(&_ILBPair.CallOpts)
   490  }
   491  
   492  // GetOracleParameters is a free data retrieval call binding the contract method 0x55182894.
   493  //
   494  // Solidity: function getOracleParameters() view returns(uint8 sampleLifetime, uint16 size, uint16 activeSize, uint40 lastUpdated, uint40 firstTimestamp)
   495  func (_ILBPair *ILBPairCallerSession) GetOracleParameters() (struct {
   496  	SampleLifetime uint8
   497  	Size           uint16
   498  	ActiveSize     uint16
   499  	LastUpdated    *big.Int
   500  	FirstTimestamp *big.Int
   501  }, error) {
   502  	return _ILBPair.Contract.GetOracleParameters(&_ILBPair.CallOpts)
   503  }
   504  
   505  // GetOracleSampleAt is a free data retrieval call binding the contract method 0x8940a16a.
   506  //
   507  // Solidity: function getOracleSampleAt(uint40 lookupTimestamp) view returns(uint64 cumulativeId, uint64 cumulativeVolatility, uint64 cumulativeBinCrossed)
   508  func (_ILBPair *ILBPairCaller) GetOracleSampleAt(opts *bind.CallOpts, lookupTimestamp *big.Int) (struct {
   509  	CumulativeId         uint64
   510  	CumulativeVolatility uint64
   511  	CumulativeBinCrossed uint64
   512  }, error) {
   513  	var out []interface{}
   514  	err := _ILBPair.contract.Call(opts, &out, "getOracleSampleAt", lookupTimestamp)
   515  
   516  	outstruct := new(struct {
   517  		CumulativeId         uint64
   518  		CumulativeVolatility uint64
   519  		CumulativeBinCrossed uint64
   520  	})
   521  	if err != nil {
   522  		return *outstruct, err
   523  	}
   524  
   525  	outstruct.CumulativeId = *abi.ConvertType(out[0], new(uint64)).(*uint64)
   526  	outstruct.CumulativeVolatility = *abi.ConvertType(out[1], new(uint64)).(*uint64)
   527  	outstruct.CumulativeBinCrossed = *abi.ConvertType(out[2], new(uint64)).(*uint64)
   528  
   529  	return *outstruct, err
   530  
   531  }
   532  
   533  // GetOracleSampleAt is a free data retrieval call binding the contract method 0x8940a16a.
   534  //
   535  // Solidity: function getOracleSampleAt(uint40 lookupTimestamp) view returns(uint64 cumulativeId, uint64 cumulativeVolatility, uint64 cumulativeBinCrossed)
   536  func (_ILBPair *ILBPairSession) GetOracleSampleAt(lookupTimestamp *big.Int) (struct {
   537  	CumulativeId         uint64
   538  	CumulativeVolatility uint64
   539  	CumulativeBinCrossed uint64
   540  }, error) {
   541  	return _ILBPair.Contract.GetOracleSampleAt(&_ILBPair.CallOpts, lookupTimestamp)
   542  }
   543  
   544  // GetOracleSampleAt is a free data retrieval call binding the contract method 0x8940a16a.
   545  //
   546  // Solidity: function getOracleSampleAt(uint40 lookupTimestamp) view returns(uint64 cumulativeId, uint64 cumulativeVolatility, uint64 cumulativeBinCrossed)
   547  func (_ILBPair *ILBPairCallerSession) GetOracleSampleAt(lookupTimestamp *big.Int) (struct {
   548  	CumulativeId         uint64
   549  	CumulativeVolatility uint64
   550  	CumulativeBinCrossed uint64
   551  }, error) {
   552  	return _ILBPair.Contract.GetOracleSampleAt(&_ILBPair.CallOpts, lookupTimestamp)
   553  }
   554  
   555  // GetPriceFromId is a free data retrieval call binding the contract method 0x4c7cffbd.
   556  //
   557  // Solidity: function getPriceFromId(uint24 id) view returns(uint256 price)
   558  func (_ILBPair *ILBPairCaller) GetPriceFromId(opts *bind.CallOpts, id *big.Int) (*big.Int, error) {
   559  	var out []interface{}
   560  	err := _ILBPair.contract.Call(opts, &out, "getPriceFromId", id)
   561  
   562  	if err != nil {
   563  		return *new(*big.Int), err
   564  	}
   565  
   566  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   567  
   568  	return out0, err
   569  
   570  }
   571  
   572  // GetPriceFromId is a free data retrieval call binding the contract method 0x4c7cffbd.
   573  //
   574  // Solidity: function getPriceFromId(uint24 id) view returns(uint256 price)
   575  func (_ILBPair *ILBPairSession) GetPriceFromId(id *big.Int) (*big.Int, error) {
   576  	return _ILBPair.Contract.GetPriceFromId(&_ILBPair.CallOpts, id)
   577  }
   578  
   579  // GetPriceFromId is a free data retrieval call binding the contract method 0x4c7cffbd.
   580  //
   581  // Solidity: function getPriceFromId(uint24 id) view returns(uint256 price)
   582  func (_ILBPair *ILBPairCallerSession) GetPriceFromId(id *big.Int) (*big.Int, error) {
   583  	return _ILBPair.Contract.GetPriceFromId(&_ILBPair.CallOpts, id)
   584  }
   585  
   586  // GetProtocolFees is a free data retrieval call binding the contract method 0xd8dfcea0.
   587  //
   588  // Solidity: function getProtocolFees() view returns(uint128 protocolFeeX, uint128 protocolFeeY)
   589  func (_ILBPair *ILBPairCaller) GetProtocolFees(opts *bind.CallOpts) (struct {
   590  	ProtocolFeeX *big.Int
   591  	ProtocolFeeY *big.Int
   592  }, error) {
   593  	var out []interface{}
   594  	err := _ILBPair.contract.Call(opts, &out, "getProtocolFees")
   595  
   596  	outstruct := new(struct {
   597  		ProtocolFeeX *big.Int
   598  		ProtocolFeeY *big.Int
   599  	})
   600  	if err != nil {
   601  		return *outstruct, err
   602  	}
   603  
   604  	outstruct.ProtocolFeeX = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   605  	outstruct.ProtocolFeeY = *abi.ConvertType(out[1], new(*big.Int)).(**big.Int)
   606  
   607  	return *outstruct, err
   608  
   609  }
   610  
   611  // GetProtocolFees is a free data retrieval call binding the contract method 0xd8dfcea0.
   612  //
   613  // Solidity: function getProtocolFees() view returns(uint128 protocolFeeX, uint128 protocolFeeY)
   614  func (_ILBPair *ILBPairSession) GetProtocolFees() (struct {
   615  	ProtocolFeeX *big.Int
   616  	ProtocolFeeY *big.Int
   617  }, error) {
   618  	return _ILBPair.Contract.GetProtocolFees(&_ILBPair.CallOpts)
   619  }
   620  
   621  // GetProtocolFees is a free data retrieval call binding the contract method 0xd8dfcea0.
   622  //
   623  // Solidity: function getProtocolFees() view returns(uint128 protocolFeeX, uint128 protocolFeeY)
   624  func (_ILBPair *ILBPairCallerSession) GetProtocolFees() (struct {
   625  	ProtocolFeeX *big.Int
   626  	ProtocolFeeY *big.Int
   627  }, error) {
   628  	return _ILBPair.Contract.GetProtocolFees(&_ILBPair.CallOpts)
   629  }
   630  
   631  // GetReserves is a free data retrieval call binding the contract method 0x0902f1ac.
   632  //
   633  // Solidity: function getReserves() view returns(uint128 reserveX, uint128 reserveY)
   634  func (_ILBPair *ILBPairCaller) GetReserves(opts *bind.CallOpts) (struct {
   635  	ReserveX *big.Int
   636  	ReserveY *big.Int
   637  }, error) {
   638  	var out []interface{}
   639  	err := _ILBPair.contract.Call(opts, &out, "getReserves")
   640  
   641  	outstruct := new(struct {
   642  		ReserveX *big.Int
   643  		ReserveY *big.Int
   644  	})
   645  	if err != nil {
   646  		return *outstruct, err
   647  	}
   648  
   649  	outstruct.ReserveX = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   650  	outstruct.ReserveY = *abi.ConvertType(out[1], new(*big.Int)).(**big.Int)
   651  
   652  	return *outstruct, err
   653  
   654  }
   655  
   656  // GetReserves is a free data retrieval call binding the contract method 0x0902f1ac.
   657  //
   658  // Solidity: function getReserves() view returns(uint128 reserveX, uint128 reserveY)
   659  func (_ILBPair *ILBPairSession) GetReserves() (struct {
   660  	ReserveX *big.Int
   661  	ReserveY *big.Int
   662  }, error) {
   663  	return _ILBPair.Contract.GetReserves(&_ILBPair.CallOpts)
   664  }
   665  
   666  // GetReserves is a free data retrieval call binding the contract method 0x0902f1ac.
   667  //
   668  // Solidity: function getReserves() view returns(uint128 reserveX, uint128 reserveY)
   669  func (_ILBPair *ILBPairCallerSession) GetReserves() (struct {
   670  	ReserveX *big.Int
   671  	ReserveY *big.Int
   672  }, error) {
   673  	return _ILBPair.Contract.GetReserves(&_ILBPair.CallOpts)
   674  }
   675  
   676  // GetStaticFeeParameters is a free data retrieval call binding the contract method 0x7ca0de30.
   677  //
   678  // Solidity: function getStaticFeeParameters() view returns(uint16 baseFactor, uint16 filterPeriod, uint16 decayPeriod, uint16 reductionFactor, uint24 variableFeeControl, uint16 protocolShare, uint24 maxVolatilityAccumulator)
   679  func (_ILBPair *ILBPairCaller) GetStaticFeeParameters(opts *bind.CallOpts) (struct {
   680  	BaseFactor               uint16
   681  	FilterPeriod             uint16
   682  	DecayPeriod              uint16
   683  	ReductionFactor          uint16
   684  	VariableFeeControl       *big.Int
   685  	ProtocolShare            uint16
   686  	MaxVolatilityAccumulator *big.Int
   687  }, error) {
   688  	var out []interface{}
   689  	err := _ILBPair.contract.Call(opts, &out, "getStaticFeeParameters")
   690  
   691  	outstruct := new(struct {
   692  		BaseFactor               uint16
   693  		FilterPeriod             uint16
   694  		DecayPeriod              uint16
   695  		ReductionFactor          uint16
   696  		VariableFeeControl       *big.Int
   697  		ProtocolShare            uint16
   698  		MaxVolatilityAccumulator *big.Int
   699  	})
   700  	if err != nil {
   701  		return *outstruct, err
   702  	}
   703  
   704  	outstruct.BaseFactor = *abi.ConvertType(out[0], new(uint16)).(*uint16)
   705  	outstruct.FilterPeriod = *abi.ConvertType(out[1], new(uint16)).(*uint16)
   706  	outstruct.DecayPeriod = *abi.ConvertType(out[2], new(uint16)).(*uint16)
   707  	outstruct.ReductionFactor = *abi.ConvertType(out[3], new(uint16)).(*uint16)
   708  	outstruct.VariableFeeControl = *abi.ConvertType(out[4], new(*big.Int)).(**big.Int)
   709  	outstruct.ProtocolShare = *abi.ConvertType(out[5], new(uint16)).(*uint16)
   710  	outstruct.MaxVolatilityAccumulator = *abi.ConvertType(out[6], new(*big.Int)).(**big.Int)
   711  
   712  	return *outstruct, err
   713  
   714  }
   715  
   716  // GetStaticFeeParameters is a free data retrieval call binding the contract method 0x7ca0de30.
   717  //
   718  // Solidity: function getStaticFeeParameters() view returns(uint16 baseFactor, uint16 filterPeriod, uint16 decayPeriod, uint16 reductionFactor, uint24 variableFeeControl, uint16 protocolShare, uint24 maxVolatilityAccumulator)
   719  func (_ILBPair *ILBPairSession) GetStaticFeeParameters() (struct {
   720  	BaseFactor               uint16
   721  	FilterPeriod             uint16
   722  	DecayPeriod              uint16
   723  	ReductionFactor          uint16
   724  	VariableFeeControl       *big.Int
   725  	ProtocolShare            uint16
   726  	MaxVolatilityAccumulator *big.Int
   727  }, error) {
   728  	return _ILBPair.Contract.GetStaticFeeParameters(&_ILBPair.CallOpts)
   729  }
   730  
   731  // GetStaticFeeParameters is a free data retrieval call binding the contract method 0x7ca0de30.
   732  //
   733  // Solidity: function getStaticFeeParameters() view returns(uint16 baseFactor, uint16 filterPeriod, uint16 decayPeriod, uint16 reductionFactor, uint24 variableFeeControl, uint16 protocolShare, uint24 maxVolatilityAccumulator)
   734  func (_ILBPair *ILBPairCallerSession) GetStaticFeeParameters() (struct {
   735  	BaseFactor               uint16
   736  	FilterPeriod             uint16
   737  	DecayPeriod              uint16
   738  	ReductionFactor          uint16
   739  	VariableFeeControl       *big.Int
   740  	ProtocolShare            uint16
   741  	MaxVolatilityAccumulator *big.Int
   742  }, error) {
   743  	return _ILBPair.Contract.GetStaticFeeParameters(&_ILBPair.CallOpts)
   744  }
   745  
   746  // GetSwapIn is a free data retrieval call binding the contract method 0xabcd7830.
   747  //
   748  // Solidity: function getSwapIn(uint128 amountOut, bool swapForY) view returns(uint128 amountIn, uint128 amountOutLeft, uint128 fee)
   749  func (_ILBPair *ILBPairCaller) GetSwapIn(opts *bind.CallOpts, amountOut *big.Int, swapForY bool) (struct {
   750  	AmountIn      *big.Int
   751  	AmountOutLeft *big.Int
   752  	Fee           *big.Int
   753  }, error) {
   754  	var out []interface{}
   755  	err := _ILBPair.contract.Call(opts, &out, "getSwapIn", amountOut, swapForY)
   756  
   757  	outstruct := new(struct {
   758  		AmountIn      *big.Int
   759  		AmountOutLeft *big.Int
   760  		Fee           *big.Int
   761  	})
   762  	if err != nil {
   763  		return *outstruct, err
   764  	}
   765  
   766  	outstruct.AmountIn = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   767  	outstruct.AmountOutLeft = *abi.ConvertType(out[1], new(*big.Int)).(**big.Int)
   768  	outstruct.Fee = *abi.ConvertType(out[2], new(*big.Int)).(**big.Int)
   769  
   770  	return *outstruct, err
   771  
   772  }
   773  
   774  // GetSwapIn is a free data retrieval call binding the contract method 0xabcd7830.
   775  //
   776  // Solidity: function getSwapIn(uint128 amountOut, bool swapForY) view returns(uint128 amountIn, uint128 amountOutLeft, uint128 fee)
   777  func (_ILBPair *ILBPairSession) GetSwapIn(amountOut *big.Int, swapForY bool) (struct {
   778  	AmountIn      *big.Int
   779  	AmountOutLeft *big.Int
   780  	Fee           *big.Int
   781  }, error) {
   782  	return _ILBPair.Contract.GetSwapIn(&_ILBPair.CallOpts, amountOut, swapForY)
   783  }
   784  
   785  // GetSwapIn is a free data retrieval call binding the contract method 0xabcd7830.
   786  //
   787  // Solidity: function getSwapIn(uint128 amountOut, bool swapForY) view returns(uint128 amountIn, uint128 amountOutLeft, uint128 fee)
   788  func (_ILBPair *ILBPairCallerSession) GetSwapIn(amountOut *big.Int, swapForY bool) (struct {
   789  	AmountIn      *big.Int
   790  	AmountOutLeft *big.Int
   791  	Fee           *big.Int
   792  }, error) {
   793  	return _ILBPair.Contract.GetSwapIn(&_ILBPair.CallOpts, amountOut, swapForY)
   794  }
   795  
   796  // GetSwapOut is a free data retrieval call binding the contract method 0xe77366f8.
   797  //
   798  // Solidity: function getSwapOut(uint128 amountIn, bool swapForY) view returns(uint128 amountInLeft, uint128 amountOut, uint128 fee)
   799  func (_ILBPair *ILBPairCaller) GetSwapOut(opts *bind.CallOpts, amountIn *big.Int, swapForY bool) (struct {
   800  	AmountInLeft *big.Int
   801  	AmountOut    *big.Int
   802  	Fee          *big.Int
   803  }, error) {
   804  	var out []interface{}
   805  	err := _ILBPair.contract.Call(opts, &out, "getSwapOut", amountIn, swapForY)
   806  
   807  	outstruct := new(struct {
   808  		AmountInLeft *big.Int
   809  		AmountOut    *big.Int
   810  		Fee          *big.Int
   811  	})
   812  	if err != nil {
   813  		return *outstruct, err
   814  	}
   815  
   816  	outstruct.AmountInLeft = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   817  	outstruct.AmountOut = *abi.ConvertType(out[1], new(*big.Int)).(**big.Int)
   818  	outstruct.Fee = *abi.ConvertType(out[2], new(*big.Int)).(**big.Int)
   819  
   820  	return *outstruct, err
   821  
   822  }
   823  
   824  // GetSwapOut is a free data retrieval call binding the contract method 0xe77366f8.
   825  //
   826  // Solidity: function getSwapOut(uint128 amountIn, bool swapForY) view returns(uint128 amountInLeft, uint128 amountOut, uint128 fee)
   827  func (_ILBPair *ILBPairSession) GetSwapOut(amountIn *big.Int, swapForY bool) (struct {
   828  	AmountInLeft *big.Int
   829  	AmountOut    *big.Int
   830  	Fee          *big.Int
   831  }, error) {
   832  	return _ILBPair.Contract.GetSwapOut(&_ILBPair.CallOpts, amountIn, swapForY)
   833  }
   834  
   835  // GetSwapOut is a free data retrieval call binding the contract method 0xe77366f8.
   836  //
   837  // Solidity: function getSwapOut(uint128 amountIn, bool swapForY) view returns(uint128 amountInLeft, uint128 amountOut, uint128 fee)
   838  func (_ILBPair *ILBPairCallerSession) GetSwapOut(amountIn *big.Int, swapForY bool) (struct {
   839  	AmountInLeft *big.Int
   840  	AmountOut    *big.Int
   841  	Fee          *big.Int
   842  }, error) {
   843  	return _ILBPair.Contract.GetSwapOut(&_ILBPair.CallOpts, amountIn, swapForY)
   844  }
   845  
   846  // GetTokenX is a free data retrieval call binding the contract method 0x05e8746d.
   847  //
   848  // Solidity: function getTokenX() view returns(address tokenX)
   849  func (_ILBPair *ILBPairCaller) GetTokenX(opts *bind.CallOpts) (common.Address, error) {
   850  	var out []interface{}
   851  	err := _ILBPair.contract.Call(opts, &out, "getTokenX")
   852  
   853  	if err != nil {
   854  		return *new(common.Address), err
   855  	}
   856  
   857  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   858  
   859  	return out0, err
   860  
   861  }
   862  
   863  // GetTokenX is a free data retrieval call binding the contract method 0x05e8746d.
   864  //
   865  // Solidity: function getTokenX() view returns(address tokenX)
   866  func (_ILBPair *ILBPairSession) GetTokenX() (common.Address, error) {
   867  	return _ILBPair.Contract.GetTokenX(&_ILBPair.CallOpts)
   868  }
   869  
   870  // GetTokenX is a free data retrieval call binding the contract method 0x05e8746d.
   871  //
   872  // Solidity: function getTokenX() view returns(address tokenX)
   873  func (_ILBPair *ILBPairCallerSession) GetTokenX() (common.Address, error) {
   874  	return _ILBPair.Contract.GetTokenX(&_ILBPair.CallOpts)
   875  }
   876  
   877  // GetTokenY is a free data retrieval call binding the contract method 0xda10610c.
   878  //
   879  // Solidity: function getTokenY() view returns(address tokenY)
   880  func (_ILBPair *ILBPairCaller) GetTokenY(opts *bind.CallOpts) (common.Address, error) {
   881  	var out []interface{}
   882  	err := _ILBPair.contract.Call(opts, &out, "getTokenY")
   883  
   884  	if err != nil {
   885  		return *new(common.Address), err
   886  	}
   887  
   888  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   889  
   890  	return out0, err
   891  
   892  }
   893  
   894  // GetTokenY is a free data retrieval call binding the contract method 0xda10610c.
   895  //
   896  // Solidity: function getTokenY() view returns(address tokenY)
   897  func (_ILBPair *ILBPairSession) GetTokenY() (common.Address, error) {
   898  	return _ILBPair.Contract.GetTokenY(&_ILBPair.CallOpts)
   899  }
   900  
   901  // GetTokenY is a free data retrieval call binding the contract method 0xda10610c.
   902  //
   903  // Solidity: function getTokenY() view returns(address tokenY)
   904  func (_ILBPair *ILBPairCallerSession) GetTokenY() (common.Address, error) {
   905  	return _ILBPair.Contract.GetTokenY(&_ILBPair.CallOpts)
   906  }
   907  
   908  // GetVariableFeeParameters is a free data retrieval call binding the contract method 0x8d7024e5.
   909  //
   910  // Solidity: function getVariableFeeParameters() view returns(uint24 volatilityAccumulator, uint24 volatilityReference, uint24 idReference, uint40 timeOfLastUpdate)
   911  func (_ILBPair *ILBPairCaller) GetVariableFeeParameters(opts *bind.CallOpts) (struct {
   912  	VolatilityAccumulator *big.Int
   913  	VolatilityReference   *big.Int
   914  	IdReference           *big.Int
   915  	TimeOfLastUpdate      *big.Int
   916  }, error) {
   917  	var out []interface{}
   918  	err := _ILBPair.contract.Call(opts, &out, "getVariableFeeParameters")
   919  
   920  	outstruct := new(struct {
   921  		VolatilityAccumulator *big.Int
   922  		VolatilityReference   *big.Int
   923  		IdReference           *big.Int
   924  		TimeOfLastUpdate      *big.Int
   925  	})
   926  	if err != nil {
   927  		return *outstruct, err
   928  	}
   929  
   930  	outstruct.VolatilityAccumulator = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   931  	outstruct.VolatilityReference = *abi.ConvertType(out[1], new(*big.Int)).(**big.Int)
   932  	outstruct.IdReference = *abi.ConvertType(out[2], new(*big.Int)).(**big.Int)
   933  	outstruct.TimeOfLastUpdate = *abi.ConvertType(out[3], new(*big.Int)).(**big.Int)
   934  
   935  	return *outstruct, err
   936  
   937  }
   938  
   939  // GetVariableFeeParameters is a free data retrieval call binding the contract method 0x8d7024e5.
   940  //
   941  // Solidity: function getVariableFeeParameters() view returns(uint24 volatilityAccumulator, uint24 volatilityReference, uint24 idReference, uint40 timeOfLastUpdate)
   942  func (_ILBPair *ILBPairSession) GetVariableFeeParameters() (struct {
   943  	VolatilityAccumulator *big.Int
   944  	VolatilityReference   *big.Int
   945  	IdReference           *big.Int
   946  	TimeOfLastUpdate      *big.Int
   947  }, error) {
   948  	return _ILBPair.Contract.GetVariableFeeParameters(&_ILBPair.CallOpts)
   949  }
   950  
   951  // GetVariableFeeParameters is a free data retrieval call binding the contract method 0x8d7024e5.
   952  //
   953  // Solidity: function getVariableFeeParameters() view returns(uint24 volatilityAccumulator, uint24 volatilityReference, uint24 idReference, uint40 timeOfLastUpdate)
   954  func (_ILBPair *ILBPairCallerSession) GetVariableFeeParameters() (struct {
   955  	VolatilityAccumulator *big.Int
   956  	VolatilityReference   *big.Int
   957  	IdReference           *big.Int
   958  	TimeOfLastUpdate      *big.Int
   959  }, error) {
   960  	return _ILBPair.Contract.GetVariableFeeParameters(&_ILBPair.CallOpts)
   961  }
   962  
   963  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
   964  //
   965  // Solidity: function isApprovedForAll(address owner, address spender) view returns(bool)
   966  func (_ILBPair *ILBPairCaller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, spender common.Address) (bool, error) {
   967  	var out []interface{}
   968  	err := _ILBPair.contract.Call(opts, &out, "isApprovedForAll", owner, spender)
   969  
   970  	if err != nil {
   971  		return *new(bool), err
   972  	}
   973  
   974  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   975  
   976  	return out0, err
   977  
   978  }
   979  
   980  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
   981  //
   982  // Solidity: function isApprovedForAll(address owner, address spender) view returns(bool)
   983  func (_ILBPair *ILBPairSession) IsApprovedForAll(owner common.Address, spender common.Address) (bool, error) {
   984  	return _ILBPair.Contract.IsApprovedForAll(&_ILBPair.CallOpts, owner, spender)
   985  }
   986  
   987  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
   988  //
   989  // Solidity: function isApprovedForAll(address owner, address spender) view returns(bool)
   990  func (_ILBPair *ILBPairCallerSession) IsApprovedForAll(owner common.Address, spender common.Address) (bool, error) {
   991  	return _ILBPair.Contract.IsApprovedForAll(&_ILBPair.CallOpts, owner, spender)
   992  }
   993  
   994  // Name is a free data retrieval call binding the contract method 0x06fdde03.
   995  //
   996  // Solidity: function name() view returns(string)
   997  func (_ILBPair *ILBPairCaller) Name(opts *bind.CallOpts) (string, error) {
   998  	var out []interface{}
   999  	err := _ILBPair.contract.Call(opts, &out, "name")
  1000  
  1001  	if err != nil {
  1002  		return *new(string), err
  1003  	}
  1004  
  1005  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
  1006  
  1007  	return out0, err
  1008  
  1009  }
  1010  
  1011  // Name is a free data retrieval call binding the contract method 0x06fdde03.
  1012  //
  1013  // Solidity: function name() view returns(string)
  1014  func (_ILBPair *ILBPairSession) Name() (string, error) {
  1015  	return _ILBPair.Contract.Name(&_ILBPair.CallOpts)
  1016  }
  1017  
  1018  // Name is a free data retrieval call binding the contract method 0x06fdde03.
  1019  //
  1020  // Solidity: function name() view returns(string)
  1021  func (_ILBPair *ILBPairCallerSession) Name() (string, error) {
  1022  	return _ILBPair.Contract.Name(&_ILBPair.CallOpts)
  1023  }
  1024  
  1025  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
  1026  //
  1027  // Solidity: function symbol() view returns(string)
  1028  func (_ILBPair *ILBPairCaller) Symbol(opts *bind.CallOpts) (string, error) {
  1029  	var out []interface{}
  1030  	err := _ILBPair.contract.Call(opts, &out, "symbol")
  1031  
  1032  	if err != nil {
  1033  		return *new(string), err
  1034  	}
  1035  
  1036  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
  1037  
  1038  	return out0, err
  1039  
  1040  }
  1041  
  1042  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
  1043  //
  1044  // Solidity: function symbol() view returns(string)
  1045  func (_ILBPair *ILBPairSession) Symbol() (string, error) {
  1046  	return _ILBPair.Contract.Symbol(&_ILBPair.CallOpts)
  1047  }
  1048  
  1049  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
  1050  //
  1051  // Solidity: function symbol() view returns(string)
  1052  func (_ILBPair *ILBPairCallerSession) Symbol() (string, error) {
  1053  	return _ILBPair.Contract.Symbol(&_ILBPair.CallOpts)
  1054  }
  1055  
  1056  // TotalSupply is a free data retrieval call binding the contract method 0xbd85b039.
  1057  //
  1058  // Solidity: function totalSupply(uint256 id) view returns(uint256)
  1059  func (_ILBPair *ILBPairCaller) TotalSupply(opts *bind.CallOpts, id *big.Int) (*big.Int, error) {
  1060  	var out []interface{}
  1061  	err := _ILBPair.contract.Call(opts, &out, "totalSupply", id)
  1062  
  1063  	if err != nil {
  1064  		return *new(*big.Int), err
  1065  	}
  1066  
  1067  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  1068  
  1069  	return out0, err
  1070  
  1071  }
  1072  
  1073  // TotalSupply is a free data retrieval call binding the contract method 0xbd85b039.
  1074  //
  1075  // Solidity: function totalSupply(uint256 id) view returns(uint256)
  1076  func (_ILBPair *ILBPairSession) TotalSupply(id *big.Int) (*big.Int, error) {
  1077  	return _ILBPair.Contract.TotalSupply(&_ILBPair.CallOpts, id)
  1078  }
  1079  
  1080  // TotalSupply is a free data retrieval call binding the contract method 0xbd85b039.
  1081  //
  1082  // Solidity: function totalSupply(uint256 id) view returns(uint256)
  1083  func (_ILBPair *ILBPairCallerSession) TotalSupply(id *big.Int) (*big.Int, error) {
  1084  	return _ILBPair.Contract.TotalSupply(&_ILBPair.CallOpts, id)
  1085  }
  1086  
  1087  // ApproveForAll is a paid mutator transaction binding the contract method 0xe584b654.
  1088  //
  1089  // Solidity: function approveForAll(address spender, bool approved) returns()
  1090  func (_ILBPair *ILBPairTransactor) ApproveForAll(opts *bind.TransactOpts, spender common.Address, approved bool) (*types.Transaction, error) {
  1091  	return _ILBPair.contract.Transact(opts, "approveForAll", spender, approved)
  1092  }
  1093  
  1094  // ApproveForAll is a paid mutator transaction binding the contract method 0xe584b654.
  1095  //
  1096  // Solidity: function approveForAll(address spender, bool approved) returns()
  1097  func (_ILBPair *ILBPairSession) ApproveForAll(spender common.Address, approved bool) (*types.Transaction, error) {
  1098  	return _ILBPair.Contract.ApproveForAll(&_ILBPair.TransactOpts, spender, approved)
  1099  }
  1100  
  1101  // ApproveForAll is a paid mutator transaction binding the contract method 0xe584b654.
  1102  //
  1103  // Solidity: function approveForAll(address spender, bool approved) returns()
  1104  func (_ILBPair *ILBPairTransactorSession) ApproveForAll(spender common.Address, approved bool) (*types.Transaction, error) {
  1105  	return _ILBPair.Contract.ApproveForAll(&_ILBPair.TransactOpts, spender, approved)
  1106  }
  1107  
  1108  // BatchTransferFrom is a paid mutator transaction binding the contract method 0x17fad7fc.
  1109  //
  1110  // Solidity: function batchTransferFrom(address from, address to, uint256[] ids, uint256[] amounts) returns()
  1111  func (_ILBPair *ILBPairTransactor) BatchTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, ids []*big.Int, amounts []*big.Int) (*types.Transaction, error) {
  1112  	return _ILBPair.contract.Transact(opts, "batchTransferFrom", from, to, ids, amounts)
  1113  }
  1114  
  1115  // BatchTransferFrom is a paid mutator transaction binding the contract method 0x17fad7fc.
  1116  //
  1117  // Solidity: function batchTransferFrom(address from, address to, uint256[] ids, uint256[] amounts) returns()
  1118  func (_ILBPair *ILBPairSession) BatchTransferFrom(from common.Address, to common.Address, ids []*big.Int, amounts []*big.Int) (*types.Transaction, error) {
  1119  	return _ILBPair.Contract.BatchTransferFrom(&_ILBPair.TransactOpts, from, to, ids, amounts)
  1120  }
  1121  
  1122  // BatchTransferFrom is a paid mutator transaction binding the contract method 0x17fad7fc.
  1123  //
  1124  // Solidity: function batchTransferFrom(address from, address to, uint256[] ids, uint256[] amounts) returns()
  1125  func (_ILBPair *ILBPairTransactorSession) BatchTransferFrom(from common.Address, to common.Address, ids []*big.Int, amounts []*big.Int) (*types.Transaction, error) {
  1126  	return _ILBPair.Contract.BatchTransferFrom(&_ILBPair.TransactOpts, from, to, ids, amounts)
  1127  }
  1128  
  1129  // Burn is a paid mutator transaction binding the contract method 0xc9939f5e.
  1130  //
  1131  // Solidity: function burn(address from, address to, uint256[] ids, uint256[] amountsToBurn) returns(bytes32[] amounts)
  1132  func (_ILBPair *ILBPairTransactor) Burn(opts *bind.TransactOpts, from common.Address, to common.Address, ids []*big.Int, amountsToBurn []*big.Int) (*types.Transaction, error) {
  1133  	return _ILBPair.contract.Transact(opts, "burn", from, to, ids, amountsToBurn)
  1134  }
  1135  
  1136  // Burn is a paid mutator transaction binding the contract method 0xc9939f5e.
  1137  //
  1138  // Solidity: function burn(address from, address to, uint256[] ids, uint256[] amountsToBurn) returns(bytes32[] amounts)
  1139  func (_ILBPair *ILBPairSession) Burn(from common.Address, to common.Address, ids []*big.Int, amountsToBurn []*big.Int) (*types.Transaction, error) {
  1140  	return _ILBPair.Contract.Burn(&_ILBPair.TransactOpts, from, to, ids, amountsToBurn)
  1141  }
  1142  
  1143  // Burn is a paid mutator transaction binding the contract method 0xc9939f5e.
  1144  //
  1145  // Solidity: function burn(address from, address to, uint256[] ids, uint256[] amountsToBurn) returns(bytes32[] amounts)
  1146  func (_ILBPair *ILBPairTransactorSession) Burn(from common.Address, to common.Address, ids []*big.Int, amountsToBurn []*big.Int) (*types.Transaction, error) {
  1147  	return _ILBPair.Contract.Burn(&_ILBPair.TransactOpts, from, to, ids, amountsToBurn)
  1148  }
  1149  
  1150  // CollectProtocolFees is a paid mutator transaction binding the contract method 0xa1af5b9a.
  1151  //
  1152  // Solidity: function collectProtocolFees() returns(bytes32 collectedProtocolFees)
  1153  func (_ILBPair *ILBPairTransactor) CollectProtocolFees(opts *bind.TransactOpts) (*types.Transaction, error) {
  1154  	return _ILBPair.contract.Transact(opts, "collectProtocolFees")
  1155  }
  1156  
  1157  // CollectProtocolFees is a paid mutator transaction binding the contract method 0xa1af5b9a.
  1158  //
  1159  // Solidity: function collectProtocolFees() returns(bytes32 collectedProtocolFees)
  1160  func (_ILBPair *ILBPairSession) CollectProtocolFees() (*types.Transaction, error) {
  1161  	return _ILBPair.Contract.CollectProtocolFees(&_ILBPair.TransactOpts)
  1162  }
  1163  
  1164  // CollectProtocolFees is a paid mutator transaction binding the contract method 0xa1af5b9a.
  1165  //
  1166  // Solidity: function collectProtocolFees() returns(bytes32 collectedProtocolFees)
  1167  func (_ILBPair *ILBPairTransactorSession) CollectProtocolFees() (*types.Transaction, error) {
  1168  	return _ILBPair.Contract.CollectProtocolFees(&_ILBPair.TransactOpts)
  1169  }
  1170  
  1171  // FlashLoan is a paid mutator transaction binding the contract method 0xea3446bf.
  1172  //
  1173  // Solidity: function flashLoan(address receiver, bytes32 amounts, bytes data) returns()
  1174  func (_ILBPair *ILBPairTransactor) FlashLoan(opts *bind.TransactOpts, receiver common.Address, amounts [32]byte, data []byte) (*types.Transaction, error) {
  1175  	return _ILBPair.contract.Transact(opts, "flashLoan", receiver, amounts, data)
  1176  }
  1177  
  1178  // FlashLoan is a paid mutator transaction binding the contract method 0xea3446bf.
  1179  //
  1180  // Solidity: function flashLoan(address receiver, bytes32 amounts, bytes data) returns()
  1181  func (_ILBPair *ILBPairSession) FlashLoan(receiver common.Address, amounts [32]byte, data []byte) (*types.Transaction, error) {
  1182  	return _ILBPair.Contract.FlashLoan(&_ILBPair.TransactOpts, receiver, amounts, data)
  1183  }
  1184  
  1185  // FlashLoan is a paid mutator transaction binding the contract method 0xea3446bf.
  1186  //
  1187  // Solidity: function flashLoan(address receiver, bytes32 amounts, bytes data) returns()
  1188  func (_ILBPair *ILBPairTransactorSession) FlashLoan(receiver common.Address, amounts [32]byte, data []byte) (*types.Transaction, error) {
  1189  	return _ILBPair.Contract.FlashLoan(&_ILBPair.TransactOpts, receiver, amounts, data)
  1190  }
  1191  
  1192  // ForceDecay is a paid mutator transaction binding the contract method 0xd3b9fbe4.
  1193  //
  1194  // Solidity: function forceDecay() returns()
  1195  func (_ILBPair *ILBPairTransactor) ForceDecay(opts *bind.TransactOpts) (*types.Transaction, error) {
  1196  	return _ILBPair.contract.Transact(opts, "forceDecay")
  1197  }
  1198  
  1199  // ForceDecay is a paid mutator transaction binding the contract method 0xd3b9fbe4.
  1200  //
  1201  // Solidity: function forceDecay() returns()
  1202  func (_ILBPair *ILBPairSession) ForceDecay() (*types.Transaction, error) {
  1203  	return _ILBPair.Contract.ForceDecay(&_ILBPair.TransactOpts)
  1204  }
  1205  
  1206  // ForceDecay is a paid mutator transaction binding the contract method 0xd3b9fbe4.
  1207  //
  1208  // Solidity: function forceDecay() returns()
  1209  func (_ILBPair *ILBPairTransactorSession) ForceDecay() (*types.Transaction, error) {
  1210  	return _ILBPair.Contract.ForceDecay(&_ILBPair.TransactOpts)
  1211  }
  1212  
  1213  // IncreaseOracleLength is a paid mutator transaction binding the contract method 0xc7bd6586.
  1214  //
  1215  // Solidity: function increaseOracleLength(uint16 newLength) returns()
  1216  func (_ILBPair *ILBPairTransactor) IncreaseOracleLength(opts *bind.TransactOpts, newLength uint16) (*types.Transaction, error) {
  1217  	return _ILBPair.contract.Transact(opts, "increaseOracleLength", newLength)
  1218  }
  1219  
  1220  // IncreaseOracleLength is a paid mutator transaction binding the contract method 0xc7bd6586.
  1221  //
  1222  // Solidity: function increaseOracleLength(uint16 newLength) returns()
  1223  func (_ILBPair *ILBPairSession) IncreaseOracleLength(newLength uint16) (*types.Transaction, error) {
  1224  	return _ILBPair.Contract.IncreaseOracleLength(&_ILBPair.TransactOpts, newLength)
  1225  }
  1226  
  1227  // IncreaseOracleLength is a paid mutator transaction binding the contract method 0xc7bd6586.
  1228  //
  1229  // Solidity: function increaseOracleLength(uint16 newLength) returns()
  1230  func (_ILBPair *ILBPairTransactorSession) IncreaseOracleLength(newLength uint16) (*types.Transaction, error) {
  1231  	return _ILBPair.Contract.IncreaseOracleLength(&_ILBPair.TransactOpts, newLength)
  1232  }
  1233  
  1234  // Initialize is a paid mutator transaction binding the contract method 0x47973bff.
  1235  //
  1236  // Solidity: function initialize(uint16 baseFactor, uint16 filterPeriod, uint16 decayPeriod, uint16 reductionFactor, uint24 variableFeeControl, uint16 protocolShare, uint24 maxVolatilityAccumulator, uint24 activeId) returns()
  1237  func (_ILBPair *ILBPairTransactor) Initialize(opts *bind.TransactOpts, baseFactor uint16, filterPeriod uint16, decayPeriod uint16, reductionFactor uint16, variableFeeControl *big.Int, protocolShare uint16, maxVolatilityAccumulator *big.Int, activeId *big.Int) (*types.Transaction, error) {
  1238  	return _ILBPair.contract.Transact(opts, "initialize", baseFactor, filterPeriod, decayPeriod, reductionFactor, variableFeeControl, protocolShare, maxVolatilityAccumulator, activeId)
  1239  }
  1240  
  1241  // Initialize is a paid mutator transaction binding the contract method 0x47973bff.
  1242  //
  1243  // Solidity: function initialize(uint16 baseFactor, uint16 filterPeriod, uint16 decayPeriod, uint16 reductionFactor, uint24 variableFeeControl, uint16 protocolShare, uint24 maxVolatilityAccumulator, uint24 activeId) returns()
  1244  func (_ILBPair *ILBPairSession) Initialize(baseFactor uint16, filterPeriod uint16, decayPeriod uint16, reductionFactor uint16, variableFeeControl *big.Int, protocolShare uint16, maxVolatilityAccumulator *big.Int, activeId *big.Int) (*types.Transaction, error) {
  1245  	return _ILBPair.Contract.Initialize(&_ILBPair.TransactOpts, baseFactor, filterPeriod, decayPeriod, reductionFactor, variableFeeControl, protocolShare, maxVolatilityAccumulator, activeId)
  1246  }
  1247  
  1248  // Initialize is a paid mutator transaction binding the contract method 0x47973bff.
  1249  //
  1250  // Solidity: function initialize(uint16 baseFactor, uint16 filterPeriod, uint16 decayPeriod, uint16 reductionFactor, uint24 variableFeeControl, uint16 protocolShare, uint24 maxVolatilityAccumulator, uint24 activeId) returns()
  1251  func (_ILBPair *ILBPairTransactorSession) Initialize(baseFactor uint16, filterPeriod uint16, decayPeriod uint16, reductionFactor uint16, variableFeeControl *big.Int, protocolShare uint16, maxVolatilityAccumulator *big.Int, activeId *big.Int) (*types.Transaction, error) {
  1252  	return _ILBPair.Contract.Initialize(&_ILBPair.TransactOpts, baseFactor, filterPeriod, decayPeriod, reductionFactor, variableFeeControl, protocolShare, maxVolatilityAccumulator, activeId)
  1253  }
  1254  
  1255  // Mint is a paid mutator transaction binding the contract method 0x383d15c5.
  1256  //
  1257  // Solidity: function mint(address to, bytes32[] liquidityConfigs, address refundTo) returns(bytes32 amountsReceived, bytes32 amountsLeft, uint256[] liquidityMinted)
  1258  func (_ILBPair *ILBPairTransactor) Mint(opts *bind.TransactOpts, to common.Address, liquidityConfigs [][32]byte, refundTo common.Address) (*types.Transaction, error) {
  1259  	return _ILBPair.contract.Transact(opts, "mint", to, liquidityConfigs, refundTo)
  1260  }
  1261  
  1262  // Mint is a paid mutator transaction binding the contract method 0x383d15c5.
  1263  //
  1264  // Solidity: function mint(address to, bytes32[] liquidityConfigs, address refundTo) returns(bytes32 amountsReceived, bytes32 amountsLeft, uint256[] liquidityMinted)
  1265  func (_ILBPair *ILBPairSession) Mint(to common.Address, liquidityConfigs [][32]byte, refundTo common.Address) (*types.Transaction, error) {
  1266  	return _ILBPair.Contract.Mint(&_ILBPair.TransactOpts, to, liquidityConfigs, refundTo)
  1267  }
  1268  
  1269  // Mint is a paid mutator transaction binding the contract method 0x383d15c5.
  1270  //
  1271  // Solidity: function mint(address to, bytes32[] liquidityConfigs, address refundTo) returns(bytes32 amountsReceived, bytes32 amountsLeft, uint256[] liquidityMinted)
  1272  func (_ILBPair *ILBPairTransactorSession) Mint(to common.Address, liquidityConfigs [][32]byte, refundTo common.Address) (*types.Transaction, error) {
  1273  	return _ILBPair.Contract.Mint(&_ILBPair.TransactOpts, to, liquidityConfigs, refundTo)
  1274  }
  1275  
  1276  // SetStaticFeeParameters is a paid mutator transaction binding the contract method 0x6653851a.
  1277  //
  1278  // Solidity: function setStaticFeeParameters(uint16 baseFactor, uint16 filterPeriod, uint16 decayPeriod, uint16 reductionFactor, uint24 variableFeeControl, uint16 protocolShare, uint24 maxVolatilityAccumulator) returns()
  1279  func (_ILBPair *ILBPairTransactor) SetStaticFeeParameters(opts *bind.TransactOpts, baseFactor uint16, filterPeriod uint16, decayPeriod uint16, reductionFactor uint16, variableFeeControl *big.Int, protocolShare uint16, maxVolatilityAccumulator *big.Int) (*types.Transaction, error) {
  1280  	return _ILBPair.contract.Transact(opts, "setStaticFeeParameters", baseFactor, filterPeriod, decayPeriod, reductionFactor, variableFeeControl, protocolShare, maxVolatilityAccumulator)
  1281  }
  1282  
  1283  // SetStaticFeeParameters is a paid mutator transaction binding the contract method 0x6653851a.
  1284  //
  1285  // Solidity: function setStaticFeeParameters(uint16 baseFactor, uint16 filterPeriod, uint16 decayPeriod, uint16 reductionFactor, uint24 variableFeeControl, uint16 protocolShare, uint24 maxVolatilityAccumulator) returns()
  1286  func (_ILBPair *ILBPairSession) SetStaticFeeParameters(baseFactor uint16, filterPeriod uint16, decayPeriod uint16, reductionFactor uint16, variableFeeControl *big.Int, protocolShare uint16, maxVolatilityAccumulator *big.Int) (*types.Transaction, error) {
  1287  	return _ILBPair.Contract.SetStaticFeeParameters(&_ILBPair.TransactOpts, baseFactor, filterPeriod, decayPeriod, reductionFactor, variableFeeControl, protocolShare, maxVolatilityAccumulator)
  1288  }
  1289  
  1290  // SetStaticFeeParameters is a paid mutator transaction binding the contract method 0x6653851a.
  1291  //
  1292  // Solidity: function setStaticFeeParameters(uint16 baseFactor, uint16 filterPeriod, uint16 decayPeriod, uint16 reductionFactor, uint24 variableFeeControl, uint16 protocolShare, uint24 maxVolatilityAccumulator) returns()
  1293  func (_ILBPair *ILBPairTransactorSession) SetStaticFeeParameters(baseFactor uint16, filterPeriod uint16, decayPeriod uint16, reductionFactor uint16, variableFeeControl *big.Int, protocolShare uint16, maxVolatilityAccumulator *big.Int) (*types.Transaction, error) {
  1294  	return _ILBPair.Contract.SetStaticFeeParameters(&_ILBPair.TransactOpts, baseFactor, filterPeriod, decayPeriod, reductionFactor, variableFeeControl, protocolShare, maxVolatilityAccumulator)
  1295  }
  1296  
  1297  // Swap is a paid mutator transaction binding the contract method 0x53c059a0.
  1298  //
  1299  // Solidity: function swap(bool swapForY, address to) returns(bytes32 amountsOut)
  1300  func (_ILBPair *ILBPairTransactor) Swap(opts *bind.TransactOpts, swapForY bool, to common.Address) (*types.Transaction, error) {
  1301  	return _ILBPair.contract.Transact(opts, "swap", swapForY, to)
  1302  }
  1303  
  1304  // Swap is a paid mutator transaction binding the contract method 0x53c059a0.
  1305  //
  1306  // Solidity: function swap(bool swapForY, address to) returns(bytes32 amountsOut)
  1307  func (_ILBPair *ILBPairSession) Swap(swapForY bool, to common.Address) (*types.Transaction, error) {
  1308  	return _ILBPair.Contract.Swap(&_ILBPair.TransactOpts, swapForY, to)
  1309  }
  1310  
  1311  // Swap is a paid mutator transaction binding the contract method 0x53c059a0.
  1312  //
  1313  // Solidity: function swap(bool swapForY, address to) returns(bytes32 amountsOut)
  1314  func (_ILBPair *ILBPairTransactorSession) Swap(swapForY bool, to common.Address) (*types.Transaction, error) {
  1315  	return _ILBPair.Contract.Swap(&_ILBPair.TransactOpts, swapForY, to)
  1316  }
  1317  
  1318  // ILBPairApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the ILBPair contract.
  1319  type ILBPairApprovalForAllIterator struct {
  1320  	Event *ILBPairApprovalForAll // Event containing the contract specifics and raw log
  1321  
  1322  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1323  	event    string              // Event name to use for unpacking event data
  1324  
  1325  	logs chan types.Log        // Log channel receiving the found contract events
  1326  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1327  	done bool                  // Whether the subscription completed delivering logs
  1328  	fail error                 // Occurred error to stop iteration
  1329  }
  1330  
  1331  // Next advances the iterator to the subsequent event, returning whether there
  1332  // are any more events found. In case of a retrieval or parsing error, false is
  1333  // returned and Error() can be queried for the exact failure.
  1334  func (it *ILBPairApprovalForAllIterator) Next() bool {
  1335  	// If the iterator failed, stop iterating
  1336  	if it.fail != nil {
  1337  		return false
  1338  	}
  1339  	// If the iterator completed, deliver directly whatever's available
  1340  	if it.done {
  1341  		select {
  1342  		case log := <-it.logs:
  1343  			it.Event = new(ILBPairApprovalForAll)
  1344  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1345  				it.fail = err
  1346  				return false
  1347  			}
  1348  			it.Event.Raw = log
  1349  			return true
  1350  
  1351  		default:
  1352  			return false
  1353  		}
  1354  	}
  1355  	// Iterator still in progress, wait for either a data or an error event
  1356  	select {
  1357  	case log := <-it.logs:
  1358  		it.Event = new(ILBPairApprovalForAll)
  1359  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1360  			it.fail = err
  1361  			return false
  1362  		}
  1363  		it.Event.Raw = log
  1364  		return true
  1365  
  1366  	case err := <-it.sub.Err():
  1367  		it.done = true
  1368  		it.fail = err
  1369  		return it.Next()
  1370  	}
  1371  }
  1372  
  1373  // Error returns any retrieval or parsing error occurred during filtering.
  1374  func (it *ILBPairApprovalForAllIterator) Error() error {
  1375  	return it.fail
  1376  }
  1377  
  1378  // Close terminates the iteration process, releasing any pending underlying
  1379  // resources.
  1380  func (it *ILBPairApprovalForAllIterator) Close() error {
  1381  	it.sub.Unsubscribe()
  1382  	return nil
  1383  }
  1384  
  1385  // ILBPairApprovalForAll represents a ApprovalForAll event raised by the ILBPair contract.
  1386  type ILBPairApprovalForAll struct {
  1387  	Account  common.Address
  1388  	Sender   common.Address
  1389  	Approved bool
  1390  	Raw      types.Log // Blockchain specific contextual infos
  1391  }
  1392  
  1393  // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  1394  //
  1395  // Solidity: event ApprovalForAll(address indexed account, address indexed sender, bool approved)
  1396  func (_ILBPair *ILBPairFilterer) FilterApprovalForAll(opts *bind.FilterOpts, account []common.Address, sender []common.Address) (*ILBPairApprovalForAllIterator, error) {
  1397  
  1398  	var accountRule []interface{}
  1399  	for _, accountItem := range account {
  1400  		accountRule = append(accountRule, accountItem)
  1401  	}
  1402  	var senderRule []interface{}
  1403  	for _, senderItem := range sender {
  1404  		senderRule = append(senderRule, senderItem)
  1405  	}
  1406  
  1407  	logs, sub, err := _ILBPair.contract.FilterLogs(opts, "ApprovalForAll", accountRule, senderRule)
  1408  	if err != nil {
  1409  		return nil, err
  1410  	}
  1411  	return &ILBPairApprovalForAllIterator{contract: _ILBPair.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil
  1412  }
  1413  
  1414  // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  1415  //
  1416  // Solidity: event ApprovalForAll(address indexed account, address indexed sender, bool approved)
  1417  func (_ILBPair *ILBPairFilterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *ILBPairApprovalForAll, account []common.Address, sender []common.Address) (event.Subscription, error) {
  1418  
  1419  	var accountRule []interface{}
  1420  	for _, accountItem := range account {
  1421  		accountRule = append(accountRule, accountItem)
  1422  	}
  1423  	var senderRule []interface{}
  1424  	for _, senderItem := range sender {
  1425  		senderRule = append(senderRule, senderItem)
  1426  	}
  1427  
  1428  	logs, sub, err := _ILBPair.contract.WatchLogs(opts, "ApprovalForAll", accountRule, senderRule)
  1429  	if err != nil {
  1430  		return nil, err
  1431  	}
  1432  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1433  		defer sub.Unsubscribe()
  1434  		for {
  1435  			select {
  1436  			case log := <-logs:
  1437  				// New log arrived, parse the event and forward to the user
  1438  				event := new(ILBPairApprovalForAll)
  1439  				if err := _ILBPair.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
  1440  					return err
  1441  				}
  1442  				event.Raw = log
  1443  
  1444  				select {
  1445  				case sink <- event:
  1446  				case err := <-sub.Err():
  1447  					return err
  1448  				case <-quit:
  1449  					return nil
  1450  				}
  1451  			case err := <-sub.Err():
  1452  				return err
  1453  			case <-quit:
  1454  				return nil
  1455  			}
  1456  		}
  1457  	}), nil
  1458  }
  1459  
  1460  // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  1461  //
  1462  // Solidity: event ApprovalForAll(address indexed account, address indexed sender, bool approved)
  1463  func (_ILBPair *ILBPairFilterer) ParseApprovalForAll(log types.Log) (*ILBPairApprovalForAll, error) {
  1464  	event := new(ILBPairApprovalForAll)
  1465  	if err := _ILBPair.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
  1466  		return nil, err
  1467  	}
  1468  	event.Raw = log
  1469  	return event, nil
  1470  }
  1471  
  1472  // ILBPairCollectedProtocolFeesIterator is returned from FilterCollectedProtocolFees and is used to iterate over the raw logs and unpacked data for CollectedProtocolFees events raised by the ILBPair contract.
  1473  type ILBPairCollectedProtocolFeesIterator struct {
  1474  	Event *ILBPairCollectedProtocolFees // Event containing the contract specifics and raw log
  1475  
  1476  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1477  	event    string              // Event name to use for unpacking event data
  1478  
  1479  	logs chan types.Log        // Log channel receiving the found contract events
  1480  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1481  	done bool                  // Whether the subscription completed delivering logs
  1482  	fail error                 // Occurred error to stop iteration
  1483  }
  1484  
  1485  // Next advances the iterator to the subsequent event, returning whether there
  1486  // are any more events found. In case of a retrieval or parsing error, false is
  1487  // returned and Error() can be queried for the exact failure.
  1488  func (it *ILBPairCollectedProtocolFeesIterator) Next() bool {
  1489  	// If the iterator failed, stop iterating
  1490  	if it.fail != nil {
  1491  		return false
  1492  	}
  1493  	// If the iterator completed, deliver directly whatever's available
  1494  	if it.done {
  1495  		select {
  1496  		case log := <-it.logs:
  1497  			it.Event = new(ILBPairCollectedProtocolFees)
  1498  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1499  				it.fail = err
  1500  				return false
  1501  			}
  1502  			it.Event.Raw = log
  1503  			return true
  1504  
  1505  		default:
  1506  			return false
  1507  		}
  1508  	}
  1509  	// Iterator still in progress, wait for either a data or an error event
  1510  	select {
  1511  	case log := <-it.logs:
  1512  		it.Event = new(ILBPairCollectedProtocolFees)
  1513  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1514  			it.fail = err
  1515  			return false
  1516  		}
  1517  		it.Event.Raw = log
  1518  		return true
  1519  
  1520  	case err := <-it.sub.Err():
  1521  		it.done = true
  1522  		it.fail = err
  1523  		return it.Next()
  1524  	}
  1525  }
  1526  
  1527  // Error returns any retrieval or parsing error occurred during filtering.
  1528  func (it *ILBPairCollectedProtocolFeesIterator) Error() error {
  1529  	return it.fail
  1530  }
  1531  
  1532  // Close terminates the iteration process, releasing any pending underlying
  1533  // resources.
  1534  func (it *ILBPairCollectedProtocolFeesIterator) Close() error {
  1535  	it.sub.Unsubscribe()
  1536  	return nil
  1537  }
  1538  
  1539  // ILBPairCollectedProtocolFees represents a CollectedProtocolFees event raised by the ILBPair contract.
  1540  type ILBPairCollectedProtocolFees struct {
  1541  	FeeRecipient common.Address
  1542  	ProtocolFees [32]byte
  1543  	Raw          types.Log // Blockchain specific contextual infos
  1544  }
  1545  
  1546  // FilterCollectedProtocolFees is a free log retrieval operation binding the contract event 0x3f41a5ddc53701cc7db577ade4f1fca9838a8ec0b5ea50b9f0f5d17bc4554e32.
  1547  //
  1548  // Solidity: event CollectedProtocolFees(address indexed feeRecipient, bytes32 protocolFees)
  1549  func (_ILBPair *ILBPairFilterer) FilterCollectedProtocolFees(opts *bind.FilterOpts, feeRecipient []common.Address) (*ILBPairCollectedProtocolFeesIterator, error) {
  1550  
  1551  	var feeRecipientRule []interface{}
  1552  	for _, feeRecipientItem := range feeRecipient {
  1553  		feeRecipientRule = append(feeRecipientRule, feeRecipientItem)
  1554  	}
  1555  
  1556  	logs, sub, err := _ILBPair.contract.FilterLogs(opts, "CollectedProtocolFees", feeRecipientRule)
  1557  	if err != nil {
  1558  		return nil, err
  1559  	}
  1560  	return &ILBPairCollectedProtocolFeesIterator{contract: _ILBPair.contract, event: "CollectedProtocolFees", logs: logs, sub: sub}, nil
  1561  }
  1562  
  1563  // WatchCollectedProtocolFees is a free log subscription operation binding the contract event 0x3f41a5ddc53701cc7db577ade4f1fca9838a8ec0b5ea50b9f0f5d17bc4554e32.
  1564  //
  1565  // Solidity: event CollectedProtocolFees(address indexed feeRecipient, bytes32 protocolFees)
  1566  func (_ILBPair *ILBPairFilterer) WatchCollectedProtocolFees(opts *bind.WatchOpts, sink chan<- *ILBPairCollectedProtocolFees, feeRecipient []common.Address) (event.Subscription, error) {
  1567  
  1568  	var feeRecipientRule []interface{}
  1569  	for _, feeRecipientItem := range feeRecipient {
  1570  		feeRecipientRule = append(feeRecipientRule, feeRecipientItem)
  1571  	}
  1572  
  1573  	logs, sub, err := _ILBPair.contract.WatchLogs(opts, "CollectedProtocolFees", feeRecipientRule)
  1574  	if err != nil {
  1575  		return nil, err
  1576  	}
  1577  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1578  		defer sub.Unsubscribe()
  1579  		for {
  1580  			select {
  1581  			case log := <-logs:
  1582  				// New log arrived, parse the event and forward to the user
  1583  				event := new(ILBPairCollectedProtocolFees)
  1584  				if err := _ILBPair.contract.UnpackLog(event, "CollectedProtocolFees", log); err != nil {
  1585  					return err
  1586  				}
  1587  				event.Raw = log
  1588  
  1589  				select {
  1590  				case sink <- event:
  1591  				case err := <-sub.Err():
  1592  					return err
  1593  				case <-quit:
  1594  					return nil
  1595  				}
  1596  			case err := <-sub.Err():
  1597  				return err
  1598  			case <-quit:
  1599  				return nil
  1600  			}
  1601  		}
  1602  	}), nil
  1603  }
  1604  
  1605  // ParseCollectedProtocolFees is a log parse operation binding the contract event 0x3f41a5ddc53701cc7db577ade4f1fca9838a8ec0b5ea50b9f0f5d17bc4554e32.
  1606  //
  1607  // Solidity: event CollectedProtocolFees(address indexed feeRecipient, bytes32 protocolFees)
  1608  func (_ILBPair *ILBPairFilterer) ParseCollectedProtocolFees(log types.Log) (*ILBPairCollectedProtocolFees, error) {
  1609  	event := new(ILBPairCollectedProtocolFees)
  1610  	if err := _ILBPair.contract.UnpackLog(event, "CollectedProtocolFees", log); err != nil {
  1611  		return nil, err
  1612  	}
  1613  	event.Raw = log
  1614  	return event, nil
  1615  }
  1616  
  1617  // ILBPairCompositionFeesIterator is returned from FilterCompositionFees and is used to iterate over the raw logs and unpacked data for CompositionFees events raised by the ILBPair contract.
  1618  type ILBPairCompositionFeesIterator struct {
  1619  	Event *ILBPairCompositionFees // Event containing the contract specifics and raw log
  1620  
  1621  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1622  	event    string              // Event name to use for unpacking event data
  1623  
  1624  	logs chan types.Log        // Log channel receiving the found contract events
  1625  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1626  	done bool                  // Whether the subscription completed delivering logs
  1627  	fail error                 // Occurred error to stop iteration
  1628  }
  1629  
  1630  // Next advances the iterator to the subsequent event, returning whether there
  1631  // are any more events found. In case of a retrieval or parsing error, false is
  1632  // returned and Error() can be queried for the exact failure.
  1633  func (it *ILBPairCompositionFeesIterator) Next() bool {
  1634  	// If the iterator failed, stop iterating
  1635  	if it.fail != nil {
  1636  		return false
  1637  	}
  1638  	// If the iterator completed, deliver directly whatever's available
  1639  	if it.done {
  1640  		select {
  1641  		case log := <-it.logs:
  1642  			it.Event = new(ILBPairCompositionFees)
  1643  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1644  				it.fail = err
  1645  				return false
  1646  			}
  1647  			it.Event.Raw = log
  1648  			return true
  1649  
  1650  		default:
  1651  			return false
  1652  		}
  1653  	}
  1654  	// Iterator still in progress, wait for either a data or an error event
  1655  	select {
  1656  	case log := <-it.logs:
  1657  		it.Event = new(ILBPairCompositionFees)
  1658  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1659  			it.fail = err
  1660  			return false
  1661  		}
  1662  		it.Event.Raw = log
  1663  		return true
  1664  
  1665  	case err := <-it.sub.Err():
  1666  		it.done = true
  1667  		it.fail = err
  1668  		return it.Next()
  1669  	}
  1670  }
  1671  
  1672  // Error returns any retrieval or parsing error occurred during filtering.
  1673  func (it *ILBPairCompositionFeesIterator) Error() error {
  1674  	return it.fail
  1675  }
  1676  
  1677  // Close terminates the iteration process, releasing any pending underlying
  1678  // resources.
  1679  func (it *ILBPairCompositionFeesIterator) Close() error {
  1680  	it.sub.Unsubscribe()
  1681  	return nil
  1682  }
  1683  
  1684  // ILBPairCompositionFees represents a CompositionFees event raised by the ILBPair contract.
  1685  type ILBPairCompositionFees struct {
  1686  	Sender       common.Address
  1687  	Id           *big.Int
  1688  	TotalFees    [32]byte
  1689  	ProtocolFees [32]byte
  1690  	Raw          types.Log // Blockchain specific contextual infos
  1691  }
  1692  
  1693  // FilterCompositionFees is a free log retrieval operation binding the contract event 0x3f0b46725027bb418b2005f4683538eccdbcdf1de2b8649a29dbd9c507d16ff4.
  1694  //
  1695  // Solidity: event CompositionFees(address indexed sender, uint24 id, bytes32 totalFees, bytes32 protocolFees)
  1696  func (_ILBPair *ILBPairFilterer) FilterCompositionFees(opts *bind.FilterOpts, sender []common.Address) (*ILBPairCompositionFeesIterator, error) {
  1697  
  1698  	var senderRule []interface{}
  1699  	for _, senderItem := range sender {
  1700  		senderRule = append(senderRule, senderItem)
  1701  	}
  1702  
  1703  	logs, sub, err := _ILBPair.contract.FilterLogs(opts, "CompositionFees", senderRule)
  1704  	if err != nil {
  1705  		return nil, err
  1706  	}
  1707  	return &ILBPairCompositionFeesIterator{contract: _ILBPair.contract, event: "CompositionFees", logs: logs, sub: sub}, nil
  1708  }
  1709  
  1710  // WatchCompositionFees is a free log subscription operation binding the contract event 0x3f0b46725027bb418b2005f4683538eccdbcdf1de2b8649a29dbd9c507d16ff4.
  1711  //
  1712  // Solidity: event CompositionFees(address indexed sender, uint24 id, bytes32 totalFees, bytes32 protocolFees)
  1713  func (_ILBPair *ILBPairFilterer) WatchCompositionFees(opts *bind.WatchOpts, sink chan<- *ILBPairCompositionFees, sender []common.Address) (event.Subscription, error) {
  1714  
  1715  	var senderRule []interface{}
  1716  	for _, senderItem := range sender {
  1717  		senderRule = append(senderRule, senderItem)
  1718  	}
  1719  
  1720  	logs, sub, err := _ILBPair.contract.WatchLogs(opts, "CompositionFees", senderRule)
  1721  	if err != nil {
  1722  		return nil, err
  1723  	}
  1724  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1725  		defer sub.Unsubscribe()
  1726  		for {
  1727  			select {
  1728  			case log := <-logs:
  1729  				// New log arrived, parse the event and forward to the user
  1730  				event := new(ILBPairCompositionFees)
  1731  				if err := _ILBPair.contract.UnpackLog(event, "CompositionFees", log); err != nil {
  1732  					return err
  1733  				}
  1734  				event.Raw = log
  1735  
  1736  				select {
  1737  				case sink <- event:
  1738  				case err := <-sub.Err():
  1739  					return err
  1740  				case <-quit:
  1741  					return nil
  1742  				}
  1743  			case err := <-sub.Err():
  1744  				return err
  1745  			case <-quit:
  1746  				return nil
  1747  			}
  1748  		}
  1749  	}), nil
  1750  }
  1751  
  1752  // ParseCompositionFees is a log parse operation binding the contract event 0x3f0b46725027bb418b2005f4683538eccdbcdf1de2b8649a29dbd9c507d16ff4.
  1753  //
  1754  // Solidity: event CompositionFees(address indexed sender, uint24 id, bytes32 totalFees, bytes32 protocolFees)
  1755  func (_ILBPair *ILBPairFilterer) ParseCompositionFees(log types.Log) (*ILBPairCompositionFees, error) {
  1756  	event := new(ILBPairCompositionFees)
  1757  	if err := _ILBPair.contract.UnpackLog(event, "CompositionFees", log); err != nil {
  1758  		return nil, err
  1759  	}
  1760  	event.Raw = log
  1761  	return event, nil
  1762  }
  1763  
  1764  // ILBPairDepositedToBinsIterator is returned from FilterDepositedToBins and is used to iterate over the raw logs and unpacked data for DepositedToBins events raised by the ILBPair contract.
  1765  type ILBPairDepositedToBinsIterator struct {
  1766  	Event *ILBPairDepositedToBins // Event containing the contract specifics and raw log
  1767  
  1768  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1769  	event    string              // Event name to use for unpacking event data
  1770  
  1771  	logs chan types.Log        // Log channel receiving the found contract events
  1772  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1773  	done bool                  // Whether the subscription completed delivering logs
  1774  	fail error                 // Occurred error to stop iteration
  1775  }
  1776  
  1777  // Next advances the iterator to the subsequent event, returning whether there
  1778  // are any more events found. In case of a retrieval or parsing error, false is
  1779  // returned and Error() can be queried for the exact failure.
  1780  func (it *ILBPairDepositedToBinsIterator) Next() bool {
  1781  	// If the iterator failed, stop iterating
  1782  	if it.fail != nil {
  1783  		return false
  1784  	}
  1785  	// If the iterator completed, deliver directly whatever's available
  1786  	if it.done {
  1787  		select {
  1788  		case log := <-it.logs:
  1789  			it.Event = new(ILBPairDepositedToBins)
  1790  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1791  				it.fail = err
  1792  				return false
  1793  			}
  1794  			it.Event.Raw = log
  1795  			return true
  1796  
  1797  		default:
  1798  			return false
  1799  		}
  1800  	}
  1801  	// Iterator still in progress, wait for either a data or an error event
  1802  	select {
  1803  	case log := <-it.logs:
  1804  		it.Event = new(ILBPairDepositedToBins)
  1805  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1806  			it.fail = err
  1807  			return false
  1808  		}
  1809  		it.Event.Raw = log
  1810  		return true
  1811  
  1812  	case err := <-it.sub.Err():
  1813  		it.done = true
  1814  		it.fail = err
  1815  		return it.Next()
  1816  	}
  1817  }
  1818  
  1819  // Error returns any retrieval or parsing error occurred during filtering.
  1820  func (it *ILBPairDepositedToBinsIterator) Error() error {
  1821  	return it.fail
  1822  }
  1823  
  1824  // Close terminates the iteration process, releasing any pending underlying
  1825  // resources.
  1826  func (it *ILBPairDepositedToBinsIterator) Close() error {
  1827  	it.sub.Unsubscribe()
  1828  	return nil
  1829  }
  1830  
  1831  // ILBPairDepositedToBins represents a DepositedToBins event raised by the ILBPair contract.
  1832  type ILBPairDepositedToBins struct {
  1833  	Sender  common.Address
  1834  	To      common.Address
  1835  	Ids     []*big.Int
  1836  	Amounts [][32]byte
  1837  	Raw     types.Log // Blockchain specific contextual infos
  1838  }
  1839  
  1840  // FilterDepositedToBins is a free log retrieval operation binding the contract event 0x87f1f9dcf5e8089a3e00811b6a008d8f30293a3da878cb1fe8c90ca376402f8a.
  1841  //
  1842  // Solidity: event DepositedToBins(address indexed sender, address indexed to, uint256[] ids, bytes32[] amounts)
  1843  func (_ILBPair *ILBPairFilterer) FilterDepositedToBins(opts *bind.FilterOpts, sender []common.Address, to []common.Address) (*ILBPairDepositedToBinsIterator, error) {
  1844  
  1845  	var senderRule []interface{}
  1846  	for _, senderItem := range sender {
  1847  		senderRule = append(senderRule, senderItem)
  1848  	}
  1849  	var toRule []interface{}
  1850  	for _, toItem := range to {
  1851  		toRule = append(toRule, toItem)
  1852  	}
  1853  
  1854  	logs, sub, err := _ILBPair.contract.FilterLogs(opts, "DepositedToBins", senderRule, toRule)
  1855  	if err != nil {
  1856  		return nil, err
  1857  	}
  1858  	return &ILBPairDepositedToBinsIterator{contract: _ILBPair.contract, event: "DepositedToBins", logs: logs, sub: sub}, nil
  1859  }
  1860  
  1861  // WatchDepositedToBins is a free log subscription operation binding the contract event 0x87f1f9dcf5e8089a3e00811b6a008d8f30293a3da878cb1fe8c90ca376402f8a.
  1862  //
  1863  // Solidity: event DepositedToBins(address indexed sender, address indexed to, uint256[] ids, bytes32[] amounts)
  1864  func (_ILBPair *ILBPairFilterer) WatchDepositedToBins(opts *bind.WatchOpts, sink chan<- *ILBPairDepositedToBins, sender []common.Address, to []common.Address) (event.Subscription, error) {
  1865  
  1866  	var senderRule []interface{}
  1867  	for _, senderItem := range sender {
  1868  		senderRule = append(senderRule, senderItem)
  1869  	}
  1870  	var toRule []interface{}
  1871  	for _, toItem := range to {
  1872  		toRule = append(toRule, toItem)
  1873  	}
  1874  
  1875  	logs, sub, err := _ILBPair.contract.WatchLogs(opts, "DepositedToBins", senderRule, toRule)
  1876  	if err != nil {
  1877  		return nil, err
  1878  	}
  1879  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1880  		defer sub.Unsubscribe()
  1881  		for {
  1882  			select {
  1883  			case log := <-logs:
  1884  				// New log arrived, parse the event and forward to the user
  1885  				event := new(ILBPairDepositedToBins)
  1886  				if err := _ILBPair.contract.UnpackLog(event, "DepositedToBins", log); err != nil {
  1887  					return err
  1888  				}
  1889  				event.Raw = log
  1890  
  1891  				select {
  1892  				case sink <- event:
  1893  				case err := <-sub.Err():
  1894  					return err
  1895  				case <-quit:
  1896  					return nil
  1897  				}
  1898  			case err := <-sub.Err():
  1899  				return err
  1900  			case <-quit:
  1901  				return nil
  1902  			}
  1903  		}
  1904  	}), nil
  1905  }
  1906  
  1907  // ParseDepositedToBins is a log parse operation binding the contract event 0x87f1f9dcf5e8089a3e00811b6a008d8f30293a3da878cb1fe8c90ca376402f8a.
  1908  //
  1909  // Solidity: event DepositedToBins(address indexed sender, address indexed to, uint256[] ids, bytes32[] amounts)
  1910  func (_ILBPair *ILBPairFilterer) ParseDepositedToBins(log types.Log) (*ILBPairDepositedToBins, error) {
  1911  	event := new(ILBPairDepositedToBins)
  1912  	if err := _ILBPair.contract.UnpackLog(event, "DepositedToBins", log); err != nil {
  1913  		return nil, err
  1914  	}
  1915  	event.Raw = log
  1916  	return event, nil
  1917  }
  1918  
  1919  // ILBPairFlashLoanIterator is returned from FilterFlashLoan and is used to iterate over the raw logs and unpacked data for FlashLoan events raised by the ILBPair contract.
  1920  type ILBPairFlashLoanIterator struct {
  1921  	Event *ILBPairFlashLoan // Event containing the contract specifics and raw log
  1922  
  1923  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1924  	event    string              // Event name to use for unpacking event data
  1925  
  1926  	logs chan types.Log        // Log channel receiving the found contract events
  1927  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1928  	done bool                  // Whether the subscription completed delivering logs
  1929  	fail error                 // Occurred error to stop iteration
  1930  }
  1931  
  1932  // Next advances the iterator to the subsequent event, returning whether there
  1933  // are any more events found. In case of a retrieval or parsing error, false is
  1934  // returned and Error() can be queried for the exact failure.
  1935  func (it *ILBPairFlashLoanIterator) Next() bool {
  1936  	// If the iterator failed, stop iterating
  1937  	if it.fail != nil {
  1938  		return false
  1939  	}
  1940  	// If the iterator completed, deliver directly whatever's available
  1941  	if it.done {
  1942  		select {
  1943  		case log := <-it.logs:
  1944  			it.Event = new(ILBPairFlashLoan)
  1945  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1946  				it.fail = err
  1947  				return false
  1948  			}
  1949  			it.Event.Raw = log
  1950  			return true
  1951  
  1952  		default:
  1953  			return false
  1954  		}
  1955  	}
  1956  	// Iterator still in progress, wait for either a data or an error event
  1957  	select {
  1958  	case log := <-it.logs:
  1959  		it.Event = new(ILBPairFlashLoan)
  1960  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1961  			it.fail = err
  1962  			return false
  1963  		}
  1964  		it.Event.Raw = log
  1965  		return true
  1966  
  1967  	case err := <-it.sub.Err():
  1968  		it.done = true
  1969  		it.fail = err
  1970  		return it.Next()
  1971  	}
  1972  }
  1973  
  1974  // Error returns any retrieval or parsing error occurred during filtering.
  1975  func (it *ILBPairFlashLoanIterator) Error() error {
  1976  	return it.fail
  1977  }
  1978  
  1979  // Close terminates the iteration process, releasing any pending underlying
  1980  // resources.
  1981  func (it *ILBPairFlashLoanIterator) Close() error {
  1982  	it.sub.Unsubscribe()
  1983  	return nil
  1984  }
  1985  
  1986  // ILBPairFlashLoan represents a FlashLoan event raised by the ILBPair contract.
  1987  type ILBPairFlashLoan struct {
  1988  	Sender       common.Address
  1989  	Receiver     common.Address
  1990  	ActiveId     *big.Int
  1991  	Amounts      [32]byte
  1992  	TotalFees    [32]byte
  1993  	ProtocolFees [32]byte
  1994  	Raw          types.Log // Blockchain specific contextual infos
  1995  }
  1996  
  1997  // FilterFlashLoan is a free log retrieval operation binding the contract event 0xd126bd9d94daca8e55ffd8283fac05394aec8326c6b1639e1e8a445fbe8bbc7d.
  1998  //
  1999  // Solidity: event FlashLoan(address indexed sender, address indexed receiver, uint24 activeId, bytes32 amounts, bytes32 totalFees, bytes32 protocolFees)
  2000  func (_ILBPair *ILBPairFilterer) FilterFlashLoan(opts *bind.FilterOpts, sender []common.Address, receiver []common.Address) (*ILBPairFlashLoanIterator, error) {
  2001  
  2002  	var senderRule []interface{}
  2003  	for _, senderItem := range sender {
  2004  		senderRule = append(senderRule, senderItem)
  2005  	}
  2006  	var receiverRule []interface{}
  2007  	for _, receiverItem := range receiver {
  2008  		receiverRule = append(receiverRule, receiverItem)
  2009  	}
  2010  
  2011  	logs, sub, err := _ILBPair.contract.FilterLogs(opts, "FlashLoan", senderRule, receiverRule)
  2012  	if err != nil {
  2013  		return nil, err
  2014  	}
  2015  	return &ILBPairFlashLoanIterator{contract: _ILBPair.contract, event: "FlashLoan", logs: logs, sub: sub}, nil
  2016  }
  2017  
  2018  // WatchFlashLoan is a free log subscription operation binding the contract event 0xd126bd9d94daca8e55ffd8283fac05394aec8326c6b1639e1e8a445fbe8bbc7d.
  2019  //
  2020  // Solidity: event FlashLoan(address indexed sender, address indexed receiver, uint24 activeId, bytes32 amounts, bytes32 totalFees, bytes32 protocolFees)
  2021  func (_ILBPair *ILBPairFilterer) WatchFlashLoan(opts *bind.WatchOpts, sink chan<- *ILBPairFlashLoan, sender []common.Address, receiver []common.Address) (event.Subscription, error) {
  2022  
  2023  	var senderRule []interface{}
  2024  	for _, senderItem := range sender {
  2025  		senderRule = append(senderRule, senderItem)
  2026  	}
  2027  	var receiverRule []interface{}
  2028  	for _, receiverItem := range receiver {
  2029  		receiverRule = append(receiverRule, receiverItem)
  2030  	}
  2031  
  2032  	logs, sub, err := _ILBPair.contract.WatchLogs(opts, "FlashLoan", senderRule, receiverRule)
  2033  	if err != nil {
  2034  		return nil, err
  2035  	}
  2036  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2037  		defer sub.Unsubscribe()
  2038  		for {
  2039  			select {
  2040  			case log := <-logs:
  2041  				// New log arrived, parse the event and forward to the user
  2042  				event := new(ILBPairFlashLoan)
  2043  				if err := _ILBPair.contract.UnpackLog(event, "FlashLoan", log); err != nil {
  2044  					return err
  2045  				}
  2046  				event.Raw = log
  2047  
  2048  				select {
  2049  				case sink <- event:
  2050  				case err := <-sub.Err():
  2051  					return err
  2052  				case <-quit:
  2053  					return nil
  2054  				}
  2055  			case err := <-sub.Err():
  2056  				return err
  2057  			case <-quit:
  2058  				return nil
  2059  			}
  2060  		}
  2061  	}), nil
  2062  }
  2063  
  2064  // ParseFlashLoan is a log parse operation binding the contract event 0xd126bd9d94daca8e55ffd8283fac05394aec8326c6b1639e1e8a445fbe8bbc7d.
  2065  //
  2066  // Solidity: event FlashLoan(address indexed sender, address indexed receiver, uint24 activeId, bytes32 amounts, bytes32 totalFees, bytes32 protocolFees)
  2067  func (_ILBPair *ILBPairFilterer) ParseFlashLoan(log types.Log) (*ILBPairFlashLoan, error) {
  2068  	event := new(ILBPairFlashLoan)
  2069  	if err := _ILBPair.contract.UnpackLog(event, "FlashLoan", log); err != nil {
  2070  		return nil, err
  2071  	}
  2072  	event.Raw = log
  2073  	return event, nil
  2074  }
  2075  
  2076  // ILBPairForcedDecayIterator is returned from FilterForcedDecay and is used to iterate over the raw logs and unpacked data for ForcedDecay events raised by the ILBPair contract.
  2077  type ILBPairForcedDecayIterator struct {
  2078  	Event *ILBPairForcedDecay // Event containing the contract specifics and raw log
  2079  
  2080  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2081  	event    string              // Event name to use for unpacking event data
  2082  
  2083  	logs chan types.Log        // Log channel receiving the found contract events
  2084  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2085  	done bool                  // Whether the subscription completed delivering logs
  2086  	fail error                 // Occurred error to stop iteration
  2087  }
  2088  
  2089  // Next advances the iterator to the subsequent event, returning whether there
  2090  // are any more events found. In case of a retrieval or parsing error, false is
  2091  // returned and Error() can be queried for the exact failure.
  2092  func (it *ILBPairForcedDecayIterator) Next() bool {
  2093  	// If the iterator failed, stop iterating
  2094  	if it.fail != nil {
  2095  		return false
  2096  	}
  2097  	// If the iterator completed, deliver directly whatever's available
  2098  	if it.done {
  2099  		select {
  2100  		case log := <-it.logs:
  2101  			it.Event = new(ILBPairForcedDecay)
  2102  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2103  				it.fail = err
  2104  				return false
  2105  			}
  2106  			it.Event.Raw = log
  2107  			return true
  2108  
  2109  		default:
  2110  			return false
  2111  		}
  2112  	}
  2113  	// Iterator still in progress, wait for either a data or an error event
  2114  	select {
  2115  	case log := <-it.logs:
  2116  		it.Event = new(ILBPairForcedDecay)
  2117  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2118  			it.fail = err
  2119  			return false
  2120  		}
  2121  		it.Event.Raw = log
  2122  		return true
  2123  
  2124  	case err := <-it.sub.Err():
  2125  		it.done = true
  2126  		it.fail = err
  2127  		return it.Next()
  2128  	}
  2129  }
  2130  
  2131  // Error returns any retrieval or parsing error occurred during filtering.
  2132  func (it *ILBPairForcedDecayIterator) Error() error {
  2133  	return it.fail
  2134  }
  2135  
  2136  // Close terminates the iteration process, releasing any pending underlying
  2137  // resources.
  2138  func (it *ILBPairForcedDecayIterator) Close() error {
  2139  	it.sub.Unsubscribe()
  2140  	return nil
  2141  }
  2142  
  2143  // ILBPairForcedDecay represents a ForcedDecay event raised by the ILBPair contract.
  2144  type ILBPairForcedDecay struct {
  2145  	Sender              common.Address
  2146  	IdReference         *big.Int
  2147  	VolatilityReference *big.Int
  2148  	Raw                 types.Log // Blockchain specific contextual infos
  2149  }
  2150  
  2151  // FilterForcedDecay is a free log retrieval operation binding the contract event 0x282afaeeae84c1d85ad1424a3aa2ddbedaeefca3b1e53d889d15265fe44db7fc.
  2152  //
  2153  // Solidity: event ForcedDecay(address indexed sender, uint24 idReference, uint24 volatilityReference)
  2154  func (_ILBPair *ILBPairFilterer) FilterForcedDecay(opts *bind.FilterOpts, sender []common.Address) (*ILBPairForcedDecayIterator, error) {
  2155  
  2156  	var senderRule []interface{}
  2157  	for _, senderItem := range sender {
  2158  		senderRule = append(senderRule, senderItem)
  2159  	}
  2160  
  2161  	logs, sub, err := _ILBPair.contract.FilterLogs(opts, "ForcedDecay", senderRule)
  2162  	if err != nil {
  2163  		return nil, err
  2164  	}
  2165  	return &ILBPairForcedDecayIterator{contract: _ILBPair.contract, event: "ForcedDecay", logs: logs, sub: sub}, nil
  2166  }
  2167  
  2168  // WatchForcedDecay is a free log subscription operation binding the contract event 0x282afaeeae84c1d85ad1424a3aa2ddbedaeefca3b1e53d889d15265fe44db7fc.
  2169  //
  2170  // Solidity: event ForcedDecay(address indexed sender, uint24 idReference, uint24 volatilityReference)
  2171  func (_ILBPair *ILBPairFilterer) WatchForcedDecay(opts *bind.WatchOpts, sink chan<- *ILBPairForcedDecay, sender []common.Address) (event.Subscription, error) {
  2172  
  2173  	var senderRule []interface{}
  2174  	for _, senderItem := range sender {
  2175  		senderRule = append(senderRule, senderItem)
  2176  	}
  2177  
  2178  	logs, sub, err := _ILBPair.contract.WatchLogs(opts, "ForcedDecay", senderRule)
  2179  	if err != nil {
  2180  		return nil, err
  2181  	}
  2182  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2183  		defer sub.Unsubscribe()
  2184  		for {
  2185  			select {
  2186  			case log := <-logs:
  2187  				// New log arrived, parse the event and forward to the user
  2188  				event := new(ILBPairForcedDecay)
  2189  				if err := _ILBPair.contract.UnpackLog(event, "ForcedDecay", log); err != nil {
  2190  					return err
  2191  				}
  2192  				event.Raw = log
  2193  
  2194  				select {
  2195  				case sink <- event:
  2196  				case err := <-sub.Err():
  2197  					return err
  2198  				case <-quit:
  2199  					return nil
  2200  				}
  2201  			case err := <-sub.Err():
  2202  				return err
  2203  			case <-quit:
  2204  				return nil
  2205  			}
  2206  		}
  2207  	}), nil
  2208  }
  2209  
  2210  // ParseForcedDecay is a log parse operation binding the contract event 0x282afaeeae84c1d85ad1424a3aa2ddbedaeefca3b1e53d889d15265fe44db7fc.
  2211  //
  2212  // Solidity: event ForcedDecay(address indexed sender, uint24 idReference, uint24 volatilityReference)
  2213  func (_ILBPair *ILBPairFilterer) ParseForcedDecay(log types.Log) (*ILBPairForcedDecay, error) {
  2214  	event := new(ILBPairForcedDecay)
  2215  	if err := _ILBPair.contract.UnpackLog(event, "ForcedDecay", log); err != nil {
  2216  		return nil, err
  2217  	}
  2218  	event.Raw = log
  2219  	return event, nil
  2220  }
  2221  
  2222  // ILBPairOracleLengthIncreasedIterator is returned from FilterOracleLengthIncreased and is used to iterate over the raw logs and unpacked data for OracleLengthIncreased events raised by the ILBPair contract.
  2223  type ILBPairOracleLengthIncreasedIterator struct {
  2224  	Event *ILBPairOracleLengthIncreased // Event containing the contract specifics and raw log
  2225  
  2226  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2227  	event    string              // Event name to use for unpacking event data
  2228  
  2229  	logs chan types.Log        // Log channel receiving the found contract events
  2230  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2231  	done bool                  // Whether the subscription completed delivering logs
  2232  	fail error                 // Occurred error to stop iteration
  2233  }
  2234  
  2235  // Next advances the iterator to the subsequent event, returning whether there
  2236  // are any more events found. In case of a retrieval or parsing error, false is
  2237  // returned and Error() can be queried for the exact failure.
  2238  func (it *ILBPairOracleLengthIncreasedIterator) Next() bool {
  2239  	// If the iterator failed, stop iterating
  2240  	if it.fail != nil {
  2241  		return false
  2242  	}
  2243  	// If the iterator completed, deliver directly whatever's available
  2244  	if it.done {
  2245  		select {
  2246  		case log := <-it.logs:
  2247  			it.Event = new(ILBPairOracleLengthIncreased)
  2248  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2249  				it.fail = err
  2250  				return false
  2251  			}
  2252  			it.Event.Raw = log
  2253  			return true
  2254  
  2255  		default:
  2256  			return false
  2257  		}
  2258  	}
  2259  	// Iterator still in progress, wait for either a data or an error event
  2260  	select {
  2261  	case log := <-it.logs:
  2262  		it.Event = new(ILBPairOracleLengthIncreased)
  2263  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2264  			it.fail = err
  2265  			return false
  2266  		}
  2267  		it.Event.Raw = log
  2268  		return true
  2269  
  2270  	case err := <-it.sub.Err():
  2271  		it.done = true
  2272  		it.fail = err
  2273  		return it.Next()
  2274  	}
  2275  }
  2276  
  2277  // Error returns any retrieval or parsing error occurred during filtering.
  2278  func (it *ILBPairOracleLengthIncreasedIterator) Error() error {
  2279  	return it.fail
  2280  }
  2281  
  2282  // Close terminates the iteration process, releasing any pending underlying
  2283  // resources.
  2284  func (it *ILBPairOracleLengthIncreasedIterator) Close() error {
  2285  	it.sub.Unsubscribe()
  2286  	return nil
  2287  }
  2288  
  2289  // ILBPairOracleLengthIncreased represents a OracleLengthIncreased event raised by the ILBPair contract.
  2290  type ILBPairOracleLengthIncreased struct {
  2291  	Sender       common.Address
  2292  	OracleLength uint16
  2293  	Raw          types.Log // Blockchain specific contextual infos
  2294  }
  2295  
  2296  // FilterOracleLengthIncreased is a free log retrieval operation binding the contract event 0xc975541e72d695746a43ba65745d79963a23082637c8f4609354d9bcf70194d6.
  2297  //
  2298  // Solidity: event OracleLengthIncreased(address indexed sender, uint16 oracleLength)
  2299  func (_ILBPair *ILBPairFilterer) FilterOracleLengthIncreased(opts *bind.FilterOpts, sender []common.Address) (*ILBPairOracleLengthIncreasedIterator, error) {
  2300  
  2301  	var senderRule []interface{}
  2302  	for _, senderItem := range sender {
  2303  		senderRule = append(senderRule, senderItem)
  2304  	}
  2305  
  2306  	logs, sub, err := _ILBPair.contract.FilterLogs(opts, "OracleLengthIncreased", senderRule)
  2307  	if err != nil {
  2308  		return nil, err
  2309  	}
  2310  	return &ILBPairOracleLengthIncreasedIterator{contract: _ILBPair.contract, event: "OracleLengthIncreased", logs: logs, sub: sub}, nil
  2311  }
  2312  
  2313  // WatchOracleLengthIncreased is a free log subscription operation binding the contract event 0xc975541e72d695746a43ba65745d79963a23082637c8f4609354d9bcf70194d6.
  2314  //
  2315  // Solidity: event OracleLengthIncreased(address indexed sender, uint16 oracleLength)
  2316  func (_ILBPair *ILBPairFilterer) WatchOracleLengthIncreased(opts *bind.WatchOpts, sink chan<- *ILBPairOracleLengthIncreased, sender []common.Address) (event.Subscription, error) {
  2317  
  2318  	var senderRule []interface{}
  2319  	for _, senderItem := range sender {
  2320  		senderRule = append(senderRule, senderItem)
  2321  	}
  2322  
  2323  	logs, sub, err := _ILBPair.contract.WatchLogs(opts, "OracleLengthIncreased", senderRule)
  2324  	if err != nil {
  2325  		return nil, err
  2326  	}
  2327  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2328  		defer sub.Unsubscribe()
  2329  		for {
  2330  			select {
  2331  			case log := <-logs:
  2332  				// New log arrived, parse the event and forward to the user
  2333  				event := new(ILBPairOracleLengthIncreased)
  2334  				if err := _ILBPair.contract.UnpackLog(event, "OracleLengthIncreased", log); err != nil {
  2335  					return err
  2336  				}
  2337  				event.Raw = log
  2338  
  2339  				select {
  2340  				case sink <- event:
  2341  				case err := <-sub.Err():
  2342  					return err
  2343  				case <-quit:
  2344  					return nil
  2345  				}
  2346  			case err := <-sub.Err():
  2347  				return err
  2348  			case <-quit:
  2349  				return nil
  2350  			}
  2351  		}
  2352  	}), nil
  2353  }
  2354  
  2355  // ParseOracleLengthIncreased is a log parse operation binding the contract event 0xc975541e72d695746a43ba65745d79963a23082637c8f4609354d9bcf70194d6.
  2356  //
  2357  // Solidity: event OracleLengthIncreased(address indexed sender, uint16 oracleLength)
  2358  func (_ILBPair *ILBPairFilterer) ParseOracleLengthIncreased(log types.Log) (*ILBPairOracleLengthIncreased, error) {
  2359  	event := new(ILBPairOracleLengthIncreased)
  2360  	if err := _ILBPair.contract.UnpackLog(event, "OracleLengthIncreased", log); err != nil {
  2361  		return nil, err
  2362  	}
  2363  	event.Raw = log
  2364  	return event, nil
  2365  }
  2366  
  2367  // ILBPairStaticFeeParametersSetIterator is returned from FilterStaticFeeParametersSet and is used to iterate over the raw logs and unpacked data for StaticFeeParametersSet events raised by the ILBPair contract.
  2368  type ILBPairStaticFeeParametersSetIterator struct {
  2369  	Event *ILBPairStaticFeeParametersSet // Event containing the contract specifics and raw log
  2370  
  2371  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2372  	event    string              // Event name to use for unpacking event data
  2373  
  2374  	logs chan types.Log        // Log channel receiving the found contract events
  2375  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2376  	done bool                  // Whether the subscription completed delivering logs
  2377  	fail error                 // Occurred error to stop iteration
  2378  }
  2379  
  2380  // Next advances the iterator to the subsequent event, returning whether there
  2381  // are any more events found. In case of a retrieval or parsing error, false is
  2382  // returned and Error() can be queried for the exact failure.
  2383  func (it *ILBPairStaticFeeParametersSetIterator) Next() bool {
  2384  	// If the iterator failed, stop iterating
  2385  	if it.fail != nil {
  2386  		return false
  2387  	}
  2388  	// If the iterator completed, deliver directly whatever's available
  2389  	if it.done {
  2390  		select {
  2391  		case log := <-it.logs:
  2392  			it.Event = new(ILBPairStaticFeeParametersSet)
  2393  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2394  				it.fail = err
  2395  				return false
  2396  			}
  2397  			it.Event.Raw = log
  2398  			return true
  2399  
  2400  		default:
  2401  			return false
  2402  		}
  2403  	}
  2404  	// Iterator still in progress, wait for either a data or an error event
  2405  	select {
  2406  	case log := <-it.logs:
  2407  		it.Event = new(ILBPairStaticFeeParametersSet)
  2408  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2409  			it.fail = err
  2410  			return false
  2411  		}
  2412  		it.Event.Raw = log
  2413  		return true
  2414  
  2415  	case err := <-it.sub.Err():
  2416  		it.done = true
  2417  		it.fail = err
  2418  		return it.Next()
  2419  	}
  2420  }
  2421  
  2422  // Error returns any retrieval or parsing error occurred during filtering.
  2423  func (it *ILBPairStaticFeeParametersSetIterator) Error() error {
  2424  	return it.fail
  2425  }
  2426  
  2427  // Close terminates the iteration process, releasing any pending underlying
  2428  // resources.
  2429  func (it *ILBPairStaticFeeParametersSetIterator) Close() error {
  2430  	it.sub.Unsubscribe()
  2431  	return nil
  2432  }
  2433  
  2434  // ILBPairStaticFeeParametersSet represents a StaticFeeParametersSet event raised by the ILBPair contract.
  2435  type ILBPairStaticFeeParametersSet struct {
  2436  	Sender                   common.Address
  2437  	BaseFactor               uint16
  2438  	FilterPeriod             uint16
  2439  	DecayPeriod              uint16
  2440  	ReductionFactor          uint16
  2441  	VariableFeeControl       *big.Int
  2442  	ProtocolShare            uint16
  2443  	MaxVolatilityAccumulator *big.Int
  2444  	Raw                      types.Log // Blockchain specific contextual infos
  2445  }
  2446  
  2447  // FilterStaticFeeParametersSet is a free log retrieval operation binding the contract event 0xd09e5ddc721ff14c5c1e66a305cbba1fd70b82c5232bc391aad6f55e62e4b046.
  2448  //
  2449  // Solidity: event StaticFeeParametersSet(address indexed sender, uint16 baseFactor, uint16 filterPeriod, uint16 decayPeriod, uint16 reductionFactor, uint24 variableFeeControl, uint16 protocolShare, uint24 maxVolatilityAccumulator)
  2450  func (_ILBPair *ILBPairFilterer) FilterStaticFeeParametersSet(opts *bind.FilterOpts, sender []common.Address) (*ILBPairStaticFeeParametersSetIterator, error) {
  2451  
  2452  	var senderRule []interface{}
  2453  	for _, senderItem := range sender {
  2454  		senderRule = append(senderRule, senderItem)
  2455  	}
  2456  
  2457  	logs, sub, err := _ILBPair.contract.FilterLogs(opts, "StaticFeeParametersSet", senderRule)
  2458  	if err != nil {
  2459  		return nil, err
  2460  	}
  2461  	return &ILBPairStaticFeeParametersSetIterator{contract: _ILBPair.contract, event: "StaticFeeParametersSet", logs: logs, sub: sub}, nil
  2462  }
  2463  
  2464  // WatchStaticFeeParametersSet is a free log subscription operation binding the contract event 0xd09e5ddc721ff14c5c1e66a305cbba1fd70b82c5232bc391aad6f55e62e4b046.
  2465  //
  2466  // Solidity: event StaticFeeParametersSet(address indexed sender, uint16 baseFactor, uint16 filterPeriod, uint16 decayPeriod, uint16 reductionFactor, uint24 variableFeeControl, uint16 protocolShare, uint24 maxVolatilityAccumulator)
  2467  func (_ILBPair *ILBPairFilterer) WatchStaticFeeParametersSet(opts *bind.WatchOpts, sink chan<- *ILBPairStaticFeeParametersSet, sender []common.Address) (event.Subscription, error) {
  2468  
  2469  	var senderRule []interface{}
  2470  	for _, senderItem := range sender {
  2471  		senderRule = append(senderRule, senderItem)
  2472  	}
  2473  
  2474  	logs, sub, err := _ILBPair.contract.WatchLogs(opts, "StaticFeeParametersSet", senderRule)
  2475  	if err != nil {
  2476  		return nil, err
  2477  	}
  2478  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2479  		defer sub.Unsubscribe()
  2480  		for {
  2481  			select {
  2482  			case log := <-logs:
  2483  				// New log arrived, parse the event and forward to the user
  2484  				event := new(ILBPairStaticFeeParametersSet)
  2485  				if err := _ILBPair.contract.UnpackLog(event, "StaticFeeParametersSet", log); err != nil {
  2486  					return err
  2487  				}
  2488  				event.Raw = log
  2489  
  2490  				select {
  2491  				case sink <- event:
  2492  				case err := <-sub.Err():
  2493  					return err
  2494  				case <-quit:
  2495  					return nil
  2496  				}
  2497  			case err := <-sub.Err():
  2498  				return err
  2499  			case <-quit:
  2500  				return nil
  2501  			}
  2502  		}
  2503  	}), nil
  2504  }
  2505  
  2506  // ParseStaticFeeParametersSet is a log parse operation binding the contract event 0xd09e5ddc721ff14c5c1e66a305cbba1fd70b82c5232bc391aad6f55e62e4b046.
  2507  //
  2508  // Solidity: event StaticFeeParametersSet(address indexed sender, uint16 baseFactor, uint16 filterPeriod, uint16 decayPeriod, uint16 reductionFactor, uint24 variableFeeControl, uint16 protocolShare, uint24 maxVolatilityAccumulator)
  2509  func (_ILBPair *ILBPairFilterer) ParseStaticFeeParametersSet(log types.Log) (*ILBPairStaticFeeParametersSet, error) {
  2510  	event := new(ILBPairStaticFeeParametersSet)
  2511  	if err := _ILBPair.contract.UnpackLog(event, "StaticFeeParametersSet", log); err != nil {
  2512  		return nil, err
  2513  	}
  2514  	event.Raw = log
  2515  	return event, nil
  2516  }
  2517  
  2518  // ILBPairSwapIterator is returned from FilterSwap and is used to iterate over the raw logs and unpacked data for Swap events raised by the ILBPair contract.
  2519  type ILBPairSwapIterator struct {
  2520  	Event *ILBPairSwap // Event containing the contract specifics and raw log
  2521  
  2522  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2523  	event    string              // Event name to use for unpacking event data
  2524  
  2525  	logs chan types.Log        // Log channel receiving the found contract events
  2526  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2527  	done bool                  // Whether the subscription completed delivering logs
  2528  	fail error                 // Occurred error to stop iteration
  2529  }
  2530  
  2531  // Next advances the iterator to the subsequent event, returning whether there
  2532  // are any more events found. In case of a retrieval or parsing error, false is
  2533  // returned and Error() can be queried for the exact failure.
  2534  func (it *ILBPairSwapIterator) Next() bool {
  2535  	// If the iterator failed, stop iterating
  2536  	if it.fail != nil {
  2537  		return false
  2538  	}
  2539  	// If the iterator completed, deliver directly whatever's available
  2540  	if it.done {
  2541  		select {
  2542  		case log := <-it.logs:
  2543  			it.Event = new(ILBPairSwap)
  2544  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2545  				it.fail = err
  2546  				return false
  2547  			}
  2548  			it.Event.Raw = log
  2549  			return true
  2550  
  2551  		default:
  2552  			return false
  2553  		}
  2554  	}
  2555  	// Iterator still in progress, wait for either a data or an error event
  2556  	select {
  2557  	case log := <-it.logs:
  2558  		it.Event = new(ILBPairSwap)
  2559  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2560  			it.fail = err
  2561  			return false
  2562  		}
  2563  		it.Event.Raw = log
  2564  		return true
  2565  
  2566  	case err := <-it.sub.Err():
  2567  		it.done = true
  2568  		it.fail = err
  2569  		return it.Next()
  2570  	}
  2571  }
  2572  
  2573  // Error returns any retrieval or parsing error occurred during filtering.
  2574  func (it *ILBPairSwapIterator) Error() error {
  2575  	return it.fail
  2576  }
  2577  
  2578  // Close terminates the iteration process, releasing any pending underlying
  2579  // resources.
  2580  func (it *ILBPairSwapIterator) Close() error {
  2581  	it.sub.Unsubscribe()
  2582  	return nil
  2583  }
  2584  
  2585  // ILBPairSwap represents a Swap event raised by the ILBPair contract.
  2586  type ILBPairSwap struct {
  2587  	Sender                common.Address
  2588  	To                    common.Address
  2589  	Id                    *big.Int
  2590  	AmountsIn             [32]byte
  2591  	AmountsOut            [32]byte
  2592  	VolatilityAccumulator *big.Int
  2593  	TotalFees             [32]byte
  2594  	ProtocolFees          [32]byte
  2595  	Raw                   types.Log // Blockchain specific contextual infos
  2596  }
  2597  
  2598  // FilterSwap is a free log retrieval operation binding the contract event 0xad7d6f97abf51ce18e17a38f4d70e975be9c0708474987bb3e26ad21bd93ca70.
  2599  //
  2600  // Solidity: event Swap(address indexed sender, address indexed to, uint24 id, bytes32 amountsIn, bytes32 amountsOut, uint24 volatilityAccumulator, bytes32 totalFees, bytes32 protocolFees)
  2601  func (_ILBPair *ILBPairFilterer) FilterSwap(opts *bind.FilterOpts, sender []common.Address, to []common.Address) (*ILBPairSwapIterator, error) {
  2602  
  2603  	var senderRule []interface{}
  2604  	for _, senderItem := range sender {
  2605  		senderRule = append(senderRule, senderItem)
  2606  	}
  2607  	var toRule []interface{}
  2608  	for _, toItem := range to {
  2609  		toRule = append(toRule, toItem)
  2610  	}
  2611  
  2612  	logs, sub, err := _ILBPair.contract.FilterLogs(opts, "Swap", senderRule, toRule)
  2613  	if err != nil {
  2614  		return nil, err
  2615  	}
  2616  	return &ILBPairSwapIterator{contract: _ILBPair.contract, event: "Swap", logs: logs, sub: sub}, nil
  2617  }
  2618  
  2619  // WatchSwap is a free log subscription operation binding the contract event 0xad7d6f97abf51ce18e17a38f4d70e975be9c0708474987bb3e26ad21bd93ca70.
  2620  //
  2621  // Solidity: event Swap(address indexed sender, address indexed to, uint24 id, bytes32 amountsIn, bytes32 amountsOut, uint24 volatilityAccumulator, bytes32 totalFees, bytes32 protocolFees)
  2622  func (_ILBPair *ILBPairFilterer) WatchSwap(opts *bind.WatchOpts, sink chan<- *ILBPairSwap, sender []common.Address, to []common.Address) (event.Subscription, error) {
  2623  
  2624  	var senderRule []interface{}
  2625  	for _, senderItem := range sender {
  2626  		senderRule = append(senderRule, senderItem)
  2627  	}
  2628  	var toRule []interface{}
  2629  	for _, toItem := range to {
  2630  		toRule = append(toRule, toItem)
  2631  	}
  2632  
  2633  	logs, sub, err := _ILBPair.contract.WatchLogs(opts, "Swap", senderRule, toRule)
  2634  	if err != nil {
  2635  		return nil, err
  2636  	}
  2637  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2638  		defer sub.Unsubscribe()
  2639  		for {
  2640  			select {
  2641  			case log := <-logs:
  2642  				// New log arrived, parse the event and forward to the user
  2643  				event := new(ILBPairSwap)
  2644  				if err := _ILBPair.contract.UnpackLog(event, "Swap", log); err != nil {
  2645  					return err
  2646  				}
  2647  				event.Raw = log
  2648  
  2649  				select {
  2650  				case sink <- event:
  2651  				case err := <-sub.Err():
  2652  					return err
  2653  				case <-quit:
  2654  					return nil
  2655  				}
  2656  			case err := <-sub.Err():
  2657  				return err
  2658  			case <-quit:
  2659  				return nil
  2660  			}
  2661  		}
  2662  	}), nil
  2663  }
  2664  
  2665  // ParseSwap is a log parse operation binding the contract event 0xad7d6f97abf51ce18e17a38f4d70e975be9c0708474987bb3e26ad21bd93ca70.
  2666  //
  2667  // Solidity: event Swap(address indexed sender, address indexed to, uint24 id, bytes32 amountsIn, bytes32 amountsOut, uint24 volatilityAccumulator, bytes32 totalFees, bytes32 protocolFees)
  2668  func (_ILBPair *ILBPairFilterer) ParseSwap(log types.Log) (*ILBPairSwap, error) {
  2669  	event := new(ILBPairSwap)
  2670  	if err := _ILBPair.contract.UnpackLog(event, "Swap", log); err != nil {
  2671  		return nil, err
  2672  	}
  2673  	event.Raw = log
  2674  	return event, nil
  2675  }
  2676  
  2677  // ILBPairTransferBatchIterator is returned from FilterTransferBatch and is used to iterate over the raw logs and unpacked data for TransferBatch events raised by the ILBPair contract.
  2678  type ILBPairTransferBatchIterator struct {
  2679  	Event *ILBPairTransferBatch // Event containing the contract specifics and raw log
  2680  
  2681  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2682  	event    string              // Event name to use for unpacking event data
  2683  
  2684  	logs chan types.Log        // Log channel receiving the found contract events
  2685  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2686  	done bool                  // Whether the subscription completed delivering logs
  2687  	fail error                 // Occurred error to stop iteration
  2688  }
  2689  
  2690  // Next advances the iterator to the subsequent event, returning whether there
  2691  // are any more events found. In case of a retrieval or parsing error, false is
  2692  // returned and Error() can be queried for the exact failure.
  2693  func (it *ILBPairTransferBatchIterator) Next() bool {
  2694  	// If the iterator failed, stop iterating
  2695  	if it.fail != nil {
  2696  		return false
  2697  	}
  2698  	// If the iterator completed, deliver directly whatever's available
  2699  	if it.done {
  2700  		select {
  2701  		case log := <-it.logs:
  2702  			it.Event = new(ILBPairTransferBatch)
  2703  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2704  				it.fail = err
  2705  				return false
  2706  			}
  2707  			it.Event.Raw = log
  2708  			return true
  2709  
  2710  		default:
  2711  			return false
  2712  		}
  2713  	}
  2714  	// Iterator still in progress, wait for either a data or an error event
  2715  	select {
  2716  	case log := <-it.logs:
  2717  		it.Event = new(ILBPairTransferBatch)
  2718  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2719  			it.fail = err
  2720  			return false
  2721  		}
  2722  		it.Event.Raw = log
  2723  		return true
  2724  
  2725  	case err := <-it.sub.Err():
  2726  		it.done = true
  2727  		it.fail = err
  2728  		return it.Next()
  2729  	}
  2730  }
  2731  
  2732  // Error returns any retrieval or parsing error occurred during filtering.
  2733  func (it *ILBPairTransferBatchIterator) Error() error {
  2734  	return it.fail
  2735  }
  2736  
  2737  // Close terminates the iteration process, releasing any pending underlying
  2738  // resources.
  2739  func (it *ILBPairTransferBatchIterator) Close() error {
  2740  	it.sub.Unsubscribe()
  2741  	return nil
  2742  }
  2743  
  2744  // ILBPairTransferBatch represents a TransferBatch event raised by the ILBPair contract.
  2745  type ILBPairTransferBatch struct {
  2746  	Sender  common.Address
  2747  	From    common.Address
  2748  	To      common.Address
  2749  	Ids     []*big.Int
  2750  	Amounts []*big.Int
  2751  	Raw     types.Log // Blockchain specific contextual infos
  2752  }
  2753  
  2754  // FilterTransferBatch is a free log retrieval operation binding the contract event 0x4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb.
  2755  //
  2756  // Solidity: event TransferBatch(address indexed sender, address indexed from, address indexed to, uint256[] ids, uint256[] amounts)
  2757  func (_ILBPair *ILBPairFilterer) FilterTransferBatch(opts *bind.FilterOpts, sender []common.Address, from []common.Address, to []common.Address) (*ILBPairTransferBatchIterator, error) {
  2758  
  2759  	var senderRule []interface{}
  2760  	for _, senderItem := range sender {
  2761  		senderRule = append(senderRule, senderItem)
  2762  	}
  2763  	var fromRule []interface{}
  2764  	for _, fromItem := range from {
  2765  		fromRule = append(fromRule, fromItem)
  2766  	}
  2767  	var toRule []interface{}
  2768  	for _, toItem := range to {
  2769  		toRule = append(toRule, toItem)
  2770  	}
  2771  
  2772  	logs, sub, err := _ILBPair.contract.FilterLogs(opts, "TransferBatch", senderRule, fromRule, toRule)
  2773  	if err != nil {
  2774  		return nil, err
  2775  	}
  2776  	return &ILBPairTransferBatchIterator{contract: _ILBPair.contract, event: "TransferBatch", logs: logs, sub: sub}, nil
  2777  }
  2778  
  2779  // WatchTransferBatch is a free log subscription operation binding the contract event 0x4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb.
  2780  //
  2781  // Solidity: event TransferBatch(address indexed sender, address indexed from, address indexed to, uint256[] ids, uint256[] amounts)
  2782  func (_ILBPair *ILBPairFilterer) WatchTransferBatch(opts *bind.WatchOpts, sink chan<- *ILBPairTransferBatch, sender []common.Address, from []common.Address, to []common.Address) (event.Subscription, error) {
  2783  
  2784  	var senderRule []interface{}
  2785  	for _, senderItem := range sender {
  2786  		senderRule = append(senderRule, senderItem)
  2787  	}
  2788  	var fromRule []interface{}
  2789  	for _, fromItem := range from {
  2790  		fromRule = append(fromRule, fromItem)
  2791  	}
  2792  	var toRule []interface{}
  2793  	for _, toItem := range to {
  2794  		toRule = append(toRule, toItem)
  2795  	}
  2796  
  2797  	logs, sub, err := _ILBPair.contract.WatchLogs(opts, "TransferBatch", senderRule, fromRule, toRule)
  2798  	if err != nil {
  2799  		return nil, err
  2800  	}
  2801  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2802  		defer sub.Unsubscribe()
  2803  		for {
  2804  			select {
  2805  			case log := <-logs:
  2806  				// New log arrived, parse the event and forward to the user
  2807  				event := new(ILBPairTransferBatch)
  2808  				if err := _ILBPair.contract.UnpackLog(event, "TransferBatch", log); err != nil {
  2809  					return err
  2810  				}
  2811  				event.Raw = log
  2812  
  2813  				select {
  2814  				case sink <- event:
  2815  				case err := <-sub.Err():
  2816  					return err
  2817  				case <-quit:
  2818  					return nil
  2819  				}
  2820  			case err := <-sub.Err():
  2821  				return err
  2822  			case <-quit:
  2823  				return nil
  2824  			}
  2825  		}
  2826  	}), nil
  2827  }
  2828  
  2829  // ParseTransferBatch is a log parse operation binding the contract event 0x4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb.
  2830  //
  2831  // Solidity: event TransferBatch(address indexed sender, address indexed from, address indexed to, uint256[] ids, uint256[] amounts)
  2832  func (_ILBPair *ILBPairFilterer) ParseTransferBatch(log types.Log) (*ILBPairTransferBatch, error) {
  2833  	event := new(ILBPairTransferBatch)
  2834  	if err := _ILBPair.contract.UnpackLog(event, "TransferBatch", log); err != nil {
  2835  		return nil, err
  2836  	}
  2837  	event.Raw = log
  2838  	return event, nil
  2839  }
  2840  
  2841  // ILBPairWithdrawnFromBinsIterator is returned from FilterWithdrawnFromBins and is used to iterate over the raw logs and unpacked data for WithdrawnFromBins events raised by the ILBPair contract.
  2842  type ILBPairWithdrawnFromBinsIterator struct {
  2843  	Event *ILBPairWithdrawnFromBins // Event containing the contract specifics and raw log
  2844  
  2845  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2846  	event    string              // Event name to use for unpacking event data
  2847  
  2848  	logs chan types.Log        // Log channel receiving the found contract events
  2849  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2850  	done bool                  // Whether the subscription completed delivering logs
  2851  	fail error                 // Occurred error to stop iteration
  2852  }
  2853  
  2854  // Next advances the iterator to the subsequent event, returning whether there
  2855  // are any more events found. In case of a retrieval or parsing error, false is
  2856  // returned and Error() can be queried for the exact failure.
  2857  func (it *ILBPairWithdrawnFromBinsIterator) Next() bool {
  2858  	// If the iterator failed, stop iterating
  2859  	if it.fail != nil {
  2860  		return false
  2861  	}
  2862  	// If the iterator completed, deliver directly whatever's available
  2863  	if it.done {
  2864  		select {
  2865  		case log := <-it.logs:
  2866  			it.Event = new(ILBPairWithdrawnFromBins)
  2867  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2868  				it.fail = err
  2869  				return false
  2870  			}
  2871  			it.Event.Raw = log
  2872  			return true
  2873  
  2874  		default:
  2875  			return false
  2876  		}
  2877  	}
  2878  	// Iterator still in progress, wait for either a data or an error event
  2879  	select {
  2880  	case log := <-it.logs:
  2881  		it.Event = new(ILBPairWithdrawnFromBins)
  2882  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2883  			it.fail = err
  2884  			return false
  2885  		}
  2886  		it.Event.Raw = log
  2887  		return true
  2888  
  2889  	case err := <-it.sub.Err():
  2890  		it.done = true
  2891  		it.fail = err
  2892  		return it.Next()
  2893  	}
  2894  }
  2895  
  2896  // Error returns any retrieval or parsing error occurred during filtering.
  2897  func (it *ILBPairWithdrawnFromBinsIterator) Error() error {
  2898  	return it.fail
  2899  }
  2900  
  2901  // Close terminates the iteration process, releasing any pending underlying
  2902  // resources.
  2903  func (it *ILBPairWithdrawnFromBinsIterator) Close() error {
  2904  	it.sub.Unsubscribe()
  2905  	return nil
  2906  }
  2907  
  2908  // ILBPairWithdrawnFromBins represents a WithdrawnFromBins event raised by the ILBPair contract.
  2909  type ILBPairWithdrawnFromBins struct {
  2910  	Sender  common.Address
  2911  	To      common.Address
  2912  	Ids     []*big.Int
  2913  	Amounts [][32]byte
  2914  	Raw     types.Log // Blockchain specific contextual infos
  2915  }
  2916  
  2917  // FilterWithdrawnFromBins is a free log retrieval operation binding the contract event 0xa32e146844d6144a22e94c586715a1317d58a8aa3581ec33d040113ddcb24350.
  2918  //
  2919  // Solidity: event WithdrawnFromBins(address indexed sender, address indexed to, uint256[] ids, bytes32[] amounts)
  2920  func (_ILBPair *ILBPairFilterer) FilterWithdrawnFromBins(opts *bind.FilterOpts, sender []common.Address, to []common.Address) (*ILBPairWithdrawnFromBinsIterator, error) {
  2921  
  2922  	var senderRule []interface{}
  2923  	for _, senderItem := range sender {
  2924  		senderRule = append(senderRule, senderItem)
  2925  	}
  2926  	var toRule []interface{}
  2927  	for _, toItem := range to {
  2928  		toRule = append(toRule, toItem)
  2929  	}
  2930  
  2931  	logs, sub, err := _ILBPair.contract.FilterLogs(opts, "WithdrawnFromBins", senderRule, toRule)
  2932  	if err != nil {
  2933  		return nil, err
  2934  	}
  2935  	return &ILBPairWithdrawnFromBinsIterator{contract: _ILBPair.contract, event: "WithdrawnFromBins", logs: logs, sub: sub}, nil
  2936  }
  2937  
  2938  // WatchWithdrawnFromBins is a free log subscription operation binding the contract event 0xa32e146844d6144a22e94c586715a1317d58a8aa3581ec33d040113ddcb24350.
  2939  //
  2940  // Solidity: event WithdrawnFromBins(address indexed sender, address indexed to, uint256[] ids, bytes32[] amounts)
  2941  func (_ILBPair *ILBPairFilterer) WatchWithdrawnFromBins(opts *bind.WatchOpts, sink chan<- *ILBPairWithdrawnFromBins, sender []common.Address, to []common.Address) (event.Subscription, error) {
  2942  
  2943  	var senderRule []interface{}
  2944  	for _, senderItem := range sender {
  2945  		senderRule = append(senderRule, senderItem)
  2946  	}
  2947  	var toRule []interface{}
  2948  	for _, toItem := range to {
  2949  		toRule = append(toRule, toItem)
  2950  	}
  2951  
  2952  	logs, sub, err := _ILBPair.contract.WatchLogs(opts, "WithdrawnFromBins", senderRule, toRule)
  2953  	if err != nil {
  2954  		return nil, err
  2955  	}
  2956  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2957  		defer sub.Unsubscribe()
  2958  		for {
  2959  			select {
  2960  			case log := <-logs:
  2961  				// New log arrived, parse the event and forward to the user
  2962  				event := new(ILBPairWithdrawnFromBins)
  2963  				if err := _ILBPair.contract.UnpackLog(event, "WithdrawnFromBins", log); err != nil {
  2964  					return err
  2965  				}
  2966  				event.Raw = log
  2967  
  2968  				select {
  2969  				case sink <- event:
  2970  				case err := <-sub.Err():
  2971  					return err
  2972  				case <-quit:
  2973  					return nil
  2974  				}
  2975  			case err := <-sub.Err():
  2976  				return err
  2977  			case <-quit:
  2978  				return nil
  2979  			}
  2980  		}
  2981  	}), nil
  2982  }
  2983  
  2984  // ParseWithdrawnFromBins is a log parse operation binding the contract event 0xa32e146844d6144a22e94c586715a1317d58a8aa3581ec33d040113ddcb24350.
  2985  //
  2986  // Solidity: event WithdrawnFromBins(address indexed sender, address indexed to, uint256[] ids, bytes32[] amounts)
  2987  func (_ILBPair *ILBPairFilterer) ParseWithdrawnFromBins(log types.Log) (*ILBPairWithdrawnFromBins, error) {
  2988  	event := new(ILBPairWithdrawnFromBins)
  2989  	if err := _ILBPair.contract.UnpackLog(event, "WithdrawnFromBins", log); err != nil {
  2990  		return nil, err
  2991  	}
  2992  	event.Raw = log
  2993  	return event, nil
  2994  }