github.com/status-im/status-go@v1.1.0/contracts/community-tokens/collectibles/Collectibles.go (about)

     1  // Code generated - DO NOT EDIT.
     2  // This file is a generated binding and any manual changes will be lost.
     3  
     4  package collectibles
     5  
     6  import (
     7  	"errors"
     8  	"math/big"
     9  	"strings"
    10  
    11  	ethereum "github.com/ethereum/go-ethereum"
    12  	"github.com/ethereum/go-ethereum/accounts/abi"
    13  	"github.com/ethereum/go-ethereum/accounts/abi/bind"
    14  	"github.com/ethereum/go-ethereum/common"
    15  	"github.com/ethereum/go-ethereum/core/types"
    16  	"github.com/ethereum/go-ethereum/event"
    17  )
    18  
    19  // Reference imports to suppress errors if they are not otherwise used.
    20  var (
    21  	_ = errors.New
    22  	_ = big.NewInt
    23  	_ = strings.NewReader
    24  	_ = ethereum.NotFound
    25  	_ = bind.Bind
    26  	_ = common.Big1
    27  	_ = types.BloomLookup
    28  	_ = event.NewSubscription
    29  	_ = abi.ConvertType
    30  )
    31  
    32  // CollectiblesMetaData contains all meta data concerning the Collectibles contract.
    33  var CollectiblesMetaData = &bind.MetaData{
    34  	ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_maxSupply\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_remoteBurnable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_transferable\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"_baseTokenURI\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_ownerToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_masterToken\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"BaseToken_MaxSupplyLowerThanTotalSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BaseToken_MaxSupplyReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BaseToken_NotAuthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BaseToken_NotRemoteBurnable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BaseToken_NotTransferable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BaseToken_ReceiversAndIdsMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CommunityOwnable_InvalidTokenAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CommunityOwnable_NotAuthorized\",\"type\":\"error\"},{\"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\":\"StatusMint\",\"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\":\"baseTokenURI\",\"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\":\"masterToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"name\":\"mintTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mintedCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":[],\"name\":\"ownerToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"}],\"name\":\"remoteBurn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"remoteBurnable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"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\":\"uint256\",\"name\":\"newMaxSupply\",\"type\":\"uint256\"}],\"name\":\"setMaxSupply\",\"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\"},{\"inputs\":[],\"name\":\"transferable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]",
    35  	Bin: "0x6101006040523480156200001257600080fd5b506040516200300a3803806200300a8339810160408190526200003591620001d8565b87878787878787878181898960006200004f83826200034d565b5060016200005e82826200034d565b5050506001600160a01b03808316608081905290821660a0521580156200008e575060a0516001600160a01b0316155b15620000ad5760405163c9d8a9b360e01b815260040160405180910390fd5b5050600b86905584151560c05283151560e052600c620000ce84826200034d565b505050505050505050505050505050505062000419565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200010d57600080fd5b81516001600160401b03808211156200012a576200012a620000e5565b604051601f8301601f19908116603f01168101908282118183101715620001555762000155620000e5565b816040528381526020925086838588010111156200017257600080fd5b600091505b8382101562000196578582018301518183018401529082019062000177565b600093810190920192909252949350505050565b80518015158114620001bb57600080fd5b919050565b80516001600160a01b0381168114620001bb57600080fd5b600080600080600080600080610100898b031215620001f657600080fd5b88516001600160401b03808211156200020e57600080fd5b6200021c8c838d01620000fb565b995060208b01519150808211156200023357600080fd5b620002418c838d01620000fb565b985060408b015197506200025860608c01620001aa565b96506200026860808c01620001aa565b955060a08b01519150808211156200027f57600080fd5b506200028e8b828c01620000fb565b9350506200029f60c08a01620001c0565b9150620002af60e08a01620001c0565b90509295985092959890939650565b600181811c90821680620002d357607f821691505b602082108103620002f457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200034857600081815260208120601f850160051c81016020861015620003235750805b601f850160051c820191505b8181101562000344578281556001016200032f565b5050505b505050565b81516001600160401b03811115620003695762000369620000e5565b62000381816200037a8454620002be565b84620002fa565b602080601f831160018114620003b95760008415620003a05750858301515b600019600386901b1c1916600185901b17855562000344565b600085815260208120601f198616915b82811015620003ea57888601518255948401946001909101908401620003c9565b5085821015620004095787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c05160e051612b55620004b5600039600081816103720152611bc30152600081816102400152610a6101526000818161028c01528181610954015281816109b301528181610c3e01528181610c9d01528181611017015261107601526000818161032501528181610877015281816108d601528181610b6101528181610bc001528181610f3a0152610f990152612b556000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636352211e116100f9578063b88d4fde11610097578063cf721b1511610071578063cf721b15146103e8578063d547cfb7146103f0578063d5abeb01146103f8578063e985e9c51461040157600080fd5b8063b88d4fde146103af578063c87b56dd146103c2578063ce7c8b49146103d557600080fd5b806370a08231116100d357806370a082311461035a57806392ff0d311461036d57806395d89b4114610394578063a22cb4651461039c57600080fd5b80636352211e1461030d57806365371883146103205780636f8b44b01461034757600080fd5b806323b872dd11610166578063335de38a11610140578063335de38a146102c157806342842e0e146102d45780634f6ccce7146102e75780634fb95e02146102fa57600080fd5b806323b872dd146102745780632bb5e31e146102875780632f745c59146102ae57600080fd5b8063095ea7b311610197578063095ea7b314610226578063101639f51461023b57806318160ddd1461026257600080fd5b806301ffc9a7146101be57806306fdde03146101e6578063081812fc146101fb575b600080fd5b6101d16101cc3660046123fc565b61043d565b60405190151581526020015b60405180910390f35b6101ee61044e565b6040516101dd9190612487565b61020e61020936600461249a565b6104e0565b6040516001600160a01b0390911681526020016101dd565b6102396102343660046124cf565b610507565b005b6101d17f000000000000000000000000000000000000000000000000000000000000000081565b6008545b6040519081526020016101dd565b6102396102823660046124f9565b61063d565b61020e7f000000000000000000000000000000000000000000000000000000000000000081565b6102666102bc3660046124cf565b6106c4565b6102396102cf36600461268d565b61076c565b6102396102e23660046124f9565b6107b6565b6102666102f536600461249a565b6107d1565b610239610308366004612754565b610875565b61020e61031b36600461249a565b610afa565b61020e7f000000000000000000000000000000000000000000000000000000000000000081565b61023961035536600461249a565b610b5f565b6102666103683660046127ea565b610d8f565b6101d17f000000000000000000000000000000000000000000000000000000000000000081565b6101ee610e29565b6102396103aa366004612805565b610e38565b6102396103bd366004612841565b610e43565b6101ee6103d036600461249a565b610ed1565b6102396103e33660046128a9565b610f38565b61026661117d565b6101ee61118d565b610266600b5481565b6101d161040f366004612936565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006104488261121b565b92915050565b60606000805461045d90612969565b80601f016020809104026020016040519081016040528092919081815260200182805461048990612969565b80156104d65780601f106104ab576101008083540402835291602001916104d6565b820191906000526020600020905b8154815290600101906020018083116104b957829003601f168201915b5050505050905090565b60006104eb82611271565b506000908152600460205260409020546001600160a01b031690565b600061051282610afa565b9050806001600160a01b0316836001600160a01b0316036105a05760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b336001600160a01b03821614806105bc57506105bc813361040f565b61062e5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610597565b61063883836112d5565b505050565b610647338261135b565b6106b95760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610597565b6106388383836113da565b60006106cf83610d8f565b82106107435760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e64730000000000000000000000000000000000000000006064820152608401610597565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b6107ae86868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250889250879150869050611646565b505050505050565b61063883838360405180602001604052806000815250610e43565b60006107dc60085490565b82106108505760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e647300000000000000000000000000000000000000006064820152608401610597565b60088281548110610863576108636129bc565b90600052602060002001549050919050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161580159061094b57506040517f70a082310000000000000000000000000000000000000000000000000000000081523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610925573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094991906129eb565b155b8015610a2857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615801590610a2857506040517f70a082310000000000000000000000000000000000000000000000000000000081523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610a02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2691906129eb565b155b15610a5f576040517f7cea464e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000610ab6576040517f98209e6c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b8151811015610af657610ae4828281518110610ad757610ad76129bc565b60200260200101516116d8565b80610aee81612a33565b915050610ab9565b5050565b6000818152600260205260408120546001600160a01b0316806104485760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610597565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615801590610c3557506040517f70a082310000000000000000000000000000000000000000000000000000000081523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610c0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3391906129eb565b155b8015610d1257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615801590610d1257506040517f70a082310000000000000000000000000000000000000000000000000000000081523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610cec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1091906129eb565b155b15610d49576040517f7cea464e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d5161117d565b811015610d8a576040517fad8783d500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600b55565b60006001600160a01b038216610e0d5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152608401610597565b506001600160a01b031660009081526003602052604090205490565b60606001805461045d90612969565b610af63383836117b1565b610e4d338361135b565b610ebf5760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610597565b610ecb8484848461189d565b50505050565b6060610edc82611271565b6000610ee6611926565b90506000815111610f065760405180602001604052806000815250610f31565b80610f1084611935565b604051602001610f21929190612a6b565b6040516020818303038152906040525b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161580159061100e57506040517f70a082310000000000000000000000000000000000000000000000000000000081523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610fe8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100c91906129eb565b155b80156110eb57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316158015906110eb57506040517f70a082310000000000000000000000000000000000000000000000000000000081523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e991906129eb565b155b15611122576040517f7cea464e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600b54815161112f61117d565b6111399190612a9a565b1115611171576040517f23d6539900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61117a816119f3565b50565b6000611188600a5490565b905090565b600c805461119a90612969565b80601f01602080910402602001604051908101604052809291908181526020018280546111c690612969565b80156112135780601f106111e857610100808354040283529160200191611213565b820191906000526020600020905b8154815290600101906020018083116111f657829003601f168201915b505050505081565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f780e9d63000000000000000000000000000000000000000000000000000000001480610448575061044882611ab7565b6000818152600260205260409020546001600160a01b031661117a5760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610597565b600081815260046020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038416908117909155819061132282610afa565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061136783610afa565b9050806001600160a01b0316846001600160a01b031614806113ae57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806113d25750836001600160a01b03166113c7846104e0565b6001600160a01b0316145b949350505050565b826001600160a01b03166113ed82610afa565b6001600160a01b0316146114695760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610597565b6001600160a01b0382166114e45760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610597565b6114f18383836001611b9a565b826001600160a01b031661150482610afa565b6001600160a01b0316146115805760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610597565b600081815260046020908152604080832080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081169091556001600160a01b038781168086526003855283862080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b83518214611680576040517fbd999e0700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b828110156107ae576116c8868683815181106116a1576116a16129bc565b60200260200101518686858181106116bb576116bb6129bc565b9050602002013585610e43565b6116d181612a33565b9050611683565b60006116e382610afa565b90506116f3816000846001611b9a565b6116fc82610afa565b600083815260046020908152604080832080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081169091556001600160a01b0385168085526003845282852080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b816001600160a01b0316836001600160a01b0316036118125760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610597565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6118a88484846113da565b6118b484848484611c27565b610ecb5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610597565b6060600c805461045d90612969565b6060600061194283611de6565b600101905060008167ffffffffffffffff81111561196257611962612581565b6040519080825280601f01601f19166020018201604052801561198c576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508461199657509392505050565b60005b8151811015610af657611a3a828281518110611a1457611a146129bc565b6020026020010151611a25600a5490565b60405180602001604052806000815250611ec8565b600a54828281518110611a4f57611a4f6129bc565b60200260200101516001600160a01b031660006001600160a01b03167f28c427b0611d99da5c4f7368abe57e86b045b483c4689ae93e90745802335b8760405160405180910390a4611aa5600a80546001019055565b80611aaf81612a33565b9150506119f6565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd000000000000000000000000000000000000000000000000000000001480611b4a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061044857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610448565b6001600160a01b03841615801590611bba57506001600160a01b03831615155b8015611be457507f0000000000000000000000000000000000000000000000000000000000000000155b15611c1b576040517f6b2b9e5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ecb84848484611f51565b60006001600160a01b0384163b15611ddb576040517f150b7a020000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063150b7a0290611c84903390899088908890600401612aad565b6020604051808303816000875af1925050508015611cdd575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252611cda91810190612ae9565b60015b611d90573d808015611d0b576040519150601f19603f3d011682016040523d82523d6000602084013e611d10565b606091505b508051600003611d885760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610597565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a02000000000000000000000000000000000000000000000000000000001490506113d2565b506001949350505050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611e2f577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310611e5b576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611e7957662386f26fc10000830492506010015b6305f5e1008310611e91576305f5e100830492506008015b6127108310611ea557612710830492506004015b60648310611eb7576064830492506002015b600a83106104485760010192915050565b611ed2838361208d565b611edf6000848484611c27565b6106385760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610597565b6001811115611fc85760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e736563757469766520747260448201527f616e7366657273206e6f7420737570706f7274656400000000000000000000006064820152608401610597565b816001600160a01b0385166120245761201f81600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b612047565b836001600160a01b0316856001600160a01b03161461204757612047858261223e565b6001600160a01b0384166120635761205e816122db565b612086565b846001600160a01b0316846001600160a01b03161461208657612086848261238a565b5050505050565b6001600160a01b0382166120e35760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610597565b6000818152600260205260409020546001600160a01b0316156121485760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610597565b612156600083836001611b9a565b6000818152600260205260409020546001600160a01b0316156121bb5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610597565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000600161224b84610d8f565b6122559190612b06565b6000838152600760205260409020549091508082146122a8576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b6008546000906122ed90600190612b06565b60008381526009602052604081205460088054939450909284908110612315576123156129bc565b906000526020600020015490508060088381548110612336576123366129bc565b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061236e5761236e612b19565b6001900381819060005260206000200160009055905550505050565b600061239583610d8f565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461117a57600080fd5b60006020828403121561240e57600080fd5b8135610f31816123ce565b60005b8381101561243457818101518382015260200161241c565b50506000910152565b60008151808452612455816020860160208601612419565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610f31602083018461243d565b6000602082840312156124ac57600080fd5b5035919050565b80356001600160a01b03811681146124ca57600080fd5b919050565b600080604083850312156124e257600080fd5b6124eb836124b3565b946020939093013593505050565b60008060006060848603121561250e57600080fd5b612517846124b3565b9250612525602085016124b3565b9150604084013590509250925092565b60008083601f84011261254757600080fd5b50813567ffffffffffffffff81111561255f57600080fd5b6020830191508360208260051b850101111561257a57600080fd5b9250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156125f7576125f7612581565b604052919050565b600082601f83011261261057600080fd5b813567ffffffffffffffff81111561262a5761262a612581565b61265b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016125b0565b81815284602083860101111561267057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600080608087890312156126a657600080fd5b6126af876124b3565b9550602087013567ffffffffffffffff808211156126cc57600080fd5b6126d88a838b01612535565b909750955060408901359150808211156126f157600080fd5b6126fd8a838b01612535565b9095509350606089013591508082111561271657600080fd5b5061272389828a016125ff565b9150509295509295509295565b600067ffffffffffffffff82111561274a5761274a612581565b5060051b60200190565b6000602080838503121561276757600080fd5b823567ffffffffffffffff81111561277e57600080fd5b8301601f8101851361278f57600080fd5b80356127a261279d82612730565b6125b0565b81815260059190911b820183019083810190878311156127c157600080fd5b928401925b828410156127df578335825292840192908401906127c6565b979650505050505050565b6000602082840312156127fc57600080fd5b610f31826124b3565b6000806040838503121561281857600080fd5b612821836124b3565b91506020830135801515811461283657600080fd5b809150509250929050565b6000806000806080858703121561285757600080fd5b612860856124b3565b935061286e602086016124b3565b925060408501359150606085013567ffffffffffffffff81111561289157600080fd5b61289d878288016125ff565b91505092959194509250565b600060208083850312156128bc57600080fd5b823567ffffffffffffffff8111156128d357600080fd5b8301601f810185136128e457600080fd5b80356128f261279d82612730565b81815260059190911b8201830190838101908783111561291157600080fd5b928401925b828410156127df57612927846124b3565b82529284019290840190612916565b6000806040838503121561294957600080fd5b612952836124b3565b9150612960602084016124b3565b90509250929050565b600181811c9082168061297d57607f821691505b6020821081036129b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156129fd57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a6457612a64612a04565b5060010190565b60008351612a7d818460208801612419565b835190830190612a91818360208801612419565b01949350505050565b8082018082111561044857610448612a04565b60006001600160a01b03808716835280861660208401525083604083015260806060830152612adf608083018461243d565b9695505050505050565b600060208284031215612afb57600080fd5b8151610f31816123ce565b8181038181111561044857610448612a04565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c6343000811000a",
    36  }
    37  
    38  // CollectiblesABI is the input ABI used to generate the binding from.
    39  // Deprecated: Use CollectiblesMetaData.ABI instead.
    40  var CollectiblesABI = CollectiblesMetaData.ABI
    41  
    42  // CollectiblesBin is the compiled bytecode used for deploying new contracts.
    43  // Deprecated: Use CollectiblesMetaData.Bin instead.
    44  var CollectiblesBin = CollectiblesMetaData.Bin
    45  
    46  // DeployCollectibles deploys a new Ethereum contract, binding an instance of Collectibles to it.
    47  func DeployCollectibles(auth *bind.TransactOpts, backend bind.ContractBackend, _name string, _symbol string, _maxSupply *big.Int, _remoteBurnable bool, _transferable bool, _baseTokenURI string, _ownerToken common.Address, _masterToken common.Address) (common.Address, *types.Transaction, *Collectibles, error) {
    48  	parsed, err := CollectiblesMetaData.GetAbi()
    49  	if err != nil {
    50  		return common.Address{}, nil, nil, err
    51  	}
    52  	if parsed == nil {
    53  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
    54  	}
    55  
    56  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(CollectiblesBin), backend, _name, _symbol, _maxSupply, _remoteBurnable, _transferable, _baseTokenURI, _ownerToken, _masterToken)
    57  	if err != nil {
    58  		return common.Address{}, nil, nil, err
    59  	}
    60  	return address, tx, &Collectibles{CollectiblesCaller: CollectiblesCaller{contract: contract}, CollectiblesTransactor: CollectiblesTransactor{contract: contract}, CollectiblesFilterer: CollectiblesFilterer{contract: contract}}, nil
    61  }
    62  
    63  // Collectibles is an auto generated Go binding around an Ethereum contract.
    64  type Collectibles struct {
    65  	CollectiblesCaller     // Read-only binding to the contract
    66  	CollectiblesTransactor // Write-only binding to the contract
    67  	CollectiblesFilterer   // Log filterer for contract events
    68  }
    69  
    70  // CollectiblesCaller is an auto generated read-only Go binding around an Ethereum contract.
    71  type CollectiblesCaller struct {
    72  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    73  }
    74  
    75  // CollectiblesTransactor is an auto generated write-only Go binding around an Ethereum contract.
    76  type CollectiblesTransactor struct {
    77  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    78  }
    79  
    80  // CollectiblesFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
    81  type CollectiblesFilterer struct {
    82  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    83  }
    84  
    85  // CollectiblesSession is an auto generated Go binding around an Ethereum contract,
    86  // with pre-set call and transact options.
    87  type CollectiblesSession struct {
    88  	Contract     *Collectibles     // Generic contract binding to set the session for
    89  	CallOpts     bind.CallOpts     // Call options to use throughout this session
    90  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
    91  }
    92  
    93  // CollectiblesCallerSession is an auto generated read-only Go binding around an Ethereum contract,
    94  // with pre-set call options.
    95  type CollectiblesCallerSession struct {
    96  	Contract *CollectiblesCaller // Generic contract caller binding to set the session for
    97  	CallOpts bind.CallOpts       // Call options to use throughout this session
    98  }
    99  
   100  // CollectiblesTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
   101  // with pre-set transact options.
   102  type CollectiblesTransactorSession struct {
   103  	Contract     *CollectiblesTransactor // Generic contract transactor binding to set the session for
   104  	TransactOpts bind.TransactOpts       // Transaction auth options to use throughout this session
   105  }
   106  
   107  // CollectiblesRaw is an auto generated low-level Go binding around an Ethereum contract.
   108  type CollectiblesRaw struct {
   109  	Contract *Collectibles // Generic contract binding to access the raw methods on
   110  }
   111  
   112  // CollectiblesCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
   113  type CollectiblesCallerRaw struct {
   114  	Contract *CollectiblesCaller // Generic read-only contract binding to access the raw methods on
   115  }
   116  
   117  // CollectiblesTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
   118  type CollectiblesTransactorRaw struct {
   119  	Contract *CollectiblesTransactor // Generic write-only contract binding to access the raw methods on
   120  }
   121  
   122  // NewCollectibles creates a new instance of Collectibles, bound to a specific deployed contract.
   123  func NewCollectibles(address common.Address, backend bind.ContractBackend) (*Collectibles, error) {
   124  	contract, err := bindCollectibles(address, backend, backend, backend)
   125  	if err != nil {
   126  		return nil, err
   127  	}
   128  	return &Collectibles{CollectiblesCaller: CollectiblesCaller{contract: contract}, CollectiblesTransactor: CollectiblesTransactor{contract: contract}, CollectiblesFilterer: CollectiblesFilterer{contract: contract}}, nil
   129  }
   130  
   131  // NewCollectiblesCaller creates a new read-only instance of Collectibles, bound to a specific deployed contract.
   132  func NewCollectiblesCaller(address common.Address, caller bind.ContractCaller) (*CollectiblesCaller, error) {
   133  	contract, err := bindCollectibles(address, caller, nil, nil)
   134  	if err != nil {
   135  		return nil, err
   136  	}
   137  	return &CollectiblesCaller{contract: contract}, nil
   138  }
   139  
   140  // NewCollectiblesTransactor creates a new write-only instance of Collectibles, bound to a specific deployed contract.
   141  func NewCollectiblesTransactor(address common.Address, transactor bind.ContractTransactor) (*CollectiblesTransactor, error) {
   142  	contract, err := bindCollectibles(address, nil, transactor, nil)
   143  	if err != nil {
   144  		return nil, err
   145  	}
   146  	return &CollectiblesTransactor{contract: contract}, nil
   147  }
   148  
   149  // NewCollectiblesFilterer creates a new log filterer instance of Collectibles, bound to a specific deployed contract.
   150  func NewCollectiblesFilterer(address common.Address, filterer bind.ContractFilterer) (*CollectiblesFilterer, error) {
   151  	contract, err := bindCollectibles(address, nil, nil, filterer)
   152  	if err != nil {
   153  		return nil, err
   154  	}
   155  	return &CollectiblesFilterer{contract: contract}, nil
   156  }
   157  
   158  // bindCollectibles binds a generic wrapper to an already deployed contract.
   159  func bindCollectibles(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   160  	parsed, err := CollectiblesMetaData.GetAbi()
   161  	if err != nil {
   162  		return nil, err
   163  	}
   164  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
   165  }
   166  
   167  // Call invokes the (constant) contract method with params as input values and
   168  // sets the output to result. The result type might be a single field for simple
   169  // returns, a slice of interfaces for anonymous returns and a struct for named
   170  // returns.
   171  func (_Collectibles *CollectiblesRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   172  	return _Collectibles.Contract.CollectiblesCaller.contract.Call(opts, result, method, params...)
   173  }
   174  
   175  // Transfer initiates a plain transaction to move funds to the contract, calling
   176  // its default method if one is available.
   177  func (_Collectibles *CollectiblesRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   178  	return _Collectibles.Contract.CollectiblesTransactor.contract.Transfer(opts)
   179  }
   180  
   181  // Transact invokes the (paid) contract method with params as input values.
   182  func (_Collectibles *CollectiblesRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   183  	return _Collectibles.Contract.CollectiblesTransactor.contract.Transact(opts, method, params...)
   184  }
   185  
   186  // Call invokes the (constant) contract method with params as input values and
   187  // sets the output to result. The result type might be a single field for simple
   188  // returns, a slice of interfaces for anonymous returns and a struct for named
   189  // returns.
   190  func (_Collectibles *CollectiblesCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   191  	return _Collectibles.Contract.contract.Call(opts, result, method, params...)
   192  }
   193  
   194  // Transfer initiates a plain transaction to move funds to the contract, calling
   195  // its default method if one is available.
   196  func (_Collectibles *CollectiblesTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   197  	return _Collectibles.Contract.contract.Transfer(opts)
   198  }
   199  
   200  // Transact invokes the (paid) contract method with params as input values.
   201  func (_Collectibles *CollectiblesTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   202  	return _Collectibles.Contract.contract.Transact(opts, method, params...)
   203  }
   204  
   205  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
   206  //
   207  // Solidity: function balanceOf(address owner) view returns(uint256)
   208  func (_Collectibles *CollectiblesCaller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) {
   209  	var out []interface{}
   210  	err := _Collectibles.contract.Call(opts, &out, "balanceOf", owner)
   211  
   212  	if err != nil {
   213  		return *new(*big.Int), err
   214  	}
   215  
   216  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   217  
   218  	return out0, err
   219  
   220  }
   221  
   222  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
   223  //
   224  // Solidity: function balanceOf(address owner) view returns(uint256)
   225  func (_Collectibles *CollectiblesSession) BalanceOf(owner common.Address) (*big.Int, error) {
   226  	return _Collectibles.Contract.BalanceOf(&_Collectibles.CallOpts, owner)
   227  }
   228  
   229  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
   230  //
   231  // Solidity: function balanceOf(address owner) view returns(uint256)
   232  func (_Collectibles *CollectiblesCallerSession) BalanceOf(owner common.Address) (*big.Int, error) {
   233  	return _Collectibles.Contract.BalanceOf(&_Collectibles.CallOpts, owner)
   234  }
   235  
   236  // BaseTokenURI is a free data retrieval call binding the contract method 0xd547cfb7.
   237  //
   238  // Solidity: function baseTokenURI() view returns(string)
   239  func (_Collectibles *CollectiblesCaller) BaseTokenURI(opts *bind.CallOpts) (string, error) {
   240  	var out []interface{}
   241  	err := _Collectibles.contract.Call(opts, &out, "baseTokenURI")
   242  
   243  	if err != nil {
   244  		return *new(string), err
   245  	}
   246  
   247  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   248  
   249  	return out0, err
   250  
   251  }
   252  
   253  // BaseTokenURI is a free data retrieval call binding the contract method 0xd547cfb7.
   254  //
   255  // Solidity: function baseTokenURI() view returns(string)
   256  func (_Collectibles *CollectiblesSession) BaseTokenURI() (string, error) {
   257  	return _Collectibles.Contract.BaseTokenURI(&_Collectibles.CallOpts)
   258  }
   259  
   260  // BaseTokenURI is a free data retrieval call binding the contract method 0xd547cfb7.
   261  //
   262  // Solidity: function baseTokenURI() view returns(string)
   263  func (_Collectibles *CollectiblesCallerSession) BaseTokenURI() (string, error) {
   264  	return _Collectibles.Contract.BaseTokenURI(&_Collectibles.CallOpts)
   265  }
   266  
   267  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
   268  //
   269  // Solidity: function getApproved(uint256 tokenId) view returns(address)
   270  func (_Collectibles *CollectiblesCaller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
   271  	var out []interface{}
   272  	err := _Collectibles.contract.Call(opts, &out, "getApproved", tokenId)
   273  
   274  	if err != nil {
   275  		return *new(common.Address), err
   276  	}
   277  
   278  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   279  
   280  	return out0, err
   281  
   282  }
   283  
   284  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
   285  //
   286  // Solidity: function getApproved(uint256 tokenId) view returns(address)
   287  func (_Collectibles *CollectiblesSession) GetApproved(tokenId *big.Int) (common.Address, error) {
   288  	return _Collectibles.Contract.GetApproved(&_Collectibles.CallOpts, tokenId)
   289  }
   290  
   291  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
   292  //
   293  // Solidity: function getApproved(uint256 tokenId) view returns(address)
   294  func (_Collectibles *CollectiblesCallerSession) GetApproved(tokenId *big.Int) (common.Address, error) {
   295  	return _Collectibles.Contract.GetApproved(&_Collectibles.CallOpts, tokenId)
   296  }
   297  
   298  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
   299  //
   300  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
   301  func (_Collectibles *CollectiblesCaller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) {
   302  	var out []interface{}
   303  	err := _Collectibles.contract.Call(opts, &out, "isApprovedForAll", owner, operator)
   304  
   305  	if err != nil {
   306  		return *new(bool), err
   307  	}
   308  
   309  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   310  
   311  	return out0, err
   312  
   313  }
   314  
   315  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
   316  //
   317  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
   318  func (_Collectibles *CollectiblesSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
   319  	return _Collectibles.Contract.IsApprovedForAll(&_Collectibles.CallOpts, owner, operator)
   320  }
   321  
   322  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
   323  //
   324  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
   325  func (_Collectibles *CollectiblesCallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
   326  	return _Collectibles.Contract.IsApprovedForAll(&_Collectibles.CallOpts, owner, operator)
   327  }
   328  
   329  // MasterToken is a free data retrieval call binding the contract method 0x2bb5e31e.
   330  //
   331  // Solidity: function masterToken() view returns(address)
   332  func (_Collectibles *CollectiblesCaller) MasterToken(opts *bind.CallOpts) (common.Address, error) {
   333  	var out []interface{}
   334  	err := _Collectibles.contract.Call(opts, &out, "masterToken")
   335  
   336  	if err != nil {
   337  		return *new(common.Address), err
   338  	}
   339  
   340  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   341  
   342  	return out0, err
   343  
   344  }
   345  
   346  // MasterToken is a free data retrieval call binding the contract method 0x2bb5e31e.
   347  //
   348  // Solidity: function masterToken() view returns(address)
   349  func (_Collectibles *CollectiblesSession) MasterToken() (common.Address, error) {
   350  	return _Collectibles.Contract.MasterToken(&_Collectibles.CallOpts)
   351  }
   352  
   353  // MasterToken is a free data retrieval call binding the contract method 0x2bb5e31e.
   354  //
   355  // Solidity: function masterToken() view returns(address)
   356  func (_Collectibles *CollectiblesCallerSession) MasterToken() (common.Address, error) {
   357  	return _Collectibles.Contract.MasterToken(&_Collectibles.CallOpts)
   358  }
   359  
   360  // MaxSupply is a free data retrieval call binding the contract method 0xd5abeb01.
   361  //
   362  // Solidity: function maxSupply() view returns(uint256)
   363  func (_Collectibles *CollectiblesCaller) MaxSupply(opts *bind.CallOpts) (*big.Int, error) {
   364  	var out []interface{}
   365  	err := _Collectibles.contract.Call(opts, &out, "maxSupply")
   366  
   367  	if err != nil {
   368  		return *new(*big.Int), err
   369  	}
   370  
   371  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   372  
   373  	return out0, err
   374  
   375  }
   376  
   377  // MaxSupply is a free data retrieval call binding the contract method 0xd5abeb01.
   378  //
   379  // Solidity: function maxSupply() view returns(uint256)
   380  func (_Collectibles *CollectiblesSession) MaxSupply() (*big.Int, error) {
   381  	return _Collectibles.Contract.MaxSupply(&_Collectibles.CallOpts)
   382  }
   383  
   384  // MaxSupply is a free data retrieval call binding the contract method 0xd5abeb01.
   385  //
   386  // Solidity: function maxSupply() view returns(uint256)
   387  func (_Collectibles *CollectiblesCallerSession) MaxSupply() (*big.Int, error) {
   388  	return _Collectibles.Contract.MaxSupply(&_Collectibles.CallOpts)
   389  }
   390  
   391  // MintedCount is a free data retrieval call binding the contract method 0xcf721b15.
   392  //
   393  // Solidity: function mintedCount() view returns(uint256)
   394  func (_Collectibles *CollectiblesCaller) MintedCount(opts *bind.CallOpts) (*big.Int, error) {
   395  	var out []interface{}
   396  	err := _Collectibles.contract.Call(opts, &out, "mintedCount")
   397  
   398  	if err != nil {
   399  		return *new(*big.Int), err
   400  	}
   401  
   402  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   403  
   404  	return out0, err
   405  
   406  }
   407  
   408  // MintedCount is a free data retrieval call binding the contract method 0xcf721b15.
   409  //
   410  // Solidity: function mintedCount() view returns(uint256)
   411  func (_Collectibles *CollectiblesSession) MintedCount() (*big.Int, error) {
   412  	return _Collectibles.Contract.MintedCount(&_Collectibles.CallOpts)
   413  }
   414  
   415  // MintedCount is a free data retrieval call binding the contract method 0xcf721b15.
   416  //
   417  // Solidity: function mintedCount() view returns(uint256)
   418  func (_Collectibles *CollectiblesCallerSession) MintedCount() (*big.Int, error) {
   419  	return _Collectibles.Contract.MintedCount(&_Collectibles.CallOpts)
   420  }
   421  
   422  // Name is a free data retrieval call binding the contract method 0x06fdde03.
   423  //
   424  // Solidity: function name() view returns(string)
   425  func (_Collectibles *CollectiblesCaller) Name(opts *bind.CallOpts) (string, error) {
   426  	var out []interface{}
   427  	err := _Collectibles.contract.Call(opts, &out, "name")
   428  
   429  	if err != nil {
   430  		return *new(string), err
   431  	}
   432  
   433  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   434  
   435  	return out0, err
   436  
   437  }
   438  
   439  // Name is a free data retrieval call binding the contract method 0x06fdde03.
   440  //
   441  // Solidity: function name() view returns(string)
   442  func (_Collectibles *CollectiblesSession) Name() (string, error) {
   443  	return _Collectibles.Contract.Name(&_Collectibles.CallOpts)
   444  }
   445  
   446  // Name is a free data retrieval call binding the contract method 0x06fdde03.
   447  //
   448  // Solidity: function name() view returns(string)
   449  func (_Collectibles *CollectiblesCallerSession) Name() (string, error) {
   450  	return _Collectibles.Contract.Name(&_Collectibles.CallOpts)
   451  }
   452  
   453  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
   454  //
   455  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
   456  func (_Collectibles *CollectiblesCaller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
   457  	var out []interface{}
   458  	err := _Collectibles.contract.Call(opts, &out, "ownerOf", tokenId)
   459  
   460  	if err != nil {
   461  		return *new(common.Address), err
   462  	}
   463  
   464  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   465  
   466  	return out0, err
   467  
   468  }
   469  
   470  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
   471  //
   472  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
   473  func (_Collectibles *CollectiblesSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
   474  	return _Collectibles.Contract.OwnerOf(&_Collectibles.CallOpts, tokenId)
   475  }
   476  
   477  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
   478  //
   479  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
   480  func (_Collectibles *CollectiblesCallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
   481  	return _Collectibles.Contract.OwnerOf(&_Collectibles.CallOpts, tokenId)
   482  }
   483  
   484  // OwnerToken is a free data retrieval call binding the contract method 0x65371883.
   485  //
   486  // Solidity: function ownerToken() view returns(address)
   487  func (_Collectibles *CollectiblesCaller) OwnerToken(opts *bind.CallOpts) (common.Address, error) {
   488  	var out []interface{}
   489  	err := _Collectibles.contract.Call(opts, &out, "ownerToken")
   490  
   491  	if err != nil {
   492  		return *new(common.Address), err
   493  	}
   494  
   495  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   496  
   497  	return out0, err
   498  
   499  }
   500  
   501  // OwnerToken is a free data retrieval call binding the contract method 0x65371883.
   502  //
   503  // Solidity: function ownerToken() view returns(address)
   504  func (_Collectibles *CollectiblesSession) OwnerToken() (common.Address, error) {
   505  	return _Collectibles.Contract.OwnerToken(&_Collectibles.CallOpts)
   506  }
   507  
   508  // OwnerToken is a free data retrieval call binding the contract method 0x65371883.
   509  //
   510  // Solidity: function ownerToken() view returns(address)
   511  func (_Collectibles *CollectiblesCallerSession) OwnerToken() (common.Address, error) {
   512  	return _Collectibles.Contract.OwnerToken(&_Collectibles.CallOpts)
   513  }
   514  
   515  // RemoteBurnable is a free data retrieval call binding the contract method 0x101639f5.
   516  //
   517  // Solidity: function remoteBurnable() view returns(bool)
   518  func (_Collectibles *CollectiblesCaller) RemoteBurnable(opts *bind.CallOpts) (bool, error) {
   519  	var out []interface{}
   520  	err := _Collectibles.contract.Call(opts, &out, "remoteBurnable")
   521  
   522  	if err != nil {
   523  		return *new(bool), err
   524  	}
   525  
   526  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   527  
   528  	return out0, err
   529  
   530  }
   531  
   532  // RemoteBurnable is a free data retrieval call binding the contract method 0x101639f5.
   533  //
   534  // Solidity: function remoteBurnable() view returns(bool)
   535  func (_Collectibles *CollectiblesSession) RemoteBurnable() (bool, error) {
   536  	return _Collectibles.Contract.RemoteBurnable(&_Collectibles.CallOpts)
   537  }
   538  
   539  // RemoteBurnable is a free data retrieval call binding the contract method 0x101639f5.
   540  //
   541  // Solidity: function remoteBurnable() view returns(bool)
   542  func (_Collectibles *CollectiblesCallerSession) RemoteBurnable() (bool, error) {
   543  	return _Collectibles.Contract.RemoteBurnable(&_Collectibles.CallOpts)
   544  }
   545  
   546  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
   547  //
   548  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
   549  func (_Collectibles *CollectiblesCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
   550  	var out []interface{}
   551  	err := _Collectibles.contract.Call(opts, &out, "supportsInterface", interfaceId)
   552  
   553  	if err != nil {
   554  		return *new(bool), err
   555  	}
   556  
   557  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   558  
   559  	return out0, err
   560  
   561  }
   562  
   563  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
   564  //
   565  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
   566  func (_Collectibles *CollectiblesSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
   567  	return _Collectibles.Contract.SupportsInterface(&_Collectibles.CallOpts, interfaceId)
   568  }
   569  
   570  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
   571  //
   572  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
   573  func (_Collectibles *CollectiblesCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
   574  	return _Collectibles.Contract.SupportsInterface(&_Collectibles.CallOpts, interfaceId)
   575  }
   576  
   577  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
   578  //
   579  // Solidity: function symbol() view returns(string)
   580  func (_Collectibles *CollectiblesCaller) Symbol(opts *bind.CallOpts) (string, error) {
   581  	var out []interface{}
   582  	err := _Collectibles.contract.Call(opts, &out, "symbol")
   583  
   584  	if err != nil {
   585  		return *new(string), err
   586  	}
   587  
   588  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   589  
   590  	return out0, err
   591  
   592  }
   593  
   594  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
   595  //
   596  // Solidity: function symbol() view returns(string)
   597  func (_Collectibles *CollectiblesSession) Symbol() (string, error) {
   598  	return _Collectibles.Contract.Symbol(&_Collectibles.CallOpts)
   599  }
   600  
   601  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
   602  //
   603  // Solidity: function symbol() view returns(string)
   604  func (_Collectibles *CollectiblesCallerSession) Symbol() (string, error) {
   605  	return _Collectibles.Contract.Symbol(&_Collectibles.CallOpts)
   606  }
   607  
   608  // TokenByIndex is a free data retrieval call binding the contract method 0x4f6ccce7.
   609  //
   610  // Solidity: function tokenByIndex(uint256 index) view returns(uint256)
   611  func (_Collectibles *CollectiblesCaller) TokenByIndex(opts *bind.CallOpts, index *big.Int) (*big.Int, error) {
   612  	var out []interface{}
   613  	err := _Collectibles.contract.Call(opts, &out, "tokenByIndex", index)
   614  
   615  	if err != nil {
   616  		return *new(*big.Int), err
   617  	}
   618  
   619  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   620  
   621  	return out0, err
   622  
   623  }
   624  
   625  // TokenByIndex is a free data retrieval call binding the contract method 0x4f6ccce7.
   626  //
   627  // Solidity: function tokenByIndex(uint256 index) view returns(uint256)
   628  func (_Collectibles *CollectiblesSession) TokenByIndex(index *big.Int) (*big.Int, error) {
   629  	return _Collectibles.Contract.TokenByIndex(&_Collectibles.CallOpts, index)
   630  }
   631  
   632  // TokenByIndex is a free data retrieval call binding the contract method 0x4f6ccce7.
   633  //
   634  // Solidity: function tokenByIndex(uint256 index) view returns(uint256)
   635  func (_Collectibles *CollectiblesCallerSession) TokenByIndex(index *big.Int) (*big.Int, error) {
   636  	return _Collectibles.Contract.TokenByIndex(&_Collectibles.CallOpts, index)
   637  }
   638  
   639  // TokenOfOwnerByIndex is a free data retrieval call binding the contract method 0x2f745c59.
   640  //
   641  // Solidity: function tokenOfOwnerByIndex(address owner, uint256 index) view returns(uint256)
   642  func (_Collectibles *CollectiblesCaller) TokenOfOwnerByIndex(opts *bind.CallOpts, owner common.Address, index *big.Int) (*big.Int, error) {
   643  	var out []interface{}
   644  	err := _Collectibles.contract.Call(opts, &out, "tokenOfOwnerByIndex", owner, index)
   645  
   646  	if err != nil {
   647  		return *new(*big.Int), err
   648  	}
   649  
   650  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   651  
   652  	return out0, err
   653  
   654  }
   655  
   656  // TokenOfOwnerByIndex is a free data retrieval call binding the contract method 0x2f745c59.
   657  //
   658  // Solidity: function tokenOfOwnerByIndex(address owner, uint256 index) view returns(uint256)
   659  func (_Collectibles *CollectiblesSession) TokenOfOwnerByIndex(owner common.Address, index *big.Int) (*big.Int, error) {
   660  	return _Collectibles.Contract.TokenOfOwnerByIndex(&_Collectibles.CallOpts, owner, index)
   661  }
   662  
   663  // TokenOfOwnerByIndex is a free data retrieval call binding the contract method 0x2f745c59.
   664  //
   665  // Solidity: function tokenOfOwnerByIndex(address owner, uint256 index) view returns(uint256)
   666  func (_Collectibles *CollectiblesCallerSession) TokenOfOwnerByIndex(owner common.Address, index *big.Int) (*big.Int, error) {
   667  	return _Collectibles.Contract.TokenOfOwnerByIndex(&_Collectibles.CallOpts, owner, index)
   668  }
   669  
   670  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
   671  //
   672  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
   673  func (_Collectibles *CollectiblesCaller) TokenURI(opts *bind.CallOpts, tokenId *big.Int) (string, error) {
   674  	var out []interface{}
   675  	err := _Collectibles.contract.Call(opts, &out, "tokenURI", tokenId)
   676  
   677  	if err != nil {
   678  		return *new(string), err
   679  	}
   680  
   681  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   682  
   683  	return out0, err
   684  
   685  }
   686  
   687  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
   688  //
   689  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
   690  func (_Collectibles *CollectiblesSession) TokenURI(tokenId *big.Int) (string, error) {
   691  	return _Collectibles.Contract.TokenURI(&_Collectibles.CallOpts, tokenId)
   692  }
   693  
   694  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
   695  //
   696  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
   697  func (_Collectibles *CollectiblesCallerSession) TokenURI(tokenId *big.Int) (string, error) {
   698  	return _Collectibles.Contract.TokenURI(&_Collectibles.CallOpts, tokenId)
   699  }
   700  
   701  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
   702  //
   703  // Solidity: function totalSupply() view returns(uint256)
   704  func (_Collectibles *CollectiblesCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
   705  	var out []interface{}
   706  	err := _Collectibles.contract.Call(opts, &out, "totalSupply")
   707  
   708  	if err != nil {
   709  		return *new(*big.Int), err
   710  	}
   711  
   712  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   713  
   714  	return out0, err
   715  
   716  }
   717  
   718  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
   719  //
   720  // Solidity: function totalSupply() view returns(uint256)
   721  func (_Collectibles *CollectiblesSession) TotalSupply() (*big.Int, error) {
   722  	return _Collectibles.Contract.TotalSupply(&_Collectibles.CallOpts)
   723  }
   724  
   725  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
   726  //
   727  // Solidity: function totalSupply() view returns(uint256)
   728  func (_Collectibles *CollectiblesCallerSession) TotalSupply() (*big.Int, error) {
   729  	return _Collectibles.Contract.TotalSupply(&_Collectibles.CallOpts)
   730  }
   731  
   732  // Transferable is a free data retrieval call binding the contract method 0x92ff0d31.
   733  //
   734  // Solidity: function transferable() view returns(bool)
   735  func (_Collectibles *CollectiblesCaller) Transferable(opts *bind.CallOpts) (bool, error) {
   736  	var out []interface{}
   737  	err := _Collectibles.contract.Call(opts, &out, "transferable")
   738  
   739  	if err != nil {
   740  		return *new(bool), err
   741  	}
   742  
   743  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   744  
   745  	return out0, err
   746  
   747  }
   748  
   749  // Transferable is a free data retrieval call binding the contract method 0x92ff0d31.
   750  //
   751  // Solidity: function transferable() view returns(bool)
   752  func (_Collectibles *CollectiblesSession) Transferable() (bool, error) {
   753  	return _Collectibles.Contract.Transferable(&_Collectibles.CallOpts)
   754  }
   755  
   756  // Transferable is a free data retrieval call binding the contract method 0x92ff0d31.
   757  //
   758  // Solidity: function transferable() view returns(bool)
   759  func (_Collectibles *CollectiblesCallerSession) Transferable() (bool, error) {
   760  	return _Collectibles.Contract.Transferable(&_Collectibles.CallOpts)
   761  }
   762  
   763  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
   764  //
   765  // Solidity: function approve(address to, uint256 tokenId) returns()
   766  func (_Collectibles *CollectiblesTransactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
   767  	return _Collectibles.contract.Transact(opts, "approve", to, tokenId)
   768  }
   769  
   770  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
   771  //
   772  // Solidity: function approve(address to, uint256 tokenId) returns()
   773  func (_Collectibles *CollectiblesSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
   774  	return _Collectibles.Contract.Approve(&_Collectibles.TransactOpts, to, tokenId)
   775  }
   776  
   777  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
   778  //
   779  // Solidity: function approve(address to, uint256 tokenId) returns()
   780  func (_Collectibles *CollectiblesTransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
   781  	return _Collectibles.Contract.Approve(&_Collectibles.TransactOpts, to, tokenId)
   782  }
   783  
   784  // MintTo is a paid mutator transaction binding the contract method 0xce7c8b49.
   785  //
   786  // Solidity: function mintTo(address[] addresses) returns()
   787  func (_Collectibles *CollectiblesTransactor) MintTo(opts *bind.TransactOpts, addresses []common.Address) (*types.Transaction, error) {
   788  	return _Collectibles.contract.Transact(opts, "mintTo", addresses)
   789  }
   790  
   791  // MintTo is a paid mutator transaction binding the contract method 0xce7c8b49.
   792  //
   793  // Solidity: function mintTo(address[] addresses) returns()
   794  func (_Collectibles *CollectiblesSession) MintTo(addresses []common.Address) (*types.Transaction, error) {
   795  	return _Collectibles.Contract.MintTo(&_Collectibles.TransactOpts, addresses)
   796  }
   797  
   798  // MintTo is a paid mutator transaction binding the contract method 0xce7c8b49.
   799  //
   800  // Solidity: function mintTo(address[] addresses) returns()
   801  func (_Collectibles *CollectiblesTransactorSession) MintTo(addresses []common.Address) (*types.Transaction, error) {
   802  	return _Collectibles.Contract.MintTo(&_Collectibles.TransactOpts, addresses)
   803  }
   804  
   805  // RemoteBurn is a paid mutator transaction binding the contract method 0x4fb95e02.
   806  //
   807  // Solidity: function remoteBurn(uint256[] tokenIds) returns()
   808  func (_Collectibles *CollectiblesTransactor) RemoteBurn(opts *bind.TransactOpts, tokenIds []*big.Int) (*types.Transaction, error) {
   809  	return _Collectibles.contract.Transact(opts, "remoteBurn", tokenIds)
   810  }
   811  
   812  // RemoteBurn is a paid mutator transaction binding the contract method 0x4fb95e02.
   813  //
   814  // Solidity: function remoteBurn(uint256[] tokenIds) returns()
   815  func (_Collectibles *CollectiblesSession) RemoteBurn(tokenIds []*big.Int) (*types.Transaction, error) {
   816  	return _Collectibles.Contract.RemoteBurn(&_Collectibles.TransactOpts, tokenIds)
   817  }
   818  
   819  // RemoteBurn is a paid mutator transaction binding the contract method 0x4fb95e02.
   820  //
   821  // Solidity: function remoteBurn(uint256[] tokenIds) returns()
   822  func (_Collectibles *CollectiblesTransactorSession) RemoteBurn(tokenIds []*big.Int) (*types.Transaction, error) {
   823  	return _Collectibles.Contract.RemoteBurn(&_Collectibles.TransactOpts, tokenIds)
   824  }
   825  
   826  // SafeBatchTransferFrom is a paid mutator transaction binding the contract method 0x335de38a.
   827  //
   828  // Solidity: function safeBatchTransferFrom(address from, address[] receivers, uint256[] ids, bytes data) returns()
   829  func (_Collectibles *CollectiblesTransactor) SafeBatchTransferFrom(opts *bind.TransactOpts, from common.Address, receivers []common.Address, ids []*big.Int, data []byte) (*types.Transaction, error) {
   830  	return _Collectibles.contract.Transact(opts, "safeBatchTransferFrom", from, receivers, ids, data)
   831  }
   832  
   833  // SafeBatchTransferFrom is a paid mutator transaction binding the contract method 0x335de38a.
   834  //
   835  // Solidity: function safeBatchTransferFrom(address from, address[] receivers, uint256[] ids, bytes data) returns()
   836  func (_Collectibles *CollectiblesSession) SafeBatchTransferFrom(from common.Address, receivers []common.Address, ids []*big.Int, data []byte) (*types.Transaction, error) {
   837  	return _Collectibles.Contract.SafeBatchTransferFrom(&_Collectibles.TransactOpts, from, receivers, ids, data)
   838  }
   839  
   840  // SafeBatchTransferFrom is a paid mutator transaction binding the contract method 0x335de38a.
   841  //
   842  // Solidity: function safeBatchTransferFrom(address from, address[] receivers, uint256[] ids, bytes data) returns()
   843  func (_Collectibles *CollectiblesTransactorSession) SafeBatchTransferFrom(from common.Address, receivers []common.Address, ids []*big.Int, data []byte) (*types.Transaction, error) {
   844  	return _Collectibles.Contract.SafeBatchTransferFrom(&_Collectibles.TransactOpts, from, receivers, ids, data)
   845  }
   846  
   847  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
   848  //
   849  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
   850  func (_Collectibles *CollectiblesTransactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
   851  	return _Collectibles.contract.Transact(opts, "safeTransferFrom", from, to, tokenId)
   852  }
   853  
   854  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
   855  //
   856  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
   857  func (_Collectibles *CollectiblesSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
   858  	return _Collectibles.Contract.SafeTransferFrom(&_Collectibles.TransactOpts, from, to, tokenId)
   859  }
   860  
   861  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
   862  //
   863  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
   864  func (_Collectibles *CollectiblesTransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
   865  	return _Collectibles.Contract.SafeTransferFrom(&_Collectibles.TransactOpts, from, to, tokenId)
   866  }
   867  
   868  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
   869  //
   870  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns()
   871  func (_Collectibles *CollectiblesTransactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
   872  	return _Collectibles.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, data)
   873  }
   874  
   875  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
   876  //
   877  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns()
   878  func (_Collectibles *CollectiblesSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
   879  	return _Collectibles.Contract.SafeTransferFrom0(&_Collectibles.TransactOpts, from, to, tokenId, data)
   880  }
   881  
   882  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
   883  //
   884  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns()
   885  func (_Collectibles *CollectiblesTransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
   886  	return _Collectibles.Contract.SafeTransferFrom0(&_Collectibles.TransactOpts, from, to, tokenId, data)
   887  }
   888  
   889  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
   890  //
   891  // Solidity: function setApprovalForAll(address operator, bool approved) returns()
   892  func (_Collectibles *CollectiblesTransactor) SetApprovalForAll(opts *bind.TransactOpts, operator common.Address, approved bool) (*types.Transaction, error) {
   893  	return _Collectibles.contract.Transact(opts, "setApprovalForAll", operator, approved)
   894  }
   895  
   896  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
   897  //
   898  // Solidity: function setApprovalForAll(address operator, bool approved) returns()
   899  func (_Collectibles *CollectiblesSession) SetApprovalForAll(operator common.Address, approved bool) (*types.Transaction, error) {
   900  	return _Collectibles.Contract.SetApprovalForAll(&_Collectibles.TransactOpts, operator, approved)
   901  }
   902  
   903  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
   904  //
   905  // Solidity: function setApprovalForAll(address operator, bool approved) returns()
   906  func (_Collectibles *CollectiblesTransactorSession) SetApprovalForAll(operator common.Address, approved bool) (*types.Transaction, error) {
   907  	return _Collectibles.Contract.SetApprovalForAll(&_Collectibles.TransactOpts, operator, approved)
   908  }
   909  
   910  // SetMaxSupply is a paid mutator transaction binding the contract method 0x6f8b44b0.
   911  //
   912  // Solidity: function setMaxSupply(uint256 newMaxSupply) returns()
   913  func (_Collectibles *CollectiblesTransactor) SetMaxSupply(opts *bind.TransactOpts, newMaxSupply *big.Int) (*types.Transaction, error) {
   914  	return _Collectibles.contract.Transact(opts, "setMaxSupply", newMaxSupply)
   915  }
   916  
   917  // SetMaxSupply is a paid mutator transaction binding the contract method 0x6f8b44b0.
   918  //
   919  // Solidity: function setMaxSupply(uint256 newMaxSupply) returns()
   920  func (_Collectibles *CollectiblesSession) SetMaxSupply(newMaxSupply *big.Int) (*types.Transaction, error) {
   921  	return _Collectibles.Contract.SetMaxSupply(&_Collectibles.TransactOpts, newMaxSupply)
   922  }
   923  
   924  // SetMaxSupply is a paid mutator transaction binding the contract method 0x6f8b44b0.
   925  //
   926  // Solidity: function setMaxSupply(uint256 newMaxSupply) returns()
   927  func (_Collectibles *CollectiblesTransactorSession) SetMaxSupply(newMaxSupply *big.Int) (*types.Transaction, error) {
   928  	return _Collectibles.Contract.SetMaxSupply(&_Collectibles.TransactOpts, newMaxSupply)
   929  }
   930  
   931  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
   932  //
   933  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
   934  func (_Collectibles *CollectiblesTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
   935  	return _Collectibles.contract.Transact(opts, "transferFrom", from, to, tokenId)
   936  }
   937  
   938  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
   939  //
   940  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
   941  func (_Collectibles *CollectiblesSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
   942  	return _Collectibles.Contract.TransferFrom(&_Collectibles.TransactOpts, from, to, tokenId)
   943  }
   944  
   945  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
   946  //
   947  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
   948  func (_Collectibles *CollectiblesTransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
   949  	return _Collectibles.Contract.TransferFrom(&_Collectibles.TransactOpts, from, to, tokenId)
   950  }
   951  
   952  // CollectiblesApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the Collectibles contract.
   953  type CollectiblesApprovalIterator struct {
   954  	Event *CollectiblesApproval // Event containing the contract specifics and raw log
   955  
   956  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   957  	event    string              // Event name to use for unpacking event data
   958  
   959  	logs chan types.Log        // Log channel receiving the found contract events
   960  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   961  	done bool                  // Whether the subscription completed delivering logs
   962  	fail error                 // Occurred error to stop iteration
   963  }
   964  
   965  // Next advances the iterator to the subsequent event, returning whether there
   966  // are any more events found. In case of a retrieval or parsing error, false is
   967  // returned and Error() can be queried for the exact failure.
   968  func (it *CollectiblesApprovalIterator) Next() bool {
   969  	// If the iterator failed, stop iterating
   970  	if it.fail != nil {
   971  		return false
   972  	}
   973  	// If the iterator completed, deliver directly whatever's available
   974  	if it.done {
   975  		select {
   976  		case log := <-it.logs:
   977  			it.Event = new(CollectiblesApproval)
   978  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   979  				it.fail = err
   980  				return false
   981  			}
   982  			it.Event.Raw = log
   983  			return true
   984  
   985  		default:
   986  			return false
   987  		}
   988  	}
   989  	// Iterator still in progress, wait for either a data or an error event
   990  	select {
   991  	case log := <-it.logs:
   992  		it.Event = new(CollectiblesApproval)
   993  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   994  			it.fail = err
   995  			return false
   996  		}
   997  		it.Event.Raw = log
   998  		return true
   999  
  1000  	case err := <-it.sub.Err():
  1001  		it.done = true
  1002  		it.fail = err
  1003  		return it.Next()
  1004  	}
  1005  }
  1006  
  1007  // Error returns any retrieval or parsing error occurred during filtering.
  1008  func (it *CollectiblesApprovalIterator) Error() error {
  1009  	return it.fail
  1010  }
  1011  
  1012  // Close terminates the iteration process, releasing any pending underlying
  1013  // resources.
  1014  func (it *CollectiblesApprovalIterator) Close() error {
  1015  	it.sub.Unsubscribe()
  1016  	return nil
  1017  }
  1018  
  1019  // CollectiblesApproval represents a Approval event raised by the Collectibles contract.
  1020  type CollectiblesApproval struct {
  1021  	Owner    common.Address
  1022  	Approved common.Address
  1023  	TokenId  *big.Int
  1024  	Raw      types.Log // Blockchain specific contextual infos
  1025  }
  1026  
  1027  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  1028  //
  1029  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  1030  func (_Collectibles *CollectiblesFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*CollectiblesApprovalIterator, error) {
  1031  
  1032  	var ownerRule []interface{}
  1033  	for _, ownerItem := range owner {
  1034  		ownerRule = append(ownerRule, ownerItem)
  1035  	}
  1036  	var approvedRule []interface{}
  1037  	for _, approvedItem := range approved {
  1038  		approvedRule = append(approvedRule, approvedItem)
  1039  	}
  1040  	var tokenIdRule []interface{}
  1041  	for _, tokenIdItem := range tokenId {
  1042  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  1043  	}
  1044  
  1045  	logs, sub, err := _Collectibles.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
  1046  	if err != nil {
  1047  		return nil, err
  1048  	}
  1049  	return &CollectiblesApprovalIterator{contract: _Collectibles.contract, event: "Approval", logs: logs, sub: sub}, nil
  1050  }
  1051  
  1052  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  1053  //
  1054  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  1055  func (_Collectibles *CollectiblesFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *CollectiblesApproval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) {
  1056  
  1057  	var ownerRule []interface{}
  1058  	for _, ownerItem := range owner {
  1059  		ownerRule = append(ownerRule, ownerItem)
  1060  	}
  1061  	var approvedRule []interface{}
  1062  	for _, approvedItem := range approved {
  1063  		approvedRule = append(approvedRule, approvedItem)
  1064  	}
  1065  	var tokenIdRule []interface{}
  1066  	for _, tokenIdItem := range tokenId {
  1067  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  1068  	}
  1069  
  1070  	logs, sub, err := _Collectibles.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
  1071  	if err != nil {
  1072  		return nil, err
  1073  	}
  1074  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1075  		defer sub.Unsubscribe()
  1076  		for {
  1077  			select {
  1078  			case log := <-logs:
  1079  				// New log arrived, parse the event and forward to the user
  1080  				event := new(CollectiblesApproval)
  1081  				if err := _Collectibles.contract.UnpackLog(event, "Approval", log); err != nil {
  1082  					return err
  1083  				}
  1084  				event.Raw = log
  1085  
  1086  				select {
  1087  				case sink <- event:
  1088  				case err := <-sub.Err():
  1089  					return err
  1090  				case <-quit:
  1091  					return nil
  1092  				}
  1093  			case err := <-sub.Err():
  1094  				return err
  1095  			case <-quit:
  1096  				return nil
  1097  			}
  1098  		}
  1099  	}), nil
  1100  }
  1101  
  1102  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  1103  //
  1104  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  1105  func (_Collectibles *CollectiblesFilterer) ParseApproval(log types.Log) (*CollectiblesApproval, error) {
  1106  	event := new(CollectiblesApproval)
  1107  	if err := _Collectibles.contract.UnpackLog(event, "Approval", log); err != nil {
  1108  		return nil, err
  1109  	}
  1110  	event.Raw = log
  1111  	return event, nil
  1112  }
  1113  
  1114  // CollectiblesApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the Collectibles contract.
  1115  type CollectiblesApprovalForAllIterator struct {
  1116  	Event *CollectiblesApprovalForAll // Event containing the contract specifics and raw log
  1117  
  1118  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1119  	event    string              // Event name to use for unpacking event data
  1120  
  1121  	logs chan types.Log        // Log channel receiving the found contract events
  1122  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1123  	done bool                  // Whether the subscription completed delivering logs
  1124  	fail error                 // Occurred error to stop iteration
  1125  }
  1126  
  1127  // Next advances the iterator to the subsequent event, returning whether there
  1128  // are any more events found. In case of a retrieval or parsing error, false is
  1129  // returned and Error() can be queried for the exact failure.
  1130  func (it *CollectiblesApprovalForAllIterator) Next() bool {
  1131  	// If the iterator failed, stop iterating
  1132  	if it.fail != nil {
  1133  		return false
  1134  	}
  1135  	// If the iterator completed, deliver directly whatever's available
  1136  	if it.done {
  1137  		select {
  1138  		case log := <-it.logs:
  1139  			it.Event = new(CollectiblesApprovalForAll)
  1140  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1141  				it.fail = err
  1142  				return false
  1143  			}
  1144  			it.Event.Raw = log
  1145  			return true
  1146  
  1147  		default:
  1148  			return false
  1149  		}
  1150  	}
  1151  	// Iterator still in progress, wait for either a data or an error event
  1152  	select {
  1153  	case log := <-it.logs:
  1154  		it.Event = new(CollectiblesApprovalForAll)
  1155  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1156  			it.fail = err
  1157  			return false
  1158  		}
  1159  		it.Event.Raw = log
  1160  		return true
  1161  
  1162  	case err := <-it.sub.Err():
  1163  		it.done = true
  1164  		it.fail = err
  1165  		return it.Next()
  1166  	}
  1167  }
  1168  
  1169  // Error returns any retrieval or parsing error occurred during filtering.
  1170  func (it *CollectiblesApprovalForAllIterator) Error() error {
  1171  	return it.fail
  1172  }
  1173  
  1174  // Close terminates the iteration process, releasing any pending underlying
  1175  // resources.
  1176  func (it *CollectiblesApprovalForAllIterator) Close() error {
  1177  	it.sub.Unsubscribe()
  1178  	return nil
  1179  }
  1180  
  1181  // CollectiblesApprovalForAll represents a ApprovalForAll event raised by the Collectibles contract.
  1182  type CollectiblesApprovalForAll struct {
  1183  	Owner    common.Address
  1184  	Operator common.Address
  1185  	Approved bool
  1186  	Raw      types.Log // Blockchain specific contextual infos
  1187  }
  1188  
  1189  // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  1190  //
  1191  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  1192  func (_Collectibles *CollectiblesFilterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*CollectiblesApprovalForAllIterator, error) {
  1193  
  1194  	var ownerRule []interface{}
  1195  	for _, ownerItem := range owner {
  1196  		ownerRule = append(ownerRule, ownerItem)
  1197  	}
  1198  	var operatorRule []interface{}
  1199  	for _, operatorItem := range operator {
  1200  		operatorRule = append(operatorRule, operatorItem)
  1201  	}
  1202  
  1203  	logs, sub, err := _Collectibles.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
  1204  	if err != nil {
  1205  		return nil, err
  1206  	}
  1207  	return &CollectiblesApprovalForAllIterator{contract: _Collectibles.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil
  1208  }
  1209  
  1210  // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  1211  //
  1212  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  1213  func (_Collectibles *CollectiblesFilterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *CollectiblesApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) {
  1214  
  1215  	var ownerRule []interface{}
  1216  	for _, ownerItem := range owner {
  1217  		ownerRule = append(ownerRule, ownerItem)
  1218  	}
  1219  	var operatorRule []interface{}
  1220  	for _, operatorItem := range operator {
  1221  		operatorRule = append(operatorRule, operatorItem)
  1222  	}
  1223  
  1224  	logs, sub, err := _Collectibles.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
  1225  	if err != nil {
  1226  		return nil, err
  1227  	}
  1228  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1229  		defer sub.Unsubscribe()
  1230  		for {
  1231  			select {
  1232  			case log := <-logs:
  1233  				// New log arrived, parse the event and forward to the user
  1234  				event := new(CollectiblesApprovalForAll)
  1235  				if err := _Collectibles.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
  1236  					return err
  1237  				}
  1238  				event.Raw = log
  1239  
  1240  				select {
  1241  				case sink <- event:
  1242  				case err := <-sub.Err():
  1243  					return err
  1244  				case <-quit:
  1245  					return nil
  1246  				}
  1247  			case err := <-sub.Err():
  1248  				return err
  1249  			case <-quit:
  1250  				return nil
  1251  			}
  1252  		}
  1253  	}), nil
  1254  }
  1255  
  1256  // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  1257  //
  1258  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  1259  func (_Collectibles *CollectiblesFilterer) ParseApprovalForAll(log types.Log) (*CollectiblesApprovalForAll, error) {
  1260  	event := new(CollectiblesApprovalForAll)
  1261  	if err := _Collectibles.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
  1262  		return nil, err
  1263  	}
  1264  	event.Raw = log
  1265  	return event, nil
  1266  }
  1267  
  1268  // CollectiblesStatusMintIterator is returned from FilterStatusMint and is used to iterate over the raw logs and unpacked data for StatusMint events raised by the Collectibles contract.
  1269  type CollectiblesStatusMintIterator struct {
  1270  	Event *CollectiblesStatusMint // Event containing the contract specifics and raw log
  1271  
  1272  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1273  	event    string              // Event name to use for unpacking event data
  1274  
  1275  	logs chan types.Log        // Log channel receiving the found contract events
  1276  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1277  	done bool                  // Whether the subscription completed delivering logs
  1278  	fail error                 // Occurred error to stop iteration
  1279  }
  1280  
  1281  // Next advances the iterator to the subsequent event, returning whether there
  1282  // are any more events found. In case of a retrieval or parsing error, false is
  1283  // returned and Error() can be queried for the exact failure.
  1284  func (it *CollectiblesStatusMintIterator) Next() bool {
  1285  	// If the iterator failed, stop iterating
  1286  	if it.fail != nil {
  1287  		return false
  1288  	}
  1289  	// If the iterator completed, deliver directly whatever's available
  1290  	if it.done {
  1291  		select {
  1292  		case log := <-it.logs:
  1293  			it.Event = new(CollectiblesStatusMint)
  1294  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1295  				it.fail = err
  1296  				return false
  1297  			}
  1298  			it.Event.Raw = log
  1299  			return true
  1300  
  1301  		default:
  1302  			return false
  1303  		}
  1304  	}
  1305  	// Iterator still in progress, wait for either a data or an error event
  1306  	select {
  1307  	case log := <-it.logs:
  1308  		it.Event = new(CollectiblesStatusMint)
  1309  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1310  			it.fail = err
  1311  			return false
  1312  		}
  1313  		it.Event.Raw = log
  1314  		return true
  1315  
  1316  	case err := <-it.sub.Err():
  1317  		it.done = true
  1318  		it.fail = err
  1319  		return it.Next()
  1320  	}
  1321  }
  1322  
  1323  // Error returns any retrieval or parsing error occurred during filtering.
  1324  func (it *CollectiblesStatusMintIterator) Error() error {
  1325  	return it.fail
  1326  }
  1327  
  1328  // Close terminates the iteration process, releasing any pending underlying
  1329  // resources.
  1330  func (it *CollectiblesStatusMintIterator) Close() error {
  1331  	it.sub.Unsubscribe()
  1332  	return nil
  1333  }
  1334  
  1335  // CollectiblesStatusMint represents a StatusMint event raised by the Collectibles contract.
  1336  type CollectiblesStatusMint struct {
  1337  	From    common.Address
  1338  	To      common.Address
  1339  	TokenId *big.Int
  1340  	Raw     types.Log // Blockchain specific contextual infos
  1341  }
  1342  
  1343  // FilterStatusMint is a free log retrieval operation binding the contract event 0x28c427b0611d99da5c4f7368abe57e86b045b483c4689ae93e90745802335b87.
  1344  //
  1345  // Solidity: event StatusMint(address indexed from, address indexed to, uint256 indexed tokenId)
  1346  func (_Collectibles *CollectiblesFilterer) FilterStatusMint(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*CollectiblesStatusMintIterator, error) {
  1347  
  1348  	var fromRule []interface{}
  1349  	for _, fromItem := range from {
  1350  		fromRule = append(fromRule, fromItem)
  1351  	}
  1352  	var toRule []interface{}
  1353  	for _, toItem := range to {
  1354  		toRule = append(toRule, toItem)
  1355  	}
  1356  	var tokenIdRule []interface{}
  1357  	for _, tokenIdItem := range tokenId {
  1358  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  1359  	}
  1360  
  1361  	logs, sub, err := _Collectibles.contract.FilterLogs(opts, "StatusMint", fromRule, toRule, tokenIdRule)
  1362  	if err != nil {
  1363  		return nil, err
  1364  	}
  1365  	return &CollectiblesStatusMintIterator{contract: _Collectibles.contract, event: "StatusMint", logs: logs, sub: sub}, nil
  1366  }
  1367  
  1368  // WatchStatusMint is a free log subscription operation binding the contract event 0x28c427b0611d99da5c4f7368abe57e86b045b483c4689ae93e90745802335b87.
  1369  //
  1370  // Solidity: event StatusMint(address indexed from, address indexed to, uint256 indexed tokenId)
  1371  func (_Collectibles *CollectiblesFilterer) WatchStatusMint(opts *bind.WatchOpts, sink chan<- *CollectiblesStatusMint, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) {
  1372  
  1373  	var fromRule []interface{}
  1374  	for _, fromItem := range from {
  1375  		fromRule = append(fromRule, fromItem)
  1376  	}
  1377  	var toRule []interface{}
  1378  	for _, toItem := range to {
  1379  		toRule = append(toRule, toItem)
  1380  	}
  1381  	var tokenIdRule []interface{}
  1382  	for _, tokenIdItem := range tokenId {
  1383  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  1384  	}
  1385  
  1386  	logs, sub, err := _Collectibles.contract.WatchLogs(opts, "StatusMint", fromRule, toRule, tokenIdRule)
  1387  	if err != nil {
  1388  		return nil, err
  1389  	}
  1390  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1391  		defer sub.Unsubscribe()
  1392  		for {
  1393  			select {
  1394  			case log := <-logs:
  1395  				// New log arrived, parse the event and forward to the user
  1396  				event := new(CollectiblesStatusMint)
  1397  				if err := _Collectibles.contract.UnpackLog(event, "StatusMint", log); err != nil {
  1398  					return err
  1399  				}
  1400  				event.Raw = log
  1401  
  1402  				select {
  1403  				case sink <- event:
  1404  				case err := <-sub.Err():
  1405  					return err
  1406  				case <-quit:
  1407  					return nil
  1408  				}
  1409  			case err := <-sub.Err():
  1410  				return err
  1411  			case <-quit:
  1412  				return nil
  1413  			}
  1414  		}
  1415  	}), nil
  1416  }
  1417  
  1418  // ParseStatusMint is a log parse operation binding the contract event 0x28c427b0611d99da5c4f7368abe57e86b045b483c4689ae93e90745802335b87.
  1419  //
  1420  // Solidity: event StatusMint(address indexed from, address indexed to, uint256 indexed tokenId)
  1421  func (_Collectibles *CollectiblesFilterer) ParseStatusMint(log types.Log) (*CollectiblesStatusMint, error) {
  1422  	event := new(CollectiblesStatusMint)
  1423  	if err := _Collectibles.contract.UnpackLog(event, "StatusMint", log); err != nil {
  1424  		return nil, err
  1425  	}
  1426  	event.Raw = log
  1427  	return event, nil
  1428  }
  1429  
  1430  // CollectiblesTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the Collectibles contract.
  1431  type CollectiblesTransferIterator struct {
  1432  	Event *CollectiblesTransfer // Event containing the contract specifics and raw log
  1433  
  1434  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1435  	event    string              // Event name to use for unpacking event data
  1436  
  1437  	logs chan types.Log        // Log channel receiving the found contract events
  1438  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1439  	done bool                  // Whether the subscription completed delivering logs
  1440  	fail error                 // Occurred error to stop iteration
  1441  }
  1442  
  1443  // Next advances the iterator to the subsequent event, returning whether there
  1444  // are any more events found. In case of a retrieval or parsing error, false is
  1445  // returned and Error() can be queried for the exact failure.
  1446  func (it *CollectiblesTransferIterator) Next() bool {
  1447  	// If the iterator failed, stop iterating
  1448  	if it.fail != nil {
  1449  		return false
  1450  	}
  1451  	// If the iterator completed, deliver directly whatever's available
  1452  	if it.done {
  1453  		select {
  1454  		case log := <-it.logs:
  1455  			it.Event = new(CollectiblesTransfer)
  1456  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1457  				it.fail = err
  1458  				return false
  1459  			}
  1460  			it.Event.Raw = log
  1461  			return true
  1462  
  1463  		default:
  1464  			return false
  1465  		}
  1466  	}
  1467  	// Iterator still in progress, wait for either a data or an error event
  1468  	select {
  1469  	case log := <-it.logs:
  1470  		it.Event = new(CollectiblesTransfer)
  1471  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1472  			it.fail = err
  1473  			return false
  1474  		}
  1475  		it.Event.Raw = log
  1476  		return true
  1477  
  1478  	case err := <-it.sub.Err():
  1479  		it.done = true
  1480  		it.fail = err
  1481  		return it.Next()
  1482  	}
  1483  }
  1484  
  1485  // Error returns any retrieval or parsing error occurred during filtering.
  1486  func (it *CollectiblesTransferIterator) Error() error {
  1487  	return it.fail
  1488  }
  1489  
  1490  // Close terminates the iteration process, releasing any pending underlying
  1491  // resources.
  1492  func (it *CollectiblesTransferIterator) Close() error {
  1493  	it.sub.Unsubscribe()
  1494  	return nil
  1495  }
  1496  
  1497  // CollectiblesTransfer represents a Transfer event raised by the Collectibles contract.
  1498  type CollectiblesTransfer struct {
  1499  	From    common.Address
  1500  	To      common.Address
  1501  	TokenId *big.Int
  1502  	Raw     types.Log // Blockchain specific contextual infos
  1503  }
  1504  
  1505  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  1506  //
  1507  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  1508  func (_Collectibles *CollectiblesFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*CollectiblesTransferIterator, error) {
  1509  
  1510  	var fromRule []interface{}
  1511  	for _, fromItem := range from {
  1512  		fromRule = append(fromRule, fromItem)
  1513  	}
  1514  	var toRule []interface{}
  1515  	for _, toItem := range to {
  1516  		toRule = append(toRule, toItem)
  1517  	}
  1518  	var tokenIdRule []interface{}
  1519  	for _, tokenIdItem := range tokenId {
  1520  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  1521  	}
  1522  
  1523  	logs, sub, err := _Collectibles.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
  1524  	if err != nil {
  1525  		return nil, err
  1526  	}
  1527  	return &CollectiblesTransferIterator{contract: _Collectibles.contract, event: "Transfer", logs: logs, sub: sub}, nil
  1528  }
  1529  
  1530  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  1531  //
  1532  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  1533  func (_Collectibles *CollectiblesFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *CollectiblesTransfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) {
  1534  
  1535  	var fromRule []interface{}
  1536  	for _, fromItem := range from {
  1537  		fromRule = append(fromRule, fromItem)
  1538  	}
  1539  	var toRule []interface{}
  1540  	for _, toItem := range to {
  1541  		toRule = append(toRule, toItem)
  1542  	}
  1543  	var tokenIdRule []interface{}
  1544  	for _, tokenIdItem := range tokenId {
  1545  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  1546  	}
  1547  
  1548  	logs, sub, err := _Collectibles.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
  1549  	if err != nil {
  1550  		return nil, err
  1551  	}
  1552  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1553  		defer sub.Unsubscribe()
  1554  		for {
  1555  			select {
  1556  			case log := <-logs:
  1557  				// New log arrived, parse the event and forward to the user
  1558  				event := new(CollectiblesTransfer)
  1559  				if err := _Collectibles.contract.UnpackLog(event, "Transfer", log); err != nil {
  1560  					return err
  1561  				}
  1562  				event.Raw = log
  1563  
  1564  				select {
  1565  				case sink <- event:
  1566  				case err := <-sub.Err():
  1567  					return err
  1568  				case <-quit:
  1569  					return nil
  1570  				}
  1571  			case err := <-sub.Err():
  1572  				return err
  1573  			case <-quit:
  1574  				return nil
  1575  			}
  1576  		}
  1577  	}), nil
  1578  }
  1579  
  1580  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  1581  //
  1582  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  1583  func (_Collectibles *CollectiblesFilterer) ParseTransfer(log types.Log) (*CollectiblesTransfer, error) {
  1584  	event := new(CollectiblesTransfer)
  1585  	if err := _Collectibles.contract.UnpackLog(event, "Transfer", log); err != nil {
  1586  		return nil, err
  1587  	}
  1588  	event.Raw = log
  1589  	return event, nil
  1590  }