github.com/0chain/gosdk@v1.17.11/znft/contracts/dstorageerc721/binding/dstorageerc721.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\":\"max_\",\"type\":\"uint256\"}],\"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\":\"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\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"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\":\"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\":\"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\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"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\":\"bool\",\"name\":\"status_\",\"type\":\"bool\"}],\"name\":\"setMintable\",\"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\":[{\"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\":[{\"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  // Frozen is a free data retrieval call binding the contract method 0x054f7d9c.
   276  //
   277  // Solidity: function frozen() view returns(bool)
   278  func (_Binding *BindingCaller) Frozen(opts *bind.CallOpts) (bool, error) {
   279  	var out []interface{}
   280  	err := _Binding.contract.Call(opts, &out, "frozen")
   281  
   282  	if err != nil {
   283  		return *new(bool), err
   284  	}
   285  
   286  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   287  
   288  	return out0, err
   289  
   290  }
   291  
   292  // Frozen is a free data retrieval call binding the contract method 0x054f7d9c.
   293  //
   294  // Solidity: function frozen() view returns(bool)
   295  func (_Binding *BindingSession) Frozen() (bool, error) {
   296  	return _Binding.Contract.Frozen(&_Binding.CallOpts)
   297  }
   298  
   299  // Frozen is a free data retrieval call binding the contract method 0x054f7d9c.
   300  //
   301  // Solidity: function frozen() view returns(bool)
   302  func (_Binding *BindingCallerSession) Frozen() (bool, error) {
   303  	return _Binding.Contract.Frozen(&_Binding.CallOpts)
   304  }
   305  
   306  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
   307  //
   308  // Solidity: function getApproved(uint256 tokenId) view returns(address)
   309  func (_Binding *BindingCaller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
   310  	var out []interface{}
   311  	err := _Binding.contract.Call(opts, &out, "getApproved", tokenId)
   312  
   313  	if err != nil {
   314  		return *new(common.Address), err
   315  	}
   316  
   317  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   318  
   319  	return out0, err
   320  
   321  }
   322  
   323  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
   324  //
   325  // Solidity: function getApproved(uint256 tokenId) view returns(address)
   326  func (_Binding *BindingSession) GetApproved(tokenId *big.Int) (common.Address, error) {
   327  	return _Binding.Contract.GetApproved(&_Binding.CallOpts, tokenId)
   328  }
   329  
   330  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
   331  //
   332  // Solidity: function getApproved(uint256 tokenId) view returns(address)
   333  func (_Binding *BindingCallerSession) GetApproved(tokenId *big.Int) (common.Address, error) {
   334  	return _Binding.Contract.GetApproved(&_Binding.CallOpts, tokenId)
   335  }
   336  
   337  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
   338  //
   339  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
   340  func (_Binding *BindingCaller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) {
   341  	var out []interface{}
   342  	err := _Binding.contract.Call(opts, &out, "isApprovedForAll", owner, operator)
   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  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
   355  //
   356  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
   357  func (_Binding *BindingSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
   358  	return _Binding.Contract.IsApprovedForAll(&_Binding.CallOpts, owner, operator)
   359  }
   360  
   361  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
   362  //
   363  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
   364  func (_Binding *BindingCallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
   365  	return _Binding.Contract.IsApprovedForAll(&_Binding.CallOpts, owner, operator)
   366  }
   367  
   368  // Max is a free data retrieval call binding the contract method 0x6ac5db19.
   369  //
   370  // Solidity: function max() view returns(uint256)
   371  func (_Binding *BindingCaller) Max(opts *bind.CallOpts) (*big.Int, error) {
   372  	var out []interface{}
   373  	err := _Binding.contract.Call(opts, &out, "max")
   374  
   375  	if err != nil {
   376  		return *new(*big.Int), err
   377  	}
   378  
   379  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   380  
   381  	return out0, err
   382  
   383  }
   384  
   385  // Max is a free data retrieval call binding the contract method 0x6ac5db19.
   386  //
   387  // Solidity: function max() view returns(uint256)
   388  func (_Binding *BindingSession) Max() (*big.Int, error) {
   389  	return _Binding.Contract.Max(&_Binding.CallOpts)
   390  }
   391  
   392  // Max is a free data retrieval call binding the contract method 0x6ac5db19.
   393  //
   394  // Solidity: function max() view returns(uint256)
   395  func (_Binding *BindingCallerSession) Max() (*big.Int, error) {
   396  	return _Binding.Contract.Max(&_Binding.CallOpts)
   397  }
   398  
   399  // Mintable is a free data retrieval call binding the contract method 0x4bf365df.
   400  //
   401  // Solidity: function mintable() view returns(bool)
   402  func (_Binding *BindingCaller) Mintable(opts *bind.CallOpts) (bool, error) {
   403  	var out []interface{}
   404  	err := _Binding.contract.Call(opts, &out, "mintable")
   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  // Mintable is a free data retrieval call binding the contract method 0x4bf365df.
   417  //
   418  // Solidity: function mintable() view returns(bool)
   419  func (_Binding *BindingSession) Mintable() (bool, error) {
   420  	return _Binding.Contract.Mintable(&_Binding.CallOpts)
   421  }
   422  
   423  // Mintable is a free data retrieval call binding the contract method 0x4bf365df.
   424  //
   425  // Solidity: function mintable() view returns(bool)
   426  func (_Binding *BindingCallerSession) Mintable() (bool, error) {
   427  	return _Binding.Contract.Mintable(&_Binding.CallOpts)
   428  }
   429  
   430  // Name is a free data retrieval call binding the contract method 0x06fdde03.
   431  //
   432  // Solidity: function name() view returns(string)
   433  func (_Binding *BindingCaller) Name(opts *bind.CallOpts) (string, error) {
   434  	var out []interface{}
   435  	err := _Binding.contract.Call(opts, &out, "name")
   436  
   437  	if err != nil {
   438  		return *new(string), err
   439  	}
   440  
   441  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   442  
   443  	return out0, err
   444  
   445  }
   446  
   447  // Name is a free data retrieval call binding the contract method 0x06fdde03.
   448  //
   449  // Solidity: function name() view returns(string)
   450  func (_Binding *BindingSession) Name() (string, error) {
   451  	return _Binding.Contract.Name(&_Binding.CallOpts)
   452  }
   453  
   454  // Name is a free data retrieval call binding the contract method 0x06fdde03.
   455  //
   456  // Solidity: function name() view returns(string)
   457  func (_Binding *BindingCallerSession) Name() (string, error) {
   458  	return _Binding.Contract.Name(&_Binding.CallOpts)
   459  }
   460  
   461  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   462  //
   463  // Solidity: function owner() view returns(address)
   464  func (_Binding *BindingCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
   465  	var out []interface{}
   466  	err := _Binding.contract.Call(opts, &out, "owner")
   467  
   468  	if err != nil {
   469  		return *new(common.Address), err
   470  	}
   471  
   472  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   473  
   474  	return out0, err
   475  
   476  }
   477  
   478  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   479  //
   480  // Solidity: function owner() view returns(address)
   481  func (_Binding *BindingSession) Owner() (common.Address, error) {
   482  	return _Binding.Contract.Owner(&_Binding.CallOpts)
   483  }
   484  
   485  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   486  //
   487  // Solidity: function owner() view returns(address)
   488  func (_Binding *BindingCallerSession) Owner() (common.Address, error) {
   489  	return _Binding.Contract.Owner(&_Binding.CallOpts)
   490  }
   491  
   492  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
   493  //
   494  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
   495  func (_Binding *BindingCaller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
   496  	var out []interface{}
   497  	err := _Binding.contract.Call(opts, &out, "ownerOf", tokenId)
   498  
   499  	if err != nil {
   500  		return *new(common.Address), err
   501  	}
   502  
   503  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   504  
   505  	return out0, err
   506  
   507  }
   508  
   509  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
   510  //
   511  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
   512  func (_Binding *BindingSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
   513  	return _Binding.Contract.OwnerOf(&_Binding.CallOpts, tokenId)
   514  }
   515  
   516  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
   517  //
   518  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
   519  func (_Binding *BindingCallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
   520  	return _Binding.Contract.OwnerOf(&_Binding.CallOpts, tokenId)
   521  }
   522  
   523  // Price is a free data retrieval call binding the contract method 0xa035b1fe.
   524  //
   525  // Solidity: function price() view returns(uint256)
   526  func (_Binding *BindingCaller) Price(opts *bind.CallOpts) (*big.Int, error) {
   527  	var out []interface{}
   528  	err := _Binding.contract.Call(opts, &out, "price")
   529  
   530  	if err != nil {
   531  		return *new(*big.Int), err
   532  	}
   533  
   534  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   535  
   536  	return out0, err
   537  
   538  }
   539  
   540  // Price is a free data retrieval call binding the contract method 0xa035b1fe.
   541  //
   542  // Solidity: function price() view returns(uint256)
   543  func (_Binding *BindingSession) Price() (*big.Int, error) {
   544  	return _Binding.Contract.Price(&_Binding.CallOpts)
   545  }
   546  
   547  // Price is a free data retrieval call binding the contract method 0xa035b1fe.
   548  //
   549  // Solidity: function price() view returns(uint256)
   550  func (_Binding *BindingCallerSession) Price() (*big.Int, error) {
   551  	return _Binding.Contract.Price(&_Binding.CallOpts)
   552  }
   553  
   554  // Receiver is a free data retrieval call binding the contract method 0xf7260d3e.
   555  //
   556  // Solidity: function receiver() view returns(address)
   557  func (_Binding *BindingCaller) Receiver(opts *bind.CallOpts) (common.Address, error) {
   558  	var out []interface{}
   559  	err := _Binding.contract.Call(opts, &out, "receiver")
   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  // Receiver is a free data retrieval call binding the contract method 0xf7260d3e.
   572  //
   573  // Solidity: function receiver() view returns(address)
   574  func (_Binding *BindingSession) Receiver() (common.Address, error) {
   575  	return _Binding.Contract.Receiver(&_Binding.CallOpts)
   576  }
   577  
   578  // Receiver is a free data retrieval call binding the contract method 0xf7260d3e.
   579  //
   580  // Solidity: function receiver() view returns(address)
   581  func (_Binding *BindingCallerSession) Receiver() (common.Address, error) {
   582  	return _Binding.Contract.Receiver(&_Binding.CallOpts)
   583  }
   584  
   585  // Royalty is a free data retrieval call binding the contract method 0x29ee566c.
   586  //
   587  // Solidity: function royalty() view returns(uint256)
   588  func (_Binding *BindingCaller) Royalty(opts *bind.CallOpts) (*big.Int, error) {
   589  	var out []interface{}
   590  	err := _Binding.contract.Call(opts, &out, "royalty")
   591  
   592  	if err != nil {
   593  		return *new(*big.Int), err
   594  	}
   595  
   596  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   597  
   598  	return out0, err
   599  
   600  }
   601  
   602  // Royalty is a free data retrieval call binding the contract method 0x29ee566c.
   603  //
   604  // Solidity: function royalty() view returns(uint256)
   605  func (_Binding *BindingSession) Royalty() (*big.Int, error) {
   606  	return _Binding.Contract.Royalty(&_Binding.CallOpts)
   607  }
   608  
   609  // Royalty is a free data retrieval call binding the contract method 0x29ee566c.
   610  //
   611  // Solidity: function royalty() view returns(uint256)
   612  func (_Binding *BindingCallerSession) Royalty() (*big.Int, error) {
   613  	return _Binding.Contract.Royalty(&_Binding.CallOpts)
   614  }
   615  
   616  // RoyaltyInfo is a free data retrieval call binding the contract method 0x2a55205a.
   617  //
   618  // Solidity: function royaltyInfo(uint256 tokenId, uint256 salePrice) view returns(address, uint256)
   619  func (_Binding *BindingCaller) RoyaltyInfo(opts *bind.CallOpts, tokenId *big.Int, salePrice *big.Int) (common.Address, *big.Int, error) {
   620  	var out []interface{}
   621  	err := _Binding.contract.Call(opts, &out, "royaltyInfo", tokenId, salePrice)
   622  
   623  	if err != nil {
   624  		return *new(common.Address), *new(*big.Int), err
   625  	}
   626  
   627  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   628  	out1 := *abi.ConvertType(out[1], new(*big.Int)).(**big.Int)
   629  
   630  	return out0, out1, err
   631  
   632  }
   633  
   634  // RoyaltyInfo is a free data retrieval call binding the contract method 0x2a55205a.
   635  //
   636  // Solidity: function royaltyInfo(uint256 tokenId, uint256 salePrice) view returns(address, uint256)
   637  func (_Binding *BindingSession) RoyaltyInfo(tokenId *big.Int, salePrice *big.Int) (common.Address, *big.Int, error) {
   638  	return _Binding.Contract.RoyaltyInfo(&_Binding.CallOpts, tokenId, salePrice)
   639  }
   640  
   641  // RoyaltyInfo is a free data retrieval call binding the contract method 0x2a55205a.
   642  //
   643  // Solidity: function royaltyInfo(uint256 tokenId, uint256 salePrice) view returns(address, uint256)
   644  func (_Binding *BindingCallerSession) RoyaltyInfo(tokenId *big.Int, salePrice *big.Int) (common.Address, *big.Int, error) {
   645  	return _Binding.Contract.RoyaltyInfo(&_Binding.CallOpts, tokenId, salePrice)
   646  }
   647  
   648  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
   649  //
   650  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
   651  func (_Binding *BindingCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
   652  	var out []interface{}
   653  	err := _Binding.contract.Call(opts, &out, "supportsInterface", interfaceId)
   654  
   655  	if err != nil {
   656  		return *new(bool), err
   657  	}
   658  
   659  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   660  
   661  	return out0, err
   662  
   663  }
   664  
   665  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
   666  //
   667  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
   668  func (_Binding *BindingSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
   669  	return _Binding.Contract.SupportsInterface(&_Binding.CallOpts, interfaceId)
   670  }
   671  
   672  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
   673  //
   674  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
   675  func (_Binding *BindingCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
   676  	return _Binding.Contract.SupportsInterface(&_Binding.CallOpts, interfaceId)
   677  }
   678  
   679  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
   680  //
   681  // Solidity: function symbol() view returns(string)
   682  func (_Binding *BindingCaller) Symbol(opts *bind.CallOpts) (string, error) {
   683  	var out []interface{}
   684  	err := _Binding.contract.Call(opts, &out, "symbol")
   685  
   686  	if err != nil {
   687  		return *new(string), err
   688  	}
   689  
   690  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   691  
   692  	return out0, err
   693  
   694  }
   695  
   696  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
   697  //
   698  // Solidity: function symbol() view returns(string)
   699  func (_Binding *BindingSession) Symbol() (string, error) {
   700  	return _Binding.Contract.Symbol(&_Binding.CallOpts)
   701  }
   702  
   703  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
   704  //
   705  // Solidity: function symbol() view returns(string)
   706  func (_Binding *BindingCallerSession) Symbol() (string, error) {
   707  	return _Binding.Contract.Symbol(&_Binding.CallOpts)
   708  }
   709  
   710  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
   711  //
   712  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
   713  func (_Binding *BindingCaller) TokenURI(opts *bind.CallOpts, tokenId *big.Int) (string, error) {
   714  	var out []interface{}
   715  	err := _Binding.contract.Call(opts, &out, "tokenURI", tokenId)
   716  
   717  	if err != nil {
   718  		return *new(string), err
   719  	}
   720  
   721  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   722  
   723  	return out0, err
   724  
   725  }
   726  
   727  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
   728  //
   729  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
   730  func (_Binding *BindingSession) TokenURI(tokenId *big.Int) (string, error) {
   731  	return _Binding.Contract.TokenURI(&_Binding.CallOpts, tokenId)
   732  }
   733  
   734  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
   735  //
   736  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
   737  func (_Binding *BindingCallerSession) TokenURI(tokenId *big.Int) (string, error) {
   738  	return _Binding.Contract.TokenURI(&_Binding.CallOpts, tokenId)
   739  }
   740  
   741  // TokenURIFallback is a free data retrieval call binding the contract method 0xc7c8f564.
   742  //
   743  // Solidity: function tokenURIFallback(uint256 tokenId) view returns(string)
   744  func (_Binding *BindingCaller) TokenURIFallback(opts *bind.CallOpts, tokenId *big.Int) (string, error) {
   745  	var out []interface{}
   746  	err := _Binding.contract.Call(opts, &out, "tokenURIFallback", tokenId)
   747  
   748  	if err != nil {
   749  		return *new(string), err
   750  	}
   751  
   752  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   753  
   754  	return out0, err
   755  
   756  }
   757  
   758  // TokenURIFallback is a free data retrieval call binding the contract method 0xc7c8f564.
   759  //
   760  // Solidity: function tokenURIFallback(uint256 tokenId) view returns(string)
   761  func (_Binding *BindingSession) TokenURIFallback(tokenId *big.Int) (string, error) {
   762  	return _Binding.Contract.TokenURIFallback(&_Binding.CallOpts, tokenId)
   763  }
   764  
   765  // TokenURIFallback is a free data retrieval call binding the contract method 0xc7c8f564.
   766  //
   767  // Solidity: function tokenURIFallback(uint256 tokenId) view returns(string)
   768  func (_Binding *BindingCallerSession) TokenURIFallback(tokenId *big.Int) (string, error) {
   769  	return _Binding.Contract.TokenURIFallback(&_Binding.CallOpts, tokenId)
   770  }
   771  
   772  // Total is a free data retrieval call binding the contract method 0x2ddbd13a.
   773  //
   774  // Solidity: function total() view returns(uint256)
   775  func (_Binding *BindingCaller) Total(opts *bind.CallOpts) (*big.Int, error) {
   776  	var out []interface{}
   777  	err := _Binding.contract.Call(opts, &out, "total")
   778  
   779  	if err != nil {
   780  		return *new(*big.Int), err
   781  	}
   782  
   783  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   784  
   785  	return out0, err
   786  
   787  }
   788  
   789  // Total is a free data retrieval call binding the contract method 0x2ddbd13a.
   790  //
   791  // Solidity: function total() view returns(uint256)
   792  func (_Binding *BindingSession) Total() (*big.Int, error) {
   793  	return _Binding.Contract.Total(&_Binding.CallOpts)
   794  }
   795  
   796  // Total is a free data retrieval call binding the contract method 0x2ddbd13a.
   797  //
   798  // Solidity: function total() view returns(uint256)
   799  func (_Binding *BindingCallerSession) Total() (*big.Int, error) {
   800  	return _Binding.Contract.Total(&_Binding.CallOpts)
   801  }
   802  
   803  // Uri is a free data retrieval call binding the contract method 0xeac989f8.
   804  //
   805  // Solidity: function uri() view returns(string)
   806  func (_Binding *BindingCaller) Uri(opts *bind.CallOpts) (string, error) {
   807  	var out []interface{}
   808  	err := _Binding.contract.Call(opts, &out, "uri")
   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  // Uri is a free data retrieval call binding the contract method 0xeac989f8.
   821  //
   822  // Solidity: function uri() view returns(string)
   823  func (_Binding *BindingSession) Uri() (string, error) {
   824  	return _Binding.Contract.Uri(&_Binding.CallOpts)
   825  }
   826  
   827  // Uri is a free data retrieval call binding the contract method 0xeac989f8.
   828  //
   829  // Solidity: function uri() view returns(string)
   830  func (_Binding *BindingCallerSession) Uri() (string, error) {
   831  	return _Binding.Contract.Uri(&_Binding.CallOpts)
   832  }
   833  
   834  // UriFallback is a free data retrieval call binding the contract method 0x6dd8e21a.
   835  //
   836  // Solidity: function uriFallback() view returns(string)
   837  func (_Binding *BindingCaller) UriFallback(opts *bind.CallOpts) (string, error) {
   838  	var out []interface{}
   839  	err := _Binding.contract.Call(opts, &out, "uriFallback")
   840  
   841  	if err != nil {
   842  		return *new(string), err
   843  	}
   844  
   845  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   846  
   847  	return out0, err
   848  
   849  }
   850  
   851  // UriFallback is a free data retrieval call binding the contract method 0x6dd8e21a.
   852  //
   853  // Solidity: function uriFallback() view returns(string)
   854  func (_Binding *BindingSession) UriFallback() (string, error) {
   855  	return _Binding.Contract.UriFallback(&_Binding.CallOpts)
   856  }
   857  
   858  // UriFallback is a free data retrieval call binding the contract method 0x6dd8e21a.
   859  //
   860  // Solidity: function uriFallback() view returns(string)
   861  func (_Binding *BindingCallerSession) UriFallback() (string, error) {
   862  	return _Binding.Contract.UriFallback(&_Binding.CallOpts)
   863  }
   864  
   865  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
   866  //
   867  // Solidity: function approve(address to, uint256 tokenId) returns()
   868  func (_Binding *BindingTransactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
   869  	return _Binding.contract.Transact(opts, "approve", to, tokenId)
   870  }
   871  
   872  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
   873  //
   874  // Solidity: function approve(address to, uint256 tokenId) returns()
   875  func (_Binding *BindingSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
   876  	return _Binding.Contract.Approve(&_Binding.TransactOpts, to, tokenId)
   877  }
   878  
   879  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
   880  //
   881  // Solidity: function approve(address to, uint256 tokenId) returns()
   882  func (_Binding *BindingTransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
   883  	return _Binding.Contract.Approve(&_Binding.TransactOpts, to, tokenId)
   884  }
   885  
   886  // Freeze is a paid mutator transaction binding the contract method 0x62a5af3b.
   887  //
   888  // Solidity: function freeze() returns()
   889  func (_Binding *BindingTransactor) Freeze(opts *bind.TransactOpts) (*types.Transaction, error) {
   890  	return _Binding.contract.Transact(opts, "freeze")
   891  }
   892  
   893  // Freeze is a paid mutator transaction binding the contract method 0x62a5af3b.
   894  //
   895  // Solidity: function freeze() returns()
   896  func (_Binding *BindingSession) Freeze() (*types.Transaction, error) {
   897  	return _Binding.Contract.Freeze(&_Binding.TransactOpts)
   898  }
   899  
   900  // Freeze is a paid mutator transaction binding the contract method 0x62a5af3b.
   901  //
   902  // Solidity: function freeze() returns()
   903  func (_Binding *BindingTransactorSession) Freeze() (*types.Transaction, error) {
   904  	return _Binding.Contract.Freeze(&_Binding.TransactOpts)
   905  }
   906  
   907  // Mint is a paid mutator transaction binding the contract method 0xa0712d68.
   908  //
   909  // Solidity: function mint(uint256 amount) payable returns()
   910  func (_Binding *BindingTransactor) Mint(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) {
   911  	return _Binding.contract.Transact(opts, "mint", amount)
   912  }
   913  
   914  // Mint is a paid mutator transaction binding the contract method 0xa0712d68.
   915  //
   916  // Solidity: function mint(uint256 amount) payable returns()
   917  func (_Binding *BindingSession) Mint(amount *big.Int) (*types.Transaction, error) {
   918  	return _Binding.Contract.Mint(&_Binding.TransactOpts, amount)
   919  }
   920  
   921  // Mint is a paid mutator transaction binding the contract method 0xa0712d68.
   922  //
   923  // Solidity: function mint(uint256 amount) payable returns()
   924  func (_Binding *BindingTransactorSession) Mint(amount *big.Int) (*types.Transaction, error) {
   925  	return _Binding.Contract.Mint(&_Binding.TransactOpts, amount)
   926  }
   927  
   928  // MintOwner is a paid mutator transaction binding the contract method 0x33f88d22.
   929  //
   930  // Solidity: function mintOwner(uint256 amount) returns()
   931  func (_Binding *BindingTransactor) MintOwner(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) {
   932  	return _Binding.contract.Transact(opts, "mintOwner", amount)
   933  }
   934  
   935  // MintOwner is a paid mutator transaction binding the contract method 0x33f88d22.
   936  //
   937  // Solidity: function mintOwner(uint256 amount) returns()
   938  func (_Binding *BindingSession) MintOwner(amount *big.Int) (*types.Transaction, error) {
   939  	return _Binding.Contract.MintOwner(&_Binding.TransactOpts, amount)
   940  }
   941  
   942  // MintOwner is a paid mutator transaction binding the contract method 0x33f88d22.
   943  //
   944  // Solidity: function mintOwner(uint256 amount) returns()
   945  func (_Binding *BindingTransactorSession) MintOwner(amount *big.Int) (*types.Transaction, error) {
   946  	return _Binding.Contract.MintOwner(&_Binding.TransactOpts, amount)
   947  }
   948  
   949  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
   950  //
   951  // Solidity: function renounceOwnership() returns()
   952  func (_Binding *BindingTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
   953  	return _Binding.contract.Transact(opts, "renounceOwnership")
   954  }
   955  
   956  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
   957  //
   958  // Solidity: function renounceOwnership() returns()
   959  func (_Binding *BindingSession) RenounceOwnership() (*types.Transaction, error) {
   960  	return _Binding.Contract.RenounceOwnership(&_Binding.TransactOpts)
   961  }
   962  
   963  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
   964  //
   965  // Solidity: function renounceOwnership() returns()
   966  func (_Binding *BindingTransactorSession) RenounceOwnership() (*types.Transaction, error) {
   967  	return _Binding.Contract.RenounceOwnership(&_Binding.TransactOpts)
   968  }
   969  
   970  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
   971  //
   972  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
   973  func (_Binding *BindingTransactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
   974  	return _Binding.contract.Transact(opts, "safeTransferFrom", from, to, tokenId)
   975  }
   976  
   977  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
   978  //
   979  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
   980  func (_Binding *BindingSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
   981  	return _Binding.Contract.SafeTransferFrom(&_Binding.TransactOpts, from, to, tokenId)
   982  }
   983  
   984  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
   985  //
   986  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
   987  func (_Binding *BindingTransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
   988  	return _Binding.Contract.SafeTransferFrom(&_Binding.TransactOpts, from, to, tokenId)
   989  }
   990  
   991  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
   992  //
   993  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
   994  func (_Binding *BindingTransactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
   995  	return _Binding.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, _data)
   996  }
   997  
   998  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
   999  //
  1000  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
  1001  func (_Binding *BindingSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
  1002  	return _Binding.Contract.SafeTransferFrom0(&_Binding.TransactOpts, from, to, tokenId, _data)
  1003  }
  1004  
  1005  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
  1006  //
  1007  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
  1008  func (_Binding *BindingTransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
  1009  	return _Binding.Contract.SafeTransferFrom0(&_Binding.TransactOpts, from, to, tokenId, _data)
  1010  }
  1011  
  1012  // SetAllocation is a paid mutator transaction binding the contract method 0x970a1fa8.
  1013  //
  1014  // Solidity: function setAllocation(string allocation_) returns()
  1015  func (_Binding *BindingTransactor) SetAllocation(opts *bind.TransactOpts, allocation_ string) (*types.Transaction, error) {
  1016  	return _Binding.contract.Transact(opts, "setAllocation", allocation_)
  1017  }
  1018  
  1019  // SetAllocation is a paid mutator transaction binding the contract method 0x970a1fa8.
  1020  //
  1021  // Solidity: function setAllocation(string allocation_) returns()
  1022  func (_Binding *BindingSession) SetAllocation(allocation_ string) (*types.Transaction, error) {
  1023  	return _Binding.Contract.SetAllocation(&_Binding.TransactOpts, allocation_)
  1024  }
  1025  
  1026  // SetAllocation is a paid mutator transaction binding the contract method 0x970a1fa8.
  1027  //
  1028  // Solidity: function setAllocation(string allocation_) returns()
  1029  func (_Binding *BindingTransactorSession) SetAllocation(allocation_ string) (*types.Transaction, error) {
  1030  	return _Binding.Contract.SetAllocation(&_Binding.TransactOpts, allocation_)
  1031  }
  1032  
  1033  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
  1034  //
  1035  // Solidity: function setApprovalForAll(address operator, bool approved) returns()
  1036  func (_Binding *BindingTransactor) SetApprovalForAll(opts *bind.TransactOpts, operator common.Address, approved bool) (*types.Transaction, error) {
  1037  	return _Binding.contract.Transact(opts, "setApprovalForAll", operator, approved)
  1038  }
  1039  
  1040  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
  1041  //
  1042  // Solidity: function setApprovalForAll(address operator, bool approved) returns()
  1043  func (_Binding *BindingSession) SetApprovalForAll(operator common.Address, approved bool) (*types.Transaction, error) {
  1044  	return _Binding.Contract.SetApprovalForAll(&_Binding.TransactOpts, operator, approved)
  1045  }
  1046  
  1047  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
  1048  //
  1049  // Solidity: function setApprovalForAll(address operator, bool approved) returns()
  1050  func (_Binding *BindingTransactorSession) SetApprovalForAll(operator common.Address, approved bool) (*types.Transaction, error) {
  1051  	return _Binding.Contract.SetApprovalForAll(&_Binding.TransactOpts, operator, approved)
  1052  }
  1053  
  1054  // SetMintable is a paid mutator transaction binding the contract method 0x285d70d4.
  1055  //
  1056  // Solidity: function setMintable(bool status_) returns()
  1057  func (_Binding *BindingTransactor) SetMintable(opts *bind.TransactOpts, status_ bool) (*types.Transaction, error) {
  1058  	return _Binding.contract.Transact(opts, "setMintable", status_)
  1059  }
  1060  
  1061  // SetMintable is a paid mutator transaction binding the contract method 0x285d70d4.
  1062  //
  1063  // Solidity: function setMintable(bool status_) returns()
  1064  func (_Binding *BindingSession) SetMintable(status_ bool) (*types.Transaction, error) {
  1065  	return _Binding.Contract.SetMintable(&_Binding.TransactOpts, status_)
  1066  }
  1067  
  1068  // SetMintable is a paid mutator transaction binding the contract method 0x285d70d4.
  1069  //
  1070  // Solidity: function setMintable(bool status_) returns()
  1071  func (_Binding *BindingTransactorSession) SetMintable(status_ bool) (*types.Transaction, error) {
  1072  	return _Binding.Contract.SetMintable(&_Binding.TransactOpts, status_)
  1073  }
  1074  
  1075  // SetReceiver is a paid mutator transaction binding the contract method 0x718da7ee.
  1076  //
  1077  // Solidity: function setReceiver(address receiver_) returns()
  1078  func (_Binding *BindingTransactor) SetReceiver(opts *bind.TransactOpts, receiver_ common.Address) (*types.Transaction, error) {
  1079  	return _Binding.contract.Transact(opts, "setReceiver", receiver_)
  1080  }
  1081  
  1082  // SetReceiver is a paid mutator transaction binding the contract method 0x718da7ee.
  1083  //
  1084  // Solidity: function setReceiver(address receiver_) returns()
  1085  func (_Binding *BindingSession) SetReceiver(receiver_ common.Address) (*types.Transaction, error) {
  1086  	return _Binding.Contract.SetReceiver(&_Binding.TransactOpts, receiver_)
  1087  }
  1088  
  1089  // SetReceiver is a paid mutator transaction binding the contract method 0x718da7ee.
  1090  //
  1091  // Solidity: function setReceiver(address receiver_) returns()
  1092  func (_Binding *BindingTransactorSession) SetReceiver(receiver_ common.Address) (*types.Transaction, error) {
  1093  	return _Binding.Contract.SetReceiver(&_Binding.TransactOpts, receiver_)
  1094  }
  1095  
  1096  // SetRoyalty is a paid mutator transaction binding the contract method 0x4209a2e1.
  1097  //
  1098  // Solidity: function setRoyalty(uint256 royalty_) returns()
  1099  func (_Binding *BindingTransactor) SetRoyalty(opts *bind.TransactOpts, royalty_ *big.Int) (*types.Transaction, error) {
  1100  	return _Binding.contract.Transact(opts, "setRoyalty", royalty_)
  1101  }
  1102  
  1103  // SetRoyalty is a paid mutator transaction binding the contract method 0x4209a2e1.
  1104  //
  1105  // Solidity: function setRoyalty(uint256 royalty_) returns()
  1106  func (_Binding *BindingSession) SetRoyalty(royalty_ *big.Int) (*types.Transaction, error) {
  1107  	return _Binding.Contract.SetRoyalty(&_Binding.TransactOpts, royalty_)
  1108  }
  1109  
  1110  // SetRoyalty is a paid mutator transaction binding the contract method 0x4209a2e1.
  1111  //
  1112  // Solidity: function setRoyalty(uint256 royalty_) returns()
  1113  func (_Binding *BindingTransactorSession) SetRoyalty(royalty_ *big.Int) (*types.Transaction, error) {
  1114  	return _Binding.Contract.SetRoyalty(&_Binding.TransactOpts, royalty_)
  1115  }
  1116  
  1117  // SetURI is a paid mutator transaction binding the contract method 0x02fe5305.
  1118  //
  1119  // Solidity: function setURI(string uri_) returns()
  1120  func (_Binding *BindingTransactor) SetURI(opts *bind.TransactOpts, uri_ string) (*types.Transaction, error) {
  1121  	return _Binding.contract.Transact(opts, "setURI", uri_)
  1122  }
  1123  
  1124  // SetURI is a paid mutator transaction binding the contract method 0x02fe5305.
  1125  //
  1126  // Solidity: function setURI(string uri_) returns()
  1127  func (_Binding *BindingSession) SetURI(uri_ string) (*types.Transaction, error) {
  1128  	return _Binding.Contract.SetURI(&_Binding.TransactOpts, uri_)
  1129  }
  1130  
  1131  // SetURI is a paid mutator transaction binding the contract method 0x02fe5305.
  1132  //
  1133  // Solidity: function setURI(string uri_) returns()
  1134  func (_Binding *BindingTransactorSession) SetURI(uri_ string) (*types.Transaction, error) {
  1135  	return _Binding.Contract.SetURI(&_Binding.TransactOpts, uri_)
  1136  }
  1137  
  1138  // SetURIFallback is a paid mutator transaction binding the contract method 0x0c8ab6e1.
  1139  //
  1140  // Solidity: function setURIFallback(string uri_) returns()
  1141  func (_Binding *BindingTransactor) SetURIFallback(opts *bind.TransactOpts, uri_ string) (*types.Transaction, error) {
  1142  	return _Binding.contract.Transact(opts, "setURIFallback", uri_)
  1143  }
  1144  
  1145  // SetURIFallback is a paid mutator transaction binding the contract method 0x0c8ab6e1.
  1146  //
  1147  // Solidity: function setURIFallback(string uri_) returns()
  1148  func (_Binding *BindingSession) SetURIFallback(uri_ string) (*types.Transaction, error) {
  1149  	return _Binding.Contract.SetURIFallback(&_Binding.TransactOpts, uri_)
  1150  }
  1151  
  1152  // SetURIFallback is a paid mutator transaction binding the contract method 0x0c8ab6e1.
  1153  //
  1154  // Solidity: function setURIFallback(string uri_) returns()
  1155  func (_Binding *BindingTransactorSession) SetURIFallback(uri_ string) (*types.Transaction, error) {
  1156  	return _Binding.Contract.SetURIFallback(&_Binding.TransactOpts, uri_)
  1157  }
  1158  
  1159  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  1160  //
  1161  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
  1162  func (_Binding *BindingTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1163  	return _Binding.contract.Transact(opts, "transferFrom", from, to, tokenId)
  1164  }
  1165  
  1166  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  1167  //
  1168  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
  1169  func (_Binding *BindingSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1170  	return _Binding.Contract.TransferFrom(&_Binding.TransactOpts, from, to, tokenId)
  1171  }
  1172  
  1173  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  1174  //
  1175  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
  1176  func (_Binding *BindingTransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1177  	return _Binding.Contract.TransferFrom(&_Binding.TransactOpts, from, to, tokenId)
  1178  }
  1179  
  1180  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  1181  //
  1182  // Solidity: function transferOwnership(address newOwner) returns()
  1183  func (_Binding *BindingTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  1184  	return _Binding.contract.Transact(opts, "transferOwnership", newOwner)
  1185  }
  1186  
  1187  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  1188  //
  1189  // Solidity: function transferOwnership(address newOwner) returns()
  1190  func (_Binding *BindingSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  1191  	return _Binding.Contract.TransferOwnership(&_Binding.TransactOpts, newOwner)
  1192  }
  1193  
  1194  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  1195  //
  1196  // Solidity: function transferOwnership(address newOwner) returns()
  1197  func (_Binding *BindingTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  1198  	return _Binding.Contract.TransferOwnership(&_Binding.TransactOpts, newOwner)
  1199  }
  1200  
  1201  // Withdraw is a paid mutator transaction binding the contract method 0x3ccfd60b.
  1202  //
  1203  // Solidity: function withdraw() returns()
  1204  func (_Binding *BindingTransactor) Withdraw(opts *bind.TransactOpts) (*types.Transaction, error) {
  1205  	return _Binding.contract.Transact(opts, "withdraw")
  1206  }
  1207  
  1208  // Withdraw is a paid mutator transaction binding the contract method 0x3ccfd60b.
  1209  //
  1210  // Solidity: function withdraw() returns()
  1211  func (_Binding *BindingSession) Withdraw() (*types.Transaction, error) {
  1212  	return _Binding.Contract.Withdraw(&_Binding.TransactOpts)
  1213  }
  1214  
  1215  // Withdraw is a paid mutator transaction binding the contract method 0x3ccfd60b.
  1216  //
  1217  // Solidity: function withdraw() returns()
  1218  func (_Binding *BindingTransactorSession) Withdraw() (*types.Transaction, error) {
  1219  	return _Binding.Contract.Withdraw(&_Binding.TransactOpts)
  1220  }
  1221  
  1222  // 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.
  1223  type BindingApprovalIterator struct {
  1224  	Event *BindingApproval // Event containing the contract specifics and raw log
  1225  
  1226  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1227  	event    string              // Event name to use for unpacking event data
  1228  
  1229  	logs chan types.Log        // Log channel receiving the found contract events
  1230  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1231  	done bool                  // Whether the subscription completed delivering logs
  1232  	fail error                 // Occurred error to stop iteration
  1233  }
  1234  
  1235  // Next advances the iterator to the subsequent event, returning whether there
  1236  // are any more events found. In case of a retrieval or parsing error, false is
  1237  // returned and Error() can be queried for the exact failure.
  1238  func (it *BindingApprovalIterator) Next() bool {
  1239  	// If the iterator failed, stop iterating
  1240  	if it.fail != nil {
  1241  		return false
  1242  	}
  1243  	// If the iterator completed, deliver directly whatever's available
  1244  	if it.done {
  1245  		select {
  1246  		case log := <-it.logs:
  1247  			it.Event = new(BindingApproval)
  1248  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1249  				it.fail = err
  1250  				return false
  1251  			}
  1252  			it.Event.Raw = log
  1253  			return true
  1254  
  1255  		default:
  1256  			return false
  1257  		}
  1258  	}
  1259  	// Iterator still in progress, wait for either a data or an error event
  1260  	select {
  1261  	case log := <-it.logs:
  1262  		it.Event = new(BindingApproval)
  1263  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1264  			it.fail = err
  1265  			return false
  1266  		}
  1267  		it.Event.Raw = log
  1268  		return true
  1269  
  1270  	case err := <-it.sub.Err():
  1271  		it.done = true
  1272  		it.fail = err
  1273  		return it.Next()
  1274  	}
  1275  }
  1276  
  1277  // Error returns any retrieval or parsing error occurred during filtering.
  1278  func (it *BindingApprovalIterator) Error() error {
  1279  	return it.fail
  1280  }
  1281  
  1282  // Close terminates the iteration process, releasing any pending underlying
  1283  // resources.
  1284  func (it *BindingApprovalIterator) Close() error {
  1285  	it.sub.Unsubscribe()
  1286  	return nil
  1287  }
  1288  
  1289  // BindingApproval represents a Approval event raised by the Binding contract.
  1290  type BindingApproval struct {
  1291  	Owner    common.Address
  1292  	Approved common.Address
  1293  	TokenId  *big.Int
  1294  	Raw      types.Log // Blockchain specific contextual infos
  1295  }
  1296  
  1297  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  1298  //
  1299  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  1300  func (_Binding *BindingFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*BindingApprovalIterator, error) {
  1301  
  1302  	var ownerRule []interface{}
  1303  	for _, ownerItem := range owner {
  1304  		ownerRule = append(ownerRule, ownerItem)
  1305  	}
  1306  	var approvedRule []interface{}
  1307  	for _, approvedItem := range approved {
  1308  		approvedRule = append(approvedRule, approvedItem)
  1309  	}
  1310  	var tokenIdRule []interface{}
  1311  	for _, tokenIdItem := range tokenId {
  1312  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  1313  	}
  1314  
  1315  	logs, sub, err := _Binding.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
  1316  	if err != nil {
  1317  		return nil, err
  1318  	}
  1319  	return &BindingApprovalIterator{contract: _Binding.contract, event: "Approval", logs: logs, sub: sub}, nil
  1320  }
  1321  
  1322  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  1323  //
  1324  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  1325  func (_Binding *BindingFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *BindingApproval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) {
  1326  
  1327  	var ownerRule []interface{}
  1328  	for _, ownerItem := range owner {
  1329  		ownerRule = append(ownerRule, ownerItem)
  1330  	}
  1331  	var approvedRule []interface{}
  1332  	for _, approvedItem := range approved {
  1333  		approvedRule = append(approvedRule, approvedItem)
  1334  	}
  1335  	var tokenIdRule []interface{}
  1336  	for _, tokenIdItem := range tokenId {
  1337  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  1338  	}
  1339  
  1340  	logs, sub, err := _Binding.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
  1341  	if err != nil {
  1342  		return nil, err
  1343  	}
  1344  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1345  		defer sub.Unsubscribe()
  1346  		for {
  1347  			select {
  1348  			case log := <-logs:
  1349  				// New log arrived, parse the event and forward to the user
  1350  				event := new(BindingApproval)
  1351  				if err := _Binding.contract.UnpackLog(event, "Approval", log); err != nil {
  1352  					return err
  1353  				}
  1354  				event.Raw = log
  1355  
  1356  				select {
  1357  				case sink <- event:
  1358  				case err := <-sub.Err():
  1359  					return err
  1360  				case <-quit:
  1361  					return nil
  1362  				}
  1363  			case err := <-sub.Err():
  1364  				return err
  1365  			case <-quit:
  1366  				return nil
  1367  			}
  1368  		}
  1369  	}), nil
  1370  }
  1371  
  1372  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  1373  //
  1374  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  1375  func (_Binding *BindingFilterer) ParseApproval(log types.Log) (*BindingApproval, error) {
  1376  	event := new(BindingApproval)
  1377  	if err := _Binding.contract.UnpackLog(event, "Approval", log); err != nil {
  1378  		return nil, err
  1379  	}
  1380  	event.Raw = log
  1381  	return event, nil
  1382  }
  1383  
  1384  // 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.
  1385  type BindingApprovalForAllIterator struct {
  1386  	Event *BindingApprovalForAll // Event containing the contract specifics and raw log
  1387  
  1388  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1389  	event    string              // Event name to use for unpacking event data
  1390  
  1391  	logs chan types.Log        // Log channel receiving the found contract events
  1392  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1393  	done bool                  // Whether the subscription completed delivering logs
  1394  	fail error                 // Occurred error to stop iteration
  1395  }
  1396  
  1397  // Next advances the iterator to the subsequent event, returning whether there
  1398  // are any more events found. In case of a retrieval or parsing error, false is
  1399  // returned and Error() can be queried for the exact failure.
  1400  func (it *BindingApprovalForAllIterator) Next() bool {
  1401  	// If the iterator failed, stop iterating
  1402  	if it.fail != nil {
  1403  		return false
  1404  	}
  1405  	// If the iterator completed, deliver directly whatever's available
  1406  	if it.done {
  1407  		select {
  1408  		case log := <-it.logs:
  1409  			it.Event = new(BindingApprovalForAll)
  1410  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1411  				it.fail = err
  1412  				return false
  1413  			}
  1414  			it.Event.Raw = log
  1415  			return true
  1416  
  1417  		default:
  1418  			return false
  1419  		}
  1420  	}
  1421  	// Iterator still in progress, wait for either a data or an error event
  1422  	select {
  1423  	case log := <-it.logs:
  1424  		it.Event = new(BindingApprovalForAll)
  1425  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1426  			it.fail = err
  1427  			return false
  1428  		}
  1429  		it.Event.Raw = log
  1430  		return true
  1431  
  1432  	case err := <-it.sub.Err():
  1433  		it.done = true
  1434  		it.fail = err
  1435  		return it.Next()
  1436  	}
  1437  }
  1438  
  1439  // Error returns any retrieval or parsing error occurred during filtering.
  1440  func (it *BindingApprovalForAllIterator) Error() error {
  1441  	return it.fail
  1442  }
  1443  
  1444  // Close terminates the iteration process, releasing any pending underlying
  1445  // resources.
  1446  func (it *BindingApprovalForAllIterator) Close() error {
  1447  	it.sub.Unsubscribe()
  1448  	return nil
  1449  }
  1450  
  1451  // BindingApprovalForAll represents a ApprovalForAll event raised by the Binding contract.
  1452  type BindingApprovalForAll struct {
  1453  	Owner    common.Address
  1454  	Operator common.Address
  1455  	Approved bool
  1456  	Raw      types.Log // Blockchain specific contextual infos
  1457  }
  1458  
  1459  // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  1460  //
  1461  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  1462  func (_Binding *BindingFilterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*BindingApprovalForAllIterator, error) {
  1463  
  1464  	var ownerRule []interface{}
  1465  	for _, ownerItem := range owner {
  1466  		ownerRule = append(ownerRule, ownerItem)
  1467  	}
  1468  	var operatorRule []interface{}
  1469  	for _, operatorItem := range operator {
  1470  		operatorRule = append(operatorRule, operatorItem)
  1471  	}
  1472  
  1473  	logs, sub, err := _Binding.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
  1474  	if err != nil {
  1475  		return nil, err
  1476  	}
  1477  	return &BindingApprovalForAllIterator{contract: _Binding.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil
  1478  }
  1479  
  1480  // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  1481  //
  1482  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  1483  func (_Binding *BindingFilterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *BindingApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) {
  1484  
  1485  	var ownerRule []interface{}
  1486  	for _, ownerItem := range owner {
  1487  		ownerRule = append(ownerRule, ownerItem)
  1488  	}
  1489  	var operatorRule []interface{}
  1490  	for _, operatorItem := range operator {
  1491  		operatorRule = append(operatorRule, operatorItem)
  1492  	}
  1493  
  1494  	logs, sub, err := _Binding.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
  1495  	if err != nil {
  1496  		return nil, err
  1497  	}
  1498  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1499  		defer sub.Unsubscribe()
  1500  		for {
  1501  			select {
  1502  			case log := <-logs:
  1503  				// New log arrived, parse the event and forward to the user
  1504  				event := new(BindingApprovalForAll)
  1505  				if err := _Binding.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
  1506  					return err
  1507  				}
  1508  				event.Raw = log
  1509  
  1510  				select {
  1511  				case sink <- event:
  1512  				case err := <-sub.Err():
  1513  					return err
  1514  				case <-quit:
  1515  					return nil
  1516  				}
  1517  			case err := <-sub.Err():
  1518  				return err
  1519  			case <-quit:
  1520  				return nil
  1521  			}
  1522  		}
  1523  	}), nil
  1524  }
  1525  
  1526  // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  1527  //
  1528  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  1529  func (_Binding *BindingFilterer) ParseApprovalForAll(log types.Log) (*BindingApprovalForAll, error) {
  1530  	event := new(BindingApprovalForAll)
  1531  	if err := _Binding.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
  1532  		return nil, err
  1533  	}
  1534  	event.Raw = log
  1535  	return event, nil
  1536  }
  1537  
  1538  // 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.
  1539  type BindingMetadataFrozenIterator struct {
  1540  	Event *BindingMetadataFrozen // Event containing the contract specifics and raw log
  1541  
  1542  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1543  	event    string              // Event name to use for unpacking event data
  1544  
  1545  	logs chan types.Log        // Log channel receiving the found contract events
  1546  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1547  	done bool                  // Whether the subscription completed delivering logs
  1548  	fail error                 // Occurred error to stop iteration
  1549  }
  1550  
  1551  // Next advances the iterator to the subsequent event, returning whether there
  1552  // are any more events found. In case of a retrieval or parsing error, false is
  1553  // returned and Error() can be queried for the exact failure.
  1554  func (it *BindingMetadataFrozenIterator) Next() bool {
  1555  	// If the iterator failed, stop iterating
  1556  	if it.fail != nil {
  1557  		return false
  1558  	}
  1559  	// If the iterator completed, deliver directly whatever's available
  1560  	if it.done {
  1561  		select {
  1562  		case log := <-it.logs:
  1563  			it.Event = new(BindingMetadataFrozen)
  1564  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1565  				it.fail = err
  1566  				return false
  1567  			}
  1568  			it.Event.Raw = log
  1569  			return true
  1570  
  1571  		default:
  1572  			return false
  1573  		}
  1574  	}
  1575  	// Iterator still in progress, wait for either a data or an error event
  1576  	select {
  1577  	case log := <-it.logs:
  1578  		it.Event = new(BindingMetadataFrozen)
  1579  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1580  			it.fail = err
  1581  			return false
  1582  		}
  1583  		it.Event.Raw = log
  1584  		return true
  1585  
  1586  	case err := <-it.sub.Err():
  1587  		it.done = true
  1588  		it.fail = err
  1589  		return it.Next()
  1590  	}
  1591  }
  1592  
  1593  // Error returns any retrieval or parsing error occurred during filtering.
  1594  func (it *BindingMetadataFrozenIterator) Error() error {
  1595  	return it.fail
  1596  }
  1597  
  1598  // Close terminates the iteration process, releasing any pending underlying
  1599  // resources.
  1600  func (it *BindingMetadataFrozenIterator) Close() error {
  1601  	it.sub.Unsubscribe()
  1602  	return nil
  1603  }
  1604  
  1605  // BindingMetadataFrozen represents a MetadataFrozen event raised by the Binding contract.
  1606  type BindingMetadataFrozen struct {
  1607  	Uri string
  1608  	Raw types.Log // Blockchain specific contextual infos
  1609  }
  1610  
  1611  // FilterMetadataFrozen is a free log retrieval operation binding the contract event 0xac32328134cd103aa01cccc8f61d479f9613e7f9c1de6bfc70c78412b15c18e3.
  1612  //
  1613  // Solidity: event MetadataFrozen(string uri)
  1614  func (_Binding *BindingFilterer) FilterMetadataFrozen(opts *bind.FilterOpts) (*BindingMetadataFrozenIterator, error) {
  1615  
  1616  	logs, sub, err := _Binding.contract.FilterLogs(opts, "MetadataFrozen")
  1617  	if err != nil {
  1618  		return nil, err
  1619  	}
  1620  	return &BindingMetadataFrozenIterator{contract: _Binding.contract, event: "MetadataFrozen", logs: logs, sub: sub}, nil
  1621  }
  1622  
  1623  // WatchMetadataFrozen is a free log subscription operation binding the contract event 0xac32328134cd103aa01cccc8f61d479f9613e7f9c1de6bfc70c78412b15c18e3.
  1624  //
  1625  // Solidity: event MetadataFrozen(string uri)
  1626  func (_Binding *BindingFilterer) WatchMetadataFrozen(opts *bind.WatchOpts, sink chan<- *BindingMetadataFrozen) (event.Subscription, error) {
  1627  
  1628  	logs, sub, err := _Binding.contract.WatchLogs(opts, "MetadataFrozen")
  1629  	if err != nil {
  1630  		return nil, err
  1631  	}
  1632  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1633  		defer sub.Unsubscribe()
  1634  		for {
  1635  			select {
  1636  			case log := <-logs:
  1637  				// New log arrived, parse the event and forward to the user
  1638  				event := new(BindingMetadataFrozen)
  1639  				if err := _Binding.contract.UnpackLog(event, "MetadataFrozen", log); err != nil {
  1640  					return err
  1641  				}
  1642  				event.Raw = log
  1643  
  1644  				select {
  1645  				case sink <- event:
  1646  				case err := <-sub.Err():
  1647  					return err
  1648  				case <-quit:
  1649  					return nil
  1650  				}
  1651  			case err := <-sub.Err():
  1652  				return err
  1653  			case <-quit:
  1654  				return nil
  1655  			}
  1656  		}
  1657  	}), nil
  1658  }
  1659  
  1660  // ParseMetadataFrozen is a log parse operation binding the contract event 0xac32328134cd103aa01cccc8f61d479f9613e7f9c1de6bfc70c78412b15c18e3.
  1661  //
  1662  // Solidity: event MetadataFrozen(string uri)
  1663  func (_Binding *BindingFilterer) ParseMetadataFrozen(log types.Log) (*BindingMetadataFrozen, error) {
  1664  	event := new(BindingMetadataFrozen)
  1665  	if err := _Binding.contract.UnpackLog(event, "MetadataFrozen", log); err != nil {
  1666  		return nil, err
  1667  	}
  1668  	event.Raw = log
  1669  	return event, nil
  1670  }
  1671  
  1672  // 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.
  1673  type BindingMintableUpdatedIterator struct {
  1674  	Event *BindingMintableUpdated // Event containing the contract specifics and raw log
  1675  
  1676  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1677  	event    string              // Event name to use for unpacking event data
  1678  
  1679  	logs chan types.Log        // Log channel receiving the found contract events
  1680  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1681  	done bool                  // Whether the subscription completed delivering logs
  1682  	fail error                 // Occurred error to stop iteration
  1683  }
  1684  
  1685  // Next advances the iterator to the subsequent event, returning whether there
  1686  // are any more events found. In case of a retrieval or parsing error, false is
  1687  // returned and Error() can be queried for the exact failure.
  1688  func (it *BindingMintableUpdatedIterator) Next() bool {
  1689  	// If the iterator failed, stop iterating
  1690  	if it.fail != nil {
  1691  		return false
  1692  	}
  1693  	// If the iterator completed, deliver directly whatever's available
  1694  	if it.done {
  1695  		select {
  1696  		case log := <-it.logs:
  1697  			it.Event = new(BindingMintableUpdated)
  1698  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1699  				it.fail = err
  1700  				return false
  1701  			}
  1702  			it.Event.Raw = log
  1703  			return true
  1704  
  1705  		default:
  1706  			return false
  1707  		}
  1708  	}
  1709  	// Iterator still in progress, wait for either a data or an error event
  1710  	select {
  1711  	case log := <-it.logs:
  1712  		it.Event = new(BindingMintableUpdated)
  1713  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1714  			it.fail = err
  1715  			return false
  1716  		}
  1717  		it.Event.Raw = log
  1718  		return true
  1719  
  1720  	case err := <-it.sub.Err():
  1721  		it.done = true
  1722  		it.fail = err
  1723  		return it.Next()
  1724  	}
  1725  }
  1726  
  1727  // Error returns any retrieval or parsing error occurred during filtering.
  1728  func (it *BindingMintableUpdatedIterator) Error() error {
  1729  	return it.fail
  1730  }
  1731  
  1732  // Close terminates the iteration process, releasing any pending underlying
  1733  // resources.
  1734  func (it *BindingMintableUpdatedIterator) Close() error {
  1735  	it.sub.Unsubscribe()
  1736  	return nil
  1737  }
  1738  
  1739  // BindingMintableUpdated represents a MintableUpdated event raised by the Binding contract.
  1740  type BindingMintableUpdated struct {
  1741  	Previous bool
  1742  	Updated  bool
  1743  	Raw      types.Log // Blockchain specific contextual infos
  1744  }
  1745  
  1746  // FilterMintableUpdated is a free log retrieval operation binding the contract event 0x8d9383d773c0600295154578f39da3106938ba8d1fe1767bcfabe8bf05f555f4.
  1747  //
  1748  // Solidity: event MintableUpdated(bool previous, bool updated)
  1749  func (_Binding *BindingFilterer) FilterMintableUpdated(opts *bind.FilterOpts) (*BindingMintableUpdatedIterator, error) {
  1750  
  1751  	logs, sub, err := _Binding.contract.FilterLogs(opts, "MintableUpdated")
  1752  	if err != nil {
  1753  		return nil, err
  1754  	}
  1755  	return &BindingMintableUpdatedIterator{contract: _Binding.contract, event: "MintableUpdated", logs: logs, sub: sub}, nil
  1756  }
  1757  
  1758  // WatchMintableUpdated is a free log subscription operation binding the contract event 0x8d9383d773c0600295154578f39da3106938ba8d1fe1767bcfabe8bf05f555f4.
  1759  //
  1760  // Solidity: event MintableUpdated(bool previous, bool updated)
  1761  func (_Binding *BindingFilterer) WatchMintableUpdated(opts *bind.WatchOpts, sink chan<- *BindingMintableUpdated) (event.Subscription, error) {
  1762  
  1763  	logs, sub, err := _Binding.contract.WatchLogs(opts, "MintableUpdated")
  1764  	if err != nil {
  1765  		return nil, err
  1766  	}
  1767  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1768  		defer sub.Unsubscribe()
  1769  		for {
  1770  			select {
  1771  			case log := <-logs:
  1772  				// New log arrived, parse the event and forward to the user
  1773  				event := new(BindingMintableUpdated)
  1774  				if err := _Binding.contract.UnpackLog(event, "MintableUpdated", log); err != nil {
  1775  					return err
  1776  				}
  1777  				event.Raw = log
  1778  
  1779  				select {
  1780  				case sink <- event:
  1781  				case err := <-sub.Err():
  1782  					return err
  1783  				case <-quit:
  1784  					return nil
  1785  				}
  1786  			case err := <-sub.Err():
  1787  				return err
  1788  			case <-quit:
  1789  				return nil
  1790  			}
  1791  		}
  1792  	}), nil
  1793  }
  1794  
  1795  // ParseMintableUpdated is a log parse operation binding the contract event 0x8d9383d773c0600295154578f39da3106938ba8d1fe1767bcfabe8bf05f555f4.
  1796  //
  1797  // Solidity: event MintableUpdated(bool previous, bool updated)
  1798  func (_Binding *BindingFilterer) ParseMintableUpdated(log types.Log) (*BindingMintableUpdated, error) {
  1799  	event := new(BindingMintableUpdated)
  1800  	if err := _Binding.contract.UnpackLog(event, "MintableUpdated", log); err != nil {
  1801  		return nil, err
  1802  	}
  1803  	event.Raw = log
  1804  	return event, nil
  1805  }
  1806  
  1807  // 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.
  1808  type BindingOwnershipTransferredIterator struct {
  1809  	Event *BindingOwnershipTransferred // Event containing the contract specifics and raw log
  1810  
  1811  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1812  	event    string              // Event name to use for unpacking event data
  1813  
  1814  	logs chan types.Log        // Log channel receiving the found contract events
  1815  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1816  	done bool                  // Whether the subscription completed delivering logs
  1817  	fail error                 // Occurred error to stop iteration
  1818  }
  1819  
  1820  // Next advances the iterator to the subsequent event, returning whether there
  1821  // are any more events found. In case of a retrieval or parsing error, false is
  1822  // returned and Error() can be queried for the exact failure.
  1823  func (it *BindingOwnershipTransferredIterator) Next() bool {
  1824  	// If the iterator failed, stop iterating
  1825  	if it.fail != nil {
  1826  		return false
  1827  	}
  1828  	// If the iterator completed, deliver directly whatever's available
  1829  	if it.done {
  1830  		select {
  1831  		case log := <-it.logs:
  1832  			it.Event = new(BindingOwnershipTransferred)
  1833  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1834  				it.fail = err
  1835  				return false
  1836  			}
  1837  			it.Event.Raw = log
  1838  			return true
  1839  
  1840  		default:
  1841  			return false
  1842  		}
  1843  	}
  1844  	// Iterator still in progress, wait for either a data or an error event
  1845  	select {
  1846  	case log := <-it.logs:
  1847  		it.Event = new(BindingOwnershipTransferred)
  1848  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1849  			it.fail = err
  1850  			return false
  1851  		}
  1852  		it.Event.Raw = log
  1853  		return true
  1854  
  1855  	case err := <-it.sub.Err():
  1856  		it.done = true
  1857  		it.fail = err
  1858  		return it.Next()
  1859  	}
  1860  }
  1861  
  1862  // Error returns any retrieval or parsing error occurred during filtering.
  1863  func (it *BindingOwnershipTransferredIterator) Error() error {
  1864  	return it.fail
  1865  }
  1866  
  1867  // Close terminates the iteration process, releasing any pending underlying
  1868  // resources.
  1869  func (it *BindingOwnershipTransferredIterator) Close() error {
  1870  	it.sub.Unsubscribe()
  1871  	return nil
  1872  }
  1873  
  1874  // BindingOwnershipTransferred represents a OwnershipTransferred event raised by the Binding contract.
  1875  type BindingOwnershipTransferred struct {
  1876  	PreviousOwner common.Address
  1877  	NewOwner      common.Address
  1878  	Raw           types.Log // Blockchain specific contextual infos
  1879  }
  1880  
  1881  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1882  //
  1883  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  1884  func (_Binding *BindingFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*BindingOwnershipTransferredIterator, error) {
  1885  
  1886  	var previousOwnerRule []interface{}
  1887  	for _, previousOwnerItem := range previousOwner {
  1888  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  1889  	}
  1890  	var newOwnerRule []interface{}
  1891  	for _, newOwnerItem := range newOwner {
  1892  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  1893  	}
  1894  
  1895  	logs, sub, err := _Binding.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  1896  	if err != nil {
  1897  		return nil, err
  1898  	}
  1899  	return &BindingOwnershipTransferredIterator{contract: _Binding.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  1900  }
  1901  
  1902  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1903  //
  1904  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  1905  func (_Binding *BindingFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *BindingOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  1906  
  1907  	var previousOwnerRule []interface{}
  1908  	for _, previousOwnerItem := range previousOwner {
  1909  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  1910  	}
  1911  	var newOwnerRule []interface{}
  1912  	for _, newOwnerItem := range newOwner {
  1913  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  1914  	}
  1915  
  1916  	logs, sub, err := _Binding.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  1917  	if err != nil {
  1918  		return nil, err
  1919  	}
  1920  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1921  		defer sub.Unsubscribe()
  1922  		for {
  1923  			select {
  1924  			case log := <-logs:
  1925  				// New log arrived, parse the event and forward to the user
  1926  				event := new(BindingOwnershipTransferred)
  1927  				if err := _Binding.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  1928  					return err
  1929  				}
  1930  				event.Raw = log
  1931  
  1932  				select {
  1933  				case sink <- event:
  1934  				case err := <-sub.Err():
  1935  					return err
  1936  				case <-quit:
  1937  					return nil
  1938  				}
  1939  			case err := <-sub.Err():
  1940  				return err
  1941  			case <-quit:
  1942  				return nil
  1943  			}
  1944  		}
  1945  	}), nil
  1946  }
  1947  
  1948  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1949  //
  1950  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  1951  func (_Binding *BindingFilterer) ParseOwnershipTransferred(log types.Log) (*BindingOwnershipTransferred, error) {
  1952  	event := new(BindingOwnershipTransferred)
  1953  	if err := _Binding.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  1954  		return nil, err
  1955  	}
  1956  	event.Raw = log
  1957  	return event, nil
  1958  }
  1959  
  1960  // 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.
  1961  type BindingReceiverUpdatedIterator struct {
  1962  	Event *BindingReceiverUpdated // Event containing the contract specifics and raw log
  1963  
  1964  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1965  	event    string              // Event name to use for unpacking event data
  1966  
  1967  	logs chan types.Log        // Log channel receiving the found contract events
  1968  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1969  	done bool                  // Whether the subscription completed delivering logs
  1970  	fail error                 // Occurred error to stop iteration
  1971  }
  1972  
  1973  // Next advances the iterator to the subsequent event, returning whether there
  1974  // are any more events found. In case of a retrieval or parsing error, false is
  1975  // returned and Error() can be queried for the exact failure.
  1976  func (it *BindingReceiverUpdatedIterator) Next() bool {
  1977  	// If the iterator failed, stop iterating
  1978  	if it.fail != nil {
  1979  		return false
  1980  	}
  1981  	// If the iterator completed, deliver directly whatever's available
  1982  	if it.done {
  1983  		select {
  1984  		case log := <-it.logs:
  1985  			it.Event = new(BindingReceiverUpdated)
  1986  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1987  				it.fail = err
  1988  				return false
  1989  			}
  1990  			it.Event.Raw = log
  1991  			return true
  1992  
  1993  		default:
  1994  			return false
  1995  		}
  1996  	}
  1997  	// Iterator still in progress, wait for either a data or an error event
  1998  	select {
  1999  	case log := <-it.logs:
  2000  		it.Event = new(BindingReceiverUpdated)
  2001  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2002  			it.fail = err
  2003  			return false
  2004  		}
  2005  		it.Event.Raw = log
  2006  		return true
  2007  
  2008  	case err := <-it.sub.Err():
  2009  		it.done = true
  2010  		it.fail = err
  2011  		return it.Next()
  2012  	}
  2013  }
  2014  
  2015  // Error returns any retrieval or parsing error occurred during filtering.
  2016  func (it *BindingReceiverUpdatedIterator) Error() error {
  2017  	return it.fail
  2018  }
  2019  
  2020  // Close terminates the iteration process, releasing any pending underlying
  2021  // resources.
  2022  func (it *BindingReceiverUpdatedIterator) Close() error {
  2023  	it.sub.Unsubscribe()
  2024  	return nil
  2025  }
  2026  
  2027  // BindingReceiverUpdated represents a ReceiverUpdated event raised by the Binding contract.
  2028  type BindingReceiverUpdated struct {
  2029  	Previous common.Address
  2030  	Updated  common.Address
  2031  	Raw      types.Log // Blockchain specific contextual infos
  2032  }
  2033  
  2034  // FilterReceiverUpdated is a free log retrieval operation binding the contract event 0xbda2bcccbfa5ae883ab7d9f03480ab68fe68e9200c9b52c0c47abc21d2c90ec9.
  2035  //
  2036  // Solidity: event ReceiverUpdated(address previous, address updated)
  2037  func (_Binding *BindingFilterer) FilterReceiverUpdated(opts *bind.FilterOpts) (*BindingReceiverUpdatedIterator, error) {
  2038  
  2039  	logs, sub, err := _Binding.contract.FilterLogs(opts, "ReceiverUpdated")
  2040  	if err != nil {
  2041  		return nil, err
  2042  	}
  2043  	return &BindingReceiverUpdatedIterator{contract: _Binding.contract, event: "ReceiverUpdated", logs: logs, sub: sub}, nil
  2044  }
  2045  
  2046  // WatchReceiverUpdated is a free log subscription operation binding the contract event 0xbda2bcccbfa5ae883ab7d9f03480ab68fe68e9200c9b52c0c47abc21d2c90ec9.
  2047  //
  2048  // Solidity: event ReceiverUpdated(address previous, address updated)
  2049  func (_Binding *BindingFilterer) WatchReceiverUpdated(opts *bind.WatchOpts, sink chan<- *BindingReceiverUpdated) (event.Subscription, error) {
  2050  
  2051  	logs, sub, err := _Binding.contract.WatchLogs(opts, "ReceiverUpdated")
  2052  	if err != nil {
  2053  		return nil, err
  2054  	}
  2055  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2056  		defer sub.Unsubscribe()
  2057  		for {
  2058  			select {
  2059  			case log := <-logs:
  2060  				// New log arrived, parse the event and forward to the user
  2061  				event := new(BindingReceiverUpdated)
  2062  				if err := _Binding.contract.UnpackLog(event, "ReceiverUpdated", log); err != nil {
  2063  					return err
  2064  				}
  2065  				event.Raw = log
  2066  
  2067  				select {
  2068  				case sink <- event:
  2069  				case err := <-sub.Err():
  2070  					return err
  2071  				case <-quit:
  2072  					return nil
  2073  				}
  2074  			case err := <-sub.Err():
  2075  				return err
  2076  			case <-quit:
  2077  				return nil
  2078  			}
  2079  		}
  2080  	}), nil
  2081  }
  2082  
  2083  // ParseReceiverUpdated is a log parse operation binding the contract event 0xbda2bcccbfa5ae883ab7d9f03480ab68fe68e9200c9b52c0c47abc21d2c90ec9.
  2084  //
  2085  // Solidity: event ReceiverUpdated(address previous, address updated)
  2086  func (_Binding *BindingFilterer) ParseReceiverUpdated(log types.Log) (*BindingReceiverUpdated, error) {
  2087  	event := new(BindingReceiverUpdated)
  2088  	if err := _Binding.contract.UnpackLog(event, "ReceiverUpdated", log); err != nil {
  2089  		return nil, err
  2090  	}
  2091  	event.Raw = log
  2092  	return event, nil
  2093  }
  2094  
  2095  // 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.
  2096  type BindingRoyaltyUpdatedIterator struct {
  2097  	Event *BindingRoyaltyUpdated // Event containing the contract specifics and raw log
  2098  
  2099  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2100  	event    string              // Event name to use for unpacking event data
  2101  
  2102  	logs chan types.Log        // Log channel receiving the found contract events
  2103  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2104  	done bool                  // Whether the subscription completed delivering logs
  2105  	fail error                 // Occurred error to stop iteration
  2106  }
  2107  
  2108  // Next advances the iterator to the subsequent event, returning whether there
  2109  // are any more events found. In case of a retrieval or parsing error, false is
  2110  // returned and Error() can be queried for the exact failure.
  2111  func (it *BindingRoyaltyUpdatedIterator) Next() bool {
  2112  	// If the iterator failed, stop iterating
  2113  	if it.fail != nil {
  2114  		return false
  2115  	}
  2116  	// If the iterator completed, deliver directly whatever's available
  2117  	if it.done {
  2118  		select {
  2119  		case log := <-it.logs:
  2120  			it.Event = new(BindingRoyaltyUpdated)
  2121  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2122  				it.fail = err
  2123  				return false
  2124  			}
  2125  			it.Event.Raw = log
  2126  			return true
  2127  
  2128  		default:
  2129  			return false
  2130  		}
  2131  	}
  2132  	// Iterator still in progress, wait for either a data or an error event
  2133  	select {
  2134  	case log := <-it.logs:
  2135  		it.Event = new(BindingRoyaltyUpdated)
  2136  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2137  			it.fail = err
  2138  			return false
  2139  		}
  2140  		it.Event.Raw = log
  2141  		return true
  2142  
  2143  	case err := <-it.sub.Err():
  2144  		it.done = true
  2145  		it.fail = err
  2146  		return it.Next()
  2147  	}
  2148  }
  2149  
  2150  // Error returns any retrieval or parsing error occurred during filtering.
  2151  func (it *BindingRoyaltyUpdatedIterator) Error() error {
  2152  	return it.fail
  2153  }
  2154  
  2155  // Close terminates the iteration process, releasing any pending underlying
  2156  // resources.
  2157  func (it *BindingRoyaltyUpdatedIterator) Close() error {
  2158  	it.sub.Unsubscribe()
  2159  	return nil
  2160  }
  2161  
  2162  // BindingRoyaltyUpdated represents a RoyaltyUpdated event raised by the Binding contract.
  2163  type BindingRoyaltyUpdated struct {
  2164  	Previous *big.Int
  2165  	Updated  *big.Int
  2166  	Raw      types.Log // Blockchain specific contextual infos
  2167  }
  2168  
  2169  // FilterRoyaltyUpdated is a free log retrieval operation binding the contract event 0x54e506cda8889617ec187c699f1c3b373053eb5796248194796f7e1501dfab24.
  2170  //
  2171  // Solidity: event RoyaltyUpdated(uint256 previous, uint256 updated)
  2172  func (_Binding *BindingFilterer) FilterRoyaltyUpdated(opts *bind.FilterOpts) (*BindingRoyaltyUpdatedIterator, error) {
  2173  
  2174  	logs, sub, err := _Binding.contract.FilterLogs(opts, "RoyaltyUpdated")
  2175  	if err != nil {
  2176  		return nil, err
  2177  	}
  2178  	return &BindingRoyaltyUpdatedIterator{contract: _Binding.contract, event: "RoyaltyUpdated", logs: logs, sub: sub}, nil
  2179  }
  2180  
  2181  // WatchRoyaltyUpdated is a free log subscription operation binding the contract event 0x54e506cda8889617ec187c699f1c3b373053eb5796248194796f7e1501dfab24.
  2182  //
  2183  // Solidity: event RoyaltyUpdated(uint256 previous, uint256 updated)
  2184  func (_Binding *BindingFilterer) WatchRoyaltyUpdated(opts *bind.WatchOpts, sink chan<- *BindingRoyaltyUpdated) (event.Subscription, error) {
  2185  
  2186  	logs, sub, err := _Binding.contract.WatchLogs(opts, "RoyaltyUpdated")
  2187  	if err != nil {
  2188  		return nil, err
  2189  	}
  2190  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2191  		defer sub.Unsubscribe()
  2192  		for {
  2193  			select {
  2194  			case log := <-logs:
  2195  				// New log arrived, parse the event and forward to the user
  2196  				event := new(BindingRoyaltyUpdated)
  2197  				if err := _Binding.contract.UnpackLog(event, "RoyaltyUpdated", log); err != nil {
  2198  					return err
  2199  				}
  2200  				event.Raw = log
  2201  
  2202  				select {
  2203  				case sink <- event:
  2204  				case err := <-sub.Err():
  2205  					return err
  2206  				case <-quit:
  2207  					return nil
  2208  				}
  2209  			case err := <-sub.Err():
  2210  				return err
  2211  			case <-quit:
  2212  				return nil
  2213  			}
  2214  		}
  2215  	}), nil
  2216  }
  2217  
  2218  // ParseRoyaltyUpdated is a log parse operation binding the contract event 0x54e506cda8889617ec187c699f1c3b373053eb5796248194796f7e1501dfab24.
  2219  //
  2220  // Solidity: event RoyaltyUpdated(uint256 previous, uint256 updated)
  2221  func (_Binding *BindingFilterer) ParseRoyaltyUpdated(log types.Log) (*BindingRoyaltyUpdated, error) {
  2222  	event := new(BindingRoyaltyUpdated)
  2223  	if err := _Binding.contract.UnpackLog(event, "RoyaltyUpdated", log); err != nil {
  2224  		return nil, err
  2225  	}
  2226  	event.Raw = log
  2227  	return event, nil
  2228  }
  2229  
  2230  // 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.
  2231  type BindingTransferIterator struct {
  2232  	Event *BindingTransfer // Event containing the contract specifics and raw log
  2233  
  2234  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2235  	event    string              // Event name to use for unpacking event data
  2236  
  2237  	logs chan types.Log        // Log channel receiving the found contract events
  2238  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2239  	done bool                  // Whether the subscription completed delivering logs
  2240  	fail error                 // Occurred error to stop iteration
  2241  }
  2242  
  2243  // Next advances the iterator to the subsequent event, returning whether there
  2244  // are any more events found. In case of a retrieval or parsing error, false is
  2245  // returned and Error() can be queried for the exact failure.
  2246  func (it *BindingTransferIterator) Next() bool {
  2247  	// If the iterator failed, stop iterating
  2248  	if it.fail != nil {
  2249  		return false
  2250  	}
  2251  	// If the iterator completed, deliver directly whatever's available
  2252  	if it.done {
  2253  		select {
  2254  		case log := <-it.logs:
  2255  			it.Event = new(BindingTransfer)
  2256  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2257  				it.fail = err
  2258  				return false
  2259  			}
  2260  			it.Event.Raw = log
  2261  			return true
  2262  
  2263  		default:
  2264  			return false
  2265  		}
  2266  	}
  2267  	// Iterator still in progress, wait for either a data or an error event
  2268  	select {
  2269  	case log := <-it.logs:
  2270  		it.Event = new(BindingTransfer)
  2271  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2272  			it.fail = err
  2273  			return false
  2274  		}
  2275  		it.Event.Raw = log
  2276  		return true
  2277  
  2278  	case err := <-it.sub.Err():
  2279  		it.done = true
  2280  		it.fail = err
  2281  		return it.Next()
  2282  	}
  2283  }
  2284  
  2285  // Error returns any retrieval or parsing error occurred during filtering.
  2286  func (it *BindingTransferIterator) Error() error {
  2287  	return it.fail
  2288  }
  2289  
  2290  // Close terminates the iteration process, releasing any pending underlying
  2291  // resources.
  2292  func (it *BindingTransferIterator) Close() error {
  2293  	it.sub.Unsubscribe()
  2294  	return nil
  2295  }
  2296  
  2297  // BindingTransfer represents a Transfer event raised by the Binding contract.
  2298  type BindingTransfer struct {
  2299  	From    common.Address
  2300  	To      common.Address
  2301  	TokenId *big.Int
  2302  	Raw     types.Log // Blockchain specific contextual infos
  2303  }
  2304  
  2305  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  2306  //
  2307  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  2308  func (_Binding *BindingFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*BindingTransferIterator, error) {
  2309  
  2310  	var fromRule []interface{}
  2311  	for _, fromItem := range from {
  2312  		fromRule = append(fromRule, fromItem)
  2313  	}
  2314  	var toRule []interface{}
  2315  	for _, toItem := range to {
  2316  		toRule = append(toRule, toItem)
  2317  	}
  2318  	var tokenIdRule []interface{}
  2319  	for _, tokenIdItem := range tokenId {
  2320  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  2321  	}
  2322  
  2323  	logs, sub, err := _Binding.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
  2324  	if err != nil {
  2325  		return nil, err
  2326  	}
  2327  	return &BindingTransferIterator{contract: _Binding.contract, event: "Transfer", logs: logs, sub: sub}, nil
  2328  }
  2329  
  2330  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  2331  //
  2332  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  2333  func (_Binding *BindingFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *BindingTransfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) {
  2334  
  2335  	var fromRule []interface{}
  2336  	for _, fromItem := range from {
  2337  		fromRule = append(fromRule, fromItem)
  2338  	}
  2339  	var toRule []interface{}
  2340  	for _, toItem := range to {
  2341  		toRule = append(toRule, toItem)
  2342  	}
  2343  	var tokenIdRule []interface{}
  2344  	for _, tokenIdItem := range tokenId {
  2345  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  2346  	}
  2347  
  2348  	logs, sub, err := _Binding.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
  2349  	if err != nil {
  2350  		return nil, err
  2351  	}
  2352  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2353  		defer sub.Unsubscribe()
  2354  		for {
  2355  			select {
  2356  			case log := <-logs:
  2357  				// New log arrived, parse the event and forward to the user
  2358  				event := new(BindingTransfer)
  2359  				if err := _Binding.contract.UnpackLog(event, "Transfer", log); err != nil {
  2360  					return err
  2361  				}
  2362  				event.Raw = log
  2363  
  2364  				select {
  2365  				case sink <- event:
  2366  				case err := <-sub.Err():
  2367  					return err
  2368  				case <-quit:
  2369  					return nil
  2370  				}
  2371  			case err := <-sub.Err():
  2372  				return err
  2373  			case <-quit:
  2374  				return nil
  2375  			}
  2376  		}
  2377  	}), nil
  2378  }
  2379  
  2380  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  2381  //
  2382  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  2383  func (_Binding *BindingFilterer) ParseTransfer(log types.Log) (*BindingTransfer, error) {
  2384  	event := new(BindingTransfer)
  2385  	if err := _Binding.contract.UnpackLog(event, "Transfer", log); err != nil {
  2386  		return nil, err
  2387  	}
  2388  	event.Raw = log
  2389  	return event, nil
  2390  }
  2391  
  2392  // 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.
  2393  type BindingUriFallbackUpdatedIterator struct {
  2394  	Event *BindingUriFallbackUpdated // Event containing the contract specifics and raw log
  2395  
  2396  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2397  	event    string              // Event name to use for unpacking event data
  2398  
  2399  	logs chan types.Log        // Log channel receiving the found contract events
  2400  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2401  	done bool                  // Whether the subscription completed delivering logs
  2402  	fail error                 // Occurred error to stop iteration
  2403  }
  2404  
  2405  // Next advances the iterator to the subsequent event, returning whether there
  2406  // are any more events found. In case of a retrieval or parsing error, false is
  2407  // returned and Error() can be queried for the exact failure.
  2408  func (it *BindingUriFallbackUpdatedIterator) Next() bool {
  2409  	// If the iterator failed, stop iterating
  2410  	if it.fail != nil {
  2411  		return false
  2412  	}
  2413  	// If the iterator completed, deliver directly whatever's available
  2414  	if it.done {
  2415  		select {
  2416  		case log := <-it.logs:
  2417  			it.Event = new(BindingUriFallbackUpdated)
  2418  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2419  				it.fail = err
  2420  				return false
  2421  			}
  2422  			it.Event.Raw = log
  2423  			return true
  2424  
  2425  		default:
  2426  			return false
  2427  		}
  2428  	}
  2429  	// Iterator still in progress, wait for either a data or an error event
  2430  	select {
  2431  	case log := <-it.logs:
  2432  		it.Event = new(BindingUriFallbackUpdated)
  2433  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2434  			it.fail = err
  2435  			return false
  2436  		}
  2437  		it.Event.Raw = log
  2438  		return true
  2439  
  2440  	case err := <-it.sub.Err():
  2441  		it.done = true
  2442  		it.fail = err
  2443  		return it.Next()
  2444  	}
  2445  }
  2446  
  2447  // Error returns any retrieval or parsing error occurred during filtering.
  2448  func (it *BindingUriFallbackUpdatedIterator) Error() error {
  2449  	return it.fail
  2450  }
  2451  
  2452  // Close terminates the iteration process, releasing any pending underlying
  2453  // resources.
  2454  func (it *BindingUriFallbackUpdatedIterator) Close() error {
  2455  	it.sub.Unsubscribe()
  2456  	return nil
  2457  }
  2458  
  2459  // BindingUriFallbackUpdated represents a UriFallbackUpdated event raised by the Binding contract.
  2460  type BindingUriFallbackUpdated struct {
  2461  	Previous string
  2462  	Updated  string
  2463  	Raw      types.Log // Blockchain specific contextual infos
  2464  }
  2465  
  2466  // FilterUriFallbackUpdated is a free log retrieval operation binding the contract event 0xe1b7ff5efe58018e39b7877b5cfa772bb90f32504be7b2330b078d2a9b114bbe.
  2467  //
  2468  // Solidity: event UriFallbackUpdated(string previous, string updated)
  2469  func (_Binding *BindingFilterer) FilterUriFallbackUpdated(opts *bind.FilterOpts) (*BindingUriFallbackUpdatedIterator, error) {
  2470  
  2471  	logs, sub, err := _Binding.contract.FilterLogs(opts, "UriFallbackUpdated")
  2472  	if err != nil {
  2473  		return nil, err
  2474  	}
  2475  	return &BindingUriFallbackUpdatedIterator{contract: _Binding.contract, event: "UriFallbackUpdated", logs: logs, sub: sub}, nil
  2476  }
  2477  
  2478  // WatchUriFallbackUpdated is a free log subscription operation binding the contract event 0xe1b7ff5efe58018e39b7877b5cfa772bb90f32504be7b2330b078d2a9b114bbe.
  2479  //
  2480  // Solidity: event UriFallbackUpdated(string previous, string updated)
  2481  func (_Binding *BindingFilterer) WatchUriFallbackUpdated(opts *bind.WatchOpts, sink chan<- *BindingUriFallbackUpdated) (event.Subscription, error) {
  2482  
  2483  	logs, sub, err := _Binding.contract.WatchLogs(opts, "UriFallbackUpdated")
  2484  	if err != nil {
  2485  		return nil, err
  2486  	}
  2487  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2488  		defer sub.Unsubscribe()
  2489  		for {
  2490  			select {
  2491  			case log := <-logs:
  2492  				// New log arrived, parse the event and forward to the user
  2493  				event := new(BindingUriFallbackUpdated)
  2494  				if err := _Binding.contract.UnpackLog(event, "UriFallbackUpdated", log); err != nil {
  2495  					return err
  2496  				}
  2497  				event.Raw = log
  2498  
  2499  				select {
  2500  				case sink <- event:
  2501  				case err := <-sub.Err():
  2502  					return err
  2503  				case <-quit:
  2504  					return nil
  2505  				}
  2506  			case err := <-sub.Err():
  2507  				return err
  2508  			case <-quit:
  2509  				return nil
  2510  			}
  2511  		}
  2512  	}), nil
  2513  }
  2514  
  2515  // ParseUriFallbackUpdated is a log parse operation binding the contract event 0xe1b7ff5efe58018e39b7877b5cfa772bb90f32504be7b2330b078d2a9b114bbe.
  2516  //
  2517  // Solidity: event UriFallbackUpdated(string previous, string updated)
  2518  func (_Binding *BindingFilterer) ParseUriFallbackUpdated(log types.Log) (*BindingUriFallbackUpdated, error) {
  2519  	event := new(BindingUriFallbackUpdated)
  2520  	if err := _Binding.contract.UnpackLog(event, "UriFallbackUpdated", log); err != nil {
  2521  		return nil, err
  2522  	}
  2523  	event.Raw = log
  2524  	return event, nil
  2525  }
  2526  
  2527  // 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.
  2528  type BindingUriUpdatedIterator struct {
  2529  	Event *BindingUriUpdated // Event containing the contract specifics and raw log
  2530  
  2531  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2532  	event    string              // Event name to use for unpacking event data
  2533  
  2534  	logs chan types.Log        // Log channel receiving the found contract events
  2535  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2536  	done bool                  // Whether the subscription completed delivering logs
  2537  	fail error                 // Occurred error to stop iteration
  2538  }
  2539  
  2540  // Next advances the iterator to the subsequent event, returning whether there
  2541  // are any more events found. In case of a retrieval or parsing error, false is
  2542  // returned and Error() can be queried for the exact failure.
  2543  func (it *BindingUriUpdatedIterator) Next() bool {
  2544  	// If the iterator failed, stop iterating
  2545  	if it.fail != nil {
  2546  		return false
  2547  	}
  2548  	// If the iterator completed, deliver directly whatever's available
  2549  	if it.done {
  2550  		select {
  2551  		case log := <-it.logs:
  2552  			it.Event = new(BindingUriUpdated)
  2553  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2554  				it.fail = err
  2555  				return false
  2556  			}
  2557  			it.Event.Raw = log
  2558  			return true
  2559  
  2560  		default:
  2561  			return false
  2562  		}
  2563  	}
  2564  	// Iterator still in progress, wait for either a data or an error event
  2565  	select {
  2566  	case log := <-it.logs:
  2567  		it.Event = new(BindingUriUpdated)
  2568  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2569  			it.fail = err
  2570  			return false
  2571  		}
  2572  		it.Event.Raw = log
  2573  		return true
  2574  
  2575  	case err := <-it.sub.Err():
  2576  		it.done = true
  2577  		it.fail = err
  2578  		return it.Next()
  2579  	}
  2580  }
  2581  
  2582  // Error returns any retrieval or parsing error occurred during filtering.
  2583  func (it *BindingUriUpdatedIterator) Error() error {
  2584  	return it.fail
  2585  }
  2586  
  2587  // Close terminates the iteration process, releasing any pending underlying
  2588  // resources.
  2589  func (it *BindingUriUpdatedIterator) Close() error {
  2590  	it.sub.Unsubscribe()
  2591  	return nil
  2592  }
  2593  
  2594  // BindingUriUpdated represents a UriUpdated event raised by the Binding contract.
  2595  type BindingUriUpdated struct {
  2596  	Previous string
  2597  	Updated  string
  2598  	Raw      types.Log // Blockchain specific contextual infos
  2599  }
  2600  
  2601  // FilterUriUpdated is a free log retrieval operation binding the contract event 0x7d8ebb5abe647a67ba3a2649e11557ae5aa256cf3449245e0c840c98132e5a37.
  2602  //
  2603  // Solidity: event UriUpdated(string previous, string updated)
  2604  func (_Binding *BindingFilterer) FilterUriUpdated(opts *bind.FilterOpts) (*BindingUriUpdatedIterator, error) {
  2605  
  2606  	logs, sub, err := _Binding.contract.FilterLogs(opts, "UriUpdated")
  2607  	if err != nil {
  2608  		return nil, err
  2609  	}
  2610  	return &BindingUriUpdatedIterator{contract: _Binding.contract, event: "UriUpdated", logs: logs, sub: sub}, nil
  2611  }
  2612  
  2613  // WatchUriUpdated is a free log subscription operation binding the contract event 0x7d8ebb5abe647a67ba3a2649e11557ae5aa256cf3449245e0c840c98132e5a37.
  2614  //
  2615  // Solidity: event UriUpdated(string previous, string updated)
  2616  func (_Binding *BindingFilterer) WatchUriUpdated(opts *bind.WatchOpts, sink chan<- *BindingUriUpdated) (event.Subscription, error) {
  2617  
  2618  	logs, sub, err := _Binding.contract.WatchLogs(opts, "UriUpdated")
  2619  	if err != nil {
  2620  		return nil, err
  2621  	}
  2622  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2623  		defer sub.Unsubscribe()
  2624  		for {
  2625  			select {
  2626  			case log := <-logs:
  2627  				// New log arrived, parse the event and forward to the user
  2628  				event := new(BindingUriUpdated)
  2629  				if err := _Binding.contract.UnpackLog(event, "UriUpdated", log); err != nil {
  2630  					return err
  2631  				}
  2632  				event.Raw = log
  2633  
  2634  				select {
  2635  				case sink <- event:
  2636  				case err := <-sub.Err():
  2637  					return err
  2638  				case <-quit:
  2639  					return nil
  2640  				}
  2641  			case err := <-sub.Err():
  2642  				return err
  2643  			case <-quit:
  2644  				return nil
  2645  			}
  2646  		}
  2647  	}), nil
  2648  }
  2649  
  2650  // ParseUriUpdated is a log parse operation binding the contract event 0x7d8ebb5abe647a67ba3a2649e11557ae5aa256cf3449245e0c840c98132e5a37.
  2651  //
  2652  // Solidity: event UriUpdated(string previous, string updated)
  2653  func (_Binding *BindingFilterer) ParseUriUpdated(log types.Log) (*BindingUriUpdated, error) {
  2654  	event := new(BindingUriUpdated)
  2655  	if err := _Binding.contract.UnpackLog(event, "UriUpdated", log); err != nil {
  2656  		return nil, err
  2657  	}
  2658  	event.Raw = log
  2659  	return event, nil
  2660  }