status-go/contracts/community-tokens/ownertoken/OwnerToken.go

1580 lines
113 KiB
Go

// Code generated - DO NOT EDIT.
// This file is a generated binding and any manual changes will be lost.
package ownertoken
import (
"math/big"
"strings"
ethereum "github.com/ethereum/go-ethereum"
"github.com/ethereum/go-ethereum/accounts/abi"
"github.com/ethereum/go-ethereum/accounts/abi/bind"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/event"
)
// Reference imports to suppress errors if they are not otherwise used.
var (
_ = big.NewInt
_ = strings.NewReader
_ = ethereum.NotFound
_ = bind.Bind
_ = common.Big1
_ = types.BloomLookup
_ = event.NewSubscription
)
// OwnerTokenABI is the input ABI used to generate the binding from.
const OwnerTokenABI = "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_baseTokenURI\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_masterName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_masterSymbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_masterBaseTokenURI\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"_signerPublicKey\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"masterToken\",\"type\":\"address\"}],\"name\":\"MasterTokenCreated\",\"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\":\"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\":\"bytes\",\"name\":\"_newSignerPublicKey\",\"type\":\"bytes\"}],\"name\":\"setSignerPublicKey\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"signerPublicKey\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"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\"}]"
// OwnerTokenBin is the compiled bytecode used for deploying new contracts.
var OwnerTokenBin = "0x60806040523480156200001157600080fd5b5060405162005b6938038062005b69833981016040819052620000349162000bfb565b868660016000818930808787866200004d838262000db9565b5060016200005c828262000db9565b505050600b869055600d805461ffff60a01b1916600160a01b8715150260ff60a81b191617600160a81b86151502179055600e6200009b848262000db9565b50600c80546001600160a01b038085166001600160a01b03199283168117909355600d805491851691909216179055151580620000e25750600d546001600160a01b031615155b620001345760405162461bcd60e51b815260206004820152601f60248201527f6f776e6572206f72206d617374657220746f6b656e732072657175697265640060448201526064015b60405180910390fd5b505050505050505080600f90816200014d919062000db9565b50600084848430604051620001629062000b20565b62000171949392919062000eb3565b604051809103906000f0801580156200018e573d6000803e3d6000fd5b506040516001600160a01b03821681529091507f02a0dab88b41e2a6fa5a9b4d40c16209315d6158c6a42f30879c8df1871326019060200160405180910390a160408051600180825281830190925260009160208083019080368337019050509050338160008151811062000207576200020762000f0c565b6001600160a01b03909216602092830291909101909101526200022a8162000239565b50505050505050505062001004565b60005b8151811015620002bf57620002938282815181106200025f576200025f62000f0c565b60200260200101516200027e600a620002c360201b62000f791760201c565b604080516020810190915260008152620002c7565b620002aa600a6200033f60201b62000f7d1760201c565b80620002b68162000f38565b9150506200023c565b5050565b5490565b620002d3838362000348565b620002e26000848484620004e9565b6200033a5760405162461bcd60e51b8152602060048201526032602482015260008051602062005b4983398151915260448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016200012b565b505050565b80546001019055565b6001600160a01b038216620003a05760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016200012b565b6000818152600260205260409020546001600160a01b031615620004075760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016200012b565b6200041760008383600162000645565b6000818152600260205260409020546001600160a01b0316156200047e5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016200012b565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006200050a846001600160a01b0316620006de60201b62000f861760201c565b156200063957604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906200054490339089908890889060040162000f54565b6020604051808303816000875af192505050801562000582575060408051601f3d908101601f191682019092526200057f9181019062000f89565b60015b6200061e573d808015620005b3576040519150601f19603f3d011682016040523d82523d6000602084013e620005b8565b606091505b508051600003620006165760405162461bcd60e51b8152602060048201526032602482015260008051602062005b4983398151915260448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016200012b565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506200063d565b5060015b949350505050565b6001600160a01b038416158015906200066657506001600160a01b03831615155b80156200067d5750600d54600160a81b900460ff16155b15620006bf5760405162461bcd60e51b815260206004820152601060248201526f6e6f74207472616e7366657261626c6560801b60448201526064016200012b565b620006d884848484620006ed60201b62000f951760201c565b50505050565b6001600160a01b03163b151590565b62000706848484846200085160201b620010d51760201c565b60018111156200077f5760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e736563757469766520747260448201527f616e7366657273206e6f7420737570706f72746564000000000000000000000060648201526084016200012b565b816001600160a01b038516620007de57620007d881600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b62000804565b836001600160a01b0316856001600160a01b0316146200080457620008048582620008e0565b6001600160a01b03841662000824576200081e816200098d565b6200084a565b846001600160a01b0316846001600160a01b0316146200084a576200084a848262000a47565b5050505050565b6001811115620006d8576001600160a01b038416156200089b576001600160a01b038416600090815260036020526040812080548392906200089590849062000fbc565b90915550505b6001600160a01b03831615620006d8576001600160a01b03831660009081526003602052604081208054839290620008d590849062000fd8565b909155505050505050565b60006001620008fa8462000a9860201b62000b641760201c565b62000906919062000fbc565b6000838152600760205260409020549091508082146200095a576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090620009a19060019062000fbc565b60008381526009602052604081205460088054939450909284908110620009cc57620009cc62000f0c565b906000526020600020015490508060088381548110620009f057620009f062000f0c565b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548062000a2b5762000a2b62000fee565b6001900381819060005260206000200160009055905550505050565b600062000a5f8362000a9860201b62000b641760201c565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b60006001600160a01b03821662000b045760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016200012b565b506001600160a01b031660009081526003602052604090205490565b61263f806200350a83390190565b634e487b7160e01b600052604160045260246000fd5b60005b8381101562000b6157818101518382015260200162000b47565b50506000910152565b600082601f83011262000b7c57600080fd5b81516001600160401b038082111562000b995762000b9962000b2e565b604051601f8301601f19908116603f0116810190828211818310171562000bc45762000bc462000b2e565b8160405283815286602085880101111562000bde57600080fd5b62000bf184602083016020890162000b44565b9695505050505050565b600080600080600080600060e0888a03121562000c1757600080fd5b87516001600160401b038082111562000c2f57600080fd5b62000c3d8b838c0162000b6a565b985060208a015191508082111562000c5457600080fd5b62000c628b838c0162000b6a565b975060408a015191508082111562000c7957600080fd5b62000c878b838c0162000b6a565b965060608a015191508082111562000c9e57600080fd5b62000cac8b838c0162000b6a565b955060808a015191508082111562000cc357600080fd5b62000cd18b838c0162000b6a565b945060a08a015191508082111562000ce857600080fd5b62000cf68b838c0162000b6a565b935060c08a015191508082111562000d0d57600080fd5b5062000d1c8a828b0162000b6a565b91505092959891949750929550565b600181811c9082168062000d4057607f821691505b60208210810362000d6157634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200033a57600081815260208120601f850160051c8101602086101562000d905750805b601f850160051c820191505b8181101562000db15782815560010162000d9c565b505050505050565b81516001600160401b0381111562000dd55762000dd562000b2e565b62000ded8162000de6845462000d2b565b8462000d67565b602080601f83116001811462000e25576000841562000e0c5750858301515b600019600386901b1c1916600185901b17855562000db1565b600085815260208120601f198616915b8281101562000e565788860151825594840194600190910190840162000e35565b508582101562000e755787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000815180845262000e9f81602086016020860162000b44565b601f01601f19169290920160200192915050565b60808152600062000ec8608083018762000e85565b828103602084015262000edc818762000e85565b9050828103604084015262000ef2818662000e85565b91505060018060a01b038316606083015295945050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820162000f4d5762000f4d62000f22565b5060010190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009062000bf19083018462000e85565b60006020828403121562000f9c57600080fd5b81516001600160e01b03198116811462000fb557600080fd5b9392505050565b8181038181111562000fd25762000fd262000f22565b92915050565b8082018082111562000fd25762000fd262000f22565b634e487b7160e01b600052603160045260246000fd5b6124f680620010146000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c806365371883116100f9578063b88d4fde11610097578063cf721b1511610071578063cf721b15146103ad578063d547cfb7146103b5578063d5abeb01146103bd578063e985e9c5146103c657600080fd5b8063b88d4fde14610374578063c87b56dd14610387578063ce7c8b491461039a57600080fd5b806392ff0d31116100d357806392ff0d31146103325780639404c91a1461034657806395d89b4114610359578063a22cb4651461036157600080fd5b806365371883146102f95780636f8b44b01461030c57806370a082311461031f57600080fd5b80632bb5e31e116101665780634f6ccce7116101405780634f6ccce7146102b85780634fb95e02146102cb578063549a95ea146102de5780636352211e146102e657600080fd5b80632bb5e31e1461027f5780632f745c591461029257806342842e0e146102a557600080fd5b8063095ea7b3116101a2578063095ea7b314610231578063101639f51461024657806318160ddd1461025a57806323b872dd1461026c57600080fd5b806301ffc9a7146101c957806306fdde03146101f1578063081812fc14610206575b600080fd5b6101dc6101d7366004611d09565b610402565b60405190151581526020015b60405180910390f35b6101f9610413565b6040516101e89190611d76565b610219610214366004611d89565b6104a5565b6040516001600160a01b0390911681526020016101e8565b61024461023f366004611dbe565b6104cc565b005b600d546101dc90600160a01b900460ff1681565b6008545b6040519081526020016101e8565b61024461027a366004611de8565b6105e6565b600d54610219906001600160a01b031681565b61025e6102a0366004611dbe565b610617565b6102446102b3366004611de8565b6106ad565b61025e6102c6366004611d89565b6106c8565b6102446102d9366004611e8f565b61075b565b6101f9610914565b6102196102f4366004611d89565b6109a2565b600c54610219906001600160a01b031681565b61024461031a366004611d89565b610a02565b61025e61032d366004611f25565b610b64565b600d546101dc90600160a81b900460ff1681565b610244610354366004611fb0565b610bea565b6101f9610d1c565b61024461036f366004611fe5565b610d2b565b610244610382366004612021565b610d36565b6101f9610395366004611d89565b610d6e565b6102446103a8366004612089565b610dd5565b61025e610f5c565b6101f9610f6c565b61025e600b5481565b6101dc6103d4366004612116565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b600061040d8261115d565b92915050565b60606000805461042290612149565b80601f016020809104026020016040519081016040528092919081815260200182805461044e90612149565b801561049b5780601f106104705761010080835404028352916020019161049b565b820191906000526020600020905b81548152906001019060200180831161047e57829003601f168201915b5050505050905090565b60006104b082611182565b506000908152600460205260409020546001600160a01b031690565b60006104d7826109a2565b9050806001600160a01b0316836001600160a01b0316036105495760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b0382161480610565575061056581336103d4565b6105d75760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610540565b6105e183836111e1565b505050565b6105f0338261124f565b61060c5760405162461bcd60e51b815260040161054090612183565b6105e18383836112ce565b600061062283610b64565b82106106845760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610540565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b6105e183838360405180602001604052806000815250610d36565b60006106d360085490565b82106107365760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610540565b60088281548110610749576107496121d0565b90600052602060002001549050919050565b600c546001600160a01b031615806107dd5750600c546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156107b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107db91906121e6565b115b806108655750600d546001600160a01b031615806108655750600d546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561083f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086391906121e6565b115b6108815760405162461bcd60e51b8152600401610540906121ff565b600d54600160a01b900460ff166108d05760405162461bcd60e51b81526020600482015260136024820152724e4f545f52454d4f54455f4255524e41424c4560681b6044820152606401610540565b60005b8151811015610910576108fe8282815181106108f1576108f16121d0565b602002602001015161143f565b806109088161223d565b9150506108d3565b5050565b600f805461092190612149565b80601f016020809104026020016040519081016040528092919081815260200182805461094d90612149565b801561099a5780601f1061096f5761010080835404028352916020019161099a565b820191906000526020600020905b81548152906001019060200180831161097d57829003601f168201915b505050505081565b6000818152600260205260408120546001600160a01b03168061040d5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610540565b600c546001600160a01b03161580610a845750600c546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610a5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8291906121e6565b115b80610b0c5750600d546001600160a01b03161580610b0c5750600d546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610ae6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0a91906121e6565b115b610b285760405162461bcd60e51b8152600401610540906121ff565b60405162461bcd60e51b81526020600482015260116024820152701b585e081cdd5c1c1b1e481b1bd8dad959607a1b6044820152606401610540565b60006001600160a01b038216610bce5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610540565b506001600160a01b031660009081526003602052604090205490565b600c546001600160a01b03161580610c6c5750600c546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6a91906121e6565b115b80610cf45750600d546001600160a01b03161580610cf45750600d546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610cce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf291906121e6565b115b610d105760405162461bcd60e51b8152600401610540906121ff565b600f61091082826122a4565b60606001805461042290612149565b6109103383836114e2565b610d40338361124f565b610d5c5760405162461bcd60e51b815260040161054090612183565b610d68848484846115b0565b50505050565b6060610d7982611182565b6000610d836115e3565b90506000815111610da35760405180602001604052806000815250610dce565b80610dad846115f2565b604051602001610dbe929190612364565b6040516020818303038152906040525b9392505050565b600c546001600160a01b03161580610e575750600c546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610e31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5591906121e6565b115b80610edf5750600d546001600160a01b03161580610edf5750600d546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd91906121e6565b115b610efb5760405162461bcd60e51b8152600401610540906121ff565b600b548151600a54610f0d9190612393565b1115610f505760405162461bcd60e51b815260206004820152601260248201527113505617d4d55414131657d4915050d2115160721b6044820152606401610540565b610f5981611685565b50565b6000610f67600a5490565b905090565b600e805461092190612149565b5490565b80546001019055565b6001600160a01b03163b151590565b610fa1848484846110d5565b60018111156110105760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b6064820152608401610540565b816001600160a01b03851661106c5761106781600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b61108f565b836001600160a01b0316856001600160a01b03161461108f5761108f85826116ec565b6001600160a01b0384166110ab576110a681611789565b6110ce565b846001600160a01b0316846001600160a01b0316146110ce576110ce8482611838565b5050505050565b6001811115610d68576001600160a01b0384161561111b576001600160a01b038416600090815260036020526040812080548392906111159084906123a6565b90915550505b6001600160a01b03831615610d68576001600160a01b03831660009081526003602052604081208054839290611152908490612393565b909155505050505050565b60006001600160e01b0319821663780e9d6360e01b148061040d575061040d8261187c565b6000818152600260205260409020546001600160a01b0316610f595760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610540565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611216826109a2565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061125b836109a2565b9050806001600160a01b0316846001600160a01b031614806112a257506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806112c65750836001600160a01b03166112bb846104a5565b6001600160a01b0316145b949350505050565b826001600160a01b03166112e1826109a2565b6001600160a01b0316146113075760405162461bcd60e51b8152600401610540906123b9565b6001600160a01b0382166113695760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610540565b61137683838360016118cc565b826001600160a01b0316611389826109a2565b6001600160a01b0316146113af5760405162461bcd60e51b8152600401610540906123b9565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600061144a826109a2565b905061145a8160008460016118cc565b611463826109a2565b600083815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526003845282852080546000190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b816001600160a01b0316836001600160a01b0316036115435760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610540565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6115bb8484846112ce565b6115c78484848461194e565b610d685760405162461bcd60e51b8152600401610540906123fe565b6060600e805461042290612149565b606060006115ff83611a4f565b600101905060008167ffffffffffffffff81111561161f5761161f611e24565b6040519080825280601f01601f191660200182016040528015611649576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461165357509392505050565b60005b8151811015610910576116cc8282815181106116a6576116a66121d0565b60200260200101516116b7600a5490565b60405180602001604052806000815250611b27565b6116da600a80546001019055565b806116e48161223d565b915050611688565b600060016116f984610b64565b61170391906123a6565b600083815260076020526040902054909150808214611756576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b60085460009061179b906001906123a6565b600083815260096020526040812054600880549394509092849081106117c3576117c36121d0565b9060005260206000200154905080600883815481106117e4576117e46121d0565b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061181c5761181c612450565b6001900381819060005260206000200160009055905550505050565b600061184383610b64565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b60006001600160e01b031982166380ac58cd60e01b14806118ad57506001600160e01b03198216635b5e139f60e01b145b8061040d57506301ffc9a760e01b6001600160e01b031983161461040d565b6001600160a01b038416158015906118ec57506001600160a01b03831615155b80156119025750600d54600160a81b900460ff16155b156119425760405162461bcd60e51b815260206004820152601060248201526f6e6f74207472616e7366657261626c6560801b6044820152606401610540565b610d6884848484610f95565b60006001600160a01b0384163b15611a4457604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611992903390899088908890600401612466565b6020604051808303816000875af19250505080156119cd575060408051601f3d908101601f191682019092526119ca918101906124a3565b60015b611a2a573d8080156119fb576040519150601f19603f3d011682016040523d82523d6000602084013e611a00565b606091505b508051600003611a225760405162461bcd60e51b8152600401610540906123fe565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506112c6565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611a8e5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611aba576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611ad857662386f26fc10000830492506010015b6305f5e1008310611af0576305f5e100830492506008015b6127108310611b0457612710830492506004015b60648310611b16576064830492506002015b600a831061040d5760010192915050565b611b318383611b5a565b611b3e600084848461194e565b6105e15760405162461bcd60e51b8152600401610540906123fe565b6001600160a01b038216611bb05760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610540565b6000818152600260205260409020546001600160a01b031615611c155760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610540565b611c236000838360016118cc565b6000818152600260205260409020546001600160a01b031615611c885760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610540565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160e01b031981168114610f5957600080fd5b600060208284031215611d1b57600080fd5b8135610dce81611cf3565b60005b83811015611d41578181015183820152602001611d29565b50506000910152565b60008151808452611d62816020860160208601611d26565b601f01601f19169290920160200192915050565b602081526000610dce6020830184611d4a565b600060208284031215611d9b57600080fd5b5035919050565b80356001600160a01b0381168114611db957600080fd5b919050565b60008060408385031215611dd157600080fd5b611dda83611da2565b946020939093013593505050565b600080600060608486031215611dfd57600080fd5b611e0684611da2565b9250611e1460208501611da2565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611e6357611e63611e24565b604052919050565b600067ffffffffffffffff821115611e8557611e85611e24565b5060051b60200190565b60006020808385031215611ea257600080fd5b823567ffffffffffffffff811115611eb957600080fd5b8301601f81018513611eca57600080fd5b8035611edd611ed882611e6b565b611e3a565b81815260059190911b82018301908381019087831115611efc57600080fd5b928401925b82841015611f1a57833582529284019290840190611f01565b979650505050505050565b600060208284031215611f3757600080fd5b610dce82611da2565b600082601f830112611f5157600080fd5b813567ffffffffffffffff811115611f6b57611f6b611e24565b611f7e601f8201601f1916602001611e3a565b818152846020838601011115611f9357600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215611fc257600080fd5b813567ffffffffffffffff811115611fd957600080fd5b6112c684828501611f40565b60008060408385031215611ff857600080fd5b61200183611da2565b91506020830135801515811461201657600080fd5b809150509250929050565b6000806000806080858703121561203757600080fd5b61204085611da2565b935061204e60208601611da2565b925060408501359150606085013567ffffffffffffffff81111561207157600080fd5b61207d87828801611f40565b91505092959194509250565b6000602080838503121561209c57600080fd5b823567ffffffffffffffff8111156120b357600080fd5b8301601f810185136120c457600080fd5b80356120d2611ed882611e6b565b81815260059190911b820183019083810190878311156120f157600080fd5b928401925b82841015611f1a5761210784611da2565b825292840192908401906120f6565b6000806040838503121561212957600080fd5b61213283611da2565b915061214060208401611da2565b90509250929050565b600181811c9082168061215d57607f821691505b60208210810361217d57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156121f857600080fd5b5051919050565b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60006001820161224f5761224f612227565b5060010190565b601f8211156105e157600081815260208120601f850160051c8101602086101561227d5750805b601f850160051c820191505b8181101561229c57828155600101612289565b505050505050565b815167ffffffffffffffff8111156122be576122be611e24565b6122d2816122cc8454612149565b84612256565b602080601f83116001811461230757600084156122ef5750858301515b600019600386901b1c1916600185901b17855561229c565b600085815260208120601f198616915b8281101561233657888601518255948401946001909101908401612317565b50858210156123545787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008351612376818460208801611d26565b83519083019061238a818360208801611d26565b01949350505050565b8082018082111561040d5761040d612227565b8181038181111561040d5761040d612227565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061249990830184611d4a565b9695505050505050565b6000602082840312156124b557600080fd5b8151610dce81611cf356fea26469706673582212205d36cc9d9c3ba8e2c7aeea69cbb43f31d98de9c2bedfefb95670e64d5b45319364736f6c6343000811003360806040523480156200001157600080fd5b506040516200263f3803806200263f83398101604081905262000034916200020c565b8383600019600160008686828787826200004f83826200034e565b5060016200005e82826200034e565b505050600b869055600d805461ffff60a01b1916600160a01b8715150260ff60a81b191617600160a81b86151502179055600e6200009d84826200034e565b50600c80546001600160a01b038085166001600160a01b03199283168117909355600d805491851691909216179055151580620000e45750600d546001600160a01b031615155b620001355760405162461bcd60e51b815260206004820152601f60248201527f6f776e6572206f72206d617374657220746f6b656e7320726571756972656400604482015260640160405180910390fd5b5050505050505050505050506200041a565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200016f57600080fd5b81516001600160401b03808211156200018c576200018c62000147565b604051601f8301601f19908116603f01168101908282118183101715620001b757620001b762000147565b81604052838152602092508683858801011115620001d457600080fd5b600091505b83821015620001f85785820183015181830184015290820190620001d9565b600093810190920192909252949350505050565b600080600080608085870312156200022357600080fd5b84516001600160401b03808211156200023b57600080fd5b62000249888389016200015d565b955060208701519150808211156200026057600080fd5b6200026e888389016200015d565b945060408701519150808211156200028557600080fd5b5062000294878288016200015d565b606087015190935090506001600160a01b0381168114620002b457600080fd5b939692955090935050565b600181811c90821680620002d457607f821691505b602082108103620002f557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200034957600081815260208120601f850160051c81016020861015620003245750805b601f850160051c820191505b81811015620003455782815560010162000330565b5050505b505050565b81516001600160401b038111156200036a576200036a62000147565b62000382816200037b8454620002bf565b84620002fb565b602080601f831160018114620003ba5760008415620003a15750858301515b600019600386901b1c1916600185901b17855562000345565b600085815260208120601f198616915b82811015620003eb57888601518255948401946001909101908401620003ca565b50858210156200040a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b612215806200042a6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c806365371883116100de578063b88d4fde11610097578063cf721b1511610071578063cf721b151461035c578063d547cfb714610364578063d5abeb011461036c578063e985e9c51461037557600080fd5b8063b88d4fde14610323578063c87b56dd14610336578063ce7c8b491461034957600080fd5b806365371883146102bb5780636f8b44b0146102ce57806370a08231146102e157806392ff0d31146102f457806395d89b4114610308578063a22cb4651461031057600080fd5b806323b872dd1161014b57806342842e0e1161012557806342842e0e1461026f5780634f6ccce7146102825780634fb95e02146102955780636352211e146102a857600080fd5b806323b872dd146102365780632bb5e31e146102495780632f745c591461025c57600080fd5b806301ffc9a71461019357806306fdde03146101bb578063081812fc146101d0578063095ea7b3146101fb578063101639f51461021057806318160ddd14610224575b600080fd5b6101a66101a1366004611b83565b6103b1565b60405190151581526020015b60405180910390f35b6101c36103c2565b6040516101b29190611bf0565b6101e36101de366004611c03565b610454565b6040516001600160a01b0390911681526020016101b2565b61020e610209366004611c38565b61047b565b005b600d546101a690600160a01b900460ff1681565b6008545b6040519081526020016101b2565b61020e610244366004611c62565b610595565b600d546101e3906001600160a01b031681565b61022861026a366004611c38565b6105c6565b61020e61027d366004611c62565b61065c565b610228610290366004611c03565b610677565b61020e6102a3366004611d09565b61070a565b6101e36102b6366004611c03565b6108c3565b600c546101e3906001600160a01b031681565b61020e6102dc366004611c03565b610923565b6102286102ef366004611d9f565b610aab565b600d546101a690600160a81b900460ff1681565b6101c3610b31565b61020e61031e366004611dba565b610b40565b61020e610331366004611df6565b610b4b565b6101c3610344366004611c03565b610b83565b61020e610357366004611eb6565b610bea565b610228610d71565b6101c3610d81565b610228600b5481565b6101a6610383366004611f43565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006103bc82610e0f565b92915050565b6060600080546103d190611f76565b80601f01602080910402602001604051908101604052809291908181526020018280546103fd90611f76565b801561044a5780601f1061041f5761010080835404028352916020019161044a565b820191906000526020600020905b81548152906001019060200180831161042d57829003601f168201915b5050505050905090565b600061045f82610e34565b506000908152600460205260409020546001600160a01b031690565b6000610486826108c3565b9050806001600160a01b0316836001600160a01b0316036104f85760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061051457506105148133610383565b6105865760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016104ef565b6105908383610e93565b505050565b61059f3382610f01565b6105bb5760405162461bcd60e51b81526004016104ef90611fb0565b610590838383610f80565b60006105d183610aab565b82106106335760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b60648201526084016104ef565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b61059083838360405180602001604052806000815250610b4b565b600061068260085490565b82106106e55760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b60648201526084016104ef565b600882815481106106f8576106f8611ffd565b90600052602060002001549050919050565b600c546001600160a01b0316158061078c5750600c546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610766573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078a9190612013565b115b806108145750600d546001600160a01b031615806108145750600d546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156107ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108129190612013565b115b6108305760405162461bcd60e51b81526004016104ef9061202c565b600d54600160a01b900460ff1661087f5760405162461bcd60e51b81526020600482015260136024820152724e4f545f52454d4f54455f4255524e41424c4560681b60448201526064016104ef565b60005b81518110156108bf576108ad8282815181106108a0576108a0611ffd565b60200260200101516110f1565b806108b78161206a565b915050610882565b5050565b6000818152600260205260408120546001600160a01b0316806103bc5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016104ef565b600c546001600160a01b031615806109a55750600c546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561097f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a39190612013565b115b80610a2d5750600d546001600160a01b03161580610a2d5750600d546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610a07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2b9190612013565b115b610a495760405162461bcd60e51b81526004016104ef9061202c565b600854811015610aa65760405162461bcd60e51b815260206004820152602260248201527f4d41585f535550504c595f4c4f5745525f5448414e5f544f54414c5f535550506044820152614c5960f01b60648201526084016104ef565b600b55565b60006001600160a01b038216610b155760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016104ef565b506001600160a01b031660009081526003602052604090205490565b6060600180546103d190611f76565b6108bf338383611194565b610b553383610f01565b610b715760405162461bcd60e51b81526004016104ef90611fb0565b610b7d84848484611262565b50505050565b6060610b8e82610e34565b6000610b98611295565b90506000815111610bb85760405180602001604052806000815250610be3565b80610bc2846112a4565b604051602001610bd3929190612083565b6040516020818303038152906040525b9392505050565b600c546001600160a01b03161580610c6c5750600c546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6a9190612013565b115b80610cf45750600d546001600160a01b03161580610cf45750600d546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610cce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf29190612013565b115b610d105760405162461bcd60e51b81526004016104ef9061202c565b600b548151600a54610d2291906120b2565b1115610d655760405162461bcd60e51b815260206004820152601260248201527113505617d4d55414131657d4915050d2115160721b60448201526064016104ef565b610d6e81611337565b50565b6000610d7c600a5490565b905090565b600e8054610d8e90611f76565b80601f0160208091040260200160405190810160405280929190818152602001828054610dba90611f76565b8015610e075780601f10610ddc57610100808354040283529160200191610e07565b820191906000526020600020905b815481529060010190602001808311610dea57829003601f168201915b505050505081565b60006001600160e01b0319821663780e9d6360e01b14806103bc57506103bc8261139e565b6000818152600260205260409020546001600160a01b0316610d6e5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016104ef565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610ec8826108c3565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610f0d836108c3565b9050806001600160a01b0316846001600160a01b03161480610f5457506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b80610f785750836001600160a01b0316610f6d84610454565b6001600160a01b0316145b949350505050565b826001600160a01b0316610f93826108c3565b6001600160a01b031614610fb95760405162461bcd60e51b81526004016104ef906120c5565b6001600160a01b03821661101b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016104ef565b61102883838360016113ee565b826001600160a01b031661103b826108c3565b6001600160a01b0316146110615760405162461bcd60e51b81526004016104ef906120c5565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60006110fc826108c3565b905061110c8160008460016113ee565b611115826108c3565b600083815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526003845282852080546000190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b816001600160a01b0316836001600160a01b0316036111f55760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016104ef565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61126d848484610f80565b61127984848484611470565b610b7d5760405162461bcd60e51b81526004016104ef9061210a565b6060600e80546103d190611f76565b606060006112b183611571565b600101905060008167ffffffffffffffff8111156112d1576112d1611c9e565b6040519080825280601f01601f1916602001820160405280156112fb576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461130557509392505050565b60005b81518110156108bf5761137e82828151811061135857611358611ffd565b6020026020010151611369600a5490565b60405180602001604052806000815250611649565b61138c600a80546001019055565b806113968161206a565b91505061133a565b60006001600160e01b031982166380ac58cd60e01b14806113cf57506001600160e01b03198216635b5e139f60e01b145b806103bc57506301ffc9a760e01b6001600160e01b03198316146103bc565b6001600160a01b0384161580159061140e57506001600160a01b03831615155b80156114245750600d54600160a81b900460ff16155b156114645760405162461bcd60e51b815260206004820152601060248201526f6e6f74207472616e7366657261626c6560801b60448201526064016104ef565b610b7d8484848461167c565b60006001600160a01b0384163b1561156657604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906114b490339089908890889060040161215c565b6020604051808303816000875af19250505080156114ef575060408051601f3d908101601f191682019092526114ec91810190612199565b60015b61154c573d80801561151d576040519150601f19603f3d011682016040523d82523d6000602084013e611522565b606091505b5080516000036115445760405162461bcd60e51b81526004016104ef9061210a565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610f78565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106115b05772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106115dc576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106115fa57662386f26fc10000830492506010015b6305f5e1008310611612576305f5e100830492506008015b612710831061162657612710830492506004015b60648310611638576064830492506002015b600a83106103bc5760010192915050565b61165383836117bc565b6116606000848484611470565b6105905760405162461bcd60e51b81526004016104ef9061210a565b61168884848484611955565b60018111156116f75760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b60648201526084016104ef565b816001600160a01b0385166117535761174e81600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b611776565b836001600160a01b0316856001600160a01b0316146117765761177685826119dd565b6001600160a01b0384166117925761178d81611a7a565b6117b5565b846001600160a01b0316846001600160a01b0316146117b5576117b58482611b29565b5050505050565b6001600160a01b0382166118125760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016104ef565b6000818152600260205260409020546001600160a01b0316156118775760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016104ef565b6118856000838360016113ee565b6000818152600260205260409020546001600160a01b0316156118ea5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016104ef565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001811115610b7d576001600160a01b0384161561199b576001600160a01b038416600090815260036020526040812080548392906119959084906121b6565b90915550505b6001600160a01b03831615610b7d576001600160a01b038316600090815260036020526040812080548392906119d29084906120b2565b909155505050505050565b600060016119ea84610aab565b6119f491906121b6565b600083815260076020526040902054909150808214611a47576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090611a8c906001906121b6565b60008381526009602052604081205460088054939450909284908110611ab457611ab4611ffd565b906000526020600020015490508060088381548110611ad557611ad5611ffd565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480611b0d57611b0d6121c9565b6001900381819060005260206000200160009055905550505050565b6000611b3483610aab565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6001600160e01b031981168114610d6e57600080fd5b600060208284031215611b9557600080fd5b8135610be381611b6d565b60005b83811015611bbb578181015183820152602001611ba3565b50506000910152565b60008151808452611bdc816020860160208601611ba0565b601f01601f19169290920160200192915050565b602081526000610be36020830184611bc4565b600060208284031215611c1557600080fd5b5035919050565b80356001600160a01b0381168114611c3357600080fd5b919050565b60008060408385031215611c4b57600080fd5b611c5483611c1c565b946020939093013593505050565b600080600060608486031215611c7757600080fd5b611c8084611c1c565b9250611c8e60208501611c1c565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611cdd57611cdd611c9e565b604052919050565b600067ffffffffffffffff821115611cff57611cff611c9e565b5060051b60200190565b60006020808385031215611d1c57600080fd5b823567ffffffffffffffff811115611d3357600080fd5b8301601f81018513611d4457600080fd5b8035611d57611d5282611ce5565b611cb4565b81815260059190911b82018301908381019087831115611d7657600080fd5b928401925b82841015611d9457833582529284019290840190611d7b565b979650505050505050565b600060208284031215611db157600080fd5b610be382611c1c565b60008060408385031215611dcd57600080fd5b611dd683611c1c565b915060208301358015158114611deb57600080fd5b809150509250929050565b60008060008060808587031215611e0c57600080fd5b611e1585611c1c565b93506020611e24818701611c1c565b935060408601359250606086013567ffffffffffffffff80821115611e4857600080fd5b818801915088601f830112611e5c57600080fd5b813581811115611e6e57611e6e611c9e565b611e80601f8201601f19168501611cb4565b91508082528984828501011115611e9657600080fd5b808484018584013760008482840101525080935050505092959194509250565b60006020808385031215611ec957600080fd5b823567ffffffffffffffff811115611ee057600080fd5b8301601f81018513611ef157600080fd5b8035611eff611d5282611ce5565b81815260059190911b82018301908381019087831115611f1e57600080fd5b928401925b82841015611d9457611f3484611c1c565b82529284019290840190611f23565b60008060408385031215611f5657600080fd5b611f5f83611c1c565b9150611f6d60208401611c1c565b90509250929050565b600181811c90821680611f8a57607f821691505b602082108103611faa57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561202557600080fd5b5051919050565b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60006001820161207c5761207c612054565b5060010190565b60008351612095818460208801611ba0565b8351908301906120a9818360208801611ba0565b01949350505050565b808201808211156103bc576103bc612054565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061218f90830184611bc4565b9695505050505050565b6000602082840312156121ab57600080fd5b8151610be381611b6d565b818103818111156103bc576103bc612054565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220e8152b9960944a2fd38286972b6dc3d8a3cffd1232a5105e82f02c12af7f532064736f6c634300081100334552433732313a207472616e7366657220746f206e6f6e204552433732315265"
// DeployOwnerToken deploys a new Ethereum contract, binding an instance of OwnerToken to it.
func DeployOwnerToken(auth *bind.TransactOpts, backend bind.ContractBackend, _name string, _symbol string, _baseTokenURI string, _masterName string, _masterSymbol string, _masterBaseTokenURI string, _signerPublicKey []byte) (common.Address, *types.Transaction, *OwnerToken, error) {
parsed, err := abi.JSON(strings.NewReader(OwnerTokenABI))
if err != nil {
return common.Address{}, nil, nil, err
}
address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(OwnerTokenBin), backend, _name, _symbol, _baseTokenURI, _masterName, _masterSymbol, _masterBaseTokenURI, _signerPublicKey)
if err != nil {
return common.Address{}, nil, nil, err
}
return address, tx, &OwnerToken{OwnerTokenCaller: OwnerTokenCaller{contract: contract}, OwnerTokenTransactor: OwnerTokenTransactor{contract: contract}, OwnerTokenFilterer: OwnerTokenFilterer{contract: contract}}, nil
}
// OwnerToken is an auto generated Go binding around an Ethereum contract.
type OwnerToken struct {
OwnerTokenCaller // Read-only binding to the contract
OwnerTokenTransactor // Write-only binding to the contract
OwnerTokenFilterer // Log filterer for contract events
}
// OwnerTokenCaller is an auto generated read-only Go binding around an Ethereum contract.
type OwnerTokenCaller struct {
contract *bind.BoundContract // Generic contract wrapper for the low level calls
}
// OwnerTokenTransactor is an auto generated write-only Go binding around an Ethereum contract.
type OwnerTokenTransactor struct {
contract *bind.BoundContract // Generic contract wrapper for the low level calls
}
// OwnerTokenFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
type OwnerTokenFilterer struct {
contract *bind.BoundContract // Generic contract wrapper for the low level calls
}
// OwnerTokenSession is an auto generated Go binding around an Ethereum contract,
// with pre-set call and transact options.
type OwnerTokenSession struct {
Contract *OwnerToken // Generic contract binding to set the session for
CallOpts bind.CallOpts // Call options to use throughout this session
TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
}
// OwnerTokenCallerSession is an auto generated read-only Go binding around an Ethereum contract,
// with pre-set call options.
type OwnerTokenCallerSession struct {
Contract *OwnerTokenCaller // Generic contract caller binding to set the session for
CallOpts bind.CallOpts // Call options to use throughout this session
}
// OwnerTokenTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
// with pre-set transact options.
type OwnerTokenTransactorSession struct {
Contract *OwnerTokenTransactor // Generic contract transactor binding to set the session for
TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
}
// OwnerTokenRaw is an auto generated low-level Go binding around an Ethereum contract.
type OwnerTokenRaw struct {
Contract *OwnerToken // Generic contract binding to access the raw methods on
}
// OwnerTokenCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
type OwnerTokenCallerRaw struct {
Contract *OwnerTokenCaller // Generic read-only contract binding to access the raw methods on
}
// OwnerTokenTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
type OwnerTokenTransactorRaw struct {
Contract *OwnerTokenTransactor // Generic write-only contract binding to access the raw methods on
}
// NewOwnerToken creates a new instance of OwnerToken, bound to a specific deployed contract.
func NewOwnerToken(address common.Address, backend bind.ContractBackend) (*OwnerToken, error) {
contract, err := bindOwnerToken(address, backend, backend, backend)
if err != nil {
return nil, err
}
return &OwnerToken{OwnerTokenCaller: OwnerTokenCaller{contract: contract}, OwnerTokenTransactor: OwnerTokenTransactor{contract: contract}, OwnerTokenFilterer: OwnerTokenFilterer{contract: contract}}, nil
}
// NewOwnerTokenCaller creates a new read-only instance of OwnerToken, bound to a specific deployed contract.
func NewOwnerTokenCaller(address common.Address, caller bind.ContractCaller) (*OwnerTokenCaller, error) {
contract, err := bindOwnerToken(address, caller, nil, nil)
if err != nil {
return nil, err
}
return &OwnerTokenCaller{contract: contract}, nil
}
// NewOwnerTokenTransactor creates a new write-only instance of OwnerToken, bound to a specific deployed contract.
func NewOwnerTokenTransactor(address common.Address, transactor bind.ContractTransactor) (*OwnerTokenTransactor, error) {
contract, err := bindOwnerToken(address, nil, transactor, nil)
if err != nil {
return nil, err
}
return &OwnerTokenTransactor{contract: contract}, nil
}
// NewOwnerTokenFilterer creates a new log filterer instance of OwnerToken, bound to a specific deployed contract.
func NewOwnerTokenFilterer(address common.Address, filterer bind.ContractFilterer) (*OwnerTokenFilterer, error) {
contract, err := bindOwnerToken(address, nil, nil, filterer)
if err != nil {
return nil, err
}
return &OwnerTokenFilterer{contract: contract}, nil
}
// bindOwnerToken binds a generic wrapper to an already deployed contract.
func bindOwnerToken(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
parsed, err := abi.JSON(strings.NewReader(OwnerTokenABI))
if err != nil {
return nil, err
}
return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
}
// Call invokes the (constant) contract method with params as input values and
// sets the output to result. The result type might be a single field for simple
// returns, a slice of interfaces for anonymous returns and a struct for named
// returns.
func (_OwnerToken *OwnerTokenRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
return _OwnerToken.Contract.OwnerTokenCaller.contract.Call(opts, result, method, params...)
}
// Transfer initiates a plain transaction to move funds to the contract, calling
// its default method if one is available.
func (_OwnerToken *OwnerTokenRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
return _OwnerToken.Contract.OwnerTokenTransactor.contract.Transfer(opts)
}
// Transact invokes the (paid) contract method with params as input values.
func (_OwnerToken *OwnerTokenRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
return _OwnerToken.Contract.OwnerTokenTransactor.contract.Transact(opts, method, params...)
}
// Call invokes the (constant) contract method with params as input values and
// sets the output to result. The result type might be a single field for simple
// returns, a slice of interfaces for anonymous returns and a struct for named
// returns.
func (_OwnerToken *OwnerTokenCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
return _OwnerToken.Contract.contract.Call(opts, result, method, params...)
}
// Transfer initiates a plain transaction to move funds to the contract, calling
// its default method if one is available.
func (_OwnerToken *OwnerTokenTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
return _OwnerToken.Contract.contract.Transfer(opts)
}
// Transact invokes the (paid) contract method with params as input values.
func (_OwnerToken *OwnerTokenTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
return _OwnerToken.Contract.contract.Transact(opts, method, params...)
}
// BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
//
// Solidity: function balanceOf(address owner) view returns(uint256)
func (_OwnerToken *OwnerTokenCaller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) {
var out []interface{}
err := _OwnerToken.contract.Call(opts, &out, "balanceOf", owner)
if err != nil {
return *new(*big.Int), err
}
out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
return out0, err
}
// BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
//
// Solidity: function balanceOf(address owner) view returns(uint256)
func (_OwnerToken *OwnerTokenSession) BalanceOf(owner common.Address) (*big.Int, error) {
return _OwnerToken.Contract.BalanceOf(&_OwnerToken.CallOpts, owner)
}
// BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
//
// Solidity: function balanceOf(address owner) view returns(uint256)
func (_OwnerToken *OwnerTokenCallerSession) BalanceOf(owner common.Address) (*big.Int, error) {
return _OwnerToken.Contract.BalanceOf(&_OwnerToken.CallOpts, owner)
}
// BaseTokenURI is a free data retrieval call binding the contract method 0xd547cfb7.
//
// Solidity: function baseTokenURI() view returns(string)
func (_OwnerToken *OwnerTokenCaller) BaseTokenURI(opts *bind.CallOpts) (string, error) {
var out []interface{}
err := _OwnerToken.contract.Call(opts, &out, "baseTokenURI")
if err != nil {
return *new(string), err
}
out0 := *abi.ConvertType(out[0], new(string)).(*string)
return out0, err
}
// BaseTokenURI is a free data retrieval call binding the contract method 0xd547cfb7.
//
// Solidity: function baseTokenURI() view returns(string)
func (_OwnerToken *OwnerTokenSession) BaseTokenURI() (string, error) {
return _OwnerToken.Contract.BaseTokenURI(&_OwnerToken.CallOpts)
}
// BaseTokenURI is a free data retrieval call binding the contract method 0xd547cfb7.
//
// Solidity: function baseTokenURI() view returns(string)
func (_OwnerToken *OwnerTokenCallerSession) BaseTokenURI() (string, error) {
return _OwnerToken.Contract.BaseTokenURI(&_OwnerToken.CallOpts)
}
// GetApproved is a free data retrieval call binding the contract method 0x081812fc.
//
// Solidity: function getApproved(uint256 tokenId) view returns(address)
func (_OwnerToken *OwnerTokenCaller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
var out []interface{}
err := _OwnerToken.contract.Call(opts, &out, "getApproved", tokenId)
if err != nil {
return *new(common.Address), err
}
out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
return out0, err
}
// GetApproved is a free data retrieval call binding the contract method 0x081812fc.
//
// Solidity: function getApproved(uint256 tokenId) view returns(address)
func (_OwnerToken *OwnerTokenSession) GetApproved(tokenId *big.Int) (common.Address, error) {
return _OwnerToken.Contract.GetApproved(&_OwnerToken.CallOpts, tokenId)
}
// GetApproved is a free data retrieval call binding the contract method 0x081812fc.
//
// Solidity: function getApproved(uint256 tokenId) view returns(address)
func (_OwnerToken *OwnerTokenCallerSession) GetApproved(tokenId *big.Int) (common.Address, error) {
return _OwnerToken.Contract.GetApproved(&_OwnerToken.CallOpts, tokenId)
}
// IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
//
// Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
func (_OwnerToken *OwnerTokenCaller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) {
var out []interface{}
err := _OwnerToken.contract.Call(opts, &out, "isApprovedForAll", owner, operator)
if err != nil {
return *new(bool), err
}
out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
return out0, err
}
// IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
//
// Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
func (_OwnerToken *OwnerTokenSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
return _OwnerToken.Contract.IsApprovedForAll(&_OwnerToken.CallOpts, owner, operator)
}
// IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
//
// Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
func (_OwnerToken *OwnerTokenCallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
return _OwnerToken.Contract.IsApprovedForAll(&_OwnerToken.CallOpts, owner, operator)
}
// MasterToken is a free data retrieval call binding the contract method 0x2bb5e31e.
//
// Solidity: function masterToken() view returns(address)
func (_OwnerToken *OwnerTokenCaller) MasterToken(opts *bind.CallOpts) (common.Address, error) {
var out []interface{}
err := _OwnerToken.contract.Call(opts, &out, "masterToken")
if err != nil {
return *new(common.Address), err
}
out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
return out0, err
}
// MasterToken is a free data retrieval call binding the contract method 0x2bb5e31e.
//
// Solidity: function masterToken() view returns(address)
func (_OwnerToken *OwnerTokenSession) MasterToken() (common.Address, error) {
return _OwnerToken.Contract.MasterToken(&_OwnerToken.CallOpts)
}
// MasterToken is a free data retrieval call binding the contract method 0x2bb5e31e.
//
// Solidity: function masterToken() view returns(address)
func (_OwnerToken *OwnerTokenCallerSession) MasterToken() (common.Address, error) {
return _OwnerToken.Contract.MasterToken(&_OwnerToken.CallOpts)
}
// MaxSupply is a free data retrieval call binding the contract method 0xd5abeb01.
//
// Solidity: function maxSupply() view returns(uint256)
func (_OwnerToken *OwnerTokenCaller) MaxSupply(opts *bind.CallOpts) (*big.Int, error) {
var out []interface{}
err := _OwnerToken.contract.Call(opts, &out, "maxSupply")
if err != nil {
return *new(*big.Int), err
}
out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
return out0, err
}
// MaxSupply is a free data retrieval call binding the contract method 0xd5abeb01.
//
// Solidity: function maxSupply() view returns(uint256)
func (_OwnerToken *OwnerTokenSession) MaxSupply() (*big.Int, error) {
return _OwnerToken.Contract.MaxSupply(&_OwnerToken.CallOpts)
}
// MaxSupply is a free data retrieval call binding the contract method 0xd5abeb01.
//
// Solidity: function maxSupply() view returns(uint256)
func (_OwnerToken *OwnerTokenCallerSession) MaxSupply() (*big.Int, error) {
return _OwnerToken.Contract.MaxSupply(&_OwnerToken.CallOpts)
}
// MintedCount is a free data retrieval call binding the contract method 0xcf721b15.
//
// Solidity: function mintedCount() view returns(uint256)
func (_OwnerToken *OwnerTokenCaller) MintedCount(opts *bind.CallOpts) (*big.Int, error) {
var out []interface{}
err := _OwnerToken.contract.Call(opts, &out, "mintedCount")
if err != nil {
return *new(*big.Int), err
}
out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
return out0, err
}
// MintedCount is a free data retrieval call binding the contract method 0xcf721b15.
//
// Solidity: function mintedCount() view returns(uint256)
func (_OwnerToken *OwnerTokenSession) MintedCount() (*big.Int, error) {
return _OwnerToken.Contract.MintedCount(&_OwnerToken.CallOpts)
}
// MintedCount is a free data retrieval call binding the contract method 0xcf721b15.
//
// Solidity: function mintedCount() view returns(uint256)
func (_OwnerToken *OwnerTokenCallerSession) MintedCount() (*big.Int, error) {
return _OwnerToken.Contract.MintedCount(&_OwnerToken.CallOpts)
}
// Name is a free data retrieval call binding the contract method 0x06fdde03.
//
// Solidity: function name() view returns(string)
func (_OwnerToken *OwnerTokenCaller) Name(opts *bind.CallOpts) (string, error) {
var out []interface{}
err := _OwnerToken.contract.Call(opts, &out, "name")
if err != nil {
return *new(string), err
}
out0 := *abi.ConvertType(out[0], new(string)).(*string)
return out0, err
}
// Name is a free data retrieval call binding the contract method 0x06fdde03.
//
// Solidity: function name() view returns(string)
func (_OwnerToken *OwnerTokenSession) Name() (string, error) {
return _OwnerToken.Contract.Name(&_OwnerToken.CallOpts)
}
// Name is a free data retrieval call binding the contract method 0x06fdde03.
//
// Solidity: function name() view returns(string)
func (_OwnerToken *OwnerTokenCallerSession) Name() (string, error) {
return _OwnerToken.Contract.Name(&_OwnerToken.CallOpts)
}
// OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
//
// Solidity: function ownerOf(uint256 tokenId) view returns(address)
func (_OwnerToken *OwnerTokenCaller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
var out []interface{}
err := _OwnerToken.contract.Call(opts, &out, "ownerOf", tokenId)
if err != nil {
return *new(common.Address), err
}
out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
return out0, err
}
// OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
//
// Solidity: function ownerOf(uint256 tokenId) view returns(address)
func (_OwnerToken *OwnerTokenSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
return _OwnerToken.Contract.OwnerOf(&_OwnerToken.CallOpts, tokenId)
}
// OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
//
// Solidity: function ownerOf(uint256 tokenId) view returns(address)
func (_OwnerToken *OwnerTokenCallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
return _OwnerToken.Contract.OwnerOf(&_OwnerToken.CallOpts, tokenId)
}
// OwnerToken is a free data retrieval call binding the contract method 0x65371883.
//
// Solidity: function ownerToken() view returns(address)
func (_OwnerToken *OwnerTokenCaller) OwnerToken(opts *bind.CallOpts) (common.Address, error) {
var out []interface{}
err := _OwnerToken.contract.Call(opts, &out, "ownerToken")
if err != nil {
return *new(common.Address), err
}
out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
return out0, err
}
// OwnerToken is a free data retrieval call binding the contract method 0x65371883.
//
// Solidity: function ownerToken() view returns(address)
func (_OwnerToken *OwnerTokenSession) OwnerToken() (common.Address, error) {
return _OwnerToken.Contract.OwnerToken(&_OwnerToken.CallOpts)
}
// OwnerToken is a free data retrieval call binding the contract method 0x65371883.
//
// Solidity: function ownerToken() view returns(address)
func (_OwnerToken *OwnerTokenCallerSession) OwnerToken() (common.Address, error) {
return _OwnerToken.Contract.OwnerToken(&_OwnerToken.CallOpts)
}
// RemoteBurnable is a free data retrieval call binding the contract method 0x101639f5.
//
// Solidity: function remoteBurnable() view returns(bool)
func (_OwnerToken *OwnerTokenCaller) RemoteBurnable(opts *bind.CallOpts) (bool, error) {
var out []interface{}
err := _OwnerToken.contract.Call(opts, &out, "remoteBurnable")
if err != nil {
return *new(bool), err
}
out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
return out0, err
}
// RemoteBurnable is a free data retrieval call binding the contract method 0x101639f5.
//
// Solidity: function remoteBurnable() view returns(bool)
func (_OwnerToken *OwnerTokenSession) RemoteBurnable() (bool, error) {
return _OwnerToken.Contract.RemoteBurnable(&_OwnerToken.CallOpts)
}
// RemoteBurnable is a free data retrieval call binding the contract method 0x101639f5.
//
// Solidity: function remoteBurnable() view returns(bool)
func (_OwnerToken *OwnerTokenCallerSession) RemoteBurnable() (bool, error) {
return _OwnerToken.Contract.RemoteBurnable(&_OwnerToken.CallOpts)
}
// SignerPublicKey is a free data retrieval call binding the contract method 0x549a95ea.
//
// Solidity: function signerPublicKey() view returns(bytes)
func (_OwnerToken *OwnerTokenCaller) SignerPublicKey(opts *bind.CallOpts) ([]byte, error) {
var out []interface{}
err := _OwnerToken.contract.Call(opts, &out, "signerPublicKey")
if err != nil {
return *new([]byte), err
}
out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte)
return out0, err
}
// SignerPublicKey is a free data retrieval call binding the contract method 0x549a95ea.
//
// Solidity: function signerPublicKey() view returns(bytes)
func (_OwnerToken *OwnerTokenSession) SignerPublicKey() ([]byte, error) {
return _OwnerToken.Contract.SignerPublicKey(&_OwnerToken.CallOpts)
}
// SignerPublicKey is a free data retrieval call binding the contract method 0x549a95ea.
//
// Solidity: function signerPublicKey() view returns(bytes)
func (_OwnerToken *OwnerTokenCallerSession) SignerPublicKey() ([]byte, error) {
return _OwnerToken.Contract.SignerPublicKey(&_OwnerToken.CallOpts)
}
// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
//
// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
func (_OwnerToken *OwnerTokenCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
var out []interface{}
err := _OwnerToken.contract.Call(opts, &out, "supportsInterface", interfaceId)
if err != nil {
return *new(bool), err
}
out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
return out0, err
}
// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
//
// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
func (_OwnerToken *OwnerTokenSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
return _OwnerToken.Contract.SupportsInterface(&_OwnerToken.CallOpts, interfaceId)
}
// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
//
// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
func (_OwnerToken *OwnerTokenCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
return _OwnerToken.Contract.SupportsInterface(&_OwnerToken.CallOpts, interfaceId)
}
// Symbol is a free data retrieval call binding the contract method 0x95d89b41.
//
// Solidity: function symbol() view returns(string)
func (_OwnerToken *OwnerTokenCaller) Symbol(opts *bind.CallOpts) (string, error) {
var out []interface{}
err := _OwnerToken.contract.Call(opts, &out, "symbol")
if err != nil {
return *new(string), err
}
out0 := *abi.ConvertType(out[0], new(string)).(*string)
return out0, err
}
// Symbol is a free data retrieval call binding the contract method 0x95d89b41.
//
// Solidity: function symbol() view returns(string)
func (_OwnerToken *OwnerTokenSession) Symbol() (string, error) {
return _OwnerToken.Contract.Symbol(&_OwnerToken.CallOpts)
}
// Symbol is a free data retrieval call binding the contract method 0x95d89b41.
//
// Solidity: function symbol() view returns(string)
func (_OwnerToken *OwnerTokenCallerSession) Symbol() (string, error) {
return _OwnerToken.Contract.Symbol(&_OwnerToken.CallOpts)
}
// TokenByIndex is a free data retrieval call binding the contract method 0x4f6ccce7.
//
// Solidity: function tokenByIndex(uint256 index) view returns(uint256)
func (_OwnerToken *OwnerTokenCaller) TokenByIndex(opts *bind.CallOpts, index *big.Int) (*big.Int, error) {
var out []interface{}
err := _OwnerToken.contract.Call(opts, &out, "tokenByIndex", index)
if err != nil {
return *new(*big.Int), err
}
out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
return out0, err
}
// TokenByIndex is a free data retrieval call binding the contract method 0x4f6ccce7.
//
// Solidity: function tokenByIndex(uint256 index) view returns(uint256)
func (_OwnerToken *OwnerTokenSession) TokenByIndex(index *big.Int) (*big.Int, error) {
return _OwnerToken.Contract.TokenByIndex(&_OwnerToken.CallOpts, index)
}
// TokenByIndex is a free data retrieval call binding the contract method 0x4f6ccce7.
//
// Solidity: function tokenByIndex(uint256 index) view returns(uint256)
func (_OwnerToken *OwnerTokenCallerSession) TokenByIndex(index *big.Int) (*big.Int, error) {
return _OwnerToken.Contract.TokenByIndex(&_OwnerToken.CallOpts, index)
}
// TokenOfOwnerByIndex is a free data retrieval call binding the contract method 0x2f745c59.
//
// Solidity: function tokenOfOwnerByIndex(address owner, uint256 index) view returns(uint256)
func (_OwnerToken *OwnerTokenCaller) TokenOfOwnerByIndex(opts *bind.CallOpts, owner common.Address, index *big.Int) (*big.Int, error) {
var out []interface{}
err := _OwnerToken.contract.Call(opts, &out, "tokenOfOwnerByIndex", owner, index)
if err != nil {
return *new(*big.Int), err
}
out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
return out0, err
}
// TokenOfOwnerByIndex is a free data retrieval call binding the contract method 0x2f745c59.
//
// Solidity: function tokenOfOwnerByIndex(address owner, uint256 index) view returns(uint256)
func (_OwnerToken *OwnerTokenSession) TokenOfOwnerByIndex(owner common.Address, index *big.Int) (*big.Int, error) {
return _OwnerToken.Contract.TokenOfOwnerByIndex(&_OwnerToken.CallOpts, owner, index)
}
// TokenOfOwnerByIndex is a free data retrieval call binding the contract method 0x2f745c59.
//
// Solidity: function tokenOfOwnerByIndex(address owner, uint256 index) view returns(uint256)
func (_OwnerToken *OwnerTokenCallerSession) TokenOfOwnerByIndex(owner common.Address, index *big.Int) (*big.Int, error) {
return _OwnerToken.Contract.TokenOfOwnerByIndex(&_OwnerToken.CallOpts, owner, index)
}
// TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
//
// Solidity: function tokenURI(uint256 tokenId) view returns(string)
func (_OwnerToken *OwnerTokenCaller) TokenURI(opts *bind.CallOpts, tokenId *big.Int) (string, error) {
var out []interface{}
err := _OwnerToken.contract.Call(opts, &out, "tokenURI", tokenId)
if err != nil {
return *new(string), err
}
out0 := *abi.ConvertType(out[0], new(string)).(*string)
return out0, err
}
// TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
//
// Solidity: function tokenURI(uint256 tokenId) view returns(string)
func (_OwnerToken *OwnerTokenSession) TokenURI(tokenId *big.Int) (string, error) {
return _OwnerToken.Contract.TokenURI(&_OwnerToken.CallOpts, tokenId)
}
// TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
//
// Solidity: function tokenURI(uint256 tokenId) view returns(string)
func (_OwnerToken *OwnerTokenCallerSession) TokenURI(tokenId *big.Int) (string, error) {
return _OwnerToken.Contract.TokenURI(&_OwnerToken.CallOpts, tokenId)
}
// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
//
// Solidity: function totalSupply() view returns(uint256)
func (_OwnerToken *OwnerTokenCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
var out []interface{}
err := _OwnerToken.contract.Call(opts, &out, "totalSupply")
if err != nil {
return *new(*big.Int), err
}
out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
return out0, err
}
// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
//
// Solidity: function totalSupply() view returns(uint256)
func (_OwnerToken *OwnerTokenSession) TotalSupply() (*big.Int, error) {
return _OwnerToken.Contract.TotalSupply(&_OwnerToken.CallOpts)
}
// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
//
// Solidity: function totalSupply() view returns(uint256)
func (_OwnerToken *OwnerTokenCallerSession) TotalSupply() (*big.Int, error) {
return _OwnerToken.Contract.TotalSupply(&_OwnerToken.CallOpts)
}
// Transferable is a free data retrieval call binding the contract method 0x92ff0d31.
//
// Solidity: function transferable() view returns(bool)
func (_OwnerToken *OwnerTokenCaller) Transferable(opts *bind.CallOpts) (bool, error) {
var out []interface{}
err := _OwnerToken.contract.Call(opts, &out, "transferable")
if err != nil {
return *new(bool), err
}
out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
return out0, err
}
// Transferable is a free data retrieval call binding the contract method 0x92ff0d31.
//
// Solidity: function transferable() view returns(bool)
func (_OwnerToken *OwnerTokenSession) Transferable() (bool, error) {
return _OwnerToken.Contract.Transferable(&_OwnerToken.CallOpts)
}
// Transferable is a free data retrieval call binding the contract method 0x92ff0d31.
//
// Solidity: function transferable() view returns(bool)
func (_OwnerToken *OwnerTokenCallerSession) Transferable() (bool, error) {
return _OwnerToken.Contract.Transferable(&_OwnerToken.CallOpts)
}
// Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
//
// Solidity: function approve(address to, uint256 tokenId) returns()
func (_OwnerToken *OwnerTokenTransactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
return _OwnerToken.contract.Transact(opts, "approve", to, tokenId)
}
// Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
//
// Solidity: function approve(address to, uint256 tokenId) returns()
func (_OwnerToken *OwnerTokenSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
return _OwnerToken.Contract.Approve(&_OwnerToken.TransactOpts, to, tokenId)
}
// Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
//
// Solidity: function approve(address to, uint256 tokenId) returns()
func (_OwnerToken *OwnerTokenTransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
return _OwnerToken.Contract.Approve(&_OwnerToken.TransactOpts, to, tokenId)
}
// MintTo is a paid mutator transaction binding the contract method 0xce7c8b49.
//
// Solidity: function mintTo(address[] addresses) returns()
func (_OwnerToken *OwnerTokenTransactor) MintTo(opts *bind.TransactOpts, addresses []common.Address) (*types.Transaction, error) {
return _OwnerToken.contract.Transact(opts, "mintTo", addresses)
}
// MintTo is a paid mutator transaction binding the contract method 0xce7c8b49.
//
// Solidity: function mintTo(address[] addresses) returns()
func (_OwnerToken *OwnerTokenSession) MintTo(addresses []common.Address) (*types.Transaction, error) {
return _OwnerToken.Contract.MintTo(&_OwnerToken.TransactOpts, addresses)
}
// MintTo is a paid mutator transaction binding the contract method 0xce7c8b49.
//
// Solidity: function mintTo(address[] addresses) returns()
func (_OwnerToken *OwnerTokenTransactorSession) MintTo(addresses []common.Address) (*types.Transaction, error) {
return _OwnerToken.Contract.MintTo(&_OwnerToken.TransactOpts, addresses)
}
// RemoteBurn is a paid mutator transaction binding the contract method 0x4fb95e02.
//
// Solidity: function remoteBurn(uint256[] tokenIds) returns()
func (_OwnerToken *OwnerTokenTransactor) RemoteBurn(opts *bind.TransactOpts, tokenIds []*big.Int) (*types.Transaction, error) {
return _OwnerToken.contract.Transact(opts, "remoteBurn", tokenIds)
}
// RemoteBurn is a paid mutator transaction binding the contract method 0x4fb95e02.
//
// Solidity: function remoteBurn(uint256[] tokenIds) returns()
func (_OwnerToken *OwnerTokenSession) RemoteBurn(tokenIds []*big.Int) (*types.Transaction, error) {
return _OwnerToken.Contract.RemoteBurn(&_OwnerToken.TransactOpts, tokenIds)
}
// RemoteBurn is a paid mutator transaction binding the contract method 0x4fb95e02.
//
// Solidity: function remoteBurn(uint256[] tokenIds) returns()
func (_OwnerToken *OwnerTokenTransactorSession) RemoteBurn(tokenIds []*big.Int) (*types.Transaction, error) {
return _OwnerToken.Contract.RemoteBurn(&_OwnerToken.TransactOpts, tokenIds)
}
// SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
//
// Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
func (_OwnerToken *OwnerTokenTransactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
return _OwnerToken.contract.Transact(opts, "safeTransferFrom", from, to, tokenId)
}
// SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
//
// Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
func (_OwnerToken *OwnerTokenSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
return _OwnerToken.Contract.SafeTransferFrom(&_OwnerToken.TransactOpts, from, to, tokenId)
}
// SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
//
// Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
func (_OwnerToken *OwnerTokenTransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
return _OwnerToken.Contract.SafeTransferFrom(&_OwnerToken.TransactOpts, from, to, tokenId)
}
// SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
//
// Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns()
func (_OwnerToken *OwnerTokenTransactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
return _OwnerToken.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, data)
}
// SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
//
// Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns()
func (_OwnerToken *OwnerTokenSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
return _OwnerToken.Contract.SafeTransferFrom0(&_OwnerToken.TransactOpts, from, to, tokenId, data)
}
// SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
//
// Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns()
func (_OwnerToken *OwnerTokenTransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
return _OwnerToken.Contract.SafeTransferFrom0(&_OwnerToken.TransactOpts, from, to, tokenId, data)
}
// SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
//
// Solidity: function setApprovalForAll(address operator, bool approved) returns()
func (_OwnerToken *OwnerTokenTransactor) SetApprovalForAll(opts *bind.TransactOpts, operator common.Address, approved bool) (*types.Transaction, error) {
return _OwnerToken.contract.Transact(opts, "setApprovalForAll", operator, approved)
}
// SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
//
// Solidity: function setApprovalForAll(address operator, bool approved) returns()
func (_OwnerToken *OwnerTokenSession) SetApprovalForAll(operator common.Address, approved bool) (*types.Transaction, error) {
return _OwnerToken.Contract.SetApprovalForAll(&_OwnerToken.TransactOpts, operator, approved)
}
// SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
//
// Solidity: function setApprovalForAll(address operator, bool approved) returns()
func (_OwnerToken *OwnerTokenTransactorSession) SetApprovalForAll(operator common.Address, approved bool) (*types.Transaction, error) {
return _OwnerToken.Contract.SetApprovalForAll(&_OwnerToken.TransactOpts, operator, approved)
}
// SetMaxSupply is a paid mutator transaction binding the contract method 0x6f8b44b0.
//
// Solidity: function setMaxSupply(uint256 _newMaxSupply) returns()
func (_OwnerToken *OwnerTokenTransactor) SetMaxSupply(opts *bind.TransactOpts, _newMaxSupply *big.Int) (*types.Transaction, error) {
return _OwnerToken.contract.Transact(opts, "setMaxSupply", _newMaxSupply)
}
// SetMaxSupply is a paid mutator transaction binding the contract method 0x6f8b44b0.
//
// Solidity: function setMaxSupply(uint256 _newMaxSupply) returns()
func (_OwnerToken *OwnerTokenSession) SetMaxSupply(_newMaxSupply *big.Int) (*types.Transaction, error) {
return _OwnerToken.Contract.SetMaxSupply(&_OwnerToken.TransactOpts, _newMaxSupply)
}
// SetMaxSupply is a paid mutator transaction binding the contract method 0x6f8b44b0.
//
// Solidity: function setMaxSupply(uint256 _newMaxSupply) returns()
func (_OwnerToken *OwnerTokenTransactorSession) SetMaxSupply(_newMaxSupply *big.Int) (*types.Transaction, error) {
return _OwnerToken.Contract.SetMaxSupply(&_OwnerToken.TransactOpts, _newMaxSupply)
}
// SetSignerPublicKey is a paid mutator transaction binding the contract method 0x9404c91a.
//
// Solidity: function setSignerPublicKey(bytes _newSignerPublicKey) returns()
func (_OwnerToken *OwnerTokenTransactor) SetSignerPublicKey(opts *bind.TransactOpts, _newSignerPublicKey []byte) (*types.Transaction, error) {
return _OwnerToken.contract.Transact(opts, "setSignerPublicKey", _newSignerPublicKey)
}
// SetSignerPublicKey is a paid mutator transaction binding the contract method 0x9404c91a.
//
// Solidity: function setSignerPublicKey(bytes _newSignerPublicKey) returns()
func (_OwnerToken *OwnerTokenSession) SetSignerPublicKey(_newSignerPublicKey []byte) (*types.Transaction, error) {
return _OwnerToken.Contract.SetSignerPublicKey(&_OwnerToken.TransactOpts, _newSignerPublicKey)
}
// SetSignerPublicKey is a paid mutator transaction binding the contract method 0x9404c91a.
//
// Solidity: function setSignerPublicKey(bytes _newSignerPublicKey) returns()
func (_OwnerToken *OwnerTokenTransactorSession) SetSignerPublicKey(_newSignerPublicKey []byte) (*types.Transaction, error) {
return _OwnerToken.Contract.SetSignerPublicKey(&_OwnerToken.TransactOpts, _newSignerPublicKey)
}
// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
//
// Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
func (_OwnerToken *OwnerTokenTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
return _OwnerToken.contract.Transact(opts, "transferFrom", from, to, tokenId)
}
// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
//
// Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
func (_OwnerToken *OwnerTokenSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
return _OwnerToken.Contract.TransferFrom(&_OwnerToken.TransactOpts, from, to, tokenId)
}
// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
//
// Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
func (_OwnerToken *OwnerTokenTransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
return _OwnerToken.Contract.TransferFrom(&_OwnerToken.TransactOpts, from, to, tokenId)
}
// OwnerTokenApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the OwnerToken contract.
type OwnerTokenApprovalIterator struct {
Event *OwnerTokenApproval // Event containing the contract specifics and raw log
contract *bind.BoundContract // Generic contract to use for unpacking event data
event string // Event name to use for unpacking event data
logs chan types.Log // Log channel receiving the found contract events
sub ethereum.Subscription // Subscription for errors, completion and termination
done bool // Whether the subscription completed delivering logs
fail error // Occurred error to stop iteration
}
// Next advances the iterator to the subsequent event, returning whether there
// are any more events found. In case of a retrieval or parsing error, false is
// returned and Error() can be queried for the exact failure.
func (it *OwnerTokenApprovalIterator) Next() bool {
// If the iterator failed, stop iterating
if it.fail != nil {
return false
}
// If the iterator completed, deliver directly whatever's available
if it.done {
select {
case log := <-it.logs:
it.Event = new(OwnerTokenApproval)
if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
it.fail = err
return false
}
it.Event.Raw = log
return true
default:
return false
}
}
// Iterator still in progress, wait for either a data or an error event
select {
case log := <-it.logs:
it.Event = new(OwnerTokenApproval)
if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
it.fail = err
return false
}
it.Event.Raw = log
return true
case err := <-it.sub.Err():
it.done = true
it.fail = err
return it.Next()
}
}
// Error returns any retrieval or parsing error occurred during filtering.
func (it *OwnerTokenApprovalIterator) Error() error {
return it.fail
}
// Close terminates the iteration process, releasing any pending underlying
// resources.
func (it *OwnerTokenApprovalIterator) Close() error {
it.sub.Unsubscribe()
return nil
}
// OwnerTokenApproval represents a Approval event raised by the OwnerToken contract.
type OwnerTokenApproval struct {
Owner common.Address
Approved common.Address
TokenId *big.Int
Raw types.Log // Blockchain specific contextual infos
}
// FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
//
// Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
func (_OwnerToken *OwnerTokenFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*OwnerTokenApprovalIterator, error) {
var ownerRule []interface{}
for _, ownerItem := range owner {
ownerRule = append(ownerRule, ownerItem)
}
var approvedRule []interface{}
for _, approvedItem := range approved {
approvedRule = append(approvedRule, approvedItem)
}
var tokenIdRule []interface{}
for _, tokenIdItem := range tokenId {
tokenIdRule = append(tokenIdRule, tokenIdItem)
}
logs, sub, err := _OwnerToken.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
if err != nil {
return nil, err
}
return &OwnerTokenApprovalIterator{contract: _OwnerToken.contract, event: "Approval", logs: logs, sub: sub}, nil
}
// WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
//
// Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
func (_OwnerToken *OwnerTokenFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *OwnerTokenApproval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) {
var ownerRule []interface{}
for _, ownerItem := range owner {
ownerRule = append(ownerRule, ownerItem)
}
var approvedRule []interface{}
for _, approvedItem := range approved {
approvedRule = append(approvedRule, approvedItem)
}
var tokenIdRule []interface{}
for _, tokenIdItem := range tokenId {
tokenIdRule = append(tokenIdRule, tokenIdItem)
}
logs, sub, err := _OwnerToken.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
if err != nil {
return nil, err
}
return event.NewSubscription(func(quit <-chan struct{}) error {
defer sub.Unsubscribe()
for {
select {
case log := <-logs:
// New log arrived, parse the event and forward to the user
event := new(OwnerTokenApproval)
if err := _OwnerToken.contract.UnpackLog(event, "Approval", log); err != nil {
return err
}
event.Raw = log
select {
case sink <- event:
case err := <-sub.Err():
return err
case <-quit:
return nil
}
case err := <-sub.Err():
return err
case <-quit:
return nil
}
}
}), nil
}
// ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
//
// Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
func (_OwnerToken *OwnerTokenFilterer) ParseApproval(log types.Log) (*OwnerTokenApproval, error) {
event := new(OwnerTokenApproval)
if err := _OwnerToken.contract.UnpackLog(event, "Approval", log); err != nil {
return nil, err
}
event.Raw = log
return event, nil
}
// OwnerTokenApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the OwnerToken contract.
type OwnerTokenApprovalForAllIterator struct {
Event *OwnerTokenApprovalForAll // Event containing the contract specifics and raw log
contract *bind.BoundContract // Generic contract to use for unpacking event data
event string // Event name to use for unpacking event data
logs chan types.Log // Log channel receiving the found contract events
sub ethereum.Subscription // Subscription for errors, completion and termination
done bool // Whether the subscription completed delivering logs
fail error // Occurred error to stop iteration
}
// Next advances the iterator to the subsequent event, returning whether there
// are any more events found. In case of a retrieval or parsing error, false is
// returned and Error() can be queried for the exact failure.
func (it *OwnerTokenApprovalForAllIterator) Next() bool {
// If the iterator failed, stop iterating
if it.fail != nil {
return false
}
// If the iterator completed, deliver directly whatever's available
if it.done {
select {
case log := <-it.logs:
it.Event = new(OwnerTokenApprovalForAll)
if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
it.fail = err
return false
}
it.Event.Raw = log
return true
default:
return false
}
}
// Iterator still in progress, wait for either a data or an error event
select {
case log := <-it.logs:
it.Event = new(OwnerTokenApprovalForAll)
if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
it.fail = err
return false
}
it.Event.Raw = log
return true
case err := <-it.sub.Err():
it.done = true
it.fail = err
return it.Next()
}
}
// Error returns any retrieval or parsing error occurred during filtering.
func (it *OwnerTokenApprovalForAllIterator) Error() error {
return it.fail
}
// Close terminates the iteration process, releasing any pending underlying
// resources.
func (it *OwnerTokenApprovalForAllIterator) Close() error {
it.sub.Unsubscribe()
return nil
}
// OwnerTokenApprovalForAll represents a ApprovalForAll event raised by the OwnerToken contract.
type OwnerTokenApprovalForAll struct {
Owner common.Address
Operator common.Address
Approved bool
Raw types.Log // Blockchain specific contextual infos
}
// FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
//
// Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
func (_OwnerToken *OwnerTokenFilterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*OwnerTokenApprovalForAllIterator, error) {
var ownerRule []interface{}
for _, ownerItem := range owner {
ownerRule = append(ownerRule, ownerItem)
}
var operatorRule []interface{}
for _, operatorItem := range operator {
operatorRule = append(operatorRule, operatorItem)
}
logs, sub, err := _OwnerToken.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
if err != nil {
return nil, err
}
return &OwnerTokenApprovalForAllIterator{contract: _OwnerToken.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil
}
// WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
//
// Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
func (_OwnerToken *OwnerTokenFilterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *OwnerTokenApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) {
var ownerRule []interface{}
for _, ownerItem := range owner {
ownerRule = append(ownerRule, ownerItem)
}
var operatorRule []interface{}
for _, operatorItem := range operator {
operatorRule = append(operatorRule, operatorItem)
}
logs, sub, err := _OwnerToken.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
if err != nil {
return nil, err
}
return event.NewSubscription(func(quit <-chan struct{}) error {
defer sub.Unsubscribe()
for {
select {
case log := <-logs:
// New log arrived, parse the event and forward to the user
event := new(OwnerTokenApprovalForAll)
if err := _OwnerToken.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
return err
}
event.Raw = log
select {
case sink <- event:
case err := <-sub.Err():
return err
case <-quit:
return nil
}
case err := <-sub.Err():
return err
case <-quit:
return nil
}
}
}), nil
}
// ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
//
// Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
func (_OwnerToken *OwnerTokenFilterer) ParseApprovalForAll(log types.Log) (*OwnerTokenApprovalForAll, error) {
event := new(OwnerTokenApprovalForAll)
if err := _OwnerToken.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
return nil, err
}
event.Raw = log
return event, nil
}
// OwnerTokenMasterTokenCreatedIterator is returned from FilterMasterTokenCreated and is used to iterate over the raw logs and unpacked data for MasterTokenCreated events raised by the OwnerToken contract.
type OwnerTokenMasterTokenCreatedIterator struct {
Event *OwnerTokenMasterTokenCreated // Event containing the contract specifics and raw log
contract *bind.BoundContract // Generic contract to use for unpacking event data
event string // Event name to use for unpacking event data
logs chan types.Log // Log channel receiving the found contract events
sub ethereum.Subscription // Subscription for errors, completion and termination
done bool // Whether the subscription completed delivering logs
fail error // Occurred error to stop iteration
}
// Next advances the iterator to the subsequent event, returning whether there
// are any more events found. In case of a retrieval or parsing error, false is
// returned and Error() can be queried for the exact failure.
func (it *OwnerTokenMasterTokenCreatedIterator) Next() bool {
// If the iterator failed, stop iterating
if it.fail != nil {
return false
}
// If the iterator completed, deliver directly whatever's available
if it.done {
select {
case log := <-it.logs:
it.Event = new(OwnerTokenMasterTokenCreated)
if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
it.fail = err
return false
}
it.Event.Raw = log
return true
default:
return false
}
}
// Iterator still in progress, wait for either a data or an error event
select {
case log := <-it.logs:
it.Event = new(OwnerTokenMasterTokenCreated)
if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
it.fail = err
return false
}
it.Event.Raw = log
return true
case err := <-it.sub.Err():
it.done = true
it.fail = err
return it.Next()
}
}
// Error returns any retrieval or parsing error occurred during filtering.
func (it *OwnerTokenMasterTokenCreatedIterator) Error() error {
return it.fail
}
// Close terminates the iteration process, releasing any pending underlying
// resources.
func (it *OwnerTokenMasterTokenCreatedIterator) Close() error {
it.sub.Unsubscribe()
return nil
}
// OwnerTokenMasterTokenCreated represents a MasterTokenCreated event raised by the OwnerToken contract.
type OwnerTokenMasterTokenCreated struct {
MasterToken common.Address
Raw types.Log // Blockchain specific contextual infos
}
// FilterMasterTokenCreated is a free log retrieval operation binding the contract event 0x02a0dab88b41e2a6fa5a9b4d40c16209315d6158c6a42f30879c8df187132601.
//
// Solidity: event MasterTokenCreated(address masterToken)
func (_OwnerToken *OwnerTokenFilterer) FilterMasterTokenCreated(opts *bind.FilterOpts) (*OwnerTokenMasterTokenCreatedIterator, error) {
logs, sub, err := _OwnerToken.contract.FilterLogs(opts, "MasterTokenCreated")
if err != nil {
return nil, err
}
return &OwnerTokenMasterTokenCreatedIterator{contract: _OwnerToken.contract, event: "MasterTokenCreated", logs: logs, sub: sub}, nil
}
// WatchMasterTokenCreated is a free log subscription operation binding the contract event 0x02a0dab88b41e2a6fa5a9b4d40c16209315d6158c6a42f30879c8df187132601.
//
// Solidity: event MasterTokenCreated(address masterToken)
func (_OwnerToken *OwnerTokenFilterer) WatchMasterTokenCreated(opts *bind.WatchOpts, sink chan<- *OwnerTokenMasterTokenCreated) (event.Subscription, error) {
logs, sub, err := _OwnerToken.contract.WatchLogs(opts, "MasterTokenCreated")
if err != nil {
return nil, err
}
return event.NewSubscription(func(quit <-chan struct{}) error {
defer sub.Unsubscribe()
for {
select {
case log := <-logs:
// New log arrived, parse the event and forward to the user
event := new(OwnerTokenMasterTokenCreated)
if err := _OwnerToken.contract.UnpackLog(event, "MasterTokenCreated", log); err != nil {
return err
}
event.Raw = log
select {
case sink <- event:
case err := <-sub.Err():
return err
case <-quit:
return nil
}
case err := <-sub.Err():
return err
case <-quit:
return nil
}
}
}), nil
}
// ParseMasterTokenCreated is a log parse operation binding the contract event 0x02a0dab88b41e2a6fa5a9b4d40c16209315d6158c6a42f30879c8df187132601.
//
// Solidity: event MasterTokenCreated(address masterToken)
func (_OwnerToken *OwnerTokenFilterer) ParseMasterTokenCreated(log types.Log) (*OwnerTokenMasterTokenCreated, error) {
event := new(OwnerTokenMasterTokenCreated)
if err := _OwnerToken.contract.UnpackLog(event, "MasterTokenCreated", log); err != nil {
return nil, err
}
event.Raw = log
return event, nil
}
// OwnerTokenTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the OwnerToken contract.
type OwnerTokenTransferIterator struct {
Event *OwnerTokenTransfer // Event containing the contract specifics and raw log
contract *bind.BoundContract // Generic contract to use for unpacking event data
event string // Event name to use for unpacking event data
logs chan types.Log // Log channel receiving the found contract events
sub ethereum.Subscription // Subscription for errors, completion and termination
done bool // Whether the subscription completed delivering logs
fail error // Occurred error to stop iteration
}
// Next advances the iterator to the subsequent event, returning whether there
// are any more events found. In case of a retrieval or parsing error, false is
// returned and Error() can be queried for the exact failure.
func (it *OwnerTokenTransferIterator) Next() bool {
// If the iterator failed, stop iterating
if it.fail != nil {
return false
}
// If the iterator completed, deliver directly whatever's available
if it.done {
select {
case log := <-it.logs:
it.Event = new(OwnerTokenTransfer)
if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
it.fail = err
return false
}
it.Event.Raw = log
return true
default:
return false
}
}
// Iterator still in progress, wait for either a data or an error event
select {
case log := <-it.logs:
it.Event = new(OwnerTokenTransfer)
if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
it.fail = err
return false
}
it.Event.Raw = log
return true
case err := <-it.sub.Err():
it.done = true
it.fail = err
return it.Next()
}
}
// Error returns any retrieval or parsing error occurred during filtering.
func (it *OwnerTokenTransferIterator) Error() error {
return it.fail
}
// Close terminates the iteration process, releasing any pending underlying
// resources.
func (it *OwnerTokenTransferIterator) Close() error {
it.sub.Unsubscribe()
return nil
}
// OwnerTokenTransfer represents a Transfer event raised by the OwnerToken contract.
type OwnerTokenTransfer struct {
From common.Address
To common.Address
TokenId *big.Int
Raw types.Log // Blockchain specific contextual infos
}
// FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
//
// Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
func (_OwnerToken *OwnerTokenFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*OwnerTokenTransferIterator, error) {
var fromRule []interface{}
for _, fromItem := range from {
fromRule = append(fromRule, fromItem)
}
var toRule []interface{}
for _, toItem := range to {
toRule = append(toRule, toItem)
}
var tokenIdRule []interface{}
for _, tokenIdItem := range tokenId {
tokenIdRule = append(tokenIdRule, tokenIdItem)
}
logs, sub, err := _OwnerToken.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
if err != nil {
return nil, err
}
return &OwnerTokenTransferIterator{contract: _OwnerToken.contract, event: "Transfer", logs: logs, sub: sub}, nil
}
// WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
//
// Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
func (_OwnerToken *OwnerTokenFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *OwnerTokenTransfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) {
var fromRule []interface{}
for _, fromItem := range from {
fromRule = append(fromRule, fromItem)
}
var toRule []interface{}
for _, toItem := range to {
toRule = append(toRule, toItem)
}
var tokenIdRule []interface{}
for _, tokenIdItem := range tokenId {
tokenIdRule = append(tokenIdRule, tokenIdItem)
}
logs, sub, err := _OwnerToken.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
if err != nil {
return nil, err
}
return event.NewSubscription(func(quit <-chan struct{}) error {
defer sub.Unsubscribe()
for {
select {
case log := <-logs:
// New log arrived, parse the event and forward to the user
event := new(OwnerTokenTransfer)
if err := _OwnerToken.contract.UnpackLog(event, "Transfer", log); err != nil {
return err
}
event.Raw = log
select {
case sink <- event:
case err := <-sub.Err():
return err
case <-quit:
return nil
}
case err := <-sub.Err():
return err
case <-quit:
return nil
}
}
}), nil
}
// ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
//
// Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
func (_OwnerToken *OwnerTokenFilterer) ParseTransfer(log types.Log) (*OwnerTokenTransfer, error) {
event := new(OwnerTokenTransfer)
if err := _OwnerToken.contract.UnpackLog(event, "Transfer", log); err != nil {
return nil, err
}
event.Raw = log
return event, nil
}