github.com/0chain/gosdk@v1.17.11/znft/contracts/dstorageerc721fixed/binding/dstorageerc721fixed.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\"},{\"internalType\":\"uint256\",\"name\":\"price_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"batch_\",\"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\":\"uint256\",\"name\":\"previous\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"updated\",\"type\":\"uint256\"}],\"name\":\"BatchUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"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\":\"uint256\",\"name\":\"previous\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"updated\",\"type\":\"uint256\"}],\"name\":\"PriceUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previous\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"updated\",\"type\":\"address\"}],\"name\":\"ReceiverUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previous\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"updated\",\"type\":\"uint256\"}],\"name\":\"RoyaltyUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"previous\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"updated\",\"type\":\"string\"}],\"name\":\"UriFallbackUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"previous\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"updated\",\"type\":\"string\"}],\"name\":\"UriUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"allocation\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"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  // BindingBatchUpdatedIterator is returned from FilterBatchUpdated and is used to iterate over the raw logs and unpacked data for BatchUpdated events raised by the Binding contract.
  1539  type BindingBatchUpdatedIterator struct {
  1540  	Event *BindingBatchUpdated // 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 *BindingBatchUpdatedIterator) 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(BindingBatchUpdated)
  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(BindingBatchUpdated)
  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 *BindingBatchUpdatedIterator) Error() error {
  1595  	return it.fail
  1596  }
  1597  
  1598  // Close terminates the iteration process, releasing any pending underlying
  1599  // resources.
  1600  func (it *BindingBatchUpdatedIterator) Close() error {
  1601  	it.sub.Unsubscribe()
  1602  	return nil
  1603  }
  1604  
  1605  // BindingBatchUpdated represents a BatchUpdated event raised by the Binding contract.
  1606  type BindingBatchUpdated struct {
  1607  	Previous *big.Int
  1608  	Updated  *big.Int
  1609  	Raw      types.Log // Blockchain specific contextual infos
  1610  }
  1611  
  1612  // FilterBatchUpdated is a free log retrieval operation binding the contract event 0x656359bd8624a98c9559c454e7835a5e93f0867eacab61bfda9d2d0fce4e3097.
  1613  //
  1614  // Solidity: event BatchUpdated(uint256 previous, uint256 updated)
  1615  func (_Binding *BindingFilterer) FilterBatchUpdated(opts *bind.FilterOpts) (*BindingBatchUpdatedIterator, error) {
  1616  
  1617  	logs, sub, err := _Binding.contract.FilterLogs(opts, "BatchUpdated")
  1618  	if err != nil {
  1619  		return nil, err
  1620  	}
  1621  	return &BindingBatchUpdatedIterator{contract: _Binding.contract, event: "BatchUpdated", logs: logs, sub: sub}, nil
  1622  }
  1623  
  1624  // WatchBatchUpdated is a free log subscription operation binding the contract event 0x656359bd8624a98c9559c454e7835a5e93f0867eacab61bfda9d2d0fce4e3097.
  1625  //
  1626  // Solidity: event BatchUpdated(uint256 previous, uint256 updated)
  1627  func (_Binding *BindingFilterer) WatchBatchUpdated(opts *bind.WatchOpts, sink chan<- *BindingBatchUpdated) (event.Subscription, error) {
  1628  
  1629  	logs, sub, err := _Binding.contract.WatchLogs(opts, "BatchUpdated")
  1630  	if err != nil {
  1631  		return nil, err
  1632  	}
  1633  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1634  		defer sub.Unsubscribe()
  1635  		for {
  1636  			select {
  1637  			case log := <-logs:
  1638  				// New log arrived, parse the event and forward to the user
  1639  				event := new(BindingBatchUpdated)
  1640  				if err := _Binding.contract.UnpackLog(event, "BatchUpdated", log); err != nil {
  1641  					return err
  1642  				}
  1643  				event.Raw = log
  1644  
  1645  				select {
  1646  				case sink <- event:
  1647  				case err := <-sub.Err():
  1648  					return err
  1649  				case <-quit:
  1650  					return nil
  1651  				}
  1652  			case err := <-sub.Err():
  1653  				return err
  1654  			case <-quit:
  1655  				return nil
  1656  			}
  1657  		}
  1658  	}), nil
  1659  }
  1660  
  1661  // ParseBatchUpdated is a log parse operation binding the contract event 0x656359bd8624a98c9559c454e7835a5e93f0867eacab61bfda9d2d0fce4e3097.
  1662  //
  1663  // Solidity: event BatchUpdated(uint256 previous, uint256 updated)
  1664  func (_Binding *BindingFilterer) ParseBatchUpdated(log types.Log) (*BindingBatchUpdated, error) {
  1665  	event := new(BindingBatchUpdated)
  1666  	if err := _Binding.contract.UnpackLog(event, "BatchUpdated", log); err != nil {
  1667  		return nil, err
  1668  	}
  1669  	event.Raw = log
  1670  	return event, nil
  1671  }
  1672  
  1673  // 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.
  1674  type BindingMetadataFrozenIterator struct {
  1675  	Event *BindingMetadataFrozen // Event containing the contract specifics and raw log
  1676  
  1677  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1678  	event    string              // Event name to use for unpacking event data
  1679  
  1680  	logs chan types.Log        // Log channel receiving the found contract events
  1681  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1682  	done bool                  // Whether the subscription completed delivering logs
  1683  	fail error                 // Occurred error to stop iteration
  1684  }
  1685  
  1686  // Next advances the iterator to the subsequent event, returning whether there
  1687  // are any more events found. In case of a retrieval or parsing error, false is
  1688  // returned and Error() can be queried for the exact failure.
  1689  func (it *BindingMetadataFrozenIterator) Next() bool {
  1690  	// If the iterator failed, stop iterating
  1691  	if it.fail != nil {
  1692  		return false
  1693  	}
  1694  	// If the iterator completed, deliver directly whatever's available
  1695  	if it.done {
  1696  		select {
  1697  		case log := <-it.logs:
  1698  			it.Event = new(BindingMetadataFrozen)
  1699  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1700  				it.fail = err
  1701  				return false
  1702  			}
  1703  			it.Event.Raw = log
  1704  			return true
  1705  
  1706  		default:
  1707  			return false
  1708  		}
  1709  	}
  1710  	// Iterator still in progress, wait for either a data or an error event
  1711  	select {
  1712  	case log := <-it.logs:
  1713  		it.Event = new(BindingMetadataFrozen)
  1714  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1715  			it.fail = err
  1716  			return false
  1717  		}
  1718  		it.Event.Raw = log
  1719  		return true
  1720  
  1721  	case err := <-it.sub.Err():
  1722  		it.done = true
  1723  		it.fail = err
  1724  		return it.Next()
  1725  	}
  1726  }
  1727  
  1728  // Error returns any retrieval or parsing error occurred during filtering.
  1729  func (it *BindingMetadataFrozenIterator) Error() error {
  1730  	return it.fail
  1731  }
  1732  
  1733  // Close terminates the iteration process, releasing any pending underlying
  1734  // resources.
  1735  func (it *BindingMetadataFrozenIterator) Close() error {
  1736  	it.sub.Unsubscribe()
  1737  	return nil
  1738  }
  1739  
  1740  // BindingMetadataFrozen represents a MetadataFrozen event raised by the Binding contract.
  1741  type BindingMetadataFrozen struct {
  1742  	Uri string
  1743  	Raw types.Log // Blockchain specific contextual infos
  1744  }
  1745  
  1746  // FilterMetadataFrozen is a free log retrieval operation binding the contract event 0xac32328134cd103aa01cccc8f61d479f9613e7f9c1de6bfc70c78412b15c18e3.
  1747  //
  1748  // Solidity: event MetadataFrozen(string uri)
  1749  func (_Binding *BindingFilterer) FilterMetadataFrozen(opts *bind.FilterOpts) (*BindingMetadataFrozenIterator, error) {
  1750  
  1751  	logs, sub, err := _Binding.contract.FilterLogs(opts, "MetadataFrozen")
  1752  	if err != nil {
  1753  		return nil, err
  1754  	}
  1755  	return &BindingMetadataFrozenIterator{contract: _Binding.contract, event: "MetadataFrozen", logs: logs, sub: sub}, nil
  1756  }
  1757  
  1758  // WatchMetadataFrozen is a free log subscription operation binding the contract event 0xac32328134cd103aa01cccc8f61d479f9613e7f9c1de6bfc70c78412b15c18e3.
  1759  //
  1760  // Solidity: event MetadataFrozen(string uri)
  1761  func (_Binding *BindingFilterer) WatchMetadataFrozen(opts *bind.WatchOpts, sink chan<- *BindingMetadataFrozen) (event.Subscription, error) {
  1762  
  1763  	logs, sub, err := _Binding.contract.WatchLogs(opts, "MetadataFrozen")
  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(BindingMetadataFrozen)
  1774  				if err := _Binding.contract.UnpackLog(event, "MetadataFrozen", 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  // ParseMetadataFrozen is a log parse operation binding the contract event 0xac32328134cd103aa01cccc8f61d479f9613e7f9c1de6bfc70c78412b15c18e3.
  1796  //
  1797  // Solidity: event MetadataFrozen(string uri)
  1798  func (_Binding *BindingFilterer) ParseMetadataFrozen(log types.Log) (*BindingMetadataFrozen, error) {
  1799  	event := new(BindingMetadataFrozen)
  1800  	if err := _Binding.contract.UnpackLog(event, "MetadataFrozen", log); err != nil {
  1801  		return nil, err
  1802  	}
  1803  	event.Raw = log
  1804  	return event, nil
  1805  }
  1806  
  1807  // 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.
  1808  type BindingMintableUpdatedIterator struct {
  1809  	Event *BindingMintableUpdated // 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 *BindingMintableUpdatedIterator) 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(BindingMintableUpdated)
  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(BindingMintableUpdated)
  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 *BindingMintableUpdatedIterator) Error() error {
  1864  	return it.fail
  1865  }
  1866  
  1867  // Close terminates the iteration process, releasing any pending underlying
  1868  // resources.
  1869  func (it *BindingMintableUpdatedIterator) Close() error {
  1870  	it.sub.Unsubscribe()
  1871  	return nil
  1872  }
  1873  
  1874  // BindingMintableUpdated represents a MintableUpdated event raised by the Binding contract.
  1875  type BindingMintableUpdated struct {
  1876  	Previous bool
  1877  	Updated  bool
  1878  	Raw      types.Log // Blockchain specific contextual infos
  1879  }
  1880  
  1881  // FilterMintableUpdated is a free log retrieval operation binding the contract event 0x8d9383d773c0600295154578f39da3106938ba8d1fe1767bcfabe8bf05f555f4.
  1882  //
  1883  // Solidity: event MintableUpdated(bool previous, bool updated)
  1884  func (_Binding *BindingFilterer) FilterMintableUpdated(opts *bind.FilterOpts) (*BindingMintableUpdatedIterator, error) {
  1885  
  1886  	logs, sub, err := _Binding.contract.FilterLogs(opts, "MintableUpdated")
  1887  	if err != nil {
  1888  		return nil, err
  1889  	}
  1890  	return &BindingMintableUpdatedIterator{contract: _Binding.contract, event: "MintableUpdated", logs: logs, sub: sub}, nil
  1891  }
  1892  
  1893  // WatchMintableUpdated is a free log subscription operation binding the contract event 0x8d9383d773c0600295154578f39da3106938ba8d1fe1767bcfabe8bf05f555f4.
  1894  //
  1895  // Solidity: event MintableUpdated(bool previous, bool updated)
  1896  func (_Binding *BindingFilterer) WatchMintableUpdated(opts *bind.WatchOpts, sink chan<- *BindingMintableUpdated) (event.Subscription, error) {
  1897  
  1898  	logs, sub, err := _Binding.contract.WatchLogs(opts, "MintableUpdated")
  1899  	if err != nil {
  1900  		return nil, err
  1901  	}
  1902  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1903  		defer sub.Unsubscribe()
  1904  		for {
  1905  			select {
  1906  			case log := <-logs:
  1907  				// New log arrived, parse the event and forward to the user
  1908  				event := new(BindingMintableUpdated)
  1909  				if err := _Binding.contract.UnpackLog(event, "MintableUpdated", log); err != nil {
  1910  					return err
  1911  				}
  1912  				event.Raw = log
  1913  
  1914  				select {
  1915  				case sink <- event:
  1916  				case err := <-sub.Err():
  1917  					return err
  1918  				case <-quit:
  1919  					return nil
  1920  				}
  1921  			case err := <-sub.Err():
  1922  				return err
  1923  			case <-quit:
  1924  				return nil
  1925  			}
  1926  		}
  1927  	}), nil
  1928  }
  1929  
  1930  // ParseMintableUpdated is a log parse operation binding the contract event 0x8d9383d773c0600295154578f39da3106938ba8d1fe1767bcfabe8bf05f555f4.
  1931  //
  1932  // Solidity: event MintableUpdated(bool previous, bool updated)
  1933  func (_Binding *BindingFilterer) ParseMintableUpdated(log types.Log) (*BindingMintableUpdated, error) {
  1934  	event := new(BindingMintableUpdated)
  1935  	if err := _Binding.contract.UnpackLog(event, "MintableUpdated", log); err != nil {
  1936  		return nil, err
  1937  	}
  1938  	event.Raw = log
  1939  	return event, nil
  1940  }
  1941  
  1942  // 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.
  1943  type BindingOwnershipTransferredIterator struct {
  1944  	Event *BindingOwnershipTransferred // Event containing the contract specifics and raw log
  1945  
  1946  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1947  	event    string              // Event name to use for unpacking event data
  1948  
  1949  	logs chan types.Log        // Log channel receiving the found contract events
  1950  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1951  	done bool                  // Whether the subscription completed delivering logs
  1952  	fail error                 // Occurred error to stop iteration
  1953  }
  1954  
  1955  // Next advances the iterator to the subsequent event, returning whether there
  1956  // are any more events found. In case of a retrieval or parsing error, false is
  1957  // returned and Error() can be queried for the exact failure.
  1958  func (it *BindingOwnershipTransferredIterator) Next() bool {
  1959  	// If the iterator failed, stop iterating
  1960  	if it.fail != nil {
  1961  		return false
  1962  	}
  1963  	// If the iterator completed, deliver directly whatever's available
  1964  	if it.done {
  1965  		select {
  1966  		case log := <-it.logs:
  1967  			it.Event = new(BindingOwnershipTransferred)
  1968  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1969  				it.fail = err
  1970  				return false
  1971  			}
  1972  			it.Event.Raw = log
  1973  			return true
  1974  
  1975  		default:
  1976  			return false
  1977  		}
  1978  	}
  1979  	// Iterator still in progress, wait for either a data or an error event
  1980  	select {
  1981  	case log := <-it.logs:
  1982  		it.Event = new(BindingOwnershipTransferred)
  1983  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1984  			it.fail = err
  1985  			return false
  1986  		}
  1987  		it.Event.Raw = log
  1988  		return true
  1989  
  1990  	case err := <-it.sub.Err():
  1991  		it.done = true
  1992  		it.fail = err
  1993  		return it.Next()
  1994  	}
  1995  }
  1996  
  1997  // Error returns any retrieval or parsing error occurred during filtering.
  1998  func (it *BindingOwnershipTransferredIterator) Error() error {
  1999  	return it.fail
  2000  }
  2001  
  2002  // Close terminates the iteration process, releasing any pending underlying
  2003  // resources.
  2004  func (it *BindingOwnershipTransferredIterator) Close() error {
  2005  	it.sub.Unsubscribe()
  2006  	return nil
  2007  }
  2008  
  2009  // BindingOwnershipTransferred represents a OwnershipTransferred event raised by the Binding contract.
  2010  type BindingOwnershipTransferred struct {
  2011  	PreviousOwner common.Address
  2012  	NewOwner      common.Address
  2013  	Raw           types.Log // Blockchain specific contextual infos
  2014  }
  2015  
  2016  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  2017  //
  2018  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  2019  func (_Binding *BindingFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*BindingOwnershipTransferredIterator, error) {
  2020  
  2021  	var previousOwnerRule []interface{}
  2022  	for _, previousOwnerItem := range previousOwner {
  2023  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  2024  	}
  2025  	var newOwnerRule []interface{}
  2026  	for _, newOwnerItem := range newOwner {
  2027  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  2028  	}
  2029  
  2030  	logs, sub, err := _Binding.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  2031  	if err != nil {
  2032  		return nil, err
  2033  	}
  2034  	return &BindingOwnershipTransferredIterator{contract: _Binding.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  2035  }
  2036  
  2037  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  2038  //
  2039  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  2040  func (_Binding *BindingFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *BindingOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  2041  
  2042  	var previousOwnerRule []interface{}
  2043  	for _, previousOwnerItem := range previousOwner {
  2044  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  2045  	}
  2046  	var newOwnerRule []interface{}
  2047  	for _, newOwnerItem := range newOwner {
  2048  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  2049  	}
  2050  
  2051  	logs, sub, err := _Binding.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  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(BindingOwnershipTransferred)
  2062  				if err := _Binding.contract.UnpackLog(event, "OwnershipTransferred", 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  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  2084  //
  2085  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  2086  func (_Binding *BindingFilterer) ParseOwnershipTransferred(log types.Log) (*BindingOwnershipTransferred, error) {
  2087  	event := new(BindingOwnershipTransferred)
  2088  	if err := _Binding.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  2089  		return nil, err
  2090  	}
  2091  	event.Raw = log
  2092  	return event, nil
  2093  }
  2094  
  2095  // BindingPriceUpdatedIterator is returned from FilterPriceUpdated and is used to iterate over the raw logs and unpacked data for PriceUpdated events raised by the Binding contract.
  2096  type BindingPriceUpdatedIterator struct {
  2097  	Event *BindingPriceUpdated // 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 *BindingPriceUpdatedIterator) 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(BindingPriceUpdated)
  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(BindingPriceUpdated)
  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 *BindingPriceUpdatedIterator) Error() error {
  2152  	return it.fail
  2153  }
  2154  
  2155  // Close terminates the iteration process, releasing any pending underlying
  2156  // resources.
  2157  func (it *BindingPriceUpdatedIterator) Close() error {
  2158  	it.sub.Unsubscribe()
  2159  	return nil
  2160  }
  2161  
  2162  // BindingPriceUpdated represents a PriceUpdated event raised by the Binding contract.
  2163  type BindingPriceUpdated struct {
  2164  	Previous *big.Int
  2165  	Updated  *big.Int
  2166  	Raw      types.Log // Blockchain specific contextual infos
  2167  }
  2168  
  2169  // FilterPriceUpdated is a free log retrieval operation binding the contract event 0x945c1c4e99aa89f648fbfe3df471b916f719e16d960fcec0737d4d56bd696838.
  2170  //
  2171  // Solidity: event PriceUpdated(uint256 previous, uint256 updated)
  2172  func (_Binding *BindingFilterer) FilterPriceUpdated(opts *bind.FilterOpts) (*BindingPriceUpdatedIterator, error) {
  2173  
  2174  	logs, sub, err := _Binding.contract.FilterLogs(opts, "PriceUpdated")
  2175  	if err != nil {
  2176  		return nil, err
  2177  	}
  2178  	return &BindingPriceUpdatedIterator{contract: _Binding.contract, event: "PriceUpdated", logs: logs, sub: sub}, nil
  2179  }
  2180  
  2181  // WatchPriceUpdated is a free log subscription operation binding the contract event 0x945c1c4e99aa89f648fbfe3df471b916f719e16d960fcec0737d4d56bd696838.
  2182  //
  2183  // Solidity: event PriceUpdated(uint256 previous, uint256 updated)
  2184  func (_Binding *BindingFilterer) WatchPriceUpdated(opts *bind.WatchOpts, sink chan<- *BindingPriceUpdated) (event.Subscription, error) {
  2185  
  2186  	logs, sub, err := _Binding.contract.WatchLogs(opts, "PriceUpdated")
  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(BindingPriceUpdated)
  2197  				if err := _Binding.contract.UnpackLog(event, "PriceUpdated", 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  // ParsePriceUpdated is a log parse operation binding the contract event 0x945c1c4e99aa89f648fbfe3df471b916f719e16d960fcec0737d4d56bd696838.
  2219  //
  2220  // Solidity: event PriceUpdated(uint256 previous, uint256 updated)
  2221  func (_Binding *BindingFilterer) ParsePriceUpdated(log types.Log) (*BindingPriceUpdated, error) {
  2222  	event := new(BindingPriceUpdated)
  2223  	if err := _Binding.contract.UnpackLog(event, "PriceUpdated", log); err != nil {
  2224  		return nil, err
  2225  	}
  2226  	event.Raw = log
  2227  	return event, nil
  2228  }
  2229  
  2230  // 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.
  2231  type BindingReceiverUpdatedIterator struct {
  2232  	Event *BindingReceiverUpdated // 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 *BindingReceiverUpdatedIterator) 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(BindingReceiverUpdated)
  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(BindingReceiverUpdated)
  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 *BindingReceiverUpdatedIterator) Error() error {
  2287  	return it.fail
  2288  }
  2289  
  2290  // Close terminates the iteration process, releasing any pending underlying
  2291  // resources.
  2292  func (it *BindingReceiverUpdatedIterator) Close() error {
  2293  	it.sub.Unsubscribe()
  2294  	return nil
  2295  }
  2296  
  2297  // BindingReceiverUpdated represents a ReceiverUpdated event raised by the Binding contract.
  2298  type BindingReceiverUpdated struct {
  2299  	Previous common.Address
  2300  	Updated  common.Address
  2301  	Raw      types.Log // Blockchain specific contextual infos
  2302  }
  2303  
  2304  // FilterReceiverUpdated is a free log retrieval operation binding the contract event 0xbda2bcccbfa5ae883ab7d9f03480ab68fe68e9200c9b52c0c47abc21d2c90ec9.
  2305  //
  2306  // Solidity: event ReceiverUpdated(address previous, address updated)
  2307  func (_Binding *BindingFilterer) FilterReceiverUpdated(opts *bind.FilterOpts) (*BindingReceiverUpdatedIterator, error) {
  2308  
  2309  	logs, sub, err := _Binding.contract.FilterLogs(opts, "ReceiverUpdated")
  2310  	if err != nil {
  2311  		return nil, err
  2312  	}
  2313  	return &BindingReceiverUpdatedIterator{contract: _Binding.contract, event: "ReceiverUpdated", logs: logs, sub: sub}, nil
  2314  }
  2315  
  2316  // WatchReceiverUpdated is a free log subscription operation binding the contract event 0xbda2bcccbfa5ae883ab7d9f03480ab68fe68e9200c9b52c0c47abc21d2c90ec9.
  2317  //
  2318  // Solidity: event ReceiverUpdated(address previous, address updated)
  2319  func (_Binding *BindingFilterer) WatchReceiverUpdated(opts *bind.WatchOpts, sink chan<- *BindingReceiverUpdated) (event.Subscription, error) {
  2320  
  2321  	logs, sub, err := _Binding.contract.WatchLogs(opts, "ReceiverUpdated")
  2322  	if err != nil {
  2323  		return nil, err
  2324  	}
  2325  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2326  		defer sub.Unsubscribe()
  2327  		for {
  2328  			select {
  2329  			case log := <-logs:
  2330  				// New log arrived, parse the event and forward to the user
  2331  				event := new(BindingReceiverUpdated)
  2332  				if err := _Binding.contract.UnpackLog(event, "ReceiverUpdated", log); err != nil {
  2333  					return err
  2334  				}
  2335  				event.Raw = log
  2336  
  2337  				select {
  2338  				case sink <- event:
  2339  				case err := <-sub.Err():
  2340  					return err
  2341  				case <-quit:
  2342  					return nil
  2343  				}
  2344  			case err := <-sub.Err():
  2345  				return err
  2346  			case <-quit:
  2347  				return nil
  2348  			}
  2349  		}
  2350  	}), nil
  2351  }
  2352  
  2353  // ParseReceiverUpdated is a log parse operation binding the contract event 0xbda2bcccbfa5ae883ab7d9f03480ab68fe68e9200c9b52c0c47abc21d2c90ec9.
  2354  //
  2355  // Solidity: event ReceiverUpdated(address previous, address updated)
  2356  func (_Binding *BindingFilterer) ParseReceiverUpdated(log types.Log) (*BindingReceiverUpdated, error) {
  2357  	event := new(BindingReceiverUpdated)
  2358  	if err := _Binding.contract.UnpackLog(event, "ReceiverUpdated", log); err != nil {
  2359  		return nil, err
  2360  	}
  2361  	event.Raw = log
  2362  	return event, nil
  2363  }
  2364  
  2365  // 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.
  2366  type BindingRoyaltyUpdatedIterator struct {
  2367  	Event *BindingRoyaltyUpdated // Event containing the contract specifics and raw log
  2368  
  2369  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2370  	event    string              // Event name to use for unpacking event data
  2371  
  2372  	logs chan types.Log        // Log channel receiving the found contract events
  2373  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2374  	done bool                  // Whether the subscription completed delivering logs
  2375  	fail error                 // Occurred error to stop iteration
  2376  }
  2377  
  2378  // Next advances the iterator to the subsequent event, returning whether there
  2379  // are any more events found. In case of a retrieval or parsing error, false is
  2380  // returned and Error() can be queried for the exact failure.
  2381  func (it *BindingRoyaltyUpdatedIterator) Next() bool {
  2382  	// If the iterator failed, stop iterating
  2383  	if it.fail != nil {
  2384  		return false
  2385  	}
  2386  	// If the iterator completed, deliver directly whatever's available
  2387  	if it.done {
  2388  		select {
  2389  		case log := <-it.logs:
  2390  			it.Event = new(BindingRoyaltyUpdated)
  2391  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2392  				it.fail = err
  2393  				return false
  2394  			}
  2395  			it.Event.Raw = log
  2396  			return true
  2397  
  2398  		default:
  2399  			return false
  2400  		}
  2401  	}
  2402  	// Iterator still in progress, wait for either a data or an error event
  2403  	select {
  2404  	case log := <-it.logs:
  2405  		it.Event = new(BindingRoyaltyUpdated)
  2406  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2407  			it.fail = err
  2408  			return false
  2409  		}
  2410  		it.Event.Raw = log
  2411  		return true
  2412  
  2413  	case err := <-it.sub.Err():
  2414  		it.done = true
  2415  		it.fail = err
  2416  		return it.Next()
  2417  	}
  2418  }
  2419  
  2420  // Error returns any retrieval or parsing error occurred during filtering.
  2421  func (it *BindingRoyaltyUpdatedIterator) Error() error {
  2422  	return it.fail
  2423  }
  2424  
  2425  // Close terminates the iteration process, releasing any pending underlying
  2426  // resources.
  2427  func (it *BindingRoyaltyUpdatedIterator) Close() error {
  2428  	it.sub.Unsubscribe()
  2429  	return nil
  2430  }
  2431  
  2432  // BindingRoyaltyUpdated represents a RoyaltyUpdated event raised by the Binding contract.
  2433  type BindingRoyaltyUpdated struct {
  2434  	Previous *big.Int
  2435  	Updated  *big.Int
  2436  	Raw      types.Log // Blockchain specific contextual infos
  2437  }
  2438  
  2439  // FilterRoyaltyUpdated is a free log retrieval operation binding the contract event 0x54e506cda8889617ec187c699f1c3b373053eb5796248194796f7e1501dfab24.
  2440  //
  2441  // Solidity: event RoyaltyUpdated(uint256 previous, uint256 updated)
  2442  func (_Binding *BindingFilterer) FilterRoyaltyUpdated(opts *bind.FilterOpts) (*BindingRoyaltyUpdatedIterator, error) {
  2443  
  2444  	logs, sub, err := _Binding.contract.FilterLogs(opts, "RoyaltyUpdated")
  2445  	if err != nil {
  2446  		return nil, err
  2447  	}
  2448  	return &BindingRoyaltyUpdatedIterator{contract: _Binding.contract, event: "RoyaltyUpdated", logs: logs, sub: sub}, nil
  2449  }
  2450  
  2451  // WatchRoyaltyUpdated is a free log subscription operation binding the contract event 0x54e506cda8889617ec187c699f1c3b373053eb5796248194796f7e1501dfab24.
  2452  //
  2453  // Solidity: event RoyaltyUpdated(uint256 previous, uint256 updated)
  2454  func (_Binding *BindingFilterer) WatchRoyaltyUpdated(opts *bind.WatchOpts, sink chan<- *BindingRoyaltyUpdated) (event.Subscription, error) {
  2455  
  2456  	logs, sub, err := _Binding.contract.WatchLogs(opts, "RoyaltyUpdated")
  2457  	if err != nil {
  2458  		return nil, err
  2459  	}
  2460  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2461  		defer sub.Unsubscribe()
  2462  		for {
  2463  			select {
  2464  			case log := <-logs:
  2465  				// New log arrived, parse the event and forward to the user
  2466  				event := new(BindingRoyaltyUpdated)
  2467  				if err := _Binding.contract.UnpackLog(event, "RoyaltyUpdated", log); err != nil {
  2468  					return err
  2469  				}
  2470  				event.Raw = log
  2471  
  2472  				select {
  2473  				case sink <- event:
  2474  				case err := <-sub.Err():
  2475  					return err
  2476  				case <-quit:
  2477  					return nil
  2478  				}
  2479  			case err := <-sub.Err():
  2480  				return err
  2481  			case <-quit:
  2482  				return nil
  2483  			}
  2484  		}
  2485  	}), nil
  2486  }
  2487  
  2488  // ParseRoyaltyUpdated is a log parse operation binding the contract event 0x54e506cda8889617ec187c699f1c3b373053eb5796248194796f7e1501dfab24.
  2489  //
  2490  // Solidity: event RoyaltyUpdated(uint256 previous, uint256 updated)
  2491  func (_Binding *BindingFilterer) ParseRoyaltyUpdated(log types.Log) (*BindingRoyaltyUpdated, error) {
  2492  	event := new(BindingRoyaltyUpdated)
  2493  	if err := _Binding.contract.UnpackLog(event, "RoyaltyUpdated", log); err != nil {
  2494  		return nil, err
  2495  	}
  2496  	event.Raw = log
  2497  	return event, nil
  2498  }
  2499  
  2500  // 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.
  2501  type BindingTransferIterator struct {
  2502  	Event *BindingTransfer // Event containing the contract specifics and raw log
  2503  
  2504  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2505  	event    string              // Event name to use for unpacking event data
  2506  
  2507  	logs chan types.Log        // Log channel receiving the found contract events
  2508  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2509  	done bool                  // Whether the subscription completed delivering logs
  2510  	fail error                 // Occurred error to stop iteration
  2511  }
  2512  
  2513  // Next advances the iterator to the subsequent event, returning whether there
  2514  // are any more events found. In case of a retrieval or parsing error, false is
  2515  // returned and Error() can be queried for the exact failure.
  2516  func (it *BindingTransferIterator) Next() bool {
  2517  	// If the iterator failed, stop iterating
  2518  	if it.fail != nil {
  2519  		return false
  2520  	}
  2521  	// If the iterator completed, deliver directly whatever's available
  2522  	if it.done {
  2523  		select {
  2524  		case log := <-it.logs:
  2525  			it.Event = new(BindingTransfer)
  2526  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2527  				it.fail = err
  2528  				return false
  2529  			}
  2530  			it.Event.Raw = log
  2531  			return true
  2532  
  2533  		default:
  2534  			return false
  2535  		}
  2536  	}
  2537  	// Iterator still in progress, wait for either a data or an error event
  2538  	select {
  2539  	case log := <-it.logs:
  2540  		it.Event = new(BindingTransfer)
  2541  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2542  			it.fail = err
  2543  			return false
  2544  		}
  2545  		it.Event.Raw = log
  2546  		return true
  2547  
  2548  	case err := <-it.sub.Err():
  2549  		it.done = true
  2550  		it.fail = err
  2551  		return it.Next()
  2552  	}
  2553  }
  2554  
  2555  // Error returns any retrieval or parsing error occurred during filtering.
  2556  func (it *BindingTransferIterator) Error() error {
  2557  	return it.fail
  2558  }
  2559  
  2560  // Close terminates the iteration process, releasing any pending underlying
  2561  // resources.
  2562  func (it *BindingTransferIterator) Close() error {
  2563  	it.sub.Unsubscribe()
  2564  	return nil
  2565  }
  2566  
  2567  // BindingTransfer represents a Transfer event raised by the Binding contract.
  2568  type BindingTransfer struct {
  2569  	From    common.Address
  2570  	To      common.Address
  2571  	TokenId *big.Int
  2572  	Raw     types.Log // Blockchain specific contextual infos
  2573  }
  2574  
  2575  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  2576  //
  2577  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  2578  func (_Binding *BindingFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*BindingTransferIterator, error) {
  2579  
  2580  	var fromRule []interface{}
  2581  	for _, fromItem := range from {
  2582  		fromRule = append(fromRule, fromItem)
  2583  	}
  2584  	var toRule []interface{}
  2585  	for _, toItem := range to {
  2586  		toRule = append(toRule, toItem)
  2587  	}
  2588  	var tokenIdRule []interface{}
  2589  	for _, tokenIdItem := range tokenId {
  2590  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  2591  	}
  2592  
  2593  	logs, sub, err := _Binding.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
  2594  	if err != nil {
  2595  		return nil, err
  2596  	}
  2597  	return &BindingTransferIterator{contract: _Binding.contract, event: "Transfer", logs: logs, sub: sub}, nil
  2598  }
  2599  
  2600  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  2601  //
  2602  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  2603  func (_Binding *BindingFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *BindingTransfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) {
  2604  
  2605  	var fromRule []interface{}
  2606  	for _, fromItem := range from {
  2607  		fromRule = append(fromRule, fromItem)
  2608  	}
  2609  	var toRule []interface{}
  2610  	for _, toItem := range to {
  2611  		toRule = append(toRule, toItem)
  2612  	}
  2613  	var tokenIdRule []interface{}
  2614  	for _, tokenIdItem := range tokenId {
  2615  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  2616  	}
  2617  
  2618  	logs, sub, err := _Binding.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
  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(BindingTransfer)
  2629  				if err := _Binding.contract.UnpackLog(event, "Transfer", 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  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  2651  //
  2652  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  2653  func (_Binding *BindingFilterer) ParseTransfer(log types.Log) (*BindingTransfer, error) {
  2654  	event := new(BindingTransfer)
  2655  	if err := _Binding.contract.UnpackLog(event, "Transfer", log); err != nil {
  2656  		return nil, err
  2657  	}
  2658  	event.Raw = log
  2659  	return event, nil
  2660  }
  2661  
  2662  // 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.
  2663  type BindingUriFallbackUpdatedIterator struct {
  2664  	Event *BindingUriFallbackUpdated // Event containing the contract specifics and raw log
  2665  
  2666  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2667  	event    string              // Event name to use for unpacking event data
  2668  
  2669  	logs chan types.Log        // Log channel receiving the found contract events
  2670  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2671  	done bool                  // Whether the subscription completed delivering logs
  2672  	fail error                 // Occurred error to stop iteration
  2673  }
  2674  
  2675  // Next advances the iterator to the subsequent event, returning whether there
  2676  // are any more events found. In case of a retrieval or parsing error, false is
  2677  // returned and Error() can be queried for the exact failure.
  2678  func (it *BindingUriFallbackUpdatedIterator) Next() bool {
  2679  	// If the iterator failed, stop iterating
  2680  	if it.fail != nil {
  2681  		return false
  2682  	}
  2683  	// If the iterator completed, deliver directly whatever's available
  2684  	if it.done {
  2685  		select {
  2686  		case log := <-it.logs:
  2687  			it.Event = new(BindingUriFallbackUpdated)
  2688  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2689  				it.fail = err
  2690  				return false
  2691  			}
  2692  			it.Event.Raw = log
  2693  			return true
  2694  
  2695  		default:
  2696  			return false
  2697  		}
  2698  	}
  2699  	// Iterator still in progress, wait for either a data or an error event
  2700  	select {
  2701  	case log := <-it.logs:
  2702  		it.Event = new(BindingUriFallbackUpdated)
  2703  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2704  			it.fail = err
  2705  			return false
  2706  		}
  2707  		it.Event.Raw = log
  2708  		return true
  2709  
  2710  	case err := <-it.sub.Err():
  2711  		it.done = true
  2712  		it.fail = err
  2713  		return it.Next()
  2714  	}
  2715  }
  2716  
  2717  // Error returns any retrieval or parsing error occurred during filtering.
  2718  func (it *BindingUriFallbackUpdatedIterator) Error() error {
  2719  	return it.fail
  2720  }
  2721  
  2722  // Close terminates the iteration process, releasing any pending underlying
  2723  // resources.
  2724  func (it *BindingUriFallbackUpdatedIterator) Close() error {
  2725  	it.sub.Unsubscribe()
  2726  	return nil
  2727  }
  2728  
  2729  // BindingUriFallbackUpdated represents a UriFallbackUpdated event raised by the Binding contract.
  2730  type BindingUriFallbackUpdated struct {
  2731  	Previous string
  2732  	Updated  string
  2733  	Raw      types.Log // Blockchain specific contextual infos
  2734  }
  2735  
  2736  // FilterUriFallbackUpdated is a free log retrieval operation binding the contract event 0xe1b7ff5efe58018e39b7877b5cfa772bb90f32504be7b2330b078d2a9b114bbe.
  2737  //
  2738  // Solidity: event UriFallbackUpdated(string previous, string updated)
  2739  func (_Binding *BindingFilterer) FilterUriFallbackUpdated(opts *bind.FilterOpts) (*BindingUriFallbackUpdatedIterator, error) {
  2740  
  2741  	logs, sub, err := _Binding.contract.FilterLogs(opts, "UriFallbackUpdated")
  2742  	if err != nil {
  2743  		return nil, err
  2744  	}
  2745  	return &BindingUriFallbackUpdatedIterator{contract: _Binding.contract, event: "UriFallbackUpdated", logs: logs, sub: sub}, nil
  2746  }
  2747  
  2748  // WatchUriFallbackUpdated is a free log subscription operation binding the contract event 0xe1b7ff5efe58018e39b7877b5cfa772bb90f32504be7b2330b078d2a9b114bbe.
  2749  //
  2750  // Solidity: event UriFallbackUpdated(string previous, string updated)
  2751  func (_Binding *BindingFilterer) WatchUriFallbackUpdated(opts *bind.WatchOpts, sink chan<- *BindingUriFallbackUpdated) (event.Subscription, error) {
  2752  
  2753  	logs, sub, err := _Binding.contract.WatchLogs(opts, "UriFallbackUpdated")
  2754  	if err != nil {
  2755  		return nil, err
  2756  	}
  2757  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2758  		defer sub.Unsubscribe()
  2759  		for {
  2760  			select {
  2761  			case log := <-logs:
  2762  				// New log arrived, parse the event and forward to the user
  2763  				event := new(BindingUriFallbackUpdated)
  2764  				if err := _Binding.contract.UnpackLog(event, "UriFallbackUpdated", log); err != nil {
  2765  					return err
  2766  				}
  2767  				event.Raw = log
  2768  
  2769  				select {
  2770  				case sink <- event:
  2771  				case err := <-sub.Err():
  2772  					return err
  2773  				case <-quit:
  2774  					return nil
  2775  				}
  2776  			case err := <-sub.Err():
  2777  				return err
  2778  			case <-quit:
  2779  				return nil
  2780  			}
  2781  		}
  2782  	}), nil
  2783  }
  2784  
  2785  // ParseUriFallbackUpdated is a log parse operation binding the contract event 0xe1b7ff5efe58018e39b7877b5cfa772bb90f32504be7b2330b078d2a9b114bbe.
  2786  //
  2787  // Solidity: event UriFallbackUpdated(string previous, string updated)
  2788  func (_Binding *BindingFilterer) ParseUriFallbackUpdated(log types.Log) (*BindingUriFallbackUpdated, error) {
  2789  	event := new(BindingUriFallbackUpdated)
  2790  	if err := _Binding.contract.UnpackLog(event, "UriFallbackUpdated", log); err != nil {
  2791  		return nil, err
  2792  	}
  2793  	event.Raw = log
  2794  	return event, nil
  2795  }
  2796  
  2797  // 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.
  2798  type BindingUriUpdatedIterator struct {
  2799  	Event *BindingUriUpdated // Event containing the contract specifics and raw log
  2800  
  2801  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2802  	event    string              // Event name to use for unpacking event data
  2803  
  2804  	logs chan types.Log        // Log channel receiving the found contract events
  2805  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2806  	done bool                  // Whether the subscription completed delivering logs
  2807  	fail error                 // Occurred error to stop iteration
  2808  }
  2809  
  2810  // Next advances the iterator to the subsequent event, returning whether there
  2811  // are any more events found. In case of a retrieval or parsing error, false is
  2812  // returned and Error() can be queried for the exact failure.
  2813  func (it *BindingUriUpdatedIterator) Next() bool {
  2814  	// If the iterator failed, stop iterating
  2815  	if it.fail != nil {
  2816  		return false
  2817  	}
  2818  	// If the iterator completed, deliver directly whatever's available
  2819  	if it.done {
  2820  		select {
  2821  		case log := <-it.logs:
  2822  			it.Event = new(BindingUriUpdated)
  2823  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2824  				it.fail = err
  2825  				return false
  2826  			}
  2827  			it.Event.Raw = log
  2828  			return true
  2829  
  2830  		default:
  2831  			return false
  2832  		}
  2833  	}
  2834  	// Iterator still in progress, wait for either a data or an error event
  2835  	select {
  2836  	case log := <-it.logs:
  2837  		it.Event = new(BindingUriUpdated)
  2838  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2839  			it.fail = err
  2840  			return false
  2841  		}
  2842  		it.Event.Raw = log
  2843  		return true
  2844  
  2845  	case err := <-it.sub.Err():
  2846  		it.done = true
  2847  		it.fail = err
  2848  		return it.Next()
  2849  	}
  2850  }
  2851  
  2852  // Error returns any retrieval or parsing error occurred during filtering.
  2853  func (it *BindingUriUpdatedIterator) Error() error {
  2854  	return it.fail
  2855  }
  2856  
  2857  // Close terminates the iteration process, releasing any pending underlying
  2858  // resources.
  2859  func (it *BindingUriUpdatedIterator) Close() error {
  2860  	it.sub.Unsubscribe()
  2861  	return nil
  2862  }
  2863  
  2864  // BindingUriUpdated represents a UriUpdated event raised by the Binding contract.
  2865  type BindingUriUpdated struct {
  2866  	Previous string
  2867  	Updated  string
  2868  	Raw      types.Log // Blockchain specific contextual infos
  2869  }
  2870  
  2871  // FilterUriUpdated is a free log retrieval operation binding the contract event 0x7d8ebb5abe647a67ba3a2649e11557ae5aa256cf3449245e0c840c98132e5a37.
  2872  //
  2873  // Solidity: event UriUpdated(string previous, string updated)
  2874  func (_Binding *BindingFilterer) FilterUriUpdated(opts *bind.FilterOpts) (*BindingUriUpdatedIterator, error) {
  2875  
  2876  	logs, sub, err := _Binding.contract.FilterLogs(opts, "UriUpdated")
  2877  	if err != nil {
  2878  		return nil, err
  2879  	}
  2880  	return &BindingUriUpdatedIterator{contract: _Binding.contract, event: "UriUpdated", logs: logs, sub: sub}, nil
  2881  }
  2882  
  2883  // WatchUriUpdated is a free log subscription operation binding the contract event 0x7d8ebb5abe647a67ba3a2649e11557ae5aa256cf3449245e0c840c98132e5a37.
  2884  //
  2885  // Solidity: event UriUpdated(string previous, string updated)
  2886  func (_Binding *BindingFilterer) WatchUriUpdated(opts *bind.WatchOpts, sink chan<- *BindingUriUpdated) (event.Subscription, error) {
  2887  
  2888  	logs, sub, err := _Binding.contract.WatchLogs(opts, "UriUpdated")
  2889  	if err != nil {
  2890  		return nil, err
  2891  	}
  2892  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2893  		defer sub.Unsubscribe()
  2894  		for {
  2895  			select {
  2896  			case log := <-logs:
  2897  				// New log arrived, parse the event and forward to the user
  2898  				event := new(BindingUriUpdated)
  2899  				if err := _Binding.contract.UnpackLog(event, "UriUpdated", log); err != nil {
  2900  					return err
  2901  				}
  2902  				event.Raw = log
  2903  
  2904  				select {
  2905  				case sink <- event:
  2906  				case err := <-sub.Err():
  2907  					return err
  2908  				case <-quit:
  2909  					return nil
  2910  				}
  2911  			case err := <-sub.Err():
  2912  				return err
  2913  			case <-quit:
  2914  				return nil
  2915  			}
  2916  		}
  2917  	}), nil
  2918  }
  2919  
  2920  // ParseUriUpdated is a log parse operation binding the contract event 0x7d8ebb5abe647a67ba3a2649e11557ae5aa256cf3449245e0c840c98132e5a37.
  2921  //
  2922  // Solidity: event UriUpdated(string previous, string updated)
  2923  func (_Binding *BindingFilterer) ParseUriUpdated(log types.Log) (*BindingUriUpdated, error) {
  2924  	event := new(BindingUriUpdated)
  2925  	if err := _Binding.contract.UnpackLog(event, "UriUpdated", log); err != nil {
  2926  		return nil, err
  2927  	}
  2928  	event.Raw = log
  2929  	return event, nil
  2930  }