github.com/klaytn/klaytn@v1.12.1/contracts/sc_erc721_no_uri/sc_nft_no_uri.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 scnft_no_uri
     5  
     6  import (
     7  	"errors"
     8  	"math/big"
     9  	"strings"
    10  
    11  	"github.com/klaytn/klaytn"
    12  	"github.com/klaytn/klaytn/accounts/abi"
    13  	"github.com/klaytn/klaytn/accounts/abi/bind"
    14  	"github.com/klaytn/klaytn/blockchain/types"
    15  	"github.com/klaytn/klaytn/common"
    16  	"github.com/klaytn/klaytn/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  	_ = klaytn.NotFound
    25  	_ = bind.Bind
    26  	_ = common.Big1
    27  	_ = types.BloomLookup
    28  	_ = event.NewSubscription
    29  	_ = abi.ConvertType
    30  )
    31  
    32  // AddressMetaData contains all meta data concerning the Address contract.
    33  var AddressMetaData = &bind.MetaData{
    34  	ABI: "[]",
    35  	Bin: "0x604c6023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a72305820299ebfdf39258e62f3b1db6c55ebb9d11001cde07d51662fa2fd336c270f24630029",
    36  }
    37  
    38  // AddressABI is the input ABI used to generate the binding from.
    39  // Deprecated: Use AddressMetaData.ABI instead.
    40  var AddressABI = AddressMetaData.ABI
    41  
    42  // AddressBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
    43  const AddressBinRuntime = `73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a72305820299ebfdf39258e62f3b1db6c55ebb9d11001cde07d51662fa2fd336c270f24630029`
    44  
    45  // AddressBin is the compiled bytecode used for deploying new contracts.
    46  // Deprecated: Use AddressMetaData.Bin instead.
    47  var AddressBin = AddressMetaData.Bin
    48  
    49  // DeployAddress deploys a new Klaytn contract, binding an instance of Address to it.
    50  func DeployAddress(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Address, error) {
    51  	parsed, err := AddressMetaData.GetAbi()
    52  	if err != nil {
    53  		return common.Address{}, nil, nil, err
    54  	}
    55  	if parsed == nil {
    56  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
    57  	}
    58  
    59  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(AddressBin), backend)
    60  	if err != nil {
    61  		return common.Address{}, nil, nil, err
    62  	}
    63  	return address, tx, &Address{AddressCaller: AddressCaller{contract: contract}, AddressTransactor: AddressTransactor{contract: contract}, AddressFilterer: AddressFilterer{contract: contract}}, nil
    64  }
    65  
    66  // Address is an auto generated Go binding around a Klaytn contract.
    67  type Address struct {
    68  	AddressCaller     // Read-only binding to the contract
    69  	AddressTransactor // Write-only binding to the contract
    70  	AddressFilterer   // Log filterer for contract events
    71  }
    72  
    73  // AddressCaller is an auto generated read-only Go binding around a Klaytn contract.
    74  type AddressCaller struct {
    75  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    76  }
    77  
    78  // AddressTransactor is an auto generated write-only Go binding around a Klaytn contract.
    79  type AddressTransactor struct {
    80  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    81  }
    82  
    83  // AddressFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
    84  type AddressFilterer struct {
    85  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    86  }
    87  
    88  // AddressSession is an auto generated Go binding around a Klaytn contract,
    89  // with pre-set call and transact options.
    90  type AddressSession struct {
    91  	Contract     *Address          // Generic contract binding to set the session for
    92  	CallOpts     bind.CallOpts     // Call options to use throughout this session
    93  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
    94  }
    95  
    96  // AddressCallerSession is an auto generated read-only Go binding around a Klaytn contract,
    97  // with pre-set call options.
    98  type AddressCallerSession struct {
    99  	Contract *AddressCaller // Generic contract caller binding to set the session for
   100  	CallOpts bind.CallOpts  // Call options to use throughout this session
   101  }
   102  
   103  // AddressTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
   104  // with pre-set transact options.
   105  type AddressTransactorSession struct {
   106  	Contract     *AddressTransactor // Generic contract transactor binding to set the session for
   107  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
   108  }
   109  
   110  // AddressRaw is an auto generated low-level Go binding around a Klaytn contract.
   111  type AddressRaw struct {
   112  	Contract *Address // Generic contract binding to access the raw methods on
   113  }
   114  
   115  // AddressCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
   116  type AddressCallerRaw struct {
   117  	Contract *AddressCaller // Generic read-only contract binding to access the raw methods on
   118  }
   119  
   120  // AddressTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
   121  type AddressTransactorRaw struct {
   122  	Contract *AddressTransactor // Generic write-only contract binding to access the raw methods on
   123  }
   124  
   125  // NewAddress creates a new instance of Address, bound to a specific deployed contract.
   126  func NewAddress(address common.Address, backend bind.ContractBackend) (*Address, error) {
   127  	contract, err := bindAddress(address, backend, backend, backend)
   128  	if err != nil {
   129  		return nil, err
   130  	}
   131  	return &Address{AddressCaller: AddressCaller{contract: contract}, AddressTransactor: AddressTransactor{contract: contract}, AddressFilterer: AddressFilterer{contract: contract}}, nil
   132  }
   133  
   134  // NewAddressCaller creates a new read-only instance of Address, bound to a specific deployed contract.
   135  func NewAddressCaller(address common.Address, caller bind.ContractCaller) (*AddressCaller, error) {
   136  	contract, err := bindAddress(address, caller, nil, nil)
   137  	if err != nil {
   138  		return nil, err
   139  	}
   140  	return &AddressCaller{contract: contract}, nil
   141  }
   142  
   143  // NewAddressTransactor creates a new write-only instance of Address, bound to a specific deployed contract.
   144  func NewAddressTransactor(address common.Address, transactor bind.ContractTransactor) (*AddressTransactor, error) {
   145  	contract, err := bindAddress(address, nil, transactor, nil)
   146  	if err != nil {
   147  		return nil, err
   148  	}
   149  	return &AddressTransactor{contract: contract}, nil
   150  }
   151  
   152  // NewAddressFilterer creates a new log filterer instance of Address, bound to a specific deployed contract.
   153  func NewAddressFilterer(address common.Address, filterer bind.ContractFilterer) (*AddressFilterer, error) {
   154  	contract, err := bindAddress(address, nil, nil, filterer)
   155  	if err != nil {
   156  		return nil, err
   157  	}
   158  	return &AddressFilterer{contract: contract}, nil
   159  }
   160  
   161  // bindAddress binds a generic wrapper to an already deployed contract.
   162  func bindAddress(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   163  	parsed, err := AddressMetaData.GetAbi()
   164  	if err != nil {
   165  		return nil, err
   166  	}
   167  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
   168  }
   169  
   170  // Call invokes the (constant) contract method with params as input values and
   171  // sets the output to result. The result type might be a single field for simple
   172  // returns, a slice of interfaces for anonymous returns and a struct for named
   173  // returns.
   174  func (_Address *AddressRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   175  	return _Address.Contract.AddressCaller.contract.Call(opts, result, method, params...)
   176  }
   177  
   178  // Transfer initiates a plain transaction to move funds to the contract, calling
   179  // its default method if one is available.
   180  func (_Address *AddressRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   181  	return _Address.Contract.AddressTransactor.contract.Transfer(opts)
   182  }
   183  
   184  // Transact invokes the (paid) contract method with params as input values.
   185  func (_Address *AddressRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   186  	return _Address.Contract.AddressTransactor.contract.Transact(opts, method, params...)
   187  }
   188  
   189  // Call invokes the (constant) contract method with params as input values and
   190  // sets the output to result. The result type might be a single field for simple
   191  // returns, a slice of interfaces for anonymous returns and a struct for named
   192  // returns.
   193  func (_Address *AddressCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   194  	return _Address.Contract.contract.Call(opts, result, method, params...)
   195  }
   196  
   197  // Transfer initiates a plain transaction to move funds to the contract, calling
   198  // its default method if one is available.
   199  func (_Address *AddressTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   200  	return _Address.Contract.contract.Transfer(opts)
   201  }
   202  
   203  // Transact invokes the (paid) contract method with params as input values.
   204  func (_Address *AddressTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   205  	return _Address.Contract.contract.Transact(opts, method, params...)
   206  }
   207  
   208  // CountersMetaData contains all meta data concerning the Counters contract.
   209  var CountersMetaData = &bind.MetaData{
   210  	ABI: "[]",
   211  	Bin: "0x604c6023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a72305820805a368616cc52189113373468f3b8d2b801d1cb861a5f35c763ad7ac01ac1fe0029",
   212  }
   213  
   214  // CountersABI is the input ABI used to generate the binding from.
   215  // Deprecated: Use CountersMetaData.ABI instead.
   216  var CountersABI = CountersMetaData.ABI
   217  
   218  // CountersBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
   219  const CountersBinRuntime = `73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a72305820805a368616cc52189113373468f3b8d2b801d1cb861a5f35c763ad7ac01ac1fe0029`
   220  
   221  // CountersBin is the compiled bytecode used for deploying new contracts.
   222  // Deprecated: Use CountersMetaData.Bin instead.
   223  var CountersBin = CountersMetaData.Bin
   224  
   225  // DeployCounters deploys a new Klaytn contract, binding an instance of Counters to it.
   226  func DeployCounters(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Counters, error) {
   227  	parsed, err := CountersMetaData.GetAbi()
   228  	if err != nil {
   229  		return common.Address{}, nil, nil, err
   230  	}
   231  	if parsed == nil {
   232  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
   233  	}
   234  
   235  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(CountersBin), backend)
   236  	if err != nil {
   237  		return common.Address{}, nil, nil, err
   238  	}
   239  	return address, tx, &Counters{CountersCaller: CountersCaller{contract: contract}, CountersTransactor: CountersTransactor{contract: contract}, CountersFilterer: CountersFilterer{contract: contract}}, nil
   240  }
   241  
   242  // Counters is an auto generated Go binding around a Klaytn contract.
   243  type Counters struct {
   244  	CountersCaller     // Read-only binding to the contract
   245  	CountersTransactor // Write-only binding to the contract
   246  	CountersFilterer   // Log filterer for contract events
   247  }
   248  
   249  // CountersCaller is an auto generated read-only Go binding around a Klaytn contract.
   250  type CountersCaller struct {
   251  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   252  }
   253  
   254  // CountersTransactor is an auto generated write-only Go binding around a Klaytn contract.
   255  type CountersTransactor struct {
   256  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   257  }
   258  
   259  // CountersFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
   260  type CountersFilterer struct {
   261  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   262  }
   263  
   264  // CountersSession is an auto generated Go binding around a Klaytn contract,
   265  // with pre-set call and transact options.
   266  type CountersSession struct {
   267  	Contract     *Counters         // Generic contract binding to set the session for
   268  	CallOpts     bind.CallOpts     // Call options to use throughout this session
   269  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
   270  }
   271  
   272  // CountersCallerSession is an auto generated read-only Go binding around a Klaytn contract,
   273  // with pre-set call options.
   274  type CountersCallerSession struct {
   275  	Contract *CountersCaller // Generic contract caller binding to set the session for
   276  	CallOpts bind.CallOpts   // Call options to use throughout this session
   277  }
   278  
   279  // CountersTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
   280  // with pre-set transact options.
   281  type CountersTransactorSession struct {
   282  	Contract     *CountersTransactor // Generic contract transactor binding to set the session for
   283  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
   284  }
   285  
   286  // CountersRaw is an auto generated low-level Go binding around a Klaytn contract.
   287  type CountersRaw struct {
   288  	Contract *Counters // Generic contract binding to access the raw methods on
   289  }
   290  
   291  // CountersCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
   292  type CountersCallerRaw struct {
   293  	Contract *CountersCaller // Generic read-only contract binding to access the raw methods on
   294  }
   295  
   296  // CountersTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
   297  type CountersTransactorRaw struct {
   298  	Contract *CountersTransactor // Generic write-only contract binding to access the raw methods on
   299  }
   300  
   301  // NewCounters creates a new instance of Counters, bound to a specific deployed contract.
   302  func NewCounters(address common.Address, backend bind.ContractBackend) (*Counters, error) {
   303  	contract, err := bindCounters(address, backend, backend, backend)
   304  	if err != nil {
   305  		return nil, err
   306  	}
   307  	return &Counters{CountersCaller: CountersCaller{contract: contract}, CountersTransactor: CountersTransactor{contract: contract}, CountersFilterer: CountersFilterer{contract: contract}}, nil
   308  }
   309  
   310  // NewCountersCaller creates a new read-only instance of Counters, bound to a specific deployed contract.
   311  func NewCountersCaller(address common.Address, caller bind.ContractCaller) (*CountersCaller, error) {
   312  	contract, err := bindCounters(address, caller, nil, nil)
   313  	if err != nil {
   314  		return nil, err
   315  	}
   316  	return &CountersCaller{contract: contract}, nil
   317  }
   318  
   319  // NewCountersTransactor creates a new write-only instance of Counters, bound to a specific deployed contract.
   320  func NewCountersTransactor(address common.Address, transactor bind.ContractTransactor) (*CountersTransactor, error) {
   321  	contract, err := bindCounters(address, nil, transactor, nil)
   322  	if err != nil {
   323  		return nil, err
   324  	}
   325  	return &CountersTransactor{contract: contract}, nil
   326  }
   327  
   328  // NewCountersFilterer creates a new log filterer instance of Counters, bound to a specific deployed contract.
   329  func NewCountersFilterer(address common.Address, filterer bind.ContractFilterer) (*CountersFilterer, error) {
   330  	contract, err := bindCounters(address, nil, nil, filterer)
   331  	if err != nil {
   332  		return nil, err
   333  	}
   334  	return &CountersFilterer{contract: contract}, nil
   335  }
   336  
   337  // bindCounters binds a generic wrapper to an already deployed contract.
   338  func bindCounters(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   339  	parsed, err := CountersMetaData.GetAbi()
   340  	if err != nil {
   341  		return nil, err
   342  	}
   343  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
   344  }
   345  
   346  // Call invokes the (constant) contract method with params as input values and
   347  // sets the output to result. The result type might be a single field for simple
   348  // returns, a slice of interfaces for anonymous returns and a struct for named
   349  // returns.
   350  func (_Counters *CountersRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   351  	return _Counters.Contract.CountersCaller.contract.Call(opts, result, method, params...)
   352  }
   353  
   354  // Transfer initiates a plain transaction to move funds to the contract, calling
   355  // its default method if one is available.
   356  func (_Counters *CountersRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   357  	return _Counters.Contract.CountersTransactor.contract.Transfer(opts)
   358  }
   359  
   360  // Transact invokes the (paid) contract method with params as input values.
   361  func (_Counters *CountersRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   362  	return _Counters.Contract.CountersTransactor.contract.Transact(opts, method, params...)
   363  }
   364  
   365  // Call invokes the (constant) contract method with params as input values and
   366  // sets the output to result. The result type might be a single field for simple
   367  // returns, a slice of interfaces for anonymous returns and a struct for named
   368  // returns.
   369  func (_Counters *CountersCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   370  	return _Counters.Contract.contract.Call(opts, result, method, params...)
   371  }
   372  
   373  // Transfer initiates a plain transaction to move funds to the contract, calling
   374  // its default method if one is available.
   375  func (_Counters *CountersTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   376  	return _Counters.Contract.contract.Transfer(opts)
   377  }
   378  
   379  // Transact invokes the (paid) contract method with params as input values.
   380  func (_Counters *CountersTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   381  	return _Counters.Contract.contract.Transact(opts, method, params...)
   382  }
   383  
   384  // ERC165MetaData contains all meta data concerning the ERC165 contract.
   385  var ERC165MetaData = &bind.MetaData{
   386  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}]",
   387  	Sigs: map[string]string{
   388  		"01ffc9a7": "supportsInterface(bytes4)",
   389  	},
   390  }
   391  
   392  // ERC165ABI is the input ABI used to generate the binding from.
   393  // Deprecated: Use ERC165MetaData.ABI instead.
   394  var ERC165ABI = ERC165MetaData.ABI
   395  
   396  // ERC165BinRuntime is the compiled bytecode used for adding genesis block without deploying code.
   397  const ERC165BinRuntime = ``
   398  
   399  // ERC165FuncSigs maps the 4-byte function signature to its string representation.
   400  // Deprecated: Use ERC165MetaData.Sigs instead.
   401  var ERC165FuncSigs = ERC165MetaData.Sigs
   402  
   403  // ERC165 is an auto generated Go binding around a Klaytn contract.
   404  type ERC165 struct {
   405  	ERC165Caller     // Read-only binding to the contract
   406  	ERC165Transactor // Write-only binding to the contract
   407  	ERC165Filterer   // Log filterer for contract events
   408  }
   409  
   410  // ERC165Caller is an auto generated read-only Go binding around a Klaytn contract.
   411  type ERC165Caller struct {
   412  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   413  }
   414  
   415  // ERC165Transactor is an auto generated write-only Go binding around a Klaytn contract.
   416  type ERC165Transactor struct {
   417  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   418  }
   419  
   420  // ERC165Filterer is an auto generated log filtering Go binding around a Klaytn contract events.
   421  type ERC165Filterer struct {
   422  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   423  }
   424  
   425  // ERC165Session is an auto generated Go binding around a Klaytn contract,
   426  // with pre-set call and transact options.
   427  type ERC165Session struct {
   428  	Contract     *ERC165           // Generic contract binding to set the session for
   429  	CallOpts     bind.CallOpts     // Call options to use throughout this session
   430  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
   431  }
   432  
   433  // ERC165CallerSession is an auto generated read-only Go binding around a Klaytn contract,
   434  // with pre-set call options.
   435  type ERC165CallerSession struct {
   436  	Contract *ERC165Caller // Generic contract caller binding to set the session for
   437  	CallOpts bind.CallOpts // Call options to use throughout this session
   438  }
   439  
   440  // ERC165TransactorSession is an auto generated write-only Go binding around a Klaytn contract,
   441  // with pre-set transact options.
   442  type ERC165TransactorSession struct {
   443  	Contract     *ERC165Transactor // Generic contract transactor binding to set the session for
   444  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
   445  }
   446  
   447  // ERC165Raw is an auto generated low-level Go binding around a Klaytn contract.
   448  type ERC165Raw struct {
   449  	Contract *ERC165 // Generic contract binding to access the raw methods on
   450  }
   451  
   452  // ERC165CallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
   453  type ERC165CallerRaw struct {
   454  	Contract *ERC165Caller // Generic read-only contract binding to access the raw methods on
   455  }
   456  
   457  // ERC165TransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
   458  type ERC165TransactorRaw struct {
   459  	Contract *ERC165Transactor // Generic write-only contract binding to access the raw methods on
   460  }
   461  
   462  // NewERC165 creates a new instance of ERC165, bound to a specific deployed contract.
   463  func NewERC165(address common.Address, backend bind.ContractBackend) (*ERC165, error) {
   464  	contract, err := bindERC165(address, backend, backend, backend)
   465  	if err != nil {
   466  		return nil, err
   467  	}
   468  	return &ERC165{ERC165Caller: ERC165Caller{contract: contract}, ERC165Transactor: ERC165Transactor{contract: contract}, ERC165Filterer: ERC165Filterer{contract: contract}}, nil
   469  }
   470  
   471  // NewERC165Caller creates a new read-only instance of ERC165, bound to a specific deployed contract.
   472  func NewERC165Caller(address common.Address, caller bind.ContractCaller) (*ERC165Caller, error) {
   473  	contract, err := bindERC165(address, caller, nil, nil)
   474  	if err != nil {
   475  		return nil, err
   476  	}
   477  	return &ERC165Caller{contract: contract}, nil
   478  }
   479  
   480  // NewERC165Transactor creates a new write-only instance of ERC165, bound to a specific deployed contract.
   481  func NewERC165Transactor(address common.Address, transactor bind.ContractTransactor) (*ERC165Transactor, error) {
   482  	contract, err := bindERC165(address, nil, transactor, nil)
   483  	if err != nil {
   484  		return nil, err
   485  	}
   486  	return &ERC165Transactor{contract: contract}, nil
   487  }
   488  
   489  // NewERC165Filterer creates a new log filterer instance of ERC165, bound to a specific deployed contract.
   490  func NewERC165Filterer(address common.Address, filterer bind.ContractFilterer) (*ERC165Filterer, error) {
   491  	contract, err := bindERC165(address, nil, nil, filterer)
   492  	if err != nil {
   493  		return nil, err
   494  	}
   495  	return &ERC165Filterer{contract: contract}, nil
   496  }
   497  
   498  // bindERC165 binds a generic wrapper to an already deployed contract.
   499  func bindERC165(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   500  	parsed, err := ERC165MetaData.GetAbi()
   501  	if err != nil {
   502  		return nil, err
   503  	}
   504  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
   505  }
   506  
   507  // Call invokes the (constant) contract method with params as input values and
   508  // sets the output to result. The result type might be a single field for simple
   509  // returns, a slice of interfaces for anonymous returns and a struct for named
   510  // returns.
   511  func (_ERC165 *ERC165Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   512  	return _ERC165.Contract.ERC165Caller.contract.Call(opts, result, method, params...)
   513  }
   514  
   515  // Transfer initiates a plain transaction to move funds to the contract, calling
   516  // its default method if one is available.
   517  func (_ERC165 *ERC165Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   518  	return _ERC165.Contract.ERC165Transactor.contract.Transfer(opts)
   519  }
   520  
   521  // Transact invokes the (paid) contract method with params as input values.
   522  func (_ERC165 *ERC165Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   523  	return _ERC165.Contract.ERC165Transactor.contract.Transact(opts, method, params...)
   524  }
   525  
   526  // Call invokes the (constant) contract method with params as input values and
   527  // sets the output to result. The result type might be a single field for simple
   528  // returns, a slice of interfaces for anonymous returns and a struct for named
   529  // returns.
   530  func (_ERC165 *ERC165CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   531  	return _ERC165.Contract.contract.Call(opts, result, method, params...)
   532  }
   533  
   534  // Transfer initiates a plain transaction to move funds to the contract, calling
   535  // its default method if one is available.
   536  func (_ERC165 *ERC165TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   537  	return _ERC165.Contract.contract.Transfer(opts)
   538  }
   539  
   540  // Transact invokes the (paid) contract method with params as input values.
   541  func (_ERC165 *ERC165TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   542  	return _ERC165.Contract.contract.Transact(opts, method, params...)
   543  }
   544  
   545  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
   546  //
   547  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
   548  func (_ERC165 *ERC165Caller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
   549  	var out []interface{}
   550  	err := _ERC165.contract.Call(opts, &out, "supportsInterface", interfaceId)
   551  
   552  	if err != nil {
   553  		return *new(bool), err
   554  	}
   555  
   556  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   557  
   558  	return out0, err
   559  
   560  }
   561  
   562  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
   563  //
   564  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
   565  func (_ERC165 *ERC165Session) SupportsInterface(interfaceId [4]byte) (bool, error) {
   566  	return _ERC165.Contract.SupportsInterface(&_ERC165.CallOpts, interfaceId)
   567  }
   568  
   569  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
   570  //
   571  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
   572  func (_ERC165 *ERC165CallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
   573  	return _ERC165.Contract.SupportsInterface(&_ERC165.CallOpts, interfaceId)
   574  }
   575  
   576  // ERC721MetaData contains all meta data concerning the ERC721 contract.
   577  var ERC721MetaData = &bind.MetaData{
   578  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}]",
   579  	Sigs: map[string]string{
   580  		"095ea7b3": "approve(address,uint256)",
   581  		"70a08231": "balanceOf(address)",
   582  		"081812fc": "getApproved(uint256)",
   583  		"e985e9c5": "isApprovedForAll(address,address)",
   584  		"6352211e": "ownerOf(uint256)",
   585  		"42842e0e": "safeTransferFrom(address,address,uint256)",
   586  		"b88d4fde": "safeTransferFrom(address,address,uint256,bytes)",
   587  		"a22cb465": "setApprovalForAll(address,bool)",
   588  		"01ffc9a7": "supportsInterface(bytes4)",
   589  		"23b872dd": "transferFrom(address,address,uint256)",
   590  	},
   591  	Bin: "0x608060405234801561001057600080fd5b506100276301ffc9a760e01b61004260201b60201c565b61003d6380ac58cd60e01b61004260201b60201c565b610110565b7fffffffff0000000000000000000000000000000000000000000000000000000080821614156100d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152602081905260409020805460ff19166001179055565b610d448061011f6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80636352211e116100665780636352211e146101b157806370a08231146101ce578063a22cb46514610206578063b88d4fde14610234578063e985e9c5146102fa5761009e565b806301ffc9a7146100a3578063081812fc146100de578063095ea7b31461011757806323b872dd1461014557806342842e0e1461017b575b600080fd5b6100ca600480360360208110156100b957600080fd5b50356001600160e01b031916610328565b604080519115158252519081900360200190f35b6100fb600480360360208110156100f457600080fd5b5035610347565b604080516001600160a01b039092168252519081900360200190f35b6101436004803603604081101561012d57600080fd5b506001600160a01b0381351690602001356103ac565b005b6101436004803603606081101561015b57600080fd5b506001600160a01b038135811691602081013590911690604001356104c3565b6101436004803603606081101561019157600080fd5b506001600160a01b0381358116916020810135909116906040013561051b565b6100fb600480360360208110156101c757600080fd5b5035610536565b6101f4600480360360208110156101e457600080fd5b50356001600160a01b0316610593565b60408051918252519081900360200190f35b6101436004803603604081101561021c57600080fd5b506001600160a01b03813516906020013515156105fe565b6101436004803603608081101561024a57600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561028557600080fd5b82018360208201111561029757600080fd5b803590602001918460018302840111640100000000831117156102b957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506106cd945050505050565b6100ca6004803603604081101561031057600080fd5b506001600160a01b0381358116916020013516610728565b6001600160e01b03191660009081526020819052604090205460ff1690565b600061035282610756565b61039057604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610c72602c913960400191505060405180910390fd5b506000908152600260205260409020546001600160a01b031690565b60006103b782610536565b9050806001600160a01b0316836001600160a01b0316141561040d57604051600160e51b62461bcd028152600401808060200182810382526021815260200180610cc76021913960400191505060405180910390fd5b336001600160a01b038216148061042957506104298133610728565b61046757604051600160e51b62461bcd028152600401808060200182810382526038815260200180610be76038913960400191505060405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6104cd3382610773565b61050b57604051600160e51b62461bcd028152600401808060200182810382526031815260200180610ce86031913960400191505060405180910390fd5b61051683838361081a565b505050565b610516838383604051806020016040528060008152506106cd565b6000818152600160205260408120546001600160a01b03168061058d57604051600160e51b62461bcd028152600401808060200182810382526029815260200180610c496029913960400191505060405180910390fd5b92915050565b60006001600160a01b0382166105dd57604051600160e51b62461bcd02815260040180806020018281038252602a815260200180610c1f602a913960400191505060405180910390fd5b6001600160a01b038216600090815260036020526040902061058d90610964565b6001600160a01b03821633141561065f5760408051600160e51b62461bcd02815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6106d88484846104c3565b6106e484848484610968565b61072257604051600160e51b62461bcd028152600401808060200182810382526032815260200180610b656032913960400191505060405180910390fd5b50505050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000908152600160205260409020546001600160a01b0316151590565b600061077e82610756565b6107bc57604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610bbb602c913960400191505060405180910390fd5b60006107c783610536565b9050806001600160a01b0316846001600160a01b031614806108025750836001600160a01b03166107f784610347565b6001600160a01b0316145b8061081257506108128185610728565b949350505050565b826001600160a01b031661082d82610536565b6001600160a01b03161461087557604051600160e51b62461bcd028152600401808060200182810382526029815260200180610c9e6029913960400191505060405180910390fd5b6001600160a01b0382166108bd57604051600160e51b62461bcd028152600401808060200182810382526024815260200180610b976024913960400191505060405180910390fd5b6108c681610aa1565b6001600160a01b03831660009081526003602052604090206108e790610ade565b6001600160a01b038216600090815260036020526040902061090890610af5565b60008181526001602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b5490565b600061097c846001600160a01b0316610afe565b61098857506001610812565b604051600160e11b630a85bd0102815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b83811015610a055781810151838201526020016109ed565b50505050905090810190601f168015610a325780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610a5457600080fd5b505af1158015610a68573d6000803e3d6000fd5b505050506040513d6020811015610a7e57600080fd5b50516001600160e01b031916600160e11b630a85bd010214915050949350505050565b6000818152600260205260409020546001600160a01b031615610adb57600081815260026020526040902080546001600160a01b03191690555b50565b8054610af190600163ffffffff610b0416565b9055565b80546001019055565b3b151590565b600082821115610b5e5760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a165627a7a72305820ed0176cdf6bb84bc2e81a19dd4f43f70a184a383de47142e2b45467f824b179b0029",
   592  }
   593  
   594  // ERC721ABI is the input ABI used to generate the binding from.
   595  // Deprecated: Use ERC721MetaData.ABI instead.
   596  var ERC721ABI = ERC721MetaData.ABI
   597  
   598  // ERC721BinRuntime is the compiled bytecode used for adding genesis block without deploying code.
   599  const ERC721BinRuntime = `608060405234801561001057600080fd5b506004361061009e5760003560e01c80636352211e116100665780636352211e146101b157806370a08231146101ce578063a22cb46514610206578063b88d4fde14610234578063e985e9c5146102fa5761009e565b806301ffc9a7146100a3578063081812fc146100de578063095ea7b31461011757806323b872dd1461014557806342842e0e1461017b575b600080fd5b6100ca600480360360208110156100b957600080fd5b50356001600160e01b031916610328565b604080519115158252519081900360200190f35b6100fb600480360360208110156100f457600080fd5b5035610347565b604080516001600160a01b039092168252519081900360200190f35b6101436004803603604081101561012d57600080fd5b506001600160a01b0381351690602001356103ac565b005b6101436004803603606081101561015b57600080fd5b506001600160a01b038135811691602081013590911690604001356104c3565b6101436004803603606081101561019157600080fd5b506001600160a01b0381358116916020810135909116906040013561051b565b6100fb600480360360208110156101c757600080fd5b5035610536565b6101f4600480360360208110156101e457600080fd5b50356001600160a01b0316610593565b60408051918252519081900360200190f35b6101436004803603604081101561021c57600080fd5b506001600160a01b03813516906020013515156105fe565b6101436004803603608081101561024a57600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561028557600080fd5b82018360208201111561029757600080fd5b803590602001918460018302840111640100000000831117156102b957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506106cd945050505050565b6100ca6004803603604081101561031057600080fd5b506001600160a01b0381358116916020013516610728565b6001600160e01b03191660009081526020819052604090205460ff1690565b600061035282610756565b61039057604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610c72602c913960400191505060405180910390fd5b506000908152600260205260409020546001600160a01b031690565b60006103b782610536565b9050806001600160a01b0316836001600160a01b0316141561040d57604051600160e51b62461bcd028152600401808060200182810382526021815260200180610cc76021913960400191505060405180910390fd5b336001600160a01b038216148061042957506104298133610728565b61046757604051600160e51b62461bcd028152600401808060200182810382526038815260200180610be76038913960400191505060405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6104cd3382610773565b61050b57604051600160e51b62461bcd028152600401808060200182810382526031815260200180610ce86031913960400191505060405180910390fd5b61051683838361081a565b505050565b610516838383604051806020016040528060008152506106cd565b6000818152600160205260408120546001600160a01b03168061058d57604051600160e51b62461bcd028152600401808060200182810382526029815260200180610c496029913960400191505060405180910390fd5b92915050565b60006001600160a01b0382166105dd57604051600160e51b62461bcd02815260040180806020018281038252602a815260200180610c1f602a913960400191505060405180910390fd5b6001600160a01b038216600090815260036020526040902061058d90610964565b6001600160a01b03821633141561065f5760408051600160e51b62461bcd02815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6106d88484846104c3565b6106e484848484610968565b61072257604051600160e51b62461bcd028152600401808060200182810382526032815260200180610b656032913960400191505060405180910390fd5b50505050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000908152600160205260409020546001600160a01b0316151590565b600061077e82610756565b6107bc57604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610bbb602c913960400191505060405180910390fd5b60006107c783610536565b9050806001600160a01b0316846001600160a01b031614806108025750836001600160a01b03166107f784610347565b6001600160a01b0316145b8061081257506108128185610728565b949350505050565b826001600160a01b031661082d82610536565b6001600160a01b03161461087557604051600160e51b62461bcd028152600401808060200182810382526029815260200180610c9e6029913960400191505060405180910390fd5b6001600160a01b0382166108bd57604051600160e51b62461bcd028152600401808060200182810382526024815260200180610b976024913960400191505060405180910390fd5b6108c681610aa1565b6001600160a01b03831660009081526003602052604090206108e790610ade565b6001600160a01b038216600090815260036020526040902061090890610af5565b60008181526001602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b5490565b600061097c846001600160a01b0316610afe565b61098857506001610812565b604051600160e11b630a85bd0102815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b83811015610a055781810151838201526020016109ed565b50505050905090810190601f168015610a325780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610a5457600080fd5b505af1158015610a68573d6000803e3d6000fd5b505050506040513d6020811015610a7e57600080fd5b50516001600160e01b031916600160e11b630a85bd010214915050949350505050565b6000818152600260205260409020546001600160a01b031615610adb57600081815260026020526040902080546001600160a01b03191690555b50565b8054610af190600163ffffffff610b0416565b9055565b80546001019055565b3b151590565b600082821115610b5e5760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a165627a7a72305820ed0176cdf6bb84bc2e81a19dd4f43f70a184a383de47142e2b45467f824b179b0029`
   600  
   601  // ERC721FuncSigs maps the 4-byte function signature to its string representation.
   602  // Deprecated: Use ERC721MetaData.Sigs instead.
   603  var ERC721FuncSigs = ERC721MetaData.Sigs
   604  
   605  // ERC721Bin is the compiled bytecode used for deploying new contracts.
   606  // Deprecated: Use ERC721MetaData.Bin instead.
   607  var ERC721Bin = ERC721MetaData.Bin
   608  
   609  // DeployERC721 deploys a new Klaytn contract, binding an instance of ERC721 to it.
   610  func DeployERC721(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ERC721, error) {
   611  	parsed, err := ERC721MetaData.GetAbi()
   612  	if err != nil {
   613  		return common.Address{}, nil, nil, err
   614  	}
   615  	if parsed == nil {
   616  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
   617  	}
   618  
   619  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ERC721Bin), backend)
   620  	if err != nil {
   621  		return common.Address{}, nil, nil, err
   622  	}
   623  	return address, tx, &ERC721{ERC721Caller: ERC721Caller{contract: contract}, ERC721Transactor: ERC721Transactor{contract: contract}, ERC721Filterer: ERC721Filterer{contract: contract}}, nil
   624  }
   625  
   626  // ERC721 is an auto generated Go binding around a Klaytn contract.
   627  type ERC721 struct {
   628  	ERC721Caller     // Read-only binding to the contract
   629  	ERC721Transactor // Write-only binding to the contract
   630  	ERC721Filterer   // Log filterer for contract events
   631  }
   632  
   633  // ERC721Caller is an auto generated read-only Go binding around a Klaytn contract.
   634  type ERC721Caller struct {
   635  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   636  }
   637  
   638  // ERC721Transactor is an auto generated write-only Go binding around a Klaytn contract.
   639  type ERC721Transactor struct {
   640  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   641  }
   642  
   643  // ERC721Filterer is an auto generated log filtering Go binding around a Klaytn contract events.
   644  type ERC721Filterer struct {
   645  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   646  }
   647  
   648  // ERC721Session is an auto generated Go binding around a Klaytn contract,
   649  // with pre-set call and transact options.
   650  type ERC721Session struct {
   651  	Contract     *ERC721           // Generic contract binding to set the session for
   652  	CallOpts     bind.CallOpts     // Call options to use throughout this session
   653  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
   654  }
   655  
   656  // ERC721CallerSession is an auto generated read-only Go binding around a Klaytn contract,
   657  // with pre-set call options.
   658  type ERC721CallerSession struct {
   659  	Contract *ERC721Caller // Generic contract caller binding to set the session for
   660  	CallOpts bind.CallOpts // Call options to use throughout this session
   661  }
   662  
   663  // ERC721TransactorSession is an auto generated write-only Go binding around a Klaytn contract,
   664  // with pre-set transact options.
   665  type ERC721TransactorSession struct {
   666  	Contract     *ERC721Transactor // Generic contract transactor binding to set the session for
   667  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
   668  }
   669  
   670  // ERC721Raw is an auto generated low-level Go binding around a Klaytn contract.
   671  type ERC721Raw struct {
   672  	Contract *ERC721 // Generic contract binding to access the raw methods on
   673  }
   674  
   675  // ERC721CallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
   676  type ERC721CallerRaw struct {
   677  	Contract *ERC721Caller // Generic read-only contract binding to access the raw methods on
   678  }
   679  
   680  // ERC721TransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
   681  type ERC721TransactorRaw struct {
   682  	Contract *ERC721Transactor // Generic write-only contract binding to access the raw methods on
   683  }
   684  
   685  // NewERC721 creates a new instance of ERC721, bound to a specific deployed contract.
   686  func NewERC721(address common.Address, backend bind.ContractBackend) (*ERC721, error) {
   687  	contract, err := bindERC721(address, backend, backend, backend)
   688  	if err != nil {
   689  		return nil, err
   690  	}
   691  	return &ERC721{ERC721Caller: ERC721Caller{contract: contract}, ERC721Transactor: ERC721Transactor{contract: contract}, ERC721Filterer: ERC721Filterer{contract: contract}}, nil
   692  }
   693  
   694  // NewERC721Caller creates a new read-only instance of ERC721, bound to a specific deployed contract.
   695  func NewERC721Caller(address common.Address, caller bind.ContractCaller) (*ERC721Caller, error) {
   696  	contract, err := bindERC721(address, caller, nil, nil)
   697  	if err != nil {
   698  		return nil, err
   699  	}
   700  	return &ERC721Caller{contract: contract}, nil
   701  }
   702  
   703  // NewERC721Transactor creates a new write-only instance of ERC721, bound to a specific deployed contract.
   704  func NewERC721Transactor(address common.Address, transactor bind.ContractTransactor) (*ERC721Transactor, error) {
   705  	contract, err := bindERC721(address, nil, transactor, nil)
   706  	if err != nil {
   707  		return nil, err
   708  	}
   709  	return &ERC721Transactor{contract: contract}, nil
   710  }
   711  
   712  // NewERC721Filterer creates a new log filterer instance of ERC721, bound to a specific deployed contract.
   713  func NewERC721Filterer(address common.Address, filterer bind.ContractFilterer) (*ERC721Filterer, error) {
   714  	contract, err := bindERC721(address, nil, nil, filterer)
   715  	if err != nil {
   716  		return nil, err
   717  	}
   718  	return &ERC721Filterer{contract: contract}, nil
   719  }
   720  
   721  // bindERC721 binds a generic wrapper to an already deployed contract.
   722  func bindERC721(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   723  	parsed, err := ERC721MetaData.GetAbi()
   724  	if err != nil {
   725  		return nil, err
   726  	}
   727  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
   728  }
   729  
   730  // Call invokes the (constant) contract method with params as input values and
   731  // sets the output to result. The result type might be a single field for simple
   732  // returns, a slice of interfaces for anonymous returns and a struct for named
   733  // returns.
   734  func (_ERC721 *ERC721Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   735  	return _ERC721.Contract.ERC721Caller.contract.Call(opts, result, method, params...)
   736  }
   737  
   738  // Transfer initiates a plain transaction to move funds to the contract, calling
   739  // its default method if one is available.
   740  func (_ERC721 *ERC721Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   741  	return _ERC721.Contract.ERC721Transactor.contract.Transfer(opts)
   742  }
   743  
   744  // Transact invokes the (paid) contract method with params as input values.
   745  func (_ERC721 *ERC721Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   746  	return _ERC721.Contract.ERC721Transactor.contract.Transact(opts, method, params...)
   747  }
   748  
   749  // Call invokes the (constant) contract method with params as input values and
   750  // sets the output to result. The result type might be a single field for simple
   751  // returns, a slice of interfaces for anonymous returns and a struct for named
   752  // returns.
   753  func (_ERC721 *ERC721CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   754  	return _ERC721.Contract.contract.Call(opts, result, method, params...)
   755  }
   756  
   757  // Transfer initiates a plain transaction to move funds to the contract, calling
   758  // its default method if one is available.
   759  func (_ERC721 *ERC721TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   760  	return _ERC721.Contract.contract.Transfer(opts)
   761  }
   762  
   763  // Transact invokes the (paid) contract method with params as input values.
   764  func (_ERC721 *ERC721TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   765  	return _ERC721.Contract.contract.Transact(opts, method, params...)
   766  }
   767  
   768  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
   769  //
   770  // Solidity: function balanceOf(address owner) view returns(uint256)
   771  func (_ERC721 *ERC721Caller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) {
   772  	var out []interface{}
   773  	err := _ERC721.contract.Call(opts, &out, "balanceOf", owner)
   774  
   775  	if err != nil {
   776  		return *new(*big.Int), err
   777  	}
   778  
   779  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   780  
   781  	return out0, err
   782  
   783  }
   784  
   785  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
   786  //
   787  // Solidity: function balanceOf(address owner) view returns(uint256)
   788  func (_ERC721 *ERC721Session) BalanceOf(owner common.Address) (*big.Int, error) {
   789  	return _ERC721.Contract.BalanceOf(&_ERC721.CallOpts, owner)
   790  }
   791  
   792  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
   793  //
   794  // Solidity: function balanceOf(address owner) view returns(uint256)
   795  func (_ERC721 *ERC721CallerSession) BalanceOf(owner common.Address) (*big.Int, error) {
   796  	return _ERC721.Contract.BalanceOf(&_ERC721.CallOpts, owner)
   797  }
   798  
   799  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
   800  //
   801  // Solidity: function getApproved(uint256 tokenId) view returns(address)
   802  func (_ERC721 *ERC721Caller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
   803  	var out []interface{}
   804  	err := _ERC721.contract.Call(opts, &out, "getApproved", tokenId)
   805  
   806  	if err != nil {
   807  		return *new(common.Address), err
   808  	}
   809  
   810  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   811  
   812  	return out0, err
   813  
   814  }
   815  
   816  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
   817  //
   818  // Solidity: function getApproved(uint256 tokenId) view returns(address)
   819  func (_ERC721 *ERC721Session) GetApproved(tokenId *big.Int) (common.Address, error) {
   820  	return _ERC721.Contract.GetApproved(&_ERC721.CallOpts, tokenId)
   821  }
   822  
   823  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
   824  //
   825  // Solidity: function getApproved(uint256 tokenId) view returns(address)
   826  func (_ERC721 *ERC721CallerSession) GetApproved(tokenId *big.Int) (common.Address, error) {
   827  	return _ERC721.Contract.GetApproved(&_ERC721.CallOpts, tokenId)
   828  }
   829  
   830  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
   831  //
   832  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
   833  func (_ERC721 *ERC721Caller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) {
   834  	var out []interface{}
   835  	err := _ERC721.contract.Call(opts, &out, "isApprovedForAll", owner, operator)
   836  
   837  	if err != nil {
   838  		return *new(bool), err
   839  	}
   840  
   841  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   842  
   843  	return out0, err
   844  
   845  }
   846  
   847  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
   848  //
   849  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
   850  func (_ERC721 *ERC721Session) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
   851  	return _ERC721.Contract.IsApprovedForAll(&_ERC721.CallOpts, owner, operator)
   852  }
   853  
   854  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
   855  //
   856  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
   857  func (_ERC721 *ERC721CallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
   858  	return _ERC721.Contract.IsApprovedForAll(&_ERC721.CallOpts, owner, operator)
   859  }
   860  
   861  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
   862  //
   863  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
   864  func (_ERC721 *ERC721Caller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
   865  	var out []interface{}
   866  	err := _ERC721.contract.Call(opts, &out, "ownerOf", tokenId)
   867  
   868  	if err != nil {
   869  		return *new(common.Address), err
   870  	}
   871  
   872  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   873  
   874  	return out0, err
   875  
   876  }
   877  
   878  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
   879  //
   880  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
   881  func (_ERC721 *ERC721Session) OwnerOf(tokenId *big.Int) (common.Address, error) {
   882  	return _ERC721.Contract.OwnerOf(&_ERC721.CallOpts, tokenId)
   883  }
   884  
   885  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
   886  //
   887  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
   888  func (_ERC721 *ERC721CallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
   889  	return _ERC721.Contract.OwnerOf(&_ERC721.CallOpts, tokenId)
   890  }
   891  
   892  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
   893  //
   894  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
   895  func (_ERC721 *ERC721Caller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
   896  	var out []interface{}
   897  	err := _ERC721.contract.Call(opts, &out, "supportsInterface", interfaceId)
   898  
   899  	if err != nil {
   900  		return *new(bool), err
   901  	}
   902  
   903  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   904  
   905  	return out0, err
   906  
   907  }
   908  
   909  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
   910  //
   911  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
   912  func (_ERC721 *ERC721Session) SupportsInterface(interfaceId [4]byte) (bool, error) {
   913  	return _ERC721.Contract.SupportsInterface(&_ERC721.CallOpts, interfaceId)
   914  }
   915  
   916  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
   917  //
   918  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
   919  func (_ERC721 *ERC721CallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
   920  	return _ERC721.Contract.SupportsInterface(&_ERC721.CallOpts, interfaceId)
   921  }
   922  
   923  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
   924  //
   925  // Solidity: function approve(address to, uint256 tokenId) returns()
   926  func (_ERC721 *ERC721Transactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
   927  	return _ERC721.contract.Transact(opts, "approve", to, tokenId)
   928  }
   929  
   930  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
   931  //
   932  // Solidity: function approve(address to, uint256 tokenId) returns()
   933  func (_ERC721 *ERC721Session) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
   934  	return _ERC721.Contract.Approve(&_ERC721.TransactOpts, to, tokenId)
   935  }
   936  
   937  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
   938  //
   939  // Solidity: function approve(address to, uint256 tokenId) returns()
   940  func (_ERC721 *ERC721TransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
   941  	return _ERC721.Contract.Approve(&_ERC721.TransactOpts, to, tokenId)
   942  }
   943  
   944  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
   945  //
   946  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
   947  func (_ERC721 *ERC721Transactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
   948  	return _ERC721.contract.Transact(opts, "safeTransferFrom", from, to, tokenId)
   949  }
   950  
   951  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
   952  //
   953  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
   954  func (_ERC721 *ERC721Session) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
   955  	return _ERC721.Contract.SafeTransferFrom(&_ERC721.TransactOpts, from, to, tokenId)
   956  }
   957  
   958  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
   959  //
   960  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
   961  func (_ERC721 *ERC721TransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
   962  	return _ERC721.Contract.SafeTransferFrom(&_ERC721.TransactOpts, from, to, tokenId)
   963  }
   964  
   965  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
   966  //
   967  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
   968  func (_ERC721 *ERC721Transactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
   969  	return _ERC721.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, _data)
   970  }
   971  
   972  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
   973  //
   974  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
   975  func (_ERC721 *ERC721Session) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
   976  	return _ERC721.Contract.SafeTransferFrom0(&_ERC721.TransactOpts, from, to, tokenId, _data)
   977  }
   978  
   979  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
   980  //
   981  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
   982  func (_ERC721 *ERC721TransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
   983  	return _ERC721.Contract.SafeTransferFrom0(&_ERC721.TransactOpts, from, to, tokenId, _data)
   984  }
   985  
   986  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
   987  //
   988  // Solidity: function setApprovalForAll(address to, bool approved) returns()
   989  func (_ERC721 *ERC721Transactor) SetApprovalForAll(opts *bind.TransactOpts, to common.Address, approved bool) (*types.Transaction, error) {
   990  	return _ERC721.contract.Transact(opts, "setApprovalForAll", to, approved)
   991  }
   992  
   993  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
   994  //
   995  // Solidity: function setApprovalForAll(address to, bool approved) returns()
   996  func (_ERC721 *ERC721Session) SetApprovalForAll(to common.Address, approved bool) (*types.Transaction, error) {
   997  	return _ERC721.Contract.SetApprovalForAll(&_ERC721.TransactOpts, to, approved)
   998  }
   999  
  1000  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
  1001  //
  1002  // Solidity: function setApprovalForAll(address to, bool approved) returns()
  1003  func (_ERC721 *ERC721TransactorSession) SetApprovalForAll(to common.Address, approved bool) (*types.Transaction, error) {
  1004  	return _ERC721.Contract.SetApprovalForAll(&_ERC721.TransactOpts, to, approved)
  1005  }
  1006  
  1007  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  1008  //
  1009  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
  1010  func (_ERC721 *ERC721Transactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1011  	return _ERC721.contract.Transact(opts, "transferFrom", from, to, tokenId)
  1012  }
  1013  
  1014  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  1015  //
  1016  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
  1017  func (_ERC721 *ERC721Session) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1018  	return _ERC721.Contract.TransferFrom(&_ERC721.TransactOpts, from, to, tokenId)
  1019  }
  1020  
  1021  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  1022  //
  1023  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
  1024  func (_ERC721 *ERC721TransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1025  	return _ERC721.Contract.TransferFrom(&_ERC721.TransactOpts, from, to, tokenId)
  1026  }
  1027  
  1028  // ERC721ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ERC721 contract.
  1029  type ERC721ApprovalIterator struct {
  1030  	Event *ERC721Approval // Event containing the contract specifics and raw log
  1031  
  1032  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1033  	event    string              // Event name to use for unpacking event data
  1034  
  1035  	logs chan types.Log      // Log channel receiving the found contract events
  1036  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  1037  	done bool                // Whether the subscription completed delivering logs
  1038  	fail error               // Occurred error to stop iteration
  1039  }
  1040  
  1041  // Next advances the iterator to the subsequent event, returning whether there
  1042  // are any more events found. In case of a retrieval or parsing error, false is
  1043  // returned and Error() can be queried for the exact failure.
  1044  func (it *ERC721ApprovalIterator) Next() bool {
  1045  	// If the iterator failed, stop iterating
  1046  	if it.fail != nil {
  1047  		return false
  1048  	}
  1049  	// If the iterator completed, deliver directly whatever's available
  1050  	if it.done {
  1051  		select {
  1052  		case log := <-it.logs:
  1053  			it.Event = new(ERC721Approval)
  1054  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1055  				it.fail = err
  1056  				return false
  1057  			}
  1058  			it.Event.Raw = log
  1059  			return true
  1060  
  1061  		default:
  1062  			return false
  1063  		}
  1064  	}
  1065  	// Iterator still in progress, wait for either a data or an error event
  1066  	select {
  1067  	case log := <-it.logs:
  1068  		it.Event = new(ERC721Approval)
  1069  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1070  			it.fail = err
  1071  			return false
  1072  		}
  1073  		it.Event.Raw = log
  1074  		return true
  1075  
  1076  	case err := <-it.sub.Err():
  1077  		it.done = true
  1078  		it.fail = err
  1079  		return it.Next()
  1080  	}
  1081  }
  1082  
  1083  // Error returns any retrieval or parsing error occurred during filtering.
  1084  func (it *ERC721ApprovalIterator) Error() error {
  1085  	return it.fail
  1086  }
  1087  
  1088  // Close terminates the iteration process, releasing any pending underlying
  1089  // resources.
  1090  func (it *ERC721ApprovalIterator) Close() error {
  1091  	it.sub.Unsubscribe()
  1092  	return nil
  1093  }
  1094  
  1095  // ERC721Approval represents a Approval event raised by the ERC721 contract.
  1096  type ERC721Approval struct {
  1097  	Owner    common.Address
  1098  	Approved common.Address
  1099  	TokenId  *big.Int
  1100  	Raw      types.Log // Blockchain specific contextual infos
  1101  }
  1102  
  1103  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  1104  //
  1105  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  1106  func (_ERC721 *ERC721Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*ERC721ApprovalIterator, error) {
  1107  
  1108  	var ownerRule []interface{}
  1109  	for _, ownerItem := range owner {
  1110  		ownerRule = append(ownerRule, ownerItem)
  1111  	}
  1112  	var approvedRule []interface{}
  1113  	for _, approvedItem := range approved {
  1114  		approvedRule = append(approvedRule, approvedItem)
  1115  	}
  1116  	var tokenIdRule []interface{}
  1117  	for _, tokenIdItem := range tokenId {
  1118  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  1119  	}
  1120  
  1121  	logs, sub, err := _ERC721.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
  1122  	if err != nil {
  1123  		return nil, err
  1124  	}
  1125  	return &ERC721ApprovalIterator{contract: _ERC721.contract, event: "Approval", logs: logs, sub: sub}, nil
  1126  }
  1127  
  1128  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  1129  //
  1130  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  1131  func (_ERC721 *ERC721Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC721Approval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) {
  1132  
  1133  	var ownerRule []interface{}
  1134  	for _, ownerItem := range owner {
  1135  		ownerRule = append(ownerRule, ownerItem)
  1136  	}
  1137  	var approvedRule []interface{}
  1138  	for _, approvedItem := range approved {
  1139  		approvedRule = append(approvedRule, approvedItem)
  1140  	}
  1141  	var tokenIdRule []interface{}
  1142  	for _, tokenIdItem := range tokenId {
  1143  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  1144  	}
  1145  
  1146  	logs, sub, err := _ERC721.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
  1147  	if err != nil {
  1148  		return nil, err
  1149  	}
  1150  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1151  		defer sub.Unsubscribe()
  1152  		for {
  1153  			select {
  1154  			case log := <-logs:
  1155  				// New log arrived, parse the event and forward to the user
  1156  				event := new(ERC721Approval)
  1157  				if err := _ERC721.contract.UnpackLog(event, "Approval", log); err != nil {
  1158  					return err
  1159  				}
  1160  				event.Raw = log
  1161  
  1162  				select {
  1163  				case sink <- event:
  1164  				case err := <-sub.Err():
  1165  					return err
  1166  				case <-quit:
  1167  					return nil
  1168  				}
  1169  			case err := <-sub.Err():
  1170  				return err
  1171  			case <-quit:
  1172  				return nil
  1173  			}
  1174  		}
  1175  	}), nil
  1176  }
  1177  
  1178  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  1179  //
  1180  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  1181  func (_ERC721 *ERC721Filterer) ParseApproval(log types.Log) (*ERC721Approval, error) {
  1182  	event := new(ERC721Approval)
  1183  	if err := _ERC721.contract.UnpackLog(event, "Approval", log); err != nil {
  1184  		return nil, err
  1185  	}
  1186  	return event, nil
  1187  }
  1188  
  1189  // ERC721ApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the ERC721 contract.
  1190  type ERC721ApprovalForAllIterator struct {
  1191  	Event *ERC721ApprovalForAll // Event containing the contract specifics and raw log
  1192  
  1193  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1194  	event    string              // Event name to use for unpacking event data
  1195  
  1196  	logs chan types.Log      // Log channel receiving the found contract events
  1197  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  1198  	done bool                // Whether the subscription completed delivering logs
  1199  	fail error               // Occurred error to stop iteration
  1200  }
  1201  
  1202  // Next advances the iterator to the subsequent event, returning whether there
  1203  // are any more events found. In case of a retrieval or parsing error, false is
  1204  // returned and Error() can be queried for the exact failure.
  1205  func (it *ERC721ApprovalForAllIterator) Next() bool {
  1206  	// If the iterator failed, stop iterating
  1207  	if it.fail != nil {
  1208  		return false
  1209  	}
  1210  	// If the iterator completed, deliver directly whatever's available
  1211  	if it.done {
  1212  		select {
  1213  		case log := <-it.logs:
  1214  			it.Event = new(ERC721ApprovalForAll)
  1215  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1216  				it.fail = err
  1217  				return false
  1218  			}
  1219  			it.Event.Raw = log
  1220  			return true
  1221  
  1222  		default:
  1223  			return false
  1224  		}
  1225  	}
  1226  	// Iterator still in progress, wait for either a data or an error event
  1227  	select {
  1228  	case log := <-it.logs:
  1229  		it.Event = new(ERC721ApprovalForAll)
  1230  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1231  			it.fail = err
  1232  			return false
  1233  		}
  1234  		it.Event.Raw = log
  1235  		return true
  1236  
  1237  	case err := <-it.sub.Err():
  1238  		it.done = true
  1239  		it.fail = err
  1240  		return it.Next()
  1241  	}
  1242  }
  1243  
  1244  // Error returns any retrieval or parsing error occurred during filtering.
  1245  func (it *ERC721ApprovalForAllIterator) Error() error {
  1246  	return it.fail
  1247  }
  1248  
  1249  // Close terminates the iteration process, releasing any pending underlying
  1250  // resources.
  1251  func (it *ERC721ApprovalForAllIterator) Close() error {
  1252  	it.sub.Unsubscribe()
  1253  	return nil
  1254  }
  1255  
  1256  // ERC721ApprovalForAll represents a ApprovalForAll event raised by the ERC721 contract.
  1257  type ERC721ApprovalForAll struct {
  1258  	Owner    common.Address
  1259  	Operator common.Address
  1260  	Approved bool
  1261  	Raw      types.Log // Blockchain specific contextual infos
  1262  }
  1263  
  1264  // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  1265  //
  1266  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  1267  func (_ERC721 *ERC721Filterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*ERC721ApprovalForAllIterator, error) {
  1268  
  1269  	var ownerRule []interface{}
  1270  	for _, ownerItem := range owner {
  1271  		ownerRule = append(ownerRule, ownerItem)
  1272  	}
  1273  	var operatorRule []interface{}
  1274  	for _, operatorItem := range operator {
  1275  		operatorRule = append(operatorRule, operatorItem)
  1276  	}
  1277  
  1278  	logs, sub, err := _ERC721.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
  1279  	if err != nil {
  1280  		return nil, err
  1281  	}
  1282  	return &ERC721ApprovalForAllIterator{contract: _ERC721.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil
  1283  }
  1284  
  1285  // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  1286  //
  1287  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  1288  func (_ERC721 *ERC721Filterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *ERC721ApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) {
  1289  
  1290  	var ownerRule []interface{}
  1291  	for _, ownerItem := range owner {
  1292  		ownerRule = append(ownerRule, ownerItem)
  1293  	}
  1294  	var operatorRule []interface{}
  1295  	for _, operatorItem := range operator {
  1296  		operatorRule = append(operatorRule, operatorItem)
  1297  	}
  1298  
  1299  	logs, sub, err := _ERC721.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
  1300  	if err != nil {
  1301  		return nil, err
  1302  	}
  1303  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1304  		defer sub.Unsubscribe()
  1305  		for {
  1306  			select {
  1307  			case log := <-logs:
  1308  				// New log arrived, parse the event and forward to the user
  1309  				event := new(ERC721ApprovalForAll)
  1310  				if err := _ERC721.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
  1311  					return err
  1312  				}
  1313  				event.Raw = log
  1314  
  1315  				select {
  1316  				case sink <- event:
  1317  				case err := <-sub.Err():
  1318  					return err
  1319  				case <-quit:
  1320  					return nil
  1321  				}
  1322  			case err := <-sub.Err():
  1323  				return err
  1324  			case <-quit:
  1325  				return nil
  1326  			}
  1327  		}
  1328  	}), nil
  1329  }
  1330  
  1331  // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  1332  //
  1333  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  1334  func (_ERC721 *ERC721Filterer) ParseApprovalForAll(log types.Log) (*ERC721ApprovalForAll, error) {
  1335  	event := new(ERC721ApprovalForAll)
  1336  	if err := _ERC721.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
  1337  		return nil, err
  1338  	}
  1339  	return event, nil
  1340  }
  1341  
  1342  // ERC721TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ERC721 contract.
  1343  type ERC721TransferIterator struct {
  1344  	Event *ERC721Transfer // Event containing the contract specifics and raw log
  1345  
  1346  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1347  	event    string              // Event name to use for unpacking event data
  1348  
  1349  	logs chan types.Log      // Log channel receiving the found contract events
  1350  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  1351  	done bool                // Whether the subscription completed delivering logs
  1352  	fail error               // Occurred error to stop iteration
  1353  }
  1354  
  1355  // Next advances the iterator to the subsequent event, returning whether there
  1356  // are any more events found. In case of a retrieval or parsing error, false is
  1357  // returned and Error() can be queried for the exact failure.
  1358  func (it *ERC721TransferIterator) Next() bool {
  1359  	// If the iterator failed, stop iterating
  1360  	if it.fail != nil {
  1361  		return false
  1362  	}
  1363  	// If the iterator completed, deliver directly whatever's available
  1364  	if it.done {
  1365  		select {
  1366  		case log := <-it.logs:
  1367  			it.Event = new(ERC721Transfer)
  1368  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1369  				it.fail = err
  1370  				return false
  1371  			}
  1372  			it.Event.Raw = log
  1373  			return true
  1374  
  1375  		default:
  1376  			return false
  1377  		}
  1378  	}
  1379  	// Iterator still in progress, wait for either a data or an error event
  1380  	select {
  1381  	case log := <-it.logs:
  1382  		it.Event = new(ERC721Transfer)
  1383  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1384  			it.fail = err
  1385  			return false
  1386  		}
  1387  		it.Event.Raw = log
  1388  		return true
  1389  
  1390  	case err := <-it.sub.Err():
  1391  		it.done = true
  1392  		it.fail = err
  1393  		return it.Next()
  1394  	}
  1395  }
  1396  
  1397  // Error returns any retrieval or parsing error occurred during filtering.
  1398  func (it *ERC721TransferIterator) Error() error {
  1399  	return it.fail
  1400  }
  1401  
  1402  // Close terminates the iteration process, releasing any pending underlying
  1403  // resources.
  1404  func (it *ERC721TransferIterator) Close() error {
  1405  	it.sub.Unsubscribe()
  1406  	return nil
  1407  }
  1408  
  1409  // ERC721Transfer represents a Transfer event raised by the ERC721 contract.
  1410  type ERC721Transfer struct {
  1411  	From    common.Address
  1412  	To      common.Address
  1413  	TokenId *big.Int
  1414  	Raw     types.Log // Blockchain specific contextual infos
  1415  }
  1416  
  1417  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  1418  //
  1419  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  1420  func (_ERC721 *ERC721Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*ERC721TransferIterator, error) {
  1421  
  1422  	var fromRule []interface{}
  1423  	for _, fromItem := range from {
  1424  		fromRule = append(fromRule, fromItem)
  1425  	}
  1426  	var toRule []interface{}
  1427  	for _, toItem := range to {
  1428  		toRule = append(toRule, toItem)
  1429  	}
  1430  	var tokenIdRule []interface{}
  1431  	for _, tokenIdItem := range tokenId {
  1432  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  1433  	}
  1434  
  1435  	logs, sub, err := _ERC721.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
  1436  	if err != nil {
  1437  		return nil, err
  1438  	}
  1439  	return &ERC721TransferIterator{contract: _ERC721.contract, event: "Transfer", logs: logs, sub: sub}, nil
  1440  }
  1441  
  1442  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  1443  //
  1444  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  1445  func (_ERC721 *ERC721Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC721Transfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) {
  1446  
  1447  	var fromRule []interface{}
  1448  	for _, fromItem := range from {
  1449  		fromRule = append(fromRule, fromItem)
  1450  	}
  1451  	var toRule []interface{}
  1452  	for _, toItem := range to {
  1453  		toRule = append(toRule, toItem)
  1454  	}
  1455  	var tokenIdRule []interface{}
  1456  	for _, tokenIdItem := range tokenId {
  1457  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  1458  	}
  1459  
  1460  	logs, sub, err := _ERC721.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
  1461  	if err != nil {
  1462  		return nil, err
  1463  	}
  1464  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1465  		defer sub.Unsubscribe()
  1466  		for {
  1467  			select {
  1468  			case log := <-logs:
  1469  				// New log arrived, parse the event and forward to the user
  1470  				event := new(ERC721Transfer)
  1471  				if err := _ERC721.contract.UnpackLog(event, "Transfer", log); err != nil {
  1472  					return err
  1473  				}
  1474  				event.Raw = log
  1475  
  1476  				select {
  1477  				case sink <- event:
  1478  				case err := <-sub.Err():
  1479  					return err
  1480  				case <-quit:
  1481  					return nil
  1482  				}
  1483  			case err := <-sub.Err():
  1484  				return err
  1485  			case <-quit:
  1486  				return nil
  1487  			}
  1488  		}
  1489  	}), nil
  1490  }
  1491  
  1492  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  1493  //
  1494  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  1495  func (_ERC721 *ERC721Filterer) ParseTransfer(log types.Log) (*ERC721Transfer, error) {
  1496  	event := new(ERC721Transfer)
  1497  	if err := _ERC721.contract.UnpackLog(event, "Transfer", log); err != nil {
  1498  		return nil, err
  1499  	}
  1500  	return event, nil
  1501  }
  1502  
  1503  // ERC721BurnableMetaData contains all meta data concerning the ERC721Burnable contract.
  1504  var ERC721BurnableMetaData = &bind.MetaData{
  1505  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}]",
  1506  	Sigs: map[string]string{
  1507  		"095ea7b3": "approve(address,uint256)",
  1508  		"70a08231": "balanceOf(address)",
  1509  		"42966c68": "burn(uint256)",
  1510  		"081812fc": "getApproved(uint256)",
  1511  		"e985e9c5": "isApprovedForAll(address,address)",
  1512  		"6352211e": "ownerOf(uint256)",
  1513  		"42842e0e": "safeTransferFrom(address,address,uint256)",
  1514  		"b88d4fde": "safeTransferFrom(address,address,uint256,bytes)",
  1515  		"a22cb465": "setApprovalForAll(address,bool)",
  1516  		"01ffc9a7": "supportsInterface(bytes4)",
  1517  		"23b872dd": "transferFrom(address,address,uint256)",
  1518  	},
  1519  	Bin: "0x608060405261001a6301ffc9a760e01b61003560201b60201c565b6100306380ac58cd60e01b61003560201b60201c565b610103565b7fffffffff0000000000000000000000000000000000000000000000000000000080821614156100c657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152602081905260409020805460ff19166001179055565b610eff806101126000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806342966c681161007157806342966c68146101bc5780636352211e146101d957806370a08231146101f6578063a22cb4651461022e578063b88d4fde1461025c578063e985e9c514610322576100a9565b806301ffc9a7146100ae578063081812fc146100e9578063095ea7b31461012257806323b872dd1461015057806342842e0e14610186575b600080fd5b6100d5600480360360208110156100c457600080fd5b50356001600160e01b031916610350565b604080519115158252519081900360200190f35b610106600480360360208110156100ff57600080fd5b503561036f565b604080516001600160a01b039092168252519081900360200190f35b61014e6004803603604081101561013857600080fd5b506001600160a01b0381351690602001356103d4565b005b61014e6004803603606081101561016657600080fd5b506001600160a01b038135811691602081013590911690604001356104eb565b61014e6004803603606081101561019c57600080fd5b506001600160a01b03813581169160208101359091169060400135610543565b61014e600480360360208110156101d257600080fd5b503561055e565b610106600480360360208110156101ef57600080fd5b50356105b2565b61021c6004803603602081101561020c57600080fd5b50356001600160a01b031661060f565b60408051918252519081900360200190f35b61014e6004803603604081101561024457600080fd5b506001600160a01b038135169060200135151561067a565b61014e6004803603608081101561027257600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156102ad57600080fd5b8201836020820111156102bf57600080fd5b803590602001918460018302840111640100000000831117156102e157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610749945050505050565b6100d56004803603604081101561033857600080fd5b506001600160a01b03813581169160200135166107a4565b6001600160e01b03191660009081526020819052604090205460ff1690565b600061037a826107d2565b6103b857604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610dd8602c913960400191505060405180910390fd5b506000908152600260205260409020546001600160a01b031690565b60006103df826105b2565b9050806001600160a01b0316836001600160a01b0316141561043557604051600160e51b62461bcd028152600401808060200182810382526021815260200180610e2d6021913960400191505060405180910390fd5b336001600160a01b0382161480610451575061045181336107a4565b61048f57604051600160e51b62461bcd028152600401808060200182810382526038815260200180610d4d6038913960400191505060405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6104f533826107ef565b61053357604051600160e51b62461bcd028152600401808060200182810382526031815260200180610e4e6031913960400191505060405180910390fd5b61053e838383610896565b505050565b61053e83838360405180602001604052806000815250610749565b61056833826107ef565b6105a657604051600160e51b62461bcd028152600401808060200182810382526030815260200180610ea46030913960400191505060405180910390fd5b6105af816109e0565b50565b6000818152600160205260408120546001600160a01b03168061060957604051600160e51b62461bcd028152600401808060200182810382526029815260200180610daf6029913960400191505060405180910390fd5b92915050565b60006001600160a01b03821661065957604051600160e51b62461bcd02815260040180806020018281038252602a815260200180610d85602a913960400191505060405180910390fd5b6001600160a01b0382166000908152600360205260409020610609906109f2565b6001600160a01b0382163314156106db5760408051600160e51b62461bcd02815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6107548484846104eb565b610760848484846109f6565b61079e57604051600160e51b62461bcd028152600401808060200182810382526032815260200180610ccb6032913960400191505060405180910390fd5b50505050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000908152600160205260409020546001600160a01b0316151590565b60006107fa826107d2565b61083857604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610d21602c913960400191505060405180910390fd5b6000610843836105b2565b9050806001600160a01b0316846001600160a01b0316148061087e5750836001600160a01b03166108738461036f565b6001600160a01b0316145b8061088e575061088e81856107a4565b949350505050565b826001600160a01b03166108a9826105b2565b6001600160a01b0316146108f157604051600160e51b62461bcd028152600401808060200182810382526029815260200180610e046029913960400191505060405180910390fd5b6001600160a01b03821661093957604051600160e51b62461bcd028152600401808060200182810382526024815260200180610cfd6024913960400191505060405180910390fd5b61094281610b2f565b6001600160a01b038316600090815260036020526040902061096390610b6a565b6001600160a01b038216600090815260036020526040902061098490610b81565b60008181526001602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6105af6109ec826105b2565b82610b8a565b5490565b6000610a0a846001600160a01b0316610c64565b610a165750600161088e565b604051600160e11b630a85bd0102815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b83811015610a93578181015183820152602001610a7b565b50505050905090810190601f168015610ac05780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610ae257600080fd5b505af1158015610af6573d6000803e3d6000fd5b505050506040513d6020811015610b0c57600080fd5b50516001600160e01b031916600160e11b630a85bd010214915050949350505050565b6000818152600260205260409020546001600160a01b0316156105af57600090815260026020526040902080546001600160a01b0319169055565b8054610b7d90600163ffffffff610c6a16565b9055565b80546001019055565b816001600160a01b0316610b9d826105b2565b6001600160a01b031614610be557604051600160e51b62461bcd028152600401808060200182810382526025815260200180610e7f6025913960400191505060405180910390fd5b610bee81610b2f565b6001600160a01b0382166000908152600360205260409020610c0f90610b6a565b60008181526001602052604080822080546001600160a01b0319169055518291906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b3b151590565b600082821115610cc45760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a165627a7a723058200b2831a1feaad2f1c210200377a7ea891524c8e08250cec47ef805ccf70f5f8c0029",
  1520  }
  1521  
  1522  // ERC721BurnableABI is the input ABI used to generate the binding from.
  1523  // Deprecated: Use ERC721BurnableMetaData.ABI instead.
  1524  var ERC721BurnableABI = ERC721BurnableMetaData.ABI
  1525  
  1526  // ERC721BurnableBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  1527  const ERC721BurnableBinRuntime = `608060405234801561001057600080fd5b50600436106100a95760003560e01c806342966c681161007157806342966c68146101bc5780636352211e146101d957806370a08231146101f6578063a22cb4651461022e578063b88d4fde1461025c578063e985e9c514610322576100a9565b806301ffc9a7146100ae578063081812fc146100e9578063095ea7b31461012257806323b872dd1461015057806342842e0e14610186575b600080fd5b6100d5600480360360208110156100c457600080fd5b50356001600160e01b031916610350565b604080519115158252519081900360200190f35b610106600480360360208110156100ff57600080fd5b503561036f565b604080516001600160a01b039092168252519081900360200190f35b61014e6004803603604081101561013857600080fd5b506001600160a01b0381351690602001356103d4565b005b61014e6004803603606081101561016657600080fd5b506001600160a01b038135811691602081013590911690604001356104eb565b61014e6004803603606081101561019c57600080fd5b506001600160a01b03813581169160208101359091169060400135610543565b61014e600480360360208110156101d257600080fd5b503561055e565b610106600480360360208110156101ef57600080fd5b50356105b2565b61021c6004803603602081101561020c57600080fd5b50356001600160a01b031661060f565b60408051918252519081900360200190f35b61014e6004803603604081101561024457600080fd5b506001600160a01b038135169060200135151561067a565b61014e6004803603608081101561027257600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156102ad57600080fd5b8201836020820111156102bf57600080fd5b803590602001918460018302840111640100000000831117156102e157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610749945050505050565b6100d56004803603604081101561033857600080fd5b506001600160a01b03813581169160200135166107a4565b6001600160e01b03191660009081526020819052604090205460ff1690565b600061037a826107d2565b6103b857604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610dd8602c913960400191505060405180910390fd5b506000908152600260205260409020546001600160a01b031690565b60006103df826105b2565b9050806001600160a01b0316836001600160a01b0316141561043557604051600160e51b62461bcd028152600401808060200182810382526021815260200180610e2d6021913960400191505060405180910390fd5b336001600160a01b0382161480610451575061045181336107a4565b61048f57604051600160e51b62461bcd028152600401808060200182810382526038815260200180610d4d6038913960400191505060405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6104f533826107ef565b61053357604051600160e51b62461bcd028152600401808060200182810382526031815260200180610e4e6031913960400191505060405180910390fd5b61053e838383610896565b505050565b61053e83838360405180602001604052806000815250610749565b61056833826107ef565b6105a657604051600160e51b62461bcd028152600401808060200182810382526030815260200180610ea46030913960400191505060405180910390fd5b6105af816109e0565b50565b6000818152600160205260408120546001600160a01b03168061060957604051600160e51b62461bcd028152600401808060200182810382526029815260200180610daf6029913960400191505060405180910390fd5b92915050565b60006001600160a01b03821661065957604051600160e51b62461bcd02815260040180806020018281038252602a815260200180610d85602a913960400191505060405180910390fd5b6001600160a01b0382166000908152600360205260409020610609906109f2565b6001600160a01b0382163314156106db5760408051600160e51b62461bcd02815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6107548484846104eb565b610760848484846109f6565b61079e57604051600160e51b62461bcd028152600401808060200182810382526032815260200180610ccb6032913960400191505060405180910390fd5b50505050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000908152600160205260409020546001600160a01b0316151590565b60006107fa826107d2565b61083857604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610d21602c913960400191505060405180910390fd5b6000610843836105b2565b9050806001600160a01b0316846001600160a01b0316148061087e5750836001600160a01b03166108738461036f565b6001600160a01b0316145b8061088e575061088e81856107a4565b949350505050565b826001600160a01b03166108a9826105b2565b6001600160a01b0316146108f157604051600160e51b62461bcd028152600401808060200182810382526029815260200180610e046029913960400191505060405180910390fd5b6001600160a01b03821661093957604051600160e51b62461bcd028152600401808060200182810382526024815260200180610cfd6024913960400191505060405180910390fd5b61094281610b2f565b6001600160a01b038316600090815260036020526040902061096390610b6a565b6001600160a01b038216600090815260036020526040902061098490610b81565b60008181526001602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6105af6109ec826105b2565b82610b8a565b5490565b6000610a0a846001600160a01b0316610c64565b610a165750600161088e565b604051600160e11b630a85bd0102815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b83811015610a93578181015183820152602001610a7b565b50505050905090810190601f168015610ac05780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610ae257600080fd5b505af1158015610af6573d6000803e3d6000fd5b505050506040513d6020811015610b0c57600080fd5b50516001600160e01b031916600160e11b630a85bd010214915050949350505050565b6000818152600260205260409020546001600160a01b0316156105af57600090815260026020526040902080546001600160a01b0319169055565b8054610b7d90600163ffffffff610c6a16565b9055565b80546001019055565b816001600160a01b0316610b9d826105b2565b6001600160a01b031614610be557604051600160e51b62461bcd028152600401808060200182810382526025815260200180610e7f6025913960400191505060405180910390fd5b610bee81610b2f565b6001600160a01b0382166000908152600360205260409020610c0f90610b6a565b60008181526001602052604080822080546001600160a01b0319169055518291906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b3b151590565b600082821115610cc45760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a165627a7a723058200b2831a1feaad2f1c210200377a7ea891524c8e08250cec47ef805ccf70f5f8c0029`
  1528  
  1529  // ERC721BurnableFuncSigs maps the 4-byte function signature to its string representation.
  1530  // Deprecated: Use ERC721BurnableMetaData.Sigs instead.
  1531  var ERC721BurnableFuncSigs = ERC721BurnableMetaData.Sigs
  1532  
  1533  // ERC721BurnableBin is the compiled bytecode used for deploying new contracts.
  1534  // Deprecated: Use ERC721BurnableMetaData.Bin instead.
  1535  var ERC721BurnableBin = ERC721BurnableMetaData.Bin
  1536  
  1537  // DeployERC721Burnable deploys a new Klaytn contract, binding an instance of ERC721Burnable to it.
  1538  func DeployERC721Burnable(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ERC721Burnable, error) {
  1539  	parsed, err := ERC721BurnableMetaData.GetAbi()
  1540  	if err != nil {
  1541  		return common.Address{}, nil, nil, err
  1542  	}
  1543  	if parsed == nil {
  1544  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
  1545  	}
  1546  
  1547  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ERC721BurnableBin), backend)
  1548  	if err != nil {
  1549  		return common.Address{}, nil, nil, err
  1550  	}
  1551  	return address, tx, &ERC721Burnable{ERC721BurnableCaller: ERC721BurnableCaller{contract: contract}, ERC721BurnableTransactor: ERC721BurnableTransactor{contract: contract}, ERC721BurnableFilterer: ERC721BurnableFilterer{contract: contract}}, nil
  1552  }
  1553  
  1554  // ERC721Burnable is an auto generated Go binding around a Klaytn contract.
  1555  type ERC721Burnable struct {
  1556  	ERC721BurnableCaller     // Read-only binding to the contract
  1557  	ERC721BurnableTransactor // Write-only binding to the contract
  1558  	ERC721BurnableFilterer   // Log filterer for contract events
  1559  }
  1560  
  1561  // ERC721BurnableCaller is an auto generated read-only Go binding around a Klaytn contract.
  1562  type ERC721BurnableCaller struct {
  1563  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1564  }
  1565  
  1566  // ERC721BurnableTransactor is an auto generated write-only Go binding around a Klaytn contract.
  1567  type ERC721BurnableTransactor struct {
  1568  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1569  }
  1570  
  1571  // ERC721BurnableFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  1572  type ERC721BurnableFilterer struct {
  1573  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1574  }
  1575  
  1576  // ERC721BurnableSession is an auto generated Go binding around a Klaytn contract,
  1577  // with pre-set call and transact options.
  1578  type ERC721BurnableSession struct {
  1579  	Contract     *ERC721Burnable   // Generic contract binding to set the session for
  1580  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  1581  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  1582  }
  1583  
  1584  // ERC721BurnableCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  1585  // with pre-set call options.
  1586  type ERC721BurnableCallerSession struct {
  1587  	Contract *ERC721BurnableCaller // Generic contract caller binding to set the session for
  1588  	CallOpts bind.CallOpts         // Call options to use throughout this session
  1589  }
  1590  
  1591  // ERC721BurnableTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  1592  // with pre-set transact options.
  1593  type ERC721BurnableTransactorSession struct {
  1594  	Contract     *ERC721BurnableTransactor // Generic contract transactor binding to set the session for
  1595  	TransactOpts bind.TransactOpts         // Transaction auth options to use throughout this session
  1596  }
  1597  
  1598  // ERC721BurnableRaw is an auto generated low-level Go binding around a Klaytn contract.
  1599  type ERC721BurnableRaw struct {
  1600  	Contract *ERC721Burnable // Generic contract binding to access the raw methods on
  1601  }
  1602  
  1603  // ERC721BurnableCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  1604  type ERC721BurnableCallerRaw struct {
  1605  	Contract *ERC721BurnableCaller // Generic read-only contract binding to access the raw methods on
  1606  }
  1607  
  1608  // ERC721BurnableTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  1609  type ERC721BurnableTransactorRaw struct {
  1610  	Contract *ERC721BurnableTransactor // Generic write-only contract binding to access the raw methods on
  1611  }
  1612  
  1613  // NewERC721Burnable creates a new instance of ERC721Burnable, bound to a specific deployed contract.
  1614  func NewERC721Burnable(address common.Address, backend bind.ContractBackend) (*ERC721Burnable, error) {
  1615  	contract, err := bindERC721Burnable(address, backend, backend, backend)
  1616  	if err != nil {
  1617  		return nil, err
  1618  	}
  1619  	return &ERC721Burnable{ERC721BurnableCaller: ERC721BurnableCaller{contract: contract}, ERC721BurnableTransactor: ERC721BurnableTransactor{contract: contract}, ERC721BurnableFilterer: ERC721BurnableFilterer{contract: contract}}, nil
  1620  }
  1621  
  1622  // NewERC721BurnableCaller creates a new read-only instance of ERC721Burnable, bound to a specific deployed contract.
  1623  func NewERC721BurnableCaller(address common.Address, caller bind.ContractCaller) (*ERC721BurnableCaller, error) {
  1624  	contract, err := bindERC721Burnable(address, caller, nil, nil)
  1625  	if err != nil {
  1626  		return nil, err
  1627  	}
  1628  	return &ERC721BurnableCaller{contract: contract}, nil
  1629  }
  1630  
  1631  // NewERC721BurnableTransactor creates a new write-only instance of ERC721Burnable, bound to a specific deployed contract.
  1632  func NewERC721BurnableTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC721BurnableTransactor, error) {
  1633  	contract, err := bindERC721Burnable(address, nil, transactor, nil)
  1634  	if err != nil {
  1635  		return nil, err
  1636  	}
  1637  	return &ERC721BurnableTransactor{contract: contract}, nil
  1638  }
  1639  
  1640  // NewERC721BurnableFilterer creates a new log filterer instance of ERC721Burnable, bound to a specific deployed contract.
  1641  func NewERC721BurnableFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC721BurnableFilterer, error) {
  1642  	contract, err := bindERC721Burnable(address, nil, nil, filterer)
  1643  	if err != nil {
  1644  		return nil, err
  1645  	}
  1646  	return &ERC721BurnableFilterer{contract: contract}, nil
  1647  }
  1648  
  1649  // bindERC721Burnable binds a generic wrapper to an already deployed contract.
  1650  func bindERC721Burnable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  1651  	parsed, err := ERC721BurnableMetaData.GetAbi()
  1652  	if err != nil {
  1653  		return nil, err
  1654  	}
  1655  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  1656  }
  1657  
  1658  // Call invokes the (constant) contract method with params as input values and
  1659  // sets the output to result. The result type might be a single field for simple
  1660  // returns, a slice of interfaces for anonymous returns and a struct for named
  1661  // returns.
  1662  func (_ERC721Burnable *ERC721BurnableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  1663  	return _ERC721Burnable.Contract.ERC721BurnableCaller.contract.Call(opts, result, method, params...)
  1664  }
  1665  
  1666  // Transfer initiates a plain transaction to move funds to the contract, calling
  1667  // its default method if one is available.
  1668  func (_ERC721Burnable *ERC721BurnableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  1669  	return _ERC721Burnable.Contract.ERC721BurnableTransactor.contract.Transfer(opts)
  1670  }
  1671  
  1672  // Transact invokes the (paid) contract method with params as input values.
  1673  func (_ERC721Burnable *ERC721BurnableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  1674  	return _ERC721Burnable.Contract.ERC721BurnableTransactor.contract.Transact(opts, method, params...)
  1675  }
  1676  
  1677  // Call invokes the (constant) contract method with params as input values and
  1678  // sets the output to result. The result type might be a single field for simple
  1679  // returns, a slice of interfaces for anonymous returns and a struct for named
  1680  // returns.
  1681  func (_ERC721Burnable *ERC721BurnableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  1682  	return _ERC721Burnable.Contract.contract.Call(opts, result, method, params...)
  1683  }
  1684  
  1685  // Transfer initiates a plain transaction to move funds to the contract, calling
  1686  // its default method if one is available.
  1687  func (_ERC721Burnable *ERC721BurnableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  1688  	return _ERC721Burnable.Contract.contract.Transfer(opts)
  1689  }
  1690  
  1691  // Transact invokes the (paid) contract method with params as input values.
  1692  func (_ERC721Burnable *ERC721BurnableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  1693  	return _ERC721Burnable.Contract.contract.Transact(opts, method, params...)
  1694  }
  1695  
  1696  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  1697  //
  1698  // Solidity: function balanceOf(address owner) view returns(uint256)
  1699  func (_ERC721Burnable *ERC721BurnableCaller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) {
  1700  	var out []interface{}
  1701  	err := _ERC721Burnable.contract.Call(opts, &out, "balanceOf", owner)
  1702  
  1703  	if err != nil {
  1704  		return *new(*big.Int), err
  1705  	}
  1706  
  1707  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  1708  
  1709  	return out0, err
  1710  
  1711  }
  1712  
  1713  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  1714  //
  1715  // Solidity: function balanceOf(address owner) view returns(uint256)
  1716  func (_ERC721Burnable *ERC721BurnableSession) BalanceOf(owner common.Address) (*big.Int, error) {
  1717  	return _ERC721Burnable.Contract.BalanceOf(&_ERC721Burnable.CallOpts, owner)
  1718  }
  1719  
  1720  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  1721  //
  1722  // Solidity: function balanceOf(address owner) view returns(uint256)
  1723  func (_ERC721Burnable *ERC721BurnableCallerSession) BalanceOf(owner common.Address) (*big.Int, error) {
  1724  	return _ERC721Burnable.Contract.BalanceOf(&_ERC721Burnable.CallOpts, owner)
  1725  }
  1726  
  1727  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
  1728  //
  1729  // Solidity: function getApproved(uint256 tokenId) view returns(address)
  1730  func (_ERC721Burnable *ERC721BurnableCaller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
  1731  	var out []interface{}
  1732  	err := _ERC721Burnable.contract.Call(opts, &out, "getApproved", tokenId)
  1733  
  1734  	if err != nil {
  1735  		return *new(common.Address), err
  1736  	}
  1737  
  1738  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  1739  
  1740  	return out0, err
  1741  
  1742  }
  1743  
  1744  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
  1745  //
  1746  // Solidity: function getApproved(uint256 tokenId) view returns(address)
  1747  func (_ERC721Burnable *ERC721BurnableSession) GetApproved(tokenId *big.Int) (common.Address, error) {
  1748  	return _ERC721Burnable.Contract.GetApproved(&_ERC721Burnable.CallOpts, tokenId)
  1749  }
  1750  
  1751  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
  1752  //
  1753  // Solidity: function getApproved(uint256 tokenId) view returns(address)
  1754  func (_ERC721Burnable *ERC721BurnableCallerSession) GetApproved(tokenId *big.Int) (common.Address, error) {
  1755  	return _ERC721Burnable.Contract.GetApproved(&_ERC721Burnable.CallOpts, tokenId)
  1756  }
  1757  
  1758  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
  1759  //
  1760  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
  1761  func (_ERC721Burnable *ERC721BurnableCaller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) {
  1762  	var out []interface{}
  1763  	err := _ERC721Burnable.contract.Call(opts, &out, "isApprovedForAll", owner, operator)
  1764  
  1765  	if err != nil {
  1766  		return *new(bool), err
  1767  	}
  1768  
  1769  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  1770  
  1771  	return out0, err
  1772  
  1773  }
  1774  
  1775  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
  1776  //
  1777  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
  1778  func (_ERC721Burnable *ERC721BurnableSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
  1779  	return _ERC721Burnable.Contract.IsApprovedForAll(&_ERC721Burnable.CallOpts, owner, operator)
  1780  }
  1781  
  1782  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
  1783  //
  1784  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
  1785  func (_ERC721Burnable *ERC721BurnableCallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
  1786  	return _ERC721Burnable.Contract.IsApprovedForAll(&_ERC721Burnable.CallOpts, owner, operator)
  1787  }
  1788  
  1789  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
  1790  //
  1791  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
  1792  func (_ERC721Burnable *ERC721BurnableCaller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
  1793  	var out []interface{}
  1794  	err := _ERC721Burnable.contract.Call(opts, &out, "ownerOf", tokenId)
  1795  
  1796  	if err != nil {
  1797  		return *new(common.Address), err
  1798  	}
  1799  
  1800  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  1801  
  1802  	return out0, err
  1803  
  1804  }
  1805  
  1806  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
  1807  //
  1808  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
  1809  func (_ERC721Burnable *ERC721BurnableSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
  1810  	return _ERC721Burnable.Contract.OwnerOf(&_ERC721Burnable.CallOpts, tokenId)
  1811  }
  1812  
  1813  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
  1814  //
  1815  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
  1816  func (_ERC721Burnable *ERC721BurnableCallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
  1817  	return _ERC721Burnable.Contract.OwnerOf(&_ERC721Burnable.CallOpts, tokenId)
  1818  }
  1819  
  1820  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  1821  //
  1822  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
  1823  func (_ERC721Burnable *ERC721BurnableCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
  1824  	var out []interface{}
  1825  	err := _ERC721Burnable.contract.Call(opts, &out, "supportsInterface", interfaceId)
  1826  
  1827  	if err != nil {
  1828  		return *new(bool), err
  1829  	}
  1830  
  1831  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  1832  
  1833  	return out0, err
  1834  
  1835  }
  1836  
  1837  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  1838  //
  1839  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
  1840  func (_ERC721Burnable *ERC721BurnableSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
  1841  	return _ERC721Burnable.Contract.SupportsInterface(&_ERC721Burnable.CallOpts, interfaceId)
  1842  }
  1843  
  1844  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  1845  //
  1846  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
  1847  func (_ERC721Burnable *ERC721BurnableCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
  1848  	return _ERC721Burnable.Contract.SupportsInterface(&_ERC721Burnable.CallOpts, interfaceId)
  1849  }
  1850  
  1851  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  1852  //
  1853  // Solidity: function approve(address to, uint256 tokenId) returns()
  1854  func (_ERC721Burnable *ERC721BurnableTransactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1855  	return _ERC721Burnable.contract.Transact(opts, "approve", to, tokenId)
  1856  }
  1857  
  1858  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  1859  //
  1860  // Solidity: function approve(address to, uint256 tokenId) returns()
  1861  func (_ERC721Burnable *ERC721BurnableSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1862  	return _ERC721Burnable.Contract.Approve(&_ERC721Burnable.TransactOpts, to, tokenId)
  1863  }
  1864  
  1865  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  1866  //
  1867  // Solidity: function approve(address to, uint256 tokenId) returns()
  1868  func (_ERC721Burnable *ERC721BurnableTransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1869  	return _ERC721Burnable.Contract.Approve(&_ERC721Burnable.TransactOpts, to, tokenId)
  1870  }
  1871  
  1872  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
  1873  //
  1874  // Solidity: function burn(uint256 tokenId) returns()
  1875  func (_ERC721Burnable *ERC721BurnableTransactor) Burn(opts *bind.TransactOpts, tokenId *big.Int) (*types.Transaction, error) {
  1876  	return _ERC721Burnable.contract.Transact(opts, "burn", tokenId)
  1877  }
  1878  
  1879  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
  1880  //
  1881  // Solidity: function burn(uint256 tokenId) returns()
  1882  func (_ERC721Burnable *ERC721BurnableSession) Burn(tokenId *big.Int) (*types.Transaction, error) {
  1883  	return _ERC721Burnable.Contract.Burn(&_ERC721Burnable.TransactOpts, tokenId)
  1884  }
  1885  
  1886  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
  1887  //
  1888  // Solidity: function burn(uint256 tokenId) returns()
  1889  func (_ERC721Burnable *ERC721BurnableTransactorSession) Burn(tokenId *big.Int) (*types.Transaction, error) {
  1890  	return _ERC721Burnable.Contract.Burn(&_ERC721Burnable.TransactOpts, tokenId)
  1891  }
  1892  
  1893  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
  1894  //
  1895  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
  1896  func (_ERC721Burnable *ERC721BurnableTransactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1897  	return _ERC721Burnable.contract.Transact(opts, "safeTransferFrom", from, to, tokenId)
  1898  }
  1899  
  1900  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
  1901  //
  1902  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
  1903  func (_ERC721Burnable *ERC721BurnableSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1904  	return _ERC721Burnable.Contract.SafeTransferFrom(&_ERC721Burnable.TransactOpts, from, to, tokenId)
  1905  }
  1906  
  1907  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
  1908  //
  1909  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
  1910  func (_ERC721Burnable *ERC721BurnableTransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1911  	return _ERC721Burnable.Contract.SafeTransferFrom(&_ERC721Burnable.TransactOpts, from, to, tokenId)
  1912  }
  1913  
  1914  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
  1915  //
  1916  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
  1917  func (_ERC721Burnable *ERC721BurnableTransactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
  1918  	return _ERC721Burnable.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, _data)
  1919  }
  1920  
  1921  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
  1922  //
  1923  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
  1924  func (_ERC721Burnable *ERC721BurnableSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
  1925  	return _ERC721Burnable.Contract.SafeTransferFrom0(&_ERC721Burnable.TransactOpts, from, to, tokenId, _data)
  1926  }
  1927  
  1928  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
  1929  //
  1930  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
  1931  func (_ERC721Burnable *ERC721BurnableTransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
  1932  	return _ERC721Burnable.Contract.SafeTransferFrom0(&_ERC721Burnable.TransactOpts, from, to, tokenId, _data)
  1933  }
  1934  
  1935  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
  1936  //
  1937  // Solidity: function setApprovalForAll(address to, bool approved) returns()
  1938  func (_ERC721Burnable *ERC721BurnableTransactor) SetApprovalForAll(opts *bind.TransactOpts, to common.Address, approved bool) (*types.Transaction, error) {
  1939  	return _ERC721Burnable.contract.Transact(opts, "setApprovalForAll", to, approved)
  1940  }
  1941  
  1942  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
  1943  //
  1944  // Solidity: function setApprovalForAll(address to, bool approved) returns()
  1945  func (_ERC721Burnable *ERC721BurnableSession) SetApprovalForAll(to common.Address, approved bool) (*types.Transaction, error) {
  1946  	return _ERC721Burnable.Contract.SetApprovalForAll(&_ERC721Burnable.TransactOpts, to, approved)
  1947  }
  1948  
  1949  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
  1950  //
  1951  // Solidity: function setApprovalForAll(address to, bool approved) returns()
  1952  func (_ERC721Burnable *ERC721BurnableTransactorSession) SetApprovalForAll(to common.Address, approved bool) (*types.Transaction, error) {
  1953  	return _ERC721Burnable.Contract.SetApprovalForAll(&_ERC721Burnable.TransactOpts, to, approved)
  1954  }
  1955  
  1956  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  1957  //
  1958  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
  1959  func (_ERC721Burnable *ERC721BurnableTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1960  	return _ERC721Burnable.contract.Transact(opts, "transferFrom", from, to, tokenId)
  1961  }
  1962  
  1963  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  1964  //
  1965  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
  1966  func (_ERC721Burnable *ERC721BurnableSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1967  	return _ERC721Burnable.Contract.TransferFrom(&_ERC721Burnable.TransactOpts, from, to, tokenId)
  1968  }
  1969  
  1970  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  1971  //
  1972  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
  1973  func (_ERC721Burnable *ERC721BurnableTransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1974  	return _ERC721Burnable.Contract.TransferFrom(&_ERC721Burnable.TransactOpts, from, to, tokenId)
  1975  }
  1976  
  1977  // ERC721BurnableApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ERC721Burnable contract.
  1978  type ERC721BurnableApprovalIterator struct {
  1979  	Event *ERC721BurnableApproval // Event containing the contract specifics and raw log
  1980  
  1981  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1982  	event    string              // Event name to use for unpacking event data
  1983  
  1984  	logs chan types.Log      // Log channel receiving the found contract events
  1985  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  1986  	done bool                // Whether the subscription completed delivering logs
  1987  	fail error               // Occurred error to stop iteration
  1988  }
  1989  
  1990  // Next advances the iterator to the subsequent event, returning whether there
  1991  // are any more events found. In case of a retrieval or parsing error, false is
  1992  // returned and Error() can be queried for the exact failure.
  1993  func (it *ERC721BurnableApprovalIterator) Next() bool {
  1994  	// If the iterator failed, stop iterating
  1995  	if it.fail != nil {
  1996  		return false
  1997  	}
  1998  	// If the iterator completed, deliver directly whatever's available
  1999  	if it.done {
  2000  		select {
  2001  		case log := <-it.logs:
  2002  			it.Event = new(ERC721BurnableApproval)
  2003  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2004  				it.fail = err
  2005  				return false
  2006  			}
  2007  			it.Event.Raw = log
  2008  			return true
  2009  
  2010  		default:
  2011  			return false
  2012  		}
  2013  	}
  2014  	// Iterator still in progress, wait for either a data or an error event
  2015  	select {
  2016  	case log := <-it.logs:
  2017  		it.Event = new(ERC721BurnableApproval)
  2018  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2019  			it.fail = err
  2020  			return false
  2021  		}
  2022  		it.Event.Raw = log
  2023  		return true
  2024  
  2025  	case err := <-it.sub.Err():
  2026  		it.done = true
  2027  		it.fail = err
  2028  		return it.Next()
  2029  	}
  2030  }
  2031  
  2032  // Error returns any retrieval or parsing error occurred during filtering.
  2033  func (it *ERC721BurnableApprovalIterator) Error() error {
  2034  	return it.fail
  2035  }
  2036  
  2037  // Close terminates the iteration process, releasing any pending underlying
  2038  // resources.
  2039  func (it *ERC721BurnableApprovalIterator) Close() error {
  2040  	it.sub.Unsubscribe()
  2041  	return nil
  2042  }
  2043  
  2044  // ERC721BurnableApproval represents a Approval event raised by the ERC721Burnable contract.
  2045  type ERC721BurnableApproval struct {
  2046  	Owner    common.Address
  2047  	Approved common.Address
  2048  	TokenId  *big.Int
  2049  	Raw      types.Log // Blockchain specific contextual infos
  2050  }
  2051  
  2052  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  2053  //
  2054  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  2055  func (_ERC721Burnable *ERC721BurnableFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*ERC721BurnableApprovalIterator, error) {
  2056  
  2057  	var ownerRule []interface{}
  2058  	for _, ownerItem := range owner {
  2059  		ownerRule = append(ownerRule, ownerItem)
  2060  	}
  2061  	var approvedRule []interface{}
  2062  	for _, approvedItem := range approved {
  2063  		approvedRule = append(approvedRule, approvedItem)
  2064  	}
  2065  	var tokenIdRule []interface{}
  2066  	for _, tokenIdItem := range tokenId {
  2067  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  2068  	}
  2069  
  2070  	logs, sub, err := _ERC721Burnable.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
  2071  	if err != nil {
  2072  		return nil, err
  2073  	}
  2074  	return &ERC721BurnableApprovalIterator{contract: _ERC721Burnable.contract, event: "Approval", logs: logs, sub: sub}, nil
  2075  }
  2076  
  2077  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  2078  //
  2079  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  2080  func (_ERC721Burnable *ERC721BurnableFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC721BurnableApproval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) {
  2081  
  2082  	var ownerRule []interface{}
  2083  	for _, ownerItem := range owner {
  2084  		ownerRule = append(ownerRule, ownerItem)
  2085  	}
  2086  	var approvedRule []interface{}
  2087  	for _, approvedItem := range approved {
  2088  		approvedRule = append(approvedRule, approvedItem)
  2089  	}
  2090  	var tokenIdRule []interface{}
  2091  	for _, tokenIdItem := range tokenId {
  2092  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  2093  	}
  2094  
  2095  	logs, sub, err := _ERC721Burnable.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
  2096  	if err != nil {
  2097  		return nil, err
  2098  	}
  2099  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2100  		defer sub.Unsubscribe()
  2101  		for {
  2102  			select {
  2103  			case log := <-logs:
  2104  				// New log arrived, parse the event and forward to the user
  2105  				event := new(ERC721BurnableApproval)
  2106  				if err := _ERC721Burnable.contract.UnpackLog(event, "Approval", log); err != nil {
  2107  					return err
  2108  				}
  2109  				event.Raw = log
  2110  
  2111  				select {
  2112  				case sink <- event:
  2113  				case err := <-sub.Err():
  2114  					return err
  2115  				case <-quit:
  2116  					return nil
  2117  				}
  2118  			case err := <-sub.Err():
  2119  				return err
  2120  			case <-quit:
  2121  				return nil
  2122  			}
  2123  		}
  2124  	}), nil
  2125  }
  2126  
  2127  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  2128  //
  2129  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  2130  func (_ERC721Burnable *ERC721BurnableFilterer) ParseApproval(log types.Log) (*ERC721BurnableApproval, error) {
  2131  	event := new(ERC721BurnableApproval)
  2132  	if err := _ERC721Burnable.contract.UnpackLog(event, "Approval", log); err != nil {
  2133  		return nil, err
  2134  	}
  2135  	return event, nil
  2136  }
  2137  
  2138  // ERC721BurnableApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the ERC721Burnable contract.
  2139  type ERC721BurnableApprovalForAllIterator struct {
  2140  	Event *ERC721BurnableApprovalForAll // Event containing the contract specifics and raw log
  2141  
  2142  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2143  	event    string              // Event name to use for unpacking event data
  2144  
  2145  	logs chan types.Log      // Log channel receiving the found contract events
  2146  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  2147  	done bool                // Whether the subscription completed delivering logs
  2148  	fail error               // Occurred error to stop iteration
  2149  }
  2150  
  2151  // Next advances the iterator to the subsequent event, returning whether there
  2152  // are any more events found. In case of a retrieval or parsing error, false is
  2153  // returned and Error() can be queried for the exact failure.
  2154  func (it *ERC721BurnableApprovalForAllIterator) Next() bool {
  2155  	// If the iterator failed, stop iterating
  2156  	if it.fail != nil {
  2157  		return false
  2158  	}
  2159  	// If the iterator completed, deliver directly whatever's available
  2160  	if it.done {
  2161  		select {
  2162  		case log := <-it.logs:
  2163  			it.Event = new(ERC721BurnableApprovalForAll)
  2164  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2165  				it.fail = err
  2166  				return false
  2167  			}
  2168  			it.Event.Raw = log
  2169  			return true
  2170  
  2171  		default:
  2172  			return false
  2173  		}
  2174  	}
  2175  	// Iterator still in progress, wait for either a data or an error event
  2176  	select {
  2177  	case log := <-it.logs:
  2178  		it.Event = new(ERC721BurnableApprovalForAll)
  2179  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2180  			it.fail = err
  2181  			return false
  2182  		}
  2183  		it.Event.Raw = log
  2184  		return true
  2185  
  2186  	case err := <-it.sub.Err():
  2187  		it.done = true
  2188  		it.fail = err
  2189  		return it.Next()
  2190  	}
  2191  }
  2192  
  2193  // Error returns any retrieval or parsing error occurred during filtering.
  2194  func (it *ERC721BurnableApprovalForAllIterator) Error() error {
  2195  	return it.fail
  2196  }
  2197  
  2198  // Close terminates the iteration process, releasing any pending underlying
  2199  // resources.
  2200  func (it *ERC721BurnableApprovalForAllIterator) Close() error {
  2201  	it.sub.Unsubscribe()
  2202  	return nil
  2203  }
  2204  
  2205  // ERC721BurnableApprovalForAll represents a ApprovalForAll event raised by the ERC721Burnable contract.
  2206  type ERC721BurnableApprovalForAll struct {
  2207  	Owner    common.Address
  2208  	Operator common.Address
  2209  	Approved bool
  2210  	Raw      types.Log // Blockchain specific contextual infos
  2211  }
  2212  
  2213  // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  2214  //
  2215  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  2216  func (_ERC721Burnable *ERC721BurnableFilterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*ERC721BurnableApprovalForAllIterator, error) {
  2217  
  2218  	var ownerRule []interface{}
  2219  	for _, ownerItem := range owner {
  2220  		ownerRule = append(ownerRule, ownerItem)
  2221  	}
  2222  	var operatorRule []interface{}
  2223  	for _, operatorItem := range operator {
  2224  		operatorRule = append(operatorRule, operatorItem)
  2225  	}
  2226  
  2227  	logs, sub, err := _ERC721Burnable.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
  2228  	if err != nil {
  2229  		return nil, err
  2230  	}
  2231  	return &ERC721BurnableApprovalForAllIterator{contract: _ERC721Burnable.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil
  2232  }
  2233  
  2234  // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  2235  //
  2236  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  2237  func (_ERC721Burnable *ERC721BurnableFilterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *ERC721BurnableApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) {
  2238  
  2239  	var ownerRule []interface{}
  2240  	for _, ownerItem := range owner {
  2241  		ownerRule = append(ownerRule, ownerItem)
  2242  	}
  2243  	var operatorRule []interface{}
  2244  	for _, operatorItem := range operator {
  2245  		operatorRule = append(operatorRule, operatorItem)
  2246  	}
  2247  
  2248  	logs, sub, err := _ERC721Burnable.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
  2249  	if err != nil {
  2250  		return nil, err
  2251  	}
  2252  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2253  		defer sub.Unsubscribe()
  2254  		for {
  2255  			select {
  2256  			case log := <-logs:
  2257  				// New log arrived, parse the event and forward to the user
  2258  				event := new(ERC721BurnableApprovalForAll)
  2259  				if err := _ERC721Burnable.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
  2260  					return err
  2261  				}
  2262  				event.Raw = log
  2263  
  2264  				select {
  2265  				case sink <- event:
  2266  				case err := <-sub.Err():
  2267  					return err
  2268  				case <-quit:
  2269  					return nil
  2270  				}
  2271  			case err := <-sub.Err():
  2272  				return err
  2273  			case <-quit:
  2274  				return nil
  2275  			}
  2276  		}
  2277  	}), nil
  2278  }
  2279  
  2280  // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  2281  //
  2282  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  2283  func (_ERC721Burnable *ERC721BurnableFilterer) ParseApprovalForAll(log types.Log) (*ERC721BurnableApprovalForAll, error) {
  2284  	event := new(ERC721BurnableApprovalForAll)
  2285  	if err := _ERC721Burnable.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
  2286  		return nil, err
  2287  	}
  2288  	return event, nil
  2289  }
  2290  
  2291  // ERC721BurnableTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ERC721Burnable contract.
  2292  type ERC721BurnableTransferIterator struct {
  2293  	Event *ERC721BurnableTransfer // Event containing the contract specifics and raw log
  2294  
  2295  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2296  	event    string              // Event name to use for unpacking event data
  2297  
  2298  	logs chan types.Log      // Log channel receiving the found contract events
  2299  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  2300  	done bool                // Whether the subscription completed delivering logs
  2301  	fail error               // Occurred error to stop iteration
  2302  }
  2303  
  2304  // Next advances the iterator to the subsequent event, returning whether there
  2305  // are any more events found. In case of a retrieval or parsing error, false is
  2306  // returned and Error() can be queried for the exact failure.
  2307  func (it *ERC721BurnableTransferIterator) Next() bool {
  2308  	// If the iterator failed, stop iterating
  2309  	if it.fail != nil {
  2310  		return false
  2311  	}
  2312  	// If the iterator completed, deliver directly whatever's available
  2313  	if it.done {
  2314  		select {
  2315  		case log := <-it.logs:
  2316  			it.Event = new(ERC721BurnableTransfer)
  2317  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2318  				it.fail = err
  2319  				return false
  2320  			}
  2321  			it.Event.Raw = log
  2322  			return true
  2323  
  2324  		default:
  2325  			return false
  2326  		}
  2327  	}
  2328  	// Iterator still in progress, wait for either a data or an error event
  2329  	select {
  2330  	case log := <-it.logs:
  2331  		it.Event = new(ERC721BurnableTransfer)
  2332  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2333  			it.fail = err
  2334  			return false
  2335  		}
  2336  		it.Event.Raw = log
  2337  		return true
  2338  
  2339  	case err := <-it.sub.Err():
  2340  		it.done = true
  2341  		it.fail = err
  2342  		return it.Next()
  2343  	}
  2344  }
  2345  
  2346  // Error returns any retrieval or parsing error occurred during filtering.
  2347  func (it *ERC721BurnableTransferIterator) Error() error {
  2348  	return it.fail
  2349  }
  2350  
  2351  // Close terminates the iteration process, releasing any pending underlying
  2352  // resources.
  2353  func (it *ERC721BurnableTransferIterator) Close() error {
  2354  	it.sub.Unsubscribe()
  2355  	return nil
  2356  }
  2357  
  2358  // ERC721BurnableTransfer represents a Transfer event raised by the ERC721Burnable contract.
  2359  type ERC721BurnableTransfer struct {
  2360  	From    common.Address
  2361  	To      common.Address
  2362  	TokenId *big.Int
  2363  	Raw     types.Log // Blockchain specific contextual infos
  2364  }
  2365  
  2366  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  2367  //
  2368  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  2369  func (_ERC721Burnable *ERC721BurnableFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*ERC721BurnableTransferIterator, error) {
  2370  
  2371  	var fromRule []interface{}
  2372  	for _, fromItem := range from {
  2373  		fromRule = append(fromRule, fromItem)
  2374  	}
  2375  	var toRule []interface{}
  2376  	for _, toItem := range to {
  2377  		toRule = append(toRule, toItem)
  2378  	}
  2379  	var tokenIdRule []interface{}
  2380  	for _, tokenIdItem := range tokenId {
  2381  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  2382  	}
  2383  
  2384  	logs, sub, err := _ERC721Burnable.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
  2385  	if err != nil {
  2386  		return nil, err
  2387  	}
  2388  	return &ERC721BurnableTransferIterator{contract: _ERC721Burnable.contract, event: "Transfer", logs: logs, sub: sub}, nil
  2389  }
  2390  
  2391  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  2392  //
  2393  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  2394  func (_ERC721Burnable *ERC721BurnableFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC721BurnableTransfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) {
  2395  
  2396  	var fromRule []interface{}
  2397  	for _, fromItem := range from {
  2398  		fromRule = append(fromRule, fromItem)
  2399  	}
  2400  	var toRule []interface{}
  2401  	for _, toItem := range to {
  2402  		toRule = append(toRule, toItem)
  2403  	}
  2404  	var tokenIdRule []interface{}
  2405  	for _, tokenIdItem := range tokenId {
  2406  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  2407  	}
  2408  
  2409  	logs, sub, err := _ERC721Burnable.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
  2410  	if err != nil {
  2411  		return nil, err
  2412  	}
  2413  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2414  		defer sub.Unsubscribe()
  2415  		for {
  2416  			select {
  2417  			case log := <-logs:
  2418  				// New log arrived, parse the event and forward to the user
  2419  				event := new(ERC721BurnableTransfer)
  2420  				if err := _ERC721Burnable.contract.UnpackLog(event, "Transfer", log); err != nil {
  2421  					return err
  2422  				}
  2423  				event.Raw = log
  2424  
  2425  				select {
  2426  				case sink <- event:
  2427  				case err := <-sub.Err():
  2428  					return err
  2429  				case <-quit:
  2430  					return nil
  2431  				}
  2432  			case err := <-sub.Err():
  2433  				return err
  2434  			case <-quit:
  2435  				return nil
  2436  			}
  2437  		}
  2438  	}), nil
  2439  }
  2440  
  2441  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  2442  //
  2443  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  2444  func (_ERC721Burnable *ERC721BurnableFilterer) ParseTransfer(log types.Log) (*ERC721BurnableTransfer, error) {
  2445  	event := new(ERC721BurnableTransfer)
  2446  	if err := _ERC721Burnable.contract.UnpackLog(event, "Transfer", log); err != nil {
  2447  		return nil, err
  2448  	}
  2449  	return event, nil
  2450  }
  2451  
  2452  // ERC721MintableMetaData contains all meta data concerning the ERC721Mintable contract.
  2453  var ERC721MintableMetaData = &bind.MetaData{
  2454  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isMinter\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}]",
  2455  	Sigs: map[string]string{
  2456  		"983b2d56": "addMinter(address)",
  2457  		"095ea7b3": "approve(address,uint256)",
  2458  		"70a08231": "balanceOf(address)",
  2459  		"081812fc": "getApproved(uint256)",
  2460  		"e985e9c5": "isApprovedForAll(address,address)",
  2461  		"aa271e1a": "isMinter(address)",
  2462  		"40c10f19": "mint(address,uint256)",
  2463  		"6352211e": "ownerOf(uint256)",
  2464  		"98650275": "renounceMinter()",
  2465  		"42842e0e": "safeTransferFrom(address,address,uint256)",
  2466  		"b88d4fde": "safeTransferFrom(address,address,uint256,bytes)",
  2467  		"a22cb465": "setApprovalForAll(address,bool)",
  2468  		"01ffc9a7": "supportsInterface(bytes4)",
  2469  		"23b872dd": "transferFrom(address,address,uint256)",
  2470  	},
  2471  	Bin: "0x60806040526200001c6301ffc9a760e01b6200004b60201b60201c565b620000346380ac58cd60e01b6200004b60201b60201c565b62000045336200011a60201b60201c565b62000293565b7fffffffff000000000000000000000000000000000000000000000000000000008082161415620000dd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152602081905260409020805460ff19166001179055565b620001358160056200016c60201b62000ec61790919060201c565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6200017e82826200021060201b60201c565b15620001eb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b03821662000273576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180620015106022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61126d80620002a36000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a22cb46511610066578063a22cb465146102ac578063aa271e1a146102da578063b88d4fde14610300578063e985e9c5146103c6576100ea565b806370a0823114610246578063983b2d561461027e57806398650275146102a4576100ea565b806323b872dd116100c857806323b872dd1461019157806340c10f19146101c757806342842e0e146101f35780636352211e14610229576100ea565b806301ffc9a7146100ef578063081812fc1461012a578063095ea7b314610163575b600080fd5b6101166004803603602081101561010557600080fd5b50356001600160e01b0319166103f4565b604080519115158252519081900360200190f35b6101476004803603602081101561014057600080fd5b5035610413565b604080516001600160a01b039092168252519081900360200190f35b61018f6004803603604081101561017957600080fd5b506001600160a01b038135169060200135610478565b005b61018f600480360360608110156101a757600080fd5b506001600160a01b0381358116916020810135909116906040013561058f565b610116600480360360408110156101dd57600080fd5b506001600160a01b0381351690602001356105e7565b61018f6004803603606081101561020957600080fd5b506001600160a01b03813581169160208101359091169060400135610643565b6101476004803603602081101561023f57600080fd5b503561065e565b61026c6004803603602081101561025c57600080fd5b50356001600160a01b03166106bb565b60408051918252519081900360200190f35b61018f6004803603602081101561029457600080fd5b50356001600160a01b0316610726565b61018f610779565b61018f600480360360408110156102c257600080fd5b506001600160a01b0381351690602001351515610784565b610116600480360360208110156102f057600080fd5b50356001600160a01b0316610853565b61018f6004803603608081101561031657600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561035157600080fd5b82018360208201111561036357600080fd5b8035906020019184600183028401116401000000008311171561038557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610866945050505050565b610116600480360360408110156103dc57600080fd5b506001600160a01b03813581169160200135166108c1565b6001600160e01b03191660009081526020819052604090205460ff1690565b600061041e826108ef565b61045c57604051600160e51b62461bcd02815260040180806020018281038252602c815260200180611179602c913960400191505060405180910390fd5b506000908152600260205260409020546001600160a01b031690565b60006104838261065e565b9050806001600160a01b0316836001600160a01b031614156104d957604051600160e51b62461bcd0281526004018080602001828103825260218152602001806111f06021913960400191505060405180910390fd5b336001600160a01b03821614806104f557506104f581336108c1565b61053357604051600160e51b62461bcd02815260040180806020018281038252603881526020018061109d6038913960400191505060405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b610599338261090c565b6105d757604051600160e51b62461bcd0281526004018080602001828103825260318152602001806112116031913960400191505060405180910390fd5b6105e28383836109b3565b505050565b60006105f233610853565b61063057604051600160e51b62461bcd0281526004018080602001828103825260308152602001806111286030913960400191505060405180910390fd5b61063a8383610afd565b50600192915050565b6105e283838360405180602001604052806000815250610866565b6000818152600160205260408120546001600160a01b0316806106b557604051600160e51b62461bcd0281526004018080602001828103825260298152602001806110ff6029913960400191505060405180910390fd5b92915050565b60006001600160a01b03821661070557604051600160e51b62461bcd02815260040180806020018281038252602a8152602001806110d5602a913960400191505060405180910390fd5b6001600160a01b03821660009081526003602052604090206106b590610c34565b61072f33610853565b61076d57604051600160e51b62461bcd0281526004018080602001828103825260308152602001806111286030913960400191505060405180910390fd5b61077681610c38565b50565b61078233610c80565b565b6001600160a01b0382163314156107e55760408051600160e51b62461bcd02815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b60006106b560058363ffffffff610cc816565b61087184848461058f565b61087d84848484610d32565b6108bb57604051600160e51b62461bcd02815260040180806020018281038252603281526020018061101b6032913960400191505060405180910390fd5b50505050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000908152600160205260409020546001600160a01b0316151590565b6000610917826108ef565b61095557604051600160e51b62461bcd02815260040180806020018281038252602c815260200180611071602c913960400191505060405180910390fd5b60006109608361065e565b9050806001600160a01b0316846001600160a01b0316148061099b5750836001600160a01b031661099084610413565b6001600160a01b0316145b806109ab57506109ab81856108c1565b949350505050565b826001600160a01b03166109c68261065e565b6001600160a01b031614610a0e57604051600160e51b62461bcd0281526004018080602001828103825260298152602001806111c76029913960400191505060405180910390fd5b6001600160a01b038216610a5657604051600160e51b62461bcd02815260040180806020018281038252602481526020018061104d6024913960400191505060405180910390fd5b610a5f81610e6b565b6001600160a01b0383166000908152600360205260409020610a8090610ea6565b6001600160a01b0382166000908152600360205260409020610aa190610ebd565b60008181526001602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6001600160a01b038216610b5b5760408051600160e51b62461bcd02815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b610b64816108ef565b15610bb95760408051600160e51b62461bcd02815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015290519081900360640190fd5b600081815260016020908152604080832080546001600160a01b0319166001600160a01b038716908117909155835260039091529020610bf890610ebd565b60405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b5490565b610c4960058263ffffffff610ec616565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b610c9160058263ffffffff610f4a16565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b60006001600160a01b038216610d1257604051600160e51b62461bcd0281526004018080602001828103825260228152602001806111a56022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6000610d46846001600160a01b0316610fb4565b610d52575060016109ab565b604051600160e11b630a85bd0102815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b83811015610dcf578181015183820152602001610db7565b50505050905090810190601f168015610dfc5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610e1e57600080fd5b505af1158015610e32573d6000803e3d6000fd5b505050506040513d6020811015610e4857600080fd5b50516001600160e01b031916600160e11b630a85bd010214915050949350505050565b6000818152600260205260409020546001600160a01b03161561077657600090815260026020526040902080546001600160a01b0319169055565b8054610eb990600163ffffffff610fba16565b9055565b80546001019055565b610ed08282610cc8565b15610f255760408051600160e51b62461bcd02815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610f548282610cc8565b610f9257604051600160e51b62461bcd0281526004018080602001828103825260218152602001806111586021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b3b151590565b6000828211156110145760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e526f6c65733a206163636f756e7420697320746865207a65726f20616464726573734552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a165627a7a72305820335b29c2b8db434219a90b6b027213a83a15755b4c6657198b9c3702cdc93b170029526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373",
  2472  }
  2473  
  2474  // ERC721MintableABI is the input ABI used to generate the binding from.
  2475  // Deprecated: Use ERC721MintableMetaData.ABI instead.
  2476  var ERC721MintableABI = ERC721MintableMetaData.ABI
  2477  
  2478  // ERC721MintableBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  2479  const ERC721MintableBinRuntime = `608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a22cb46511610066578063a22cb465146102ac578063aa271e1a146102da578063b88d4fde14610300578063e985e9c5146103c6576100ea565b806370a0823114610246578063983b2d561461027e57806398650275146102a4576100ea565b806323b872dd116100c857806323b872dd1461019157806340c10f19146101c757806342842e0e146101f35780636352211e14610229576100ea565b806301ffc9a7146100ef578063081812fc1461012a578063095ea7b314610163575b600080fd5b6101166004803603602081101561010557600080fd5b50356001600160e01b0319166103f4565b604080519115158252519081900360200190f35b6101476004803603602081101561014057600080fd5b5035610413565b604080516001600160a01b039092168252519081900360200190f35b61018f6004803603604081101561017957600080fd5b506001600160a01b038135169060200135610478565b005b61018f600480360360608110156101a757600080fd5b506001600160a01b0381358116916020810135909116906040013561058f565b610116600480360360408110156101dd57600080fd5b506001600160a01b0381351690602001356105e7565b61018f6004803603606081101561020957600080fd5b506001600160a01b03813581169160208101359091169060400135610643565b6101476004803603602081101561023f57600080fd5b503561065e565b61026c6004803603602081101561025c57600080fd5b50356001600160a01b03166106bb565b60408051918252519081900360200190f35b61018f6004803603602081101561029457600080fd5b50356001600160a01b0316610726565b61018f610779565b61018f600480360360408110156102c257600080fd5b506001600160a01b0381351690602001351515610784565b610116600480360360208110156102f057600080fd5b50356001600160a01b0316610853565b61018f6004803603608081101561031657600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561035157600080fd5b82018360208201111561036357600080fd5b8035906020019184600183028401116401000000008311171561038557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610866945050505050565b610116600480360360408110156103dc57600080fd5b506001600160a01b03813581169160200135166108c1565b6001600160e01b03191660009081526020819052604090205460ff1690565b600061041e826108ef565b61045c57604051600160e51b62461bcd02815260040180806020018281038252602c815260200180611179602c913960400191505060405180910390fd5b506000908152600260205260409020546001600160a01b031690565b60006104838261065e565b9050806001600160a01b0316836001600160a01b031614156104d957604051600160e51b62461bcd0281526004018080602001828103825260218152602001806111f06021913960400191505060405180910390fd5b336001600160a01b03821614806104f557506104f581336108c1565b61053357604051600160e51b62461bcd02815260040180806020018281038252603881526020018061109d6038913960400191505060405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b610599338261090c565b6105d757604051600160e51b62461bcd0281526004018080602001828103825260318152602001806112116031913960400191505060405180910390fd5b6105e28383836109b3565b505050565b60006105f233610853565b61063057604051600160e51b62461bcd0281526004018080602001828103825260308152602001806111286030913960400191505060405180910390fd5b61063a8383610afd565b50600192915050565b6105e283838360405180602001604052806000815250610866565b6000818152600160205260408120546001600160a01b0316806106b557604051600160e51b62461bcd0281526004018080602001828103825260298152602001806110ff6029913960400191505060405180910390fd5b92915050565b60006001600160a01b03821661070557604051600160e51b62461bcd02815260040180806020018281038252602a8152602001806110d5602a913960400191505060405180910390fd5b6001600160a01b03821660009081526003602052604090206106b590610c34565b61072f33610853565b61076d57604051600160e51b62461bcd0281526004018080602001828103825260308152602001806111286030913960400191505060405180910390fd5b61077681610c38565b50565b61078233610c80565b565b6001600160a01b0382163314156107e55760408051600160e51b62461bcd02815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b60006106b560058363ffffffff610cc816565b61087184848461058f565b61087d84848484610d32565b6108bb57604051600160e51b62461bcd02815260040180806020018281038252603281526020018061101b6032913960400191505060405180910390fd5b50505050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000908152600160205260409020546001600160a01b0316151590565b6000610917826108ef565b61095557604051600160e51b62461bcd02815260040180806020018281038252602c815260200180611071602c913960400191505060405180910390fd5b60006109608361065e565b9050806001600160a01b0316846001600160a01b0316148061099b5750836001600160a01b031661099084610413565b6001600160a01b0316145b806109ab57506109ab81856108c1565b949350505050565b826001600160a01b03166109c68261065e565b6001600160a01b031614610a0e57604051600160e51b62461bcd0281526004018080602001828103825260298152602001806111c76029913960400191505060405180910390fd5b6001600160a01b038216610a5657604051600160e51b62461bcd02815260040180806020018281038252602481526020018061104d6024913960400191505060405180910390fd5b610a5f81610e6b565b6001600160a01b0383166000908152600360205260409020610a8090610ea6565b6001600160a01b0382166000908152600360205260409020610aa190610ebd565b60008181526001602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6001600160a01b038216610b5b5760408051600160e51b62461bcd02815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b610b64816108ef565b15610bb95760408051600160e51b62461bcd02815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015290519081900360640190fd5b600081815260016020908152604080832080546001600160a01b0319166001600160a01b038716908117909155835260039091529020610bf890610ebd565b60405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b5490565b610c4960058263ffffffff610ec616565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b610c9160058263ffffffff610f4a16565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b60006001600160a01b038216610d1257604051600160e51b62461bcd0281526004018080602001828103825260228152602001806111a56022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6000610d46846001600160a01b0316610fb4565b610d52575060016109ab565b604051600160e11b630a85bd0102815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b83811015610dcf578181015183820152602001610db7565b50505050905090810190601f168015610dfc5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610e1e57600080fd5b505af1158015610e32573d6000803e3d6000fd5b505050506040513d6020811015610e4857600080fd5b50516001600160e01b031916600160e11b630a85bd010214915050949350505050565b6000818152600260205260409020546001600160a01b03161561077657600090815260026020526040902080546001600160a01b0319169055565b8054610eb990600163ffffffff610fba16565b9055565b80546001019055565b610ed08282610cc8565b15610f255760408051600160e51b62461bcd02815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610f548282610cc8565b610f9257604051600160e51b62461bcd0281526004018080602001828103825260218152602001806111586021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b3b151590565b6000828211156110145760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e526f6c65733a206163636f756e7420697320746865207a65726f20616464726573734552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a165627a7a72305820335b29c2b8db434219a90b6b027213a83a15755b4c6657198b9c3702cdc93b170029`
  2480  
  2481  // ERC721MintableFuncSigs maps the 4-byte function signature to its string representation.
  2482  // Deprecated: Use ERC721MintableMetaData.Sigs instead.
  2483  var ERC721MintableFuncSigs = ERC721MintableMetaData.Sigs
  2484  
  2485  // ERC721MintableBin is the compiled bytecode used for deploying new contracts.
  2486  // Deprecated: Use ERC721MintableMetaData.Bin instead.
  2487  var ERC721MintableBin = ERC721MintableMetaData.Bin
  2488  
  2489  // DeployERC721Mintable deploys a new Klaytn contract, binding an instance of ERC721Mintable to it.
  2490  func DeployERC721Mintable(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ERC721Mintable, error) {
  2491  	parsed, err := ERC721MintableMetaData.GetAbi()
  2492  	if err != nil {
  2493  		return common.Address{}, nil, nil, err
  2494  	}
  2495  	if parsed == nil {
  2496  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
  2497  	}
  2498  
  2499  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ERC721MintableBin), backend)
  2500  	if err != nil {
  2501  		return common.Address{}, nil, nil, err
  2502  	}
  2503  	return address, tx, &ERC721Mintable{ERC721MintableCaller: ERC721MintableCaller{contract: contract}, ERC721MintableTransactor: ERC721MintableTransactor{contract: contract}, ERC721MintableFilterer: ERC721MintableFilterer{contract: contract}}, nil
  2504  }
  2505  
  2506  // ERC721Mintable is an auto generated Go binding around a Klaytn contract.
  2507  type ERC721Mintable struct {
  2508  	ERC721MintableCaller     // Read-only binding to the contract
  2509  	ERC721MintableTransactor // Write-only binding to the contract
  2510  	ERC721MintableFilterer   // Log filterer for contract events
  2511  }
  2512  
  2513  // ERC721MintableCaller is an auto generated read-only Go binding around a Klaytn contract.
  2514  type ERC721MintableCaller struct {
  2515  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2516  }
  2517  
  2518  // ERC721MintableTransactor is an auto generated write-only Go binding around a Klaytn contract.
  2519  type ERC721MintableTransactor struct {
  2520  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2521  }
  2522  
  2523  // ERC721MintableFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  2524  type ERC721MintableFilterer struct {
  2525  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2526  }
  2527  
  2528  // ERC721MintableSession is an auto generated Go binding around a Klaytn contract,
  2529  // with pre-set call and transact options.
  2530  type ERC721MintableSession struct {
  2531  	Contract     *ERC721Mintable   // Generic contract binding to set the session for
  2532  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  2533  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  2534  }
  2535  
  2536  // ERC721MintableCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  2537  // with pre-set call options.
  2538  type ERC721MintableCallerSession struct {
  2539  	Contract *ERC721MintableCaller // Generic contract caller binding to set the session for
  2540  	CallOpts bind.CallOpts         // Call options to use throughout this session
  2541  }
  2542  
  2543  // ERC721MintableTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  2544  // with pre-set transact options.
  2545  type ERC721MintableTransactorSession struct {
  2546  	Contract     *ERC721MintableTransactor // Generic contract transactor binding to set the session for
  2547  	TransactOpts bind.TransactOpts         // Transaction auth options to use throughout this session
  2548  }
  2549  
  2550  // ERC721MintableRaw is an auto generated low-level Go binding around a Klaytn contract.
  2551  type ERC721MintableRaw struct {
  2552  	Contract *ERC721Mintable // Generic contract binding to access the raw methods on
  2553  }
  2554  
  2555  // ERC721MintableCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  2556  type ERC721MintableCallerRaw struct {
  2557  	Contract *ERC721MintableCaller // Generic read-only contract binding to access the raw methods on
  2558  }
  2559  
  2560  // ERC721MintableTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  2561  type ERC721MintableTransactorRaw struct {
  2562  	Contract *ERC721MintableTransactor // Generic write-only contract binding to access the raw methods on
  2563  }
  2564  
  2565  // NewERC721Mintable creates a new instance of ERC721Mintable, bound to a specific deployed contract.
  2566  func NewERC721Mintable(address common.Address, backend bind.ContractBackend) (*ERC721Mintable, error) {
  2567  	contract, err := bindERC721Mintable(address, backend, backend, backend)
  2568  	if err != nil {
  2569  		return nil, err
  2570  	}
  2571  	return &ERC721Mintable{ERC721MintableCaller: ERC721MintableCaller{contract: contract}, ERC721MintableTransactor: ERC721MintableTransactor{contract: contract}, ERC721MintableFilterer: ERC721MintableFilterer{contract: contract}}, nil
  2572  }
  2573  
  2574  // NewERC721MintableCaller creates a new read-only instance of ERC721Mintable, bound to a specific deployed contract.
  2575  func NewERC721MintableCaller(address common.Address, caller bind.ContractCaller) (*ERC721MintableCaller, error) {
  2576  	contract, err := bindERC721Mintable(address, caller, nil, nil)
  2577  	if err != nil {
  2578  		return nil, err
  2579  	}
  2580  	return &ERC721MintableCaller{contract: contract}, nil
  2581  }
  2582  
  2583  // NewERC721MintableTransactor creates a new write-only instance of ERC721Mintable, bound to a specific deployed contract.
  2584  func NewERC721MintableTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC721MintableTransactor, error) {
  2585  	contract, err := bindERC721Mintable(address, nil, transactor, nil)
  2586  	if err != nil {
  2587  		return nil, err
  2588  	}
  2589  	return &ERC721MintableTransactor{contract: contract}, nil
  2590  }
  2591  
  2592  // NewERC721MintableFilterer creates a new log filterer instance of ERC721Mintable, bound to a specific deployed contract.
  2593  func NewERC721MintableFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC721MintableFilterer, error) {
  2594  	contract, err := bindERC721Mintable(address, nil, nil, filterer)
  2595  	if err != nil {
  2596  		return nil, err
  2597  	}
  2598  	return &ERC721MintableFilterer{contract: contract}, nil
  2599  }
  2600  
  2601  // bindERC721Mintable binds a generic wrapper to an already deployed contract.
  2602  func bindERC721Mintable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  2603  	parsed, err := ERC721MintableMetaData.GetAbi()
  2604  	if err != nil {
  2605  		return nil, err
  2606  	}
  2607  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  2608  }
  2609  
  2610  // Call invokes the (constant) contract method with params as input values and
  2611  // sets the output to result. The result type might be a single field for simple
  2612  // returns, a slice of interfaces for anonymous returns and a struct for named
  2613  // returns.
  2614  func (_ERC721Mintable *ERC721MintableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  2615  	return _ERC721Mintable.Contract.ERC721MintableCaller.contract.Call(opts, result, method, params...)
  2616  }
  2617  
  2618  // Transfer initiates a plain transaction to move funds to the contract, calling
  2619  // its default method if one is available.
  2620  func (_ERC721Mintable *ERC721MintableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  2621  	return _ERC721Mintable.Contract.ERC721MintableTransactor.contract.Transfer(opts)
  2622  }
  2623  
  2624  // Transact invokes the (paid) contract method with params as input values.
  2625  func (_ERC721Mintable *ERC721MintableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  2626  	return _ERC721Mintable.Contract.ERC721MintableTransactor.contract.Transact(opts, method, params...)
  2627  }
  2628  
  2629  // Call invokes the (constant) contract method with params as input values and
  2630  // sets the output to result. The result type might be a single field for simple
  2631  // returns, a slice of interfaces for anonymous returns and a struct for named
  2632  // returns.
  2633  func (_ERC721Mintable *ERC721MintableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  2634  	return _ERC721Mintable.Contract.contract.Call(opts, result, method, params...)
  2635  }
  2636  
  2637  // Transfer initiates a plain transaction to move funds to the contract, calling
  2638  // its default method if one is available.
  2639  func (_ERC721Mintable *ERC721MintableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  2640  	return _ERC721Mintable.Contract.contract.Transfer(opts)
  2641  }
  2642  
  2643  // Transact invokes the (paid) contract method with params as input values.
  2644  func (_ERC721Mintable *ERC721MintableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  2645  	return _ERC721Mintable.Contract.contract.Transact(opts, method, params...)
  2646  }
  2647  
  2648  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  2649  //
  2650  // Solidity: function balanceOf(address owner) view returns(uint256)
  2651  func (_ERC721Mintable *ERC721MintableCaller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) {
  2652  	var out []interface{}
  2653  	err := _ERC721Mintable.contract.Call(opts, &out, "balanceOf", owner)
  2654  
  2655  	if err != nil {
  2656  		return *new(*big.Int), err
  2657  	}
  2658  
  2659  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  2660  
  2661  	return out0, err
  2662  
  2663  }
  2664  
  2665  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  2666  //
  2667  // Solidity: function balanceOf(address owner) view returns(uint256)
  2668  func (_ERC721Mintable *ERC721MintableSession) BalanceOf(owner common.Address) (*big.Int, error) {
  2669  	return _ERC721Mintable.Contract.BalanceOf(&_ERC721Mintable.CallOpts, owner)
  2670  }
  2671  
  2672  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  2673  //
  2674  // Solidity: function balanceOf(address owner) view returns(uint256)
  2675  func (_ERC721Mintable *ERC721MintableCallerSession) BalanceOf(owner common.Address) (*big.Int, error) {
  2676  	return _ERC721Mintable.Contract.BalanceOf(&_ERC721Mintable.CallOpts, owner)
  2677  }
  2678  
  2679  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
  2680  //
  2681  // Solidity: function getApproved(uint256 tokenId) view returns(address)
  2682  func (_ERC721Mintable *ERC721MintableCaller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
  2683  	var out []interface{}
  2684  	err := _ERC721Mintable.contract.Call(opts, &out, "getApproved", tokenId)
  2685  
  2686  	if err != nil {
  2687  		return *new(common.Address), err
  2688  	}
  2689  
  2690  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  2691  
  2692  	return out0, err
  2693  
  2694  }
  2695  
  2696  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
  2697  //
  2698  // Solidity: function getApproved(uint256 tokenId) view returns(address)
  2699  func (_ERC721Mintable *ERC721MintableSession) GetApproved(tokenId *big.Int) (common.Address, error) {
  2700  	return _ERC721Mintable.Contract.GetApproved(&_ERC721Mintable.CallOpts, tokenId)
  2701  }
  2702  
  2703  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
  2704  //
  2705  // Solidity: function getApproved(uint256 tokenId) view returns(address)
  2706  func (_ERC721Mintable *ERC721MintableCallerSession) GetApproved(tokenId *big.Int) (common.Address, error) {
  2707  	return _ERC721Mintable.Contract.GetApproved(&_ERC721Mintable.CallOpts, tokenId)
  2708  }
  2709  
  2710  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
  2711  //
  2712  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
  2713  func (_ERC721Mintable *ERC721MintableCaller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) {
  2714  	var out []interface{}
  2715  	err := _ERC721Mintable.contract.Call(opts, &out, "isApprovedForAll", owner, operator)
  2716  
  2717  	if err != nil {
  2718  		return *new(bool), err
  2719  	}
  2720  
  2721  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  2722  
  2723  	return out0, err
  2724  
  2725  }
  2726  
  2727  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
  2728  //
  2729  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
  2730  func (_ERC721Mintable *ERC721MintableSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
  2731  	return _ERC721Mintable.Contract.IsApprovedForAll(&_ERC721Mintable.CallOpts, owner, operator)
  2732  }
  2733  
  2734  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
  2735  //
  2736  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
  2737  func (_ERC721Mintable *ERC721MintableCallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
  2738  	return _ERC721Mintable.Contract.IsApprovedForAll(&_ERC721Mintable.CallOpts, owner, operator)
  2739  }
  2740  
  2741  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
  2742  //
  2743  // Solidity: function isMinter(address account) view returns(bool)
  2744  func (_ERC721Mintable *ERC721MintableCaller) IsMinter(opts *bind.CallOpts, account common.Address) (bool, error) {
  2745  	var out []interface{}
  2746  	err := _ERC721Mintable.contract.Call(opts, &out, "isMinter", account)
  2747  
  2748  	if err != nil {
  2749  		return *new(bool), err
  2750  	}
  2751  
  2752  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  2753  
  2754  	return out0, err
  2755  
  2756  }
  2757  
  2758  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
  2759  //
  2760  // Solidity: function isMinter(address account) view returns(bool)
  2761  func (_ERC721Mintable *ERC721MintableSession) IsMinter(account common.Address) (bool, error) {
  2762  	return _ERC721Mintable.Contract.IsMinter(&_ERC721Mintable.CallOpts, account)
  2763  }
  2764  
  2765  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
  2766  //
  2767  // Solidity: function isMinter(address account) view returns(bool)
  2768  func (_ERC721Mintable *ERC721MintableCallerSession) IsMinter(account common.Address) (bool, error) {
  2769  	return _ERC721Mintable.Contract.IsMinter(&_ERC721Mintable.CallOpts, account)
  2770  }
  2771  
  2772  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
  2773  //
  2774  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
  2775  func (_ERC721Mintable *ERC721MintableCaller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
  2776  	var out []interface{}
  2777  	err := _ERC721Mintable.contract.Call(opts, &out, "ownerOf", tokenId)
  2778  
  2779  	if err != nil {
  2780  		return *new(common.Address), err
  2781  	}
  2782  
  2783  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  2784  
  2785  	return out0, err
  2786  
  2787  }
  2788  
  2789  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
  2790  //
  2791  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
  2792  func (_ERC721Mintable *ERC721MintableSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
  2793  	return _ERC721Mintable.Contract.OwnerOf(&_ERC721Mintable.CallOpts, tokenId)
  2794  }
  2795  
  2796  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
  2797  //
  2798  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
  2799  func (_ERC721Mintable *ERC721MintableCallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
  2800  	return _ERC721Mintable.Contract.OwnerOf(&_ERC721Mintable.CallOpts, tokenId)
  2801  }
  2802  
  2803  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  2804  //
  2805  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
  2806  func (_ERC721Mintable *ERC721MintableCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
  2807  	var out []interface{}
  2808  	err := _ERC721Mintable.contract.Call(opts, &out, "supportsInterface", interfaceId)
  2809  
  2810  	if err != nil {
  2811  		return *new(bool), err
  2812  	}
  2813  
  2814  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  2815  
  2816  	return out0, err
  2817  
  2818  }
  2819  
  2820  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  2821  //
  2822  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
  2823  func (_ERC721Mintable *ERC721MintableSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
  2824  	return _ERC721Mintable.Contract.SupportsInterface(&_ERC721Mintable.CallOpts, interfaceId)
  2825  }
  2826  
  2827  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  2828  //
  2829  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
  2830  func (_ERC721Mintable *ERC721MintableCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
  2831  	return _ERC721Mintable.Contract.SupportsInterface(&_ERC721Mintable.CallOpts, interfaceId)
  2832  }
  2833  
  2834  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
  2835  //
  2836  // Solidity: function addMinter(address account) returns()
  2837  func (_ERC721Mintable *ERC721MintableTransactor) AddMinter(opts *bind.TransactOpts, account common.Address) (*types.Transaction, error) {
  2838  	return _ERC721Mintable.contract.Transact(opts, "addMinter", account)
  2839  }
  2840  
  2841  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
  2842  //
  2843  // Solidity: function addMinter(address account) returns()
  2844  func (_ERC721Mintable *ERC721MintableSession) AddMinter(account common.Address) (*types.Transaction, error) {
  2845  	return _ERC721Mintable.Contract.AddMinter(&_ERC721Mintable.TransactOpts, account)
  2846  }
  2847  
  2848  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
  2849  //
  2850  // Solidity: function addMinter(address account) returns()
  2851  func (_ERC721Mintable *ERC721MintableTransactorSession) AddMinter(account common.Address) (*types.Transaction, error) {
  2852  	return _ERC721Mintable.Contract.AddMinter(&_ERC721Mintable.TransactOpts, account)
  2853  }
  2854  
  2855  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  2856  //
  2857  // Solidity: function approve(address to, uint256 tokenId) returns()
  2858  func (_ERC721Mintable *ERC721MintableTransactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  2859  	return _ERC721Mintable.contract.Transact(opts, "approve", to, tokenId)
  2860  }
  2861  
  2862  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  2863  //
  2864  // Solidity: function approve(address to, uint256 tokenId) returns()
  2865  func (_ERC721Mintable *ERC721MintableSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  2866  	return _ERC721Mintable.Contract.Approve(&_ERC721Mintable.TransactOpts, to, tokenId)
  2867  }
  2868  
  2869  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  2870  //
  2871  // Solidity: function approve(address to, uint256 tokenId) returns()
  2872  func (_ERC721Mintable *ERC721MintableTransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  2873  	return _ERC721Mintable.Contract.Approve(&_ERC721Mintable.TransactOpts, to, tokenId)
  2874  }
  2875  
  2876  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
  2877  //
  2878  // Solidity: function mint(address to, uint256 tokenId) returns(bool)
  2879  func (_ERC721Mintable *ERC721MintableTransactor) Mint(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  2880  	return _ERC721Mintable.contract.Transact(opts, "mint", to, tokenId)
  2881  }
  2882  
  2883  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
  2884  //
  2885  // Solidity: function mint(address to, uint256 tokenId) returns(bool)
  2886  func (_ERC721Mintable *ERC721MintableSession) Mint(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  2887  	return _ERC721Mintable.Contract.Mint(&_ERC721Mintable.TransactOpts, to, tokenId)
  2888  }
  2889  
  2890  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
  2891  //
  2892  // Solidity: function mint(address to, uint256 tokenId) returns(bool)
  2893  func (_ERC721Mintable *ERC721MintableTransactorSession) Mint(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  2894  	return _ERC721Mintable.Contract.Mint(&_ERC721Mintable.TransactOpts, to, tokenId)
  2895  }
  2896  
  2897  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
  2898  //
  2899  // Solidity: function renounceMinter() returns()
  2900  func (_ERC721Mintable *ERC721MintableTransactor) RenounceMinter(opts *bind.TransactOpts) (*types.Transaction, error) {
  2901  	return _ERC721Mintable.contract.Transact(opts, "renounceMinter")
  2902  }
  2903  
  2904  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
  2905  //
  2906  // Solidity: function renounceMinter() returns()
  2907  func (_ERC721Mintable *ERC721MintableSession) RenounceMinter() (*types.Transaction, error) {
  2908  	return _ERC721Mintable.Contract.RenounceMinter(&_ERC721Mintable.TransactOpts)
  2909  }
  2910  
  2911  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
  2912  //
  2913  // Solidity: function renounceMinter() returns()
  2914  func (_ERC721Mintable *ERC721MintableTransactorSession) RenounceMinter() (*types.Transaction, error) {
  2915  	return _ERC721Mintable.Contract.RenounceMinter(&_ERC721Mintable.TransactOpts)
  2916  }
  2917  
  2918  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
  2919  //
  2920  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
  2921  func (_ERC721Mintable *ERC721MintableTransactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  2922  	return _ERC721Mintable.contract.Transact(opts, "safeTransferFrom", from, to, tokenId)
  2923  }
  2924  
  2925  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
  2926  //
  2927  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
  2928  func (_ERC721Mintable *ERC721MintableSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  2929  	return _ERC721Mintable.Contract.SafeTransferFrom(&_ERC721Mintable.TransactOpts, from, to, tokenId)
  2930  }
  2931  
  2932  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
  2933  //
  2934  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
  2935  func (_ERC721Mintable *ERC721MintableTransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  2936  	return _ERC721Mintable.Contract.SafeTransferFrom(&_ERC721Mintable.TransactOpts, from, to, tokenId)
  2937  }
  2938  
  2939  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
  2940  //
  2941  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
  2942  func (_ERC721Mintable *ERC721MintableTransactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
  2943  	return _ERC721Mintable.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, _data)
  2944  }
  2945  
  2946  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
  2947  //
  2948  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
  2949  func (_ERC721Mintable *ERC721MintableSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
  2950  	return _ERC721Mintable.Contract.SafeTransferFrom0(&_ERC721Mintable.TransactOpts, from, to, tokenId, _data)
  2951  }
  2952  
  2953  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
  2954  //
  2955  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
  2956  func (_ERC721Mintable *ERC721MintableTransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
  2957  	return _ERC721Mintable.Contract.SafeTransferFrom0(&_ERC721Mintable.TransactOpts, from, to, tokenId, _data)
  2958  }
  2959  
  2960  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
  2961  //
  2962  // Solidity: function setApprovalForAll(address to, bool approved) returns()
  2963  func (_ERC721Mintable *ERC721MintableTransactor) SetApprovalForAll(opts *bind.TransactOpts, to common.Address, approved bool) (*types.Transaction, error) {
  2964  	return _ERC721Mintable.contract.Transact(opts, "setApprovalForAll", to, approved)
  2965  }
  2966  
  2967  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
  2968  //
  2969  // Solidity: function setApprovalForAll(address to, bool approved) returns()
  2970  func (_ERC721Mintable *ERC721MintableSession) SetApprovalForAll(to common.Address, approved bool) (*types.Transaction, error) {
  2971  	return _ERC721Mintable.Contract.SetApprovalForAll(&_ERC721Mintable.TransactOpts, to, approved)
  2972  }
  2973  
  2974  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
  2975  //
  2976  // Solidity: function setApprovalForAll(address to, bool approved) returns()
  2977  func (_ERC721Mintable *ERC721MintableTransactorSession) SetApprovalForAll(to common.Address, approved bool) (*types.Transaction, error) {
  2978  	return _ERC721Mintable.Contract.SetApprovalForAll(&_ERC721Mintable.TransactOpts, to, approved)
  2979  }
  2980  
  2981  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  2982  //
  2983  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
  2984  func (_ERC721Mintable *ERC721MintableTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  2985  	return _ERC721Mintable.contract.Transact(opts, "transferFrom", from, to, tokenId)
  2986  }
  2987  
  2988  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  2989  //
  2990  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
  2991  func (_ERC721Mintable *ERC721MintableSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  2992  	return _ERC721Mintable.Contract.TransferFrom(&_ERC721Mintable.TransactOpts, from, to, tokenId)
  2993  }
  2994  
  2995  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  2996  //
  2997  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
  2998  func (_ERC721Mintable *ERC721MintableTransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  2999  	return _ERC721Mintable.Contract.TransferFrom(&_ERC721Mintable.TransactOpts, from, to, tokenId)
  3000  }
  3001  
  3002  // ERC721MintableApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ERC721Mintable contract.
  3003  type ERC721MintableApprovalIterator struct {
  3004  	Event *ERC721MintableApproval // Event containing the contract specifics and raw log
  3005  
  3006  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3007  	event    string              // Event name to use for unpacking event data
  3008  
  3009  	logs chan types.Log      // Log channel receiving the found contract events
  3010  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  3011  	done bool                // Whether the subscription completed delivering logs
  3012  	fail error               // Occurred error to stop iteration
  3013  }
  3014  
  3015  // Next advances the iterator to the subsequent event, returning whether there
  3016  // are any more events found. In case of a retrieval or parsing error, false is
  3017  // returned and Error() can be queried for the exact failure.
  3018  func (it *ERC721MintableApprovalIterator) Next() bool {
  3019  	// If the iterator failed, stop iterating
  3020  	if it.fail != nil {
  3021  		return false
  3022  	}
  3023  	// If the iterator completed, deliver directly whatever's available
  3024  	if it.done {
  3025  		select {
  3026  		case log := <-it.logs:
  3027  			it.Event = new(ERC721MintableApproval)
  3028  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3029  				it.fail = err
  3030  				return false
  3031  			}
  3032  			it.Event.Raw = log
  3033  			return true
  3034  
  3035  		default:
  3036  			return false
  3037  		}
  3038  	}
  3039  	// Iterator still in progress, wait for either a data or an error event
  3040  	select {
  3041  	case log := <-it.logs:
  3042  		it.Event = new(ERC721MintableApproval)
  3043  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3044  			it.fail = err
  3045  			return false
  3046  		}
  3047  		it.Event.Raw = log
  3048  		return true
  3049  
  3050  	case err := <-it.sub.Err():
  3051  		it.done = true
  3052  		it.fail = err
  3053  		return it.Next()
  3054  	}
  3055  }
  3056  
  3057  // Error returns any retrieval or parsing error occurred during filtering.
  3058  func (it *ERC721MintableApprovalIterator) Error() error {
  3059  	return it.fail
  3060  }
  3061  
  3062  // Close terminates the iteration process, releasing any pending underlying
  3063  // resources.
  3064  func (it *ERC721MintableApprovalIterator) Close() error {
  3065  	it.sub.Unsubscribe()
  3066  	return nil
  3067  }
  3068  
  3069  // ERC721MintableApproval represents a Approval event raised by the ERC721Mintable contract.
  3070  type ERC721MintableApproval struct {
  3071  	Owner    common.Address
  3072  	Approved common.Address
  3073  	TokenId  *big.Int
  3074  	Raw      types.Log // Blockchain specific contextual infos
  3075  }
  3076  
  3077  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  3078  //
  3079  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  3080  func (_ERC721Mintable *ERC721MintableFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*ERC721MintableApprovalIterator, error) {
  3081  
  3082  	var ownerRule []interface{}
  3083  	for _, ownerItem := range owner {
  3084  		ownerRule = append(ownerRule, ownerItem)
  3085  	}
  3086  	var approvedRule []interface{}
  3087  	for _, approvedItem := range approved {
  3088  		approvedRule = append(approvedRule, approvedItem)
  3089  	}
  3090  	var tokenIdRule []interface{}
  3091  	for _, tokenIdItem := range tokenId {
  3092  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  3093  	}
  3094  
  3095  	logs, sub, err := _ERC721Mintable.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
  3096  	if err != nil {
  3097  		return nil, err
  3098  	}
  3099  	return &ERC721MintableApprovalIterator{contract: _ERC721Mintable.contract, event: "Approval", logs: logs, sub: sub}, nil
  3100  }
  3101  
  3102  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  3103  //
  3104  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  3105  func (_ERC721Mintable *ERC721MintableFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC721MintableApproval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) {
  3106  
  3107  	var ownerRule []interface{}
  3108  	for _, ownerItem := range owner {
  3109  		ownerRule = append(ownerRule, ownerItem)
  3110  	}
  3111  	var approvedRule []interface{}
  3112  	for _, approvedItem := range approved {
  3113  		approvedRule = append(approvedRule, approvedItem)
  3114  	}
  3115  	var tokenIdRule []interface{}
  3116  	for _, tokenIdItem := range tokenId {
  3117  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  3118  	}
  3119  
  3120  	logs, sub, err := _ERC721Mintable.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
  3121  	if err != nil {
  3122  		return nil, err
  3123  	}
  3124  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3125  		defer sub.Unsubscribe()
  3126  		for {
  3127  			select {
  3128  			case log := <-logs:
  3129  				// New log arrived, parse the event and forward to the user
  3130  				event := new(ERC721MintableApproval)
  3131  				if err := _ERC721Mintable.contract.UnpackLog(event, "Approval", log); err != nil {
  3132  					return err
  3133  				}
  3134  				event.Raw = log
  3135  
  3136  				select {
  3137  				case sink <- event:
  3138  				case err := <-sub.Err():
  3139  					return err
  3140  				case <-quit:
  3141  					return nil
  3142  				}
  3143  			case err := <-sub.Err():
  3144  				return err
  3145  			case <-quit:
  3146  				return nil
  3147  			}
  3148  		}
  3149  	}), nil
  3150  }
  3151  
  3152  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  3153  //
  3154  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  3155  func (_ERC721Mintable *ERC721MintableFilterer) ParseApproval(log types.Log) (*ERC721MintableApproval, error) {
  3156  	event := new(ERC721MintableApproval)
  3157  	if err := _ERC721Mintable.contract.UnpackLog(event, "Approval", log); err != nil {
  3158  		return nil, err
  3159  	}
  3160  	return event, nil
  3161  }
  3162  
  3163  // ERC721MintableApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the ERC721Mintable contract.
  3164  type ERC721MintableApprovalForAllIterator struct {
  3165  	Event *ERC721MintableApprovalForAll // Event containing the contract specifics and raw log
  3166  
  3167  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3168  	event    string              // Event name to use for unpacking event data
  3169  
  3170  	logs chan types.Log      // Log channel receiving the found contract events
  3171  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  3172  	done bool                // Whether the subscription completed delivering logs
  3173  	fail error               // Occurred error to stop iteration
  3174  }
  3175  
  3176  // Next advances the iterator to the subsequent event, returning whether there
  3177  // are any more events found. In case of a retrieval or parsing error, false is
  3178  // returned and Error() can be queried for the exact failure.
  3179  func (it *ERC721MintableApprovalForAllIterator) Next() bool {
  3180  	// If the iterator failed, stop iterating
  3181  	if it.fail != nil {
  3182  		return false
  3183  	}
  3184  	// If the iterator completed, deliver directly whatever's available
  3185  	if it.done {
  3186  		select {
  3187  		case log := <-it.logs:
  3188  			it.Event = new(ERC721MintableApprovalForAll)
  3189  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3190  				it.fail = err
  3191  				return false
  3192  			}
  3193  			it.Event.Raw = log
  3194  			return true
  3195  
  3196  		default:
  3197  			return false
  3198  		}
  3199  	}
  3200  	// Iterator still in progress, wait for either a data or an error event
  3201  	select {
  3202  	case log := <-it.logs:
  3203  		it.Event = new(ERC721MintableApprovalForAll)
  3204  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3205  			it.fail = err
  3206  			return false
  3207  		}
  3208  		it.Event.Raw = log
  3209  		return true
  3210  
  3211  	case err := <-it.sub.Err():
  3212  		it.done = true
  3213  		it.fail = err
  3214  		return it.Next()
  3215  	}
  3216  }
  3217  
  3218  // Error returns any retrieval or parsing error occurred during filtering.
  3219  func (it *ERC721MintableApprovalForAllIterator) Error() error {
  3220  	return it.fail
  3221  }
  3222  
  3223  // Close terminates the iteration process, releasing any pending underlying
  3224  // resources.
  3225  func (it *ERC721MintableApprovalForAllIterator) Close() error {
  3226  	it.sub.Unsubscribe()
  3227  	return nil
  3228  }
  3229  
  3230  // ERC721MintableApprovalForAll represents a ApprovalForAll event raised by the ERC721Mintable contract.
  3231  type ERC721MintableApprovalForAll struct {
  3232  	Owner    common.Address
  3233  	Operator common.Address
  3234  	Approved bool
  3235  	Raw      types.Log // Blockchain specific contextual infos
  3236  }
  3237  
  3238  // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  3239  //
  3240  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  3241  func (_ERC721Mintable *ERC721MintableFilterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*ERC721MintableApprovalForAllIterator, error) {
  3242  
  3243  	var ownerRule []interface{}
  3244  	for _, ownerItem := range owner {
  3245  		ownerRule = append(ownerRule, ownerItem)
  3246  	}
  3247  	var operatorRule []interface{}
  3248  	for _, operatorItem := range operator {
  3249  		operatorRule = append(operatorRule, operatorItem)
  3250  	}
  3251  
  3252  	logs, sub, err := _ERC721Mintable.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
  3253  	if err != nil {
  3254  		return nil, err
  3255  	}
  3256  	return &ERC721MintableApprovalForAllIterator{contract: _ERC721Mintable.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil
  3257  }
  3258  
  3259  // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  3260  //
  3261  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  3262  func (_ERC721Mintable *ERC721MintableFilterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *ERC721MintableApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) {
  3263  
  3264  	var ownerRule []interface{}
  3265  	for _, ownerItem := range owner {
  3266  		ownerRule = append(ownerRule, ownerItem)
  3267  	}
  3268  	var operatorRule []interface{}
  3269  	for _, operatorItem := range operator {
  3270  		operatorRule = append(operatorRule, operatorItem)
  3271  	}
  3272  
  3273  	logs, sub, err := _ERC721Mintable.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
  3274  	if err != nil {
  3275  		return nil, err
  3276  	}
  3277  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3278  		defer sub.Unsubscribe()
  3279  		for {
  3280  			select {
  3281  			case log := <-logs:
  3282  				// New log arrived, parse the event and forward to the user
  3283  				event := new(ERC721MintableApprovalForAll)
  3284  				if err := _ERC721Mintable.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
  3285  					return err
  3286  				}
  3287  				event.Raw = log
  3288  
  3289  				select {
  3290  				case sink <- event:
  3291  				case err := <-sub.Err():
  3292  					return err
  3293  				case <-quit:
  3294  					return nil
  3295  				}
  3296  			case err := <-sub.Err():
  3297  				return err
  3298  			case <-quit:
  3299  				return nil
  3300  			}
  3301  		}
  3302  	}), nil
  3303  }
  3304  
  3305  // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  3306  //
  3307  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  3308  func (_ERC721Mintable *ERC721MintableFilterer) ParseApprovalForAll(log types.Log) (*ERC721MintableApprovalForAll, error) {
  3309  	event := new(ERC721MintableApprovalForAll)
  3310  	if err := _ERC721Mintable.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
  3311  		return nil, err
  3312  	}
  3313  	return event, nil
  3314  }
  3315  
  3316  // ERC721MintableMinterAddedIterator is returned from FilterMinterAdded and is used to iterate over the raw logs and unpacked data for MinterAdded events raised by the ERC721Mintable contract.
  3317  type ERC721MintableMinterAddedIterator struct {
  3318  	Event *ERC721MintableMinterAdded // Event containing the contract specifics and raw log
  3319  
  3320  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3321  	event    string              // Event name to use for unpacking event data
  3322  
  3323  	logs chan types.Log      // Log channel receiving the found contract events
  3324  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  3325  	done bool                // Whether the subscription completed delivering logs
  3326  	fail error               // Occurred error to stop iteration
  3327  }
  3328  
  3329  // Next advances the iterator to the subsequent event, returning whether there
  3330  // are any more events found. In case of a retrieval or parsing error, false is
  3331  // returned and Error() can be queried for the exact failure.
  3332  func (it *ERC721MintableMinterAddedIterator) Next() bool {
  3333  	// If the iterator failed, stop iterating
  3334  	if it.fail != nil {
  3335  		return false
  3336  	}
  3337  	// If the iterator completed, deliver directly whatever's available
  3338  	if it.done {
  3339  		select {
  3340  		case log := <-it.logs:
  3341  			it.Event = new(ERC721MintableMinterAdded)
  3342  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3343  				it.fail = err
  3344  				return false
  3345  			}
  3346  			it.Event.Raw = log
  3347  			return true
  3348  
  3349  		default:
  3350  			return false
  3351  		}
  3352  	}
  3353  	// Iterator still in progress, wait for either a data or an error event
  3354  	select {
  3355  	case log := <-it.logs:
  3356  		it.Event = new(ERC721MintableMinterAdded)
  3357  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3358  			it.fail = err
  3359  			return false
  3360  		}
  3361  		it.Event.Raw = log
  3362  		return true
  3363  
  3364  	case err := <-it.sub.Err():
  3365  		it.done = true
  3366  		it.fail = err
  3367  		return it.Next()
  3368  	}
  3369  }
  3370  
  3371  // Error returns any retrieval or parsing error occurred during filtering.
  3372  func (it *ERC721MintableMinterAddedIterator) Error() error {
  3373  	return it.fail
  3374  }
  3375  
  3376  // Close terminates the iteration process, releasing any pending underlying
  3377  // resources.
  3378  func (it *ERC721MintableMinterAddedIterator) Close() error {
  3379  	it.sub.Unsubscribe()
  3380  	return nil
  3381  }
  3382  
  3383  // ERC721MintableMinterAdded represents a MinterAdded event raised by the ERC721Mintable contract.
  3384  type ERC721MintableMinterAdded struct {
  3385  	Account common.Address
  3386  	Raw     types.Log // Blockchain specific contextual infos
  3387  }
  3388  
  3389  // FilterMinterAdded is a free log retrieval operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
  3390  //
  3391  // Solidity: event MinterAdded(address indexed account)
  3392  func (_ERC721Mintable *ERC721MintableFilterer) FilterMinterAdded(opts *bind.FilterOpts, account []common.Address) (*ERC721MintableMinterAddedIterator, error) {
  3393  
  3394  	var accountRule []interface{}
  3395  	for _, accountItem := range account {
  3396  		accountRule = append(accountRule, accountItem)
  3397  	}
  3398  
  3399  	logs, sub, err := _ERC721Mintable.contract.FilterLogs(opts, "MinterAdded", accountRule)
  3400  	if err != nil {
  3401  		return nil, err
  3402  	}
  3403  	return &ERC721MintableMinterAddedIterator{contract: _ERC721Mintable.contract, event: "MinterAdded", logs: logs, sub: sub}, nil
  3404  }
  3405  
  3406  // WatchMinterAdded is a free log subscription operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
  3407  //
  3408  // Solidity: event MinterAdded(address indexed account)
  3409  func (_ERC721Mintable *ERC721MintableFilterer) WatchMinterAdded(opts *bind.WatchOpts, sink chan<- *ERC721MintableMinterAdded, account []common.Address) (event.Subscription, error) {
  3410  
  3411  	var accountRule []interface{}
  3412  	for _, accountItem := range account {
  3413  		accountRule = append(accountRule, accountItem)
  3414  	}
  3415  
  3416  	logs, sub, err := _ERC721Mintable.contract.WatchLogs(opts, "MinterAdded", accountRule)
  3417  	if err != nil {
  3418  		return nil, err
  3419  	}
  3420  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3421  		defer sub.Unsubscribe()
  3422  		for {
  3423  			select {
  3424  			case log := <-logs:
  3425  				// New log arrived, parse the event and forward to the user
  3426  				event := new(ERC721MintableMinterAdded)
  3427  				if err := _ERC721Mintable.contract.UnpackLog(event, "MinterAdded", log); err != nil {
  3428  					return err
  3429  				}
  3430  				event.Raw = log
  3431  
  3432  				select {
  3433  				case sink <- event:
  3434  				case err := <-sub.Err():
  3435  					return err
  3436  				case <-quit:
  3437  					return nil
  3438  				}
  3439  			case err := <-sub.Err():
  3440  				return err
  3441  			case <-quit:
  3442  				return nil
  3443  			}
  3444  		}
  3445  	}), nil
  3446  }
  3447  
  3448  // ParseMinterAdded is a log parse operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
  3449  //
  3450  // Solidity: event MinterAdded(address indexed account)
  3451  func (_ERC721Mintable *ERC721MintableFilterer) ParseMinterAdded(log types.Log) (*ERC721MintableMinterAdded, error) {
  3452  	event := new(ERC721MintableMinterAdded)
  3453  	if err := _ERC721Mintable.contract.UnpackLog(event, "MinterAdded", log); err != nil {
  3454  		return nil, err
  3455  	}
  3456  	return event, nil
  3457  }
  3458  
  3459  // ERC721MintableMinterRemovedIterator is returned from FilterMinterRemoved and is used to iterate over the raw logs and unpacked data for MinterRemoved events raised by the ERC721Mintable contract.
  3460  type ERC721MintableMinterRemovedIterator struct {
  3461  	Event *ERC721MintableMinterRemoved // Event containing the contract specifics and raw log
  3462  
  3463  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3464  	event    string              // Event name to use for unpacking event data
  3465  
  3466  	logs chan types.Log      // Log channel receiving the found contract events
  3467  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  3468  	done bool                // Whether the subscription completed delivering logs
  3469  	fail error               // Occurred error to stop iteration
  3470  }
  3471  
  3472  // Next advances the iterator to the subsequent event, returning whether there
  3473  // are any more events found. In case of a retrieval or parsing error, false is
  3474  // returned and Error() can be queried for the exact failure.
  3475  func (it *ERC721MintableMinterRemovedIterator) Next() bool {
  3476  	// If the iterator failed, stop iterating
  3477  	if it.fail != nil {
  3478  		return false
  3479  	}
  3480  	// If the iterator completed, deliver directly whatever's available
  3481  	if it.done {
  3482  		select {
  3483  		case log := <-it.logs:
  3484  			it.Event = new(ERC721MintableMinterRemoved)
  3485  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3486  				it.fail = err
  3487  				return false
  3488  			}
  3489  			it.Event.Raw = log
  3490  			return true
  3491  
  3492  		default:
  3493  			return false
  3494  		}
  3495  	}
  3496  	// Iterator still in progress, wait for either a data or an error event
  3497  	select {
  3498  	case log := <-it.logs:
  3499  		it.Event = new(ERC721MintableMinterRemoved)
  3500  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3501  			it.fail = err
  3502  			return false
  3503  		}
  3504  		it.Event.Raw = log
  3505  		return true
  3506  
  3507  	case err := <-it.sub.Err():
  3508  		it.done = true
  3509  		it.fail = err
  3510  		return it.Next()
  3511  	}
  3512  }
  3513  
  3514  // Error returns any retrieval or parsing error occurred during filtering.
  3515  func (it *ERC721MintableMinterRemovedIterator) Error() error {
  3516  	return it.fail
  3517  }
  3518  
  3519  // Close terminates the iteration process, releasing any pending underlying
  3520  // resources.
  3521  func (it *ERC721MintableMinterRemovedIterator) Close() error {
  3522  	it.sub.Unsubscribe()
  3523  	return nil
  3524  }
  3525  
  3526  // ERC721MintableMinterRemoved represents a MinterRemoved event raised by the ERC721Mintable contract.
  3527  type ERC721MintableMinterRemoved struct {
  3528  	Account common.Address
  3529  	Raw     types.Log // Blockchain specific contextual infos
  3530  }
  3531  
  3532  // FilterMinterRemoved is a free log retrieval operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
  3533  //
  3534  // Solidity: event MinterRemoved(address indexed account)
  3535  func (_ERC721Mintable *ERC721MintableFilterer) FilterMinterRemoved(opts *bind.FilterOpts, account []common.Address) (*ERC721MintableMinterRemovedIterator, error) {
  3536  
  3537  	var accountRule []interface{}
  3538  	for _, accountItem := range account {
  3539  		accountRule = append(accountRule, accountItem)
  3540  	}
  3541  
  3542  	logs, sub, err := _ERC721Mintable.contract.FilterLogs(opts, "MinterRemoved", accountRule)
  3543  	if err != nil {
  3544  		return nil, err
  3545  	}
  3546  	return &ERC721MintableMinterRemovedIterator{contract: _ERC721Mintable.contract, event: "MinterRemoved", logs: logs, sub: sub}, nil
  3547  }
  3548  
  3549  // WatchMinterRemoved is a free log subscription operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
  3550  //
  3551  // Solidity: event MinterRemoved(address indexed account)
  3552  func (_ERC721Mintable *ERC721MintableFilterer) WatchMinterRemoved(opts *bind.WatchOpts, sink chan<- *ERC721MintableMinterRemoved, account []common.Address) (event.Subscription, error) {
  3553  
  3554  	var accountRule []interface{}
  3555  	for _, accountItem := range account {
  3556  		accountRule = append(accountRule, accountItem)
  3557  	}
  3558  
  3559  	logs, sub, err := _ERC721Mintable.contract.WatchLogs(opts, "MinterRemoved", accountRule)
  3560  	if err != nil {
  3561  		return nil, err
  3562  	}
  3563  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3564  		defer sub.Unsubscribe()
  3565  		for {
  3566  			select {
  3567  			case log := <-logs:
  3568  				// New log arrived, parse the event and forward to the user
  3569  				event := new(ERC721MintableMinterRemoved)
  3570  				if err := _ERC721Mintable.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
  3571  					return err
  3572  				}
  3573  				event.Raw = log
  3574  
  3575  				select {
  3576  				case sink <- event:
  3577  				case err := <-sub.Err():
  3578  					return err
  3579  				case <-quit:
  3580  					return nil
  3581  				}
  3582  			case err := <-sub.Err():
  3583  				return err
  3584  			case <-quit:
  3585  				return nil
  3586  			}
  3587  		}
  3588  	}), nil
  3589  }
  3590  
  3591  // ParseMinterRemoved is a log parse operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
  3592  //
  3593  // Solidity: event MinterRemoved(address indexed account)
  3594  func (_ERC721Mintable *ERC721MintableFilterer) ParseMinterRemoved(log types.Log) (*ERC721MintableMinterRemoved, error) {
  3595  	event := new(ERC721MintableMinterRemoved)
  3596  	if err := _ERC721Mintable.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
  3597  		return nil, err
  3598  	}
  3599  	return event, nil
  3600  }
  3601  
  3602  // ERC721MintableTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ERC721Mintable contract.
  3603  type ERC721MintableTransferIterator struct {
  3604  	Event *ERC721MintableTransfer // Event containing the contract specifics and raw log
  3605  
  3606  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3607  	event    string              // Event name to use for unpacking event data
  3608  
  3609  	logs chan types.Log      // Log channel receiving the found contract events
  3610  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  3611  	done bool                // Whether the subscription completed delivering logs
  3612  	fail error               // Occurred error to stop iteration
  3613  }
  3614  
  3615  // Next advances the iterator to the subsequent event, returning whether there
  3616  // are any more events found. In case of a retrieval or parsing error, false is
  3617  // returned and Error() can be queried for the exact failure.
  3618  func (it *ERC721MintableTransferIterator) Next() bool {
  3619  	// If the iterator failed, stop iterating
  3620  	if it.fail != nil {
  3621  		return false
  3622  	}
  3623  	// If the iterator completed, deliver directly whatever's available
  3624  	if it.done {
  3625  		select {
  3626  		case log := <-it.logs:
  3627  			it.Event = new(ERC721MintableTransfer)
  3628  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3629  				it.fail = err
  3630  				return false
  3631  			}
  3632  			it.Event.Raw = log
  3633  			return true
  3634  
  3635  		default:
  3636  			return false
  3637  		}
  3638  	}
  3639  	// Iterator still in progress, wait for either a data or an error event
  3640  	select {
  3641  	case log := <-it.logs:
  3642  		it.Event = new(ERC721MintableTransfer)
  3643  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3644  			it.fail = err
  3645  			return false
  3646  		}
  3647  		it.Event.Raw = log
  3648  		return true
  3649  
  3650  	case err := <-it.sub.Err():
  3651  		it.done = true
  3652  		it.fail = err
  3653  		return it.Next()
  3654  	}
  3655  }
  3656  
  3657  // Error returns any retrieval or parsing error occurred during filtering.
  3658  func (it *ERC721MintableTransferIterator) Error() error {
  3659  	return it.fail
  3660  }
  3661  
  3662  // Close terminates the iteration process, releasing any pending underlying
  3663  // resources.
  3664  func (it *ERC721MintableTransferIterator) Close() error {
  3665  	it.sub.Unsubscribe()
  3666  	return nil
  3667  }
  3668  
  3669  // ERC721MintableTransfer represents a Transfer event raised by the ERC721Mintable contract.
  3670  type ERC721MintableTransfer struct {
  3671  	From    common.Address
  3672  	To      common.Address
  3673  	TokenId *big.Int
  3674  	Raw     types.Log // Blockchain specific contextual infos
  3675  }
  3676  
  3677  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  3678  //
  3679  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  3680  func (_ERC721Mintable *ERC721MintableFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*ERC721MintableTransferIterator, error) {
  3681  
  3682  	var fromRule []interface{}
  3683  	for _, fromItem := range from {
  3684  		fromRule = append(fromRule, fromItem)
  3685  	}
  3686  	var toRule []interface{}
  3687  	for _, toItem := range to {
  3688  		toRule = append(toRule, toItem)
  3689  	}
  3690  	var tokenIdRule []interface{}
  3691  	for _, tokenIdItem := range tokenId {
  3692  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  3693  	}
  3694  
  3695  	logs, sub, err := _ERC721Mintable.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
  3696  	if err != nil {
  3697  		return nil, err
  3698  	}
  3699  	return &ERC721MintableTransferIterator{contract: _ERC721Mintable.contract, event: "Transfer", logs: logs, sub: sub}, nil
  3700  }
  3701  
  3702  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  3703  //
  3704  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  3705  func (_ERC721Mintable *ERC721MintableFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC721MintableTransfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) {
  3706  
  3707  	var fromRule []interface{}
  3708  	for _, fromItem := range from {
  3709  		fromRule = append(fromRule, fromItem)
  3710  	}
  3711  	var toRule []interface{}
  3712  	for _, toItem := range to {
  3713  		toRule = append(toRule, toItem)
  3714  	}
  3715  	var tokenIdRule []interface{}
  3716  	for _, tokenIdItem := range tokenId {
  3717  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  3718  	}
  3719  
  3720  	logs, sub, err := _ERC721Mintable.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
  3721  	if err != nil {
  3722  		return nil, err
  3723  	}
  3724  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3725  		defer sub.Unsubscribe()
  3726  		for {
  3727  			select {
  3728  			case log := <-logs:
  3729  				// New log arrived, parse the event and forward to the user
  3730  				event := new(ERC721MintableTransfer)
  3731  				if err := _ERC721Mintable.contract.UnpackLog(event, "Transfer", log); err != nil {
  3732  					return err
  3733  				}
  3734  				event.Raw = log
  3735  
  3736  				select {
  3737  				case sink <- event:
  3738  				case err := <-sub.Err():
  3739  					return err
  3740  				case <-quit:
  3741  					return nil
  3742  				}
  3743  			case err := <-sub.Err():
  3744  				return err
  3745  			case <-quit:
  3746  				return nil
  3747  			}
  3748  		}
  3749  	}), nil
  3750  }
  3751  
  3752  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  3753  //
  3754  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  3755  func (_ERC721Mintable *ERC721MintableFilterer) ParseTransfer(log types.Log) (*ERC721MintableTransfer, error) {
  3756  	event := new(ERC721MintableTransfer)
  3757  	if err := _ERC721Mintable.contract.UnpackLog(event, "Transfer", log); err != nil {
  3758  		return nil, err
  3759  	}
  3760  	return event, nil
  3761  }
  3762  
  3763  // ERC721ServiceChainMetaData contains all meta data concerning the ERC721ServiceChain contract.
  3764  var ERC721ServiceChainMetaData = &bind.MetaData{
  3765  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_uid\",\"type\":\"uint256\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"requestValueTransfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_bridge\",\"type\":\"address\"}],\"name\":\"setBridge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_bridge\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}]",
  3766  	Sigs: map[string]string{
  3767  		"095ea7b3": "approve(address,uint256)",
  3768  		"70a08231": "balanceOf(address)",
  3769  		"e78cea92": "bridge()",
  3770  		"081812fc": "getApproved(uint256)",
  3771  		"e985e9c5": "isApprovedForAll(address,address)",
  3772  		"8f32d59b": "isOwner()",
  3773  		"8da5cb5b": "owner()",
  3774  		"6352211e": "ownerOf(uint256)",
  3775  		"715018a6": "renounceOwnership()",
  3776  		"3f4c4e3d": "requestValueTransfer(uint256,address,bytes)",
  3777  		"42842e0e": "safeTransferFrom(address,address,uint256)",
  3778  		"b88d4fde": "safeTransferFrom(address,address,uint256,bytes)",
  3779  		"a22cb465": "setApprovalForAll(address,bool)",
  3780  		"8dd14802": "setBridge(address)",
  3781  		"01ffc9a7": "supportsInterface(bytes4)",
  3782  		"23b872dd": "transferFrom(address,address,uint256)",
  3783  		"f2fde38b": "transferOwnership(address)",
  3784  	},
  3785  }
  3786  
  3787  // ERC721ServiceChainABI is the input ABI used to generate the binding from.
  3788  // Deprecated: Use ERC721ServiceChainMetaData.ABI instead.
  3789  var ERC721ServiceChainABI = ERC721ServiceChainMetaData.ABI
  3790  
  3791  // ERC721ServiceChainBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  3792  const ERC721ServiceChainBinRuntime = ``
  3793  
  3794  // ERC721ServiceChainFuncSigs maps the 4-byte function signature to its string representation.
  3795  // Deprecated: Use ERC721ServiceChainMetaData.Sigs instead.
  3796  var ERC721ServiceChainFuncSigs = ERC721ServiceChainMetaData.Sigs
  3797  
  3798  // ERC721ServiceChain is an auto generated Go binding around a Klaytn contract.
  3799  type ERC721ServiceChain struct {
  3800  	ERC721ServiceChainCaller     // Read-only binding to the contract
  3801  	ERC721ServiceChainTransactor // Write-only binding to the contract
  3802  	ERC721ServiceChainFilterer   // Log filterer for contract events
  3803  }
  3804  
  3805  // ERC721ServiceChainCaller is an auto generated read-only Go binding around a Klaytn contract.
  3806  type ERC721ServiceChainCaller struct {
  3807  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3808  }
  3809  
  3810  // ERC721ServiceChainTransactor is an auto generated write-only Go binding around a Klaytn contract.
  3811  type ERC721ServiceChainTransactor struct {
  3812  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3813  }
  3814  
  3815  // ERC721ServiceChainFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  3816  type ERC721ServiceChainFilterer struct {
  3817  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3818  }
  3819  
  3820  // ERC721ServiceChainSession is an auto generated Go binding around a Klaytn contract,
  3821  // with pre-set call and transact options.
  3822  type ERC721ServiceChainSession struct {
  3823  	Contract     *ERC721ServiceChain // Generic contract binding to set the session for
  3824  	CallOpts     bind.CallOpts       // Call options to use throughout this session
  3825  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
  3826  }
  3827  
  3828  // ERC721ServiceChainCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  3829  // with pre-set call options.
  3830  type ERC721ServiceChainCallerSession struct {
  3831  	Contract *ERC721ServiceChainCaller // Generic contract caller binding to set the session for
  3832  	CallOpts bind.CallOpts             // Call options to use throughout this session
  3833  }
  3834  
  3835  // ERC721ServiceChainTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  3836  // with pre-set transact options.
  3837  type ERC721ServiceChainTransactorSession struct {
  3838  	Contract     *ERC721ServiceChainTransactor // Generic contract transactor binding to set the session for
  3839  	TransactOpts bind.TransactOpts             // Transaction auth options to use throughout this session
  3840  }
  3841  
  3842  // ERC721ServiceChainRaw is an auto generated low-level Go binding around a Klaytn contract.
  3843  type ERC721ServiceChainRaw struct {
  3844  	Contract *ERC721ServiceChain // Generic contract binding to access the raw methods on
  3845  }
  3846  
  3847  // ERC721ServiceChainCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  3848  type ERC721ServiceChainCallerRaw struct {
  3849  	Contract *ERC721ServiceChainCaller // Generic read-only contract binding to access the raw methods on
  3850  }
  3851  
  3852  // ERC721ServiceChainTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  3853  type ERC721ServiceChainTransactorRaw struct {
  3854  	Contract *ERC721ServiceChainTransactor // Generic write-only contract binding to access the raw methods on
  3855  }
  3856  
  3857  // NewERC721ServiceChain creates a new instance of ERC721ServiceChain, bound to a specific deployed contract.
  3858  func NewERC721ServiceChain(address common.Address, backend bind.ContractBackend) (*ERC721ServiceChain, error) {
  3859  	contract, err := bindERC721ServiceChain(address, backend, backend, backend)
  3860  	if err != nil {
  3861  		return nil, err
  3862  	}
  3863  	return &ERC721ServiceChain{ERC721ServiceChainCaller: ERC721ServiceChainCaller{contract: contract}, ERC721ServiceChainTransactor: ERC721ServiceChainTransactor{contract: contract}, ERC721ServiceChainFilterer: ERC721ServiceChainFilterer{contract: contract}}, nil
  3864  }
  3865  
  3866  // NewERC721ServiceChainCaller creates a new read-only instance of ERC721ServiceChain, bound to a specific deployed contract.
  3867  func NewERC721ServiceChainCaller(address common.Address, caller bind.ContractCaller) (*ERC721ServiceChainCaller, error) {
  3868  	contract, err := bindERC721ServiceChain(address, caller, nil, nil)
  3869  	if err != nil {
  3870  		return nil, err
  3871  	}
  3872  	return &ERC721ServiceChainCaller{contract: contract}, nil
  3873  }
  3874  
  3875  // NewERC721ServiceChainTransactor creates a new write-only instance of ERC721ServiceChain, bound to a specific deployed contract.
  3876  func NewERC721ServiceChainTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC721ServiceChainTransactor, error) {
  3877  	contract, err := bindERC721ServiceChain(address, nil, transactor, nil)
  3878  	if err != nil {
  3879  		return nil, err
  3880  	}
  3881  	return &ERC721ServiceChainTransactor{contract: contract}, nil
  3882  }
  3883  
  3884  // NewERC721ServiceChainFilterer creates a new log filterer instance of ERC721ServiceChain, bound to a specific deployed contract.
  3885  func NewERC721ServiceChainFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC721ServiceChainFilterer, error) {
  3886  	contract, err := bindERC721ServiceChain(address, nil, nil, filterer)
  3887  	if err != nil {
  3888  		return nil, err
  3889  	}
  3890  	return &ERC721ServiceChainFilterer{contract: contract}, nil
  3891  }
  3892  
  3893  // bindERC721ServiceChain binds a generic wrapper to an already deployed contract.
  3894  func bindERC721ServiceChain(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  3895  	parsed, err := ERC721ServiceChainMetaData.GetAbi()
  3896  	if err != nil {
  3897  		return nil, err
  3898  	}
  3899  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  3900  }
  3901  
  3902  // Call invokes the (constant) contract method with params as input values and
  3903  // sets the output to result. The result type might be a single field for simple
  3904  // returns, a slice of interfaces for anonymous returns and a struct for named
  3905  // returns.
  3906  func (_ERC721ServiceChain *ERC721ServiceChainRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  3907  	return _ERC721ServiceChain.Contract.ERC721ServiceChainCaller.contract.Call(opts, result, method, params...)
  3908  }
  3909  
  3910  // Transfer initiates a plain transaction to move funds to the contract, calling
  3911  // its default method if one is available.
  3912  func (_ERC721ServiceChain *ERC721ServiceChainRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3913  	return _ERC721ServiceChain.Contract.ERC721ServiceChainTransactor.contract.Transfer(opts)
  3914  }
  3915  
  3916  // Transact invokes the (paid) contract method with params as input values.
  3917  func (_ERC721ServiceChain *ERC721ServiceChainRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  3918  	return _ERC721ServiceChain.Contract.ERC721ServiceChainTransactor.contract.Transact(opts, method, params...)
  3919  }
  3920  
  3921  // Call invokes the (constant) contract method with params as input values and
  3922  // sets the output to result. The result type might be a single field for simple
  3923  // returns, a slice of interfaces for anonymous returns and a struct for named
  3924  // returns.
  3925  func (_ERC721ServiceChain *ERC721ServiceChainCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  3926  	return _ERC721ServiceChain.Contract.contract.Call(opts, result, method, params...)
  3927  }
  3928  
  3929  // Transfer initiates a plain transaction to move funds to the contract, calling
  3930  // its default method if one is available.
  3931  func (_ERC721ServiceChain *ERC721ServiceChainTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3932  	return _ERC721ServiceChain.Contract.contract.Transfer(opts)
  3933  }
  3934  
  3935  // Transact invokes the (paid) contract method with params as input values.
  3936  func (_ERC721ServiceChain *ERC721ServiceChainTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  3937  	return _ERC721ServiceChain.Contract.contract.Transact(opts, method, params...)
  3938  }
  3939  
  3940  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  3941  //
  3942  // Solidity: function balanceOf(address owner) view returns(uint256)
  3943  func (_ERC721ServiceChain *ERC721ServiceChainCaller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) {
  3944  	var out []interface{}
  3945  	err := _ERC721ServiceChain.contract.Call(opts, &out, "balanceOf", owner)
  3946  
  3947  	if err != nil {
  3948  		return *new(*big.Int), err
  3949  	}
  3950  
  3951  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  3952  
  3953  	return out0, err
  3954  
  3955  }
  3956  
  3957  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  3958  //
  3959  // Solidity: function balanceOf(address owner) view returns(uint256)
  3960  func (_ERC721ServiceChain *ERC721ServiceChainSession) BalanceOf(owner common.Address) (*big.Int, error) {
  3961  	return _ERC721ServiceChain.Contract.BalanceOf(&_ERC721ServiceChain.CallOpts, owner)
  3962  }
  3963  
  3964  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  3965  //
  3966  // Solidity: function balanceOf(address owner) view returns(uint256)
  3967  func (_ERC721ServiceChain *ERC721ServiceChainCallerSession) BalanceOf(owner common.Address) (*big.Int, error) {
  3968  	return _ERC721ServiceChain.Contract.BalanceOf(&_ERC721ServiceChain.CallOpts, owner)
  3969  }
  3970  
  3971  // Bridge is a free data retrieval call binding the contract method 0xe78cea92.
  3972  //
  3973  // Solidity: function bridge() view returns(address)
  3974  func (_ERC721ServiceChain *ERC721ServiceChainCaller) Bridge(opts *bind.CallOpts) (common.Address, error) {
  3975  	var out []interface{}
  3976  	err := _ERC721ServiceChain.contract.Call(opts, &out, "bridge")
  3977  
  3978  	if err != nil {
  3979  		return *new(common.Address), err
  3980  	}
  3981  
  3982  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  3983  
  3984  	return out0, err
  3985  
  3986  }
  3987  
  3988  // Bridge is a free data retrieval call binding the contract method 0xe78cea92.
  3989  //
  3990  // Solidity: function bridge() view returns(address)
  3991  func (_ERC721ServiceChain *ERC721ServiceChainSession) Bridge() (common.Address, error) {
  3992  	return _ERC721ServiceChain.Contract.Bridge(&_ERC721ServiceChain.CallOpts)
  3993  }
  3994  
  3995  // Bridge is a free data retrieval call binding the contract method 0xe78cea92.
  3996  //
  3997  // Solidity: function bridge() view returns(address)
  3998  func (_ERC721ServiceChain *ERC721ServiceChainCallerSession) Bridge() (common.Address, error) {
  3999  	return _ERC721ServiceChain.Contract.Bridge(&_ERC721ServiceChain.CallOpts)
  4000  }
  4001  
  4002  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
  4003  //
  4004  // Solidity: function getApproved(uint256 tokenId) view returns(address)
  4005  func (_ERC721ServiceChain *ERC721ServiceChainCaller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
  4006  	var out []interface{}
  4007  	err := _ERC721ServiceChain.contract.Call(opts, &out, "getApproved", tokenId)
  4008  
  4009  	if err != nil {
  4010  		return *new(common.Address), err
  4011  	}
  4012  
  4013  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  4014  
  4015  	return out0, err
  4016  
  4017  }
  4018  
  4019  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
  4020  //
  4021  // Solidity: function getApproved(uint256 tokenId) view returns(address)
  4022  func (_ERC721ServiceChain *ERC721ServiceChainSession) GetApproved(tokenId *big.Int) (common.Address, error) {
  4023  	return _ERC721ServiceChain.Contract.GetApproved(&_ERC721ServiceChain.CallOpts, tokenId)
  4024  }
  4025  
  4026  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
  4027  //
  4028  // Solidity: function getApproved(uint256 tokenId) view returns(address)
  4029  func (_ERC721ServiceChain *ERC721ServiceChainCallerSession) GetApproved(tokenId *big.Int) (common.Address, error) {
  4030  	return _ERC721ServiceChain.Contract.GetApproved(&_ERC721ServiceChain.CallOpts, tokenId)
  4031  }
  4032  
  4033  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
  4034  //
  4035  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
  4036  func (_ERC721ServiceChain *ERC721ServiceChainCaller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) {
  4037  	var out []interface{}
  4038  	err := _ERC721ServiceChain.contract.Call(opts, &out, "isApprovedForAll", owner, operator)
  4039  
  4040  	if err != nil {
  4041  		return *new(bool), err
  4042  	}
  4043  
  4044  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  4045  
  4046  	return out0, err
  4047  
  4048  }
  4049  
  4050  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
  4051  //
  4052  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
  4053  func (_ERC721ServiceChain *ERC721ServiceChainSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
  4054  	return _ERC721ServiceChain.Contract.IsApprovedForAll(&_ERC721ServiceChain.CallOpts, owner, operator)
  4055  }
  4056  
  4057  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
  4058  //
  4059  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
  4060  func (_ERC721ServiceChain *ERC721ServiceChainCallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
  4061  	return _ERC721ServiceChain.Contract.IsApprovedForAll(&_ERC721ServiceChain.CallOpts, owner, operator)
  4062  }
  4063  
  4064  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  4065  //
  4066  // Solidity: function isOwner() view returns(bool)
  4067  func (_ERC721ServiceChain *ERC721ServiceChainCaller) IsOwner(opts *bind.CallOpts) (bool, error) {
  4068  	var out []interface{}
  4069  	err := _ERC721ServiceChain.contract.Call(opts, &out, "isOwner")
  4070  
  4071  	if err != nil {
  4072  		return *new(bool), err
  4073  	}
  4074  
  4075  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  4076  
  4077  	return out0, err
  4078  
  4079  }
  4080  
  4081  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  4082  //
  4083  // Solidity: function isOwner() view returns(bool)
  4084  func (_ERC721ServiceChain *ERC721ServiceChainSession) IsOwner() (bool, error) {
  4085  	return _ERC721ServiceChain.Contract.IsOwner(&_ERC721ServiceChain.CallOpts)
  4086  }
  4087  
  4088  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  4089  //
  4090  // Solidity: function isOwner() view returns(bool)
  4091  func (_ERC721ServiceChain *ERC721ServiceChainCallerSession) IsOwner() (bool, error) {
  4092  	return _ERC721ServiceChain.Contract.IsOwner(&_ERC721ServiceChain.CallOpts)
  4093  }
  4094  
  4095  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  4096  //
  4097  // Solidity: function owner() view returns(address)
  4098  func (_ERC721ServiceChain *ERC721ServiceChainCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
  4099  	var out []interface{}
  4100  	err := _ERC721ServiceChain.contract.Call(opts, &out, "owner")
  4101  
  4102  	if err != nil {
  4103  		return *new(common.Address), err
  4104  	}
  4105  
  4106  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  4107  
  4108  	return out0, err
  4109  
  4110  }
  4111  
  4112  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  4113  //
  4114  // Solidity: function owner() view returns(address)
  4115  func (_ERC721ServiceChain *ERC721ServiceChainSession) Owner() (common.Address, error) {
  4116  	return _ERC721ServiceChain.Contract.Owner(&_ERC721ServiceChain.CallOpts)
  4117  }
  4118  
  4119  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  4120  //
  4121  // Solidity: function owner() view returns(address)
  4122  func (_ERC721ServiceChain *ERC721ServiceChainCallerSession) Owner() (common.Address, error) {
  4123  	return _ERC721ServiceChain.Contract.Owner(&_ERC721ServiceChain.CallOpts)
  4124  }
  4125  
  4126  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
  4127  //
  4128  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
  4129  func (_ERC721ServiceChain *ERC721ServiceChainCaller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
  4130  	var out []interface{}
  4131  	err := _ERC721ServiceChain.contract.Call(opts, &out, "ownerOf", tokenId)
  4132  
  4133  	if err != nil {
  4134  		return *new(common.Address), err
  4135  	}
  4136  
  4137  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  4138  
  4139  	return out0, err
  4140  
  4141  }
  4142  
  4143  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
  4144  //
  4145  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
  4146  func (_ERC721ServiceChain *ERC721ServiceChainSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
  4147  	return _ERC721ServiceChain.Contract.OwnerOf(&_ERC721ServiceChain.CallOpts, tokenId)
  4148  }
  4149  
  4150  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
  4151  //
  4152  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
  4153  func (_ERC721ServiceChain *ERC721ServiceChainCallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
  4154  	return _ERC721ServiceChain.Contract.OwnerOf(&_ERC721ServiceChain.CallOpts, tokenId)
  4155  }
  4156  
  4157  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  4158  //
  4159  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
  4160  func (_ERC721ServiceChain *ERC721ServiceChainCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
  4161  	var out []interface{}
  4162  	err := _ERC721ServiceChain.contract.Call(opts, &out, "supportsInterface", interfaceId)
  4163  
  4164  	if err != nil {
  4165  		return *new(bool), err
  4166  	}
  4167  
  4168  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  4169  
  4170  	return out0, err
  4171  
  4172  }
  4173  
  4174  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  4175  //
  4176  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
  4177  func (_ERC721ServiceChain *ERC721ServiceChainSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
  4178  	return _ERC721ServiceChain.Contract.SupportsInterface(&_ERC721ServiceChain.CallOpts, interfaceId)
  4179  }
  4180  
  4181  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  4182  //
  4183  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
  4184  func (_ERC721ServiceChain *ERC721ServiceChainCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
  4185  	return _ERC721ServiceChain.Contract.SupportsInterface(&_ERC721ServiceChain.CallOpts, interfaceId)
  4186  }
  4187  
  4188  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  4189  //
  4190  // Solidity: function approve(address to, uint256 tokenId) returns()
  4191  func (_ERC721ServiceChain *ERC721ServiceChainTransactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  4192  	return _ERC721ServiceChain.contract.Transact(opts, "approve", to, tokenId)
  4193  }
  4194  
  4195  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  4196  //
  4197  // Solidity: function approve(address to, uint256 tokenId) returns()
  4198  func (_ERC721ServiceChain *ERC721ServiceChainSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  4199  	return _ERC721ServiceChain.Contract.Approve(&_ERC721ServiceChain.TransactOpts, to, tokenId)
  4200  }
  4201  
  4202  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  4203  //
  4204  // Solidity: function approve(address to, uint256 tokenId) returns()
  4205  func (_ERC721ServiceChain *ERC721ServiceChainTransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  4206  	return _ERC721ServiceChain.Contract.Approve(&_ERC721ServiceChain.TransactOpts, to, tokenId)
  4207  }
  4208  
  4209  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  4210  //
  4211  // Solidity: function renounceOwnership() returns()
  4212  func (_ERC721ServiceChain *ERC721ServiceChainTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
  4213  	return _ERC721ServiceChain.contract.Transact(opts, "renounceOwnership")
  4214  }
  4215  
  4216  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  4217  //
  4218  // Solidity: function renounceOwnership() returns()
  4219  func (_ERC721ServiceChain *ERC721ServiceChainSession) RenounceOwnership() (*types.Transaction, error) {
  4220  	return _ERC721ServiceChain.Contract.RenounceOwnership(&_ERC721ServiceChain.TransactOpts)
  4221  }
  4222  
  4223  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  4224  //
  4225  // Solidity: function renounceOwnership() returns()
  4226  func (_ERC721ServiceChain *ERC721ServiceChainTransactorSession) RenounceOwnership() (*types.Transaction, error) {
  4227  	return _ERC721ServiceChain.Contract.RenounceOwnership(&_ERC721ServiceChain.TransactOpts)
  4228  }
  4229  
  4230  // RequestValueTransfer is a paid mutator transaction binding the contract method 0x3f4c4e3d.
  4231  //
  4232  // Solidity: function requestValueTransfer(uint256 _uid, address _to, bytes _extraData) returns()
  4233  func (_ERC721ServiceChain *ERC721ServiceChainTransactor) RequestValueTransfer(opts *bind.TransactOpts, _uid *big.Int, _to common.Address, _extraData []byte) (*types.Transaction, error) {
  4234  	return _ERC721ServiceChain.contract.Transact(opts, "requestValueTransfer", _uid, _to, _extraData)
  4235  }
  4236  
  4237  // RequestValueTransfer is a paid mutator transaction binding the contract method 0x3f4c4e3d.
  4238  //
  4239  // Solidity: function requestValueTransfer(uint256 _uid, address _to, bytes _extraData) returns()
  4240  func (_ERC721ServiceChain *ERC721ServiceChainSession) RequestValueTransfer(_uid *big.Int, _to common.Address, _extraData []byte) (*types.Transaction, error) {
  4241  	return _ERC721ServiceChain.Contract.RequestValueTransfer(&_ERC721ServiceChain.TransactOpts, _uid, _to, _extraData)
  4242  }
  4243  
  4244  // RequestValueTransfer is a paid mutator transaction binding the contract method 0x3f4c4e3d.
  4245  //
  4246  // Solidity: function requestValueTransfer(uint256 _uid, address _to, bytes _extraData) returns()
  4247  func (_ERC721ServiceChain *ERC721ServiceChainTransactorSession) RequestValueTransfer(_uid *big.Int, _to common.Address, _extraData []byte) (*types.Transaction, error) {
  4248  	return _ERC721ServiceChain.Contract.RequestValueTransfer(&_ERC721ServiceChain.TransactOpts, _uid, _to, _extraData)
  4249  }
  4250  
  4251  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
  4252  //
  4253  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
  4254  func (_ERC721ServiceChain *ERC721ServiceChainTransactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  4255  	return _ERC721ServiceChain.contract.Transact(opts, "safeTransferFrom", from, to, tokenId)
  4256  }
  4257  
  4258  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
  4259  //
  4260  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
  4261  func (_ERC721ServiceChain *ERC721ServiceChainSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  4262  	return _ERC721ServiceChain.Contract.SafeTransferFrom(&_ERC721ServiceChain.TransactOpts, from, to, tokenId)
  4263  }
  4264  
  4265  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
  4266  //
  4267  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
  4268  func (_ERC721ServiceChain *ERC721ServiceChainTransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  4269  	return _ERC721ServiceChain.Contract.SafeTransferFrom(&_ERC721ServiceChain.TransactOpts, from, to, tokenId)
  4270  }
  4271  
  4272  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
  4273  //
  4274  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
  4275  func (_ERC721ServiceChain *ERC721ServiceChainTransactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
  4276  	return _ERC721ServiceChain.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, _data)
  4277  }
  4278  
  4279  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
  4280  //
  4281  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
  4282  func (_ERC721ServiceChain *ERC721ServiceChainSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
  4283  	return _ERC721ServiceChain.Contract.SafeTransferFrom0(&_ERC721ServiceChain.TransactOpts, from, to, tokenId, _data)
  4284  }
  4285  
  4286  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
  4287  //
  4288  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
  4289  func (_ERC721ServiceChain *ERC721ServiceChainTransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
  4290  	return _ERC721ServiceChain.Contract.SafeTransferFrom0(&_ERC721ServiceChain.TransactOpts, from, to, tokenId, _data)
  4291  }
  4292  
  4293  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
  4294  //
  4295  // Solidity: function setApprovalForAll(address to, bool approved) returns()
  4296  func (_ERC721ServiceChain *ERC721ServiceChainTransactor) SetApprovalForAll(opts *bind.TransactOpts, to common.Address, approved bool) (*types.Transaction, error) {
  4297  	return _ERC721ServiceChain.contract.Transact(opts, "setApprovalForAll", to, approved)
  4298  }
  4299  
  4300  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
  4301  //
  4302  // Solidity: function setApprovalForAll(address to, bool approved) returns()
  4303  func (_ERC721ServiceChain *ERC721ServiceChainSession) SetApprovalForAll(to common.Address, approved bool) (*types.Transaction, error) {
  4304  	return _ERC721ServiceChain.Contract.SetApprovalForAll(&_ERC721ServiceChain.TransactOpts, to, approved)
  4305  }
  4306  
  4307  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
  4308  //
  4309  // Solidity: function setApprovalForAll(address to, bool approved) returns()
  4310  func (_ERC721ServiceChain *ERC721ServiceChainTransactorSession) SetApprovalForAll(to common.Address, approved bool) (*types.Transaction, error) {
  4311  	return _ERC721ServiceChain.Contract.SetApprovalForAll(&_ERC721ServiceChain.TransactOpts, to, approved)
  4312  }
  4313  
  4314  // SetBridge is a paid mutator transaction binding the contract method 0x8dd14802.
  4315  //
  4316  // Solidity: function setBridge(address _bridge) returns()
  4317  func (_ERC721ServiceChain *ERC721ServiceChainTransactor) SetBridge(opts *bind.TransactOpts, _bridge common.Address) (*types.Transaction, error) {
  4318  	return _ERC721ServiceChain.contract.Transact(opts, "setBridge", _bridge)
  4319  }
  4320  
  4321  // SetBridge is a paid mutator transaction binding the contract method 0x8dd14802.
  4322  //
  4323  // Solidity: function setBridge(address _bridge) returns()
  4324  func (_ERC721ServiceChain *ERC721ServiceChainSession) SetBridge(_bridge common.Address) (*types.Transaction, error) {
  4325  	return _ERC721ServiceChain.Contract.SetBridge(&_ERC721ServiceChain.TransactOpts, _bridge)
  4326  }
  4327  
  4328  // SetBridge is a paid mutator transaction binding the contract method 0x8dd14802.
  4329  //
  4330  // Solidity: function setBridge(address _bridge) returns()
  4331  func (_ERC721ServiceChain *ERC721ServiceChainTransactorSession) SetBridge(_bridge common.Address) (*types.Transaction, error) {
  4332  	return _ERC721ServiceChain.Contract.SetBridge(&_ERC721ServiceChain.TransactOpts, _bridge)
  4333  }
  4334  
  4335  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  4336  //
  4337  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
  4338  func (_ERC721ServiceChain *ERC721ServiceChainTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  4339  	return _ERC721ServiceChain.contract.Transact(opts, "transferFrom", from, to, tokenId)
  4340  }
  4341  
  4342  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  4343  //
  4344  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
  4345  func (_ERC721ServiceChain *ERC721ServiceChainSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  4346  	return _ERC721ServiceChain.Contract.TransferFrom(&_ERC721ServiceChain.TransactOpts, from, to, tokenId)
  4347  }
  4348  
  4349  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  4350  //
  4351  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
  4352  func (_ERC721ServiceChain *ERC721ServiceChainTransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  4353  	return _ERC721ServiceChain.Contract.TransferFrom(&_ERC721ServiceChain.TransactOpts, from, to, tokenId)
  4354  }
  4355  
  4356  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  4357  //
  4358  // Solidity: function transferOwnership(address newOwner) returns()
  4359  func (_ERC721ServiceChain *ERC721ServiceChainTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  4360  	return _ERC721ServiceChain.contract.Transact(opts, "transferOwnership", newOwner)
  4361  }
  4362  
  4363  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  4364  //
  4365  // Solidity: function transferOwnership(address newOwner) returns()
  4366  func (_ERC721ServiceChain *ERC721ServiceChainSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  4367  	return _ERC721ServiceChain.Contract.TransferOwnership(&_ERC721ServiceChain.TransactOpts, newOwner)
  4368  }
  4369  
  4370  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  4371  //
  4372  // Solidity: function transferOwnership(address newOwner) returns()
  4373  func (_ERC721ServiceChain *ERC721ServiceChainTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  4374  	return _ERC721ServiceChain.Contract.TransferOwnership(&_ERC721ServiceChain.TransactOpts, newOwner)
  4375  }
  4376  
  4377  // ERC721ServiceChainApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ERC721ServiceChain contract.
  4378  type ERC721ServiceChainApprovalIterator struct {
  4379  	Event *ERC721ServiceChainApproval // Event containing the contract specifics and raw log
  4380  
  4381  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4382  	event    string              // Event name to use for unpacking event data
  4383  
  4384  	logs chan types.Log      // Log channel receiving the found contract events
  4385  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  4386  	done bool                // Whether the subscription completed delivering logs
  4387  	fail error               // Occurred error to stop iteration
  4388  }
  4389  
  4390  // Next advances the iterator to the subsequent event, returning whether there
  4391  // are any more events found. In case of a retrieval or parsing error, false is
  4392  // returned and Error() can be queried for the exact failure.
  4393  func (it *ERC721ServiceChainApprovalIterator) Next() bool {
  4394  	// If the iterator failed, stop iterating
  4395  	if it.fail != nil {
  4396  		return false
  4397  	}
  4398  	// If the iterator completed, deliver directly whatever's available
  4399  	if it.done {
  4400  		select {
  4401  		case log := <-it.logs:
  4402  			it.Event = new(ERC721ServiceChainApproval)
  4403  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4404  				it.fail = err
  4405  				return false
  4406  			}
  4407  			it.Event.Raw = log
  4408  			return true
  4409  
  4410  		default:
  4411  			return false
  4412  		}
  4413  	}
  4414  	// Iterator still in progress, wait for either a data or an error event
  4415  	select {
  4416  	case log := <-it.logs:
  4417  		it.Event = new(ERC721ServiceChainApproval)
  4418  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4419  			it.fail = err
  4420  			return false
  4421  		}
  4422  		it.Event.Raw = log
  4423  		return true
  4424  
  4425  	case err := <-it.sub.Err():
  4426  		it.done = true
  4427  		it.fail = err
  4428  		return it.Next()
  4429  	}
  4430  }
  4431  
  4432  // Error returns any retrieval or parsing error occurred during filtering.
  4433  func (it *ERC721ServiceChainApprovalIterator) Error() error {
  4434  	return it.fail
  4435  }
  4436  
  4437  // Close terminates the iteration process, releasing any pending underlying
  4438  // resources.
  4439  func (it *ERC721ServiceChainApprovalIterator) Close() error {
  4440  	it.sub.Unsubscribe()
  4441  	return nil
  4442  }
  4443  
  4444  // ERC721ServiceChainApproval represents a Approval event raised by the ERC721ServiceChain contract.
  4445  type ERC721ServiceChainApproval struct {
  4446  	Owner    common.Address
  4447  	Approved common.Address
  4448  	TokenId  *big.Int
  4449  	Raw      types.Log // Blockchain specific contextual infos
  4450  }
  4451  
  4452  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  4453  //
  4454  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  4455  func (_ERC721ServiceChain *ERC721ServiceChainFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*ERC721ServiceChainApprovalIterator, error) {
  4456  
  4457  	var ownerRule []interface{}
  4458  	for _, ownerItem := range owner {
  4459  		ownerRule = append(ownerRule, ownerItem)
  4460  	}
  4461  	var approvedRule []interface{}
  4462  	for _, approvedItem := range approved {
  4463  		approvedRule = append(approvedRule, approvedItem)
  4464  	}
  4465  	var tokenIdRule []interface{}
  4466  	for _, tokenIdItem := range tokenId {
  4467  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  4468  	}
  4469  
  4470  	logs, sub, err := _ERC721ServiceChain.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
  4471  	if err != nil {
  4472  		return nil, err
  4473  	}
  4474  	return &ERC721ServiceChainApprovalIterator{contract: _ERC721ServiceChain.contract, event: "Approval", logs: logs, sub: sub}, nil
  4475  }
  4476  
  4477  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  4478  //
  4479  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  4480  func (_ERC721ServiceChain *ERC721ServiceChainFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC721ServiceChainApproval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) {
  4481  
  4482  	var ownerRule []interface{}
  4483  	for _, ownerItem := range owner {
  4484  		ownerRule = append(ownerRule, ownerItem)
  4485  	}
  4486  	var approvedRule []interface{}
  4487  	for _, approvedItem := range approved {
  4488  		approvedRule = append(approvedRule, approvedItem)
  4489  	}
  4490  	var tokenIdRule []interface{}
  4491  	for _, tokenIdItem := range tokenId {
  4492  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  4493  	}
  4494  
  4495  	logs, sub, err := _ERC721ServiceChain.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
  4496  	if err != nil {
  4497  		return nil, err
  4498  	}
  4499  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4500  		defer sub.Unsubscribe()
  4501  		for {
  4502  			select {
  4503  			case log := <-logs:
  4504  				// New log arrived, parse the event and forward to the user
  4505  				event := new(ERC721ServiceChainApproval)
  4506  				if err := _ERC721ServiceChain.contract.UnpackLog(event, "Approval", log); err != nil {
  4507  					return err
  4508  				}
  4509  				event.Raw = log
  4510  
  4511  				select {
  4512  				case sink <- event:
  4513  				case err := <-sub.Err():
  4514  					return err
  4515  				case <-quit:
  4516  					return nil
  4517  				}
  4518  			case err := <-sub.Err():
  4519  				return err
  4520  			case <-quit:
  4521  				return nil
  4522  			}
  4523  		}
  4524  	}), nil
  4525  }
  4526  
  4527  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  4528  //
  4529  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  4530  func (_ERC721ServiceChain *ERC721ServiceChainFilterer) ParseApproval(log types.Log) (*ERC721ServiceChainApproval, error) {
  4531  	event := new(ERC721ServiceChainApproval)
  4532  	if err := _ERC721ServiceChain.contract.UnpackLog(event, "Approval", log); err != nil {
  4533  		return nil, err
  4534  	}
  4535  	return event, nil
  4536  }
  4537  
  4538  // ERC721ServiceChainApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the ERC721ServiceChain contract.
  4539  type ERC721ServiceChainApprovalForAllIterator struct {
  4540  	Event *ERC721ServiceChainApprovalForAll // Event containing the contract specifics and raw log
  4541  
  4542  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4543  	event    string              // Event name to use for unpacking event data
  4544  
  4545  	logs chan types.Log      // Log channel receiving the found contract events
  4546  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  4547  	done bool                // Whether the subscription completed delivering logs
  4548  	fail error               // Occurred error to stop iteration
  4549  }
  4550  
  4551  // Next advances the iterator to the subsequent event, returning whether there
  4552  // are any more events found. In case of a retrieval or parsing error, false is
  4553  // returned and Error() can be queried for the exact failure.
  4554  func (it *ERC721ServiceChainApprovalForAllIterator) Next() bool {
  4555  	// If the iterator failed, stop iterating
  4556  	if it.fail != nil {
  4557  		return false
  4558  	}
  4559  	// If the iterator completed, deliver directly whatever's available
  4560  	if it.done {
  4561  		select {
  4562  		case log := <-it.logs:
  4563  			it.Event = new(ERC721ServiceChainApprovalForAll)
  4564  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4565  				it.fail = err
  4566  				return false
  4567  			}
  4568  			it.Event.Raw = log
  4569  			return true
  4570  
  4571  		default:
  4572  			return false
  4573  		}
  4574  	}
  4575  	// Iterator still in progress, wait for either a data or an error event
  4576  	select {
  4577  	case log := <-it.logs:
  4578  		it.Event = new(ERC721ServiceChainApprovalForAll)
  4579  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4580  			it.fail = err
  4581  			return false
  4582  		}
  4583  		it.Event.Raw = log
  4584  		return true
  4585  
  4586  	case err := <-it.sub.Err():
  4587  		it.done = true
  4588  		it.fail = err
  4589  		return it.Next()
  4590  	}
  4591  }
  4592  
  4593  // Error returns any retrieval or parsing error occurred during filtering.
  4594  func (it *ERC721ServiceChainApprovalForAllIterator) Error() error {
  4595  	return it.fail
  4596  }
  4597  
  4598  // Close terminates the iteration process, releasing any pending underlying
  4599  // resources.
  4600  func (it *ERC721ServiceChainApprovalForAllIterator) Close() error {
  4601  	it.sub.Unsubscribe()
  4602  	return nil
  4603  }
  4604  
  4605  // ERC721ServiceChainApprovalForAll represents a ApprovalForAll event raised by the ERC721ServiceChain contract.
  4606  type ERC721ServiceChainApprovalForAll struct {
  4607  	Owner    common.Address
  4608  	Operator common.Address
  4609  	Approved bool
  4610  	Raw      types.Log // Blockchain specific contextual infos
  4611  }
  4612  
  4613  // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  4614  //
  4615  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  4616  func (_ERC721ServiceChain *ERC721ServiceChainFilterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*ERC721ServiceChainApprovalForAllIterator, error) {
  4617  
  4618  	var ownerRule []interface{}
  4619  	for _, ownerItem := range owner {
  4620  		ownerRule = append(ownerRule, ownerItem)
  4621  	}
  4622  	var operatorRule []interface{}
  4623  	for _, operatorItem := range operator {
  4624  		operatorRule = append(operatorRule, operatorItem)
  4625  	}
  4626  
  4627  	logs, sub, err := _ERC721ServiceChain.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
  4628  	if err != nil {
  4629  		return nil, err
  4630  	}
  4631  	return &ERC721ServiceChainApprovalForAllIterator{contract: _ERC721ServiceChain.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil
  4632  }
  4633  
  4634  // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  4635  //
  4636  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  4637  func (_ERC721ServiceChain *ERC721ServiceChainFilterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *ERC721ServiceChainApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) {
  4638  
  4639  	var ownerRule []interface{}
  4640  	for _, ownerItem := range owner {
  4641  		ownerRule = append(ownerRule, ownerItem)
  4642  	}
  4643  	var operatorRule []interface{}
  4644  	for _, operatorItem := range operator {
  4645  		operatorRule = append(operatorRule, operatorItem)
  4646  	}
  4647  
  4648  	logs, sub, err := _ERC721ServiceChain.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
  4649  	if err != nil {
  4650  		return nil, err
  4651  	}
  4652  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4653  		defer sub.Unsubscribe()
  4654  		for {
  4655  			select {
  4656  			case log := <-logs:
  4657  				// New log arrived, parse the event and forward to the user
  4658  				event := new(ERC721ServiceChainApprovalForAll)
  4659  				if err := _ERC721ServiceChain.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
  4660  					return err
  4661  				}
  4662  				event.Raw = log
  4663  
  4664  				select {
  4665  				case sink <- event:
  4666  				case err := <-sub.Err():
  4667  					return err
  4668  				case <-quit:
  4669  					return nil
  4670  				}
  4671  			case err := <-sub.Err():
  4672  				return err
  4673  			case <-quit:
  4674  				return nil
  4675  			}
  4676  		}
  4677  	}), nil
  4678  }
  4679  
  4680  // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  4681  //
  4682  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  4683  func (_ERC721ServiceChain *ERC721ServiceChainFilterer) ParseApprovalForAll(log types.Log) (*ERC721ServiceChainApprovalForAll, error) {
  4684  	event := new(ERC721ServiceChainApprovalForAll)
  4685  	if err := _ERC721ServiceChain.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
  4686  		return nil, err
  4687  	}
  4688  	return event, nil
  4689  }
  4690  
  4691  // ERC721ServiceChainOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the ERC721ServiceChain contract.
  4692  type ERC721ServiceChainOwnershipTransferredIterator struct {
  4693  	Event *ERC721ServiceChainOwnershipTransferred // Event containing the contract specifics and raw log
  4694  
  4695  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4696  	event    string              // Event name to use for unpacking event data
  4697  
  4698  	logs chan types.Log      // Log channel receiving the found contract events
  4699  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  4700  	done bool                // Whether the subscription completed delivering logs
  4701  	fail error               // Occurred error to stop iteration
  4702  }
  4703  
  4704  // Next advances the iterator to the subsequent event, returning whether there
  4705  // are any more events found. In case of a retrieval or parsing error, false is
  4706  // returned and Error() can be queried for the exact failure.
  4707  func (it *ERC721ServiceChainOwnershipTransferredIterator) Next() bool {
  4708  	// If the iterator failed, stop iterating
  4709  	if it.fail != nil {
  4710  		return false
  4711  	}
  4712  	// If the iterator completed, deliver directly whatever's available
  4713  	if it.done {
  4714  		select {
  4715  		case log := <-it.logs:
  4716  			it.Event = new(ERC721ServiceChainOwnershipTransferred)
  4717  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4718  				it.fail = err
  4719  				return false
  4720  			}
  4721  			it.Event.Raw = log
  4722  			return true
  4723  
  4724  		default:
  4725  			return false
  4726  		}
  4727  	}
  4728  	// Iterator still in progress, wait for either a data or an error event
  4729  	select {
  4730  	case log := <-it.logs:
  4731  		it.Event = new(ERC721ServiceChainOwnershipTransferred)
  4732  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4733  			it.fail = err
  4734  			return false
  4735  		}
  4736  		it.Event.Raw = log
  4737  		return true
  4738  
  4739  	case err := <-it.sub.Err():
  4740  		it.done = true
  4741  		it.fail = err
  4742  		return it.Next()
  4743  	}
  4744  }
  4745  
  4746  // Error returns any retrieval or parsing error occurred during filtering.
  4747  func (it *ERC721ServiceChainOwnershipTransferredIterator) Error() error {
  4748  	return it.fail
  4749  }
  4750  
  4751  // Close terminates the iteration process, releasing any pending underlying
  4752  // resources.
  4753  func (it *ERC721ServiceChainOwnershipTransferredIterator) Close() error {
  4754  	it.sub.Unsubscribe()
  4755  	return nil
  4756  }
  4757  
  4758  // ERC721ServiceChainOwnershipTransferred represents a OwnershipTransferred event raised by the ERC721ServiceChain contract.
  4759  type ERC721ServiceChainOwnershipTransferred struct {
  4760  	PreviousOwner common.Address
  4761  	NewOwner      common.Address
  4762  	Raw           types.Log // Blockchain specific contextual infos
  4763  }
  4764  
  4765  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  4766  //
  4767  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  4768  func (_ERC721ServiceChain *ERC721ServiceChainFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*ERC721ServiceChainOwnershipTransferredIterator, error) {
  4769  
  4770  	var previousOwnerRule []interface{}
  4771  	for _, previousOwnerItem := range previousOwner {
  4772  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  4773  	}
  4774  	var newOwnerRule []interface{}
  4775  	for _, newOwnerItem := range newOwner {
  4776  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  4777  	}
  4778  
  4779  	logs, sub, err := _ERC721ServiceChain.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  4780  	if err != nil {
  4781  		return nil, err
  4782  	}
  4783  	return &ERC721ServiceChainOwnershipTransferredIterator{contract: _ERC721ServiceChain.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  4784  }
  4785  
  4786  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  4787  //
  4788  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  4789  func (_ERC721ServiceChain *ERC721ServiceChainFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *ERC721ServiceChainOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  4790  
  4791  	var previousOwnerRule []interface{}
  4792  	for _, previousOwnerItem := range previousOwner {
  4793  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  4794  	}
  4795  	var newOwnerRule []interface{}
  4796  	for _, newOwnerItem := range newOwner {
  4797  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  4798  	}
  4799  
  4800  	logs, sub, err := _ERC721ServiceChain.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  4801  	if err != nil {
  4802  		return nil, err
  4803  	}
  4804  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4805  		defer sub.Unsubscribe()
  4806  		for {
  4807  			select {
  4808  			case log := <-logs:
  4809  				// New log arrived, parse the event and forward to the user
  4810  				event := new(ERC721ServiceChainOwnershipTransferred)
  4811  				if err := _ERC721ServiceChain.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  4812  					return err
  4813  				}
  4814  				event.Raw = log
  4815  
  4816  				select {
  4817  				case sink <- event:
  4818  				case err := <-sub.Err():
  4819  					return err
  4820  				case <-quit:
  4821  					return nil
  4822  				}
  4823  			case err := <-sub.Err():
  4824  				return err
  4825  			case <-quit:
  4826  				return nil
  4827  			}
  4828  		}
  4829  	}), nil
  4830  }
  4831  
  4832  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  4833  //
  4834  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  4835  func (_ERC721ServiceChain *ERC721ServiceChainFilterer) ParseOwnershipTransferred(log types.Log) (*ERC721ServiceChainOwnershipTransferred, error) {
  4836  	event := new(ERC721ServiceChainOwnershipTransferred)
  4837  	if err := _ERC721ServiceChain.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  4838  		return nil, err
  4839  	}
  4840  	return event, nil
  4841  }
  4842  
  4843  // ERC721ServiceChainTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ERC721ServiceChain contract.
  4844  type ERC721ServiceChainTransferIterator struct {
  4845  	Event *ERC721ServiceChainTransfer // Event containing the contract specifics and raw log
  4846  
  4847  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4848  	event    string              // Event name to use for unpacking event data
  4849  
  4850  	logs chan types.Log      // Log channel receiving the found contract events
  4851  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  4852  	done bool                // Whether the subscription completed delivering logs
  4853  	fail error               // Occurred error to stop iteration
  4854  }
  4855  
  4856  // Next advances the iterator to the subsequent event, returning whether there
  4857  // are any more events found. In case of a retrieval or parsing error, false is
  4858  // returned and Error() can be queried for the exact failure.
  4859  func (it *ERC721ServiceChainTransferIterator) Next() bool {
  4860  	// If the iterator failed, stop iterating
  4861  	if it.fail != nil {
  4862  		return false
  4863  	}
  4864  	// If the iterator completed, deliver directly whatever's available
  4865  	if it.done {
  4866  		select {
  4867  		case log := <-it.logs:
  4868  			it.Event = new(ERC721ServiceChainTransfer)
  4869  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4870  				it.fail = err
  4871  				return false
  4872  			}
  4873  			it.Event.Raw = log
  4874  			return true
  4875  
  4876  		default:
  4877  			return false
  4878  		}
  4879  	}
  4880  	// Iterator still in progress, wait for either a data or an error event
  4881  	select {
  4882  	case log := <-it.logs:
  4883  		it.Event = new(ERC721ServiceChainTransfer)
  4884  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4885  			it.fail = err
  4886  			return false
  4887  		}
  4888  		it.Event.Raw = log
  4889  		return true
  4890  
  4891  	case err := <-it.sub.Err():
  4892  		it.done = true
  4893  		it.fail = err
  4894  		return it.Next()
  4895  	}
  4896  }
  4897  
  4898  // Error returns any retrieval or parsing error occurred during filtering.
  4899  func (it *ERC721ServiceChainTransferIterator) Error() error {
  4900  	return it.fail
  4901  }
  4902  
  4903  // Close terminates the iteration process, releasing any pending underlying
  4904  // resources.
  4905  func (it *ERC721ServiceChainTransferIterator) Close() error {
  4906  	it.sub.Unsubscribe()
  4907  	return nil
  4908  }
  4909  
  4910  // ERC721ServiceChainTransfer represents a Transfer event raised by the ERC721ServiceChain contract.
  4911  type ERC721ServiceChainTransfer struct {
  4912  	From    common.Address
  4913  	To      common.Address
  4914  	TokenId *big.Int
  4915  	Raw     types.Log // Blockchain specific contextual infos
  4916  }
  4917  
  4918  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  4919  //
  4920  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  4921  func (_ERC721ServiceChain *ERC721ServiceChainFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*ERC721ServiceChainTransferIterator, error) {
  4922  
  4923  	var fromRule []interface{}
  4924  	for _, fromItem := range from {
  4925  		fromRule = append(fromRule, fromItem)
  4926  	}
  4927  	var toRule []interface{}
  4928  	for _, toItem := range to {
  4929  		toRule = append(toRule, toItem)
  4930  	}
  4931  	var tokenIdRule []interface{}
  4932  	for _, tokenIdItem := range tokenId {
  4933  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  4934  	}
  4935  
  4936  	logs, sub, err := _ERC721ServiceChain.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
  4937  	if err != nil {
  4938  		return nil, err
  4939  	}
  4940  	return &ERC721ServiceChainTransferIterator{contract: _ERC721ServiceChain.contract, event: "Transfer", logs: logs, sub: sub}, nil
  4941  }
  4942  
  4943  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  4944  //
  4945  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  4946  func (_ERC721ServiceChain *ERC721ServiceChainFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC721ServiceChainTransfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) {
  4947  
  4948  	var fromRule []interface{}
  4949  	for _, fromItem := range from {
  4950  		fromRule = append(fromRule, fromItem)
  4951  	}
  4952  	var toRule []interface{}
  4953  	for _, toItem := range to {
  4954  		toRule = append(toRule, toItem)
  4955  	}
  4956  	var tokenIdRule []interface{}
  4957  	for _, tokenIdItem := range tokenId {
  4958  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  4959  	}
  4960  
  4961  	logs, sub, err := _ERC721ServiceChain.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
  4962  	if err != nil {
  4963  		return nil, err
  4964  	}
  4965  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4966  		defer sub.Unsubscribe()
  4967  		for {
  4968  			select {
  4969  			case log := <-logs:
  4970  				// New log arrived, parse the event and forward to the user
  4971  				event := new(ERC721ServiceChainTransfer)
  4972  				if err := _ERC721ServiceChain.contract.UnpackLog(event, "Transfer", log); err != nil {
  4973  					return err
  4974  				}
  4975  				event.Raw = log
  4976  
  4977  				select {
  4978  				case sink <- event:
  4979  				case err := <-sub.Err():
  4980  					return err
  4981  				case <-quit:
  4982  					return nil
  4983  				}
  4984  			case err := <-sub.Err():
  4985  				return err
  4986  			case <-quit:
  4987  				return nil
  4988  			}
  4989  		}
  4990  	}), nil
  4991  }
  4992  
  4993  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  4994  //
  4995  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  4996  func (_ERC721ServiceChain *ERC721ServiceChainFilterer) ParseTransfer(log types.Log) (*ERC721ServiceChainTransfer, error) {
  4997  	event := new(ERC721ServiceChainTransfer)
  4998  	if err := _ERC721ServiceChain.contract.UnpackLog(event, "Transfer", log); err != nil {
  4999  		return nil, err
  5000  	}
  5001  	return event, nil
  5002  }
  5003  
  5004  // IERC165MetaData contains all meta data concerning the IERC165 contract.
  5005  var IERC165MetaData = &bind.MetaData{
  5006  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]",
  5007  	Sigs: map[string]string{
  5008  		"01ffc9a7": "supportsInterface(bytes4)",
  5009  	},
  5010  }
  5011  
  5012  // IERC165ABI is the input ABI used to generate the binding from.
  5013  // Deprecated: Use IERC165MetaData.ABI instead.
  5014  var IERC165ABI = IERC165MetaData.ABI
  5015  
  5016  // IERC165BinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  5017  const IERC165BinRuntime = ``
  5018  
  5019  // IERC165FuncSigs maps the 4-byte function signature to its string representation.
  5020  // Deprecated: Use IERC165MetaData.Sigs instead.
  5021  var IERC165FuncSigs = IERC165MetaData.Sigs
  5022  
  5023  // IERC165 is an auto generated Go binding around a Klaytn contract.
  5024  type IERC165 struct {
  5025  	IERC165Caller     // Read-only binding to the contract
  5026  	IERC165Transactor // Write-only binding to the contract
  5027  	IERC165Filterer   // Log filterer for contract events
  5028  }
  5029  
  5030  // IERC165Caller is an auto generated read-only Go binding around a Klaytn contract.
  5031  type IERC165Caller struct {
  5032  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5033  }
  5034  
  5035  // IERC165Transactor is an auto generated write-only Go binding around a Klaytn contract.
  5036  type IERC165Transactor struct {
  5037  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5038  }
  5039  
  5040  // IERC165Filterer is an auto generated log filtering Go binding around a Klaytn contract events.
  5041  type IERC165Filterer struct {
  5042  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5043  }
  5044  
  5045  // IERC165Session is an auto generated Go binding around a Klaytn contract,
  5046  // with pre-set call and transact options.
  5047  type IERC165Session struct {
  5048  	Contract     *IERC165          // Generic contract binding to set the session for
  5049  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  5050  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  5051  }
  5052  
  5053  // IERC165CallerSession is an auto generated read-only Go binding around a Klaytn contract,
  5054  // with pre-set call options.
  5055  type IERC165CallerSession struct {
  5056  	Contract *IERC165Caller // Generic contract caller binding to set the session for
  5057  	CallOpts bind.CallOpts  // Call options to use throughout this session
  5058  }
  5059  
  5060  // IERC165TransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  5061  // with pre-set transact options.
  5062  type IERC165TransactorSession struct {
  5063  	Contract     *IERC165Transactor // Generic contract transactor binding to set the session for
  5064  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
  5065  }
  5066  
  5067  // IERC165Raw is an auto generated low-level Go binding around a Klaytn contract.
  5068  type IERC165Raw struct {
  5069  	Contract *IERC165 // Generic contract binding to access the raw methods on
  5070  }
  5071  
  5072  // IERC165CallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  5073  type IERC165CallerRaw struct {
  5074  	Contract *IERC165Caller // Generic read-only contract binding to access the raw methods on
  5075  }
  5076  
  5077  // IERC165TransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  5078  type IERC165TransactorRaw struct {
  5079  	Contract *IERC165Transactor // Generic write-only contract binding to access the raw methods on
  5080  }
  5081  
  5082  // NewIERC165 creates a new instance of IERC165, bound to a specific deployed contract.
  5083  func NewIERC165(address common.Address, backend bind.ContractBackend) (*IERC165, error) {
  5084  	contract, err := bindIERC165(address, backend, backend, backend)
  5085  	if err != nil {
  5086  		return nil, err
  5087  	}
  5088  	return &IERC165{IERC165Caller: IERC165Caller{contract: contract}, IERC165Transactor: IERC165Transactor{contract: contract}, IERC165Filterer: IERC165Filterer{contract: contract}}, nil
  5089  }
  5090  
  5091  // NewIERC165Caller creates a new read-only instance of IERC165, bound to a specific deployed contract.
  5092  func NewIERC165Caller(address common.Address, caller bind.ContractCaller) (*IERC165Caller, error) {
  5093  	contract, err := bindIERC165(address, caller, nil, nil)
  5094  	if err != nil {
  5095  		return nil, err
  5096  	}
  5097  	return &IERC165Caller{contract: contract}, nil
  5098  }
  5099  
  5100  // NewIERC165Transactor creates a new write-only instance of IERC165, bound to a specific deployed contract.
  5101  func NewIERC165Transactor(address common.Address, transactor bind.ContractTransactor) (*IERC165Transactor, error) {
  5102  	contract, err := bindIERC165(address, nil, transactor, nil)
  5103  	if err != nil {
  5104  		return nil, err
  5105  	}
  5106  	return &IERC165Transactor{contract: contract}, nil
  5107  }
  5108  
  5109  // NewIERC165Filterer creates a new log filterer instance of IERC165, bound to a specific deployed contract.
  5110  func NewIERC165Filterer(address common.Address, filterer bind.ContractFilterer) (*IERC165Filterer, error) {
  5111  	contract, err := bindIERC165(address, nil, nil, filterer)
  5112  	if err != nil {
  5113  		return nil, err
  5114  	}
  5115  	return &IERC165Filterer{contract: contract}, nil
  5116  }
  5117  
  5118  // bindIERC165 binds a generic wrapper to an already deployed contract.
  5119  func bindIERC165(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  5120  	parsed, err := IERC165MetaData.GetAbi()
  5121  	if err != nil {
  5122  		return nil, err
  5123  	}
  5124  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  5125  }
  5126  
  5127  // Call invokes the (constant) contract method with params as input values and
  5128  // sets the output to result. The result type might be a single field for simple
  5129  // returns, a slice of interfaces for anonymous returns and a struct for named
  5130  // returns.
  5131  func (_IERC165 *IERC165Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  5132  	return _IERC165.Contract.IERC165Caller.contract.Call(opts, result, method, params...)
  5133  }
  5134  
  5135  // Transfer initiates a plain transaction to move funds to the contract, calling
  5136  // its default method if one is available.
  5137  func (_IERC165 *IERC165Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  5138  	return _IERC165.Contract.IERC165Transactor.contract.Transfer(opts)
  5139  }
  5140  
  5141  // Transact invokes the (paid) contract method with params as input values.
  5142  func (_IERC165 *IERC165Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  5143  	return _IERC165.Contract.IERC165Transactor.contract.Transact(opts, method, params...)
  5144  }
  5145  
  5146  // Call invokes the (constant) contract method with params as input values and
  5147  // sets the output to result. The result type might be a single field for simple
  5148  // returns, a slice of interfaces for anonymous returns and a struct for named
  5149  // returns.
  5150  func (_IERC165 *IERC165CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  5151  	return _IERC165.Contract.contract.Call(opts, result, method, params...)
  5152  }
  5153  
  5154  // Transfer initiates a plain transaction to move funds to the contract, calling
  5155  // its default method if one is available.
  5156  func (_IERC165 *IERC165TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  5157  	return _IERC165.Contract.contract.Transfer(opts)
  5158  }
  5159  
  5160  // Transact invokes the (paid) contract method with params as input values.
  5161  func (_IERC165 *IERC165TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  5162  	return _IERC165.Contract.contract.Transact(opts, method, params...)
  5163  }
  5164  
  5165  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  5166  //
  5167  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
  5168  func (_IERC165 *IERC165Caller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
  5169  	var out []interface{}
  5170  	err := _IERC165.contract.Call(opts, &out, "supportsInterface", interfaceId)
  5171  
  5172  	if err != nil {
  5173  		return *new(bool), err
  5174  	}
  5175  
  5176  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  5177  
  5178  	return out0, err
  5179  
  5180  }
  5181  
  5182  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  5183  //
  5184  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
  5185  func (_IERC165 *IERC165Session) SupportsInterface(interfaceId [4]byte) (bool, error) {
  5186  	return _IERC165.Contract.SupportsInterface(&_IERC165.CallOpts, interfaceId)
  5187  }
  5188  
  5189  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  5190  //
  5191  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
  5192  func (_IERC165 *IERC165CallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
  5193  	return _IERC165.Contract.SupportsInterface(&_IERC165.CallOpts, interfaceId)
  5194  }
  5195  
  5196  // IERC721MetaData contains all meta data concerning the IERC721 contract.
  5197  var IERC721MetaData = &bind.MetaData{
  5198  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"operator\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"operator\",\"type\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}]",
  5199  	Sigs: map[string]string{
  5200  		"095ea7b3": "approve(address,uint256)",
  5201  		"70a08231": "balanceOf(address)",
  5202  		"081812fc": "getApproved(uint256)",
  5203  		"e985e9c5": "isApprovedForAll(address,address)",
  5204  		"6352211e": "ownerOf(uint256)",
  5205  		"42842e0e": "safeTransferFrom(address,address,uint256)",
  5206  		"b88d4fde": "safeTransferFrom(address,address,uint256,bytes)",
  5207  		"a22cb465": "setApprovalForAll(address,bool)",
  5208  		"01ffc9a7": "supportsInterface(bytes4)",
  5209  		"23b872dd": "transferFrom(address,address,uint256)",
  5210  	},
  5211  }
  5212  
  5213  // IERC721ABI is the input ABI used to generate the binding from.
  5214  // Deprecated: Use IERC721MetaData.ABI instead.
  5215  var IERC721ABI = IERC721MetaData.ABI
  5216  
  5217  // IERC721BinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  5218  const IERC721BinRuntime = ``
  5219  
  5220  // IERC721FuncSigs maps the 4-byte function signature to its string representation.
  5221  // Deprecated: Use IERC721MetaData.Sigs instead.
  5222  var IERC721FuncSigs = IERC721MetaData.Sigs
  5223  
  5224  // IERC721 is an auto generated Go binding around a Klaytn contract.
  5225  type IERC721 struct {
  5226  	IERC721Caller     // Read-only binding to the contract
  5227  	IERC721Transactor // Write-only binding to the contract
  5228  	IERC721Filterer   // Log filterer for contract events
  5229  }
  5230  
  5231  // IERC721Caller is an auto generated read-only Go binding around a Klaytn contract.
  5232  type IERC721Caller struct {
  5233  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5234  }
  5235  
  5236  // IERC721Transactor is an auto generated write-only Go binding around a Klaytn contract.
  5237  type IERC721Transactor struct {
  5238  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5239  }
  5240  
  5241  // IERC721Filterer is an auto generated log filtering Go binding around a Klaytn contract events.
  5242  type IERC721Filterer struct {
  5243  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5244  }
  5245  
  5246  // IERC721Session is an auto generated Go binding around a Klaytn contract,
  5247  // with pre-set call and transact options.
  5248  type IERC721Session struct {
  5249  	Contract     *IERC721          // Generic contract binding to set the session for
  5250  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  5251  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  5252  }
  5253  
  5254  // IERC721CallerSession is an auto generated read-only Go binding around a Klaytn contract,
  5255  // with pre-set call options.
  5256  type IERC721CallerSession struct {
  5257  	Contract *IERC721Caller // Generic contract caller binding to set the session for
  5258  	CallOpts bind.CallOpts  // Call options to use throughout this session
  5259  }
  5260  
  5261  // IERC721TransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  5262  // with pre-set transact options.
  5263  type IERC721TransactorSession struct {
  5264  	Contract     *IERC721Transactor // Generic contract transactor binding to set the session for
  5265  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
  5266  }
  5267  
  5268  // IERC721Raw is an auto generated low-level Go binding around a Klaytn contract.
  5269  type IERC721Raw struct {
  5270  	Contract *IERC721 // Generic contract binding to access the raw methods on
  5271  }
  5272  
  5273  // IERC721CallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  5274  type IERC721CallerRaw struct {
  5275  	Contract *IERC721Caller // Generic read-only contract binding to access the raw methods on
  5276  }
  5277  
  5278  // IERC721TransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  5279  type IERC721TransactorRaw struct {
  5280  	Contract *IERC721Transactor // Generic write-only contract binding to access the raw methods on
  5281  }
  5282  
  5283  // NewIERC721 creates a new instance of IERC721, bound to a specific deployed contract.
  5284  func NewIERC721(address common.Address, backend bind.ContractBackend) (*IERC721, error) {
  5285  	contract, err := bindIERC721(address, backend, backend, backend)
  5286  	if err != nil {
  5287  		return nil, err
  5288  	}
  5289  	return &IERC721{IERC721Caller: IERC721Caller{contract: contract}, IERC721Transactor: IERC721Transactor{contract: contract}, IERC721Filterer: IERC721Filterer{contract: contract}}, nil
  5290  }
  5291  
  5292  // NewIERC721Caller creates a new read-only instance of IERC721, bound to a specific deployed contract.
  5293  func NewIERC721Caller(address common.Address, caller bind.ContractCaller) (*IERC721Caller, error) {
  5294  	contract, err := bindIERC721(address, caller, nil, nil)
  5295  	if err != nil {
  5296  		return nil, err
  5297  	}
  5298  	return &IERC721Caller{contract: contract}, nil
  5299  }
  5300  
  5301  // NewIERC721Transactor creates a new write-only instance of IERC721, bound to a specific deployed contract.
  5302  func NewIERC721Transactor(address common.Address, transactor bind.ContractTransactor) (*IERC721Transactor, error) {
  5303  	contract, err := bindIERC721(address, nil, transactor, nil)
  5304  	if err != nil {
  5305  		return nil, err
  5306  	}
  5307  	return &IERC721Transactor{contract: contract}, nil
  5308  }
  5309  
  5310  // NewIERC721Filterer creates a new log filterer instance of IERC721, bound to a specific deployed contract.
  5311  func NewIERC721Filterer(address common.Address, filterer bind.ContractFilterer) (*IERC721Filterer, error) {
  5312  	contract, err := bindIERC721(address, nil, nil, filterer)
  5313  	if err != nil {
  5314  		return nil, err
  5315  	}
  5316  	return &IERC721Filterer{contract: contract}, nil
  5317  }
  5318  
  5319  // bindIERC721 binds a generic wrapper to an already deployed contract.
  5320  func bindIERC721(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  5321  	parsed, err := IERC721MetaData.GetAbi()
  5322  	if err != nil {
  5323  		return nil, err
  5324  	}
  5325  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  5326  }
  5327  
  5328  // Call invokes the (constant) contract method with params as input values and
  5329  // sets the output to result. The result type might be a single field for simple
  5330  // returns, a slice of interfaces for anonymous returns and a struct for named
  5331  // returns.
  5332  func (_IERC721 *IERC721Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  5333  	return _IERC721.Contract.IERC721Caller.contract.Call(opts, result, method, params...)
  5334  }
  5335  
  5336  // Transfer initiates a plain transaction to move funds to the contract, calling
  5337  // its default method if one is available.
  5338  func (_IERC721 *IERC721Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  5339  	return _IERC721.Contract.IERC721Transactor.contract.Transfer(opts)
  5340  }
  5341  
  5342  // Transact invokes the (paid) contract method with params as input values.
  5343  func (_IERC721 *IERC721Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  5344  	return _IERC721.Contract.IERC721Transactor.contract.Transact(opts, method, params...)
  5345  }
  5346  
  5347  // Call invokes the (constant) contract method with params as input values and
  5348  // sets the output to result. The result type might be a single field for simple
  5349  // returns, a slice of interfaces for anonymous returns and a struct for named
  5350  // returns.
  5351  func (_IERC721 *IERC721CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  5352  	return _IERC721.Contract.contract.Call(opts, result, method, params...)
  5353  }
  5354  
  5355  // Transfer initiates a plain transaction to move funds to the contract, calling
  5356  // its default method if one is available.
  5357  func (_IERC721 *IERC721TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  5358  	return _IERC721.Contract.contract.Transfer(opts)
  5359  }
  5360  
  5361  // Transact invokes the (paid) contract method with params as input values.
  5362  func (_IERC721 *IERC721TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  5363  	return _IERC721.Contract.contract.Transact(opts, method, params...)
  5364  }
  5365  
  5366  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  5367  //
  5368  // Solidity: function balanceOf(address owner) view returns(uint256 balance)
  5369  func (_IERC721 *IERC721Caller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) {
  5370  	var out []interface{}
  5371  	err := _IERC721.contract.Call(opts, &out, "balanceOf", owner)
  5372  
  5373  	if err != nil {
  5374  		return *new(*big.Int), err
  5375  	}
  5376  
  5377  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  5378  
  5379  	return out0, err
  5380  
  5381  }
  5382  
  5383  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  5384  //
  5385  // Solidity: function balanceOf(address owner) view returns(uint256 balance)
  5386  func (_IERC721 *IERC721Session) BalanceOf(owner common.Address) (*big.Int, error) {
  5387  	return _IERC721.Contract.BalanceOf(&_IERC721.CallOpts, owner)
  5388  }
  5389  
  5390  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  5391  //
  5392  // Solidity: function balanceOf(address owner) view returns(uint256 balance)
  5393  func (_IERC721 *IERC721CallerSession) BalanceOf(owner common.Address) (*big.Int, error) {
  5394  	return _IERC721.Contract.BalanceOf(&_IERC721.CallOpts, owner)
  5395  }
  5396  
  5397  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
  5398  //
  5399  // Solidity: function getApproved(uint256 tokenId) view returns(address operator)
  5400  func (_IERC721 *IERC721Caller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
  5401  	var out []interface{}
  5402  	err := _IERC721.contract.Call(opts, &out, "getApproved", tokenId)
  5403  
  5404  	if err != nil {
  5405  		return *new(common.Address), err
  5406  	}
  5407  
  5408  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  5409  
  5410  	return out0, err
  5411  
  5412  }
  5413  
  5414  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
  5415  //
  5416  // Solidity: function getApproved(uint256 tokenId) view returns(address operator)
  5417  func (_IERC721 *IERC721Session) GetApproved(tokenId *big.Int) (common.Address, error) {
  5418  	return _IERC721.Contract.GetApproved(&_IERC721.CallOpts, tokenId)
  5419  }
  5420  
  5421  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
  5422  //
  5423  // Solidity: function getApproved(uint256 tokenId) view returns(address operator)
  5424  func (_IERC721 *IERC721CallerSession) GetApproved(tokenId *big.Int) (common.Address, error) {
  5425  	return _IERC721.Contract.GetApproved(&_IERC721.CallOpts, tokenId)
  5426  }
  5427  
  5428  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
  5429  //
  5430  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
  5431  func (_IERC721 *IERC721Caller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) {
  5432  	var out []interface{}
  5433  	err := _IERC721.contract.Call(opts, &out, "isApprovedForAll", owner, operator)
  5434  
  5435  	if err != nil {
  5436  		return *new(bool), err
  5437  	}
  5438  
  5439  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  5440  
  5441  	return out0, err
  5442  
  5443  }
  5444  
  5445  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
  5446  //
  5447  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
  5448  func (_IERC721 *IERC721Session) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
  5449  	return _IERC721.Contract.IsApprovedForAll(&_IERC721.CallOpts, owner, operator)
  5450  }
  5451  
  5452  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
  5453  //
  5454  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
  5455  func (_IERC721 *IERC721CallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
  5456  	return _IERC721.Contract.IsApprovedForAll(&_IERC721.CallOpts, owner, operator)
  5457  }
  5458  
  5459  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
  5460  //
  5461  // Solidity: function ownerOf(uint256 tokenId) view returns(address owner)
  5462  func (_IERC721 *IERC721Caller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
  5463  	var out []interface{}
  5464  	err := _IERC721.contract.Call(opts, &out, "ownerOf", tokenId)
  5465  
  5466  	if err != nil {
  5467  		return *new(common.Address), err
  5468  	}
  5469  
  5470  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  5471  
  5472  	return out0, err
  5473  
  5474  }
  5475  
  5476  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
  5477  //
  5478  // Solidity: function ownerOf(uint256 tokenId) view returns(address owner)
  5479  func (_IERC721 *IERC721Session) OwnerOf(tokenId *big.Int) (common.Address, error) {
  5480  	return _IERC721.Contract.OwnerOf(&_IERC721.CallOpts, tokenId)
  5481  }
  5482  
  5483  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
  5484  //
  5485  // Solidity: function ownerOf(uint256 tokenId) view returns(address owner)
  5486  func (_IERC721 *IERC721CallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
  5487  	return _IERC721.Contract.OwnerOf(&_IERC721.CallOpts, tokenId)
  5488  }
  5489  
  5490  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  5491  //
  5492  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
  5493  func (_IERC721 *IERC721Caller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
  5494  	var out []interface{}
  5495  	err := _IERC721.contract.Call(opts, &out, "supportsInterface", interfaceId)
  5496  
  5497  	if err != nil {
  5498  		return *new(bool), err
  5499  	}
  5500  
  5501  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  5502  
  5503  	return out0, err
  5504  
  5505  }
  5506  
  5507  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  5508  //
  5509  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
  5510  func (_IERC721 *IERC721Session) SupportsInterface(interfaceId [4]byte) (bool, error) {
  5511  	return _IERC721.Contract.SupportsInterface(&_IERC721.CallOpts, interfaceId)
  5512  }
  5513  
  5514  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  5515  //
  5516  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
  5517  func (_IERC721 *IERC721CallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
  5518  	return _IERC721.Contract.SupportsInterface(&_IERC721.CallOpts, interfaceId)
  5519  }
  5520  
  5521  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  5522  //
  5523  // Solidity: function approve(address to, uint256 tokenId) returns()
  5524  func (_IERC721 *IERC721Transactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  5525  	return _IERC721.contract.Transact(opts, "approve", to, tokenId)
  5526  }
  5527  
  5528  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  5529  //
  5530  // Solidity: function approve(address to, uint256 tokenId) returns()
  5531  func (_IERC721 *IERC721Session) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  5532  	return _IERC721.Contract.Approve(&_IERC721.TransactOpts, to, tokenId)
  5533  }
  5534  
  5535  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  5536  //
  5537  // Solidity: function approve(address to, uint256 tokenId) returns()
  5538  func (_IERC721 *IERC721TransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  5539  	return _IERC721.Contract.Approve(&_IERC721.TransactOpts, to, tokenId)
  5540  }
  5541  
  5542  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
  5543  //
  5544  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
  5545  func (_IERC721 *IERC721Transactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  5546  	return _IERC721.contract.Transact(opts, "safeTransferFrom", from, to, tokenId)
  5547  }
  5548  
  5549  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
  5550  //
  5551  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
  5552  func (_IERC721 *IERC721Session) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  5553  	return _IERC721.Contract.SafeTransferFrom(&_IERC721.TransactOpts, from, to, tokenId)
  5554  }
  5555  
  5556  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
  5557  //
  5558  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
  5559  func (_IERC721 *IERC721TransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  5560  	return _IERC721.Contract.SafeTransferFrom(&_IERC721.TransactOpts, from, to, tokenId)
  5561  }
  5562  
  5563  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
  5564  //
  5565  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns()
  5566  func (_IERC721 *IERC721Transactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
  5567  	return _IERC721.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, data)
  5568  }
  5569  
  5570  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
  5571  //
  5572  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns()
  5573  func (_IERC721 *IERC721Session) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
  5574  	return _IERC721.Contract.SafeTransferFrom0(&_IERC721.TransactOpts, from, to, tokenId, data)
  5575  }
  5576  
  5577  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
  5578  //
  5579  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns()
  5580  func (_IERC721 *IERC721TransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
  5581  	return _IERC721.Contract.SafeTransferFrom0(&_IERC721.TransactOpts, from, to, tokenId, data)
  5582  }
  5583  
  5584  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
  5585  //
  5586  // Solidity: function setApprovalForAll(address operator, bool _approved) returns()
  5587  func (_IERC721 *IERC721Transactor) SetApprovalForAll(opts *bind.TransactOpts, operator common.Address, _approved bool) (*types.Transaction, error) {
  5588  	return _IERC721.contract.Transact(opts, "setApprovalForAll", operator, _approved)
  5589  }
  5590  
  5591  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
  5592  //
  5593  // Solidity: function setApprovalForAll(address operator, bool _approved) returns()
  5594  func (_IERC721 *IERC721Session) SetApprovalForAll(operator common.Address, _approved bool) (*types.Transaction, error) {
  5595  	return _IERC721.Contract.SetApprovalForAll(&_IERC721.TransactOpts, operator, _approved)
  5596  }
  5597  
  5598  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
  5599  //
  5600  // Solidity: function setApprovalForAll(address operator, bool _approved) returns()
  5601  func (_IERC721 *IERC721TransactorSession) SetApprovalForAll(operator common.Address, _approved bool) (*types.Transaction, error) {
  5602  	return _IERC721.Contract.SetApprovalForAll(&_IERC721.TransactOpts, operator, _approved)
  5603  }
  5604  
  5605  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  5606  //
  5607  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
  5608  func (_IERC721 *IERC721Transactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  5609  	return _IERC721.contract.Transact(opts, "transferFrom", from, to, tokenId)
  5610  }
  5611  
  5612  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  5613  //
  5614  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
  5615  func (_IERC721 *IERC721Session) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  5616  	return _IERC721.Contract.TransferFrom(&_IERC721.TransactOpts, from, to, tokenId)
  5617  }
  5618  
  5619  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  5620  //
  5621  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
  5622  func (_IERC721 *IERC721TransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  5623  	return _IERC721.Contract.TransferFrom(&_IERC721.TransactOpts, from, to, tokenId)
  5624  }
  5625  
  5626  // IERC721ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the IERC721 contract.
  5627  type IERC721ApprovalIterator struct {
  5628  	Event *IERC721Approval // Event containing the contract specifics and raw log
  5629  
  5630  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  5631  	event    string              // Event name to use for unpacking event data
  5632  
  5633  	logs chan types.Log      // Log channel receiving the found contract events
  5634  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  5635  	done bool                // Whether the subscription completed delivering logs
  5636  	fail error               // Occurred error to stop iteration
  5637  }
  5638  
  5639  // Next advances the iterator to the subsequent event, returning whether there
  5640  // are any more events found. In case of a retrieval or parsing error, false is
  5641  // returned and Error() can be queried for the exact failure.
  5642  func (it *IERC721ApprovalIterator) Next() bool {
  5643  	// If the iterator failed, stop iterating
  5644  	if it.fail != nil {
  5645  		return false
  5646  	}
  5647  	// If the iterator completed, deliver directly whatever's available
  5648  	if it.done {
  5649  		select {
  5650  		case log := <-it.logs:
  5651  			it.Event = new(IERC721Approval)
  5652  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5653  				it.fail = err
  5654  				return false
  5655  			}
  5656  			it.Event.Raw = log
  5657  			return true
  5658  
  5659  		default:
  5660  			return false
  5661  		}
  5662  	}
  5663  	// Iterator still in progress, wait for either a data or an error event
  5664  	select {
  5665  	case log := <-it.logs:
  5666  		it.Event = new(IERC721Approval)
  5667  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5668  			it.fail = err
  5669  			return false
  5670  		}
  5671  		it.Event.Raw = log
  5672  		return true
  5673  
  5674  	case err := <-it.sub.Err():
  5675  		it.done = true
  5676  		it.fail = err
  5677  		return it.Next()
  5678  	}
  5679  }
  5680  
  5681  // Error returns any retrieval or parsing error occurred during filtering.
  5682  func (it *IERC721ApprovalIterator) Error() error {
  5683  	return it.fail
  5684  }
  5685  
  5686  // Close terminates the iteration process, releasing any pending underlying
  5687  // resources.
  5688  func (it *IERC721ApprovalIterator) Close() error {
  5689  	it.sub.Unsubscribe()
  5690  	return nil
  5691  }
  5692  
  5693  // IERC721Approval represents a Approval event raised by the IERC721 contract.
  5694  type IERC721Approval struct {
  5695  	Owner    common.Address
  5696  	Approved common.Address
  5697  	TokenId  *big.Int
  5698  	Raw      types.Log // Blockchain specific contextual infos
  5699  }
  5700  
  5701  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  5702  //
  5703  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  5704  func (_IERC721 *IERC721Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*IERC721ApprovalIterator, error) {
  5705  
  5706  	var ownerRule []interface{}
  5707  	for _, ownerItem := range owner {
  5708  		ownerRule = append(ownerRule, ownerItem)
  5709  	}
  5710  	var approvedRule []interface{}
  5711  	for _, approvedItem := range approved {
  5712  		approvedRule = append(approvedRule, approvedItem)
  5713  	}
  5714  	var tokenIdRule []interface{}
  5715  	for _, tokenIdItem := range tokenId {
  5716  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  5717  	}
  5718  
  5719  	logs, sub, err := _IERC721.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
  5720  	if err != nil {
  5721  		return nil, err
  5722  	}
  5723  	return &IERC721ApprovalIterator{contract: _IERC721.contract, event: "Approval", logs: logs, sub: sub}, nil
  5724  }
  5725  
  5726  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  5727  //
  5728  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  5729  func (_IERC721 *IERC721Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *IERC721Approval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) {
  5730  
  5731  	var ownerRule []interface{}
  5732  	for _, ownerItem := range owner {
  5733  		ownerRule = append(ownerRule, ownerItem)
  5734  	}
  5735  	var approvedRule []interface{}
  5736  	for _, approvedItem := range approved {
  5737  		approvedRule = append(approvedRule, approvedItem)
  5738  	}
  5739  	var tokenIdRule []interface{}
  5740  	for _, tokenIdItem := range tokenId {
  5741  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  5742  	}
  5743  
  5744  	logs, sub, err := _IERC721.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
  5745  	if err != nil {
  5746  		return nil, err
  5747  	}
  5748  	return event.NewSubscription(func(quit <-chan struct{}) error {
  5749  		defer sub.Unsubscribe()
  5750  		for {
  5751  			select {
  5752  			case log := <-logs:
  5753  				// New log arrived, parse the event and forward to the user
  5754  				event := new(IERC721Approval)
  5755  				if err := _IERC721.contract.UnpackLog(event, "Approval", log); err != nil {
  5756  					return err
  5757  				}
  5758  				event.Raw = log
  5759  
  5760  				select {
  5761  				case sink <- event:
  5762  				case err := <-sub.Err():
  5763  					return err
  5764  				case <-quit:
  5765  					return nil
  5766  				}
  5767  			case err := <-sub.Err():
  5768  				return err
  5769  			case <-quit:
  5770  				return nil
  5771  			}
  5772  		}
  5773  	}), nil
  5774  }
  5775  
  5776  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  5777  //
  5778  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  5779  func (_IERC721 *IERC721Filterer) ParseApproval(log types.Log) (*IERC721Approval, error) {
  5780  	event := new(IERC721Approval)
  5781  	if err := _IERC721.contract.UnpackLog(event, "Approval", log); err != nil {
  5782  		return nil, err
  5783  	}
  5784  	return event, nil
  5785  }
  5786  
  5787  // IERC721ApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the IERC721 contract.
  5788  type IERC721ApprovalForAllIterator struct {
  5789  	Event *IERC721ApprovalForAll // Event containing the contract specifics and raw log
  5790  
  5791  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  5792  	event    string              // Event name to use for unpacking event data
  5793  
  5794  	logs chan types.Log      // Log channel receiving the found contract events
  5795  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  5796  	done bool                // Whether the subscription completed delivering logs
  5797  	fail error               // Occurred error to stop iteration
  5798  }
  5799  
  5800  // Next advances the iterator to the subsequent event, returning whether there
  5801  // are any more events found. In case of a retrieval or parsing error, false is
  5802  // returned and Error() can be queried for the exact failure.
  5803  func (it *IERC721ApprovalForAllIterator) Next() bool {
  5804  	// If the iterator failed, stop iterating
  5805  	if it.fail != nil {
  5806  		return false
  5807  	}
  5808  	// If the iterator completed, deliver directly whatever's available
  5809  	if it.done {
  5810  		select {
  5811  		case log := <-it.logs:
  5812  			it.Event = new(IERC721ApprovalForAll)
  5813  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5814  				it.fail = err
  5815  				return false
  5816  			}
  5817  			it.Event.Raw = log
  5818  			return true
  5819  
  5820  		default:
  5821  			return false
  5822  		}
  5823  	}
  5824  	// Iterator still in progress, wait for either a data or an error event
  5825  	select {
  5826  	case log := <-it.logs:
  5827  		it.Event = new(IERC721ApprovalForAll)
  5828  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5829  			it.fail = err
  5830  			return false
  5831  		}
  5832  		it.Event.Raw = log
  5833  		return true
  5834  
  5835  	case err := <-it.sub.Err():
  5836  		it.done = true
  5837  		it.fail = err
  5838  		return it.Next()
  5839  	}
  5840  }
  5841  
  5842  // Error returns any retrieval or parsing error occurred during filtering.
  5843  func (it *IERC721ApprovalForAllIterator) Error() error {
  5844  	return it.fail
  5845  }
  5846  
  5847  // Close terminates the iteration process, releasing any pending underlying
  5848  // resources.
  5849  func (it *IERC721ApprovalForAllIterator) Close() error {
  5850  	it.sub.Unsubscribe()
  5851  	return nil
  5852  }
  5853  
  5854  // IERC721ApprovalForAll represents a ApprovalForAll event raised by the IERC721 contract.
  5855  type IERC721ApprovalForAll struct {
  5856  	Owner    common.Address
  5857  	Operator common.Address
  5858  	Approved bool
  5859  	Raw      types.Log // Blockchain specific contextual infos
  5860  }
  5861  
  5862  // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  5863  //
  5864  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  5865  func (_IERC721 *IERC721Filterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*IERC721ApprovalForAllIterator, error) {
  5866  
  5867  	var ownerRule []interface{}
  5868  	for _, ownerItem := range owner {
  5869  		ownerRule = append(ownerRule, ownerItem)
  5870  	}
  5871  	var operatorRule []interface{}
  5872  	for _, operatorItem := range operator {
  5873  		operatorRule = append(operatorRule, operatorItem)
  5874  	}
  5875  
  5876  	logs, sub, err := _IERC721.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
  5877  	if err != nil {
  5878  		return nil, err
  5879  	}
  5880  	return &IERC721ApprovalForAllIterator{contract: _IERC721.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil
  5881  }
  5882  
  5883  // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  5884  //
  5885  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  5886  func (_IERC721 *IERC721Filterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *IERC721ApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) {
  5887  
  5888  	var ownerRule []interface{}
  5889  	for _, ownerItem := range owner {
  5890  		ownerRule = append(ownerRule, ownerItem)
  5891  	}
  5892  	var operatorRule []interface{}
  5893  	for _, operatorItem := range operator {
  5894  		operatorRule = append(operatorRule, operatorItem)
  5895  	}
  5896  
  5897  	logs, sub, err := _IERC721.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
  5898  	if err != nil {
  5899  		return nil, err
  5900  	}
  5901  	return event.NewSubscription(func(quit <-chan struct{}) error {
  5902  		defer sub.Unsubscribe()
  5903  		for {
  5904  			select {
  5905  			case log := <-logs:
  5906  				// New log arrived, parse the event and forward to the user
  5907  				event := new(IERC721ApprovalForAll)
  5908  				if err := _IERC721.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
  5909  					return err
  5910  				}
  5911  				event.Raw = log
  5912  
  5913  				select {
  5914  				case sink <- event:
  5915  				case err := <-sub.Err():
  5916  					return err
  5917  				case <-quit:
  5918  					return nil
  5919  				}
  5920  			case err := <-sub.Err():
  5921  				return err
  5922  			case <-quit:
  5923  				return nil
  5924  			}
  5925  		}
  5926  	}), nil
  5927  }
  5928  
  5929  // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  5930  //
  5931  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  5932  func (_IERC721 *IERC721Filterer) ParseApprovalForAll(log types.Log) (*IERC721ApprovalForAll, error) {
  5933  	event := new(IERC721ApprovalForAll)
  5934  	if err := _IERC721.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
  5935  		return nil, err
  5936  	}
  5937  	return event, nil
  5938  }
  5939  
  5940  // IERC721TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the IERC721 contract.
  5941  type IERC721TransferIterator struct {
  5942  	Event *IERC721Transfer // Event containing the contract specifics and raw log
  5943  
  5944  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  5945  	event    string              // Event name to use for unpacking event data
  5946  
  5947  	logs chan types.Log      // Log channel receiving the found contract events
  5948  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  5949  	done bool                // Whether the subscription completed delivering logs
  5950  	fail error               // Occurred error to stop iteration
  5951  }
  5952  
  5953  // Next advances the iterator to the subsequent event, returning whether there
  5954  // are any more events found. In case of a retrieval or parsing error, false is
  5955  // returned and Error() can be queried for the exact failure.
  5956  func (it *IERC721TransferIterator) Next() bool {
  5957  	// If the iterator failed, stop iterating
  5958  	if it.fail != nil {
  5959  		return false
  5960  	}
  5961  	// If the iterator completed, deliver directly whatever's available
  5962  	if it.done {
  5963  		select {
  5964  		case log := <-it.logs:
  5965  			it.Event = new(IERC721Transfer)
  5966  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5967  				it.fail = err
  5968  				return false
  5969  			}
  5970  			it.Event.Raw = log
  5971  			return true
  5972  
  5973  		default:
  5974  			return false
  5975  		}
  5976  	}
  5977  	// Iterator still in progress, wait for either a data or an error event
  5978  	select {
  5979  	case log := <-it.logs:
  5980  		it.Event = new(IERC721Transfer)
  5981  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5982  			it.fail = err
  5983  			return false
  5984  		}
  5985  		it.Event.Raw = log
  5986  		return true
  5987  
  5988  	case err := <-it.sub.Err():
  5989  		it.done = true
  5990  		it.fail = err
  5991  		return it.Next()
  5992  	}
  5993  }
  5994  
  5995  // Error returns any retrieval or parsing error occurred during filtering.
  5996  func (it *IERC721TransferIterator) Error() error {
  5997  	return it.fail
  5998  }
  5999  
  6000  // Close terminates the iteration process, releasing any pending underlying
  6001  // resources.
  6002  func (it *IERC721TransferIterator) Close() error {
  6003  	it.sub.Unsubscribe()
  6004  	return nil
  6005  }
  6006  
  6007  // IERC721Transfer represents a Transfer event raised by the IERC721 contract.
  6008  type IERC721Transfer struct {
  6009  	From    common.Address
  6010  	To      common.Address
  6011  	TokenId *big.Int
  6012  	Raw     types.Log // Blockchain specific contextual infos
  6013  }
  6014  
  6015  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  6016  //
  6017  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  6018  func (_IERC721 *IERC721Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*IERC721TransferIterator, error) {
  6019  
  6020  	var fromRule []interface{}
  6021  	for _, fromItem := range from {
  6022  		fromRule = append(fromRule, fromItem)
  6023  	}
  6024  	var toRule []interface{}
  6025  	for _, toItem := range to {
  6026  		toRule = append(toRule, toItem)
  6027  	}
  6028  	var tokenIdRule []interface{}
  6029  	for _, tokenIdItem := range tokenId {
  6030  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  6031  	}
  6032  
  6033  	logs, sub, err := _IERC721.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
  6034  	if err != nil {
  6035  		return nil, err
  6036  	}
  6037  	return &IERC721TransferIterator{contract: _IERC721.contract, event: "Transfer", logs: logs, sub: sub}, nil
  6038  }
  6039  
  6040  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  6041  //
  6042  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  6043  func (_IERC721 *IERC721Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *IERC721Transfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) {
  6044  
  6045  	var fromRule []interface{}
  6046  	for _, fromItem := range from {
  6047  		fromRule = append(fromRule, fromItem)
  6048  	}
  6049  	var toRule []interface{}
  6050  	for _, toItem := range to {
  6051  		toRule = append(toRule, toItem)
  6052  	}
  6053  	var tokenIdRule []interface{}
  6054  	for _, tokenIdItem := range tokenId {
  6055  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  6056  	}
  6057  
  6058  	logs, sub, err := _IERC721.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
  6059  	if err != nil {
  6060  		return nil, err
  6061  	}
  6062  	return event.NewSubscription(func(quit <-chan struct{}) error {
  6063  		defer sub.Unsubscribe()
  6064  		for {
  6065  			select {
  6066  			case log := <-logs:
  6067  				// New log arrived, parse the event and forward to the user
  6068  				event := new(IERC721Transfer)
  6069  				if err := _IERC721.contract.UnpackLog(event, "Transfer", log); err != nil {
  6070  					return err
  6071  				}
  6072  				event.Raw = log
  6073  
  6074  				select {
  6075  				case sink <- event:
  6076  				case err := <-sub.Err():
  6077  					return err
  6078  				case <-quit:
  6079  					return nil
  6080  				}
  6081  			case err := <-sub.Err():
  6082  				return err
  6083  			case <-quit:
  6084  				return nil
  6085  			}
  6086  		}
  6087  	}), nil
  6088  }
  6089  
  6090  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  6091  //
  6092  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  6093  func (_IERC721 *IERC721Filterer) ParseTransfer(log types.Log) (*IERC721Transfer, error) {
  6094  	event := new(IERC721Transfer)
  6095  	if err := _IERC721.contract.UnpackLog(event, "Transfer", log); err != nil {
  6096  		return nil, err
  6097  	}
  6098  	return event, nil
  6099  }
  6100  
  6101  // IERC721BridgeReceiverMetaData contains all meta data concerning the IERC721BridgeReceiver contract.
  6102  var IERC721BridgeReceiverMetaData = &bind.MetaData{
  6103  	ABI: "[{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
  6104  	Sigs: map[string]string{
  6105  		"cf0da290": "onERC721Received(address,uint256,address,bytes)",
  6106  	},
  6107  }
  6108  
  6109  // IERC721BridgeReceiverABI is the input ABI used to generate the binding from.
  6110  // Deprecated: Use IERC721BridgeReceiverMetaData.ABI instead.
  6111  var IERC721BridgeReceiverABI = IERC721BridgeReceiverMetaData.ABI
  6112  
  6113  // IERC721BridgeReceiverBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  6114  const IERC721BridgeReceiverBinRuntime = ``
  6115  
  6116  // IERC721BridgeReceiverFuncSigs maps the 4-byte function signature to its string representation.
  6117  // Deprecated: Use IERC721BridgeReceiverMetaData.Sigs instead.
  6118  var IERC721BridgeReceiverFuncSigs = IERC721BridgeReceiverMetaData.Sigs
  6119  
  6120  // IERC721BridgeReceiver is an auto generated Go binding around a Klaytn contract.
  6121  type IERC721BridgeReceiver struct {
  6122  	IERC721BridgeReceiverCaller     // Read-only binding to the contract
  6123  	IERC721BridgeReceiverTransactor // Write-only binding to the contract
  6124  	IERC721BridgeReceiverFilterer   // Log filterer for contract events
  6125  }
  6126  
  6127  // IERC721BridgeReceiverCaller is an auto generated read-only Go binding around a Klaytn contract.
  6128  type IERC721BridgeReceiverCaller struct {
  6129  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  6130  }
  6131  
  6132  // IERC721BridgeReceiverTransactor is an auto generated write-only Go binding around a Klaytn contract.
  6133  type IERC721BridgeReceiverTransactor struct {
  6134  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  6135  }
  6136  
  6137  // IERC721BridgeReceiverFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  6138  type IERC721BridgeReceiverFilterer struct {
  6139  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  6140  }
  6141  
  6142  // IERC721BridgeReceiverSession is an auto generated Go binding around a Klaytn contract,
  6143  // with pre-set call and transact options.
  6144  type IERC721BridgeReceiverSession struct {
  6145  	Contract     *IERC721BridgeReceiver // Generic contract binding to set the session for
  6146  	CallOpts     bind.CallOpts          // Call options to use throughout this session
  6147  	TransactOpts bind.TransactOpts      // Transaction auth options to use throughout this session
  6148  }
  6149  
  6150  // IERC721BridgeReceiverCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  6151  // with pre-set call options.
  6152  type IERC721BridgeReceiverCallerSession struct {
  6153  	Contract *IERC721BridgeReceiverCaller // Generic contract caller binding to set the session for
  6154  	CallOpts bind.CallOpts                // Call options to use throughout this session
  6155  }
  6156  
  6157  // IERC721BridgeReceiverTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  6158  // with pre-set transact options.
  6159  type IERC721BridgeReceiverTransactorSession struct {
  6160  	Contract     *IERC721BridgeReceiverTransactor // Generic contract transactor binding to set the session for
  6161  	TransactOpts bind.TransactOpts                // Transaction auth options to use throughout this session
  6162  }
  6163  
  6164  // IERC721BridgeReceiverRaw is an auto generated low-level Go binding around a Klaytn contract.
  6165  type IERC721BridgeReceiverRaw struct {
  6166  	Contract *IERC721BridgeReceiver // Generic contract binding to access the raw methods on
  6167  }
  6168  
  6169  // IERC721BridgeReceiverCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  6170  type IERC721BridgeReceiverCallerRaw struct {
  6171  	Contract *IERC721BridgeReceiverCaller // Generic read-only contract binding to access the raw methods on
  6172  }
  6173  
  6174  // IERC721BridgeReceiverTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  6175  type IERC721BridgeReceiverTransactorRaw struct {
  6176  	Contract *IERC721BridgeReceiverTransactor // Generic write-only contract binding to access the raw methods on
  6177  }
  6178  
  6179  // NewIERC721BridgeReceiver creates a new instance of IERC721BridgeReceiver, bound to a specific deployed contract.
  6180  func NewIERC721BridgeReceiver(address common.Address, backend bind.ContractBackend) (*IERC721BridgeReceiver, error) {
  6181  	contract, err := bindIERC721BridgeReceiver(address, backend, backend, backend)
  6182  	if err != nil {
  6183  		return nil, err
  6184  	}
  6185  	return &IERC721BridgeReceiver{IERC721BridgeReceiverCaller: IERC721BridgeReceiverCaller{contract: contract}, IERC721BridgeReceiverTransactor: IERC721BridgeReceiverTransactor{contract: contract}, IERC721BridgeReceiverFilterer: IERC721BridgeReceiverFilterer{contract: contract}}, nil
  6186  }
  6187  
  6188  // NewIERC721BridgeReceiverCaller creates a new read-only instance of IERC721BridgeReceiver, bound to a specific deployed contract.
  6189  func NewIERC721BridgeReceiverCaller(address common.Address, caller bind.ContractCaller) (*IERC721BridgeReceiverCaller, error) {
  6190  	contract, err := bindIERC721BridgeReceiver(address, caller, nil, nil)
  6191  	if err != nil {
  6192  		return nil, err
  6193  	}
  6194  	return &IERC721BridgeReceiverCaller{contract: contract}, nil
  6195  }
  6196  
  6197  // NewIERC721BridgeReceiverTransactor creates a new write-only instance of IERC721BridgeReceiver, bound to a specific deployed contract.
  6198  func NewIERC721BridgeReceiverTransactor(address common.Address, transactor bind.ContractTransactor) (*IERC721BridgeReceiverTransactor, error) {
  6199  	contract, err := bindIERC721BridgeReceiver(address, nil, transactor, nil)
  6200  	if err != nil {
  6201  		return nil, err
  6202  	}
  6203  	return &IERC721BridgeReceiverTransactor{contract: contract}, nil
  6204  }
  6205  
  6206  // NewIERC721BridgeReceiverFilterer creates a new log filterer instance of IERC721BridgeReceiver, bound to a specific deployed contract.
  6207  func NewIERC721BridgeReceiverFilterer(address common.Address, filterer bind.ContractFilterer) (*IERC721BridgeReceiverFilterer, error) {
  6208  	contract, err := bindIERC721BridgeReceiver(address, nil, nil, filterer)
  6209  	if err != nil {
  6210  		return nil, err
  6211  	}
  6212  	return &IERC721BridgeReceiverFilterer{contract: contract}, nil
  6213  }
  6214  
  6215  // bindIERC721BridgeReceiver binds a generic wrapper to an already deployed contract.
  6216  func bindIERC721BridgeReceiver(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  6217  	parsed, err := IERC721BridgeReceiverMetaData.GetAbi()
  6218  	if err != nil {
  6219  		return nil, err
  6220  	}
  6221  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  6222  }
  6223  
  6224  // Call invokes the (constant) contract method with params as input values and
  6225  // sets the output to result. The result type might be a single field for simple
  6226  // returns, a slice of interfaces for anonymous returns and a struct for named
  6227  // returns.
  6228  func (_IERC721BridgeReceiver *IERC721BridgeReceiverRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  6229  	return _IERC721BridgeReceiver.Contract.IERC721BridgeReceiverCaller.contract.Call(opts, result, method, params...)
  6230  }
  6231  
  6232  // Transfer initiates a plain transaction to move funds to the contract, calling
  6233  // its default method if one is available.
  6234  func (_IERC721BridgeReceiver *IERC721BridgeReceiverRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  6235  	return _IERC721BridgeReceiver.Contract.IERC721BridgeReceiverTransactor.contract.Transfer(opts)
  6236  }
  6237  
  6238  // Transact invokes the (paid) contract method with params as input values.
  6239  func (_IERC721BridgeReceiver *IERC721BridgeReceiverRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  6240  	return _IERC721BridgeReceiver.Contract.IERC721BridgeReceiverTransactor.contract.Transact(opts, method, params...)
  6241  }
  6242  
  6243  // Call invokes the (constant) contract method with params as input values and
  6244  // sets the output to result. The result type might be a single field for simple
  6245  // returns, a slice of interfaces for anonymous returns and a struct for named
  6246  // returns.
  6247  func (_IERC721BridgeReceiver *IERC721BridgeReceiverCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  6248  	return _IERC721BridgeReceiver.Contract.contract.Call(opts, result, method, params...)
  6249  }
  6250  
  6251  // Transfer initiates a plain transaction to move funds to the contract, calling
  6252  // its default method if one is available.
  6253  func (_IERC721BridgeReceiver *IERC721BridgeReceiverTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  6254  	return _IERC721BridgeReceiver.Contract.contract.Transfer(opts)
  6255  }
  6256  
  6257  // Transact invokes the (paid) contract method with params as input values.
  6258  func (_IERC721BridgeReceiver *IERC721BridgeReceiverTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  6259  	return _IERC721BridgeReceiver.Contract.contract.Transact(opts, method, params...)
  6260  }
  6261  
  6262  // OnERC721Received is a paid mutator transaction binding the contract method 0xcf0da290.
  6263  //
  6264  // Solidity: function onERC721Received(address _from, uint256 _tokenId, address _to, bytes _extraData) returns()
  6265  func (_IERC721BridgeReceiver *IERC721BridgeReceiverTransactor) OnERC721Received(opts *bind.TransactOpts, _from common.Address, _tokenId *big.Int, _to common.Address, _extraData []byte) (*types.Transaction, error) {
  6266  	return _IERC721BridgeReceiver.contract.Transact(opts, "onERC721Received", _from, _tokenId, _to, _extraData)
  6267  }
  6268  
  6269  // OnERC721Received is a paid mutator transaction binding the contract method 0xcf0da290.
  6270  //
  6271  // Solidity: function onERC721Received(address _from, uint256 _tokenId, address _to, bytes _extraData) returns()
  6272  func (_IERC721BridgeReceiver *IERC721BridgeReceiverSession) OnERC721Received(_from common.Address, _tokenId *big.Int, _to common.Address, _extraData []byte) (*types.Transaction, error) {
  6273  	return _IERC721BridgeReceiver.Contract.OnERC721Received(&_IERC721BridgeReceiver.TransactOpts, _from, _tokenId, _to, _extraData)
  6274  }
  6275  
  6276  // OnERC721Received is a paid mutator transaction binding the contract method 0xcf0da290.
  6277  //
  6278  // Solidity: function onERC721Received(address _from, uint256 _tokenId, address _to, bytes _extraData) returns()
  6279  func (_IERC721BridgeReceiver *IERC721BridgeReceiverTransactorSession) OnERC721Received(_from common.Address, _tokenId *big.Int, _to common.Address, _extraData []byte) (*types.Transaction, error) {
  6280  	return _IERC721BridgeReceiver.Contract.OnERC721Received(&_IERC721BridgeReceiver.TransactOpts, _from, _tokenId, _to, _extraData)
  6281  }
  6282  
  6283  // IERC721ReceiverMetaData contains all meta data concerning the IERC721Receiver contract.
  6284  var IERC721ReceiverMetaData = &bind.MetaData{
  6285  	ABI: "[{\"constant\":false,\"inputs\":[{\"name\":\"operator\",\"type\":\"address\"},{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
  6286  	Sigs: map[string]string{
  6287  		"150b7a02": "onERC721Received(address,address,uint256,bytes)",
  6288  	},
  6289  }
  6290  
  6291  // IERC721ReceiverABI is the input ABI used to generate the binding from.
  6292  // Deprecated: Use IERC721ReceiverMetaData.ABI instead.
  6293  var IERC721ReceiverABI = IERC721ReceiverMetaData.ABI
  6294  
  6295  // IERC721ReceiverBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  6296  const IERC721ReceiverBinRuntime = ``
  6297  
  6298  // IERC721ReceiverFuncSigs maps the 4-byte function signature to its string representation.
  6299  // Deprecated: Use IERC721ReceiverMetaData.Sigs instead.
  6300  var IERC721ReceiverFuncSigs = IERC721ReceiverMetaData.Sigs
  6301  
  6302  // IERC721Receiver is an auto generated Go binding around a Klaytn contract.
  6303  type IERC721Receiver struct {
  6304  	IERC721ReceiverCaller     // Read-only binding to the contract
  6305  	IERC721ReceiverTransactor // Write-only binding to the contract
  6306  	IERC721ReceiverFilterer   // Log filterer for contract events
  6307  }
  6308  
  6309  // IERC721ReceiverCaller is an auto generated read-only Go binding around a Klaytn contract.
  6310  type IERC721ReceiverCaller struct {
  6311  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  6312  }
  6313  
  6314  // IERC721ReceiverTransactor is an auto generated write-only Go binding around a Klaytn contract.
  6315  type IERC721ReceiverTransactor struct {
  6316  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  6317  }
  6318  
  6319  // IERC721ReceiverFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  6320  type IERC721ReceiverFilterer struct {
  6321  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  6322  }
  6323  
  6324  // IERC721ReceiverSession is an auto generated Go binding around a Klaytn contract,
  6325  // with pre-set call and transact options.
  6326  type IERC721ReceiverSession struct {
  6327  	Contract     *IERC721Receiver  // Generic contract binding to set the session for
  6328  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  6329  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  6330  }
  6331  
  6332  // IERC721ReceiverCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  6333  // with pre-set call options.
  6334  type IERC721ReceiverCallerSession struct {
  6335  	Contract *IERC721ReceiverCaller // Generic contract caller binding to set the session for
  6336  	CallOpts bind.CallOpts          // Call options to use throughout this session
  6337  }
  6338  
  6339  // IERC721ReceiverTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  6340  // with pre-set transact options.
  6341  type IERC721ReceiverTransactorSession struct {
  6342  	Contract     *IERC721ReceiverTransactor // Generic contract transactor binding to set the session for
  6343  	TransactOpts bind.TransactOpts          // Transaction auth options to use throughout this session
  6344  }
  6345  
  6346  // IERC721ReceiverRaw is an auto generated low-level Go binding around a Klaytn contract.
  6347  type IERC721ReceiverRaw struct {
  6348  	Contract *IERC721Receiver // Generic contract binding to access the raw methods on
  6349  }
  6350  
  6351  // IERC721ReceiverCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  6352  type IERC721ReceiverCallerRaw struct {
  6353  	Contract *IERC721ReceiverCaller // Generic read-only contract binding to access the raw methods on
  6354  }
  6355  
  6356  // IERC721ReceiverTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  6357  type IERC721ReceiverTransactorRaw struct {
  6358  	Contract *IERC721ReceiverTransactor // Generic write-only contract binding to access the raw methods on
  6359  }
  6360  
  6361  // NewIERC721Receiver creates a new instance of IERC721Receiver, bound to a specific deployed contract.
  6362  func NewIERC721Receiver(address common.Address, backend bind.ContractBackend) (*IERC721Receiver, error) {
  6363  	contract, err := bindIERC721Receiver(address, backend, backend, backend)
  6364  	if err != nil {
  6365  		return nil, err
  6366  	}
  6367  	return &IERC721Receiver{IERC721ReceiverCaller: IERC721ReceiverCaller{contract: contract}, IERC721ReceiverTransactor: IERC721ReceiverTransactor{contract: contract}, IERC721ReceiverFilterer: IERC721ReceiverFilterer{contract: contract}}, nil
  6368  }
  6369  
  6370  // NewIERC721ReceiverCaller creates a new read-only instance of IERC721Receiver, bound to a specific deployed contract.
  6371  func NewIERC721ReceiverCaller(address common.Address, caller bind.ContractCaller) (*IERC721ReceiverCaller, error) {
  6372  	contract, err := bindIERC721Receiver(address, caller, nil, nil)
  6373  	if err != nil {
  6374  		return nil, err
  6375  	}
  6376  	return &IERC721ReceiverCaller{contract: contract}, nil
  6377  }
  6378  
  6379  // NewIERC721ReceiverTransactor creates a new write-only instance of IERC721Receiver, bound to a specific deployed contract.
  6380  func NewIERC721ReceiverTransactor(address common.Address, transactor bind.ContractTransactor) (*IERC721ReceiverTransactor, error) {
  6381  	contract, err := bindIERC721Receiver(address, nil, transactor, nil)
  6382  	if err != nil {
  6383  		return nil, err
  6384  	}
  6385  	return &IERC721ReceiverTransactor{contract: contract}, nil
  6386  }
  6387  
  6388  // NewIERC721ReceiverFilterer creates a new log filterer instance of IERC721Receiver, bound to a specific deployed contract.
  6389  func NewIERC721ReceiverFilterer(address common.Address, filterer bind.ContractFilterer) (*IERC721ReceiverFilterer, error) {
  6390  	contract, err := bindIERC721Receiver(address, nil, nil, filterer)
  6391  	if err != nil {
  6392  		return nil, err
  6393  	}
  6394  	return &IERC721ReceiverFilterer{contract: contract}, nil
  6395  }
  6396  
  6397  // bindIERC721Receiver binds a generic wrapper to an already deployed contract.
  6398  func bindIERC721Receiver(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  6399  	parsed, err := IERC721ReceiverMetaData.GetAbi()
  6400  	if err != nil {
  6401  		return nil, err
  6402  	}
  6403  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  6404  }
  6405  
  6406  // Call invokes the (constant) contract method with params as input values and
  6407  // sets the output to result. The result type might be a single field for simple
  6408  // returns, a slice of interfaces for anonymous returns and a struct for named
  6409  // returns.
  6410  func (_IERC721Receiver *IERC721ReceiverRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  6411  	return _IERC721Receiver.Contract.IERC721ReceiverCaller.contract.Call(opts, result, method, params...)
  6412  }
  6413  
  6414  // Transfer initiates a plain transaction to move funds to the contract, calling
  6415  // its default method if one is available.
  6416  func (_IERC721Receiver *IERC721ReceiverRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  6417  	return _IERC721Receiver.Contract.IERC721ReceiverTransactor.contract.Transfer(opts)
  6418  }
  6419  
  6420  // Transact invokes the (paid) contract method with params as input values.
  6421  func (_IERC721Receiver *IERC721ReceiverRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  6422  	return _IERC721Receiver.Contract.IERC721ReceiverTransactor.contract.Transact(opts, method, params...)
  6423  }
  6424  
  6425  // Call invokes the (constant) contract method with params as input values and
  6426  // sets the output to result. The result type might be a single field for simple
  6427  // returns, a slice of interfaces for anonymous returns and a struct for named
  6428  // returns.
  6429  func (_IERC721Receiver *IERC721ReceiverCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  6430  	return _IERC721Receiver.Contract.contract.Call(opts, result, method, params...)
  6431  }
  6432  
  6433  // Transfer initiates a plain transaction to move funds to the contract, calling
  6434  // its default method if one is available.
  6435  func (_IERC721Receiver *IERC721ReceiverTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  6436  	return _IERC721Receiver.Contract.contract.Transfer(opts)
  6437  }
  6438  
  6439  // Transact invokes the (paid) contract method with params as input values.
  6440  func (_IERC721Receiver *IERC721ReceiverTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  6441  	return _IERC721Receiver.Contract.contract.Transact(opts, method, params...)
  6442  }
  6443  
  6444  // OnERC721Received is a paid mutator transaction binding the contract method 0x150b7a02.
  6445  //
  6446  // Solidity: function onERC721Received(address operator, address from, uint256 tokenId, bytes data) returns(bytes4)
  6447  func (_IERC721Receiver *IERC721ReceiverTransactor) OnERC721Received(opts *bind.TransactOpts, operator common.Address, from common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
  6448  	return _IERC721Receiver.contract.Transact(opts, "onERC721Received", operator, from, tokenId, data)
  6449  }
  6450  
  6451  // OnERC721Received is a paid mutator transaction binding the contract method 0x150b7a02.
  6452  //
  6453  // Solidity: function onERC721Received(address operator, address from, uint256 tokenId, bytes data) returns(bytes4)
  6454  func (_IERC721Receiver *IERC721ReceiverSession) OnERC721Received(operator common.Address, from common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
  6455  	return _IERC721Receiver.Contract.OnERC721Received(&_IERC721Receiver.TransactOpts, operator, from, tokenId, data)
  6456  }
  6457  
  6458  // OnERC721Received is a paid mutator transaction binding the contract method 0x150b7a02.
  6459  //
  6460  // Solidity: function onERC721Received(address operator, address from, uint256 tokenId, bytes data) returns(bytes4)
  6461  func (_IERC721Receiver *IERC721ReceiverTransactorSession) OnERC721Received(operator common.Address, from common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
  6462  	return _IERC721Receiver.Contract.OnERC721Received(&_IERC721Receiver.TransactOpts, operator, from, tokenId, data)
  6463  }
  6464  
  6465  // MinterRoleMetaData contains all meta data concerning the MinterRole contract.
  6466  var MinterRoleMetaData = &bind.MetaData{
  6467  	ABI: "[{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isMinter\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterRemoved\",\"type\":\"event\"}]",
  6468  	Sigs: map[string]string{
  6469  		"983b2d56": "addMinter(address)",
  6470  		"aa271e1a": "isMinter(address)",
  6471  		"98650275": "renounceMinter()",
  6472  	},
  6473  }
  6474  
  6475  // MinterRoleABI is the input ABI used to generate the binding from.
  6476  // Deprecated: Use MinterRoleMetaData.ABI instead.
  6477  var MinterRoleABI = MinterRoleMetaData.ABI
  6478  
  6479  // MinterRoleBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  6480  const MinterRoleBinRuntime = ``
  6481  
  6482  // MinterRoleFuncSigs maps the 4-byte function signature to its string representation.
  6483  // Deprecated: Use MinterRoleMetaData.Sigs instead.
  6484  var MinterRoleFuncSigs = MinterRoleMetaData.Sigs
  6485  
  6486  // MinterRole is an auto generated Go binding around a Klaytn contract.
  6487  type MinterRole struct {
  6488  	MinterRoleCaller     // Read-only binding to the contract
  6489  	MinterRoleTransactor // Write-only binding to the contract
  6490  	MinterRoleFilterer   // Log filterer for contract events
  6491  }
  6492  
  6493  // MinterRoleCaller is an auto generated read-only Go binding around a Klaytn contract.
  6494  type MinterRoleCaller struct {
  6495  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  6496  }
  6497  
  6498  // MinterRoleTransactor is an auto generated write-only Go binding around a Klaytn contract.
  6499  type MinterRoleTransactor struct {
  6500  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  6501  }
  6502  
  6503  // MinterRoleFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  6504  type MinterRoleFilterer struct {
  6505  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  6506  }
  6507  
  6508  // MinterRoleSession is an auto generated Go binding around a Klaytn contract,
  6509  // with pre-set call and transact options.
  6510  type MinterRoleSession struct {
  6511  	Contract     *MinterRole       // Generic contract binding to set the session for
  6512  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  6513  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  6514  }
  6515  
  6516  // MinterRoleCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  6517  // with pre-set call options.
  6518  type MinterRoleCallerSession struct {
  6519  	Contract *MinterRoleCaller // Generic contract caller binding to set the session for
  6520  	CallOpts bind.CallOpts     // Call options to use throughout this session
  6521  }
  6522  
  6523  // MinterRoleTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  6524  // with pre-set transact options.
  6525  type MinterRoleTransactorSession struct {
  6526  	Contract     *MinterRoleTransactor // Generic contract transactor binding to set the session for
  6527  	TransactOpts bind.TransactOpts     // Transaction auth options to use throughout this session
  6528  }
  6529  
  6530  // MinterRoleRaw is an auto generated low-level Go binding around a Klaytn contract.
  6531  type MinterRoleRaw struct {
  6532  	Contract *MinterRole // Generic contract binding to access the raw methods on
  6533  }
  6534  
  6535  // MinterRoleCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  6536  type MinterRoleCallerRaw struct {
  6537  	Contract *MinterRoleCaller // Generic read-only contract binding to access the raw methods on
  6538  }
  6539  
  6540  // MinterRoleTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  6541  type MinterRoleTransactorRaw struct {
  6542  	Contract *MinterRoleTransactor // Generic write-only contract binding to access the raw methods on
  6543  }
  6544  
  6545  // NewMinterRole creates a new instance of MinterRole, bound to a specific deployed contract.
  6546  func NewMinterRole(address common.Address, backend bind.ContractBackend) (*MinterRole, error) {
  6547  	contract, err := bindMinterRole(address, backend, backend, backend)
  6548  	if err != nil {
  6549  		return nil, err
  6550  	}
  6551  	return &MinterRole{MinterRoleCaller: MinterRoleCaller{contract: contract}, MinterRoleTransactor: MinterRoleTransactor{contract: contract}, MinterRoleFilterer: MinterRoleFilterer{contract: contract}}, nil
  6552  }
  6553  
  6554  // NewMinterRoleCaller creates a new read-only instance of MinterRole, bound to a specific deployed contract.
  6555  func NewMinterRoleCaller(address common.Address, caller bind.ContractCaller) (*MinterRoleCaller, error) {
  6556  	contract, err := bindMinterRole(address, caller, nil, nil)
  6557  	if err != nil {
  6558  		return nil, err
  6559  	}
  6560  	return &MinterRoleCaller{contract: contract}, nil
  6561  }
  6562  
  6563  // NewMinterRoleTransactor creates a new write-only instance of MinterRole, bound to a specific deployed contract.
  6564  func NewMinterRoleTransactor(address common.Address, transactor bind.ContractTransactor) (*MinterRoleTransactor, error) {
  6565  	contract, err := bindMinterRole(address, nil, transactor, nil)
  6566  	if err != nil {
  6567  		return nil, err
  6568  	}
  6569  	return &MinterRoleTransactor{contract: contract}, nil
  6570  }
  6571  
  6572  // NewMinterRoleFilterer creates a new log filterer instance of MinterRole, bound to a specific deployed contract.
  6573  func NewMinterRoleFilterer(address common.Address, filterer bind.ContractFilterer) (*MinterRoleFilterer, error) {
  6574  	contract, err := bindMinterRole(address, nil, nil, filterer)
  6575  	if err != nil {
  6576  		return nil, err
  6577  	}
  6578  	return &MinterRoleFilterer{contract: contract}, nil
  6579  }
  6580  
  6581  // bindMinterRole binds a generic wrapper to an already deployed contract.
  6582  func bindMinterRole(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  6583  	parsed, err := MinterRoleMetaData.GetAbi()
  6584  	if err != nil {
  6585  		return nil, err
  6586  	}
  6587  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  6588  }
  6589  
  6590  // Call invokes the (constant) contract method with params as input values and
  6591  // sets the output to result. The result type might be a single field for simple
  6592  // returns, a slice of interfaces for anonymous returns and a struct for named
  6593  // returns.
  6594  func (_MinterRole *MinterRoleRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  6595  	return _MinterRole.Contract.MinterRoleCaller.contract.Call(opts, result, method, params...)
  6596  }
  6597  
  6598  // Transfer initiates a plain transaction to move funds to the contract, calling
  6599  // its default method if one is available.
  6600  func (_MinterRole *MinterRoleRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  6601  	return _MinterRole.Contract.MinterRoleTransactor.contract.Transfer(opts)
  6602  }
  6603  
  6604  // Transact invokes the (paid) contract method with params as input values.
  6605  func (_MinterRole *MinterRoleRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  6606  	return _MinterRole.Contract.MinterRoleTransactor.contract.Transact(opts, method, params...)
  6607  }
  6608  
  6609  // Call invokes the (constant) contract method with params as input values and
  6610  // sets the output to result. The result type might be a single field for simple
  6611  // returns, a slice of interfaces for anonymous returns and a struct for named
  6612  // returns.
  6613  func (_MinterRole *MinterRoleCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  6614  	return _MinterRole.Contract.contract.Call(opts, result, method, params...)
  6615  }
  6616  
  6617  // Transfer initiates a plain transaction to move funds to the contract, calling
  6618  // its default method if one is available.
  6619  func (_MinterRole *MinterRoleTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  6620  	return _MinterRole.Contract.contract.Transfer(opts)
  6621  }
  6622  
  6623  // Transact invokes the (paid) contract method with params as input values.
  6624  func (_MinterRole *MinterRoleTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  6625  	return _MinterRole.Contract.contract.Transact(opts, method, params...)
  6626  }
  6627  
  6628  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
  6629  //
  6630  // Solidity: function isMinter(address account) view returns(bool)
  6631  func (_MinterRole *MinterRoleCaller) IsMinter(opts *bind.CallOpts, account common.Address) (bool, error) {
  6632  	var out []interface{}
  6633  	err := _MinterRole.contract.Call(opts, &out, "isMinter", account)
  6634  
  6635  	if err != nil {
  6636  		return *new(bool), err
  6637  	}
  6638  
  6639  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  6640  
  6641  	return out0, err
  6642  
  6643  }
  6644  
  6645  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
  6646  //
  6647  // Solidity: function isMinter(address account) view returns(bool)
  6648  func (_MinterRole *MinterRoleSession) IsMinter(account common.Address) (bool, error) {
  6649  	return _MinterRole.Contract.IsMinter(&_MinterRole.CallOpts, account)
  6650  }
  6651  
  6652  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
  6653  //
  6654  // Solidity: function isMinter(address account) view returns(bool)
  6655  func (_MinterRole *MinterRoleCallerSession) IsMinter(account common.Address) (bool, error) {
  6656  	return _MinterRole.Contract.IsMinter(&_MinterRole.CallOpts, account)
  6657  }
  6658  
  6659  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
  6660  //
  6661  // Solidity: function addMinter(address account) returns()
  6662  func (_MinterRole *MinterRoleTransactor) AddMinter(opts *bind.TransactOpts, account common.Address) (*types.Transaction, error) {
  6663  	return _MinterRole.contract.Transact(opts, "addMinter", account)
  6664  }
  6665  
  6666  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
  6667  //
  6668  // Solidity: function addMinter(address account) returns()
  6669  func (_MinterRole *MinterRoleSession) AddMinter(account common.Address) (*types.Transaction, error) {
  6670  	return _MinterRole.Contract.AddMinter(&_MinterRole.TransactOpts, account)
  6671  }
  6672  
  6673  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
  6674  //
  6675  // Solidity: function addMinter(address account) returns()
  6676  func (_MinterRole *MinterRoleTransactorSession) AddMinter(account common.Address) (*types.Transaction, error) {
  6677  	return _MinterRole.Contract.AddMinter(&_MinterRole.TransactOpts, account)
  6678  }
  6679  
  6680  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
  6681  //
  6682  // Solidity: function renounceMinter() returns()
  6683  func (_MinterRole *MinterRoleTransactor) RenounceMinter(opts *bind.TransactOpts) (*types.Transaction, error) {
  6684  	return _MinterRole.contract.Transact(opts, "renounceMinter")
  6685  }
  6686  
  6687  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
  6688  //
  6689  // Solidity: function renounceMinter() returns()
  6690  func (_MinterRole *MinterRoleSession) RenounceMinter() (*types.Transaction, error) {
  6691  	return _MinterRole.Contract.RenounceMinter(&_MinterRole.TransactOpts)
  6692  }
  6693  
  6694  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
  6695  //
  6696  // Solidity: function renounceMinter() returns()
  6697  func (_MinterRole *MinterRoleTransactorSession) RenounceMinter() (*types.Transaction, error) {
  6698  	return _MinterRole.Contract.RenounceMinter(&_MinterRole.TransactOpts)
  6699  }
  6700  
  6701  // MinterRoleMinterAddedIterator is returned from FilterMinterAdded and is used to iterate over the raw logs and unpacked data for MinterAdded events raised by the MinterRole contract.
  6702  type MinterRoleMinterAddedIterator struct {
  6703  	Event *MinterRoleMinterAdded // Event containing the contract specifics and raw log
  6704  
  6705  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  6706  	event    string              // Event name to use for unpacking event data
  6707  
  6708  	logs chan types.Log      // Log channel receiving the found contract events
  6709  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  6710  	done bool                // Whether the subscription completed delivering logs
  6711  	fail error               // Occurred error to stop iteration
  6712  }
  6713  
  6714  // Next advances the iterator to the subsequent event, returning whether there
  6715  // are any more events found. In case of a retrieval or parsing error, false is
  6716  // returned and Error() can be queried for the exact failure.
  6717  func (it *MinterRoleMinterAddedIterator) Next() bool {
  6718  	// If the iterator failed, stop iterating
  6719  	if it.fail != nil {
  6720  		return false
  6721  	}
  6722  	// If the iterator completed, deliver directly whatever's available
  6723  	if it.done {
  6724  		select {
  6725  		case log := <-it.logs:
  6726  			it.Event = new(MinterRoleMinterAdded)
  6727  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6728  				it.fail = err
  6729  				return false
  6730  			}
  6731  			it.Event.Raw = log
  6732  			return true
  6733  
  6734  		default:
  6735  			return false
  6736  		}
  6737  	}
  6738  	// Iterator still in progress, wait for either a data or an error event
  6739  	select {
  6740  	case log := <-it.logs:
  6741  		it.Event = new(MinterRoleMinterAdded)
  6742  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6743  			it.fail = err
  6744  			return false
  6745  		}
  6746  		it.Event.Raw = log
  6747  		return true
  6748  
  6749  	case err := <-it.sub.Err():
  6750  		it.done = true
  6751  		it.fail = err
  6752  		return it.Next()
  6753  	}
  6754  }
  6755  
  6756  // Error returns any retrieval or parsing error occurred during filtering.
  6757  func (it *MinterRoleMinterAddedIterator) Error() error {
  6758  	return it.fail
  6759  }
  6760  
  6761  // Close terminates the iteration process, releasing any pending underlying
  6762  // resources.
  6763  func (it *MinterRoleMinterAddedIterator) Close() error {
  6764  	it.sub.Unsubscribe()
  6765  	return nil
  6766  }
  6767  
  6768  // MinterRoleMinterAdded represents a MinterAdded event raised by the MinterRole contract.
  6769  type MinterRoleMinterAdded struct {
  6770  	Account common.Address
  6771  	Raw     types.Log // Blockchain specific contextual infos
  6772  }
  6773  
  6774  // FilterMinterAdded is a free log retrieval operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
  6775  //
  6776  // Solidity: event MinterAdded(address indexed account)
  6777  func (_MinterRole *MinterRoleFilterer) FilterMinterAdded(opts *bind.FilterOpts, account []common.Address) (*MinterRoleMinterAddedIterator, error) {
  6778  
  6779  	var accountRule []interface{}
  6780  	for _, accountItem := range account {
  6781  		accountRule = append(accountRule, accountItem)
  6782  	}
  6783  
  6784  	logs, sub, err := _MinterRole.contract.FilterLogs(opts, "MinterAdded", accountRule)
  6785  	if err != nil {
  6786  		return nil, err
  6787  	}
  6788  	return &MinterRoleMinterAddedIterator{contract: _MinterRole.contract, event: "MinterAdded", logs: logs, sub: sub}, nil
  6789  }
  6790  
  6791  // WatchMinterAdded is a free log subscription operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
  6792  //
  6793  // Solidity: event MinterAdded(address indexed account)
  6794  func (_MinterRole *MinterRoleFilterer) WatchMinterAdded(opts *bind.WatchOpts, sink chan<- *MinterRoleMinterAdded, account []common.Address) (event.Subscription, error) {
  6795  
  6796  	var accountRule []interface{}
  6797  	for _, accountItem := range account {
  6798  		accountRule = append(accountRule, accountItem)
  6799  	}
  6800  
  6801  	logs, sub, err := _MinterRole.contract.WatchLogs(opts, "MinterAdded", accountRule)
  6802  	if err != nil {
  6803  		return nil, err
  6804  	}
  6805  	return event.NewSubscription(func(quit <-chan struct{}) error {
  6806  		defer sub.Unsubscribe()
  6807  		for {
  6808  			select {
  6809  			case log := <-logs:
  6810  				// New log arrived, parse the event and forward to the user
  6811  				event := new(MinterRoleMinterAdded)
  6812  				if err := _MinterRole.contract.UnpackLog(event, "MinterAdded", log); err != nil {
  6813  					return err
  6814  				}
  6815  				event.Raw = log
  6816  
  6817  				select {
  6818  				case sink <- event:
  6819  				case err := <-sub.Err():
  6820  					return err
  6821  				case <-quit:
  6822  					return nil
  6823  				}
  6824  			case err := <-sub.Err():
  6825  				return err
  6826  			case <-quit:
  6827  				return nil
  6828  			}
  6829  		}
  6830  	}), nil
  6831  }
  6832  
  6833  // ParseMinterAdded is a log parse operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
  6834  //
  6835  // Solidity: event MinterAdded(address indexed account)
  6836  func (_MinterRole *MinterRoleFilterer) ParseMinterAdded(log types.Log) (*MinterRoleMinterAdded, error) {
  6837  	event := new(MinterRoleMinterAdded)
  6838  	if err := _MinterRole.contract.UnpackLog(event, "MinterAdded", log); err != nil {
  6839  		return nil, err
  6840  	}
  6841  	return event, nil
  6842  }
  6843  
  6844  // MinterRoleMinterRemovedIterator is returned from FilterMinterRemoved and is used to iterate over the raw logs and unpacked data for MinterRemoved events raised by the MinterRole contract.
  6845  type MinterRoleMinterRemovedIterator struct {
  6846  	Event *MinterRoleMinterRemoved // Event containing the contract specifics and raw log
  6847  
  6848  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  6849  	event    string              // Event name to use for unpacking event data
  6850  
  6851  	logs chan types.Log      // Log channel receiving the found contract events
  6852  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  6853  	done bool                // Whether the subscription completed delivering logs
  6854  	fail error               // Occurred error to stop iteration
  6855  }
  6856  
  6857  // Next advances the iterator to the subsequent event, returning whether there
  6858  // are any more events found. In case of a retrieval or parsing error, false is
  6859  // returned and Error() can be queried for the exact failure.
  6860  func (it *MinterRoleMinterRemovedIterator) Next() bool {
  6861  	// If the iterator failed, stop iterating
  6862  	if it.fail != nil {
  6863  		return false
  6864  	}
  6865  	// If the iterator completed, deliver directly whatever's available
  6866  	if it.done {
  6867  		select {
  6868  		case log := <-it.logs:
  6869  			it.Event = new(MinterRoleMinterRemoved)
  6870  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6871  				it.fail = err
  6872  				return false
  6873  			}
  6874  			it.Event.Raw = log
  6875  			return true
  6876  
  6877  		default:
  6878  			return false
  6879  		}
  6880  	}
  6881  	// Iterator still in progress, wait for either a data or an error event
  6882  	select {
  6883  	case log := <-it.logs:
  6884  		it.Event = new(MinterRoleMinterRemoved)
  6885  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6886  			it.fail = err
  6887  			return false
  6888  		}
  6889  		it.Event.Raw = log
  6890  		return true
  6891  
  6892  	case err := <-it.sub.Err():
  6893  		it.done = true
  6894  		it.fail = err
  6895  		return it.Next()
  6896  	}
  6897  }
  6898  
  6899  // Error returns any retrieval or parsing error occurred during filtering.
  6900  func (it *MinterRoleMinterRemovedIterator) Error() error {
  6901  	return it.fail
  6902  }
  6903  
  6904  // Close terminates the iteration process, releasing any pending underlying
  6905  // resources.
  6906  func (it *MinterRoleMinterRemovedIterator) Close() error {
  6907  	it.sub.Unsubscribe()
  6908  	return nil
  6909  }
  6910  
  6911  // MinterRoleMinterRemoved represents a MinterRemoved event raised by the MinterRole contract.
  6912  type MinterRoleMinterRemoved struct {
  6913  	Account common.Address
  6914  	Raw     types.Log // Blockchain specific contextual infos
  6915  }
  6916  
  6917  // FilterMinterRemoved is a free log retrieval operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
  6918  //
  6919  // Solidity: event MinterRemoved(address indexed account)
  6920  func (_MinterRole *MinterRoleFilterer) FilterMinterRemoved(opts *bind.FilterOpts, account []common.Address) (*MinterRoleMinterRemovedIterator, error) {
  6921  
  6922  	var accountRule []interface{}
  6923  	for _, accountItem := range account {
  6924  		accountRule = append(accountRule, accountItem)
  6925  	}
  6926  
  6927  	logs, sub, err := _MinterRole.contract.FilterLogs(opts, "MinterRemoved", accountRule)
  6928  	if err != nil {
  6929  		return nil, err
  6930  	}
  6931  	return &MinterRoleMinterRemovedIterator{contract: _MinterRole.contract, event: "MinterRemoved", logs: logs, sub: sub}, nil
  6932  }
  6933  
  6934  // WatchMinterRemoved is a free log subscription operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
  6935  //
  6936  // Solidity: event MinterRemoved(address indexed account)
  6937  func (_MinterRole *MinterRoleFilterer) WatchMinterRemoved(opts *bind.WatchOpts, sink chan<- *MinterRoleMinterRemoved, account []common.Address) (event.Subscription, error) {
  6938  
  6939  	var accountRule []interface{}
  6940  	for _, accountItem := range account {
  6941  		accountRule = append(accountRule, accountItem)
  6942  	}
  6943  
  6944  	logs, sub, err := _MinterRole.contract.WatchLogs(opts, "MinterRemoved", accountRule)
  6945  	if err != nil {
  6946  		return nil, err
  6947  	}
  6948  	return event.NewSubscription(func(quit <-chan struct{}) error {
  6949  		defer sub.Unsubscribe()
  6950  		for {
  6951  			select {
  6952  			case log := <-logs:
  6953  				// New log arrived, parse the event and forward to the user
  6954  				event := new(MinterRoleMinterRemoved)
  6955  				if err := _MinterRole.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
  6956  					return err
  6957  				}
  6958  				event.Raw = log
  6959  
  6960  				select {
  6961  				case sink <- event:
  6962  				case err := <-sub.Err():
  6963  					return err
  6964  				case <-quit:
  6965  					return nil
  6966  				}
  6967  			case err := <-sub.Err():
  6968  				return err
  6969  			case <-quit:
  6970  				return nil
  6971  			}
  6972  		}
  6973  	}), nil
  6974  }
  6975  
  6976  // ParseMinterRemoved is a log parse operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
  6977  //
  6978  // Solidity: event MinterRemoved(address indexed account)
  6979  func (_MinterRole *MinterRoleFilterer) ParseMinterRemoved(log types.Log) (*MinterRoleMinterRemoved, error) {
  6980  	event := new(MinterRoleMinterRemoved)
  6981  	if err := _MinterRole.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
  6982  		return nil, err
  6983  	}
  6984  	return event, nil
  6985  }
  6986  
  6987  // OwnableMetaData contains all meta data concerning the Ownable contract.
  6988  var OwnableMetaData = &bind.MetaData{
  6989  	ABI: "[{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}]",
  6990  	Sigs: map[string]string{
  6991  		"8f32d59b": "isOwner()",
  6992  		"8da5cb5b": "owner()",
  6993  		"715018a6": "renounceOwnership()",
  6994  		"f2fde38b": "transferOwnership(address)",
  6995  	},
  6996  }
  6997  
  6998  // OwnableABI is the input ABI used to generate the binding from.
  6999  // Deprecated: Use OwnableMetaData.ABI instead.
  7000  var OwnableABI = OwnableMetaData.ABI
  7001  
  7002  // OwnableBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  7003  const OwnableBinRuntime = ``
  7004  
  7005  // OwnableFuncSigs maps the 4-byte function signature to its string representation.
  7006  // Deprecated: Use OwnableMetaData.Sigs instead.
  7007  var OwnableFuncSigs = OwnableMetaData.Sigs
  7008  
  7009  // Ownable is an auto generated Go binding around a Klaytn contract.
  7010  type Ownable struct {
  7011  	OwnableCaller     // Read-only binding to the contract
  7012  	OwnableTransactor // Write-only binding to the contract
  7013  	OwnableFilterer   // Log filterer for contract events
  7014  }
  7015  
  7016  // OwnableCaller is an auto generated read-only Go binding around a Klaytn contract.
  7017  type OwnableCaller struct {
  7018  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  7019  }
  7020  
  7021  // OwnableTransactor is an auto generated write-only Go binding around a Klaytn contract.
  7022  type OwnableTransactor struct {
  7023  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  7024  }
  7025  
  7026  // OwnableFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  7027  type OwnableFilterer struct {
  7028  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  7029  }
  7030  
  7031  // OwnableSession is an auto generated Go binding around a Klaytn contract,
  7032  // with pre-set call and transact options.
  7033  type OwnableSession struct {
  7034  	Contract     *Ownable          // Generic contract binding to set the session for
  7035  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  7036  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  7037  }
  7038  
  7039  // OwnableCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  7040  // with pre-set call options.
  7041  type OwnableCallerSession struct {
  7042  	Contract *OwnableCaller // Generic contract caller binding to set the session for
  7043  	CallOpts bind.CallOpts  // Call options to use throughout this session
  7044  }
  7045  
  7046  // OwnableTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  7047  // with pre-set transact options.
  7048  type OwnableTransactorSession struct {
  7049  	Contract     *OwnableTransactor // Generic contract transactor binding to set the session for
  7050  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
  7051  }
  7052  
  7053  // OwnableRaw is an auto generated low-level Go binding around a Klaytn contract.
  7054  type OwnableRaw struct {
  7055  	Contract *Ownable // Generic contract binding to access the raw methods on
  7056  }
  7057  
  7058  // OwnableCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  7059  type OwnableCallerRaw struct {
  7060  	Contract *OwnableCaller // Generic read-only contract binding to access the raw methods on
  7061  }
  7062  
  7063  // OwnableTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  7064  type OwnableTransactorRaw struct {
  7065  	Contract *OwnableTransactor // Generic write-only contract binding to access the raw methods on
  7066  }
  7067  
  7068  // NewOwnable creates a new instance of Ownable, bound to a specific deployed contract.
  7069  func NewOwnable(address common.Address, backend bind.ContractBackend) (*Ownable, error) {
  7070  	contract, err := bindOwnable(address, backend, backend, backend)
  7071  	if err != nil {
  7072  		return nil, err
  7073  	}
  7074  	return &Ownable{OwnableCaller: OwnableCaller{contract: contract}, OwnableTransactor: OwnableTransactor{contract: contract}, OwnableFilterer: OwnableFilterer{contract: contract}}, nil
  7075  }
  7076  
  7077  // NewOwnableCaller creates a new read-only instance of Ownable, bound to a specific deployed contract.
  7078  func NewOwnableCaller(address common.Address, caller bind.ContractCaller) (*OwnableCaller, error) {
  7079  	contract, err := bindOwnable(address, caller, nil, nil)
  7080  	if err != nil {
  7081  		return nil, err
  7082  	}
  7083  	return &OwnableCaller{contract: contract}, nil
  7084  }
  7085  
  7086  // NewOwnableTransactor creates a new write-only instance of Ownable, bound to a specific deployed contract.
  7087  func NewOwnableTransactor(address common.Address, transactor bind.ContractTransactor) (*OwnableTransactor, error) {
  7088  	contract, err := bindOwnable(address, nil, transactor, nil)
  7089  	if err != nil {
  7090  		return nil, err
  7091  	}
  7092  	return &OwnableTransactor{contract: contract}, nil
  7093  }
  7094  
  7095  // NewOwnableFilterer creates a new log filterer instance of Ownable, bound to a specific deployed contract.
  7096  func NewOwnableFilterer(address common.Address, filterer bind.ContractFilterer) (*OwnableFilterer, error) {
  7097  	contract, err := bindOwnable(address, nil, nil, filterer)
  7098  	if err != nil {
  7099  		return nil, err
  7100  	}
  7101  	return &OwnableFilterer{contract: contract}, nil
  7102  }
  7103  
  7104  // bindOwnable binds a generic wrapper to an already deployed contract.
  7105  func bindOwnable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  7106  	parsed, err := OwnableMetaData.GetAbi()
  7107  	if err != nil {
  7108  		return nil, err
  7109  	}
  7110  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  7111  }
  7112  
  7113  // Call invokes the (constant) contract method with params as input values and
  7114  // sets the output to result. The result type might be a single field for simple
  7115  // returns, a slice of interfaces for anonymous returns and a struct for named
  7116  // returns.
  7117  func (_Ownable *OwnableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  7118  	return _Ownable.Contract.OwnableCaller.contract.Call(opts, result, method, params...)
  7119  }
  7120  
  7121  // Transfer initiates a plain transaction to move funds to the contract, calling
  7122  // its default method if one is available.
  7123  func (_Ownable *OwnableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  7124  	return _Ownable.Contract.OwnableTransactor.contract.Transfer(opts)
  7125  }
  7126  
  7127  // Transact invokes the (paid) contract method with params as input values.
  7128  func (_Ownable *OwnableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  7129  	return _Ownable.Contract.OwnableTransactor.contract.Transact(opts, method, params...)
  7130  }
  7131  
  7132  // Call invokes the (constant) contract method with params as input values and
  7133  // sets the output to result. The result type might be a single field for simple
  7134  // returns, a slice of interfaces for anonymous returns and a struct for named
  7135  // returns.
  7136  func (_Ownable *OwnableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  7137  	return _Ownable.Contract.contract.Call(opts, result, method, params...)
  7138  }
  7139  
  7140  // Transfer initiates a plain transaction to move funds to the contract, calling
  7141  // its default method if one is available.
  7142  func (_Ownable *OwnableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  7143  	return _Ownable.Contract.contract.Transfer(opts)
  7144  }
  7145  
  7146  // Transact invokes the (paid) contract method with params as input values.
  7147  func (_Ownable *OwnableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  7148  	return _Ownable.Contract.contract.Transact(opts, method, params...)
  7149  }
  7150  
  7151  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  7152  //
  7153  // Solidity: function isOwner() view returns(bool)
  7154  func (_Ownable *OwnableCaller) IsOwner(opts *bind.CallOpts) (bool, error) {
  7155  	var out []interface{}
  7156  	err := _Ownable.contract.Call(opts, &out, "isOwner")
  7157  
  7158  	if err != nil {
  7159  		return *new(bool), err
  7160  	}
  7161  
  7162  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  7163  
  7164  	return out0, err
  7165  
  7166  }
  7167  
  7168  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  7169  //
  7170  // Solidity: function isOwner() view returns(bool)
  7171  func (_Ownable *OwnableSession) IsOwner() (bool, error) {
  7172  	return _Ownable.Contract.IsOwner(&_Ownable.CallOpts)
  7173  }
  7174  
  7175  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  7176  //
  7177  // Solidity: function isOwner() view returns(bool)
  7178  func (_Ownable *OwnableCallerSession) IsOwner() (bool, error) {
  7179  	return _Ownable.Contract.IsOwner(&_Ownable.CallOpts)
  7180  }
  7181  
  7182  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  7183  //
  7184  // Solidity: function owner() view returns(address)
  7185  func (_Ownable *OwnableCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
  7186  	var out []interface{}
  7187  	err := _Ownable.contract.Call(opts, &out, "owner")
  7188  
  7189  	if err != nil {
  7190  		return *new(common.Address), err
  7191  	}
  7192  
  7193  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  7194  
  7195  	return out0, err
  7196  
  7197  }
  7198  
  7199  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  7200  //
  7201  // Solidity: function owner() view returns(address)
  7202  func (_Ownable *OwnableSession) Owner() (common.Address, error) {
  7203  	return _Ownable.Contract.Owner(&_Ownable.CallOpts)
  7204  }
  7205  
  7206  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  7207  //
  7208  // Solidity: function owner() view returns(address)
  7209  func (_Ownable *OwnableCallerSession) Owner() (common.Address, error) {
  7210  	return _Ownable.Contract.Owner(&_Ownable.CallOpts)
  7211  }
  7212  
  7213  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  7214  //
  7215  // Solidity: function renounceOwnership() returns()
  7216  func (_Ownable *OwnableTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
  7217  	return _Ownable.contract.Transact(opts, "renounceOwnership")
  7218  }
  7219  
  7220  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  7221  //
  7222  // Solidity: function renounceOwnership() returns()
  7223  func (_Ownable *OwnableSession) RenounceOwnership() (*types.Transaction, error) {
  7224  	return _Ownable.Contract.RenounceOwnership(&_Ownable.TransactOpts)
  7225  }
  7226  
  7227  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  7228  //
  7229  // Solidity: function renounceOwnership() returns()
  7230  func (_Ownable *OwnableTransactorSession) RenounceOwnership() (*types.Transaction, error) {
  7231  	return _Ownable.Contract.RenounceOwnership(&_Ownable.TransactOpts)
  7232  }
  7233  
  7234  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  7235  //
  7236  // Solidity: function transferOwnership(address newOwner) returns()
  7237  func (_Ownable *OwnableTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  7238  	return _Ownable.contract.Transact(opts, "transferOwnership", newOwner)
  7239  }
  7240  
  7241  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  7242  //
  7243  // Solidity: function transferOwnership(address newOwner) returns()
  7244  func (_Ownable *OwnableSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  7245  	return _Ownable.Contract.TransferOwnership(&_Ownable.TransactOpts, newOwner)
  7246  }
  7247  
  7248  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  7249  //
  7250  // Solidity: function transferOwnership(address newOwner) returns()
  7251  func (_Ownable *OwnableTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  7252  	return _Ownable.Contract.TransferOwnership(&_Ownable.TransactOpts, newOwner)
  7253  }
  7254  
  7255  // OwnableOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the Ownable contract.
  7256  type OwnableOwnershipTransferredIterator struct {
  7257  	Event *OwnableOwnershipTransferred // Event containing the contract specifics and raw log
  7258  
  7259  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  7260  	event    string              // Event name to use for unpacking event data
  7261  
  7262  	logs chan types.Log      // Log channel receiving the found contract events
  7263  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  7264  	done bool                // Whether the subscription completed delivering logs
  7265  	fail error               // Occurred error to stop iteration
  7266  }
  7267  
  7268  // Next advances the iterator to the subsequent event, returning whether there
  7269  // are any more events found. In case of a retrieval or parsing error, false is
  7270  // returned and Error() can be queried for the exact failure.
  7271  func (it *OwnableOwnershipTransferredIterator) Next() bool {
  7272  	// If the iterator failed, stop iterating
  7273  	if it.fail != nil {
  7274  		return false
  7275  	}
  7276  	// If the iterator completed, deliver directly whatever's available
  7277  	if it.done {
  7278  		select {
  7279  		case log := <-it.logs:
  7280  			it.Event = new(OwnableOwnershipTransferred)
  7281  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7282  				it.fail = err
  7283  				return false
  7284  			}
  7285  			it.Event.Raw = log
  7286  			return true
  7287  
  7288  		default:
  7289  			return false
  7290  		}
  7291  	}
  7292  	// Iterator still in progress, wait for either a data or an error event
  7293  	select {
  7294  	case log := <-it.logs:
  7295  		it.Event = new(OwnableOwnershipTransferred)
  7296  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7297  			it.fail = err
  7298  			return false
  7299  		}
  7300  		it.Event.Raw = log
  7301  		return true
  7302  
  7303  	case err := <-it.sub.Err():
  7304  		it.done = true
  7305  		it.fail = err
  7306  		return it.Next()
  7307  	}
  7308  }
  7309  
  7310  // Error returns any retrieval or parsing error occurred during filtering.
  7311  func (it *OwnableOwnershipTransferredIterator) Error() error {
  7312  	return it.fail
  7313  }
  7314  
  7315  // Close terminates the iteration process, releasing any pending underlying
  7316  // resources.
  7317  func (it *OwnableOwnershipTransferredIterator) Close() error {
  7318  	it.sub.Unsubscribe()
  7319  	return nil
  7320  }
  7321  
  7322  // OwnableOwnershipTransferred represents a OwnershipTransferred event raised by the Ownable contract.
  7323  type OwnableOwnershipTransferred struct {
  7324  	PreviousOwner common.Address
  7325  	NewOwner      common.Address
  7326  	Raw           types.Log // Blockchain specific contextual infos
  7327  }
  7328  
  7329  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  7330  //
  7331  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  7332  func (_Ownable *OwnableFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*OwnableOwnershipTransferredIterator, error) {
  7333  
  7334  	var previousOwnerRule []interface{}
  7335  	for _, previousOwnerItem := range previousOwner {
  7336  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  7337  	}
  7338  	var newOwnerRule []interface{}
  7339  	for _, newOwnerItem := range newOwner {
  7340  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  7341  	}
  7342  
  7343  	logs, sub, err := _Ownable.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  7344  	if err != nil {
  7345  		return nil, err
  7346  	}
  7347  	return &OwnableOwnershipTransferredIterator{contract: _Ownable.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  7348  }
  7349  
  7350  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  7351  //
  7352  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  7353  func (_Ownable *OwnableFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *OwnableOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  7354  
  7355  	var previousOwnerRule []interface{}
  7356  	for _, previousOwnerItem := range previousOwner {
  7357  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  7358  	}
  7359  	var newOwnerRule []interface{}
  7360  	for _, newOwnerItem := range newOwner {
  7361  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  7362  	}
  7363  
  7364  	logs, sub, err := _Ownable.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  7365  	if err != nil {
  7366  		return nil, err
  7367  	}
  7368  	return event.NewSubscription(func(quit <-chan struct{}) error {
  7369  		defer sub.Unsubscribe()
  7370  		for {
  7371  			select {
  7372  			case log := <-logs:
  7373  				// New log arrived, parse the event and forward to the user
  7374  				event := new(OwnableOwnershipTransferred)
  7375  				if err := _Ownable.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  7376  					return err
  7377  				}
  7378  				event.Raw = log
  7379  
  7380  				select {
  7381  				case sink <- event:
  7382  				case err := <-sub.Err():
  7383  					return err
  7384  				case <-quit:
  7385  					return nil
  7386  				}
  7387  			case err := <-sub.Err():
  7388  				return err
  7389  			case <-quit:
  7390  				return nil
  7391  			}
  7392  		}
  7393  	}), nil
  7394  }
  7395  
  7396  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  7397  //
  7398  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  7399  func (_Ownable *OwnableFilterer) ParseOwnershipTransferred(log types.Log) (*OwnableOwnershipTransferred, error) {
  7400  	event := new(OwnableOwnershipTransferred)
  7401  	if err := _Ownable.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  7402  		return nil, err
  7403  	}
  7404  	return event, nil
  7405  }
  7406  
  7407  // RolesMetaData contains all meta data concerning the Roles contract.
  7408  var RolesMetaData = &bind.MetaData{
  7409  	ABI: "[]",
  7410  	Bin: "0x604c6023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a723058206fdeeec4a4b0b444bd488c924c927184696cea63963686d57a13cf42f3830d840029",
  7411  }
  7412  
  7413  // RolesABI is the input ABI used to generate the binding from.
  7414  // Deprecated: Use RolesMetaData.ABI instead.
  7415  var RolesABI = RolesMetaData.ABI
  7416  
  7417  // RolesBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  7418  const RolesBinRuntime = `73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a723058206fdeeec4a4b0b444bd488c924c927184696cea63963686d57a13cf42f3830d840029`
  7419  
  7420  // RolesBin is the compiled bytecode used for deploying new contracts.
  7421  // Deprecated: Use RolesMetaData.Bin instead.
  7422  var RolesBin = RolesMetaData.Bin
  7423  
  7424  // DeployRoles deploys a new Klaytn contract, binding an instance of Roles to it.
  7425  func DeployRoles(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Roles, error) {
  7426  	parsed, err := RolesMetaData.GetAbi()
  7427  	if err != nil {
  7428  		return common.Address{}, nil, nil, err
  7429  	}
  7430  	if parsed == nil {
  7431  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
  7432  	}
  7433  
  7434  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(RolesBin), backend)
  7435  	if err != nil {
  7436  		return common.Address{}, nil, nil, err
  7437  	}
  7438  	return address, tx, &Roles{RolesCaller: RolesCaller{contract: contract}, RolesTransactor: RolesTransactor{contract: contract}, RolesFilterer: RolesFilterer{contract: contract}}, nil
  7439  }
  7440  
  7441  // Roles is an auto generated Go binding around a Klaytn contract.
  7442  type Roles struct {
  7443  	RolesCaller     // Read-only binding to the contract
  7444  	RolesTransactor // Write-only binding to the contract
  7445  	RolesFilterer   // Log filterer for contract events
  7446  }
  7447  
  7448  // RolesCaller is an auto generated read-only Go binding around a Klaytn contract.
  7449  type RolesCaller struct {
  7450  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  7451  }
  7452  
  7453  // RolesTransactor is an auto generated write-only Go binding around a Klaytn contract.
  7454  type RolesTransactor struct {
  7455  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  7456  }
  7457  
  7458  // RolesFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  7459  type RolesFilterer struct {
  7460  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  7461  }
  7462  
  7463  // RolesSession is an auto generated Go binding around a Klaytn contract,
  7464  // with pre-set call and transact options.
  7465  type RolesSession struct {
  7466  	Contract     *Roles            // Generic contract binding to set the session for
  7467  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  7468  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  7469  }
  7470  
  7471  // RolesCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  7472  // with pre-set call options.
  7473  type RolesCallerSession struct {
  7474  	Contract *RolesCaller  // Generic contract caller binding to set the session for
  7475  	CallOpts bind.CallOpts // Call options to use throughout this session
  7476  }
  7477  
  7478  // RolesTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  7479  // with pre-set transact options.
  7480  type RolesTransactorSession struct {
  7481  	Contract     *RolesTransactor  // Generic contract transactor binding to set the session for
  7482  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  7483  }
  7484  
  7485  // RolesRaw is an auto generated low-level Go binding around a Klaytn contract.
  7486  type RolesRaw struct {
  7487  	Contract *Roles // Generic contract binding to access the raw methods on
  7488  }
  7489  
  7490  // RolesCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  7491  type RolesCallerRaw struct {
  7492  	Contract *RolesCaller // Generic read-only contract binding to access the raw methods on
  7493  }
  7494  
  7495  // RolesTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  7496  type RolesTransactorRaw struct {
  7497  	Contract *RolesTransactor // Generic write-only contract binding to access the raw methods on
  7498  }
  7499  
  7500  // NewRoles creates a new instance of Roles, bound to a specific deployed contract.
  7501  func NewRoles(address common.Address, backend bind.ContractBackend) (*Roles, error) {
  7502  	contract, err := bindRoles(address, backend, backend, backend)
  7503  	if err != nil {
  7504  		return nil, err
  7505  	}
  7506  	return &Roles{RolesCaller: RolesCaller{contract: contract}, RolesTransactor: RolesTransactor{contract: contract}, RolesFilterer: RolesFilterer{contract: contract}}, nil
  7507  }
  7508  
  7509  // NewRolesCaller creates a new read-only instance of Roles, bound to a specific deployed contract.
  7510  func NewRolesCaller(address common.Address, caller bind.ContractCaller) (*RolesCaller, error) {
  7511  	contract, err := bindRoles(address, caller, nil, nil)
  7512  	if err != nil {
  7513  		return nil, err
  7514  	}
  7515  	return &RolesCaller{contract: contract}, nil
  7516  }
  7517  
  7518  // NewRolesTransactor creates a new write-only instance of Roles, bound to a specific deployed contract.
  7519  func NewRolesTransactor(address common.Address, transactor bind.ContractTransactor) (*RolesTransactor, error) {
  7520  	contract, err := bindRoles(address, nil, transactor, nil)
  7521  	if err != nil {
  7522  		return nil, err
  7523  	}
  7524  	return &RolesTransactor{contract: contract}, nil
  7525  }
  7526  
  7527  // NewRolesFilterer creates a new log filterer instance of Roles, bound to a specific deployed contract.
  7528  func NewRolesFilterer(address common.Address, filterer bind.ContractFilterer) (*RolesFilterer, error) {
  7529  	contract, err := bindRoles(address, nil, nil, filterer)
  7530  	if err != nil {
  7531  		return nil, err
  7532  	}
  7533  	return &RolesFilterer{contract: contract}, nil
  7534  }
  7535  
  7536  // bindRoles binds a generic wrapper to an already deployed contract.
  7537  func bindRoles(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  7538  	parsed, err := RolesMetaData.GetAbi()
  7539  	if err != nil {
  7540  		return nil, err
  7541  	}
  7542  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  7543  }
  7544  
  7545  // Call invokes the (constant) contract method with params as input values and
  7546  // sets the output to result. The result type might be a single field for simple
  7547  // returns, a slice of interfaces for anonymous returns and a struct for named
  7548  // returns.
  7549  func (_Roles *RolesRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  7550  	return _Roles.Contract.RolesCaller.contract.Call(opts, result, method, params...)
  7551  }
  7552  
  7553  // Transfer initiates a plain transaction to move funds to the contract, calling
  7554  // its default method if one is available.
  7555  func (_Roles *RolesRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  7556  	return _Roles.Contract.RolesTransactor.contract.Transfer(opts)
  7557  }
  7558  
  7559  // Transact invokes the (paid) contract method with params as input values.
  7560  func (_Roles *RolesRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  7561  	return _Roles.Contract.RolesTransactor.contract.Transact(opts, method, params...)
  7562  }
  7563  
  7564  // Call invokes the (constant) contract method with params as input values and
  7565  // sets the output to result. The result type might be a single field for simple
  7566  // returns, a slice of interfaces for anonymous returns and a struct for named
  7567  // returns.
  7568  func (_Roles *RolesCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  7569  	return _Roles.Contract.contract.Call(opts, result, method, params...)
  7570  }
  7571  
  7572  // Transfer initiates a plain transaction to move funds to the contract, calling
  7573  // its default method if one is available.
  7574  func (_Roles *RolesTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  7575  	return _Roles.Contract.contract.Transfer(opts)
  7576  }
  7577  
  7578  // Transact invokes the (paid) contract method with params as input values.
  7579  func (_Roles *RolesTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  7580  	return _Roles.Contract.contract.Transact(opts, method, params...)
  7581  }
  7582  
  7583  // SafeMathMetaData contains all meta data concerning the SafeMath contract.
  7584  var SafeMathMetaData = &bind.MetaData{
  7585  	ABI: "[]",
  7586  	Bin: "0x604c6023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a7230582052c975835d8618888691b14d52ff822fc00b24a3637e28a17d824cf0361b62b90029",
  7587  }
  7588  
  7589  // SafeMathABI is the input ABI used to generate the binding from.
  7590  // Deprecated: Use SafeMathMetaData.ABI instead.
  7591  var SafeMathABI = SafeMathMetaData.ABI
  7592  
  7593  // SafeMathBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  7594  const SafeMathBinRuntime = `73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a7230582052c975835d8618888691b14d52ff822fc00b24a3637e28a17d824cf0361b62b90029`
  7595  
  7596  // SafeMathBin is the compiled bytecode used for deploying new contracts.
  7597  // Deprecated: Use SafeMathMetaData.Bin instead.
  7598  var SafeMathBin = SafeMathMetaData.Bin
  7599  
  7600  // DeploySafeMath deploys a new Klaytn contract, binding an instance of SafeMath to it.
  7601  func DeploySafeMath(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *SafeMath, error) {
  7602  	parsed, err := SafeMathMetaData.GetAbi()
  7603  	if err != nil {
  7604  		return common.Address{}, nil, nil, err
  7605  	}
  7606  	if parsed == nil {
  7607  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
  7608  	}
  7609  
  7610  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(SafeMathBin), backend)
  7611  	if err != nil {
  7612  		return common.Address{}, nil, nil, err
  7613  	}
  7614  	return address, tx, &SafeMath{SafeMathCaller: SafeMathCaller{contract: contract}, SafeMathTransactor: SafeMathTransactor{contract: contract}, SafeMathFilterer: SafeMathFilterer{contract: contract}}, nil
  7615  }
  7616  
  7617  // SafeMath is an auto generated Go binding around a Klaytn contract.
  7618  type SafeMath struct {
  7619  	SafeMathCaller     // Read-only binding to the contract
  7620  	SafeMathTransactor // Write-only binding to the contract
  7621  	SafeMathFilterer   // Log filterer for contract events
  7622  }
  7623  
  7624  // SafeMathCaller is an auto generated read-only Go binding around a Klaytn contract.
  7625  type SafeMathCaller struct {
  7626  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  7627  }
  7628  
  7629  // SafeMathTransactor is an auto generated write-only Go binding around a Klaytn contract.
  7630  type SafeMathTransactor struct {
  7631  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  7632  }
  7633  
  7634  // SafeMathFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  7635  type SafeMathFilterer struct {
  7636  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  7637  }
  7638  
  7639  // SafeMathSession is an auto generated Go binding around a Klaytn contract,
  7640  // with pre-set call and transact options.
  7641  type SafeMathSession struct {
  7642  	Contract     *SafeMath         // Generic contract binding to set the session for
  7643  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  7644  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  7645  }
  7646  
  7647  // SafeMathCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  7648  // with pre-set call options.
  7649  type SafeMathCallerSession struct {
  7650  	Contract *SafeMathCaller // Generic contract caller binding to set the session for
  7651  	CallOpts bind.CallOpts   // Call options to use throughout this session
  7652  }
  7653  
  7654  // SafeMathTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  7655  // with pre-set transact options.
  7656  type SafeMathTransactorSession struct {
  7657  	Contract     *SafeMathTransactor // Generic contract transactor binding to set the session for
  7658  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
  7659  }
  7660  
  7661  // SafeMathRaw is an auto generated low-level Go binding around a Klaytn contract.
  7662  type SafeMathRaw struct {
  7663  	Contract *SafeMath // Generic contract binding to access the raw methods on
  7664  }
  7665  
  7666  // SafeMathCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  7667  type SafeMathCallerRaw struct {
  7668  	Contract *SafeMathCaller // Generic read-only contract binding to access the raw methods on
  7669  }
  7670  
  7671  // SafeMathTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  7672  type SafeMathTransactorRaw struct {
  7673  	Contract *SafeMathTransactor // Generic write-only contract binding to access the raw methods on
  7674  }
  7675  
  7676  // NewSafeMath creates a new instance of SafeMath, bound to a specific deployed contract.
  7677  func NewSafeMath(address common.Address, backend bind.ContractBackend) (*SafeMath, error) {
  7678  	contract, err := bindSafeMath(address, backend, backend, backend)
  7679  	if err != nil {
  7680  		return nil, err
  7681  	}
  7682  	return &SafeMath{SafeMathCaller: SafeMathCaller{contract: contract}, SafeMathTransactor: SafeMathTransactor{contract: contract}, SafeMathFilterer: SafeMathFilterer{contract: contract}}, nil
  7683  }
  7684  
  7685  // NewSafeMathCaller creates a new read-only instance of SafeMath, bound to a specific deployed contract.
  7686  func NewSafeMathCaller(address common.Address, caller bind.ContractCaller) (*SafeMathCaller, error) {
  7687  	contract, err := bindSafeMath(address, caller, nil, nil)
  7688  	if err != nil {
  7689  		return nil, err
  7690  	}
  7691  	return &SafeMathCaller{contract: contract}, nil
  7692  }
  7693  
  7694  // NewSafeMathTransactor creates a new write-only instance of SafeMath, bound to a specific deployed contract.
  7695  func NewSafeMathTransactor(address common.Address, transactor bind.ContractTransactor) (*SafeMathTransactor, error) {
  7696  	contract, err := bindSafeMath(address, nil, transactor, nil)
  7697  	if err != nil {
  7698  		return nil, err
  7699  	}
  7700  	return &SafeMathTransactor{contract: contract}, nil
  7701  }
  7702  
  7703  // NewSafeMathFilterer creates a new log filterer instance of SafeMath, bound to a specific deployed contract.
  7704  func NewSafeMathFilterer(address common.Address, filterer bind.ContractFilterer) (*SafeMathFilterer, error) {
  7705  	contract, err := bindSafeMath(address, nil, nil, filterer)
  7706  	if err != nil {
  7707  		return nil, err
  7708  	}
  7709  	return &SafeMathFilterer{contract: contract}, nil
  7710  }
  7711  
  7712  // bindSafeMath binds a generic wrapper to an already deployed contract.
  7713  func bindSafeMath(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  7714  	parsed, err := SafeMathMetaData.GetAbi()
  7715  	if err != nil {
  7716  		return nil, err
  7717  	}
  7718  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  7719  }
  7720  
  7721  // Call invokes the (constant) contract method with params as input values and
  7722  // sets the output to result. The result type might be a single field for simple
  7723  // returns, a slice of interfaces for anonymous returns and a struct for named
  7724  // returns.
  7725  func (_SafeMath *SafeMathRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  7726  	return _SafeMath.Contract.SafeMathCaller.contract.Call(opts, result, method, params...)
  7727  }
  7728  
  7729  // Transfer initiates a plain transaction to move funds to the contract, calling
  7730  // its default method if one is available.
  7731  func (_SafeMath *SafeMathRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  7732  	return _SafeMath.Contract.SafeMathTransactor.contract.Transfer(opts)
  7733  }
  7734  
  7735  // Transact invokes the (paid) contract method with params as input values.
  7736  func (_SafeMath *SafeMathRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  7737  	return _SafeMath.Contract.SafeMathTransactor.contract.Transact(opts, method, params...)
  7738  }
  7739  
  7740  // Call invokes the (constant) contract method with params as input values and
  7741  // sets the output to result. The result type might be a single field for simple
  7742  // returns, a slice of interfaces for anonymous returns and a struct for named
  7743  // returns.
  7744  func (_SafeMath *SafeMathCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  7745  	return _SafeMath.Contract.contract.Call(opts, result, method, params...)
  7746  }
  7747  
  7748  // Transfer initiates a plain transaction to move funds to the contract, calling
  7749  // its default method if one is available.
  7750  func (_SafeMath *SafeMathTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  7751  	return _SafeMath.Contract.contract.Transfer(opts)
  7752  }
  7753  
  7754  // Transact invokes the (paid) contract method with params as input values.
  7755  func (_SafeMath *SafeMathTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  7756  	return _SafeMath.Contract.contract.Transact(opts, method, params...)
  7757  }
  7758  
  7759  // ServiceChainNFTNoURIMetaData contains all meta data concerning the ServiceChainNFTNoURI contract.
  7760  var ServiceChainNFTNoURIMetaData = &bind.MetaData{
  7761  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_uid\",\"type\":\"uint256\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"requestValueTransfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_user\",\"type\":\"address\"},{\"name\":\"_startID\",\"type\":\"uint256\"},{\"name\":\"_endID\",\"type\":\"uint256\"}],\"name\":\"registerBulk\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_bridge\",\"type\":\"address\"}],\"name\":\"setBridge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isMinter\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_bridge\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}]",
  7762  	Sigs: map[string]string{
  7763  		"983b2d56": "addMinter(address)",
  7764  		"095ea7b3": "approve(address,uint256)",
  7765  		"70a08231": "balanceOf(address)",
  7766  		"e78cea92": "bridge()",
  7767  		"42966c68": "burn(uint256)",
  7768  		"081812fc": "getApproved(uint256)",
  7769  		"e985e9c5": "isApprovedForAll(address,address)",
  7770  		"aa271e1a": "isMinter(address)",
  7771  		"8f32d59b": "isOwner()",
  7772  		"40c10f19": "mint(address,uint256)",
  7773  		"8da5cb5b": "owner()",
  7774  		"6352211e": "ownerOf(uint256)",
  7775  		"7a9adac6": "registerBulk(address,uint256,uint256)",
  7776  		"98650275": "renounceMinter()",
  7777  		"715018a6": "renounceOwnership()",
  7778  		"3f4c4e3d": "requestValueTransfer(uint256,address,bytes)",
  7779  		"42842e0e": "safeTransferFrom(address,address,uint256)",
  7780  		"b88d4fde": "safeTransferFrom(address,address,uint256,bytes)",
  7781  		"a22cb465": "setApprovalForAll(address,bool)",
  7782  		"8dd14802": "setBridge(address)",
  7783  		"01ffc9a7": "supportsInterface(bytes4)",
  7784  		"23b872dd": "transferFrom(address,address,uint256)",
  7785  		"f2fde38b": "transferOwnership(address)",
  7786  	},
  7787  	Bin: "0x60806040523480156200001157600080fd5b5060405160208062001e58833981018060405260208110156200003357600080fd5b505180620000687f01ffc9a700000000000000000000000000000000000000000000000000000000620000f6602090811b901c565b620000806380ac58cd60e01b620000f660201b60201c565b6200009133620001c560201b60201c565b600680546001600160a01b0319163317908190556040516001600160a01b0391909116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3620000ee816200021760201b60201c565b50506200047e565b7fffffffff0000000000000000000000000000000000000000000000000000000080821614156200018857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152602081905260409020805460ff19166001179055565b620001e08160056200034060201b6200156c1790919060201c565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b62000227620003e460201b60201c565b6200029357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b620002b2816001600160a01b0316620003f560201b6200115a1760201c565b6200031e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f627269646765206973206e6f74206120636f6e74726163740000000000000000604482015290519081900360640190fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b620003528282620003fb60201b60201c565b15620003bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6006546001600160a01b0316331490565b3b151590565b60006001600160a01b0382166200045e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018062001e366022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6119a8806200048e6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80637a9adac6116100c3578063a22cb4651161007c578063a22cb46514610421578063aa271e1a1461044f578063b88d4fde14610475578063e78cea921461053b578063e985e9c514610543578063f2fde38b146105715761014d565b80637a9adac61461038b5780638da5cb5b146103bd5780638dd14802146103c55780638f32d59b146103eb578063983b2d56146103f357806398650275146104195761014d565b806340c10f191161011557806340c10f19146102af57806342842e0e146102db57806342966c68146103115780636352211e1461032e57806370a082311461034b578063715018a6146103835761014d565b806301ffc9a714610152578063081812fc1461018d578063095ea7b3146101c657806323b872dd146101f45780633f4c4e3d1461022a575b600080fd5b6101796004803603602081101561016857600080fd5b50356001600160e01b031916610597565b604080519115158252519081900360200190f35b6101aa600480360360208110156101a357600080fd5b50356105b6565b604080516001600160a01b039092168252519081900360200190f35b6101f2600480360360408110156101dc57600080fd5b506001600160a01b03813516906020013561061b565b005b6101f26004803603606081101561020a57600080fd5b506001600160a01b03813581169160208101359091169060400135610732565b6101f26004803603606081101561024057600080fd5b8135916001600160a01b036020820135169181019060608101604082013564010000000081111561027057600080fd5b82018360208201111561028257600080fd5b803590602001918460018302840111640100000000831117156102a457600080fd5b50909250905061078a565b610179600480360360408110156102c557600080fd5b506001600160a01b038135169060200135610857565b6101f2600480360360608110156102f157600080fd5b506001600160a01b038135811691602081013590911690604001356108b3565b6101f26004803603602081101561032757600080fd5b50356108ce565b6101aa6004803603602081101561034457600080fd5b5035610922565b6103716004803603602081101561036157600080fd5b50356001600160a01b031661097f565b60408051918252519081900360200190f35b6101f26109ea565b6101f2600480360360608110156103a157600080fd5b506001600160a01b038135169060208101359060400135610a7e565b6101aa610aeb565b6101f2600480360360208110156103db57600080fd5b50356001600160a01b0316610afa565b610179610bcc565b6101f26004803603602081101561040957600080fd5b50356001600160a01b0316610bdd565b6101f2610c2d565b6101f26004803603604081101561043757600080fd5b506001600160a01b0381351690602001351515610c38565b6101796004803603602081101561046557600080fd5b50356001600160a01b0316610d07565b6101f26004803603608081101561048b57600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156104c657600080fd5b8201836020820111156104d857600080fd5b803590602001918460018302840111640100000000831117156104fa57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610d1a945050505050565b6101aa610d6f565b6101796004803603604081101561055957600080fd5b506001600160a01b0381358116916020013516610d7e565b6101f26004803603602081101561058757600080fd5b50356001600160a01b0316610dac565b6001600160e01b03191660009081526020819052604090205460ff1690565b60006105c182610dff565b6105ff57604051600160e51b62461bcd02815260040180806020018281038252602c81526020018061183f602c913960400191505060405180910390fd5b506000908152600260205260409020546001600160a01b031690565b600061062682610922565b9050806001600160a01b0316836001600160a01b0316141561067c57604051600160e51b62461bcd0281526004018080602001828103825260218152602001806118d66021913960400191505060405180910390fd5b336001600160a01b038216148061069857506106988133610d7e565b6106d657604051600160e51b62461bcd0281526004018080602001828103825260388152602001806117636038913960400191505060405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b61073c3382610e1c565b61077a57604051600160e51b62461bcd0281526004018080602001828103825260318152602001806118f76031913960400191505060405180910390fd5b610785838383610ec3565b505050565b6007546107a29033906001600160a01b031686610732565b600754604051600160e41b630cf0da290281523360048201818152602483018890526001600160a01b0387811660448501526080606485019081526084850187905294169363cf0da290938992899289928992919060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561083957600080fd5b505af115801561084d573d6000803e3d6000fd5b5050505050505050565b600061086233610d07565b6108a057604051600160e51b62461bcd0281526004018080602001828103825260308152602001806117ee6030913960400191505060405180910390fd5b6108aa838361100d565b50600192915050565b61078583838360405180602001604052806000815250610d1a565b6108d83382610e1c565b61091657604051600160e51b62461bcd02815260040180806020018281038252603081526020018061194d6030913960400191505060405180910390fd5b61091f81611144565b50565b6000818152600160205260408120546001600160a01b03168061097957604051600160e51b62461bcd0281526004018080602001828103825260298152602001806117c56029913960400191505060405180910390fd5b92915050565b60006001600160a01b0382166109c957604051600160e51b62461bcd02815260040180806020018281038252602a81526020018061179b602a913960400191505060405180910390fd5b6001600160a01b038216600090815260036020526040902061097990611156565b6109f2610bcc565b610a345760408051600160e51b62461bcd028152602060048201819052602482015260008051602061186b833981519152604482015290519081900360640190fd5b6006546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600680546001600160a01b0319169055565b610a86610bcc565b610ac85760408051600160e51b62461bcd028152602060048201819052602482015260008051602061186b833981519152604482015290519081900360640190fd5b815b81811015610ae557610adc8482610857565b50600101610aca565b50505050565b6006546001600160a01b031690565b610b02610bcc565b610b445760408051600160e51b62461bcd028152602060048201819052602482015260008051602061186b833981519152604482015290519081900360640190fd5b610b56816001600160a01b031661115a565b610baa5760408051600160e51b62461bcd02815260206004820152601860248201527f627269646765206973206e6f74206120636f6e74726163740000000000000000604482015290519081900360640190fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b0316331490565b610be633610d07565b610c2457604051600160e51b62461bcd0281526004018080602001828103825260308152602001806117ee6030913960400191505060405180910390fd5b61091f81611160565b610c36336111a8565b565b6001600160a01b038216331415610c995760408051600160e51b62461bcd02815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b600061097960058363ffffffff6111f016565b610d25848484610732565b610d318484848461125a565b610ae557604051600160e51b62461bcd0281526004018080602001828103825260328152602001806116bb6032913960400191505060405180910390fd5b6007546001600160a01b031681565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b610db4610bcc565b610df65760408051600160e51b62461bcd028152602060048201819052602482015260008051602061186b833981519152604482015290519081900360640190fd5b61091f81611393565b6000908152600160205260409020546001600160a01b0316151590565b6000610e2782610dff565b610e6557604051600160e51b62461bcd02815260040180806020018281038252602c815260200180611737602c913960400191505060405180910390fd5b6000610e7083610922565b9050806001600160a01b0316846001600160a01b03161480610eab5750836001600160a01b0316610ea0846105b6565b6001600160a01b0316145b80610ebb5750610ebb8185610d7e565b949350505050565b826001600160a01b0316610ed682610922565b6001600160a01b031614610f1e57604051600160e51b62461bcd0281526004018080602001828103825260298152602001806118ad6029913960400191505060405180910390fd5b6001600160a01b038216610f6657604051600160e51b62461bcd0281526004018080602001828103825260248152602001806117136024913960400191505060405180910390fd5b610f6f81611437565b6001600160a01b0383166000908152600360205260409020610f9090611472565b6001600160a01b0382166000908152600360205260409020610fb190611489565b60008181526001602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6001600160a01b03821661106b5760408051600160e51b62461bcd02815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b61107481610dff565b156110c95760408051600160e51b62461bcd02815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015290519081900360640190fd5b600081815260016020908152604080832080546001600160a01b0319166001600160a01b03871690811790915583526003909152902061110890611489565b60405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b61091f61115082610922565b82611492565b5490565b3b151590565b61117160058263ffffffff61156c16565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6111b960058263ffffffff6115f016565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b60006001600160a01b03821661123a57604051600160e51b62461bcd02815260040180806020018281038252602281526020018061188b6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b600061126e846001600160a01b031661115a565b61127a57506001610ebb565b604051600160e11b630a85bd0102815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b838110156112f75781810151838201526020016112df565b50505050905090810190601f1680156113245780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561134657600080fd5b505af115801561135a573d6000803e3d6000fd5b505050506040513d602081101561137057600080fd5b50516001600160e01b031916600160e11b630a85bd010214915050949350505050565b6001600160a01b0381166113db57604051600160e51b62461bcd0281526004018080602001828103825260268152602001806116ed6026913960400191505060405180910390fd5b6006546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000818152600260205260409020546001600160a01b03161561091f57600090815260026020526040902080546001600160a01b0319169055565b805461148590600163ffffffff61165a16565b9055565b80546001019055565b816001600160a01b03166114a582610922565b6001600160a01b0316146114ed57604051600160e51b62461bcd0281526004018080602001828103825260258152602001806119286025913960400191505060405180910390fd5b6114f681611437565b6001600160a01b038216600090815260036020526040902061151790611472565b60008181526001602052604080822080546001600160a01b0319169055518291906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b61157682826111f0565b156115cb5760408051600160e51b62461bcd02815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6115fa82826111f0565b61163857604051600160e51b62461bcd02815260040180806020018281038252602181526020018061181e6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6000828211156116b45760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572526f6c65733a206163636f756e7420697320746865207a65726f20616464726573734552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a165627a7a723058200d3d31047770573f291d2764e827e143563b662e8bdf398463704aa497fd04b60029526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373",
  7788  }
  7789  
  7790  // ServiceChainNFTNoURIABI is the input ABI used to generate the binding from.
  7791  // Deprecated: Use ServiceChainNFTNoURIMetaData.ABI instead.
  7792  var ServiceChainNFTNoURIABI = ServiceChainNFTNoURIMetaData.ABI
  7793  
  7794  // ServiceChainNFTNoURIBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  7795  const ServiceChainNFTNoURIBinRuntime = `608060405234801561001057600080fd5b506004361061014d5760003560e01c80637a9adac6116100c3578063a22cb4651161007c578063a22cb46514610421578063aa271e1a1461044f578063b88d4fde14610475578063e78cea921461053b578063e985e9c514610543578063f2fde38b146105715761014d565b80637a9adac61461038b5780638da5cb5b146103bd5780638dd14802146103c55780638f32d59b146103eb578063983b2d56146103f357806398650275146104195761014d565b806340c10f191161011557806340c10f19146102af57806342842e0e146102db57806342966c68146103115780636352211e1461032e57806370a082311461034b578063715018a6146103835761014d565b806301ffc9a714610152578063081812fc1461018d578063095ea7b3146101c657806323b872dd146101f45780633f4c4e3d1461022a575b600080fd5b6101796004803603602081101561016857600080fd5b50356001600160e01b031916610597565b604080519115158252519081900360200190f35b6101aa600480360360208110156101a357600080fd5b50356105b6565b604080516001600160a01b039092168252519081900360200190f35b6101f2600480360360408110156101dc57600080fd5b506001600160a01b03813516906020013561061b565b005b6101f26004803603606081101561020a57600080fd5b506001600160a01b03813581169160208101359091169060400135610732565b6101f26004803603606081101561024057600080fd5b8135916001600160a01b036020820135169181019060608101604082013564010000000081111561027057600080fd5b82018360208201111561028257600080fd5b803590602001918460018302840111640100000000831117156102a457600080fd5b50909250905061078a565b610179600480360360408110156102c557600080fd5b506001600160a01b038135169060200135610857565b6101f2600480360360608110156102f157600080fd5b506001600160a01b038135811691602081013590911690604001356108b3565b6101f26004803603602081101561032757600080fd5b50356108ce565b6101aa6004803603602081101561034457600080fd5b5035610922565b6103716004803603602081101561036157600080fd5b50356001600160a01b031661097f565b60408051918252519081900360200190f35b6101f26109ea565b6101f2600480360360608110156103a157600080fd5b506001600160a01b038135169060208101359060400135610a7e565b6101aa610aeb565b6101f2600480360360208110156103db57600080fd5b50356001600160a01b0316610afa565b610179610bcc565b6101f26004803603602081101561040957600080fd5b50356001600160a01b0316610bdd565b6101f2610c2d565b6101f26004803603604081101561043757600080fd5b506001600160a01b0381351690602001351515610c38565b6101796004803603602081101561046557600080fd5b50356001600160a01b0316610d07565b6101f26004803603608081101561048b57600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156104c657600080fd5b8201836020820111156104d857600080fd5b803590602001918460018302840111640100000000831117156104fa57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610d1a945050505050565b6101aa610d6f565b6101796004803603604081101561055957600080fd5b506001600160a01b0381358116916020013516610d7e565b6101f26004803603602081101561058757600080fd5b50356001600160a01b0316610dac565b6001600160e01b03191660009081526020819052604090205460ff1690565b60006105c182610dff565b6105ff57604051600160e51b62461bcd02815260040180806020018281038252602c81526020018061183f602c913960400191505060405180910390fd5b506000908152600260205260409020546001600160a01b031690565b600061062682610922565b9050806001600160a01b0316836001600160a01b0316141561067c57604051600160e51b62461bcd0281526004018080602001828103825260218152602001806118d66021913960400191505060405180910390fd5b336001600160a01b038216148061069857506106988133610d7e565b6106d657604051600160e51b62461bcd0281526004018080602001828103825260388152602001806117636038913960400191505060405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b61073c3382610e1c565b61077a57604051600160e51b62461bcd0281526004018080602001828103825260318152602001806118f76031913960400191505060405180910390fd5b610785838383610ec3565b505050565b6007546107a29033906001600160a01b031686610732565b600754604051600160e41b630cf0da290281523360048201818152602483018890526001600160a01b0387811660448501526080606485019081526084850187905294169363cf0da290938992899289928992919060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561083957600080fd5b505af115801561084d573d6000803e3d6000fd5b5050505050505050565b600061086233610d07565b6108a057604051600160e51b62461bcd0281526004018080602001828103825260308152602001806117ee6030913960400191505060405180910390fd5b6108aa838361100d565b50600192915050565b61078583838360405180602001604052806000815250610d1a565b6108d83382610e1c565b61091657604051600160e51b62461bcd02815260040180806020018281038252603081526020018061194d6030913960400191505060405180910390fd5b61091f81611144565b50565b6000818152600160205260408120546001600160a01b03168061097957604051600160e51b62461bcd0281526004018080602001828103825260298152602001806117c56029913960400191505060405180910390fd5b92915050565b60006001600160a01b0382166109c957604051600160e51b62461bcd02815260040180806020018281038252602a81526020018061179b602a913960400191505060405180910390fd5b6001600160a01b038216600090815260036020526040902061097990611156565b6109f2610bcc565b610a345760408051600160e51b62461bcd028152602060048201819052602482015260008051602061186b833981519152604482015290519081900360640190fd5b6006546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600680546001600160a01b0319169055565b610a86610bcc565b610ac85760408051600160e51b62461bcd028152602060048201819052602482015260008051602061186b833981519152604482015290519081900360640190fd5b815b81811015610ae557610adc8482610857565b50600101610aca565b50505050565b6006546001600160a01b031690565b610b02610bcc565b610b445760408051600160e51b62461bcd028152602060048201819052602482015260008051602061186b833981519152604482015290519081900360640190fd5b610b56816001600160a01b031661115a565b610baa5760408051600160e51b62461bcd02815260206004820152601860248201527f627269646765206973206e6f74206120636f6e74726163740000000000000000604482015290519081900360640190fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b0316331490565b610be633610d07565b610c2457604051600160e51b62461bcd0281526004018080602001828103825260308152602001806117ee6030913960400191505060405180910390fd5b61091f81611160565b610c36336111a8565b565b6001600160a01b038216331415610c995760408051600160e51b62461bcd02815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b600061097960058363ffffffff6111f016565b610d25848484610732565b610d318484848461125a565b610ae557604051600160e51b62461bcd0281526004018080602001828103825260328152602001806116bb6032913960400191505060405180910390fd5b6007546001600160a01b031681565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b610db4610bcc565b610df65760408051600160e51b62461bcd028152602060048201819052602482015260008051602061186b833981519152604482015290519081900360640190fd5b61091f81611393565b6000908152600160205260409020546001600160a01b0316151590565b6000610e2782610dff565b610e6557604051600160e51b62461bcd02815260040180806020018281038252602c815260200180611737602c913960400191505060405180910390fd5b6000610e7083610922565b9050806001600160a01b0316846001600160a01b03161480610eab5750836001600160a01b0316610ea0846105b6565b6001600160a01b0316145b80610ebb5750610ebb8185610d7e565b949350505050565b826001600160a01b0316610ed682610922565b6001600160a01b031614610f1e57604051600160e51b62461bcd0281526004018080602001828103825260298152602001806118ad6029913960400191505060405180910390fd5b6001600160a01b038216610f6657604051600160e51b62461bcd0281526004018080602001828103825260248152602001806117136024913960400191505060405180910390fd5b610f6f81611437565b6001600160a01b0383166000908152600360205260409020610f9090611472565b6001600160a01b0382166000908152600360205260409020610fb190611489565b60008181526001602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6001600160a01b03821661106b5760408051600160e51b62461bcd02815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b61107481610dff565b156110c95760408051600160e51b62461bcd02815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015290519081900360640190fd5b600081815260016020908152604080832080546001600160a01b0319166001600160a01b03871690811790915583526003909152902061110890611489565b60405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b61091f61115082610922565b82611492565b5490565b3b151590565b61117160058263ffffffff61156c16565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6111b960058263ffffffff6115f016565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b60006001600160a01b03821661123a57604051600160e51b62461bcd02815260040180806020018281038252602281526020018061188b6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b600061126e846001600160a01b031661115a565b61127a57506001610ebb565b604051600160e11b630a85bd0102815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b838110156112f75781810151838201526020016112df565b50505050905090810190601f1680156113245780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561134657600080fd5b505af115801561135a573d6000803e3d6000fd5b505050506040513d602081101561137057600080fd5b50516001600160e01b031916600160e11b630a85bd010214915050949350505050565b6001600160a01b0381166113db57604051600160e51b62461bcd0281526004018080602001828103825260268152602001806116ed6026913960400191505060405180910390fd5b6006546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000818152600260205260409020546001600160a01b03161561091f57600090815260026020526040902080546001600160a01b0319169055565b805461148590600163ffffffff61165a16565b9055565b80546001019055565b816001600160a01b03166114a582610922565b6001600160a01b0316146114ed57604051600160e51b62461bcd0281526004018080602001828103825260258152602001806119286025913960400191505060405180910390fd5b6114f681611437565b6001600160a01b038216600090815260036020526040902061151790611472565b60008181526001602052604080822080546001600160a01b0319169055518291906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b61157682826111f0565b156115cb5760408051600160e51b62461bcd02815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6115fa82826111f0565b61163857604051600160e51b62461bcd02815260040180806020018281038252602181526020018061181e6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6000828211156116b45760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572526f6c65733a206163636f756e7420697320746865207a65726f20616464726573734552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a165627a7a723058200d3d31047770573f291d2764e827e143563b662e8bdf398463704aa497fd04b60029`
  7796  
  7797  // ServiceChainNFTNoURIFuncSigs maps the 4-byte function signature to its string representation.
  7798  // Deprecated: Use ServiceChainNFTNoURIMetaData.Sigs instead.
  7799  var ServiceChainNFTNoURIFuncSigs = ServiceChainNFTNoURIMetaData.Sigs
  7800  
  7801  // ServiceChainNFTNoURIBin is the compiled bytecode used for deploying new contracts.
  7802  // Deprecated: Use ServiceChainNFTNoURIMetaData.Bin instead.
  7803  var ServiceChainNFTNoURIBin = ServiceChainNFTNoURIMetaData.Bin
  7804  
  7805  // DeployServiceChainNFTNoURI deploys a new Klaytn contract, binding an instance of ServiceChainNFTNoURI to it.
  7806  func DeployServiceChainNFTNoURI(auth *bind.TransactOpts, backend bind.ContractBackend, _bridge common.Address) (common.Address, *types.Transaction, *ServiceChainNFTNoURI, error) {
  7807  	parsed, err := ServiceChainNFTNoURIMetaData.GetAbi()
  7808  	if err != nil {
  7809  		return common.Address{}, nil, nil, err
  7810  	}
  7811  	if parsed == nil {
  7812  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
  7813  	}
  7814  
  7815  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ServiceChainNFTNoURIBin), backend, _bridge)
  7816  	if err != nil {
  7817  		return common.Address{}, nil, nil, err
  7818  	}
  7819  	return address, tx, &ServiceChainNFTNoURI{ServiceChainNFTNoURICaller: ServiceChainNFTNoURICaller{contract: contract}, ServiceChainNFTNoURITransactor: ServiceChainNFTNoURITransactor{contract: contract}, ServiceChainNFTNoURIFilterer: ServiceChainNFTNoURIFilterer{contract: contract}}, nil
  7820  }
  7821  
  7822  // ServiceChainNFTNoURI is an auto generated Go binding around a Klaytn contract.
  7823  type ServiceChainNFTNoURI struct {
  7824  	ServiceChainNFTNoURICaller     // Read-only binding to the contract
  7825  	ServiceChainNFTNoURITransactor // Write-only binding to the contract
  7826  	ServiceChainNFTNoURIFilterer   // Log filterer for contract events
  7827  }
  7828  
  7829  // ServiceChainNFTNoURICaller is an auto generated read-only Go binding around a Klaytn contract.
  7830  type ServiceChainNFTNoURICaller struct {
  7831  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  7832  }
  7833  
  7834  // ServiceChainNFTNoURITransactor is an auto generated write-only Go binding around a Klaytn contract.
  7835  type ServiceChainNFTNoURITransactor struct {
  7836  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  7837  }
  7838  
  7839  // ServiceChainNFTNoURIFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  7840  type ServiceChainNFTNoURIFilterer struct {
  7841  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  7842  }
  7843  
  7844  // ServiceChainNFTNoURISession is an auto generated Go binding around a Klaytn contract,
  7845  // with pre-set call and transact options.
  7846  type ServiceChainNFTNoURISession struct {
  7847  	Contract     *ServiceChainNFTNoURI // Generic contract binding to set the session for
  7848  	CallOpts     bind.CallOpts         // Call options to use throughout this session
  7849  	TransactOpts bind.TransactOpts     // Transaction auth options to use throughout this session
  7850  }
  7851  
  7852  // ServiceChainNFTNoURICallerSession is an auto generated read-only Go binding around a Klaytn contract,
  7853  // with pre-set call options.
  7854  type ServiceChainNFTNoURICallerSession struct {
  7855  	Contract *ServiceChainNFTNoURICaller // Generic contract caller binding to set the session for
  7856  	CallOpts bind.CallOpts               // Call options to use throughout this session
  7857  }
  7858  
  7859  // ServiceChainNFTNoURITransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  7860  // with pre-set transact options.
  7861  type ServiceChainNFTNoURITransactorSession struct {
  7862  	Contract     *ServiceChainNFTNoURITransactor // Generic contract transactor binding to set the session for
  7863  	TransactOpts bind.TransactOpts               // Transaction auth options to use throughout this session
  7864  }
  7865  
  7866  // ServiceChainNFTNoURIRaw is an auto generated low-level Go binding around a Klaytn contract.
  7867  type ServiceChainNFTNoURIRaw struct {
  7868  	Contract *ServiceChainNFTNoURI // Generic contract binding to access the raw methods on
  7869  }
  7870  
  7871  // ServiceChainNFTNoURICallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  7872  type ServiceChainNFTNoURICallerRaw struct {
  7873  	Contract *ServiceChainNFTNoURICaller // Generic read-only contract binding to access the raw methods on
  7874  }
  7875  
  7876  // ServiceChainNFTNoURITransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  7877  type ServiceChainNFTNoURITransactorRaw struct {
  7878  	Contract *ServiceChainNFTNoURITransactor // Generic write-only contract binding to access the raw methods on
  7879  }
  7880  
  7881  // NewServiceChainNFTNoURI creates a new instance of ServiceChainNFTNoURI, bound to a specific deployed contract.
  7882  func NewServiceChainNFTNoURI(address common.Address, backend bind.ContractBackend) (*ServiceChainNFTNoURI, error) {
  7883  	contract, err := bindServiceChainNFTNoURI(address, backend, backend, backend)
  7884  	if err != nil {
  7885  		return nil, err
  7886  	}
  7887  	return &ServiceChainNFTNoURI{ServiceChainNFTNoURICaller: ServiceChainNFTNoURICaller{contract: contract}, ServiceChainNFTNoURITransactor: ServiceChainNFTNoURITransactor{contract: contract}, ServiceChainNFTNoURIFilterer: ServiceChainNFTNoURIFilterer{contract: contract}}, nil
  7888  }
  7889  
  7890  // NewServiceChainNFTNoURICaller creates a new read-only instance of ServiceChainNFTNoURI, bound to a specific deployed contract.
  7891  func NewServiceChainNFTNoURICaller(address common.Address, caller bind.ContractCaller) (*ServiceChainNFTNoURICaller, error) {
  7892  	contract, err := bindServiceChainNFTNoURI(address, caller, nil, nil)
  7893  	if err != nil {
  7894  		return nil, err
  7895  	}
  7896  	return &ServiceChainNFTNoURICaller{contract: contract}, nil
  7897  }
  7898  
  7899  // NewServiceChainNFTNoURITransactor creates a new write-only instance of ServiceChainNFTNoURI, bound to a specific deployed contract.
  7900  func NewServiceChainNFTNoURITransactor(address common.Address, transactor bind.ContractTransactor) (*ServiceChainNFTNoURITransactor, error) {
  7901  	contract, err := bindServiceChainNFTNoURI(address, nil, transactor, nil)
  7902  	if err != nil {
  7903  		return nil, err
  7904  	}
  7905  	return &ServiceChainNFTNoURITransactor{contract: contract}, nil
  7906  }
  7907  
  7908  // NewServiceChainNFTNoURIFilterer creates a new log filterer instance of ServiceChainNFTNoURI, bound to a specific deployed contract.
  7909  func NewServiceChainNFTNoURIFilterer(address common.Address, filterer bind.ContractFilterer) (*ServiceChainNFTNoURIFilterer, error) {
  7910  	contract, err := bindServiceChainNFTNoURI(address, nil, nil, filterer)
  7911  	if err != nil {
  7912  		return nil, err
  7913  	}
  7914  	return &ServiceChainNFTNoURIFilterer{contract: contract}, nil
  7915  }
  7916  
  7917  // bindServiceChainNFTNoURI binds a generic wrapper to an already deployed contract.
  7918  func bindServiceChainNFTNoURI(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  7919  	parsed, err := ServiceChainNFTNoURIMetaData.GetAbi()
  7920  	if err != nil {
  7921  		return nil, err
  7922  	}
  7923  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  7924  }
  7925  
  7926  // Call invokes the (constant) contract method with params as input values and
  7927  // sets the output to result. The result type might be a single field for simple
  7928  // returns, a slice of interfaces for anonymous returns and a struct for named
  7929  // returns.
  7930  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURIRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  7931  	return _ServiceChainNFTNoURI.Contract.ServiceChainNFTNoURICaller.contract.Call(opts, result, method, params...)
  7932  }
  7933  
  7934  // Transfer initiates a plain transaction to move funds to the contract, calling
  7935  // its default method if one is available.
  7936  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURIRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  7937  	return _ServiceChainNFTNoURI.Contract.ServiceChainNFTNoURITransactor.contract.Transfer(opts)
  7938  }
  7939  
  7940  // Transact invokes the (paid) contract method with params as input values.
  7941  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURIRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  7942  	return _ServiceChainNFTNoURI.Contract.ServiceChainNFTNoURITransactor.contract.Transact(opts, method, params...)
  7943  }
  7944  
  7945  // Call invokes the (constant) contract method with params as input values and
  7946  // sets the output to result. The result type might be a single field for simple
  7947  // returns, a slice of interfaces for anonymous returns and a struct for named
  7948  // returns.
  7949  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURICallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  7950  	return _ServiceChainNFTNoURI.Contract.contract.Call(opts, result, method, params...)
  7951  }
  7952  
  7953  // Transfer initiates a plain transaction to move funds to the contract, calling
  7954  // its default method if one is available.
  7955  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  7956  	return _ServiceChainNFTNoURI.Contract.contract.Transfer(opts)
  7957  }
  7958  
  7959  // Transact invokes the (paid) contract method with params as input values.
  7960  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  7961  	return _ServiceChainNFTNoURI.Contract.contract.Transact(opts, method, params...)
  7962  }
  7963  
  7964  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  7965  //
  7966  // Solidity: function balanceOf(address owner) view returns(uint256)
  7967  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURICaller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) {
  7968  	var out []interface{}
  7969  	err := _ServiceChainNFTNoURI.contract.Call(opts, &out, "balanceOf", owner)
  7970  
  7971  	if err != nil {
  7972  		return *new(*big.Int), err
  7973  	}
  7974  
  7975  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  7976  
  7977  	return out0, err
  7978  
  7979  }
  7980  
  7981  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  7982  //
  7983  // Solidity: function balanceOf(address owner) view returns(uint256)
  7984  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURISession) BalanceOf(owner common.Address) (*big.Int, error) {
  7985  	return _ServiceChainNFTNoURI.Contract.BalanceOf(&_ServiceChainNFTNoURI.CallOpts, owner)
  7986  }
  7987  
  7988  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  7989  //
  7990  // Solidity: function balanceOf(address owner) view returns(uint256)
  7991  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURICallerSession) BalanceOf(owner common.Address) (*big.Int, error) {
  7992  	return _ServiceChainNFTNoURI.Contract.BalanceOf(&_ServiceChainNFTNoURI.CallOpts, owner)
  7993  }
  7994  
  7995  // Bridge is a free data retrieval call binding the contract method 0xe78cea92.
  7996  //
  7997  // Solidity: function bridge() view returns(address)
  7998  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURICaller) Bridge(opts *bind.CallOpts) (common.Address, error) {
  7999  	var out []interface{}
  8000  	err := _ServiceChainNFTNoURI.contract.Call(opts, &out, "bridge")
  8001  
  8002  	if err != nil {
  8003  		return *new(common.Address), err
  8004  	}
  8005  
  8006  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  8007  
  8008  	return out0, err
  8009  
  8010  }
  8011  
  8012  // Bridge is a free data retrieval call binding the contract method 0xe78cea92.
  8013  //
  8014  // Solidity: function bridge() view returns(address)
  8015  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURISession) Bridge() (common.Address, error) {
  8016  	return _ServiceChainNFTNoURI.Contract.Bridge(&_ServiceChainNFTNoURI.CallOpts)
  8017  }
  8018  
  8019  // Bridge is a free data retrieval call binding the contract method 0xe78cea92.
  8020  //
  8021  // Solidity: function bridge() view returns(address)
  8022  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURICallerSession) Bridge() (common.Address, error) {
  8023  	return _ServiceChainNFTNoURI.Contract.Bridge(&_ServiceChainNFTNoURI.CallOpts)
  8024  }
  8025  
  8026  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
  8027  //
  8028  // Solidity: function getApproved(uint256 tokenId) view returns(address)
  8029  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURICaller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
  8030  	var out []interface{}
  8031  	err := _ServiceChainNFTNoURI.contract.Call(opts, &out, "getApproved", tokenId)
  8032  
  8033  	if err != nil {
  8034  		return *new(common.Address), err
  8035  	}
  8036  
  8037  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  8038  
  8039  	return out0, err
  8040  
  8041  }
  8042  
  8043  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
  8044  //
  8045  // Solidity: function getApproved(uint256 tokenId) view returns(address)
  8046  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURISession) GetApproved(tokenId *big.Int) (common.Address, error) {
  8047  	return _ServiceChainNFTNoURI.Contract.GetApproved(&_ServiceChainNFTNoURI.CallOpts, tokenId)
  8048  }
  8049  
  8050  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
  8051  //
  8052  // Solidity: function getApproved(uint256 tokenId) view returns(address)
  8053  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURICallerSession) GetApproved(tokenId *big.Int) (common.Address, error) {
  8054  	return _ServiceChainNFTNoURI.Contract.GetApproved(&_ServiceChainNFTNoURI.CallOpts, tokenId)
  8055  }
  8056  
  8057  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
  8058  //
  8059  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
  8060  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURICaller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) {
  8061  	var out []interface{}
  8062  	err := _ServiceChainNFTNoURI.contract.Call(opts, &out, "isApprovedForAll", owner, operator)
  8063  
  8064  	if err != nil {
  8065  		return *new(bool), err
  8066  	}
  8067  
  8068  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  8069  
  8070  	return out0, err
  8071  
  8072  }
  8073  
  8074  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
  8075  //
  8076  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
  8077  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURISession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
  8078  	return _ServiceChainNFTNoURI.Contract.IsApprovedForAll(&_ServiceChainNFTNoURI.CallOpts, owner, operator)
  8079  }
  8080  
  8081  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
  8082  //
  8083  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
  8084  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURICallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
  8085  	return _ServiceChainNFTNoURI.Contract.IsApprovedForAll(&_ServiceChainNFTNoURI.CallOpts, owner, operator)
  8086  }
  8087  
  8088  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
  8089  //
  8090  // Solidity: function isMinter(address account) view returns(bool)
  8091  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURICaller) IsMinter(opts *bind.CallOpts, account common.Address) (bool, error) {
  8092  	var out []interface{}
  8093  	err := _ServiceChainNFTNoURI.contract.Call(opts, &out, "isMinter", account)
  8094  
  8095  	if err != nil {
  8096  		return *new(bool), err
  8097  	}
  8098  
  8099  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  8100  
  8101  	return out0, err
  8102  
  8103  }
  8104  
  8105  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
  8106  //
  8107  // Solidity: function isMinter(address account) view returns(bool)
  8108  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURISession) IsMinter(account common.Address) (bool, error) {
  8109  	return _ServiceChainNFTNoURI.Contract.IsMinter(&_ServiceChainNFTNoURI.CallOpts, account)
  8110  }
  8111  
  8112  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
  8113  //
  8114  // Solidity: function isMinter(address account) view returns(bool)
  8115  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURICallerSession) IsMinter(account common.Address) (bool, error) {
  8116  	return _ServiceChainNFTNoURI.Contract.IsMinter(&_ServiceChainNFTNoURI.CallOpts, account)
  8117  }
  8118  
  8119  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  8120  //
  8121  // Solidity: function isOwner() view returns(bool)
  8122  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURICaller) IsOwner(opts *bind.CallOpts) (bool, error) {
  8123  	var out []interface{}
  8124  	err := _ServiceChainNFTNoURI.contract.Call(opts, &out, "isOwner")
  8125  
  8126  	if err != nil {
  8127  		return *new(bool), err
  8128  	}
  8129  
  8130  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  8131  
  8132  	return out0, err
  8133  
  8134  }
  8135  
  8136  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  8137  //
  8138  // Solidity: function isOwner() view returns(bool)
  8139  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURISession) IsOwner() (bool, error) {
  8140  	return _ServiceChainNFTNoURI.Contract.IsOwner(&_ServiceChainNFTNoURI.CallOpts)
  8141  }
  8142  
  8143  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  8144  //
  8145  // Solidity: function isOwner() view returns(bool)
  8146  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURICallerSession) IsOwner() (bool, error) {
  8147  	return _ServiceChainNFTNoURI.Contract.IsOwner(&_ServiceChainNFTNoURI.CallOpts)
  8148  }
  8149  
  8150  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  8151  //
  8152  // Solidity: function owner() view returns(address)
  8153  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURICaller) Owner(opts *bind.CallOpts) (common.Address, error) {
  8154  	var out []interface{}
  8155  	err := _ServiceChainNFTNoURI.contract.Call(opts, &out, "owner")
  8156  
  8157  	if err != nil {
  8158  		return *new(common.Address), err
  8159  	}
  8160  
  8161  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  8162  
  8163  	return out0, err
  8164  
  8165  }
  8166  
  8167  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  8168  //
  8169  // Solidity: function owner() view returns(address)
  8170  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURISession) Owner() (common.Address, error) {
  8171  	return _ServiceChainNFTNoURI.Contract.Owner(&_ServiceChainNFTNoURI.CallOpts)
  8172  }
  8173  
  8174  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  8175  //
  8176  // Solidity: function owner() view returns(address)
  8177  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURICallerSession) Owner() (common.Address, error) {
  8178  	return _ServiceChainNFTNoURI.Contract.Owner(&_ServiceChainNFTNoURI.CallOpts)
  8179  }
  8180  
  8181  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
  8182  //
  8183  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
  8184  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURICaller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
  8185  	var out []interface{}
  8186  	err := _ServiceChainNFTNoURI.contract.Call(opts, &out, "ownerOf", tokenId)
  8187  
  8188  	if err != nil {
  8189  		return *new(common.Address), err
  8190  	}
  8191  
  8192  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  8193  
  8194  	return out0, err
  8195  
  8196  }
  8197  
  8198  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
  8199  //
  8200  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
  8201  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURISession) OwnerOf(tokenId *big.Int) (common.Address, error) {
  8202  	return _ServiceChainNFTNoURI.Contract.OwnerOf(&_ServiceChainNFTNoURI.CallOpts, tokenId)
  8203  }
  8204  
  8205  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
  8206  //
  8207  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
  8208  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURICallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
  8209  	return _ServiceChainNFTNoURI.Contract.OwnerOf(&_ServiceChainNFTNoURI.CallOpts, tokenId)
  8210  }
  8211  
  8212  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  8213  //
  8214  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
  8215  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURICaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
  8216  	var out []interface{}
  8217  	err := _ServiceChainNFTNoURI.contract.Call(opts, &out, "supportsInterface", interfaceId)
  8218  
  8219  	if err != nil {
  8220  		return *new(bool), err
  8221  	}
  8222  
  8223  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  8224  
  8225  	return out0, err
  8226  
  8227  }
  8228  
  8229  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  8230  //
  8231  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
  8232  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURISession) SupportsInterface(interfaceId [4]byte) (bool, error) {
  8233  	return _ServiceChainNFTNoURI.Contract.SupportsInterface(&_ServiceChainNFTNoURI.CallOpts, interfaceId)
  8234  }
  8235  
  8236  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  8237  //
  8238  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
  8239  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURICallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
  8240  	return _ServiceChainNFTNoURI.Contract.SupportsInterface(&_ServiceChainNFTNoURI.CallOpts, interfaceId)
  8241  }
  8242  
  8243  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
  8244  //
  8245  // Solidity: function addMinter(address account) returns()
  8246  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactor) AddMinter(opts *bind.TransactOpts, account common.Address) (*types.Transaction, error) {
  8247  	return _ServiceChainNFTNoURI.contract.Transact(opts, "addMinter", account)
  8248  }
  8249  
  8250  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
  8251  //
  8252  // Solidity: function addMinter(address account) returns()
  8253  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURISession) AddMinter(account common.Address) (*types.Transaction, error) {
  8254  	return _ServiceChainNFTNoURI.Contract.AddMinter(&_ServiceChainNFTNoURI.TransactOpts, account)
  8255  }
  8256  
  8257  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
  8258  //
  8259  // Solidity: function addMinter(address account) returns()
  8260  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactorSession) AddMinter(account common.Address) (*types.Transaction, error) {
  8261  	return _ServiceChainNFTNoURI.Contract.AddMinter(&_ServiceChainNFTNoURI.TransactOpts, account)
  8262  }
  8263  
  8264  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  8265  //
  8266  // Solidity: function approve(address to, uint256 tokenId) returns()
  8267  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  8268  	return _ServiceChainNFTNoURI.contract.Transact(opts, "approve", to, tokenId)
  8269  }
  8270  
  8271  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  8272  //
  8273  // Solidity: function approve(address to, uint256 tokenId) returns()
  8274  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURISession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  8275  	return _ServiceChainNFTNoURI.Contract.Approve(&_ServiceChainNFTNoURI.TransactOpts, to, tokenId)
  8276  }
  8277  
  8278  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  8279  //
  8280  // Solidity: function approve(address to, uint256 tokenId) returns()
  8281  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  8282  	return _ServiceChainNFTNoURI.Contract.Approve(&_ServiceChainNFTNoURI.TransactOpts, to, tokenId)
  8283  }
  8284  
  8285  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
  8286  //
  8287  // Solidity: function burn(uint256 tokenId) returns()
  8288  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactor) Burn(opts *bind.TransactOpts, tokenId *big.Int) (*types.Transaction, error) {
  8289  	return _ServiceChainNFTNoURI.contract.Transact(opts, "burn", tokenId)
  8290  }
  8291  
  8292  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
  8293  //
  8294  // Solidity: function burn(uint256 tokenId) returns()
  8295  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURISession) Burn(tokenId *big.Int) (*types.Transaction, error) {
  8296  	return _ServiceChainNFTNoURI.Contract.Burn(&_ServiceChainNFTNoURI.TransactOpts, tokenId)
  8297  }
  8298  
  8299  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
  8300  //
  8301  // Solidity: function burn(uint256 tokenId) returns()
  8302  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactorSession) Burn(tokenId *big.Int) (*types.Transaction, error) {
  8303  	return _ServiceChainNFTNoURI.Contract.Burn(&_ServiceChainNFTNoURI.TransactOpts, tokenId)
  8304  }
  8305  
  8306  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
  8307  //
  8308  // Solidity: function mint(address to, uint256 tokenId) returns(bool)
  8309  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactor) Mint(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  8310  	return _ServiceChainNFTNoURI.contract.Transact(opts, "mint", to, tokenId)
  8311  }
  8312  
  8313  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
  8314  //
  8315  // Solidity: function mint(address to, uint256 tokenId) returns(bool)
  8316  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURISession) Mint(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  8317  	return _ServiceChainNFTNoURI.Contract.Mint(&_ServiceChainNFTNoURI.TransactOpts, to, tokenId)
  8318  }
  8319  
  8320  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
  8321  //
  8322  // Solidity: function mint(address to, uint256 tokenId) returns(bool)
  8323  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactorSession) Mint(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  8324  	return _ServiceChainNFTNoURI.Contract.Mint(&_ServiceChainNFTNoURI.TransactOpts, to, tokenId)
  8325  }
  8326  
  8327  // RegisterBulk is a paid mutator transaction binding the contract method 0x7a9adac6.
  8328  //
  8329  // Solidity: function registerBulk(address _user, uint256 _startID, uint256 _endID) returns()
  8330  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactor) RegisterBulk(opts *bind.TransactOpts, _user common.Address, _startID *big.Int, _endID *big.Int) (*types.Transaction, error) {
  8331  	return _ServiceChainNFTNoURI.contract.Transact(opts, "registerBulk", _user, _startID, _endID)
  8332  }
  8333  
  8334  // RegisterBulk is a paid mutator transaction binding the contract method 0x7a9adac6.
  8335  //
  8336  // Solidity: function registerBulk(address _user, uint256 _startID, uint256 _endID) returns()
  8337  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURISession) RegisterBulk(_user common.Address, _startID *big.Int, _endID *big.Int) (*types.Transaction, error) {
  8338  	return _ServiceChainNFTNoURI.Contract.RegisterBulk(&_ServiceChainNFTNoURI.TransactOpts, _user, _startID, _endID)
  8339  }
  8340  
  8341  // RegisterBulk is a paid mutator transaction binding the contract method 0x7a9adac6.
  8342  //
  8343  // Solidity: function registerBulk(address _user, uint256 _startID, uint256 _endID) returns()
  8344  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactorSession) RegisterBulk(_user common.Address, _startID *big.Int, _endID *big.Int) (*types.Transaction, error) {
  8345  	return _ServiceChainNFTNoURI.Contract.RegisterBulk(&_ServiceChainNFTNoURI.TransactOpts, _user, _startID, _endID)
  8346  }
  8347  
  8348  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
  8349  //
  8350  // Solidity: function renounceMinter() returns()
  8351  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactor) RenounceMinter(opts *bind.TransactOpts) (*types.Transaction, error) {
  8352  	return _ServiceChainNFTNoURI.contract.Transact(opts, "renounceMinter")
  8353  }
  8354  
  8355  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
  8356  //
  8357  // Solidity: function renounceMinter() returns()
  8358  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURISession) RenounceMinter() (*types.Transaction, error) {
  8359  	return _ServiceChainNFTNoURI.Contract.RenounceMinter(&_ServiceChainNFTNoURI.TransactOpts)
  8360  }
  8361  
  8362  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
  8363  //
  8364  // Solidity: function renounceMinter() returns()
  8365  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactorSession) RenounceMinter() (*types.Transaction, error) {
  8366  	return _ServiceChainNFTNoURI.Contract.RenounceMinter(&_ServiceChainNFTNoURI.TransactOpts)
  8367  }
  8368  
  8369  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  8370  //
  8371  // Solidity: function renounceOwnership() returns()
  8372  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
  8373  	return _ServiceChainNFTNoURI.contract.Transact(opts, "renounceOwnership")
  8374  }
  8375  
  8376  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  8377  //
  8378  // Solidity: function renounceOwnership() returns()
  8379  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURISession) RenounceOwnership() (*types.Transaction, error) {
  8380  	return _ServiceChainNFTNoURI.Contract.RenounceOwnership(&_ServiceChainNFTNoURI.TransactOpts)
  8381  }
  8382  
  8383  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  8384  //
  8385  // Solidity: function renounceOwnership() returns()
  8386  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactorSession) RenounceOwnership() (*types.Transaction, error) {
  8387  	return _ServiceChainNFTNoURI.Contract.RenounceOwnership(&_ServiceChainNFTNoURI.TransactOpts)
  8388  }
  8389  
  8390  // RequestValueTransfer is a paid mutator transaction binding the contract method 0x3f4c4e3d.
  8391  //
  8392  // Solidity: function requestValueTransfer(uint256 _uid, address _to, bytes _extraData) returns()
  8393  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactor) RequestValueTransfer(opts *bind.TransactOpts, _uid *big.Int, _to common.Address, _extraData []byte) (*types.Transaction, error) {
  8394  	return _ServiceChainNFTNoURI.contract.Transact(opts, "requestValueTransfer", _uid, _to, _extraData)
  8395  }
  8396  
  8397  // RequestValueTransfer is a paid mutator transaction binding the contract method 0x3f4c4e3d.
  8398  //
  8399  // Solidity: function requestValueTransfer(uint256 _uid, address _to, bytes _extraData) returns()
  8400  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURISession) RequestValueTransfer(_uid *big.Int, _to common.Address, _extraData []byte) (*types.Transaction, error) {
  8401  	return _ServiceChainNFTNoURI.Contract.RequestValueTransfer(&_ServiceChainNFTNoURI.TransactOpts, _uid, _to, _extraData)
  8402  }
  8403  
  8404  // RequestValueTransfer is a paid mutator transaction binding the contract method 0x3f4c4e3d.
  8405  //
  8406  // Solidity: function requestValueTransfer(uint256 _uid, address _to, bytes _extraData) returns()
  8407  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactorSession) RequestValueTransfer(_uid *big.Int, _to common.Address, _extraData []byte) (*types.Transaction, error) {
  8408  	return _ServiceChainNFTNoURI.Contract.RequestValueTransfer(&_ServiceChainNFTNoURI.TransactOpts, _uid, _to, _extraData)
  8409  }
  8410  
  8411  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
  8412  //
  8413  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
  8414  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  8415  	return _ServiceChainNFTNoURI.contract.Transact(opts, "safeTransferFrom", from, to, tokenId)
  8416  }
  8417  
  8418  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
  8419  //
  8420  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
  8421  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURISession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  8422  	return _ServiceChainNFTNoURI.Contract.SafeTransferFrom(&_ServiceChainNFTNoURI.TransactOpts, from, to, tokenId)
  8423  }
  8424  
  8425  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
  8426  //
  8427  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
  8428  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  8429  	return _ServiceChainNFTNoURI.Contract.SafeTransferFrom(&_ServiceChainNFTNoURI.TransactOpts, from, to, tokenId)
  8430  }
  8431  
  8432  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
  8433  //
  8434  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
  8435  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
  8436  	return _ServiceChainNFTNoURI.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, _data)
  8437  }
  8438  
  8439  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
  8440  //
  8441  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
  8442  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURISession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
  8443  	return _ServiceChainNFTNoURI.Contract.SafeTransferFrom0(&_ServiceChainNFTNoURI.TransactOpts, from, to, tokenId, _data)
  8444  }
  8445  
  8446  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
  8447  //
  8448  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
  8449  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
  8450  	return _ServiceChainNFTNoURI.Contract.SafeTransferFrom0(&_ServiceChainNFTNoURI.TransactOpts, from, to, tokenId, _data)
  8451  }
  8452  
  8453  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
  8454  //
  8455  // Solidity: function setApprovalForAll(address to, bool approved) returns()
  8456  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactor) SetApprovalForAll(opts *bind.TransactOpts, to common.Address, approved bool) (*types.Transaction, error) {
  8457  	return _ServiceChainNFTNoURI.contract.Transact(opts, "setApprovalForAll", to, approved)
  8458  }
  8459  
  8460  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
  8461  //
  8462  // Solidity: function setApprovalForAll(address to, bool approved) returns()
  8463  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURISession) SetApprovalForAll(to common.Address, approved bool) (*types.Transaction, error) {
  8464  	return _ServiceChainNFTNoURI.Contract.SetApprovalForAll(&_ServiceChainNFTNoURI.TransactOpts, to, approved)
  8465  }
  8466  
  8467  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
  8468  //
  8469  // Solidity: function setApprovalForAll(address to, bool approved) returns()
  8470  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactorSession) SetApprovalForAll(to common.Address, approved bool) (*types.Transaction, error) {
  8471  	return _ServiceChainNFTNoURI.Contract.SetApprovalForAll(&_ServiceChainNFTNoURI.TransactOpts, to, approved)
  8472  }
  8473  
  8474  // SetBridge is a paid mutator transaction binding the contract method 0x8dd14802.
  8475  //
  8476  // Solidity: function setBridge(address _bridge) returns()
  8477  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactor) SetBridge(opts *bind.TransactOpts, _bridge common.Address) (*types.Transaction, error) {
  8478  	return _ServiceChainNFTNoURI.contract.Transact(opts, "setBridge", _bridge)
  8479  }
  8480  
  8481  // SetBridge is a paid mutator transaction binding the contract method 0x8dd14802.
  8482  //
  8483  // Solidity: function setBridge(address _bridge) returns()
  8484  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURISession) SetBridge(_bridge common.Address) (*types.Transaction, error) {
  8485  	return _ServiceChainNFTNoURI.Contract.SetBridge(&_ServiceChainNFTNoURI.TransactOpts, _bridge)
  8486  }
  8487  
  8488  // SetBridge is a paid mutator transaction binding the contract method 0x8dd14802.
  8489  //
  8490  // Solidity: function setBridge(address _bridge) returns()
  8491  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactorSession) SetBridge(_bridge common.Address) (*types.Transaction, error) {
  8492  	return _ServiceChainNFTNoURI.Contract.SetBridge(&_ServiceChainNFTNoURI.TransactOpts, _bridge)
  8493  }
  8494  
  8495  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  8496  //
  8497  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
  8498  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  8499  	return _ServiceChainNFTNoURI.contract.Transact(opts, "transferFrom", from, to, tokenId)
  8500  }
  8501  
  8502  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  8503  //
  8504  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
  8505  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURISession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  8506  	return _ServiceChainNFTNoURI.Contract.TransferFrom(&_ServiceChainNFTNoURI.TransactOpts, from, to, tokenId)
  8507  }
  8508  
  8509  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  8510  //
  8511  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
  8512  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  8513  	return _ServiceChainNFTNoURI.Contract.TransferFrom(&_ServiceChainNFTNoURI.TransactOpts, from, to, tokenId)
  8514  }
  8515  
  8516  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  8517  //
  8518  // Solidity: function transferOwnership(address newOwner) returns()
  8519  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  8520  	return _ServiceChainNFTNoURI.contract.Transact(opts, "transferOwnership", newOwner)
  8521  }
  8522  
  8523  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  8524  //
  8525  // Solidity: function transferOwnership(address newOwner) returns()
  8526  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURISession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  8527  	return _ServiceChainNFTNoURI.Contract.TransferOwnership(&_ServiceChainNFTNoURI.TransactOpts, newOwner)
  8528  }
  8529  
  8530  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  8531  //
  8532  // Solidity: function transferOwnership(address newOwner) returns()
  8533  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURITransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  8534  	return _ServiceChainNFTNoURI.Contract.TransferOwnership(&_ServiceChainNFTNoURI.TransactOpts, newOwner)
  8535  }
  8536  
  8537  // ServiceChainNFTNoURIApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ServiceChainNFTNoURI contract.
  8538  type ServiceChainNFTNoURIApprovalIterator struct {
  8539  	Event *ServiceChainNFTNoURIApproval // Event containing the contract specifics and raw log
  8540  
  8541  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  8542  	event    string              // Event name to use for unpacking event data
  8543  
  8544  	logs chan types.Log      // Log channel receiving the found contract events
  8545  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  8546  	done bool                // Whether the subscription completed delivering logs
  8547  	fail error               // Occurred error to stop iteration
  8548  }
  8549  
  8550  // Next advances the iterator to the subsequent event, returning whether there
  8551  // are any more events found. In case of a retrieval or parsing error, false is
  8552  // returned and Error() can be queried for the exact failure.
  8553  func (it *ServiceChainNFTNoURIApprovalIterator) Next() bool {
  8554  	// If the iterator failed, stop iterating
  8555  	if it.fail != nil {
  8556  		return false
  8557  	}
  8558  	// If the iterator completed, deliver directly whatever's available
  8559  	if it.done {
  8560  		select {
  8561  		case log := <-it.logs:
  8562  			it.Event = new(ServiceChainNFTNoURIApproval)
  8563  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8564  				it.fail = err
  8565  				return false
  8566  			}
  8567  			it.Event.Raw = log
  8568  			return true
  8569  
  8570  		default:
  8571  			return false
  8572  		}
  8573  	}
  8574  	// Iterator still in progress, wait for either a data or an error event
  8575  	select {
  8576  	case log := <-it.logs:
  8577  		it.Event = new(ServiceChainNFTNoURIApproval)
  8578  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8579  			it.fail = err
  8580  			return false
  8581  		}
  8582  		it.Event.Raw = log
  8583  		return true
  8584  
  8585  	case err := <-it.sub.Err():
  8586  		it.done = true
  8587  		it.fail = err
  8588  		return it.Next()
  8589  	}
  8590  }
  8591  
  8592  // Error returns any retrieval or parsing error occurred during filtering.
  8593  func (it *ServiceChainNFTNoURIApprovalIterator) Error() error {
  8594  	return it.fail
  8595  }
  8596  
  8597  // Close terminates the iteration process, releasing any pending underlying
  8598  // resources.
  8599  func (it *ServiceChainNFTNoURIApprovalIterator) Close() error {
  8600  	it.sub.Unsubscribe()
  8601  	return nil
  8602  }
  8603  
  8604  // ServiceChainNFTNoURIApproval represents a Approval event raised by the ServiceChainNFTNoURI contract.
  8605  type ServiceChainNFTNoURIApproval struct {
  8606  	Owner    common.Address
  8607  	Approved common.Address
  8608  	TokenId  *big.Int
  8609  	Raw      types.Log // Blockchain specific contextual infos
  8610  }
  8611  
  8612  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  8613  //
  8614  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  8615  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURIFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*ServiceChainNFTNoURIApprovalIterator, error) {
  8616  
  8617  	var ownerRule []interface{}
  8618  	for _, ownerItem := range owner {
  8619  		ownerRule = append(ownerRule, ownerItem)
  8620  	}
  8621  	var approvedRule []interface{}
  8622  	for _, approvedItem := range approved {
  8623  		approvedRule = append(approvedRule, approvedItem)
  8624  	}
  8625  	var tokenIdRule []interface{}
  8626  	for _, tokenIdItem := range tokenId {
  8627  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  8628  	}
  8629  
  8630  	logs, sub, err := _ServiceChainNFTNoURI.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
  8631  	if err != nil {
  8632  		return nil, err
  8633  	}
  8634  	return &ServiceChainNFTNoURIApprovalIterator{contract: _ServiceChainNFTNoURI.contract, event: "Approval", logs: logs, sub: sub}, nil
  8635  }
  8636  
  8637  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  8638  //
  8639  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  8640  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURIFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ServiceChainNFTNoURIApproval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) {
  8641  
  8642  	var ownerRule []interface{}
  8643  	for _, ownerItem := range owner {
  8644  		ownerRule = append(ownerRule, ownerItem)
  8645  	}
  8646  	var approvedRule []interface{}
  8647  	for _, approvedItem := range approved {
  8648  		approvedRule = append(approvedRule, approvedItem)
  8649  	}
  8650  	var tokenIdRule []interface{}
  8651  	for _, tokenIdItem := range tokenId {
  8652  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  8653  	}
  8654  
  8655  	logs, sub, err := _ServiceChainNFTNoURI.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
  8656  	if err != nil {
  8657  		return nil, err
  8658  	}
  8659  	return event.NewSubscription(func(quit <-chan struct{}) error {
  8660  		defer sub.Unsubscribe()
  8661  		for {
  8662  			select {
  8663  			case log := <-logs:
  8664  				// New log arrived, parse the event and forward to the user
  8665  				event := new(ServiceChainNFTNoURIApproval)
  8666  				if err := _ServiceChainNFTNoURI.contract.UnpackLog(event, "Approval", log); err != nil {
  8667  					return err
  8668  				}
  8669  				event.Raw = log
  8670  
  8671  				select {
  8672  				case sink <- event:
  8673  				case err := <-sub.Err():
  8674  					return err
  8675  				case <-quit:
  8676  					return nil
  8677  				}
  8678  			case err := <-sub.Err():
  8679  				return err
  8680  			case <-quit:
  8681  				return nil
  8682  			}
  8683  		}
  8684  	}), nil
  8685  }
  8686  
  8687  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  8688  //
  8689  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  8690  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURIFilterer) ParseApproval(log types.Log) (*ServiceChainNFTNoURIApproval, error) {
  8691  	event := new(ServiceChainNFTNoURIApproval)
  8692  	if err := _ServiceChainNFTNoURI.contract.UnpackLog(event, "Approval", log); err != nil {
  8693  		return nil, err
  8694  	}
  8695  	return event, nil
  8696  }
  8697  
  8698  // ServiceChainNFTNoURIApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the ServiceChainNFTNoURI contract.
  8699  type ServiceChainNFTNoURIApprovalForAllIterator struct {
  8700  	Event *ServiceChainNFTNoURIApprovalForAll // Event containing the contract specifics and raw log
  8701  
  8702  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  8703  	event    string              // Event name to use for unpacking event data
  8704  
  8705  	logs chan types.Log      // Log channel receiving the found contract events
  8706  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  8707  	done bool                // Whether the subscription completed delivering logs
  8708  	fail error               // Occurred error to stop iteration
  8709  }
  8710  
  8711  // Next advances the iterator to the subsequent event, returning whether there
  8712  // are any more events found. In case of a retrieval or parsing error, false is
  8713  // returned and Error() can be queried for the exact failure.
  8714  func (it *ServiceChainNFTNoURIApprovalForAllIterator) Next() bool {
  8715  	// If the iterator failed, stop iterating
  8716  	if it.fail != nil {
  8717  		return false
  8718  	}
  8719  	// If the iterator completed, deliver directly whatever's available
  8720  	if it.done {
  8721  		select {
  8722  		case log := <-it.logs:
  8723  			it.Event = new(ServiceChainNFTNoURIApprovalForAll)
  8724  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8725  				it.fail = err
  8726  				return false
  8727  			}
  8728  			it.Event.Raw = log
  8729  			return true
  8730  
  8731  		default:
  8732  			return false
  8733  		}
  8734  	}
  8735  	// Iterator still in progress, wait for either a data or an error event
  8736  	select {
  8737  	case log := <-it.logs:
  8738  		it.Event = new(ServiceChainNFTNoURIApprovalForAll)
  8739  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8740  			it.fail = err
  8741  			return false
  8742  		}
  8743  		it.Event.Raw = log
  8744  		return true
  8745  
  8746  	case err := <-it.sub.Err():
  8747  		it.done = true
  8748  		it.fail = err
  8749  		return it.Next()
  8750  	}
  8751  }
  8752  
  8753  // Error returns any retrieval or parsing error occurred during filtering.
  8754  func (it *ServiceChainNFTNoURIApprovalForAllIterator) Error() error {
  8755  	return it.fail
  8756  }
  8757  
  8758  // Close terminates the iteration process, releasing any pending underlying
  8759  // resources.
  8760  func (it *ServiceChainNFTNoURIApprovalForAllIterator) Close() error {
  8761  	it.sub.Unsubscribe()
  8762  	return nil
  8763  }
  8764  
  8765  // ServiceChainNFTNoURIApprovalForAll represents a ApprovalForAll event raised by the ServiceChainNFTNoURI contract.
  8766  type ServiceChainNFTNoURIApprovalForAll struct {
  8767  	Owner    common.Address
  8768  	Operator common.Address
  8769  	Approved bool
  8770  	Raw      types.Log // Blockchain specific contextual infos
  8771  }
  8772  
  8773  // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  8774  //
  8775  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  8776  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURIFilterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*ServiceChainNFTNoURIApprovalForAllIterator, error) {
  8777  
  8778  	var ownerRule []interface{}
  8779  	for _, ownerItem := range owner {
  8780  		ownerRule = append(ownerRule, ownerItem)
  8781  	}
  8782  	var operatorRule []interface{}
  8783  	for _, operatorItem := range operator {
  8784  		operatorRule = append(operatorRule, operatorItem)
  8785  	}
  8786  
  8787  	logs, sub, err := _ServiceChainNFTNoURI.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
  8788  	if err != nil {
  8789  		return nil, err
  8790  	}
  8791  	return &ServiceChainNFTNoURIApprovalForAllIterator{contract: _ServiceChainNFTNoURI.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil
  8792  }
  8793  
  8794  // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  8795  //
  8796  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  8797  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURIFilterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *ServiceChainNFTNoURIApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) {
  8798  
  8799  	var ownerRule []interface{}
  8800  	for _, ownerItem := range owner {
  8801  		ownerRule = append(ownerRule, ownerItem)
  8802  	}
  8803  	var operatorRule []interface{}
  8804  	for _, operatorItem := range operator {
  8805  		operatorRule = append(operatorRule, operatorItem)
  8806  	}
  8807  
  8808  	logs, sub, err := _ServiceChainNFTNoURI.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
  8809  	if err != nil {
  8810  		return nil, err
  8811  	}
  8812  	return event.NewSubscription(func(quit <-chan struct{}) error {
  8813  		defer sub.Unsubscribe()
  8814  		for {
  8815  			select {
  8816  			case log := <-logs:
  8817  				// New log arrived, parse the event and forward to the user
  8818  				event := new(ServiceChainNFTNoURIApprovalForAll)
  8819  				if err := _ServiceChainNFTNoURI.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
  8820  					return err
  8821  				}
  8822  				event.Raw = log
  8823  
  8824  				select {
  8825  				case sink <- event:
  8826  				case err := <-sub.Err():
  8827  					return err
  8828  				case <-quit:
  8829  					return nil
  8830  				}
  8831  			case err := <-sub.Err():
  8832  				return err
  8833  			case <-quit:
  8834  				return nil
  8835  			}
  8836  		}
  8837  	}), nil
  8838  }
  8839  
  8840  // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  8841  //
  8842  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  8843  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURIFilterer) ParseApprovalForAll(log types.Log) (*ServiceChainNFTNoURIApprovalForAll, error) {
  8844  	event := new(ServiceChainNFTNoURIApprovalForAll)
  8845  	if err := _ServiceChainNFTNoURI.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
  8846  		return nil, err
  8847  	}
  8848  	return event, nil
  8849  }
  8850  
  8851  // ServiceChainNFTNoURIMinterAddedIterator is returned from FilterMinterAdded and is used to iterate over the raw logs and unpacked data for MinterAdded events raised by the ServiceChainNFTNoURI contract.
  8852  type ServiceChainNFTNoURIMinterAddedIterator struct {
  8853  	Event *ServiceChainNFTNoURIMinterAdded // Event containing the contract specifics and raw log
  8854  
  8855  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  8856  	event    string              // Event name to use for unpacking event data
  8857  
  8858  	logs chan types.Log      // Log channel receiving the found contract events
  8859  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  8860  	done bool                // Whether the subscription completed delivering logs
  8861  	fail error               // Occurred error to stop iteration
  8862  }
  8863  
  8864  // Next advances the iterator to the subsequent event, returning whether there
  8865  // are any more events found. In case of a retrieval or parsing error, false is
  8866  // returned and Error() can be queried for the exact failure.
  8867  func (it *ServiceChainNFTNoURIMinterAddedIterator) Next() bool {
  8868  	// If the iterator failed, stop iterating
  8869  	if it.fail != nil {
  8870  		return false
  8871  	}
  8872  	// If the iterator completed, deliver directly whatever's available
  8873  	if it.done {
  8874  		select {
  8875  		case log := <-it.logs:
  8876  			it.Event = new(ServiceChainNFTNoURIMinterAdded)
  8877  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8878  				it.fail = err
  8879  				return false
  8880  			}
  8881  			it.Event.Raw = log
  8882  			return true
  8883  
  8884  		default:
  8885  			return false
  8886  		}
  8887  	}
  8888  	// Iterator still in progress, wait for either a data or an error event
  8889  	select {
  8890  	case log := <-it.logs:
  8891  		it.Event = new(ServiceChainNFTNoURIMinterAdded)
  8892  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8893  			it.fail = err
  8894  			return false
  8895  		}
  8896  		it.Event.Raw = log
  8897  		return true
  8898  
  8899  	case err := <-it.sub.Err():
  8900  		it.done = true
  8901  		it.fail = err
  8902  		return it.Next()
  8903  	}
  8904  }
  8905  
  8906  // Error returns any retrieval or parsing error occurred during filtering.
  8907  func (it *ServiceChainNFTNoURIMinterAddedIterator) Error() error {
  8908  	return it.fail
  8909  }
  8910  
  8911  // Close terminates the iteration process, releasing any pending underlying
  8912  // resources.
  8913  func (it *ServiceChainNFTNoURIMinterAddedIterator) Close() error {
  8914  	it.sub.Unsubscribe()
  8915  	return nil
  8916  }
  8917  
  8918  // ServiceChainNFTNoURIMinterAdded represents a MinterAdded event raised by the ServiceChainNFTNoURI contract.
  8919  type ServiceChainNFTNoURIMinterAdded struct {
  8920  	Account common.Address
  8921  	Raw     types.Log // Blockchain specific contextual infos
  8922  }
  8923  
  8924  // FilterMinterAdded is a free log retrieval operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
  8925  //
  8926  // Solidity: event MinterAdded(address indexed account)
  8927  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURIFilterer) FilterMinterAdded(opts *bind.FilterOpts, account []common.Address) (*ServiceChainNFTNoURIMinterAddedIterator, error) {
  8928  
  8929  	var accountRule []interface{}
  8930  	for _, accountItem := range account {
  8931  		accountRule = append(accountRule, accountItem)
  8932  	}
  8933  
  8934  	logs, sub, err := _ServiceChainNFTNoURI.contract.FilterLogs(opts, "MinterAdded", accountRule)
  8935  	if err != nil {
  8936  		return nil, err
  8937  	}
  8938  	return &ServiceChainNFTNoURIMinterAddedIterator{contract: _ServiceChainNFTNoURI.contract, event: "MinterAdded", logs: logs, sub: sub}, nil
  8939  }
  8940  
  8941  // WatchMinterAdded is a free log subscription operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
  8942  //
  8943  // Solidity: event MinterAdded(address indexed account)
  8944  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURIFilterer) WatchMinterAdded(opts *bind.WatchOpts, sink chan<- *ServiceChainNFTNoURIMinterAdded, account []common.Address) (event.Subscription, error) {
  8945  
  8946  	var accountRule []interface{}
  8947  	for _, accountItem := range account {
  8948  		accountRule = append(accountRule, accountItem)
  8949  	}
  8950  
  8951  	logs, sub, err := _ServiceChainNFTNoURI.contract.WatchLogs(opts, "MinterAdded", accountRule)
  8952  	if err != nil {
  8953  		return nil, err
  8954  	}
  8955  	return event.NewSubscription(func(quit <-chan struct{}) error {
  8956  		defer sub.Unsubscribe()
  8957  		for {
  8958  			select {
  8959  			case log := <-logs:
  8960  				// New log arrived, parse the event and forward to the user
  8961  				event := new(ServiceChainNFTNoURIMinterAdded)
  8962  				if err := _ServiceChainNFTNoURI.contract.UnpackLog(event, "MinterAdded", log); err != nil {
  8963  					return err
  8964  				}
  8965  				event.Raw = log
  8966  
  8967  				select {
  8968  				case sink <- event:
  8969  				case err := <-sub.Err():
  8970  					return err
  8971  				case <-quit:
  8972  					return nil
  8973  				}
  8974  			case err := <-sub.Err():
  8975  				return err
  8976  			case <-quit:
  8977  				return nil
  8978  			}
  8979  		}
  8980  	}), nil
  8981  }
  8982  
  8983  // ParseMinterAdded is a log parse operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
  8984  //
  8985  // Solidity: event MinterAdded(address indexed account)
  8986  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURIFilterer) ParseMinterAdded(log types.Log) (*ServiceChainNFTNoURIMinterAdded, error) {
  8987  	event := new(ServiceChainNFTNoURIMinterAdded)
  8988  	if err := _ServiceChainNFTNoURI.contract.UnpackLog(event, "MinterAdded", log); err != nil {
  8989  		return nil, err
  8990  	}
  8991  	return event, nil
  8992  }
  8993  
  8994  // ServiceChainNFTNoURIMinterRemovedIterator is returned from FilterMinterRemoved and is used to iterate over the raw logs and unpacked data for MinterRemoved events raised by the ServiceChainNFTNoURI contract.
  8995  type ServiceChainNFTNoURIMinterRemovedIterator struct {
  8996  	Event *ServiceChainNFTNoURIMinterRemoved // Event containing the contract specifics and raw log
  8997  
  8998  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  8999  	event    string              // Event name to use for unpacking event data
  9000  
  9001  	logs chan types.Log      // Log channel receiving the found contract events
  9002  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  9003  	done bool                // Whether the subscription completed delivering logs
  9004  	fail error               // Occurred error to stop iteration
  9005  }
  9006  
  9007  // Next advances the iterator to the subsequent event, returning whether there
  9008  // are any more events found. In case of a retrieval or parsing error, false is
  9009  // returned and Error() can be queried for the exact failure.
  9010  func (it *ServiceChainNFTNoURIMinterRemovedIterator) Next() bool {
  9011  	// If the iterator failed, stop iterating
  9012  	if it.fail != nil {
  9013  		return false
  9014  	}
  9015  	// If the iterator completed, deliver directly whatever's available
  9016  	if it.done {
  9017  		select {
  9018  		case log := <-it.logs:
  9019  			it.Event = new(ServiceChainNFTNoURIMinterRemoved)
  9020  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9021  				it.fail = err
  9022  				return false
  9023  			}
  9024  			it.Event.Raw = log
  9025  			return true
  9026  
  9027  		default:
  9028  			return false
  9029  		}
  9030  	}
  9031  	// Iterator still in progress, wait for either a data or an error event
  9032  	select {
  9033  	case log := <-it.logs:
  9034  		it.Event = new(ServiceChainNFTNoURIMinterRemoved)
  9035  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9036  			it.fail = err
  9037  			return false
  9038  		}
  9039  		it.Event.Raw = log
  9040  		return true
  9041  
  9042  	case err := <-it.sub.Err():
  9043  		it.done = true
  9044  		it.fail = err
  9045  		return it.Next()
  9046  	}
  9047  }
  9048  
  9049  // Error returns any retrieval or parsing error occurred during filtering.
  9050  func (it *ServiceChainNFTNoURIMinterRemovedIterator) Error() error {
  9051  	return it.fail
  9052  }
  9053  
  9054  // Close terminates the iteration process, releasing any pending underlying
  9055  // resources.
  9056  func (it *ServiceChainNFTNoURIMinterRemovedIterator) Close() error {
  9057  	it.sub.Unsubscribe()
  9058  	return nil
  9059  }
  9060  
  9061  // ServiceChainNFTNoURIMinterRemoved represents a MinterRemoved event raised by the ServiceChainNFTNoURI contract.
  9062  type ServiceChainNFTNoURIMinterRemoved struct {
  9063  	Account common.Address
  9064  	Raw     types.Log // Blockchain specific contextual infos
  9065  }
  9066  
  9067  // FilterMinterRemoved is a free log retrieval operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
  9068  //
  9069  // Solidity: event MinterRemoved(address indexed account)
  9070  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURIFilterer) FilterMinterRemoved(opts *bind.FilterOpts, account []common.Address) (*ServiceChainNFTNoURIMinterRemovedIterator, error) {
  9071  
  9072  	var accountRule []interface{}
  9073  	for _, accountItem := range account {
  9074  		accountRule = append(accountRule, accountItem)
  9075  	}
  9076  
  9077  	logs, sub, err := _ServiceChainNFTNoURI.contract.FilterLogs(opts, "MinterRemoved", accountRule)
  9078  	if err != nil {
  9079  		return nil, err
  9080  	}
  9081  	return &ServiceChainNFTNoURIMinterRemovedIterator{contract: _ServiceChainNFTNoURI.contract, event: "MinterRemoved", logs: logs, sub: sub}, nil
  9082  }
  9083  
  9084  // WatchMinterRemoved is a free log subscription operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
  9085  //
  9086  // Solidity: event MinterRemoved(address indexed account)
  9087  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURIFilterer) WatchMinterRemoved(opts *bind.WatchOpts, sink chan<- *ServiceChainNFTNoURIMinterRemoved, account []common.Address) (event.Subscription, error) {
  9088  
  9089  	var accountRule []interface{}
  9090  	for _, accountItem := range account {
  9091  		accountRule = append(accountRule, accountItem)
  9092  	}
  9093  
  9094  	logs, sub, err := _ServiceChainNFTNoURI.contract.WatchLogs(opts, "MinterRemoved", accountRule)
  9095  	if err != nil {
  9096  		return nil, err
  9097  	}
  9098  	return event.NewSubscription(func(quit <-chan struct{}) error {
  9099  		defer sub.Unsubscribe()
  9100  		for {
  9101  			select {
  9102  			case log := <-logs:
  9103  				// New log arrived, parse the event and forward to the user
  9104  				event := new(ServiceChainNFTNoURIMinterRemoved)
  9105  				if err := _ServiceChainNFTNoURI.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
  9106  					return err
  9107  				}
  9108  				event.Raw = log
  9109  
  9110  				select {
  9111  				case sink <- event:
  9112  				case err := <-sub.Err():
  9113  					return err
  9114  				case <-quit:
  9115  					return nil
  9116  				}
  9117  			case err := <-sub.Err():
  9118  				return err
  9119  			case <-quit:
  9120  				return nil
  9121  			}
  9122  		}
  9123  	}), nil
  9124  }
  9125  
  9126  // ParseMinterRemoved is a log parse operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
  9127  //
  9128  // Solidity: event MinterRemoved(address indexed account)
  9129  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURIFilterer) ParseMinterRemoved(log types.Log) (*ServiceChainNFTNoURIMinterRemoved, error) {
  9130  	event := new(ServiceChainNFTNoURIMinterRemoved)
  9131  	if err := _ServiceChainNFTNoURI.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
  9132  		return nil, err
  9133  	}
  9134  	return event, nil
  9135  }
  9136  
  9137  // ServiceChainNFTNoURIOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the ServiceChainNFTNoURI contract.
  9138  type ServiceChainNFTNoURIOwnershipTransferredIterator struct {
  9139  	Event *ServiceChainNFTNoURIOwnershipTransferred // Event containing the contract specifics and raw log
  9140  
  9141  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  9142  	event    string              // Event name to use for unpacking event data
  9143  
  9144  	logs chan types.Log      // Log channel receiving the found contract events
  9145  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  9146  	done bool                // Whether the subscription completed delivering logs
  9147  	fail error               // Occurred error to stop iteration
  9148  }
  9149  
  9150  // Next advances the iterator to the subsequent event, returning whether there
  9151  // are any more events found. In case of a retrieval or parsing error, false is
  9152  // returned and Error() can be queried for the exact failure.
  9153  func (it *ServiceChainNFTNoURIOwnershipTransferredIterator) Next() bool {
  9154  	// If the iterator failed, stop iterating
  9155  	if it.fail != nil {
  9156  		return false
  9157  	}
  9158  	// If the iterator completed, deliver directly whatever's available
  9159  	if it.done {
  9160  		select {
  9161  		case log := <-it.logs:
  9162  			it.Event = new(ServiceChainNFTNoURIOwnershipTransferred)
  9163  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9164  				it.fail = err
  9165  				return false
  9166  			}
  9167  			it.Event.Raw = log
  9168  			return true
  9169  
  9170  		default:
  9171  			return false
  9172  		}
  9173  	}
  9174  	// Iterator still in progress, wait for either a data or an error event
  9175  	select {
  9176  	case log := <-it.logs:
  9177  		it.Event = new(ServiceChainNFTNoURIOwnershipTransferred)
  9178  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9179  			it.fail = err
  9180  			return false
  9181  		}
  9182  		it.Event.Raw = log
  9183  		return true
  9184  
  9185  	case err := <-it.sub.Err():
  9186  		it.done = true
  9187  		it.fail = err
  9188  		return it.Next()
  9189  	}
  9190  }
  9191  
  9192  // Error returns any retrieval or parsing error occurred during filtering.
  9193  func (it *ServiceChainNFTNoURIOwnershipTransferredIterator) Error() error {
  9194  	return it.fail
  9195  }
  9196  
  9197  // Close terminates the iteration process, releasing any pending underlying
  9198  // resources.
  9199  func (it *ServiceChainNFTNoURIOwnershipTransferredIterator) Close() error {
  9200  	it.sub.Unsubscribe()
  9201  	return nil
  9202  }
  9203  
  9204  // ServiceChainNFTNoURIOwnershipTransferred represents a OwnershipTransferred event raised by the ServiceChainNFTNoURI contract.
  9205  type ServiceChainNFTNoURIOwnershipTransferred struct {
  9206  	PreviousOwner common.Address
  9207  	NewOwner      common.Address
  9208  	Raw           types.Log // Blockchain specific contextual infos
  9209  }
  9210  
  9211  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  9212  //
  9213  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  9214  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURIFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*ServiceChainNFTNoURIOwnershipTransferredIterator, error) {
  9215  
  9216  	var previousOwnerRule []interface{}
  9217  	for _, previousOwnerItem := range previousOwner {
  9218  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  9219  	}
  9220  	var newOwnerRule []interface{}
  9221  	for _, newOwnerItem := range newOwner {
  9222  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  9223  	}
  9224  
  9225  	logs, sub, err := _ServiceChainNFTNoURI.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  9226  	if err != nil {
  9227  		return nil, err
  9228  	}
  9229  	return &ServiceChainNFTNoURIOwnershipTransferredIterator{contract: _ServiceChainNFTNoURI.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  9230  }
  9231  
  9232  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  9233  //
  9234  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  9235  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURIFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *ServiceChainNFTNoURIOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  9236  
  9237  	var previousOwnerRule []interface{}
  9238  	for _, previousOwnerItem := range previousOwner {
  9239  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  9240  	}
  9241  	var newOwnerRule []interface{}
  9242  	for _, newOwnerItem := range newOwner {
  9243  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  9244  	}
  9245  
  9246  	logs, sub, err := _ServiceChainNFTNoURI.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  9247  	if err != nil {
  9248  		return nil, err
  9249  	}
  9250  	return event.NewSubscription(func(quit <-chan struct{}) error {
  9251  		defer sub.Unsubscribe()
  9252  		for {
  9253  			select {
  9254  			case log := <-logs:
  9255  				// New log arrived, parse the event and forward to the user
  9256  				event := new(ServiceChainNFTNoURIOwnershipTransferred)
  9257  				if err := _ServiceChainNFTNoURI.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  9258  					return err
  9259  				}
  9260  				event.Raw = log
  9261  
  9262  				select {
  9263  				case sink <- event:
  9264  				case err := <-sub.Err():
  9265  					return err
  9266  				case <-quit:
  9267  					return nil
  9268  				}
  9269  			case err := <-sub.Err():
  9270  				return err
  9271  			case <-quit:
  9272  				return nil
  9273  			}
  9274  		}
  9275  	}), nil
  9276  }
  9277  
  9278  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  9279  //
  9280  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  9281  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURIFilterer) ParseOwnershipTransferred(log types.Log) (*ServiceChainNFTNoURIOwnershipTransferred, error) {
  9282  	event := new(ServiceChainNFTNoURIOwnershipTransferred)
  9283  	if err := _ServiceChainNFTNoURI.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  9284  		return nil, err
  9285  	}
  9286  	return event, nil
  9287  }
  9288  
  9289  // ServiceChainNFTNoURITransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ServiceChainNFTNoURI contract.
  9290  type ServiceChainNFTNoURITransferIterator struct {
  9291  	Event *ServiceChainNFTNoURITransfer // Event containing the contract specifics and raw log
  9292  
  9293  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  9294  	event    string              // Event name to use for unpacking event data
  9295  
  9296  	logs chan types.Log      // Log channel receiving the found contract events
  9297  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  9298  	done bool                // Whether the subscription completed delivering logs
  9299  	fail error               // Occurred error to stop iteration
  9300  }
  9301  
  9302  // Next advances the iterator to the subsequent event, returning whether there
  9303  // are any more events found. In case of a retrieval or parsing error, false is
  9304  // returned and Error() can be queried for the exact failure.
  9305  func (it *ServiceChainNFTNoURITransferIterator) Next() bool {
  9306  	// If the iterator failed, stop iterating
  9307  	if it.fail != nil {
  9308  		return false
  9309  	}
  9310  	// If the iterator completed, deliver directly whatever's available
  9311  	if it.done {
  9312  		select {
  9313  		case log := <-it.logs:
  9314  			it.Event = new(ServiceChainNFTNoURITransfer)
  9315  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9316  				it.fail = err
  9317  				return false
  9318  			}
  9319  			it.Event.Raw = log
  9320  			return true
  9321  
  9322  		default:
  9323  			return false
  9324  		}
  9325  	}
  9326  	// Iterator still in progress, wait for either a data or an error event
  9327  	select {
  9328  	case log := <-it.logs:
  9329  		it.Event = new(ServiceChainNFTNoURITransfer)
  9330  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9331  			it.fail = err
  9332  			return false
  9333  		}
  9334  		it.Event.Raw = log
  9335  		return true
  9336  
  9337  	case err := <-it.sub.Err():
  9338  		it.done = true
  9339  		it.fail = err
  9340  		return it.Next()
  9341  	}
  9342  }
  9343  
  9344  // Error returns any retrieval or parsing error occurred during filtering.
  9345  func (it *ServiceChainNFTNoURITransferIterator) Error() error {
  9346  	return it.fail
  9347  }
  9348  
  9349  // Close terminates the iteration process, releasing any pending underlying
  9350  // resources.
  9351  func (it *ServiceChainNFTNoURITransferIterator) Close() error {
  9352  	it.sub.Unsubscribe()
  9353  	return nil
  9354  }
  9355  
  9356  // ServiceChainNFTNoURITransfer represents a Transfer event raised by the ServiceChainNFTNoURI contract.
  9357  type ServiceChainNFTNoURITransfer struct {
  9358  	From    common.Address
  9359  	To      common.Address
  9360  	TokenId *big.Int
  9361  	Raw     types.Log // Blockchain specific contextual infos
  9362  }
  9363  
  9364  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  9365  //
  9366  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  9367  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURIFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*ServiceChainNFTNoURITransferIterator, error) {
  9368  
  9369  	var fromRule []interface{}
  9370  	for _, fromItem := range from {
  9371  		fromRule = append(fromRule, fromItem)
  9372  	}
  9373  	var toRule []interface{}
  9374  	for _, toItem := range to {
  9375  		toRule = append(toRule, toItem)
  9376  	}
  9377  	var tokenIdRule []interface{}
  9378  	for _, tokenIdItem := range tokenId {
  9379  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  9380  	}
  9381  
  9382  	logs, sub, err := _ServiceChainNFTNoURI.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
  9383  	if err != nil {
  9384  		return nil, err
  9385  	}
  9386  	return &ServiceChainNFTNoURITransferIterator{contract: _ServiceChainNFTNoURI.contract, event: "Transfer", logs: logs, sub: sub}, nil
  9387  }
  9388  
  9389  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  9390  //
  9391  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  9392  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURIFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ServiceChainNFTNoURITransfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) {
  9393  
  9394  	var fromRule []interface{}
  9395  	for _, fromItem := range from {
  9396  		fromRule = append(fromRule, fromItem)
  9397  	}
  9398  	var toRule []interface{}
  9399  	for _, toItem := range to {
  9400  		toRule = append(toRule, toItem)
  9401  	}
  9402  	var tokenIdRule []interface{}
  9403  	for _, tokenIdItem := range tokenId {
  9404  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  9405  	}
  9406  
  9407  	logs, sub, err := _ServiceChainNFTNoURI.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
  9408  	if err != nil {
  9409  		return nil, err
  9410  	}
  9411  	return event.NewSubscription(func(quit <-chan struct{}) error {
  9412  		defer sub.Unsubscribe()
  9413  		for {
  9414  			select {
  9415  			case log := <-logs:
  9416  				// New log arrived, parse the event and forward to the user
  9417  				event := new(ServiceChainNFTNoURITransfer)
  9418  				if err := _ServiceChainNFTNoURI.contract.UnpackLog(event, "Transfer", log); err != nil {
  9419  					return err
  9420  				}
  9421  				event.Raw = log
  9422  
  9423  				select {
  9424  				case sink <- event:
  9425  				case err := <-sub.Err():
  9426  					return err
  9427  				case <-quit:
  9428  					return nil
  9429  				}
  9430  			case err := <-sub.Err():
  9431  				return err
  9432  			case <-quit:
  9433  				return nil
  9434  			}
  9435  		}
  9436  	}), nil
  9437  }
  9438  
  9439  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  9440  //
  9441  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  9442  func (_ServiceChainNFTNoURI *ServiceChainNFTNoURIFilterer) ParseTransfer(log types.Log) (*ServiceChainNFTNoURITransfer, error) {
  9443  	event := new(ServiceChainNFTNoURITransfer)
  9444  	if err := _ServiceChainNFTNoURI.contract.UnpackLog(event, "Transfer", log); err != nil {
  9445  		return nil, err
  9446  	}
  9447  	return event, nil
  9448  }