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

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