github.com/diadata-org/diadata@v1.4.593/pkg/dia/scraper/exchange-scrapers/uniswapv4/poolmanager.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 poolmanager
     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  // IPoolManagerModifyLiquidityParams is an auto generated low-level Go binding around an user-defined struct.
    33  type IPoolManagerModifyLiquidityParams struct {
    34  	TickLower      *big.Int
    35  	TickUpper      *big.Int
    36  	LiquidityDelta *big.Int
    37  	Salt           [32]byte
    38  }
    39  
    40  // IPoolManagerSwapParams is an auto generated low-level Go binding around an user-defined struct.
    41  type IPoolManagerSwapParams struct {
    42  	ZeroForOne        bool
    43  	AmountSpecified   *big.Int
    44  	SqrtPriceLimitX96 *big.Int
    45  }
    46  
    47  // PoolKey is an auto generated low-level Go binding around an user-defined struct.
    48  type PoolKey struct {
    49  	Currency0   common.Address
    50  	Currency1   common.Address
    51  	Fee         *big.Int
    52  	TickSpacing *big.Int
    53  	Hooks       common.Address
    54  }
    55  
    56  // PoolmanagerMetaData contains all meta data concerning the Poolmanager contract.
    57  var PoolmanagerMetaData = &bind.MetaData{
    58  	ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyUnlocked\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency1\",\"type\":\"address\"}],\"name\":\"CurrenciesOutOfOrderOrEqual\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CurrencyNotSettled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegateCallNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaller\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ManagerLocked\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MustClearExactPositiveDelta\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonzeroNativeValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolNotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProtocolFeeCurrencySynced\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"name\":\"ProtocolFeeTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SwapAmountCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"}],\"name\":\"TickSpacingTooLarge\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"}],\"name\":\"TickSpacingTooSmall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedDynamicLPFeeUpdate\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"PoolId\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Donate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"PoolId\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"contractIHooks\",\"name\":\"hooks\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"}],\"name\":\"Initialize\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"PoolId\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"liquidityDelta\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"ModifyLiquidity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"OperatorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"protocolFeeController\",\"type\":\"address\"}],\"name\":\"ProtocolFeeControllerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"PoolId\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"protocolFee\",\"type\":\"uint24\"}],\"name\":\"ProtocolFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"PoolId\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"int128\",\"name\":\"amount0\",\"type\":\"int128\"},{\"indexed\":false,\"internalType\":\"int128\",\"name\":\"amount1\",\"type\":\"int128\"},{\"indexed\":false,\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"name\":\"Swap\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Currency\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"clear\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"collectProtocolFees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountCollected\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contractIHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"structPoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"donate\",\"outputs\":[{\"internalType\":\"BalanceDelta\",\"name\":\"delta\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"extsload\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"startSlot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"nSlots\",\"type\":\"uint256\"}],\"name\":\"extsload\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"slots\",\"type\":\"bytes32[]\"}],\"name\":\"extsload\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"slots\",\"type\":\"bytes32[]\"}],\"name\":\"exttload\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"exttload\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contractIHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"structPoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"}],\"name\":\"initialize\",\"outputs\":[{\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isOperator\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contractIHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"structPoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"int256\",\"name\":\"liquidityDelta\",\"type\":\"int256\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"internalType\":\"structIPoolManager.ModifyLiquidityParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"modifyLiquidity\",\"outputs\":[{\"internalType\":\"BalanceDelta\",\"name\":\"callerDelta\",\"type\":\"int256\"},{\"internalType\":\"BalanceDelta\",\"name\":\"feesAccrued\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFeeController\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Currency\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"protocolFeesAccrued\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contractIHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"structPoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"internalType\":\"uint24\",\"name\":\"newProtocolFee\",\"type\":\"uint24\"}],\"name\":\"setProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"}],\"name\":\"setProtocolFeeController\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"settle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"settleFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contractIHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"structPoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"zeroForOne\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"amountSpecified\",\"type\":\"int256\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"}],\"internalType\":\"structIPoolManager.SwapParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"BalanceDelta\",\"name\":\"swapDelta\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Currency\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"sync\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Currency\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"take\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"unlock\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contractIHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"structPoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"internalType\":\"uint24\",\"name\":\"newDynamicLPFee\",\"type\":\"uint24\"}],\"name\":\"updateDynamicLPFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
    59  }
    60  
    61  // PoolmanagerABI is the input ABI used to generate the binding from.
    62  // Deprecated: Use PoolmanagerMetaData.ABI instead.
    63  var PoolmanagerABI = PoolmanagerMetaData.ABI
    64  
    65  // Poolmanager is an auto generated Go binding around an Ethereum contract.
    66  type Poolmanager struct {
    67  	PoolmanagerCaller     // Read-only binding to the contract
    68  	PoolmanagerTransactor // Write-only binding to the contract
    69  	PoolmanagerFilterer   // Log filterer for contract events
    70  }
    71  
    72  // PoolmanagerCaller is an auto generated read-only Go binding around an Ethereum contract.
    73  type PoolmanagerCaller struct {
    74  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    75  }
    76  
    77  // PoolmanagerTransactor is an auto generated write-only Go binding around an Ethereum contract.
    78  type PoolmanagerTransactor struct {
    79  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    80  }
    81  
    82  // PoolmanagerFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
    83  type PoolmanagerFilterer struct {
    84  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    85  }
    86  
    87  // PoolmanagerSession is an auto generated Go binding around an Ethereum contract,
    88  // with pre-set call and transact options.
    89  type PoolmanagerSession struct {
    90  	Contract     *Poolmanager      // Generic contract binding to set the session for
    91  	CallOpts     bind.CallOpts     // Call options to use throughout this session
    92  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
    93  }
    94  
    95  // PoolmanagerCallerSession is an auto generated read-only Go binding around an Ethereum contract,
    96  // with pre-set call options.
    97  type PoolmanagerCallerSession struct {
    98  	Contract *PoolmanagerCaller // Generic contract caller binding to set the session for
    99  	CallOpts bind.CallOpts      // Call options to use throughout this session
   100  }
   101  
   102  // PoolmanagerTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
   103  // with pre-set transact options.
   104  type PoolmanagerTransactorSession struct {
   105  	Contract     *PoolmanagerTransactor // Generic contract transactor binding to set the session for
   106  	TransactOpts bind.TransactOpts      // Transaction auth options to use throughout this session
   107  }
   108  
   109  // PoolmanagerRaw is an auto generated low-level Go binding around an Ethereum contract.
   110  type PoolmanagerRaw struct {
   111  	Contract *Poolmanager // Generic contract binding to access the raw methods on
   112  }
   113  
   114  // PoolmanagerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
   115  type PoolmanagerCallerRaw struct {
   116  	Contract *PoolmanagerCaller // Generic read-only contract binding to access the raw methods on
   117  }
   118  
   119  // PoolmanagerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
   120  type PoolmanagerTransactorRaw struct {
   121  	Contract *PoolmanagerTransactor // Generic write-only contract binding to access the raw methods on
   122  }
   123  
   124  // NewPoolmanager creates a new instance of Poolmanager, bound to a specific deployed contract.
   125  func NewPoolmanager(address common.Address, backend bind.ContractBackend) (*Poolmanager, error) {
   126  	contract, err := bindPoolmanager(address, backend, backend, backend)
   127  	if err != nil {
   128  		return nil, err
   129  	}
   130  	return &Poolmanager{PoolmanagerCaller: PoolmanagerCaller{contract: contract}, PoolmanagerTransactor: PoolmanagerTransactor{contract: contract}, PoolmanagerFilterer: PoolmanagerFilterer{contract: contract}}, nil
   131  }
   132  
   133  // NewPoolmanagerCaller creates a new read-only instance of Poolmanager, bound to a specific deployed contract.
   134  func NewPoolmanagerCaller(address common.Address, caller bind.ContractCaller) (*PoolmanagerCaller, error) {
   135  	contract, err := bindPoolmanager(address, caller, nil, nil)
   136  	if err != nil {
   137  		return nil, err
   138  	}
   139  	return &PoolmanagerCaller{contract: contract}, nil
   140  }
   141  
   142  // NewPoolmanagerTransactor creates a new write-only instance of Poolmanager, bound to a specific deployed contract.
   143  func NewPoolmanagerTransactor(address common.Address, transactor bind.ContractTransactor) (*PoolmanagerTransactor, error) {
   144  	contract, err := bindPoolmanager(address, nil, transactor, nil)
   145  	if err != nil {
   146  		return nil, err
   147  	}
   148  	return &PoolmanagerTransactor{contract: contract}, nil
   149  }
   150  
   151  // NewPoolmanagerFilterer creates a new log filterer instance of Poolmanager, bound to a specific deployed contract.
   152  func NewPoolmanagerFilterer(address common.Address, filterer bind.ContractFilterer) (*PoolmanagerFilterer, error) {
   153  	contract, err := bindPoolmanager(address, nil, nil, filterer)
   154  	if err != nil {
   155  		return nil, err
   156  	}
   157  	return &PoolmanagerFilterer{contract: contract}, nil
   158  }
   159  
   160  // bindPoolmanager binds a generic wrapper to an already deployed contract.
   161  func bindPoolmanager(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   162  	parsed, err := PoolmanagerMetaData.GetAbi()
   163  	if err != nil {
   164  		return nil, err
   165  	}
   166  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
   167  }
   168  
   169  // Call invokes the (constant) contract method with params as input values and
   170  // sets the output to result. The result type might be a single field for simple
   171  // returns, a slice of interfaces for anonymous returns and a struct for named
   172  // returns.
   173  func (_Poolmanager *PoolmanagerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   174  	return _Poolmanager.Contract.PoolmanagerCaller.contract.Call(opts, result, method, params...)
   175  }
   176  
   177  // Transfer initiates a plain transaction to move funds to the contract, calling
   178  // its default method if one is available.
   179  func (_Poolmanager *PoolmanagerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   180  	return _Poolmanager.Contract.PoolmanagerTransactor.contract.Transfer(opts)
   181  }
   182  
   183  // Transact invokes the (paid) contract method with params as input values.
   184  func (_Poolmanager *PoolmanagerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   185  	return _Poolmanager.Contract.PoolmanagerTransactor.contract.Transact(opts, method, params...)
   186  }
   187  
   188  // Call invokes the (constant) contract method with params as input values and
   189  // sets the output to result. The result type might be a single field for simple
   190  // returns, a slice of interfaces for anonymous returns and a struct for named
   191  // returns.
   192  func (_Poolmanager *PoolmanagerCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   193  	return _Poolmanager.Contract.contract.Call(opts, result, method, params...)
   194  }
   195  
   196  // Transfer initiates a plain transaction to move funds to the contract, calling
   197  // its default method if one is available.
   198  func (_Poolmanager *PoolmanagerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   199  	return _Poolmanager.Contract.contract.Transfer(opts)
   200  }
   201  
   202  // Transact invokes the (paid) contract method with params as input values.
   203  func (_Poolmanager *PoolmanagerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   204  	return _Poolmanager.Contract.contract.Transact(opts, method, params...)
   205  }
   206  
   207  // Allowance is a free data retrieval call binding the contract method 0x598af9e7.
   208  //
   209  // Solidity: function allowance(address owner, address spender, uint256 id) view returns(uint256 amount)
   210  func (_Poolmanager *PoolmanagerCaller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address, id *big.Int) (*big.Int, error) {
   211  	var out []interface{}
   212  	err := _Poolmanager.contract.Call(opts, &out, "allowance", owner, spender, id)
   213  
   214  	if err != nil {
   215  		return *new(*big.Int), err
   216  	}
   217  
   218  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   219  
   220  	return out0, err
   221  
   222  }
   223  
   224  // Allowance is a free data retrieval call binding the contract method 0x598af9e7.
   225  //
   226  // Solidity: function allowance(address owner, address spender, uint256 id) view returns(uint256 amount)
   227  func (_Poolmanager *PoolmanagerSession) Allowance(owner common.Address, spender common.Address, id *big.Int) (*big.Int, error) {
   228  	return _Poolmanager.Contract.Allowance(&_Poolmanager.CallOpts, owner, spender, id)
   229  }
   230  
   231  // Allowance is a free data retrieval call binding the contract method 0x598af9e7.
   232  //
   233  // Solidity: function allowance(address owner, address spender, uint256 id) view returns(uint256 amount)
   234  func (_Poolmanager *PoolmanagerCallerSession) Allowance(owner common.Address, spender common.Address, id *big.Int) (*big.Int, error) {
   235  	return _Poolmanager.Contract.Allowance(&_Poolmanager.CallOpts, owner, spender, id)
   236  }
   237  
   238  // BalanceOf is a free data retrieval call binding the contract method 0x00fdd58e.
   239  //
   240  // Solidity: function balanceOf(address owner, uint256 id) view returns(uint256 balance)
   241  func (_Poolmanager *PoolmanagerCaller) BalanceOf(opts *bind.CallOpts, owner common.Address, id *big.Int) (*big.Int, error) {
   242  	var out []interface{}
   243  	err := _Poolmanager.contract.Call(opts, &out, "balanceOf", owner, id)
   244  
   245  	if err != nil {
   246  		return *new(*big.Int), err
   247  	}
   248  
   249  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   250  
   251  	return out0, err
   252  
   253  }
   254  
   255  // BalanceOf is a free data retrieval call binding the contract method 0x00fdd58e.
   256  //
   257  // Solidity: function balanceOf(address owner, uint256 id) view returns(uint256 balance)
   258  func (_Poolmanager *PoolmanagerSession) BalanceOf(owner common.Address, id *big.Int) (*big.Int, error) {
   259  	return _Poolmanager.Contract.BalanceOf(&_Poolmanager.CallOpts, owner, id)
   260  }
   261  
   262  // BalanceOf is a free data retrieval call binding the contract method 0x00fdd58e.
   263  //
   264  // Solidity: function balanceOf(address owner, uint256 id) view returns(uint256 balance)
   265  func (_Poolmanager *PoolmanagerCallerSession) BalanceOf(owner common.Address, id *big.Int) (*big.Int, error) {
   266  	return _Poolmanager.Contract.BalanceOf(&_Poolmanager.CallOpts, owner, id)
   267  }
   268  
   269  // Extsload is a free data retrieval call binding the contract method 0x1e2eaeaf.
   270  //
   271  // Solidity: function extsload(bytes32 slot) view returns(bytes32)
   272  func (_Poolmanager *PoolmanagerCaller) Extsload(opts *bind.CallOpts, slot [32]byte) ([32]byte, error) {
   273  	var out []interface{}
   274  	err := _Poolmanager.contract.Call(opts, &out, "extsload", slot)
   275  
   276  	if err != nil {
   277  		return *new([32]byte), err
   278  	}
   279  
   280  	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
   281  
   282  	return out0, err
   283  
   284  }
   285  
   286  // Extsload is a free data retrieval call binding the contract method 0x1e2eaeaf.
   287  //
   288  // Solidity: function extsload(bytes32 slot) view returns(bytes32)
   289  func (_Poolmanager *PoolmanagerSession) Extsload(slot [32]byte) ([32]byte, error) {
   290  	return _Poolmanager.Contract.Extsload(&_Poolmanager.CallOpts, slot)
   291  }
   292  
   293  // Extsload is a free data retrieval call binding the contract method 0x1e2eaeaf.
   294  //
   295  // Solidity: function extsload(bytes32 slot) view returns(bytes32)
   296  func (_Poolmanager *PoolmanagerCallerSession) Extsload(slot [32]byte) ([32]byte, error) {
   297  	return _Poolmanager.Contract.Extsload(&_Poolmanager.CallOpts, slot)
   298  }
   299  
   300  // Extsload0 is a free data retrieval call binding the contract method 0x35fd631a.
   301  //
   302  // Solidity: function extsload(bytes32 startSlot, uint256 nSlots) view returns(bytes32[])
   303  func (_Poolmanager *PoolmanagerCaller) Extsload0(opts *bind.CallOpts, startSlot [32]byte, nSlots *big.Int) ([][32]byte, error) {
   304  	var out []interface{}
   305  	err := _Poolmanager.contract.Call(opts, &out, "extsload0", startSlot, nSlots)
   306  
   307  	if err != nil {
   308  		return *new([][32]byte), err
   309  	}
   310  
   311  	out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte)
   312  
   313  	return out0, err
   314  
   315  }
   316  
   317  // Extsload0 is a free data retrieval call binding the contract method 0x35fd631a.
   318  //
   319  // Solidity: function extsload(bytes32 startSlot, uint256 nSlots) view returns(bytes32[])
   320  func (_Poolmanager *PoolmanagerSession) Extsload0(startSlot [32]byte, nSlots *big.Int) ([][32]byte, error) {
   321  	return _Poolmanager.Contract.Extsload0(&_Poolmanager.CallOpts, startSlot, nSlots)
   322  }
   323  
   324  // Extsload0 is a free data retrieval call binding the contract method 0x35fd631a.
   325  //
   326  // Solidity: function extsload(bytes32 startSlot, uint256 nSlots) view returns(bytes32[])
   327  func (_Poolmanager *PoolmanagerCallerSession) Extsload0(startSlot [32]byte, nSlots *big.Int) ([][32]byte, error) {
   328  	return _Poolmanager.Contract.Extsload0(&_Poolmanager.CallOpts, startSlot, nSlots)
   329  }
   330  
   331  // Extsload1 is a free data retrieval call binding the contract method 0xdbd035ff.
   332  //
   333  // Solidity: function extsload(bytes32[] slots) view returns(bytes32[])
   334  func (_Poolmanager *PoolmanagerCaller) Extsload1(opts *bind.CallOpts, slots [][32]byte) ([][32]byte, error) {
   335  	var out []interface{}
   336  	err := _Poolmanager.contract.Call(opts, &out, "extsload1", slots)
   337  
   338  	if err != nil {
   339  		return *new([][32]byte), err
   340  	}
   341  
   342  	out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte)
   343  
   344  	return out0, err
   345  
   346  }
   347  
   348  // Extsload1 is a free data retrieval call binding the contract method 0xdbd035ff.
   349  //
   350  // Solidity: function extsload(bytes32[] slots) view returns(bytes32[])
   351  func (_Poolmanager *PoolmanagerSession) Extsload1(slots [][32]byte) ([][32]byte, error) {
   352  	return _Poolmanager.Contract.Extsload1(&_Poolmanager.CallOpts, slots)
   353  }
   354  
   355  // Extsload1 is a free data retrieval call binding the contract method 0xdbd035ff.
   356  //
   357  // Solidity: function extsload(bytes32[] slots) view returns(bytes32[])
   358  func (_Poolmanager *PoolmanagerCallerSession) Extsload1(slots [][32]byte) ([][32]byte, error) {
   359  	return _Poolmanager.Contract.Extsload1(&_Poolmanager.CallOpts, slots)
   360  }
   361  
   362  // Exttload is a free data retrieval call binding the contract method 0x9bf6645f.
   363  //
   364  // Solidity: function exttload(bytes32[] slots) view returns(bytes32[])
   365  func (_Poolmanager *PoolmanagerCaller) Exttload(opts *bind.CallOpts, slots [][32]byte) ([][32]byte, error) {
   366  	var out []interface{}
   367  	err := _Poolmanager.contract.Call(opts, &out, "exttload", slots)
   368  
   369  	if err != nil {
   370  		return *new([][32]byte), err
   371  	}
   372  
   373  	out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte)
   374  
   375  	return out0, err
   376  
   377  }
   378  
   379  // Exttload is a free data retrieval call binding the contract method 0x9bf6645f.
   380  //
   381  // Solidity: function exttload(bytes32[] slots) view returns(bytes32[])
   382  func (_Poolmanager *PoolmanagerSession) Exttload(slots [][32]byte) ([][32]byte, error) {
   383  	return _Poolmanager.Contract.Exttload(&_Poolmanager.CallOpts, slots)
   384  }
   385  
   386  // Exttload is a free data retrieval call binding the contract method 0x9bf6645f.
   387  //
   388  // Solidity: function exttload(bytes32[] slots) view returns(bytes32[])
   389  func (_Poolmanager *PoolmanagerCallerSession) Exttload(slots [][32]byte) ([][32]byte, error) {
   390  	return _Poolmanager.Contract.Exttload(&_Poolmanager.CallOpts, slots)
   391  }
   392  
   393  // Exttload0 is a free data retrieval call binding the contract method 0xf135baaa.
   394  //
   395  // Solidity: function exttload(bytes32 slot) view returns(bytes32)
   396  func (_Poolmanager *PoolmanagerCaller) Exttload0(opts *bind.CallOpts, slot [32]byte) ([32]byte, error) {
   397  	var out []interface{}
   398  	err := _Poolmanager.contract.Call(opts, &out, "exttload0", slot)
   399  
   400  	if err != nil {
   401  		return *new([32]byte), err
   402  	}
   403  
   404  	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
   405  
   406  	return out0, err
   407  
   408  }
   409  
   410  // Exttload0 is a free data retrieval call binding the contract method 0xf135baaa.
   411  //
   412  // Solidity: function exttload(bytes32 slot) view returns(bytes32)
   413  func (_Poolmanager *PoolmanagerSession) Exttload0(slot [32]byte) ([32]byte, error) {
   414  	return _Poolmanager.Contract.Exttload0(&_Poolmanager.CallOpts, slot)
   415  }
   416  
   417  // Exttload0 is a free data retrieval call binding the contract method 0xf135baaa.
   418  //
   419  // Solidity: function exttload(bytes32 slot) view returns(bytes32)
   420  func (_Poolmanager *PoolmanagerCallerSession) Exttload0(slot [32]byte) ([32]byte, error) {
   421  	return _Poolmanager.Contract.Exttload0(&_Poolmanager.CallOpts, slot)
   422  }
   423  
   424  // IsOperator is a free data retrieval call binding the contract method 0xb6363cf2.
   425  //
   426  // Solidity: function isOperator(address owner, address operator) view returns(bool isOperator)
   427  func (_Poolmanager *PoolmanagerCaller) IsOperator(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) {
   428  	var out []interface{}
   429  	err := _Poolmanager.contract.Call(opts, &out, "isOperator", owner, operator)
   430  
   431  	if err != nil {
   432  		return *new(bool), err
   433  	}
   434  
   435  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   436  
   437  	return out0, err
   438  
   439  }
   440  
   441  // IsOperator is a free data retrieval call binding the contract method 0xb6363cf2.
   442  //
   443  // Solidity: function isOperator(address owner, address operator) view returns(bool isOperator)
   444  func (_Poolmanager *PoolmanagerSession) IsOperator(owner common.Address, operator common.Address) (bool, error) {
   445  	return _Poolmanager.Contract.IsOperator(&_Poolmanager.CallOpts, owner, operator)
   446  }
   447  
   448  // IsOperator is a free data retrieval call binding the contract method 0xb6363cf2.
   449  //
   450  // Solidity: function isOperator(address owner, address operator) view returns(bool isOperator)
   451  func (_Poolmanager *PoolmanagerCallerSession) IsOperator(owner common.Address, operator common.Address) (bool, error) {
   452  	return _Poolmanager.Contract.IsOperator(&_Poolmanager.CallOpts, owner, operator)
   453  }
   454  
   455  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   456  //
   457  // Solidity: function owner() view returns(address)
   458  func (_Poolmanager *PoolmanagerCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
   459  	var out []interface{}
   460  	err := _Poolmanager.contract.Call(opts, &out, "owner")
   461  
   462  	if err != nil {
   463  		return *new(common.Address), err
   464  	}
   465  
   466  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   467  
   468  	return out0, err
   469  
   470  }
   471  
   472  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   473  //
   474  // Solidity: function owner() view returns(address)
   475  func (_Poolmanager *PoolmanagerSession) Owner() (common.Address, error) {
   476  	return _Poolmanager.Contract.Owner(&_Poolmanager.CallOpts)
   477  }
   478  
   479  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   480  //
   481  // Solidity: function owner() view returns(address)
   482  func (_Poolmanager *PoolmanagerCallerSession) Owner() (common.Address, error) {
   483  	return _Poolmanager.Contract.Owner(&_Poolmanager.CallOpts)
   484  }
   485  
   486  // ProtocolFeeController is a free data retrieval call binding the contract method 0xf02de3b2.
   487  //
   488  // Solidity: function protocolFeeController() view returns(address)
   489  func (_Poolmanager *PoolmanagerCaller) ProtocolFeeController(opts *bind.CallOpts) (common.Address, error) {
   490  	var out []interface{}
   491  	err := _Poolmanager.contract.Call(opts, &out, "protocolFeeController")
   492  
   493  	if err != nil {
   494  		return *new(common.Address), err
   495  	}
   496  
   497  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   498  
   499  	return out0, err
   500  
   501  }
   502  
   503  // ProtocolFeeController is a free data retrieval call binding the contract method 0xf02de3b2.
   504  //
   505  // Solidity: function protocolFeeController() view returns(address)
   506  func (_Poolmanager *PoolmanagerSession) ProtocolFeeController() (common.Address, error) {
   507  	return _Poolmanager.Contract.ProtocolFeeController(&_Poolmanager.CallOpts)
   508  }
   509  
   510  // ProtocolFeeController is a free data retrieval call binding the contract method 0xf02de3b2.
   511  //
   512  // Solidity: function protocolFeeController() view returns(address)
   513  func (_Poolmanager *PoolmanagerCallerSession) ProtocolFeeController() (common.Address, error) {
   514  	return _Poolmanager.Contract.ProtocolFeeController(&_Poolmanager.CallOpts)
   515  }
   516  
   517  // ProtocolFeesAccrued is a free data retrieval call binding the contract method 0x97e8cd4e.
   518  //
   519  // Solidity: function protocolFeesAccrued(address currency) view returns(uint256 amount)
   520  func (_Poolmanager *PoolmanagerCaller) ProtocolFeesAccrued(opts *bind.CallOpts, currency common.Address) (*big.Int, error) {
   521  	var out []interface{}
   522  	err := _Poolmanager.contract.Call(opts, &out, "protocolFeesAccrued", currency)
   523  
   524  	if err != nil {
   525  		return *new(*big.Int), err
   526  	}
   527  
   528  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   529  
   530  	return out0, err
   531  
   532  }
   533  
   534  // ProtocolFeesAccrued is a free data retrieval call binding the contract method 0x97e8cd4e.
   535  //
   536  // Solidity: function protocolFeesAccrued(address currency) view returns(uint256 amount)
   537  func (_Poolmanager *PoolmanagerSession) ProtocolFeesAccrued(currency common.Address) (*big.Int, error) {
   538  	return _Poolmanager.Contract.ProtocolFeesAccrued(&_Poolmanager.CallOpts, currency)
   539  }
   540  
   541  // ProtocolFeesAccrued is a free data retrieval call binding the contract method 0x97e8cd4e.
   542  //
   543  // Solidity: function protocolFeesAccrued(address currency) view returns(uint256 amount)
   544  func (_Poolmanager *PoolmanagerCallerSession) ProtocolFeesAccrued(currency common.Address) (*big.Int, error) {
   545  	return _Poolmanager.Contract.ProtocolFeesAccrued(&_Poolmanager.CallOpts, currency)
   546  }
   547  
   548  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
   549  //
   550  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
   551  func (_Poolmanager *PoolmanagerCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
   552  	var out []interface{}
   553  	err := _Poolmanager.contract.Call(opts, &out, "supportsInterface", interfaceId)
   554  
   555  	if err != nil {
   556  		return *new(bool), err
   557  	}
   558  
   559  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   560  
   561  	return out0, err
   562  
   563  }
   564  
   565  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
   566  //
   567  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
   568  func (_Poolmanager *PoolmanagerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
   569  	return _Poolmanager.Contract.SupportsInterface(&_Poolmanager.CallOpts, interfaceId)
   570  }
   571  
   572  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
   573  //
   574  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
   575  func (_Poolmanager *PoolmanagerCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
   576  	return _Poolmanager.Contract.SupportsInterface(&_Poolmanager.CallOpts, interfaceId)
   577  }
   578  
   579  // Approve is a paid mutator transaction binding the contract method 0x426a8493.
   580  //
   581  // Solidity: function approve(address spender, uint256 id, uint256 amount) returns(bool)
   582  func (_Poolmanager *PoolmanagerTransactor) Approve(opts *bind.TransactOpts, spender common.Address, id *big.Int, amount *big.Int) (*types.Transaction, error) {
   583  	return _Poolmanager.contract.Transact(opts, "approve", spender, id, amount)
   584  }
   585  
   586  // Approve is a paid mutator transaction binding the contract method 0x426a8493.
   587  //
   588  // Solidity: function approve(address spender, uint256 id, uint256 amount) returns(bool)
   589  func (_Poolmanager *PoolmanagerSession) Approve(spender common.Address, id *big.Int, amount *big.Int) (*types.Transaction, error) {
   590  	return _Poolmanager.Contract.Approve(&_Poolmanager.TransactOpts, spender, id, amount)
   591  }
   592  
   593  // Approve is a paid mutator transaction binding the contract method 0x426a8493.
   594  //
   595  // Solidity: function approve(address spender, uint256 id, uint256 amount) returns(bool)
   596  func (_Poolmanager *PoolmanagerTransactorSession) Approve(spender common.Address, id *big.Int, amount *big.Int) (*types.Transaction, error) {
   597  	return _Poolmanager.Contract.Approve(&_Poolmanager.TransactOpts, spender, id, amount)
   598  }
   599  
   600  // Burn is a paid mutator transaction binding the contract method 0xf5298aca.
   601  //
   602  // Solidity: function burn(address from, uint256 id, uint256 amount) returns()
   603  func (_Poolmanager *PoolmanagerTransactor) Burn(opts *bind.TransactOpts, from common.Address, id *big.Int, amount *big.Int) (*types.Transaction, error) {
   604  	return _Poolmanager.contract.Transact(opts, "burn", from, id, amount)
   605  }
   606  
   607  // Burn is a paid mutator transaction binding the contract method 0xf5298aca.
   608  //
   609  // Solidity: function burn(address from, uint256 id, uint256 amount) returns()
   610  func (_Poolmanager *PoolmanagerSession) Burn(from common.Address, id *big.Int, amount *big.Int) (*types.Transaction, error) {
   611  	return _Poolmanager.Contract.Burn(&_Poolmanager.TransactOpts, from, id, amount)
   612  }
   613  
   614  // Burn is a paid mutator transaction binding the contract method 0xf5298aca.
   615  //
   616  // Solidity: function burn(address from, uint256 id, uint256 amount) returns()
   617  func (_Poolmanager *PoolmanagerTransactorSession) Burn(from common.Address, id *big.Int, amount *big.Int) (*types.Transaction, error) {
   618  	return _Poolmanager.Contract.Burn(&_Poolmanager.TransactOpts, from, id, amount)
   619  }
   620  
   621  // Clear is a paid mutator transaction binding the contract method 0x80f0b44c.
   622  //
   623  // Solidity: function clear(address currency, uint256 amount) returns()
   624  func (_Poolmanager *PoolmanagerTransactor) Clear(opts *bind.TransactOpts, currency common.Address, amount *big.Int) (*types.Transaction, error) {
   625  	return _Poolmanager.contract.Transact(opts, "clear", currency, amount)
   626  }
   627  
   628  // Clear is a paid mutator transaction binding the contract method 0x80f0b44c.
   629  //
   630  // Solidity: function clear(address currency, uint256 amount) returns()
   631  func (_Poolmanager *PoolmanagerSession) Clear(currency common.Address, amount *big.Int) (*types.Transaction, error) {
   632  	return _Poolmanager.Contract.Clear(&_Poolmanager.TransactOpts, currency, amount)
   633  }
   634  
   635  // Clear is a paid mutator transaction binding the contract method 0x80f0b44c.
   636  //
   637  // Solidity: function clear(address currency, uint256 amount) returns()
   638  func (_Poolmanager *PoolmanagerTransactorSession) Clear(currency common.Address, amount *big.Int) (*types.Transaction, error) {
   639  	return _Poolmanager.Contract.Clear(&_Poolmanager.TransactOpts, currency, amount)
   640  }
   641  
   642  // CollectProtocolFees is a paid mutator transaction binding the contract method 0x8161b874.
   643  //
   644  // Solidity: function collectProtocolFees(address recipient, address currency, uint256 amount) returns(uint256 amountCollected)
   645  func (_Poolmanager *PoolmanagerTransactor) CollectProtocolFees(opts *bind.TransactOpts, recipient common.Address, currency common.Address, amount *big.Int) (*types.Transaction, error) {
   646  	return _Poolmanager.contract.Transact(opts, "collectProtocolFees", recipient, currency, amount)
   647  }
   648  
   649  // CollectProtocolFees is a paid mutator transaction binding the contract method 0x8161b874.
   650  //
   651  // Solidity: function collectProtocolFees(address recipient, address currency, uint256 amount) returns(uint256 amountCollected)
   652  func (_Poolmanager *PoolmanagerSession) CollectProtocolFees(recipient common.Address, currency common.Address, amount *big.Int) (*types.Transaction, error) {
   653  	return _Poolmanager.Contract.CollectProtocolFees(&_Poolmanager.TransactOpts, recipient, currency, amount)
   654  }
   655  
   656  // CollectProtocolFees is a paid mutator transaction binding the contract method 0x8161b874.
   657  //
   658  // Solidity: function collectProtocolFees(address recipient, address currency, uint256 amount) returns(uint256 amountCollected)
   659  func (_Poolmanager *PoolmanagerTransactorSession) CollectProtocolFees(recipient common.Address, currency common.Address, amount *big.Int) (*types.Transaction, error) {
   660  	return _Poolmanager.Contract.CollectProtocolFees(&_Poolmanager.TransactOpts, recipient, currency, amount)
   661  }
   662  
   663  // Donate is a paid mutator transaction binding the contract method 0x234266d7.
   664  //
   665  // Solidity: function donate((address,address,uint24,int24,address) key, uint256 amount0, uint256 amount1, bytes hookData) returns(int256 delta)
   666  func (_Poolmanager *PoolmanagerTransactor) Donate(opts *bind.TransactOpts, key PoolKey, amount0 *big.Int, amount1 *big.Int, hookData []byte) (*types.Transaction, error) {
   667  	return _Poolmanager.contract.Transact(opts, "donate", key, amount0, amount1, hookData)
   668  }
   669  
   670  // Donate is a paid mutator transaction binding the contract method 0x234266d7.
   671  //
   672  // Solidity: function donate((address,address,uint24,int24,address) key, uint256 amount0, uint256 amount1, bytes hookData) returns(int256 delta)
   673  func (_Poolmanager *PoolmanagerSession) Donate(key PoolKey, amount0 *big.Int, amount1 *big.Int, hookData []byte) (*types.Transaction, error) {
   674  	return _Poolmanager.Contract.Donate(&_Poolmanager.TransactOpts, key, amount0, amount1, hookData)
   675  }
   676  
   677  // Donate is a paid mutator transaction binding the contract method 0x234266d7.
   678  //
   679  // Solidity: function donate((address,address,uint24,int24,address) key, uint256 amount0, uint256 amount1, bytes hookData) returns(int256 delta)
   680  func (_Poolmanager *PoolmanagerTransactorSession) Donate(key PoolKey, amount0 *big.Int, amount1 *big.Int, hookData []byte) (*types.Transaction, error) {
   681  	return _Poolmanager.Contract.Donate(&_Poolmanager.TransactOpts, key, amount0, amount1, hookData)
   682  }
   683  
   684  // Initialize is a paid mutator transaction binding the contract method 0x6276cbbe.
   685  //
   686  // Solidity: function initialize((address,address,uint24,int24,address) key, uint160 sqrtPriceX96) returns(int24 tick)
   687  func (_Poolmanager *PoolmanagerTransactor) Initialize(opts *bind.TransactOpts, key PoolKey, sqrtPriceX96 *big.Int) (*types.Transaction, error) {
   688  	return _Poolmanager.contract.Transact(opts, "initialize", key, sqrtPriceX96)
   689  }
   690  
   691  // Initialize is a paid mutator transaction binding the contract method 0x6276cbbe.
   692  //
   693  // Solidity: function initialize((address,address,uint24,int24,address) key, uint160 sqrtPriceX96) returns(int24 tick)
   694  func (_Poolmanager *PoolmanagerSession) Initialize(key PoolKey, sqrtPriceX96 *big.Int) (*types.Transaction, error) {
   695  	return _Poolmanager.Contract.Initialize(&_Poolmanager.TransactOpts, key, sqrtPriceX96)
   696  }
   697  
   698  // Initialize is a paid mutator transaction binding the contract method 0x6276cbbe.
   699  //
   700  // Solidity: function initialize((address,address,uint24,int24,address) key, uint160 sqrtPriceX96) returns(int24 tick)
   701  func (_Poolmanager *PoolmanagerTransactorSession) Initialize(key PoolKey, sqrtPriceX96 *big.Int) (*types.Transaction, error) {
   702  	return _Poolmanager.Contract.Initialize(&_Poolmanager.TransactOpts, key, sqrtPriceX96)
   703  }
   704  
   705  // Mint is a paid mutator transaction binding the contract method 0x156e29f6.
   706  //
   707  // Solidity: function mint(address to, uint256 id, uint256 amount) returns()
   708  func (_Poolmanager *PoolmanagerTransactor) Mint(opts *bind.TransactOpts, to common.Address, id *big.Int, amount *big.Int) (*types.Transaction, error) {
   709  	return _Poolmanager.contract.Transact(opts, "mint", to, id, amount)
   710  }
   711  
   712  // Mint is a paid mutator transaction binding the contract method 0x156e29f6.
   713  //
   714  // Solidity: function mint(address to, uint256 id, uint256 amount) returns()
   715  func (_Poolmanager *PoolmanagerSession) Mint(to common.Address, id *big.Int, amount *big.Int) (*types.Transaction, error) {
   716  	return _Poolmanager.Contract.Mint(&_Poolmanager.TransactOpts, to, id, amount)
   717  }
   718  
   719  // Mint is a paid mutator transaction binding the contract method 0x156e29f6.
   720  //
   721  // Solidity: function mint(address to, uint256 id, uint256 amount) returns()
   722  func (_Poolmanager *PoolmanagerTransactorSession) Mint(to common.Address, id *big.Int, amount *big.Int) (*types.Transaction, error) {
   723  	return _Poolmanager.Contract.Mint(&_Poolmanager.TransactOpts, to, id, amount)
   724  }
   725  
   726  // ModifyLiquidity is a paid mutator transaction binding the contract method 0x5a6bcfda.
   727  //
   728  // Solidity: function modifyLiquidity((address,address,uint24,int24,address) key, (int24,int24,int256,bytes32) params, bytes hookData) returns(int256 callerDelta, int256 feesAccrued)
   729  func (_Poolmanager *PoolmanagerTransactor) ModifyLiquidity(opts *bind.TransactOpts, key PoolKey, params IPoolManagerModifyLiquidityParams, hookData []byte) (*types.Transaction, error) {
   730  	return _Poolmanager.contract.Transact(opts, "modifyLiquidity", key, params, hookData)
   731  }
   732  
   733  // ModifyLiquidity is a paid mutator transaction binding the contract method 0x5a6bcfda.
   734  //
   735  // Solidity: function modifyLiquidity((address,address,uint24,int24,address) key, (int24,int24,int256,bytes32) params, bytes hookData) returns(int256 callerDelta, int256 feesAccrued)
   736  func (_Poolmanager *PoolmanagerSession) ModifyLiquidity(key PoolKey, params IPoolManagerModifyLiquidityParams, hookData []byte) (*types.Transaction, error) {
   737  	return _Poolmanager.Contract.ModifyLiquidity(&_Poolmanager.TransactOpts, key, params, hookData)
   738  }
   739  
   740  // ModifyLiquidity is a paid mutator transaction binding the contract method 0x5a6bcfda.
   741  //
   742  // Solidity: function modifyLiquidity((address,address,uint24,int24,address) key, (int24,int24,int256,bytes32) params, bytes hookData) returns(int256 callerDelta, int256 feesAccrued)
   743  func (_Poolmanager *PoolmanagerTransactorSession) ModifyLiquidity(key PoolKey, params IPoolManagerModifyLiquidityParams, hookData []byte) (*types.Transaction, error) {
   744  	return _Poolmanager.Contract.ModifyLiquidity(&_Poolmanager.TransactOpts, key, params, hookData)
   745  }
   746  
   747  // SetOperator is a paid mutator transaction binding the contract method 0x558a7297.
   748  //
   749  // Solidity: function setOperator(address operator, bool approved) returns(bool)
   750  func (_Poolmanager *PoolmanagerTransactor) SetOperator(opts *bind.TransactOpts, operator common.Address, approved bool) (*types.Transaction, error) {
   751  	return _Poolmanager.contract.Transact(opts, "setOperator", operator, approved)
   752  }
   753  
   754  // SetOperator is a paid mutator transaction binding the contract method 0x558a7297.
   755  //
   756  // Solidity: function setOperator(address operator, bool approved) returns(bool)
   757  func (_Poolmanager *PoolmanagerSession) SetOperator(operator common.Address, approved bool) (*types.Transaction, error) {
   758  	return _Poolmanager.Contract.SetOperator(&_Poolmanager.TransactOpts, operator, approved)
   759  }
   760  
   761  // SetOperator is a paid mutator transaction binding the contract method 0x558a7297.
   762  //
   763  // Solidity: function setOperator(address operator, bool approved) returns(bool)
   764  func (_Poolmanager *PoolmanagerTransactorSession) SetOperator(operator common.Address, approved bool) (*types.Transaction, error) {
   765  	return _Poolmanager.Contract.SetOperator(&_Poolmanager.TransactOpts, operator, approved)
   766  }
   767  
   768  // SetProtocolFee is a paid mutator transaction binding the contract method 0x7e87ce7d.
   769  //
   770  // Solidity: function setProtocolFee((address,address,uint24,int24,address) key, uint24 newProtocolFee) returns()
   771  func (_Poolmanager *PoolmanagerTransactor) SetProtocolFee(opts *bind.TransactOpts, key PoolKey, newProtocolFee *big.Int) (*types.Transaction, error) {
   772  	return _Poolmanager.contract.Transact(opts, "setProtocolFee", key, newProtocolFee)
   773  }
   774  
   775  // SetProtocolFee is a paid mutator transaction binding the contract method 0x7e87ce7d.
   776  //
   777  // Solidity: function setProtocolFee((address,address,uint24,int24,address) key, uint24 newProtocolFee) returns()
   778  func (_Poolmanager *PoolmanagerSession) SetProtocolFee(key PoolKey, newProtocolFee *big.Int) (*types.Transaction, error) {
   779  	return _Poolmanager.Contract.SetProtocolFee(&_Poolmanager.TransactOpts, key, newProtocolFee)
   780  }
   781  
   782  // SetProtocolFee is a paid mutator transaction binding the contract method 0x7e87ce7d.
   783  //
   784  // Solidity: function setProtocolFee((address,address,uint24,int24,address) key, uint24 newProtocolFee) returns()
   785  func (_Poolmanager *PoolmanagerTransactorSession) SetProtocolFee(key PoolKey, newProtocolFee *big.Int) (*types.Transaction, error) {
   786  	return _Poolmanager.Contract.SetProtocolFee(&_Poolmanager.TransactOpts, key, newProtocolFee)
   787  }
   788  
   789  // SetProtocolFeeController is a paid mutator transaction binding the contract method 0x2d771389.
   790  //
   791  // Solidity: function setProtocolFeeController(address controller) returns()
   792  func (_Poolmanager *PoolmanagerTransactor) SetProtocolFeeController(opts *bind.TransactOpts, controller common.Address) (*types.Transaction, error) {
   793  	return _Poolmanager.contract.Transact(opts, "setProtocolFeeController", controller)
   794  }
   795  
   796  // SetProtocolFeeController is a paid mutator transaction binding the contract method 0x2d771389.
   797  //
   798  // Solidity: function setProtocolFeeController(address controller) returns()
   799  func (_Poolmanager *PoolmanagerSession) SetProtocolFeeController(controller common.Address) (*types.Transaction, error) {
   800  	return _Poolmanager.Contract.SetProtocolFeeController(&_Poolmanager.TransactOpts, controller)
   801  }
   802  
   803  // SetProtocolFeeController is a paid mutator transaction binding the contract method 0x2d771389.
   804  //
   805  // Solidity: function setProtocolFeeController(address controller) returns()
   806  func (_Poolmanager *PoolmanagerTransactorSession) SetProtocolFeeController(controller common.Address) (*types.Transaction, error) {
   807  	return _Poolmanager.Contract.SetProtocolFeeController(&_Poolmanager.TransactOpts, controller)
   808  }
   809  
   810  // Settle is a paid mutator transaction binding the contract method 0x11da60b4.
   811  //
   812  // Solidity: function settle() payable returns(uint256)
   813  func (_Poolmanager *PoolmanagerTransactor) Settle(opts *bind.TransactOpts) (*types.Transaction, error) {
   814  	return _Poolmanager.contract.Transact(opts, "settle")
   815  }
   816  
   817  // Settle is a paid mutator transaction binding the contract method 0x11da60b4.
   818  //
   819  // Solidity: function settle() payable returns(uint256)
   820  func (_Poolmanager *PoolmanagerSession) Settle() (*types.Transaction, error) {
   821  	return _Poolmanager.Contract.Settle(&_Poolmanager.TransactOpts)
   822  }
   823  
   824  // Settle is a paid mutator transaction binding the contract method 0x11da60b4.
   825  //
   826  // Solidity: function settle() payable returns(uint256)
   827  func (_Poolmanager *PoolmanagerTransactorSession) Settle() (*types.Transaction, error) {
   828  	return _Poolmanager.Contract.Settle(&_Poolmanager.TransactOpts)
   829  }
   830  
   831  // SettleFor is a paid mutator transaction binding the contract method 0x3dd45adb.
   832  //
   833  // Solidity: function settleFor(address recipient) payable returns(uint256)
   834  func (_Poolmanager *PoolmanagerTransactor) SettleFor(opts *bind.TransactOpts, recipient common.Address) (*types.Transaction, error) {
   835  	return _Poolmanager.contract.Transact(opts, "settleFor", recipient)
   836  }
   837  
   838  // SettleFor is a paid mutator transaction binding the contract method 0x3dd45adb.
   839  //
   840  // Solidity: function settleFor(address recipient) payable returns(uint256)
   841  func (_Poolmanager *PoolmanagerSession) SettleFor(recipient common.Address) (*types.Transaction, error) {
   842  	return _Poolmanager.Contract.SettleFor(&_Poolmanager.TransactOpts, recipient)
   843  }
   844  
   845  // SettleFor is a paid mutator transaction binding the contract method 0x3dd45adb.
   846  //
   847  // Solidity: function settleFor(address recipient) payable returns(uint256)
   848  func (_Poolmanager *PoolmanagerTransactorSession) SettleFor(recipient common.Address) (*types.Transaction, error) {
   849  	return _Poolmanager.Contract.SettleFor(&_Poolmanager.TransactOpts, recipient)
   850  }
   851  
   852  // Swap is a paid mutator transaction binding the contract method 0xf3cd914c.
   853  //
   854  // Solidity: function swap((address,address,uint24,int24,address) key, (bool,int256,uint160) params, bytes hookData) returns(int256 swapDelta)
   855  func (_Poolmanager *PoolmanagerTransactor) Swap(opts *bind.TransactOpts, key PoolKey, params IPoolManagerSwapParams, hookData []byte) (*types.Transaction, error) {
   856  	return _Poolmanager.contract.Transact(opts, "swap", key, params, hookData)
   857  }
   858  
   859  // Swap is a paid mutator transaction binding the contract method 0xf3cd914c.
   860  //
   861  // Solidity: function swap((address,address,uint24,int24,address) key, (bool,int256,uint160) params, bytes hookData) returns(int256 swapDelta)
   862  func (_Poolmanager *PoolmanagerSession) Swap(key PoolKey, params IPoolManagerSwapParams, hookData []byte) (*types.Transaction, error) {
   863  	return _Poolmanager.Contract.Swap(&_Poolmanager.TransactOpts, key, params, hookData)
   864  }
   865  
   866  // Swap is a paid mutator transaction binding the contract method 0xf3cd914c.
   867  //
   868  // Solidity: function swap((address,address,uint24,int24,address) key, (bool,int256,uint160) params, bytes hookData) returns(int256 swapDelta)
   869  func (_Poolmanager *PoolmanagerTransactorSession) Swap(key PoolKey, params IPoolManagerSwapParams, hookData []byte) (*types.Transaction, error) {
   870  	return _Poolmanager.Contract.Swap(&_Poolmanager.TransactOpts, key, params, hookData)
   871  }
   872  
   873  // Sync is a paid mutator transaction binding the contract method 0xa5841194.
   874  //
   875  // Solidity: function sync(address currency) returns()
   876  func (_Poolmanager *PoolmanagerTransactor) Sync(opts *bind.TransactOpts, currency common.Address) (*types.Transaction, error) {
   877  	return _Poolmanager.contract.Transact(opts, "sync", currency)
   878  }
   879  
   880  // Sync is a paid mutator transaction binding the contract method 0xa5841194.
   881  //
   882  // Solidity: function sync(address currency) returns()
   883  func (_Poolmanager *PoolmanagerSession) Sync(currency common.Address) (*types.Transaction, error) {
   884  	return _Poolmanager.Contract.Sync(&_Poolmanager.TransactOpts, currency)
   885  }
   886  
   887  // Sync is a paid mutator transaction binding the contract method 0xa5841194.
   888  //
   889  // Solidity: function sync(address currency) returns()
   890  func (_Poolmanager *PoolmanagerTransactorSession) Sync(currency common.Address) (*types.Transaction, error) {
   891  	return _Poolmanager.Contract.Sync(&_Poolmanager.TransactOpts, currency)
   892  }
   893  
   894  // Take is a paid mutator transaction binding the contract method 0x0b0d9c09.
   895  //
   896  // Solidity: function take(address currency, address to, uint256 amount) returns()
   897  func (_Poolmanager *PoolmanagerTransactor) Take(opts *bind.TransactOpts, currency common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) {
   898  	return _Poolmanager.contract.Transact(opts, "take", currency, to, amount)
   899  }
   900  
   901  // Take is a paid mutator transaction binding the contract method 0x0b0d9c09.
   902  //
   903  // Solidity: function take(address currency, address to, uint256 amount) returns()
   904  func (_Poolmanager *PoolmanagerSession) Take(currency common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) {
   905  	return _Poolmanager.Contract.Take(&_Poolmanager.TransactOpts, currency, to, amount)
   906  }
   907  
   908  // Take is a paid mutator transaction binding the contract method 0x0b0d9c09.
   909  //
   910  // Solidity: function take(address currency, address to, uint256 amount) returns()
   911  func (_Poolmanager *PoolmanagerTransactorSession) Take(currency common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) {
   912  	return _Poolmanager.Contract.Take(&_Poolmanager.TransactOpts, currency, to, amount)
   913  }
   914  
   915  // Transfer is a paid mutator transaction binding the contract method 0x095bcdb6.
   916  //
   917  // Solidity: function transfer(address receiver, uint256 id, uint256 amount) returns(bool)
   918  func (_Poolmanager *PoolmanagerTransactor) Transfer(opts *bind.TransactOpts, receiver common.Address, id *big.Int, amount *big.Int) (*types.Transaction, error) {
   919  	return _Poolmanager.contract.Transact(opts, "transfer", receiver, id, amount)
   920  }
   921  
   922  // Transfer is a paid mutator transaction binding the contract method 0x095bcdb6.
   923  //
   924  // Solidity: function transfer(address receiver, uint256 id, uint256 amount) returns(bool)
   925  func (_Poolmanager *PoolmanagerSession) Transfer(receiver common.Address, id *big.Int, amount *big.Int) (*types.Transaction, error) {
   926  	return _Poolmanager.Contract.Transfer(&_Poolmanager.TransactOpts, receiver, id, amount)
   927  }
   928  
   929  // Transfer is a paid mutator transaction binding the contract method 0x095bcdb6.
   930  //
   931  // Solidity: function transfer(address receiver, uint256 id, uint256 amount) returns(bool)
   932  func (_Poolmanager *PoolmanagerTransactorSession) Transfer(receiver common.Address, id *big.Int, amount *big.Int) (*types.Transaction, error) {
   933  	return _Poolmanager.Contract.Transfer(&_Poolmanager.TransactOpts, receiver, id, amount)
   934  }
   935  
   936  // TransferFrom is a paid mutator transaction binding the contract method 0xfe99049a.
   937  //
   938  // Solidity: function transferFrom(address sender, address receiver, uint256 id, uint256 amount) returns(bool)
   939  func (_Poolmanager *PoolmanagerTransactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, receiver common.Address, id *big.Int, amount *big.Int) (*types.Transaction, error) {
   940  	return _Poolmanager.contract.Transact(opts, "transferFrom", sender, receiver, id, amount)
   941  }
   942  
   943  // TransferFrom is a paid mutator transaction binding the contract method 0xfe99049a.
   944  //
   945  // Solidity: function transferFrom(address sender, address receiver, uint256 id, uint256 amount) returns(bool)
   946  func (_Poolmanager *PoolmanagerSession) TransferFrom(sender common.Address, receiver common.Address, id *big.Int, amount *big.Int) (*types.Transaction, error) {
   947  	return _Poolmanager.Contract.TransferFrom(&_Poolmanager.TransactOpts, sender, receiver, id, amount)
   948  }
   949  
   950  // TransferFrom is a paid mutator transaction binding the contract method 0xfe99049a.
   951  //
   952  // Solidity: function transferFrom(address sender, address receiver, uint256 id, uint256 amount) returns(bool)
   953  func (_Poolmanager *PoolmanagerTransactorSession) TransferFrom(sender common.Address, receiver common.Address, id *big.Int, amount *big.Int) (*types.Transaction, error) {
   954  	return _Poolmanager.Contract.TransferFrom(&_Poolmanager.TransactOpts, sender, receiver, id, amount)
   955  }
   956  
   957  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
   958  //
   959  // Solidity: function transferOwnership(address newOwner) returns()
   960  func (_Poolmanager *PoolmanagerTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
   961  	return _Poolmanager.contract.Transact(opts, "transferOwnership", newOwner)
   962  }
   963  
   964  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
   965  //
   966  // Solidity: function transferOwnership(address newOwner) returns()
   967  func (_Poolmanager *PoolmanagerSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
   968  	return _Poolmanager.Contract.TransferOwnership(&_Poolmanager.TransactOpts, newOwner)
   969  }
   970  
   971  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
   972  //
   973  // Solidity: function transferOwnership(address newOwner) returns()
   974  func (_Poolmanager *PoolmanagerTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
   975  	return _Poolmanager.Contract.TransferOwnership(&_Poolmanager.TransactOpts, newOwner)
   976  }
   977  
   978  // Unlock is a paid mutator transaction binding the contract method 0x48c89491.
   979  //
   980  // Solidity: function unlock(bytes data) returns(bytes result)
   981  func (_Poolmanager *PoolmanagerTransactor) Unlock(opts *bind.TransactOpts, data []byte) (*types.Transaction, error) {
   982  	return _Poolmanager.contract.Transact(opts, "unlock", data)
   983  }
   984  
   985  // Unlock is a paid mutator transaction binding the contract method 0x48c89491.
   986  //
   987  // Solidity: function unlock(bytes data) returns(bytes result)
   988  func (_Poolmanager *PoolmanagerSession) Unlock(data []byte) (*types.Transaction, error) {
   989  	return _Poolmanager.Contract.Unlock(&_Poolmanager.TransactOpts, data)
   990  }
   991  
   992  // Unlock is a paid mutator transaction binding the contract method 0x48c89491.
   993  //
   994  // Solidity: function unlock(bytes data) returns(bytes result)
   995  func (_Poolmanager *PoolmanagerTransactorSession) Unlock(data []byte) (*types.Transaction, error) {
   996  	return _Poolmanager.Contract.Unlock(&_Poolmanager.TransactOpts, data)
   997  }
   998  
   999  // UpdateDynamicLPFee is a paid mutator transaction binding the contract method 0x52759651.
  1000  //
  1001  // Solidity: function updateDynamicLPFee((address,address,uint24,int24,address) key, uint24 newDynamicLPFee) returns()
  1002  func (_Poolmanager *PoolmanagerTransactor) UpdateDynamicLPFee(opts *bind.TransactOpts, key PoolKey, newDynamicLPFee *big.Int) (*types.Transaction, error) {
  1003  	return _Poolmanager.contract.Transact(opts, "updateDynamicLPFee", key, newDynamicLPFee)
  1004  }
  1005  
  1006  // UpdateDynamicLPFee is a paid mutator transaction binding the contract method 0x52759651.
  1007  //
  1008  // Solidity: function updateDynamicLPFee((address,address,uint24,int24,address) key, uint24 newDynamicLPFee) returns()
  1009  func (_Poolmanager *PoolmanagerSession) UpdateDynamicLPFee(key PoolKey, newDynamicLPFee *big.Int) (*types.Transaction, error) {
  1010  	return _Poolmanager.Contract.UpdateDynamicLPFee(&_Poolmanager.TransactOpts, key, newDynamicLPFee)
  1011  }
  1012  
  1013  // UpdateDynamicLPFee is a paid mutator transaction binding the contract method 0x52759651.
  1014  //
  1015  // Solidity: function updateDynamicLPFee((address,address,uint24,int24,address) key, uint24 newDynamicLPFee) returns()
  1016  func (_Poolmanager *PoolmanagerTransactorSession) UpdateDynamicLPFee(key PoolKey, newDynamicLPFee *big.Int) (*types.Transaction, error) {
  1017  	return _Poolmanager.Contract.UpdateDynamicLPFee(&_Poolmanager.TransactOpts, key, newDynamicLPFee)
  1018  }
  1019  
  1020  // PoolmanagerApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the Poolmanager contract.
  1021  type PoolmanagerApprovalIterator struct {
  1022  	Event *PoolmanagerApproval // Event containing the contract specifics and raw log
  1023  
  1024  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1025  	event    string              // Event name to use for unpacking event data
  1026  
  1027  	logs chan types.Log        // Log channel receiving the found contract events
  1028  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1029  	done bool                  // Whether the subscription completed delivering logs
  1030  	fail error                 // Occurred error to stop iteration
  1031  }
  1032  
  1033  // Next advances the iterator to the subsequent event, returning whether there
  1034  // are any more events found. In case of a retrieval or parsing error, false is
  1035  // returned and Error() can be queried for the exact failure.
  1036  func (it *PoolmanagerApprovalIterator) Next() bool {
  1037  	// If the iterator failed, stop iterating
  1038  	if it.fail != nil {
  1039  		return false
  1040  	}
  1041  	// If the iterator completed, deliver directly whatever's available
  1042  	if it.done {
  1043  		select {
  1044  		case log := <-it.logs:
  1045  			it.Event = new(PoolmanagerApproval)
  1046  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1047  				it.fail = err
  1048  				return false
  1049  			}
  1050  			it.Event.Raw = log
  1051  			return true
  1052  
  1053  		default:
  1054  			return false
  1055  		}
  1056  	}
  1057  	// Iterator still in progress, wait for either a data or an error event
  1058  	select {
  1059  	case log := <-it.logs:
  1060  		it.Event = new(PoolmanagerApproval)
  1061  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1062  			it.fail = err
  1063  			return false
  1064  		}
  1065  		it.Event.Raw = log
  1066  		return true
  1067  
  1068  	case err := <-it.sub.Err():
  1069  		it.done = true
  1070  		it.fail = err
  1071  		return it.Next()
  1072  	}
  1073  }
  1074  
  1075  // Error returns any retrieval or parsing error occurred during filtering.
  1076  func (it *PoolmanagerApprovalIterator) Error() error {
  1077  	return it.fail
  1078  }
  1079  
  1080  // Close terminates the iteration process, releasing any pending underlying
  1081  // resources.
  1082  func (it *PoolmanagerApprovalIterator) Close() error {
  1083  	it.sub.Unsubscribe()
  1084  	return nil
  1085  }
  1086  
  1087  // PoolmanagerApproval represents a Approval event raised by the Poolmanager contract.
  1088  type PoolmanagerApproval struct {
  1089  	Owner   common.Address
  1090  	Spender common.Address
  1091  	Id      *big.Int
  1092  	Amount  *big.Int
  1093  	Raw     types.Log // Blockchain specific contextual infos
  1094  }
  1095  
  1096  // FilterApproval is a free log retrieval operation binding the contract event 0xb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a7.
  1097  //
  1098  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 indexed id, uint256 amount)
  1099  func (_Poolmanager *PoolmanagerFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address, id []*big.Int) (*PoolmanagerApprovalIterator, error) {
  1100  
  1101  	var ownerRule []interface{}
  1102  	for _, ownerItem := range owner {
  1103  		ownerRule = append(ownerRule, ownerItem)
  1104  	}
  1105  	var spenderRule []interface{}
  1106  	for _, spenderItem := range spender {
  1107  		spenderRule = append(spenderRule, spenderItem)
  1108  	}
  1109  	var idRule []interface{}
  1110  	for _, idItem := range id {
  1111  		idRule = append(idRule, idItem)
  1112  	}
  1113  
  1114  	logs, sub, err := _Poolmanager.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule, idRule)
  1115  	if err != nil {
  1116  		return nil, err
  1117  	}
  1118  	return &PoolmanagerApprovalIterator{contract: _Poolmanager.contract, event: "Approval", logs: logs, sub: sub}, nil
  1119  }
  1120  
  1121  // WatchApproval is a free log subscription operation binding the contract event 0xb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a7.
  1122  //
  1123  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 indexed id, uint256 amount)
  1124  func (_Poolmanager *PoolmanagerFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *PoolmanagerApproval, owner []common.Address, spender []common.Address, id []*big.Int) (event.Subscription, error) {
  1125  
  1126  	var ownerRule []interface{}
  1127  	for _, ownerItem := range owner {
  1128  		ownerRule = append(ownerRule, ownerItem)
  1129  	}
  1130  	var spenderRule []interface{}
  1131  	for _, spenderItem := range spender {
  1132  		spenderRule = append(spenderRule, spenderItem)
  1133  	}
  1134  	var idRule []interface{}
  1135  	for _, idItem := range id {
  1136  		idRule = append(idRule, idItem)
  1137  	}
  1138  
  1139  	logs, sub, err := _Poolmanager.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule, idRule)
  1140  	if err != nil {
  1141  		return nil, err
  1142  	}
  1143  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1144  		defer sub.Unsubscribe()
  1145  		for {
  1146  			select {
  1147  			case log := <-logs:
  1148  				// New log arrived, parse the event and forward to the user
  1149  				event := new(PoolmanagerApproval)
  1150  				if err := _Poolmanager.contract.UnpackLog(event, "Approval", log); err != nil {
  1151  					return err
  1152  				}
  1153  				event.Raw = log
  1154  
  1155  				select {
  1156  				case sink <- event:
  1157  				case err := <-sub.Err():
  1158  					return err
  1159  				case <-quit:
  1160  					return nil
  1161  				}
  1162  			case err := <-sub.Err():
  1163  				return err
  1164  			case <-quit:
  1165  				return nil
  1166  			}
  1167  		}
  1168  	}), nil
  1169  }
  1170  
  1171  // ParseApproval is a log parse operation binding the contract event 0xb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a7.
  1172  //
  1173  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 indexed id, uint256 amount)
  1174  func (_Poolmanager *PoolmanagerFilterer) ParseApproval(log types.Log) (*PoolmanagerApproval, error) {
  1175  	event := new(PoolmanagerApproval)
  1176  	if err := _Poolmanager.contract.UnpackLog(event, "Approval", log); err != nil {
  1177  		return nil, err
  1178  	}
  1179  	event.Raw = log
  1180  	return event, nil
  1181  }
  1182  
  1183  // PoolmanagerDonateIterator is returned from FilterDonate and is used to iterate over the raw logs and unpacked data for Donate events raised by the Poolmanager contract.
  1184  type PoolmanagerDonateIterator struct {
  1185  	Event *PoolmanagerDonate // Event containing the contract specifics and raw log
  1186  
  1187  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1188  	event    string              // Event name to use for unpacking event data
  1189  
  1190  	logs chan types.Log        // Log channel receiving the found contract events
  1191  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1192  	done bool                  // Whether the subscription completed delivering logs
  1193  	fail error                 // Occurred error to stop iteration
  1194  }
  1195  
  1196  // Next advances the iterator to the subsequent event, returning whether there
  1197  // are any more events found. In case of a retrieval or parsing error, false is
  1198  // returned and Error() can be queried for the exact failure.
  1199  func (it *PoolmanagerDonateIterator) Next() bool {
  1200  	// If the iterator failed, stop iterating
  1201  	if it.fail != nil {
  1202  		return false
  1203  	}
  1204  	// If the iterator completed, deliver directly whatever's available
  1205  	if it.done {
  1206  		select {
  1207  		case log := <-it.logs:
  1208  			it.Event = new(PoolmanagerDonate)
  1209  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1210  				it.fail = err
  1211  				return false
  1212  			}
  1213  			it.Event.Raw = log
  1214  			return true
  1215  
  1216  		default:
  1217  			return false
  1218  		}
  1219  	}
  1220  	// Iterator still in progress, wait for either a data or an error event
  1221  	select {
  1222  	case log := <-it.logs:
  1223  		it.Event = new(PoolmanagerDonate)
  1224  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1225  			it.fail = err
  1226  			return false
  1227  		}
  1228  		it.Event.Raw = log
  1229  		return true
  1230  
  1231  	case err := <-it.sub.Err():
  1232  		it.done = true
  1233  		it.fail = err
  1234  		return it.Next()
  1235  	}
  1236  }
  1237  
  1238  // Error returns any retrieval or parsing error occurred during filtering.
  1239  func (it *PoolmanagerDonateIterator) Error() error {
  1240  	return it.fail
  1241  }
  1242  
  1243  // Close terminates the iteration process, releasing any pending underlying
  1244  // resources.
  1245  func (it *PoolmanagerDonateIterator) Close() error {
  1246  	it.sub.Unsubscribe()
  1247  	return nil
  1248  }
  1249  
  1250  // PoolmanagerDonate represents a Donate event raised by the Poolmanager contract.
  1251  type PoolmanagerDonate struct {
  1252  	Id      [32]byte
  1253  	Sender  common.Address
  1254  	Amount0 *big.Int
  1255  	Amount1 *big.Int
  1256  	Raw     types.Log // Blockchain specific contextual infos
  1257  }
  1258  
  1259  // FilterDonate is a free log retrieval operation binding the contract event 0x29ef05caaff9404b7cb6d1c0e9bbae9eaa7ab2541feba1a9c4248594c08156cb.
  1260  //
  1261  // Solidity: event Donate(bytes32 indexed id, address indexed sender, uint256 amount0, uint256 amount1)
  1262  func (_Poolmanager *PoolmanagerFilterer) FilterDonate(opts *bind.FilterOpts, id [][32]byte, sender []common.Address) (*PoolmanagerDonateIterator, error) {
  1263  
  1264  	var idRule []interface{}
  1265  	for _, idItem := range id {
  1266  		idRule = append(idRule, idItem)
  1267  	}
  1268  	var senderRule []interface{}
  1269  	for _, senderItem := range sender {
  1270  		senderRule = append(senderRule, senderItem)
  1271  	}
  1272  
  1273  	logs, sub, err := _Poolmanager.contract.FilterLogs(opts, "Donate", idRule, senderRule)
  1274  	if err != nil {
  1275  		return nil, err
  1276  	}
  1277  	return &PoolmanagerDonateIterator{contract: _Poolmanager.contract, event: "Donate", logs: logs, sub: sub}, nil
  1278  }
  1279  
  1280  // WatchDonate is a free log subscription operation binding the contract event 0x29ef05caaff9404b7cb6d1c0e9bbae9eaa7ab2541feba1a9c4248594c08156cb.
  1281  //
  1282  // Solidity: event Donate(bytes32 indexed id, address indexed sender, uint256 amount0, uint256 amount1)
  1283  func (_Poolmanager *PoolmanagerFilterer) WatchDonate(opts *bind.WatchOpts, sink chan<- *PoolmanagerDonate, id [][32]byte, sender []common.Address) (event.Subscription, error) {
  1284  
  1285  	var idRule []interface{}
  1286  	for _, idItem := range id {
  1287  		idRule = append(idRule, idItem)
  1288  	}
  1289  	var senderRule []interface{}
  1290  	for _, senderItem := range sender {
  1291  		senderRule = append(senderRule, senderItem)
  1292  	}
  1293  
  1294  	logs, sub, err := _Poolmanager.contract.WatchLogs(opts, "Donate", idRule, senderRule)
  1295  	if err != nil {
  1296  		return nil, err
  1297  	}
  1298  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1299  		defer sub.Unsubscribe()
  1300  		for {
  1301  			select {
  1302  			case log := <-logs:
  1303  				// New log arrived, parse the event and forward to the user
  1304  				event := new(PoolmanagerDonate)
  1305  				if err := _Poolmanager.contract.UnpackLog(event, "Donate", log); err != nil {
  1306  					return err
  1307  				}
  1308  				event.Raw = log
  1309  
  1310  				select {
  1311  				case sink <- event:
  1312  				case err := <-sub.Err():
  1313  					return err
  1314  				case <-quit:
  1315  					return nil
  1316  				}
  1317  			case err := <-sub.Err():
  1318  				return err
  1319  			case <-quit:
  1320  				return nil
  1321  			}
  1322  		}
  1323  	}), nil
  1324  }
  1325  
  1326  // ParseDonate is a log parse operation binding the contract event 0x29ef05caaff9404b7cb6d1c0e9bbae9eaa7ab2541feba1a9c4248594c08156cb.
  1327  //
  1328  // Solidity: event Donate(bytes32 indexed id, address indexed sender, uint256 amount0, uint256 amount1)
  1329  func (_Poolmanager *PoolmanagerFilterer) ParseDonate(log types.Log) (*PoolmanagerDonate, error) {
  1330  	event := new(PoolmanagerDonate)
  1331  	if err := _Poolmanager.contract.UnpackLog(event, "Donate", log); err != nil {
  1332  		return nil, err
  1333  	}
  1334  	event.Raw = log
  1335  	return event, nil
  1336  }
  1337  
  1338  // PoolmanagerInitializeIterator is returned from FilterInitialize and is used to iterate over the raw logs and unpacked data for Initialize events raised by the Poolmanager contract.
  1339  type PoolmanagerInitializeIterator struct {
  1340  	Event *PoolmanagerInitialize // Event containing the contract specifics and raw log
  1341  
  1342  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1343  	event    string              // Event name to use for unpacking event data
  1344  
  1345  	logs chan types.Log        // Log channel receiving the found contract events
  1346  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1347  	done bool                  // Whether the subscription completed delivering logs
  1348  	fail error                 // Occurred error to stop iteration
  1349  }
  1350  
  1351  // Next advances the iterator to the subsequent event, returning whether there
  1352  // are any more events found. In case of a retrieval or parsing error, false is
  1353  // returned and Error() can be queried for the exact failure.
  1354  func (it *PoolmanagerInitializeIterator) Next() bool {
  1355  	// If the iterator failed, stop iterating
  1356  	if it.fail != nil {
  1357  		return false
  1358  	}
  1359  	// If the iterator completed, deliver directly whatever's available
  1360  	if it.done {
  1361  		select {
  1362  		case log := <-it.logs:
  1363  			it.Event = new(PoolmanagerInitialize)
  1364  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1365  				it.fail = err
  1366  				return false
  1367  			}
  1368  			it.Event.Raw = log
  1369  			return true
  1370  
  1371  		default:
  1372  			return false
  1373  		}
  1374  	}
  1375  	// Iterator still in progress, wait for either a data or an error event
  1376  	select {
  1377  	case log := <-it.logs:
  1378  		it.Event = new(PoolmanagerInitialize)
  1379  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1380  			it.fail = err
  1381  			return false
  1382  		}
  1383  		it.Event.Raw = log
  1384  		return true
  1385  
  1386  	case err := <-it.sub.Err():
  1387  		it.done = true
  1388  		it.fail = err
  1389  		return it.Next()
  1390  	}
  1391  }
  1392  
  1393  // Error returns any retrieval or parsing error occurred during filtering.
  1394  func (it *PoolmanagerInitializeIterator) Error() error {
  1395  	return it.fail
  1396  }
  1397  
  1398  // Close terminates the iteration process, releasing any pending underlying
  1399  // resources.
  1400  func (it *PoolmanagerInitializeIterator) Close() error {
  1401  	it.sub.Unsubscribe()
  1402  	return nil
  1403  }
  1404  
  1405  // PoolmanagerInitialize represents a Initialize event raised by the Poolmanager contract.
  1406  type PoolmanagerInitialize struct {
  1407  	Id           [32]byte
  1408  	Currency0    common.Address
  1409  	Currency1    common.Address
  1410  	Fee          *big.Int
  1411  	TickSpacing  *big.Int
  1412  	Hooks        common.Address
  1413  	SqrtPriceX96 *big.Int
  1414  	Tick         *big.Int
  1415  	Raw          types.Log // Blockchain specific contextual infos
  1416  }
  1417  
  1418  // FilterInitialize is a free log retrieval operation binding the contract event 0xdd466e674ea557f56295e2d0218a125ea4b4f0f6f3307b95f85e6110838d6438.
  1419  //
  1420  // Solidity: event Initialize(bytes32 indexed id, address indexed currency0, address indexed currency1, uint24 fee, int24 tickSpacing, address hooks, uint160 sqrtPriceX96, int24 tick)
  1421  func (_Poolmanager *PoolmanagerFilterer) FilterInitialize(opts *bind.FilterOpts, id [][32]byte, currency0 []common.Address, currency1 []common.Address) (*PoolmanagerInitializeIterator, error) {
  1422  
  1423  	var idRule []interface{}
  1424  	for _, idItem := range id {
  1425  		idRule = append(idRule, idItem)
  1426  	}
  1427  	var currency0Rule []interface{}
  1428  	for _, currency0Item := range currency0 {
  1429  		currency0Rule = append(currency0Rule, currency0Item)
  1430  	}
  1431  	var currency1Rule []interface{}
  1432  	for _, currency1Item := range currency1 {
  1433  		currency1Rule = append(currency1Rule, currency1Item)
  1434  	}
  1435  
  1436  	logs, sub, err := _Poolmanager.contract.FilterLogs(opts, "Initialize", idRule, currency0Rule, currency1Rule)
  1437  	if err != nil {
  1438  		return nil, err
  1439  	}
  1440  	return &PoolmanagerInitializeIterator{contract: _Poolmanager.contract, event: "Initialize", logs: logs, sub: sub}, nil
  1441  }
  1442  
  1443  // WatchInitialize is a free log subscription operation binding the contract event 0xdd466e674ea557f56295e2d0218a125ea4b4f0f6f3307b95f85e6110838d6438.
  1444  //
  1445  // Solidity: event Initialize(bytes32 indexed id, address indexed currency0, address indexed currency1, uint24 fee, int24 tickSpacing, address hooks, uint160 sqrtPriceX96, int24 tick)
  1446  func (_Poolmanager *PoolmanagerFilterer) WatchInitialize(opts *bind.WatchOpts, sink chan<- *PoolmanagerInitialize, id [][32]byte, currency0 []common.Address, currency1 []common.Address) (event.Subscription, error) {
  1447  
  1448  	var idRule []interface{}
  1449  	for _, idItem := range id {
  1450  		idRule = append(idRule, idItem)
  1451  	}
  1452  	var currency0Rule []interface{}
  1453  	for _, currency0Item := range currency0 {
  1454  		currency0Rule = append(currency0Rule, currency0Item)
  1455  	}
  1456  	var currency1Rule []interface{}
  1457  	for _, currency1Item := range currency1 {
  1458  		currency1Rule = append(currency1Rule, currency1Item)
  1459  	}
  1460  
  1461  	logs, sub, err := _Poolmanager.contract.WatchLogs(opts, "Initialize", idRule, currency0Rule, currency1Rule)
  1462  	if err != nil {
  1463  		return nil, err
  1464  	}
  1465  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1466  		defer sub.Unsubscribe()
  1467  		for {
  1468  			select {
  1469  			case log := <-logs:
  1470  				// New log arrived, parse the event and forward to the user
  1471  				event := new(PoolmanagerInitialize)
  1472  				if err := _Poolmanager.contract.UnpackLog(event, "Initialize", log); err != nil {
  1473  					return err
  1474  				}
  1475  				event.Raw = log
  1476  
  1477  				select {
  1478  				case sink <- event:
  1479  				case err := <-sub.Err():
  1480  					return err
  1481  				case <-quit:
  1482  					return nil
  1483  				}
  1484  			case err := <-sub.Err():
  1485  				return err
  1486  			case <-quit:
  1487  				return nil
  1488  			}
  1489  		}
  1490  	}), nil
  1491  }
  1492  
  1493  // ParseInitialize is a log parse operation binding the contract event 0xdd466e674ea557f56295e2d0218a125ea4b4f0f6f3307b95f85e6110838d6438.
  1494  //
  1495  // Solidity: event Initialize(bytes32 indexed id, address indexed currency0, address indexed currency1, uint24 fee, int24 tickSpacing, address hooks, uint160 sqrtPriceX96, int24 tick)
  1496  func (_Poolmanager *PoolmanagerFilterer) ParseInitialize(log types.Log) (*PoolmanagerInitialize, error) {
  1497  	event := new(PoolmanagerInitialize)
  1498  	if err := _Poolmanager.contract.UnpackLog(event, "Initialize", log); err != nil {
  1499  		return nil, err
  1500  	}
  1501  	event.Raw = log
  1502  	return event, nil
  1503  }
  1504  
  1505  // PoolmanagerModifyLiquidityIterator is returned from FilterModifyLiquidity and is used to iterate over the raw logs and unpacked data for ModifyLiquidity events raised by the Poolmanager contract.
  1506  type PoolmanagerModifyLiquidityIterator struct {
  1507  	Event *PoolmanagerModifyLiquidity // Event containing the contract specifics and raw log
  1508  
  1509  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1510  	event    string              // Event name to use for unpacking event data
  1511  
  1512  	logs chan types.Log        // Log channel receiving the found contract events
  1513  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1514  	done bool                  // Whether the subscription completed delivering logs
  1515  	fail error                 // Occurred error to stop iteration
  1516  }
  1517  
  1518  // Next advances the iterator to the subsequent event, returning whether there
  1519  // are any more events found. In case of a retrieval or parsing error, false is
  1520  // returned and Error() can be queried for the exact failure.
  1521  func (it *PoolmanagerModifyLiquidityIterator) Next() bool {
  1522  	// If the iterator failed, stop iterating
  1523  	if it.fail != nil {
  1524  		return false
  1525  	}
  1526  	// If the iterator completed, deliver directly whatever's available
  1527  	if it.done {
  1528  		select {
  1529  		case log := <-it.logs:
  1530  			it.Event = new(PoolmanagerModifyLiquidity)
  1531  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1532  				it.fail = err
  1533  				return false
  1534  			}
  1535  			it.Event.Raw = log
  1536  			return true
  1537  
  1538  		default:
  1539  			return false
  1540  		}
  1541  	}
  1542  	// Iterator still in progress, wait for either a data or an error event
  1543  	select {
  1544  	case log := <-it.logs:
  1545  		it.Event = new(PoolmanagerModifyLiquidity)
  1546  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1547  			it.fail = err
  1548  			return false
  1549  		}
  1550  		it.Event.Raw = log
  1551  		return true
  1552  
  1553  	case err := <-it.sub.Err():
  1554  		it.done = true
  1555  		it.fail = err
  1556  		return it.Next()
  1557  	}
  1558  }
  1559  
  1560  // Error returns any retrieval or parsing error occurred during filtering.
  1561  func (it *PoolmanagerModifyLiquidityIterator) Error() error {
  1562  	return it.fail
  1563  }
  1564  
  1565  // Close terminates the iteration process, releasing any pending underlying
  1566  // resources.
  1567  func (it *PoolmanagerModifyLiquidityIterator) Close() error {
  1568  	it.sub.Unsubscribe()
  1569  	return nil
  1570  }
  1571  
  1572  // PoolmanagerModifyLiquidity represents a ModifyLiquidity event raised by the Poolmanager contract.
  1573  type PoolmanagerModifyLiquidity struct {
  1574  	Id             [32]byte
  1575  	Sender         common.Address
  1576  	TickLower      *big.Int
  1577  	TickUpper      *big.Int
  1578  	LiquidityDelta *big.Int
  1579  	Salt           [32]byte
  1580  	Raw            types.Log // Blockchain specific contextual infos
  1581  }
  1582  
  1583  // FilterModifyLiquidity is a free log retrieval operation binding the contract event 0xf208f4912782fd25c7f114ca3723a2d5dd6f3bcc3ac8db5af63baa85f711d5ec.
  1584  //
  1585  // Solidity: event ModifyLiquidity(bytes32 indexed id, address indexed sender, int24 tickLower, int24 tickUpper, int256 liquidityDelta, bytes32 salt)
  1586  func (_Poolmanager *PoolmanagerFilterer) FilterModifyLiquidity(opts *bind.FilterOpts, id [][32]byte, sender []common.Address) (*PoolmanagerModifyLiquidityIterator, error) {
  1587  
  1588  	var idRule []interface{}
  1589  	for _, idItem := range id {
  1590  		idRule = append(idRule, idItem)
  1591  	}
  1592  	var senderRule []interface{}
  1593  	for _, senderItem := range sender {
  1594  		senderRule = append(senderRule, senderItem)
  1595  	}
  1596  
  1597  	logs, sub, err := _Poolmanager.contract.FilterLogs(opts, "ModifyLiquidity", idRule, senderRule)
  1598  	if err != nil {
  1599  		return nil, err
  1600  	}
  1601  	return &PoolmanagerModifyLiquidityIterator{contract: _Poolmanager.contract, event: "ModifyLiquidity", logs: logs, sub: sub}, nil
  1602  }
  1603  
  1604  // WatchModifyLiquidity is a free log subscription operation binding the contract event 0xf208f4912782fd25c7f114ca3723a2d5dd6f3bcc3ac8db5af63baa85f711d5ec.
  1605  //
  1606  // Solidity: event ModifyLiquidity(bytes32 indexed id, address indexed sender, int24 tickLower, int24 tickUpper, int256 liquidityDelta, bytes32 salt)
  1607  func (_Poolmanager *PoolmanagerFilterer) WatchModifyLiquidity(opts *bind.WatchOpts, sink chan<- *PoolmanagerModifyLiquidity, id [][32]byte, sender []common.Address) (event.Subscription, error) {
  1608  
  1609  	var idRule []interface{}
  1610  	for _, idItem := range id {
  1611  		idRule = append(idRule, idItem)
  1612  	}
  1613  	var senderRule []interface{}
  1614  	for _, senderItem := range sender {
  1615  		senderRule = append(senderRule, senderItem)
  1616  	}
  1617  
  1618  	logs, sub, err := _Poolmanager.contract.WatchLogs(opts, "ModifyLiquidity", idRule, senderRule)
  1619  	if err != nil {
  1620  		return nil, err
  1621  	}
  1622  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1623  		defer sub.Unsubscribe()
  1624  		for {
  1625  			select {
  1626  			case log := <-logs:
  1627  				// New log arrived, parse the event and forward to the user
  1628  				event := new(PoolmanagerModifyLiquidity)
  1629  				if err := _Poolmanager.contract.UnpackLog(event, "ModifyLiquidity", log); err != nil {
  1630  					return err
  1631  				}
  1632  				event.Raw = log
  1633  
  1634  				select {
  1635  				case sink <- event:
  1636  				case err := <-sub.Err():
  1637  					return err
  1638  				case <-quit:
  1639  					return nil
  1640  				}
  1641  			case err := <-sub.Err():
  1642  				return err
  1643  			case <-quit:
  1644  				return nil
  1645  			}
  1646  		}
  1647  	}), nil
  1648  }
  1649  
  1650  // ParseModifyLiquidity is a log parse operation binding the contract event 0xf208f4912782fd25c7f114ca3723a2d5dd6f3bcc3ac8db5af63baa85f711d5ec.
  1651  //
  1652  // Solidity: event ModifyLiquidity(bytes32 indexed id, address indexed sender, int24 tickLower, int24 tickUpper, int256 liquidityDelta, bytes32 salt)
  1653  func (_Poolmanager *PoolmanagerFilterer) ParseModifyLiquidity(log types.Log) (*PoolmanagerModifyLiquidity, error) {
  1654  	event := new(PoolmanagerModifyLiquidity)
  1655  	if err := _Poolmanager.contract.UnpackLog(event, "ModifyLiquidity", log); err != nil {
  1656  		return nil, err
  1657  	}
  1658  	event.Raw = log
  1659  	return event, nil
  1660  }
  1661  
  1662  // PoolmanagerOperatorSetIterator is returned from FilterOperatorSet and is used to iterate over the raw logs and unpacked data for OperatorSet events raised by the Poolmanager contract.
  1663  type PoolmanagerOperatorSetIterator struct {
  1664  	Event *PoolmanagerOperatorSet // Event containing the contract specifics and raw log
  1665  
  1666  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1667  	event    string              // Event name to use for unpacking event data
  1668  
  1669  	logs chan types.Log        // Log channel receiving the found contract events
  1670  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1671  	done bool                  // Whether the subscription completed delivering logs
  1672  	fail error                 // Occurred error to stop iteration
  1673  }
  1674  
  1675  // Next advances the iterator to the subsequent event, returning whether there
  1676  // are any more events found. In case of a retrieval or parsing error, false is
  1677  // returned and Error() can be queried for the exact failure.
  1678  func (it *PoolmanagerOperatorSetIterator) Next() bool {
  1679  	// If the iterator failed, stop iterating
  1680  	if it.fail != nil {
  1681  		return false
  1682  	}
  1683  	// If the iterator completed, deliver directly whatever's available
  1684  	if it.done {
  1685  		select {
  1686  		case log := <-it.logs:
  1687  			it.Event = new(PoolmanagerOperatorSet)
  1688  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1689  				it.fail = err
  1690  				return false
  1691  			}
  1692  			it.Event.Raw = log
  1693  			return true
  1694  
  1695  		default:
  1696  			return false
  1697  		}
  1698  	}
  1699  	// Iterator still in progress, wait for either a data or an error event
  1700  	select {
  1701  	case log := <-it.logs:
  1702  		it.Event = new(PoolmanagerOperatorSet)
  1703  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1704  			it.fail = err
  1705  			return false
  1706  		}
  1707  		it.Event.Raw = log
  1708  		return true
  1709  
  1710  	case err := <-it.sub.Err():
  1711  		it.done = true
  1712  		it.fail = err
  1713  		return it.Next()
  1714  	}
  1715  }
  1716  
  1717  // Error returns any retrieval or parsing error occurred during filtering.
  1718  func (it *PoolmanagerOperatorSetIterator) Error() error {
  1719  	return it.fail
  1720  }
  1721  
  1722  // Close terminates the iteration process, releasing any pending underlying
  1723  // resources.
  1724  func (it *PoolmanagerOperatorSetIterator) Close() error {
  1725  	it.sub.Unsubscribe()
  1726  	return nil
  1727  }
  1728  
  1729  // PoolmanagerOperatorSet represents a OperatorSet event raised by the Poolmanager contract.
  1730  type PoolmanagerOperatorSet struct {
  1731  	Owner    common.Address
  1732  	Operator common.Address
  1733  	Approved bool
  1734  	Raw      types.Log // Blockchain specific contextual infos
  1735  }
  1736  
  1737  // FilterOperatorSet is a free log retrieval operation binding the contract event 0xceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa267.
  1738  //
  1739  // Solidity: event OperatorSet(address indexed owner, address indexed operator, bool approved)
  1740  func (_Poolmanager *PoolmanagerFilterer) FilterOperatorSet(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*PoolmanagerOperatorSetIterator, error) {
  1741  
  1742  	var ownerRule []interface{}
  1743  	for _, ownerItem := range owner {
  1744  		ownerRule = append(ownerRule, ownerItem)
  1745  	}
  1746  	var operatorRule []interface{}
  1747  	for _, operatorItem := range operator {
  1748  		operatorRule = append(operatorRule, operatorItem)
  1749  	}
  1750  
  1751  	logs, sub, err := _Poolmanager.contract.FilterLogs(opts, "OperatorSet", ownerRule, operatorRule)
  1752  	if err != nil {
  1753  		return nil, err
  1754  	}
  1755  	return &PoolmanagerOperatorSetIterator{contract: _Poolmanager.contract, event: "OperatorSet", logs: logs, sub: sub}, nil
  1756  }
  1757  
  1758  // WatchOperatorSet is a free log subscription operation binding the contract event 0xceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa267.
  1759  //
  1760  // Solidity: event OperatorSet(address indexed owner, address indexed operator, bool approved)
  1761  func (_Poolmanager *PoolmanagerFilterer) WatchOperatorSet(opts *bind.WatchOpts, sink chan<- *PoolmanagerOperatorSet, owner []common.Address, operator []common.Address) (event.Subscription, error) {
  1762  
  1763  	var ownerRule []interface{}
  1764  	for _, ownerItem := range owner {
  1765  		ownerRule = append(ownerRule, ownerItem)
  1766  	}
  1767  	var operatorRule []interface{}
  1768  	for _, operatorItem := range operator {
  1769  		operatorRule = append(operatorRule, operatorItem)
  1770  	}
  1771  
  1772  	logs, sub, err := _Poolmanager.contract.WatchLogs(opts, "OperatorSet", ownerRule, operatorRule)
  1773  	if err != nil {
  1774  		return nil, err
  1775  	}
  1776  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1777  		defer sub.Unsubscribe()
  1778  		for {
  1779  			select {
  1780  			case log := <-logs:
  1781  				// New log arrived, parse the event and forward to the user
  1782  				event := new(PoolmanagerOperatorSet)
  1783  				if err := _Poolmanager.contract.UnpackLog(event, "OperatorSet", log); err != nil {
  1784  					return err
  1785  				}
  1786  				event.Raw = log
  1787  
  1788  				select {
  1789  				case sink <- event:
  1790  				case err := <-sub.Err():
  1791  					return err
  1792  				case <-quit:
  1793  					return nil
  1794  				}
  1795  			case err := <-sub.Err():
  1796  				return err
  1797  			case <-quit:
  1798  				return nil
  1799  			}
  1800  		}
  1801  	}), nil
  1802  }
  1803  
  1804  // ParseOperatorSet is a log parse operation binding the contract event 0xceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa267.
  1805  //
  1806  // Solidity: event OperatorSet(address indexed owner, address indexed operator, bool approved)
  1807  func (_Poolmanager *PoolmanagerFilterer) ParseOperatorSet(log types.Log) (*PoolmanagerOperatorSet, error) {
  1808  	event := new(PoolmanagerOperatorSet)
  1809  	if err := _Poolmanager.contract.UnpackLog(event, "OperatorSet", log); err != nil {
  1810  		return nil, err
  1811  	}
  1812  	event.Raw = log
  1813  	return event, nil
  1814  }
  1815  
  1816  // PoolmanagerOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the Poolmanager contract.
  1817  type PoolmanagerOwnershipTransferredIterator struct {
  1818  	Event *PoolmanagerOwnershipTransferred // Event containing the contract specifics and raw log
  1819  
  1820  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1821  	event    string              // Event name to use for unpacking event data
  1822  
  1823  	logs chan types.Log        // Log channel receiving the found contract events
  1824  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1825  	done bool                  // Whether the subscription completed delivering logs
  1826  	fail error                 // Occurred error to stop iteration
  1827  }
  1828  
  1829  // Next advances the iterator to the subsequent event, returning whether there
  1830  // are any more events found. In case of a retrieval or parsing error, false is
  1831  // returned and Error() can be queried for the exact failure.
  1832  func (it *PoolmanagerOwnershipTransferredIterator) Next() bool {
  1833  	// If the iterator failed, stop iterating
  1834  	if it.fail != nil {
  1835  		return false
  1836  	}
  1837  	// If the iterator completed, deliver directly whatever's available
  1838  	if it.done {
  1839  		select {
  1840  		case log := <-it.logs:
  1841  			it.Event = new(PoolmanagerOwnershipTransferred)
  1842  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1843  				it.fail = err
  1844  				return false
  1845  			}
  1846  			it.Event.Raw = log
  1847  			return true
  1848  
  1849  		default:
  1850  			return false
  1851  		}
  1852  	}
  1853  	// Iterator still in progress, wait for either a data or an error event
  1854  	select {
  1855  	case log := <-it.logs:
  1856  		it.Event = new(PoolmanagerOwnershipTransferred)
  1857  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1858  			it.fail = err
  1859  			return false
  1860  		}
  1861  		it.Event.Raw = log
  1862  		return true
  1863  
  1864  	case err := <-it.sub.Err():
  1865  		it.done = true
  1866  		it.fail = err
  1867  		return it.Next()
  1868  	}
  1869  }
  1870  
  1871  // Error returns any retrieval or parsing error occurred during filtering.
  1872  func (it *PoolmanagerOwnershipTransferredIterator) Error() error {
  1873  	return it.fail
  1874  }
  1875  
  1876  // Close terminates the iteration process, releasing any pending underlying
  1877  // resources.
  1878  func (it *PoolmanagerOwnershipTransferredIterator) Close() error {
  1879  	it.sub.Unsubscribe()
  1880  	return nil
  1881  }
  1882  
  1883  // PoolmanagerOwnershipTransferred represents a OwnershipTransferred event raised by the Poolmanager contract.
  1884  type PoolmanagerOwnershipTransferred struct {
  1885  	User     common.Address
  1886  	NewOwner common.Address
  1887  	Raw      types.Log // Blockchain specific contextual infos
  1888  }
  1889  
  1890  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1891  //
  1892  // Solidity: event OwnershipTransferred(address indexed user, address indexed newOwner)
  1893  func (_Poolmanager *PoolmanagerFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, user []common.Address, newOwner []common.Address) (*PoolmanagerOwnershipTransferredIterator, error) {
  1894  
  1895  	var userRule []interface{}
  1896  	for _, userItem := range user {
  1897  		userRule = append(userRule, userItem)
  1898  	}
  1899  	var newOwnerRule []interface{}
  1900  	for _, newOwnerItem := range newOwner {
  1901  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  1902  	}
  1903  
  1904  	logs, sub, err := _Poolmanager.contract.FilterLogs(opts, "OwnershipTransferred", userRule, newOwnerRule)
  1905  	if err != nil {
  1906  		return nil, err
  1907  	}
  1908  	return &PoolmanagerOwnershipTransferredIterator{contract: _Poolmanager.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  1909  }
  1910  
  1911  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1912  //
  1913  // Solidity: event OwnershipTransferred(address indexed user, address indexed newOwner)
  1914  func (_Poolmanager *PoolmanagerFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *PoolmanagerOwnershipTransferred, user []common.Address, newOwner []common.Address) (event.Subscription, error) {
  1915  
  1916  	var userRule []interface{}
  1917  	for _, userItem := range user {
  1918  		userRule = append(userRule, userItem)
  1919  	}
  1920  	var newOwnerRule []interface{}
  1921  	for _, newOwnerItem := range newOwner {
  1922  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  1923  	}
  1924  
  1925  	logs, sub, err := _Poolmanager.contract.WatchLogs(opts, "OwnershipTransferred", userRule, newOwnerRule)
  1926  	if err != nil {
  1927  		return nil, err
  1928  	}
  1929  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1930  		defer sub.Unsubscribe()
  1931  		for {
  1932  			select {
  1933  			case log := <-logs:
  1934  				// New log arrived, parse the event and forward to the user
  1935  				event := new(PoolmanagerOwnershipTransferred)
  1936  				if err := _Poolmanager.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  1937  					return err
  1938  				}
  1939  				event.Raw = log
  1940  
  1941  				select {
  1942  				case sink <- event:
  1943  				case err := <-sub.Err():
  1944  					return err
  1945  				case <-quit:
  1946  					return nil
  1947  				}
  1948  			case err := <-sub.Err():
  1949  				return err
  1950  			case <-quit:
  1951  				return nil
  1952  			}
  1953  		}
  1954  	}), nil
  1955  }
  1956  
  1957  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1958  //
  1959  // Solidity: event OwnershipTransferred(address indexed user, address indexed newOwner)
  1960  func (_Poolmanager *PoolmanagerFilterer) ParseOwnershipTransferred(log types.Log) (*PoolmanagerOwnershipTransferred, error) {
  1961  	event := new(PoolmanagerOwnershipTransferred)
  1962  	if err := _Poolmanager.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  1963  		return nil, err
  1964  	}
  1965  	event.Raw = log
  1966  	return event, nil
  1967  }
  1968  
  1969  // PoolmanagerProtocolFeeControllerUpdatedIterator is returned from FilterProtocolFeeControllerUpdated and is used to iterate over the raw logs and unpacked data for ProtocolFeeControllerUpdated events raised by the Poolmanager contract.
  1970  type PoolmanagerProtocolFeeControllerUpdatedIterator struct {
  1971  	Event *PoolmanagerProtocolFeeControllerUpdated // Event containing the contract specifics and raw log
  1972  
  1973  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1974  	event    string              // Event name to use for unpacking event data
  1975  
  1976  	logs chan types.Log        // Log channel receiving the found contract events
  1977  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1978  	done bool                  // Whether the subscription completed delivering logs
  1979  	fail error                 // Occurred error to stop iteration
  1980  }
  1981  
  1982  // Next advances the iterator to the subsequent event, returning whether there
  1983  // are any more events found. In case of a retrieval or parsing error, false is
  1984  // returned and Error() can be queried for the exact failure.
  1985  func (it *PoolmanagerProtocolFeeControllerUpdatedIterator) Next() bool {
  1986  	// If the iterator failed, stop iterating
  1987  	if it.fail != nil {
  1988  		return false
  1989  	}
  1990  	// If the iterator completed, deliver directly whatever's available
  1991  	if it.done {
  1992  		select {
  1993  		case log := <-it.logs:
  1994  			it.Event = new(PoolmanagerProtocolFeeControllerUpdated)
  1995  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1996  				it.fail = err
  1997  				return false
  1998  			}
  1999  			it.Event.Raw = log
  2000  			return true
  2001  
  2002  		default:
  2003  			return false
  2004  		}
  2005  	}
  2006  	// Iterator still in progress, wait for either a data or an error event
  2007  	select {
  2008  	case log := <-it.logs:
  2009  		it.Event = new(PoolmanagerProtocolFeeControllerUpdated)
  2010  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2011  			it.fail = err
  2012  			return false
  2013  		}
  2014  		it.Event.Raw = log
  2015  		return true
  2016  
  2017  	case err := <-it.sub.Err():
  2018  		it.done = true
  2019  		it.fail = err
  2020  		return it.Next()
  2021  	}
  2022  }
  2023  
  2024  // Error returns any retrieval or parsing error occurred during filtering.
  2025  func (it *PoolmanagerProtocolFeeControllerUpdatedIterator) Error() error {
  2026  	return it.fail
  2027  }
  2028  
  2029  // Close terminates the iteration process, releasing any pending underlying
  2030  // resources.
  2031  func (it *PoolmanagerProtocolFeeControllerUpdatedIterator) Close() error {
  2032  	it.sub.Unsubscribe()
  2033  	return nil
  2034  }
  2035  
  2036  // PoolmanagerProtocolFeeControllerUpdated represents a ProtocolFeeControllerUpdated event raised by the Poolmanager contract.
  2037  type PoolmanagerProtocolFeeControllerUpdated struct {
  2038  	ProtocolFeeController common.Address
  2039  	Raw                   types.Log // Blockchain specific contextual infos
  2040  }
  2041  
  2042  // FilterProtocolFeeControllerUpdated is a free log retrieval operation binding the contract event 0xb4bd8ef53df690b9943d3318996006dbb82a25f54719d8c8035b516a2a5b8acc.
  2043  //
  2044  // Solidity: event ProtocolFeeControllerUpdated(address indexed protocolFeeController)
  2045  func (_Poolmanager *PoolmanagerFilterer) FilterProtocolFeeControllerUpdated(opts *bind.FilterOpts, protocolFeeController []common.Address) (*PoolmanagerProtocolFeeControllerUpdatedIterator, error) {
  2046  
  2047  	var protocolFeeControllerRule []interface{}
  2048  	for _, protocolFeeControllerItem := range protocolFeeController {
  2049  		protocolFeeControllerRule = append(protocolFeeControllerRule, protocolFeeControllerItem)
  2050  	}
  2051  
  2052  	logs, sub, err := _Poolmanager.contract.FilterLogs(opts, "ProtocolFeeControllerUpdated", protocolFeeControllerRule)
  2053  	if err != nil {
  2054  		return nil, err
  2055  	}
  2056  	return &PoolmanagerProtocolFeeControllerUpdatedIterator{contract: _Poolmanager.contract, event: "ProtocolFeeControllerUpdated", logs: logs, sub: sub}, nil
  2057  }
  2058  
  2059  // WatchProtocolFeeControllerUpdated is a free log subscription operation binding the contract event 0xb4bd8ef53df690b9943d3318996006dbb82a25f54719d8c8035b516a2a5b8acc.
  2060  //
  2061  // Solidity: event ProtocolFeeControllerUpdated(address indexed protocolFeeController)
  2062  func (_Poolmanager *PoolmanagerFilterer) WatchProtocolFeeControllerUpdated(opts *bind.WatchOpts, sink chan<- *PoolmanagerProtocolFeeControllerUpdated, protocolFeeController []common.Address) (event.Subscription, error) {
  2063  
  2064  	var protocolFeeControllerRule []interface{}
  2065  	for _, protocolFeeControllerItem := range protocolFeeController {
  2066  		protocolFeeControllerRule = append(protocolFeeControllerRule, protocolFeeControllerItem)
  2067  	}
  2068  
  2069  	logs, sub, err := _Poolmanager.contract.WatchLogs(opts, "ProtocolFeeControllerUpdated", protocolFeeControllerRule)
  2070  	if err != nil {
  2071  		return nil, err
  2072  	}
  2073  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2074  		defer sub.Unsubscribe()
  2075  		for {
  2076  			select {
  2077  			case log := <-logs:
  2078  				// New log arrived, parse the event and forward to the user
  2079  				event := new(PoolmanagerProtocolFeeControllerUpdated)
  2080  				if err := _Poolmanager.contract.UnpackLog(event, "ProtocolFeeControllerUpdated", log); err != nil {
  2081  					return err
  2082  				}
  2083  				event.Raw = log
  2084  
  2085  				select {
  2086  				case sink <- event:
  2087  				case err := <-sub.Err():
  2088  					return err
  2089  				case <-quit:
  2090  					return nil
  2091  				}
  2092  			case err := <-sub.Err():
  2093  				return err
  2094  			case <-quit:
  2095  				return nil
  2096  			}
  2097  		}
  2098  	}), nil
  2099  }
  2100  
  2101  // ParseProtocolFeeControllerUpdated is a log parse operation binding the contract event 0xb4bd8ef53df690b9943d3318996006dbb82a25f54719d8c8035b516a2a5b8acc.
  2102  //
  2103  // Solidity: event ProtocolFeeControllerUpdated(address indexed protocolFeeController)
  2104  func (_Poolmanager *PoolmanagerFilterer) ParseProtocolFeeControllerUpdated(log types.Log) (*PoolmanagerProtocolFeeControllerUpdated, error) {
  2105  	event := new(PoolmanagerProtocolFeeControllerUpdated)
  2106  	if err := _Poolmanager.contract.UnpackLog(event, "ProtocolFeeControllerUpdated", log); err != nil {
  2107  		return nil, err
  2108  	}
  2109  	event.Raw = log
  2110  	return event, nil
  2111  }
  2112  
  2113  // PoolmanagerProtocolFeeUpdatedIterator is returned from FilterProtocolFeeUpdated and is used to iterate over the raw logs and unpacked data for ProtocolFeeUpdated events raised by the Poolmanager contract.
  2114  type PoolmanagerProtocolFeeUpdatedIterator struct {
  2115  	Event *PoolmanagerProtocolFeeUpdated // Event containing the contract specifics and raw log
  2116  
  2117  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2118  	event    string              // Event name to use for unpacking event data
  2119  
  2120  	logs chan types.Log        // Log channel receiving the found contract events
  2121  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2122  	done bool                  // Whether the subscription completed delivering logs
  2123  	fail error                 // Occurred error to stop iteration
  2124  }
  2125  
  2126  // Next advances the iterator to the subsequent event, returning whether there
  2127  // are any more events found. In case of a retrieval or parsing error, false is
  2128  // returned and Error() can be queried for the exact failure.
  2129  func (it *PoolmanagerProtocolFeeUpdatedIterator) Next() bool {
  2130  	// If the iterator failed, stop iterating
  2131  	if it.fail != nil {
  2132  		return false
  2133  	}
  2134  	// If the iterator completed, deliver directly whatever's available
  2135  	if it.done {
  2136  		select {
  2137  		case log := <-it.logs:
  2138  			it.Event = new(PoolmanagerProtocolFeeUpdated)
  2139  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2140  				it.fail = err
  2141  				return false
  2142  			}
  2143  			it.Event.Raw = log
  2144  			return true
  2145  
  2146  		default:
  2147  			return false
  2148  		}
  2149  	}
  2150  	// Iterator still in progress, wait for either a data or an error event
  2151  	select {
  2152  	case log := <-it.logs:
  2153  		it.Event = new(PoolmanagerProtocolFeeUpdated)
  2154  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2155  			it.fail = err
  2156  			return false
  2157  		}
  2158  		it.Event.Raw = log
  2159  		return true
  2160  
  2161  	case err := <-it.sub.Err():
  2162  		it.done = true
  2163  		it.fail = err
  2164  		return it.Next()
  2165  	}
  2166  }
  2167  
  2168  // Error returns any retrieval or parsing error occurred during filtering.
  2169  func (it *PoolmanagerProtocolFeeUpdatedIterator) Error() error {
  2170  	return it.fail
  2171  }
  2172  
  2173  // Close terminates the iteration process, releasing any pending underlying
  2174  // resources.
  2175  func (it *PoolmanagerProtocolFeeUpdatedIterator) Close() error {
  2176  	it.sub.Unsubscribe()
  2177  	return nil
  2178  }
  2179  
  2180  // PoolmanagerProtocolFeeUpdated represents a ProtocolFeeUpdated event raised by the Poolmanager contract.
  2181  type PoolmanagerProtocolFeeUpdated struct {
  2182  	Id          [32]byte
  2183  	ProtocolFee *big.Int
  2184  	Raw         types.Log // Blockchain specific contextual infos
  2185  }
  2186  
  2187  // FilterProtocolFeeUpdated is a free log retrieval operation binding the contract event 0xe9c42593e71f84403b84352cd168d693e2c9fcd1fdbcc3feb21d92b43e6696f9.
  2188  //
  2189  // Solidity: event ProtocolFeeUpdated(bytes32 indexed id, uint24 protocolFee)
  2190  func (_Poolmanager *PoolmanagerFilterer) FilterProtocolFeeUpdated(opts *bind.FilterOpts, id [][32]byte) (*PoolmanagerProtocolFeeUpdatedIterator, error) {
  2191  
  2192  	var idRule []interface{}
  2193  	for _, idItem := range id {
  2194  		idRule = append(idRule, idItem)
  2195  	}
  2196  
  2197  	logs, sub, err := _Poolmanager.contract.FilterLogs(opts, "ProtocolFeeUpdated", idRule)
  2198  	if err != nil {
  2199  		return nil, err
  2200  	}
  2201  	return &PoolmanagerProtocolFeeUpdatedIterator{contract: _Poolmanager.contract, event: "ProtocolFeeUpdated", logs: logs, sub: sub}, nil
  2202  }
  2203  
  2204  // WatchProtocolFeeUpdated is a free log subscription operation binding the contract event 0xe9c42593e71f84403b84352cd168d693e2c9fcd1fdbcc3feb21d92b43e6696f9.
  2205  //
  2206  // Solidity: event ProtocolFeeUpdated(bytes32 indexed id, uint24 protocolFee)
  2207  func (_Poolmanager *PoolmanagerFilterer) WatchProtocolFeeUpdated(opts *bind.WatchOpts, sink chan<- *PoolmanagerProtocolFeeUpdated, id [][32]byte) (event.Subscription, error) {
  2208  
  2209  	var idRule []interface{}
  2210  	for _, idItem := range id {
  2211  		idRule = append(idRule, idItem)
  2212  	}
  2213  
  2214  	logs, sub, err := _Poolmanager.contract.WatchLogs(opts, "ProtocolFeeUpdated", idRule)
  2215  	if err != nil {
  2216  		return nil, err
  2217  	}
  2218  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2219  		defer sub.Unsubscribe()
  2220  		for {
  2221  			select {
  2222  			case log := <-logs:
  2223  				// New log arrived, parse the event and forward to the user
  2224  				event := new(PoolmanagerProtocolFeeUpdated)
  2225  				if err := _Poolmanager.contract.UnpackLog(event, "ProtocolFeeUpdated", log); err != nil {
  2226  					return err
  2227  				}
  2228  				event.Raw = log
  2229  
  2230  				select {
  2231  				case sink <- event:
  2232  				case err := <-sub.Err():
  2233  					return err
  2234  				case <-quit:
  2235  					return nil
  2236  				}
  2237  			case err := <-sub.Err():
  2238  				return err
  2239  			case <-quit:
  2240  				return nil
  2241  			}
  2242  		}
  2243  	}), nil
  2244  }
  2245  
  2246  // ParseProtocolFeeUpdated is a log parse operation binding the contract event 0xe9c42593e71f84403b84352cd168d693e2c9fcd1fdbcc3feb21d92b43e6696f9.
  2247  //
  2248  // Solidity: event ProtocolFeeUpdated(bytes32 indexed id, uint24 protocolFee)
  2249  func (_Poolmanager *PoolmanagerFilterer) ParseProtocolFeeUpdated(log types.Log) (*PoolmanagerProtocolFeeUpdated, error) {
  2250  	event := new(PoolmanagerProtocolFeeUpdated)
  2251  	if err := _Poolmanager.contract.UnpackLog(event, "ProtocolFeeUpdated", log); err != nil {
  2252  		return nil, err
  2253  	}
  2254  	event.Raw = log
  2255  	return event, nil
  2256  }
  2257  
  2258  // PoolmanagerSwapIterator is returned from FilterSwap and is used to iterate over the raw logs and unpacked data for Swap events raised by the Poolmanager contract.
  2259  type PoolmanagerSwapIterator struct {
  2260  	Event *PoolmanagerSwap // Event containing the contract specifics and raw log
  2261  
  2262  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2263  	event    string              // Event name to use for unpacking event data
  2264  
  2265  	logs chan types.Log        // Log channel receiving the found contract events
  2266  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2267  	done bool                  // Whether the subscription completed delivering logs
  2268  	fail error                 // Occurred error to stop iteration
  2269  }
  2270  
  2271  // Next advances the iterator to the subsequent event, returning whether there
  2272  // are any more events found. In case of a retrieval or parsing error, false is
  2273  // returned and Error() can be queried for the exact failure.
  2274  func (it *PoolmanagerSwapIterator) Next() bool {
  2275  	// If the iterator failed, stop iterating
  2276  	if it.fail != nil {
  2277  		return false
  2278  	}
  2279  	// If the iterator completed, deliver directly whatever's available
  2280  	if it.done {
  2281  		select {
  2282  		case log := <-it.logs:
  2283  			it.Event = new(PoolmanagerSwap)
  2284  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2285  				it.fail = err
  2286  				return false
  2287  			}
  2288  			it.Event.Raw = log
  2289  			return true
  2290  
  2291  		default:
  2292  			return false
  2293  		}
  2294  	}
  2295  	// Iterator still in progress, wait for either a data or an error event
  2296  	select {
  2297  	case log := <-it.logs:
  2298  		it.Event = new(PoolmanagerSwap)
  2299  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2300  			it.fail = err
  2301  			return false
  2302  		}
  2303  		it.Event.Raw = log
  2304  		return true
  2305  
  2306  	case err := <-it.sub.Err():
  2307  		it.done = true
  2308  		it.fail = err
  2309  		return it.Next()
  2310  	}
  2311  }
  2312  
  2313  // Error returns any retrieval or parsing error occurred during filtering.
  2314  func (it *PoolmanagerSwapIterator) Error() error {
  2315  	return it.fail
  2316  }
  2317  
  2318  // Close terminates the iteration process, releasing any pending underlying
  2319  // resources.
  2320  func (it *PoolmanagerSwapIterator) Close() error {
  2321  	it.sub.Unsubscribe()
  2322  	return nil
  2323  }
  2324  
  2325  // PoolmanagerSwap represents a Swap event raised by the Poolmanager contract.
  2326  type PoolmanagerSwap struct {
  2327  	Id           [32]byte
  2328  	Sender       common.Address
  2329  	Amount0      *big.Int
  2330  	Amount1      *big.Int
  2331  	SqrtPriceX96 *big.Int
  2332  	Liquidity    *big.Int
  2333  	Tick         *big.Int
  2334  	Fee          *big.Int
  2335  	Raw          types.Log // Blockchain specific contextual infos
  2336  }
  2337  
  2338  // FilterSwap is a free log retrieval operation binding the contract event 0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f.
  2339  //
  2340  // Solidity: event Swap(bytes32 indexed id, address indexed sender, int128 amount0, int128 amount1, uint160 sqrtPriceX96, uint128 liquidity, int24 tick, uint24 fee)
  2341  func (_Poolmanager *PoolmanagerFilterer) FilterSwap(opts *bind.FilterOpts, id [][32]byte, sender []common.Address) (*PoolmanagerSwapIterator, error) {
  2342  
  2343  	var idRule []interface{}
  2344  	for _, idItem := range id {
  2345  		idRule = append(idRule, idItem)
  2346  	}
  2347  	var senderRule []interface{}
  2348  	for _, senderItem := range sender {
  2349  		senderRule = append(senderRule, senderItem)
  2350  	}
  2351  
  2352  	logs, sub, err := _Poolmanager.contract.FilterLogs(opts, "Swap", idRule, senderRule)
  2353  	if err != nil {
  2354  		return nil, err
  2355  	}
  2356  	return &PoolmanagerSwapIterator{contract: _Poolmanager.contract, event: "Swap", logs: logs, sub: sub}, nil
  2357  }
  2358  
  2359  // WatchSwap is a free log subscription operation binding the contract event 0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f.
  2360  //
  2361  // Solidity: event Swap(bytes32 indexed id, address indexed sender, int128 amount0, int128 amount1, uint160 sqrtPriceX96, uint128 liquidity, int24 tick, uint24 fee)
  2362  func (_Poolmanager *PoolmanagerFilterer) WatchSwap(opts *bind.WatchOpts, sink chan<- *PoolmanagerSwap, id [][32]byte, sender []common.Address) (event.Subscription, error) {
  2363  
  2364  	var idRule []interface{}
  2365  	for _, idItem := range id {
  2366  		idRule = append(idRule, idItem)
  2367  	}
  2368  	var senderRule []interface{}
  2369  	for _, senderItem := range sender {
  2370  		senderRule = append(senderRule, senderItem)
  2371  	}
  2372  
  2373  	logs, sub, err := _Poolmanager.contract.WatchLogs(opts, "Swap", idRule, senderRule)
  2374  	if err != nil {
  2375  		return nil, err
  2376  	}
  2377  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2378  		defer sub.Unsubscribe()
  2379  		for {
  2380  			select {
  2381  			case log := <-logs:
  2382  				// New log arrived, parse the event and forward to the user
  2383  				event := new(PoolmanagerSwap)
  2384  				if err := _Poolmanager.contract.UnpackLog(event, "Swap", log); err != nil {
  2385  					return err
  2386  				}
  2387  				event.Raw = log
  2388  
  2389  				select {
  2390  				case sink <- event:
  2391  				case err := <-sub.Err():
  2392  					return err
  2393  				case <-quit:
  2394  					return nil
  2395  				}
  2396  			case err := <-sub.Err():
  2397  				return err
  2398  			case <-quit:
  2399  				return nil
  2400  			}
  2401  		}
  2402  	}), nil
  2403  }
  2404  
  2405  // ParseSwap is a log parse operation binding the contract event 0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f.
  2406  //
  2407  // Solidity: event Swap(bytes32 indexed id, address indexed sender, int128 amount0, int128 amount1, uint160 sqrtPriceX96, uint128 liquidity, int24 tick, uint24 fee)
  2408  func (_Poolmanager *PoolmanagerFilterer) ParseSwap(log types.Log) (*PoolmanagerSwap, error) {
  2409  	event := new(PoolmanagerSwap)
  2410  	if err := _Poolmanager.contract.UnpackLog(event, "Swap", log); err != nil {
  2411  		return nil, err
  2412  	}
  2413  	event.Raw = log
  2414  	return event, nil
  2415  }
  2416  
  2417  // PoolmanagerTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the Poolmanager contract.
  2418  type PoolmanagerTransferIterator struct {
  2419  	Event *PoolmanagerTransfer // Event containing the contract specifics and raw log
  2420  
  2421  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2422  	event    string              // Event name to use for unpacking event data
  2423  
  2424  	logs chan types.Log        // Log channel receiving the found contract events
  2425  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2426  	done bool                  // Whether the subscription completed delivering logs
  2427  	fail error                 // Occurred error to stop iteration
  2428  }
  2429  
  2430  // Next advances the iterator to the subsequent event, returning whether there
  2431  // are any more events found. In case of a retrieval or parsing error, false is
  2432  // returned and Error() can be queried for the exact failure.
  2433  func (it *PoolmanagerTransferIterator) Next() bool {
  2434  	// If the iterator failed, stop iterating
  2435  	if it.fail != nil {
  2436  		return false
  2437  	}
  2438  	// If the iterator completed, deliver directly whatever's available
  2439  	if it.done {
  2440  		select {
  2441  		case log := <-it.logs:
  2442  			it.Event = new(PoolmanagerTransfer)
  2443  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2444  				it.fail = err
  2445  				return false
  2446  			}
  2447  			it.Event.Raw = log
  2448  			return true
  2449  
  2450  		default:
  2451  			return false
  2452  		}
  2453  	}
  2454  	// Iterator still in progress, wait for either a data or an error event
  2455  	select {
  2456  	case log := <-it.logs:
  2457  		it.Event = new(PoolmanagerTransfer)
  2458  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2459  			it.fail = err
  2460  			return false
  2461  		}
  2462  		it.Event.Raw = log
  2463  		return true
  2464  
  2465  	case err := <-it.sub.Err():
  2466  		it.done = true
  2467  		it.fail = err
  2468  		return it.Next()
  2469  	}
  2470  }
  2471  
  2472  // Error returns any retrieval or parsing error occurred during filtering.
  2473  func (it *PoolmanagerTransferIterator) Error() error {
  2474  	return it.fail
  2475  }
  2476  
  2477  // Close terminates the iteration process, releasing any pending underlying
  2478  // resources.
  2479  func (it *PoolmanagerTransferIterator) Close() error {
  2480  	it.sub.Unsubscribe()
  2481  	return nil
  2482  }
  2483  
  2484  // PoolmanagerTransfer represents a Transfer event raised by the Poolmanager contract.
  2485  type PoolmanagerTransfer struct {
  2486  	Caller common.Address
  2487  	From   common.Address
  2488  	To     common.Address
  2489  	Id     *big.Int
  2490  	Amount *big.Int
  2491  	Raw    types.Log // Blockchain specific contextual infos
  2492  }
  2493  
  2494  // FilterTransfer is a free log retrieval operation binding the contract event 0x1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859.
  2495  //
  2496  // Solidity: event Transfer(address caller, address indexed from, address indexed to, uint256 indexed id, uint256 amount)
  2497  func (_Poolmanager *PoolmanagerFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, id []*big.Int) (*PoolmanagerTransferIterator, error) {
  2498  
  2499  	var fromRule []interface{}
  2500  	for _, fromItem := range from {
  2501  		fromRule = append(fromRule, fromItem)
  2502  	}
  2503  	var toRule []interface{}
  2504  	for _, toItem := range to {
  2505  		toRule = append(toRule, toItem)
  2506  	}
  2507  	var idRule []interface{}
  2508  	for _, idItem := range id {
  2509  		idRule = append(idRule, idItem)
  2510  	}
  2511  
  2512  	logs, sub, err := _Poolmanager.contract.FilterLogs(opts, "Transfer", fromRule, toRule, idRule)
  2513  	if err != nil {
  2514  		return nil, err
  2515  	}
  2516  	return &PoolmanagerTransferIterator{contract: _Poolmanager.contract, event: "Transfer", logs: logs, sub: sub}, nil
  2517  }
  2518  
  2519  // WatchTransfer is a free log subscription operation binding the contract event 0x1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859.
  2520  //
  2521  // Solidity: event Transfer(address caller, address indexed from, address indexed to, uint256 indexed id, uint256 amount)
  2522  func (_Poolmanager *PoolmanagerFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *PoolmanagerTransfer, from []common.Address, to []common.Address, id []*big.Int) (event.Subscription, error) {
  2523  
  2524  	var fromRule []interface{}
  2525  	for _, fromItem := range from {
  2526  		fromRule = append(fromRule, fromItem)
  2527  	}
  2528  	var toRule []interface{}
  2529  	for _, toItem := range to {
  2530  		toRule = append(toRule, toItem)
  2531  	}
  2532  	var idRule []interface{}
  2533  	for _, idItem := range id {
  2534  		idRule = append(idRule, idItem)
  2535  	}
  2536  
  2537  	logs, sub, err := _Poolmanager.contract.WatchLogs(opts, "Transfer", fromRule, toRule, idRule)
  2538  	if err != nil {
  2539  		return nil, err
  2540  	}
  2541  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2542  		defer sub.Unsubscribe()
  2543  		for {
  2544  			select {
  2545  			case log := <-logs:
  2546  				// New log arrived, parse the event and forward to the user
  2547  				event := new(PoolmanagerTransfer)
  2548  				if err := _Poolmanager.contract.UnpackLog(event, "Transfer", log); err != nil {
  2549  					return err
  2550  				}
  2551  				event.Raw = log
  2552  
  2553  				select {
  2554  				case sink <- event:
  2555  				case err := <-sub.Err():
  2556  					return err
  2557  				case <-quit:
  2558  					return nil
  2559  				}
  2560  			case err := <-sub.Err():
  2561  				return err
  2562  			case <-quit:
  2563  				return nil
  2564  			}
  2565  		}
  2566  	}), nil
  2567  }
  2568  
  2569  // ParseTransfer is a log parse operation binding the contract event 0x1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859.
  2570  //
  2571  // Solidity: event Transfer(address caller, address indexed from, address indexed to, uint256 indexed id, uint256 amount)
  2572  func (_Poolmanager *PoolmanagerFilterer) ParseTransfer(log types.Log) (*PoolmanagerTransfer, error) {
  2573  	event := new(PoolmanagerTransfer)
  2574  	if err := _Poolmanager.contract.UnpackLog(event, "Transfer", log); err != nil {
  2575  		return nil, err
  2576  	}
  2577  	event.Raw = log
  2578  	return event, nil
  2579  }