github.com/diadata-org/diadata@v1.4.593/config/nftContracts/looksrare/contract.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 looksrare
     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  )
    30  
    31  // OrderTypesMakerOrder is an auto generated low-level Go binding around an user-defined struct.
    32  type OrderTypesMakerOrder struct {
    33  	IsOrderAsk         bool
    34  	Signer             common.Address
    35  	Collection         common.Address
    36  	Price              *big.Int
    37  	TokenId            *big.Int
    38  	Amount             *big.Int
    39  	Strategy           common.Address
    40  	Currency           common.Address
    41  	Nonce              *big.Int
    42  	StartTime          *big.Int
    43  	EndTime            *big.Int
    44  	MinPercentageToAsk *big.Int
    45  	Params             []byte
    46  	V                  uint8
    47  	R                  [32]byte
    48  	S                  [32]byte
    49  }
    50  
    51  // OrderTypesTakerOrder is an auto generated low-level Go binding around an user-defined struct.
    52  type OrderTypesTakerOrder struct {
    53  	IsOrderAsk         bool
    54  	Taker              common.Address
    55  	Price              *big.Int
    56  	TokenId            *big.Int
    57  	MinPercentageToAsk *big.Int
    58  	Params             []byte
    59  }
    60  
    61  // ContractMetaData contains all meta data concerning the Contract contract.
    62  var ContractMetaData = &bind.MetaData{
    63  	ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_currencyManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_executionManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_royaltyFeeManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_WETH\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_protocolFeeRecipient\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMinNonce\",\"type\":\"uint256\"}],\"name\":\"CancelAllOrders\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"orderNonces\",\"type\":\"uint256[]\"}],\"name\":\"CancelMultipleOrders\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currencyManager\",\"type\":\"address\"}],\"name\":\"NewCurrencyManager\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executionManager\",\"type\":\"address\"}],\"name\":\"NewExecutionManager\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"protocolFeeRecipient\",\"type\":\"address\"}],\"name\":\"NewProtocolFeeRecipient\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"royaltyFeeManager\",\"type\":\"address\"}],\"name\":\"NewRoyaltyFeeManager\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"transferSelectorNFT\",\"type\":\"address\"}],\"name\":\"NewTransferSelectorNFT\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"collection\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"royaltyRecipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"RoyaltyPayment\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"orderNonce\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"taker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"maker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"collection\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"TakerAsk\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"orderNonce\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"taker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"maker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"collection\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"TakerBid\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minNonce\",\"type\":\"uint256\"}],\"name\":\"cancelAllOrdersForSender\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"orderNonces\",\"type\":\"uint256[]\"}],\"name\":\"cancelMultipleMakerOrders\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currencyManager\",\"outputs\":[{\"internalType\":\"contractICurrencyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executionManager\",\"outputs\":[{\"internalType\":\"contractIExecutionManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"orderNonce\",\"type\":\"uint256\"}],\"name\":\"isUserOrderNonceExecutedOrCancelled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"isOrderAsk\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"taker\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minPercentageToAsk\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"structOrderTypes.TakerOrder\",\"name\":\"takerBid\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"isOrderAsk\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collection\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minPercentageToAsk\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structOrderTypes.MakerOrder\",\"name\":\"makerAsk\",\"type\":\"tuple\"}],\"name\":\"matchAskWithTakerBid\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"isOrderAsk\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"taker\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minPercentageToAsk\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"structOrderTypes.TakerOrder\",\"name\":\"takerBid\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"isOrderAsk\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collection\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minPercentageToAsk\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structOrderTypes.MakerOrder\",\"name\":\"makerAsk\",\"type\":\"tuple\"}],\"name\":\"matchAskWithTakerBidUsingETHAndWETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"isOrderAsk\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"taker\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minPercentageToAsk\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"structOrderTypes.TakerOrder\",\"name\":\"takerAsk\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"isOrderAsk\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collection\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minPercentageToAsk\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structOrderTypes.MakerOrder\",\"name\":\"makerBid\",\"type\":\"tuple\"}],\"name\":\"matchBidWithTakerAsk\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFeeRecipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"royaltyFeeManager\",\"outputs\":[{\"internalType\":\"contractIRoyaltyFeeManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"transferSelectorNFT\",\"outputs\":[{\"internalType\":\"contractITransferSelectorNFT\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_currencyManager\",\"type\":\"address\"}],\"name\":\"updateCurrencyManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_executionManager\",\"type\":\"address\"}],\"name\":\"updateExecutionManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protocolFeeRecipient\",\"type\":\"address\"}],\"name\":\"updateProtocolFeeRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_royaltyFeeManager\",\"type\":\"address\"}],\"name\":\"updateRoyaltyFeeManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_transferSelectorNFT\",\"type\":\"address\"}],\"name\":\"updateTransferSelectorNFT\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"userMinOrderNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]",
    64  }
    65  
    66  // ContractABI is the input ABI used to generate the binding from.
    67  // Deprecated: Use ContractMetaData.ABI instead.
    68  var ContractABI = ContractMetaData.ABI
    69  
    70  // Contract is an auto generated Go binding around an Ethereum contract.
    71  type Contract struct {
    72  	ContractCaller     // Read-only binding to the contract
    73  	ContractTransactor // Write-only binding to the contract
    74  	ContractFilterer   // Log filterer for contract events
    75  }
    76  
    77  // ContractCaller is an auto generated read-only Go binding around an Ethereum contract.
    78  type ContractCaller struct {
    79  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    80  }
    81  
    82  // ContractTransactor is an auto generated write-only Go binding around an Ethereum contract.
    83  type ContractTransactor struct {
    84  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    85  }
    86  
    87  // ContractFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
    88  type ContractFilterer struct {
    89  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    90  }
    91  
    92  // ContractSession is an auto generated Go binding around an Ethereum contract,
    93  // with pre-set call and transact options.
    94  type ContractSession struct {
    95  	Contract     *Contract         // Generic contract binding to set the session for
    96  	CallOpts     bind.CallOpts     // Call options to use throughout this session
    97  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
    98  }
    99  
   100  // ContractCallerSession is an auto generated read-only Go binding around an Ethereum contract,
   101  // with pre-set call options.
   102  type ContractCallerSession struct {
   103  	Contract *ContractCaller // Generic contract caller binding to set the session for
   104  	CallOpts bind.CallOpts   // Call options to use throughout this session
   105  }
   106  
   107  // ContractTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
   108  // with pre-set transact options.
   109  type ContractTransactorSession struct {
   110  	Contract     *ContractTransactor // Generic contract transactor binding to set the session for
   111  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
   112  }
   113  
   114  // ContractRaw is an auto generated low-level Go binding around an Ethereum contract.
   115  type ContractRaw struct {
   116  	Contract *Contract // Generic contract binding to access the raw methods on
   117  }
   118  
   119  // ContractCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
   120  type ContractCallerRaw struct {
   121  	Contract *ContractCaller // Generic read-only contract binding to access the raw methods on
   122  }
   123  
   124  // ContractTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
   125  type ContractTransactorRaw struct {
   126  	Contract *ContractTransactor // Generic write-only contract binding to access the raw methods on
   127  }
   128  
   129  // NewContract creates a new instance of Contract, bound to a specific deployed contract.
   130  func NewContract(address common.Address, backend bind.ContractBackend) (*Contract, error) {
   131  	contract, err := bindContract(address, backend, backend, backend)
   132  	if err != nil {
   133  		return nil, err
   134  	}
   135  	return &Contract{ContractCaller: ContractCaller{contract: contract}, ContractTransactor: ContractTransactor{contract: contract}, ContractFilterer: ContractFilterer{contract: contract}}, nil
   136  }
   137  
   138  // NewContractCaller creates a new read-only instance of Contract, bound to a specific deployed contract.
   139  func NewContractCaller(address common.Address, caller bind.ContractCaller) (*ContractCaller, error) {
   140  	contract, err := bindContract(address, caller, nil, nil)
   141  	if err != nil {
   142  		return nil, err
   143  	}
   144  	return &ContractCaller{contract: contract}, nil
   145  }
   146  
   147  // NewContractTransactor creates a new write-only instance of Contract, bound to a specific deployed contract.
   148  func NewContractTransactor(address common.Address, transactor bind.ContractTransactor) (*ContractTransactor, error) {
   149  	contract, err := bindContract(address, nil, transactor, nil)
   150  	if err != nil {
   151  		return nil, err
   152  	}
   153  	return &ContractTransactor{contract: contract}, nil
   154  }
   155  
   156  // NewContractFilterer creates a new log filterer instance of Contract, bound to a specific deployed contract.
   157  func NewContractFilterer(address common.Address, filterer bind.ContractFilterer) (*ContractFilterer, error) {
   158  	contract, err := bindContract(address, nil, nil, filterer)
   159  	if err != nil {
   160  		return nil, err
   161  	}
   162  	return &ContractFilterer{contract: contract}, nil
   163  }
   164  
   165  // bindContract binds a generic wrapper to an already deployed contract.
   166  func bindContract(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   167  	parsed, err := abi.JSON(strings.NewReader(ContractABI))
   168  	if err != nil {
   169  		return nil, err
   170  	}
   171  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   172  }
   173  
   174  // Call invokes the (constant) contract method with params as input values and
   175  // sets the output to result. The result type might be a single field for simple
   176  // returns, a slice of interfaces for anonymous returns and a struct for named
   177  // returns.
   178  func (_Contract *ContractRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   179  	return _Contract.Contract.ContractCaller.contract.Call(opts, result, method, params...)
   180  }
   181  
   182  // Transfer initiates a plain transaction to move funds to the contract, calling
   183  // its default method if one is available.
   184  func (_Contract *ContractRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   185  	return _Contract.Contract.ContractTransactor.contract.Transfer(opts)
   186  }
   187  
   188  // Transact invokes the (paid) contract method with params as input values.
   189  func (_Contract *ContractRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   190  	return _Contract.Contract.ContractTransactor.contract.Transact(opts, method, params...)
   191  }
   192  
   193  // Call invokes the (constant) contract method with params as input values and
   194  // sets the output to result. The result type might be a single field for simple
   195  // returns, a slice of interfaces for anonymous returns and a struct for named
   196  // returns.
   197  func (_Contract *ContractCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   198  	return _Contract.Contract.contract.Call(opts, result, method, params...)
   199  }
   200  
   201  // Transfer initiates a plain transaction to move funds to the contract, calling
   202  // its default method if one is available.
   203  func (_Contract *ContractTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   204  	return _Contract.Contract.contract.Transfer(opts)
   205  }
   206  
   207  // Transact invokes the (paid) contract method with params as input values.
   208  func (_Contract *ContractTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   209  	return _Contract.Contract.contract.Transact(opts, method, params...)
   210  }
   211  
   212  // DOMAINSEPARATOR is a free data retrieval call binding the contract method 0x3644e515.
   213  //
   214  // Solidity: function DOMAIN_SEPARATOR() view returns(bytes32)
   215  func (_Contract *ContractCaller) DOMAINSEPARATOR(opts *bind.CallOpts) ([32]byte, error) {
   216  	var out []interface{}
   217  	err := _Contract.contract.Call(opts, &out, "DOMAIN_SEPARATOR")
   218  
   219  	if err != nil {
   220  		return *new([32]byte), err
   221  	}
   222  
   223  	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
   224  
   225  	return out0, err
   226  
   227  }
   228  
   229  // DOMAINSEPARATOR is a free data retrieval call binding the contract method 0x3644e515.
   230  //
   231  // Solidity: function DOMAIN_SEPARATOR() view returns(bytes32)
   232  func (_Contract *ContractSession) DOMAINSEPARATOR() ([32]byte, error) {
   233  	return _Contract.Contract.DOMAINSEPARATOR(&_Contract.CallOpts)
   234  }
   235  
   236  // DOMAINSEPARATOR is a free data retrieval call binding the contract method 0x3644e515.
   237  //
   238  // Solidity: function DOMAIN_SEPARATOR() view returns(bytes32)
   239  func (_Contract *ContractCallerSession) DOMAINSEPARATOR() ([32]byte, error) {
   240  	return _Contract.Contract.DOMAINSEPARATOR(&_Contract.CallOpts)
   241  }
   242  
   243  // WETH is a free data retrieval call binding the contract method 0xad5c4648.
   244  //
   245  // Solidity: function WETH() view returns(address)
   246  func (_Contract *ContractCaller) WETH(opts *bind.CallOpts) (common.Address, error) {
   247  	var out []interface{}
   248  	err := _Contract.contract.Call(opts, &out, "WETH")
   249  
   250  	if err != nil {
   251  		return *new(common.Address), err
   252  	}
   253  
   254  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   255  
   256  	return out0, err
   257  
   258  }
   259  
   260  // WETH is a free data retrieval call binding the contract method 0xad5c4648.
   261  //
   262  // Solidity: function WETH() view returns(address)
   263  func (_Contract *ContractSession) WETH() (common.Address, error) {
   264  	return _Contract.Contract.WETH(&_Contract.CallOpts)
   265  }
   266  
   267  // WETH is a free data retrieval call binding the contract method 0xad5c4648.
   268  //
   269  // Solidity: function WETH() view returns(address)
   270  func (_Contract *ContractCallerSession) WETH() (common.Address, error) {
   271  	return _Contract.Contract.WETH(&_Contract.CallOpts)
   272  }
   273  
   274  // CurrencyManager is a free data retrieval call binding the contract method 0x0f747d74.
   275  //
   276  // Solidity: function currencyManager() view returns(address)
   277  func (_Contract *ContractCaller) CurrencyManager(opts *bind.CallOpts) (common.Address, error) {
   278  	var out []interface{}
   279  	err := _Contract.contract.Call(opts, &out, "currencyManager")
   280  
   281  	if err != nil {
   282  		return *new(common.Address), err
   283  	}
   284  
   285  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   286  
   287  	return out0, err
   288  
   289  }
   290  
   291  // CurrencyManager is a free data retrieval call binding the contract method 0x0f747d74.
   292  //
   293  // Solidity: function currencyManager() view returns(address)
   294  func (_Contract *ContractSession) CurrencyManager() (common.Address, error) {
   295  	return _Contract.Contract.CurrencyManager(&_Contract.CallOpts)
   296  }
   297  
   298  // CurrencyManager is a free data retrieval call binding the contract method 0x0f747d74.
   299  //
   300  // Solidity: function currencyManager() view returns(address)
   301  func (_Contract *ContractCallerSession) CurrencyManager() (common.Address, error) {
   302  	return _Contract.Contract.CurrencyManager(&_Contract.CallOpts)
   303  }
   304  
   305  // ExecutionManager is a free data retrieval call binding the contract method 0x483abb9f.
   306  //
   307  // Solidity: function executionManager() view returns(address)
   308  func (_Contract *ContractCaller) ExecutionManager(opts *bind.CallOpts) (common.Address, error) {
   309  	var out []interface{}
   310  	err := _Contract.contract.Call(opts, &out, "executionManager")
   311  
   312  	if err != nil {
   313  		return *new(common.Address), err
   314  	}
   315  
   316  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   317  
   318  	return out0, err
   319  
   320  }
   321  
   322  // ExecutionManager is a free data retrieval call binding the contract method 0x483abb9f.
   323  //
   324  // Solidity: function executionManager() view returns(address)
   325  func (_Contract *ContractSession) ExecutionManager() (common.Address, error) {
   326  	return _Contract.Contract.ExecutionManager(&_Contract.CallOpts)
   327  }
   328  
   329  // ExecutionManager is a free data retrieval call binding the contract method 0x483abb9f.
   330  //
   331  // Solidity: function executionManager() view returns(address)
   332  func (_Contract *ContractCallerSession) ExecutionManager() (common.Address, error) {
   333  	return _Contract.Contract.ExecutionManager(&_Contract.CallOpts)
   334  }
   335  
   336  // IsUserOrderNonceExecutedOrCancelled is a free data retrieval call binding the contract method 0x31e27e27.
   337  //
   338  // Solidity: function isUserOrderNonceExecutedOrCancelled(address user, uint256 orderNonce) view returns(bool)
   339  func (_Contract *ContractCaller) IsUserOrderNonceExecutedOrCancelled(opts *bind.CallOpts, user common.Address, orderNonce *big.Int) (bool, error) {
   340  	var out []interface{}
   341  	err := _Contract.contract.Call(opts, &out, "isUserOrderNonceExecutedOrCancelled", user, orderNonce)
   342  
   343  	if err != nil {
   344  		return *new(bool), err
   345  	}
   346  
   347  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   348  
   349  	return out0, err
   350  
   351  }
   352  
   353  // IsUserOrderNonceExecutedOrCancelled is a free data retrieval call binding the contract method 0x31e27e27.
   354  //
   355  // Solidity: function isUserOrderNonceExecutedOrCancelled(address user, uint256 orderNonce) view returns(bool)
   356  func (_Contract *ContractSession) IsUserOrderNonceExecutedOrCancelled(user common.Address, orderNonce *big.Int) (bool, error) {
   357  	return _Contract.Contract.IsUserOrderNonceExecutedOrCancelled(&_Contract.CallOpts, user, orderNonce)
   358  }
   359  
   360  // IsUserOrderNonceExecutedOrCancelled is a free data retrieval call binding the contract method 0x31e27e27.
   361  //
   362  // Solidity: function isUserOrderNonceExecutedOrCancelled(address user, uint256 orderNonce) view returns(bool)
   363  func (_Contract *ContractCallerSession) IsUserOrderNonceExecutedOrCancelled(user common.Address, orderNonce *big.Int) (bool, error) {
   364  	return _Contract.Contract.IsUserOrderNonceExecutedOrCancelled(&_Contract.CallOpts, user, orderNonce)
   365  }
   366  
   367  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   368  //
   369  // Solidity: function owner() view returns(address)
   370  func (_Contract *ContractCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
   371  	var out []interface{}
   372  	err := _Contract.contract.Call(opts, &out, "owner")
   373  
   374  	if err != nil {
   375  		return *new(common.Address), err
   376  	}
   377  
   378  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   379  
   380  	return out0, err
   381  
   382  }
   383  
   384  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   385  //
   386  // Solidity: function owner() view returns(address)
   387  func (_Contract *ContractSession) Owner() (common.Address, error) {
   388  	return _Contract.Contract.Owner(&_Contract.CallOpts)
   389  }
   390  
   391  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   392  //
   393  // Solidity: function owner() view returns(address)
   394  func (_Contract *ContractCallerSession) Owner() (common.Address, error) {
   395  	return _Contract.Contract.Owner(&_Contract.CallOpts)
   396  }
   397  
   398  // ProtocolFeeRecipient is a free data retrieval call binding the contract method 0x64df049e.
   399  //
   400  // Solidity: function protocolFeeRecipient() view returns(address)
   401  func (_Contract *ContractCaller) ProtocolFeeRecipient(opts *bind.CallOpts) (common.Address, error) {
   402  	var out []interface{}
   403  	err := _Contract.contract.Call(opts, &out, "protocolFeeRecipient")
   404  
   405  	if err != nil {
   406  		return *new(common.Address), err
   407  	}
   408  
   409  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   410  
   411  	return out0, err
   412  
   413  }
   414  
   415  // ProtocolFeeRecipient is a free data retrieval call binding the contract method 0x64df049e.
   416  //
   417  // Solidity: function protocolFeeRecipient() view returns(address)
   418  func (_Contract *ContractSession) ProtocolFeeRecipient() (common.Address, error) {
   419  	return _Contract.Contract.ProtocolFeeRecipient(&_Contract.CallOpts)
   420  }
   421  
   422  // ProtocolFeeRecipient is a free data retrieval call binding the contract method 0x64df049e.
   423  //
   424  // Solidity: function protocolFeeRecipient() view returns(address)
   425  func (_Contract *ContractCallerSession) ProtocolFeeRecipient() (common.Address, error) {
   426  	return _Contract.Contract.ProtocolFeeRecipient(&_Contract.CallOpts)
   427  }
   428  
   429  // RoyaltyFeeManager is a free data retrieval call binding the contract method 0x87e4401f.
   430  //
   431  // Solidity: function royaltyFeeManager() view returns(address)
   432  func (_Contract *ContractCaller) RoyaltyFeeManager(opts *bind.CallOpts) (common.Address, error) {
   433  	var out []interface{}
   434  	err := _Contract.contract.Call(opts, &out, "royaltyFeeManager")
   435  
   436  	if err != nil {
   437  		return *new(common.Address), err
   438  	}
   439  
   440  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   441  
   442  	return out0, err
   443  
   444  }
   445  
   446  // RoyaltyFeeManager is a free data retrieval call binding the contract method 0x87e4401f.
   447  //
   448  // Solidity: function royaltyFeeManager() view returns(address)
   449  func (_Contract *ContractSession) RoyaltyFeeManager() (common.Address, error) {
   450  	return _Contract.Contract.RoyaltyFeeManager(&_Contract.CallOpts)
   451  }
   452  
   453  // RoyaltyFeeManager is a free data retrieval call binding the contract method 0x87e4401f.
   454  //
   455  // Solidity: function royaltyFeeManager() view returns(address)
   456  func (_Contract *ContractCallerSession) RoyaltyFeeManager() (common.Address, error) {
   457  	return _Contract.Contract.RoyaltyFeeManager(&_Contract.CallOpts)
   458  }
   459  
   460  // TransferSelectorNFT is a free data retrieval call binding the contract method 0x5e14f68e.
   461  //
   462  // Solidity: function transferSelectorNFT() view returns(address)
   463  func (_Contract *ContractCaller) TransferSelectorNFT(opts *bind.CallOpts) (common.Address, error) {
   464  	var out []interface{}
   465  	err := _Contract.contract.Call(opts, &out, "transferSelectorNFT")
   466  
   467  	if err != nil {
   468  		return *new(common.Address), err
   469  	}
   470  
   471  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   472  
   473  	return out0, err
   474  
   475  }
   476  
   477  // TransferSelectorNFT is a free data retrieval call binding the contract method 0x5e14f68e.
   478  //
   479  // Solidity: function transferSelectorNFT() view returns(address)
   480  func (_Contract *ContractSession) TransferSelectorNFT() (common.Address, error) {
   481  	return _Contract.Contract.TransferSelectorNFT(&_Contract.CallOpts)
   482  }
   483  
   484  // TransferSelectorNFT is a free data retrieval call binding the contract method 0x5e14f68e.
   485  //
   486  // Solidity: function transferSelectorNFT() view returns(address)
   487  func (_Contract *ContractCallerSession) TransferSelectorNFT() (common.Address, error) {
   488  	return _Contract.Contract.TransferSelectorNFT(&_Contract.CallOpts)
   489  }
   490  
   491  // UserMinOrderNonce is a free data retrieval call binding the contract method 0x4266581e.
   492  //
   493  // Solidity: function userMinOrderNonce(address ) view returns(uint256)
   494  func (_Contract *ContractCaller) UserMinOrderNonce(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) {
   495  	var out []interface{}
   496  	err := _Contract.contract.Call(opts, &out, "userMinOrderNonce", arg0)
   497  
   498  	if err != nil {
   499  		return *new(*big.Int), err
   500  	}
   501  
   502  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   503  
   504  	return out0, err
   505  
   506  }
   507  
   508  // UserMinOrderNonce is a free data retrieval call binding the contract method 0x4266581e.
   509  //
   510  // Solidity: function userMinOrderNonce(address ) view returns(uint256)
   511  func (_Contract *ContractSession) UserMinOrderNonce(arg0 common.Address) (*big.Int, error) {
   512  	return _Contract.Contract.UserMinOrderNonce(&_Contract.CallOpts, arg0)
   513  }
   514  
   515  // UserMinOrderNonce is a free data retrieval call binding the contract method 0x4266581e.
   516  //
   517  // Solidity: function userMinOrderNonce(address ) view returns(uint256)
   518  func (_Contract *ContractCallerSession) UserMinOrderNonce(arg0 common.Address) (*big.Int, error) {
   519  	return _Contract.Contract.UserMinOrderNonce(&_Contract.CallOpts, arg0)
   520  }
   521  
   522  // CancelAllOrdersForSender is a paid mutator transaction binding the contract method 0xcbd2ec65.
   523  //
   524  // Solidity: function cancelAllOrdersForSender(uint256 minNonce) returns()
   525  func (_Contract *ContractTransactor) CancelAllOrdersForSender(opts *bind.TransactOpts, minNonce *big.Int) (*types.Transaction, error) {
   526  	return _Contract.contract.Transact(opts, "cancelAllOrdersForSender", minNonce)
   527  }
   528  
   529  // CancelAllOrdersForSender is a paid mutator transaction binding the contract method 0xcbd2ec65.
   530  //
   531  // Solidity: function cancelAllOrdersForSender(uint256 minNonce) returns()
   532  func (_Contract *ContractSession) CancelAllOrdersForSender(minNonce *big.Int) (*types.Transaction, error) {
   533  	return _Contract.Contract.CancelAllOrdersForSender(&_Contract.TransactOpts, minNonce)
   534  }
   535  
   536  // CancelAllOrdersForSender is a paid mutator transaction binding the contract method 0xcbd2ec65.
   537  //
   538  // Solidity: function cancelAllOrdersForSender(uint256 minNonce) returns()
   539  func (_Contract *ContractTransactorSession) CancelAllOrdersForSender(minNonce *big.Int) (*types.Transaction, error) {
   540  	return _Contract.Contract.CancelAllOrdersForSender(&_Contract.TransactOpts, minNonce)
   541  }
   542  
   543  // CancelMultipleMakerOrders is a paid mutator transaction binding the contract method 0x9e53a69a.
   544  //
   545  // Solidity: function cancelMultipleMakerOrders(uint256[] orderNonces) returns()
   546  func (_Contract *ContractTransactor) CancelMultipleMakerOrders(opts *bind.TransactOpts, orderNonces []*big.Int) (*types.Transaction, error) {
   547  	return _Contract.contract.Transact(opts, "cancelMultipleMakerOrders", orderNonces)
   548  }
   549  
   550  // CancelMultipleMakerOrders is a paid mutator transaction binding the contract method 0x9e53a69a.
   551  //
   552  // Solidity: function cancelMultipleMakerOrders(uint256[] orderNonces) returns()
   553  func (_Contract *ContractSession) CancelMultipleMakerOrders(orderNonces []*big.Int) (*types.Transaction, error) {
   554  	return _Contract.Contract.CancelMultipleMakerOrders(&_Contract.TransactOpts, orderNonces)
   555  }
   556  
   557  // CancelMultipleMakerOrders is a paid mutator transaction binding the contract method 0x9e53a69a.
   558  //
   559  // Solidity: function cancelMultipleMakerOrders(uint256[] orderNonces) returns()
   560  func (_Contract *ContractTransactorSession) CancelMultipleMakerOrders(orderNonces []*big.Int) (*types.Transaction, error) {
   561  	return _Contract.Contract.CancelMultipleMakerOrders(&_Contract.TransactOpts, orderNonces)
   562  }
   563  
   564  // MatchAskWithTakerBid is a paid mutator transaction binding the contract method 0x38e29209.
   565  //
   566  // Solidity: function matchAskWithTakerBid((bool,address,uint256,uint256,uint256,bytes) takerBid, (bool,address,address,uint256,uint256,uint256,address,address,uint256,uint256,uint256,uint256,bytes,uint8,bytes32,bytes32) makerAsk) returns()
   567  func (_Contract *ContractTransactor) MatchAskWithTakerBid(opts *bind.TransactOpts, takerBid OrderTypesTakerOrder, makerAsk OrderTypesMakerOrder) (*types.Transaction, error) {
   568  	return _Contract.contract.Transact(opts, "matchAskWithTakerBid", takerBid, makerAsk)
   569  }
   570  
   571  // MatchAskWithTakerBid is a paid mutator transaction binding the contract method 0x38e29209.
   572  //
   573  // Solidity: function matchAskWithTakerBid((bool,address,uint256,uint256,uint256,bytes) takerBid, (bool,address,address,uint256,uint256,uint256,address,address,uint256,uint256,uint256,uint256,bytes,uint8,bytes32,bytes32) makerAsk) returns()
   574  func (_Contract *ContractSession) MatchAskWithTakerBid(takerBid OrderTypesTakerOrder, makerAsk OrderTypesMakerOrder) (*types.Transaction, error) {
   575  	return _Contract.Contract.MatchAskWithTakerBid(&_Contract.TransactOpts, takerBid, makerAsk)
   576  }
   577  
   578  // MatchAskWithTakerBid is a paid mutator transaction binding the contract method 0x38e29209.
   579  //
   580  // Solidity: function matchAskWithTakerBid((bool,address,uint256,uint256,uint256,bytes) takerBid, (bool,address,address,uint256,uint256,uint256,address,address,uint256,uint256,uint256,uint256,bytes,uint8,bytes32,bytes32) makerAsk) returns()
   581  func (_Contract *ContractTransactorSession) MatchAskWithTakerBid(takerBid OrderTypesTakerOrder, makerAsk OrderTypesMakerOrder) (*types.Transaction, error) {
   582  	return _Contract.Contract.MatchAskWithTakerBid(&_Contract.TransactOpts, takerBid, makerAsk)
   583  }
   584  
   585  // MatchAskWithTakerBidUsingETHAndWETH is a paid mutator transaction binding the contract method 0xb4e4b296.
   586  //
   587  // Solidity: function matchAskWithTakerBidUsingETHAndWETH((bool,address,uint256,uint256,uint256,bytes) takerBid, (bool,address,address,uint256,uint256,uint256,address,address,uint256,uint256,uint256,uint256,bytes,uint8,bytes32,bytes32) makerAsk) payable returns()
   588  func (_Contract *ContractTransactor) MatchAskWithTakerBidUsingETHAndWETH(opts *bind.TransactOpts, takerBid OrderTypesTakerOrder, makerAsk OrderTypesMakerOrder) (*types.Transaction, error) {
   589  	return _Contract.contract.Transact(opts, "matchAskWithTakerBidUsingETHAndWETH", takerBid, makerAsk)
   590  }
   591  
   592  // MatchAskWithTakerBidUsingETHAndWETH is a paid mutator transaction binding the contract method 0xb4e4b296.
   593  //
   594  // Solidity: function matchAskWithTakerBidUsingETHAndWETH((bool,address,uint256,uint256,uint256,bytes) takerBid, (bool,address,address,uint256,uint256,uint256,address,address,uint256,uint256,uint256,uint256,bytes,uint8,bytes32,bytes32) makerAsk) payable returns()
   595  func (_Contract *ContractSession) MatchAskWithTakerBidUsingETHAndWETH(takerBid OrderTypesTakerOrder, makerAsk OrderTypesMakerOrder) (*types.Transaction, error) {
   596  	return _Contract.Contract.MatchAskWithTakerBidUsingETHAndWETH(&_Contract.TransactOpts, takerBid, makerAsk)
   597  }
   598  
   599  // MatchAskWithTakerBidUsingETHAndWETH is a paid mutator transaction binding the contract method 0xb4e4b296.
   600  //
   601  // Solidity: function matchAskWithTakerBidUsingETHAndWETH((bool,address,uint256,uint256,uint256,bytes) takerBid, (bool,address,address,uint256,uint256,uint256,address,address,uint256,uint256,uint256,uint256,bytes,uint8,bytes32,bytes32) makerAsk) payable returns()
   602  func (_Contract *ContractTransactorSession) MatchAskWithTakerBidUsingETHAndWETH(takerBid OrderTypesTakerOrder, makerAsk OrderTypesMakerOrder) (*types.Transaction, error) {
   603  	return _Contract.Contract.MatchAskWithTakerBidUsingETHAndWETH(&_Contract.TransactOpts, takerBid, makerAsk)
   604  }
   605  
   606  // MatchBidWithTakerAsk is a paid mutator transaction binding the contract method 0x3b6d032e.
   607  //
   608  // Solidity: function matchBidWithTakerAsk((bool,address,uint256,uint256,uint256,bytes) takerAsk, (bool,address,address,uint256,uint256,uint256,address,address,uint256,uint256,uint256,uint256,bytes,uint8,bytes32,bytes32) makerBid) returns()
   609  func (_Contract *ContractTransactor) MatchBidWithTakerAsk(opts *bind.TransactOpts, takerAsk OrderTypesTakerOrder, makerBid OrderTypesMakerOrder) (*types.Transaction, error) {
   610  	return _Contract.contract.Transact(opts, "matchBidWithTakerAsk", takerAsk, makerBid)
   611  }
   612  
   613  // MatchBidWithTakerAsk is a paid mutator transaction binding the contract method 0x3b6d032e.
   614  //
   615  // Solidity: function matchBidWithTakerAsk((bool,address,uint256,uint256,uint256,bytes) takerAsk, (bool,address,address,uint256,uint256,uint256,address,address,uint256,uint256,uint256,uint256,bytes,uint8,bytes32,bytes32) makerBid) returns()
   616  func (_Contract *ContractSession) MatchBidWithTakerAsk(takerAsk OrderTypesTakerOrder, makerBid OrderTypesMakerOrder) (*types.Transaction, error) {
   617  	return _Contract.Contract.MatchBidWithTakerAsk(&_Contract.TransactOpts, takerAsk, makerBid)
   618  }
   619  
   620  // MatchBidWithTakerAsk is a paid mutator transaction binding the contract method 0x3b6d032e.
   621  //
   622  // Solidity: function matchBidWithTakerAsk((bool,address,uint256,uint256,uint256,bytes) takerAsk, (bool,address,address,uint256,uint256,uint256,address,address,uint256,uint256,uint256,uint256,bytes,uint8,bytes32,bytes32) makerBid) returns()
   623  func (_Contract *ContractTransactorSession) MatchBidWithTakerAsk(takerAsk OrderTypesTakerOrder, makerBid OrderTypesMakerOrder) (*types.Transaction, error) {
   624  	return _Contract.Contract.MatchBidWithTakerAsk(&_Contract.TransactOpts, takerAsk, makerBid)
   625  }
   626  
   627  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
   628  //
   629  // Solidity: function renounceOwnership() returns()
   630  func (_Contract *ContractTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
   631  	return _Contract.contract.Transact(opts, "renounceOwnership")
   632  }
   633  
   634  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
   635  //
   636  // Solidity: function renounceOwnership() returns()
   637  func (_Contract *ContractSession) RenounceOwnership() (*types.Transaction, error) {
   638  	return _Contract.Contract.RenounceOwnership(&_Contract.TransactOpts)
   639  }
   640  
   641  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
   642  //
   643  // Solidity: function renounceOwnership() returns()
   644  func (_Contract *ContractTransactorSession) RenounceOwnership() (*types.Transaction, error) {
   645  	return _Contract.Contract.RenounceOwnership(&_Contract.TransactOpts)
   646  }
   647  
   648  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
   649  //
   650  // Solidity: function transferOwnership(address newOwner) returns()
   651  func (_Contract *ContractTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
   652  	return _Contract.contract.Transact(opts, "transferOwnership", newOwner)
   653  }
   654  
   655  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
   656  //
   657  // Solidity: function transferOwnership(address newOwner) returns()
   658  func (_Contract *ContractSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
   659  	return _Contract.Contract.TransferOwnership(&_Contract.TransactOpts, newOwner)
   660  }
   661  
   662  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
   663  //
   664  // Solidity: function transferOwnership(address newOwner) returns()
   665  func (_Contract *ContractTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
   666  	return _Contract.Contract.TransferOwnership(&_Contract.TransactOpts, newOwner)
   667  }
   668  
   669  // UpdateCurrencyManager is a paid mutator transaction binding the contract method 0x5ce052d7.
   670  //
   671  // Solidity: function updateCurrencyManager(address _currencyManager) returns()
   672  func (_Contract *ContractTransactor) UpdateCurrencyManager(opts *bind.TransactOpts, _currencyManager common.Address) (*types.Transaction, error) {
   673  	return _Contract.contract.Transact(opts, "updateCurrencyManager", _currencyManager)
   674  }
   675  
   676  // UpdateCurrencyManager is a paid mutator transaction binding the contract method 0x5ce052d7.
   677  //
   678  // Solidity: function updateCurrencyManager(address _currencyManager) returns()
   679  func (_Contract *ContractSession) UpdateCurrencyManager(_currencyManager common.Address) (*types.Transaction, error) {
   680  	return _Contract.Contract.UpdateCurrencyManager(&_Contract.TransactOpts, _currencyManager)
   681  }
   682  
   683  // UpdateCurrencyManager is a paid mutator transaction binding the contract method 0x5ce052d7.
   684  //
   685  // Solidity: function updateCurrencyManager(address _currencyManager) returns()
   686  func (_Contract *ContractTransactorSession) UpdateCurrencyManager(_currencyManager common.Address) (*types.Transaction, error) {
   687  	return _Contract.Contract.UpdateCurrencyManager(&_Contract.TransactOpts, _currencyManager)
   688  }
   689  
   690  // UpdateExecutionManager is a paid mutator transaction binding the contract method 0xd4ff41dc.
   691  //
   692  // Solidity: function updateExecutionManager(address _executionManager) returns()
   693  func (_Contract *ContractTransactor) UpdateExecutionManager(opts *bind.TransactOpts, _executionManager common.Address) (*types.Transaction, error) {
   694  	return _Contract.contract.Transact(opts, "updateExecutionManager", _executionManager)
   695  }
   696  
   697  // UpdateExecutionManager is a paid mutator transaction binding the contract method 0xd4ff41dc.
   698  //
   699  // Solidity: function updateExecutionManager(address _executionManager) returns()
   700  func (_Contract *ContractSession) UpdateExecutionManager(_executionManager common.Address) (*types.Transaction, error) {
   701  	return _Contract.Contract.UpdateExecutionManager(&_Contract.TransactOpts, _executionManager)
   702  }
   703  
   704  // UpdateExecutionManager is a paid mutator transaction binding the contract method 0xd4ff41dc.
   705  //
   706  // Solidity: function updateExecutionManager(address _executionManager) returns()
   707  func (_Contract *ContractTransactorSession) UpdateExecutionManager(_executionManager common.Address) (*types.Transaction, error) {
   708  	return _Contract.Contract.UpdateExecutionManager(&_Contract.TransactOpts, _executionManager)
   709  }
   710  
   711  // UpdateProtocolFeeRecipient is a paid mutator transaction binding the contract method 0x1df47f80.
   712  //
   713  // Solidity: function updateProtocolFeeRecipient(address _protocolFeeRecipient) returns()
   714  func (_Contract *ContractTransactor) UpdateProtocolFeeRecipient(opts *bind.TransactOpts, _protocolFeeRecipient common.Address) (*types.Transaction, error) {
   715  	return _Contract.contract.Transact(opts, "updateProtocolFeeRecipient", _protocolFeeRecipient)
   716  }
   717  
   718  // UpdateProtocolFeeRecipient is a paid mutator transaction binding the contract method 0x1df47f80.
   719  //
   720  // Solidity: function updateProtocolFeeRecipient(address _protocolFeeRecipient) returns()
   721  func (_Contract *ContractSession) UpdateProtocolFeeRecipient(_protocolFeeRecipient common.Address) (*types.Transaction, error) {
   722  	return _Contract.Contract.UpdateProtocolFeeRecipient(&_Contract.TransactOpts, _protocolFeeRecipient)
   723  }
   724  
   725  // UpdateProtocolFeeRecipient is a paid mutator transaction binding the contract method 0x1df47f80.
   726  //
   727  // Solidity: function updateProtocolFeeRecipient(address _protocolFeeRecipient) returns()
   728  func (_Contract *ContractTransactorSession) UpdateProtocolFeeRecipient(_protocolFeeRecipient common.Address) (*types.Transaction, error) {
   729  	return _Contract.Contract.UpdateProtocolFeeRecipient(&_Contract.TransactOpts, _protocolFeeRecipient)
   730  }
   731  
   732  // UpdateRoyaltyFeeManager is a paid mutator transaction binding the contract method 0xc5498769.
   733  //
   734  // Solidity: function updateRoyaltyFeeManager(address _royaltyFeeManager) returns()
   735  func (_Contract *ContractTransactor) UpdateRoyaltyFeeManager(opts *bind.TransactOpts, _royaltyFeeManager common.Address) (*types.Transaction, error) {
   736  	return _Contract.contract.Transact(opts, "updateRoyaltyFeeManager", _royaltyFeeManager)
   737  }
   738  
   739  // UpdateRoyaltyFeeManager is a paid mutator transaction binding the contract method 0xc5498769.
   740  //
   741  // Solidity: function updateRoyaltyFeeManager(address _royaltyFeeManager) returns()
   742  func (_Contract *ContractSession) UpdateRoyaltyFeeManager(_royaltyFeeManager common.Address) (*types.Transaction, error) {
   743  	return _Contract.Contract.UpdateRoyaltyFeeManager(&_Contract.TransactOpts, _royaltyFeeManager)
   744  }
   745  
   746  // UpdateRoyaltyFeeManager is a paid mutator transaction binding the contract method 0xc5498769.
   747  //
   748  // Solidity: function updateRoyaltyFeeManager(address _royaltyFeeManager) returns()
   749  func (_Contract *ContractTransactorSession) UpdateRoyaltyFeeManager(_royaltyFeeManager common.Address) (*types.Transaction, error) {
   750  	return _Contract.Contract.UpdateRoyaltyFeeManager(&_Contract.TransactOpts, _royaltyFeeManager)
   751  }
   752  
   753  // UpdateTransferSelectorNFT is a paid mutator transaction binding the contract method 0xf75ff53f.
   754  //
   755  // Solidity: function updateTransferSelectorNFT(address _transferSelectorNFT) returns()
   756  func (_Contract *ContractTransactor) UpdateTransferSelectorNFT(opts *bind.TransactOpts, _transferSelectorNFT common.Address) (*types.Transaction, error) {
   757  	return _Contract.contract.Transact(opts, "updateTransferSelectorNFT", _transferSelectorNFT)
   758  }
   759  
   760  // UpdateTransferSelectorNFT is a paid mutator transaction binding the contract method 0xf75ff53f.
   761  //
   762  // Solidity: function updateTransferSelectorNFT(address _transferSelectorNFT) returns()
   763  func (_Contract *ContractSession) UpdateTransferSelectorNFT(_transferSelectorNFT common.Address) (*types.Transaction, error) {
   764  	return _Contract.Contract.UpdateTransferSelectorNFT(&_Contract.TransactOpts, _transferSelectorNFT)
   765  }
   766  
   767  // UpdateTransferSelectorNFT is a paid mutator transaction binding the contract method 0xf75ff53f.
   768  //
   769  // Solidity: function updateTransferSelectorNFT(address _transferSelectorNFT) returns()
   770  func (_Contract *ContractTransactorSession) UpdateTransferSelectorNFT(_transferSelectorNFT common.Address) (*types.Transaction, error) {
   771  	return _Contract.Contract.UpdateTransferSelectorNFT(&_Contract.TransactOpts, _transferSelectorNFT)
   772  }
   773  
   774  // ContractCancelAllOrdersIterator is returned from FilterCancelAllOrders and is used to iterate over the raw logs and unpacked data for CancelAllOrders events raised by the Contract contract.
   775  type ContractCancelAllOrdersIterator struct {
   776  	Event *ContractCancelAllOrders // Event containing the contract specifics and raw log
   777  
   778  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   779  	event    string              // Event name to use for unpacking event data
   780  
   781  	logs chan types.Log        // Log channel receiving the found contract events
   782  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   783  	done bool                  // Whether the subscription completed delivering logs
   784  	fail error                 // Occurred error to stop iteration
   785  }
   786  
   787  // Next advances the iterator to the subsequent event, returning whether there
   788  // are any more events found. In case of a retrieval or parsing error, false is
   789  // returned and Error() can be queried for the exact failure.
   790  func (it *ContractCancelAllOrdersIterator) Next() bool {
   791  	// If the iterator failed, stop iterating
   792  	if it.fail != nil {
   793  		return false
   794  	}
   795  	// If the iterator completed, deliver directly whatever's available
   796  	if it.done {
   797  		select {
   798  		case log := <-it.logs:
   799  			it.Event = new(ContractCancelAllOrders)
   800  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   801  				it.fail = err
   802  				return false
   803  			}
   804  			it.Event.Raw = log
   805  			return true
   806  
   807  		default:
   808  			return false
   809  		}
   810  	}
   811  	// Iterator still in progress, wait for either a data or an error event
   812  	select {
   813  	case log := <-it.logs:
   814  		it.Event = new(ContractCancelAllOrders)
   815  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   816  			it.fail = err
   817  			return false
   818  		}
   819  		it.Event.Raw = log
   820  		return true
   821  
   822  	case err := <-it.sub.Err():
   823  		it.done = true
   824  		it.fail = err
   825  		return it.Next()
   826  	}
   827  }
   828  
   829  // Error returns any retrieval or parsing error occurred during filtering.
   830  func (it *ContractCancelAllOrdersIterator) Error() error {
   831  	return it.fail
   832  }
   833  
   834  // Close terminates the iteration process, releasing any pending underlying
   835  // resources.
   836  func (it *ContractCancelAllOrdersIterator) Close() error {
   837  	it.sub.Unsubscribe()
   838  	return nil
   839  }
   840  
   841  // ContractCancelAllOrders represents a CancelAllOrders event raised by the Contract contract.
   842  type ContractCancelAllOrders struct {
   843  	User        common.Address
   844  	NewMinNonce *big.Int
   845  	Raw         types.Log // Blockchain specific contextual infos
   846  }
   847  
   848  // FilterCancelAllOrders is a free log retrieval operation binding the contract event 0x1e7178d84f0b0825c65795cd62e7972809ad3aac6917843aaec596161b2c0a97.
   849  //
   850  // Solidity: event CancelAllOrders(address indexed user, uint256 newMinNonce)
   851  func (_Contract *ContractFilterer) FilterCancelAllOrders(opts *bind.FilterOpts, user []common.Address) (*ContractCancelAllOrdersIterator, error) {
   852  
   853  	var userRule []interface{}
   854  	for _, userItem := range user {
   855  		userRule = append(userRule, userItem)
   856  	}
   857  
   858  	logs, sub, err := _Contract.contract.FilterLogs(opts, "CancelAllOrders", userRule)
   859  	if err != nil {
   860  		return nil, err
   861  	}
   862  	return &ContractCancelAllOrdersIterator{contract: _Contract.contract, event: "CancelAllOrders", logs: logs, sub: sub}, nil
   863  }
   864  
   865  // WatchCancelAllOrders is a free log subscription operation binding the contract event 0x1e7178d84f0b0825c65795cd62e7972809ad3aac6917843aaec596161b2c0a97.
   866  //
   867  // Solidity: event CancelAllOrders(address indexed user, uint256 newMinNonce)
   868  func (_Contract *ContractFilterer) WatchCancelAllOrders(opts *bind.WatchOpts, sink chan<- *ContractCancelAllOrders, user []common.Address) (event.Subscription, error) {
   869  
   870  	var userRule []interface{}
   871  	for _, userItem := range user {
   872  		userRule = append(userRule, userItem)
   873  	}
   874  
   875  	logs, sub, err := _Contract.contract.WatchLogs(opts, "CancelAllOrders", userRule)
   876  	if err != nil {
   877  		return nil, err
   878  	}
   879  	return event.NewSubscription(func(quit <-chan struct{}) error {
   880  		defer sub.Unsubscribe()
   881  		for {
   882  			select {
   883  			case log := <-logs:
   884  				// New log arrived, parse the event and forward to the user
   885  				event := new(ContractCancelAllOrders)
   886  				if err := _Contract.contract.UnpackLog(event, "CancelAllOrders", log); err != nil {
   887  					return err
   888  				}
   889  				event.Raw = log
   890  
   891  				select {
   892  				case sink <- event:
   893  				case err := <-sub.Err():
   894  					return err
   895  				case <-quit:
   896  					return nil
   897  				}
   898  			case err := <-sub.Err():
   899  				return err
   900  			case <-quit:
   901  				return nil
   902  			}
   903  		}
   904  	}), nil
   905  }
   906  
   907  // ParseCancelAllOrders is a log parse operation binding the contract event 0x1e7178d84f0b0825c65795cd62e7972809ad3aac6917843aaec596161b2c0a97.
   908  //
   909  // Solidity: event CancelAllOrders(address indexed user, uint256 newMinNonce)
   910  func (_Contract *ContractFilterer) ParseCancelAllOrders(log types.Log) (*ContractCancelAllOrders, error) {
   911  	event := new(ContractCancelAllOrders)
   912  	if err := _Contract.contract.UnpackLog(event, "CancelAllOrders", log); err != nil {
   913  		return nil, err
   914  	}
   915  	event.Raw = log
   916  	return event, nil
   917  }
   918  
   919  // ContractCancelMultipleOrdersIterator is returned from FilterCancelMultipleOrders and is used to iterate over the raw logs and unpacked data for CancelMultipleOrders events raised by the Contract contract.
   920  type ContractCancelMultipleOrdersIterator struct {
   921  	Event *ContractCancelMultipleOrders // Event containing the contract specifics and raw log
   922  
   923  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   924  	event    string              // Event name to use for unpacking event data
   925  
   926  	logs chan types.Log        // Log channel receiving the found contract events
   927  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   928  	done bool                  // Whether the subscription completed delivering logs
   929  	fail error                 // Occurred error to stop iteration
   930  }
   931  
   932  // Next advances the iterator to the subsequent event, returning whether there
   933  // are any more events found. In case of a retrieval or parsing error, false is
   934  // returned and Error() can be queried for the exact failure.
   935  func (it *ContractCancelMultipleOrdersIterator) Next() bool {
   936  	// If the iterator failed, stop iterating
   937  	if it.fail != nil {
   938  		return false
   939  	}
   940  	// If the iterator completed, deliver directly whatever's available
   941  	if it.done {
   942  		select {
   943  		case log := <-it.logs:
   944  			it.Event = new(ContractCancelMultipleOrders)
   945  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   946  				it.fail = err
   947  				return false
   948  			}
   949  			it.Event.Raw = log
   950  			return true
   951  
   952  		default:
   953  			return false
   954  		}
   955  	}
   956  	// Iterator still in progress, wait for either a data or an error event
   957  	select {
   958  	case log := <-it.logs:
   959  		it.Event = new(ContractCancelMultipleOrders)
   960  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   961  			it.fail = err
   962  			return false
   963  		}
   964  		it.Event.Raw = log
   965  		return true
   966  
   967  	case err := <-it.sub.Err():
   968  		it.done = true
   969  		it.fail = err
   970  		return it.Next()
   971  	}
   972  }
   973  
   974  // Error returns any retrieval or parsing error occurred during filtering.
   975  func (it *ContractCancelMultipleOrdersIterator) Error() error {
   976  	return it.fail
   977  }
   978  
   979  // Close terminates the iteration process, releasing any pending underlying
   980  // resources.
   981  func (it *ContractCancelMultipleOrdersIterator) Close() error {
   982  	it.sub.Unsubscribe()
   983  	return nil
   984  }
   985  
   986  // ContractCancelMultipleOrders represents a CancelMultipleOrders event raised by the Contract contract.
   987  type ContractCancelMultipleOrders struct {
   988  	User        common.Address
   989  	OrderNonces []*big.Int
   990  	Raw         types.Log // Blockchain specific contextual infos
   991  }
   992  
   993  // FilterCancelMultipleOrders is a free log retrieval operation binding the contract event 0xfa0ae5d80fe3763c880a3839fab0294171a6f730d1f82c4cd5392c6f67b41732.
   994  //
   995  // Solidity: event CancelMultipleOrders(address indexed user, uint256[] orderNonces)
   996  func (_Contract *ContractFilterer) FilterCancelMultipleOrders(opts *bind.FilterOpts, user []common.Address) (*ContractCancelMultipleOrdersIterator, error) {
   997  
   998  	var userRule []interface{}
   999  	for _, userItem := range user {
  1000  		userRule = append(userRule, userItem)
  1001  	}
  1002  
  1003  	logs, sub, err := _Contract.contract.FilterLogs(opts, "CancelMultipleOrders", userRule)
  1004  	if err != nil {
  1005  		return nil, err
  1006  	}
  1007  	return &ContractCancelMultipleOrdersIterator{contract: _Contract.contract, event: "CancelMultipleOrders", logs: logs, sub: sub}, nil
  1008  }
  1009  
  1010  // WatchCancelMultipleOrders is a free log subscription operation binding the contract event 0xfa0ae5d80fe3763c880a3839fab0294171a6f730d1f82c4cd5392c6f67b41732.
  1011  //
  1012  // Solidity: event CancelMultipleOrders(address indexed user, uint256[] orderNonces)
  1013  func (_Contract *ContractFilterer) WatchCancelMultipleOrders(opts *bind.WatchOpts, sink chan<- *ContractCancelMultipleOrders, user []common.Address) (event.Subscription, error) {
  1014  
  1015  	var userRule []interface{}
  1016  	for _, userItem := range user {
  1017  		userRule = append(userRule, userItem)
  1018  	}
  1019  
  1020  	logs, sub, err := _Contract.contract.WatchLogs(opts, "CancelMultipleOrders", userRule)
  1021  	if err != nil {
  1022  		return nil, err
  1023  	}
  1024  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1025  		defer sub.Unsubscribe()
  1026  		for {
  1027  			select {
  1028  			case log := <-logs:
  1029  				// New log arrived, parse the event and forward to the user
  1030  				event := new(ContractCancelMultipleOrders)
  1031  				if err := _Contract.contract.UnpackLog(event, "CancelMultipleOrders", log); err != nil {
  1032  					return err
  1033  				}
  1034  				event.Raw = log
  1035  
  1036  				select {
  1037  				case sink <- event:
  1038  				case err := <-sub.Err():
  1039  					return err
  1040  				case <-quit:
  1041  					return nil
  1042  				}
  1043  			case err := <-sub.Err():
  1044  				return err
  1045  			case <-quit:
  1046  				return nil
  1047  			}
  1048  		}
  1049  	}), nil
  1050  }
  1051  
  1052  // ParseCancelMultipleOrders is a log parse operation binding the contract event 0xfa0ae5d80fe3763c880a3839fab0294171a6f730d1f82c4cd5392c6f67b41732.
  1053  //
  1054  // Solidity: event CancelMultipleOrders(address indexed user, uint256[] orderNonces)
  1055  func (_Contract *ContractFilterer) ParseCancelMultipleOrders(log types.Log) (*ContractCancelMultipleOrders, error) {
  1056  	event := new(ContractCancelMultipleOrders)
  1057  	if err := _Contract.contract.UnpackLog(event, "CancelMultipleOrders", log); err != nil {
  1058  		return nil, err
  1059  	}
  1060  	event.Raw = log
  1061  	return event, nil
  1062  }
  1063  
  1064  // ContractNewCurrencyManagerIterator is returned from FilterNewCurrencyManager and is used to iterate over the raw logs and unpacked data for NewCurrencyManager events raised by the Contract contract.
  1065  type ContractNewCurrencyManagerIterator struct {
  1066  	Event *ContractNewCurrencyManager // Event containing the contract specifics and raw log
  1067  
  1068  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1069  	event    string              // Event name to use for unpacking event data
  1070  
  1071  	logs chan types.Log        // Log channel receiving the found contract events
  1072  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1073  	done bool                  // Whether the subscription completed delivering logs
  1074  	fail error                 // Occurred error to stop iteration
  1075  }
  1076  
  1077  // Next advances the iterator to the subsequent event, returning whether there
  1078  // are any more events found. In case of a retrieval or parsing error, false is
  1079  // returned and Error() can be queried for the exact failure.
  1080  func (it *ContractNewCurrencyManagerIterator) Next() bool {
  1081  	// If the iterator failed, stop iterating
  1082  	if it.fail != nil {
  1083  		return false
  1084  	}
  1085  	// If the iterator completed, deliver directly whatever's available
  1086  	if it.done {
  1087  		select {
  1088  		case log := <-it.logs:
  1089  			it.Event = new(ContractNewCurrencyManager)
  1090  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1091  				it.fail = err
  1092  				return false
  1093  			}
  1094  			it.Event.Raw = log
  1095  			return true
  1096  
  1097  		default:
  1098  			return false
  1099  		}
  1100  	}
  1101  	// Iterator still in progress, wait for either a data or an error event
  1102  	select {
  1103  	case log := <-it.logs:
  1104  		it.Event = new(ContractNewCurrencyManager)
  1105  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1106  			it.fail = err
  1107  			return false
  1108  		}
  1109  		it.Event.Raw = log
  1110  		return true
  1111  
  1112  	case err := <-it.sub.Err():
  1113  		it.done = true
  1114  		it.fail = err
  1115  		return it.Next()
  1116  	}
  1117  }
  1118  
  1119  // Error returns any retrieval or parsing error occurred during filtering.
  1120  func (it *ContractNewCurrencyManagerIterator) Error() error {
  1121  	return it.fail
  1122  }
  1123  
  1124  // Close terminates the iteration process, releasing any pending underlying
  1125  // resources.
  1126  func (it *ContractNewCurrencyManagerIterator) Close() error {
  1127  	it.sub.Unsubscribe()
  1128  	return nil
  1129  }
  1130  
  1131  // ContractNewCurrencyManager represents a NewCurrencyManager event raised by the Contract contract.
  1132  type ContractNewCurrencyManager struct {
  1133  	CurrencyManager common.Address
  1134  	Raw             types.Log // Blockchain specific contextual infos
  1135  }
  1136  
  1137  // FilterNewCurrencyManager is a free log retrieval operation binding the contract event 0xb4f5db40df3aced29e88a4babbc3b46e305e07d34098525d18b1497056e63838.
  1138  //
  1139  // Solidity: event NewCurrencyManager(address indexed currencyManager)
  1140  func (_Contract *ContractFilterer) FilterNewCurrencyManager(opts *bind.FilterOpts, currencyManager []common.Address) (*ContractNewCurrencyManagerIterator, error) {
  1141  
  1142  	var currencyManagerRule []interface{}
  1143  	for _, currencyManagerItem := range currencyManager {
  1144  		currencyManagerRule = append(currencyManagerRule, currencyManagerItem)
  1145  	}
  1146  
  1147  	logs, sub, err := _Contract.contract.FilterLogs(opts, "NewCurrencyManager", currencyManagerRule)
  1148  	if err != nil {
  1149  		return nil, err
  1150  	}
  1151  	return &ContractNewCurrencyManagerIterator{contract: _Contract.contract, event: "NewCurrencyManager", logs: logs, sub: sub}, nil
  1152  }
  1153  
  1154  // WatchNewCurrencyManager is a free log subscription operation binding the contract event 0xb4f5db40df3aced29e88a4babbc3b46e305e07d34098525d18b1497056e63838.
  1155  //
  1156  // Solidity: event NewCurrencyManager(address indexed currencyManager)
  1157  func (_Contract *ContractFilterer) WatchNewCurrencyManager(opts *bind.WatchOpts, sink chan<- *ContractNewCurrencyManager, currencyManager []common.Address) (event.Subscription, error) {
  1158  
  1159  	var currencyManagerRule []interface{}
  1160  	for _, currencyManagerItem := range currencyManager {
  1161  		currencyManagerRule = append(currencyManagerRule, currencyManagerItem)
  1162  	}
  1163  
  1164  	logs, sub, err := _Contract.contract.WatchLogs(opts, "NewCurrencyManager", currencyManagerRule)
  1165  	if err != nil {
  1166  		return nil, err
  1167  	}
  1168  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1169  		defer sub.Unsubscribe()
  1170  		for {
  1171  			select {
  1172  			case log := <-logs:
  1173  				// New log arrived, parse the event and forward to the user
  1174  				event := new(ContractNewCurrencyManager)
  1175  				if err := _Contract.contract.UnpackLog(event, "NewCurrencyManager", log); err != nil {
  1176  					return err
  1177  				}
  1178  				event.Raw = log
  1179  
  1180  				select {
  1181  				case sink <- event:
  1182  				case err := <-sub.Err():
  1183  					return err
  1184  				case <-quit:
  1185  					return nil
  1186  				}
  1187  			case err := <-sub.Err():
  1188  				return err
  1189  			case <-quit:
  1190  				return nil
  1191  			}
  1192  		}
  1193  	}), nil
  1194  }
  1195  
  1196  // ParseNewCurrencyManager is a log parse operation binding the contract event 0xb4f5db40df3aced29e88a4babbc3b46e305e07d34098525d18b1497056e63838.
  1197  //
  1198  // Solidity: event NewCurrencyManager(address indexed currencyManager)
  1199  func (_Contract *ContractFilterer) ParseNewCurrencyManager(log types.Log) (*ContractNewCurrencyManager, error) {
  1200  	event := new(ContractNewCurrencyManager)
  1201  	if err := _Contract.contract.UnpackLog(event, "NewCurrencyManager", log); err != nil {
  1202  		return nil, err
  1203  	}
  1204  	event.Raw = log
  1205  	return event, nil
  1206  }
  1207  
  1208  // ContractNewExecutionManagerIterator is returned from FilterNewExecutionManager and is used to iterate over the raw logs and unpacked data for NewExecutionManager events raised by the Contract contract.
  1209  type ContractNewExecutionManagerIterator struct {
  1210  	Event *ContractNewExecutionManager // Event containing the contract specifics and raw log
  1211  
  1212  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1213  	event    string              // Event name to use for unpacking event data
  1214  
  1215  	logs chan types.Log        // Log channel receiving the found contract events
  1216  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1217  	done bool                  // Whether the subscription completed delivering logs
  1218  	fail error                 // Occurred error to stop iteration
  1219  }
  1220  
  1221  // Next advances the iterator to the subsequent event, returning whether there
  1222  // are any more events found. In case of a retrieval or parsing error, false is
  1223  // returned and Error() can be queried for the exact failure.
  1224  func (it *ContractNewExecutionManagerIterator) Next() bool {
  1225  	// If the iterator failed, stop iterating
  1226  	if it.fail != nil {
  1227  		return false
  1228  	}
  1229  	// If the iterator completed, deliver directly whatever's available
  1230  	if it.done {
  1231  		select {
  1232  		case log := <-it.logs:
  1233  			it.Event = new(ContractNewExecutionManager)
  1234  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1235  				it.fail = err
  1236  				return false
  1237  			}
  1238  			it.Event.Raw = log
  1239  			return true
  1240  
  1241  		default:
  1242  			return false
  1243  		}
  1244  	}
  1245  	// Iterator still in progress, wait for either a data or an error event
  1246  	select {
  1247  	case log := <-it.logs:
  1248  		it.Event = new(ContractNewExecutionManager)
  1249  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1250  			it.fail = err
  1251  			return false
  1252  		}
  1253  		it.Event.Raw = log
  1254  		return true
  1255  
  1256  	case err := <-it.sub.Err():
  1257  		it.done = true
  1258  		it.fail = err
  1259  		return it.Next()
  1260  	}
  1261  }
  1262  
  1263  // Error returns any retrieval or parsing error occurred during filtering.
  1264  func (it *ContractNewExecutionManagerIterator) Error() error {
  1265  	return it.fail
  1266  }
  1267  
  1268  // Close terminates the iteration process, releasing any pending underlying
  1269  // resources.
  1270  func (it *ContractNewExecutionManagerIterator) Close() error {
  1271  	it.sub.Unsubscribe()
  1272  	return nil
  1273  }
  1274  
  1275  // ContractNewExecutionManager represents a NewExecutionManager event raised by the Contract contract.
  1276  type ContractNewExecutionManager struct {
  1277  	ExecutionManager common.Address
  1278  	Raw              types.Log // Blockchain specific contextual infos
  1279  }
  1280  
  1281  // FilterNewExecutionManager is a free log retrieval operation binding the contract event 0x36e2a376eabc3bc60cb88f29c288f53e36874a95a7f407330ab4f166b0905698.
  1282  //
  1283  // Solidity: event NewExecutionManager(address indexed executionManager)
  1284  func (_Contract *ContractFilterer) FilterNewExecutionManager(opts *bind.FilterOpts, executionManager []common.Address) (*ContractNewExecutionManagerIterator, error) {
  1285  
  1286  	var executionManagerRule []interface{}
  1287  	for _, executionManagerItem := range executionManager {
  1288  		executionManagerRule = append(executionManagerRule, executionManagerItem)
  1289  	}
  1290  
  1291  	logs, sub, err := _Contract.contract.FilterLogs(opts, "NewExecutionManager", executionManagerRule)
  1292  	if err != nil {
  1293  		return nil, err
  1294  	}
  1295  	return &ContractNewExecutionManagerIterator{contract: _Contract.contract, event: "NewExecutionManager", logs: logs, sub: sub}, nil
  1296  }
  1297  
  1298  // WatchNewExecutionManager is a free log subscription operation binding the contract event 0x36e2a376eabc3bc60cb88f29c288f53e36874a95a7f407330ab4f166b0905698.
  1299  //
  1300  // Solidity: event NewExecutionManager(address indexed executionManager)
  1301  func (_Contract *ContractFilterer) WatchNewExecutionManager(opts *bind.WatchOpts, sink chan<- *ContractNewExecutionManager, executionManager []common.Address) (event.Subscription, error) {
  1302  
  1303  	var executionManagerRule []interface{}
  1304  	for _, executionManagerItem := range executionManager {
  1305  		executionManagerRule = append(executionManagerRule, executionManagerItem)
  1306  	}
  1307  
  1308  	logs, sub, err := _Contract.contract.WatchLogs(opts, "NewExecutionManager", executionManagerRule)
  1309  	if err != nil {
  1310  		return nil, err
  1311  	}
  1312  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1313  		defer sub.Unsubscribe()
  1314  		for {
  1315  			select {
  1316  			case log := <-logs:
  1317  				// New log arrived, parse the event and forward to the user
  1318  				event := new(ContractNewExecutionManager)
  1319  				if err := _Contract.contract.UnpackLog(event, "NewExecutionManager", log); err != nil {
  1320  					return err
  1321  				}
  1322  				event.Raw = log
  1323  
  1324  				select {
  1325  				case sink <- event:
  1326  				case err := <-sub.Err():
  1327  					return err
  1328  				case <-quit:
  1329  					return nil
  1330  				}
  1331  			case err := <-sub.Err():
  1332  				return err
  1333  			case <-quit:
  1334  				return nil
  1335  			}
  1336  		}
  1337  	}), nil
  1338  }
  1339  
  1340  // ParseNewExecutionManager is a log parse operation binding the contract event 0x36e2a376eabc3bc60cb88f29c288f53e36874a95a7f407330ab4f166b0905698.
  1341  //
  1342  // Solidity: event NewExecutionManager(address indexed executionManager)
  1343  func (_Contract *ContractFilterer) ParseNewExecutionManager(log types.Log) (*ContractNewExecutionManager, error) {
  1344  	event := new(ContractNewExecutionManager)
  1345  	if err := _Contract.contract.UnpackLog(event, "NewExecutionManager", log); err != nil {
  1346  		return nil, err
  1347  	}
  1348  	event.Raw = log
  1349  	return event, nil
  1350  }
  1351  
  1352  // ContractNewProtocolFeeRecipientIterator is returned from FilterNewProtocolFeeRecipient and is used to iterate over the raw logs and unpacked data for NewProtocolFeeRecipient events raised by the Contract contract.
  1353  type ContractNewProtocolFeeRecipientIterator struct {
  1354  	Event *ContractNewProtocolFeeRecipient // Event containing the contract specifics and raw log
  1355  
  1356  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1357  	event    string              // Event name to use for unpacking event data
  1358  
  1359  	logs chan types.Log        // Log channel receiving the found contract events
  1360  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1361  	done bool                  // Whether the subscription completed delivering logs
  1362  	fail error                 // Occurred error to stop iteration
  1363  }
  1364  
  1365  // Next advances the iterator to the subsequent event, returning whether there
  1366  // are any more events found. In case of a retrieval or parsing error, false is
  1367  // returned and Error() can be queried for the exact failure.
  1368  func (it *ContractNewProtocolFeeRecipientIterator) Next() bool {
  1369  	// If the iterator failed, stop iterating
  1370  	if it.fail != nil {
  1371  		return false
  1372  	}
  1373  	// If the iterator completed, deliver directly whatever's available
  1374  	if it.done {
  1375  		select {
  1376  		case log := <-it.logs:
  1377  			it.Event = new(ContractNewProtocolFeeRecipient)
  1378  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1379  				it.fail = err
  1380  				return false
  1381  			}
  1382  			it.Event.Raw = log
  1383  			return true
  1384  
  1385  		default:
  1386  			return false
  1387  		}
  1388  	}
  1389  	// Iterator still in progress, wait for either a data or an error event
  1390  	select {
  1391  	case log := <-it.logs:
  1392  		it.Event = new(ContractNewProtocolFeeRecipient)
  1393  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1394  			it.fail = err
  1395  			return false
  1396  		}
  1397  		it.Event.Raw = log
  1398  		return true
  1399  
  1400  	case err := <-it.sub.Err():
  1401  		it.done = true
  1402  		it.fail = err
  1403  		return it.Next()
  1404  	}
  1405  }
  1406  
  1407  // Error returns any retrieval or parsing error occurred during filtering.
  1408  func (it *ContractNewProtocolFeeRecipientIterator) Error() error {
  1409  	return it.fail
  1410  }
  1411  
  1412  // Close terminates the iteration process, releasing any pending underlying
  1413  // resources.
  1414  func (it *ContractNewProtocolFeeRecipientIterator) Close() error {
  1415  	it.sub.Unsubscribe()
  1416  	return nil
  1417  }
  1418  
  1419  // ContractNewProtocolFeeRecipient represents a NewProtocolFeeRecipient event raised by the Contract contract.
  1420  type ContractNewProtocolFeeRecipient struct {
  1421  	ProtocolFeeRecipient common.Address
  1422  	Raw                  types.Log // Blockchain specific contextual infos
  1423  }
  1424  
  1425  // FilterNewProtocolFeeRecipient is a free log retrieval operation binding the contract event 0x8cffb07faa2874440346743bdc0a86b06c3335cc47dc49b327d10e77b73ceb10.
  1426  //
  1427  // Solidity: event NewProtocolFeeRecipient(address indexed protocolFeeRecipient)
  1428  func (_Contract *ContractFilterer) FilterNewProtocolFeeRecipient(opts *bind.FilterOpts, protocolFeeRecipient []common.Address) (*ContractNewProtocolFeeRecipientIterator, error) {
  1429  
  1430  	var protocolFeeRecipientRule []interface{}
  1431  	for _, protocolFeeRecipientItem := range protocolFeeRecipient {
  1432  		protocolFeeRecipientRule = append(protocolFeeRecipientRule, protocolFeeRecipientItem)
  1433  	}
  1434  
  1435  	logs, sub, err := _Contract.contract.FilterLogs(opts, "NewProtocolFeeRecipient", protocolFeeRecipientRule)
  1436  	if err != nil {
  1437  		return nil, err
  1438  	}
  1439  	return &ContractNewProtocolFeeRecipientIterator{contract: _Contract.contract, event: "NewProtocolFeeRecipient", logs: logs, sub: sub}, nil
  1440  }
  1441  
  1442  // WatchNewProtocolFeeRecipient is a free log subscription operation binding the contract event 0x8cffb07faa2874440346743bdc0a86b06c3335cc47dc49b327d10e77b73ceb10.
  1443  //
  1444  // Solidity: event NewProtocolFeeRecipient(address indexed protocolFeeRecipient)
  1445  func (_Contract *ContractFilterer) WatchNewProtocolFeeRecipient(opts *bind.WatchOpts, sink chan<- *ContractNewProtocolFeeRecipient, protocolFeeRecipient []common.Address) (event.Subscription, error) {
  1446  
  1447  	var protocolFeeRecipientRule []interface{}
  1448  	for _, protocolFeeRecipientItem := range protocolFeeRecipient {
  1449  		protocolFeeRecipientRule = append(protocolFeeRecipientRule, protocolFeeRecipientItem)
  1450  	}
  1451  
  1452  	logs, sub, err := _Contract.contract.WatchLogs(opts, "NewProtocolFeeRecipient", protocolFeeRecipientRule)
  1453  	if err != nil {
  1454  		return nil, err
  1455  	}
  1456  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1457  		defer sub.Unsubscribe()
  1458  		for {
  1459  			select {
  1460  			case log := <-logs:
  1461  				// New log arrived, parse the event and forward to the user
  1462  				event := new(ContractNewProtocolFeeRecipient)
  1463  				if err := _Contract.contract.UnpackLog(event, "NewProtocolFeeRecipient", log); err != nil {
  1464  					return err
  1465  				}
  1466  				event.Raw = log
  1467  
  1468  				select {
  1469  				case sink <- event:
  1470  				case err := <-sub.Err():
  1471  					return err
  1472  				case <-quit:
  1473  					return nil
  1474  				}
  1475  			case err := <-sub.Err():
  1476  				return err
  1477  			case <-quit:
  1478  				return nil
  1479  			}
  1480  		}
  1481  	}), nil
  1482  }
  1483  
  1484  // ParseNewProtocolFeeRecipient is a log parse operation binding the contract event 0x8cffb07faa2874440346743bdc0a86b06c3335cc47dc49b327d10e77b73ceb10.
  1485  //
  1486  // Solidity: event NewProtocolFeeRecipient(address indexed protocolFeeRecipient)
  1487  func (_Contract *ContractFilterer) ParseNewProtocolFeeRecipient(log types.Log) (*ContractNewProtocolFeeRecipient, error) {
  1488  	event := new(ContractNewProtocolFeeRecipient)
  1489  	if err := _Contract.contract.UnpackLog(event, "NewProtocolFeeRecipient", log); err != nil {
  1490  		return nil, err
  1491  	}
  1492  	event.Raw = log
  1493  	return event, nil
  1494  }
  1495  
  1496  // ContractNewRoyaltyFeeManagerIterator is returned from FilterNewRoyaltyFeeManager and is used to iterate over the raw logs and unpacked data for NewRoyaltyFeeManager events raised by the Contract contract.
  1497  type ContractNewRoyaltyFeeManagerIterator struct {
  1498  	Event *ContractNewRoyaltyFeeManager // Event containing the contract specifics and raw log
  1499  
  1500  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1501  	event    string              // Event name to use for unpacking event data
  1502  
  1503  	logs chan types.Log        // Log channel receiving the found contract events
  1504  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1505  	done bool                  // Whether the subscription completed delivering logs
  1506  	fail error                 // Occurred error to stop iteration
  1507  }
  1508  
  1509  // Next advances the iterator to the subsequent event, returning whether there
  1510  // are any more events found. In case of a retrieval or parsing error, false is
  1511  // returned and Error() can be queried for the exact failure.
  1512  func (it *ContractNewRoyaltyFeeManagerIterator) Next() bool {
  1513  	// If the iterator failed, stop iterating
  1514  	if it.fail != nil {
  1515  		return false
  1516  	}
  1517  	// If the iterator completed, deliver directly whatever's available
  1518  	if it.done {
  1519  		select {
  1520  		case log := <-it.logs:
  1521  			it.Event = new(ContractNewRoyaltyFeeManager)
  1522  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1523  				it.fail = err
  1524  				return false
  1525  			}
  1526  			it.Event.Raw = log
  1527  			return true
  1528  
  1529  		default:
  1530  			return false
  1531  		}
  1532  	}
  1533  	// Iterator still in progress, wait for either a data or an error event
  1534  	select {
  1535  	case log := <-it.logs:
  1536  		it.Event = new(ContractNewRoyaltyFeeManager)
  1537  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1538  			it.fail = err
  1539  			return false
  1540  		}
  1541  		it.Event.Raw = log
  1542  		return true
  1543  
  1544  	case err := <-it.sub.Err():
  1545  		it.done = true
  1546  		it.fail = err
  1547  		return it.Next()
  1548  	}
  1549  }
  1550  
  1551  // Error returns any retrieval or parsing error occurred during filtering.
  1552  func (it *ContractNewRoyaltyFeeManagerIterator) Error() error {
  1553  	return it.fail
  1554  }
  1555  
  1556  // Close terminates the iteration process, releasing any pending underlying
  1557  // resources.
  1558  func (it *ContractNewRoyaltyFeeManagerIterator) Close() error {
  1559  	it.sub.Unsubscribe()
  1560  	return nil
  1561  }
  1562  
  1563  // ContractNewRoyaltyFeeManager represents a NewRoyaltyFeeManager event raised by the Contract contract.
  1564  type ContractNewRoyaltyFeeManager struct {
  1565  	RoyaltyFeeManager common.Address
  1566  	Raw               types.Log // Blockchain specific contextual infos
  1567  }
  1568  
  1569  // FilterNewRoyaltyFeeManager is a free log retrieval operation binding the contract event 0x80e3874461ebbd918ac3e81da0a92e5e51387d70f337237c9123e48d20e5a508.
  1570  //
  1571  // Solidity: event NewRoyaltyFeeManager(address indexed royaltyFeeManager)
  1572  func (_Contract *ContractFilterer) FilterNewRoyaltyFeeManager(opts *bind.FilterOpts, royaltyFeeManager []common.Address) (*ContractNewRoyaltyFeeManagerIterator, error) {
  1573  
  1574  	var royaltyFeeManagerRule []interface{}
  1575  	for _, royaltyFeeManagerItem := range royaltyFeeManager {
  1576  		royaltyFeeManagerRule = append(royaltyFeeManagerRule, royaltyFeeManagerItem)
  1577  	}
  1578  
  1579  	logs, sub, err := _Contract.contract.FilterLogs(opts, "NewRoyaltyFeeManager", royaltyFeeManagerRule)
  1580  	if err != nil {
  1581  		return nil, err
  1582  	}
  1583  	return &ContractNewRoyaltyFeeManagerIterator{contract: _Contract.contract, event: "NewRoyaltyFeeManager", logs: logs, sub: sub}, nil
  1584  }
  1585  
  1586  // WatchNewRoyaltyFeeManager is a free log subscription operation binding the contract event 0x80e3874461ebbd918ac3e81da0a92e5e51387d70f337237c9123e48d20e5a508.
  1587  //
  1588  // Solidity: event NewRoyaltyFeeManager(address indexed royaltyFeeManager)
  1589  func (_Contract *ContractFilterer) WatchNewRoyaltyFeeManager(opts *bind.WatchOpts, sink chan<- *ContractNewRoyaltyFeeManager, royaltyFeeManager []common.Address) (event.Subscription, error) {
  1590  
  1591  	var royaltyFeeManagerRule []interface{}
  1592  	for _, royaltyFeeManagerItem := range royaltyFeeManager {
  1593  		royaltyFeeManagerRule = append(royaltyFeeManagerRule, royaltyFeeManagerItem)
  1594  	}
  1595  
  1596  	logs, sub, err := _Contract.contract.WatchLogs(opts, "NewRoyaltyFeeManager", royaltyFeeManagerRule)
  1597  	if err != nil {
  1598  		return nil, err
  1599  	}
  1600  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1601  		defer sub.Unsubscribe()
  1602  		for {
  1603  			select {
  1604  			case log := <-logs:
  1605  				// New log arrived, parse the event and forward to the user
  1606  				event := new(ContractNewRoyaltyFeeManager)
  1607  				if err := _Contract.contract.UnpackLog(event, "NewRoyaltyFeeManager", log); err != nil {
  1608  					return err
  1609  				}
  1610  				event.Raw = log
  1611  
  1612  				select {
  1613  				case sink <- event:
  1614  				case err := <-sub.Err():
  1615  					return err
  1616  				case <-quit:
  1617  					return nil
  1618  				}
  1619  			case err := <-sub.Err():
  1620  				return err
  1621  			case <-quit:
  1622  				return nil
  1623  			}
  1624  		}
  1625  	}), nil
  1626  }
  1627  
  1628  // ParseNewRoyaltyFeeManager is a log parse operation binding the contract event 0x80e3874461ebbd918ac3e81da0a92e5e51387d70f337237c9123e48d20e5a508.
  1629  //
  1630  // Solidity: event NewRoyaltyFeeManager(address indexed royaltyFeeManager)
  1631  func (_Contract *ContractFilterer) ParseNewRoyaltyFeeManager(log types.Log) (*ContractNewRoyaltyFeeManager, error) {
  1632  	event := new(ContractNewRoyaltyFeeManager)
  1633  	if err := _Contract.contract.UnpackLog(event, "NewRoyaltyFeeManager", log); err != nil {
  1634  		return nil, err
  1635  	}
  1636  	event.Raw = log
  1637  	return event, nil
  1638  }
  1639  
  1640  // ContractNewTransferSelectorNFTIterator is returned from FilterNewTransferSelectorNFT and is used to iterate over the raw logs and unpacked data for NewTransferSelectorNFT events raised by the Contract contract.
  1641  type ContractNewTransferSelectorNFTIterator struct {
  1642  	Event *ContractNewTransferSelectorNFT // Event containing the contract specifics and raw log
  1643  
  1644  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1645  	event    string              // Event name to use for unpacking event data
  1646  
  1647  	logs chan types.Log        // Log channel receiving the found contract events
  1648  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1649  	done bool                  // Whether the subscription completed delivering logs
  1650  	fail error                 // Occurred error to stop iteration
  1651  }
  1652  
  1653  // Next advances the iterator to the subsequent event, returning whether there
  1654  // are any more events found. In case of a retrieval or parsing error, false is
  1655  // returned and Error() can be queried for the exact failure.
  1656  func (it *ContractNewTransferSelectorNFTIterator) Next() bool {
  1657  	// If the iterator failed, stop iterating
  1658  	if it.fail != nil {
  1659  		return false
  1660  	}
  1661  	// If the iterator completed, deliver directly whatever's available
  1662  	if it.done {
  1663  		select {
  1664  		case log := <-it.logs:
  1665  			it.Event = new(ContractNewTransferSelectorNFT)
  1666  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1667  				it.fail = err
  1668  				return false
  1669  			}
  1670  			it.Event.Raw = log
  1671  			return true
  1672  
  1673  		default:
  1674  			return false
  1675  		}
  1676  	}
  1677  	// Iterator still in progress, wait for either a data or an error event
  1678  	select {
  1679  	case log := <-it.logs:
  1680  		it.Event = new(ContractNewTransferSelectorNFT)
  1681  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1682  			it.fail = err
  1683  			return false
  1684  		}
  1685  		it.Event.Raw = log
  1686  		return true
  1687  
  1688  	case err := <-it.sub.Err():
  1689  		it.done = true
  1690  		it.fail = err
  1691  		return it.Next()
  1692  	}
  1693  }
  1694  
  1695  // Error returns any retrieval or parsing error occurred during filtering.
  1696  func (it *ContractNewTransferSelectorNFTIterator) Error() error {
  1697  	return it.fail
  1698  }
  1699  
  1700  // Close terminates the iteration process, releasing any pending underlying
  1701  // resources.
  1702  func (it *ContractNewTransferSelectorNFTIterator) Close() error {
  1703  	it.sub.Unsubscribe()
  1704  	return nil
  1705  }
  1706  
  1707  // ContractNewTransferSelectorNFT represents a NewTransferSelectorNFT event raised by the Contract contract.
  1708  type ContractNewTransferSelectorNFT struct {
  1709  	TransferSelectorNFT common.Address
  1710  	Raw                 types.Log // Blockchain specific contextual infos
  1711  }
  1712  
  1713  // FilterNewTransferSelectorNFT is a free log retrieval operation binding the contract event 0x205d78ab41afe80bd6b6aaa5d7599d5300ff8690da3ab1302c1b552f7baf7d8c.
  1714  //
  1715  // Solidity: event NewTransferSelectorNFT(address indexed transferSelectorNFT)
  1716  func (_Contract *ContractFilterer) FilterNewTransferSelectorNFT(opts *bind.FilterOpts, transferSelectorNFT []common.Address) (*ContractNewTransferSelectorNFTIterator, error) {
  1717  
  1718  	var transferSelectorNFTRule []interface{}
  1719  	for _, transferSelectorNFTItem := range transferSelectorNFT {
  1720  		transferSelectorNFTRule = append(transferSelectorNFTRule, transferSelectorNFTItem)
  1721  	}
  1722  
  1723  	logs, sub, err := _Contract.contract.FilterLogs(opts, "NewTransferSelectorNFT", transferSelectorNFTRule)
  1724  	if err != nil {
  1725  		return nil, err
  1726  	}
  1727  	return &ContractNewTransferSelectorNFTIterator{contract: _Contract.contract, event: "NewTransferSelectorNFT", logs: logs, sub: sub}, nil
  1728  }
  1729  
  1730  // WatchNewTransferSelectorNFT is a free log subscription operation binding the contract event 0x205d78ab41afe80bd6b6aaa5d7599d5300ff8690da3ab1302c1b552f7baf7d8c.
  1731  //
  1732  // Solidity: event NewTransferSelectorNFT(address indexed transferSelectorNFT)
  1733  func (_Contract *ContractFilterer) WatchNewTransferSelectorNFT(opts *bind.WatchOpts, sink chan<- *ContractNewTransferSelectorNFT, transferSelectorNFT []common.Address) (event.Subscription, error) {
  1734  
  1735  	var transferSelectorNFTRule []interface{}
  1736  	for _, transferSelectorNFTItem := range transferSelectorNFT {
  1737  		transferSelectorNFTRule = append(transferSelectorNFTRule, transferSelectorNFTItem)
  1738  	}
  1739  
  1740  	logs, sub, err := _Contract.contract.WatchLogs(opts, "NewTransferSelectorNFT", transferSelectorNFTRule)
  1741  	if err != nil {
  1742  		return nil, err
  1743  	}
  1744  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1745  		defer sub.Unsubscribe()
  1746  		for {
  1747  			select {
  1748  			case log := <-logs:
  1749  				// New log arrived, parse the event and forward to the user
  1750  				event := new(ContractNewTransferSelectorNFT)
  1751  				if err := _Contract.contract.UnpackLog(event, "NewTransferSelectorNFT", log); err != nil {
  1752  					return err
  1753  				}
  1754  				event.Raw = log
  1755  
  1756  				select {
  1757  				case sink <- event:
  1758  				case err := <-sub.Err():
  1759  					return err
  1760  				case <-quit:
  1761  					return nil
  1762  				}
  1763  			case err := <-sub.Err():
  1764  				return err
  1765  			case <-quit:
  1766  				return nil
  1767  			}
  1768  		}
  1769  	}), nil
  1770  }
  1771  
  1772  // ParseNewTransferSelectorNFT is a log parse operation binding the contract event 0x205d78ab41afe80bd6b6aaa5d7599d5300ff8690da3ab1302c1b552f7baf7d8c.
  1773  //
  1774  // Solidity: event NewTransferSelectorNFT(address indexed transferSelectorNFT)
  1775  func (_Contract *ContractFilterer) ParseNewTransferSelectorNFT(log types.Log) (*ContractNewTransferSelectorNFT, error) {
  1776  	event := new(ContractNewTransferSelectorNFT)
  1777  	if err := _Contract.contract.UnpackLog(event, "NewTransferSelectorNFT", log); err != nil {
  1778  		return nil, err
  1779  	}
  1780  	event.Raw = log
  1781  	return event, nil
  1782  }
  1783  
  1784  // ContractOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the Contract contract.
  1785  type ContractOwnershipTransferredIterator struct {
  1786  	Event *ContractOwnershipTransferred // Event containing the contract specifics and raw log
  1787  
  1788  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1789  	event    string              // Event name to use for unpacking event data
  1790  
  1791  	logs chan types.Log        // Log channel receiving the found contract events
  1792  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1793  	done bool                  // Whether the subscription completed delivering logs
  1794  	fail error                 // Occurred error to stop iteration
  1795  }
  1796  
  1797  // Next advances the iterator to the subsequent event, returning whether there
  1798  // are any more events found. In case of a retrieval or parsing error, false is
  1799  // returned and Error() can be queried for the exact failure.
  1800  func (it *ContractOwnershipTransferredIterator) Next() bool {
  1801  	// If the iterator failed, stop iterating
  1802  	if it.fail != nil {
  1803  		return false
  1804  	}
  1805  	// If the iterator completed, deliver directly whatever's available
  1806  	if it.done {
  1807  		select {
  1808  		case log := <-it.logs:
  1809  			it.Event = new(ContractOwnershipTransferred)
  1810  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1811  				it.fail = err
  1812  				return false
  1813  			}
  1814  			it.Event.Raw = log
  1815  			return true
  1816  
  1817  		default:
  1818  			return false
  1819  		}
  1820  	}
  1821  	// Iterator still in progress, wait for either a data or an error event
  1822  	select {
  1823  	case log := <-it.logs:
  1824  		it.Event = new(ContractOwnershipTransferred)
  1825  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1826  			it.fail = err
  1827  			return false
  1828  		}
  1829  		it.Event.Raw = log
  1830  		return true
  1831  
  1832  	case err := <-it.sub.Err():
  1833  		it.done = true
  1834  		it.fail = err
  1835  		return it.Next()
  1836  	}
  1837  }
  1838  
  1839  // Error returns any retrieval or parsing error occurred during filtering.
  1840  func (it *ContractOwnershipTransferredIterator) Error() error {
  1841  	return it.fail
  1842  }
  1843  
  1844  // Close terminates the iteration process, releasing any pending underlying
  1845  // resources.
  1846  func (it *ContractOwnershipTransferredIterator) Close() error {
  1847  	it.sub.Unsubscribe()
  1848  	return nil
  1849  }
  1850  
  1851  // ContractOwnershipTransferred represents a OwnershipTransferred event raised by the Contract contract.
  1852  type ContractOwnershipTransferred struct {
  1853  	PreviousOwner common.Address
  1854  	NewOwner      common.Address
  1855  	Raw           types.Log // Blockchain specific contextual infos
  1856  }
  1857  
  1858  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1859  //
  1860  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  1861  func (_Contract *ContractFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*ContractOwnershipTransferredIterator, error) {
  1862  
  1863  	var previousOwnerRule []interface{}
  1864  	for _, previousOwnerItem := range previousOwner {
  1865  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  1866  	}
  1867  	var newOwnerRule []interface{}
  1868  	for _, newOwnerItem := range newOwner {
  1869  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  1870  	}
  1871  
  1872  	logs, sub, err := _Contract.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  1873  	if err != nil {
  1874  		return nil, err
  1875  	}
  1876  	return &ContractOwnershipTransferredIterator{contract: _Contract.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  1877  }
  1878  
  1879  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1880  //
  1881  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  1882  func (_Contract *ContractFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *ContractOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  1883  
  1884  	var previousOwnerRule []interface{}
  1885  	for _, previousOwnerItem := range previousOwner {
  1886  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  1887  	}
  1888  	var newOwnerRule []interface{}
  1889  	for _, newOwnerItem := range newOwner {
  1890  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  1891  	}
  1892  
  1893  	logs, sub, err := _Contract.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  1894  	if err != nil {
  1895  		return nil, err
  1896  	}
  1897  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1898  		defer sub.Unsubscribe()
  1899  		for {
  1900  			select {
  1901  			case log := <-logs:
  1902  				// New log arrived, parse the event and forward to the user
  1903  				event := new(ContractOwnershipTransferred)
  1904  				if err := _Contract.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  1905  					return err
  1906  				}
  1907  				event.Raw = log
  1908  
  1909  				select {
  1910  				case sink <- event:
  1911  				case err := <-sub.Err():
  1912  					return err
  1913  				case <-quit:
  1914  					return nil
  1915  				}
  1916  			case err := <-sub.Err():
  1917  				return err
  1918  			case <-quit:
  1919  				return nil
  1920  			}
  1921  		}
  1922  	}), nil
  1923  }
  1924  
  1925  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1926  //
  1927  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  1928  func (_Contract *ContractFilterer) ParseOwnershipTransferred(log types.Log) (*ContractOwnershipTransferred, error) {
  1929  	event := new(ContractOwnershipTransferred)
  1930  	if err := _Contract.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  1931  		return nil, err
  1932  	}
  1933  	event.Raw = log
  1934  	return event, nil
  1935  }
  1936  
  1937  // ContractRoyaltyPaymentIterator is returned from FilterRoyaltyPayment and is used to iterate over the raw logs and unpacked data for RoyaltyPayment events raised by the Contract contract.
  1938  type ContractRoyaltyPaymentIterator struct {
  1939  	Event *ContractRoyaltyPayment // Event containing the contract specifics and raw log
  1940  
  1941  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1942  	event    string              // Event name to use for unpacking event data
  1943  
  1944  	logs chan types.Log        // Log channel receiving the found contract events
  1945  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1946  	done bool                  // Whether the subscription completed delivering logs
  1947  	fail error                 // Occurred error to stop iteration
  1948  }
  1949  
  1950  // Next advances the iterator to the subsequent event, returning whether there
  1951  // are any more events found. In case of a retrieval or parsing error, false is
  1952  // returned and Error() can be queried for the exact failure.
  1953  func (it *ContractRoyaltyPaymentIterator) Next() bool {
  1954  	// If the iterator failed, stop iterating
  1955  	if it.fail != nil {
  1956  		return false
  1957  	}
  1958  	// If the iterator completed, deliver directly whatever's available
  1959  	if it.done {
  1960  		select {
  1961  		case log := <-it.logs:
  1962  			it.Event = new(ContractRoyaltyPayment)
  1963  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1964  				it.fail = err
  1965  				return false
  1966  			}
  1967  			it.Event.Raw = log
  1968  			return true
  1969  
  1970  		default:
  1971  			return false
  1972  		}
  1973  	}
  1974  	// Iterator still in progress, wait for either a data or an error event
  1975  	select {
  1976  	case log := <-it.logs:
  1977  		it.Event = new(ContractRoyaltyPayment)
  1978  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1979  			it.fail = err
  1980  			return false
  1981  		}
  1982  		it.Event.Raw = log
  1983  		return true
  1984  
  1985  	case err := <-it.sub.Err():
  1986  		it.done = true
  1987  		it.fail = err
  1988  		return it.Next()
  1989  	}
  1990  }
  1991  
  1992  // Error returns any retrieval or parsing error occurred during filtering.
  1993  func (it *ContractRoyaltyPaymentIterator) Error() error {
  1994  	return it.fail
  1995  }
  1996  
  1997  // Close terminates the iteration process, releasing any pending underlying
  1998  // resources.
  1999  func (it *ContractRoyaltyPaymentIterator) Close() error {
  2000  	it.sub.Unsubscribe()
  2001  	return nil
  2002  }
  2003  
  2004  // ContractRoyaltyPayment represents a RoyaltyPayment event raised by the Contract contract.
  2005  type ContractRoyaltyPayment struct {
  2006  	Collection       common.Address
  2007  	TokenId          *big.Int
  2008  	RoyaltyRecipient common.Address
  2009  	Currency         common.Address
  2010  	Amount           *big.Int
  2011  	Raw              types.Log // Blockchain specific contextual infos
  2012  }
  2013  
  2014  // FilterRoyaltyPayment is a free log retrieval operation binding the contract event 0x27c4f0403323142b599832f26acd21c74a9e5b809f2215726e244a4ac588cd7d.
  2015  //
  2016  // Solidity: event RoyaltyPayment(address indexed collection, uint256 indexed tokenId, address indexed royaltyRecipient, address currency, uint256 amount)
  2017  func (_Contract *ContractFilterer) FilterRoyaltyPayment(opts *bind.FilterOpts, collection []common.Address, tokenId []*big.Int, royaltyRecipient []common.Address) (*ContractRoyaltyPaymentIterator, error) {
  2018  
  2019  	var collectionRule []interface{}
  2020  	for _, collectionItem := range collection {
  2021  		collectionRule = append(collectionRule, collectionItem)
  2022  	}
  2023  	var tokenIdRule []interface{}
  2024  	for _, tokenIdItem := range tokenId {
  2025  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  2026  	}
  2027  	var royaltyRecipientRule []interface{}
  2028  	for _, royaltyRecipientItem := range royaltyRecipient {
  2029  		royaltyRecipientRule = append(royaltyRecipientRule, royaltyRecipientItem)
  2030  	}
  2031  
  2032  	logs, sub, err := _Contract.contract.FilterLogs(opts, "RoyaltyPayment", collectionRule, tokenIdRule, royaltyRecipientRule)
  2033  	if err != nil {
  2034  		return nil, err
  2035  	}
  2036  	return &ContractRoyaltyPaymentIterator{contract: _Contract.contract, event: "RoyaltyPayment", logs: logs, sub: sub}, nil
  2037  }
  2038  
  2039  // WatchRoyaltyPayment is a free log subscription operation binding the contract event 0x27c4f0403323142b599832f26acd21c74a9e5b809f2215726e244a4ac588cd7d.
  2040  //
  2041  // Solidity: event RoyaltyPayment(address indexed collection, uint256 indexed tokenId, address indexed royaltyRecipient, address currency, uint256 amount)
  2042  func (_Contract *ContractFilterer) WatchRoyaltyPayment(opts *bind.WatchOpts, sink chan<- *ContractRoyaltyPayment, collection []common.Address, tokenId []*big.Int, royaltyRecipient []common.Address) (event.Subscription, error) {
  2043  
  2044  	var collectionRule []interface{}
  2045  	for _, collectionItem := range collection {
  2046  		collectionRule = append(collectionRule, collectionItem)
  2047  	}
  2048  	var tokenIdRule []interface{}
  2049  	for _, tokenIdItem := range tokenId {
  2050  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  2051  	}
  2052  	var royaltyRecipientRule []interface{}
  2053  	for _, royaltyRecipientItem := range royaltyRecipient {
  2054  		royaltyRecipientRule = append(royaltyRecipientRule, royaltyRecipientItem)
  2055  	}
  2056  
  2057  	logs, sub, err := _Contract.contract.WatchLogs(opts, "RoyaltyPayment", collectionRule, tokenIdRule, royaltyRecipientRule)
  2058  	if err != nil {
  2059  		return nil, err
  2060  	}
  2061  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2062  		defer sub.Unsubscribe()
  2063  		for {
  2064  			select {
  2065  			case log := <-logs:
  2066  				// New log arrived, parse the event and forward to the user
  2067  				event := new(ContractRoyaltyPayment)
  2068  				if err := _Contract.contract.UnpackLog(event, "RoyaltyPayment", log); err != nil {
  2069  					return err
  2070  				}
  2071  				event.Raw = log
  2072  
  2073  				select {
  2074  				case sink <- event:
  2075  				case err := <-sub.Err():
  2076  					return err
  2077  				case <-quit:
  2078  					return nil
  2079  				}
  2080  			case err := <-sub.Err():
  2081  				return err
  2082  			case <-quit:
  2083  				return nil
  2084  			}
  2085  		}
  2086  	}), nil
  2087  }
  2088  
  2089  // ParseRoyaltyPayment is a log parse operation binding the contract event 0x27c4f0403323142b599832f26acd21c74a9e5b809f2215726e244a4ac588cd7d.
  2090  //
  2091  // Solidity: event RoyaltyPayment(address indexed collection, uint256 indexed tokenId, address indexed royaltyRecipient, address currency, uint256 amount)
  2092  func (_Contract *ContractFilterer) ParseRoyaltyPayment(log types.Log) (*ContractRoyaltyPayment, error) {
  2093  	event := new(ContractRoyaltyPayment)
  2094  	if err := _Contract.contract.UnpackLog(event, "RoyaltyPayment", log); err != nil {
  2095  		return nil, err
  2096  	}
  2097  	event.Raw = log
  2098  	return event, nil
  2099  }
  2100  
  2101  // ContractTakerAskIterator is returned from FilterTakerAsk and is used to iterate over the raw logs and unpacked data for TakerAsk events raised by the Contract contract.
  2102  type ContractTakerAskIterator struct {
  2103  	Event *ContractTakerAsk // Event containing the contract specifics and raw log
  2104  
  2105  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2106  	event    string              // Event name to use for unpacking event data
  2107  
  2108  	logs chan types.Log        // Log channel receiving the found contract events
  2109  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2110  	done bool                  // Whether the subscription completed delivering logs
  2111  	fail error                 // Occurred error to stop iteration
  2112  }
  2113  
  2114  // Next advances the iterator to the subsequent event, returning whether there
  2115  // are any more events found. In case of a retrieval or parsing error, false is
  2116  // returned and Error() can be queried for the exact failure.
  2117  func (it *ContractTakerAskIterator) Next() bool {
  2118  	// If the iterator failed, stop iterating
  2119  	if it.fail != nil {
  2120  		return false
  2121  	}
  2122  	// If the iterator completed, deliver directly whatever's available
  2123  	if it.done {
  2124  		select {
  2125  		case log := <-it.logs:
  2126  			it.Event = new(ContractTakerAsk)
  2127  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2128  				it.fail = err
  2129  				return false
  2130  			}
  2131  			it.Event.Raw = log
  2132  			return true
  2133  
  2134  		default:
  2135  			return false
  2136  		}
  2137  	}
  2138  	// Iterator still in progress, wait for either a data or an error event
  2139  	select {
  2140  	case log := <-it.logs:
  2141  		it.Event = new(ContractTakerAsk)
  2142  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2143  			it.fail = err
  2144  			return false
  2145  		}
  2146  		it.Event.Raw = log
  2147  		return true
  2148  
  2149  	case err := <-it.sub.Err():
  2150  		it.done = true
  2151  		it.fail = err
  2152  		return it.Next()
  2153  	}
  2154  }
  2155  
  2156  // Error returns any retrieval or parsing error occurred during filtering.
  2157  func (it *ContractTakerAskIterator) Error() error {
  2158  	return it.fail
  2159  }
  2160  
  2161  // Close terminates the iteration process, releasing any pending underlying
  2162  // resources.
  2163  func (it *ContractTakerAskIterator) Close() error {
  2164  	it.sub.Unsubscribe()
  2165  	return nil
  2166  }
  2167  
  2168  // ContractTakerAsk represents a TakerAsk event raised by the Contract contract.
  2169  type ContractTakerAsk struct {
  2170  	OrderHash  [32]byte
  2171  	OrderNonce *big.Int
  2172  	Taker      common.Address
  2173  	Maker      common.Address
  2174  	Strategy   common.Address
  2175  	Currency   common.Address
  2176  	Collection common.Address
  2177  	TokenId    *big.Int
  2178  	Amount     *big.Int
  2179  	Price      *big.Int
  2180  	Raw        types.Log // Blockchain specific contextual infos
  2181  }
  2182  
  2183  // FilterTakerAsk is a free log retrieval operation binding the contract event 0x68cd251d4d267c6e2034ff0088b990352b97b2002c0476587d0c4da889c11330.
  2184  //
  2185  // Solidity: event TakerAsk(bytes32 orderHash, uint256 orderNonce, address indexed taker, address indexed maker, address indexed strategy, address currency, address collection, uint256 tokenId, uint256 amount, uint256 price)
  2186  func (_Contract *ContractFilterer) FilterTakerAsk(opts *bind.FilterOpts, taker []common.Address, maker []common.Address, strategy []common.Address) (*ContractTakerAskIterator, error) {
  2187  
  2188  	var takerRule []interface{}
  2189  	for _, takerItem := range taker {
  2190  		takerRule = append(takerRule, takerItem)
  2191  	}
  2192  	var makerRule []interface{}
  2193  	for _, makerItem := range maker {
  2194  		makerRule = append(makerRule, makerItem)
  2195  	}
  2196  	var strategyRule []interface{}
  2197  	for _, strategyItem := range strategy {
  2198  		strategyRule = append(strategyRule, strategyItem)
  2199  	}
  2200  
  2201  	logs, sub, err := _Contract.contract.FilterLogs(opts, "TakerAsk", takerRule, makerRule, strategyRule)
  2202  	if err != nil {
  2203  		return nil, err
  2204  	}
  2205  	return &ContractTakerAskIterator{contract: _Contract.contract, event: "TakerAsk", logs: logs, sub: sub}, nil
  2206  }
  2207  
  2208  // WatchTakerAsk is a free log subscription operation binding the contract event 0x68cd251d4d267c6e2034ff0088b990352b97b2002c0476587d0c4da889c11330.
  2209  //
  2210  // Solidity: event TakerAsk(bytes32 orderHash, uint256 orderNonce, address indexed taker, address indexed maker, address indexed strategy, address currency, address collection, uint256 tokenId, uint256 amount, uint256 price)
  2211  func (_Contract *ContractFilterer) WatchTakerAsk(opts *bind.WatchOpts, sink chan<- *ContractTakerAsk, taker []common.Address, maker []common.Address, strategy []common.Address) (event.Subscription, error) {
  2212  
  2213  	var takerRule []interface{}
  2214  	for _, takerItem := range taker {
  2215  		takerRule = append(takerRule, takerItem)
  2216  	}
  2217  	var makerRule []interface{}
  2218  	for _, makerItem := range maker {
  2219  		makerRule = append(makerRule, makerItem)
  2220  	}
  2221  	var strategyRule []interface{}
  2222  	for _, strategyItem := range strategy {
  2223  		strategyRule = append(strategyRule, strategyItem)
  2224  	}
  2225  
  2226  	logs, sub, err := _Contract.contract.WatchLogs(opts, "TakerAsk", takerRule, makerRule, strategyRule)
  2227  	if err != nil {
  2228  		return nil, err
  2229  	}
  2230  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2231  		defer sub.Unsubscribe()
  2232  		for {
  2233  			select {
  2234  			case log := <-logs:
  2235  				// New log arrived, parse the event and forward to the user
  2236  				event := new(ContractTakerAsk)
  2237  				if err := _Contract.contract.UnpackLog(event, "TakerAsk", log); err != nil {
  2238  					return err
  2239  				}
  2240  				event.Raw = log
  2241  
  2242  				select {
  2243  				case sink <- event:
  2244  				case err := <-sub.Err():
  2245  					return err
  2246  				case <-quit:
  2247  					return nil
  2248  				}
  2249  			case err := <-sub.Err():
  2250  				return err
  2251  			case <-quit:
  2252  				return nil
  2253  			}
  2254  		}
  2255  	}), nil
  2256  }
  2257  
  2258  // ParseTakerAsk is a log parse operation binding the contract event 0x68cd251d4d267c6e2034ff0088b990352b97b2002c0476587d0c4da889c11330.
  2259  //
  2260  // Solidity: event TakerAsk(bytes32 orderHash, uint256 orderNonce, address indexed taker, address indexed maker, address indexed strategy, address currency, address collection, uint256 tokenId, uint256 amount, uint256 price)
  2261  func (_Contract *ContractFilterer) ParseTakerAsk(log types.Log) (*ContractTakerAsk, error) {
  2262  	event := new(ContractTakerAsk)
  2263  	if err := _Contract.contract.UnpackLog(event, "TakerAsk", log); err != nil {
  2264  		return nil, err
  2265  	}
  2266  	event.Raw = log
  2267  	return event, nil
  2268  }
  2269  
  2270  // ContractTakerBidIterator is returned from FilterTakerBid and is used to iterate over the raw logs and unpacked data for TakerBid events raised by the Contract contract.
  2271  type ContractTakerBidIterator struct {
  2272  	Event *ContractTakerBid // Event containing the contract specifics and raw log
  2273  
  2274  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2275  	event    string              // Event name to use for unpacking event data
  2276  
  2277  	logs chan types.Log        // Log channel receiving the found contract events
  2278  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2279  	done bool                  // Whether the subscription completed delivering logs
  2280  	fail error                 // Occurred error to stop iteration
  2281  }
  2282  
  2283  // Next advances the iterator to the subsequent event, returning whether there
  2284  // are any more events found. In case of a retrieval or parsing error, false is
  2285  // returned and Error() can be queried for the exact failure.
  2286  func (it *ContractTakerBidIterator) Next() bool {
  2287  	// If the iterator failed, stop iterating
  2288  	if it.fail != nil {
  2289  		return false
  2290  	}
  2291  	// If the iterator completed, deliver directly whatever's available
  2292  	if it.done {
  2293  		select {
  2294  		case log := <-it.logs:
  2295  			it.Event = new(ContractTakerBid)
  2296  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2297  				it.fail = err
  2298  				return false
  2299  			}
  2300  			it.Event.Raw = log
  2301  			return true
  2302  
  2303  		default:
  2304  			return false
  2305  		}
  2306  	}
  2307  	// Iterator still in progress, wait for either a data or an error event
  2308  	select {
  2309  	case log := <-it.logs:
  2310  		it.Event = new(ContractTakerBid)
  2311  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2312  			it.fail = err
  2313  			return false
  2314  		}
  2315  		it.Event.Raw = log
  2316  		return true
  2317  
  2318  	case err := <-it.sub.Err():
  2319  		it.done = true
  2320  		it.fail = err
  2321  		return it.Next()
  2322  	}
  2323  }
  2324  
  2325  // Error returns any retrieval or parsing error occurred during filtering.
  2326  func (it *ContractTakerBidIterator) Error() error {
  2327  	return it.fail
  2328  }
  2329  
  2330  // Close terminates the iteration process, releasing any pending underlying
  2331  // resources.
  2332  func (it *ContractTakerBidIterator) Close() error {
  2333  	it.sub.Unsubscribe()
  2334  	return nil
  2335  }
  2336  
  2337  // ContractTakerBid represents a TakerBid event raised by the Contract contract.
  2338  type ContractTakerBid struct {
  2339  	OrderHash  [32]byte
  2340  	OrderNonce *big.Int
  2341  	Taker      common.Address
  2342  	Maker      common.Address
  2343  	Strategy   common.Address
  2344  	Currency   common.Address
  2345  	Collection common.Address
  2346  	TokenId    *big.Int
  2347  	Amount     *big.Int
  2348  	Price      *big.Int
  2349  	Raw        types.Log // Blockchain specific contextual infos
  2350  }
  2351  
  2352  // FilterTakerBid is a free log retrieval operation binding the contract event 0x95fb6205e23ff6bda16a2d1dba56b9ad7c783f67c96fa149785052f47696f2be.
  2353  //
  2354  // Solidity: event TakerBid(bytes32 orderHash, uint256 orderNonce, address indexed taker, address indexed maker, address indexed strategy, address currency, address collection, uint256 tokenId, uint256 amount, uint256 price)
  2355  func (_Contract *ContractFilterer) FilterTakerBid(opts *bind.FilterOpts, taker []common.Address, maker []common.Address, strategy []common.Address) (*ContractTakerBidIterator, error) {
  2356  
  2357  	var takerRule []interface{}
  2358  	for _, takerItem := range taker {
  2359  		takerRule = append(takerRule, takerItem)
  2360  	}
  2361  	var makerRule []interface{}
  2362  	for _, makerItem := range maker {
  2363  		makerRule = append(makerRule, makerItem)
  2364  	}
  2365  	var strategyRule []interface{}
  2366  	for _, strategyItem := range strategy {
  2367  		strategyRule = append(strategyRule, strategyItem)
  2368  	}
  2369  
  2370  	logs, sub, err := _Contract.contract.FilterLogs(opts, "TakerBid", takerRule, makerRule, strategyRule)
  2371  	if err != nil {
  2372  		return nil, err
  2373  	}
  2374  	return &ContractTakerBidIterator{contract: _Contract.contract, event: "TakerBid", logs: logs, sub: sub}, nil
  2375  }
  2376  
  2377  // WatchTakerBid is a free log subscription operation binding the contract event 0x95fb6205e23ff6bda16a2d1dba56b9ad7c783f67c96fa149785052f47696f2be.
  2378  //
  2379  // Solidity: event TakerBid(bytes32 orderHash, uint256 orderNonce, address indexed taker, address indexed maker, address indexed strategy, address currency, address collection, uint256 tokenId, uint256 amount, uint256 price)
  2380  func (_Contract *ContractFilterer) WatchTakerBid(opts *bind.WatchOpts, sink chan<- *ContractTakerBid, taker []common.Address, maker []common.Address, strategy []common.Address) (event.Subscription, error) {
  2381  
  2382  	var takerRule []interface{}
  2383  	for _, takerItem := range taker {
  2384  		takerRule = append(takerRule, takerItem)
  2385  	}
  2386  	var makerRule []interface{}
  2387  	for _, makerItem := range maker {
  2388  		makerRule = append(makerRule, makerItem)
  2389  	}
  2390  	var strategyRule []interface{}
  2391  	for _, strategyItem := range strategy {
  2392  		strategyRule = append(strategyRule, strategyItem)
  2393  	}
  2394  
  2395  	logs, sub, err := _Contract.contract.WatchLogs(opts, "TakerBid", takerRule, makerRule, strategyRule)
  2396  	if err != nil {
  2397  		return nil, err
  2398  	}
  2399  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2400  		defer sub.Unsubscribe()
  2401  		for {
  2402  			select {
  2403  			case log := <-logs:
  2404  				// New log arrived, parse the event and forward to the user
  2405  				event := new(ContractTakerBid)
  2406  				if err := _Contract.contract.UnpackLog(event, "TakerBid", log); err != nil {
  2407  					return err
  2408  				}
  2409  				event.Raw = log
  2410  
  2411  				select {
  2412  				case sink <- event:
  2413  				case err := <-sub.Err():
  2414  					return err
  2415  				case <-quit:
  2416  					return nil
  2417  				}
  2418  			case err := <-sub.Err():
  2419  				return err
  2420  			case <-quit:
  2421  				return nil
  2422  			}
  2423  		}
  2424  	}), nil
  2425  }
  2426  
  2427  // ParseTakerBid is a log parse operation binding the contract event 0x95fb6205e23ff6bda16a2d1dba56b9ad7c783f67c96fa149785052f47696f2be.
  2428  //
  2429  // Solidity: event TakerBid(bytes32 orderHash, uint256 orderNonce, address indexed taker, address indexed maker, address indexed strategy, address currency, address collection, uint256 tokenId, uint256 amount, uint256 price)
  2430  func (_Contract *ContractFilterer) ParseTakerBid(log types.Log) (*ContractTakerBid, error) {
  2431  	event := new(ContractTakerBid)
  2432  	if err := _Contract.contract.UnpackLog(event, "TakerBid", log); err != nil {
  2433  		return nil, err
  2434  	}
  2435  	event.Raw = log
  2436  	return event, nil
  2437  }