github.com/0chain/gosdk@v1.17.11/znft/contracts/dstorageerc721pack/binding/dstorageerc721pack.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 binding
     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  // BindingMetaData contains all meta data concerning the Binding contract.
    32  var BindingMetaData = &bind.MetaData{
    33  	ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"uri_\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"price_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"batch_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"size_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previous\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"updated\",\"type\":\"uint256\"}],\"name\":\"BatchUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"previous\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"updated\",\"type\":\"string\"}],\"name\":\"ClosedUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"MetadataFrozen\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"previous\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"updated\",\"type\":\"bool\"}],\"name\":\"MintableUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"previous\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"updated\",\"type\":\"string\"}],\"name\":\"OpenedUpdated\",\"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\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"PackOpened\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"content\",\"type\":\"uint256\"}],\"name\":\"PackRedeemed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previous\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"updated\",\"type\":\"uint256\"}],\"name\":\"PriceUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previous\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"updated\",\"type\":\"address\"}],\"name\":\"ReceiverUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previous\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"updated\",\"type\":\"uint256\"}],\"name\":\"RoyaltyUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"previous\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"updated\",\"type\":\"string\"}],\"name\":\"UriFallbackUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"previous\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"updated\",\"type\":\"string\"}],\"name\":\"UriUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"allocation\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"closed\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"contents\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"freeze\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"frozen\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"max\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mintOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mintable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"opened\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"receiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"reveal\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"royalty\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"salePrice\",\"type\":\"uint256\"}],\"name\":\"royaltyInfo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"allocation_\",\"type\":\"string\"}],\"name\":\"setAllocation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"closed_\",\"type\":\"string\"}],\"name\":\"setClosed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status_\",\"type\":\"bool\"}],\"name\":\"setMintable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"opened_\",\"type\":\"string\"}],\"name\":\"setOpened\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver_\",\"type\":\"address\"}],\"name\":\"setReceiver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"royalty_\",\"type\":\"uint256\"}],\"name\":\"setRoyalty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"uri_\",\"type\":\"string\"}],\"name\":\"setURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"uri_\",\"type\":\"string\"}],\"name\":\"setURIFallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"size\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURIFallback\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"total\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"uriFallback\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
    34  }
    35  
    36  // BindingABI is the input ABI used to generate the binding from.
    37  // Deprecated: Use BindingMetaData.ABI instead.
    38  var BindingABI = BindingMetaData.ABI
    39  
    40  // Binding is an auto generated Go binding around an Ethereum contract.
    41  type Binding struct {
    42  	BindingCaller     // Read-only binding to the contract
    43  	BindingTransactor // Write-only binding to the contract
    44  	BindingFilterer   // Log filterer for contract events
    45  }
    46  
    47  // BindingCaller is an auto generated read-only Go binding around an Ethereum contract.
    48  type BindingCaller struct {
    49  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    50  }
    51  
    52  // BindingTransactor is an auto generated write-only Go binding around an Ethereum contract.
    53  type BindingTransactor struct {
    54  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    55  }
    56  
    57  // BindingFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
    58  type BindingFilterer struct {
    59  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    60  }
    61  
    62  // BindingSession is an auto generated Go binding around an Ethereum contract,
    63  // with pre-set call and transact options.
    64  type BindingSession struct {
    65  	Contract     *Binding          // Generic contract binding to set the session for
    66  	CallOpts     bind.CallOpts     // Call options to use throughout this session
    67  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
    68  }
    69  
    70  // BindingCallerSession is an auto generated read-only Go binding around an Ethereum contract,
    71  // with pre-set call options.
    72  type BindingCallerSession struct {
    73  	Contract *BindingCaller // Generic contract caller binding to set the session for
    74  	CallOpts bind.CallOpts  // Call options to use throughout this session
    75  }
    76  
    77  // BindingTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
    78  // with pre-set transact options.
    79  type BindingTransactorSession struct {
    80  	Contract     *BindingTransactor // Generic contract transactor binding to set the session for
    81  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
    82  }
    83  
    84  // BindingRaw is an auto generated low-level Go binding around an Ethereum contract.
    85  type BindingRaw struct {
    86  	Contract *Binding // Generic contract binding to access the raw methods on
    87  }
    88  
    89  // BindingCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
    90  type BindingCallerRaw struct {
    91  	Contract *BindingCaller // Generic read-only contract binding to access the raw methods on
    92  }
    93  
    94  // BindingTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
    95  type BindingTransactorRaw struct {
    96  	Contract *BindingTransactor // Generic write-only contract binding to access the raw methods on
    97  }
    98  
    99  // NewBinding creates a new instance of Binding, bound to a specific deployed contract.
   100  func NewBinding(address common.Address, backend bind.ContractBackend) (*Binding, error) {
   101  	contract, err := bindBinding(address, backend, backend, backend)
   102  	if err != nil {
   103  		return nil, err
   104  	}
   105  	return &Binding{BindingCaller: BindingCaller{contract: contract}, BindingTransactor: BindingTransactor{contract: contract}, BindingFilterer: BindingFilterer{contract: contract}}, nil
   106  }
   107  
   108  // NewBindingCaller creates a new read-only instance of Binding, bound to a specific deployed contract.
   109  func NewBindingCaller(address common.Address, caller bind.ContractCaller) (*BindingCaller, error) {
   110  	contract, err := bindBinding(address, caller, nil, nil)
   111  	if err != nil {
   112  		return nil, err
   113  	}
   114  	return &BindingCaller{contract: contract}, nil
   115  }
   116  
   117  // NewBindingTransactor creates a new write-only instance of Binding, bound to a specific deployed contract.
   118  func NewBindingTransactor(address common.Address, transactor bind.ContractTransactor) (*BindingTransactor, error) {
   119  	contract, err := bindBinding(address, nil, transactor, nil)
   120  	if err != nil {
   121  		return nil, err
   122  	}
   123  	return &BindingTransactor{contract: contract}, nil
   124  }
   125  
   126  // NewBindingFilterer creates a new log filterer instance of Binding, bound to a specific deployed contract.
   127  func NewBindingFilterer(address common.Address, filterer bind.ContractFilterer) (*BindingFilterer, error) {
   128  	contract, err := bindBinding(address, nil, nil, filterer)
   129  	if err != nil {
   130  		return nil, err
   131  	}
   132  	return &BindingFilterer{contract: contract}, nil
   133  }
   134  
   135  // bindBinding binds a generic wrapper to an already deployed contract.
   136  func bindBinding(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   137  	parsed, err := abi.JSON(strings.NewReader(BindingABI))
   138  	if err != nil {
   139  		return nil, err
   140  	}
   141  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   142  }
   143  
   144  // Call invokes the (constant) contract method with params as input values and
   145  // sets the output to result. The result type might be a single field for simple
   146  // returns, a slice of interfaces for anonymous returns and a struct for named
   147  // returns.
   148  func (_Binding *BindingRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   149  	return _Binding.Contract.BindingCaller.contract.Call(opts, result, method, params...)
   150  }
   151  
   152  // Transfer initiates a plain transaction to move funds to the contract, calling
   153  // its default method if one is available.
   154  func (_Binding *BindingRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   155  	return _Binding.Contract.BindingTransactor.contract.Transfer(opts)
   156  }
   157  
   158  // Transact invokes the (paid) contract method with params as input values.
   159  func (_Binding *BindingRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   160  	return _Binding.Contract.BindingTransactor.contract.Transact(opts, method, params...)
   161  }
   162  
   163  // Call invokes the (constant) contract method with params as input values and
   164  // sets the output to result. The result type might be a single field for simple
   165  // returns, a slice of interfaces for anonymous returns and a struct for named
   166  // returns.
   167  func (_Binding *BindingCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   168  	return _Binding.Contract.contract.Call(opts, result, method, params...)
   169  }
   170  
   171  // Transfer initiates a plain transaction to move funds to the contract, calling
   172  // its default method if one is available.
   173  func (_Binding *BindingTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   174  	return _Binding.Contract.contract.Transfer(opts)
   175  }
   176  
   177  // Transact invokes the (paid) contract method with params as input values.
   178  func (_Binding *BindingTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   179  	return _Binding.Contract.contract.Transact(opts, method, params...)
   180  }
   181  
   182  // Allocation is a free data retrieval call binding the contract method 0x88a17bde.
   183  //
   184  // Solidity: function allocation() view returns(string)
   185  func (_Binding *BindingCaller) Allocation(opts *bind.CallOpts) (string, error) {
   186  	var out []interface{}
   187  	err := _Binding.contract.Call(opts, &out, "allocation")
   188  
   189  	if err != nil {
   190  		return *new(string), err
   191  	}
   192  
   193  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   194  
   195  	return out0, err
   196  
   197  }
   198  
   199  // Allocation is a free data retrieval call binding the contract method 0x88a17bde.
   200  //
   201  // Solidity: function allocation() view returns(string)
   202  func (_Binding *BindingSession) Allocation() (string, error) {
   203  	return _Binding.Contract.Allocation(&_Binding.CallOpts)
   204  }
   205  
   206  // Allocation is a free data retrieval call binding the contract method 0x88a17bde.
   207  //
   208  // Solidity: function allocation() view returns(string)
   209  func (_Binding *BindingCallerSession) Allocation() (string, error) {
   210  	return _Binding.Contract.Allocation(&_Binding.CallOpts)
   211  }
   212  
   213  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
   214  //
   215  // Solidity: function balanceOf(address owner) view returns(uint256)
   216  func (_Binding *BindingCaller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) {
   217  	var out []interface{}
   218  	err := _Binding.contract.Call(opts, &out, "balanceOf", owner)
   219  
   220  	if err != nil {
   221  		return *new(*big.Int), err
   222  	}
   223  
   224  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   225  
   226  	return out0, err
   227  
   228  }
   229  
   230  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
   231  //
   232  // Solidity: function balanceOf(address owner) view returns(uint256)
   233  func (_Binding *BindingSession) BalanceOf(owner common.Address) (*big.Int, error) {
   234  	return _Binding.Contract.BalanceOf(&_Binding.CallOpts, owner)
   235  }
   236  
   237  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
   238  //
   239  // Solidity: function balanceOf(address owner) view returns(uint256)
   240  func (_Binding *BindingCallerSession) BalanceOf(owner common.Address) (*big.Int, error) {
   241  	return _Binding.Contract.BalanceOf(&_Binding.CallOpts, owner)
   242  }
   243  
   244  // Batch is a free data retrieval call binding the contract method 0xaf713566.
   245  //
   246  // Solidity: function batch() view returns(uint256)
   247  func (_Binding *BindingCaller) Batch(opts *bind.CallOpts) (*big.Int, error) {
   248  	var out []interface{}
   249  	err := _Binding.contract.Call(opts, &out, "batch")
   250  
   251  	if err != nil {
   252  		return *new(*big.Int), err
   253  	}
   254  
   255  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   256  
   257  	return out0, err
   258  
   259  }
   260  
   261  // Batch is a free data retrieval call binding the contract method 0xaf713566.
   262  //
   263  // Solidity: function batch() view returns(uint256)
   264  func (_Binding *BindingSession) Batch() (*big.Int, error) {
   265  	return _Binding.Contract.Batch(&_Binding.CallOpts)
   266  }
   267  
   268  // Batch is a free data retrieval call binding the contract method 0xaf713566.
   269  //
   270  // Solidity: function batch() view returns(uint256)
   271  func (_Binding *BindingCallerSession) Batch() (*big.Int, error) {
   272  	return _Binding.Contract.Batch(&_Binding.CallOpts)
   273  }
   274  
   275  // Closed is a free data retrieval call binding the contract method 0x597e1fb5.
   276  //
   277  // Solidity: function closed() view returns(string)
   278  func (_Binding *BindingCaller) Closed(opts *bind.CallOpts) (string, error) {
   279  	var out []interface{}
   280  	err := _Binding.contract.Call(opts, &out, "closed")
   281  
   282  	if err != nil {
   283  		return *new(string), err
   284  	}
   285  
   286  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   287  
   288  	return out0, err
   289  
   290  }
   291  
   292  // Closed is a free data retrieval call binding the contract method 0x597e1fb5.
   293  //
   294  // Solidity: function closed() view returns(string)
   295  func (_Binding *BindingSession) Closed() (string, error) {
   296  	return _Binding.Contract.Closed(&_Binding.CallOpts)
   297  }
   298  
   299  // Closed is a free data retrieval call binding the contract method 0x597e1fb5.
   300  //
   301  // Solidity: function closed() view returns(string)
   302  func (_Binding *BindingCallerSession) Closed() (string, error) {
   303  	return _Binding.Contract.Closed(&_Binding.CallOpts)
   304  }
   305  
   306  // Contents is a free data retrieval call binding the contract method 0xb5ecf912.
   307  //
   308  // Solidity: function contents(uint256 ) view returns(uint256)
   309  func (_Binding *BindingCaller) Contents(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) {
   310  	var out []interface{}
   311  	err := _Binding.contract.Call(opts, &out, "contents", arg0)
   312  
   313  	if err != nil {
   314  		return *new(*big.Int), err
   315  	}
   316  
   317  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   318  
   319  	return out0, err
   320  
   321  }
   322  
   323  // Contents is a free data retrieval call binding the contract method 0xb5ecf912.
   324  //
   325  // Solidity: function contents(uint256 ) view returns(uint256)
   326  func (_Binding *BindingSession) Contents(arg0 *big.Int) (*big.Int, error) {
   327  	return _Binding.Contract.Contents(&_Binding.CallOpts, arg0)
   328  }
   329  
   330  // Contents is a free data retrieval call binding the contract method 0xb5ecf912.
   331  //
   332  // Solidity: function contents(uint256 ) view returns(uint256)
   333  func (_Binding *BindingCallerSession) Contents(arg0 *big.Int) (*big.Int, error) {
   334  	return _Binding.Contract.Contents(&_Binding.CallOpts, arg0)
   335  }
   336  
   337  // Frozen is a free data retrieval call binding the contract method 0x054f7d9c.
   338  //
   339  // Solidity: function frozen() view returns(bool)
   340  func (_Binding *BindingCaller) Frozen(opts *bind.CallOpts) (bool, error) {
   341  	var out []interface{}
   342  	err := _Binding.contract.Call(opts, &out, "frozen")
   343  
   344  	if err != nil {
   345  		return *new(bool), err
   346  	}
   347  
   348  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   349  
   350  	return out0, err
   351  
   352  }
   353  
   354  // Frozen is a free data retrieval call binding the contract method 0x054f7d9c.
   355  //
   356  // Solidity: function frozen() view returns(bool)
   357  func (_Binding *BindingSession) Frozen() (bool, error) {
   358  	return _Binding.Contract.Frozen(&_Binding.CallOpts)
   359  }
   360  
   361  // Frozen is a free data retrieval call binding the contract method 0x054f7d9c.
   362  //
   363  // Solidity: function frozen() view returns(bool)
   364  func (_Binding *BindingCallerSession) Frozen() (bool, error) {
   365  	return _Binding.Contract.Frozen(&_Binding.CallOpts)
   366  }
   367  
   368  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
   369  //
   370  // Solidity: function getApproved(uint256 tokenId) view returns(address)
   371  func (_Binding *BindingCaller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
   372  	var out []interface{}
   373  	err := _Binding.contract.Call(opts, &out, "getApproved", tokenId)
   374  
   375  	if err != nil {
   376  		return *new(common.Address), err
   377  	}
   378  
   379  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   380  
   381  	return out0, err
   382  
   383  }
   384  
   385  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
   386  //
   387  // Solidity: function getApproved(uint256 tokenId) view returns(address)
   388  func (_Binding *BindingSession) GetApproved(tokenId *big.Int) (common.Address, error) {
   389  	return _Binding.Contract.GetApproved(&_Binding.CallOpts, tokenId)
   390  }
   391  
   392  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
   393  //
   394  // Solidity: function getApproved(uint256 tokenId) view returns(address)
   395  func (_Binding *BindingCallerSession) GetApproved(tokenId *big.Int) (common.Address, error) {
   396  	return _Binding.Contract.GetApproved(&_Binding.CallOpts, tokenId)
   397  }
   398  
   399  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
   400  //
   401  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
   402  func (_Binding *BindingCaller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) {
   403  	var out []interface{}
   404  	err := _Binding.contract.Call(opts, &out, "isApprovedForAll", owner, operator)
   405  
   406  	if err != nil {
   407  		return *new(bool), err
   408  	}
   409  
   410  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   411  
   412  	return out0, err
   413  
   414  }
   415  
   416  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
   417  //
   418  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
   419  func (_Binding *BindingSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
   420  	return _Binding.Contract.IsApprovedForAll(&_Binding.CallOpts, owner, operator)
   421  }
   422  
   423  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
   424  //
   425  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
   426  func (_Binding *BindingCallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
   427  	return _Binding.Contract.IsApprovedForAll(&_Binding.CallOpts, owner, operator)
   428  }
   429  
   430  // Max is a free data retrieval call binding the contract method 0x6ac5db19.
   431  //
   432  // Solidity: function max() view returns(uint256)
   433  func (_Binding *BindingCaller) Max(opts *bind.CallOpts) (*big.Int, error) {
   434  	var out []interface{}
   435  	err := _Binding.contract.Call(opts, &out, "max")
   436  
   437  	if err != nil {
   438  		return *new(*big.Int), err
   439  	}
   440  
   441  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   442  
   443  	return out0, err
   444  
   445  }
   446  
   447  // Max is a free data retrieval call binding the contract method 0x6ac5db19.
   448  //
   449  // Solidity: function max() view returns(uint256)
   450  func (_Binding *BindingSession) Max() (*big.Int, error) {
   451  	return _Binding.Contract.Max(&_Binding.CallOpts)
   452  }
   453  
   454  // Max is a free data retrieval call binding the contract method 0x6ac5db19.
   455  //
   456  // Solidity: function max() view returns(uint256)
   457  func (_Binding *BindingCallerSession) Max() (*big.Int, error) {
   458  	return _Binding.Contract.Max(&_Binding.CallOpts)
   459  }
   460  
   461  // Mintable is a free data retrieval call binding the contract method 0x4bf365df.
   462  //
   463  // Solidity: function mintable() view returns(bool)
   464  func (_Binding *BindingCaller) Mintable(opts *bind.CallOpts) (bool, error) {
   465  	var out []interface{}
   466  	err := _Binding.contract.Call(opts, &out, "mintable")
   467  
   468  	if err != nil {
   469  		return *new(bool), err
   470  	}
   471  
   472  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   473  
   474  	return out0, err
   475  
   476  }
   477  
   478  // Mintable is a free data retrieval call binding the contract method 0x4bf365df.
   479  //
   480  // Solidity: function mintable() view returns(bool)
   481  func (_Binding *BindingSession) Mintable() (bool, error) {
   482  	return _Binding.Contract.Mintable(&_Binding.CallOpts)
   483  }
   484  
   485  // Mintable is a free data retrieval call binding the contract method 0x4bf365df.
   486  //
   487  // Solidity: function mintable() view returns(bool)
   488  func (_Binding *BindingCallerSession) Mintable() (bool, error) {
   489  	return _Binding.Contract.Mintable(&_Binding.CallOpts)
   490  }
   491  
   492  // Name is a free data retrieval call binding the contract method 0x06fdde03.
   493  //
   494  // Solidity: function name() view returns(string)
   495  func (_Binding *BindingCaller) Name(opts *bind.CallOpts) (string, error) {
   496  	var out []interface{}
   497  	err := _Binding.contract.Call(opts, &out, "name")
   498  
   499  	if err != nil {
   500  		return *new(string), err
   501  	}
   502  
   503  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   504  
   505  	return out0, err
   506  
   507  }
   508  
   509  // Name is a free data retrieval call binding the contract method 0x06fdde03.
   510  //
   511  // Solidity: function name() view returns(string)
   512  func (_Binding *BindingSession) Name() (string, error) {
   513  	return _Binding.Contract.Name(&_Binding.CallOpts)
   514  }
   515  
   516  // Name is a free data retrieval call binding the contract method 0x06fdde03.
   517  //
   518  // Solidity: function name() view returns(string)
   519  func (_Binding *BindingCallerSession) Name() (string, error) {
   520  	return _Binding.Contract.Name(&_Binding.CallOpts)
   521  }
   522  
   523  // Opened is a free data retrieval call binding the contract method 0x5f88eade.
   524  //
   525  // Solidity: function opened() view returns(string)
   526  func (_Binding *BindingCaller) Opened(opts *bind.CallOpts) (string, error) {
   527  	var out []interface{}
   528  	err := _Binding.contract.Call(opts, &out, "opened")
   529  
   530  	if err != nil {
   531  		return *new(string), err
   532  	}
   533  
   534  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   535  
   536  	return out0, err
   537  
   538  }
   539  
   540  // Opened is a free data retrieval call binding the contract method 0x5f88eade.
   541  //
   542  // Solidity: function opened() view returns(string)
   543  func (_Binding *BindingSession) Opened() (string, error) {
   544  	return _Binding.Contract.Opened(&_Binding.CallOpts)
   545  }
   546  
   547  // Opened is a free data retrieval call binding the contract method 0x5f88eade.
   548  //
   549  // Solidity: function opened() view returns(string)
   550  func (_Binding *BindingCallerSession) Opened() (string, error) {
   551  	return _Binding.Contract.Opened(&_Binding.CallOpts)
   552  }
   553  
   554  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   555  //
   556  // Solidity: function owner() view returns(address)
   557  func (_Binding *BindingCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
   558  	var out []interface{}
   559  	err := _Binding.contract.Call(opts, &out, "owner")
   560  
   561  	if err != nil {
   562  		return *new(common.Address), err
   563  	}
   564  
   565  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   566  
   567  	return out0, err
   568  
   569  }
   570  
   571  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   572  //
   573  // Solidity: function owner() view returns(address)
   574  func (_Binding *BindingSession) Owner() (common.Address, error) {
   575  	return _Binding.Contract.Owner(&_Binding.CallOpts)
   576  }
   577  
   578  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   579  //
   580  // Solidity: function owner() view returns(address)
   581  func (_Binding *BindingCallerSession) Owner() (common.Address, error) {
   582  	return _Binding.Contract.Owner(&_Binding.CallOpts)
   583  }
   584  
   585  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
   586  //
   587  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
   588  func (_Binding *BindingCaller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
   589  	var out []interface{}
   590  	err := _Binding.contract.Call(opts, &out, "ownerOf", tokenId)
   591  
   592  	if err != nil {
   593  		return *new(common.Address), err
   594  	}
   595  
   596  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   597  
   598  	return out0, err
   599  
   600  }
   601  
   602  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
   603  //
   604  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
   605  func (_Binding *BindingSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
   606  	return _Binding.Contract.OwnerOf(&_Binding.CallOpts, tokenId)
   607  }
   608  
   609  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
   610  //
   611  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
   612  func (_Binding *BindingCallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
   613  	return _Binding.Contract.OwnerOf(&_Binding.CallOpts, tokenId)
   614  }
   615  
   616  // Price is a free data retrieval call binding the contract method 0xa035b1fe.
   617  //
   618  // Solidity: function price() view returns(uint256)
   619  func (_Binding *BindingCaller) Price(opts *bind.CallOpts) (*big.Int, error) {
   620  	var out []interface{}
   621  	err := _Binding.contract.Call(opts, &out, "price")
   622  
   623  	if err != nil {
   624  		return *new(*big.Int), err
   625  	}
   626  
   627  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   628  
   629  	return out0, err
   630  
   631  }
   632  
   633  // Price is a free data retrieval call binding the contract method 0xa035b1fe.
   634  //
   635  // Solidity: function price() view returns(uint256)
   636  func (_Binding *BindingSession) Price() (*big.Int, error) {
   637  	return _Binding.Contract.Price(&_Binding.CallOpts)
   638  }
   639  
   640  // Price is a free data retrieval call binding the contract method 0xa035b1fe.
   641  //
   642  // Solidity: function price() view returns(uint256)
   643  func (_Binding *BindingCallerSession) Price() (*big.Int, error) {
   644  	return _Binding.Contract.Price(&_Binding.CallOpts)
   645  }
   646  
   647  // Receiver is a free data retrieval call binding the contract method 0xf7260d3e.
   648  //
   649  // Solidity: function receiver() view returns(address)
   650  func (_Binding *BindingCaller) Receiver(opts *bind.CallOpts) (common.Address, error) {
   651  	var out []interface{}
   652  	err := _Binding.contract.Call(opts, &out, "receiver")
   653  
   654  	if err != nil {
   655  		return *new(common.Address), err
   656  	}
   657  
   658  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   659  
   660  	return out0, err
   661  
   662  }
   663  
   664  // Receiver is a free data retrieval call binding the contract method 0xf7260d3e.
   665  //
   666  // Solidity: function receiver() view returns(address)
   667  func (_Binding *BindingSession) Receiver() (common.Address, error) {
   668  	return _Binding.Contract.Receiver(&_Binding.CallOpts)
   669  }
   670  
   671  // Receiver is a free data retrieval call binding the contract method 0xf7260d3e.
   672  //
   673  // Solidity: function receiver() view returns(address)
   674  func (_Binding *BindingCallerSession) Receiver() (common.Address, error) {
   675  	return _Binding.Contract.Receiver(&_Binding.CallOpts)
   676  }
   677  
   678  // Royalty is a free data retrieval call binding the contract method 0x29ee566c.
   679  //
   680  // Solidity: function royalty() view returns(uint256)
   681  func (_Binding *BindingCaller) Royalty(opts *bind.CallOpts) (*big.Int, error) {
   682  	var out []interface{}
   683  	err := _Binding.contract.Call(opts, &out, "royalty")
   684  
   685  	if err != nil {
   686  		return *new(*big.Int), err
   687  	}
   688  
   689  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   690  
   691  	return out0, err
   692  
   693  }
   694  
   695  // Royalty is a free data retrieval call binding the contract method 0x29ee566c.
   696  //
   697  // Solidity: function royalty() view returns(uint256)
   698  func (_Binding *BindingSession) Royalty() (*big.Int, error) {
   699  	return _Binding.Contract.Royalty(&_Binding.CallOpts)
   700  }
   701  
   702  // Royalty is a free data retrieval call binding the contract method 0x29ee566c.
   703  //
   704  // Solidity: function royalty() view returns(uint256)
   705  func (_Binding *BindingCallerSession) Royalty() (*big.Int, error) {
   706  	return _Binding.Contract.Royalty(&_Binding.CallOpts)
   707  }
   708  
   709  // RoyaltyInfo is a free data retrieval call binding the contract method 0x2a55205a.
   710  //
   711  // Solidity: function royaltyInfo(uint256 tokenId, uint256 salePrice) view returns(address, uint256)
   712  func (_Binding *BindingCaller) RoyaltyInfo(opts *bind.CallOpts, tokenId *big.Int, salePrice *big.Int) (common.Address, *big.Int, error) {
   713  	var out []interface{}
   714  	err := _Binding.contract.Call(opts, &out, "royaltyInfo", tokenId, salePrice)
   715  
   716  	if err != nil {
   717  		return *new(common.Address), *new(*big.Int), err
   718  	}
   719  
   720  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   721  	out1 := *abi.ConvertType(out[1], new(*big.Int)).(**big.Int)
   722  
   723  	return out0, out1, err
   724  
   725  }
   726  
   727  // RoyaltyInfo is a free data retrieval call binding the contract method 0x2a55205a.
   728  //
   729  // Solidity: function royaltyInfo(uint256 tokenId, uint256 salePrice) view returns(address, uint256)
   730  func (_Binding *BindingSession) RoyaltyInfo(tokenId *big.Int, salePrice *big.Int) (common.Address, *big.Int, error) {
   731  	return _Binding.Contract.RoyaltyInfo(&_Binding.CallOpts, tokenId, salePrice)
   732  }
   733  
   734  // RoyaltyInfo is a free data retrieval call binding the contract method 0x2a55205a.
   735  //
   736  // Solidity: function royaltyInfo(uint256 tokenId, uint256 salePrice) view returns(address, uint256)
   737  func (_Binding *BindingCallerSession) RoyaltyInfo(tokenId *big.Int, salePrice *big.Int) (common.Address, *big.Int, error) {
   738  	return _Binding.Contract.RoyaltyInfo(&_Binding.CallOpts, tokenId, salePrice)
   739  }
   740  
   741  // Size is a free data retrieval call binding the contract method 0x949d225d.
   742  //
   743  // Solidity: function size() view returns(uint256)
   744  func (_Binding *BindingCaller) Size(opts *bind.CallOpts) (*big.Int, error) {
   745  	var out []interface{}
   746  	err := _Binding.contract.Call(opts, &out, "size")
   747  
   748  	if err != nil {
   749  		return *new(*big.Int), err
   750  	}
   751  
   752  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   753  
   754  	return out0, err
   755  
   756  }
   757  
   758  // Size is a free data retrieval call binding the contract method 0x949d225d.
   759  //
   760  // Solidity: function size() view returns(uint256)
   761  func (_Binding *BindingSession) Size() (*big.Int, error) {
   762  	return _Binding.Contract.Size(&_Binding.CallOpts)
   763  }
   764  
   765  // Size is a free data retrieval call binding the contract method 0x949d225d.
   766  //
   767  // Solidity: function size() view returns(uint256)
   768  func (_Binding *BindingCallerSession) Size() (*big.Int, error) {
   769  	return _Binding.Contract.Size(&_Binding.CallOpts)
   770  }
   771  
   772  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
   773  //
   774  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
   775  func (_Binding *BindingCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
   776  	var out []interface{}
   777  	err := _Binding.contract.Call(opts, &out, "supportsInterface", interfaceId)
   778  
   779  	if err != nil {
   780  		return *new(bool), err
   781  	}
   782  
   783  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   784  
   785  	return out0, err
   786  
   787  }
   788  
   789  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
   790  //
   791  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
   792  func (_Binding *BindingSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
   793  	return _Binding.Contract.SupportsInterface(&_Binding.CallOpts, interfaceId)
   794  }
   795  
   796  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
   797  //
   798  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
   799  func (_Binding *BindingCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
   800  	return _Binding.Contract.SupportsInterface(&_Binding.CallOpts, interfaceId)
   801  }
   802  
   803  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
   804  //
   805  // Solidity: function symbol() view returns(string)
   806  func (_Binding *BindingCaller) Symbol(opts *bind.CallOpts) (string, error) {
   807  	var out []interface{}
   808  	err := _Binding.contract.Call(opts, &out, "symbol")
   809  
   810  	if err != nil {
   811  		return *new(string), err
   812  	}
   813  
   814  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   815  
   816  	return out0, err
   817  
   818  }
   819  
   820  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
   821  //
   822  // Solidity: function symbol() view returns(string)
   823  func (_Binding *BindingSession) Symbol() (string, error) {
   824  	return _Binding.Contract.Symbol(&_Binding.CallOpts)
   825  }
   826  
   827  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
   828  //
   829  // Solidity: function symbol() view returns(string)
   830  func (_Binding *BindingCallerSession) Symbol() (string, error) {
   831  	return _Binding.Contract.Symbol(&_Binding.CallOpts)
   832  }
   833  
   834  // Token is a free data retrieval call binding the contract method 0xfc0c546a.
   835  //
   836  // Solidity: function token() view returns(address)
   837  func (_Binding *BindingCaller) Token(opts *bind.CallOpts) (common.Address, error) {
   838  	var out []interface{}
   839  	err := _Binding.contract.Call(opts, &out, "token")
   840  
   841  	if err != nil {
   842  		return *new(common.Address), err
   843  	}
   844  
   845  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   846  
   847  	return out0, err
   848  
   849  }
   850  
   851  // Token is a free data retrieval call binding the contract method 0xfc0c546a.
   852  //
   853  // Solidity: function token() view returns(address)
   854  func (_Binding *BindingSession) Token() (common.Address, error) {
   855  	return _Binding.Contract.Token(&_Binding.CallOpts)
   856  }
   857  
   858  // Token is a free data retrieval call binding the contract method 0xfc0c546a.
   859  //
   860  // Solidity: function token() view returns(address)
   861  func (_Binding *BindingCallerSession) Token() (common.Address, error) {
   862  	return _Binding.Contract.Token(&_Binding.CallOpts)
   863  }
   864  
   865  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
   866  //
   867  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
   868  func (_Binding *BindingCaller) TokenURI(opts *bind.CallOpts, tokenId *big.Int) (string, error) {
   869  	var out []interface{}
   870  	err := _Binding.contract.Call(opts, &out, "tokenURI", tokenId)
   871  
   872  	if err != nil {
   873  		return *new(string), err
   874  	}
   875  
   876  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   877  
   878  	return out0, err
   879  
   880  }
   881  
   882  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
   883  //
   884  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
   885  func (_Binding *BindingSession) TokenURI(tokenId *big.Int) (string, error) {
   886  	return _Binding.Contract.TokenURI(&_Binding.CallOpts, tokenId)
   887  }
   888  
   889  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
   890  //
   891  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
   892  func (_Binding *BindingCallerSession) TokenURI(tokenId *big.Int) (string, error) {
   893  	return _Binding.Contract.TokenURI(&_Binding.CallOpts, tokenId)
   894  }
   895  
   896  // TokenURIFallback is a free data retrieval call binding the contract method 0xc7c8f564.
   897  //
   898  // Solidity: function tokenURIFallback(uint256 tokenId) view returns(string)
   899  func (_Binding *BindingCaller) TokenURIFallback(opts *bind.CallOpts, tokenId *big.Int) (string, error) {
   900  	var out []interface{}
   901  	err := _Binding.contract.Call(opts, &out, "tokenURIFallback", tokenId)
   902  
   903  	if err != nil {
   904  		return *new(string), err
   905  	}
   906  
   907  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   908  
   909  	return out0, err
   910  
   911  }
   912  
   913  // TokenURIFallback is a free data retrieval call binding the contract method 0xc7c8f564.
   914  //
   915  // Solidity: function tokenURIFallback(uint256 tokenId) view returns(string)
   916  func (_Binding *BindingSession) TokenURIFallback(tokenId *big.Int) (string, error) {
   917  	return _Binding.Contract.TokenURIFallback(&_Binding.CallOpts, tokenId)
   918  }
   919  
   920  // TokenURIFallback is a free data retrieval call binding the contract method 0xc7c8f564.
   921  //
   922  // Solidity: function tokenURIFallback(uint256 tokenId) view returns(string)
   923  func (_Binding *BindingCallerSession) TokenURIFallback(tokenId *big.Int) (string, error) {
   924  	return _Binding.Contract.TokenURIFallback(&_Binding.CallOpts, tokenId)
   925  }
   926  
   927  // Total is a free data retrieval call binding the contract method 0x2ddbd13a.
   928  //
   929  // Solidity: function total() view returns(uint256)
   930  func (_Binding *BindingCaller) Total(opts *bind.CallOpts) (*big.Int, error) {
   931  	var out []interface{}
   932  	err := _Binding.contract.Call(opts, &out, "total")
   933  
   934  	if err != nil {
   935  		return *new(*big.Int), err
   936  	}
   937  
   938  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   939  
   940  	return out0, err
   941  
   942  }
   943  
   944  // Total is a free data retrieval call binding the contract method 0x2ddbd13a.
   945  //
   946  // Solidity: function total() view returns(uint256)
   947  func (_Binding *BindingSession) Total() (*big.Int, error) {
   948  	return _Binding.Contract.Total(&_Binding.CallOpts)
   949  }
   950  
   951  // Total is a free data retrieval call binding the contract method 0x2ddbd13a.
   952  //
   953  // Solidity: function total() view returns(uint256)
   954  func (_Binding *BindingCallerSession) Total() (*big.Int, error) {
   955  	return _Binding.Contract.Total(&_Binding.CallOpts)
   956  }
   957  
   958  // Uri is a free data retrieval call binding the contract method 0xeac989f8.
   959  //
   960  // Solidity: function uri() view returns(string)
   961  func (_Binding *BindingCaller) Uri(opts *bind.CallOpts) (string, error) {
   962  	var out []interface{}
   963  	err := _Binding.contract.Call(opts, &out, "uri")
   964  
   965  	if err != nil {
   966  		return *new(string), err
   967  	}
   968  
   969  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   970  
   971  	return out0, err
   972  
   973  }
   974  
   975  // Uri is a free data retrieval call binding the contract method 0xeac989f8.
   976  //
   977  // Solidity: function uri() view returns(string)
   978  func (_Binding *BindingSession) Uri() (string, error) {
   979  	return _Binding.Contract.Uri(&_Binding.CallOpts)
   980  }
   981  
   982  // Uri is a free data retrieval call binding the contract method 0xeac989f8.
   983  //
   984  // Solidity: function uri() view returns(string)
   985  func (_Binding *BindingCallerSession) Uri() (string, error) {
   986  	return _Binding.Contract.Uri(&_Binding.CallOpts)
   987  }
   988  
   989  // UriFallback is a free data retrieval call binding the contract method 0x6dd8e21a.
   990  //
   991  // Solidity: function uriFallback() view returns(string)
   992  func (_Binding *BindingCaller) UriFallback(opts *bind.CallOpts) (string, error) {
   993  	var out []interface{}
   994  	err := _Binding.contract.Call(opts, &out, "uriFallback")
   995  
   996  	if err != nil {
   997  		return *new(string), err
   998  	}
   999  
  1000  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
  1001  
  1002  	return out0, err
  1003  
  1004  }
  1005  
  1006  // UriFallback is a free data retrieval call binding the contract method 0x6dd8e21a.
  1007  //
  1008  // Solidity: function uriFallback() view returns(string)
  1009  func (_Binding *BindingSession) UriFallback() (string, error) {
  1010  	return _Binding.Contract.UriFallback(&_Binding.CallOpts)
  1011  }
  1012  
  1013  // UriFallback is a free data retrieval call binding the contract method 0x6dd8e21a.
  1014  //
  1015  // Solidity: function uriFallback() view returns(string)
  1016  func (_Binding *BindingCallerSession) UriFallback() (string, error) {
  1017  	return _Binding.Contract.UriFallback(&_Binding.CallOpts)
  1018  }
  1019  
  1020  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  1021  //
  1022  // Solidity: function approve(address to, uint256 tokenId) returns()
  1023  func (_Binding *BindingTransactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1024  	return _Binding.contract.Transact(opts, "approve", to, tokenId)
  1025  }
  1026  
  1027  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  1028  //
  1029  // Solidity: function approve(address to, uint256 tokenId) returns()
  1030  func (_Binding *BindingSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1031  	return _Binding.Contract.Approve(&_Binding.TransactOpts, to, tokenId)
  1032  }
  1033  
  1034  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  1035  //
  1036  // Solidity: function approve(address to, uint256 tokenId) returns()
  1037  func (_Binding *BindingTransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1038  	return _Binding.Contract.Approve(&_Binding.TransactOpts, to, tokenId)
  1039  }
  1040  
  1041  // Freeze is a paid mutator transaction binding the contract method 0x62a5af3b.
  1042  //
  1043  // Solidity: function freeze() returns()
  1044  func (_Binding *BindingTransactor) Freeze(opts *bind.TransactOpts) (*types.Transaction, error) {
  1045  	return _Binding.contract.Transact(opts, "freeze")
  1046  }
  1047  
  1048  // Freeze is a paid mutator transaction binding the contract method 0x62a5af3b.
  1049  //
  1050  // Solidity: function freeze() returns()
  1051  func (_Binding *BindingSession) Freeze() (*types.Transaction, error) {
  1052  	return _Binding.Contract.Freeze(&_Binding.TransactOpts)
  1053  }
  1054  
  1055  // Freeze is a paid mutator transaction binding the contract method 0x62a5af3b.
  1056  //
  1057  // Solidity: function freeze() returns()
  1058  func (_Binding *BindingTransactorSession) Freeze() (*types.Transaction, error) {
  1059  	return _Binding.Contract.Freeze(&_Binding.TransactOpts)
  1060  }
  1061  
  1062  // Mint is a paid mutator transaction binding the contract method 0xa0712d68.
  1063  //
  1064  // Solidity: function mint(uint256 amount) payable returns()
  1065  func (_Binding *BindingTransactor) Mint(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) {
  1066  	return _Binding.contract.Transact(opts, "mint", amount)
  1067  }
  1068  
  1069  // Mint is a paid mutator transaction binding the contract method 0xa0712d68.
  1070  //
  1071  // Solidity: function mint(uint256 amount) payable returns()
  1072  func (_Binding *BindingSession) Mint(amount *big.Int) (*types.Transaction, error) {
  1073  	return _Binding.Contract.Mint(&_Binding.TransactOpts, amount)
  1074  }
  1075  
  1076  // Mint is a paid mutator transaction binding the contract method 0xa0712d68.
  1077  //
  1078  // Solidity: function mint(uint256 amount) payable returns()
  1079  func (_Binding *BindingTransactorSession) Mint(amount *big.Int) (*types.Transaction, error) {
  1080  	return _Binding.Contract.Mint(&_Binding.TransactOpts, amount)
  1081  }
  1082  
  1083  // MintOwner is a paid mutator transaction binding the contract method 0x33f88d22.
  1084  //
  1085  // Solidity: function mintOwner(uint256 amount) returns()
  1086  func (_Binding *BindingTransactor) MintOwner(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) {
  1087  	return _Binding.contract.Transact(opts, "mintOwner", amount)
  1088  }
  1089  
  1090  // MintOwner is a paid mutator transaction binding the contract method 0x33f88d22.
  1091  //
  1092  // Solidity: function mintOwner(uint256 amount) returns()
  1093  func (_Binding *BindingSession) MintOwner(amount *big.Int) (*types.Transaction, error) {
  1094  	return _Binding.Contract.MintOwner(&_Binding.TransactOpts, amount)
  1095  }
  1096  
  1097  // MintOwner is a paid mutator transaction binding the contract method 0x33f88d22.
  1098  //
  1099  // Solidity: function mintOwner(uint256 amount) returns()
  1100  func (_Binding *BindingTransactorSession) MintOwner(amount *big.Int) (*types.Transaction, error) {
  1101  	return _Binding.Contract.MintOwner(&_Binding.TransactOpts, amount)
  1102  }
  1103  
  1104  // Redeem is a paid mutator transaction binding the contract method 0xdb006a75.
  1105  //
  1106  // Solidity: function redeem(uint256 tokenId) returns()
  1107  func (_Binding *BindingTransactor) Redeem(opts *bind.TransactOpts, tokenId *big.Int) (*types.Transaction, error) {
  1108  	return _Binding.contract.Transact(opts, "redeem", tokenId)
  1109  }
  1110  
  1111  // Redeem is a paid mutator transaction binding the contract method 0xdb006a75.
  1112  //
  1113  // Solidity: function redeem(uint256 tokenId) returns()
  1114  func (_Binding *BindingSession) Redeem(tokenId *big.Int) (*types.Transaction, error) {
  1115  	return _Binding.Contract.Redeem(&_Binding.TransactOpts, tokenId)
  1116  }
  1117  
  1118  // Redeem is a paid mutator transaction binding the contract method 0xdb006a75.
  1119  //
  1120  // Solidity: function redeem(uint256 tokenId) returns()
  1121  func (_Binding *BindingTransactorSession) Redeem(tokenId *big.Int) (*types.Transaction, error) {
  1122  	return _Binding.Contract.Redeem(&_Binding.TransactOpts, tokenId)
  1123  }
  1124  
  1125  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  1126  //
  1127  // Solidity: function renounceOwnership() returns()
  1128  func (_Binding *BindingTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
  1129  	return _Binding.contract.Transact(opts, "renounceOwnership")
  1130  }
  1131  
  1132  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  1133  //
  1134  // Solidity: function renounceOwnership() returns()
  1135  func (_Binding *BindingSession) RenounceOwnership() (*types.Transaction, error) {
  1136  	return _Binding.Contract.RenounceOwnership(&_Binding.TransactOpts)
  1137  }
  1138  
  1139  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  1140  //
  1141  // Solidity: function renounceOwnership() returns()
  1142  func (_Binding *BindingTransactorSession) RenounceOwnership() (*types.Transaction, error) {
  1143  	return _Binding.Contract.RenounceOwnership(&_Binding.TransactOpts)
  1144  }
  1145  
  1146  // Reveal is a paid mutator transaction binding the contract method 0xc2ca0ac5.
  1147  //
  1148  // Solidity: function reveal(uint256 tokenId) returns(bytes32)
  1149  func (_Binding *BindingTransactor) Reveal(opts *bind.TransactOpts, tokenId *big.Int) (*types.Transaction, error) {
  1150  	return _Binding.contract.Transact(opts, "reveal", tokenId)
  1151  }
  1152  
  1153  // Reveal is a paid mutator transaction binding the contract method 0xc2ca0ac5.
  1154  //
  1155  // Solidity: function reveal(uint256 tokenId) returns(bytes32)
  1156  func (_Binding *BindingSession) Reveal(tokenId *big.Int) (*types.Transaction, error) {
  1157  	return _Binding.Contract.Reveal(&_Binding.TransactOpts, tokenId)
  1158  }
  1159  
  1160  // Reveal is a paid mutator transaction binding the contract method 0xc2ca0ac5.
  1161  //
  1162  // Solidity: function reveal(uint256 tokenId) returns(bytes32)
  1163  func (_Binding *BindingTransactorSession) Reveal(tokenId *big.Int) (*types.Transaction, error) {
  1164  	return _Binding.Contract.Reveal(&_Binding.TransactOpts, tokenId)
  1165  }
  1166  
  1167  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
  1168  //
  1169  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
  1170  func (_Binding *BindingTransactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1171  	return _Binding.contract.Transact(opts, "safeTransferFrom", from, to, tokenId)
  1172  }
  1173  
  1174  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
  1175  //
  1176  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
  1177  func (_Binding *BindingSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1178  	return _Binding.Contract.SafeTransferFrom(&_Binding.TransactOpts, from, to, tokenId)
  1179  }
  1180  
  1181  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
  1182  //
  1183  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
  1184  func (_Binding *BindingTransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1185  	return _Binding.Contract.SafeTransferFrom(&_Binding.TransactOpts, from, to, tokenId)
  1186  }
  1187  
  1188  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
  1189  //
  1190  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
  1191  func (_Binding *BindingTransactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
  1192  	return _Binding.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, _data)
  1193  }
  1194  
  1195  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
  1196  //
  1197  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
  1198  func (_Binding *BindingSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
  1199  	return _Binding.Contract.SafeTransferFrom0(&_Binding.TransactOpts, from, to, tokenId, _data)
  1200  }
  1201  
  1202  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
  1203  //
  1204  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
  1205  func (_Binding *BindingTransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
  1206  	return _Binding.Contract.SafeTransferFrom0(&_Binding.TransactOpts, from, to, tokenId, _data)
  1207  }
  1208  
  1209  // SetAllocation is a paid mutator transaction binding the contract method 0x970a1fa8.
  1210  //
  1211  // Solidity: function setAllocation(string allocation_) returns()
  1212  func (_Binding *BindingTransactor) SetAllocation(opts *bind.TransactOpts, allocation_ string) (*types.Transaction, error) {
  1213  	return _Binding.contract.Transact(opts, "setAllocation", allocation_)
  1214  }
  1215  
  1216  // SetAllocation is a paid mutator transaction binding the contract method 0x970a1fa8.
  1217  //
  1218  // Solidity: function setAllocation(string allocation_) returns()
  1219  func (_Binding *BindingSession) SetAllocation(allocation_ string) (*types.Transaction, error) {
  1220  	return _Binding.Contract.SetAllocation(&_Binding.TransactOpts, allocation_)
  1221  }
  1222  
  1223  // SetAllocation is a paid mutator transaction binding the contract method 0x970a1fa8.
  1224  //
  1225  // Solidity: function setAllocation(string allocation_) returns()
  1226  func (_Binding *BindingTransactorSession) SetAllocation(allocation_ string) (*types.Transaction, error) {
  1227  	return _Binding.Contract.SetAllocation(&_Binding.TransactOpts, allocation_)
  1228  }
  1229  
  1230  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
  1231  //
  1232  // Solidity: function setApprovalForAll(address operator, bool approved) returns()
  1233  func (_Binding *BindingTransactor) SetApprovalForAll(opts *bind.TransactOpts, operator common.Address, approved bool) (*types.Transaction, error) {
  1234  	return _Binding.contract.Transact(opts, "setApprovalForAll", operator, approved)
  1235  }
  1236  
  1237  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
  1238  //
  1239  // Solidity: function setApprovalForAll(address operator, bool approved) returns()
  1240  func (_Binding *BindingSession) SetApprovalForAll(operator common.Address, approved bool) (*types.Transaction, error) {
  1241  	return _Binding.Contract.SetApprovalForAll(&_Binding.TransactOpts, operator, approved)
  1242  }
  1243  
  1244  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
  1245  //
  1246  // Solidity: function setApprovalForAll(address operator, bool approved) returns()
  1247  func (_Binding *BindingTransactorSession) SetApprovalForAll(operator common.Address, approved bool) (*types.Transaction, error) {
  1248  	return _Binding.Contract.SetApprovalForAll(&_Binding.TransactOpts, operator, approved)
  1249  }
  1250  
  1251  // SetClosed is a paid mutator transaction binding the contract method 0x2b079e9c.
  1252  //
  1253  // Solidity: function setClosed(string closed_) returns()
  1254  func (_Binding *BindingTransactor) SetClosed(opts *bind.TransactOpts, closed_ string) (*types.Transaction, error) {
  1255  	return _Binding.contract.Transact(opts, "setClosed", closed_)
  1256  }
  1257  
  1258  // SetClosed is a paid mutator transaction binding the contract method 0x2b079e9c.
  1259  //
  1260  // Solidity: function setClosed(string closed_) returns()
  1261  func (_Binding *BindingSession) SetClosed(closed_ string) (*types.Transaction, error) {
  1262  	return _Binding.Contract.SetClosed(&_Binding.TransactOpts, closed_)
  1263  }
  1264  
  1265  // SetClosed is a paid mutator transaction binding the contract method 0x2b079e9c.
  1266  //
  1267  // Solidity: function setClosed(string closed_) returns()
  1268  func (_Binding *BindingTransactorSession) SetClosed(closed_ string) (*types.Transaction, error) {
  1269  	return _Binding.Contract.SetClosed(&_Binding.TransactOpts, closed_)
  1270  }
  1271  
  1272  // SetMintable is a paid mutator transaction binding the contract method 0x285d70d4.
  1273  //
  1274  // Solidity: function setMintable(bool status_) returns()
  1275  func (_Binding *BindingTransactor) SetMintable(opts *bind.TransactOpts, status_ bool) (*types.Transaction, error) {
  1276  	return _Binding.contract.Transact(opts, "setMintable", status_)
  1277  }
  1278  
  1279  // SetMintable is a paid mutator transaction binding the contract method 0x285d70d4.
  1280  //
  1281  // Solidity: function setMintable(bool status_) returns()
  1282  func (_Binding *BindingSession) SetMintable(status_ bool) (*types.Transaction, error) {
  1283  	return _Binding.Contract.SetMintable(&_Binding.TransactOpts, status_)
  1284  }
  1285  
  1286  // SetMintable is a paid mutator transaction binding the contract method 0x285d70d4.
  1287  //
  1288  // Solidity: function setMintable(bool status_) returns()
  1289  func (_Binding *BindingTransactorSession) SetMintable(status_ bool) (*types.Transaction, error) {
  1290  	return _Binding.Contract.SetMintable(&_Binding.TransactOpts, status_)
  1291  }
  1292  
  1293  // SetOpened is a paid mutator transaction binding the contract method 0x8967032b.
  1294  //
  1295  // Solidity: function setOpened(string opened_) returns()
  1296  func (_Binding *BindingTransactor) SetOpened(opts *bind.TransactOpts, opened_ string) (*types.Transaction, error) {
  1297  	return _Binding.contract.Transact(opts, "setOpened", opened_)
  1298  }
  1299  
  1300  // SetOpened is a paid mutator transaction binding the contract method 0x8967032b.
  1301  //
  1302  // Solidity: function setOpened(string opened_) returns()
  1303  func (_Binding *BindingSession) SetOpened(opened_ string) (*types.Transaction, error) {
  1304  	return _Binding.Contract.SetOpened(&_Binding.TransactOpts, opened_)
  1305  }
  1306  
  1307  // SetOpened is a paid mutator transaction binding the contract method 0x8967032b.
  1308  //
  1309  // Solidity: function setOpened(string opened_) returns()
  1310  func (_Binding *BindingTransactorSession) SetOpened(opened_ string) (*types.Transaction, error) {
  1311  	return _Binding.Contract.SetOpened(&_Binding.TransactOpts, opened_)
  1312  }
  1313  
  1314  // SetReceiver is a paid mutator transaction binding the contract method 0x718da7ee.
  1315  //
  1316  // Solidity: function setReceiver(address receiver_) returns()
  1317  func (_Binding *BindingTransactor) SetReceiver(opts *bind.TransactOpts, receiver_ common.Address) (*types.Transaction, error) {
  1318  	return _Binding.contract.Transact(opts, "setReceiver", receiver_)
  1319  }
  1320  
  1321  // SetReceiver is a paid mutator transaction binding the contract method 0x718da7ee.
  1322  //
  1323  // Solidity: function setReceiver(address receiver_) returns()
  1324  func (_Binding *BindingSession) SetReceiver(receiver_ common.Address) (*types.Transaction, error) {
  1325  	return _Binding.Contract.SetReceiver(&_Binding.TransactOpts, receiver_)
  1326  }
  1327  
  1328  // SetReceiver is a paid mutator transaction binding the contract method 0x718da7ee.
  1329  //
  1330  // Solidity: function setReceiver(address receiver_) returns()
  1331  func (_Binding *BindingTransactorSession) SetReceiver(receiver_ common.Address) (*types.Transaction, error) {
  1332  	return _Binding.Contract.SetReceiver(&_Binding.TransactOpts, receiver_)
  1333  }
  1334  
  1335  // SetRoyalty is a paid mutator transaction binding the contract method 0x4209a2e1.
  1336  //
  1337  // Solidity: function setRoyalty(uint256 royalty_) returns()
  1338  func (_Binding *BindingTransactor) SetRoyalty(opts *bind.TransactOpts, royalty_ *big.Int) (*types.Transaction, error) {
  1339  	return _Binding.contract.Transact(opts, "setRoyalty", royalty_)
  1340  }
  1341  
  1342  // SetRoyalty is a paid mutator transaction binding the contract method 0x4209a2e1.
  1343  //
  1344  // Solidity: function setRoyalty(uint256 royalty_) returns()
  1345  func (_Binding *BindingSession) SetRoyalty(royalty_ *big.Int) (*types.Transaction, error) {
  1346  	return _Binding.Contract.SetRoyalty(&_Binding.TransactOpts, royalty_)
  1347  }
  1348  
  1349  // SetRoyalty is a paid mutator transaction binding the contract method 0x4209a2e1.
  1350  //
  1351  // Solidity: function setRoyalty(uint256 royalty_) returns()
  1352  func (_Binding *BindingTransactorSession) SetRoyalty(royalty_ *big.Int) (*types.Transaction, error) {
  1353  	return _Binding.Contract.SetRoyalty(&_Binding.TransactOpts, royalty_)
  1354  }
  1355  
  1356  // SetURI is a paid mutator transaction binding the contract method 0x02fe5305.
  1357  //
  1358  // Solidity: function setURI(string uri_) returns()
  1359  func (_Binding *BindingTransactor) SetURI(opts *bind.TransactOpts, uri_ string) (*types.Transaction, error) {
  1360  	return _Binding.contract.Transact(opts, "setURI", uri_)
  1361  }
  1362  
  1363  // SetURI is a paid mutator transaction binding the contract method 0x02fe5305.
  1364  //
  1365  // Solidity: function setURI(string uri_) returns()
  1366  func (_Binding *BindingSession) SetURI(uri_ string) (*types.Transaction, error) {
  1367  	return _Binding.Contract.SetURI(&_Binding.TransactOpts, uri_)
  1368  }
  1369  
  1370  // SetURI is a paid mutator transaction binding the contract method 0x02fe5305.
  1371  //
  1372  // Solidity: function setURI(string uri_) returns()
  1373  func (_Binding *BindingTransactorSession) SetURI(uri_ string) (*types.Transaction, error) {
  1374  	return _Binding.Contract.SetURI(&_Binding.TransactOpts, uri_)
  1375  }
  1376  
  1377  // SetURIFallback is a paid mutator transaction binding the contract method 0x0c8ab6e1.
  1378  //
  1379  // Solidity: function setURIFallback(string uri_) returns()
  1380  func (_Binding *BindingTransactor) SetURIFallback(opts *bind.TransactOpts, uri_ string) (*types.Transaction, error) {
  1381  	return _Binding.contract.Transact(opts, "setURIFallback", uri_)
  1382  }
  1383  
  1384  // SetURIFallback is a paid mutator transaction binding the contract method 0x0c8ab6e1.
  1385  //
  1386  // Solidity: function setURIFallback(string uri_) returns()
  1387  func (_Binding *BindingSession) SetURIFallback(uri_ string) (*types.Transaction, error) {
  1388  	return _Binding.Contract.SetURIFallback(&_Binding.TransactOpts, uri_)
  1389  }
  1390  
  1391  // SetURIFallback is a paid mutator transaction binding the contract method 0x0c8ab6e1.
  1392  //
  1393  // Solidity: function setURIFallback(string uri_) returns()
  1394  func (_Binding *BindingTransactorSession) SetURIFallback(uri_ string) (*types.Transaction, error) {
  1395  	return _Binding.Contract.SetURIFallback(&_Binding.TransactOpts, uri_)
  1396  }
  1397  
  1398  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  1399  //
  1400  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
  1401  func (_Binding *BindingTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1402  	return _Binding.contract.Transact(opts, "transferFrom", from, to, tokenId)
  1403  }
  1404  
  1405  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  1406  //
  1407  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
  1408  func (_Binding *BindingSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1409  	return _Binding.Contract.TransferFrom(&_Binding.TransactOpts, from, to, tokenId)
  1410  }
  1411  
  1412  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  1413  //
  1414  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
  1415  func (_Binding *BindingTransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1416  	return _Binding.Contract.TransferFrom(&_Binding.TransactOpts, from, to, tokenId)
  1417  }
  1418  
  1419  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  1420  //
  1421  // Solidity: function transferOwnership(address newOwner) returns()
  1422  func (_Binding *BindingTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  1423  	return _Binding.contract.Transact(opts, "transferOwnership", newOwner)
  1424  }
  1425  
  1426  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  1427  //
  1428  // Solidity: function transferOwnership(address newOwner) returns()
  1429  func (_Binding *BindingSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  1430  	return _Binding.Contract.TransferOwnership(&_Binding.TransactOpts, newOwner)
  1431  }
  1432  
  1433  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  1434  //
  1435  // Solidity: function transferOwnership(address newOwner) returns()
  1436  func (_Binding *BindingTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  1437  	return _Binding.Contract.TransferOwnership(&_Binding.TransactOpts, newOwner)
  1438  }
  1439  
  1440  // Withdraw is a paid mutator transaction binding the contract method 0x3ccfd60b.
  1441  //
  1442  // Solidity: function withdraw() returns()
  1443  func (_Binding *BindingTransactor) Withdraw(opts *bind.TransactOpts) (*types.Transaction, error) {
  1444  	return _Binding.contract.Transact(opts, "withdraw")
  1445  }
  1446  
  1447  // Withdraw is a paid mutator transaction binding the contract method 0x3ccfd60b.
  1448  //
  1449  // Solidity: function withdraw() returns()
  1450  func (_Binding *BindingSession) Withdraw() (*types.Transaction, error) {
  1451  	return _Binding.Contract.Withdraw(&_Binding.TransactOpts)
  1452  }
  1453  
  1454  // Withdraw is a paid mutator transaction binding the contract method 0x3ccfd60b.
  1455  //
  1456  // Solidity: function withdraw() returns()
  1457  func (_Binding *BindingTransactorSession) Withdraw() (*types.Transaction, error) {
  1458  	return _Binding.Contract.Withdraw(&_Binding.TransactOpts)
  1459  }
  1460  
  1461  // BindingApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the Binding contract.
  1462  type BindingApprovalIterator struct {
  1463  	Event *BindingApproval // Event containing the contract specifics and raw log
  1464  
  1465  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1466  	event    string              // Event name to use for unpacking event data
  1467  
  1468  	logs chan types.Log        // Log channel receiving the found contract events
  1469  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1470  	done bool                  // Whether the subscription completed delivering logs
  1471  	fail error                 // Occurred error to stop iteration
  1472  }
  1473  
  1474  // Next advances the iterator to the subsequent event, returning whether there
  1475  // are any more events found. In case of a retrieval or parsing error, false is
  1476  // returned and Error() can be queried for the exact failure.
  1477  func (it *BindingApprovalIterator) Next() bool {
  1478  	// If the iterator failed, stop iterating
  1479  	if it.fail != nil {
  1480  		return false
  1481  	}
  1482  	// If the iterator completed, deliver directly whatever's available
  1483  	if it.done {
  1484  		select {
  1485  		case log := <-it.logs:
  1486  			it.Event = new(BindingApproval)
  1487  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1488  				it.fail = err
  1489  				return false
  1490  			}
  1491  			it.Event.Raw = log
  1492  			return true
  1493  
  1494  		default:
  1495  			return false
  1496  		}
  1497  	}
  1498  	// Iterator still in progress, wait for either a data or an error event
  1499  	select {
  1500  	case log := <-it.logs:
  1501  		it.Event = new(BindingApproval)
  1502  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1503  			it.fail = err
  1504  			return false
  1505  		}
  1506  		it.Event.Raw = log
  1507  		return true
  1508  
  1509  	case err := <-it.sub.Err():
  1510  		it.done = true
  1511  		it.fail = err
  1512  		return it.Next()
  1513  	}
  1514  }
  1515  
  1516  // Error returns any retrieval or parsing error occurred during filtering.
  1517  func (it *BindingApprovalIterator) Error() error {
  1518  	return it.fail
  1519  }
  1520  
  1521  // Close terminates the iteration process, releasing any pending underlying
  1522  // resources.
  1523  func (it *BindingApprovalIterator) Close() error {
  1524  	it.sub.Unsubscribe()
  1525  	return nil
  1526  }
  1527  
  1528  // BindingApproval represents a Approval event raised by the Binding contract.
  1529  type BindingApproval struct {
  1530  	Owner    common.Address
  1531  	Approved common.Address
  1532  	TokenId  *big.Int
  1533  	Raw      types.Log // Blockchain specific contextual infos
  1534  }
  1535  
  1536  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  1537  //
  1538  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  1539  func (_Binding *BindingFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*BindingApprovalIterator, error) {
  1540  
  1541  	var ownerRule []interface{}
  1542  	for _, ownerItem := range owner {
  1543  		ownerRule = append(ownerRule, ownerItem)
  1544  	}
  1545  	var approvedRule []interface{}
  1546  	for _, approvedItem := range approved {
  1547  		approvedRule = append(approvedRule, approvedItem)
  1548  	}
  1549  	var tokenIdRule []interface{}
  1550  	for _, tokenIdItem := range tokenId {
  1551  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  1552  	}
  1553  
  1554  	logs, sub, err := _Binding.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
  1555  	if err != nil {
  1556  		return nil, err
  1557  	}
  1558  	return &BindingApprovalIterator{contract: _Binding.contract, event: "Approval", logs: logs, sub: sub}, nil
  1559  }
  1560  
  1561  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  1562  //
  1563  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  1564  func (_Binding *BindingFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *BindingApproval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) {
  1565  
  1566  	var ownerRule []interface{}
  1567  	for _, ownerItem := range owner {
  1568  		ownerRule = append(ownerRule, ownerItem)
  1569  	}
  1570  	var approvedRule []interface{}
  1571  	for _, approvedItem := range approved {
  1572  		approvedRule = append(approvedRule, approvedItem)
  1573  	}
  1574  	var tokenIdRule []interface{}
  1575  	for _, tokenIdItem := range tokenId {
  1576  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  1577  	}
  1578  
  1579  	logs, sub, err := _Binding.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
  1580  	if err != nil {
  1581  		return nil, err
  1582  	}
  1583  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1584  		defer sub.Unsubscribe()
  1585  		for {
  1586  			select {
  1587  			case log := <-logs:
  1588  				// New log arrived, parse the event and forward to the user
  1589  				event := new(BindingApproval)
  1590  				if err := _Binding.contract.UnpackLog(event, "Approval", log); err != nil {
  1591  					return err
  1592  				}
  1593  				event.Raw = log
  1594  
  1595  				select {
  1596  				case sink <- event:
  1597  				case err := <-sub.Err():
  1598  					return err
  1599  				case <-quit:
  1600  					return nil
  1601  				}
  1602  			case err := <-sub.Err():
  1603  				return err
  1604  			case <-quit:
  1605  				return nil
  1606  			}
  1607  		}
  1608  	}), nil
  1609  }
  1610  
  1611  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  1612  //
  1613  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  1614  func (_Binding *BindingFilterer) ParseApproval(log types.Log) (*BindingApproval, error) {
  1615  	event := new(BindingApproval)
  1616  	if err := _Binding.contract.UnpackLog(event, "Approval", log); err != nil {
  1617  		return nil, err
  1618  	}
  1619  	event.Raw = log
  1620  	return event, nil
  1621  }
  1622  
  1623  // BindingApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the Binding contract.
  1624  type BindingApprovalForAllIterator struct {
  1625  	Event *BindingApprovalForAll // Event containing the contract specifics and raw log
  1626  
  1627  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1628  	event    string              // Event name to use for unpacking event data
  1629  
  1630  	logs chan types.Log        // Log channel receiving the found contract events
  1631  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1632  	done bool                  // Whether the subscription completed delivering logs
  1633  	fail error                 // Occurred error to stop iteration
  1634  }
  1635  
  1636  // Next advances the iterator to the subsequent event, returning whether there
  1637  // are any more events found. In case of a retrieval or parsing error, false is
  1638  // returned and Error() can be queried for the exact failure.
  1639  func (it *BindingApprovalForAllIterator) Next() bool {
  1640  	// If the iterator failed, stop iterating
  1641  	if it.fail != nil {
  1642  		return false
  1643  	}
  1644  	// If the iterator completed, deliver directly whatever's available
  1645  	if it.done {
  1646  		select {
  1647  		case log := <-it.logs:
  1648  			it.Event = new(BindingApprovalForAll)
  1649  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1650  				it.fail = err
  1651  				return false
  1652  			}
  1653  			it.Event.Raw = log
  1654  			return true
  1655  
  1656  		default:
  1657  			return false
  1658  		}
  1659  	}
  1660  	// Iterator still in progress, wait for either a data or an error event
  1661  	select {
  1662  	case log := <-it.logs:
  1663  		it.Event = new(BindingApprovalForAll)
  1664  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1665  			it.fail = err
  1666  			return false
  1667  		}
  1668  		it.Event.Raw = log
  1669  		return true
  1670  
  1671  	case err := <-it.sub.Err():
  1672  		it.done = true
  1673  		it.fail = err
  1674  		return it.Next()
  1675  	}
  1676  }
  1677  
  1678  // Error returns any retrieval or parsing error occurred during filtering.
  1679  func (it *BindingApprovalForAllIterator) Error() error {
  1680  	return it.fail
  1681  }
  1682  
  1683  // Close terminates the iteration process, releasing any pending underlying
  1684  // resources.
  1685  func (it *BindingApprovalForAllIterator) Close() error {
  1686  	it.sub.Unsubscribe()
  1687  	return nil
  1688  }
  1689  
  1690  // BindingApprovalForAll represents a ApprovalForAll event raised by the Binding contract.
  1691  type BindingApprovalForAll struct {
  1692  	Owner    common.Address
  1693  	Operator common.Address
  1694  	Approved bool
  1695  	Raw      types.Log // Blockchain specific contextual infos
  1696  }
  1697  
  1698  // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  1699  //
  1700  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  1701  func (_Binding *BindingFilterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*BindingApprovalForAllIterator, error) {
  1702  
  1703  	var ownerRule []interface{}
  1704  	for _, ownerItem := range owner {
  1705  		ownerRule = append(ownerRule, ownerItem)
  1706  	}
  1707  	var operatorRule []interface{}
  1708  	for _, operatorItem := range operator {
  1709  		operatorRule = append(operatorRule, operatorItem)
  1710  	}
  1711  
  1712  	logs, sub, err := _Binding.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
  1713  	if err != nil {
  1714  		return nil, err
  1715  	}
  1716  	return &BindingApprovalForAllIterator{contract: _Binding.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil
  1717  }
  1718  
  1719  // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  1720  //
  1721  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  1722  func (_Binding *BindingFilterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *BindingApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) {
  1723  
  1724  	var ownerRule []interface{}
  1725  	for _, ownerItem := range owner {
  1726  		ownerRule = append(ownerRule, ownerItem)
  1727  	}
  1728  	var operatorRule []interface{}
  1729  	for _, operatorItem := range operator {
  1730  		operatorRule = append(operatorRule, operatorItem)
  1731  	}
  1732  
  1733  	logs, sub, err := _Binding.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
  1734  	if err != nil {
  1735  		return nil, err
  1736  	}
  1737  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1738  		defer sub.Unsubscribe()
  1739  		for {
  1740  			select {
  1741  			case log := <-logs:
  1742  				// New log arrived, parse the event and forward to the user
  1743  				event := new(BindingApprovalForAll)
  1744  				if err := _Binding.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
  1745  					return err
  1746  				}
  1747  				event.Raw = log
  1748  
  1749  				select {
  1750  				case sink <- event:
  1751  				case err := <-sub.Err():
  1752  					return err
  1753  				case <-quit:
  1754  					return nil
  1755  				}
  1756  			case err := <-sub.Err():
  1757  				return err
  1758  			case <-quit:
  1759  				return nil
  1760  			}
  1761  		}
  1762  	}), nil
  1763  }
  1764  
  1765  // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  1766  //
  1767  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  1768  func (_Binding *BindingFilterer) ParseApprovalForAll(log types.Log) (*BindingApprovalForAll, error) {
  1769  	event := new(BindingApprovalForAll)
  1770  	if err := _Binding.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
  1771  		return nil, err
  1772  	}
  1773  	event.Raw = log
  1774  	return event, nil
  1775  }
  1776  
  1777  // BindingBatchUpdatedIterator is returned from FilterBatchUpdated and is used to iterate over the raw logs and unpacked data for BatchUpdated events raised by the Binding contract.
  1778  type BindingBatchUpdatedIterator struct {
  1779  	Event *BindingBatchUpdated // Event containing the contract specifics and raw log
  1780  
  1781  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1782  	event    string              // Event name to use for unpacking event data
  1783  
  1784  	logs chan types.Log        // Log channel receiving the found contract events
  1785  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1786  	done bool                  // Whether the subscription completed delivering logs
  1787  	fail error                 // Occurred error to stop iteration
  1788  }
  1789  
  1790  // Next advances the iterator to the subsequent event, returning whether there
  1791  // are any more events found. In case of a retrieval or parsing error, false is
  1792  // returned and Error() can be queried for the exact failure.
  1793  func (it *BindingBatchUpdatedIterator) Next() bool {
  1794  	// If the iterator failed, stop iterating
  1795  	if it.fail != nil {
  1796  		return false
  1797  	}
  1798  	// If the iterator completed, deliver directly whatever's available
  1799  	if it.done {
  1800  		select {
  1801  		case log := <-it.logs:
  1802  			it.Event = new(BindingBatchUpdated)
  1803  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1804  				it.fail = err
  1805  				return false
  1806  			}
  1807  			it.Event.Raw = log
  1808  			return true
  1809  
  1810  		default:
  1811  			return false
  1812  		}
  1813  	}
  1814  	// Iterator still in progress, wait for either a data or an error event
  1815  	select {
  1816  	case log := <-it.logs:
  1817  		it.Event = new(BindingBatchUpdated)
  1818  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1819  			it.fail = err
  1820  			return false
  1821  		}
  1822  		it.Event.Raw = log
  1823  		return true
  1824  
  1825  	case err := <-it.sub.Err():
  1826  		it.done = true
  1827  		it.fail = err
  1828  		return it.Next()
  1829  	}
  1830  }
  1831  
  1832  // Error returns any retrieval or parsing error occurred during filtering.
  1833  func (it *BindingBatchUpdatedIterator) Error() error {
  1834  	return it.fail
  1835  }
  1836  
  1837  // Close terminates the iteration process, releasing any pending underlying
  1838  // resources.
  1839  func (it *BindingBatchUpdatedIterator) Close() error {
  1840  	it.sub.Unsubscribe()
  1841  	return nil
  1842  }
  1843  
  1844  // BindingBatchUpdated represents a BatchUpdated event raised by the Binding contract.
  1845  type BindingBatchUpdated struct {
  1846  	Previous *big.Int
  1847  	Updated  *big.Int
  1848  	Raw      types.Log // Blockchain specific contextual infos
  1849  }
  1850  
  1851  // FilterBatchUpdated is a free log retrieval operation binding the contract event 0x656359bd8624a98c9559c454e7835a5e93f0867eacab61bfda9d2d0fce4e3097.
  1852  //
  1853  // Solidity: event BatchUpdated(uint256 previous, uint256 updated)
  1854  func (_Binding *BindingFilterer) FilterBatchUpdated(opts *bind.FilterOpts) (*BindingBatchUpdatedIterator, error) {
  1855  
  1856  	logs, sub, err := _Binding.contract.FilterLogs(opts, "BatchUpdated")
  1857  	if err != nil {
  1858  		return nil, err
  1859  	}
  1860  	return &BindingBatchUpdatedIterator{contract: _Binding.contract, event: "BatchUpdated", logs: logs, sub: sub}, nil
  1861  }
  1862  
  1863  // WatchBatchUpdated is a free log subscription operation binding the contract event 0x656359bd8624a98c9559c454e7835a5e93f0867eacab61bfda9d2d0fce4e3097.
  1864  //
  1865  // Solidity: event BatchUpdated(uint256 previous, uint256 updated)
  1866  func (_Binding *BindingFilterer) WatchBatchUpdated(opts *bind.WatchOpts, sink chan<- *BindingBatchUpdated) (event.Subscription, error) {
  1867  
  1868  	logs, sub, err := _Binding.contract.WatchLogs(opts, "BatchUpdated")
  1869  	if err != nil {
  1870  		return nil, err
  1871  	}
  1872  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1873  		defer sub.Unsubscribe()
  1874  		for {
  1875  			select {
  1876  			case log := <-logs:
  1877  				// New log arrived, parse the event and forward to the user
  1878  				event := new(BindingBatchUpdated)
  1879  				if err := _Binding.contract.UnpackLog(event, "BatchUpdated", log); err != nil {
  1880  					return err
  1881  				}
  1882  				event.Raw = log
  1883  
  1884  				select {
  1885  				case sink <- event:
  1886  				case err := <-sub.Err():
  1887  					return err
  1888  				case <-quit:
  1889  					return nil
  1890  				}
  1891  			case err := <-sub.Err():
  1892  				return err
  1893  			case <-quit:
  1894  				return nil
  1895  			}
  1896  		}
  1897  	}), nil
  1898  }
  1899  
  1900  // ParseBatchUpdated is a log parse operation binding the contract event 0x656359bd8624a98c9559c454e7835a5e93f0867eacab61bfda9d2d0fce4e3097.
  1901  //
  1902  // Solidity: event BatchUpdated(uint256 previous, uint256 updated)
  1903  func (_Binding *BindingFilterer) ParseBatchUpdated(log types.Log) (*BindingBatchUpdated, error) {
  1904  	event := new(BindingBatchUpdated)
  1905  	if err := _Binding.contract.UnpackLog(event, "BatchUpdated", log); err != nil {
  1906  		return nil, err
  1907  	}
  1908  	event.Raw = log
  1909  	return event, nil
  1910  }
  1911  
  1912  // BindingClosedUpdatedIterator is returned from FilterClosedUpdated and is used to iterate over the raw logs and unpacked data for ClosedUpdated events raised by the Binding contract.
  1913  type BindingClosedUpdatedIterator struct {
  1914  	Event *BindingClosedUpdated // Event containing the contract specifics and raw log
  1915  
  1916  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1917  	event    string              // Event name to use for unpacking event data
  1918  
  1919  	logs chan types.Log        // Log channel receiving the found contract events
  1920  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1921  	done bool                  // Whether the subscription completed delivering logs
  1922  	fail error                 // Occurred error to stop iteration
  1923  }
  1924  
  1925  // Next advances the iterator to the subsequent event, returning whether there
  1926  // are any more events found. In case of a retrieval or parsing error, false is
  1927  // returned and Error() can be queried for the exact failure.
  1928  func (it *BindingClosedUpdatedIterator) Next() bool {
  1929  	// If the iterator failed, stop iterating
  1930  	if it.fail != nil {
  1931  		return false
  1932  	}
  1933  	// If the iterator completed, deliver directly whatever's available
  1934  	if it.done {
  1935  		select {
  1936  		case log := <-it.logs:
  1937  			it.Event = new(BindingClosedUpdated)
  1938  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1939  				it.fail = err
  1940  				return false
  1941  			}
  1942  			it.Event.Raw = log
  1943  			return true
  1944  
  1945  		default:
  1946  			return false
  1947  		}
  1948  	}
  1949  	// Iterator still in progress, wait for either a data or an error event
  1950  	select {
  1951  	case log := <-it.logs:
  1952  		it.Event = new(BindingClosedUpdated)
  1953  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1954  			it.fail = err
  1955  			return false
  1956  		}
  1957  		it.Event.Raw = log
  1958  		return true
  1959  
  1960  	case err := <-it.sub.Err():
  1961  		it.done = true
  1962  		it.fail = err
  1963  		return it.Next()
  1964  	}
  1965  }
  1966  
  1967  // Error returns any retrieval or parsing error occurred during filtering.
  1968  func (it *BindingClosedUpdatedIterator) Error() error {
  1969  	return it.fail
  1970  }
  1971  
  1972  // Close terminates the iteration process, releasing any pending underlying
  1973  // resources.
  1974  func (it *BindingClosedUpdatedIterator) Close() error {
  1975  	it.sub.Unsubscribe()
  1976  	return nil
  1977  }
  1978  
  1979  // BindingClosedUpdated represents a ClosedUpdated event raised by the Binding contract.
  1980  type BindingClosedUpdated struct {
  1981  	Previous string
  1982  	Updated  string
  1983  	Raw      types.Log // Blockchain specific contextual infos
  1984  }
  1985  
  1986  // FilterClosedUpdated is a free log retrieval operation binding the contract event 0xe522ca01e98dcc00c0c8fbb3f248b612670c83507d33b0e30f7cb683ee21a3eb.
  1987  //
  1988  // Solidity: event ClosedUpdated(string previous, string updated)
  1989  func (_Binding *BindingFilterer) FilterClosedUpdated(opts *bind.FilterOpts) (*BindingClosedUpdatedIterator, error) {
  1990  
  1991  	logs, sub, err := _Binding.contract.FilterLogs(opts, "ClosedUpdated")
  1992  	if err != nil {
  1993  		return nil, err
  1994  	}
  1995  	return &BindingClosedUpdatedIterator{contract: _Binding.contract, event: "ClosedUpdated", logs: logs, sub: sub}, nil
  1996  }
  1997  
  1998  // WatchClosedUpdated is a free log subscription operation binding the contract event 0xe522ca01e98dcc00c0c8fbb3f248b612670c83507d33b0e30f7cb683ee21a3eb.
  1999  //
  2000  // Solidity: event ClosedUpdated(string previous, string updated)
  2001  func (_Binding *BindingFilterer) WatchClosedUpdated(opts *bind.WatchOpts, sink chan<- *BindingClosedUpdated) (event.Subscription, error) {
  2002  
  2003  	logs, sub, err := _Binding.contract.WatchLogs(opts, "ClosedUpdated")
  2004  	if err != nil {
  2005  		return nil, err
  2006  	}
  2007  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2008  		defer sub.Unsubscribe()
  2009  		for {
  2010  			select {
  2011  			case log := <-logs:
  2012  				// New log arrived, parse the event and forward to the user
  2013  				event := new(BindingClosedUpdated)
  2014  				if err := _Binding.contract.UnpackLog(event, "ClosedUpdated", log); err != nil {
  2015  					return err
  2016  				}
  2017  				event.Raw = log
  2018  
  2019  				select {
  2020  				case sink <- event:
  2021  				case err := <-sub.Err():
  2022  					return err
  2023  				case <-quit:
  2024  					return nil
  2025  				}
  2026  			case err := <-sub.Err():
  2027  				return err
  2028  			case <-quit:
  2029  				return nil
  2030  			}
  2031  		}
  2032  	}), nil
  2033  }
  2034  
  2035  // ParseClosedUpdated is a log parse operation binding the contract event 0xe522ca01e98dcc00c0c8fbb3f248b612670c83507d33b0e30f7cb683ee21a3eb.
  2036  //
  2037  // Solidity: event ClosedUpdated(string previous, string updated)
  2038  func (_Binding *BindingFilterer) ParseClosedUpdated(log types.Log) (*BindingClosedUpdated, error) {
  2039  	event := new(BindingClosedUpdated)
  2040  	if err := _Binding.contract.UnpackLog(event, "ClosedUpdated", log); err != nil {
  2041  		return nil, err
  2042  	}
  2043  	event.Raw = log
  2044  	return event, nil
  2045  }
  2046  
  2047  // BindingMetadataFrozenIterator is returned from FilterMetadataFrozen and is used to iterate over the raw logs and unpacked data for MetadataFrozen events raised by the Binding contract.
  2048  type BindingMetadataFrozenIterator struct {
  2049  	Event *BindingMetadataFrozen // Event containing the contract specifics and raw log
  2050  
  2051  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2052  	event    string              // Event name to use for unpacking event data
  2053  
  2054  	logs chan types.Log        // Log channel receiving the found contract events
  2055  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2056  	done bool                  // Whether the subscription completed delivering logs
  2057  	fail error                 // Occurred error to stop iteration
  2058  }
  2059  
  2060  // Next advances the iterator to the subsequent event, returning whether there
  2061  // are any more events found. In case of a retrieval or parsing error, false is
  2062  // returned and Error() can be queried for the exact failure.
  2063  func (it *BindingMetadataFrozenIterator) Next() bool {
  2064  	// If the iterator failed, stop iterating
  2065  	if it.fail != nil {
  2066  		return false
  2067  	}
  2068  	// If the iterator completed, deliver directly whatever's available
  2069  	if it.done {
  2070  		select {
  2071  		case log := <-it.logs:
  2072  			it.Event = new(BindingMetadataFrozen)
  2073  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2074  				it.fail = err
  2075  				return false
  2076  			}
  2077  			it.Event.Raw = log
  2078  			return true
  2079  
  2080  		default:
  2081  			return false
  2082  		}
  2083  	}
  2084  	// Iterator still in progress, wait for either a data or an error event
  2085  	select {
  2086  	case log := <-it.logs:
  2087  		it.Event = new(BindingMetadataFrozen)
  2088  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2089  			it.fail = err
  2090  			return false
  2091  		}
  2092  		it.Event.Raw = log
  2093  		return true
  2094  
  2095  	case err := <-it.sub.Err():
  2096  		it.done = true
  2097  		it.fail = err
  2098  		return it.Next()
  2099  	}
  2100  }
  2101  
  2102  // Error returns any retrieval or parsing error occurred during filtering.
  2103  func (it *BindingMetadataFrozenIterator) Error() error {
  2104  	return it.fail
  2105  }
  2106  
  2107  // Close terminates the iteration process, releasing any pending underlying
  2108  // resources.
  2109  func (it *BindingMetadataFrozenIterator) Close() error {
  2110  	it.sub.Unsubscribe()
  2111  	return nil
  2112  }
  2113  
  2114  // BindingMetadataFrozen represents a MetadataFrozen event raised by the Binding contract.
  2115  type BindingMetadataFrozen struct {
  2116  	Uri string
  2117  	Raw types.Log // Blockchain specific contextual infos
  2118  }
  2119  
  2120  // FilterMetadataFrozen is a free log retrieval operation binding the contract event 0xac32328134cd103aa01cccc8f61d479f9613e7f9c1de6bfc70c78412b15c18e3.
  2121  //
  2122  // Solidity: event MetadataFrozen(string uri)
  2123  func (_Binding *BindingFilterer) FilterMetadataFrozen(opts *bind.FilterOpts) (*BindingMetadataFrozenIterator, error) {
  2124  
  2125  	logs, sub, err := _Binding.contract.FilterLogs(opts, "MetadataFrozen")
  2126  	if err != nil {
  2127  		return nil, err
  2128  	}
  2129  	return &BindingMetadataFrozenIterator{contract: _Binding.contract, event: "MetadataFrozen", logs: logs, sub: sub}, nil
  2130  }
  2131  
  2132  // WatchMetadataFrozen is a free log subscription operation binding the contract event 0xac32328134cd103aa01cccc8f61d479f9613e7f9c1de6bfc70c78412b15c18e3.
  2133  //
  2134  // Solidity: event MetadataFrozen(string uri)
  2135  func (_Binding *BindingFilterer) WatchMetadataFrozen(opts *bind.WatchOpts, sink chan<- *BindingMetadataFrozen) (event.Subscription, error) {
  2136  
  2137  	logs, sub, err := _Binding.contract.WatchLogs(opts, "MetadataFrozen")
  2138  	if err != nil {
  2139  		return nil, err
  2140  	}
  2141  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2142  		defer sub.Unsubscribe()
  2143  		for {
  2144  			select {
  2145  			case log := <-logs:
  2146  				// New log arrived, parse the event and forward to the user
  2147  				event := new(BindingMetadataFrozen)
  2148  				if err := _Binding.contract.UnpackLog(event, "MetadataFrozen", log); err != nil {
  2149  					return err
  2150  				}
  2151  				event.Raw = log
  2152  
  2153  				select {
  2154  				case sink <- event:
  2155  				case err := <-sub.Err():
  2156  					return err
  2157  				case <-quit:
  2158  					return nil
  2159  				}
  2160  			case err := <-sub.Err():
  2161  				return err
  2162  			case <-quit:
  2163  				return nil
  2164  			}
  2165  		}
  2166  	}), nil
  2167  }
  2168  
  2169  // ParseMetadataFrozen is a log parse operation binding the contract event 0xac32328134cd103aa01cccc8f61d479f9613e7f9c1de6bfc70c78412b15c18e3.
  2170  //
  2171  // Solidity: event MetadataFrozen(string uri)
  2172  func (_Binding *BindingFilterer) ParseMetadataFrozen(log types.Log) (*BindingMetadataFrozen, error) {
  2173  	event := new(BindingMetadataFrozen)
  2174  	if err := _Binding.contract.UnpackLog(event, "MetadataFrozen", log); err != nil {
  2175  		return nil, err
  2176  	}
  2177  	event.Raw = log
  2178  	return event, nil
  2179  }
  2180  
  2181  // BindingMintableUpdatedIterator is returned from FilterMintableUpdated and is used to iterate over the raw logs and unpacked data for MintableUpdated events raised by the Binding contract.
  2182  type BindingMintableUpdatedIterator struct {
  2183  	Event *BindingMintableUpdated // Event containing the contract specifics and raw log
  2184  
  2185  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2186  	event    string              // Event name to use for unpacking event data
  2187  
  2188  	logs chan types.Log        // Log channel receiving the found contract events
  2189  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2190  	done bool                  // Whether the subscription completed delivering logs
  2191  	fail error                 // Occurred error to stop iteration
  2192  }
  2193  
  2194  // Next advances the iterator to the subsequent event, returning whether there
  2195  // are any more events found. In case of a retrieval or parsing error, false is
  2196  // returned and Error() can be queried for the exact failure.
  2197  func (it *BindingMintableUpdatedIterator) Next() bool {
  2198  	// If the iterator failed, stop iterating
  2199  	if it.fail != nil {
  2200  		return false
  2201  	}
  2202  	// If the iterator completed, deliver directly whatever's available
  2203  	if it.done {
  2204  		select {
  2205  		case log := <-it.logs:
  2206  			it.Event = new(BindingMintableUpdated)
  2207  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2208  				it.fail = err
  2209  				return false
  2210  			}
  2211  			it.Event.Raw = log
  2212  			return true
  2213  
  2214  		default:
  2215  			return false
  2216  		}
  2217  	}
  2218  	// Iterator still in progress, wait for either a data or an error event
  2219  	select {
  2220  	case log := <-it.logs:
  2221  		it.Event = new(BindingMintableUpdated)
  2222  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2223  			it.fail = err
  2224  			return false
  2225  		}
  2226  		it.Event.Raw = log
  2227  		return true
  2228  
  2229  	case err := <-it.sub.Err():
  2230  		it.done = true
  2231  		it.fail = err
  2232  		return it.Next()
  2233  	}
  2234  }
  2235  
  2236  // Error returns any retrieval or parsing error occurred during filtering.
  2237  func (it *BindingMintableUpdatedIterator) Error() error {
  2238  	return it.fail
  2239  }
  2240  
  2241  // Close terminates the iteration process, releasing any pending underlying
  2242  // resources.
  2243  func (it *BindingMintableUpdatedIterator) Close() error {
  2244  	it.sub.Unsubscribe()
  2245  	return nil
  2246  }
  2247  
  2248  // BindingMintableUpdated represents a MintableUpdated event raised by the Binding contract.
  2249  type BindingMintableUpdated struct {
  2250  	Previous bool
  2251  	Updated  bool
  2252  	Raw      types.Log // Blockchain specific contextual infos
  2253  }
  2254  
  2255  // FilterMintableUpdated is a free log retrieval operation binding the contract event 0x8d9383d773c0600295154578f39da3106938ba8d1fe1767bcfabe8bf05f555f4.
  2256  //
  2257  // Solidity: event MintableUpdated(bool previous, bool updated)
  2258  func (_Binding *BindingFilterer) FilterMintableUpdated(opts *bind.FilterOpts) (*BindingMintableUpdatedIterator, error) {
  2259  
  2260  	logs, sub, err := _Binding.contract.FilterLogs(opts, "MintableUpdated")
  2261  	if err != nil {
  2262  		return nil, err
  2263  	}
  2264  	return &BindingMintableUpdatedIterator{contract: _Binding.contract, event: "MintableUpdated", logs: logs, sub: sub}, nil
  2265  }
  2266  
  2267  // WatchMintableUpdated is a free log subscription operation binding the contract event 0x8d9383d773c0600295154578f39da3106938ba8d1fe1767bcfabe8bf05f555f4.
  2268  //
  2269  // Solidity: event MintableUpdated(bool previous, bool updated)
  2270  func (_Binding *BindingFilterer) WatchMintableUpdated(opts *bind.WatchOpts, sink chan<- *BindingMintableUpdated) (event.Subscription, error) {
  2271  
  2272  	logs, sub, err := _Binding.contract.WatchLogs(opts, "MintableUpdated")
  2273  	if err != nil {
  2274  		return nil, err
  2275  	}
  2276  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2277  		defer sub.Unsubscribe()
  2278  		for {
  2279  			select {
  2280  			case log := <-logs:
  2281  				// New log arrived, parse the event and forward to the user
  2282  				event := new(BindingMintableUpdated)
  2283  				if err := _Binding.contract.UnpackLog(event, "MintableUpdated", log); err != nil {
  2284  					return err
  2285  				}
  2286  				event.Raw = log
  2287  
  2288  				select {
  2289  				case sink <- event:
  2290  				case err := <-sub.Err():
  2291  					return err
  2292  				case <-quit:
  2293  					return nil
  2294  				}
  2295  			case err := <-sub.Err():
  2296  				return err
  2297  			case <-quit:
  2298  				return nil
  2299  			}
  2300  		}
  2301  	}), nil
  2302  }
  2303  
  2304  // ParseMintableUpdated is a log parse operation binding the contract event 0x8d9383d773c0600295154578f39da3106938ba8d1fe1767bcfabe8bf05f555f4.
  2305  //
  2306  // Solidity: event MintableUpdated(bool previous, bool updated)
  2307  func (_Binding *BindingFilterer) ParseMintableUpdated(log types.Log) (*BindingMintableUpdated, error) {
  2308  	event := new(BindingMintableUpdated)
  2309  	if err := _Binding.contract.UnpackLog(event, "MintableUpdated", log); err != nil {
  2310  		return nil, err
  2311  	}
  2312  	event.Raw = log
  2313  	return event, nil
  2314  }
  2315  
  2316  // BindingOpenedUpdatedIterator is returned from FilterOpenedUpdated and is used to iterate over the raw logs and unpacked data for OpenedUpdated events raised by the Binding contract.
  2317  type BindingOpenedUpdatedIterator struct {
  2318  	Event *BindingOpenedUpdated // Event containing the contract specifics and raw log
  2319  
  2320  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2321  	event    string              // Event name to use for unpacking event data
  2322  
  2323  	logs chan types.Log        // Log channel receiving the found contract events
  2324  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2325  	done bool                  // Whether the subscription completed delivering logs
  2326  	fail error                 // Occurred error to stop iteration
  2327  }
  2328  
  2329  // Next advances the iterator to the subsequent event, returning whether there
  2330  // are any more events found. In case of a retrieval or parsing error, false is
  2331  // returned and Error() can be queried for the exact failure.
  2332  func (it *BindingOpenedUpdatedIterator) Next() bool {
  2333  	// If the iterator failed, stop iterating
  2334  	if it.fail != nil {
  2335  		return false
  2336  	}
  2337  	// If the iterator completed, deliver directly whatever's available
  2338  	if it.done {
  2339  		select {
  2340  		case log := <-it.logs:
  2341  			it.Event = new(BindingOpenedUpdated)
  2342  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2343  				it.fail = err
  2344  				return false
  2345  			}
  2346  			it.Event.Raw = log
  2347  			return true
  2348  
  2349  		default:
  2350  			return false
  2351  		}
  2352  	}
  2353  	// Iterator still in progress, wait for either a data or an error event
  2354  	select {
  2355  	case log := <-it.logs:
  2356  		it.Event = new(BindingOpenedUpdated)
  2357  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2358  			it.fail = err
  2359  			return false
  2360  		}
  2361  		it.Event.Raw = log
  2362  		return true
  2363  
  2364  	case err := <-it.sub.Err():
  2365  		it.done = true
  2366  		it.fail = err
  2367  		return it.Next()
  2368  	}
  2369  }
  2370  
  2371  // Error returns any retrieval or parsing error occurred during filtering.
  2372  func (it *BindingOpenedUpdatedIterator) Error() error {
  2373  	return it.fail
  2374  }
  2375  
  2376  // Close terminates the iteration process, releasing any pending underlying
  2377  // resources.
  2378  func (it *BindingOpenedUpdatedIterator) Close() error {
  2379  	it.sub.Unsubscribe()
  2380  	return nil
  2381  }
  2382  
  2383  // BindingOpenedUpdated represents a OpenedUpdated event raised by the Binding contract.
  2384  type BindingOpenedUpdated struct {
  2385  	Previous string
  2386  	Updated  string
  2387  	Raw      types.Log // Blockchain specific contextual infos
  2388  }
  2389  
  2390  // FilterOpenedUpdated is a free log retrieval operation binding the contract event 0x26d3ff72bc1fe742dadc405289d851bbaf16c9efcaabfd1e911dd66022097308.
  2391  //
  2392  // Solidity: event OpenedUpdated(string previous, string updated)
  2393  func (_Binding *BindingFilterer) FilterOpenedUpdated(opts *bind.FilterOpts) (*BindingOpenedUpdatedIterator, error) {
  2394  
  2395  	logs, sub, err := _Binding.contract.FilterLogs(opts, "OpenedUpdated")
  2396  	if err != nil {
  2397  		return nil, err
  2398  	}
  2399  	return &BindingOpenedUpdatedIterator{contract: _Binding.contract, event: "OpenedUpdated", logs: logs, sub: sub}, nil
  2400  }
  2401  
  2402  // WatchOpenedUpdated is a free log subscription operation binding the contract event 0x26d3ff72bc1fe742dadc405289d851bbaf16c9efcaabfd1e911dd66022097308.
  2403  //
  2404  // Solidity: event OpenedUpdated(string previous, string updated)
  2405  func (_Binding *BindingFilterer) WatchOpenedUpdated(opts *bind.WatchOpts, sink chan<- *BindingOpenedUpdated) (event.Subscription, error) {
  2406  
  2407  	logs, sub, err := _Binding.contract.WatchLogs(opts, "OpenedUpdated")
  2408  	if err != nil {
  2409  		return nil, err
  2410  	}
  2411  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2412  		defer sub.Unsubscribe()
  2413  		for {
  2414  			select {
  2415  			case log := <-logs:
  2416  				// New log arrived, parse the event and forward to the user
  2417  				event := new(BindingOpenedUpdated)
  2418  				if err := _Binding.contract.UnpackLog(event, "OpenedUpdated", log); err != nil {
  2419  					return err
  2420  				}
  2421  				event.Raw = log
  2422  
  2423  				select {
  2424  				case sink <- event:
  2425  				case err := <-sub.Err():
  2426  					return err
  2427  				case <-quit:
  2428  					return nil
  2429  				}
  2430  			case err := <-sub.Err():
  2431  				return err
  2432  			case <-quit:
  2433  				return nil
  2434  			}
  2435  		}
  2436  	}), nil
  2437  }
  2438  
  2439  // ParseOpenedUpdated is a log parse operation binding the contract event 0x26d3ff72bc1fe742dadc405289d851bbaf16c9efcaabfd1e911dd66022097308.
  2440  //
  2441  // Solidity: event OpenedUpdated(string previous, string updated)
  2442  func (_Binding *BindingFilterer) ParseOpenedUpdated(log types.Log) (*BindingOpenedUpdated, error) {
  2443  	event := new(BindingOpenedUpdated)
  2444  	if err := _Binding.contract.UnpackLog(event, "OpenedUpdated", log); err != nil {
  2445  		return nil, err
  2446  	}
  2447  	event.Raw = log
  2448  	return event, nil
  2449  }
  2450  
  2451  // BindingOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the Binding contract.
  2452  type BindingOwnershipTransferredIterator struct {
  2453  	Event *BindingOwnershipTransferred // Event containing the contract specifics and raw log
  2454  
  2455  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2456  	event    string              // Event name to use for unpacking event data
  2457  
  2458  	logs chan types.Log        // Log channel receiving the found contract events
  2459  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2460  	done bool                  // Whether the subscription completed delivering logs
  2461  	fail error                 // Occurred error to stop iteration
  2462  }
  2463  
  2464  // Next advances the iterator to the subsequent event, returning whether there
  2465  // are any more events found. In case of a retrieval or parsing error, false is
  2466  // returned and Error() can be queried for the exact failure.
  2467  func (it *BindingOwnershipTransferredIterator) Next() bool {
  2468  	// If the iterator failed, stop iterating
  2469  	if it.fail != nil {
  2470  		return false
  2471  	}
  2472  	// If the iterator completed, deliver directly whatever's available
  2473  	if it.done {
  2474  		select {
  2475  		case log := <-it.logs:
  2476  			it.Event = new(BindingOwnershipTransferred)
  2477  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2478  				it.fail = err
  2479  				return false
  2480  			}
  2481  			it.Event.Raw = log
  2482  			return true
  2483  
  2484  		default:
  2485  			return false
  2486  		}
  2487  	}
  2488  	// Iterator still in progress, wait for either a data or an error event
  2489  	select {
  2490  	case log := <-it.logs:
  2491  		it.Event = new(BindingOwnershipTransferred)
  2492  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2493  			it.fail = err
  2494  			return false
  2495  		}
  2496  		it.Event.Raw = log
  2497  		return true
  2498  
  2499  	case err := <-it.sub.Err():
  2500  		it.done = true
  2501  		it.fail = err
  2502  		return it.Next()
  2503  	}
  2504  }
  2505  
  2506  // Error returns any retrieval or parsing error occurred during filtering.
  2507  func (it *BindingOwnershipTransferredIterator) Error() error {
  2508  	return it.fail
  2509  }
  2510  
  2511  // Close terminates the iteration process, releasing any pending underlying
  2512  // resources.
  2513  func (it *BindingOwnershipTransferredIterator) Close() error {
  2514  	it.sub.Unsubscribe()
  2515  	return nil
  2516  }
  2517  
  2518  // BindingOwnershipTransferred represents a OwnershipTransferred event raised by the Binding contract.
  2519  type BindingOwnershipTransferred struct {
  2520  	PreviousOwner common.Address
  2521  	NewOwner      common.Address
  2522  	Raw           types.Log // Blockchain specific contextual infos
  2523  }
  2524  
  2525  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  2526  //
  2527  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  2528  func (_Binding *BindingFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*BindingOwnershipTransferredIterator, error) {
  2529  
  2530  	var previousOwnerRule []interface{}
  2531  	for _, previousOwnerItem := range previousOwner {
  2532  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  2533  	}
  2534  	var newOwnerRule []interface{}
  2535  	for _, newOwnerItem := range newOwner {
  2536  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  2537  	}
  2538  
  2539  	logs, sub, err := _Binding.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  2540  	if err != nil {
  2541  		return nil, err
  2542  	}
  2543  	return &BindingOwnershipTransferredIterator{contract: _Binding.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  2544  }
  2545  
  2546  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  2547  //
  2548  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  2549  func (_Binding *BindingFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *BindingOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  2550  
  2551  	var previousOwnerRule []interface{}
  2552  	for _, previousOwnerItem := range previousOwner {
  2553  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  2554  	}
  2555  	var newOwnerRule []interface{}
  2556  	for _, newOwnerItem := range newOwner {
  2557  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  2558  	}
  2559  
  2560  	logs, sub, err := _Binding.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  2561  	if err != nil {
  2562  		return nil, err
  2563  	}
  2564  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2565  		defer sub.Unsubscribe()
  2566  		for {
  2567  			select {
  2568  			case log := <-logs:
  2569  				// New log arrived, parse the event and forward to the user
  2570  				event := new(BindingOwnershipTransferred)
  2571  				if err := _Binding.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  2572  					return err
  2573  				}
  2574  				event.Raw = log
  2575  
  2576  				select {
  2577  				case sink <- event:
  2578  				case err := <-sub.Err():
  2579  					return err
  2580  				case <-quit:
  2581  					return nil
  2582  				}
  2583  			case err := <-sub.Err():
  2584  				return err
  2585  			case <-quit:
  2586  				return nil
  2587  			}
  2588  		}
  2589  	}), nil
  2590  }
  2591  
  2592  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  2593  //
  2594  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  2595  func (_Binding *BindingFilterer) ParseOwnershipTransferred(log types.Log) (*BindingOwnershipTransferred, error) {
  2596  	event := new(BindingOwnershipTransferred)
  2597  	if err := _Binding.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  2598  		return nil, err
  2599  	}
  2600  	event.Raw = log
  2601  	return event, nil
  2602  }
  2603  
  2604  // BindingPackOpenedIterator is returned from FilterPackOpened and is used to iterate over the raw logs and unpacked data for PackOpened events raised by the Binding contract.
  2605  type BindingPackOpenedIterator struct {
  2606  	Event *BindingPackOpened // Event containing the contract specifics and raw log
  2607  
  2608  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2609  	event    string              // Event name to use for unpacking event data
  2610  
  2611  	logs chan types.Log        // Log channel receiving the found contract events
  2612  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2613  	done bool                  // Whether the subscription completed delivering logs
  2614  	fail error                 // Occurred error to stop iteration
  2615  }
  2616  
  2617  // Next advances the iterator to the subsequent event, returning whether there
  2618  // are any more events found. In case of a retrieval or parsing error, false is
  2619  // returned and Error() can be queried for the exact failure.
  2620  func (it *BindingPackOpenedIterator) Next() bool {
  2621  	// If the iterator failed, stop iterating
  2622  	if it.fail != nil {
  2623  		return false
  2624  	}
  2625  	// If the iterator completed, deliver directly whatever's available
  2626  	if it.done {
  2627  		select {
  2628  		case log := <-it.logs:
  2629  			it.Event = new(BindingPackOpened)
  2630  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2631  				it.fail = err
  2632  				return false
  2633  			}
  2634  			it.Event.Raw = log
  2635  			return true
  2636  
  2637  		default:
  2638  			return false
  2639  		}
  2640  	}
  2641  	// Iterator still in progress, wait for either a data or an error event
  2642  	select {
  2643  	case log := <-it.logs:
  2644  		it.Event = new(BindingPackOpened)
  2645  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2646  			it.fail = err
  2647  			return false
  2648  		}
  2649  		it.Event.Raw = log
  2650  		return true
  2651  
  2652  	case err := <-it.sub.Err():
  2653  		it.done = true
  2654  		it.fail = err
  2655  		return it.Next()
  2656  	}
  2657  }
  2658  
  2659  // Error returns any retrieval or parsing error occurred during filtering.
  2660  func (it *BindingPackOpenedIterator) Error() error {
  2661  	return it.fail
  2662  }
  2663  
  2664  // Close terminates the iteration process, releasing any pending underlying
  2665  // resources.
  2666  func (it *BindingPackOpenedIterator) Close() error {
  2667  	it.sub.Unsubscribe()
  2668  	return nil
  2669  }
  2670  
  2671  // BindingPackOpened represents a PackOpened event raised by the Binding contract.
  2672  type BindingPackOpened struct {
  2673  	User      common.Address
  2674  	RequestId [32]byte
  2675  	TokenId   *big.Int
  2676  	Raw       types.Log // Blockchain specific contextual infos
  2677  }
  2678  
  2679  // FilterPackOpened is a free log retrieval operation binding the contract event 0x5b8ff795b38bcf217c82aab5e970dbee75f066d71d5279afe50e56e0352be74f.
  2680  //
  2681  // Solidity: event PackOpened(address indexed user, bytes32 requestId, uint256 tokenId)
  2682  func (_Binding *BindingFilterer) FilterPackOpened(opts *bind.FilterOpts, user []common.Address) (*BindingPackOpenedIterator, error) {
  2683  
  2684  	var userRule []interface{}
  2685  	for _, userItem := range user {
  2686  		userRule = append(userRule, userItem)
  2687  	}
  2688  
  2689  	logs, sub, err := _Binding.contract.FilterLogs(opts, "PackOpened", userRule)
  2690  	if err != nil {
  2691  		return nil, err
  2692  	}
  2693  	return &BindingPackOpenedIterator{contract: _Binding.contract, event: "PackOpened", logs: logs, sub: sub}, nil
  2694  }
  2695  
  2696  // WatchPackOpened is a free log subscription operation binding the contract event 0x5b8ff795b38bcf217c82aab5e970dbee75f066d71d5279afe50e56e0352be74f.
  2697  //
  2698  // Solidity: event PackOpened(address indexed user, bytes32 requestId, uint256 tokenId)
  2699  func (_Binding *BindingFilterer) WatchPackOpened(opts *bind.WatchOpts, sink chan<- *BindingPackOpened, user []common.Address) (event.Subscription, error) {
  2700  
  2701  	var userRule []interface{}
  2702  	for _, userItem := range user {
  2703  		userRule = append(userRule, userItem)
  2704  	}
  2705  
  2706  	logs, sub, err := _Binding.contract.WatchLogs(opts, "PackOpened", userRule)
  2707  	if err != nil {
  2708  		return nil, err
  2709  	}
  2710  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2711  		defer sub.Unsubscribe()
  2712  		for {
  2713  			select {
  2714  			case log := <-logs:
  2715  				// New log arrived, parse the event and forward to the user
  2716  				event := new(BindingPackOpened)
  2717  				if err := _Binding.contract.UnpackLog(event, "PackOpened", log); err != nil {
  2718  					return err
  2719  				}
  2720  				event.Raw = log
  2721  
  2722  				select {
  2723  				case sink <- event:
  2724  				case err := <-sub.Err():
  2725  					return err
  2726  				case <-quit:
  2727  					return nil
  2728  				}
  2729  			case err := <-sub.Err():
  2730  				return err
  2731  			case <-quit:
  2732  				return nil
  2733  			}
  2734  		}
  2735  	}), nil
  2736  }
  2737  
  2738  // ParsePackOpened is a log parse operation binding the contract event 0x5b8ff795b38bcf217c82aab5e970dbee75f066d71d5279afe50e56e0352be74f.
  2739  //
  2740  // Solidity: event PackOpened(address indexed user, bytes32 requestId, uint256 tokenId)
  2741  func (_Binding *BindingFilterer) ParsePackOpened(log types.Log) (*BindingPackOpened, error) {
  2742  	event := new(BindingPackOpened)
  2743  	if err := _Binding.contract.UnpackLog(event, "PackOpened", log); err != nil {
  2744  		return nil, err
  2745  	}
  2746  	event.Raw = log
  2747  	return event, nil
  2748  }
  2749  
  2750  // BindingPackRedeemedIterator is returned from FilterPackRedeemed and is used to iterate over the raw logs and unpacked data for PackRedeemed events raised by the Binding contract.
  2751  type BindingPackRedeemedIterator struct {
  2752  	Event *BindingPackRedeemed // Event containing the contract specifics and raw log
  2753  
  2754  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2755  	event    string              // Event name to use for unpacking event data
  2756  
  2757  	logs chan types.Log        // Log channel receiving the found contract events
  2758  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2759  	done bool                  // Whether the subscription completed delivering logs
  2760  	fail error                 // Occurred error to stop iteration
  2761  }
  2762  
  2763  // Next advances the iterator to the subsequent event, returning whether there
  2764  // are any more events found. In case of a retrieval or parsing error, false is
  2765  // returned and Error() can be queried for the exact failure.
  2766  func (it *BindingPackRedeemedIterator) Next() bool {
  2767  	// If the iterator failed, stop iterating
  2768  	if it.fail != nil {
  2769  		return false
  2770  	}
  2771  	// If the iterator completed, deliver directly whatever's available
  2772  	if it.done {
  2773  		select {
  2774  		case log := <-it.logs:
  2775  			it.Event = new(BindingPackRedeemed)
  2776  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2777  				it.fail = err
  2778  				return false
  2779  			}
  2780  			it.Event.Raw = log
  2781  			return true
  2782  
  2783  		default:
  2784  			return false
  2785  		}
  2786  	}
  2787  	// Iterator still in progress, wait for either a data or an error event
  2788  	select {
  2789  	case log := <-it.logs:
  2790  		it.Event = new(BindingPackRedeemed)
  2791  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2792  			it.fail = err
  2793  			return false
  2794  		}
  2795  		it.Event.Raw = log
  2796  		return true
  2797  
  2798  	case err := <-it.sub.Err():
  2799  		it.done = true
  2800  		it.fail = err
  2801  		return it.Next()
  2802  	}
  2803  }
  2804  
  2805  // Error returns any retrieval or parsing error occurred during filtering.
  2806  func (it *BindingPackRedeemedIterator) Error() error {
  2807  	return it.fail
  2808  }
  2809  
  2810  // Close terminates the iteration process, releasing any pending underlying
  2811  // resources.
  2812  func (it *BindingPackRedeemedIterator) Close() error {
  2813  	it.sub.Unsubscribe()
  2814  	return nil
  2815  }
  2816  
  2817  // BindingPackRedeemed represents a PackRedeemed event raised by the Binding contract.
  2818  type BindingPackRedeemed struct {
  2819  	User    common.Address
  2820  	TokenId *big.Int
  2821  	Content *big.Int
  2822  	Raw     types.Log // Blockchain specific contextual infos
  2823  }
  2824  
  2825  // FilterPackRedeemed is a free log retrieval operation binding the contract event 0x3bfe8a64824b40e960c91dcea2b5ec9b8eca227bf9406456b954ef3aeb3506c1.
  2826  //
  2827  // Solidity: event PackRedeemed(address indexed user, uint256 tokenId, uint256 content)
  2828  func (_Binding *BindingFilterer) FilterPackRedeemed(opts *bind.FilterOpts, user []common.Address) (*BindingPackRedeemedIterator, error) {
  2829  
  2830  	var userRule []interface{}
  2831  	for _, userItem := range user {
  2832  		userRule = append(userRule, userItem)
  2833  	}
  2834  
  2835  	logs, sub, err := _Binding.contract.FilterLogs(opts, "PackRedeemed", userRule)
  2836  	if err != nil {
  2837  		return nil, err
  2838  	}
  2839  	return &BindingPackRedeemedIterator{contract: _Binding.contract, event: "PackRedeemed", logs: logs, sub: sub}, nil
  2840  }
  2841  
  2842  // WatchPackRedeemed is a free log subscription operation binding the contract event 0x3bfe8a64824b40e960c91dcea2b5ec9b8eca227bf9406456b954ef3aeb3506c1.
  2843  //
  2844  // Solidity: event PackRedeemed(address indexed user, uint256 tokenId, uint256 content)
  2845  func (_Binding *BindingFilterer) WatchPackRedeemed(opts *bind.WatchOpts, sink chan<- *BindingPackRedeemed, user []common.Address) (event.Subscription, error) {
  2846  
  2847  	var userRule []interface{}
  2848  	for _, userItem := range user {
  2849  		userRule = append(userRule, userItem)
  2850  	}
  2851  
  2852  	logs, sub, err := _Binding.contract.WatchLogs(opts, "PackRedeemed", userRule)
  2853  	if err != nil {
  2854  		return nil, err
  2855  	}
  2856  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2857  		defer sub.Unsubscribe()
  2858  		for {
  2859  			select {
  2860  			case log := <-logs:
  2861  				// New log arrived, parse the event and forward to the user
  2862  				event := new(BindingPackRedeemed)
  2863  				if err := _Binding.contract.UnpackLog(event, "PackRedeemed", log); err != nil {
  2864  					return err
  2865  				}
  2866  				event.Raw = log
  2867  
  2868  				select {
  2869  				case sink <- event:
  2870  				case err := <-sub.Err():
  2871  					return err
  2872  				case <-quit:
  2873  					return nil
  2874  				}
  2875  			case err := <-sub.Err():
  2876  				return err
  2877  			case <-quit:
  2878  				return nil
  2879  			}
  2880  		}
  2881  	}), nil
  2882  }
  2883  
  2884  // ParsePackRedeemed is a log parse operation binding the contract event 0x3bfe8a64824b40e960c91dcea2b5ec9b8eca227bf9406456b954ef3aeb3506c1.
  2885  //
  2886  // Solidity: event PackRedeemed(address indexed user, uint256 tokenId, uint256 content)
  2887  func (_Binding *BindingFilterer) ParsePackRedeemed(log types.Log) (*BindingPackRedeemed, error) {
  2888  	event := new(BindingPackRedeemed)
  2889  	if err := _Binding.contract.UnpackLog(event, "PackRedeemed", log); err != nil {
  2890  		return nil, err
  2891  	}
  2892  	event.Raw = log
  2893  	return event, nil
  2894  }
  2895  
  2896  // BindingPriceUpdatedIterator is returned from FilterPriceUpdated and is used to iterate over the raw logs and unpacked data for PriceUpdated events raised by the Binding contract.
  2897  type BindingPriceUpdatedIterator struct {
  2898  	Event *BindingPriceUpdated // Event containing the contract specifics and raw log
  2899  
  2900  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2901  	event    string              // Event name to use for unpacking event data
  2902  
  2903  	logs chan types.Log        // Log channel receiving the found contract events
  2904  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2905  	done bool                  // Whether the subscription completed delivering logs
  2906  	fail error                 // Occurred error to stop iteration
  2907  }
  2908  
  2909  // Next advances the iterator to the subsequent event, returning whether there
  2910  // are any more events found. In case of a retrieval or parsing error, false is
  2911  // returned and Error() can be queried for the exact failure.
  2912  func (it *BindingPriceUpdatedIterator) Next() bool {
  2913  	// If the iterator failed, stop iterating
  2914  	if it.fail != nil {
  2915  		return false
  2916  	}
  2917  	// If the iterator completed, deliver directly whatever's available
  2918  	if it.done {
  2919  		select {
  2920  		case log := <-it.logs:
  2921  			it.Event = new(BindingPriceUpdated)
  2922  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2923  				it.fail = err
  2924  				return false
  2925  			}
  2926  			it.Event.Raw = log
  2927  			return true
  2928  
  2929  		default:
  2930  			return false
  2931  		}
  2932  	}
  2933  	// Iterator still in progress, wait for either a data or an error event
  2934  	select {
  2935  	case log := <-it.logs:
  2936  		it.Event = new(BindingPriceUpdated)
  2937  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2938  			it.fail = err
  2939  			return false
  2940  		}
  2941  		it.Event.Raw = log
  2942  		return true
  2943  
  2944  	case err := <-it.sub.Err():
  2945  		it.done = true
  2946  		it.fail = err
  2947  		return it.Next()
  2948  	}
  2949  }
  2950  
  2951  // Error returns any retrieval or parsing error occurred during filtering.
  2952  func (it *BindingPriceUpdatedIterator) Error() error {
  2953  	return it.fail
  2954  }
  2955  
  2956  // Close terminates the iteration process, releasing any pending underlying
  2957  // resources.
  2958  func (it *BindingPriceUpdatedIterator) Close() error {
  2959  	it.sub.Unsubscribe()
  2960  	return nil
  2961  }
  2962  
  2963  // BindingPriceUpdated represents a PriceUpdated event raised by the Binding contract.
  2964  type BindingPriceUpdated struct {
  2965  	Previous *big.Int
  2966  	Updated  *big.Int
  2967  	Raw      types.Log // Blockchain specific contextual infos
  2968  }
  2969  
  2970  // FilterPriceUpdated is a free log retrieval operation binding the contract event 0x945c1c4e99aa89f648fbfe3df471b916f719e16d960fcec0737d4d56bd696838.
  2971  //
  2972  // Solidity: event PriceUpdated(uint256 previous, uint256 updated)
  2973  func (_Binding *BindingFilterer) FilterPriceUpdated(opts *bind.FilterOpts) (*BindingPriceUpdatedIterator, error) {
  2974  
  2975  	logs, sub, err := _Binding.contract.FilterLogs(opts, "PriceUpdated")
  2976  	if err != nil {
  2977  		return nil, err
  2978  	}
  2979  	return &BindingPriceUpdatedIterator{contract: _Binding.contract, event: "PriceUpdated", logs: logs, sub: sub}, nil
  2980  }
  2981  
  2982  // WatchPriceUpdated is a free log subscription operation binding the contract event 0x945c1c4e99aa89f648fbfe3df471b916f719e16d960fcec0737d4d56bd696838.
  2983  //
  2984  // Solidity: event PriceUpdated(uint256 previous, uint256 updated)
  2985  func (_Binding *BindingFilterer) WatchPriceUpdated(opts *bind.WatchOpts, sink chan<- *BindingPriceUpdated) (event.Subscription, error) {
  2986  
  2987  	logs, sub, err := _Binding.contract.WatchLogs(opts, "PriceUpdated")
  2988  	if err != nil {
  2989  		return nil, err
  2990  	}
  2991  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2992  		defer sub.Unsubscribe()
  2993  		for {
  2994  			select {
  2995  			case log := <-logs:
  2996  				// New log arrived, parse the event and forward to the user
  2997  				event := new(BindingPriceUpdated)
  2998  				if err := _Binding.contract.UnpackLog(event, "PriceUpdated", log); err != nil {
  2999  					return err
  3000  				}
  3001  				event.Raw = log
  3002  
  3003  				select {
  3004  				case sink <- event:
  3005  				case err := <-sub.Err():
  3006  					return err
  3007  				case <-quit:
  3008  					return nil
  3009  				}
  3010  			case err := <-sub.Err():
  3011  				return err
  3012  			case <-quit:
  3013  				return nil
  3014  			}
  3015  		}
  3016  	}), nil
  3017  }
  3018  
  3019  // ParsePriceUpdated is a log parse operation binding the contract event 0x945c1c4e99aa89f648fbfe3df471b916f719e16d960fcec0737d4d56bd696838.
  3020  //
  3021  // Solidity: event PriceUpdated(uint256 previous, uint256 updated)
  3022  func (_Binding *BindingFilterer) ParsePriceUpdated(log types.Log) (*BindingPriceUpdated, error) {
  3023  	event := new(BindingPriceUpdated)
  3024  	if err := _Binding.contract.UnpackLog(event, "PriceUpdated", log); err != nil {
  3025  		return nil, err
  3026  	}
  3027  	event.Raw = log
  3028  	return event, nil
  3029  }
  3030  
  3031  // BindingReceiverUpdatedIterator is returned from FilterReceiverUpdated and is used to iterate over the raw logs and unpacked data for ReceiverUpdated events raised by the Binding contract.
  3032  type BindingReceiverUpdatedIterator struct {
  3033  	Event *BindingReceiverUpdated // Event containing the contract specifics and raw log
  3034  
  3035  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3036  	event    string              // Event name to use for unpacking event data
  3037  
  3038  	logs chan types.Log        // Log channel receiving the found contract events
  3039  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3040  	done bool                  // Whether the subscription completed delivering logs
  3041  	fail error                 // Occurred error to stop iteration
  3042  }
  3043  
  3044  // Next advances the iterator to the subsequent event, returning whether there
  3045  // are any more events found. In case of a retrieval or parsing error, false is
  3046  // returned and Error() can be queried for the exact failure.
  3047  func (it *BindingReceiverUpdatedIterator) Next() bool {
  3048  	// If the iterator failed, stop iterating
  3049  	if it.fail != nil {
  3050  		return false
  3051  	}
  3052  	// If the iterator completed, deliver directly whatever's available
  3053  	if it.done {
  3054  		select {
  3055  		case log := <-it.logs:
  3056  			it.Event = new(BindingReceiverUpdated)
  3057  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3058  				it.fail = err
  3059  				return false
  3060  			}
  3061  			it.Event.Raw = log
  3062  			return true
  3063  
  3064  		default:
  3065  			return false
  3066  		}
  3067  	}
  3068  	// Iterator still in progress, wait for either a data or an error event
  3069  	select {
  3070  	case log := <-it.logs:
  3071  		it.Event = new(BindingReceiverUpdated)
  3072  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3073  			it.fail = err
  3074  			return false
  3075  		}
  3076  		it.Event.Raw = log
  3077  		return true
  3078  
  3079  	case err := <-it.sub.Err():
  3080  		it.done = true
  3081  		it.fail = err
  3082  		return it.Next()
  3083  	}
  3084  }
  3085  
  3086  // Error returns any retrieval or parsing error occurred during filtering.
  3087  func (it *BindingReceiverUpdatedIterator) Error() error {
  3088  	return it.fail
  3089  }
  3090  
  3091  // Close terminates the iteration process, releasing any pending underlying
  3092  // resources.
  3093  func (it *BindingReceiverUpdatedIterator) Close() error {
  3094  	it.sub.Unsubscribe()
  3095  	return nil
  3096  }
  3097  
  3098  // BindingReceiverUpdated represents a ReceiverUpdated event raised by the Binding contract.
  3099  type BindingReceiverUpdated struct {
  3100  	Previous common.Address
  3101  	Updated  common.Address
  3102  	Raw      types.Log // Blockchain specific contextual infos
  3103  }
  3104  
  3105  // FilterReceiverUpdated is a free log retrieval operation binding the contract event 0xbda2bcccbfa5ae883ab7d9f03480ab68fe68e9200c9b52c0c47abc21d2c90ec9.
  3106  //
  3107  // Solidity: event ReceiverUpdated(address previous, address updated)
  3108  func (_Binding *BindingFilterer) FilterReceiverUpdated(opts *bind.FilterOpts) (*BindingReceiverUpdatedIterator, error) {
  3109  
  3110  	logs, sub, err := _Binding.contract.FilterLogs(opts, "ReceiverUpdated")
  3111  	if err != nil {
  3112  		return nil, err
  3113  	}
  3114  	return &BindingReceiverUpdatedIterator{contract: _Binding.contract, event: "ReceiverUpdated", logs: logs, sub: sub}, nil
  3115  }
  3116  
  3117  // WatchReceiverUpdated is a free log subscription operation binding the contract event 0xbda2bcccbfa5ae883ab7d9f03480ab68fe68e9200c9b52c0c47abc21d2c90ec9.
  3118  //
  3119  // Solidity: event ReceiverUpdated(address previous, address updated)
  3120  func (_Binding *BindingFilterer) WatchReceiverUpdated(opts *bind.WatchOpts, sink chan<- *BindingReceiverUpdated) (event.Subscription, error) {
  3121  
  3122  	logs, sub, err := _Binding.contract.WatchLogs(opts, "ReceiverUpdated")
  3123  	if err != nil {
  3124  		return nil, err
  3125  	}
  3126  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3127  		defer sub.Unsubscribe()
  3128  		for {
  3129  			select {
  3130  			case log := <-logs:
  3131  				// New log arrived, parse the event and forward to the user
  3132  				event := new(BindingReceiverUpdated)
  3133  				if err := _Binding.contract.UnpackLog(event, "ReceiverUpdated", log); err != nil {
  3134  					return err
  3135  				}
  3136  				event.Raw = log
  3137  
  3138  				select {
  3139  				case sink <- event:
  3140  				case err := <-sub.Err():
  3141  					return err
  3142  				case <-quit:
  3143  					return nil
  3144  				}
  3145  			case err := <-sub.Err():
  3146  				return err
  3147  			case <-quit:
  3148  				return nil
  3149  			}
  3150  		}
  3151  	}), nil
  3152  }
  3153  
  3154  // ParseReceiverUpdated is a log parse operation binding the contract event 0xbda2bcccbfa5ae883ab7d9f03480ab68fe68e9200c9b52c0c47abc21d2c90ec9.
  3155  //
  3156  // Solidity: event ReceiverUpdated(address previous, address updated)
  3157  func (_Binding *BindingFilterer) ParseReceiverUpdated(log types.Log) (*BindingReceiverUpdated, error) {
  3158  	event := new(BindingReceiverUpdated)
  3159  	if err := _Binding.contract.UnpackLog(event, "ReceiverUpdated", log); err != nil {
  3160  		return nil, err
  3161  	}
  3162  	event.Raw = log
  3163  	return event, nil
  3164  }
  3165  
  3166  // BindingRoyaltyUpdatedIterator is returned from FilterRoyaltyUpdated and is used to iterate over the raw logs and unpacked data for RoyaltyUpdated events raised by the Binding contract.
  3167  type BindingRoyaltyUpdatedIterator struct {
  3168  	Event *BindingRoyaltyUpdated // Event containing the contract specifics and raw log
  3169  
  3170  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3171  	event    string              // Event name to use for unpacking event data
  3172  
  3173  	logs chan types.Log        // Log channel receiving the found contract events
  3174  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3175  	done bool                  // Whether the subscription completed delivering logs
  3176  	fail error                 // Occurred error to stop iteration
  3177  }
  3178  
  3179  // Next advances the iterator to the subsequent event, returning whether there
  3180  // are any more events found. In case of a retrieval or parsing error, false is
  3181  // returned and Error() can be queried for the exact failure.
  3182  func (it *BindingRoyaltyUpdatedIterator) Next() bool {
  3183  	// If the iterator failed, stop iterating
  3184  	if it.fail != nil {
  3185  		return false
  3186  	}
  3187  	// If the iterator completed, deliver directly whatever's available
  3188  	if it.done {
  3189  		select {
  3190  		case log := <-it.logs:
  3191  			it.Event = new(BindingRoyaltyUpdated)
  3192  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3193  				it.fail = err
  3194  				return false
  3195  			}
  3196  			it.Event.Raw = log
  3197  			return true
  3198  
  3199  		default:
  3200  			return false
  3201  		}
  3202  	}
  3203  	// Iterator still in progress, wait for either a data or an error event
  3204  	select {
  3205  	case log := <-it.logs:
  3206  		it.Event = new(BindingRoyaltyUpdated)
  3207  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3208  			it.fail = err
  3209  			return false
  3210  		}
  3211  		it.Event.Raw = log
  3212  		return true
  3213  
  3214  	case err := <-it.sub.Err():
  3215  		it.done = true
  3216  		it.fail = err
  3217  		return it.Next()
  3218  	}
  3219  }
  3220  
  3221  // Error returns any retrieval or parsing error occurred during filtering.
  3222  func (it *BindingRoyaltyUpdatedIterator) Error() error {
  3223  	return it.fail
  3224  }
  3225  
  3226  // Close terminates the iteration process, releasing any pending underlying
  3227  // resources.
  3228  func (it *BindingRoyaltyUpdatedIterator) Close() error {
  3229  	it.sub.Unsubscribe()
  3230  	return nil
  3231  }
  3232  
  3233  // BindingRoyaltyUpdated represents a RoyaltyUpdated event raised by the Binding contract.
  3234  type BindingRoyaltyUpdated struct {
  3235  	Previous *big.Int
  3236  	Updated  *big.Int
  3237  	Raw      types.Log // Blockchain specific contextual infos
  3238  }
  3239  
  3240  // FilterRoyaltyUpdated is a free log retrieval operation binding the contract event 0x54e506cda8889617ec187c699f1c3b373053eb5796248194796f7e1501dfab24.
  3241  //
  3242  // Solidity: event RoyaltyUpdated(uint256 previous, uint256 updated)
  3243  func (_Binding *BindingFilterer) FilterRoyaltyUpdated(opts *bind.FilterOpts) (*BindingRoyaltyUpdatedIterator, error) {
  3244  
  3245  	logs, sub, err := _Binding.contract.FilterLogs(opts, "RoyaltyUpdated")
  3246  	if err != nil {
  3247  		return nil, err
  3248  	}
  3249  	return &BindingRoyaltyUpdatedIterator{contract: _Binding.contract, event: "RoyaltyUpdated", logs: logs, sub: sub}, nil
  3250  }
  3251  
  3252  // WatchRoyaltyUpdated is a free log subscription operation binding the contract event 0x54e506cda8889617ec187c699f1c3b373053eb5796248194796f7e1501dfab24.
  3253  //
  3254  // Solidity: event RoyaltyUpdated(uint256 previous, uint256 updated)
  3255  func (_Binding *BindingFilterer) WatchRoyaltyUpdated(opts *bind.WatchOpts, sink chan<- *BindingRoyaltyUpdated) (event.Subscription, error) {
  3256  
  3257  	logs, sub, err := _Binding.contract.WatchLogs(opts, "RoyaltyUpdated")
  3258  	if err != nil {
  3259  		return nil, err
  3260  	}
  3261  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3262  		defer sub.Unsubscribe()
  3263  		for {
  3264  			select {
  3265  			case log := <-logs:
  3266  				// New log arrived, parse the event and forward to the user
  3267  				event := new(BindingRoyaltyUpdated)
  3268  				if err := _Binding.contract.UnpackLog(event, "RoyaltyUpdated", log); err != nil {
  3269  					return err
  3270  				}
  3271  				event.Raw = log
  3272  
  3273  				select {
  3274  				case sink <- event:
  3275  				case err := <-sub.Err():
  3276  					return err
  3277  				case <-quit:
  3278  					return nil
  3279  				}
  3280  			case err := <-sub.Err():
  3281  				return err
  3282  			case <-quit:
  3283  				return nil
  3284  			}
  3285  		}
  3286  	}), nil
  3287  }
  3288  
  3289  // ParseRoyaltyUpdated is a log parse operation binding the contract event 0x54e506cda8889617ec187c699f1c3b373053eb5796248194796f7e1501dfab24.
  3290  //
  3291  // Solidity: event RoyaltyUpdated(uint256 previous, uint256 updated)
  3292  func (_Binding *BindingFilterer) ParseRoyaltyUpdated(log types.Log) (*BindingRoyaltyUpdated, error) {
  3293  	event := new(BindingRoyaltyUpdated)
  3294  	if err := _Binding.contract.UnpackLog(event, "RoyaltyUpdated", log); err != nil {
  3295  		return nil, err
  3296  	}
  3297  	event.Raw = log
  3298  	return event, nil
  3299  }
  3300  
  3301  // BindingTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the Binding contract.
  3302  type BindingTransferIterator struct {
  3303  	Event *BindingTransfer // Event containing the contract specifics and raw log
  3304  
  3305  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3306  	event    string              // Event name to use for unpacking event data
  3307  
  3308  	logs chan types.Log        // Log channel receiving the found contract events
  3309  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3310  	done bool                  // Whether the subscription completed delivering logs
  3311  	fail error                 // Occurred error to stop iteration
  3312  }
  3313  
  3314  // Next advances the iterator to the subsequent event, returning whether there
  3315  // are any more events found. In case of a retrieval or parsing error, false is
  3316  // returned and Error() can be queried for the exact failure.
  3317  func (it *BindingTransferIterator) Next() bool {
  3318  	// If the iterator failed, stop iterating
  3319  	if it.fail != nil {
  3320  		return false
  3321  	}
  3322  	// If the iterator completed, deliver directly whatever's available
  3323  	if it.done {
  3324  		select {
  3325  		case log := <-it.logs:
  3326  			it.Event = new(BindingTransfer)
  3327  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3328  				it.fail = err
  3329  				return false
  3330  			}
  3331  			it.Event.Raw = log
  3332  			return true
  3333  
  3334  		default:
  3335  			return false
  3336  		}
  3337  	}
  3338  	// Iterator still in progress, wait for either a data or an error event
  3339  	select {
  3340  	case log := <-it.logs:
  3341  		it.Event = new(BindingTransfer)
  3342  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3343  			it.fail = err
  3344  			return false
  3345  		}
  3346  		it.Event.Raw = log
  3347  		return true
  3348  
  3349  	case err := <-it.sub.Err():
  3350  		it.done = true
  3351  		it.fail = err
  3352  		return it.Next()
  3353  	}
  3354  }
  3355  
  3356  // Error returns any retrieval or parsing error occurred during filtering.
  3357  func (it *BindingTransferIterator) Error() error {
  3358  	return it.fail
  3359  }
  3360  
  3361  // Close terminates the iteration process, releasing any pending underlying
  3362  // resources.
  3363  func (it *BindingTransferIterator) Close() error {
  3364  	it.sub.Unsubscribe()
  3365  	return nil
  3366  }
  3367  
  3368  // BindingTransfer represents a Transfer event raised by the Binding contract.
  3369  type BindingTransfer struct {
  3370  	From    common.Address
  3371  	To      common.Address
  3372  	TokenId *big.Int
  3373  	Raw     types.Log // Blockchain specific contextual infos
  3374  }
  3375  
  3376  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  3377  //
  3378  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  3379  func (_Binding *BindingFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*BindingTransferIterator, error) {
  3380  
  3381  	var fromRule []interface{}
  3382  	for _, fromItem := range from {
  3383  		fromRule = append(fromRule, fromItem)
  3384  	}
  3385  	var toRule []interface{}
  3386  	for _, toItem := range to {
  3387  		toRule = append(toRule, toItem)
  3388  	}
  3389  	var tokenIdRule []interface{}
  3390  	for _, tokenIdItem := range tokenId {
  3391  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  3392  	}
  3393  
  3394  	logs, sub, err := _Binding.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
  3395  	if err != nil {
  3396  		return nil, err
  3397  	}
  3398  	return &BindingTransferIterator{contract: _Binding.contract, event: "Transfer", logs: logs, sub: sub}, nil
  3399  }
  3400  
  3401  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  3402  //
  3403  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  3404  func (_Binding *BindingFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *BindingTransfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) {
  3405  
  3406  	var fromRule []interface{}
  3407  	for _, fromItem := range from {
  3408  		fromRule = append(fromRule, fromItem)
  3409  	}
  3410  	var toRule []interface{}
  3411  	for _, toItem := range to {
  3412  		toRule = append(toRule, toItem)
  3413  	}
  3414  	var tokenIdRule []interface{}
  3415  	for _, tokenIdItem := range tokenId {
  3416  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  3417  	}
  3418  
  3419  	logs, sub, err := _Binding.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
  3420  	if err != nil {
  3421  		return nil, err
  3422  	}
  3423  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3424  		defer sub.Unsubscribe()
  3425  		for {
  3426  			select {
  3427  			case log := <-logs:
  3428  				// New log arrived, parse the event and forward to the user
  3429  				event := new(BindingTransfer)
  3430  				if err := _Binding.contract.UnpackLog(event, "Transfer", log); err != nil {
  3431  					return err
  3432  				}
  3433  				event.Raw = log
  3434  
  3435  				select {
  3436  				case sink <- event:
  3437  				case err := <-sub.Err():
  3438  					return err
  3439  				case <-quit:
  3440  					return nil
  3441  				}
  3442  			case err := <-sub.Err():
  3443  				return err
  3444  			case <-quit:
  3445  				return nil
  3446  			}
  3447  		}
  3448  	}), nil
  3449  }
  3450  
  3451  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  3452  //
  3453  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  3454  func (_Binding *BindingFilterer) ParseTransfer(log types.Log) (*BindingTransfer, error) {
  3455  	event := new(BindingTransfer)
  3456  	if err := _Binding.contract.UnpackLog(event, "Transfer", log); err != nil {
  3457  		return nil, err
  3458  	}
  3459  	event.Raw = log
  3460  	return event, nil
  3461  }
  3462  
  3463  // BindingUriFallbackUpdatedIterator is returned from FilterUriFallbackUpdated and is used to iterate over the raw logs and unpacked data for UriFallbackUpdated events raised by the Binding contract.
  3464  type BindingUriFallbackUpdatedIterator struct {
  3465  	Event *BindingUriFallbackUpdated // Event containing the contract specifics and raw log
  3466  
  3467  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3468  	event    string              // Event name to use for unpacking event data
  3469  
  3470  	logs chan types.Log        // Log channel receiving the found contract events
  3471  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3472  	done bool                  // Whether the subscription completed delivering logs
  3473  	fail error                 // Occurred error to stop iteration
  3474  }
  3475  
  3476  // Next advances the iterator to the subsequent event, returning whether there
  3477  // are any more events found. In case of a retrieval or parsing error, false is
  3478  // returned and Error() can be queried for the exact failure.
  3479  func (it *BindingUriFallbackUpdatedIterator) Next() bool {
  3480  	// If the iterator failed, stop iterating
  3481  	if it.fail != nil {
  3482  		return false
  3483  	}
  3484  	// If the iterator completed, deliver directly whatever's available
  3485  	if it.done {
  3486  		select {
  3487  		case log := <-it.logs:
  3488  			it.Event = new(BindingUriFallbackUpdated)
  3489  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3490  				it.fail = err
  3491  				return false
  3492  			}
  3493  			it.Event.Raw = log
  3494  			return true
  3495  
  3496  		default:
  3497  			return false
  3498  		}
  3499  	}
  3500  	// Iterator still in progress, wait for either a data or an error event
  3501  	select {
  3502  	case log := <-it.logs:
  3503  		it.Event = new(BindingUriFallbackUpdated)
  3504  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3505  			it.fail = err
  3506  			return false
  3507  		}
  3508  		it.Event.Raw = log
  3509  		return true
  3510  
  3511  	case err := <-it.sub.Err():
  3512  		it.done = true
  3513  		it.fail = err
  3514  		return it.Next()
  3515  	}
  3516  }
  3517  
  3518  // Error returns any retrieval or parsing error occurred during filtering.
  3519  func (it *BindingUriFallbackUpdatedIterator) Error() error {
  3520  	return it.fail
  3521  }
  3522  
  3523  // Close terminates the iteration process, releasing any pending underlying
  3524  // resources.
  3525  func (it *BindingUriFallbackUpdatedIterator) Close() error {
  3526  	it.sub.Unsubscribe()
  3527  	return nil
  3528  }
  3529  
  3530  // BindingUriFallbackUpdated represents a UriFallbackUpdated event raised by the Binding contract.
  3531  type BindingUriFallbackUpdated struct {
  3532  	Previous string
  3533  	Updated  string
  3534  	Raw      types.Log // Blockchain specific contextual infos
  3535  }
  3536  
  3537  // FilterUriFallbackUpdated is a free log retrieval operation binding the contract event 0xe1b7ff5efe58018e39b7877b5cfa772bb90f32504be7b2330b078d2a9b114bbe.
  3538  //
  3539  // Solidity: event UriFallbackUpdated(string previous, string updated)
  3540  func (_Binding *BindingFilterer) FilterUriFallbackUpdated(opts *bind.FilterOpts) (*BindingUriFallbackUpdatedIterator, error) {
  3541  
  3542  	logs, sub, err := _Binding.contract.FilterLogs(opts, "UriFallbackUpdated")
  3543  	if err != nil {
  3544  		return nil, err
  3545  	}
  3546  	return &BindingUriFallbackUpdatedIterator{contract: _Binding.contract, event: "UriFallbackUpdated", logs: logs, sub: sub}, nil
  3547  }
  3548  
  3549  // WatchUriFallbackUpdated is a free log subscription operation binding the contract event 0xe1b7ff5efe58018e39b7877b5cfa772bb90f32504be7b2330b078d2a9b114bbe.
  3550  //
  3551  // Solidity: event UriFallbackUpdated(string previous, string updated)
  3552  func (_Binding *BindingFilterer) WatchUriFallbackUpdated(opts *bind.WatchOpts, sink chan<- *BindingUriFallbackUpdated) (event.Subscription, error) {
  3553  
  3554  	logs, sub, err := _Binding.contract.WatchLogs(opts, "UriFallbackUpdated")
  3555  	if err != nil {
  3556  		return nil, err
  3557  	}
  3558  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3559  		defer sub.Unsubscribe()
  3560  		for {
  3561  			select {
  3562  			case log := <-logs:
  3563  				// New log arrived, parse the event and forward to the user
  3564  				event := new(BindingUriFallbackUpdated)
  3565  				if err := _Binding.contract.UnpackLog(event, "UriFallbackUpdated", log); err != nil {
  3566  					return err
  3567  				}
  3568  				event.Raw = log
  3569  
  3570  				select {
  3571  				case sink <- event:
  3572  				case err := <-sub.Err():
  3573  					return err
  3574  				case <-quit:
  3575  					return nil
  3576  				}
  3577  			case err := <-sub.Err():
  3578  				return err
  3579  			case <-quit:
  3580  				return nil
  3581  			}
  3582  		}
  3583  	}), nil
  3584  }
  3585  
  3586  // ParseUriFallbackUpdated is a log parse operation binding the contract event 0xe1b7ff5efe58018e39b7877b5cfa772bb90f32504be7b2330b078d2a9b114bbe.
  3587  //
  3588  // Solidity: event UriFallbackUpdated(string previous, string updated)
  3589  func (_Binding *BindingFilterer) ParseUriFallbackUpdated(log types.Log) (*BindingUriFallbackUpdated, error) {
  3590  	event := new(BindingUriFallbackUpdated)
  3591  	if err := _Binding.contract.UnpackLog(event, "UriFallbackUpdated", log); err != nil {
  3592  		return nil, err
  3593  	}
  3594  	event.Raw = log
  3595  	return event, nil
  3596  }
  3597  
  3598  // BindingUriUpdatedIterator is returned from FilterUriUpdated and is used to iterate over the raw logs and unpacked data for UriUpdated events raised by the Binding contract.
  3599  type BindingUriUpdatedIterator struct {
  3600  	Event *BindingUriUpdated // Event containing the contract specifics and raw log
  3601  
  3602  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3603  	event    string              // Event name to use for unpacking event data
  3604  
  3605  	logs chan types.Log        // Log channel receiving the found contract events
  3606  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3607  	done bool                  // Whether the subscription completed delivering logs
  3608  	fail error                 // Occurred error to stop iteration
  3609  }
  3610  
  3611  // Next advances the iterator to the subsequent event, returning whether there
  3612  // are any more events found. In case of a retrieval or parsing error, false is
  3613  // returned and Error() can be queried for the exact failure.
  3614  func (it *BindingUriUpdatedIterator) Next() bool {
  3615  	// If the iterator failed, stop iterating
  3616  	if it.fail != nil {
  3617  		return false
  3618  	}
  3619  	// If the iterator completed, deliver directly whatever's available
  3620  	if it.done {
  3621  		select {
  3622  		case log := <-it.logs:
  3623  			it.Event = new(BindingUriUpdated)
  3624  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3625  				it.fail = err
  3626  				return false
  3627  			}
  3628  			it.Event.Raw = log
  3629  			return true
  3630  
  3631  		default:
  3632  			return false
  3633  		}
  3634  	}
  3635  	// Iterator still in progress, wait for either a data or an error event
  3636  	select {
  3637  	case log := <-it.logs:
  3638  		it.Event = new(BindingUriUpdated)
  3639  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3640  			it.fail = err
  3641  			return false
  3642  		}
  3643  		it.Event.Raw = log
  3644  		return true
  3645  
  3646  	case err := <-it.sub.Err():
  3647  		it.done = true
  3648  		it.fail = err
  3649  		return it.Next()
  3650  	}
  3651  }
  3652  
  3653  // Error returns any retrieval or parsing error occurred during filtering.
  3654  func (it *BindingUriUpdatedIterator) Error() error {
  3655  	return it.fail
  3656  }
  3657  
  3658  // Close terminates the iteration process, releasing any pending underlying
  3659  // resources.
  3660  func (it *BindingUriUpdatedIterator) Close() error {
  3661  	it.sub.Unsubscribe()
  3662  	return nil
  3663  }
  3664  
  3665  // BindingUriUpdated represents a UriUpdated event raised by the Binding contract.
  3666  type BindingUriUpdated struct {
  3667  	Previous string
  3668  	Updated  string
  3669  	Raw      types.Log // Blockchain specific contextual infos
  3670  }
  3671  
  3672  // FilterUriUpdated is a free log retrieval operation binding the contract event 0x7d8ebb5abe647a67ba3a2649e11557ae5aa256cf3449245e0c840c98132e5a37.
  3673  //
  3674  // Solidity: event UriUpdated(string previous, string updated)
  3675  func (_Binding *BindingFilterer) FilterUriUpdated(opts *bind.FilterOpts) (*BindingUriUpdatedIterator, error) {
  3676  
  3677  	logs, sub, err := _Binding.contract.FilterLogs(opts, "UriUpdated")
  3678  	if err != nil {
  3679  		return nil, err
  3680  	}
  3681  	return &BindingUriUpdatedIterator{contract: _Binding.contract, event: "UriUpdated", logs: logs, sub: sub}, nil
  3682  }
  3683  
  3684  // WatchUriUpdated is a free log subscription operation binding the contract event 0x7d8ebb5abe647a67ba3a2649e11557ae5aa256cf3449245e0c840c98132e5a37.
  3685  //
  3686  // Solidity: event UriUpdated(string previous, string updated)
  3687  func (_Binding *BindingFilterer) WatchUriUpdated(opts *bind.WatchOpts, sink chan<- *BindingUriUpdated) (event.Subscription, error) {
  3688  
  3689  	logs, sub, err := _Binding.contract.WatchLogs(opts, "UriUpdated")
  3690  	if err != nil {
  3691  		return nil, err
  3692  	}
  3693  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3694  		defer sub.Unsubscribe()
  3695  		for {
  3696  			select {
  3697  			case log := <-logs:
  3698  				// New log arrived, parse the event and forward to the user
  3699  				event := new(BindingUriUpdated)
  3700  				if err := _Binding.contract.UnpackLog(event, "UriUpdated", log); err != nil {
  3701  					return err
  3702  				}
  3703  				event.Raw = log
  3704  
  3705  				select {
  3706  				case sink <- event:
  3707  				case err := <-sub.Err():
  3708  					return err
  3709  				case <-quit:
  3710  					return nil
  3711  				}
  3712  			case err := <-sub.Err():
  3713  				return err
  3714  			case <-quit:
  3715  				return nil
  3716  			}
  3717  		}
  3718  	}), nil
  3719  }
  3720  
  3721  // ParseUriUpdated is a log parse operation binding the contract event 0x7d8ebb5abe647a67ba3a2649e11557ae5aa256cf3449245e0c840c98132e5a37.
  3722  //
  3723  // Solidity: event UriUpdated(string previous, string updated)
  3724  func (_Binding *BindingFilterer) ParseUriUpdated(log types.Log) (*BindingUriUpdated, error) {
  3725  	event := new(BindingUriUpdated)
  3726  	if err := _Binding.contract.UnpackLog(event, "UriUpdated", log); err != nil {
  3727  		return nil, err
  3728  	}
  3729  	event.Raw = log
  3730  	return event, nil
  3731  }