github.com/fff-chain/go-fff@v0.0.0-20220726032732-1c84420b8a99/consensus/parlia/nft/nft.go (about) 1 package nft 2 3 // Code generated - DO NOT EDIT. 4 // This file is a generated binding and any manual changes will be lost. 5 6 import ( 7 ethereum "github.com/fff-chain/go-fff" 8 "github.com/fff-chain/go-fff/accounts/abi" 9 "github.com/fff-chain/go-fff/accounts/abi/bind" 10 "github.com/fff-chain/go-fff/common" 11 "github.com/fff-chain/go-fff/core/types" 12 "github.com/fff-chain/go-fff/event" 13 "math/big" 14 "strings" 15 ) 16 17 // Reference imports to suppress errors if they are not otherwise used. 18 var ( 19 _ = big.NewInt 20 _ = strings.NewReader 21 _ = ethereum.NotFound 22 _ = bind.Bind 23 _ = common.Big1 24 _ = types.BloomLookup 25 _ = event.NewSubscription 26 ) 27 28 // AddressABI is the input ABI used to generate the binding from. 29 const AddressABI = "[]" 30 31 // AddressBin is the compiled bytecode used for deploying new contracts. 32 var AddressBin = "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cd113caa0299b9707d70f3799c8f82d156fd8a97dd26cdad6fa2833dfaa48c6d64736f6c63430008030033" 33 34 // DeployAddress deploys a new Ethereum contract, binding an instance of Address to it. 35 func DeployAddress(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Address, error) { 36 parsed, err := abi.JSON(strings.NewReader(AddressABI)) 37 if err != nil { 38 return common.Address{}, nil, nil, err 39 } 40 41 address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(AddressBin), backend) 42 if err != nil { 43 return common.Address{}, nil, nil, err 44 } 45 return address, tx, &Address{AddressCaller: AddressCaller{contract: contract}, AddressTransactor: AddressTransactor{contract: contract}, AddressFilterer: AddressFilterer{contract: contract}}, nil 46 } 47 48 // Address is an auto generated Go binding around an Ethereum contract. 49 type Address struct { 50 AddressCaller // Read-only binding to the contract 51 AddressTransactor // Write-only binding to the contract 52 AddressFilterer // Log filterer for contract events 53 } 54 55 // AddressCaller is an auto generated read-only Go binding around an Ethereum contract. 56 type AddressCaller struct { 57 contract *bind.BoundContract // Generic contract wrapper for the low level calls 58 } 59 60 // AddressTransactor is an auto generated write-only Go binding around an Ethereum contract. 61 type AddressTransactor struct { 62 contract *bind.BoundContract // Generic contract wrapper for the low level calls 63 } 64 65 // AddressFilterer is an auto generated log filtering Go binding around an Ethereum contract events. 66 type AddressFilterer struct { 67 contract *bind.BoundContract // Generic contract wrapper for the low level calls 68 } 69 70 // AddressSession is an auto generated Go binding around an Ethereum contract, 71 // with pre-set call and transact options. 72 type AddressSession struct { 73 Contract *Address // Generic contract binding to set the session for 74 CallOpts bind.CallOpts // Call options to use throughout this session 75 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 76 } 77 78 // AddressCallerSession is an auto generated read-only Go binding around an Ethereum contract, 79 // with pre-set call options. 80 type AddressCallerSession struct { 81 Contract *AddressCaller // Generic contract caller binding to set the session for 82 CallOpts bind.CallOpts // Call options to use throughout this session 83 } 84 85 // AddressTransactorSession is an auto generated write-only Go binding around an Ethereum contract, 86 // with pre-set transact options. 87 type AddressTransactorSession struct { 88 Contract *AddressTransactor // Generic contract transactor binding to set the session for 89 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 90 } 91 92 // AddressRaw is an auto generated low-level Go binding around an Ethereum contract. 93 type AddressRaw struct { 94 Contract *Address // Generic contract binding to access the raw methods on 95 } 96 97 // AddressCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. 98 type AddressCallerRaw struct { 99 Contract *AddressCaller // Generic read-only contract binding to access the raw methods on 100 } 101 102 // AddressTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. 103 type AddressTransactorRaw struct { 104 Contract *AddressTransactor // Generic write-only contract binding to access the raw methods on 105 } 106 107 // NewAddress creates a new instance of Address, bound to a specific deployed contract. 108 func NewAddress(address common.Address, backend bind.ContractBackend) (*Address, error) { 109 contract, err := bindAddress(address, backend, backend, backend) 110 if err != nil { 111 return nil, err 112 } 113 return &Address{AddressCaller: AddressCaller{contract: contract}, AddressTransactor: AddressTransactor{contract: contract}, AddressFilterer: AddressFilterer{contract: contract}}, nil 114 } 115 116 // NewAddressCaller creates a new read-only instance of Address, bound to a specific deployed contract. 117 func NewAddressCaller(address common.Address, caller bind.ContractCaller) (*AddressCaller, error) { 118 contract, err := bindAddress(address, caller, nil, nil) 119 if err != nil { 120 return nil, err 121 } 122 return &AddressCaller{contract: contract}, nil 123 } 124 125 // NewAddressTransactor creates a new write-only instance of Address, bound to a specific deployed contract. 126 func NewAddressTransactor(address common.Address, transactor bind.ContractTransactor) (*AddressTransactor, error) { 127 contract, err := bindAddress(address, nil, transactor, nil) 128 if err != nil { 129 return nil, err 130 } 131 return &AddressTransactor{contract: contract}, nil 132 } 133 134 // NewAddressFilterer creates a new log filterer instance of Address, bound to a specific deployed contract. 135 func NewAddressFilterer(address common.Address, filterer bind.ContractFilterer) (*AddressFilterer, error) { 136 contract, err := bindAddress(address, nil, nil, filterer) 137 if err != nil { 138 return nil, err 139 } 140 return &AddressFilterer{contract: contract}, nil 141 } 142 143 // bindAddress binds a generic wrapper to an already deployed contract. 144 func bindAddress(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { 145 parsed, err := abi.JSON(strings.NewReader(AddressABI)) 146 if err != nil { 147 return nil, err 148 } 149 return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil 150 } 151 152 // Call invokes the (constant) contract method with params as input values and 153 // sets the output to result. The result type might be a single field for simple 154 // returns, a slice of interfaces for anonymous returns and a struct for named 155 // returns. 156 func (_Address *AddressRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 157 return _Address.Contract.AddressCaller.contract.Call(opts, result, method, params...) 158 } 159 160 // Transfer initiates a plain transaction to move funds to the contract, calling 161 // its default method if one is available. 162 func (_Address *AddressRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 163 return _Address.Contract.AddressTransactor.contract.Transfer(opts) 164 } 165 166 // Transact invokes the (paid) contract method with params as input values. 167 func (_Address *AddressRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 168 return _Address.Contract.AddressTransactor.contract.Transact(opts, method, params...) 169 } 170 171 // Call invokes the (constant) contract method with params as input values and 172 // sets the output to result. The result type might be a single field for simple 173 // returns, a slice of interfaces for anonymous returns and a struct for named 174 // returns. 175 func (_Address *AddressCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 176 return _Address.Contract.contract.Call(opts, result, method, params...) 177 } 178 179 // Transfer initiates a plain transaction to move funds to the contract, calling 180 // its default method if one is available. 181 func (_Address *AddressTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 182 return _Address.Contract.contract.Transfer(opts) 183 } 184 185 // Transact invokes the (paid) contract method with params as input values. 186 func (_Address *AddressTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 187 return _Address.Contract.contract.Transact(opts, method, params...) 188 } 189 190 // ContextABI is the input ABI used to generate the binding from. 191 const ContextABI = "[]" 192 193 // Context is an auto generated Go binding around an Ethereum contract. 194 type Context struct { 195 ContextCaller // Read-only binding to the contract 196 ContextTransactor // Write-only binding to the contract 197 ContextFilterer // Log filterer for contract events 198 } 199 200 // ContextCaller is an auto generated read-only Go binding around an Ethereum contract. 201 type ContextCaller struct { 202 contract *bind.BoundContract // Generic contract wrapper for the low level calls 203 } 204 205 // ContextTransactor is an auto generated write-only Go binding around an Ethereum contract. 206 type ContextTransactor struct { 207 contract *bind.BoundContract // Generic contract wrapper for the low level calls 208 } 209 210 // ContextFilterer is an auto generated log filtering Go binding around an Ethereum contract events. 211 type ContextFilterer struct { 212 contract *bind.BoundContract // Generic contract wrapper for the low level calls 213 } 214 215 // ContextSession is an auto generated Go binding around an Ethereum contract, 216 // with pre-set call and transact options. 217 type ContextSession struct { 218 Contract *Context // Generic contract binding to set the session for 219 CallOpts bind.CallOpts // Call options to use throughout this session 220 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 221 } 222 223 // ContextCallerSession is an auto generated read-only Go binding around an Ethereum contract, 224 // with pre-set call options. 225 type ContextCallerSession struct { 226 Contract *ContextCaller // Generic contract caller binding to set the session for 227 CallOpts bind.CallOpts // Call options to use throughout this session 228 } 229 230 // ContextTransactorSession is an auto generated write-only Go binding around an Ethereum contract, 231 // with pre-set transact options. 232 type ContextTransactorSession struct { 233 Contract *ContextTransactor // Generic contract transactor binding to set the session for 234 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 235 } 236 237 // ContextRaw is an auto generated low-level Go binding around an Ethereum contract. 238 type ContextRaw struct { 239 Contract *Context // Generic contract binding to access the raw methods on 240 } 241 242 // ContextCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. 243 type ContextCallerRaw struct { 244 Contract *ContextCaller // Generic read-only contract binding to access the raw methods on 245 } 246 247 // ContextTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. 248 type ContextTransactorRaw struct { 249 Contract *ContextTransactor // Generic write-only contract binding to access the raw methods on 250 } 251 252 // NewContext creates a new instance of Context, bound to a specific deployed contract. 253 func NewContext(address common.Address, backend bind.ContractBackend) (*Context, error) { 254 contract, err := bindContext(address, backend, backend, backend) 255 if err != nil { 256 return nil, err 257 } 258 return &Context{ContextCaller: ContextCaller{contract: contract}, ContextTransactor: ContextTransactor{contract: contract}, ContextFilterer: ContextFilterer{contract: contract}}, nil 259 } 260 261 // NewContextCaller creates a new read-only instance of Context, bound to a specific deployed contract. 262 func NewContextCaller(address common.Address, caller bind.ContractCaller) (*ContextCaller, error) { 263 contract, err := bindContext(address, caller, nil, nil) 264 if err != nil { 265 return nil, err 266 } 267 return &ContextCaller{contract: contract}, nil 268 } 269 270 // NewContextTransactor creates a new write-only instance of Context, bound to a specific deployed contract. 271 func NewContextTransactor(address common.Address, transactor bind.ContractTransactor) (*ContextTransactor, error) { 272 contract, err := bindContext(address, nil, transactor, nil) 273 if err != nil { 274 return nil, err 275 } 276 return &ContextTransactor{contract: contract}, nil 277 } 278 279 // NewContextFilterer creates a new log filterer instance of Context, bound to a specific deployed contract. 280 func NewContextFilterer(address common.Address, filterer bind.ContractFilterer) (*ContextFilterer, error) { 281 contract, err := bindContext(address, nil, nil, filterer) 282 if err != nil { 283 return nil, err 284 } 285 return &ContextFilterer{contract: contract}, nil 286 } 287 288 // bindContext binds a generic wrapper to an already deployed contract. 289 func bindContext(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { 290 parsed, err := abi.JSON(strings.NewReader(ContextABI)) 291 if err != nil { 292 return nil, err 293 } 294 return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil 295 } 296 297 // Call invokes the (constant) contract method with params as input values and 298 // sets the output to result. The result type might be a single field for simple 299 // returns, a slice of interfaces for anonymous returns and a struct for named 300 // returns. 301 func (_Context *ContextRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 302 return _Context.Contract.ContextCaller.contract.Call(opts, result, method, params...) 303 } 304 305 // Transfer initiates a plain transaction to move funds to the contract, calling 306 // its default method if one is available. 307 func (_Context *ContextRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 308 return _Context.Contract.ContextTransactor.contract.Transfer(opts) 309 } 310 311 // Transact invokes the (paid) contract method with params as input values. 312 func (_Context *ContextRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 313 return _Context.Contract.ContextTransactor.contract.Transact(opts, method, params...) 314 } 315 316 // Call invokes the (constant) contract method with params as input values and 317 // sets the output to result. The result type might be a single field for simple 318 // returns, a slice of interfaces for anonymous returns and a struct for named 319 // returns. 320 func (_Context *ContextCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 321 return _Context.Contract.contract.Call(opts, result, method, params...) 322 } 323 324 // Transfer initiates a plain transaction to move funds to the contract, calling 325 // its default method if one is available. 326 func (_Context *ContextTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 327 return _Context.Contract.contract.Transfer(opts) 328 } 329 330 // Transact invokes the (paid) contract method with params as input values. 331 func (_Context *ContextTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 332 return _Context.Contract.contract.Transact(opts, method, params...) 333 } 334 335 // ERC165ABI is the input ABI used to generate the binding from. 336 const ERC165ABI = "[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]" 337 338 // ERC165FuncSigs maps the 4-byte function signature to its string representation. 339 var ERC165FuncSigs = map[string]string{ 340 "01ffc9a7": "supportsInterface(bytes4)", 341 } 342 343 // ERC165 is an auto generated Go binding around an Ethereum contract. 344 type ERC165 struct { 345 ERC165Caller // Read-only binding to the contract 346 ERC165Transactor // Write-only binding to the contract 347 ERC165Filterer // Log filterer for contract events 348 } 349 350 // ERC165Caller is an auto generated read-only Go binding around an Ethereum contract. 351 type ERC165Caller struct { 352 contract *bind.BoundContract // Generic contract wrapper for the low level calls 353 } 354 355 // ERC165Transactor is an auto generated write-only Go binding around an Ethereum contract. 356 type ERC165Transactor struct { 357 contract *bind.BoundContract // Generic contract wrapper for the low level calls 358 } 359 360 // ERC165Filterer is an auto generated log filtering Go binding around an Ethereum contract events. 361 type ERC165Filterer struct { 362 contract *bind.BoundContract // Generic contract wrapper for the low level calls 363 } 364 365 // ERC165Session is an auto generated Go binding around an Ethereum contract, 366 // with pre-set call and transact options. 367 type ERC165Session struct { 368 Contract *ERC165 // Generic contract binding to set the session for 369 CallOpts bind.CallOpts // Call options to use throughout this session 370 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 371 } 372 373 // ERC165CallerSession is an auto generated read-only Go binding around an Ethereum contract, 374 // with pre-set call options. 375 type ERC165CallerSession struct { 376 Contract *ERC165Caller // Generic contract caller binding to set the session for 377 CallOpts bind.CallOpts // Call options to use throughout this session 378 } 379 380 // ERC165TransactorSession is an auto generated write-only Go binding around an Ethereum contract, 381 // with pre-set transact options. 382 type ERC165TransactorSession struct { 383 Contract *ERC165Transactor // Generic contract transactor binding to set the session for 384 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 385 } 386 387 // ERC165Raw is an auto generated low-level Go binding around an Ethereum contract. 388 type ERC165Raw struct { 389 Contract *ERC165 // Generic contract binding to access the raw methods on 390 } 391 392 // ERC165CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. 393 type ERC165CallerRaw struct { 394 Contract *ERC165Caller // Generic read-only contract binding to access the raw methods on 395 } 396 397 // ERC165TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. 398 type ERC165TransactorRaw struct { 399 Contract *ERC165Transactor // Generic write-only contract binding to access the raw methods on 400 } 401 402 // NewERC165 creates a new instance of ERC165, bound to a specific deployed contract. 403 func NewERC165(address common.Address, backend bind.ContractBackend) (*ERC165, error) { 404 contract, err := bindERC165(address, backend, backend, backend) 405 if err != nil { 406 return nil, err 407 } 408 return &ERC165{ERC165Caller: ERC165Caller{contract: contract}, ERC165Transactor: ERC165Transactor{contract: contract}, ERC165Filterer: ERC165Filterer{contract: contract}}, nil 409 } 410 411 // NewERC165Caller creates a new read-only instance of ERC165, bound to a specific deployed contract. 412 func NewERC165Caller(address common.Address, caller bind.ContractCaller) (*ERC165Caller, error) { 413 contract, err := bindERC165(address, caller, nil, nil) 414 if err != nil { 415 return nil, err 416 } 417 return &ERC165Caller{contract: contract}, nil 418 } 419 420 // NewERC165Transactor creates a new write-only instance of ERC165, bound to a specific deployed contract. 421 func NewERC165Transactor(address common.Address, transactor bind.ContractTransactor) (*ERC165Transactor, error) { 422 contract, err := bindERC165(address, nil, transactor, nil) 423 if err != nil { 424 return nil, err 425 } 426 return &ERC165Transactor{contract: contract}, nil 427 } 428 429 // NewERC165Filterer creates a new log filterer instance of ERC165, bound to a specific deployed contract. 430 func NewERC165Filterer(address common.Address, filterer bind.ContractFilterer) (*ERC165Filterer, error) { 431 contract, err := bindERC165(address, nil, nil, filterer) 432 if err != nil { 433 return nil, err 434 } 435 return &ERC165Filterer{contract: contract}, nil 436 } 437 438 // bindERC165 binds a generic wrapper to an already deployed contract. 439 func bindERC165(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { 440 parsed, err := abi.JSON(strings.NewReader(ERC165ABI)) 441 if err != nil { 442 return nil, err 443 } 444 return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil 445 } 446 447 // Call invokes the (constant) contract method with params as input values and 448 // sets the output to result. The result type might be a single field for simple 449 // returns, a slice of interfaces for anonymous returns and a struct for named 450 // returns. 451 func (_ERC165 *ERC165Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 452 return _ERC165.Contract.ERC165Caller.contract.Call(opts, result, method, params...) 453 } 454 455 // Transfer initiates a plain transaction to move funds to the contract, calling 456 // its default method if one is available. 457 func (_ERC165 *ERC165Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 458 return _ERC165.Contract.ERC165Transactor.contract.Transfer(opts) 459 } 460 461 // Transact invokes the (paid) contract method with params as input values. 462 func (_ERC165 *ERC165Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 463 return _ERC165.Contract.ERC165Transactor.contract.Transact(opts, method, params...) 464 } 465 466 // Call invokes the (constant) contract method with params as input values and 467 // sets the output to result. The result type might be a single field for simple 468 // returns, a slice of interfaces for anonymous returns and a struct for named 469 // returns. 470 func (_ERC165 *ERC165CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 471 return _ERC165.Contract.contract.Call(opts, result, method, params...) 472 } 473 474 // Transfer initiates a plain transaction to move funds to the contract, calling 475 // its default method if one is available. 476 func (_ERC165 *ERC165TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 477 return _ERC165.Contract.contract.Transfer(opts) 478 } 479 480 // Transact invokes the (paid) contract method with params as input values. 481 func (_ERC165 *ERC165TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 482 return _ERC165.Contract.contract.Transact(opts, method, params...) 483 } 484 485 // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. 486 // 487 // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) 488 func (_ERC165 *ERC165Caller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { 489 var out []interface{} 490 err := _ERC165.contract.Call(opts, &out, "supportsInterface", interfaceId) 491 492 if err != nil { 493 return *new(bool), err 494 } 495 496 out0 := *abi.ConvertType(out[0], new(bool)).(*bool) 497 498 return out0, err 499 500 } 501 502 // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. 503 // 504 // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) 505 func (_ERC165 *ERC165Session) SupportsInterface(interfaceId [4]byte) (bool, error) { 506 return _ERC165.Contract.SupportsInterface(&_ERC165.CallOpts, interfaceId) 507 } 508 509 // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. 510 // 511 // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) 512 func (_ERC165 *ERC165CallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { 513 return _ERC165.Contract.SupportsInterface(&_ERC165.CallOpts, interfaceId) 514 } 515 516 // ERC721ABI is the input ABI used to generate the binding from. 517 const ERC721ABI = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" 518 519 // ERC721FuncSigs maps the 4-byte function signature to its string representation. 520 var ERC721FuncSigs = map[string]string{ 521 "095ea7b3": "approve(address,uint256)", 522 "70a08231": "balanceOf(address)", 523 "6c0360eb": "baseURI()", 524 "081812fc": "getApproved(uint256)", 525 "e985e9c5": "isApprovedForAll(address,address)", 526 "06fdde03": "name()", 527 "6352211e": "ownerOf(uint256)", 528 "42842e0e": "safeTransferFrom(address,address,uint256)", 529 "b88d4fde": "safeTransferFrom(address,address,uint256,bytes)", 530 "a22cb465": "setApprovalForAll(address,bool)", 531 "01ffc9a7": "supportsInterface(bytes4)", 532 "95d89b41": "symbol()", 533 "4f6ccce7": "tokenByIndex(uint256)", 534 "2f745c59": "tokenOfOwnerByIndex(address,uint256)", 535 "c87b56dd": "tokenURI(uint256)", 536 "18160ddd": "totalSupply()", 537 "23b872dd": "transferFrom(address,address,uint256)", 538 } 539 540 // ERC721Bin is the compiled bytecode used for deploying new contracts. 541 var ERC721Bin = "0x60806040523480156200001157600080fd5b5060405162001af638038062001af683398101604081905262000034916200028d565b620000466301ffc9a760e01b620000b0565b81516200005b90600690602085019062000134565b5080516200007190600790602084019062000134565b50620000846380ac58cd60e01b620000b0565b62000096635b5e139f60e01b620000b0565b620000a863780e9d6360e01b620000b0565b505062000347565b6001600160e01b031980821614156200010f5760405162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015260640160405180910390fd5b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b8280546200014290620002f4565b90600052602060002090601f016020900481019282620001665760008555620001b1565b82601f106200018157805160ff1916838001178555620001b1565b82800160010185558215620001b1579182015b82811115620001b157825182559160200191906001019062000194565b50620001bf929150620001c3565b5090565b5b80821115620001bf5760008155600101620001c4565b600082601f830112620001eb578081fd5b81516001600160401b038082111562000208576200020862000331565b604051601f8301601f19908116603f0116810190828211818310171562000233576200023362000331565b816040528381526020925086838588010111156200024f578485fd5b8491505b8382101562000272578582018301518183018401529082019062000253565b838211156200028357848385830101525b9695505050505050565b60008060408385031215620002a0578182fd5b82516001600160401b0380821115620002b7578384fd5b620002c586838701620001da565b93506020850151915080821115620002db578283fd5b50620002ea85828601620001da565b9150509250929050565b600181811c908216806200030957607f821691505b602082108114156200032b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b61179f80620003576000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80634f6ccce7116100a257806395d89b411161007157806395d89b411461021d578063a22cb46514610225578063b88d4fde14610238578063c87b56dd1461024b578063e985e9c51461025e5761010b565b80634f6ccce7146101dc5780636352211e146101ef5780636c0360eb1461020257806370a082311461020a5761010b565b806318160ddd116100de57806318160ddd1461018d57806323b872dd146101a35780632f745c59146101b657806342842e0e146101c95761010b565b806301ffc9a71461011057806306fdde0314610138578063081812fc1461014d578063095ea7b314610178575b600080fd5b61012361011e36600461146e565b61029a565b60405190151581526020015b60405180910390f35b6101406102bd565b60405161012f9190611556565b61016061015b3660046114a6565b61034f565b6040516001600160a01b03909116815260200161012f565b61018b610186366004611445565b6103dc565b005b6101956104f2565b60405190815260200161012f565b61018b6101b13660046112fb565b610503565b6101956101c4366004611445565b610534565b61018b6101d73660046112fb565b61055f565b6101956101ea3660046114a6565b61057a565b6101606101fd3660046114a6565b610590565b6101406105b8565b6101956102183660046112af565b6105c7565b610140610653565b61018b61023336600461140b565b610662565b61018b610246366004611336565b610734565b6101406102593660046114a6565b61076c565b61012361026c3660046112c9565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6001600160e01b0319811660009081526020819052604090205460ff165b919050565b6060600680546102cc9061167b565b80601f01602080910402602001604051908101604052809291908181526020018280546102f89061167b565b80156103455780601f1061031a57610100808354040283529160200191610345565b820191906000526020600020905b81548152906001019060200180831161032857829003601f168201915b5050505050905090565b600061035a826108f7565b6103c05760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b60006103e782610590565b9050806001600160a01b0316836001600160a01b031614156104555760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016103b7565b336001600160a01b03821614806104715750610471813361026c565b6104e35760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000060648201526084016103b7565b6104ed8383610904565b505050565b60006104fe6002610972565b905090565b61050d338261097c565b6105295760405162461bcd60e51b81526004016103b7906115bb565b6104ed838383610a66565b6001600160a01b03821660009081526001602052604081206105569083610be7565b90505b92915050565b6104ed83838360405180602001604052806000815250610734565b600080610588600284610bf3565b509392505050565b6000610559826040518060600160405280602981526020016117416029913960029190610c0f565b6060600980546102cc9061167b565b60006001600160a01b0382166106325760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b60648201526084016103b7565b6001600160a01b038216600090815260016020526040902061055990610972565b6060600780546102cc9061167b565b6001600160a01b0382163314156106bb5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016103b7565b3360008181526005602090815260408083206001600160a01b0387168085529252909120805460ff1916841515179055906001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610728911515815260200190565b60405180910390a35050565b61073e338361097c565b61075a5760405162461bcd60e51b81526004016103b7906115bb565b61076684848484610c26565b50505050565b6060610777826108f7565b6107db5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b60648201526084016103b7565b600082815260086020526040812080546107f49061167b565b80601f01602080910402602001604051908101604052809291908181526020018280546108209061167b565b801561086d5780601f106108425761010080835404028352916020019161086d565b820191906000526020600020905b81548152906001019060200180831161085057829003601f168201915b50505050509050600061087e6105b8565b9050805160001415610892575090506102b8565b8151156108c45780826040516020016108ac9291906114ea565b604051602081830303815290604052925050506102b8565b806108ce85610c59565b6040516020016108df9291906114ea565b60405160208183030381529060405292505050919050565b6000610559600283610d74565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061093982610590565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610559825490565b6000610987826108f7565b6109e85760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016103b7565b60006109f383610590565b9050806001600160a01b0316846001600160a01b03161480610a2e5750836001600160a01b0316610a238461034f565b6001600160a01b0316145b80610a5e57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316610a7982610590565b6001600160a01b031614610ae15760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b60648201526084016103b7565b6001600160a01b038216610b435760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016103b7565b610b4e600082610904565b6001600160a01b0383166000908152600160205260409020610b709082610d8c565b506001600160a01b0382166000908152600160205260409020610b939082610d98565b50610ba060028284610da4565b5080826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60006105568383610dba565b6000808080610c028686610e4e565b9097909650945050505050565b6000610c1c848484610ef9565b90505b9392505050565b610c31848484610a66565b610c3d84848484610f70565b6107665760405162461bcd60e51b81526004016103b790611569565b606081610c7e57506040805180820190915260018152600360fc1b60208201526102b8565b8160005b8115610ca85780610c92816116b6565b9150610ca19050600a83611624565b9150610c82565b60008167ffffffffffffffff811115610cd157634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610cfb576020820181803683370190505b5090505b8415610a5e57610d10600183611638565b9150610d1d600a866116d1565b610d2890603061160c565b60f81b818381518110610d4b57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350610d6d600a86611624565b9450610cff565b60008181526001830160205260408120541515610556565b6000610556838361107d565b6000610556838361119a565b6000610c1c84846001600160a01b0385166111e9565b81546000908210610e185760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b60648201526084016103b7565b826000018281548110610e3b57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b815460009081908310610eae5760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e604482015261647360f01b60648201526084016103b7565b6000846000018481548110610ed357634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020190508060000154816001015492509250509250929050565b60008281526001840160205260408120548281610f295760405162461bcd60e51b81526004016103b79190611556565b5084610f36600183611638565b81548110610f5457634e487b7160e01b600052603260045260246000fd5b9060005260206000209060020201600101549150509392505050565b60006001600160a01b0384163b1561107257604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610fb4903390899088908890600401611519565b602060405180830381600087803b158015610fce57600080fd5b505af1925050508015610ffe575060408051601f3d908101601f19168201909252610ffb9181019061148a565b60015b611058573d80801561102c576040519150601f19603f3d011682016040523d82523d6000602084013e611031565b606091505b5080516110505760405162461bcd60e51b81526004016103b790611569565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610a5e565b506001949350505050565b600081815260018301602052604081205480156111905760006110a1600183611638565b85549091506000906110b590600190611638565b905060008660000182815481106110dc57634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508087600001848154811061110d57634e487b7160e01b600052603260045260246000fd5b60009182526020909120015561112483600161160c565b6000828152600189016020526040902055865487908061115457634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610559565b6000915050610559565b60008181526001830160205260408120546111e157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610559565b506000610559565b60008281526001840160205260408120548061124e575050604080518082018252838152602080820184815286546001818101895560008981528481209551600290930290950191825591519082015586548684528188019092529290912055610c1f565b828561125b600184611638565b8154811061127957634e487b7160e01b600052603260045260246000fd5b9060005260206000209060020201600101819055506000915050610c1f565b80356001600160a01b03811681146102b857600080fd5b6000602082840312156112c0578081fd5b61055682611298565b600080604083850312156112db578081fd5b6112e483611298565b91506112f260208401611298565b90509250929050565b60008060006060848603121561130f578081fd5b61131884611298565b925061132660208501611298565b9150604084013590509250925092565b6000806000806080858703121561134b578081fd5b61135485611298565b935061136260208601611298565b925060408501359150606085013567ffffffffffffffff80821115611385578283fd5b818701915087601f830112611398578283fd5b8135818111156113aa576113aa611711565b604051601f8201601f19908116603f011681019083821181831017156113d2576113d2611711565b816040528281528a60208487010111156113ea578586fd5b82602086016020830137918201602001949094529598949750929550505050565b6000806040838503121561141d578182fd5b61142683611298565b91506020830135801515811461143a578182fd5b809150509250929050565b60008060408385031215611457578182fd5b61146083611298565b946020939093013593505050565b60006020828403121561147f578081fd5b8135610c1f81611727565b60006020828403121561149b578081fd5b8151610c1f81611727565b6000602082840312156114b7578081fd5b5035919050565b600081518084526114d681602086016020860161164f565b601f01601f19169290920160200192915050565b600083516114fc81846020880161164f565b83519083019061151081836020880161164f565b01949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061154c908301846114be565b9695505050505050565b60006020825261055660208301846114be565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6000821982111561161f5761161f6116e5565b500190565b600082611633576116336116fb565b500490565b60008282101561164a5761164a6116e5565b500390565b60005b8381101561166a578181015183820152602001611652565b838111156107665750506000910152565b600181811c9082168061168f57607f821691505b602082108114156116b057634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156116ca576116ca6116e5565b5060010190565b6000826116e0576116e06116fb565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461173d57600080fd5b5056fe4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656ea2646970667358221220d4af7aec6cc2ca1c46995a5f806a5696a1a3b9adb85e72f06a1f25318ddcab5764736f6c63430008030033" 542 543 // DeployERC721 deploys a new Ethereum contract, binding an instance of ERC721 to it. 544 func DeployERC721(auth *bind.TransactOpts, backend bind.ContractBackend, name_ string, symbol_ string) (common.Address, *types.Transaction, *ERC721, error) { 545 parsed, err := abi.JSON(strings.NewReader(ERC721ABI)) 546 if err != nil { 547 return common.Address{}, nil, nil, err 548 } 549 550 address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(ERC721Bin), backend, name_, symbol_) 551 if err != nil { 552 return common.Address{}, nil, nil, err 553 } 554 return address, tx, &ERC721{ERC721Caller: ERC721Caller{contract: contract}, ERC721Transactor: ERC721Transactor{contract: contract}, ERC721Filterer: ERC721Filterer{contract: contract}}, nil 555 } 556 557 // ERC721 is an auto generated Go binding around an Ethereum contract. 558 type ERC721 struct { 559 ERC721Caller // Read-only binding to the contract 560 ERC721Transactor // Write-only binding to the contract 561 ERC721Filterer // Log filterer for contract events 562 } 563 564 // ERC721Caller is an auto generated read-only Go binding around an Ethereum contract. 565 type ERC721Caller struct { 566 contract *bind.BoundContract // Generic contract wrapper for the low level calls 567 } 568 569 // ERC721Transactor is an auto generated write-only Go binding around an Ethereum contract. 570 type ERC721Transactor struct { 571 contract *bind.BoundContract // Generic contract wrapper for the low level calls 572 } 573 574 // ERC721Filterer is an auto generated log filtering Go binding around an Ethereum contract events. 575 type ERC721Filterer struct { 576 contract *bind.BoundContract // Generic contract wrapper for the low level calls 577 } 578 579 // ERC721Session is an auto generated Go binding around an Ethereum contract, 580 // with pre-set call and transact options. 581 type ERC721Session struct { 582 Contract *ERC721 // Generic contract binding to set the session for 583 CallOpts bind.CallOpts // Call options to use throughout this session 584 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 585 } 586 587 // ERC721CallerSession is an auto generated read-only Go binding around an Ethereum contract, 588 // with pre-set call options. 589 type ERC721CallerSession struct { 590 Contract *ERC721Caller // Generic contract caller binding to set the session for 591 CallOpts bind.CallOpts // Call options to use throughout this session 592 } 593 594 // ERC721TransactorSession is an auto generated write-only Go binding around an Ethereum contract, 595 // with pre-set transact options. 596 type ERC721TransactorSession struct { 597 Contract *ERC721Transactor // Generic contract transactor binding to set the session for 598 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 599 } 600 601 // ERC721Raw is an auto generated low-level Go binding around an Ethereum contract. 602 type ERC721Raw struct { 603 Contract *ERC721 // Generic contract binding to access the raw methods on 604 } 605 606 // ERC721CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. 607 type ERC721CallerRaw struct { 608 Contract *ERC721Caller // Generic read-only contract binding to access the raw methods on 609 } 610 611 // ERC721TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. 612 type ERC721TransactorRaw struct { 613 Contract *ERC721Transactor // Generic write-only contract binding to access the raw methods on 614 } 615 616 // NewERC721 creates a new instance of ERC721, bound to a specific deployed contract. 617 func NewERC721(address common.Address, backend bind.ContractBackend) (*ERC721, error) { 618 contract, err := bindERC721(address, backend, backend, backend) 619 if err != nil { 620 return nil, err 621 } 622 return &ERC721{ERC721Caller: ERC721Caller{contract: contract}, ERC721Transactor: ERC721Transactor{contract: contract}, ERC721Filterer: ERC721Filterer{contract: contract}}, nil 623 } 624 625 // NewERC721Caller creates a new read-only instance of ERC721, bound to a specific deployed contract. 626 func NewERC721Caller(address common.Address, caller bind.ContractCaller) (*ERC721Caller, error) { 627 contract, err := bindERC721(address, caller, nil, nil) 628 if err != nil { 629 return nil, err 630 } 631 return &ERC721Caller{contract: contract}, nil 632 } 633 634 // NewERC721Transactor creates a new write-only instance of ERC721, bound to a specific deployed contract. 635 func NewERC721Transactor(address common.Address, transactor bind.ContractTransactor) (*ERC721Transactor, error) { 636 contract, err := bindERC721(address, nil, transactor, nil) 637 if err != nil { 638 return nil, err 639 } 640 return &ERC721Transactor{contract: contract}, nil 641 } 642 643 // NewERC721Filterer creates a new log filterer instance of ERC721, bound to a specific deployed contract. 644 func NewERC721Filterer(address common.Address, filterer bind.ContractFilterer) (*ERC721Filterer, error) { 645 contract, err := bindERC721(address, nil, nil, filterer) 646 if err != nil { 647 return nil, err 648 } 649 return &ERC721Filterer{contract: contract}, nil 650 } 651 652 // bindERC721 binds a generic wrapper to an already deployed contract. 653 func bindERC721(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { 654 parsed, err := abi.JSON(strings.NewReader(ERC721ABI)) 655 if err != nil { 656 return nil, err 657 } 658 return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil 659 } 660 661 // Call invokes the (constant) contract method with params as input values and 662 // sets the output to result. The result type might be a single field for simple 663 // returns, a slice of interfaces for anonymous returns and a struct for named 664 // returns. 665 func (_ERC721 *ERC721Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 666 return _ERC721.Contract.ERC721Caller.contract.Call(opts, result, method, params...) 667 } 668 669 // Transfer initiates a plain transaction to move funds to the contract, calling 670 // its default method if one is available. 671 func (_ERC721 *ERC721Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 672 return _ERC721.Contract.ERC721Transactor.contract.Transfer(opts) 673 } 674 675 // Transact invokes the (paid) contract method with params as input values. 676 func (_ERC721 *ERC721Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 677 return _ERC721.Contract.ERC721Transactor.contract.Transact(opts, method, params...) 678 } 679 680 // Call invokes the (constant) contract method with params as input values and 681 // sets the output to result. The result type might be a single field for simple 682 // returns, a slice of interfaces for anonymous returns and a struct for named 683 // returns. 684 func (_ERC721 *ERC721CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 685 return _ERC721.Contract.contract.Call(opts, result, method, params...) 686 } 687 688 // Transfer initiates a plain transaction to move funds to the contract, calling 689 // its default method if one is available. 690 func (_ERC721 *ERC721TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 691 return _ERC721.Contract.contract.Transfer(opts) 692 } 693 694 // Transact invokes the (paid) contract method with params as input values. 695 func (_ERC721 *ERC721TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 696 return _ERC721.Contract.contract.Transact(opts, method, params...) 697 } 698 699 // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. 700 // 701 // Solidity: function balanceOf(address owner) view returns(uint256) 702 func (_ERC721 *ERC721Caller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) { 703 var out []interface{} 704 err := _ERC721.contract.Call(opts, &out, "balanceOf", owner) 705 706 if err != nil { 707 return *new(*big.Int), err 708 } 709 710 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 711 712 return out0, err 713 714 } 715 716 // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. 717 // 718 // Solidity: function balanceOf(address owner) view returns(uint256) 719 func (_ERC721 *ERC721Session) BalanceOf(owner common.Address) (*big.Int, error) { 720 return _ERC721.Contract.BalanceOf(&_ERC721.CallOpts, owner) 721 } 722 723 // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. 724 // 725 // Solidity: function balanceOf(address owner) view returns(uint256) 726 func (_ERC721 *ERC721CallerSession) BalanceOf(owner common.Address) (*big.Int, error) { 727 return _ERC721.Contract.BalanceOf(&_ERC721.CallOpts, owner) 728 } 729 730 // BaseURI is a free data retrieval call binding the contract method 0x6c0360eb. 731 // 732 // Solidity: function baseURI() view returns(string) 733 func (_ERC721 *ERC721Caller) BaseURI(opts *bind.CallOpts) (string, error) { 734 var out []interface{} 735 err := _ERC721.contract.Call(opts, &out, "baseURI") 736 737 if err != nil { 738 return *new(string), err 739 } 740 741 out0 := *abi.ConvertType(out[0], new(string)).(*string) 742 743 return out0, err 744 745 } 746 747 // BaseURI is a free data retrieval call binding the contract method 0x6c0360eb. 748 // 749 // Solidity: function baseURI() view returns(string) 750 func (_ERC721 *ERC721Session) BaseURI() (string, error) { 751 return _ERC721.Contract.BaseURI(&_ERC721.CallOpts) 752 } 753 754 // BaseURI is a free data retrieval call binding the contract method 0x6c0360eb. 755 // 756 // Solidity: function baseURI() view returns(string) 757 func (_ERC721 *ERC721CallerSession) BaseURI() (string, error) { 758 return _ERC721.Contract.BaseURI(&_ERC721.CallOpts) 759 } 760 761 // GetApproved is a free data retrieval call binding the contract method 0x081812fc. 762 // 763 // Solidity: function getApproved(uint256 tokenId) view returns(address) 764 func (_ERC721 *ERC721Caller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) { 765 var out []interface{} 766 err := _ERC721.contract.Call(opts, &out, "getApproved", tokenId) 767 768 if err != nil { 769 return *new(common.Address), err 770 } 771 772 out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) 773 774 return out0, err 775 776 } 777 778 // GetApproved is a free data retrieval call binding the contract method 0x081812fc. 779 // 780 // Solidity: function getApproved(uint256 tokenId) view returns(address) 781 func (_ERC721 *ERC721Session) GetApproved(tokenId *big.Int) (common.Address, error) { 782 return _ERC721.Contract.GetApproved(&_ERC721.CallOpts, tokenId) 783 } 784 785 // GetApproved is a free data retrieval call binding the contract method 0x081812fc. 786 // 787 // Solidity: function getApproved(uint256 tokenId) view returns(address) 788 func (_ERC721 *ERC721CallerSession) GetApproved(tokenId *big.Int) (common.Address, error) { 789 return _ERC721.Contract.GetApproved(&_ERC721.CallOpts, tokenId) 790 } 791 792 // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. 793 // 794 // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool) 795 func (_ERC721 *ERC721Caller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) { 796 var out []interface{} 797 err := _ERC721.contract.Call(opts, &out, "isApprovedForAll", owner, operator) 798 799 if err != nil { 800 return *new(bool), err 801 } 802 803 out0 := *abi.ConvertType(out[0], new(bool)).(*bool) 804 805 return out0, err 806 807 } 808 809 // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. 810 // 811 // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool) 812 func (_ERC721 *ERC721Session) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) { 813 return _ERC721.Contract.IsApprovedForAll(&_ERC721.CallOpts, owner, operator) 814 } 815 816 // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. 817 // 818 // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool) 819 func (_ERC721 *ERC721CallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) { 820 return _ERC721.Contract.IsApprovedForAll(&_ERC721.CallOpts, owner, operator) 821 } 822 823 // Name is a free data retrieval call binding the contract method 0x06fdde03. 824 // 825 // Solidity: function name() view returns(string) 826 func (_ERC721 *ERC721Caller) Name(opts *bind.CallOpts) (string, error) { 827 var out []interface{} 828 err := _ERC721.contract.Call(opts, &out, "name") 829 830 if err != nil { 831 return *new(string), err 832 } 833 834 out0 := *abi.ConvertType(out[0], new(string)).(*string) 835 836 return out0, err 837 838 } 839 840 // Name is a free data retrieval call binding the contract method 0x06fdde03. 841 // 842 // Solidity: function name() view returns(string) 843 func (_ERC721 *ERC721Session) Name() (string, error) { 844 return _ERC721.Contract.Name(&_ERC721.CallOpts) 845 } 846 847 // Name is a free data retrieval call binding the contract method 0x06fdde03. 848 // 849 // Solidity: function name() view returns(string) 850 func (_ERC721 *ERC721CallerSession) Name() (string, error) { 851 return _ERC721.Contract.Name(&_ERC721.CallOpts) 852 } 853 854 // OwnerOf is a free data retrieval call binding the contract method 0x6352211e. 855 // 856 // Solidity: function ownerOf(uint256 tokenId) view returns(address) 857 func (_ERC721 *ERC721Caller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) { 858 var out []interface{} 859 err := _ERC721.contract.Call(opts, &out, "ownerOf", tokenId) 860 861 if err != nil { 862 return *new(common.Address), err 863 } 864 865 out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) 866 867 return out0, err 868 869 } 870 871 // OwnerOf is a free data retrieval call binding the contract method 0x6352211e. 872 // 873 // Solidity: function ownerOf(uint256 tokenId) view returns(address) 874 func (_ERC721 *ERC721Session) OwnerOf(tokenId *big.Int) (common.Address, error) { 875 return _ERC721.Contract.OwnerOf(&_ERC721.CallOpts, tokenId) 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 *ERC721CallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) { 882 return _ERC721.Contract.OwnerOf(&_ERC721.CallOpts, tokenId) 883 } 884 885 // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. 886 // 887 // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) 888 func (_ERC721 *ERC721Caller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { 889 var out []interface{} 890 err := _ERC721.contract.Call(opts, &out, "supportsInterface", interfaceId) 891 892 if err != nil { 893 return *new(bool), err 894 } 895 896 out0 := *abi.ConvertType(out[0], new(bool)).(*bool) 897 898 return out0, err 899 900 } 901 902 // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. 903 // 904 // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) 905 func (_ERC721 *ERC721Session) SupportsInterface(interfaceId [4]byte) (bool, error) { 906 return _ERC721.Contract.SupportsInterface(&_ERC721.CallOpts, interfaceId) 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 *ERC721CallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { 913 return _ERC721.Contract.SupportsInterface(&_ERC721.CallOpts, interfaceId) 914 } 915 916 // Symbol is a free data retrieval call binding the contract method 0x95d89b41. 917 // 918 // Solidity: function symbol() view returns(string) 919 func (_ERC721 *ERC721Caller) Symbol(opts *bind.CallOpts) (string, error) { 920 var out []interface{} 921 err := _ERC721.contract.Call(opts, &out, "symbol") 922 923 if err != nil { 924 return *new(string), err 925 } 926 927 out0 := *abi.ConvertType(out[0], new(string)).(*string) 928 929 return out0, err 930 931 } 932 933 // Symbol is a free data retrieval call binding the contract method 0x95d89b41. 934 // 935 // Solidity: function symbol() view returns(string) 936 func (_ERC721 *ERC721Session) Symbol() (string, error) { 937 return _ERC721.Contract.Symbol(&_ERC721.CallOpts) 938 } 939 940 // Symbol is a free data retrieval call binding the contract method 0x95d89b41. 941 // 942 // Solidity: function symbol() view returns(string) 943 func (_ERC721 *ERC721CallerSession) Symbol() (string, error) { 944 return _ERC721.Contract.Symbol(&_ERC721.CallOpts) 945 } 946 947 // TokenByIndex is a free data retrieval call binding the contract method 0x4f6ccce7. 948 // 949 // Solidity: function tokenByIndex(uint256 index) view returns(uint256) 950 func (_ERC721 *ERC721Caller) TokenByIndex(opts *bind.CallOpts, index *big.Int) (*big.Int, error) { 951 var out []interface{} 952 err := _ERC721.contract.Call(opts, &out, "tokenByIndex", index) 953 954 if err != nil { 955 return *new(*big.Int), err 956 } 957 958 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 959 960 return out0, err 961 962 } 963 964 // TokenByIndex is a free data retrieval call binding the contract method 0x4f6ccce7. 965 // 966 // Solidity: function tokenByIndex(uint256 index) view returns(uint256) 967 func (_ERC721 *ERC721Session) TokenByIndex(index *big.Int) (*big.Int, error) { 968 return _ERC721.Contract.TokenByIndex(&_ERC721.CallOpts, index) 969 } 970 971 // TokenByIndex is a free data retrieval call binding the contract method 0x4f6ccce7. 972 // 973 // Solidity: function tokenByIndex(uint256 index) view returns(uint256) 974 func (_ERC721 *ERC721CallerSession) TokenByIndex(index *big.Int) (*big.Int, error) { 975 return _ERC721.Contract.TokenByIndex(&_ERC721.CallOpts, index) 976 } 977 978 // TokenOfOwnerByIndex is a free data retrieval call binding the contract method 0x2f745c59. 979 // 980 // Solidity: function tokenOfOwnerByIndex(address owner, uint256 index) view returns(uint256) 981 func (_ERC721 *ERC721Caller) TokenOfOwnerByIndex(opts *bind.CallOpts, owner common.Address, index *big.Int) (*big.Int, error) { 982 var out []interface{} 983 err := _ERC721.contract.Call(opts, &out, "tokenOfOwnerByIndex", owner, index) 984 985 if err != nil { 986 return *new(*big.Int), err 987 } 988 989 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 990 991 return out0, err 992 993 } 994 995 // TokenOfOwnerByIndex is a free data retrieval call binding the contract method 0x2f745c59. 996 // 997 // Solidity: function tokenOfOwnerByIndex(address owner, uint256 index) view returns(uint256) 998 func (_ERC721 *ERC721Session) TokenOfOwnerByIndex(owner common.Address, index *big.Int) (*big.Int, error) { 999 return _ERC721.Contract.TokenOfOwnerByIndex(&_ERC721.CallOpts, owner, index) 1000 } 1001 1002 // TokenOfOwnerByIndex is a free data retrieval call binding the contract method 0x2f745c59. 1003 // 1004 // Solidity: function tokenOfOwnerByIndex(address owner, uint256 index) view returns(uint256) 1005 func (_ERC721 *ERC721CallerSession) TokenOfOwnerByIndex(owner common.Address, index *big.Int) (*big.Int, error) { 1006 return _ERC721.Contract.TokenOfOwnerByIndex(&_ERC721.CallOpts, owner, index) 1007 } 1008 1009 // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd. 1010 // 1011 // Solidity: function tokenURI(uint256 tokenId) view returns(string) 1012 func (_ERC721 *ERC721Caller) TokenURI(opts *bind.CallOpts, tokenId *big.Int) (string, error) { 1013 var out []interface{} 1014 err := _ERC721.contract.Call(opts, &out, "tokenURI", tokenId) 1015 1016 if err != nil { 1017 return *new(string), err 1018 } 1019 1020 out0 := *abi.ConvertType(out[0], new(string)).(*string) 1021 1022 return out0, err 1023 1024 } 1025 1026 // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd. 1027 // 1028 // Solidity: function tokenURI(uint256 tokenId) view returns(string) 1029 func (_ERC721 *ERC721Session) TokenURI(tokenId *big.Int) (string, error) { 1030 return _ERC721.Contract.TokenURI(&_ERC721.CallOpts, tokenId) 1031 } 1032 1033 // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd. 1034 // 1035 // Solidity: function tokenURI(uint256 tokenId) view returns(string) 1036 func (_ERC721 *ERC721CallerSession) TokenURI(tokenId *big.Int) (string, error) { 1037 return _ERC721.Contract.TokenURI(&_ERC721.CallOpts, tokenId) 1038 } 1039 1040 // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. 1041 // 1042 // Solidity: function totalSupply() view returns(uint256) 1043 func (_ERC721 *ERC721Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { 1044 var out []interface{} 1045 err := _ERC721.contract.Call(opts, &out, "totalSupply") 1046 1047 if err != nil { 1048 return *new(*big.Int), err 1049 } 1050 1051 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 1052 1053 return out0, err 1054 1055 } 1056 1057 // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. 1058 // 1059 // Solidity: function totalSupply() view returns(uint256) 1060 func (_ERC721 *ERC721Session) TotalSupply() (*big.Int, error) { 1061 return _ERC721.Contract.TotalSupply(&_ERC721.CallOpts) 1062 } 1063 1064 // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. 1065 // 1066 // Solidity: function totalSupply() view returns(uint256) 1067 func (_ERC721 *ERC721CallerSession) TotalSupply() (*big.Int, error) { 1068 return _ERC721.Contract.TotalSupply(&_ERC721.CallOpts) 1069 } 1070 1071 // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. 1072 // 1073 // Solidity: function approve(address to, uint256 tokenId) returns() 1074 func (_ERC721 *ERC721Transactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 1075 return _ERC721.contract.Transact(opts, "approve", to, tokenId) 1076 } 1077 1078 // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. 1079 // 1080 // Solidity: function approve(address to, uint256 tokenId) returns() 1081 func (_ERC721 *ERC721Session) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) { 1082 return _ERC721.Contract.Approve(&_ERC721.TransactOpts, to, tokenId) 1083 } 1084 1085 // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. 1086 // 1087 // Solidity: function approve(address to, uint256 tokenId) returns() 1088 func (_ERC721 *ERC721TransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) { 1089 return _ERC721.Contract.Approve(&_ERC721.TransactOpts, to, tokenId) 1090 } 1091 1092 // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. 1093 // 1094 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns() 1095 func (_ERC721 *ERC721Transactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 1096 return _ERC721.contract.Transact(opts, "safeTransferFrom", from, to, tokenId) 1097 } 1098 1099 // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. 1100 // 1101 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns() 1102 func (_ERC721 *ERC721Session) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 1103 return _ERC721.Contract.SafeTransferFrom(&_ERC721.TransactOpts, from, to, tokenId) 1104 } 1105 1106 // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. 1107 // 1108 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns() 1109 func (_ERC721 *ERC721TransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 1110 return _ERC721.Contract.SafeTransferFrom(&_ERC721.TransactOpts, from, to, tokenId) 1111 } 1112 1113 // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. 1114 // 1115 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns() 1116 func (_ERC721 *ERC721Transactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) { 1117 return _ERC721.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, _data) 1118 } 1119 1120 // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. 1121 // 1122 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns() 1123 func (_ERC721 *ERC721Session) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) { 1124 return _ERC721.Contract.SafeTransferFrom0(&_ERC721.TransactOpts, from, to, tokenId, _data) 1125 } 1126 1127 // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. 1128 // 1129 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns() 1130 func (_ERC721 *ERC721TransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) { 1131 return _ERC721.Contract.SafeTransferFrom0(&_ERC721.TransactOpts, from, to, tokenId, _data) 1132 } 1133 1134 // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. 1135 // 1136 // Solidity: function setApprovalForAll(address operator, bool approved) returns() 1137 func (_ERC721 *ERC721Transactor) SetApprovalForAll(opts *bind.TransactOpts, operator common.Address, approved bool) (*types.Transaction, error) { 1138 return _ERC721.contract.Transact(opts, "setApprovalForAll", operator, approved) 1139 } 1140 1141 // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. 1142 // 1143 // Solidity: function setApprovalForAll(address operator, bool approved) returns() 1144 func (_ERC721 *ERC721Session) SetApprovalForAll(operator common.Address, approved bool) (*types.Transaction, error) { 1145 return _ERC721.Contract.SetApprovalForAll(&_ERC721.TransactOpts, operator, approved) 1146 } 1147 1148 // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. 1149 // 1150 // Solidity: function setApprovalForAll(address operator, bool approved) returns() 1151 func (_ERC721 *ERC721TransactorSession) SetApprovalForAll(operator common.Address, approved bool) (*types.Transaction, error) { 1152 return _ERC721.Contract.SetApprovalForAll(&_ERC721.TransactOpts, operator, approved) 1153 } 1154 1155 // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. 1156 // 1157 // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns() 1158 func (_ERC721 *ERC721Transactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 1159 return _ERC721.contract.Transact(opts, "transferFrom", from, to, tokenId) 1160 } 1161 1162 // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. 1163 // 1164 // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns() 1165 func (_ERC721 *ERC721Session) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 1166 return _ERC721.Contract.TransferFrom(&_ERC721.TransactOpts, from, to, tokenId) 1167 } 1168 1169 // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. 1170 // 1171 // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns() 1172 func (_ERC721 *ERC721TransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 1173 return _ERC721.Contract.TransferFrom(&_ERC721.TransactOpts, from, to, tokenId) 1174 } 1175 1176 // 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. 1177 type ERC721ApprovalIterator struct { 1178 Event *ERC721Approval // Event containing the contract specifics and raw log 1179 1180 contract *bind.BoundContract // Generic contract to use for unpacking event data 1181 event string // Event name to use for unpacking event data 1182 1183 logs chan types.Log // Log channel receiving the found contract events 1184 sub ethereum.Subscription // Subscription for errors, completion and termination 1185 done bool // Whether the subscription completed delivering logs 1186 fail error // Occurred error to stop iteration 1187 } 1188 1189 // Next advances the iterator to the subsequent event, returning whether there 1190 // are any more events found. In case of a retrieval or parsing error, false is 1191 // returned and Error() can be queried for the exact failure. 1192 func (it *ERC721ApprovalIterator) Next() bool { 1193 // If the iterator failed, stop iterating 1194 if it.fail != nil { 1195 return false 1196 } 1197 // If the iterator completed, deliver directly whatever's available 1198 if it.done { 1199 select { 1200 case log := <-it.logs: 1201 it.Event = new(ERC721Approval) 1202 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1203 it.fail = err 1204 return false 1205 } 1206 it.Event.Raw = log 1207 return true 1208 1209 default: 1210 return false 1211 } 1212 } 1213 // Iterator still in progress, wait for either a data or an error event 1214 select { 1215 case log := <-it.logs: 1216 it.Event = new(ERC721Approval) 1217 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1218 it.fail = err 1219 return false 1220 } 1221 it.Event.Raw = log 1222 return true 1223 1224 case err := <-it.sub.Err(): 1225 it.done = true 1226 it.fail = err 1227 return it.Next() 1228 } 1229 } 1230 1231 // Error returns any retrieval or parsing error occurred during filtering. 1232 func (it *ERC721ApprovalIterator) Error() error { 1233 return it.fail 1234 } 1235 1236 // Close terminates the iteration process, releasing any pending underlying 1237 // resources. 1238 func (it *ERC721ApprovalIterator) Close() error { 1239 it.sub.Unsubscribe() 1240 return nil 1241 } 1242 1243 // ERC721Approval represents a Approval event raised by the ERC721 contract. 1244 type ERC721Approval struct { 1245 Owner common.Address 1246 Approved common.Address 1247 TokenId *big.Int 1248 Raw types.Log // Blockchain specific contextual infos 1249 } 1250 1251 // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. 1252 // 1253 // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId) 1254 func (_ERC721 *ERC721Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*ERC721ApprovalIterator, error) { 1255 1256 var ownerRule []interface{} 1257 for _, ownerItem := range owner { 1258 ownerRule = append(ownerRule, ownerItem) 1259 } 1260 var approvedRule []interface{} 1261 for _, approvedItem := range approved { 1262 approvedRule = append(approvedRule, approvedItem) 1263 } 1264 var tokenIdRule []interface{} 1265 for _, tokenIdItem := range tokenId { 1266 tokenIdRule = append(tokenIdRule, tokenIdItem) 1267 } 1268 1269 logs, sub, err := _ERC721.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule) 1270 if err != nil { 1271 return nil, err 1272 } 1273 return &ERC721ApprovalIterator{contract: _ERC721.contract, event: "Approval", logs: logs, sub: sub}, nil 1274 } 1275 1276 // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. 1277 // 1278 // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId) 1279 func (_ERC721 *ERC721Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC721Approval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) { 1280 1281 var ownerRule []interface{} 1282 for _, ownerItem := range owner { 1283 ownerRule = append(ownerRule, ownerItem) 1284 } 1285 var approvedRule []interface{} 1286 for _, approvedItem := range approved { 1287 approvedRule = append(approvedRule, approvedItem) 1288 } 1289 var tokenIdRule []interface{} 1290 for _, tokenIdItem := range tokenId { 1291 tokenIdRule = append(tokenIdRule, tokenIdItem) 1292 } 1293 1294 logs, sub, err := _ERC721.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule) 1295 if err != nil { 1296 return nil, err 1297 } 1298 return event.NewSubscription(func(quit <-chan struct{}) error { 1299 defer sub.Unsubscribe() 1300 for { 1301 select { 1302 case log := <-logs: 1303 // New log arrived, parse the event and forward to the user 1304 event := new(ERC721Approval) 1305 if err := _ERC721.contract.UnpackLog(event, "Approval", log); err != nil { 1306 return err 1307 } 1308 event.Raw = log 1309 1310 select { 1311 case sink <- event: 1312 case err := <-sub.Err(): 1313 return err 1314 case <-quit: 1315 return nil 1316 } 1317 case err := <-sub.Err(): 1318 return err 1319 case <-quit: 1320 return nil 1321 } 1322 } 1323 }), nil 1324 } 1325 1326 // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. 1327 // 1328 // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId) 1329 func (_ERC721 *ERC721Filterer) ParseApproval(log types.Log) (*ERC721Approval, error) { 1330 event := new(ERC721Approval) 1331 if err := _ERC721.contract.UnpackLog(event, "Approval", log); err != nil { 1332 return nil, err 1333 } 1334 event.Raw = log 1335 return event, nil 1336 } 1337 1338 // 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. 1339 type ERC721ApprovalForAllIterator struct { 1340 Event *ERC721ApprovalForAll // Event containing the contract specifics and raw log 1341 1342 contract *bind.BoundContract // Generic contract to use for unpacking event data 1343 event string // Event name to use for unpacking event data 1344 1345 logs chan types.Log // Log channel receiving the found contract events 1346 sub ethereum.Subscription // Subscription for errors, completion and termination 1347 done bool // Whether the subscription completed delivering logs 1348 fail error // Occurred error to stop iteration 1349 } 1350 1351 // Next advances the iterator to the subsequent event, returning whether there 1352 // are any more events found. In case of a retrieval or parsing error, false is 1353 // returned and Error() can be queried for the exact failure. 1354 func (it *ERC721ApprovalForAllIterator) Next() bool { 1355 // If the iterator failed, stop iterating 1356 if it.fail != nil { 1357 return false 1358 } 1359 // If the iterator completed, deliver directly whatever's available 1360 if it.done { 1361 select { 1362 case log := <-it.logs: 1363 it.Event = new(ERC721ApprovalForAll) 1364 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1365 it.fail = err 1366 return false 1367 } 1368 it.Event.Raw = log 1369 return true 1370 1371 default: 1372 return false 1373 } 1374 } 1375 // Iterator still in progress, wait for either a data or an error event 1376 select { 1377 case log := <-it.logs: 1378 it.Event = new(ERC721ApprovalForAll) 1379 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1380 it.fail = err 1381 return false 1382 } 1383 it.Event.Raw = log 1384 return true 1385 1386 case err := <-it.sub.Err(): 1387 it.done = true 1388 it.fail = err 1389 return it.Next() 1390 } 1391 } 1392 1393 // Error returns any retrieval or parsing error occurred during filtering. 1394 func (it *ERC721ApprovalForAllIterator) Error() error { 1395 return it.fail 1396 } 1397 1398 // Close terminates the iteration process, releasing any pending underlying 1399 // resources. 1400 func (it *ERC721ApprovalForAllIterator) Close() error { 1401 it.sub.Unsubscribe() 1402 return nil 1403 } 1404 1405 // ERC721ApprovalForAll represents a ApprovalForAll event raised by the ERC721 contract. 1406 type ERC721ApprovalForAll struct { 1407 Owner common.Address 1408 Operator common.Address 1409 Approved bool 1410 Raw types.Log // Blockchain specific contextual infos 1411 } 1412 1413 // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. 1414 // 1415 // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved) 1416 func (_ERC721 *ERC721Filterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*ERC721ApprovalForAllIterator, error) { 1417 1418 var ownerRule []interface{} 1419 for _, ownerItem := range owner { 1420 ownerRule = append(ownerRule, ownerItem) 1421 } 1422 var operatorRule []interface{} 1423 for _, operatorItem := range operator { 1424 operatorRule = append(operatorRule, operatorItem) 1425 } 1426 1427 logs, sub, err := _ERC721.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule) 1428 if err != nil { 1429 return nil, err 1430 } 1431 return &ERC721ApprovalForAllIterator{contract: _ERC721.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil 1432 } 1433 1434 // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. 1435 // 1436 // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved) 1437 func (_ERC721 *ERC721Filterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *ERC721ApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) { 1438 1439 var ownerRule []interface{} 1440 for _, ownerItem := range owner { 1441 ownerRule = append(ownerRule, ownerItem) 1442 } 1443 var operatorRule []interface{} 1444 for _, operatorItem := range operator { 1445 operatorRule = append(operatorRule, operatorItem) 1446 } 1447 1448 logs, sub, err := _ERC721.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule) 1449 if err != nil { 1450 return nil, err 1451 } 1452 return event.NewSubscription(func(quit <-chan struct{}) error { 1453 defer sub.Unsubscribe() 1454 for { 1455 select { 1456 case log := <-logs: 1457 // New log arrived, parse the event and forward to the user 1458 event := new(ERC721ApprovalForAll) 1459 if err := _ERC721.contract.UnpackLog(event, "ApprovalForAll", log); err != nil { 1460 return err 1461 } 1462 event.Raw = log 1463 1464 select { 1465 case sink <- event: 1466 case err := <-sub.Err(): 1467 return err 1468 case <-quit: 1469 return nil 1470 } 1471 case err := <-sub.Err(): 1472 return err 1473 case <-quit: 1474 return nil 1475 } 1476 } 1477 }), nil 1478 } 1479 1480 // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. 1481 // 1482 // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved) 1483 func (_ERC721 *ERC721Filterer) ParseApprovalForAll(log types.Log) (*ERC721ApprovalForAll, error) { 1484 event := new(ERC721ApprovalForAll) 1485 if err := _ERC721.contract.UnpackLog(event, "ApprovalForAll", log); err != nil { 1486 return nil, err 1487 } 1488 event.Raw = log 1489 return event, nil 1490 } 1491 1492 // 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. 1493 type ERC721TransferIterator struct { 1494 Event *ERC721Transfer // Event containing the contract specifics and raw log 1495 1496 contract *bind.BoundContract // Generic contract to use for unpacking event data 1497 event string // Event name to use for unpacking event data 1498 1499 logs chan types.Log // Log channel receiving the found contract events 1500 sub ethereum.Subscription // Subscription for errors, completion and termination 1501 done bool // Whether the subscription completed delivering logs 1502 fail error // Occurred error to stop iteration 1503 } 1504 1505 // Next advances the iterator to the subsequent event, returning whether there 1506 // are any more events found. In case of a retrieval or parsing error, false is 1507 // returned and Error() can be queried for the exact failure. 1508 func (it *ERC721TransferIterator) Next() bool { 1509 // If the iterator failed, stop iterating 1510 if it.fail != nil { 1511 return false 1512 } 1513 // If the iterator completed, deliver directly whatever's available 1514 if it.done { 1515 select { 1516 case log := <-it.logs: 1517 it.Event = new(ERC721Transfer) 1518 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1519 it.fail = err 1520 return false 1521 } 1522 it.Event.Raw = log 1523 return true 1524 1525 default: 1526 return false 1527 } 1528 } 1529 // Iterator still in progress, wait for either a data or an error event 1530 select { 1531 case log := <-it.logs: 1532 it.Event = new(ERC721Transfer) 1533 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1534 it.fail = err 1535 return false 1536 } 1537 it.Event.Raw = log 1538 return true 1539 1540 case err := <-it.sub.Err(): 1541 it.done = true 1542 it.fail = err 1543 return it.Next() 1544 } 1545 } 1546 1547 // Error returns any retrieval or parsing error occurred during filtering. 1548 func (it *ERC721TransferIterator) Error() error { 1549 return it.fail 1550 } 1551 1552 // Close terminates the iteration process, releasing any pending underlying 1553 // resources. 1554 func (it *ERC721TransferIterator) Close() error { 1555 it.sub.Unsubscribe() 1556 return nil 1557 } 1558 1559 // ERC721Transfer represents a Transfer event raised by the ERC721 contract. 1560 type ERC721Transfer struct { 1561 From common.Address 1562 To common.Address 1563 TokenId *big.Int 1564 Raw types.Log // Blockchain specific contextual infos 1565 } 1566 1567 // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. 1568 // 1569 // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId) 1570 func (_ERC721 *ERC721Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*ERC721TransferIterator, error) { 1571 1572 var fromRule []interface{} 1573 for _, fromItem := range from { 1574 fromRule = append(fromRule, fromItem) 1575 } 1576 var toRule []interface{} 1577 for _, toItem := range to { 1578 toRule = append(toRule, toItem) 1579 } 1580 var tokenIdRule []interface{} 1581 for _, tokenIdItem := range tokenId { 1582 tokenIdRule = append(tokenIdRule, tokenIdItem) 1583 } 1584 1585 logs, sub, err := _ERC721.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule) 1586 if err != nil { 1587 return nil, err 1588 } 1589 return &ERC721TransferIterator{contract: _ERC721.contract, event: "Transfer", logs: logs, sub: sub}, nil 1590 } 1591 1592 // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. 1593 // 1594 // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId) 1595 func (_ERC721 *ERC721Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC721Transfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) { 1596 1597 var fromRule []interface{} 1598 for _, fromItem := range from { 1599 fromRule = append(fromRule, fromItem) 1600 } 1601 var toRule []interface{} 1602 for _, toItem := range to { 1603 toRule = append(toRule, toItem) 1604 } 1605 var tokenIdRule []interface{} 1606 for _, tokenIdItem := range tokenId { 1607 tokenIdRule = append(tokenIdRule, tokenIdItem) 1608 } 1609 1610 logs, sub, err := _ERC721.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule) 1611 if err != nil { 1612 return nil, err 1613 } 1614 return event.NewSubscription(func(quit <-chan struct{}) error { 1615 defer sub.Unsubscribe() 1616 for { 1617 select { 1618 case log := <-logs: 1619 // New log arrived, parse the event and forward to the user 1620 event := new(ERC721Transfer) 1621 if err := _ERC721.contract.UnpackLog(event, "Transfer", log); err != nil { 1622 return err 1623 } 1624 event.Raw = log 1625 1626 select { 1627 case sink <- event: 1628 case err := <-sub.Err(): 1629 return err 1630 case <-quit: 1631 return nil 1632 } 1633 case err := <-sub.Err(): 1634 return err 1635 case <-quit: 1636 return nil 1637 } 1638 } 1639 }), nil 1640 } 1641 1642 // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. 1643 // 1644 // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId) 1645 func (_ERC721 *ERC721Filterer) ParseTransfer(log types.Log) (*ERC721Transfer, error) { 1646 event := new(ERC721Transfer) 1647 if err := _ERC721.contract.UnpackLog(event, "Transfer", log); err != nil { 1648 return nil, err 1649 } 1650 event.Raw = log 1651 return event, nil 1652 } 1653 1654 // ERC721BurnableABI is the input ABI used to generate the binding from. 1655 const ERC721BurnableABI = "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" 1656 1657 // ERC721BurnableFuncSigs maps the 4-byte function signature to its string representation. 1658 var ERC721BurnableFuncSigs = map[string]string{ 1659 "095ea7b3": "approve(address,uint256)", 1660 "70a08231": "balanceOf(address)", 1661 "6c0360eb": "baseURI()", 1662 "42966c68": "burn(uint256)", 1663 "081812fc": "getApproved(uint256)", 1664 "e985e9c5": "isApprovedForAll(address,address)", 1665 "06fdde03": "name()", 1666 "6352211e": "ownerOf(uint256)", 1667 "42842e0e": "safeTransferFrom(address,address,uint256)", 1668 "b88d4fde": "safeTransferFrom(address,address,uint256,bytes)", 1669 "a22cb465": "setApprovalForAll(address,bool)", 1670 "01ffc9a7": "supportsInterface(bytes4)", 1671 "95d89b41": "symbol()", 1672 "4f6ccce7": "tokenByIndex(uint256)", 1673 "2f745c59": "tokenOfOwnerByIndex(address,uint256)", 1674 "c87b56dd": "tokenURI(uint256)", 1675 "18160ddd": "totalSupply()", 1676 "23b872dd": "transferFrom(address,address,uint256)", 1677 } 1678 1679 // ERC721Burnable is an auto generated Go binding around an Ethereum contract. 1680 type ERC721Burnable struct { 1681 ERC721BurnableCaller // Read-only binding to the contract 1682 ERC721BurnableTransactor // Write-only binding to the contract 1683 ERC721BurnableFilterer // Log filterer for contract events 1684 } 1685 1686 // ERC721BurnableCaller is an auto generated read-only Go binding around an Ethereum contract. 1687 type ERC721BurnableCaller struct { 1688 contract *bind.BoundContract // Generic contract wrapper for the low level calls 1689 } 1690 1691 // ERC721BurnableTransactor is an auto generated write-only Go binding around an Ethereum contract. 1692 type ERC721BurnableTransactor struct { 1693 contract *bind.BoundContract // Generic contract wrapper for the low level calls 1694 } 1695 1696 // ERC721BurnableFilterer is an auto generated log filtering Go binding around an Ethereum contract events. 1697 type ERC721BurnableFilterer struct { 1698 contract *bind.BoundContract // Generic contract wrapper for the low level calls 1699 } 1700 1701 // ERC721BurnableSession is an auto generated Go binding around an Ethereum contract, 1702 // with pre-set call and transact options. 1703 type ERC721BurnableSession struct { 1704 Contract *ERC721Burnable // Generic contract binding to set the session for 1705 CallOpts bind.CallOpts // Call options to use throughout this session 1706 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 1707 } 1708 1709 // ERC721BurnableCallerSession is an auto generated read-only Go binding around an Ethereum contract, 1710 // with pre-set call options. 1711 type ERC721BurnableCallerSession struct { 1712 Contract *ERC721BurnableCaller // Generic contract caller binding to set the session for 1713 CallOpts bind.CallOpts // Call options to use throughout this session 1714 } 1715 1716 // ERC721BurnableTransactorSession is an auto generated write-only Go binding around an Ethereum contract, 1717 // with pre-set transact options. 1718 type ERC721BurnableTransactorSession struct { 1719 Contract *ERC721BurnableTransactor // Generic contract transactor binding to set the session for 1720 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 1721 } 1722 1723 // ERC721BurnableRaw is an auto generated low-level Go binding around an Ethereum contract. 1724 type ERC721BurnableRaw struct { 1725 Contract *ERC721Burnable // Generic contract binding to access the raw methods on 1726 } 1727 1728 // ERC721BurnableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. 1729 type ERC721BurnableCallerRaw struct { 1730 Contract *ERC721BurnableCaller // Generic read-only contract binding to access the raw methods on 1731 } 1732 1733 // ERC721BurnableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. 1734 type ERC721BurnableTransactorRaw struct { 1735 Contract *ERC721BurnableTransactor // Generic write-only contract binding to access the raw methods on 1736 } 1737 1738 // NewERC721Burnable creates a new instance of ERC721Burnable, bound to a specific deployed contract. 1739 func NewERC721Burnable(address common.Address, backend bind.ContractBackend) (*ERC721Burnable, error) { 1740 contract, err := bindERC721Burnable(address, backend, backend, backend) 1741 if err != nil { 1742 return nil, err 1743 } 1744 return &ERC721Burnable{ERC721BurnableCaller: ERC721BurnableCaller{contract: contract}, ERC721BurnableTransactor: ERC721BurnableTransactor{contract: contract}, ERC721BurnableFilterer: ERC721BurnableFilterer{contract: contract}}, nil 1745 } 1746 1747 // NewERC721BurnableCaller creates a new read-only instance of ERC721Burnable, bound to a specific deployed contract. 1748 func NewERC721BurnableCaller(address common.Address, caller bind.ContractCaller) (*ERC721BurnableCaller, error) { 1749 contract, err := bindERC721Burnable(address, caller, nil, nil) 1750 if err != nil { 1751 return nil, err 1752 } 1753 return &ERC721BurnableCaller{contract: contract}, nil 1754 } 1755 1756 // NewERC721BurnableTransactor creates a new write-only instance of ERC721Burnable, bound to a specific deployed contract. 1757 func NewERC721BurnableTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC721BurnableTransactor, error) { 1758 contract, err := bindERC721Burnable(address, nil, transactor, nil) 1759 if err != nil { 1760 return nil, err 1761 } 1762 return &ERC721BurnableTransactor{contract: contract}, nil 1763 } 1764 1765 // NewERC721BurnableFilterer creates a new log filterer instance of ERC721Burnable, bound to a specific deployed contract. 1766 func NewERC721BurnableFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC721BurnableFilterer, error) { 1767 contract, err := bindERC721Burnable(address, nil, nil, filterer) 1768 if err != nil { 1769 return nil, err 1770 } 1771 return &ERC721BurnableFilterer{contract: contract}, nil 1772 } 1773 1774 // bindERC721Burnable binds a generic wrapper to an already deployed contract. 1775 func bindERC721Burnable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { 1776 parsed, err := abi.JSON(strings.NewReader(ERC721BurnableABI)) 1777 if err != nil { 1778 return nil, err 1779 } 1780 return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil 1781 } 1782 1783 // Call invokes the (constant) contract method with params as input values and 1784 // sets the output to result. The result type might be a single field for simple 1785 // returns, a slice of interfaces for anonymous returns and a struct for named 1786 // returns. 1787 func (_ERC721Burnable *ERC721BurnableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 1788 return _ERC721Burnable.Contract.ERC721BurnableCaller.contract.Call(opts, result, method, params...) 1789 } 1790 1791 // Transfer initiates a plain transaction to move funds to the contract, calling 1792 // its default method if one is available. 1793 func (_ERC721Burnable *ERC721BurnableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 1794 return _ERC721Burnable.Contract.ERC721BurnableTransactor.contract.Transfer(opts) 1795 } 1796 1797 // Transact invokes the (paid) contract method with params as input values. 1798 func (_ERC721Burnable *ERC721BurnableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 1799 return _ERC721Burnable.Contract.ERC721BurnableTransactor.contract.Transact(opts, method, params...) 1800 } 1801 1802 // Call invokes the (constant) contract method with params as input values and 1803 // sets the output to result. The result type might be a single field for simple 1804 // returns, a slice of interfaces for anonymous returns and a struct for named 1805 // returns. 1806 func (_ERC721Burnable *ERC721BurnableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 1807 return _ERC721Burnable.Contract.contract.Call(opts, result, method, params...) 1808 } 1809 1810 // Transfer initiates a plain transaction to move funds to the contract, calling 1811 // its default method if one is available. 1812 func (_ERC721Burnable *ERC721BurnableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 1813 return _ERC721Burnable.Contract.contract.Transfer(opts) 1814 } 1815 1816 // Transact invokes the (paid) contract method with params as input values. 1817 func (_ERC721Burnable *ERC721BurnableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 1818 return _ERC721Burnable.Contract.contract.Transact(opts, method, params...) 1819 } 1820 1821 // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. 1822 // 1823 // Solidity: function balanceOf(address owner) view returns(uint256) 1824 func (_ERC721Burnable *ERC721BurnableCaller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) { 1825 var out []interface{} 1826 err := _ERC721Burnable.contract.Call(opts, &out, "balanceOf", owner) 1827 1828 if err != nil { 1829 return *new(*big.Int), err 1830 } 1831 1832 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 1833 1834 return out0, err 1835 1836 } 1837 1838 // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. 1839 // 1840 // Solidity: function balanceOf(address owner) view returns(uint256) 1841 func (_ERC721Burnable *ERC721BurnableSession) BalanceOf(owner common.Address) (*big.Int, error) { 1842 return _ERC721Burnable.Contract.BalanceOf(&_ERC721Burnable.CallOpts, owner) 1843 } 1844 1845 // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. 1846 // 1847 // Solidity: function balanceOf(address owner) view returns(uint256) 1848 func (_ERC721Burnable *ERC721BurnableCallerSession) BalanceOf(owner common.Address) (*big.Int, error) { 1849 return _ERC721Burnable.Contract.BalanceOf(&_ERC721Burnable.CallOpts, owner) 1850 } 1851 1852 // BaseURI is a free data retrieval call binding the contract method 0x6c0360eb. 1853 // 1854 // Solidity: function baseURI() view returns(string) 1855 func (_ERC721Burnable *ERC721BurnableCaller) BaseURI(opts *bind.CallOpts) (string, error) { 1856 var out []interface{} 1857 err := _ERC721Burnable.contract.Call(opts, &out, "baseURI") 1858 1859 if err != nil { 1860 return *new(string), err 1861 } 1862 1863 out0 := *abi.ConvertType(out[0], new(string)).(*string) 1864 1865 return out0, err 1866 1867 } 1868 1869 // BaseURI is a free data retrieval call binding the contract method 0x6c0360eb. 1870 // 1871 // Solidity: function baseURI() view returns(string) 1872 func (_ERC721Burnable *ERC721BurnableSession) BaseURI() (string, error) { 1873 return _ERC721Burnable.Contract.BaseURI(&_ERC721Burnable.CallOpts) 1874 } 1875 1876 // BaseURI is a free data retrieval call binding the contract method 0x6c0360eb. 1877 // 1878 // Solidity: function baseURI() view returns(string) 1879 func (_ERC721Burnable *ERC721BurnableCallerSession) BaseURI() (string, error) { 1880 return _ERC721Burnable.Contract.BaseURI(&_ERC721Burnable.CallOpts) 1881 } 1882 1883 // GetApproved is a free data retrieval call binding the contract method 0x081812fc. 1884 // 1885 // Solidity: function getApproved(uint256 tokenId) view returns(address) 1886 func (_ERC721Burnable *ERC721BurnableCaller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) { 1887 var out []interface{} 1888 err := _ERC721Burnable.contract.Call(opts, &out, "getApproved", tokenId) 1889 1890 if err != nil { 1891 return *new(common.Address), err 1892 } 1893 1894 out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) 1895 1896 return out0, err 1897 1898 } 1899 1900 // GetApproved is a free data retrieval call binding the contract method 0x081812fc. 1901 // 1902 // Solidity: function getApproved(uint256 tokenId) view returns(address) 1903 func (_ERC721Burnable *ERC721BurnableSession) GetApproved(tokenId *big.Int) (common.Address, error) { 1904 return _ERC721Burnable.Contract.GetApproved(&_ERC721Burnable.CallOpts, tokenId) 1905 } 1906 1907 // GetApproved is a free data retrieval call binding the contract method 0x081812fc. 1908 // 1909 // Solidity: function getApproved(uint256 tokenId) view returns(address) 1910 func (_ERC721Burnable *ERC721BurnableCallerSession) GetApproved(tokenId *big.Int) (common.Address, error) { 1911 return _ERC721Burnable.Contract.GetApproved(&_ERC721Burnable.CallOpts, tokenId) 1912 } 1913 1914 // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. 1915 // 1916 // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool) 1917 func (_ERC721Burnable *ERC721BurnableCaller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) { 1918 var out []interface{} 1919 err := _ERC721Burnable.contract.Call(opts, &out, "isApprovedForAll", owner, operator) 1920 1921 if err != nil { 1922 return *new(bool), err 1923 } 1924 1925 out0 := *abi.ConvertType(out[0], new(bool)).(*bool) 1926 1927 return out0, err 1928 1929 } 1930 1931 // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. 1932 // 1933 // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool) 1934 func (_ERC721Burnable *ERC721BurnableSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) { 1935 return _ERC721Burnable.Contract.IsApprovedForAll(&_ERC721Burnable.CallOpts, owner, operator) 1936 } 1937 1938 // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. 1939 // 1940 // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool) 1941 func (_ERC721Burnable *ERC721BurnableCallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) { 1942 return _ERC721Burnable.Contract.IsApprovedForAll(&_ERC721Burnable.CallOpts, owner, operator) 1943 } 1944 1945 // Name is a free data retrieval call binding the contract method 0x06fdde03. 1946 // 1947 // Solidity: function name() view returns(string) 1948 func (_ERC721Burnable *ERC721BurnableCaller) Name(opts *bind.CallOpts) (string, error) { 1949 var out []interface{} 1950 err := _ERC721Burnable.contract.Call(opts, &out, "name") 1951 1952 if err != nil { 1953 return *new(string), err 1954 } 1955 1956 out0 := *abi.ConvertType(out[0], new(string)).(*string) 1957 1958 return out0, err 1959 1960 } 1961 1962 // Name is a free data retrieval call binding the contract method 0x06fdde03. 1963 // 1964 // Solidity: function name() view returns(string) 1965 func (_ERC721Burnable *ERC721BurnableSession) Name() (string, error) { 1966 return _ERC721Burnable.Contract.Name(&_ERC721Burnable.CallOpts) 1967 } 1968 1969 // Name is a free data retrieval call binding the contract method 0x06fdde03. 1970 // 1971 // Solidity: function name() view returns(string) 1972 func (_ERC721Burnable *ERC721BurnableCallerSession) Name() (string, error) { 1973 return _ERC721Burnable.Contract.Name(&_ERC721Burnable.CallOpts) 1974 } 1975 1976 // OwnerOf is a free data retrieval call binding the contract method 0x6352211e. 1977 // 1978 // Solidity: function ownerOf(uint256 tokenId) view returns(address) 1979 func (_ERC721Burnable *ERC721BurnableCaller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) { 1980 var out []interface{} 1981 err := _ERC721Burnable.contract.Call(opts, &out, "ownerOf", tokenId) 1982 1983 if err != nil { 1984 return *new(common.Address), err 1985 } 1986 1987 out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) 1988 1989 return out0, err 1990 1991 } 1992 1993 // OwnerOf is a free data retrieval call binding the contract method 0x6352211e. 1994 // 1995 // Solidity: function ownerOf(uint256 tokenId) view returns(address) 1996 func (_ERC721Burnable *ERC721BurnableSession) OwnerOf(tokenId *big.Int) (common.Address, error) { 1997 return _ERC721Burnable.Contract.OwnerOf(&_ERC721Burnable.CallOpts, tokenId) 1998 } 1999 2000 // OwnerOf is a free data retrieval call binding the contract method 0x6352211e. 2001 // 2002 // Solidity: function ownerOf(uint256 tokenId) view returns(address) 2003 func (_ERC721Burnable *ERC721BurnableCallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) { 2004 return _ERC721Burnable.Contract.OwnerOf(&_ERC721Burnable.CallOpts, tokenId) 2005 } 2006 2007 // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. 2008 // 2009 // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) 2010 func (_ERC721Burnable *ERC721BurnableCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { 2011 var out []interface{} 2012 err := _ERC721Burnable.contract.Call(opts, &out, "supportsInterface", interfaceId) 2013 2014 if err != nil { 2015 return *new(bool), err 2016 } 2017 2018 out0 := *abi.ConvertType(out[0], new(bool)).(*bool) 2019 2020 return out0, err 2021 2022 } 2023 2024 // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. 2025 // 2026 // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) 2027 func (_ERC721Burnable *ERC721BurnableSession) SupportsInterface(interfaceId [4]byte) (bool, error) { 2028 return _ERC721Burnable.Contract.SupportsInterface(&_ERC721Burnable.CallOpts, interfaceId) 2029 } 2030 2031 // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. 2032 // 2033 // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) 2034 func (_ERC721Burnable *ERC721BurnableCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { 2035 return _ERC721Burnable.Contract.SupportsInterface(&_ERC721Burnable.CallOpts, interfaceId) 2036 } 2037 2038 // Symbol is a free data retrieval call binding the contract method 0x95d89b41. 2039 // 2040 // Solidity: function symbol() view returns(string) 2041 func (_ERC721Burnable *ERC721BurnableCaller) Symbol(opts *bind.CallOpts) (string, error) { 2042 var out []interface{} 2043 err := _ERC721Burnable.contract.Call(opts, &out, "symbol") 2044 2045 if err != nil { 2046 return *new(string), err 2047 } 2048 2049 out0 := *abi.ConvertType(out[0], new(string)).(*string) 2050 2051 return out0, err 2052 2053 } 2054 2055 // Symbol is a free data retrieval call binding the contract method 0x95d89b41. 2056 // 2057 // Solidity: function symbol() view returns(string) 2058 func (_ERC721Burnable *ERC721BurnableSession) Symbol() (string, error) { 2059 return _ERC721Burnable.Contract.Symbol(&_ERC721Burnable.CallOpts) 2060 } 2061 2062 // Symbol is a free data retrieval call binding the contract method 0x95d89b41. 2063 // 2064 // Solidity: function symbol() view returns(string) 2065 func (_ERC721Burnable *ERC721BurnableCallerSession) Symbol() (string, error) { 2066 return _ERC721Burnable.Contract.Symbol(&_ERC721Burnable.CallOpts) 2067 } 2068 2069 // TokenByIndex is a free data retrieval call binding the contract method 0x4f6ccce7. 2070 // 2071 // Solidity: function tokenByIndex(uint256 index) view returns(uint256) 2072 func (_ERC721Burnable *ERC721BurnableCaller) TokenByIndex(opts *bind.CallOpts, index *big.Int) (*big.Int, error) { 2073 var out []interface{} 2074 err := _ERC721Burnable.contract.Call(opts, &out, "tokenByIndex", index) 2075 2076 if err != nil { 2077 return *new(*big.Int), err 2078 } 2079 2080 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 2081 2082 return out0, err 2083 2084 } 2085 2086 // TokenByIndex is a free data retrieval call binding the contract method 0x4f6ccce7. 2087 // 2088 // Solidity: function tokenByIndex(uint256 index) view returns(uint256) 2089 func (_ERC721Burnable *ERC721BurnableSession) TokenByIndex(index *big.Int) (*big.Int, error) { 2090 return _ERC721Burnable.Contract.TokenByIndex(&_ERC721Burnable.CallOpts, index) 2091 } 2092 2093 // TokenByIndex is a free data retrieval call binding the contract method 0x4f6ccce7. 2094 // 2095 // Solidity: function tokenByIndex(uint256 index) view returns(uint256) 2096 func (_ERC721Burnable *ERC721BurnableCallerSession) TokenByIndex(index *big.Int) (*big.Int, error) { 2097 return _ERC721Burnable.Contract.TokenByIndex(&_ERC721Burnable.CallOpts, index) 2098 } 2099 2100 // TokenOfOwnerByIndex is a free data retrieval call binding the contract method 0x2f745c59. 2101 // 2102 // Solidity: function tokenOfOwnerByIndex(address owner, uint256 index) view returns(uint256) 2103 func (_ERC721Burnable *ERC721BurnableCaller) TokenOfOwnerByIndex(opts *bind.CallOpts, owner common.Address, index *big.Int) (*big.Int, error) { 2104 var out []interface{} 2105 err := _ERC721Burnable.contract.Call(opts, &out, "tokenOfOwnerByIndex", owner, index) 2106 2107 if err != nil { 2108 return *new(*big.Int), err 2109 } 2110 2111 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 2112 2113 return out0, err 2114 2115 } 2116 2117 // TokenOfOwnerByIndex is a free data retrieval call binding the contract method 0x2f745c59. 2118 // 2119 // Solidity: function tokenOfOwnerByIndex(address owner, uint256 index) view returns(uint256) 2120 func (_ERC721Burnable *ERC721BurnableSession) TokenOfOwnerByIndex(owner common.Address, index *big.Int) (*big.Int, error) { 2121 return _ERC721Burnable.Contract.TokenOfOwnerByIndex(&_ERC721Burnable.CallOpts, owner, index) 2122 } 2123 2124 // TokenOfOwnerByIndex is a free data retrieval call binding the contract method 0x2f745c59. 2125 // 2126 // Solidity: function tokenOfOwnerByIndex(address owner, uint256 index) view returns(uint256) 2127 func (_ERC721Burnable *ERC721BurnableCallerSession) TokenOfOwnerByIndex(owner common.Address, index *big.Int) (*big.Int, error) { 2128 return _ERC721Burnable.Contract.TokenOfOwnerByIndex(&_ERC721Burnable.CallOpts, owner, index) 2129 } 2130 2131 // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd. 2132 // 2133 // Solidity: function tokenURI(uint256 tokenId) view returns(string) 2134 func (_ERC721Burnable *ERC721BurnableCaller) TokenURI(opts *bind.CallOpts, tokenId *big.Int) (string, error) { 2135 var out []interface{} 2136 err := _ERC721Burnable.contract.Call(opts, &out, "tokenURI", tokenId) 2137 2138 if err != nil { 2139 return *new(string), err 2140 } 2141 2142 out0 := *abi.ConvertType(out[0], new(string)).(*string) 2143 2144 return out0, err 2145 2146 } 2147 2148 // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd. 2149 // 2150 // Solidity: function tokenURI(uint256 tokenId) view returns(string) 2151 func (_ERC721Burnable *ERC721BurnableSession) TokenURI(tokenId *big.Int) (string, error) { 2152 return _ERC721Burnable.Contract.TokenURI(&_ERC721Burnable.CallOpts, tokenId) 2153 } 2154 2155 // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd. 2156 // 2157 // Solidity: function tokenURI(uint256 tokenId) view returns(string) 2158 func (_ERC721Burnable *ERC721BurnableCallerSession) TokenURI(tokenId *big.Int) (string, error) { 2159 return _ERC721Burnable.Contract.TokenURI(&_ERC721Burnable.CallOpts, tokenId) 2160 } 2161 2162 // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. 2163 // 2164 // Solidity: function totalSupply() view returns(uint256) 2165 func (_ERC721Burnable *ERC721BurnableCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { 2166 var out []interface{} 2167 err := _ERC721Burnable.contract.Call(opts, &out, "totalSupply") 2168 2169 if err != nil { 2170 return *new(*big.Int), err 2171 } 2172 2173 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 2174 2175 return out0, err 2176 2177 } 2178 2179 // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. 2180 // 2181 // Solidity: function totalSupply() view returns(uint256) 2182 func (_ERC721Burnable *ERC721BurnableSession) TotalSupply() (*big.Int, error) { 2183 return _ERC721Burnable.Contract.TotalSupply(&_ERC721Burnable.CallOpts) 2184 } 2185 2186 // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. 2187 // 2188 // Solidity: function totalSupply() view returns(uint256) 2189 func (_ERC721Burnable *ERC721BurnableCallerSession) TotalSupply() (*big.Int, error) { 2190 return _ERC721Burnable.Contract.TotalSupply(&_ERC721Burnable.CallOpts) 2191 } 2192 2193 // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. 2194 // 2195 // Solidity: function approve(address to, uint256 tokenId) returns() 2196 func (_ERC721Burnable *ERC721BurnableTransactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 2197 return _ERC721Burnable.contract.Transact(opts, "approve", to, tokenId) 2198 } 2199 2200 // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. 2201 // 2202 // Solidity: function approve(address to, uint256 tokenId) returns() 2203 func (_ERC721Burnable *ERC721BurnableSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) { 2204 return _ERC721Burnable.Contract.Approve(&_ERC721Burnable.TransactOpts, to, tokenId) 2205 } 2206 2207 // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. 2208 // 2209 // Solidity: function approve(address to, uint256 tokenId) returns() 2210 func (_ERC721Burnable *ERC721BurnableTransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) { 2211 return _ERC721Burnable.Contract.Approve(&_ERC721Burnable.TransactOpts, to, tokenId) 2212 } 2213 2214 // Burn is a paid mutator transaction binding the contract method 0x42966c68. 2215 // 2216 // Solidity: function burn(uint256 tokenId) returns() 2217 func (_ERC721Burnable *ERC721BurnableTransactor) Burn(opts *bind.TransactOpts, tokenId *big.Int) (*types.Transaction, error) { 2218 return _ERC721Burnable.contract.Transact(opts, "burn", tokenId) 2219 } 2220 2221 // Burn is a paid mutator transaction binding the contract method 0x42966c68. 2222 // 2223 // Solidity: function burn(uint256 tokenId) returns() 2224 func (_ERC721Burnable *ERC721BurnableSession) Burn(tokenId *big.Int) (*types.Transaction, error) { 2225 return _ERC721Burnable.Contract.Burn(&_ERC721Burnable.TransactOpts, tokenId) 2226 } 2227 2228 // Burn is a paid mutator transaction binding the contract method 0x42966c68. 2229 // 2230 // Solidity: function burn(uint256 tokenId) returns() 2231 func (_ERC721Burnable *ERC721BurnableTransactorSession) Burn(tokenId *big.Int) (*types.Transaction, error) { 2232 return _ERC721Burnable.Contract.Burn(&_ERC721Burnable.TransactOpts, tokenId) 2233 } 2234 2235 // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. 2236 // 2237 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns() 2238 func (_ERC721Burnable *ERC721BurnableTransactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 2239 return _ERC721Burnable.contract.Transact(opts, "safeTransferFrom", from, to, tokenId) 2240 } 2241 2242 // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. 2243 // 2244 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns() 2245 func (_ERC721Burnable *ERC721BurnableSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 2246 return _ERC721Burnable.Contract.SafeTransferFrom(&_ERC721Burnable.TransactOpts, from, to, tokenId) 2247 } 2248 2249 // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. 2250 // 2251 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns() 2252 func (_ERC721Burnable *ERC721BurnableTransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 2253 return _ERC721Burnable.Contract.SafeTransferFrom(&_ERC721Burnable.TransactOpts, from, to, tokenId) 2254 } 2255 2256 // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. 2257 // 2258 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns() 2259 func (_ERC721Burnable *ERC721BurnableTransactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) { 2260 return _ERC721Burnable.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, _data) 2261 } 2262 2263 // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. 2264 // 2265 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns() 2266 func (_ERC721Burnable *ERC721BurnableSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) { 2267 return _ERC721Burnable.Contract.SafeTransferFrom0(&_ERC721Burnable.TransactOpts, from, to, tokenId, _data) 2268 } 2269 2270 // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. 2271 // 2272 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns() 2273 func (_ERC721Burnable *ERC721BurnableTransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) { 2274 return _ERC721Burnable.Contract.SafeTransferFrom0(&_ERC721Burnable.TransactOpts, from, to, tokenId, _data) 2275 } 2276 2277 // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. 2278 // 2279 // Solidity: function setApprovalForAll(address operator, bool approved) returns() 2280 func (_ERC721Burnable *ERC721BurnableTransactor) SetApprovalForAll(opts *bind.TransactOpts, operator common.Address, approved bool) (*types.Transaction, error) { 2281 return _ERC721Burnable.contract.Transact(opts, "setApprovalForAll", operator, approved) 2282 } 2283 2284 // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. 2285 // 2286 // Solidity: function setApprovalForAll(address operator, bool approved) returns() 2287 func (_ERC721Burnable *ERC721BurnableSession) SetApprovalForAll(operator common.Address, approved bool) (*types.Transaction, error) { 2288 return _ERC721Burnable.Contract.SetApprovalForAll(&_ERC721Burnable.TransactOpts, operator, approved) 2289 } 2290 2291 // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. 2292 // 2293 // Solidity: function setApprovalForAll(address operator, bool approved) returns() 2294 func (_ERC721Burnable *ERC721BurnableTransactorSession) SetApprovalForAll(operator common.Address, approved bool) (*types.Transaction, error) { 2295 return _ERC721Burnable.Contract.SetApprovalForAll(&_ERC721Burnable.TransactOpts, operator, approved) 2296 } 2297 2298 // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. 2299 // 2300 // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns() 2301 func (_ERC721Burnable *ERC721BurnableTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 2302 return _ERC721Burnable.contract.Transact(opts, "transferFrom", from, to, tokenId) 2303 } 2304 2305 // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. 2306 // 2307 // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns() 2308 func (_ERC721Burnable *ERC721BurnableSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 2309 return _ERC721Burnable.Contract.TransferFrom(&_ERC721Burnable.TransactOpts, from, to, tokenId) 2310 } 2311 2312 // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. 2313 // 2314 // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns() 2315 func (_ERC721Burnable *ERC721BurnableTransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 2316 return _ERC721Burnable.Contract.TransferFrom(&_ERC721Burnable.TransactOpts, from, to, tokenId) 2317 } 2318 2319 // 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. 2320 type ERC721BurnableApprovalIterator struct { 2321 Event *ERC721BurnableApproval // Event containing the contract specifics and raw log 2322 2323 contract *bind.BoundContract // Generic contract to use for unpacking event data 2324 event string // Event name to use for unpacking event data 2325 2326 logs chan types.Log // Log channel receiving the found contract events 2327 sub ethereum.Subscription // Subscription for errors, completion and termination 2328 done bool // Whether the subscription completed delivering logs 2329 fail error // Occurred error to stop iteration 2330 } 2331 2332 // Next advances the iterator to the subsequent event, returning whether there 2333 // are any more events found. In case of a retrieval or parsing error, false is 2334 // returned and Error() can be queried for the exact failure. 2335 func (it *ERC721BurnableApprovalIterator) Next() bool { 2336 // If the iterator failed, stop iterating 2337 if it.fail != nil { 2338 return false 2339 } 2340 // If the iterator completed, deliver directly whatever's available 2341 if it.done { 2342 select { 2343 case log := <-it.logs: 2344 it.Event = new(ERC721BurnableApproval) 2345 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2346 it.fail = err 2347 return false 2348 } 2349 it.Event.Raw = log 2350 return true 2351 2352 default: 2353 return false 2354 } 2355 } 2356 // Iterator still in progress, wait for either a data or an error event 2357 select { 2358 case log := <-it.logs: 2359 it.Event = new(ERC721BurnableApproval) 2360 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2361 it.fail = err 2362 return false 2363 } 2364 it.Event.Raw = log 2365 return true 2366 2367 case err := <-it.sub.Err(): 2368 it.done = true 2369 it.fail = err 2370 return it.Next() 2371 } 2372 } 2373 2374 // Error returns any retrieval or parsing error occurred during filtering. 2375 func (it *ERC721BurnableApprovalIterator) Error() error { 2376 return it.fail 2377 } 2378 2379 // Close terminates the iteration process, releasing any pending underlying 2380 // resources. 2381 func (it *ERC721BurnableApprovalIterator) Close() error { 2382 it.sub.Unsubscribe() 2383 return nil 2384 } 2385 2386 // ERC721BurnableApproval represents a Approval event raised by the ERC721Burnable contract. 2387 type ERC721BurnableApproval struct { 2388 Owner common.Address 2389 Approved common.Address 2390 TokenId *big.Int 2391 Raw types.Log // Blockchain specific contextual infos 2392 } 2393 2394 // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. 2395 // 2396 // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId) 2397 func (_ERC721Burnable *ERC721BurnableFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*ERC721BurnableApprovalIterator, error) { 2398 2399 var ownerRule []interface{} 2400 for _, ownerItem := range owner { 2401 ownerRule = append(ownerRule, ownerItem) 2402 } 2403 var approvedRule []interface{} 2404 for _, approvedItem := range approved { 2405 approvedRule = append(approvedRule, approvedItem) 2406 } 2407 var tokenIdRule []interface{} 2408 for _, tokenIdItem := range tokenId { 2409 tokenIdRule = append(tokenIdRule, tokenIdItem) 2410 } 2411 2412 logs, sub, err := _ERC721Burnable.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule) 2413 if err != nil { 2414 return nil, err 2415 } 2416 return &ERC721BurnableApprovalIterator{contract: _ERC721Burnable.contract, event: "Approval", logs: logs, sub: sub}, nil 2417 } 2418 2419 // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. 2420 // 2421 // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId) 2422 func (_ERC721Burnable *ERC721BurnableFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC721BurnableApproval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) { 2423 2424 var ownerRule []interface{} 2425 for _, ownerItem := range owner { 2426 ownerRule = append(ownerRule, ownerItem) 2427 } 2428 var approvedRule []interface{} 2429 for _, approvedItem := range approved { 2430 approvedRule = append(approvedRule, approvedItem) 2431 } 2432 var tokenIdRule []interface{} 2433 for _, tokenIdItem := range tokenId { 2434 tokenIdRule = append(tokenIdRule, tokenIdItem) 2435 } 2436 2437 logs, sub, err := _ERC721Burnable.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule) 2438 if err != nil { 2439 return nil, err 2440 } 2441 return event.NewSubscription(func(quit <-chan struct{}) error { 2442 defer sub.Unsubscribe() 2443 for { 2444 select { 2445 case log := <-logs: 2446 // New log arrived, parse the event and forward to the user 2447 event := new(ERC721BurnableApproval) 2448 if err := _ERC721Burnable.contract.UnpackLog(event, "Approval", log); err != nil { 2449 return err 2450 } 2451 event.Raw = log 2452 2453 select { 2454 case sink <- event: 2455 case err := <-sub.Err(): 2456 return err 2457 case <-quit: 2458 return nil 2459 } 2460 case err := <-sub.Err(): 2461 return err 2462 case <-quit: 2463 return nil 2464 } 2465 } 2466 }), nil 2467 } 2468 2469 // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. 2470 // 2471 // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId) 2472 func (_ERC721Burnable *ERC721BurnableFilterer) ParseApproval(log types.Log) (*ERC721BurnableApproval, error) { 2473 event := new(ERC721BurnableApproval) 2474 if err := _ERC721Burnable.contract.UnpackLog(event, "Approval", log); err != nil { 2475 return nil, err 2476 } 2477 event.Raw = log 2478 return event, nil 2479 } 2480 2481 // 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. 2482 type ERC721BurnableApprovalForAllIterator struct { 2483 Event *ERC721BurnableApprovalForAll // Event containing the contract specifics and raw log 2484 2485 contract *bind.BoundContract // Generic contract to use for unpacking event data 2486 event string // Event name to use for unpacking event data 2487 2488 logs chan types.Log // Log channel receiving the found contract events 2489 sub ethereum.Subscription // Subscription for errors, completion and termination 2490 done bool // Whether the subscription completed delivering logs 2491 fail error // Occurred error to stop iteration 2492 } 2493 2494 // Next advances the iterator to the subsequent event, returning whether there 2495 // are any more events found. In case of a retrieval or parsing error, false is 2496 // returned and Error() can be queried for the exact failure. 2497 func (it *ERC721BurnableApprovalForAllIterator) Next() bool { 2498 // If the iterator failed, stop iterating 2499 if it.fail != nil { 2500 return false 2501 } 2502 // If the iterator completed, deliver directly whatever's available 2503 if it.done { 2504 select { 2505 case log := <-it.logs: 2506 it.Event = new(ERC721BurnableApprovalForAll) 2507 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2508 it.fail = err 2509 return false 2510 } 2511 it.Event.Raw = log 2512 return true 2513 2514 default: 2515 return false 2516 } 2517 } 2518 // Iterator still in progress, wait for either a data or an error event 2519 select { 2520 case log := <-it.logs: 2521 it.Event = new(ERC721BurnableApprovalForAll) 2522 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2523 it.fail = err 2524 return false 2525 } 2526 it.Event.Raw = log 2527 return true 2528 2529 case err := <-it.sub.Err(): 2530 it.done = true 2531 it.fail = err 2532 return it.Next() 2533 } 2534 } 2535 2536 // Error returns any retrieval or parsing error occurred during filtering. 2537 func (it *ERC721BurnableApprovalForAllIterator) Error() error { 2538 return it.fail 2539 } 2540 2541 // Close terminates the iteration process, releasing any pending underlying 2542 // resources. 2543 func (it *ERC721BurnableApprovalForAllIterator) Close() error { 2544 it.sub.Unsubscribe() 2545 return nil 2546 } 2547 2548 // ERC721BurnableApprovalForAll represents a ApprovalForAll event raised by the ERC721Burnable contract. 2549 type ERC721BurnableApprovalForAll struct { 2550 Owner common.Address 2551 Operator common.Address 2552 Approved bool 2553 Raw types.Log // Blockchain specific contextual infos 2554 } 2555 2556 // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. 2557 // 2558 // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved) 2559 func (_ERC721Burnable *ERC721BurnableFilterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*ERC721BurnableApprovalForAllIterator, error) { 2560 2561 var ownerRule []interface{} 2562 for _, ownerItem := range owner { 2563 ownerRule = append(ownerRule, ownerItem) 2564 } 2565 var operatorRule []interface{} 2566 for _, operatorItem := range operator { 2567 operatorRule = append(operatorRule, operatorItem) 2568 } 2569 2570 logs, sub, err := _ERC721Burnable.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule) 2571 if err != nil { 2572 return nil, err 2573 } 2574 return &ERC721BurnableApprovalForAllIterator{contract: _ERC721Burnable.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil 2575 } 2576 2577 // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. 2578 // 2579 // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved) 2580 func (_ERC721Burnable *ERC721BurnableFilterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *ERC721BurnableApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) { 2581 2582 var ownerRule []interface{} 2583 for _, ownerItem := range owner { 2584 ownerRule = append(ownerRule, ownerItem) 2585 } 2586 var operatorRule []interface{} 2587 for _, operatorItem := range operator { 2588 operatorRule = append(operatorRule, operatorItem) 2589 } 2590 2591 logs, sub, err := _ERC721Burnable.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule) 2592 if err != nil { 2593 return nil, err 2594 } 2595 return event.NewSubscription(func(quit <-chan struct{}) error { 2596 defer sub.Unsubscribe() 2597 for { 2598 select { 2599 case log := <-logs: 2600 // New log arrived, parse the event and forward to the user 2601 event := new(ERC721BurnableApprovalForAll) 2602 if err := _ERC721Burnable.contract.UnpackLog(event, "ApprovalForAll", log); err != nil { 2603 return err 2604 } 2605 event.Raw = log 2606 2607 select { 2608 case sink <- event: 2609 case err := <-sub.Err(): 2610 return err 2611 case <-quit: 2612 return nil 2613 } 2614 case err := <-sub.Err(): 2615 return err 2616 case <-quit: 2617 return nil 2618 } 2619 } 2620 }), nil 2621 } 2622 2623 // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. 2624 // 2625 // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved) 2626 func (_ERC721Burnable *ERC721BurnableFilterer) ParseApprovalForAll(log types.Log) (*ERC721BurnableApprovalForAll, error) { 2627 event := new(ERC721BurnableApprovalForAll) 2628 if err := _ERC721Burnable.contract.UnpackLog(event, "ApprovalForAll", log); err != nil { 2629 return nil, err 2630 } 2631 event.Raw = log 2632 return event, nil 2633 } 2634 2635 // 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. 2636 type ERC721BurnableTransferIterator struct { 2637 Event *ERC721BurnableTransfer // Event containing the contract specifics and raw log 2638 2639 contract *bind.BoundContract // Generic contract to use for unpacking event data 2640 event string // Event name to use for unpacking event data 2641 2642 logs chan types.Log // Log channel receiving the found contract events 2643 sub ethereum.Subscription // Subscription for errors, completion and termination 2644 done bool // Whether the subscription completed delivering logs 2645 fail error // Occurred error to stop iteration 2646 } 2647 2648 // Next advances the iterator to the subsequent event, returning whether there 2649 // are any more events found. In case of a retrieval or parsing error, false is 2650 // returned and Error() can be queried for the exact failure. 2651 func (it *ERC721BurnableTransferIterator) Next() bool { 2652 // If the iterator failed, stop iterating 2653 if it.fail != nil { 2654 return false 2655 } 2656 // If the iterator completed, deliver directly whatever's available 2657 if it.done { 2658 select { 2659 case log := <-it.logs: 2660 it.Event = new(ERC721BurnableTransfer) 2661 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2662 it.fail = err 2663 return false 2664 } 2665 it.Event.Raw = log 2666 return true 2667 2668 default: 2669 return false 2670 } 2671 } 2672 // Iterator still in progress, wait for either a data or an error event 2673 select { 2674 case log := <-it.logs: 2675 it.Event = new(ERC721BurnableTransfer) 2676 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2677 it.fail = err 2678 return false 2679 } 2680 it.Event.Raw = log 2681 return true 2682 2683 case err := <-it.sub.Err(): 2684 it.done = true 2685 it.fail = err 2686 return it.Next() 2687 } 2688 } 2689 2690 // Error returns any retrieval or parsing error occurred during filtering. 2691 func (it *ERC721BurnableTransferIterator) Error() error { 2692 return it.fail 2693 } 2694 2695 // Close terminates the iteration process, releasing any pending underlying 2696 // resources. 2697 func (it *ERC721BurnableTransferIterator) Close() error { 2698 it.sub.Unsubscribe() 2699 return nil 2700 } 2701 2702 // ERC721BurnableTransfer represents a Transfer event raised by the ERC721Burnable contract. 2703 type ERC721BurnableTransfer struct { 2704 From common.Address 2705 To common.Address 2706 TokenId *big.Int 2707 Raw types.Log // Blockchain specific contextual infos 2708 } 2709 2710 // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. 2711 // 2712 // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId) 2713 func (_ERC721Burnable *ERC721BurnableFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*ERC721BurnableTransferIterator, error) { 2714 2715 var fromRule []interface{} 2716 for _, fromItem := range from { 2717 fromRule = append(fromRule, fromItem) 2718 } 2719 var toRule []interface{} 2720 for _, toItem := range to { 2721 toRule = append(toRule, toItem) 2722 } 2723 var tokenIdRule []interface{} 2724 for _, tokenIdItem := range tokenId { 2725 tokenIdRule = append(tokenIdRule, tokenIdItem) 2726 } 2727 2728 logs, sub, err := _ERC721Burnable.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule) 2729 if err != nil { 2730 return nil, err 2731 } 2732 return &ERC721BurnableTransferIterator{contract: _ERC721Burnable.contract, event: "Transfer", logs: logs, sub: sub}, nil 2733 } 2734 2735 // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. 2736 // 2737 // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId) 2738 func (_ERC721Burnable *ERC721BurnableFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC721BurnableTransfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) { 2739 2740 var fromRule []interface{} 2741 for _, fromItem := range from { 2742 fromRule = append(fromRule, fromItem) 2743 } 2744 var toRule []interface{} 2745 for _, toItem := range to { 2746 toRule = append(toRule, toItem) 2747 } 2748 var tokenIdRule []interface{} 2749 for _, tokenIdItem := range tokenId { 2750 tokenIdRule = append(tokenIdRule, tokenIdItem) 2751 } 2752 2753 logs, sub, err := _ERC721Burnable.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule) 2754 if err != nil { 2755 return nil, err 2756 } 2757 return event.NewSubscription(func(quit <-chan struct{}) error { 2758 defer sub.Unsubscribe() 2759 for { 2760 select { 2761 case log := <-logs: 2762 // New log arrived, parse the event and forward to the user 2763 event := new(ERC721BurnableTransfer) 2764 if err := _ERC721Burnable.contract.UnpackLog(event, "Transfer", log); err != nil { 2765 return err 2766 } 2767 event.Raw = log 2768 2769 select { 2770 case sink <- event: 2771 case err := <-sub.Err(): 2772 return err 2773 case <-quit: 2774 return nil 2775 } 2776 case err := <-sub.Err(): 2777 return err 2778 case <-quit: 2779 return nil 2780 } 2781 } 2782 }), nil 2783 } 2784 2785 // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. 2786 // 2787 // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId) 2788 func (_ERC721Burnable *ERC721BurnableFilterer) ParseTransfer(log types.Log) (*ERC721BurnableTransfer, error) { 2789 event := new(ERC721BurnableTransfer) 2790 if err := _ERC721Burnable.contract.UnpackLog(event, "Transfer", log); err != nil { 2791 return nil, err 2792 } 2793 event.Raw = log 2794 return event, nil 2795 } 2796 2797 // EnumerableMapABI is the input ABI used to generate the binding from. 2798 const EnumerableMapABI = "[]" 2799 2800 // EnumerableMapBin is the compiled bytecode used for deploying new contracts. 2801 var EnumerableMapBin = "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207b11f4dc84eac2fe52cf1fe1738f305a1fa97cffe8179c12eb2207c7943ac4c564736f6c63430008030033" 2802 2803 // DeployEnumerableMap deploys a new Ethereum contract, binding an instance of EnumerableMap to it. 2804 func DeployEnumerableMap(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *EnumerableMap, error) { 2805 parsed, err := abi.JSON(strings.NewReader(EnumerableMapABI)) 2806 if err != nil { 2807 return common.Address{}, nil, nil, err 2808 } 2809 2810 address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(EnumerableMapBin), backend) 2811 if err != nil { 2812 return common.Address{}, nil, nil, err 2813 } 2814 return address, tx, &EnumerableMap{EnumerableMapCaller: EnumerableMapCaller{contract: contract}, EnumerableMapTransactor: EnumerableMapTransactor{contract: contract}, EnumerableMapFilterer: EnumerableMapFilterer{contract: contract}}, nil 2815 } 2816 2817 // EnumerableMap is an auto generated Go binding around an Ethereum contract. 2818 type EnumerableMap struct { 2819 EnumerableMapCaller // Read-only binding to the contract 2820 EnumerableMapTransactor // Write-only binding to the contract 2821 EnumerableMapFilterer // Log filterer for contract events 2822 } 2823 2824 // EnumerableMapCaller is an auto generated read-only Go binding around an Ethereum contract. 2825 type EnumerableMapCaller struct { 2826 contract *bind.BoundContract // Generic contract wrapper for the low level calls 2827 } 2828 2829 // EnumerableMapTransactor is an auto generated write-only Go binding around an Ethereum contract. 2830 type EnumerableMapTransactor struct { 2831 contract *bind.BoundContract // Generic contract wrapper for the low level calls 2832 } 2833 2834 // EnumerableMapFilterer is an auto generated log filtering Go binding around an Ethereum contract events. 2835 type EnumerableMapFilterer struct { 2836 contract *bind.BoundContract // Generic contract wrapper for the low level calls 2837 } 2838 2839 // EnumerableMapSession is an auto generated Go binding around an Ethereum contract, 2840 // with pre-set call and transact options. 2841 type EnumerableMapSession struct { 2842 Contract *EnumerableMap // Generic contract binding to set the session for 2843 CallOpts bind.CallOpts // Call options to use throughout this session 2844 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 2845 } 2846 2847 // EnumerableMapCallerSession is an auto generated read-only Go binding around an Ethereum contract, 2848 // with pre-set call options. 2849 type EnumerableMapCallerSession struct { 2850 Contract *EnumerableMapCaller // Generic contract caller binding to set the session for 2851 CallOpts bind.CallOpts // Call options to use throughout this session 2852 } 2853 2854 // EnumerableMapTransactorSession is an auto generated write-only Go binding around an Ethereum contract, 2855 // with pre-set transact options. 2856 type EnumerableMapTransactorSession struct { 2857 Contract *EnumerableMapTransactor // Generic contract transactor binding to set the session for 2858 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 2859 } 2860 2861 // EnumerableMapRaw is an auto generated low-level Go binding around an Ethereum contract. 2862 type EnumerableMapRaw struct { 2863 Contract *EnumerableMap // Generic contract binding to access the raw methods on 2864 } 2865 2866 // EnumerableMapCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. 2867 type EnumerableMapCallerRaw struct { 2868 Contract *EnumerableMapCaller // Generic read-only contract binding to access the raw methods on 2869 } 2870 2871 // EnumerableMapTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. 2872 type EnumerableMapTransactorRaw struct { 2873 Contract *EnumerableMapTransactor // Generic write-only contract binding to access the raw methods on 2874 } 2875 2876 // NewEnumerableMap creates a new instance of EnumerableMap, bound to a specific deployed contract. 2877 func NewEnumerableMap(address common.Address, backend bind.ContractBackend) (*EnumerableMap, error) { 2878 contract, err := bindEnumerableMap(address, backend, backend, backend) 2879 if err != nil { 2880 return nil, err 2881 } 2882 return &EnumerableMap{EnumerableMapCaller: EnumerableMapCaller{contract: contract}, EnumerableMapTransactor: EnumerableMapTransactor{contract: contract}, EnumerableMapFilterer: EnumerableMapFilterer{contract: contract}}, nil 2883 } 2884 2885 // NewEnumerableMapCaller creates a new read-only instance of EnumerableMap, bound to a specific deployed contract. 2886 func NewEnumerableMapCaller(address common.Address, caller bind.ContractCaller) (*EnumerableMapCaller, error) { 2887 contract, err := bindEnumerableMap(address, caller, nil, nil) 2888 if err != nil { 2889 return nil, err 2890 } 2891 return &EnumerableMapCaller{contract: contract}, nil 2892 } 2893 2894 // NewEnumerableMapTransactor creates a new write-only instance of EnumerableMap, bound to a specific deployed contract. 2895 func NewEnumerableMapTransactor(address common.Address, transactor bind.ContractTransactor) (*EnumerableMapTransactor, error) { 2896 contract, err := bindEnumerableMap(address, nil, transactor, nil) 2897 if err != nil { 2898 return nil, err 2899 } 2900 return &EnumerableMapTransactor{contract: contract}, nil 2901 } 2902 2903 // NewEnumerableMapFilterer creates a new log filterer instance of EnumerableMap, bound to a specific deployed contract. 2904 func NewEnumerableMapFilterer(address common.Address, filterer bind.ContractFilterer) (*EnumerableMapFilterer, error) { 2905 contract, err := bindEnumerableMap(address, nil, nil, filterer) 2906 if err != nil { 2907 return nil, err 2908 } 2909 return &EnumerableMapFilterer{contract: contract}, nil 2910 } 2911 2912 // bindEnumerableMap binds a generic wrapper to an already deployed contract. 2913 func bindEnumerableMap(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { 2914 parsed, err := abi.JSON(strings.NewReader(EnumerableMapABI)) 2915 if err != nil { 2916 return nil, err 2917 } 2918 return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil 2919 } 2920 2921 // Call invokes the (constant) contract method with params as input values and 2922 // sets the output to result. The result type might be a single field for simple 2923 // returns, a slice of interfaces for anonymous returns and a struct for named 2924 // returns. 2925 func (_EnumerableMap *EnumerableMapRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 2926 return _EnumerableMap.Contract.EnumerableMapCaller.contract.Call(opts, result, method, params...) 2927 } 2928 2929 // Transfer initiates a plain transaction to move funds to the contract, calling 2930 // its default method if one is available. 2931 func (_EnumerableMap *EnumerableMapRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 2932 return _EnumerableMap.Contract.EnumerableMapTransactor.contract.Transfer(opts) 2933 } 2934 2935 // Transact invokes the (paid) contract method with params as input values. 2936 func (_EnumerableMap *EnumerableMapRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 2937 return _EnumerableMap.Contract.EnumerableMapTransactor.contract.Transact(opts, method, params...) 2938 } 2939 2940 // Call invokes the (constant) contract method with params as input values and 2941 // sets the output to result. The result type might be a single field for simple 2942 // returns, a slice of interfaces for anonymous returns and a struct for named 2943 // returns. 2944 func (_EnumerableMap *EnumerableMapCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 2945 return _EnumerableMap.Contract.contract.Call(opts, result, method, params...) 2946 } 2947 2948 // Transfer initiates a plain transaction to move funds to the contract, calling 2949 // its default method if one is available. 2950 func (_EnumerableMap *EnumerableMapTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 2951 return _EnumerableMap.Contract.contract.Transfer(opts) 2952 } 2953 2954 // Transact invokes the (paid) contract method with params as input values. 2955 func (_EnumerableMap *EnumerableMapTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 2956 return _EnumerableMap.Contract.contract.Transact(opts, method, params...) 2957 } 2958 2959 // EnumerableSetABI is the input ABI used to generate the binding from. 2960 const EnumerableSetABI = "[]" 2961 2962 // EnumerableSetBin is the compiled bytecode used for deploying new contracts. 2963 var EnumerableSetBin = "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f2226a1a8ac0d3ab654f4f8e420b1d4ef8e2de9a349ff88a8854fde0d23f5bca64736f6c63430008030033" 2964 2965 // DeployEnumerableSet deploys a new Ethereum contract, binding an instance of EnumerableSet to it. 2966 func DeployEnumerableSet(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *EnumerableSet, error) { 2967 parsed, err := abi.JSON(strings.NewReader(EnumerableSetABI)) 2968 if err != nil { 2969 return common.Address{}, nil, nil, err 2970 } 2971 2972 address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(EnumerableSetBin), backend) 2973 if err != nil { 2974 return common.Address{}, nil, nil, err 2975 } 2976 return address, tx, &EnumerableSet{EnumerableSetCaller: EnumerableSetCaller{contract: contract}, EnumerableSetTransactor: EnumerableSetTransactor{contract: contract}, EnumerableSetFilterer: EnumerableSetFilterer{contract: contract}}, nil 2977 } 2978 2979 // EnumerableSet is an auto generated Go binding around an Ethereum contract. 2980 type EnumerableSet struct { 2981 EnumerableSetCaller // Read-only binding to the contract 2982 EnumerableSetTransactor // Write-only binding to the contract 2983 EnumerableSetFilterer // Log filterer for contract events 2984 } 2985 2986 // EnumerableSetCaller is an auto generated read-only Go binding around an Ethereum contract. 2987 type EnumerableSetCaller struct { 2988 contract *bind.BoundContract // Generic contract wrapper for the low level calls 2989 } 2990 2991 // EnumerableSetTransactor is an auto generated write-only Go binding around an Ethereum contract. 2992 type EnumerableSetTransactor struct { 2993 contract *bind.BoundContract // Generic contract wrapper for the low level calls 2994 } 2995 2996 // EnumerableSetFilterer is an auto generated log filtering Go binding around an Ethereum contract events. 2997 type EnumerableSetFilterer struct { 2998 contract *bind.BoundContract // Generic contract wrapper for the low level calls 2999 } 3000 3001 // EnumerableSetSession is an auto generated Go binding around an Ethereum contract, 3002 // with pre-set call and transact options. 3003 type EnumerableSetSession struct { 3004 Contract *EnumerableSet // Generic contract binding to set the session for 3005 CallOpts bind.CallOpts // Call options to use throughout this session 3006 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 3007 } 3008 3009 // EnumerableSetCallerSession is an auto generated read-only Go binding around an Ethereum contract, 3010 // with pre-set call options. 3011 type EnumerableSetCallerSession struct { 3012 Contract *EnumerableSetCaller // Generic contract caller binding to set the session for 3013 CallOpts bind.CallOpts // Call options to use throughout this session 3014 } 3015 3016 // EnumerableSetTransactorSession is an auto generated write-only Go binding around an Ethereum contract, 3017 // with pre-set transact options. 3018 type EnumerableSetTransactorSession struct { 3019 Contract *EnumerableSetTransactor // Generic contract transactor binding to set the session for 3020 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 3021 } 3022 3023 // EnumerableSetRaw is an auto generated low-level Go binding around an Ethereum contract. 3024 type EnumerableSetRaw struct { 3025 Contract *EnumerableSet // Generic contract binding to access the raw methods on 3026 } 3027 3028 // EnumerableSetCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. 3029 type EnumerableSetCallerRaw struct { 3030 Contract *EnumerableSetCaller // Generic read-only contract binding to access the raw methods on 3031 } 3032 3033 // EnumerableSetTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. 3034 type EnumerableSetTransactorRaw struct { 3035 Contract *EnumerableSetTransactor // Generic write-only contract binding to access the raw methods on 3036 } 3037 3038 // NewEnumerableSet creates a new instance of EnumerableSet, bound to a specific deployed contract. 3039 func NewEnumerableSet(address common.Address, backend bind.ContractBackend) (*EnumerableSet, error) { 3040 contract, err := bindEnumerableSet(address, backend, backend, backend) 3041 if err != nil { 3042 return nil, err 3043 } 3044 return &EnumerableSet{EnumerableSetCaller: EnumerableSetCaller{contract: contract}, EnumerableSetTransactor: EnumerableSetTransactor{contract: contract}, EnumerableSetFilterer: EnumerableSetFilterer{contract: contract}}, nil 3045 } 3046 3047 // NewEnumerableSetCaller creates a new read-only instance of EnumerableSet, bound to a specific deployed contract. 3048 func NewEnumerableSetCaller(address common.Address, caller bind.ContractCaller) (*EnumerableSetCaller, error) { 3049 contract, err := bindEnumerableSet(address, caller, nil, nil) 3050 if err != nil { 3051 return nil, err 3052 } 3053 return &EnumerableSetCaller{contract: contract}, nil 3054 } 3055 3056 // NewEnumerableSetTransactor creates a new write-only instance of EnumerableSet, bound to a specific deployed contract. 3057 func NewEnumerableSetTransactor(address common.Address, transactor bind.ContractTransactor) (*EnumerableSetTransactor, error) { 3058 contract, err := bindEnumerableSet(address, nil, transactor, nil) 3059 if err != nil { 3060 return nil, err 3061 } 3062 return &EnumerableSetTransactor{contract: contract}, nil 3063 } 3064 3065 // NewEnumerableSetFilterer creates a new log filterer instance of EnumerableSet, bound to a specific deployed contract. 3066 func NewEnumerableSetFilterer(address common.Address, filterer bind.ContractFilterer) (*EnumerableSetFilterer, error) { 3067 contract, err := bindEnumerableSet(address, nil, nil, filterer) 3068 if err != nil { 3069 return nil, err 3070 } 3071 return &EnumerableSetFilterer{contract: contract}, nil 3072 } 3073 3074 // bindEnumerableSet binds a generic wrapper to an already deployed contract. 3075 func bindEnumerableSet(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { 3076 parsed, err := abi.JSON(strings.NewReader(EnumerableSetABI)) 3077 if err != nil { 3078 return nil, err 3079 } 3080 return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil 3081 } 3082 3083 // Call invokes the (constant) contract method with params as input values and 3084 // sets the output to result. The result type might be a single field for simple 3085 // returns, a slice of interfaces for anonymous returns and a struct for named 3086 // returns. 3087 func (_EnumerableSet *EnumerableSetRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 3088 return _EnumerableSet.Contract.EnumerableSetCaller.contract.Call(opts, result, method, params...) 3089 } 3090 3091 // Transfer initiates a plain transaction to move funds to the contract, calling 3092 // its default method if one is available. 3093 func (_EnumerableSet *EnumerableSetRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 3094 return _EnumerableSet.Contract.EnumerableSetTransactor.contract.Transfer(opts) 3095 } 3096 3097 // Transact invokes the (paid) contract method with params as input values. 3098 func (_EnumerableSet *EnumerableSetRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 3099 return _EnumerableSet.Contract.EnumerableSetTransactor.contract.Transact(opts, method, params...) 3100 } 3101 3102 // Call invokes the (constant) contract method with params as input values and 3103 // sets the output to result. The result type might be a single field for simple 3104 // returns, a slice of interfaces for anonymous returns and a struct for named 3105 // returns. 3106 func (_EnumerableSet *EnumerableSetCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 3107 return _EnumerableSet.Contract.contract.Call(opts, result, method, params...) 3108 } 3109 3110 // Transfer initiates a plain transaction to move funds to the contract, calling 3111 // its default method if one is available. 3112 func (_EnumerableSet *EnumerableSetTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 3113 return _EnumerableSet.Contract.contract.Transfer(opts) 3114 } 3115 3116 // Transact invokes the (paid) contract method with params as input values. 3117 func (_EnumerableSet *EnumerableSetTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 3118 return _EnumerableSet.Contract.contract.Transact(opts, method, params...) 3119 } 3120 3121 // FFFNFTABI is the input ABI used to generate the binding from. 3122 const FFFNFTABI = "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"NewRevo\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"content\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"mediaUrl\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"certUrl\",\"type\":\"string[]\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextFFFId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_minterAddress\",\"type\":\"address\"}],\"name\":\"setMinter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_minterAddress\",\"type\":\"address\"}],\"name\":\"setMinterContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tokenInfo\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"content\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"mediaUrl\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" 3123 3124 // FFFNFTFuncSigs maps the 4-byte function signature to its string representation. 3125 var FFFNFTFuncSigs = map[string]string{ 3126 "095ea7b3": "approve(address,uint256)", 3127 "70a08231": "balanceOf(address)", 3128 "6c0360eb": "baseURI()", 3129 "42966c68": "burn(uint256)", 3130 "081812fc": "getApproved(uint256)", 3131 "e985e9c5": "isApprovedForAll(address,address)", 3132 "51f9907f": "mint(address,string,string,string,string[])", 3133 "06fdde03": "name()", 3134 "302b6392": "nextFFFId()", 3135 "8da5cb5b": "owner()", 3136 "6352211e": "ownerOf(uint256)", 3137 "715018a6": "renounceOwnership()", 3138 "42842e0e": "safeTransferFrom(address,address,uint256)", 3139 "b88d4fde": "safeTransferFrom(address,address,uint256,bytes)", 3140 "a22cb465": "setApprovalForAll(address,bool)", 3141 "fca3b5aa": "setMinter(address)", 3142 "38478ae7": "setMinterContract(address)", 3143 "01ffc9a7": "supportsInterface(bytes4)", 3144 "95d89b41": "symbol()", 3145 "4f6ccce7": "tokenByIndex(uint256)", 3146 "cc33c875": "tokenInfo(uint256)", 3147 "2f745c59": "tokenOfOwnerByIndex(address,uint256)", 3148 "c87b56dd": "tokenURI(uint256)", 3149 "18160ddd": "totalSupply()", 3150 "23b872dd": "transferFrom(address,address,uint256)", 3151 "f2fde38b": "transferOwnership(address)", 3152 } 3153 3154 // FFFNFTBin is the compiled bytecode used for deploying new contracts. 3155 var FFFNFTBin = "0x60806040523480156200001157600080fd5b506040518060400160405280600681526020016511919193919560d21b8152506040518060400160405280600681526020016511919193919560d21b815250620000686301ffc9a760e01b6200012b60201b60201c565b81516200007d9060069060208501906200028a565b508051620000939060079060208401906200028a565b50620000a66380ac58cd60e01b6200012b565b620000b8635b5e139f60e01b6200012b565b620000ca63780e9d6360e01b6200012b565b5050600a80546001600160a01b0319163390811790915560405181906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506200011a30620001b0565b62000125306200021d565b6200036d565b6001600160e01b031980821614156200018b5760405162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e746572666163652069640000000060448201526064015b60405180910390fd5b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b600a546001600160a01b03163314620001fb5760405162461bcd60e51b8152602060048201819052602482015260008051602062002691833981519152604482015260640162000182565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b600a546001600160a01b03163314620002685760405162461bcd60e51b8152602060048201819052602482015260008051602062002691833981519152604482015260640162000182565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b828054620002989062000330565b90600052602060002090601f016020900481019282620002bc576000855562000307565b82601f10620002d757805160ff191683800117855562000307565b8280016001018555821562000307579182015b8281111562000307578251825591602001919060010190620002ea565b506200031592915062000319565b5090565b5b808211156200031557600081556001016200031a565b600181811c908216806200034557607f821691505b602082108114156200036757634e487b7160e01b600052602260045260246000fd5b50919050565b612314806200037d6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80636352211e116100de578063a22cb46511610097578063cc33c87511610071578063cc33c8751461033c578063e985e9c514610360578063f2fde38b1461039c578063fca3b5aa146103af5761018e565b8063a22cb46514610303578063b88d4fde14610316578063c87b56dd146103295761018e565b80636352211e146102b45780636c0360eb146102c757806370a08231146102cf578063715018a6146102e25780638da5cb5b146102ea57806395d89b41146102fb5761018e565b80632f745c591161014b57806342842e0e1161012557806342842e0e1461026857806342966c681461027b5780634f6ccce71461028e57806351f9907f146102a15761018e565b80632f745c5914610239578063302b63921461024c57806338478ae7146102555761018e565b806301ffc9a71461019357806306fdde03146101bb578063081812fc146101d0578063095ea7b3146101fb57806318160ddd1461021057806323b872dd14610226575b600080fd5b6101a66101a1366004611f9f565b6103c2565b60405190151581526020015b60405180910390f35b6101c36103e5565b6040516101b29190612077565b6101e36101de366004611fd7565b610477565b6040516001600160a01b0390911681526020016101b2565b61020e610209366004611f76565b610504565b005b61021861061a565b6040519081526020016101b2565b61020e610234366004611d6b565b61062b565b610218610247366004611f76565b61065d565b610218600d5481565b61020e610263366004611d1f565b610688565b61020e610276366004611d6b565b6106d4565b61020e610289366004611fd7565b6106ef565b61021861029c366004611fd7565b610769565b61020e6102af366004611e59565b61077f565b6101e36102c2366004611fd7565b61090c565b6101c3610934565b6102186102dd366004611d1f565b610943565b61020e6109cf565b600a546001600160a01b03166101e3565b6101c3610a43565b61020e610311366004611e1f565b610a52565b61020e610324366004611da6565b610b24565b6101c3610337366004611fd7565b610b5c565b61034f61034a366004611fd7565b610c6c565b6040516101b295949392919061208a565b6101a661036e366004611d39565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61020e6103aa366004611d1f565b610e41565b61020e6103bd366004611d1f565b610f2c565b6001600160e01b0319811660009081526020819052604090205460ff165b919050565b6060600680546103f49061221d565b80601f01602080910402602001604051908101604052809291908181526020018280546104209061221d565b801561046d5780601f106104425761010080835404028352916020019161046d565b820191906000526020600020905b81548152906001019060200180831161045057829003601f168201915b5050505050905090565b600061048282610f78565b6104e85760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b600061050f8261090c565b9050806001600160a01b0316836001600160a01b0316141561057d5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016104df565b336001600160a01b03821614806105995750610599813361036e565b61060b5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000060648201526084016104df565b6106158383610f85565b505050565b60006106266002610ff3565b905090565b610636335b82610ffd565b6106525760405162461bcd60e51b81526004016104df9061216c565b6106158383836110e7565b6001600160a01b038216600090815260016020526040812061067f9083611124565b90505b92915050565b600a546001600160a01b031633146106b25760405162461bcd60e51b81526004016104df90612137565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b61061583838360405180602001604052806000815250610b24565b6106f833610630565b61075d5760405162461bcd60e51b815260206004820152603060248201527f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760448201526f1b995c881b9bdc88185c1c1c9bdd995960821b60648201526084016104df565b61076681611130565b50565b6000806107776002846111ea565b509392505050565b600a546001600160a01b03163314806107a25750600b546001600160a01b031633145b806107b75750600c546001600160a01b031633145b61081a5760405162461bcd60e51b815260206004820152602e60248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526d1037b9103a34329036b4b73a32b960911b60648201526084016104df565b600d805490600061082a83612258565b9091555050600d80546000818152600e602090815260408083206005810194909455600190930180546001600160a01b0319166001600160a01b038b161790559254815220855161087d92870190611b4a565b50600d546000908152600e6020908152604090912084516108a692600290920191860190611b4a565b50600d546000908152600e6020908152604090912083516108cf92600490920191850190611b4a565b50600d546000908152600e6020908152604090912082516108f892600390920191840190611bce565b5061090585600d54611206565b5050505050565b6000610682826040518060600160405280602981526020016122b6602991396002919061131e565b6060600980546103f49061221d565b60006001600160a01b0382166109ae5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b60648201526084016104df565b6001600160a01b038216600090815260016020526040902061068290610ff3565b600a546001600160a01b031633146109f95760405162461bcd60e51b81526004016104df90612137565b600a546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600a80546001600160a01b0319169055565b6060600780546103f49061221d565b6001600160a01b038216331415610aab5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016104df565b3360008181526005602090815260408083206001600160a01b0387168085529252909120805460ff1916841515179055906001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610b18911515815260200190565b60405180910390a35050565b610b2e3383610ffd565b610b4a5760405162461bcd60e51b81526004016104df9061216c565b610b5684848484611335565b50505050565b6060610b6782610f78565b610bcb5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b60648201526084016104df565b6000828152600e602052604090206004018054610be79061221d565b80601f0160208091040260200160405190810160405280929190818152602001828054610c139061221d565b8015610c605780601f10610c3557610100808354040283529160200191610c60565b820191906000526020600020905b815481529060010190602001808311610c4357829003601f168201915b50505050509050919050565b600e60205260009081526040902080548190610c879061221d565b80601f0160208091040260200160405190810160405280929190818152602001828054610cb39061221d565b8015610d005780601f10610cd557610100808354040283529160200191610d00565b820191906000526020600020905b815481529060010190602001808311610ce357829003601f168201915b505050600184015460028501805494956001600160a01b03909216949193509150610d2a9061221d565b80601f0160208091040260200160405190810160405280929190818152602001828054610d569061221d565b8015610da35780601f10610d7857610100808354040283529160200191610da3565b820191906000526020600020905b815481529060010190602001808311610d8657829003601f168201915b505050505090806004018054610db89061221d565b80601f0160208091040260200160405190810160405280929190818152602001828054610de49061221d565b8015610e315780601f10610e0657610100808354040283529160200191610e31565b820191906000526020600020905b815481529060010190602001808311610e1457829003601f168201915b5050505050908060050154905085565b600a546001600160a01b03163314610e6b5760405162461bcd60e51b81526004016104df90612137565b6001600160a01b038116610ed05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104df565b600a546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600a80546001600160a01b0319166001600160a01b0392909216919091179055565b600a546001600160a01b03163314610f565760405162461bcd60e51b81526004016104df90612137565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610682600283611368565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610fba8261090c565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610682825490565b600061100882610f78565b6110695760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016104df565b60006110748361090c565b9050806001600160a01b0316846001600160a01b031614806110af5750836001600160a01b03166110a484610477565b6001600160a01b0316145b806110df57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b6110f2838383611380565b6000908152600e6020526040902060010180546001600160a01b0319166001600160a01b039290921691909117905550565b600061067f8383611501565b600061113b8261090c565b9050611148600083610f85565b600082815260086020526040902080546111619061221d565b15905061117f57600082815260086020526040812061117f91611c27565b6001600160a01b03811660009081526001602052604090206111a19083611595565b506111ad6002836115a1565b5060405182906000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60008080806111f986866115ad565b9097909650945050505050565b6001600160a01b03821661125c5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016104df565b61126581610f78565b156112b25760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016104df565b6001600160a01b03821660009081526001602052604090206112d49082611658565b506112e160028284611664565b5060405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600061132b84848461167a565b90505b9392505050565b6113408484846110e7565b61134c848484846116f1565b610b565760405162461bcd60e51b81526004016104df906120e5565b6000818152600183016020526040812054151561067f565b826001600160a01b03166113938261090c565b6001600160a01b0316146113fb5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b60648201526084016104df565b6001600160a01b03821661145d5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016104df565b611468600082610f85565b6001600160a01b038316600090815260016020526040902061148a9082611595565b506001600160a01b03821660009081526001602052604090206114ad9082611658565b506114ba60028284611664565b5080826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b8154600090821061155f5760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b60648201526084016104df565b82600001828154811061158257634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b600061067f83836117fe565b600061067f838361191b565b81546000908190831061160d5760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e604482015261647360f01b60648201526084016104df565b600084600001848154811061163257634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020190508060000154816001015492509250509250929050565b600061067f8383611a4c565b600061132b84846001600160a01b038516611a9b565b600082815260018401602052604081205482816116aa5760405162461bcd60e51b81526004016104df9190612077565b50846116b7600183612206565b815481106116d557634e487b7160e01b600052603260045260246000fd5b9060005260206000209060020201600101549150509392505050565b60006001600160a01b0384163b156117f357604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061173590339089908890889060040161203a565b602060405180830381600087803b15801561174f57600080fd5b505af192505050801561177f575060408051601f3d908101601f1916820190925261177c91810190611fbb565b60015b6117d9573d8080156117ad576040519150601f19603f3d011682016040523d82523d6000602084013e6117b2565b606091505b5080516117d15760405162461bcd60e51b81526004016104df906120e5565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506110df565b506001949350505050565b60008181526001830160205260408120548015611911576000611822600183612206565b855490915060009061183690600190612206565b9050600086600001828154811061185d57634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508087600001848154811061188e57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001556118a58360016121ee565b600082815260018901602052604090205586548790806118d557634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610682565b6000915050610682565b6000818152600183016020526040812054801561191157600061193f600183612206565b855490915060009061195390600190612206565b9050600086600001828154811061197a57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202019050808760000184815481106119ae57634e487b7160e01b600052603260045260246000fd5b600091825260209091208254600290920201908155600191820154908201556119d89084906121ee565b815460009081526001890160205260409020558654879080611a0a57634e487b7160e01b600052603160045260246000fd5b60008281526020808220600260001990940193840201828155600190810183905592909355888152898201909252604082209190915594506106829350505050565b6000818152600183016020526040812054611a9357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610682565b506000610682565b600082815260018401602052604081205480611b0057505060408051808201825283815260208082018481528654600181810189556000898152848120955160029093029095019182559151908201558654868452818801909252929091205561132e565b8285611b0d600184612206565b81548110611b2b57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010181905550600091505061132e565b828054611b569061221d565b90600052602060002090601f016020900481019282611b785760008555611bbe565b82601f10611b9157805160ff1916838001178555611bbe565b82800160010185558215611bbe579182015b82811115611bbe578251825591602001919060010190611ba3565b50611bca929150611c5f565b5090565b828054828255906000526020600020908101928215611c1b579160200282015b82811115611c1b5782518051611c0b918491602090910190611b4a565b5091602001919060010190611bee565b50611bca929150611c74565b508054611c339061221d565b6000825580601f10611c455750610766565b601f01602090049060005260206000209081019061076691905b5b80821115611bca5760008155600101611c60565b80821115611bca576000611c888282611c27565b50600101611c74565b600067ffffffffffffffff831115611cab57611cab612289565b611cbe601f8401601f19166020016121bd565b9050828152838383011115611cd257600080fd5b828260208301376000602084830101529392505050565b80356001600160a01b03811681146103e057600080fd5b600082601f830112611d10578081fd5b61067f83833560208501611c91565b600060208284031215611d30578081fd5b61067f82611ce9565b60008060408385031215611d4b578081fd5b611d5483611ce9565b9150611d6260208401611ce9565b90509250929050565b600080600060608486031215611d7f578081fd5b611d8884611ce9565b9250611d9660208501611ce9565b9150604084013590509250925092565b60008060008060808587031215611dbb578081fd5b611dc485611ce9565b9350611dd260208601611ce9565b925060408501359150606085013567ffffffffffffffff811115611df4578182fd5b8501601f81018713611e04578182fd5b611e1387823560208401611c91565b91505092959194509250565b60008060408385031215611e31578182fd5b611e3a83611ce9565b915060208301358015158114611e4e578182fd5b809150509250929050565b600080600080600060a08688031215611e70578081fd5b611e7986611ce9565b945060208087013567ffffffffffffffff80821115611e96578384fd5b611ea28a838b01611d00565b96506040890135915080821115611eb7578384fd5b611ec38a838b01611d00565b95506060890135915080821115611ed8578384fd5b611ee48a838b01611d00565b94506080890135915080821115611ef9578384fd5b818901915089601f830112611f0c578384fd5b813581811115611f1e57611f1e612289565b611f2c848260051b016121bd565b8181528481019250838501865b83811015611f6257611f508e888435890101611d00565b85529386019390860190600101611f39565b505080955050505050509295509295909350565b60008060408385031215611f88578182fd5b611f9183611ce9565b946020939093013593505050565b600060208284031215611fb0578081fd5b813561132e8161229f565b600060208284031215611fcc578081fd5b815161132e8161229f565b600060208284031215611fe8578081fd5b5035919050565b60008151808452815b8181101561201457602081850181015186830182015201611ff8565b818111156120255782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061206d90830184611fef565b9695505050505050565b60006020825261067f6020830184611fef565b600060a0825261209d60a0830188611fef565b6001600160a01b038716602084015282810360408401526120be8187611fef565b905082810360608401526120d28186611fef565b9150508260808301529695505050505050565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b604051601f8201601f1916810167ffffffffffffffff811182821017156121e6576121e6612289565b604052919050565b6000821982111561220157612201612273565b500190565b60008282101561221857612218612273565b500390565b600181811c9082168061223157607f821691505b6020821081141561225257634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561226c5761226c612273565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461076657600080fdfe4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656ea2646970667358221220b380a8d2c9d5ec3d6d6e40e97efc3cf8d10473a8f9c29607d5310fb338a7cbb564736f6c634300080300334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572" 3156 3157 // DeployFFFNFT deploys a new Ethereum contract, binding an instance of FFFNFT to it. 3158 func DeployFFFNFT(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *FFFNFT, error) { 3159 parsed, err := abi.JSON(strings.NewReader(FFFNFTABI)) 3160 if err != nil { 3161 return common.Address{}, nil, nil, err 3162 } 3163 3164 address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(FFFNFTBin), backend) 3165 if err != nil { 3166 return common.Address{}, nil, nil, err 3167 } 3168 return address, tx, &FFFNFT{FFFNFTCaller: FFFNFTCaller{contract: contract}, FFFNFTTransactor: FFFNFTTransactor{contract: contract}, FFFNFTFilterer: FFFNFTFilterer{contract: contract}}, nil 3169 } 3170 3171 // FFFNFT is an auto generated Go binding around an Ethereum contract. 3172 type FFFNFT struct { 3173 FFFNFTCaller // Read-only binding to the contract 3174 FFFNFTTransactor // Write-only binding to the contract 3175 FFFNFTFilterer // Log filterer for contract events 3176 } 3177 3178 // FFFNFTCaller is an auto generated read-only Go binding around an Ethereum contract. 3179 type FFFNFTCaller struct { 3180 contract *bind.BoundContract // Generic contract wrapper for the low level calls 3181 } 3182 3183 // FFFNFTTransactor is an auto generated write-only Go binding around an Ethereum contract. 3184 type FFFNFTTransactor struct { 3185 contract *bind.BoundContract // Generic contract wrapper for the low level calls 3186 } 3187 3188 // FFFNFTFilterer is an auto generated log filtering Go binding around an Ethereum contract events. 3189 type FFFNFTFilterer struct { 3190 contract *bind.BoundContract // Generic contract wrapper for the low level calls 3191 } 3192 3193 // FFFNFTSession is an auto generated Go binding around an Ethereum contract, 3194 // with pre-set call and transact options. 3195 type FFFNFTSession struct { 3196 Contract *FFFNFT // Generic contract binding to set the session for 3197 CallOpts bind.CallOpts // Call options to use throughout this session 3198 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 3199 } 3200 3201 // FFFNFTCallerSession is an auto generated read-only Go binding around an Ethereum contract, 3202 // with pre-set call options. 3203 type FFFNFTCallerSession struct { 3204 Contract *FFFNFTCaller // Generic contract caller binding to set the session for 3205 CallOpts bind.CallOpts // Call options to use throughout this session 3206 } 3207 3208 // FFFNFTTransactorSession is an auto generated write-only Go binding around an Ethereum contract, 3209 // with pre-set transact options. 3210 type FFFNFTTransactorSession struct { 3211 Contract *FFFNFTTransactor // Generic contract transactor binding to set the session for 3212 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 3213 } 3214 3215 // FFFNFTRaw is an auto generated low-level Go binding around an Ethereum contract. 3216 type FFFNFTRaw struct { 3217 Contract *FFFNFT // Generic contract binding to access the raw methods on 3218 } 3219 3220 // FFFNFTCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. 3221 type FFFNFTCallerRaw struct { 3222 Contract *FFFNFTCaller // Generic read-only contract binding to access the raw methods on 3223 } 3224 3225 // FFFNFTTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. 3226 type FFFNFTTransactorRaw struct { 3227 Contract *FFFNFTTransactor // Generic write-only contract binding to access the raw methods on 3228 } 3229 3230 // NewFFFNFT creates a new instance of FFFNFT, bound to a specific deployed contract. 3231 func NewFFFNFT(address common.Address, backend bind.ContractBackend) (*FFFNFT, error) { 3232 contract, err := bindFFFNFT(address, backend, backend, backend) 3233 if err != nil { 3234 return nil, err 3235 } 3236 return &FFFNFT{FFFNFTCaller: FFFNFTCaller{contract: contract}, FFFNFTTransactor: FFFNFTTransactor{contract: contract}, FFFNFTFilterer: FFFNFTFilterer{contract: contract}}, nil 3237 } 3238 3239 // NewFFFNFTCaller creates a new read-only instance of FFFNFT, bound to a specific deployed contract. 3240 func NewFFFNFTCaller(address common.Address, caller bind.ContractCaller) (*FFFNFTCaller, error) { 3241 contract, err := bindFFFNFT(address, caller, nil, nil) 3242 if err != nil { 3243 return nil, err 3244 } 3245 return &FFFNFTCaller{contract: contract}, nil 3246 } 3247 3248 // NewFFFNFTTransactor creates a new write-only instance of FFFNFT, bound to a specific deployed contract. 3249 func NewFFFNFTTransactor(address common.Address, transactor bind.ContractTransactor) (*FFFNFTTransactor, error) { 3250 contract, err := bindFFFNFT(address, nil, transactor, nil) 3251 if err != nil { 3252 return nil, err 3253 } 3254 return &FFFNFTTransactor{contract: contract}, nil 3255 } 3256 3257 // NewFFFNFTFilterer creates a new log filterer instance of FFFNFT, bound to a specific deployed contract. 3258 func NewFFFNFTFilterer(address common.Address, filterer bind.ContractFilterer) (*FFFNFTFilterer, error) { 3259 contract, err := bindFFFNFT(address, nil, nil, filterer) 3260 if err != nil { 3261 return nil, err 3262 } 3263 return &FFFNFTFilterer{contract: contract}, nil 3264 } 3265 3266 // bindFFFNFT binds a generic wrapper to an already deployed contract. 3267 func bindFFFNFT(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { 3268 parsed, err := abi.JSON(strings.NewReader(FFFNFTABI)) 3269 if err != nil { 3270 return nil, err 3271 } 3272 return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil 3273 } 3274 3275 // Call invokes the (constant) contract method with params as input values and 3276 // sets the output to result. The result type might be a single field for simple 3277 // returns, a slice of interfaces for anonymous returns and a struct for named 3278 // returns. 3279 func (_FFFNFT *FFFNFTRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 3280 return _FFFNFT.Contract.FFFNFTCaller.contract.Call(opts, result, method, params...) 3281 } 3282 3283 // Transfer initiates a plain transaction to move funds to the contract, calling 3284 // its default method if one is available. 3285 func (_FFFNFT *FFFNFTRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 3286 return _FFFNFT.Contract.FFFNFTTransactor.contract.Transfer(opts) 3287 } 3288 3289 // Transact invokes the (paid) contract method with params as input values. 3290 func (_FFFNFT *FFFNFTRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 3291 return _FFFNFT.Contract.FFFNFTTransactor.contract.Transact(opts, method, params...) 3292 } 3293 3294 // Call invokes the (constant) contract method with params as input values and 3295 // sets the output to result. The result type might be a single field for simple 3296 // returns, a slice of interfaces for anonymous returns and a struct for named 3297 // returns. 3298 func (_FFFNFT *FFFNFTCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 3299 return _FFFNFT.Contract.contract.Call(opts, result, method, params...) 3300 } 3301 3302 // Transfer initiates a plain transaction to move funds to the contract, calling 3303 // its default method if one is available. 3304 func (_FFFNFT *FFFNFTTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 3305 return _FFFNFT.Contract.contract.Transfer(opts) 3306 } 3307 3308 // Transact invokes the (paid) contract method with params as input values. 3309 func (_FFFNFT *FFFNFTTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 3310 return _FFFNFT.Contract.contract.Transact(opts, method, params...) 3311 } 3312 3313 // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. 3314 // 3315 // Solidity: function balanceOf(address owner) view returns(uint256) 3316 func (_FFFNFT *FFFNFTCaller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) { 3317 var out []interface{} 3318 err := _FFFNFT.contract.Call(opts, &out, "balanceOf", owner) 3319 3320 if err != nil { 3321 return *new(*big.Int), err 3322 } 3323 3324 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 3325 3326 return out0, err 3327 3328 } 3329 3330 // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. 3331 // 3332 // Solidity: function balanceOf(address owner) view returns(uint256) 3333 func (_FFFNFT *FFFNFTSession) BalanceOf(owner common.Address) (*big.Int, error) { 3334 return _FFFNFT.Contract.BalanceOf(&_FFFNFT.CallOpts, owner) 3335 } 3336 3337 // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. 3338 // 3339 // Solidity: function balanceOf(address owner) view returns(uint256) 3340 func (_FFFNFT *FFFNFTCallerSession) BalanceOf(owner common.Address) (*big.Int, error) { 3341 return _FFFNFT.Contract.BalanceOf(&_FFFNFT.CallOpts, owner) 3342 } 3343 3344 // BaseURI is a free data retrieval call binding the contract method 0x6c0360eb. 3345 // 3346 // Solidity: function baseURI() view returns(string) 3347 func (_FFFNFT *FFFNFTCaller) BaseURI(opts *bind.CallOpts) (string, error) { 3348 var out []interface{} 3349 err := _FFFNFT.contract.Call(opts, &out, "baseURI") 3350 3351 if err != nil { 3352 return *new(string), err 3353 } 3354 3355 out0 := *abi.ConvertType(out[0], new(string)).(*string) 3356 3357 return out0, err 3358 3359 } 3360 3361 // BaseURI is a free data retrieval call binding the contract method 0x6c0360eb. 3362 // 3363 // Solidity: function baseURI() view returns(string) 3364 func (_FFFNFT *FFFNFTSession) BaseURI() (string, error) { 3365 return _FFFNFT.Contract.BaseURI(&_FFFNFT.CallOpts) 3366 } 3367 3368 // BaseURI is a free data retrieval call binding the contract method 0x6c0360eb. 3369 // 3370 // Solidity: function baseURI() view returns(string) 3371 func (_FFFNFT *FFFNFTCallerSession) BaseURI() (string, error) { 3372 return _FFFNFT.Contract.BaseURI(&_FFFNFT.CallOpts) 3373 } 3374 3375 // GetApproved is a free data retrieval call binding the contract method 0x081812fc. 3376 // 3377 // Solidity: function getApproved(uint256 tokenId) view returns(address) 3378 func (_FFFNFT *FFFNFTCaller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) { 3379 var out []interface{} 3380 err := _FFFNFT.contract.Call(opts, &out, "getApproved", tokenId) 3381 3382 if err != nil { 3383 return *new(common.Address), err 3384 } 3385 3386 out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) 3387 3388 return out0, err 3389 3390 } 3391 3392 // GetApproved is a free data retrieval call binding the contract method 0x081812fc. 3393 // 3394 // Solidity: function getApproved(uint256 tokenId) view returns(address) 3395 func (_FFFNFT *FFFNFTSession) GetApproved(tokenId *big.Int) (common.Address, error) { 3396 return _FFFNFT.Contract.GetApproved(&_FFFNFT.CallOpts, tokenId) 3397 } 3398 3399 // GetApproved is a free data retrieval call binding the contract method 0x081812fc. 3400 // 3401 // Solidity: function getApproved(uint256 tokenId) view returns(address) 3402 func (_FFFNFT *FFFNFTCallerSession) GetApproved(tokenId *big.Int) (common.Address, error) { 3403 return _FFFNFT.Contract.GetApproved(&_FFFNFT.CallOpts, tokenId) 3404 } 3405 3406 // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. 3407 // 3408 // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool) 3409 func (_FFFNFT *FFFNFTCaller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) { 3410 var out []interface{} 3411 err := _FFFNFT.contract.Call(opts, &out, "isApprovedForAll", owner, operator) 3412 3413 if err != nil { 3414 return *new(bool), err 3415 } 3416 3417 out0 := *abi.ConvertType(out[0], new(bool)).(*bool) 3418 3419 return out0, err 3420 3421 } 3422 3423 // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. 3424 // 3425 // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool) 3426 func (_FFFNFT *FFFNFTSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) { 3427 return _FFFNFT.Contract.IsApprovedForAll(&_FFFNFT.CallOpts, owner, operator) 3428 } 3429 3430 // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. 3431 // 3432 // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool) 3433 func (_FFFNFT *FFFNFTCallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) { 3434 return _FFFNFT.Contract.IsApprovedForAll(&_FFFNFT.CallOpts, owner, operator) 3435 } 3436 3437 // Name is a free data retrieval call binding the contract method 0x06fdde03. 3438 // 3439 // Solidity: function name() view returns(string) 3440 func (_FFFNFT *FFFNFTCaller) Name(opts *bind.CallOpts) (string, error) { 3441 var out []interface{} 3442 err := _FFFNFT.contract.Call(opts, &out, "name") 3443 3444 if err != nil { 3445 return *new(string), err 3446 } 3447 3448 out0 := *abi.ConvertType(out[0], new(string)).(*string) 3449 3450 return out0, err 3451 3452 } 3453 3454 // Name is a free data retrieval call binding the contract method 0x06fdde03. 3455 // 3456 // Solidity: function name() view returns(string) 3457 func (_FFFNFT *FFFNFTSession) Name() (string, error) { 3458 return _FFFNFT.Contract.Name(&_FFFNFT.CallOpts) 3459 } 3460 3461 // Name is a free data retrieval call binding the contract method 0x06fdde03. 3462 // 3463 // Solidity: function name() view returns(string) 3464 func (_FFFNFT *FFFNFTCallerSession) Name() (string, error) { 3465 return _FFFNFT.Contract.Name(&_FFFNFT.CallOpts) 3466 } 3467 3468 // NextFFFId is a free data retrieval call binding the contract method 0x302b6392. 3469 // 3470 // Solidity: function nextFFFId() view returns(uint256) 3471 func (_FFFNFT *FFFNFTCaller) NextFFFId(opts *bind.CallOpts) (*big.Int, error) { 3472 var out []interface{} 3473 err := _FFFNFT.contract.Call(opts, &out, "nextFFFId") 3474 3475 if err != nil { 3476 return *new(*big.Int), err 3477 } 3478 3479 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 3480 3481 return out0, err 3482 3483 } 3484 3485 // NextFFFId is a free data retrieval call binding the contract method 0x302b6392. 3486 // 3487 // Solidity: function nextFFFId() view returns(uint256) 3488 func (_FFFNFT *FFFNFTSession) NextFFFId() (*big.Int, error) { 3489 return _FFFNFT.Contract.NextFFFId(&_FFFNFT.CallOpts) 3490 } 3491 3492 // NextFFFId is a free data retrieval call binding the contract method 0x302b6392. 3493 // 3494 // Solidity: function nextFFFId() view returns(uint256) 3495 func (_FFFNFT *FFFNFTCallerSession) NextFFFId() (*big.Int, error) { 3496 return _FFFNFT.Contract.NextFFFId(&_FFFNFT.CallOpts) 3497 } 3498 3499 // Owner is a free data retrieval call binding the contract method 0x8da5cb5b. 3500 // 3501 // Solidity: function owner() view returns(address) 3502 func (_FFFNFT *FFFNFTCaller) Owner(opts *bind.CallOpts) (common.Address, error) { 3503 var out []interface{} 3504 err := _FFFNFT.contract.Call(opts, &out, "owner") 3505 3506 if err != nil { 3507 return *new(common.Address), err 3508 } 3509 3510 out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) 3511 3512 return out0, err 3513 3514 } 3515 3516 // Owner is a free data retrieval call binding the contract method 0x8da5cb5b. 3517 // 3518 // Solidity: function owner() view returns(address) 3519 func (_FFFNFT *FFFNFTSession) Owner() (common.Address, error) { 3520 return _FFFNFT.Contract.Owner(&_FFFNFT.CallOpts) 3521 } 3522 3523 // Owner is a free data retrieval call binding the contract method 0x8da5cb5b. 3524 // 3525 // Solidity: function owner() view returns(address) 3526 func (_FFFNFT *FFFNFTCallerSession) Owner() (common.Address, error) { 3527 return _FFFNFT.Contract.Owner(&_FFFNFT.CallOpts) 3528 } 3529 3530 // OwnerOf is a free data retrieval call binding the contract method 0x6352211e. 3531 // 3532 // Solidity: function ownerOf(uint256 tokenId) view returns(address) 3533 func (_FFFNFT *FFFNFTCaller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) { 3534 var out []interface{} 3535 err := _FFFNFT.contract.Call(opts, &out, "ownerOf", tokenId) 3536 3537 if err != nil { 3538 return *new(common.Address), err 3539 } 3540 3541 out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) 3542 3543 return out0, err 3544 3545 } 3546 3547 // OwnerOf is a free data retrieval call binding the contract method 0x6352211e. 3548 // 3549 // Solidity: function ownerOf(uint256 tokenId) view returns(address) 3550 func (_FFFNFT *FFFNFTSession) OwnerOf(tokenId *big.Int) (common.Address, error) { 3551 return _FFFNFT.Contract.OwnerOf(&_FFFNFT.CallOpts, tokenId) 3552 } 3553 3554 // OwnerOf is a free data retrieval call binding the contract method 0x6352211e. 3555 // 3556 // Solidity: function ownerOf(uint256 tokenId) view returns(address) 3557 func (_FFFNFT *FFFNFTCallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) { 3558 return _FFFNFT.Contract.OwnerOf(&_FFFNFT.CallOpts, tokenId) 3559 } 3560 3561 // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. 3562 // 3563 // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) 3564 func (_FFFNFT *FFFNFTCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { 3565 var out []interface{} 3566 err := _FFFNFT.contract.Call(opts, &out, "supportsInterface", interfaceId) 3567 3568 if err != nil { 3569 return *new(bool), err 3570 } 3571 3572 out0 := *abi.ConvertType(out[0], new(bool)).(*bool) 3573 3574 return out0, err 3575 3576 } 3577 3578 // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. 3579 // 3580 // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) 3581 func (_FFFNFT *FFFNFTSession) SupportsInterface(interfaceId [4]byte) (bool, error) { 3582 return _FFFNFT.Contract.SupportsInterface(&_FFFNFT.CallOpts, interfaceId) 3583 } 3584 3585 // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. 3586 // 3587 // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) 3588 func (_FFFNFT *FFFNFTCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { 3589 return _FFFNFT.Contract.SupportsInterface(&_FFFNFT.CallOpts, interfaceId) 3590 } 3591 3592 // Symbol is a free data retrieval call binding the contract method 0x95d89b41. 3593 // 3594 // Solidity: function symbol() view returns(string) 3595 func (_FFFNFT *FFFNFTCaller) Symbol(opts *bind.CallOpts) (string, error) { 3596 var out []interface{} 3597 err := _FFFNFT.contract.Call(opts, &out, "symbol") 3598 3599 if err != nil { 3600 return *new(string), err 3601 } 3602 3603 out0 := *abi.ConvertType(out[0], new(string)).(*string) 3604 3605 return out0, err 3606 3607 } 3608 3609 // Symbol is a free data retrieval call binding the contract method 0x95d89b41. 3610 // 3611 // Solidity: function symbol() view returns(string) 3612 func (_FFFNFT *FFFNFTSession) Symbol() (string, error) { 3613 return _FFFNFT.Contract.Symbol(&_FFFNFT.CallOpts) 3614 } 3615 3616 // Symbol is a free data retrieval call binding the contract method 0x95d89b41. 3617 // 3618 // Solidity: function symbol() view returns(string) 3619 func (_FFFNFT *FFFNFTCallerSession) Symbol() (string, error) { 3620 return _FFFNFT.Contract.Symbol(&_FFFNFT.CallOpts) 3621 } 3622 3623 // TokenByIndex is a free data retrieval call binding the contract method 0x4f6ccce7. 3624 // 3625 // Solidity: function tokenByIndex(uint256 index) view returns(uint256) 3626 func (_FFFNFT *FFFNFTCaller) TokenByIndex(opts *bind.CallOpts, index *big.Int) (*big.Int, error) { 3627 var out []interface{} 3628 err := _FFFNFT.contract.Call(opts, &out, "tokenByIndex", index) 3629 3630 if err != nil { 3631 return *new(*big.Int), err 3632 } 3633 3634 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 3635 3636 return out0, err 3637 3638 } 3639 3640 // TokenByIndex is a free data retrieval call binding the contract method 0x4f6ccce7. 3641 // 3642 // Solidity: function tokenByIndex(uint256 index) view returns(uint256) 3643 func (_FFFNFT *FFFNFTSession) TokenByIndex(index *big.Int) (*big.Int, error) { 3644 return _FFFNFT.Contract.TokenByIndex(&_FFFNFT.CallOpts, index) 3645 } 3646 3647 // TokenByIndex is a free data retrieval call binding the contract method 0x4f6ccce7. 3648 // 3649 // Solidity: function tokenByIndex(uint256 index) view returns(uint256) 3650 func (_FFFNFT *FFFNFTCallerSession) TokenByIndex(index *big.Int) (*big.Int, error) { 3651 return _FFFNFT.Contract.TokenByIndex(&_FFFNFT.CallOpts, index) 3652 } 3653 3654 // TokenInfo is a free data retrieval call binding the contract method 0xcc33c875. 3655 // 3656 // Solidity: function tokenInfo(uint256 ) view returns(string name, address owner, string content, string mediaUrl, uint256 tokenId) 3657 func (_FFFNFT *FFFNFTCaller) TokenInfo(opts *bind.CallOpts, arg0 *big.Int) (struct { 3658 Name string 3659 Owner common.Address 3660 Content string 3661 MediaUrl string 3662 TokenId *big.Int 3663 }, error) { 3664 var out []interface{} 3665 err := _FFFNFT.contract.Call(opts, &out, "tokenInfo", arg0) 3666 3667 outstruct := new(struct { 3668 Name string 3669 Owner common.Address 3670 Content string 3671 MediaUrl string 3672 TokenId *big.Int 3673 }) 3674 if err != nil { 3675 return *outstruct, err 3676 } 3677 3678 outstruct.Name = *abi.ConvertType(out[0], new(string)).(*string) 3679 outstruct.Owner = *abi.ConvertType(out[1], new(common.Address)).(*common.Address) 3680 outstruct.Content = *abi.ConvertType(out[2], new(string)).(*string) 3681 outstruct.MediaUrl = *abi.ConvertType(out[3], new(string)).(*string) 3682 outstruct.TokenId = *abi.ConvertType(out[4], new(*big.Int)).(**big.Int) 3683 3684 return *outstruct, err 3685 3686 } 3687 3688 // TokenInfo is a free data retrieval call binding the contract method 0xcc33c875. 3689 // 3690 // Solidity: function tokenInfo(uint256 ) view returns(string name, address owner, string content, string mediaUrl, uint256 tokenId) 3691 func (_FFFNFT *FFFNFTSession) TokenInfo(arg0 *big.Int) (struct { 3692 Name string 3693 Owner common.Address 3694 Content string 3695 MediaUrl string 3696 TokenId *big.Int 3697 }, error) { 3698 return _FFFNFT.Contract.TokenInfo(&_FFFNFT.CallOpts, arg0) 3699 } 3700 3701 // TokenInfo is a free data retrieval call binding the contract method 0xcc33c875. 3702 // 3703 // Solidity: function tokenInfo(uint256 ) view returns(string name, address owner, string content, string mediaUrl, uint256 tokenId) 3704 func (_FFFNFT *FFFNFTCallerSession) TokenInfo(arg0 *big.Int) (struct { 3705 Name string 3706 Owner common.Address 3707 Content string 3708 MediaUrl string 3709 TokenId *big.Int 3710 }, error) { 3711 return _FFFNFT.Contract.TokenInfo(&_FFFNFT.CallOpts, arg0) 3712 } 3713 3714 // TokenOfOwnerByIndex is a free data retrieval call binding the contract method 0x2f745c59. 3715 // 3716 // Solidity: function tokenOfOwnerByIndex(address owner, uint256 index) view returns(uint256) 3717 func (_FFFNFT *FFFNFTCaller) TokenOfOwnerByIndex(opts *bind.CallOpts, owner common.Address, index *big.Int) (*big.Int, error) { 3718 var out []interface{} 3719 err := _FFFNFT.contract.Call(opts, &out, "tokenOfOwnerByIndex", owner, index) 3720 3721 if err != nil { 3722 return *new(*big.Int), err 3723 } 3724 3725 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 3726 3727 return out0, err 3728 3729 } 3730 3731 // TokenOfOwnerByIndex is a free data retrieval call binding the contract method 0x2f745c59. 3732 // 3733 // Solidity: function tokenOfOwnerByIndex(address owner, uint256 index) view returns(uint256) 3734 func (_FFFNFT *FFFNFTSession) TokenOfOwnerByIndex(owner common.Address, index *big.Int) (*big.Int, error) { 3735 return _FFFNFT.Contract.TokenOfOwnerByIndex(&_FFFNFT.CallOpts, owner, index) 3736 } 3737 3738 // TokenOfOwnerByIndex is a free data retrieval call binding the contract method 0x2f745c59. 3739 // 3740 // Solidity: function tokenOfOwnerByIndex(address owner, uint256 index) view returns(uint256) 3741 func (_FFFNFT *FFFNFTCallerSession) TokenOfOwnerByIndex(owner common.Address, index *big.Int) (*big.Int, error) { 3742 return _FFFNFT.Contract.TokenOfOwnerByIndex(&_FFFNFT.CallOpts, owner, index) 3743 } 3744 3745 // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd. 3746 // 3747 // Solidity: function tokenURI(uint256 tokenId) view returns(string) 3748 func (_FFFNFT *FFFNFTCaller) TokenURI(opts *bind.CallOpts, tokenId *big.Int) (string, error) { 3749 var out []interface{} 3750 err := _FFFNFT.contract.Call(opts, &out, "tokenURI", tokenId) 3751 3752 if err != nil { 3753 return *new(string), err 3754 } 3755 3756 out0 := *abi.ConvertType(out[0], new(string)).(*string) 3757 3758 return out0, err 3759 3760 } 3761 3762 // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd. 3763 // 3764 // Solidity: function tokenURI(uint256 tokenId) view returns(string) 3765 func (_FFFNFT *FFFNFTSession) TokenURI(tokenId *big.Int) (string, error) { 3766 return _FFFNFT.Contract.TokenURI(&_FFFNFT.CallOpts, tokenId) 3767 } 3768 3769 // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd. 3770 // 3771 // Solidity: function tokenURI(uint256 tokenId) view returns(string) 3772 func (_FFFNFT *FFFNFTCallerSession) TokenURI(tokenId *big.Int) (string, error) { 3773 return _FFFNFT.Contract.TokenURI(&_FFFNFT.CallOpts, tokenId) 3774 } 3775 3776 // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. 3777 // 3778 // Solidity: function totalSupply() view returns(uint256) 3779 func (_FFFNFT *FFFNFTCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { 3780 var out []interface{} 3781 err := _FFFNFT.contract.Call(opts, &out, "totalSupply") 3782 3783 if err != nil { 3784 return *new(*big.Int), err 3785 } 3786 3787 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 3788 3789 return out0, err 3790 3791 } 3792 3793 // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. 3794 // 3795 // Solidity: function totalSupply() view returns(uint256) 3796 func (_FFFNFT *FFFNFTSession) TotalSupply() (*big.Int, error) { 3797 return _FFFNFT.Contract.TotalSupply(&_FFFNFT.CallOpts) 3798 } 3799 3800 // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. 3801 // 3802 // Solidity: function totalSupply() view returns(uint256) 3803 func (_FFFNFT *FFFNFTCallerSession) TotalSupply() (*big.Int, error) { 3804 return _FFFNFT.Contract.TotalSupply(&_FFFNFT.CallOpts) 3805 } 3806 3807 // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. 3808 // 3809 // Solidity: function approve(address to, uint256 tokenId) returns() 3810 func (_FFFNFT *FFFNFTTransactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 3811 return _FFFNFT.contract.Transact(opts, "approve", to, tokenId) 3812 } 3813 3814 // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. 3815 // 3816 // Solidity: function approve(address to, uint256 tokenId) returns() 3817 func (_FFFNFT *FFFNFTSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) { 3818 return _FFFNFT.Contract.Approve(&_FFFNFT.TransactOpts, to, tokenId) 3819 } 3820 3821 // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. 3822 // 3823 // Solidity: function approve(address to, uint256 tokenId) returns() 3824 func (_FFFNFT *FFFNFTTransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) { 3825 return _FFFNFT.Contract.Approve(&_FFFNFT.TransactOpts, to, tokenId) 3826 } 3827 3828 // Burn is a paid mutator transaction binding the contract method 0x42966c68. 3829 // 3830 // Solidity: function burn(uint256 tokenId) returns() 3831 func (_FFFNFT *FFFNFTTransactor) Burn(opts *bind.TransactOpts, tokenId *big.Int) (*types.Transaction, error) { 3832 return _FFFNFT.contract.Transact(opts, "burn", tokenId) 3833 } 3834 3835 // Burn is a paid mutator transaction binding the contract method 0x42966c68. 3836 // 3837 // Solidity: function burn(uint256 tokenId) returns() 3838 func (_FFFNFT *FFFNFTSession) Burn(tokenId *big.Int) (*types.Transaction, error) { 3839 return _FFFNFT.Contract.Burn(&_FFFNFT.TransactOpts, tokenId) 3840 } 3841 3842 // Burn is a paid mutator transaction binding the contract method 0x42966c68. 3843 // 3844 // Solidity: function burn(uint256 tokenId) returns() 3845 func (_FFFNFT *FFFNFTTransactorSession) Burn(tokenId *big.Int) (*types.Transaction, error) { 3846 return _FFFNFT.Contract.Burn(&_FFFNFT.TransactOpts, tokenId) 3847 } 3848 3849 // Mint is a paid mutator transaction binding the contract method 0x51f9907f. 3850 // 3851 // Solidity: function mint(address _to, string name, string content, string mediaUrl, string[] certUrl) returns() 3852 func (_FFFNFT *FFFNFTTransactor) Mint(opts *bind.TransactOpts, _to common.Address, name string, content string, mediaUrl string, certUrl []string) (*types.Transaction, error) { 3853 return _FFFNFT.contract.Transact(opts, "mint", _to, name, content, mediaUrl, certUrl) 3854 } 3855 3856 // Mint is a paid mutator transaction binding the contract method 0x51f9907f. 3857 // 3858 // Solidity: function mint(address _to, string name, string content, string mediaUrl, string[] certUrl) returns() 3859 func (_FFFNFT *FFFNFTSession) Mint(_to common.Address, name string, content string, mediaUrl string, certUrl []string) (*types.Transaction, error) { 3860 return _FFFNFT.Contract.Mint(&_FFFNFT.TransactOpts, _to, name, content, mediaUrl, certUrl) 3861 } 3862 3863 // Mint is a paid mutator transaction binding the contract method 0x51f9907f. 3864 // 3865 // Solidity: function mint(address _to, string name, string content, string mediaUrl, string[] certUrl) returns() 3866 func (_FFFNFT *FFFNFTTransactorSession) Mint(_to common.Address, name string, content string, mediaUrl string, certUrl []string) (*types.Transaction, error) { 3867 return _FFFNFT.Contract.Mint(&_FFFNFT.TransactOpts, _to, name, content, mediaUrl, certUrl) 3868 } 3869 3870 // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. 3871 // 3872 // Solidity: function renounceOwnership() returns() 3873 func (_FFFNFT *FFFNFTTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { 3874 return _FFFNFT.contract.Transact(opts, "renounceOwnership") 3875 } 3876 3877 // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. 3878 // 3879 // Solidity: function renounceOwnership() returns() 3880 func (_FFFNFT *FFFNFTSession) RenounceOwnership() (*types.Transaction, error) { 3881 return _FFFNFT.Contract.RenounceOwnership(&_FFFNFT.TransactOpts) 3882 } 3883 3884 // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. 3885 // 3886 // Solidity: function renounceOwnership() returns() 3887 func (_FFFNFT *FFFNFTTransactorSession) RenounceOwnership() (*types.Transaction, error) { 3888 return _FFFNFT.Contract.RenounceOwnership(&_FFFNFT.TransactOpts) 3889 } 3890 3891 // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. 3892 // 3893 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns() 3894 func (_FFFNFT *FFFNFTTransactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 3895 return _FFFNFT.contract.Transact(opts, "safeTransferFrom", from, to, tokenId) 3896 } 3897 3898 // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. 3899 // 3900 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns() 3901 func (_FFFNFT *FFFNFTSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 3902 return _FFFNFT.Contract.SafeTransferFrom(&_FFFNFT.TransactOpts, from, to, tokenId) 3903 } 3904 3905 // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. 3906 // 3907 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns() 3908 func (_FFFNFT *FFFNFTTransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 3909 return _FFFNFT.Contract.SafeTransferFrom(&_FFFNFT.TransactOpts, from, to, tokenId) 3910 } 3911 3912 // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. 3913 // 3914 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns() 3915 func (_FFFNFT *FFFNFTTransactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) { 3916 return _FFFNFT.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, _data) 3917 } 3918 3919 // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. 3920 // 3921 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns() 3922 func (_FFFNFT *FFFNFTSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) { 3923 return _FFFNFT.Contract.SafeTransferFrom0(&_FFFNFT.TransactOpts, from, to, tokenId, _data) 3924 } 3925 3926 // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. 3927 // 3928 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns() 3929 func (_FFFNFT *FFFNFTTransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) { 3930 return _FFFNFT.Contract.SafeTransferFrom0(&_FFFNFT.TransactOpts, from, to, tokenId, _data) 3931 } 3932 3933 // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. 3934 // 3935 // Solidity: function setApprovalForAll(address operator, bool approved) returns() 3936 func (_FFFNFT *FFFNFTTransactor) SetApprovalForAll(opts *bind.TransactOpts, operator common.Address, approved bool) (*types.Transaction, error) { 3937 return _FFFNFT.contract.Transact(opts, "setApprovalForAll", operator, approved) 3938 } 3939 3940 // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. 3941 // 3942 // Solidity: function setApprovalForAll(address operator, bool approved) returns() 3943 func (_FFFNFT *FFFNFTSession) SetApprovalForAll(operator common.Address, approved bool) (*types.Transaction, error) { 3944 return _FFFNFT.Contract.SetApprovalForAll(&_FFFNFT.TransactOpts, operator, approved) 3945 } 3946 3947 // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. 3948 // 3949 // Solidity: function setApprovalForAll(address operator, bool approved) returns() 3950 func (_FFFNFT *FFFNFTTransactorSession) SetApprovalForAll(operator common.Address, approved bool) (*types.Transaction, error) { 3951 return _FFFNFT.Contract.SetApprovalForAll(&_FFFNFT.TransactOpts, operator, approved) 3952 } 3953 3954 // SetMinter is a paid mutator transaction binding the contract method 0xfca3b5aa. 3955 // 3956 // Solidity: function setMinter(address _minterAddress) returns() 3957 func (_FFFNFT *FFFNFTTransactor) SetMinter(opts *bind.TransactOpts, _minterAddress common.Address) (*types.Transaction, error) { 3958 return _FFFNFT.contract.Transact(opts, "setMinter", _minterAddress) 3959 } 3960 3961 // SetMinter is a paid mutator transaction binding the contract method 0xfca3b5aa. 3962 // 3963 // Solidity: function setMinter(address _minterAddress) returns() 3964 func (_FFFNFT *FFFNFTSession) SetMinter(_minterAddress common.Address) (*types.Transaction, error) { 3965 return _FFFNFT.Contract.SetMinter(&_FFFNFT.TransactOpts, _minterAddress) 3966 } 3967 3968 // SetMinter is a paid mutator transaction binding the contract method 0xfca3b5aa. 3969 // 3970 // Solidity: function setMinter(address _minterAddress) returns() 3971 func (_FFFNFT *FFFNFTTransactorSession) SetMinter(_minterAddress common.Address) (*types.Transaction, error) { 3972 return _FFFNFT.Contract.SetMinter(&_FFFNFT.TransactOpts, _minterAddress) 3973 } 3974 3975 // SetMinterContract is a paid mutator transaction binding the contract method 0x38478ae7. 3976 // 3977 // Solidity: function setMinterContract(address _minterAddress) returns() 3978 func (_FFFNFT *FFFNFTTransactor) SetMinterContract(opts *bind.TransactOpts, _minterAddress common.Address) (*types.Transaction, error) { 3979 return _FFFNFT.contract.Transact(opts, "setMinterContract", _minterAddress) 3980 } 3981 3982 // SetMinterContract is a paid mutator transaction binding the contract method 0x38478ae7. 3983 // 3984 // Solidity: function setMinterContract(address _minterAddress) returns() 3985 func (_FFFNFT *FFFNFTSession) SetMinterContract(_minterAddress common.Address) (*types.Transaction, error) { 3986 return _FFFNFT.Contract.SetMinterContract(&_FFFNFT.TransactOpts, _minterAddress) 3987 } 3988 3989 // SetMinterContract is a paid mutator transaction binding the contract method 0x38478ae7. 3990 // 3991 // Solidity: function setMinterContract(address _minterAddress) returns() 3992 func (_FFFNFT *FFFNFTTransactorSession) SetMinterContract(_minterAddress common.Address) (*types.Transaction, error) { 3993 return _FFFNFT.Contract.SetMinterContract(&_FFFNFT.TransactOpts, _minterAddress) 3994 } 3995 3996 // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. 3997 // 3998 // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns() 3999 func (_FFFNFT *FFFNFTTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 4000 return _FFFNFT.contract.Transact(opts, "transferFrom", from, to, tokenId) 4001 } 4002 4003 // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. 4004 // 4005 // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns() 4006 func (_FFFNFT *FFFNFTSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 4007 return _FFFNFT.Contract.TransferFrom(&_FFFNFT.TransactOpts, from, to, tokenId) 4008 } 4009 4010 // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. 4011 // 4012 // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns() 4013 func (_FFFNFT *FFFNFTTransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 4014 return _FFFNFT.Contract.TransferFrom(&_FFFNFT.TransactOpts, from, to, tokenId) 4015 } 4016 4017 // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. 4018 // 4019 // Solidity: function transferOwnership(address newOwner) returns() 4020 func (_FFFNFT *FFFNFTTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { 4021 return _FFFNFT.contract.Transact(opts, "transferOwnership", newOwner) 4022 } 4023 4024 // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. 4025 // 4026 // Solidity: function transferOwnership(address newOwner) returns() 4027 func (_FFFNFT *FFFNFTSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { 4028 return _FFFNFT.Contract.TransferOwnership(&_FFFNFT.TransactOpts, newOwner) 4029 } 4030 4031 // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. 4032 // 4033 // Solidity: function transferOwnership(address newOwner) returns() 4034 func (_FFFNFT *FFFNFTTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { 4035 return _FFFNFT.Contract.TransferOwnership(&_FFFNFT.TransactOpts, newOwner) 4036 } 4037 4038 // FFFNFTApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the FFFNFT contract. 4039 type FFFNFTApprovalIterator struct { 4040 Event *FFFNFTApproval // Event containing the contract specifics and raw log 4041 4042 contract *bind.BoundContract // Generic contract to use for unpacking event data 4043 event string // Event name to use for unpacking event data 4044 4045 logs chan types.Log // Log channel receiving the found contract events 4046 sub ethereum.Subscription // Subscription for errors, completion and termination 4047 done bool // Whether the subscription completed delivering logs 4048 fail error // Occurred error to stop iteration 4049 } 4050 4051 // Next advances the iterator to the subsequent event, returning whether there 4052 // are any more events found. In case of a retrieval or parsing error, false is 4053 // returned and Error() can be queried for the exact failure. 4054 func (it *FFFNFTApprovalIterator) Next() bool { 4055 // If the iterator failed, stop iterating 4056 if it.fail != nil { 4057 return false 4058 } 4059 // If the iterator completed, deliver directly whatever's available 4060 if it.done { 4061 select { 4062 case log := <-it.logs: 4063 it.Event = new(FFFNFTApproval) 4064 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 4065 it.fail = err 4066 return false 4067 } 4068 it.Event.Raw = log 4069 return true 4070 4071 default: 4072 return false 4073 } 4074 } 4075 // Iterator still in progress, wait for either a data or an error event 4076 select { 4077 case log := <-it.logs: 4078 it.Event = new(FFFNFTApproval) 4079 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 4080 it.fail = err 4081 return false 4082 } 4083 it.Event.Raw = log 4084 return true 4085 4086 case err := <-it.sub.Err(): 4087 it.done = true 4088 it.fail = err 4089 return it.Next() 4090 } 4091 } 4092 4093 // Error returns any retrieval or parsing error occurred during filtering. 4094 func (it *FFFNFTApprovalIterator) Error() error { 4095 return it.fail 4096 } 4097 4098 // Close terminates the iteration process, releasing any pending underlying 4099 // resources. 4100 func (it *FFFNFTApprovalIterator) Close() error { 4101 it.sub.Unsubscribe() 4102 return nil 4103 } 4104 4105 // FFFNFTApproval represents a Approval event raised by the FFFNFT contract. 4106 type FFFNFTApproval struct { 4107 Owner common.Address 4108 Approved common.Address 4109 TokenId *big.Int 4110 Raw types.Log // Blockchain specific contextual infos 4111 } 4112 4113 // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. 4114 // 4115 // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId) 4116 func (_FFFNFT *FFFNFTFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*FFFNFTApprovalIterator, error) { 4117 4118 var ownerRule []interface{} 4119 for _, ownerItem := range owner { 4120 ownerRule = append(ownerRule, ownerItem) 4121 } 4122 var approvedRule []interface{} 4123 for _, approvedItem := range approved { 4124 approvedRule = append(approvedRule, approvedItem) 4125 } 4126 var tokenIdRule []interface{} 4127 for _, tokenIdItem := range tokenId { 4128 tokenIdRule = append(tokenIdRule, tokenIdItem) 4129 } 4130 4131 logs, sub, err := _FFFNFT.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule) 4132 if err != nil { 4133 return nil, err 4134 } 4135 return &FFFNFTApprovalIterator{contract: _FFFNFT.contract, event: "Approval", logs: logs, sub: sub}, nil 4136 } 4137 4138 // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. 4139 // 4140 // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId) 4141 func (_FFFNFT *FFFNFTFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *FFFNFTApproval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) { 4142 4143 var ownerRule []interface{} 4144 for _, ownerItem := range owner { 4145 ownerRule = append(ownerRule, ownerItem) 4146 } 4147 var approvedRule []interface{} 4148 for _, approvedItem := range approved { 4149 approvedRule = append(approvedRule, approvedItem) 4150 } 4151 var tokenIdRule []interface{} 4152 for _, tokenIdItem := range tokenId { 4153 tokenIdRule = append(tokenIdRule, tokenIdItem) 4154 } 4155 4156 logs, sub, err := _FFFNFT.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule) 4157 if err != nil { 4158 return nil, err 4159 } 4160 return event.NewSubscription(func(quit <-chan struct{}) error { 4161 defer sub.Unsubscribe() 4162 for { 4163 select { 4164 case log := <-logs: 4165 // New log arrived, parse the event and forward to the user 4166 event := new(FFFNFTApproval) 4167 if err := _FFFNFT.contract.UnpackLog(event, "Approval", log); err != nil { 4168 return err 4169 } 4170 event.Raw = log 4171 4172 select { 4173 case sink <- event: 4174 case err := <-sub.Err(): 4175 return err 4176 case <-quit: 4177 return nil 4178 } 4179 case err := <-sub.Err(): 4180 return err 4181 case <-quit: 4182 return nil 4183 } 4184 } 4185 }), nil 4186 } 4187 4188 // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. 4189 // 4190 // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId) 4191 func (_FFFNFT *FFFNFTFilterer) ParseApproval(log types.Log) (*FFFNFTApproval, error) { 4192 event := new(FFFNFTApproval) 4193 if err := _FFFNFT.contract.UnpackLog(event, "Approval", log); err != nil { 4194 return nil, err 4195 } 4196 event.Raw = log 4197 return event, nil 4198 } 4199 4200 // FFFNFTApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the FFFNFT contract. 4201 type FFFNFTApprovalForAllIterator struct { 4202 Event *FFFNFTApprovalForAll // Event containing the contract specifics and raw log 4203 4204 contract *bind.BoundContract // Generic contract to use for unpacking event data 4205 event string // Event name to use for unpacking event data 4206 4207 logs chan types.Log // Log channel receiving the found contract events 4208 sub ethereum.Subscription // Subscription for errors, completion and termination 4209 done bool // Whether the subscription completed delivering logs 4210 fail error // Occurred error to stop iteration 4211 } 4212 4213 // Next advances the iterator to the subsequent event, returning whether there 4214 // are any more events found. In case of a retrieval or parsing error, false is 4215 // returned and Error() can be queried for the exact failure. 4216 func (it *FFFNFTApprovalForAllIterator) Next() bool { 4217 // If the iterator failed, stop iterating 4218 if it.fail != nil { 4219 return false 4220 } 4221 // If the iterator completed, deliver directly whatever's available 4222 if it.done { 4223 select { 4224 case log := <-it.logs: 4225 it.Event = new(FFFNFTApprovalForAll) 4226 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 4227 it.fail = err 4228 return false 4229 } 4230 it.Event.Raw = log 4231 return true 4232 4233 default: 4234 return false 4235 } 4236 } 4237 // Iterator still in progress, wait for either a data or an error event 4238 select { 4239 case log := <-it.logs: 4240 it.Event = new(FFFNFTApprovalForAll) 4241 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 4242 it.fail = err 4243 return false 4244 } 4245 it.Event.Raw = log 4246 return true 4247 4248 case err := <-it.sub.Err(): 4249 it.done = true 4250 it.fail = err 4251 return it.Next() 4252 } 4253 } 4254 4255 // Error returns any retrieval or parsing error occurred during filtering. 4256 func (it *FFFNFTApprovalForAllIterator) Error() error { 4257 return it.fail 4258 } 4259 4260 // Close terminates the iteration process, releasing any pending underlying 4261 // resources. 4262 func (it *FFFNFTApprovalForAllIterator) Close() error { 4263 it.sub.Unsubscribe() 4264 return nil 4265 } 4266 4267 // FFFNFTApprovalForAll represents a ApprovalForAll event raised by the FFFNFT contract. 4268 type FFFNFTApprovalForAll struct { 4269 Owner common.Address 4270 Operator common.Address 4271 Approved bool 4272 Raw types.Log // Blockchain specific contextual infos 4273 } 4274 4275 // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. 4276 // 4277 // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved) 4278 func (_FFFNFT *FFFNFTFilterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*FFFNFTApprovalForAllIterator, error) { 4279 4280 var ownerRule []interface{} 4281 for _, ownerItem := range owner { 4282 ownerRule = append(ownerRule, ownerItem) 4283 } 4284 var operatorRule []interface{} 4285 for _, operatorItem := range operator { 4286 operatorRule = append(operatorRule, operatorItem) 4287 } 4288 4289 logs, sub, err := _FFFNFT.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule) 4290 if err != nil { 4291 return nil, err 4292 } 4293 return &FFFNFTApprovalForAllIterator{contract: _FFFNFT.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil 4294 } 4295 4296 // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. 4297 // 4298 // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved) 4299 func (_FFFNFT *FFFNFTFilterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *FFFNFTApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) { 4300 4301 var ownerRule []interface{} 4302 for _, ownerItem := range owner { 4303 ownerRule = append(ownerRule, ownerItem) 4304 } 4305 var operatorRule []interface{} 4306 for _, operatorItem := range operator { 4307 operatorRule = append(operatorRule, operatorItem) 4308 } 4309 4310 logs, sub, err := _FFFNFT.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule) 4311 if err != nil { 4312 return nil, err 4313 } 4314 return event.NewSubscription(func(quit <-chan struct{}) error { 4315 defer sub.Unsubscribe() 4316 for { 4317 select { 4318 case log := <-logs: 4319 // New log arrived, parse the event and forward to the user 4320 event := new(FFFNFTApprovalForAll) 4321 if err := _FFFNFT.contract.UnpackLog(event, "ApprovalForAll", log); err != nil { 4322 return err 4323 } 4324 event.Raw = log 4325 4326 select { 4327 case sink <- event: 4328 case err := <-sub.Err(): 4329 return err 4330 case <-quit: 4331 return nil 4332 } 4333 case err := <-sub.Err(): 4334 return err 4335 case <-quit: 4336 return nil 4337 } 4338 } 4339 }), nil 4340 } 4341 4342 // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. 4343 // 4344 // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved) 4345 func (_FFFNFT *FFFNFTFilterer) ParseApprovalForAll(log types.Log) (*FFFNFTApprovalForAll, error) { 4346 event := new(FFFNFTApprovalForAll) 4347 if err := _FFFNFT.contract.UnpackLog(event, "ApprovalForAll", log); err != nil { 4348 return nil, err 4349 } 4350 event.Raw = log 4351 return event, nil 4352 } 4353 4354 // FFFNFTNewRevoIterator is returned from FilterNewRevo and is used to iterate over the raw logs and unpacked data for NewRevo events raised by the FFFNFT contract. 4355 type FFFNFTNewRevoIterator struct { 4356 Event *FFFNFTNewRevo // Event containing the contract specifics and raw log 4357 4358 contract *bind.BoundContract // Generic contract to use for unpacking event data 4359 event string // Event name to use for unpacking event data 4360 4361 logs chan types.Log // Log channel receiving the found contract events 4362 sub ethereum.Subscription // Subscription for errors, completion and termination 4363 done bool // Whether the subscription completed delivering logs 4364 fail error // Occurred error to stop iteration 4365 } 4366 4367 // Next advances the iterator to the subsequent event, returning whether there 4368 // are any more events found. In case of a retrieval or parsing error, false is 4369 // returned and Error() can be queried for the exact failure. 4370 func (it *FFFNFTNewRevoIterator) Next() bool { 4371 // If the iterator failed, stop iterating 4372 if it.fail != nil { 4373 return false 4374 } 4375 // If the iterator completed, deliver directly whatever's available 4376 if it.done { 4377 select { 4378 case log := <-it.logs: 4379 it.Event = new(FFFNFTNewRevo) 4380 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 4381 it.fail = err 4382 return false 4383 } 4384 it.Event.Raw = log 4385 return true 4386 4387 default: 4388 return false 4389 } 4390 } 4391 // Iterator still in progress, wait for either a data or an error event 4392 select { 4393 case log := <-it.logs: 4394 it.Event = new(FFFNFTNewRevo) 4395 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 4396 it.fail = err 4397 return false 4398 } 4399 it.Event.Raw = log 4400 return true 4401 4402 case err := <-it.sub.Err(): 4403 it.done = true 4404 it.fail = err 4405 return it.Next() 4406 } 4407 } 4408 4409 // Error returns any retrieval or parsing error occurred during filtering. 4410 func (it *FFFNFTNewRevoIterator) Error() error { 4411 return it.fail 4412 } 4413 4414 // Close terminates the iteration process, releasing any pending underlying 4415 // resources. 4416 func (it *FFFNFTNewRevoIterator) Close() error { 4417 it.sub.Unsubscribe() 4418 return nil 4419 } 4420 4421 // FFFNFTNewRevo represents a NewRevo event raised by the FFFNFT contract. 4422 type FFFNFTNewRevo struct { 4423 Id *big.Int 4424 Raw types.Log // Blockchain specific contextual infos 4425 } 4426 4427 // FilterNewRevo is a free log retrieval operation binding the contract event 0x06054a5f6b82c58e700d99c1039e272a1df8bd403b999a15923a43809573e093. 4428 // 4429 // Solidity: event NewRevo(uint256 id) 4430 func (_FFFNFT *FFFNFTFilterer) FilterNewRevo(opts *bind.FilterOpts) (*FFFNFTNewRevoIterator, error) { 4431 4432 logs, sub, err := _FFFNFT.contract.FilterLogs(opts, "NewRevo") 4433 if err != nil { 4434 return nil, err 4435 } 4436 return &FFFNFTNewRevoIterator{contract: _FFFNFT.contract, event: "NewRevo", logs: logs, sub: sub}, nil 4437 } 4438 4439 // WatchNewRevo is a free log subscription operation binding the contract event 0x06054a5f6b82c58e700d99c1039e272a1df8bd403b999a15923a43809573e093. 4440 // 4441 // Solidity: event NewRevo(uint256 id) 4442 func (_FFFNFT *FFFNFTFilterer) WatchNewRevo(opts *bind.WatchOpts, sink chan<- *FFFNFTNewRevo) (event.Subscription, error) { 4443 4444 logs, sub, err := _FFFNFT.contract.WatchLogs(opts, "NewRevo") 4445 if err != nil { 4446 return nil, err 4447 } 4448 return event.NewSubscription(func(quit <-chan struct{}) error { 4449 defer sub.Unsubscribe() 4450 for { 4451 select { 4452 case log := <-logs: 4453 // New log arrived, parse the event and forward to the user 4454 event := new(FFFNFTNewRevo) 4455 if err := _FFFNFT.contract.UnpackLog(event, "NewRevo", log); err != nil { 4456 return err 4457 } 4458 event.Raw = log 4459 4460 select { 4461 case sink <- event: 4462 case err := <-sub.Err(): 4463 return err 4464 case <-quit: 4465 return nil 4466 } 4467 case err := <-sub.Err(): 4468 return err 4469 case <-quit: 4470 return nil 4471 } 4472 } 4473 }), nil 4474 } 4475 4476 // ParseNewRevo is a log parse operation binding the contract event 0x06054a5f6b82c58e700d99c1039e272a1df8bd403b999a15923a43809573e093. 4477 // 4478 // Solidity: event NewRevo(uint256 id) 4479 func (_FFFNFT *FFFNFTFilterer) ParseNewRevo(log types.Log) (*FFFNFTNewRevo, error) { 4480 event := new(FFFNFTNewRevo) 4481 if err := _FFFNFT.contract.UnpackLog(event, "NewRevo", log); err != nil { 4482 return nil, err 4483 } 4484 event.Raw = log 4485 return event, nil 4486 } 4487 4488 // FFFNFTOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the FFFNFT contract. 4489 type FFFNFTOwnershipTransferredIterator struct { 4490 Event *FFFNFTOwnershipTransferred // Event containing the contract specifics and raw log 4491 4492 contract *bind.BoundContract // Generic contract to use for unpacking event data 4493 event string // Event name to use for unpacking event data 4494 4495 logs chan types.Log // Log channel receiving the found contract events 4496 sub ethereum.Subscription // Subscription for errors, completion and termination 4497 done bool // Whether the subscription completed delivering logs 4498 fail error // Occurred error to stop iteration 4499 } 4500 4501 // Next advances the iterator to the subsequent event, returning whether there 4502 // are any more events found. In case of a retrieval or parsing error, false is 4503 // returned and Error() can be queried for the exact failure. 4504 func (it *FFFNFTOwnershipTransferredIterator) Next() bool { 4505 // If the iterator failed, stop iterating 4506 if it.fail != nil { 4507 return false 4508 } 4509 // If the iterator completed, deliver directly whatever's available 4510 if it.done { 4511 select { 4512 case log := <-it.logs: 4513 it.Event = new(FFFNFTOwnershipTransferred) 4514 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 4515 it.fail = err 4516 return false 4517 } 4518 it.Event.Raw = log 4519 return true 4520 4521 default: 4522 return false 4523 } 4524 } 4525 // Iterator still in progress, wait for either a data or an error event 4526 select { 4527 case log := <-it.logs: 4528 it.Event = new(FFFNFTOwnershipTransferred) 4529 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 4530 it.fail = err 4531 return false 4532 } 4533 it.Event.Raw = log 4534 return true 4535 4536 case err := <-it.sub.Err(): 4537 it.done = true 4538 it.fail = err 4539 return it.Next() 4540 } 4541 } 4542 4543 // Error returns any retrieval or parsing error occurred during filtering. 4544 func (it *FFFNFTOwnershipTransferredIterator) Error() error { 4545 return it.fail 4546 } 4547 4548 // Close terminates the iteration process, releasing any pending underlying 4549 // resources. 4550 func (it *FFFNFTOwnershipTransferredIterator) Close() error { 4551 it.sub.Unsubscribe() 4552 return nil 4553 } 4554 4555 // FFFNFTOwnershipTransferred represents a OwnershipTransferred event raised by the FFFNFT contract. 4556 type FFFNFTOwnershipTransferred struct { 4557 PreviousOwner common.Address 4558 NewOwner common.Address 4559 Raw types.Log // Blockchain specific contextual infos 4560 } 4561 4562 // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. 4563 // 4564 // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) 4565 func (_FFFNFT *FFFNFTFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*FFFNFTOwnershipTransferredIterator, error) { 4566 4567 var previousOwnerRule []interface{} 4568 for _, previousOwnerItem := range previousOwner { 4569 previousOwnerRule = append(previousOwnerRule, previousOwnerItem) 4570 } 4571 var newOwnerRule []interface{} 4572 for _, newOwnerItem := range newOwner { 4573 newOwnerRule = append(newOwnerRule, newOwnerItem) 4574 } 4575 4576 logs, sub, err := _FFFNFT.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) 4577 if err != nil { 4578 return nil, err 4579 } 4580 return &FFFNFTOwnershipTransferredIterator{contract: _FFFNFT.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil 4581 } 4582 4583 // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. 4584 // 4585 // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) 4586 func (_FFFNFT *FFFNFTFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *FFFNFTOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { 4587 4588 var previousOwnerRule []interface{} 4589 for _, previousOwnerItem := range previousOwner { 4590 previousOwnerRule = append(previousOwnerRule, previousOwnerItem) 4591 } 4592 var newOwnerRule []interface{} 4593 for _, newOwnerItem := range newOwner { 4594 newOwnerRule = append(newOwnerRule, newOwnerItem) 4595 } 4596 4597 logs, sub, err := _FFFNFT.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) 4598 if err != nil { 4599 return nil, err 4600 } 4601 return event.NewSubscription(func(quit <-chan struct{}) error { 4602 defer sub.Unsubscribe() 4603 for { 4604 select { 4605 case log := <-logs: 4606 // New log arrived, parse the event and forward to the user 4607 event := new(FFFNFTOwnershipTransferred) 4608 if err := _FFFNFT.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { 4609 return err 4610 } 4611 event.Raw = log 4612 4613 select { 4614 case sink <- event: 4615 case err := <-sub.Err(): 4616 return err 4617 case <-quit: 4618 return nil 4619 } 4620 case err := <-sub.Err(): 4621 return err 4622 case <-quit: 4623 return nil 4624 } 4625 } 4626 }), nil 4627 } 4628 4629 // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. 4630 // 4631 // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) 4632 func (_FFFNFT *FFFNFTFilterer) ParseOwnershipTransferred(log types.Log) (*FFFNFTOwnershipTransferred, error) { 4633 event := new(FFFNFTOwnershipTransferred) 4634 if err := _FFFNFT.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { 4635 return nil, err 4636 } 4637 event.Raw = log 4638 return event, nil 4639 } 4640 4641 // FFFNFTTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the FFFNFT contract. 4642 type FFFNFTTransferIterator struct { 4643 Event *FFFNFTTransfer // Event containing the contract specifics and raw log 4644 4645 contract *bind.BoundContract // Generic contract to use for unpacking event data 4646 event string // Event name to use for unpacking event data 4647 4648 logs chan types.Log // Log channel receiving the found contract events 4649 sub ethereum.Subscription // Subscription for errors, completion and termination 4650 done bool // Whether the subscription completed delivering logs 4651 fail error // Occurred error to stop iteration 4652 } 4653 4654 // Next advances the iterator to the subsequent event, returning whether there 4655 // are any more events found. In case of a retrieval or parsing error, false is 4656 // returned and Error() can be queried for the exact failure. 4657 func (it *FFFNFTTransferIterator) Next() bool { 4658 // If the iterator failed, stop iterating 4659 if it.fail != nil { 4660 return false 4661 } 4662 // If the iterator completed, deliver directly whatever's available 4663 if it.done { 4664 select { 4665 case log := <-it.logs: 4666 it.Event = new(FFFNFTTransfer) 4667 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 4668 it.fail = err 4669 return false 4670 } 4671 it.Event.Raw = log 4672 return true 4673 4674 default: 4675 return false 4676 } 4677 } 4678 // Iterator still in progress, wait for either a data or an error event 4679 select { 4680 case log := <-it.logs: 4681 it.Event = new(FFFNFTTransfer) 4682 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 4683 it.fail = err 4684 return false 4685 } 4686 it.Event.Raw = log 4687 return true 4688 4689 case err := <-it.sub.Err(): 4690 it.done = true 4691 it.fail = err 4692 return it.Next() 4693 } 4694 } 4695 4696 // Error returns any retrieval or parsing error occurred during filtering. 4697 func (it *FFFNFTTransferIterator) Error() error { 4698 return it.fail 4699 } 4700 4701 // Close terminates the iteration process, releasing any pending underlying 4702 // resources. 4703 func (it *FFFNFTTransferIterator) Close() error { 4704 it.sub.Unsubscribe() 4705 return nil 4706 } 4707 4708 // FFFNFTTransfer represents a Transfer event raised by the FFFNFT contract. 4709 type FFFNFTTransfer struct { 4710 From common.Address 4711 To common.Address 4712 TokenId *big.Int 4713 Raw types.Log // Blockchain specific contextual infos 4714 } 4715 4716 // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. 4717 // 4718 // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId) 4719 func (_FFFNFT *FFFNFTFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*FFFNFTTransferIterator, error) { 4720 4721 var fromRule []interface{} 4722 for _, fromItem := range from { 4723 fromRule = append(fromRule, fromItem) 4724 } 4725 var toRule []interface{} 4726 for _, toItem := range to { 4727 toRule = append(toRule, toItem) 4728 } 4729 var tokenIdRule []interface{} 4730 for _, tokenIdItem := range tokenId { 4731 tokenIdRule = append(tokenIdRule, tokenIdItem) 4732 } 4733 4734 logs, sub, err := _FFFNFT.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule) 4735 if err != nil { 4736 return nil, err 4737 } 4738 return &FFFNFTTransferIterator{contract: _FFFNFT.contract, event: "Transfer", logs: logs, sub: sub}, nil 4739 } 4740 4741 // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. 4742 // 4743 // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId) 4744 func (_FFFNFT *FFFNFTFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *FFFNFTTransfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) { 4745 4746 var fromRule []interface{} 4747 for _, fromItem := range from { 4748 fromRule = append(fromRule, fromItem) 4749 } 4750 var toRule []interface{} 4751 for _, toItem := range to { 4752 toRule = append(toRule, toItem) 4753 } 4754 var tokenIdRule []interface{} 4755 for _, tokenIdItem := range tokenId { 4756 tokenIdRule = append(tokenIdRule, tokenIdItem) 4757 } 4758 4759 logs, sub, err := _FFFNFT.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule) 4760 if err != nil { 4761 return nil, err 4762 } 4763 return event.NewSubscription(func(quit <-chan struct{}) error { 4764 defer sub.Unsubscribe() 4765 for { 4766 select { 4767 case log := <-logs: 4768 // New log arrived, parse the event and forward to the user 4769 event := new(FFFNFTTransfer) 4770 if err := _FFFNFT.contract.UnpackLog(event, "Transfer", log); err != nil { 4771 return err 4772 } 4773 event.Raw = log 4774 4775 select { 4776 case sink <- event: 4777 case err := <-sub.Err(): 4778 return err 4779 case <-quit: 4780 return nil 4781 } 4782 case err := <-sub.Err(): 4783 return err 4784 case <-quit: 4785 return nil 4786 } 4787 } 4788 }), nil 4789 } 4790 4791 // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. 4792 // 4793 // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId) 4794 func (_FFFNFT *FFFNFTFilterer) ParseTransfer(log types.Log) (*FFFNFTTransfer, error) { 4795 event := new(FFFNFTTransfer) 4796 if err := _FFFNFT.contract.UnpackLog(event, "Transfer", log); err != nil { 4797 return nil, err 4798 } 4799 event.Raw = log 4800 return event, nil 4801 } 4802 4803 // IERC165ABI is the input ABI used to generate the binding from. 4804 const IERC165ABI = "[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]" 4805 4806 // IERC165FuncSigs maps the 4-byte function signature to its string representation. 4807 var IERC165FuncSigs = map[string]string{ 4808 "01ffc9a7": "supportsInterface(bytes4)", 4809 } 4810 4811 // IERC165 is an auto generated Go binding around an Ethereum contract. 4812 type IERC165 struct { 4813 IERC165Caller // Read-only binding to the contract 4814 IERC165Transactor // Write-only binding to the contract 4815 IERC165Filterer // Log filterer for contract events 4816 } 4817 4818 // IERC165Caller is an auto generated read-only Go binding around an Ethereum contract. 4819 type IERC165Caller struct { 4820 contract *bind.BoundContract // Generic contract wrapper for the low level calls 4821 } 4822 4823 // IERC165Transactor is an auto generated write-only Go binding around an Ethereum contract. 4824 type IERC165Transactor struct { 4825 contract *bind.BoundContract // Generic contract wrapper for the low level calls 4826 } 4827 4828 // IERC165Filterer is an auto generated log filtering Go binding around an Ethereum contract events. 4829 type IERC165Filterer struct { 4830 contract *bind.BoundContract // Generic contract wrapper for the low level calls 4831 } 4832 4833 // IERC165Session is an auto generated Go binding around an Ethereum contract, 4834 // with pre-set call and transact options. 4835 type IERC165Session struct { 4836 Contract *IERC165 // Generic contract binding to set the session for 4837 CallOpts bind.CallOpts // Call options to use throughout this session 4838 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 4839 } 4840 4841 // IERC165CallerSession is an auto generated read-only Go binding around an Ethereum contract, 4842 // with pre-set call options. 4843 type IERC165CallerSession struct { 4844 Contract *IERC165Caller // Generic contract caller binding to set the session for 4845 CallOpts bind.CallOpts // Call options to use throughout this session 4846 } 4847 4848 // IERC165TransactorSession is an auto generated write-only Go binding around an Ethereum contract, 4849 // with pre-set transact options. 4850 type IERC165TransactorSession struct { 4851 Contract *IERC165Transactor // Generic contract transactor binding to set the session for 4852 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 4853 } 4854 4855 // IERC165Raw is an auto generated low-level Go binding around an Ethereum contract. 4856 type IERC165Raw struct { 4857 Contract *IERC165 // Generic contract binding to access the raw methods on 4858 } 4859 4860 // IERC165CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. 4861 type IERC165CallerRaw struct { 4862 Contract *IERC165Caller // Generic read-only contract binding to access the raw methods on 4863 } 4864 4865 // IERC165TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. 4866 type IERC165TransactorRaw struct { 4867 Contract *IERC165Transactor // Generic write-only contract binding to access the raw methods on 4868 } 4869 4870 // NewIERC165 creates a new instance of IERC165, bound to a specific deployed contract. 4871 func NewIERC165(address common.Address, backend bind.ContractBackend) (*IERC165, error) { 4872 contract, err := bindIERC165(address, backend, backend, backend) 4873 if err != nil { 4874 return nil, err 4875 } 4876 return &IERC165{IERC165Caller: IERC165Caller{contract: contract}, IERC165Transactor: IERC165Transactor{contract: contract}, IERC165Filterer: IERC165Filterer{contract: contract}}, nil 4877 } 4878 4879 // NewIERC165Caller creates a new read-only instance of IERC165, bound to a specific deployed contract. 4880 func NewIERC165Caller(address common.Address, caller bind.ContractCaller) (*IERC165Caller, error) { 4881 contract, err := bindIERC165(address, caller, nil, nil) 4882 if err != nil { 4883 return nil, err 4884 } 4885 return &IERC165Caller{contract: contract}, nil 4886 } 4887 4888 // NewIERC165Transactor creates a new write-only instance of IERC165, bound to a specific deployed contract. 4889 func NewIERC165Transactor(address common.Address, transactor bind.ContractTransactor) (*IERC165Transactor, error) { 4890 contract, err := bindIERC165(address, nil, transactor, nil) 4891 if err != nil { 4892 return nil, err 4893 } 4894 return &IERC165Transactor{contract: contract}, nil 4895 } 4896 4897 // NewIERC165Filterer creates a new log filterer instance of IERC165, bound to a specific deployed contract. 4898 func NewIERC165Filterer(address common.Address, filterer bind.ContractFilterer) (*IERC165Filterer, error) { 4899 contract, err := bindIERC165(address, nil, nil, filterer) 4900 if err != nil { 4901 return nil, err 4902 } 4903 return &IERC165Filterer{contract: contract}, nil 4904 } 4905 4906 // bindIERC165 binds a generic wrapper to an already deployed contract. 4907 func bindIERC165(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { 4908 parsed, err := abi.JSON(strings.NewReader(IERC165ABI)) 4909 if err != nil { 4910 return nil, err 4911 } 4912 return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil 4913 } 4914 4915 // Call invokes the (constant) contract method with params as input values and 4916 // sets the output to result. The result type might be a single field for simple 4917 // returns, a slice of interfaces for anonymous returns and a struct for named 4918 // returns. 4919 func (_IERC165 *IERC165Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 4920 return _IERC165.Contract.IERC165Caller.contract.Call(opts, result, method, params...) 4921 } 4922 4923 // Transfer initiates a plain transaction to move funds to the contract, calling 4924 // its default method if one is available. 4925 func (_IERC165 *IERC165Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 4926 return _IERC165.Contract.IERC165Transactor.contract.Transfer(opts) 4927 } 4928 4929 // Transact invokes the (paid) contract method with params as input values. 4930 func (_IERC165 *IERC165Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 4931 return _IERC165.Contract.IERC165Transactor.contract.Transact(opts, method, params...) 4932 } 4933 4934 // Call invokes the (constant) contract method with params as input values and 4935 // sets the output to result. The result type might be a single field for simple 4936 // returns, a slice of interfaces for anonymous returns and a struct for named 4937 // returns. 4938 func (_IERC165 *IERC165CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 4939 return _IERC165.Contract.contract.Call(opts, result, method, params...) 4940 } 4941 4942 // Transfer initiates a plain transaction to move funds to the contract, calling 4943 // its default method if one is available. 4944 func (_IERC165 *IERC165TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 4945 return _IERC165.Contract.contract.Transfer(opts) 4946 } 4947 4948 // Transact invokes the (paid) contract method with params as input values. 4949 func (_IERC165 *IERC165TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 4950 return _IERC165.Contract.contract.Transact(opts, method, params...) 4951 } 4952 4953 // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. 4954 // 4955 // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) 4956 func (_IERC165 *IERC165Caller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { 4957 var out []interface{} 4958 err := _IERC165.contract.Call(opts, &out, "supportsInterface", interfaceId) 4959 4960 if err != nil { 4961 return *new(bool), err 4962 } 4963 4964 out0 := *abi.ConvertType(out[0], new(bool)).(*bool) 4965 4966 return out0, err 4967 4968 } 4969 4970 // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. 4971 // 4972 // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) 4973 func (_IERC165 *IERC165Session) SupportsInterface(interfaceId [4]byte) (bool, error) { 4974 return _IERC165.Contract.SupportsInterface(&_IERC165.CallOpts, interfaceId) 4975 } 4976 4977 // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. 4978 // 4979 // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) 4980 func (_IERC165 *IERC165CallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { 4981 return _IERC165.Contract.SupportsInterface(&_IERC165.CallOpts, interfaceId) 4982 } 4983 4984 // IERC721ABI is the input ABI used to generate the binding from. 4985 const IERC721ABI = "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" 4986 4987 // IERC721FuncSigs maps the 4-byte function signature to its string representation. 4988 var IERC721FuncSigs = map[string]string{ 4989 "095ea7b3": "approve(address,uint256)", 4990 "70a08231": "balanceOf(address)", 4991 "081812fc": "getApproved(uint256)", 4992 "e985e9c5": "isApprovedForAll(address,address)", 4993 "6352211e": "ownerOf(uint256)", 4994 "42842e0e": "safeTransferFrom(address,address,uint256)", 4995 "b88d4fde": "safeTransferFrom(address,address,uint256,bytes)", 4996 "a22cb465": "setApprovalForAll(address,bool)", 4997 "01ffc9a7": "supportsInterface(bytes4)", 4998 "23b872dd": "transferFrom(address,address,uint256)", 4999 } 5000 5001 // IERC721 is an auto generated Go binding around an Ethereum contract. 5002 type IERC721 struct { 5003 IERC721Caller // Read-only binding to the contract 5004 IERC721Transactor // Write-only binding to the contract 5005 IERC721Filterer // Log filterer for contract events 5006 } 5007 5008 // IERC721Caller is an auto generated read-only Go binding around an Ethereum contract. 5009 type IERC721Caller struct { 5010 contract *bind.BoundContract // Generic contract wrapper for the low level calls 5011 } 5012 5013 // IERC721Transactor is an auto generated write-only Go binding around an Ethereum contract. 5014 type IERC721Transactor struct { 5015 contract *bind.BoundContract // Generic contract wrapper for the low level calls 5016 } 5017 5018 // IERC721Filterer is an auto generated log filtering Go binding around an Ethereum contract events. 5019 type IERC721Filterer struct { 5020 contract *bind.BoundContract // Generic contract wrapper for the low level calls 5021 } 5022 5023 // IERC721Session is an auto generated Go binding around an Ethereum contract, 5024 // with pre-set call and transact options. 5025 type IERC721Session struct { 5026 Contract *IERC721 // Generic contract binding to set the session for 5027 CallOpts bind.CallOpts // Call options to use throughout this session 5028 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 5029 } 5030 5031 // IERC721CallerSession is an auto generated read-only Go binding around an Ethereum contract, 5032 // with pre-set call options. 5033 type IERC721CallerSession struct { 5034 Contract *IERC721Caller // Generic contract caller binding to set the session for 5035 CallOpts bind.CallOpts // Call options to use throughout this session 5036 } 5037 5038 // IERC721TransactorSession is an auto generated write-only Go binding around an Ethereum contract, 5039 // with pre-set transact options. 5040 type IERC721TransactorSession struct { 5041 Contract *IERC721Transactor // Generic contract transactor binding to set the session for 5042 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 5043 } 5044 5045 // IERC721Raw is an auto generated low-level Go binding around an Ethereum contract. 5046 type IERC721Raw struct { 5047 Contract *IERC721 // Generic contract binding to access the raw methods on 5048 } 5049 5050 // IERC721CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. 5051 type IERC721CallerRaw struct { 5052 Contract *IERC721Caller // Generic read-only contract binding to access the raw methods on 5053 } 5054 5055 // IERC721TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. 5056 type IERC721TransactorRaw struct { 5057 Contract *IERC721Transactor // Generic write-only contract binding to access the raw methods on 5058 } 5059 5060 // NewIERC721 creates a new instance of IERC721, bound to a specific deployed contract. 5061 func NewIERC721(address common.Address, backend bind.ContractBackend) (*IERC721, error) { 5062 contract, err := bindIERC721(address, backend, backend, backend) 5063 if err != nil { 5064 return nil, err 5065 } 5066 return &IERC721{IERC721Caller: IERC721Caller{contract: contract}, IERC721Transactor: IERC721Transactor{contract: contract}, IERC721Filterer: IERC721Filterer{contract: contract}}, nil 5067 } 5068 5069 // NewIERC721Caller creates a new read-only instance of IERC721, bound to a specific deployed contract. 5070 func NewIERC721Caller(address common.Address, caller bind.ContractCaller) (*IERC721Caller, error) { 5071 contract, err := bindIERC721(address, caller, nil, nil) 5072 if err != nil { 5073 return nil, err 5074 } 5075 return &IERC721Caller{contract: contract}, nil 5076 } 5077 5078 // NewIERC721Transactor creates a new write-only instance of IERC721, bound to a specific deployed contract. 5079 func NewIERC721Transactor(address common.Address, transactor bind.ContractTransactor) (*IERC721Transactor, error) { 5080 contract, err := bindIERC721(address, nil, transactor, nil) 5081 if err != nil { 5082 return nil, err 5083 } 5084 return &IERC721Transactor{contract: contract}, nil 5085 } 5086 5087 // NewIERC721Filterer creates a new log filterer instance of IERC721, bound to a specific deployed contract. 5088 func NewIERC721Filterer(address common.Address, filterer bind.ContractFilterer) (*IERC721Filterer, error) { 5089 contract, err := bindIERC721(address, nil, nil, filterer) 5090 if err != nil { 5091 return nil, err 5092 } 5093 return &IERC721Filterer{contract: contract}, nil 5094 } 5095 5096 // bindIERC721 binds a generic wrapper to an already deployed contract. 5097 func bindIERC721(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { 5098 parsed, err := abi.JSON(strings.NewReader(IERC721ABI)) 5099 if err != nil { 5100 return nil, err 5101 } 5102 return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil 5103 } 5104 5105 // Call invokes the (constant) contract method with params as input values and 5106 // sets the output to result. The result type might be a single field for simple 5107 // returns, a slice of interfaces for anonymous returns and a struct for named 5108 // returns. 5109 func (_IERC721 *IERC721Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 5110 return _IERC721.Contract.IERC721Caller.contract.Call(opts, result, method, params...) 5111 } 5112 5113 // Transfer initiates a plain transaction to move funds to the contract, calling 5114 // its default method if one is available. 5115 func (_IERC721 *IERC721Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 5116 return _IERC721.Contract.IERC721Transactor.contract.Transfer(opts) 5117 } 5118 5119 // Transact invokes the (paid) contract method with params as input values. 5120 func (_IERC721 *IERC721Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 5121 return _IERC721.Contract.IERC721Transactor.contract.Transact(opts, method, params...) 5122 } 5123 5124 // Call invokes the (constant) contract method with params as input values and 5125 // sets the output to result. The result type might be a single field for simple 5126 // returns, a slice of interfaces for anonymous returns and a struct for named 5127 // returns. 5128 func (_IERC721 *IERC721CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 5129 return _IERC721.Contract.contract.Call(opts, result, method, params...) 5130 } 5131 5132 // Transfer initiates a plain transaction to move funds to the contract, calling 5133 // its default method if one is available. 5134 func (_IERC721 *IERC721TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 5135 return _IERC721.Contract.contract.Transfer(opts) 5136 } 5137 5138 // Transact invokes the (paid) contract method with params as input values. 5139 func (_IERC721 *IERC721TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 5140 return _IERC721.Contract.contract.Transact(opts, method, params...) 5141 } 5142 5143 // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. 5144 // 5145 // Solidity: function balanceOf(address owner) view returns(uint256 balance) 5146 func (_IERC721 *IERC721Caller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) { 5147 var out []interface{} 5148 err := _IERC721.contract.Call(opts, &out, "balanceOf", owner) 5149 5150 if err != nil { 5151 return *new(*big.Int), err 5152 } 5153 5154 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 5155 5156 return out0, err 5157 5158 } 5159 5160 // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. 5161 // 5162 // Solidity: function balanceOf(address owner) view returns(uint256 balance) 5163 func (_IERC721 *IERC721Session) BalanceOf(owner common.Address) (*big.Int, error) { 5164 return _IERC721.Contract.BalanceOf(&_IERC721.CallOpts, owner) 5165 } 5166 5167 // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. 5168 // 5169 // Solidity: function balanceOf(address owner) view returns(uint256 balance) 5170 func (_IERC721 *IERC721CallerSession) BalanceOf(owner common.Address) (*big.Int, error) { 5171 return _IERC721.Contract.BalanceOf(&_IERC721.CallOpts, owner) 5172 } 5173 5174 // GetApproved is a free data retrieval call binding the contract method 0x081812fc. 5175 // 5176 // Solidity: function getApproved(uint256 tokenId) view returns(address operator) 5177 func (_IERC721 *IERC721Caller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) { 5178 var out []interface{} 5179 err := _IERC721.contract.Call(opts, &out, "getApproved", tokenId) 5180 5181 if err != nil { 5182 return *new(common.Address), err 5183 } 5184 5185 out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) 5186 5187 return out0, err 5188 5189 } 5190 5191 // GetApproved is a free data retrieval call binding the contract method 0x081812fc. 5192 // 5193 // Solidity: function getApproved(uint256 tokenId) view returns(address operator) 5194 func (_IERC721 *IERC721Session) GetApproved(tokenId *big.Int) (common.Address, error) { 5195 return _IERC721.Contract.GetApproved(&_IERC721.CallOpts, tokenId) 5196 } 5197 5198 // GetApproved is a free data retrieval call binding the contract method 0x081812fc. 5199 // 5200 // Solidity: function getApproved(uint256 tokenId) view returns(address operator) 5201 func (_IERC721 *IERC721CallerSession) GetApproved(tokenId *big.Int) (common.Address, error) { 5202 return _IERC721.Contract.GetApproved(&_IERC721.CallOpts, tokenId) 5203 } 5204 5205 // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. 5206 // 5207 // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool) 5208 func (_IERC721 *IERC721Caller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) { 5209 var out []interface{} 5210 err := _IERC721.contract.Call(opts, &out, "isApprovedForAll", owner, operator) 5211 5212 if err != nil { 5213 return *new(bool), err 5214 } 5215 5216 out0 := *abi.ConvertType(out[0], new(bool)).(*bool) 5217 5218 return out0, err 5219 5220 } 5221 5222 // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. 5223 // 5224 // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool) 5225 func (_IERC721 *IERC721Session) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) { 5226 return _IERC721.Contract.IsApprovedForAll(&_IERC721.CallOpts, owner, operator) 5227 } 5228 5229 // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. 5230 // 5231 // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool) 5232 func (_IERC721 *IERC721CallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) { 5233 return _IERC721.Contract.IsApprovedForAll(&_IERC721.CallOpts, owner, operator) 5234 } 5235 5236 // OwnerOf is a free data retrieval call binding the contract method 0x6352211e. 5237 // 5238 // Solidity: function ownerOf(uint256 tokenId) view returns(address owner) 5239 func (_IERC721 *IERC721Caller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) { 5240 var out []interface{} 5241 err := _IERC721.contract.Call(opts, &out, "ownerOf", tokenId) 5242 5243 if err != nil { 5244 return *new(common.Address), err 5245 } 5246 5247 out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) 5248 5249 return out0, err 5250 5251 } 5252 5253 // OwnerOf is a free data retrieval call binding the contract method 0x6352211e. 5254 // 5255 // Solidity: function ownerOf(uint256 tokenId) view returns(address owner) 5256 func (_IERC721 *IERC721Session) OwnerOf(tokenId *big.Int) (common.Address, error) { 5257 return _IERC721.Contract.OwnerOf(&_IERC721.CallOpts, tokenId) 5258 } 5259 5260 // OwnerOf is a free data retrieval call binding the contract method 0x6352211e. 5261 // 5262 // Solidity: function ownerOf(uint256 tokenId) view returns(address owner) 5263 func (_IERC721 *IERC721CallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) { 5264 return _IERC721.Contract.OwnerOf(&_IERC721.CallOpts, tokenId) 5265 } 5266 5267 // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. 5268 // 5269 // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) 5270 func (_IERC721 *IERC721Caller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { 5271 var out []interface{} 5272 err := _IERC721.contract.Call(opts, &out, "supportsInterface", interfaceId) 5273 5274 if err != nil { 5275 return *new(bool), err 5276 } 5277 5278 out0 := *abi.ConvertType(out[0], new(bool)).(*bool) 5279 5280 return out0, err 5281 5282 } 5283 5284 // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. 5285 // 5286 // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) 5287 func (_IERC721 *IERC721Session) SupportsInterface(interfaceId [4]byte) (bool, error) { 5288 return _IERC721.Contract.SupportsInterface(&_IERC721.CallOpts, interfaceId) 5289 } 5290 5291 // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. 5292 // 5293 // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) 5294 func (_IERC721 *IERC721CallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { 5295 return _IERC721.Contract.SupportsInterface(&_IERC721.CallOpts, interfaceId) 5296 } 5297 5298 // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. 5299 // 5300 // Solidity: function approve(address to, uint256 tokenId) returns() 5301 func (_IERC721 *IERC721Transactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 5302 return _IERC721.contract.Transact(opts, "approve", to, tokenId) 5303 } 5304 5305 // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. 5306 // 5307 // Solidity: function approve(address to, uint256 tokenId) returns() 5308 func (_IERC721 *IERC721Session) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) { 5309 return _IERC721.Contract.Approve(&_IERC721.TransactOpts, to, tokenId) 5310 } 5311 5312 // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. 5313 // 5314 // Solidity: function approve(address to, uint256 tokenId) returns() 5315 func (_IERC721 *IERC721TransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) { 5316 return _IERC721.Contract.Approve(&_IERC721.TransactOpts, to, tokenId) 5317 } 5318 5319 // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. 5320 // 5321 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns() 5322 func (_IERC721 *IERC721Transactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 5323 return _IERC721.contract.Transact(opts, "safeTransferFrom", from, to, tokenId) 5324 } 5325 5326 // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. 5327 // 5328 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns() 5329 func (_IERC721 *IERC721Session) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 5330 return _IERC721.Contract.SafeTransferFrom(&_IERC721.TransactOpts, from, to, tokenId) 5331 } 5332 5333 // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. 5334 // 5335 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns() 5336 func (_IERC721 *IERC721TransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 5337 return _IERC721.Contract.SafeTransferFrom(&_IERC721.TransactOpts, from, to, tokenId) 5338 } 5339 5340 // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. 5341 // 5342 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns() 5343 func (_IERC721 *IERC721Transactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) { 5344 return _IERC721.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, data) 5345 } 5346 5347 // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. 5348 // 5349 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns() 5350 func (_IERC721 *IERC721Session) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) { 5351 return _IERC721.Contract.SafeTransferFrom0(&_IERC721.TransactOpts, from, to, tokenId, data) 5352 } 5353 5354 // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. 5355 // 5356 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns() 5357 func (_IERC721 *IERC721TransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) { 5358 return _IERC721.Contract.SafeTransferFrom0(&_IERC721.TransactOpts, from, to, tokenId, data) 5359 } 5360 5361 // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. 5362 // 5363 // Solidity: function setApprovalForAll(address operator, bool _approved) returns() 5364 func (_IERC721 *IERC721Transactor) SetApprovalForAll(opts *bind.TransactOpts, operator common.Address, _approved bool) (*types.Transaction, error) { 5365 return _IERC721.contract.Transact(opts, "setApprovalForAll", operator, _approved) 5366 } 5367 5368 // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. 5369 // 5370 // Solidity: function setApprovalForAll(address operator, bool _approved) returns() 5371 func (_IERC721 *IERC721Session) SetApprovalForAll(operator common.Address, _approved bool) (*types.Transaction, error) { 5372 return _IERC721.Contract.SetApprovalForAll(&_IERC721.TransactOpts, operator, _approved) 5373 } 5374 5375 // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. 5376 // 5377 // Solidity: function setApprovalForAll(address operator, bool _approved) returns() 5378 func (_IERC721 *IERC721TransactorSession) SetApprovalForAll(operator common.Address, _approved bool) (*types.Transaction, error) { 5379 return _IERC721.Contract.SetApprovalForAll(&_IERC721.TransactOpts, operator, _approved) 5380 } 5381 5382 // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. 5383 // 5384 // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns() 5385 func (_IERC721 *IERC721Transactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 5386 return _IERC721.contract.Transact(opts, "transferFrom", from, to, tokenId) 5387 } 5388 5389 // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. 5390 // 5391 // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns() 5392 func (_IERC721 *IERC721Session) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 5393 return _IERC721.Contract.TransferFrom(&_IERC721.TransactOpts, from, to, tokenId) 5394 } 5395 5396 // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. 5397 // 5398 // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns() 5399 func (_IERC721 *IERC721TransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 5400 return _IERC721.Contract.TransferFrom(&_IERC721.TransactOpts, from, to, tokenId) 5401 } 5402 5403 // 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. 5404 type IERC721ApprovalIterator struct { 5405 Event *IERC721Approval // Event containing the contract specifics and raw log 5406 5407 contract *bind.BoundContract // Generic contract to use for unpacking event data 5408 event string // Event name to use for unpacking event data 5409 5410 logs chan types.Log // Log channel receiving the found contract events 5411 sub ethereum.Subscription // Subscription for errors, completion and termination 5412 done bool // Whether the subscription completed delivering logs 5413 fail error // Occurred error to stop iteration 5414 } 5415 5416 // Next advances the iterator to the subsequent event, returning whether there 5417 // are any more events found. In case of a retrieval or parsing error, false is 5418 // returned and Error() can be queried for the exact failure. 5419 func (it *IERC721ApprovalIterator) Next() bool { 5420 // If the iterator failed, stop iterating 5421 if it.fail != nil { 5422 return false 5423 } 5424 // If the iterator completed, deliver directly whatever's available 5425 if it.done { 5426 select { 5427 case log := <-it.logs: 5428 it.Event = new(IERC721Approval) 5429 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 5430 it.fail = err 5431 return false 5432 } 5433 it.Event.Raw = log 5434 return true 5435 5436 default: 5437 return false 5438 } 5439 } 5440 // Iterator still in progress, wait for either a data or an error event 5441 select { 5442 case log := <-it.logs: 5443 it.Event = new(IERC721Approval) 5444 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 5445 it.fail = err 5446 return false 5447 } 5448 it.Event.Raw = log 5449 return true 5450 5451 case err := <-it.sub.Err(): 5452 it.done = true 5453 it.fail = err 5454 return it.Next() 5455 } 5456 } 5457 5458 // Error returns any retrieval or parsing error occurred during filtering. 5459 func (it *IERC721ApprovalIterator) Error() error { 5460 return it.fail 5461 } 5462 5463 // Close terminates the iteration process, releasing any pending underlying 5464 // resources. 5465 func (it *IERC721ApprovalIterator) Close() error { 5466 it.sub.Unsubscribe() 5467 return nil 5468 } 5469 5470 // IERC721Approval represents a Approval event raised by the IERC721 contract. 5471 type IERC721Approval struct { 5472 Owner common.Address 5473 Approved common.Address 5474 TokenId *big.Int 5475 Raw types.Log // Blockchain specific contextual infos 5476 } 5477 5478 // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. 5479 // 5480 // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId) 5481 func (_IERC721 *IERC721Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*IERC721ApprovalIterator, error) { 5482 5483 var ownerRule []interface{} 5484 for _, ownerItem := range owner { 5485 ownerRule = append(ownerRule, ownerItem) 5486 } 5487 var approvedRule []interface{} 5488 for _, approvedItem := range approved { 5489 approvedRule = append(approvedRule, approvedItem) 5490 } 5491 var tokenIdRule []interface{} 5492 for _, tokenIdItem := range tokenId { 5493 tokenIdRule = append(tokenIdRule, tokenIdItem) 5494 } 5495 5496 logs, sub, err := _IERC721.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule) 5497 if err != nil { 5498 return nil, err 5499 } 5500 return &IERC721ApprovalIterator{contract: _IERC721.contract, event: "Approval", logs: logs, sub: sub}, nil 5501 } 5502 5503 // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. 5504 // 5505 // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId) 5506 func (_IERC721 *IERC721Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *IERC721Approval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) { 5507 5508 var ownerRule []interface{} 5509 for _, ownerItem := range owner { 5510 ownerRule = append(ownerRule, ownerItem) 5511 } 5512 var approvedRule []interface{} 5513 for _, approvedItem := range approved { 5514 approvedRule = append(approvedRule, approvedItem) 5515 } 5516 var tokenIdRule []interface{} 5517 for _, tokenIdItem := range tokenId { 5518 tokenIdRule = append(tokenIdRule, tokenIdItem) 5519 } 5520 5521 logs, sub, err := _IERC721.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule) 5522 if err != nil { 5523 return nil, err 5524 } 5525 return event.NewSubscription(func(quit <-chan struct{}) error { 5526 defer sub.Unsubscribe() 5527 for { 5528 select { 5529 case log := <-logs: 5530 // New log arrived, parse the event and forward to the user 5531 event := new(IERC721Approval) 5532 if err := _IERC721.contract.UnpackLog(event, "Approval", log); err != nil { 5533 return err 5534 } 5535 event.Raw = log 5536 5537 select { 5538 case sink <- event: 5539 case err := <-sub.Err(): 5540 return err 5541 case <-quit: 5542 return nil 5543 } 5544 case err := <-sub.Err(): 5545 return err 5546 case <-quit: 5547 return nil 5548 } 5549 } 5550 }), nil 5551 } 5552 5553 // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. 5554 // 5555 // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId) 5556 func (_IERC721 *IERC721Filterer) ParseApproval(log types.Log) (*IERC721Approval, error) { 5557 event := new(IERC721Approval) 5558 if err := _IERC721.contract.UnpackLog(event, "Approval", log); err != nil { 5559 return nil, err 5560 } 5561 event.Raw = log 5562 return event, nil 5563 } 5564 5565 // 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. 5566 type IERC721ApprovalForAllIterator struct { 5567 Event *IERC721ApprovalForAll // Event containing the contract specifics and raw log 5568 5569 contract *bind.BoundContract // Generic contract to use for unpacking event data 5570 event string // Event name to use for unpacking event data 5571 5572 logs chan types.Log // Log channel receiving the found contract events 5573 sub ethereum.Subscription // Subscription for errors, completion and termination 5574 done bool // Whether the subscription completed delivering logs 5575 fail error // Occurred error to stop iteration 5576 } 5577 5578 // Next advances the iterator to the subsequent event, returning whether there 5579 // are any more events found. In case of a retrieval or parsing error, false is 5580 // returned and Error() can be queried for the exact failure. 5581 func (it *IERC721ApprovalForAllIterator) Next() bool { 5582 // If the iterator failed, stop iterating 5583 if it.fail != nil { 5584 return false 5585 } 5586 // If the iterator completed, deliver directly whatever's available 5587 if it.done { 5588 select { 5589 case log := <-it.logs: 5590 it.Event = new(IERC721ApprovalForAll) 5591 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 5592 it.fail = err 5593 return false 5594 } 5595 it.Event.Raw = log 5596 return true 5597 5598 default: 5599 return false 5600 } 5601 } 5602 // Iterator still in progress, wait for either a data or an error event 5603 select { 5604 case log := <-it.logs: 5605 it.Event = new(IERC721ApprovalForAll) 5606 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 5607 it.fail = err 5608 return false 5609 } 5610 it.Event.Raw = log 5611 return true 5612 5613 case err := <-it.sub.Err(): 5614 it.done = true 5615 it.fail = err 5616 return it.Next() 5617 } 5618 } 5619 5620 // Error returns any retrieval or parsing error occurred during filtering. 5621 func (it *IERC721ApprovalForAllIterator) Error() error { 5622 return it.fail 5623 } 5624 5625 // Close terminates the iteration process, releasing any pending underlying 5626 // resources. 5627 func (it *IERC721ApprovalForAllIterator) Close() error { 5628 it.sub.Unsubscribe() 5629 return nil 5630 } 5631 5632 // IERC721ApprovalForAll represents a ApprovalForAll event raised by the IERC721 contract. 5633 type IERC721ApprovalForAll struct { 5634 Owner common.Address 5635 Operator common.Address 5636 Approved bool 5637 Raw types.Log // Blockchain specific contextual infos 5638 } 5639 5640 // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. 5641 // 5642 // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved) 5643 func (_IERC721 *IERC721Filterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*IERC721ApprovalForAllIterator, error) { 5644 5645 var ownerRule []interface{} 5646 for _, ownerItem := range owner { 5647 ownerRule = append(ownerRule, ownerItem) 5648 } 5649 var operatorRule []interface{} 5650 for _, operatorItem := range operator { 5651 operatorRule = append(operatorRule, operatorItem) 5652 } 5653 5654 logs, sub, err := _IERC721.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule) 5655 if err != nil { 5656 return nil, err 5657 } 5658 return &IERC721ApprovalForAllIterator{contract: _IERC721.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil 5659 } 5660 5661 // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. 5662 // 5663 // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved) 5664 func (_IERC721 *IERC721Filterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *IERC721ApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) { 5665 5666 var ownerRule []interface{} 5667 for _, ownerItem := range owner { 5668 ownerRule = append(ownerRule, ownerItem) 5669 } 5670 var operatorRule []interface{} 5671 for _, operatorItem := range operator { 5672 operatorRule = append(operatorRule, operatorItem) 5673 } 5674 5675 logs, sub, err := _IERC721.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule) 5676 if err != nil { 5677 return nil, err 5678 } 5679 return event.NewSubscription(func(quit <-chan struct{}) error { 5680 defer sub.Unsubscribe() 5681 for { 5682 select { 5683 case log := <-logs: 5684 // New log arrived, parse the event and forward to the user 5685 event := new(IERC721ApprovalForAll) 5686 if err := _IERC721.contract.UnpackLog(event, "ApprovalForAll", log); err != nil { 5687 return err 5688 } 5689 event.Raw = log 5690 5691 select { 5692 case sink <- event: 5693 case err := <-sub.Err(): 5694 return err 5695 case <-quit: 5696 return nil 5697 } 5698 case err := <-sub.Err(): 5699 return err 5700 case <-quit: 5701 return nil 5702 } 5703 } 5704 }), nil 5705 } 5706 5707 // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. 5708 // 5709 // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved) 5710 func (_IERC721 *IERC721Filterer) ParseApprovalForAll(log types.Log) (*IERC721ApprovalForAll, error) { 5711 event := new(IERC721ApprovalForAll) 5712 if err := _IERC721.contract.UnpackLog(event, "ApprovalForAll", log); err != nil { 5713 return nil, err 5714 } 5715 event.Raw = log 5716 return event, nil 5717 } 5718 5719 // 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. 5720 type IERC721TransferIterator struct { 5721 Event *IERC721Transfer // Event containing the contract specifics and raw log 5722 5723 contract *bind.BoundContract // Generic contract to use for unpacking event data 5724 event string // Event name to use for unpacking event data 5725 5726 logs chan types.Log // Log channel receiving the found contract events 5727 sub ethereum.Subscription // Subscription for errors, completion and termination 5728 done bool // Whether the subscription completed delivering logs 5729 fail error // Occurred error to stop iteration 5730 } 5731 5732 // Next advances the iterator to the subsequent event, returning whether there 5733 // are any more events found. In case of a retrieval or parsing error, false is 5734 // returned and Error() can be queried for the exact failure. 5735 func (it *IERC721TransferIterator) Next() bool { 5736 // If the iterator failed, stop iterating 5737 if it.fail != nil { 5738 return false 5739 } 5740 // If the iterator completed, deliver directly whatever's available 5741 if it.done { 5742 select { 5743 case log := <-it.logs: 5744 it.Event = new(IERC721Transfer) 5745 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 5746 it.fail = err 5747 return false 5748 } 5749 it.Event.Raw = log 5750 return true 5751 5752 default: 5753 return false 5754 } 5755 } 5756 // Iterator still in progress, wait for either a data or an error event 5757 select { 5758 case log := <-it.logs: 5759 it.Event = new(IERC721Transfer) 5760 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 5761 it.fail = err 5762 return false 5763 } 5764 it.Event.Raw = log 5765 return true 5766 5767 case err := <-it.sub.Err(): 5768 it.done = true 5769 it.fail = err 5770 return it.Next() 5771 } 5772 } 5773 5774 // Error returns any retrieval or parsing error occurred during filtering. 5775 func (it *IERC721TransferIterator) Error() error { 5776 return it.fail 5777 } 5778 5779 // Close terminates the iteration process, releasing any pending underlying 5780 // resources. 5781 func (it *IERC721TransferIterator) Close() error { 5782 it.sub.Unsubscribe() 5783 return nil 5784 } 5785 5786 // IERC721Transfer represents a Transfer event raised by the IERC721 contract. 5787 type IERC721Transfer struct { 5788 From common.Address 5789 To common.Address 5790 TokenId *big.Int 5791 Raw types.Log // Blockchain specific contextual infos 5792 } 5793 5794 // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. 5795 // 5796 // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId) 5797 func (_IERC721 *IERC721Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*IERC721TransferIterator, error) { 5798 5799 var fromRule []interface{} 5800 for _, fromItem := range from { 5801 fromRule = append(fromRule, fromItem) 5802 } 5803 var toRule []interface{} 5804 for _, toItem := range to { 5805 toRule = append(toRule, toItem) 5806 } 5807 var tokenIdRule []interface{} 5808 for _, tokenIdItem := range tokenId { 5809 tokenIdRule = append(tokenIdRule, tokenIdItem) 5810 } 5811 5812 logs, sub, err := _IERC721.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule) 5813 if err != nil { 5814 return nil, err 5815 } 5816 return &IERC721TransferIterator{contract: _IERC721.contract, event: "Transfer", logs: logs, sub: sub}, nil 5817 } 5818 5819 // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. 5820 // 5821 // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId) 5822 func (_IERC721 *IERC721Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *IERC721Transfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) { 5823 5824 var fromRule []interface{} 5825 for _, fromItem := range from { 5826 fromRule = append(fromRule, fromItem) 5827 } 5828 var toRule []interface{} 5829 for _, toItem := range to { 5830 toRule = append(toRule, toItem) 5831 } 5832 var tokenIdRule []interface{} 5833 for _, tokenIdItem := range tokenId { 5834 tokenIdRule = append(tokenIdRule, tokenIdItem) 5835 } 5836 5837 logs, sub, err := _IERC721.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule) 5838 if err != nil { 5839 return nil, err 5840 } 5841 return event.NewSubscription(func(quit <-chan struct{}) error { 5842 defer sub.Unsubscribe() 5843 for { 5844 select { 5845 case log := <-logs: 5846 // New log arrived, parse the event and forward to the user 5847 event := new(IERC721Transfer) 5848 if err := _IERC721.contract.UnpackLog(event, "Transfer", log); err != nil { 5849 return err 5850 } 5851 event.Raw = log 5852 5853 select { 5854 case sink <- event: 5855 case err := <-sub.Err(): 5856 return err 5857 case <-quit: 5858 return nil 5859 } 5860 case err := <-sub.Err(): 5861 return err 5862 case <-quit: 5863 return nil 5864 } 5865 } 5866 }), nil 5867 } 5868 5869 // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. 5870 // 5871 // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId) 5872 func (_IERC721 *IERC721Filterer) ParseTransfer(log types.Log) (*IERC721Transfer, error) { 5873 event := new(IERC721Transfer) 5874 if err := _IERC721.contract.UnpackLog(event, "Transfer", log); err != nil { 5875 return nil, err 5876 } 5877 event.Raw = log 5878 return event, nil 5879 } 5880 5881 // IERC721EnumerableABI is the input ABI used to generate the binding from. 5882 const IERC721EnumerableABI = "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" 5883 5884 // IERC721EnumerableFuncSigs maps the 4-byte function signature to its string representation. 5885 var IERC721EnumerableFuncSigs = map[string]string{ 5886 "095ea7b3": "approve(address,uint256)", 5887 "70a08231": "balanceOf(address)", 5888 "081812fc": "getApproved(uint256)", 5889 "e985e9c5": "isApprovedForAll(address,address)", 5890 "6352211e": "ownerOf(uint256)", 5891 "42842e0e": "safeTransferFrom(address,address,uint256)", 5892 "b88d4fde": "safeTransferFrom(address,address,uint256,bytes)", 5893 "a22cb465": "setApprovalForAll(address,bool)", 5894 "01ffc9a7": "supportsInterface(bytes4)", 5895 "4f6ccce7": "tokenByIndex(uint256)", 5896 "2f745c59": "tokenOfOwnerByIndex(address,uint256)", 5897 "18160ddd": "totalSupply()", 5898 "23b872dd": "transferFrom(address,address,uint256)", 5899 } 5900 5901 // IERC721Enumerable is an auto generated Go binding around an Ethereum contract. 5902 type IERC721Enumerable struct { 5903 IERC721EnumerableCaller // Read-only binding to the contract 5904 IERC721EnumerableTransactor // Write-only binding to the contract 5905 IERC721EnumerableFilterer // Log filterer for contract events 5906 } 5907 5908 // IERC721EnumerableCaller is an auto generated read-only Go binding around an Ethereum contract. 5909 type IERC721EnumerableCaller struct { 5910 contract *bind.BoundContract // Generic contract wrapper for the low level calls 5911 } 5912 5913 // IERC721EnumerableTransactor is an auto generated write-only Go binding around an Ethereum contract. 5914 type IERC721EnumerableTransactor struct { 5915 contract *bind.BoundContract // Generic contract wrapper for the low level calls 5916 } 5917 5918 // IERC721EnumerableFilterer is an auto generated log filtering Go binding around an Ethereum contract events. 5919 type IERC721EnumerableFilterer struct { 5920 contract *bind.BoundContract // Generic contract wrapper for the low level calls 5921 } 5922 5923 // IERC721EnumerableSession is an auto generated Go binding around an Ethereum contract, 5924 // with pre-set call and transact options. 5925 type IERC721EnumerableSession struct { 5926 Contract *IERC721Enumerable // Generic contract binding to set the session for 5927 CallOpts bind.CallOpts // Call options to use throughout this session 5928 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 5929 } 5930 5931 // IERC721EnumerableCallerSession is an auto generated read-only Go binding around an Ethereum contract, 5932 // with pre-set call options. 5933 type IERC721EnumerableCallerSession struct { 5934 Contract *IERC721EnumerableCaller // Generic contract caller binding to set the session for 5935 CallOpts bind.CallOpts // Call options to use throughout this session 5936 } 5937 5938 // IERC721EnumerableTransactorSession is an auto generated write-only Go binding around an Ethereum contract, 5939 // with pre-set transact options. 5940 type IERC721EnumerableTransactorSession struct { 5941 Contract *IERC721EnumerableTransactor // Generic contract transactor binding to set the session for 5942 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 5943 } 5944 5945 // IERC721EnumerableRaw is an auto generated low-level Go binding around an Ethereum contract. 5946 type IERC721EnumerableRaw struct { 5947 Contract *IERC721Enumerable // Generic contract binding to access the raw methods on 5948 } 5949 5950 // IERC721EnumerableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. 5951 type IERC721EnumerableCallerRaw struct { 5952 Contract *IERC721EnumerableCaller // Generic read-only contract binding to access the raw methods on 5953 } 5954 5955 // IERC721EnumerableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. 5956 type IERC721EnumerableTransactorRaw struct { 5957 Contract *IERC721EnumerableTransactor // Generic write-only contract binding to access the raw methods on 5958 } 5959 5960 // NewIERC721Enumerable creates a new instance of IERC721Enumerable, bound to a specific deployed contract. 5961 func NewIERC721Enumerable(address common.Address, backend bind.ContractBackend) (*IERC721Enumerable, error) { 5962 contract, err := bindIERC721Enumerable(address, backend, backend, backend) 5963 if err != nil { 5964 return nil, err 5965 } 5966 return &IERC721Enumerable{IERC721EnumerableCaller: IERC721EnumerableCaller{contract: contract}, IERC721EnumerableTransactor: IERC721EnumerableTransactor{contract: contract}, IERC721EnumerableFilterer: IERC721EnumerableFilterer{contract: contract}}, nil 5967 } 5968 5969 // NewIERC721EnumerableCaller creates a new read-only instance of IERC721Enumerable, bound to a specific deployed contract. 5970 func NewIERC721EnumerableCaller(address common.Address, caller bind.ContractCaller) (*IERC721EnumerableCaller, error) { 5971 contract, err := bindIERC721Enumerable(address, caller, nil, nil) 5972 if err != nil { 5973 return nil, err 5974 } 5975 return &IERC721EnumerableCaller{contract: contract}, nil 5976 } 5977 5978 // NewIERC721EnumerableTransactor creates a new write-only instance of IERC721Enumerable, bound to a specific deployed contract. 5979 func NewIERC721EnumerableTransactor(address common.Address, transactor bind.ContractTransactor) (*IERC721EnumerableTransactor, error) { 5980 contract, err := bindIERC721Enumerable(address, nil, transactor, nil) 5981 if err != nil { 5982 return nil, err 5983 } 5984 return &IERC721EnumerableTransactor{contract: contract}, nil 5985 } 5986 5987 // NewIERC721EnumerableFilterer creates a new log filterer instance of IERC721Enumerable, bound to a specific deployed contract. 5988 func NewIERC721EnumerableFilterer(address common.Address, filterer bind.ContractFilterer) (*IERC721EnumerableFilterer, error) { 5989 contract, err := bindIERC721Enumerable(address, nil, nil, filterer) 5990 if err != nil { 5991 return nil, err 5992 } 5993 return &IERC721EnumerableFilterer{contract: contract}, nil 5994 } 5995 5996 // bindIERC721Enumerable binds a generic wrapper to an already deployed contract. 5997 func bindIERC721Enumerable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { 5998 parsed, err := abi.JSON(strings.NewReader(IERC721EnumerableABI)) 5999 if err != nil { 6000 return nil, err 6001 } 6002 return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil 6003 } 6004 6005 // Call invokes the (constant) contract method with params as input values and 6006 // sets the output to result. The result type might be a single field for simple 6007 // returns, a slice of interfaces for anonymous returns and a struct for named 6008 // returns. 6009 func (_IERC721Enumerable *IERC721EnumerableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 6010 return _IERC721Enumerable.Contract.IERC721EnumerableCaller.contract.Call(opts, result, method, params...) 6011 } 6012 6013 // Transfer initiates a plain transaction to move funds to the contract, calling 6014 // its default method if one is available. 6015 func (_IERC721Enumerable *IERC721EnumerableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 6016 return _IERC721Enumerable.Contract.IERC721EnumerableTransactor.contract.Transfer(opts) 6017 } 6018 6019 // Transact invokes the (paid) contract method with params as input values. 6020 func (_IERC721Enumerable *IERC721EnumerableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 6021 return _IERC721Enumerable.Contract.IERC721EnumerableTransactor.contract.Transact(opts, method, params...) 6022 } 6023 6024 // Call invokes the (constant) contract method with params as input values and 6025 // sets the output to result. The result type might be a single field for simple 6026 // returns, a slice of interfaces for anonymous returns and a struct for named 6027 // returns. 6028 func (_IERC721Enumerable *IERC721EnumerableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 6029 return _IERC721Enumerable.Contract.contract.Call(opts, result, method, params...) 6030 } 6031 6032 // Transfer initiates a plain transaction to move funds to the contract, calling 6033 // its default method if one is available. 6034 func (_IERC721Enumerable *IERC721EnumerableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 6035 return _IERC721Enumerable.Contract.contract.Transfer(opts) 6036 } 6037 6038 // Transact invokes the (paid) contract method with params as input values. 6039 func (_IERC721Enumerable *IERC721EnumerableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 6040 return _IERC721Enumerable.Contract.contract.Transact(opts, method, params...) 6041 } 6042 6043 // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. 6044 // 6045 // Solidity: function balanceOf(address owner) view returns(uint256 balance) 6046 func (_IERC721Enumerable *IERC721EnumerableCaller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) { 6047 var out []interface{} 6048 err := _IERC721Enumerable.contract.Call(opts, &out, "balanceOf", owner) 6049 6050 if err != nil { 6051 return *new(*big.Int), err 6052 } 6053 6054 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 6055 6056 return out0, err 6057 6058 } 6059 6060 // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. 6061 // 6062 // Solidity: function balanceOf(address owner) view returns(uint256 balance) 6063 func (_IERC721Enumerable *IERC721EnumerableSession) BalanceOf(owner common.Address) (*big.Int, error) { 6064 return _IERC721Enumerable.Contract.BalanceOf(&_IERC721Enumerable.CallOpts, owner) 6065 } 6066 6067 // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. 6068 // 6069 // Solidity: function balanceOf(address owner) view returns(uint256 balance) 6070 func (_IERC721Enumerable *IERC721EnumerableCallerSession) BalanceOf(owner common.Address) (*big.Int, error) { 6071 return _IERC721Enumerable.Contract.BalanceOf(&_IERC721Enumerable.CallOpts, owner) 6072 } 6073 6074 // GetApproved is a free data retrieval call binding the contract method 0x081812fc. 6075 // 6076 // Solidity: function getApproved(uint256 tokenId) view returns(address operator) 6077 func (_IERC721Enumerable *IERC721EnumerableCaller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) { 6078 var out []interface{} 6079 err := _IERC721Enumerable.contract.Call(opts, &out, "getApproved", tokenId) 6080 6081 if err != nil { 6082 return *new(common.Address), err 6083 } 6084 6085 out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) 6086 6087 return out0, err 6088 6089 } 6090 6091 // GetApproved is a free data retrieval call binding the contract method 0x081812fc. 6092 // 6093 // Solidity: function getApproved(uint256 tokenId) view returns(address operator) 6094 func (_IERC721Enumerable *IERC721EnumerableSession) GetApproved(tokenId *big.Int) (common.Address, error) { 6095 return _IERC721Enumerable.Contract.GetApproved(&_IERC721Enumerable.CallOpts, tokenId) 6096 } 6097 6098 // GetApproved is a free data retrieval call binding the contract method 0x081812fc. 6099 // 6100 // Solidity: function getApproved(uint256 tokenId) view returns(address operator) 6101 func (_IERC721Enumerable *IERC721EnumerableCallerSession) GetApproved(tokenId *big.Int) (common.Address, error) { 6102 return _IERC721Enumerable.Contract.GetApproved(&_IERC721Enumerable.CallOpts, tokenId) 6103 } 6104 6105 // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. 6106 // 6107 // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool) 6108 func (_IERC721Enumerable *IERC721EnumerableCaller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) { 6109 var out []interface{} 6110 err := _IERC721Enumerable.contract.Call(opts, &out, "isApprovedForAll", owner, operator) 6111 6112 if err != nil { 6113 return *new(bool), err 6114 } 6115 6116 out0 := *abi.ConvertType(out[0], new(bool)).(*bool) 6117 6118 return out0, err 6119 6120 } 6121 6122 // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. 6123 // 6124 // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool) 6125 func (_IERC721Enumerable *IERC721EnumerableSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) { 6126 return _IERC721Enumerable.Contract.IsApprovedForAll(&_IERC721Enumerable.CallOpts, owner, operator) 6127 } 6128 6129 // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. 6130 // 6131 // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool) 6132 func (_IERC721Enumerable *IERC721EnumerableCallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) { 6133 return _IERC721Enumerable.Contract.IsApprovedForAll(&_IERC721Enumerable.CallOpts, owner, operator) 6134 } 6135 6136 // OwnerOf is a free data retrieval call binding the contract method 0x6352211e. 6137 // 6138 // Solidity: function ownerOf(uint256 tokenId) view returns(address owner) 6139 func (_IERC721Enumerable *IERC721EnumerableCaller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) { 6140 var out []interface{} 6141 err := _IERC721Enumerable.contract.Call(opts, &out, "ownerOf", tokenId) 6142 6143 if err != nil { 6144 return *new(common.Address), err 6145 } 6146 6147 out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) 6148 6149 return out0, err 6150 6151 } 6152 6153 // OwnerOf is a free data retrieval call binding the contract method 0x6352211e. 6154 // 6155 // Solidity: function ownerOf(uint256 tokenId) view returns(address owner) 6156 func (_IERC721Enumerable *IERC721EnumerableSession) OwnerOf(tokenId *big.Int) (common.Address, error) { 6157 return _IERC721Enumerable.Contract.OwnerOf(&_IERC721Enumerable.CallOpts, tokenId) 6158 } 6159 6160 // OwnerOf is a free data retrieval call binding the contract method 0x6352211e. 6161 // 6162 // Solidity: function ownerOf(uint256 tokenId) view returns(address owner) 6163 func (_IERC721Enumerable *IERC721EnumerableCallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) { 6164 return _IERC721Enumerable.Contract.OwnerOf(&_IERC721Enumerable.CallOpts, tokenId) 6165 } 6166 6167 // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. 6168 // 6169 // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) 6170 func (_IERC721Enumerable *IERC721EnumerableCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { 6171 var out []interface{} 6172 err := _IERC721Enumerable.contract.Call(opts, &out, "supportsInterface", interfaceId) 6173 6174 if err != nil { 6175 return *new(bool), err 6176 } 6177 6178 out0 := *abi.ConvertType(out[0], new(bool)).(*bool) 6179 6180 return out0, err 6181 6182 } 6183 6184 // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. 6185 // 6186 // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) 6187 func (_IERC721Enumerable *IERC721EnumerableSession) SupportsInterface(interfaceId [4]byte) (bool, error) { 6188 return _IERC721Enumerable.Contract.SupportsInterface(&_IERC721Enumerable.CallOpts, interfaceId) 6189 } 6190 6191 // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. 6192 // 6193 // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) 6194 func (_IERC721Enumerable *IERC721EnumerableCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { 6195 return _IERC721Enumerable.Contract.SupportsInterface(&_IERC721Enumerable.CallOpts, interfaceId) 6196 } 6197 6198 // TokenByIndex is a free data retrieval call binding the contract method 0x4f6ccce7. 6199 // 6200 // Solidity: function tokenByIndex(uint256 index) view returns(uint256) 6201 func (_IERC721Enumerable *IERC721EnumerableCaller) TokenByIndex(opts *bind.CallOpts, index *big.Int) (*big.Int, error) { 6202 var out []interface{} 6203 err := _IERC721Enumerable.contract.Call(opts, &out, "tokenByIndex", index) 6204 6205 if err != nil { 6206 return *new(*big.Int), err 6207 } 6208 6209 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 6210 6211 return out0, err 6212 6213 } 6214 6215 // TokenByIndex is a free data retrieval call binding the contract method 0x4f6ccce7. 6216 // 6217 // Solidity: function tokenByIndex(uint256 index) view returns(uint256) 6218 func (_IERC721Enumerable *IERC721EnumerableSession) TokenByIndex(index *big.Int) (*big.Int, error) { 6219 return _IERC721Enumerable.Contract.TokenByIndex(&_IERC721Enumerable.CallOpts, index) 6220 } 6221 6222 // TokenByIndex is a free data retrieval call binding the contract method 0x4f6ccce7. 6223 // 6224 // Solidity: function tokenByIndex(uint256 index) view returns(uint256) 6225 func (_IERC721Enumerable *IERC721EnumerableCallerSession) TokenByIndex(index *big.Int) (*big.Int, error) { 6226 return _IERC721Enumerable.Contract.TokenByIndex(&_IERC721Enumerable.CallOpts, index) 6227 } 6228 6229 // TokenOfOwnerByIndex is a free data retrieval call binding the contract method 0x2f745c59. 6230 // 6231 // Solidity: function tokenOfOwnerByIndex(address owner, uint256 index) view returns(uint256 tokenId) 6232 func (_IERC721Enumerable *IERC721EnumerableCaller) TokenOfOwnerByIndex(opts *bind.CallOpts, owner common.Address, index *big.Int) (*big.Int, error) { 6233 var out []interface{} 6234 err := _IERC721Enumerable.contract.Call(opts, &out, "tokenOfOwnerByIndex", owner, index) 6235 6236 if err != nil { 6237 return *new(*big.Int), err 6238 } 6239 6240 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 6241 6242 return out0, err 6243 6244 } 6245 6246 // TokenOfOwnerByIndex is a free data retrieval call binding the contract method 0x2f745c59. 6247 // 6248 // Solidity: function tokenOfOwnerByIndex(address owner, uint256 index) view returns(uint256 tokenId) 6249 func (_IERC721Enumerable *IERC721EnumerableSession) TokenOfOwnerByIndex(owner common.Address, index *big.Int) (*big.Int, error) { 6250 return _IERC721Enumerable.Contract.TokenOfOwnerByIndex(&_IERC721Enumerable.CallOpts, owner, index) 6251 } 6252 6253 // TokenOfOwnerByIndex is a free data retrieval call binding the contract method 0x2f745c59. 6254 // 6255 // Solidity: function tokenOfOwnerByIndex(address owner, uint256 index) view returns(uint256 tokenId) 6256 func (_IERC721Enumerable *IERC721EnumerableCallerSession) TokenOfOwnerByIndex(owner common.Address, index *big.Int) (*big.Int, error) { 6257 return _IERC721Enumerable.Contract.TokenOfOwnerByIndex(&_IERC721Enumerable.CallOpts, owner, index) 6258 } 6259 6260 // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. 6261 // 6262 // Solidity: function totalSupply() view returns(uint256) 6263 func (_IERC721Enumerable *IERC721EnumerableCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { 6264 var out []interface{} 6265 err := _IERC721Enumerable.contract.Call(opts, &out, "totalSupply") 6266 6267 if err != nil { 6268 return *new(*big.Int), err 6269 } 6270 6271 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 6272 6273 return out0, err 6274 6275 } 6276 6277 // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. 6278 // 6279 // Solidity: function totalSupply() view returns(uint256) 6280 func (_IERC721Enumerable *IERC721EnumerableSession) TotalSupply() (*big.Int, error) { 6281 return _IERC721Enumerable.Contract.TotalSupply(&_IERC721Enumerable.CallOpts) 6282 } 6283 6284 // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. 6285 // 6286 // Solidity: function totalSupply() view returns(uint256) 6287 func (_IERC721Enumerable *IERC721EnumerableCallerSession) TotalSupply() (*big.Int, error) { 6288 return _IERC721Enumerable.Contract.TotalSupply(&_IERC721Enumerable.CallOpts) 6289 } 6290 6291 // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. 6292 // 6293 // Solidity: function approve(address to, uint256 tokenId) returns() 6294 func (_IERC721Enumerable *IERC721EnumerableTransactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 6295 return _IERC721Enumerable.contract.Transact(opts, "approve", to, tokenId) 6296 } 6297 6298 // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. 6299 // 6300 // Solidity: function approve(address to, uint256 tokenId) returns() 6301 func (_IERC721Enumerable *IERC721EnumerableSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) { 6302 return _IERC721Enumerable.Contract.Approve(&_IERC721Enumerable.TransactOpts, to, tokenId) 6303 } 6304 6305 // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. 6306 // 6307 // Solidity: function approve(address to, uint256 tokenId) returns() 6308 func (_IERC721Enumerable *IERC721EnumerableTransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) { 6309 return _IERC721Enumerable.Contract.Approve(&_IERC721Enumerable.TransactOpts, to, tokenId) 6310 } 6311 6312 // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. 6313 // 6314 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns() 6315 func (_IERC721Enumerable *IERC721EnumerableTransactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 6316 return _IERC721Enumerable.contract.Transact(opts, "safeTransferFrom", from, to, tokenId) 6317 } 6318 6319 // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. 6320 // 6321 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns() 6322 func (_IERC721Enumerable *IERC721EnumerableSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 6323 return _IERC721Enumerable.Contract.SafeTransferFrom(&_IERC721Enumerable.TransactOpts, from, to, tokenId) 6324 } 6325 6326 // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. 6327 // 6328 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns() 6329 func (_IERC721Enumerable *IERC721EnumerableTransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 6330 return _IERC721Enumerable.Contract.SafeTransferFrom(&_IERC721Enumerable.TransactOpts, from, to, tokenId) 6331 } 6332 6333 // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. 6334 // 6335 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns() 6336 func (_IERC721Enumerable *IERC721EnumerableTransactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) { 6337 return _IERC721Enumerable.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, data) 6338 } 6339 6340 // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. 6341 // 6342 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns() 6343 func (_IERC721Enumerable *IERC721EnumerableSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) { 6344 return _IERC721Enumerable.Contract.SafeTransferFrom0(&_IERC721Enumerable.TransactOpts, from, to, tokenId, data) 6345 } 6346 6347 // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. 6348 // 6349 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns() 6350 func (_IERC721Enumerable *IERC721EnumerableTransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) { 6351 return _IERC721Enumerable.Contract.SafeTransferFrom0(&_IERC721Enumerable.TransactOpts, from, to, tokenId, data) 6352 } 6353 6354 // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. 6355 // 6356 // Solidity: function setApprovalForAll(address operator, bool _approved) returns() 6357 func (_IERC721Enumerable *IERC721EnumerableTransactor) SetApprovalForAll(opts *bind.TransactOpts, operator common.Address, _approved bool) (*types.Transaction, error) { 6358 return _IERC721Enumerable.contract.Transact(opts, "setApprovalForAll", operator, _approved) 6359 } 6360 6361 // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. 6362 // 6363 // Solidity: function setApprovalForAll(address operator, bool _approved) returns() 6364 func (_IERC721Enumerable *IERC721EnumerableSession) SetApprovalForAll(operator common.Address, _approved bool) (*types.Transaction, error) { 6365 return _IERC721Enumerable.Contract.SetApprovalForAll(&_IERC721Enumerable.TransactOpts, operator, _approved) 6366 } 6367 6368 // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. 6369 // 6370 // Solidity: function setApprovalForAll(address operator, bool _approved) returns() 6371 func (_IERC721Enumerable *IERC721EnumerableTransactorSession) SetApprovalForAll(operator common.Address, _approved bool) (*types.Transaction, error) { 6372 return _IERC721Enumerable.Contract.SetApprovalForAll(&_IERC721Enumerable.TransactOpts, operator, _approved) 6373 } 6374 6375 // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. 6376 // 6377 // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns() 6378 func (_IERC721Enumerable *IERC721EnumerableTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 6379 return _IERC721Enumerable.contract.Transact(opts, "transferFrom", from, to, tokenId) 6380 } 6381 6382 // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. 6383 // 6384 // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns() 6385 func (_IERC721Enumerable *IERC721EnumerableSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 6386 return _IERC721Enumerable.Contract.TransferFrom(&_IERC721Enumerable.TransactOpts, from, to, tokenId) 6387 } 6388 6389 // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. 6390 // 6391 // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns() 6392 func (_IERC721Enumerable *IERC721EnumerableTransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 6393 return _IERC721Enumerable.Contract.TransferFrom(&_IERC721Enumerable.TransactOpts, from, to, tokenId) 6394 } 6395 6396 // IERC721EnumerableApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the IERC721Enumerable contract. 6397 type IERC721EnumerableApprovalIterator struct { 6398 Event *IERC721EnumerableApproval // Event containing the contract specifics and raw log 6399 6400 contract *bind.BoundContract // Generic contract to use for unpacking event data 6401 event string // Event name to use for unpacking event data 6402 6403 logs chan types.Log // Log channel receiving the found contract events 6404 sub ethereum.Subscription // Subscription for errors, completion and termination 6405 done bool // Whether the subscription completed delivering logs 6406 fail error // Occurred error to stop iteration 6407 } 6408 6409 // Next advances the iterator to the subsequent event, returning whether there 6410 // are any more events found. In case of a retrieval or parsing error, false is 6411 // returned and Error() can be queried for the exact failure. 6412 func (it *IERC721EnumerableApprovalIterator) Next() bool { 6413 // If the iterator failed, stop iterating 6414 if it.fail != nil { 6415 return false 6416 } 6417 // If the iterator completed, deliver directly whatever's available 6418 if it.done { 6419 select { 6420 case log := <-it.logs: 6421 it.Event = new(IERC721EnumerableApproval) 6422 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 6423 it.fail = err 6424 return false 6425 } 6426 it.Event.Raw = log 6427 return true 6428 6429 default: 6430 return false 6431 } 6432 } 6433 // Iterator still in progress, wait for either a data or an error event 6434 select { 6435 case log := <-it.logs: 6436 it.Event = new(IERC721EnumerableApproval) 6437 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 6438 it.fail = err 6439 return false 6440 } 6441 it.Event.Raw = log 6442 return true 6443 6444 case err := <-it.sub.Err(): 6445 it.done = true 6446 it.fail = err 6447 return it.Next() 6448 } 6449 } 6450 6451 // Error returns any retrieval or parsing error occurred during filtering. 6452 func (it *IERC721EnumerableApprovalIterator) Error() error { 6453 return it.fail 6454 } 6455 6456 // Close terminates the iteration process, releasing any pending underlying 6457 // resources. 6458 func (it *IERC721EnumerableApprovalIterator) Close() error { 6459 it.sub.Unsubscribe() 6460 return nil 6461 } 6462 6463 // IERC721EnumerableApproval represents a Approval event raised by the IERC721Enumerable contract. 6464 type IERC721EnumerableApproval struct { 6465 Owner common.Address 6466 Approved common.Address 6467 TokenId *big.Int 6468 Raw types.Log // Blockchain specific contextual infos 6469 } 6470 6471 // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. 6472 // 6473 // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId) 6474 func (_IERC721Enumerable *IERC721EnumerableFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*IERC721EnumerableApprovalIterator, error) { 6475 6476 var ownerRule []interface{} 6477 for _, ownerItem := range owner { 6478 ownerRule = append(ownerRule, ownerItem) 6479 } 6480 var approvedRule []interface{} 6481 for _, approvedItem := range approved { 6482 approvedRule = append(approvedRule, approvedItem) 6483 } 6484 var tokenIdRule []interface{} 6485 for _, tokenIdItem := range tokenId { 6486 tokenIdRule = append(tokenIdRule, tokenIdItem) 6487 } 6488 6489 logs, sub, err := _IERC721Enumerable.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule) 6490 if err != nil { 6491 return nil, err 6492 } 6493 return &IERC721EnumerableApprovalIterator{contract: _IERC721Enumerable.contract, event: "Approval", logs: logs, sub: sub}, nil 6494 } 6495 6496 // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. 6497 // 6498 // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId) 6499 func (_IERC721Enumerable *IERC721EnumerableFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *IERC721EnumerableApproval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) { 6500 6501 var ownerRule []interface{} 6502 for _, ownerItem := range owner { 6503 ownerRule = append(ownerRule, ownerItem) 6504 } 6505 var approvedRule []interface{} 6506 for _, approvedItem := range approved { 6507 approvedRule = append(approvedRule, approvedItem) 6508 } 6509 var tokenIdRule []interface{} 6510 for _, tokenIdItem := range tokenId { 6511 tokenIdRule = append(tokenIdRule, tokenIdItem) 6512 } 6513 6514 logs, sub, err := _IERC721Enumerable.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule) 6515 if err != nil { 6516 return nil, err 6517 } 6518 return event.NewSubscription(func(quit <-chan struct{}) error { 6519 defer sub.Unsubscribe() 6520 for { 6521 select { 6522 case log := <-logs: 6523 // New log arrived, parse the event and forward to the user 6524 event := new(IERC721EnumerableApproval) 6525 if err := _IERC721Enumerable.contract.UnpackLog(event, "Approval", log); err != nil { 6526 return err 6527 } 6528 event.Raw = log 6529 6530 select { 6531 case sink <- event: 6532 case err := <-sub.Err(): 6533 return err 6534 case <-quit: 6535 return nil 6536 } 6537 case err := <-sub.Err(): 6538 return err 6539 case <-quit: 6540 return nil 6541 } 6542 } 6543 }), nil 6544 } 6545 6546 // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. 6547 // 6548 // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId) 6549 func (_IERC721Enumerable *IERC721EnumerableFilterer) ParseApproval(log types.Log) (*IERC721EnumerableApproval, error) { 6550 event := new(IERC721EnumerableApproval) 6551 if err := _IERC721Enumerable.contract.UnpackLog(event, "Approval", log); err != nil { 6552 return nil, err 6553 } 6554 event.Raw = log 6555 return event, nil 6556 } 6557 6558 // IERC721EnumerableApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the IERC721Enumerable contract. 6559 type IERC721EnumerableApprovalForAllIterator struct { 6560 Event *IERC721EnumerableApprovalForAll // Event containing the contract specifics and raw log 6561 6562 contract *bind.BoundContract // Generic contract to use for unpacking event data 6563 event string // Event name to use for unpacking event data 6564 6565 logs chan types.Log // Log channel receiving the found contract events 6566 sub ethereum.Subscription // Subscription for errors, completion and termination 6567 done bool // Whether the subscription completed delivering logs 6568 fail error // Occurred error to stop iteration 6569 } 6570 6571 // Next advances the iterator to the subsequent event, returning whether there 6572 // are any more events found. In case of a retrieval or parsing error, false is 6573 // returned and Error() can be queried for the exact failure. 6574 func (it *IERC721EnumerableApprovalForAllIterator) Next() bool { 6575 // If the iterator failed, stop iterating 6576 if it.fail != nil { 6577 return false 6578 } 6579 // If the iterator completed, deliver directly whatever's available 6580 if it.done { 6581 select { 6582 case log := <-it.logs: 6583 it.Event = new(IERC721EnumerableApprovalForAll) 6584 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 6585 it.fail = err 6586 return false 6587 } 6588 it.Event.Raw = log 6589 return true 6590 6591 default: 6592 return false 6593 } 6594 } 6595 // Iterator still in progress, wait for either a data or an error event 6596 select { 6597 case log := <-it.logs: 6598 it.Event = new(IERC721EnumerableApprovalForAll) 6599 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 6600 it.fail = err 6601 return false 6602 } 6603 it.Event.Raw = log 6604 return true 6605 6606 case err := <-it.sub.Err(): 6607 it.done = true 6608 it.fail = err 6609 return it.Next() 6610 } 6611 } 6612 6613 // Error returns any retrieval or parsing error occurred during filtering. 6614 func (it *IERC721EnumerableApprovalForAllIterator) Error() error { 6615 return it.fail 6616 } 6617 6618 // Close terminates the iteration process, releasing any pending underlying 6619 // resources. 6620 func (it *IERC721EnumerableApprovalForAllIterator) Close() error { 6621 it.sub.Unsubscribe() 6622 return nil 6623 } 6624 6625 // IERC721EnumerableApprovalForAll represents a ApprovalForAll event raised by the IERC721Enumerable contract. 6626 type IERC721EnumerableApprovalForAll struct { 6627 Owner common.Address 6628 Operator common.Address 6629 Approved bool 6630 Raw types.Log // Blockchain specific contextual infos 6631 } 6632 6633 // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. 6634 // 6635 // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved) 6636 func (_IERC721Enumerable *IERC721EnumerableFilterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*IERC721EnumerableApprovalForAllIterator, error) { 6637 6638 var ownerRule []interface{} 6639 for _, ownerItem := range owner { 6640 ownerRule = append(ownerRule, ownerItem) 6641 } 6642 var operatorRule []interface{} 6643 for _, operatorItem := range operator { 6644 operatorRule = append(operatorRule, operatorItem) 6645 } 6646 6647 logs, sub, err := _IERC721Enumerable.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule) 6648 if err != nil { 6649 return nil, err 6650 } 6651 return &IERC721EnumerableApprovalForAllIterator{contract: _IERC721Enumerable.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil 6652 } 6653 6654 // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. 6655 // 6656 // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved) 6657 func (_IERC721Enumerable *IERC721EnumerableFilterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *IERC721EnumerableApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) { 6658 6659 var ownerRule []interface{} 6660 for _, ownerItem := range owner { 6661 ownerRule = append(ownerRule, ownerItem) 6662 } 6663 var operatorRule []interface{} 6664 for _, operatorItem := range operator { 6665 operatorRule = append(operatorRule, operatorItem) 6666 } 6667 6668 logs, sub, err := _IERC721Enumerable.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule) 6669 if err != nil { 6670 return nil, err 6671 } 6672 return event.NewSubscription(func(quit <-chan struct{}) error { 6673 defer sub.Unsubscribe() 6674 for { 6675 select { 6676 case log := <-logs: 6677 // New log arrived, parse the event and forward to the user 6678 event := new(IERC721EnumerableApprovalForAll) 6679 if err := _IERC721Enumerable.contract.UnpackLog(event, "ApprovalForAll", log); err != nil { 6680 return err 6681 } 6682 event.Raw = log 6683 6684 select { 6685 case sink <- event: 6686 case err := <-sub.Err(): 6687 return err 6688 case <-quit: 6689 return nil 6690 } 6691 case err := <-sub.Err(): 6692 return err 6693 case <-quit: 6694 return nil 6695 } 6696 } 6697 }), nil 6698 } 6699 6700 // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. 6701 // 6702 // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved) 6703 func (_IERC721Enumerable *IERC721EnumerableFilterer) ParseApprovalForAll(log types.Log) (*IERC721EnumerableApprovalForAll, error) { 6704 event := new(IERC721EnumerableApprovalForAll) 6705 if err := _IERC721Enumerable.contract.UnpackLog(event, "ApprovalForAll", log); err != nil { 6706 return nil, err 6707 } 6708 event.Raw = log 6709 return event, nil 6710 } 6711 6712 // IERC721EnumerableTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the IERC721Enumerable contract. 6713 type IERC721EnumerableTransferIterator struct { 6714 Event *IERC721EnumerableTransfer // Event containing the contract specifics and raw log 6715 6716 contract *bind.BoundContract // Generic contract to use for unpacking event data 6717 event string // Event name to use for unpacking event data 6718 6719 logs chan types.Log // Log channel receiving the found contract events 6720 sub ethereum.Subscription // Subscription for errors, completion and termination 6721 done bool // Whether the subscription completed delivering logs 6722 fail error // Occurred error to stop iteration 6723 } 6724 6725 // Next advances the iterator to the subsequent event, returning whether there 6726 // are any more events found. In case of a retrieval or parsing error, false is 6727 // returned and Error() can be queried for the exact failure. 6728 func (it *IERC721EnumerableTransferIterator) Next() bool { 6729 // If the iterator failed, stop iterating 6730 if it.fail != nil { 6731 return false 6732 } 6733 // If the iterator completed, deliver directly whatever's available 6734 if it.done { 6735 select { 6736 case log := <-it.logs: 6737 it.Event = new(IERC721EnumerableTransfer) 6738 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 6739 it.fail = err 6740 return false 6741 } 6742 it.Event.Raw = log 6743 return true 6744 6745 default: 6746 return false 6747 } 6748 } 6749 // Iterator still in progress, wait for either a data or an error event 6750 select { 6751 case log := <-it.logs: 6752 it.Event = new(IERC721EnumerableTransfer) 6753 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 6754 it.fail = err 6755 return false 6756 } 6757 it.Event.Raw = log 6758 return true 6759 6760 case err := <-it.sub.Err(): 6761 it.done = true 6762 it.fail = err 6763 return it.Next() 6764 } 6765 } 6766 6767 // Error returns any retrieval or parsing error occurred during filtering. 6768 func (it *IERC721EnumerableTransferIterator) Error() error { 6769 return it.fail 6770 } 6771 6772 // Close terminates the iteration process, releasing any pending underlying 6773 // resources. 6774 func (it *IERC721EnumerableTransferIterator) Close() error { 6775 it.sub.Unsubscribe() 6776 return nil 6777 } 6778 6779 // IERC721EnumerableTransfer represents a Transfer event raised by the IERC721Enumerable contract. 6780 type IERC721EnumerableTransfer struct { 6781 From common.Address 6782 To common.Address 6783 TokenId *big.Int 6784 Raw types.Log // Blockchain specific contextual infos 6785 } 6786 6787 // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. 6788 // 6789 // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId) 6790 func (_IERC721Enumerable *IERC721EnumerableFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*IERC721EnumerableTransferIterator, error) { 6791 6792 var fromRule []interface{} 6793 for _, fromItem := range from { 6794 fromRule = append(fromRule, fromItem) 6795 } 6796 var toRule []interface{} 6797 for _, toItem := range to { 6798 toRule = append(toRule, toItem) 6799 } 6800 var tokenIdRule []interface{} 6801 for _, tokenIdItem := range tokenId { 6802 tokenIdRule = append(tokenIdRule, tokenIdItem) 6803 } 6804 6805 logs, sub, err := _IERC721Enumerable.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule) 6806 if err != nil { 6807 return nil, err 6808 } 6809 return &IERC721EnumerableTransferIterator{contract: _IERC721Enumerable.contract, event: "Transfer", logs: logs, sub: sub}, nil 6810 } 6811 6812 // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. 6813 // 6814 // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId) 6815 func (_IERC721Enumerable *IERC721EnumerableFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *IERC721EnumerableTransfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) { 6816 6817 var fromRule []interface{} 6818 for _, fromItem := range from { 6819 fromRule = append(fromRule, fromItem) 6820 } 6821 var toRule []interface{} 6822 for _, toItem := range to { 6823 toRule = append(toRule, toItem) 6824 } 6825 var tokenIdRule []interface{} 6826 for _, tokenIdItem := range tokenId { 6827 tokenIdRule = append(tokenIdRule, tokenIdItem) 6828 } 6829 6830 logs, sub, err := _IERC721Enumerable.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule) 6831 if err != nil { 6832 return nil, err 6833 } 6834 return event.NewSubscription(func(quit <-chan struct{}) error { 6835 defer sub.Unsubscribe() 6836 for { 6837 select { 6838 case log := <-logs: 6839 // New log arrived, parse the event and forward to the user 6840 event := new(IERC721EnumerableTransfer) 6841 if err := _IERC721Enumerable.contract.UnpackLog(event, "Transfer", log); err != nil { 6842 return err 6843 } 6844 event.Raw = log 6845 6846 select { 6847 case sink <- event: 6848 case err := <-sub.Err(): 6849 return err 6850 case <-quit: 6851 return nil 6852 } 6853 case err := <-sub.Err(): 6854 return err 6855 case <-quit: 6856 return nil 6857 } 6858 } 6859 }), nil 6860 } 6861 6862 // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. 6863 // 6864 // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId) 6865 func (_IERC721Enumerable *IERC721EnumerableFilterer) ParseTransfer(log types.Log) (*IERC721EnumerableTransfer, error) { 6866 event := new(IERC721EnumerableTransfer) 6867 if err := _IERC721Enumerable.contract.UnpackLog(event, "Transfer", log); err != nil { 6868 return nil, err 6869 } 6870 event.Raw = log 6871 return event, nil 6872 } 6873 6874 // IERC721MetadataABI is the input ABI used to generate the binding from. 6875 const IERC721MetadataABI = "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" 6876 6877 // IERC721MetadataFuncSigs maps the 4-byte function signature to its string representation. 6878 var IERC721MetadataFuncSigs = map[string]string{ 6879 "095ea7b3": "approve(address,uint256)", 6880 "70a08231": "balanceOf(address)", 6881 "081812fc": "getApproved(uint256)", 6882 "e985e9c5": "isApprovedForAll(address,address)", 6883 "06fdde03": "name()", 6884 "6352211e": "ownerOf(uint256)", 6885 "42842e0e": "safeTransferFrom(address,address,uint256)", 6886 "b88d4fde": "safeTransferFrom(address,address,uint256,bytes)", 6887 "a22cb465": "setApprovalForAll(address,bool)", 6888 "01ffc9a7": "supportsInterface(bytes4)", 6889 "95d89b41": "symbol()", 6890 "c87b56dd": "tokenURI(uint256)", 6891 "23b872dd": "transferFrom(address,address,uint256)", 6892 } 6893 6894 // IERC721Metadata is an auto generated Go binding around an Ethereum contract. 6895 type IERC721Metadata struct { 6896 IERC721MetadataCaller // Read-only binding to the contract 6897 IERC721MetadataTransactor // Write-only binding to the contract 6898 IERC721MetadataFilterer // Log filterer for contract events 6899 } 6900 6901 // IERC721MetadataCaller is an auto generated read-only Go binding around an Ethereum contract. 6902 type IERC721MetadataCaller struct { 6903 contract *bind.BoundContract // Generic contract wrapper for the low level calls 6904 } 6905 6906 // IERC721MetadataTransactor is an auto generated write-only Go binding around an Ethereum contract. 6907 type IERC721MetadataTransactor struct { 6908 contract *bind.BoundContract // Generic contract wrapper for the low level calls 6909 } 6910 6911 // IERC721MetadataFilterer is an auto generated log filtering Go binding around an Ethereum contract events. 6912 type IERC721MetadataFilterer struct { 6913 contract *bind.BoundContract // Generic contract wrapper for the low level calls 6914 } 6915 6916 // IERC721MetadataSession is an auto generated Go binding around an Ethereum contract, 6917 // with pre-set call and transact options. 6918 type IERC721MetadataSession struct { 6919 Contract *IERC721Metadata // Generic contract binding to set the session for 6920 CallOpts bind.CallOpts // Call options to use throughout this session 6921 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 6922 } 6923 6924 // IERC721MetadataCallerSession is an auto generated read-only Go binding around an Ethereum contract, 6925 // with pre-set call options. 6926 type IERC721MetadataCallerSession struct { 6927 Contract *IERC721MetadataCaller // Generic contract caller binding to set the session for 6928 CallOpts bind.CallOpts // Call options to use throughout this session 6929 } 6930 6931 // IERC721MetadataTransactorSession is an auto generated write-only Go binding around an Ethereum contract, 6932 // with pre-set transact options. 6933 type IERC721MetadataTransactorSession struct { 6934 Contract *IERC721MetadataTransactor // Generic contract transactor binding to set the session for 6935 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 6936 } 6937 6938 // IERC721MetadataRaw is an auto generated low-level Go binding around an Ethereum contract. 6939 type IERC721MetadataRaw struct { 6940 Contract *IERC721Metadata // Generic contract binding to access the raw methods on 6941 } 6942 6943 // IERC721MetadataCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. 6944 type IERC721MetadataCallerRaw struct { 6945 Contract *IERC721MetadataCaller // Generic read-only contract binding to access the raw methods on 6946 } 6947 6948 // IERC721MetadataTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. 6949 type IERC721MetadataTransactorRaw struct { 6950 Contract *IERC721MetadataTransactor // Generic write-only contract binding to access the raw methods on 6951 } 6952 6953 // NewIERC721Metadata creates a new instance of IERC721Metadata, bound to a specific deployed contract. 6954 func NewIERC721Metadata(address common.Address, backend bind.ContractBackend) (*IERC721Metadata, error) { 6955 contract, err := bindIERC721Metadata(address, backend, backend, backend) 6956 if err != nil { 6957 return nil, err 6958 } 6959 return &IERC721Metadata{IERC721MetadataCaller: IERC721MetadataCaller{contract: contract}, IERC721MetadataTransactor: IERC721MetadataTransactor{contract: contract}, IERC721MetadataFilterer: IERC721MetadataFilterer{contract: contract}}, nil 6960 } 6961 6962 // NewIERC721MetadataCaller creates a new read-only instance of IERC721Metadata, bound to a specific deployed contract. 6963 func NewIERC721MetadataCaller(address common.Address, caller bind.ContractCaller) (*IERC721MetadataCaller, error) { 6964 contract, err := bindIERC721Metadata(address, caller, nil, nil) 6965 if err != nil { 6966 return nil, err 6967 } 6968 return &IERC721MetadataCaller{contract: contract}, nil 6969 } 6970 6971 // NewIERC721MetadataTransactor creates a new write-only instance of IERC721Metadata, bound to a specific deployed contract. 6972 func NewIERC721MetadataTransactor(address common.Address, transactor bind.ContractTransactor) (*IERC721MetadataTransactor, error) { 6973 contract, err := bindIERC721Metadata(address, nil, transactor, nil) 6974 if err != nil { 6975 return nil, err 6976 } 6977 return &IERC721MetadataTransactor{contract: contract}, nil 6978 } 6979 6980 // NewIERC721MetadataFilterer creates a new log filterer instance of IERC721Metadata, bound to a specific deployed contract. 6981 func NewIERC721MetadataFilterer(address common.Address, filterer bind.ContractFilterer) (*IERC721MetadataFilterer, error) { 6982 contract, err := bindIERC721Metadata(address, nil, nil, filterer) 6983 if err != nil { 6984 return nil, err 6985 } 6986 return &IERC721MetadataFilterer{contract: contract}, nil 6987 } 6988 6989 // bindIERC721Metadata binds a generic wrapper to an already deployed contract. 6990 func bindIERC721Metadata(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { 6991 parsed, err := abi.JSON(strings.NewReader(IERC721MetadataABI)) 6992 if err != nil { 6993 return nil, err 6994 } 6995 return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil 6996 } 6997 6998 // Call invokes the (constant) contract method with params as input values and 6999 // sets the output to result. The result type might be a single field for simple 7000 // returns, a slice of interfaces for anonymous returns and a struct for named 7001 // returns. 7002 func (_IERC721Metadata *IERC721MetadataRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 7003 return _IERC721Metadata.Contract.IERC721MetadataCaller.contract.Call(opts, result, method, params...) 7004 } 7005 7006 // Transfer initiates a plain transaction to move funds to the contract, calling 7007 // its default method if one is available. 7008 func (_IERC721Metadata *IERC721MetadataRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 7009 return _IERC721Metadata.Contract.IERC721MetadataTransactor.contract.Transfer(opts) 7010 } 7011 7012 // Transact invokes the (paid) contract method with params as input values. 7013 func (_IERC721Metadata *IERC721MetadataRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 7014 return _IERC721Metadata.Contract.IERC721MetadataTransactor.contract.Transact(opts, method, params...) 7015 } 7016 7017 // Call invokes the (constant) contract method with params as input values and 7018 // sets the output to result. The result type might be a single field for simple 7019 // returns, a slice of interfaces for anonymous returns and a struct for named 7020 // returns. 7021 func (_IERC721Metadata *IERC721MetadataCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 7022 return _IERC721Metadata.Contract.contract.Call(opts, result, method, params...) 7023 } 7024 7025 // Transfer initiates a plain transaction to move funds to the contract, calling 7026 // its default method if one is available. 7027 func (_IERC721Metadata *IERC721MetadataTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 7028 return _IERC721Metadata.Contract.contract.Transfer(opts) 7029 } 7030 7031 // Transact invokes the (paid) contract method with params as input values. 7032 func (_IERC721Metadata *IERC721MetadataTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 7033 return _IERC721Metadata.Contract.contract.Transact(opts, method, params...) 7034 } 7035 7036 // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. 7037 // 7038 // Solidity: function balanceOf(address owner) view returns(uint256 balance) 7039 func (_IERC721Metadata *IERC721MetadataCaller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) { 7040 var out []interface{} 7041 err := _IERC721Metadata.contract.Call(opts, &out, "balanceOf", owner) 7042 7043 if err != nil { 7044 return *new(*big.Int), err 7045 } 7046 7047 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 7048 7049 return out0, err 7050 7051 } 7052 7053 // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. 7054 // 7055 // Solidity: function balanceOf(address owner) view returns(uint256 balance) 7056 func (_IERC721Metadata *IERC721MetadataSession) BalanceOf(owner common.Address) (*big.Int, error) { 7057 return _IERC721Metadata.Contract.BalanceOf(&_IERC721Metadata.CallOpts, owner) 7058 } 7059 7060 // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. 7061 // 7062 // Solidity: function balanceOf(address owner) view returns(uint256 balance) 7063 func (_IERC721Metadata *IERC721MetadataCallerSession) BalanceOf(owner common.Address) (*big.Int, error) { 7064 return _IERC721Metadata.Contract.BalanceOf(&_IERC721Metadata.CallOpts, owner) 7065 } 7066 7067 // GetApproved is a free data retrieval call binding the contract method 0x081812fc. 7068 // 7069 // Solidity: function getApproved(uint256 tokenId) view returns(address operator) 7070 func (_IERC721Metadata *IERC721MetadataCaller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) { 7071 var out []interface{} 7072 err := _IERC721Metadata.contract.Call(opts, &out, "getApproved", tokenId) 7073 7074 if err != nil { 7075 return *new(common.Address), err 7076 } 7077 7078 out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) 7079 7080 return out0, err 7081 7082 } 7083 7084 // GetApproved is a free data retrieval call binding the contract method 0x081812fc. 7085 // 7086 // Solidity: function getApproved(uint256 tokenId) view returns(address operator) 7087 func (_IERC721Metadata *IERC721MetadataSession) GetApproved(tokenId *big.Int) (common.Address, error) { 7088 return _IERC721Metadata.Contract.GetApproved(&_IERC721Metadata.CallOpts, tokenId) 7089 } 7090 7091 // GetApproved is a free data retrieval call binding the contract method 0x081812fc. 7092 // 7093 // Solidity: function getApproved(uint256 tokenId) view returns(address operator) 7094 func (_IERC721Metadata *IERC721MetadataCallerSession) GetApproved(tokenId *big.Int) (common.Address, error) { 7095 return _IERC721Metadata.Contract.GetApproved(&_IERC721Metadata.CallOpts, tokenId) 7096 } 7097 7098 // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. 7099 // 7100 // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool) 7101 func (_IERC721Metadata *IERC721MetadataCaller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) { 7102 var out []interface{} 7103 err := _IERC721Metadata.contract.Call(opts, &out, "isApprovedForAll", owner, operator) 7104 7105 if err != nil { 7106 return *new(bool), err 7107 } 7108 7109 out0 := *abi.ConvertType(out[0], new(bool)).(*bool) 7110 7111 return out0, err 7112 7113 } 7114 7115 // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. 7116 // 7117 // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool) 7118 func (_IERC721Metadata *IERC721MetadataSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) { 7119 return _IERC721Metadata.Contract.IsApprovedForAll(&_IERC721Metadata.CallOpts, owner, operator) 7120 } 7121 7122 // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5. 7123 // 7124 // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool) 7125 func (_IERC721Metadata *IERC721MetadataCallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) { 7126 return _IERC721Metadata.Contract.IsApprovedForAll(&_IERC721Metadata.CallOpts, owner, operator) 7127 } 7128 7129 // Name is a free data retrieval call binding the contract method 0x06fdde03. 7130 // 7131 // Solidity: function name() view returns(string) 7132 func (_IERC721Metadata *IERC721MetadataCaller) Name(opts *bind.CallOpts) (string, error) { 7133 var out []interface{} 7134 err := _IERC721Metadata.contract.Call(opts, &out, "name") 7135 7136 if err != nil { 7137 return *new(string), err 7138 } 7139 7140 out0 := *abi.ConvertType(out[0], new(string)).(*string) 7141 7142 return out0, err 7143 7144 } 7145 7146 // Name is a free data retrieval call binding the contract method 0x06fdde03. 7147 // 7148 // Solidity: function name() view returns(string) 7149 func (_IERC721Metadata *IERC721MetadataSession) Name() (string, error) { 7150 return _IERC721Metadata.Contract.Name(&_IERC721Metadata.CallOpts) 7151 } 7152 7153 // Name is a free data retrieval call binding the contract method 0x06fdde03. 7154 // 7155 // Solidity: function name() view returns(string) 7156 func (_IERC721Metadata *IERC721MetadataCallerSession) Name() (string, error) { 7157 return _IERC721Metadata.Contract.Name(&_IERC721Metadata.CallOpts) 7158 } 7159 7160 // OwnerOf is a free data retrieval call binding the contract method 0x6352211e. 7161 // 7162 // Solidity: function ownerOf(uint256 tokenId) view returns(address owner) 7163 func (_IERC721Metadata *IERC721MetadataCaller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) { 7164 var out []interface{} 7165 err := _IERC721Metadata.contract.Call(opts, &out, "ownerOf", tokenId) 7166 7167 if err != nil { 7168 return *new(common.Address), err 7169 } 7170 7171 out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) 7172 7173 return out0, err 7174 7175 } 7176 7177 // OwnerOf is a free data retrieval call binding the contract method 0x6352211e. 7178 // 7179 // Solidity: function ownerOf(uint256 tokenId) view returns(address owner) 7180 func (_IERC721Metadata *IERC721MetadataSession) OwnerOf(tokenId *big.Int) (common.Address, error) { 7181 return _IERC721Metadata.Contract.OwnerOf(&_IERC721Metadata.CallOpts, tokenId) 7182 } 7183 7184 // OwnerOf is a free data retrieval call binding the contract method 0x6352211e. 7185 // 7186 // Solidity: function ownerOf(uint256 tokenId) view returns(address owner) 7187 func (_IERC721Metadata *IERC721MetadataCallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) { 7188 return _IERC721Metadata.Contract.OwnerOf(&_IERC721Metadata.CallOpts, tokenId) 7189 } 7190 7191 // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. 7192 // 7193 // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) 7194 func (_IERC721Metadata *IERC721MetadataCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { 7195 var out []interface{} 7196 err := _IERC721Metadata.contract.Call(opts, &out, "supportsInterface", interfaceId) 7197 7198 if err != nil { 7199 return *new(bool), err 7200 } 7201 7202 out0 := *abi.ConvertType(out[0], new(bool)).(*bool) 7203 7204 return out0, err 7205 7206 } 7207 7208 // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. 7209 // 7210 // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) 7211 func (_IERC721Metadata *IERC721MetadataSession) SupportsInterface(interfaceId [4]byte) (bool, error) { 7212 return _IERC721Metadata.Contract.SupportsInterface(&_IERC721Metadata.CallOpts, interfaceId) 7213 } 7214 7215 // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. 7216 // 7217 // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) 7218 func (_IERC721Metadata *IERC721MetadataCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { 7219 return _IERC721Metadata.Contract.SupportsInterface(&_IERC721Metadata.CallOpts, interfaceId) 7220 } 7221 7222 // Symbol is a free data retrieval call binding the contract method 0x95d89b41. 7223 // 7224 // Solidity: function symbol() view returns(string) 7225 func (_IERC721Metadata *IERC721MetadataCaller) Symbol(opts *bind.CallOpts) (string, error) { 7226 var out []interface{} 7227 err := _IERC721Metadata.contract.Call(opts, &out, "symbol") 7228 7229 if err != nil { 7230 return *new(string), err 7231 } 7232 7233 out0 := *abi.ConvertType(out[0], new(string)).(*string) 7234 7235 return out0, err 7236 7237 } 7238 7239 // Symbol is a free data retrieval call binding the contract method 0x95d89b41. 7240 // 7241 // Solidity: function symbol() view returns(string) 7242 func (_IERC721Metadata *IERC721MetadataSession) Symbol() (string, error) { 7243 return _IERC721Metadata.Contract.Symbol(&_IERC721Metadata.CallOpts) 7244 } 7245 7246 // Symbol is a free data retrieval call binding the contract method 0x95d89b41. 7247 // 7248 // Solidity: function symbol() view returns(string) 7249 func (_IERC721Metadata *IERC721MetadataCallerSession) Symbol() (string, error) { 7250 return _IERC721Metadata.Contract.Symbol(&_IERC721Metadata.CallOpts) 7251 } 7252 7253 // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd. 7254 // 7255 // Solidity: function tokenURI(uint256 tokenId) view returns(string) 7256 func (_IERC721Metadata *IERC721MetadataCaller) TokenURI(opts *bind.CallOpts, tokenId *big.Int) (string, error) { 7257 var out []interface{} 7258 err := _IERC721Metadata.contract.Call(opts, &out, "tokenURI", tokenId) 7259 7260 if err != nil { 7261 return *new(string), err 7262 } 7263 7264 out0 := *abi.ConvertType(out[0], new(string)).(*string) 7265 7266 return out0, err 7267 7268 } 7269 7270 // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd. 7271 // 7272 // Solidity: function tokenURI(uint256 tokenId) view returns(string) 7273 func (_IERC721Metadata *IERC721MetadataSession) TokenURI(tokenId *big.Int) (string, error) { 7274 return _IERC721Metadata.Contract.TokenURI(&_IERC721Metadata.CallOpts, tokenId) 7275 } 7276 7277 // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd. 7278 // 7279 // Solidity: function tokenURI(uint256 tokenId) view returns(string) 7280 func (_IERC721Metadata *IERC721MetadataCallerSession) TokenURI(tokenId *big.Int) (string, error) { 7281 return _IERC721Metadata.Contract.TokenURI(&_IERC721Metadata.CallOpts, tokenId) 7282 } 7283 7284 // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. 7285 // 7286 // Solidity: function approve(address to, uint256 tokenId) returns() 7287 func (_IERC721Metadata *IERC721MetadataTransactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 7288 return _IERC721Metadata.contract.Transact(opts, "approve", to, tokenId) 7289 } 7290 7291 // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. 7292 // 7293 // Solidity: function approve(address to, uint256 tokenId) returns() 7294 func (_IERC721Metadata *IERC721MetadataSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) { 7295 return _IERC721Metadata.Contract.Approve(&_IERC721Metadata.TransactOpts, to, tokenId) 7296 } 7297 7298 // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. 7299 // 7300 // Solidity: function approve(address to, uint256 tokenId) returns() 7301 func (_IERC721Metadata *IERC721MetadataTransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) { 7302 return _IERC721Metadata.Contract.Approve(&_IERC721Metadata.TransactOpts, to, tokenId) 7303 } 7304 7305 // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. 7306 // 7307 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns() 7308 func (_IERC721Metadata *IERC721MetadataTransactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 7309 return _IERC721Metadata.contract.Transact(opts, "safeTransferFrom", from, to, tokenId) 7310 } 7311 7312 // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. 7313 // 7314 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns() 7315 func (_IERC721Metadata *IERC721MetadataSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 7316 return _IERC721Metadata.Contract.SafeTransferFrom(&_IERC721Metadata.TransactOpts, from, to, tokenId) 7317 } 7318 7319 // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e. 7320 // 7321 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns() 7322 func (_IERC721Metadata *IERC721MetadataTransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 7323 return _IERC721Metadata.Contract.SafeTransferFrom(&_IERC721Metadata.TransactOpts, from, to, tokenId) 7324 } 7325 7326 // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. 7327 // 7328 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns() 7329 func (_IERC721Metadata *IERC721MetadataTransactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) { 7330 return _IERC721Metadata.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, data) 7331 } 7332 7333 // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. 7334 // 7335 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns() 7336 func (_IERC721Metadata *IERC721MetadataSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) { 7337 return _IERC721Metadata.Contract.SafeTransferFrom0(&_IERC721Metadata.TransactOpts, from, to, tokenId, data) 7338 } 7339 7340 // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde. 7341 // 7342 // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns() 7343 func (_IERC721Metadata *IERC721MetadataTransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) { 7344 return _IERC721Metadata.Contract.SafeTransferFrom0(&_IERC721Metadata.TransactOpts, from, to, tokenId, data) 7345 } 7346 7347 // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. 7348 // 7349 // Solidity: function setApprovalForAll(address operator, bool _approved) returns() 7350 func (_IERC721Metadata *IERC721MetadataTransactor) SetApprovalForAll(opts *bind.TransactOpts, operator common.Address, _approved bool) (*types.Transaction, error) { 7351 return _IERC721Metadata.contract.Transact(opts, "setApprovalForAll", operator, _approved) 7352 } 7353 7354 // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. 7355 // 7356 // Solidity: function setApprovalForAll(address operator, bool _approved) returns() 7357 func (_IERC721Metadata *IERC721MetadataSession) SetApprovalForAll(operator common.Address, _approved bool) (*types.Transaction, error) { 7358 return _IERC721Metadata.Contract.SetApprovalForAll(&_IERC721Metadata.TransactOpts, operator, _approved) 7359 } 7360 7361 // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465. 7362 // 7363 // Solidity: function setApprovalForAll(address operator, bool _approved) returns() 7364 func (_IERC721Metadata *IERC721MetadataTransactorSession) SetApprovalForAll(operator common.Address, _approved bool) (*types.Transaction, error) { 7365 return _IERC721Metadata.Contract.SetApprovalForAll(&_IERC721Metadata.TransactOpts, operator, _approved) 7366 } 7367 7368 // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. 7369 // 7370 // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns() 7371 func (_IERC721Metadata *IERC721MetadataTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 7372 return _IERC721Metadata.contract.Transact(opts, "transferFrom", from, to, tokenId) 7373 } 7374 7375 // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. 7376 // 7377 // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns() 7378 func (_IERC721Metadata *IERC721MetadataSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 7379 return _IERC721Metadata.Contract.TransferFrom(&_IERC721Metadata.TransactOpts, from, to, tokenId) 7380 } 7381 7382 // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. 7383 // 7384 // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns() 7385 func (_IERC721Metadata *IERC721MetadataTransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) { 7386 return _IERC721Metadata.Contract.TransferFrom(&_IERC721Metadata.TransactOpts, from, to, tokenId) 7387 } 7388 7389 // IERC721MetadataApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the IERC721Metadata contract. 7390 type IERC721MetadataApprovalIterator struct { 7391 Event *IERC721MetadataApproval // Event containing the contract specifics and raw log 7392 7393 contract *bind.BoundContract // Generic contract to use for unpacking event data 7394 event string // Event name to use for unpacking event data 7395 7396 logs chan types.Log // Log channel receiving the found contract events 7397 sub ethereum.Subscription // Subscription for errors, completion and termination 7398 done bool // Whether the subscription completed delivering logs 7399 fail error // Occurred error to stop iteration 7400 } 7401 7402 // Next advances the iterator to the subsequent event, returning whether there 7403 // are any more events found. In case of a retrieval or parsing error, false is 7404 // returned and Error() can be queried for the exact failure. 7405 func (it *IERC721MetadataApprovalIterator) Next() bool { 7406 // If the iterator failed, stop iterating 7407 if it.fail != nil { 7408 return false 7409 } 7410 // If the iterator completed, deliver directly whatever's available 7411 if it.done { 7412 select { 7413 case log := <-it.logs: 7414 it.Event = new(IERC721MetadataApproval) 7415 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 7416 it.fail = err 7417 return false 7418 } 7419 it.Event.Raw = log 7420 return true 7421 7422 default: 7423 return false 7424 } 7425 } 7426 // Iterator still in progress, wait for either a data or an error event 7427 select { 7428 case log := <-it.logs: 7429 it.Event = new(IERC721MetadataApproval) 7430 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 7431 it.fail = err 7432 return false 7433 } 7434 it.Event.Raw = log 7435 return true 7436 7437 case err := <-it.sub.Err(): 7438 it.done = true 7439 it.fail = err 7440 return it.Next() 7441 } 7442 } 7443 7444 // Error returns any retrieval or parsing error occurred during filtering. 7445 func (it *IERC721MetadataApprovalIterator) Error() error { 7446 return it.fail 7447 } 7448 7449 // Close terminates the iteration process, releasing any pending underlying 7450 // resources. 7451 func (it *IERC721MetadataApprovalIterator) Close() error { 7452 it.sub.Unsubscribe() 7453 return nil 7454 } 7455 7456 // IERC721MetadataApproval represents a Approval event raised by the IERC721Metadata contract. 7457 type IERC721MetadataApproval struct { 7458 Owner common.Address 7459 Approved common.Address 7460 TokenId *big.Int 7461 Raw types.Log // Blockchain specific contextual infos 7462 } 7463 7464 // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. 7465 // 7466 // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId) 7467 func (_IERC721Metadata *IERC721MetadataFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*IERC721MetadataApprovalIterator, error) { 7468 7469 var ownerRule []interface{} 7470 for _, ownerItem := range owner { 7471 ownerRule = append(ownerRule, ownerItem) 7472 } 7473 var approvedRule []interface{} 7474 for _, approvedItem := range approved { 7475 approvedRule = append(approvedRule, approvedItem) 7476 } 7477 var tokenIdRule []interface{} 7478 for _, tokenIdItem := range tokenId { 7479 tokenIdRule = append(tokenIdRule, tokenIdItem) 7480 } 7481 7482 logs, sub, err := _IERC721Metadata.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule) 7483 if err != nil { 7484 return nil, err 7485 } 7486 return &IERC721MetadataApprovalIterator{contract: _IERC721Metadata.contract, event: "Approval", logs: logs, sub: sub}, nil 7487 } 7488 7489 // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. 7490 // 7491 // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId) 7492 func (_IERC721Metadata *IERC721MetadataFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *IERC721MetadataApproval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) { 7493 7494 var ownerRule []interface{} 7495 for _, ownerItem := range owner { 7496 ownerRule = append(ownerRule, ownerItem) 7497 } 7498 var approvedRule []interface{} 7499 for _, approvedItem := range approved { 7500 approvedRule = append(approvedRule, approvedItem) 7501 } 7502 var tokenIdRule []interface{} 7503 for _, tokenIdItem := range tokenId { 7504 tokenIdRule = append(tokenIdRule, tokenIdItem) 7505 } 7506 7507 logs, sub, err := _IERC721Metadata.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule) 7508 if err != nil { 7509 return nil, err 7510 } 7511 return event.NewSubscription(func(quit <-chan struct{}) error { 7512 defer sub.Unsubscribe() 7513 for { 7514 select { 7515 case log := <-logs: 7516 // New log arrived, parse the event and forward to the user 7517 event := new(IERC721MetadataApproval) 7518 if err := _IERC721Metadata.contract.UnpackLog(event, "Approval", log); err != nil { 7519 return err 7520 } 7521 event.Raw = log 7522 7523 select { 7524 case sink <- event: 7525 case err := <-sub.Err(): 7526 return err 7527 case <-quit: 7528 return nil 7529 } 7530 case err := <-sub.Err(): 7531 return err 7532 case <-quit: 7533 return nil 7534 } 7535 } 7536 }), nil 7537 } 7538 7539 // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. 7540 // 7541 // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId) 7542 func (_IERC721Metadata *IERC721MetadataFilterer) ParseApproval(log types.Log) (*IERC721MetadataApproval, error) { 7543 event := new(IERC721MetadataApproval) 7544 if err := _IERC721Metadata.contract.UnpackLog(event, "Approval", log); err != nil { 7545 return nil, err 7546 } 7547 event.Raw = log 7548 return event, nil 7549 } 7550 7551 // IERC721MetadataApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the IERC721Metadata contract. 7552 type IERC721MetadataApprovalForAllIterator struct { 7553 Event *IERC721MetadataApprovalForAll // Event containing the contract specifics and raw log 7554 7555 contract *bind.BoundContract // Generic contract to use for unpacking event data 7556 event string // Event name to use for unpacking event data 7557 7558 logs chan types.Log // Log channel receiving the found contract events 7559 sub ethereum.Subscription // Subscription for errors, completion and termination 7560 done bool // Whether the subscription completed delivering logs 7561 fail error // Occurred error to stop iteration 7562 } 7563 7564 // Next advances the iterator to the subsequent event, returning whether there 7565 // are any more events found. In case of a retrieval or parsing error, false is 7566 // returned and Error() can be queried for the exact failure. 7567 func (it *IERC721MetadataApprovalForAllIterator) Next() bool { 7568 // If the iterator failed, stop iterating 7569 if it.fail != nil { 7570 return false 7571 } 7572 // If the iterator completed, deliver directly whatever's available 7573 if it.done { 7574 select { 7575 case log := <-it.logs: 7576 it.Event = new(IERC721MetadataApprovalForAll) 7577 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 7578 it.fail = err 7579 return false 7580 } 7581 it.Event.Raw = log 7582 return true 7583 7584 default: 7585 return false 7586 } 7587 } 7588 // Iterator still in progress, wait for either a data or an error event 7589 select { 7590 case log := <-it.logs: 7591 it.Event = new(IERC721MetadataApprovalForAll) 7592 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 7593 it.fail = err 7594 return false 7595 } 7596 it.Event.Raw = log 7597 return true 7598 7599 case err := <-it.sub.Err(): 7600 it.done = true 7601 it.fail = err 7602 return it.Next() 7603 } 7604 } 7605 7606 // Error returns any retrieval or parsing error occurred during filtering. 7607 func (it *IERC721MetadataApprovalForAllIterator) Error() error { 7608 return it.fail 7609 } 7610 7611 // Close terminates the iteration process, releasing any pending underlying 7612 // resources. 7613 func (it *IERC721MetadataApprovalForAllIterator) Close() error { 7614 it.sub.Unsubscribe() 7615 return nil 7616 } 7617 7618 // IERC721MetadataApprovalForAll represents a ApprovalForAll event raised by the IERC721Metadata contract. 7619 type IERC721MetadataApprovalForAll struct { 7620 Owner common.Address 7621 Operator common.Address 7622 Approved bool 7623 Raw types.Log // Blockchain specific contextual infos 7624 } 7625 7626 // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. 7627 // 7628 // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved) 7629 func (_IERC721Metadata *IERC721MetadataFilterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*IERC721MetadataApprovalForAllIterator, error) { 7630 7631 var ownerRule []interface{} 7632 for _, ownerItem := range owner { 7633 ownerRule = append(ownerRule, ownerItem) 7634 } 7635 var operatorRule []interface{} 7636 for _, operatorItem := range operator { 7637 operatorRule = append(operatorRule, operatorItem) 7638 } 7639 7640 logs, sub, err := _IERC721Metadata.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule) 7641 if err != nil { 7642 return nil, err 7643 } 7644 return &IERC721MetadataApprovalForAllIterator{contract: _IERC721Metadata.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil 7645 } 7646 7647 // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. 7648 // 7649 // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved) 7650 func (_IERC721Metadata *IERC721MetadataFilterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *IERC721MetadataApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) { 7651 7652 var ownerRule []interface{} 7653 for _, ownerItem := range owner { 7654 ownerRule = append(ownerRule, ownerItem) 7655 } 7656 var operatorRule []interface{} 7657 for _, operatorItem := range operator { 7658 operatorRule = append(operatorRule, operatorItem) 7659 } 7660 7661 logs, sub, err := _IERC721Metadata.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule) 7662 if err != nil { 7663 return nil, err 7664 } 7665 return event.NewSubscription(func(quit <-chan struct{}) error { 7666 defer sub.Unsubscribe() 7667 for { 7668 select { 7669 case log := <-logs: 7670 // New log arrived, parse the event and forward to the user 7671 event := new(IERC721MetadataApprovalForAll) 7672 if err := _IERC721Metadata.contract.UnpackLog(event, "ApprovalForAll", log); err != nil { 7673 return err 7674 } 7675 event.Raw = log 7676 7677 select { 7678 case sink <- event: 7679 case err := <-sub.Err(): 7680 return err 7681 case <-quit: 7682 return nil 7683 } 7684 case err := <-sub.Err(): 7685 return err 7686 case <-quit: 7687 return nil 7688 } 7689 } 7690 }), nil 7691 } 7692 7693 // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31. 7694 // 7695 // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved) 7696 func (_IERC721Metadata *IERC721MetadataFilterer) ParseApprovalForAll(log types.Log) (*IERC721MetadataApprovalForAll, error) { 7697 event := new(IERC721MetadataApprovalForAll) 7698 if err := _IERC721Metadata.contract.UnpackLog(event, "ApprovalForAll", log); err != nil { 7699 return nil, err 7700 } 7701 event.Raw = log 7702 return event, nil 7703 } 7704 7705 // IERC721MetadataTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the IERC721Metadata contract. 7706 type IERC721MetadataTransferIterator struct { 7707 Event *IERC721MetadataTransfer // Event containing the contract specifics and raw log 7708 7709 contract *bind.BoundContract // Generic contract to use for unpacking event data 7710 event string // Event name to use for unpacking event data 7711 7712 logs chan types.Log // Log channel receiving the found contract events 7713 sub ethereum.Subscription // Subscription for errors, completion and termination 7714 done bool // Whether the subscription completed delivering logs 7715 fail error // Occurred error to stop iteration 7716 } 7717 7718 // Next advances the iterator to the subsequent event, returning whether there 7719 // are any more events found. In case of a retrieval or parsing error, false is 7720 // returned and Error() can be queried for the exact failure. 7721 func (it *IERC721MetadataTransferIterator) Next() bool { 7722 // If the iterator failed, stop iterating 7723 if it.fail != nil { 7724 return false 7725 } 7726 // If the iterator completed, deliver directly whatever's available 7727 if it.done { 7728 select { 7729 case log := <-it.logs: 7730 it.Event = new(IERC721MetadataTransfer) 7731 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 7732 it.fail = err 7733 return false 7734 } 7735 it.Event.Raw = log 7736 return true 7737 7738 default: 7739 return false 7740 } 7741 } 7742 // Iterator still in progress, wait for either a data or an error event 7743 select { 7744 case log := <-it.logs: 7745 it.Event = new(IERC721MetadataTransfer) 7746 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 7747 it.fail = err 7748 return false 7749 } 7750 it.Event.Raw = log 7751 return true 7752 7753 case err := <-it.sub.Err(): 7754 it.done = true 7755 it.fail = err 7756 return it.Next() 7757 } 7758 } 7759 7760 // Error returns any retrieval or parsing error occurred during filtering. 7761 func (it *IERC721MetadataTransferIterator) Error() error { 7762 return it.fail 7763 } 7764 7765 // Close terminates the iteration process, releasing any pending underlying 7766 // resources. 7767 func (it *IERC721MetadataTransferIterator) Close() error { 7768 it.sub.Unsubscribe() 7769 return nil 7770 } 7771 7772 // IERC721MetadataTransfer represents a Transfer event raised by the IERC721Metadata contract. 7773 type IERC721MetadataTransfer struct { 7774 From common.Address 7775 To common.Address 7776 TokenId *big.Int 7777 Raw types.Log // Blockchain specific contextual infos 7778 } 7779 7780 // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. 7781 // 7782 // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId) 7783 func (_IERC721Metadata *IERC721MetadataFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*IERC721MetadataTransferIterator, error) { 7784 7785 var fromRule []interface{} 7786 for _, fromItem := range from { 7787 fromRule = append(fromRule, fromItem) 7788 } 7789 var toRule []interface{} 7790 for _, toItem := range to { 7791 toRule = append(toRule, toItem) 7792 } 7793 var tokenIdRule []interface{} 7794 for _, tokenIdItem := range tokenId { 7795 tokenIdRule = append(tokenIdRule, tokenIdItem) 7796 } 7797 7798 logs, sub, err := _IERC721Metadata.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule) 7799 if err != nil { 7800 return nil, err 7801 } 7802 return &IERC721MetadataTransferIterator{contract: _IERC721Metadata.contract, event: "Transfer", logs: logs, sub: sub}, nil 7803 } 7804 7805 // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. 7806 // 7807 // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId) 7808 func (_IERC721Metadata *IERC721MetadataFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *IERC721MetadataTransfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) { 7809 7810 var fromRule []interface{} 7811 for _, fromItem := range from { 7812 fromRule = append(fromRule, fromItem) 7813 } 7814 var toRule []interface{} 7815 for _, toItem := range to { 7816 toRule = append(toRule, toItem) 7817 } 7818 var tokenIdRule []interface{} 7819 for _, tokenIdItem := range tokenId { 7820 tokenIdRule = append(tokenIdRule, tokenIdItem) 7821 } 7822 7823 logs, sub, err := _IERC721Metadata.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule) 7824 if err != nil { 7825 return nil, err 7826 } 7827 return event.NewSubscription(func(quit <-chan struct{}) error { 7828 defer sub.Unsubscribe() 7829 for { 7830 select { 7831 case log := <-logs: 7832 // New log arrived, parse the event and forward to the user 7833 event := new(IERC721MetadataTransfer) 7834 if err := _IERC721Metadata.contract.UnpackLog(event, "Transfer", log); err != nil { 7835 return err 7836 } 7837 event.Raw = log 7838 7839 select { 7840 case sink <- event: 7841 case err := <-sub.Err(): 7842 return err 7843 case <-quit: 7844 return nil 7845 } 7846 case err := <-sub.Err(): 7847 return err 7848 case <-quit: 7849 return nil 7850 } 7851 } 7852 }), nil 7853 } 7854 7855 // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. 7856 // 7857 // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId) 7858 func (_IERC721Metadata *IERC721MetadataFilterer) ParseTransfer(log types.Log) (*IERC721MetadataTransfer, error) { 7859 event := new(IERC721MetadataTransfer) 7860 if err := _IERC721Metadata.contract.UnpackLog(event, "Transfer", log); err != nil { 7861 return nil, err 7862 } 7863 event.Raw = log 7864 return event, nil 7865 } 7866 7867 // IERC721ReceiverABI is the input ABI used to generate the binding from. 7868 const IERC721ReceiverABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" 7869 7870 // IERC721ReceiverFuncSigs maps the 4-byte function signature to its string representation. 7871 var IERC721ReceiverFuncSigs = map[string]string{ 7872 "150b7a02": "onERC721Received(address,address,uint256,bytes)", 7873 } 7874 7875 // IERC721Receiver is an auto generated Go binding around an Ethereum contract. 7876 type IERC721Receiver struct { 7877 IERC721ReceiverCaller // Read-only binding to the contract 7878 IERC721ReceiverTransactor // Write-only binding to the contract 7879 IERC721ReceiverFilterer // Log filterer for contract events 7880 } 7881 7882 // IERC721ReceiverCaller is an auto generated read-only Go binding around an Ethereum contract. 7883 type IERC721ReceiverCaller struct { 7884 contract *bind.BoundContract // Generic contract wrapper for the low level calls 7885 } 7886 7887 // IERC721ReceiverTransactor is an auto generated write-only Go binding around an Ethereum contract. 7888 type IERC721ReceiverTransactor struct { 7889 contract *bind.BoundContract // Generic contract wrapper for the low level calls 7890 } 7891 7892 // IERC721ReceiverFilterer is an auto generated log filtering Go binding around an Ethereum contract events. 7893 type IERC721ReceiverFilterer struct { 7894 contract *bind.BoundContract // Generic contract wrapper for the low level calls 7895 } 7896 7897 // IERC721ReceiverSession is an auto generated Go binding around an Ethereum contract, 7898 // with pre-set call and transact options. 7899 type IERC721ReceiverSession struct { 7900 Contract *IERC721Receiver // Generic contract binding to set the session for 7901 CallOpts bind.CallOpts // Call options to use throughout this session 7902 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 7903 } 7904 7905 // IERC721ReceiverCallerSession is an auto generated read-only Go binding around an Ethereum contract, 7906 // with pre-set call options. 7907 type IERC721ReceiverCallerSession struct { 7908 Contract *IERC721ReceiverCaller // Generic contract caller binding to set the session for 7909 CallOpts bind.CallOpts // Call options to use throughout this session 7910 } 7911 7912 // IERC721ReceiverTransactorSession is an auto generated write-only Go binding around an Ethereum contract, 7913 // with pre-set transact options. 7914 type IERC721ReceiverTransactorSession struct { 7915 Contract *IERC721ReceiverTransactor // Generic contract transactor binding to set the session for 7916 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 7917 } 7918 7919 // IERC721ReceiverRaw is an auto generated low-level Go binding around an Ethereum contract. 7920 type IERC721ReceiverRaw struct { 7921 Contract *IERC721Receiver // Generic contract binding to access the raw methods on 7922 } 7923 7924 // IERC721ReceiverCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. 7925 type IERC721ReceiverCallerRaw struct { 7926 Contract *IERC721ReceiverCaller // Generic read-only contract binding to access the raw methods on 7927 } 7928 7929 // IERC721ReceiverTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. 7930 type IERC721ReceiverTransactorRaw struct { 7931 Contract *IERC721ReceiverTransactor // Generic write-only contract binding to access the raw methods on 7932 } 7933 7934 // NewIERC721Receiver creates a new instance of IERC721Receiver, bound to a specific deployed contract. 7935 func NewIERC721Receiver(address common.Address, backend bind.ContractBackend) (*IERC721Receiver, error) { 7936 contract, err := bindIERC721Receiver(address, backend, backend, backend) 7937 if err != nil { 7938 return nil, err 7939 } 7940 return &IERC721Receiver{IERC721ReceiverCaller: IERC721ReceiverCaller{contract: contract}, IERC721ReceiverTransactor: IERC721ReceiverTransactor{contract: contract}, IERC721ReceiverFilterer: IERC721ReceiverFilterer{contract: contract}}, nil 7941 } 7942 7943 // NewIERC721ReceiverCaller creates a new read-only instance of IERC721Receiver, bound to a specific deployed contract. 7944 func NewIERC721ReceiverCaller(address common.Address, caller bind.ContractCaller) (*IERC721ReceiverCaller, error) { 7945 contract, err := bindIERC721Receiver(address, caller, nil, nil) 7946 if err != nil { 7947 return nil, err 7948 } 7949 return &IERC721ReceiverCaller{contract: contract}, nil 7950 } 7951 7952 // NewIERC721ReceiverTransactor creates a new write-only instance of IERC721Receiver, bound to a specific deployed contract. 7953 func NewIERC721ReceiverTransactor(address common.Address, transactor bind.ContractTransactor) (*IERC721ReceiverTransactor, error) { 7954 contract, err := bindIERC721Receiver(address, nil, transactor, nil) 7955 if err != nil { 7956 return nil, err 7957 } 7958 return &IERC721ReceiverTransactor{contract: contract}, nil 7959 } 7960 7961 // NewIERC721ReceiverFilterer creates a new log filterer instance of IERC721Receiver, bound to a specific deployed contract. 7962 func NewIERC721ReceiverFilterer(address common.Address, filterer bind.ContractFilterer) (*IERC721ReceiverFilterer, error) { 7963 contract, err := bindIERC721Receiver(address, nil, nil, filterer) 7964 if err != nil { 7965 return nil, err 7966 } 7967 return &IERC721ReceiverFilterer{contract: contract}, nil 7968 } 7969 7970 // bindIERC721Receiver binds a generic wrapper to an already deployed contract. 7971 func bindIERC721Receiver(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { 7972 parsed, err := abi.JSON(strings.NewReader(IERC721ReceiverABI)) 7973 if err != nil { 7974 return nil, err 7975 } 7976 return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil 7977 } 7978 7979 // Call invokes the (constant) contract method with params as input values and 7980 // sets the output to result. The result type might be a single field for simple 7981 // returns, a slice of interfaces for anonymous returns and a struct for named 7982 // returns. 7983 func (_IERC721Receiver *IERC721ReceiverRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 7984 return _IERC721Receiver.Contract.IERC721ReceiverCaller.contract.Call(opts, result, method, params...) 7985 } 7986 7987 // Transfer initiates a plain transaction to move funds to the contract, calling 7988 // its default method if one is available. 7989 func (_IERC721Receiver *IERC721ReceiverRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 7990 return _IERC721Receiver.Contract.IERC721ReceiverTransactor.contract.Transfer(opts) 7991 } 7992 7993 // Transact invokes the (paid) contract method with params as input values. 7994 func (_IERC721Receiver *IERC721ReceiverRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 7995 return _IERC721Receiver.Contract.IERC721ReceiverTransactor.contract.Transact(opts, method, params...) 7996 } 7997 7998 // Call invokes the (constant) contract method with params as input values and 7999 // sets the output to result. The result type might be a single field for simple 8000 // returns, a slice of interfaces for anonymous returns and a struct for named 8001 // returns. 8002 func (_IERC721Receiver *IERC721ReceiverCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 8003 return _IERC721Receiver.Contract.contract.Call(opts, result, method, params...) 8004 } 8005 8006 // Transfer initiates a plain transaction to move funds to the contract, calling 8007 // its default method if one is available. 8008 func (_IERC721Receiver *IERC721ReceiverTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 8009 return _IERC721Receiver.Contract.contract.Transfer(opts) 8010 } 8011 8012 // Transact invokes the (paid) contract method with params as input values. 8013 func (_IERC721Receiver *IERC721ReceiverTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 8014 return _IERC721Receiver.Contract.contract.Transact(opts, method, params...) 8015 } 8016 8017 // OnERC721Received is a paid mutator transaction binding the contract method 0x150b7a02. 8018 // 8019 // Solidity: function onERC721Received(address operator, address from, uint256 tokenId, bytes data) returns(bytes4) 8020 func (_IERC721Receiver *IERC721ReceiverTransactor) OnERC721Received(opts *bind.TransactOpts, operator common.Address, from common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) { 8021 return _IERC721Receiver.contract.Transact(opts, "onERC721Received", operator, from, tokenId, data) 8022 } 8023 8024 // OnERC721Received is a paid mutator transaction binding the contract method 0x150b7a02. 8025 // 8026 // Solidity: function onERC721Received(address operator, address from, uint256 tokenId, bytes data) returns(bytes4) 8027 func (_IERC721Receiver *IERC721ReceiverSession) OnERC721Received(operator common.Address, from common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) { 8028 return _IERC721Receiver.Contract.OnERC721Received(&_IERC721Receiver.TransactOpts, operator, from, tokenId, data) 8029 } 8030 8031 // OnERC721Received is a paid mutator transaction binding the contract method 0x150b7a02. 8032 // 8033 // Solidity: function onERC721Received(address operator, address from, uint256 tokenId, bytes data) returns(bytes4) 8034 func (_IERC721Receiver *IERC721ReceiverTransactorSession) OnERC721Received(operator common.Address, from common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) { 8035 return _IERC721Receiver.Contract.OnERC721Received(&_IERC721Receiver.TransactOpts, operator, from, tokenId, data) 8036 } 8037 8038 // OwnableABI is the input ABI used to generate the binding from. 8039 const OwnableABI = "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_minterAddress\",\"type\":\"address\"}],\"name\":\"setMinter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_minterAddress\",\"type\":\"address\"}],\"name\":\"setMinterContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" 8040 8041 // OwnableFuncSigs maps the 4-byte function signature to its string representation. 8042 var OwnableFuncSigs = map[string]string{ 8043 "8da5cb5b": "owner()", 8044 "715018a6": "renounceOwnership()", 8045 "fca3b5aa": "setMinter(address)", 8046 "38478ae7": "setMinterContract(address)", 8047 "f2fde38b": "transferOwnership(address)", 8048 } 8049 8050 // OwnableBin is the compiled bytecode used for deploying new contracts. 8051 var OwnableBin = "0x608060405234801561001057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610356806100616000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806338478ae71461005c578063715018a6146100715780638da5cb5b14610079578063f2fde38b14610098578063fca3b5aa146100ab575b600080fd5b61006f61006a3660046102bd565b6100be565b005b61006f610113565b600054604080516001600160a01b039092168252519081900360200190f35b61006f6100a63660046102bd565b610187565b61006f6100b93660046102bd565b610271565b6000546001600160a01b031633146100f15760405162461bcd60e51b81526004016100e8906102eb565b60405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461013d5760405162461bcd60e51b81526004016100e8906102eb565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146101b15760405162461bcd60e51b81526004016100e8906102eb565b6001600160a01b0381166102165760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016100e8565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461029b5760405162461bcd60e51b81526004016100e8906102eb565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000602082840312156102ce578081fd5b81356001600160a01b03811681146102e4578182fd5b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea264697066735822122066bb0d2cd1ba46073c6747ef120661a62cd5fb5ca3fa8588c9999b291100c8df64736f6c63430008030033" 8052 8053 // DeployOwnable deploys a new Ethereum contract, binding an instance of Ownable to it. 8054 func DeployOwnable(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Ownable, error) { 8055 parsed, err := abi.JSON(strings.NewReader(OwnableABI)) 8056 if err != nil { 8057 return common.Address{}, nil, nil, err 8058 } 8059 8060 address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(OwnableBin), backend) 8061 if err != nil { 8062 return common.Address{}, nil, nil, err 8063 } 8064 return address, tx, &Ownable{OwnableCaller: OwnableCaller{contract: contract}, OwnableTransactor: OwnableTransactor{contract: contract}, OwnableFilterer: OwnableFilterer{contract: contract}}, nil 8065 } 8066 8067 // Ownable is an auto generated Go binding around an Ethereum contract. 8068 type Ownable struct { 8069 OwnableCaller // Read-only binding to the contract 8070 OwnableTransactor // Write-only binding to the contract 8071 OwnableFilterer // Log filterer for contract events 8072 } 8073 8074 // OwnableCaller is an auto generated read-only Go binding around an Ethereum contract. 8075 type OwnableCaller struct { 8076 contract *bind.BoundContract // Generic contract wrapper for the low level calls 8077 } 8078 8079 // OwnableTransactor is an auto generated write-only Go binding around an Ethereum contract. 8080 type OwnableTransactor struct { 8081 contract *bind.BoundContract // Generic contract wrapper for the low level calls 8082 } 8083 8084 // OwnableFilterer is an auto generated log filtering Go binding around an Ethereum contract events. 8085 type OwnableFilterer struct { 8086 contract *bind.BoundContract // Generic contract wrapper for the low level calls 8087 } 8088 8089 // OwnableSession is an auto generated Go binding around an Ethereum contract, 8090 // with pre-set call and transact options. 8091 type OwnableSession struct { 8092 Contract *Ownable // Generic contract binding to set the session for 8093 CallOpts bind.CallOpts // Call options to use throughout this session 8094 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 8095 } 8096 8097 // OwnableCallerSession is an auto generated read-only Go binding around an Ethereum contract, 8098 // with pre-set call options. 8099 type OwnableCallerSession struct { 8100 Contract *OwnableCaller // Generic contract caller binding to set the session for 8101 CallOpts bind.CallOpts // Call options to use throughout this session 8102 } 8103 8104 // OwnableTransactorSession is an auto generated write-only Go binding around an Ethereum contract, 8105 // with pre-set transact options. 8106 type OwnableTransactorSession struct { 8107 Contract *OwnableTransactor // Generic contract transactor binding to set the session for 8108 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 8109 } 8110 8111 // OwnableRaw is an auto generated low-level Go binding around an Ethereum contract. 8112 type OwnableRaw struct { 8113 Contract *Ownable // Generic contract binding to access the raw methods on 8114 } 8115 8116 // OwnableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. 8117 type OwnableCallerRaw struct { 8118 Contract *OwnableCaller // Generic read-only contract binding to access the raw methods on 8119 } 8120 8121 // OwnableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. 8122 type OwnableTransactorRaw struct { 8123 Contract *OwnableTransactor // Generic write-only contract binding to access the raw methods on 8124 } 8125 8126 // NewOwnable creates a new instance of Ownable, bound to a specific deployed contract. 8127 func NewOwnable(address common.Address, backend bind.ContractBackend) (*Ownable, error) { 8128 contract, err := bindOwnable(address, backend, backend, backend) 8129 if err != nil { 8130 return nil, err 8131 } 8132 return &Ownable{OwnableCaller: OwnableCaller{contract: contract}, OwnableTransactor: OwnableTransactor{contract: contract}, OwnableFilterer: OwnableFilterer{contract: contract}}, nil 8133 } 8134 8135 // NewOwnableCaller creates a new read-only instance of Ownable, bound to a specific deployed contract. 8136 func NewOwnableCaller(address common.Address, caller bind.ContractCaller) (*OwnableCaller, error) { 8137 contract, err := bindOwnable(address, caller, nil, nil) 8138 if err != nil { 8139 return nil, err 8140 } 8141 return &OwnableCaller{contract: contract}, nil 8142 } 8143 8144 // NewOwnableTransactor creates a new write-only instance of Ownable, bound to a specific deployed contract. 8145 func NewOwnableTransactor(address common.Address, transactor bind.ContractTransactor) (*OwnableTransactor, error) { 8146 contract, err := bindOwnable(address, nil, transactor, nil) 8147 if err != nil { 8148 return nil, err 8149 } 8150 return &OwnableTransactor{contract: contract}, nil 8151 } 8152 8153 // NewOwnableFilterer creates a new log filterer instance of Ownable, bound to a specific deployed contract. 8154 func NewOwnableFilterer(address common.Address, filterer bind.ContractFilterer) (*OwnableFilterer, error) { 8155 contract, err := bindOwnable(address, nil, nil, filterer) 8156 if err != nil { 8157 return nil, err 8158 } 8159 return &OwnableFilterer{contract: contract}, nil 8160 } 8161 8162 // bindOwnable binds a generic wrapper to an already deployed contract. 8163 func bindOwnable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { 8164 parsed, err := abi.JSON(strings.NewReader(OwnableABI)) 8165 if err != nil { 8166 return nil, err 8167 } 8168 return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil 8169 } 8170 8171 // Call invokes the (constant) contract method with params as input values and 8172 // sets the output to result. The result type might be a single field for simple 8173 // returns, a slice of interfaces for anonymous returns and a struct for named 8174 // returns. 8175 func (_Ownable *OwnableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 8176 return _Ownable.Contract.OwnableCaller.contract.Call(opts, result, method, params...) 8177 } 8178 8179 // Transfer initiates a plain transaction to move funds to the contract, calling 8180 // its default method if one is available. 8181 func (_Ownable *OwnableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 8182 return _Ownable.Contract.OwnableTransactor.contract.Transfer(opts) 8183 } 8184 8185 // Transact invokes the (paid) contract method with params as input values. 8186 func (_Ownable *OwnableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 8187 return _Ownable.Contract.OwnableTransactor.contract.Transact(opts, method, params...) 8188 } 8189 8190 // Call invokes the (constant) contract method with params as input values and 8191 // sets the output to result. The result type might be a single field for simple 8192 // returns, a slice of interfaces for anonymous returns and a struct for named 8193 // returns. 8194 func (_Ownable *OwnableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 8195 return _Ownable.Contract.contract.Call(opts, result, method, params...) 8196 } 8197 8198 // Transfer initiates a plain transaction to move funds to the contract, calling 8199 // its default method if one is available. 8200 func (_Ownable *OwnableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 8201 return _Ownable.Contract.contract.Transfer(opts) 8202 } 8203 8204 // Transact invokes the (paid) contract method with params as input values. 8205 func (_Ownable *OwnableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 8206 return _Ownable.Contract.contract.Transact(opts, method, params...) 8207 } 8208 8209 // Owner is a free data retrieval call binding the contract method 0x8da5cb5b. 8210 // 8211 // Solidity: function owner() view returns(address) 8212 func (_Ownable *OwnableCaller) Owner(opts *bind.CallOpts) (common.Address, error) { 8213 var out []interface{} 8214 err := _Ownable.contract.Call(opts, &out, "owner") 8215 8216 if err != nil { 8217 return *new(common.Address), err 8218 } 8219 8220 out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) 8221 8222 return out0, err 8223 8224 } 8225 8226 // Owner is a free data retrieval call binding the contract method 0x8da5cb5b. 8227 // 8228 // Solidity: function owner() view returns(address) 8229 func (_Ownable *OwnableSession) Owner() (common.Address, error) { 8230 return _Ownable.Contract.Owner(&_Ownable.CallOpts) 8231 } 8232 8233 // Owner is a free data retrieval call binding the contract method 0x8da5cb5b. 8234 // 8235 // Solidity: function owner() view returns(address) 8236 func (_Ownable *OwnableCallerSession) Owner() (common.Address, error) { 8237 return _Ownable.Contract.Owner(&_Ownable.CallOpts) 8238 } 8239 8240 // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. 8241 // 8242 // Solidity: function renounceOwnership() returns() 8243 func (_Ownable *OwnableTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { 8244 return _Ownable.contract.Transact(opts, "renounceOwnership") 8245 } 8246 8247 // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. 8248 // 8249 // Solidity: function renounceOwnership() returns() 8250 func (_Ownable *OwnableSession) RenounceOwnership() (*types.Transaction, error) { 8251 return _Ownable.Contract.RenounceOwnership(&_Ownable.TransactOpts) 8252 } 8253 8254 // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. 8255 // 8256 // Solidity: function renounceOwnership() returns() 8257 func (_Ownable *OwnableTransactorSession) RenounceOwnership() (*types.Transaction, error) { 8258 return _Ownable.Contract.RenounceOwnership(&_Ownable.TransactOpts) 8259 } 8260 8261 // SetMinter is a paid mutator transaction binding the contract method 0xfca3b5aa. 8262 // 8263 // Solidity: function setMinter(address _minterAddress) returns() 8264 func (_Ownable *OwnableTransactor) SetMinter(opts *bind.TransactOpts, _minterAddress common.Address) (*types.Transaction, error) { 8265 return _Ownable.contract.Transact(opts, "setMinter", _minterAddress) 8266 } 8267 8268 // SetMinter is a paid mutator transaction binding the contract method 0xfca3b5aa. 8269 // 8270 // Solidity: function setMinter(address _minterAddress) returns() 8271 func (_Ownable *OwnableSession) SetMinter(_minterAddress common.Address) (*types.Transaction, error) { 8272 return _Ownable.Contract.SetMinter(&_Ownable.TransactOpts, _minterAddress) 8273 } 8274 8275 // SetMinter is a paid mutator transaction binding the contract method 0xfca3b5aa. 8276 // 8277 // Solidity: function setMinter(address _minterAddress) returns() 8278 func (_Ownable *OwnableTransactorSession) SetMinter(_minterAddress common.Address) (*types.Transaction, error) { 8279 return _Ownable.Contract.SetMinter(&_Ownable.TransactOpts, _minterAddress) 8280 } 8281 8282 // SetMinterContract is a paid mutator transaction binding the contract method 0x38478ae7. 8283 // 8284 // Solidity: function setMinterContract(address _minterAddress) returns() 8285 func (_Ownable *OwnableTransactor) SetMinterContract(opts *bind.TransactOpts, _minterAddress common.Address) (*types.Transaction, error) { 8286 return _Ownable.contract.Transact(opts, "setMinterContract", _minterAddress) 8287 } 8288 8289 // SetMinterContract is a paid mutator transaction binding the contract method 0x38478ae7. 8290 // 8291 // Solidity: function setMinterContract(address _minterAddress) returns() 8292 func (_Ownable *OwnableSession) SetMinterContract(_minterAddress common.Address) (*types.Transaction, error) { 8293 return _Ownable.Contract.SetMinterContract(&_Ownable.TransactOpts, _minterAddress) 8294 } 8295 8296 // SetMinterContract is a paid mutator transaction binding the contract method 0x38478ae7. 8297 // 8298 // Solidity: function setMinterContract(address _minterAddress) returns() 8299 func (_Ownable *OwnableTransactorSession) SetMinterContract(_minterAddress common.Address) (*types.Transaction, error) { 8300 return _Ownable.Contract.SetMinterContract(&_Ownable.TransactOpts, _minterAddress) 8301 } 8302 8303 // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. 8304 // 8305 // Solidity: function transferOwnership(address newOwner) returns() 8306 func (_Ownable *OwnableTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { 8307 return _Ownable.contract.Transact(opts, "transferOwnership", newOwner) 8308 } 8309 8310 // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. 8311 // 8312 // Solidity: function transferOwnership(address newOwner) returns() 8313 func (_Ownable *OwnableSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { 8314 return _Ownable.Contract.TransferOwnership(&_Ownable.TransactOpts, newOwner) 8315 } 8316 8317 // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. 8318 // 8319 // Solidity: function transferOwnership(address newOwner) returns() 8320 func (_Ownable *OwnableTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { 8321 return _Ownable.Contract.TransferOwnership(&_Ownable.TransactOpts, newOwner) 8322 } 8323 8324 // 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. 8325 type OwnableOwnershipTransferredIterator struct { 8326 Event *OwnableOwnershipTransferred // Event containing the contract specifics and raw log 8327 8328 contract *bind.BoundContract // Generic contract to use for unpacking event data 8329 event string // Event name to use for unpacking event data 8330 8331 logs chan types.Log // Log channel receiving the found contract events 8332 sub ethereum.Subscription // Subscription for errors, completion and termination 8333 done bool // Whether the subscription completed delivering logs 8334 fail error // Occurred error to stop iteration 8335 } 8336 8337 // Next advances the iterator to the subsequent event, returning whether there 8338 // are any more events found. In case of a retrieval or parsing error, false is 8339 // returned and Error() can be queried for the exact failure. 8340 func (it *OwnableOwnershipTransferredIterator) Next() bool { 8341 // If the iterator failed, stop iterating 8342 if it.fail != nil { 8343 return false 8344 } 8345 // If the iterator completed, deliver directly whatever's available 8346 if it.done { 8347 select { 8348 case log := <-it.logs: 8349 it.Event = new(OwnableOwnershipTransferred) 8350 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 8351 it.fail = err 8352 return false 8353 } 8354 it.Event.Raw = log 8355 return true 8356 8357 default: 8358 return false 8359 } 8360 } 8361 // Iterator still in progress, wait for either a data or an error event 8362 select { 8363 case log := <-it.logs: 8364 it.Event = new(OwnableOwnershipTransferred) 8365 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 8366 it.fail = err 8367 return false 8368 } 8369 it.Event.Raw = log 8370 return true 8371 8372 case err := <-it.sub.Err(): 8373 it.done = true 8374 it.fail = err 8375 return it.Next() 8376 } 8377 } 8378 8379 // Error returns any retrieval or parsing error occurred during filtering. 8380 func (it *OwnableOwnershipTransferredIterator) Error() error { 8381 return it.fail 8382 } 8383 8384 // Close terminates the iteration process, releasing any pending underlying 8385 // resources. 8386 func (it *OwnableOwnershipTransferredIterator) Close() error { 8387 it.sub.Unsubscribe() 8388 return nil 8389 } 8390 8391 // OwnableOwnershipTransferred represents a OwnershipTransferred event raised by the Ownable contract. 8392 type OwnableOwnershipTransferred struct { 8393 PreviousOwner common.Address 8394 NewOwner common.Address 8395 Raw types.Log // Blockchain specific contextual infos 8396 } 8397 8398 // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. 8399 // 8400 // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) 8401 func (_Ownable *OwnableFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*OwnableOwnershipTransferredIterator, error) { 8402 8403 var previousOwnerRule []interface{} 8404 for _, previousOwnerItem := range previousOwner { 8405 previousOwnerRule = append(previousOwnerRule, previousOwnerItem) 8406 } 8407 var newOwnerRule []interface{} 8408 for _, newOwnerItem := range newOwner { 8409 newOwnerRule = append(newOwnerRule, newOwnerItem) 8410 } 8411 8412 logs, sub, err := _Ownable.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) 8413 if err != nil { 8414 return nil, err 8415 } 8416 return &OwnableOwnershipTransferredIterator{contract: _Ownable.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil 8417 } 8418 8419 // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. 8420 // 8421 // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) 8422 func (_Ownable *OwnableFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *OwnableOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { 8423 8424 var previousOwnerRule []interface{} 8425 for _, previousOwnerItem := range previousOwner { 8426 previousOwnerRule = append(previousOwnerRule, previousOwnerItem) 8427 } 8428 var newOwnerRule []interface{} 8429 for _, newOwnerItem := range newOwner { 8430 newOwnerRule = append(newOwnerRule, newOwnerItem) 8431 } 8432 8433 logs, sub, err := _Ownable.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) 8434 if err != nil { 8435 return nil, err 8436 } 8437 return event.NewSubscription(func(quit <-chan struct{}) error { 8438 defer sub.Unsubscribe() 8439 for { 8440 select { 8441 case log := <-logs: 8442 // New log arrived, parse the event and forward to the user 8443 event := new(OwnableOwnershipTransferred) 8444 if err := _Ownable.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { 8445 return err 8446 } 8447 event.Raw = log 8448 8449 select { 8450 case sink <- event: 8451 case err := <-sub.Err(): 8452 return err 8453 case <-quit: 8454 return nil 8455 } 8456 case err := <-sub.Err(): 8457 return err 8458 case <-quit: 8459 return nil 8460 } 8461 } 8462 }), nil 8463 } 8464 8465 // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. 8466 // 8467 // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) 8468 func (_Ownable *OwnableFilterer) ParseOwnershipTransferred(log types.Log) (*OwnableOwnershipTransferred, error) { 8469 event := new(OwnableOwnershipTransferred) 8470 if err := _Ownable.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { 8471 return nil, err 8472 } 8473 event.Raw = log 8474 return event, nil 8475 } 8476 8477 // StringsABI is the input ABI used to generate the binding from. 8478 const StringsABI = "[]" 8479 8480 // StringsBin is the compiled bytecode used for deploying new contracts. 8481 var StringsBin = "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f9650d6733eedeedf1d546bfda2358da9d33ef88dd0c21c72e7cbdca92223d7964736f6c63430008030033" 8482 8483 // DeployStrings deploys a new Ethereum contract, binding an instance of Strings to it. 8484 func DeployStrings(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Strings, error) { 8485 parsed, err := abi.JSON(strings.NewReader(StringsABI)) 8486 if err != nil { 8487 return common.Address{}, nil, nil, err 8488 } 8489 8490 address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(StringsBin), backend) 8491 if err != nil { 8492 return common.Address{}, nil, nil, err 8493 } 8494 return address, tx, &Strings{StringsCaller: StringsCaller{contract: contract}, StringsTransactor: StringsTransactor{contract: contract}, StringsFilterer: StringsFilterer{contract: contract}}, nil 8495 } 8496 8497 // Strings is an auto generated Go binding around an Ethereum contract. 8498 type Strings struct { 8499 StringsCaller // Read-only binding to the contract 8500 StringsTransactor // Write-only binding to the contract 8501 StringsFilterer // Log filterer for contract events 8502 } 8503 8504 // StringsCaller is an auto generated read-only Go binding around an Ethereum contract. 8505 type StringsCaller struct { 8506 contract *bind.BoundContract // Generic contract wrapper for the low level calls 8507 } 8508 8509 // StringsTransactor is an auto generated write-only Go binding around an Ethereum contract. 8510 type StringsTransactor struct { 8511 contract *bind.BoundContract // Generic contract wrapper for the low level calls 8512 } 8513 8514 // StringsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. 8515 type StringsFilterer struct { 8516 contract *bind.BoundContract // Generic contract wrapper for the low level calls 8517 } 8518 8519 // StringsSession is an auto generated Go binding around an Ethereum contract, 8520 // with pre-set call and transact options. 8521 type StringsSession struct { 8522 Contract *Strings // Generic contract binding to set the session for 8523 CallOpts bind.CallOpts // Call options to use throughout this session 8524 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 8525 } 8526 8527 // StringsCallerSession is an auto generated read-only Go binding around an Ethereum contract, 8528 // with pre-set call options. 8529 type StringsCallerSession struct { 8530 Contract *StringsCaller // Generic contract caller binding to set the session for 8531 CallOpts bind.CallOpts // Call options to use throughout this session 8532 } 8533 8534 // StringsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, 8535 // with pre-set transact options. 8536 type StringsTransactorSession struct { 8537 Contract *StringsTransactor // Generic contract transactor binding to set the session for 8538 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 8539 } 8540 8541 // StringsRaw is an auto generated low-level Go binding around an Ethereum contract. 8542 type StringsRaw struct { 8543 Contract *Strings // Generic contract binding to access the raw methods on 8544 } 8545 8546 // StringsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. 8547 type StringsCallerRaw struct { 8548 Contract *StringsCaller // Generic read-only contract binding to access the raw methods on 8549 } 8550 8551 // StringsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. 8552 type StringsTransactorRaw struct { 8553 Contract *StringsTransactor // Generic write-only contract binding to access the raw methods on 8554 } 8555 8556 // NewStrings creates a new instance of Strings, bound to a specific deployed contract. 8557 func NewStrings(address common.Address, backend bind.ContractBackend) (*Strings, error) { 8558 contract, err := bindStrings(address, backend, backend, backend) 8559 if err != nil { 8560 return nil, err 8561 } 8562 return &Strings{StringsCaller: StringsCaller{contract: contract}, StringsTransactor: StringsTransactor{contract: contract}, StringsFilterer: StringsFilterer{contract: contract}}, nil 8563 } 8564 8565 // NewStringsCaller creates a new read-only instance of Strings, bound to a specific deployed contract. 8566 func NewStringsCaller(address common.Address, caller bind.ContractCaller) (*StringsCaller, error) { 8567 contract, err := bindStrings(address, caller, nil, nil) 8568 if err != nil { 8569 return nil, err 8570 } 8571 return &StringsCaller{contract: contract}, nil 8572 } 8573 8574 // NewStringsTransactor creates a new write-only instance of Strings, bound to a specific deployed contract. 8575 func NewStringsTransactor(address common.Address, transactor bind.ContractTransactor) (*StringsTransactor, error) { 8576 contract, err := bindStrings(address, nil, transactor, nil) 8577 if err != nil { 8578 return nil, err 8579 } 8580 return &StringsTransactor{contract: contract}, nil 8581 } 8582 8583 // NewStringsFilterer creates a new log filterer instance of Strings, bound to a specific deployed contract. 8584 func NewStringsFilterer(address common.Address, filterer bind.ContractFilterer) (*StringsFilterer, error) { 8585 contract, err := bindStrings(address, nil, nil, filterer) 8586 if err != nil { 8587 return nil, err 8588 } 8589 return &StringsFilterer{contract: contract}, nil 8590 } 8591 8592 // bindStrings binds a generic wrapper to an already deployed contract. 8593 func bindStrings(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { 8594 parsed, err := abi.JSON(strings.NewReader(StringsABI)) 8595 if err != nil { 8596 return nil, err 8597 } 8598 return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil 8599 } 8600 8601 // Call invokes the (constant) contract method with params as input values and 8602 // sets the output to result. The result type might be a single field for simple 8603 // returns, a slice of interfaces for anonymous returns and a struct for named 8604 // returns. 8605 func (_Strings *StringsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 8606 return _Strings.Contract.StringsCaller.contract.Call(opts, result, method, params...) 8607 } 8608 8609 // Transfer initiates a plain transaction to move funds to the contract, calling 8610 // its default method if one is available. 8611 func (_Strings *StringsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 8612 return _Strings.Contract.StringsTransactor.contract.Transfer(opts) 8613 } 8614 8615 // Transact invokes the (paid) contract method with params as input values. 8616 func (_Strings *StringsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 8617 return _Strings.Contract.StringsTransactor.contract.Transact(opts, method, params...) 8618 } 8619 8620 // Call invokes the (constant) contract method with params as input values and 8621 // sets the output to result. The result type might be a single field for simple 8622 // returns, a slice of interfaces for anonymous returns and a struct for named 8623 // returns. 8624 func (_Strings *StringsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 8625 return _Strings.Contract.contract.Call(opts, result, method, params...) 8626 } 8627 8628 // Transfer initiates a plain transaction to move funds to the contract, calling 8629 // its default method if one is available. 8630 func (_Strings *StringsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 8631 return _Strings.Contract.contract.Transfer(opts) 8632 } 8633 8634 // Transact invokes the (paid) contract method with params as input values. 8635 func (_Strings *StringsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 8636 return _Strings.Contract.contract.Transact(opts, method, params...) 8637 }