github.com/status-im/status-go@v1.1.0/contracts/erc721/erc721.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 erc721
     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  // Erc721MetaData contains all meta data concerning the Erc721 contract.
    33  var Erc721MetaData = &bind.MetaData{
    34  	ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"ERC20name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"ERC20symbol_\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"ERC20amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"ERC20owneraddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"ancientnftname_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"ancientnftsymbol_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"babynftname_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"babynftsymbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseExtension\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseURI_\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id2\",\"type\":\"uint256\"}],\"name\":\"breed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id2\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id3\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"checkPause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"checkancientnftaddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"checkbabynftaddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"add\",\"type\":\"address\"}],\"name\":\"checkdragonnotbreeded\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"checkerc20address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"checkrewardbal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"checkrewardforancientbal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"checkrewardforbabybal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimreward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cost\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"maxMintAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_mintAmount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_newBaseExtension\",\"type\":\"string\"}],\"name\":\"setBaseExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_newBaseURI\",\"type\":\"string\"}],\"name\":\"setBaseURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newCost\",\"type\":\"uint256\"}],\"name\":\"setCost\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_newBaseURI\",\"type\":\"string\"}],\"name\":\"setbaseuriforancientnft\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_newBaseURI\",\"type\":\"string\"}],\"name\":\"setbaseuriforbabynft\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newmaxMintAmount\",\"type\":\"uint256\"}],\"name\":\"setmaxMintAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setmaxsupplyforbabynft\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"walletofNFT\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]",
    35  }
    36  
    37  // Erc721ABI is the input ABI used to generate the binding from.
    38  // Deprecated: Use Erc721MetaData.ABI instead.
    39  var Erc721ABI = Erc721MetaData.ABI
    40  
    41  // Erc721 is an auto generated Go binding around an Ethereum contract.
    42  type Erc721 struct {
    43  	Erc721Caller     // Read-only binding to the contract
    44  	Erc721Transactor // Write-only binding to the contract
    45  	Erc721Filterer   // Log filterer for contract events
    46  }
    47  
    48  // Erc721Caller is an auto generated read-only Go binding around an Ethereum contract.
    49  type Erc721Caller struct {
    50  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    51  }
    52  
    53  // Erc721Transactor is an auto generated write-only Go binding around an Ethereum contract.
    54  type Erc721Transactor struct {
    55  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    56  }
    57  
    58  // Erc721Filterer is an auto generated log filtering Go binding around an Ethereum contract events.
    59  type Erc721Filterer struct {
    60  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    61  }
    62  
    63  // Erc721Session is an auto generated Go binding around an Ethereum contract,
    64  // with pre-set call and transact options.
    65  type Erc721Session struct {
    66  	Contract     *Erc721           // Generic contract binding to set the session for
    67  	CallOpts     bind.CallOpts     // Call options to use throughout this session
    68  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
    69  }
    70  
    71  // Erc721CallerSession is an auto generated read-only Go binding around an Ethereum contract,
    72  // with pre-set call options.
    73  type Erc721CallerSession struct {
    74  	Contract *Erc721Caller // Generic contract caller binding to set the session for
    75  	CallOpts bind.CallOpts // Call options to use throughout this session
    76  }
    77  
    78  // Erc721TransactorSession is an auto generated write-only Go binding around an Ethereum contract,
    79  // with pre-set transact options.
    80  type Erc721TransactorSession struct {
    81  	Contract     *Erc721Transactor // Generic contract transactor binding to set the session for
    82  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
    83  }
    84  
    85  // Erc721Raw is an auto generated low-level Go binding around an Ethereum contract.
    86  type Erc721Raw struct {
    87  	Contract *Erc721 // Generic contract binding to access the raw methods on
    88  }
    89  
    90  // Erc721CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
    91  type Erc721CallerRaw struct {
    92  	Contract *Erc721Caller // Generic read-only contract binding to access the raw methods on
    93  }
    94  
    95  // Erc721TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
    96  type Erc721TransactorRaw struct {
    97  	Contract *Erc721Transactor // Generic write-only contract binding to access the raw methods on
    98  }
    99  
   100  // NewErc721 creates a new instance of Erc721, bound to a specific deployed contract.
   101  func NewErc721(address common.Address, backend bind.ContractBackend) (*Erc721, error) {
   102  	contract, err := bindErc721(address, backend, backend, backend)
   103  	if err != nil {
   104  		return nil, err
   105  	}
   106  	return &Erc721{Erc721Caller: Erc721Caller{contract: contract}, Erc721Transactor: Erc721Transactor{contract: contract}, Erc721Filterer: Erc721Filterer{contract: contract}}, nil
   107  }
   108  
   109  // NewErc721Caller creates a new read-only instance of Erc721, bound to a specific deployed contract.
   110  func NewErc721Caller(address common.Address, caller bind.ContractCaller) (*Erc721Caller, error) {
   111  	contract, err := bindErc721(address, caller, nil, nil)
   112  	if err != nil {
   113  		return nil, err
   114  	}
   115  	return &Erc721Caller{contract: contract}, nil
   116  }
   117  
   118  // NewErc721Transactor creates a new write-only instance of Erc721, bound to a specific deployed contract.
   119  func NewErc721Transactor(address common.Address, transactor bind.ContractTransactor) (*Erc721Transactor, error) {
   120  	contract, err := bindErc721(address, nil, transactor, nil)
   121  	if err != nil {
   122  		return nil, err
   123  	}
   124  	return &Erc721Transactor{contract: contract}, nil
   125  }
   126  
   127  // NewErc721Filterer creates a new log filterer instance of Erc721, bound to a specific deployed contract.
   128  func NewErc721Filterer(address common.Address, filterer bind.ContractFilterer) (*Erc721Filterer, error) {
   129  	contract, err := bindErc721(address, nil, nil, filterer)
   130  	if err != nil {
   131  		return nil, err
   132  	}
   133  	return &Erc721Filterer{contract: contract}, nil
   134  }
   135  
   136  // bindErc721 binds a generic wrapper to an already deployed contract.
   137  func bindErc721(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   138  	parsed, err := Erc721MetaData.GetAbi()
   139  	if err != nil {
   140  		return nil, err
   141  	}
   142  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
   143  }
   144  
   145  // Call invokes the (constant) contract method with params as input values and
   146  // sets the output to result. The result type might be a single field for simple
   147  // returns, a slice of interfaces for anonymous returns and a struct for named
   148  // returns.
   149  func (_Erc721 *Erc721Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   150  	return _Erc721.Contract.Erc721Caller.contract.Call(opts, result, method, params...)
   151  }
   152  
   153  // Transfer initiates a plain transaction to move funds to the contract, calling
   154  // its default method if one is available.
   155  func (_Erc721 *Erc721Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   156  	return _Erc721.Contract.Erc721Transactor.contract.Transfer(opts)
   157  }
   158  
   159  // Transact invokes the (paid) contract method with params as input values.
   160  func (_Erc721 *Erc721Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   161  	return _Erc721.Contract.Erc721Transactor.contract.Transact(opts, method, params...)
   162  }
   163  
   164  // Call invokes the (constant) contract method with params as input values and
   165  // sets the output to result. The result type might be a single field for simple
   166  // returns, a slice of interfaces for anonymous returns and a struct for named
   167  // returns.
   168  func (_Erc721 *Erc721CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   169  	return _Erc721.Contract.contract.Call(opts, result, method, params...)
   170  }
   171  
   172  // Transfer initiates a plain transaction to move funds to the contract, calling
   173  // its default method if one is available.
   174  func (_Erc721 *Erc721TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   175  	return _Erc721.Contract.contract.Transfer(opts)
   176  }
   177  
   178  // Transact invokes the (paid) contract method with params as input values.
   179  func (_Erc721 *Erc721TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   180  	return _Erc721.Contract.contract.Transact(opts, method, params...)
   181  }
   182  
   183  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
   184  //
   185  // Solidity: function balanceOf(address owner) view returns(uint256)
   186  func (_Erc721 *Erc721Caller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) {
   187  	var out []interface{}
   188  	err := _Erc721.contract.Call(opts, &out, "balanceOf", owner)
   189  
   190  	if err != nil {
   191  		return *new(*big.Int), err
   192  	}
   193  
   194  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   195  
   196  	return out0, err
   197  
   198  }
   199  
   200  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
   201  //
   202  // Solidity: function balanceOf(address owner) view returns(uint256)
   203  func (_Erc721 *Erc721Session) BalanceOf(owner common.Address) (*big.Int, error) {
   204  	return _Erc721.Contract.BalanceOf(&_Erc721.CallOpts, owner)
   205  }
   206  
   207  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
   208  //
   209  // Solidity: function balanceOf(address owner) view returns(uint256)
   210  func (_Erc721 *Erc721CallerSession) BalanceOf(owner common.Address) (*big.Int, error) {
   211  	return _Erc721.Contract.BalanceOf(&_Erc721.CallOpts, owner)
   212  }
   213  
   214  // BaseExtension is a free data retrieval call binding the contract method 0xc6682862.
   215  //
   216  // Solidity: function baseExtension() view returns(string)
   217  func (_Erc721 *Erc721Caller) BaseExtension(opts *bind.CallOpts) (string, error) {
   218  	var out []interface{}
   219  	err := _Erc721.contract.Call(opts, &out, "baseExtension")
   220  
   221  	if err != nil {
   222  		return *new(string), err
   223  	}
   224  
   225  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   226  
   227  	return out0, err
   228  
   229  }
   230  
   231  // BaseExtension is a free data retrieval call binding the contract method 0xc6682862.
   232  //
   233  // Solidity: function baseExtension() view returns(string)
   234  func (_Erc721 *Erc721Session) BaseExtension() (string, error) {
   235  	return _Erc721.Contract.BaseExtension(&_Erc721.CallOpts)
   236  }
   237  
   238  // BaseExtension is a free data retrieval call binding the contract method 0xc6682862.
   239  //
   240  // Solidity: function baseExtension() view returns(string)
   241  func (_Erc721 *Erc721CallerSession) BaseExtension() (string, error) {
   242  	return _Erc721.Contract.BaseExtension(&_Erc721.CallOpts)
   243  }
   244  
   245  // BaseURI is a free data retrieval call binding the contract method 0xf259a29e.
   246  //
   247  // Solidity: function baseURI_() view returns(string)
   248  func (_Erc721 *Erc721Caller) BaseURI(opts *bind.CallOpts) (string, error) {
   249  	var out []interface{}
   250  	err := _Erc721.contract.Call(opts, &out, "baseURI_")
   251  
   252  	if err != nil {
   253  		return *new(string), err
   254  	}
   255  
   256  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   257  
   258  	return out0, err
   259  
   260  }
   261  
   262  // BaseURI is a free data retrieval call binding the contract method 0xf259a29e.
   263  //
   264  // Solidity: function baseURI_() view returns(string)
   265  func (_Erc721 *Erc721Session) BaseURI() (string, error) {
   266  	return _Erc721.Contract.BaseURI(&_Erc721.CallOpts)
   267  }
   268  
   269  // BaseURI is a free data retrieval call binding the contract method 0xf259a29e.
   270  //
   271  // Solidity: function baseURI_() view returns(string)
   272  func (_Erc721 *Erc721CallerSession) BaseURI() (string, error) {
   273  	return _Erc721.Contract.BaseURI(&_Erc721.CallOpts)
   274  }
   275  
   276  // CheckPause is a free data retrieval call binding the contract method 0xa0b9f0e1.
   277  //
   278  // Solidity: function checkPause() view returns(bool)
   279  func (_Erc721 *Erc721Caller) CheckPause(opts *bind.CallOpts) (bool, error) {
   280  	var out []interface{}
   281  	err := _Erc721.contract.Call(opts, &out, "checkPause")
   282  
   283  	if err != nil {
   284  		return *new(bool), err
   285  	}
   286  
   287  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   288  
   289  	return out0, err
   290  
   291  }
   292  
   293  // CheckPause is a free data retrieval call binding the contract method 0xa0b9f0e1.
   294  //
   295  // Solidity: function checkPause() view returns(bool)
   296  func (_Erc721 *Erc721Session) CheckPause() (bool, error) {
   297  	return _Erc721.Contract.CheckPause(&_Erc721.CallOpts)
   298  }
   299  
   300  // CheckPause is a free data retrieval call binding the contract method 0xa0b9f0e1.
   301  //
   302  // Solidity: function checkPause() view returns(bool)
   303  func (_Erc721 *Erc721CallerSession) CheckPause() (bool, error) {
   304  	return _Erc721.Contract.CheckPause(&_Erc721.CallOpts)
   305  }
   306  
   307  // Checkancientnftaddress is a free data retrieval call binding the contract method 0xe2d358ac.
   308  //
   309  // Solidity: function checkancientnftaddress() view returns(address)
   310  func (_Erc721 *Erc721Caller) Checkancientnftaddress(opts *bind.CallOpts) (common.Address, error) {
   311  	var out []interface{}
   312  	err := _Erc721.contract.Call(opts, &out, "checkancientnftaddress")
   313  
   314  	if err != nil {
   315  		return *new(common.Address), err
   316  	}
   317  
   318  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   319  
   320  	return out0, err
   321  
   322  }
   323  
   324  // Checkancientnftaddress is a free data retrieval call binding the contract method 0xe2d358ac.
   325  //
   326  // Solidity: function checkancientnftaddress() view returns(address)
   327  func (_Erc721 *Erc721Session) Checkancientnftaddress() (common.Address, error) {
   328  	return _Erc721.Contract.Checkancientnftaddress(&_Erc721.CallOpts)
   329  }
   330  
   331  // Checkancientnftaddress is a free data retrieval call binding the contract method 0xe2d358ac.
   332  //
   333  // Solidity: function checkancientnftaddress() view returns(address)
   334  func (_Erc721 *Erc721CallerSession) Checkancientnftaddress() (common.Address, error) {
   335  	return _Erc721.Contract.Checkancientnftaddress(&_Erc721.CallOpts)
   336  }
   337  
   338  // Checkbabynftaddress is a free data retrieval call binding the contract method 0x374fdb87.
   339  //
   340  // Solidity: function checkbabynftaddress() view returns(address)
   341  func (_Erc721 *Erc721Caller) Checkbabynftaddress(opts *bind.CallOpts) (common.Address, error) {
   342  	var out []interface{}
   343  	err := _Erc721.contract.Call(opts, &out, "checkbabynftaddress")
   344  
   345  	if err != nil {
   346  		return *new(common.Address), err
   347  	}
   348  
   349  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   350  
   351  	return out0, err
   352  
   353  }
   354  
   355  // Checkbabynftaddress is a free data retrieval call binding the contract method 0x374fdb87.
   356  //
   357  // Solidity: function checkbabynftaddress() view returns(address)
   358  func (_Erc721 *Erc721Session) Checkbabynftaddress() (common.Address, error) {
   359  	return _Erc721.Contract.Checkbabynftaddress(&_Erc721.CallOpts)
   360  }
   361  
   362  // Checkbabynftaddress is a free data retrieval call binding the contract method 0x374fdb87.
   363  //
   364  // Solidity: function checkbabynftaddress() view returns(address)
   365  func (_Erc721 *Erc721CallerSession) Checkbabynftaddress() (common.Address, error) {
   366  	return _Erc721.Contract.Checkbabynftaddress(&_Erc721.CallOpts)
   367  }
   368  
   369  // Checkdragonnotbreeded is a free data retrieval call binding the contract method 0xf6368b83.
   370  //
   371  // Solidity: function checkdragonnotbreeded(address add) view returns(uint256[])
   372  func (_Erc721 *Erc721Caller) Checkdragonnotbreeded(opts *bind.CallOpts, add common.Address) ([]*big.Int, error) {
   373  	var out []interface{}
   374  	err := _Erc721.contract.Call(opts, &out, "checkdragonnotbreeded", add)
   375  
   376  	if err != nil {
   377  		return *new([]*big.Int), err
   378  	}
   379  
   380  	out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int)
   381  
   382  	return out0, err
   383  
   384  }
   385  
   386  // Checkdragonnotbreeded is a free data retrieval call binding the contract method 0xf6368b83.
   387  //
   388  // Solidity: function checkdragonnotbreeded(address add) view returns(uint256[])
   389  func (_Erc721 *Erc721Session) Checkdragonnotbreeded(add common.Address) ([]*big.Int, error) {
   390  	return _Erc721.Contract.Checkdragonnotbreeded(&_Erc721.CallOpts, add)
   391  }
   392  
   393  // Checkdragonnotbreeded is a free data retrieval call binding the contract method 0xf6368b83.
   394  //
   395  // Solidity: function checkdragonnotbreeded(address add) view returns(uint256[])
   396  func (_Erc721 *Erc721CallerSession) Checkdragonnotbreeded(add common.Address) ([]*big.Int, error) {
   397  	return _Erc721.Contract.Checkdragonnotbreeded(&_Erc721.CallOpts, add)
   398  }
   399  
   400  // Checkerc20address is a free data retrieval call binding the contract method 0xbe597c3e.
   401  //
   402  // Solidity: function checkerc20address() view returns(address)
   403  func (_Erc721 *Erc721Caller) Checkerc20address(opts *bind.CallOpts) (common.Address, error) {
   404  	var out []interface{}
   405  	err := _Erc721.contract.Call(opts, &out, "checkerc20address")
   406  
   407  	if err != nil {
   408  		return *new(common.Address), err
   409  	}
   410  
   411  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   412  
   413  	return out0, err
   414  
   415  }
   416  
   417  // Checkerc20address is a free data retrieval call binding the contract method 0xbe597c3e.
   418  //
   419  // Solidity: function checkerc20address() view returns(address)
   420  func (_Erc721 *Erc721Session) Checkerc20address() (common.Address, error) {
   421  	return _Erc721.Contract.Checkerc20address(&_Erc721.CallOpts)
   422  }
   423  
   424  // Checkerc20address is a free data retrieval call binding the contract method 0xbe597c3e.
   425  //
   426  // Solidity: function checkerc20address() view returns(address)
   427  func (_Erc721 *Erc721CallerSession) Checkerc20address() (common.Address, error) {
   428  	return _Erc721.Contract.Checkerc20address(&_Erc721.CallOpts)
   429  }
   430  
   431  // Checkrewardbal is a free data retrieval call binding the contract method 0x4e157569.
   432  //
   433  // Solidity: function checkrewardbal() view returns(uint256)
   434  func (_Erc721 *Erc721Caller) Checkrewardbal(opts *bind.CallOpts) (*big.Int, error) {
   435  	var out []interface{}
   436  	err := _Erc721.contract.Call(opts, &out, "checkrewardbal")
   437  
   438  	if err != nil {
   439  		return *new(*big.Int), err
   440  	}
   441  
   442  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   443  
   444  	return out0, err
   445  
   446  }
   447  
   448  // Checkrewardbal is a free data retrieval call binding the contract method 0x4e157569.
   449  //
   450  // Solidity: function checkrewardbal() view returns(uint256)
   451  func (_Erc721 *Erc721Session) Checkrewardbal() (*big.Int, error) {
   452  	return _Erc721.Contract.Checkrewardbal(&_Erc721.CallOpts)
   453  }
   454  
   455  // Checkrewardbal is a free data retrieval call binding the contract method 0x4e157569.
   456  //
   457  // Solidity: function checkrewardbal() view returns(uint256)
   458  func (_Erc721 *Erc721CallerSession) Checkrewardbal() (*big.Int, error) {
   459  	return _Erc721.Contract.Checkrewardbal(&_Erc721.CallOpts)
   460  }
   461  
   462  // Checkrewardforancientbal is a free data retrieval call binding the contract method 0x8894038d.
   463  //
   464  // Solidity: function checkrewardforancientbal() view returns(uint256)
   465  func (_Erc721 *Erc721Caller) Checkrewardforancientbal(opts *bind.CallOpts) (*big.Int, error) {
   466  	var out []interface{}
   467  	err := _Erc721.contract.Call(opts, &out, "checkrewardforancientbal")
   468  
   469  	if err != nil {
   470  		return *new(*big.Int), err
   471  	}
   472  
   473  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   474  
   475  	return out0, err
   476  
   477  }
   478  
   479  // Checkrewardforancientbal is a free data retrieval call binding the contract method 0x8894038d.
   480  //
   481  // Solidity: function checkrewardforancientbal() view returns(uint256)
   482  func (_Erc721 *Erc721Session) Checkrewardforancientbal() (*big.Int, error) {
   483  	return _Erc721.Contract.Checkrewardforancientbal(&_Erc721.CallOpts)
   484  }
   485  
   486  // Checkrewardforancientbal is a free data retrieval call binding the contract method 0x8894038d.
   487  //
   488  // Solidity: function checkrewardforancientbal() view returns(uint256)
   489  func (_Erc721 *Erc721CallerSession) Checkrewardforancientbal() (*big.Int, error) {
   490  	return _Erc721.Contract.Checkrewardforancientbal(&_Erc721.CallOpts)
   491  }
   492  
   493  // Checkrewardforbabybal is a free data retrieval call binding the contract method 0x73508aec.
   494  //
   495  // Solidity: function checkrewardforbabybal() view returns(uint256)
   496  func (_Erc721 *Erc721Caller) Checkrewardforbabybal(opts *bind.CallOpts) (*big.Int, error) {
   497  	var out []interface{}
   498  	err := _Erc721.contract.Call(opts, &out, "checkrewardforbabybal")
   499  
   500  	if err != nil {
   501  		return *new(*big.Int), err
   502  	}
   503  
   504  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   505  
   506  	return out0, err
   507  
   508  }
   509  
   510  // Checkrewardforbabybal is a free data retrieval call binding the contract method 0x73508aec.
   511  //
   512  // Solidity: function checkrewardforbabybal() view returns(uint256)
   513  func (_Erc721 *Erc721Session) Checkrewardforbabybal() (*big.Int, error) {
   514  	return _Erc721.Contract.Checkrewardforbabybal(&_Erc721.CallOpts)
   515  }
   516  
   517  // Checkrewardforbabybal is a free data retrieval call binding the contract method 0x73508aec.
   518  //
   519  // Solidity: function checkrewardforbabybal() view returns(uint256)
   520  func (_Erc721 *Erc721CallerSession) Checkrewardforbabybal() (*big.Int, error) {
   521  	return _Erc721.Contract.Checkrewardforbabybal(&_Erc721.CallOpts)
   522  }
   523  
   524  // Cost is a free data retrieval call binding the contract method 0x13faede6.
   525  //
   526  // Solidity: function cost() view returns(uint256)
   527  func (_Erc721 *Erc721Caller) Cost(opts *bind.CallOpts) (*big.Int, error) {
   528  	var out []interface{}
   529  	err := _Erc721.contract.Call(opts, &out, "cost")
   530  
   531  	if err != nil {
   532  		return *new(*big.Int), err
   533  	}
   534  
   535  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   536  
   537  	return out0, err
   538  
   539  }
   540  
   541  // Cost is a free data retrieval call binding the contract method 0x13faede6.
   542  //
   543  // Solidity: function cost() view returns(uint256)
   544  func (_Erc721 *Erc721Session) Cost() (*big.Int, error) {
   545  	return _Erc721.Contract.Cost(&_Erc721.CallOpts)
   546  }
   547  
   548  // Cost is a free data retrieval call binding the contract method 0x13faede6.
   549  //
   550  // Solidity: function cost() view returns(uint256)
   551  func (_Erc721 *Erc721CallerSession) Cost() (*big.Int, error) {
   552  	return _Erc721.Contract.Cost(&_Erc721.CallOpts)
   553  }
   554  
   555  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
   556  //
   557  // Solidity: function getApproved(uint256 tokenId) view returns(address)
   558  func (_Erc721 *Erc721Caller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
   559  	var out []interface{}
   560  	err := _Erc721.contract.Call(opts, &out, "getApproved", tokenId)
   561  
   562  	if err != nil {
   563  		return *new(common.Address), err
   564  	}
   565  
   566  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   567  
   568  	return out0, err
   569  
   570  }
   571  
   572  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
   573  //
   574  // Solidity: function getApproved(uint256 tokenId) view returns(address)
   575  func (_Erc721 *Erc721Session) GetApproved(tokenId *big.Int) (common.Address, error) {
   576  	return _Erc721.Contract.GetApproved(&_Erc721.CallOpts, tokenId)
   577  }
   578  
   579  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
   580  //
   581  // Solidity: function getApproved(uint256 tokenId) view returns(address)
   582  func (_Erc721 *Erc721CallerSession) GetApproved(tokenId *big.Int) (common.Address, error) {
   583  	return _Erc721.Contract.GetApproved(&_Erc721.CallOpts, tokenId)
   584  }
   585  
   586  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
   587  //
   588  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
   589  func (_Erc721 *Erc721Caller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) {
   590  	var out []interface{}
   591  	err := _Erc721.contract.Call(opts, &out, "isApprovedForAll", owner, operator)
   592  
   593  	if err != nil {
   594  		return *new(bool), err
   595  	}
   596  
   597  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   598  
   599  	return out0, err
   600  
   601  }
   602  
   603  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
   604  //
   605  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
   606  func (_Erc721 *Erc721Session) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
   607  	return _Erc721.Contract.IsApprovedForAll(&_Erc721.CallOpts, owner, operator)
   608  }
   609  
   610  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
   611  //
   612  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
   613  func (_Erc721 *Erc721CallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
   614  	return _Erc721.Contract.IsApprovedForAll(&_Erc721.CallOpts, owner, operator)
   615  }
   616  
   617  // MaxMintAmount is a free data retrieval call binding the contract method 0x239c70ae.
   618  //
   619  // Solidity: function maxMintAmount() view returns(uint256)
   620  func (_Erc721 *Erc721Caller) MaxMintAmount(opts *bind.CallOpts) (*big.Int, error) {
   621  	var out []interface{}
   622  	err := _Erc721.contract.Call(opts, &out, "maxMintAmount")
   623  
   624  	if err != nil {
   625  		return *new(*big.Int), err
   626  	}
   627  
   628  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   629  
   630  	return out0, err
   631  
   632  }
   633  
   634  // MaxMintAmount is a free data retrieval call binding the contract method 0x239c70ae.
   635  //
   636  // Solidity: function maxMintAmount() view returns(uint256)
   637  func (_Erc721 *Erc721Session) MaxMintAmount() (*big.Int, error) {
   638  	return _Erc721.Contract.MaxMintAmount(&_Erc721.CallOpts)
   639  }
   640  
   641  // MaxMintAmount is a free data retrieval call binding the contract method 0x239c70ae.
   642  //
   643  // Solidity: function maxMintAmount() view returns(uint256)
   644  func (_Erc721 *Erc721CallerSession) MaxMintAmount() (*big.Int, error) {
   645  	return _Erc721.Contract.MaxMintAmount(&_Erc721.CallOpts)
   646  }
   647  
   648  // MaxSupply is a free data retrieval call binding the contract method 0xd5abeb01.
   649  //
   650  // Solidity: function maxSupply() view returns(uint256)
   651  func (_Erc721 *Erc721Caller) MaxSupply(opts *bind.CallOpts) (*big.Int, error) {
   652  	var out []interface{}
   653  	err := _Erc721.contract.Call(opts, &out, "maxSupply")
   654  
   655  	if err != nil {
   656  		return *new(*big.Int), err
   657  	}
   658  
   659  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   660  
   661  	return out0, err
   662  
   663  }
   664  
   665  // MaxSupply is a free data retrieval call binding the contract method 0xd5abeb01.
   666  //
   667  // Solidity: function maxSupply() view returns(uint256)
   668  func (_Erc721 *Erc721Session) MaxSupply() (*big.Int, error) {
   669  	return _Erc721.Contract.MaxSupply(&_Erc721.CallOpts)
   670  }
   671  
   672  // MaxSupply is a free data retrieval call binding the contract method 0xd5abeb01.
   673  //
   674  // Solidity: function maxSupply() view returns(uint256)
   675  func (_Erc721 *Erc721CallerSession) MaxSupply() (*big.Int, error) {
   676  	return _Erc721.Contract.MaxSupply(&_Erc721.CallOpts)
   677  }
   678  
   679  // Name is a free data retrieval call binding the contract method 0x06fdde03.
   680  //
   681  // Solidity: function name() view returns(string)
   682  func (_Erc721 *Erc721Caller) Name(opts *bind.CallOpts) (string, error) {
   683  	var out []interface{}
   684  	err := _Erc721.contract.Call(opts, &out, "name")
   685  
   686  	if err != nil {
   687  		return *new(string), err
   688  	}
   689  
   690  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   691  
   692  	return out0, err
   693  
   694  }
   695  
   696  // Name is a free data retrieval call binding the contract method 0x06fdde03.
   697  //
   698  // Solidity: function name() view returns(string)
   699  func (_Erc721 *Erc721Session) Name() (string, error) {
   700  	return _Erc721.Contract.Name(&_Erc721.CallOpts)
   701  }
   702  
   703  // Name is a free data retrieval call binding the contract method 0x06fdde03.
   704  //
   705  // Solidity: function name() view returns(string)
   706  func (_Erc721 *Erc721CallerSession) Name() (string, error) {
   707  	return _Erc721.Contract.Name(&_Erc721.CallOpts)
   708  }
   709  
   710  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   711  //
   712  // Solidity: function owner() view returns(address)
   713  func (_Erc721 *Erc721Caller) Owner(opts *bind.CallOpts) (common.Address, error) {
   714  	var out []interface{}
   715  	err := _Erc721.contract.Call(opts, &out, "owner")
   716  
   717  	if err != nil {
   718  		return *new(common.Address), err
   719  	}
   720  
   721  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   722  
   723  	return out0, err
   724  
   725  }
   726  
   727  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   728  //
   729  // Solidity: function owner() view returns(address)
   730  func (_Erc721 *Erc721Session) Owner() (common.Address, error) {
   731  	return _Erc721.Contract.Owner(&_Erc721.CallOpts)
   732  }
   733  
   734  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   735  //
   736  // Solidity: function owner() view returns(address)
   737  func (_Erc721 *Erc721CallerSession) Owner() (common.Address, error) {
   738  	return _Erc721.Contract.Owner(&_Erc721.CallOpts)
   739  }
   740  
   741  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
   742  //
   743  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
   744  func (_Erc721 *Erc721Caller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
   745  	var out []interface{}
   746  	err := _Erc721.contract.Call(opts, &out, "ownerOf", tokenId)
   747  
   748  	if err != nil {
   749  		return *new(common.Address), err
   750  	}
   751  
   752  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   753  
   754  	return out0, err
   755  
   756  }
   757  
   758  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
   759  //
   760  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
   761  func (_Erc721 *Erc721Session) OwnerOf(tokenId *big.Int) (common.Address, error) {
   762  	return _Erc721.Contract.OwnerOf(&_Erc721.CallOpts, tokenId)
   763  }
   764  
   765  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
   766  //
   767  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
   768  func (_Erc721 *Erc721CallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
   769  	return _Erc721.Contract.OwnerOf(&_Erc721.CallOpts, tokenId)
   770  }
   771  
   772  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
   773  //
   774  // Solidity: function paused() view returns(bool)
   775  func (_Erc721 *Erc721Caller) Paused(opts *bind.CallOpts) (bool, error) {
   776  	var out []interface{}
   777  	err := _Erc721.contract.Call(opts, &out, "paused")
   778  
   779  	if err != nil {
   780  		return *new(bool), err
   781  	}
   782  
   783  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   784  
   785  	return out0, err
   786  
   787  }
   788  
   789  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
   790  //
   791  // Solidity: function paused() view returns(bool)
   792  func (_Erc721 *Erc721Session) Paused() (bool, error) {
   793  	return _Erc721.Contract.Paused(&_Erc721.CallOpts)
   794  }
   795  
   796  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
   797  //
   798  // Solidity: function paused() view returns(bool)
   799  func (_Erc721 *Erc721CallerSession) Paused() (bool, error) {
   800  	return _Erc721.Contract.Paused(&_Erc721.CallOpts)
   801  }
   802  
   803  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
   804  //
   805  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
   806  func (_Erc721 *Erc721Caller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
   807  	var out []interface{}
   808  	err := _Erc721.contract.Call(opts, &out, "supportsInterface", interfaceId)
   809  
   810  	if err != nil {
   811  		return *new(bool), err
   812  	}
   813  
   814  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   815  
   816  	return out0, err
   817  
   818  }
   819  
   820  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
   821  //
   822  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
   823  func (_Erc721 *Erc721Session) SupportsInterface(interfaceId [4]byte) (bool, error) {
   824  	return _Erc721.Contract.SupportsInterface(&_Erc721.CallOpts, interfaceId)
   825  }
   826  
   827  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
   828  //
   829  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
   830  func (_Erc721 *Erc721CallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
   831  	return _Erc721.Contract.SupportsInterface(&_Erc721.CallOpts, interfaceId)
   832  }
   833  
   834  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
   835  //
   836  // Solidity: function symbol() view returns(string)
   837  func (_Erc721 *Erc721Caller) Symbol(opts *bind.CallOpts) (string, error) {
   838  	var out []interface{}
   839  	err := _Erc721.contract.Call(opts, &out, "symbol")
   840  
   841  	if err != nil {
   842  		return *new(string), err
   843  	}
   844  
   845  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   846  
   847  	return out0, err
   848  
   849  }
   850  
   851  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
   852  //
   853  // Solidity: function symbol() view returns(string)
   854  func (_Erc721 *Erc721Session) Symbol() (string, error) {
   855  	return _Erc721.Contract.Symbol(&_Erc721.CallOpts)
   856  }
   857  
   858  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
   859  //
   860  // Solidity: function symbol() view returns(string)
   861  func (_Erc721 *Erc721CallerSession) Symbol() (string, error) {
   862  	return _Erc721.Contract.Symbol(&_Erc721.CallOpts)
   863  }
   864  
   865  // TokenByIndex is a free data retrieval call binding the contract method 0x4f6ccce7.
   866  //
   867  // Solidity: function tokenByIndex(uint256 index) view returns(uint256)
   868  func (_Erc721 *Erc721Caller) TokenByIndex(opts *bind.CallOpts, index *big.Int) (*big.Int, error) {
   869  	var out []interface{}
   870  	err := _Erc721.contract.Call(opts, &out, "tokenByIndex", index)
   871  
   872  	if err != nil {
   873  		return *new(*big.Int), err
   874  	}
   875  
   876  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   877  
   878  	return out0, err
   879  
   880  }
   881  
   882  // TokenByIndex is a free data retrieval call binding the contract method 0x4f6ccce7.
   883  //
   884  // Solidity: function tokenByIndex(uint256 index) view returns(uint256)
   885  func (_Erc721 *Erc721Session) TokenByIndex(index *big.Int) (*big.Int, error) {
   886  	return _Erc721.Contract.TokenByIndex(&_Erc721.CallOpts, index)
   887  }
   888  
   889  // TokenByIndex is a free data retrieval call binding the contract method 0x4f6ccce7.
   890  //
   891  // Solidity: function tokenByIndex(uint256 index) view returns(uint256)
   892  func (_Erc721 *Erc721CallerSession) TokenByIndex(index *big.Int) (*big.Int, error) {
   893  	return _Erc721.Contract.TokenByIndex(&_Erc721.CallOpts, index)
   894  }
   895  
   896  // TokenOfOwnerByIndex is a free data retrieval call binding the contract method 0x2f745c59.
   897  //
   898  // Solidity: function tokenOfOwnerByIndex(address owner, uint256 index) view returns(uint256)
   899  func (_Erc721 *Erc721Caller) TokenOfOwnerByIndex(opts *bind.CallOpts, owner common.Address, index *big.Int) (*big.Int, error) {
   900  	var out []interface{}
   901  	err := _Erc721.contract.Call(opts, &out, "tokenOfOwnerByIndex", owner, index)
   902  
   903  	if err != nil {
   904  		return *new(*big.Int), err
   905  	}
   906  
   907  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   908  
   909  	return out0, err
   910  
   911  }
   912  
   913  // TokenOfOwnerByIndex is a free data retrieval call binding the contract method 0x2f745c59.
   914  //
   915  // Solidity: function tokenOfOwnerByIndex(address owner, uint256 index) view returns(uint256)
   916  func (_Erc721 *Erc721Session) TokenOfOwnerByIndex(owner common.Address, index *big.Int) (*big.Int, error) {
   917  	return _Erc721.Contract.TokenOfOwnerByIndex(&_Erc721.CallOpts, owner, index)
   918  }
   919  
   920  // TokenOfOwnerByIndex is a free data retrieval call binding the contract method 0x2f745c59.
   921  //
   922  // Solidity: function tokenOfOwnerByIndex(address owner, uint256 index) view returns(uint256)
   923  func (_Erc721 *Erc721CallerSession) TokenOfOwnerByIndex(owner common.Address, index *big.Int) (*big.Int, error) {
   924  	return _Erc721.Contract.TokenOfOwnerByIndex(&_Erc721.CallOpts, owner, index)
   925  }
   926  
   927  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
   928  //
   929  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
   930  func (_Erc721 *Erc721Caller) TokenURI(opts *bind.CallOpts, tokenId *big.Int) (string, error) {
   931  	var out []interface{}
   932  	err := _Erc721.contract.Call(opts, &out, "tokenURI", tokenId)
   933  
   934  	if err != nil {
   935  		return *new(string), err
   936  	}
   937  
   938  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   939  
   940  	return out0, err
   941  
   942  }
   943  
   944  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
   945  //
   946  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
   947  func (_Erc721 *Erc721Session) TokenURI(tokenId *big.Int) (string, error) {
   948  	return _Erc721.Contract.TokenURI(&_Erc721.CallOpts, tokenId)
   949  }
   950  
   951  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
   952  //
   953  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
   954  func (_Erc721 *Erc721CallerSession) TokenURI(tokenId *big.Int) (string, error) {
   955  	return _Erc721.Contract.TokenURI(&_Erc721.CallOpts, tokenId)
   956  }
   957  
   958  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
   959  //
   960  // Solidity: function totalSupply() view returns(uint256)
   961  func (_Erc721 *Erc721Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
   962  	var out []interface{}
   963  	err := _Erc721.contract.Call(opts, &out, "totalSupply")
   964  
   965  	if err != nil {
   966  		return *new(*big.Int), err
   967  	}
   968  
   969  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   970  
   971  	return out0, err
   972  
   973  }
   974  
   975  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
   976  //
   977  // Solidity: function totalSupply() view returns(uint256)
   978  func (_Erc721 *Erc721Session) TotalSupply() (*big.Int, error) {
   979  	return _Erc721.Contract.TotalSupply(&_Erc721.CallOpts)
   980  }
   981  
   982  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
   983  //
   984  // Solidity: function totalSupply() view returns(uint256)
   985  func (_Erc721 *Erc721CallerSession) TotalSupply() (*big.Int, error) {
   986  	return _Erc721.Contract.TotalSupply(&_Erc721.CallOpts)
   987  }
   988  
   989  // WalletofNFT is a free data retrieval call binding the contract method 0x2d38f11e.
   990  //
   991  // Solidity: function walletofNFT(address _owner) view returns(uint256[])
   992  func (_Erc721 *Erc721Caller) WalletofNFT(opts *bind.CallOpts, _owner common.Address) ([]*big.Int, error) {
   993  	var out []interface{}
   994  	err := _Erc721.contract.Call(opts, &out, "walletofNFT", _owner)
   995  
   996  	if err != nil {
   997  		return *new([]*big.Int), err
   998  	}
   999  
  1000  	out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int)
  1001  
  1002  	return out0, err
  1003  
  1004  }
  1005  
  1006  // WalletofNFT is a free data retrieval call binding the contract method 0x2d38f11e.
  1007  //
  1008  // Solidity: function walletofNFT(address _owner) view returns(uint256[])
  1009  func (_Erc721 *Erc721Session) WalletofNFT(_owner common.Address) ([]*big.Int, error) {
  1010  	return _Erc721.Contract.WalletofNFT(&_Erc721.CallOpts, _owner)
  1011  }
  1012  
  1013  // WalletofNFT is a free data retrieval call binding the contract method 0x2d38f11e.
  1014  //
  1015  // Solidity: function walletofNFT(address _owner) view returns(uint256[])
  1016  func (_Erc721 *Erc721CallerSession) WalletofNFT(_owner common.Address) ([]*big.Int, error) {
  1017  	return _Erc721.Contract.WalletofNFT(&_Erc721.CallOpts, _owner)
  1018  }
  1019  
  1020  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  1021  //
  1022  // Solidity: function approve(address to, uint256 tokenId) returns()
  1023  func (_Erc721 *Erc721Transactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1024  	return _Erc721.contract.Transact(opts, "approve", to, tokenId)
  1025  }
  1026  
  1027  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  1028  //
  1029  // Solidity: function approve(address to, uint256 tokenId) returns()
  1030  func (_Erc721 *Erc721Session) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1031  	return _Erc721.Contract.Approve(&_Erc721.TransactOpts, to, tokenId)
  1032  }
  1033  
  1034  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  1035  //
  1036  // Solidity: function approve(address to, uint256 tokenId) returns()
  1037  func (_Erc721 *Erc721TransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1038  	return _Erc721.Contract.Approve(&_Erc721.TransactOpts, to, tokenId)
  1039  }
  1040  
  1041  // Breed is a paid mutator transaction binding the contract method 0xd9ecad7b.
  1042  //
  1043  // Solidity: function breed(uint256 id1, uint256 id2) returns()
  1044  func (_Erc721 *Erc721Transactor) Breed(opts *bind.TransactOpts, id1 *big.Int, id2 *big.Int) (*types.Transaction, error) {
  1045  	return _Erc721.contract.Transact(opts, "breed", id1, id2)
  1046  }
  1047  
  1048  // Breed is a paid mutator transaction binding the contract method 0xd9ecad7b.
  1049  //
  1050  // Solidity: function breed(uint256 id1, uint256 id2) returns()
  1051  func (_Erc721 *Erc721Session) Breed(id1 *big.Int, id2 *big.Int) (*types.Transaction, error) {
  1052  	return _Erc721.Contract.Breed(&_Erc721.TransactOpts, id1, id2)
  1053  }
  1054  
  1055  // Breed is a paid mutator transaction binding the contract method 0xd9ecad7b.
  1056  //
  1057  // Solidity: function breed(uint256 id1, uint256 id2) returns()
  1058  func (_Erc721 *Erc721TransactorSession) Breed(id1 *big.Int, id2 *big.Int) (*types.Transaction, error) {
  1059  	return _Erc721.Contract.Breed(&_Erc721.TransactOpts, id1, id2)
  1060  }
  1061  
  1062  // Burn is a paid mutator transaction binding the contract method 0x05a10028.
  1063  //
  1064  // Solidity: function burn(uint256 id1, uint256 id2, uint256 id3) returns()
  1065  func (_Erc721 *Erc721Transactor) Burn(opts *bind.TransactOpts, id1 *big.Int, id2 *big.Int, id3 *big.Int) (*types.Transaction, error) {
  1066  	return _Erc721.contract.Transact(opts, "burn", id1, id2, id3)
  1067  }
  1068  
  1069  // Burn is a paid mutator transaction binding the contract method 0x05a10028.
  1070  //
  1071  // Solidity: function burn(uint256 id1, uint256 id2, uint256 id3) returns()
  1072  func (_Erc721 *Erc721Session) Burn(id1 *big.Int, id2 *big.Int, id3 *big.Int) (*types.Transaction, error) {
  1073  	return _Erc721.Contract.Burn(&_Erc721.TransactOpts, id1, id2, id3)
  1074  }
  1075  
  1076  // Burn is a paid mutator transaction binding the contract method 0x05a10028.
  1077  //
  1078  // Solidity: function burn(uint256 id1, uint256 id2, uint256 id3) returns()
  1079  func (_Erc721 *Erc721TransactorSession) Burn(id1 *big.Int, id2 *big.Int, id3 *big.Int) (*types.Transaction, error) {
  1080  	return _Erc721.Contract.Burn(&_Erc721.TransactOpts, id1, id2, id3)
  1081  }
  1082  
  1083  // Claim is a paid mutator transaction binding the contract method 0x4e71d92d.
  1084  //
  1085  // Solidity: function claim() returns()
  1086  func (_Erc721 *Erc721Transactor) Claim(opts *bind.TransactOpts) (*types.Transaction, error) {
  1087  	return _Erc721.contract.Transact(opts, "claim")
  1088  }
  1089  
  1090  // Claim is a paid mutator transaction binding the contract method 0x4e71d92d.
  1091  //
  1092  // Solidity: function claim() returns()
  1093  func (_Erc721 *Erc721Session) Claim() (*types.Transaction, error) {
  1094  	return _Erc721.Contract.Claim(&_Erc721.TransactOpts)
  1095  }
  1096  
  1097  // Claim is a paid mutator transaction binding the contract method 0x4e71d92d.
  1098  //
  1099  // Solidity: function claim() returns()
  1100  func (_Erc721 *Erc721TransactorSession) Claim() (*types.Transaction, error) {
  1101  	return _Erc721.Contract.Claim(&_Erc721.TransactOpts)
  1102  }
  1103  
  1104  // Claimreward is a paid mutator transaction binding the contract method 0xbb6bf51d.
  1105  //
  1106  // Solidity: function claimreward() returns()
  1107  func (_Erc721 *Erc721Transactor) Claimreward(opts *bind.TransactOpts) (*types.Transaction, error) {
  1108  	return _Erc721.contract.Transact(opts, "claimreward")
  1109  }
  1110  
  1111  // Claimreward is a paid mutator transaction binding the contract method 0xbb6bf51d.
  1112  //
  1113  // Solidity: function claimreward() returns()
  1114  func (_Erc721 *Erc721Session) Claimreward() (*types.Transaction, error) {
  1115  	return _Erc721.Contract.Claimreward(&_Erc721.TransactOpts)
  1116  }
  1117  
  1118  // Claimreward is a paid mutator transaction binding the contract method 0xbb6bf51d.
  1119  //
  1120  // Solidity: function claimreward() returns()
  1121  func (_Erc721 *Erc721TransactorSession) Claimreward() (*types.Transaction, error) {
  1122  	return _Erc721.Contract.Claimreward(&_Erc721.TransactOpts)
  1123  }
  1124  
  1125  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
  1126  //
  1127  // Solidity: function mint(address _to, uint256 _mintAmount) payable returns()
  1128  func (_Erc721 *Erc721Transactor) Mint(opts *bind.TransactOpts, _to common.Address, _mintAmount *big.Int) (*types.Transaction, error) {
  1129  	return _Erc721.contract.Transact(opts, "mint", _to, _mintAmount)
  1130  }
  1131  
  1132  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
  1133  //
  1134  // Solidity: function mint(address _to, uint256 _mintAmount) payable returns()
  1135  func (_Erc721 *Erc721Session) Mint(_to common.Address, _mintAmount *big.Int) (*types.Transaction, error) {
  1136  	return _Erc721.Contract.Mint(&_Erc721.TransactOpts, _to, _mintAmount)
  1137  }
  1138  
  1139  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
  1140  //
  1141  // Solidity: function mint(address _to, uint256 _mintAmount) payable returns()
  1142  func (_Erc721 *Erc721TransactorSession) Mint(_to common.Address, _mintAmount *big.Int) (*types.Transaction, error) {
  1143  	return _Erc721.Contract.Mint(&_Erc721.TransactOpts, _to, _mintAmount)
  1144  }
  1145  
  1146  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
  1147  //
  1148  // Solidity: function pause() returns()
  1149  func (_Erc721 *Erc721Transactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) {
  1150  	return _Erc721.contract.Transact(opts, "pause")
  1151  }
  1152  
  1153  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
  1154  //
  1155  // Solidity: function pause() returns()
  1156  func (_Erc721 *Erc721Session) Pause() (*types.Transaction, error) {
  1157  	return _Erc721.Contract.Pause(&_Erc721.TransactOpts)
  1158  }
  1159  
  1160  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
  1161  //
  1162  // Solidity: function pause() returns()
  1163  func (_Erc721 *Erc721TransactorSession) Pause() (*types.Transaction, error) {
  1164  	return _Erc721.Contract.Pause(&_Erc721.TransactOpts)
  1165  }
  1166  
  1167  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  1168  //
  1169  // Solidity: function renounceOwnership() returns()
  1170  func (_Erc721 *Erc721Transactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
  1171  	return _Erc721.contract.Transact(opts, "renounceOwnership")
  1172  }
  1173  
  1174  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  1175  //
  1176  // Solidity: function renounceOwnership() returns()
  1177  func (_Erc721 *Erc721Session) RenounceOwnership() (*types.Transaction, error) {
  1178  	return _Erc721.Contract.RenounceOwnership(&_Erc721.TransactOpts)
  1179  }
  1180  
  1181  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  1182  //
  1183  // Solidity: function renounceOwnership() returns()
  1184  func (_Erc721 *Erc721TransactorSession) RenounceOwnership() (*types.Transaction, error) {
  1185  	return _Erc721.Contract.RenounceOwnership(&_Erc721.TransactOpts)
  1186  }
  1187  
  1188  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
  1189  //
  1190  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
  1191  func (_Erc721 *Erc721Transactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1192  	return _Erc721.contract.Transact(opts, "safeTransferFrom", from, to, tokenId)
  1193  }
  1194  
  1195  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
  1196  //
  1197  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
  1198  func (_Erc721 *Erc721Session) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1199  	return _Erc721.Contract.SafeTransferFrom(&_Erc721.TransactOpts, from, to, tokenId)
  1200  }
  1201  
  1202  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
  1203  //
  1204  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
  1205  func (_Erc721 *Erc721TransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1206  	return _Erc721.Contract.SafeTransferFrom(&_Erc721.TransactOpts, from, to, tokenId)
  1207  }
  1208  
  1209  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
  1210  //
  1211  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
  1212  func (_Erc721 *Erc721Transactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
  1213  	return _Erc721.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, _data)
  1214  }
  1215  
  1216  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
  1217  //
  1218  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
  1219  func (_Erc721 *Erc721Session) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
  1220  	return _Erc721.Contract.SafeTransferFrom0(&_Erc721.TransactOpts, from, to, tokenId, _data)
  1221  }
  1222  
  1223  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
  1224  //
  1225  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
  1226  func (_Erc721 *Erc721TransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
  1227  	return _Erc721.Contract.SafeTransferFrom0(&_Erc721.TransactOpts, from, to, tokenId, _data)
  1228  }
  1229  
  1230  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
  1231  //
  1232  // Solidity: function setApprovalForAll(address operator, bool approved) returns()
  1233  func (_Erc721 *Erc721Transactor) SetApprovalForAll(opts *bind.TransactOpts, operator common.Address, approved bool) (*types.Transaction, error) {
  1234  	return _Erc721.contract.Transact(opts, "setApprovalForAll", operator, approved)
  1235  }
  1236  
  1237  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
  1238  //
  1239  // Solidity: function setApprovalForAll(address operator, bool approved) returns()
  1240  func (_Erc721 *Erc721Session) SetApprovalForAll(operator common.Address, approved bool) (*types.Transaction, error) {
  1241  	return _Erc721.Contract.SetApprovalForAll(&_Erc721.TransactOpts, operator, approved)
  1242  }
  1243  
  1244  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
  1245  //
  1246  // Solidity: function setApprovalForAll(address operator, bool approved) returns()
  1247  func (_Erc721 *Erc721TransactorSession) SetApprovalForAll(operator common.Address, approved bool) (*types.Transaction, error) {
  1248  	return _Erc721.Contract.SetApprovalForAll(&_Erc721.TransactOpts, operator, approved)
  1249  }
  1250  
  1251  // SetBaseExtension is a paid mutator transaction binding the contract method 0xda3ef23f.
  1252  //
  1253  // Solidity: function setBaseExtension(string _newBaseExtension) returns()
  1254  func (_Erc721 *Erc721Transactor) SetBaseExtension(opts *bind.TransactOpts, _newBaseExtension string) (*types.Transaction, error) {
  1255  	return _Erc721.contract.Transact(opts, "setBaseExtension", _newBaseExtension)
  1256  }
  1257  
  1258  // SetBaseExtension is a paid mutator transaction binding the contract method 0xda3ef23f.
  1259  //
  1260  // Solidity: function setBaseExtension(string _newBaseExtension) returns()
  1261  func (_Erc721 *Erc721Session) SetBaseExtension(_newBaseExtension string) (*types.Transaction, error) {
  1262  	return _Erc721.Contract.SetBaseExtension(&_Erc721.TransactOpts, _newBaseExtension)
  1263  }
  1264  
  1265  // SetBaseExtension is a paid mutator transaction binding the contract method 0xda3ef23f.
  1266  //
  1267  // Solidity: function setBaseExtension(string _newBaseExtension) returns()
  1268  func (_Erc721 *Erc721TransactorSession) SetBaseExtension(_newBaseExtension string) (*types.Transaction, error) {
  1269  	return _Erc721.Contract.SetBaseExtension(&_Erc721.TransactOpts, _newBaseExtension)
  1270  }
  1271  
  1272  // SetBaseURI is a paid mutator transaction binding the contract method 0x55f804b3.
  1273  //
  1274  // Solidity: function setBaseURI(string _newBaseURI) returns()
  1275  func (_Erc721 *Erc721Transactor) SetBaseURI(opts *bind.TransactOpts, _newBaseURI string) (*types.Transaction, error) {
  1276  	return _Erc721.contract.Transact(opts, "setBaseURI", _newBaseURI)
  1277  }
  1278  
  1279  // SetBaseURI is a paid mutator transaction binding the contract method 0x55f804b3.
  1280  //
  1281  // Solidity: function setBaseURI(string _newBaseURI) returns()
  1282  func (_Erc721 *Erc721Session) SetBaseURI(_newBaseURI string) (*types.Transaction, error) {
  1283  	return _Erc721.Contract.SetBaseURI(&_Erc721.TransactOpts, _newBaseURI)
  1284  }
  1285  
  1286  // SetBaseURI is a paid mutator transaction binding the contract method 0x55f804b3.
  1287  //
  1288  // Solidity: function setBaseURI(string _newBaseURI) returns()
  1289  func (_Erc721 *Erc721TransactorSession) SetBaseURI(_newBaseURI string) (*types.Transaction, error) {
  1290  	return _Erc721.Contract.SetBaseURI(&_Erc721.TransactOpts, _newBaseURI)
  1291  }
  1292  
  1293  // SetCost is a paid mutator transaction binding the contract method 0x44a0d68a.
  1294  //
  1295  // Solidity: function setCost(uint256 _newCost) returns()
  1296  func (_Erc721 *Erc721Transactor) SetCost(opts *bind.TransactOpts, _newCost *big.Int) (*types.Transaction, error) {
  1297  	return _Erc721.contract.Transact(opts, "setCost", _newCost)
  1298  }
  1299  
  1300  // SetCost is a paid mutator transaction binding the contract method 0x44a0d68a.
  1301  //
  1302  // Solidity: function setCost(uint256 _newCost) returns()
  1303  func (_Erc721 *Erc721Session) SetCost(_newCost *big.Int) (*types.Transaction, error) {
  1304  	return _Erc721.Contract.SetCost(&_Erc721.TransactOpts, _newCost)
  1305  }
  1306  
  1307  // SetCost is a paid mutator transaction binding the contract method 0x44a0d68a.
  1308  //
  1309  // Solidity: function setCost(uint256 _newCost) returns()
  1310  func (_Erc721 *Erc721TransactorSession) SetCost(_newCost *big.Int) (*types.Transaction, error) {
  1311  	return _Erc721.Contract.SetCost(&_Erc721.TransactOpts, _newCost)
  1312  }
  1313  
  1314  // Setbaseuriforancientnft is a paid mutator transaction binding the contract method 0x5843029b.
  1315  //
  1316  // Solidity: function setbaseuriforancientnft(string _newBaseURI) returns()
  1317  func (_Erc721 *Erc721Transactor) Setbaseuriforancientnft(opts *bind.TransactOpts, _newBaseURI string) (*types.Transaction, error) {
  1318  	return _Erc721.contract.Transact(opts, "setbaseuriforancientnft", _newBaseURI)
  1319  }
  1320  
  1321  // Setbaseuriforancientnft is a paid mutator transaction binding the contract method 0x5843029b.
  1322  //
  1323  // Solidity: function setbaseuriforancientnft(string _newBaseURI) returns()
  1324  func (_Erc721 *Erc721Session) Setbaseuriforancientnft(_newBaseURI string) (*types.Transaction, error) {
  1325  	return _Erc721.Contract.Setbaseuriforancientnft(&_Erc721.TransactOpts, _newBaseURI)
  1326  }
  1327  
  1328  // Setbaseuriforancientnft is a paid mutator transaction binding the contract method 0x5843029b.
  1329  //
  1330  // Solidity: function setbaseuriforancientnft(string _newBaseURI) returns()
  1331  func (_Erc721 *Erc721TransactorSession) Setbaseuriforancientnft(_newBaseURI string) (*types.Transaction, error) {
  1332  	return _Erc721.Contract.Setbaseuriforancientnft(&_Erc721.TransactOpts, _newBaseURI)
  1333  }
  1334  
  1335  // Setbaseuriforbabynft is a paid mutator transaction binding the contract method 0x056e5a7f.
  1336  //
  1337  // Solidity: function setbaseuriforbabynft(string _newBaseURI) returns()
  1338  func (_Erc721 *Erc721Transactor) Setbaseuriforbabynft(opts *bind.TransactOpts, _newBaseURI string) (*types.Transaction, error) {
  1339  	return _Erc721.contract.Transact(opts, "setbaseuriforbabynft", _newBaseURI)
  1340  }
  1341  
  1342  // Setbaseuriforbabynft is a paid mutator transaction binding the contract method 0x056e5a7f.
  1343  //
  1344  // Solidity: function setbaseuriforbabynft(string _newBaseURI) returns()
  1345  func (_Erc721 *Erc721Session) Setbaseuriforbabynft(_newBaseURI string) (*types.Transaction, error) {
  1346  	return _Erc721.Contract.Setbaseuriforbabynft(&_Erc721.TransactOpts, _newBaseURI)
  1347  }
  1348  
  1349  // Setbaseuriforbabynft is a paid mutator transaction binding the contract method 0x056e5a7f.
  1350  //
  1351  // Solidity: function setbaseuriforbabynft(string _newBaseURI) returns()
  1352  func (_Erc721 *Erc721TransactorSession) Setbaseuriforbabynft(_newBaseURI string) (*types.Transaction, error) {
  1353  	return _Erc721.Contract.Setbaseuriforbabynft(&_Erc721.TransactOpts, _newBaseURI)
  1354  }
  1355  
  1356  // SetmaxMintAmount is a paid mutator transaction binding the contract method 0x7f00c7a6.
  1357  //
  1358  // Solidity: function setmaxMintAmount(uint256 _newmaxMintAmount) returns()
  1359  func (_Erc721 *Erc721Transactor) SetmaxMintAmount(opts *bind.TransactOpts, _newmaxMintAmount *big.Int) (*types.Transaction, error) {
  1360  	return _Erc721.contract.Transact(opts, "setmaxMintAmount", _newmaxMintAmount)
  1361  }
  1362  
  1363  // SetmaxMintAmount is a paid mutator transaction binding the contract method 0x7f00c7a6.
  1364  //
  1365  // Solidity: function setmaxMintAmount(uint256 _newmaxMintAmount) returns()
  1366  func (_Erc721 *Erc721Session) SetmaxMintAmount(_newmaxMintAmount *big.Int) (*types.Transaction, error) {
  1367  	return _Erc721.Contract.SetmaxMintAmount(&_Erc721.TransactOpts, _newmaxMintAmount)
  1368  }
  1369  
  1370  // SetmaxMintAmount is a paid mutator transaction binding the contract method 0x7f00c7a6.
  1371  //
  1372  // Solidity: function setmaxMintAmount(uint256 _newmaxMintAmount) returns()
  1373  func (_Erc721 *Erc721TransactorSession) SetmaxMintAmount(_newmaxMintAmount *big.Int) (*types.Transaction, error) {
  1374  	return _Erc721.Contract.SetmaxMintAmount(&_Erc721.TransactOpts, _newmaxMintAmount)
  1375  }
  1376  
  1377  // Setmaxsupplyforbabynft is a paid mutator transaction binding the contract method 0xcf7f9e95.
  1378  //
  1379  // Solidity: function setmaxsupplyforbabynft(uint256 amount) returns()
  1380  func (_Erc721 *Erc721Transactor) Setmaxsupplyforbabynft(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) {
  1381  	return _Erc721.contract.Transact(opts, "setmaxsupplyforbabynft", amount)
  1382  }
  1383  
  1384  // Setmaxsupplyforbabynft is a paid mutator transaction binding the contract method 0xcf7f9e95.
  1385  //
  1386  // Solidity: function setmaxsupplyforbabynft(uint256 amount) returns()
  1387  func (_Erc721 *Erc721Session) Setmaxsupplyforbabynft(amount *big.Int) (*types.Transaction, error) {
  1388  	return _Erc721.Contract.Setmaxsupplyforbabynft(&_Erc721.TransactOpts, amount)
  1389  }
  1390  
  1391  // Setmaxsupplyforbabynft is a paid mutator transaction binding the contract method 0xcf7f9e95.
  1392  //
  1393  // Solidity: function setmaxsupplyforbabynft(uint256 amount) returns()
  1394  func (_Erc721 *Erc721TransactorSession) Setmaxsupplyforbabynft(amount *big.Int) (*types.Transaction, error) {
  1395  	return _Erc721.Contract.Setmaxsupplyforbabynft(&_Erc721.TransactOpts, amount)
  1396  }
  1397  
  1398  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  1399  //
  1400  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
  1401  func (_Erc721 *Erc721Transactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1402  	return _Erc721.contract.Transact(opts, "transferFrom", from, to, tokenId)
  1403  }
  1404  
  1405  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  1406  //
  1407  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
  1408  func (_Erc721 *Erc721Session) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1409  	return _Erc721.Contract.TransferFrom(&_Erc721.TransactOpts, from, to, tokenId)
  1410  }
  1411  
  1412  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  1413  //
  1414  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
  1415  func (_Erc721 *Erc721TransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
  1416  	return _Erc721.Contract.TransferFrom(&_Erc721.TransactOpts, from, to, tokenId)
  1417  }
  1418  
  1419  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  1420  //
  1421  // Solidity: function transferOwnership(address newOwner) returns()
  1422  func (_Erc721 *Erc721Transactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  1423  	return _Erc721.contract.Transact(opts, "transferOwnership", newOwner)
  1424  }
  1425  
  1426  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  1427  //
  1428  // Solidity: function transferOwnership(address newOwner) returns()
  1429  func (_Erc721 *Erc721Session) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  1430  	return _Erc721.Contract.TransferOwnership(&_Erc721.TransactOpts, newOwner)
  1431  }
  1432  
  1433  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  1434  //
  1435  // Solidity: function transferOwnership(address newOwner) returns()
  1436  func (_Erc721 *Erc721TransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  1437  	return _Erc721.Contract.TransferOwnership(&_Erc721.TransactOpts, newOwner)
  1438  }
  1439  
  1440  // Erc721ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the Erc721 contract.
  1441  type Erc721ApprovalIterator struct {
  1442  	Event *Erc721Approval // Event containing the contract specifics and raw log
  1443  
  1444  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1445  	event    string              // Event name to use for unpacking event data
  1446  
  1447  	logs chan types.Log        // Log channel receiving the found contract events
  1448  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1449  	done bool                  // Whether the subscription completed delivering logs
  1450  	fail error                 // Occurred error to stop iteration
  1451  }
  1452  
  1453  // Next advances the iterator to the subsequent event, returning whether there
  1454  // are any more events found. In case of a retrieval or parsing error, false is
  1455  // returned and Error() can be queried for the exact failure.
  1456  func (it *Erc721ApprovalIterator) Next() bool {
  1457  	// If the iterator failed, stop iterating
  1458  	if it.fail != nil {
  1459  		return false
  1460  	}
  1461  	// If the iterator completed, deliver directly whatever's available
  1462  	if it.done {
  1463  		select {
  1464  		case log := <-it.logs:
  1465  			it.Event = new(Erc721Approval)
  1466  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1467  				it.fail = err
  1468  				return false
  1469  			}
  1470  			it.Event.Raw = log
  1471  			return true
  1472  
  1473  		default:
  1474  			return false
  1475  		}
  1476  	}
  1477  	// Iterator still in progress, wait for either a data or an error event
  1478  	select {
  1479  	case log := <-it.logs:
  1480  		it.Event = new(Erc721Approval)
  1481  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1482  			it.fail = err
  1483  			return false
  1484  		}
  1485  		it.Event.Raw = log
  1486  		return true
  1487  
  1488  	case err := <-it.sub.Err():
  1489  		it.done = true
  1490  		it.fail = err
  1491  		return it.Next()
  1492  	}
  1493  }
  1494  
  1495  // Error returns any retrieval or parsing error occurred during filtering.
  1496  func (it *Erc721ApprovalIterator) Error() error {
  1497  	return it.fail
  1498  }
  1499  
  1500  // Close terminates the iteration process, releasing any pending underlying
  1501  // resources.
  1502  func (it *Erc721ApprovalIterator) Close() error {
  1503  	it.sub.Unsubscribe()
  1504  	return nil
  1505  }
  1506  
  1507  // Erc721Approval represents a Approval event raised by the Erc721 contract.
  1508  type Erc721Approval struct {
  1509  	Owner    common.Address
  1510  	Approved common.Address
  1511  	TokenId  *big.Int
  1512  	Raw      types.Log // Blockchain specific contextual infos
  1513  }
  1514  
  1515  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  1516  //
  1517  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  1518  func (_Erc721 *Erc721Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*Erc721ApprovalIterator, error) {
  1519  
  1520  	var ownerRule []interface{}
  1521  	for _, ownerItem := range owner {
  1522  		ownerRule = append(ownerRule, ownerItem)
  1523  	}
  1524  	var approvedRule []interface{}
  1525  	for _, approvedItem := range approved {
  1526  		approvedRule = append(approvedRule, approvedItem)
  1527  	}
  1528  	var tokenIdRule []interface{}
  1529  	for _, tokenIdItem := range tokenId {
  1530  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  1531  	}
  1532  
  1533  	logs, sub, err := _Erc721.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
  1534  	if err != nil {
  1535  		return nil, err
  1536  	}
  1537  	return &Erc721ApprovalIterator{contract: _Erc721.contract, event: "Approval", logs: logs, sub: sub}, nil
  1538  }
  1539  
  1540  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  1541  //
  1542  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  1543  func (_Erc721 *Erc721Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *Erc721Approval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) {
  1544  
  1545  	var ownerRule []interface{}
  1546  	for _, ownerItem := range owner {
  1547  		ownerRule = append(ownerRule, ownerItem)
  1548  	}
  1549  	var approvedRule []interface{}
  1550  	for _, approvedItem := range approved {
  1551  		approvedRule = append(approvedRule, approvedItem)
  1552  	}
  1553  	var tokenIdRule []interface{}
  1554  	for _, tokenIdItem := range tokenId {
  1555  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  1556  	}
  1557  
  1558  	logs, sub, err := _Erc721.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
  1559  	if err != nil {
  1560  		return nil, err
  1561  	}
  1562  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1563  		defer sub.Unsubscribe()
  1564  		for {
  1565  			select {
  1566  			case log := <-logs:
  1567  				// New log arrived, parse the event and forward to the user
  1568  				event := new(Erc721Approval)
  1569  				if err := _Erc721.contract.UnpackLog(event, "Approval", log); err != nil {
  1570  					return err
  1571  				}
  1572  				event.Raw = log
  1573  
  1574  				select {
  1575  				case sink <- event:
  1576  				case err := <-sub.Err():
  1577  					return err
  1578  				case <-quit:
  1579  					return nil
  1580  				}
  1581  			case err := <-sub.Err():
  1582  				return err
  1583  			case <-quit:
  1584  				return nil
  1585  			}
  1586  		}
  1587  	}), nil
  1588  }
  1589  
  1590  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  1591  //
  1592  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
  1593  func (_Erc721 *Erc721Filterer) ParseApproval(log types.Log) (*Erc721Approval, error) {
  1594  	event := new(Erc721Approval)
  1595  	if err := _Erc721.contract.UnpackLog(event, "Approval", log); err != nil {
  1596  		return nil, err
  1597  	}
  1598  	event.Raw = log
  1599  	return event, nil
  1600  }
  1601  
  1602  // Erc721ApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the Erc721 contract.
  1603  type Erc721ApprovalForAllIterator struct {
  1604  	Event *Erc721ApprovalForAll // Event containing the contract specifics and raw log
  1605  
  1606  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1607  	event    string              // Event name to use for unpacking event data
  1608  
  1609  	logs chan types.Log        // Log channel receiving the found contract events
  1610  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1611  	done bool                  // Whether the subscription completed delivering logs
  1612  	fail error                 // Occurred error to stop iteration
  1613  }
  1614  
  1615  // Next advances the iterator to the subsequent event, returning whether there
  1616  // are any more events found. In case of a retrieval or parsing error, false is
  1617  // returned and Error() can be queried for the exact failure.
  1618  func (it *Erc721ApprovalForAllIterator) Next() bool {
  1619  	// If the iterator failed, stop iterating
  1620  	if it.fail != nil {
  1621  		return false
  1622  	}
  1623  	// If the iterator completed, deliver directly whatever's available
  1624  	if it.done {
  1625  		select {
  1626  		case log := <-it.logs:
  1627  			it.Event = new(Erc721ApprovalForAll)
  1628  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1629  				it.fail = err
  1630  				return false
  1631  			}
  1632  			it.Event.Raw = log
  1633  			return true
  1634  
  1635  		default:
  1636  			return false
  1637  		}
  1638  	}
  1639  	// Iterator still in progress, wait for either a data or an error event
  1640  	select {
  1641  	case log := <-it.logs:
  1642  		it.Event = new(Erc721ApprovalForAll)
  1643  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1644  			it.fail = err
  1645  			return false
  1646  		}
  1647  		it.Event.Raw = log
  1648  		return true
  1649  
  1650  	case err := <-it.sub.Err():
  1651  		it.done = true
  1652  		it.fail = err
  1653  		return it.Next()
  1654  	}
  1655  }
  1656  
  1657  // Error returns any retrieval or parsing error occurred during filtering.
  1658  func (it *Erc721ApprovalForAllIterator) Error() error {
  1659  	return it.fail
  1660  }
  1661  
  1662  // Close terminates the iteration process, releasing any pending underlying
  1663  // resources.
  1664  func (it *Erc721ApprovalForAllIterator) Close() error {
  1665  	it.sub.Unsubscribe()
  1666  	return nil
  1667  }
  1668  
  1669  // Erc721ApprovalForAll represents a ApprovalForAll event raised by the Erc721 contract.
  1670  type Erc721ApprovalForAll struct {
  1671  	Owner    common.Address
  1672  	Operator common.Address
  1673  	Approved bool
  1674  	Raw      types.Log // Blockchain specific contextual infos
  1675  }
  1676  
  1677  // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  1678  //
  1679  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  1680  func (_Erc721 *Erc721Filterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*Erc721ApprovalForAllIterator, error) {
  1681  
  1682  	var ownerRule []interface{}
  1683  	for _, ownerItem := range owner {
  1684  		ownerRule = append(ownerRule, ownerItem)
  1685  	}
  1686  	var operatorRule []interface{}
  1687  	for _, operatorItem := range operator {
  1688  		operatorRule = append(operatorRule, operatorItem)
  1689  	}
  1690  
  1691  	logs, sub, err := _Erc721.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
  1692  	if err != nil {
  1693  		return nil, err
  1694  	}
  1695  	return &Erc721ApprovalForAllIterator{contract: _Erc721.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil
  1696  }
  1697  
  1698  // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  1699  //
  1700  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  1701  func (_Erc721 *Erc721Filterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *Erc721ApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) {
  1702  
  1703  	var ownerRule []interface{}
  1704  	for _, ownerItem := range owner {
  1705  		ownerRule = append(ownerRule, ownerItem)
  1706  	}
  1707  	var operatorRule []interface{}
  1708  	for _, operatorItem := range operator {
  1709  		operatorRule = append(operatorRule, operatorItem)
  1710  	}
  1711  
  1712  	logs, sub, err := _Erc721.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
  1713  	if err != nil {
  1714  		return nil, err
  1715  	}
  1716  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1717  		defer sub.Unsubscribe()
  1718  		for {
  1719  			select {
  1720  			case log := <-logs:
  1721  				// New log arrived, parse the event and forward to the user
  1722  				event := new(Erc721ApprovalForAll)
  1723  				if err := _Erc721.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
  1724  					return err
  1725  				}
  1726  				event.Raw = log
  1727  
  1728  				select {
  1729  				case sink <- event:
  1730  				case err := <-sub.Err():
  1731  					return err
  1732  				case <-quit:
  1733  					return nil
  1734  				}
  1735  			case err := <-sub.Err():
  1736  				return err
  1737  			case <-quit:
  1738  				return nil
  1739  			}
  1740  		}
  1741  	}), nil
  1742  }
  1743  
  1744  // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
  1745  //
  1746  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
  1747  func (_Erc721 *Erc721Filterer) ParseApprovalForAll(log types.Log) (*Erc721ApprovalForAll, error) {
  1748  	event := new(Erc721ApprovalForAll)
  1749  	if err := _Erc721.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
  1750  		return nil, err
  1751  	}
  1752  	event.Raw = log
  1753  	return event, nil
  1754  }
  1755  
  1756  // Erc721OwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the Erc721 contract.
  1757  type Erc721OwnershipTransferredIterator struct {
  1758  	Event *Erc721OwnershipTransferred // Event containing the contract specifics and raw log
  1759  
  1760  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1761  	event    string              // Event name to use for unpacking event data
  1762  
  1763  	logs chan types.Log        // Log channel receiving the found contract events
  1764  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1765  	done bool                  // Whether the subscription completed delivering logs
  1766  	fail error                 // Occurred error to stop iteration
  1767  }
  1768  
  1769  // Next advances the iterator to the subsequent event, returning whether there
  1770  // are any more events found. In case of a retrieval or parsing error, false is
  1771  // returned and Error() can be queried for the exact failure.
  1772  func (it *Erc721OwnershipTransferredIterator) Next() bool {
  1773  	// If the iterator failed, stop iterating
  1774  	if it.fail != nil {
  1775  		return false
  1776  	}
  1777  	// If the iterator completed, deliver directly whatever's available
  1778  	if it.done {
  1779  		select {
  1780  		case log := <-it.logs:
  1781  			it.Event = new(Erc721OwnershipTransferred)
  1782  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1783  				it.fail = err
  1784  				return false
  1785  			}
  1786  			it.Event.Raw = log
  1787  			return true
  1788  
  1789  		default:
  1790  			return false
  1791  		}
  1792  	}
  1793  	// Iterator still in progress, wait for either a data or an error event
  1794  	select {
  1795  	case log := <-it.logs:
  1796  		it.Event = new(Erc721OwnershipTransferred)
  1797  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1798  			it.fail = err
  1799  			return false
  1800  		}
  1801  		it.Event.Raw = log
  1802  		return true
  1803  
  1804  	case err := <-it.sub.Err():
  1805  		it.done = true
  1806  		it.fail = err
  1807  		return it.Next()
  1808  	}
  1809  }
  1810  
  1811  // Error returns any retrieval or parsing error occurred during filtering.
  1812  func (it *Erc721OwnershipTransferredIterator) Error() error {
  1813  	return it.fail
  1814  }
  1815  
  1816  // Close terminates the iteration process, releasing any pending underlying
  1817  // resources.
  1818  func (it *Erc721OwnershipTransferredIterator) Close() error {
  1819  	it.sub.Unsubscribe()
  1820  	return nil
  1821  }
  1822  
  1823  // Erc721OwnershipTransferred represents a OwnershipTransferred event raised by the Erc721 contract.
  1824  type Erc721OwnershipTransferred struct {
  1825  	PreviousOwner common.Address
  1826  	NewOwner      common.Address
  1827  	Raw           types.Log // Blockchain specific contextual infos
  1828  }
  1829  
  1830  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1831  //
  1832  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  1833  func (_Erc721 *Erc721Filterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*Erc721OwnershipTransferredIterator, error) {
  1834  
  1835  	var previousOwnerRule []interface{}
  1836  	for _, previousOwnerItem := range previousOwner {
  1837  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  1838  	}
  1839  	var newOwnerRule []interface{}
  1840  	for _, newOwnerItem := range newOwner {
  1841  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  1842  	}
  1843  
  1844  	logs, sub, err := _Erc721.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  1845  	if err != nil {
  1846  		return nil, err
  1847  	}
  1848  	return &Erc721OwnershipTransferredIterator{contract: _Erc721.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  1849  }
  1850  
  1851  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1852  //
  1853  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  1854  func (_Erc721 *Erc721Filterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *Erc721OwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  1855  
  1856  	var previousOwnerRule []interface{}
  1857  	for _, previousOwnerItem := range previousOwner {
  1858  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  1859  	}
  1860  	var newOwnerRule []interface{}
  1861  	for _, newOwnerItem := range newOwner {
  1862  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  1863  	}
  1864  
  1865  	logs, sub, err := _Erc721.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  1866  	if err != nil {
  1867  		return nil, err
  1868  	}
  1869  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1870  		defer sub.Unsubscribe()
  1871  		for {
  1872  			select {
  1873  			case log := <-logs:
  1874  				// New log arrived, parse the event and forward to the user
  1875  				event := new(Erc721OwnershipTransferred)
  1876  				if err := _Erc721.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  1877  					return err
  1878  				}
  1879  				event.Raw = log
  1880  
  1881  				select {
  1882  				case sink <- event:
  1883  				case err := <-sub.Err():
  1884  					return err
  1885  				case <-quit:
  1886  					return nil
  1887  				}
  1888  			case err := <-sub.Err():
  1889  				return err
  1890  			case <-quit:
  1891  				return nil
  1892  			}
  1893  		}
  1894  	}), nil
  1895  }
  1896  
  1897  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1898  //
  1899  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  1900  func (_Erc721 *Erc721Filterer) ParseOwnershipTransferred(log types.Log) (*Erc721OwnershipTransferred, error) {
  1901  	event := new(Erc721OwnershipTransferred)
  1902  	if err := _Erc721.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  1903  		return nil, err
  1904  	}
  1905  	event.Raw = log
  1906  	return event, nil
  1907  }
  1908  
  1909  // Erc721TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the Erc721 contract.
  1910  type Erc721TransferIterator struct {
  1911  	Event *Erc721Transfer // Event containing the contract specifics and raw log
  1912  
  1913  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1914  	event    string              // Event name to use for unpacking event data
  1915  
  1916  	logs chan types.Log        // Log channel receiving the found contract events
  1917  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1918  	done bool                  // Whether the subscription completed delivering logs
  1919  	fail error                 // Occurred error to stop iteration
  1920  }
  1921  
  1922  // Next advances the iterator to the subsequent event, returning whether there
  1923  // are any more events found. In case of a retrieval or parsing error, false is
  1924  // returned and Error() can be queried for the exact failure.
  1925  func (it *Erc721TransferIterator) Next() bool {
  1926  	// If the iterator failed, stop iterating
  1927  	if it.fail != nil {
  1928  		return false
  1929  	}
  1930  	// If the iterator completed, deliver directly whatever's available
  1931  	if it.done {
  1932  		select {
  1933  		case log := <-it.logs:
  1934  			it.Event = new(Erc721Transfer)
  1935  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1936  				it.fail = err
  1937  				return false
  1938  			}
  1939  			it.Event.Raw = log
  1940  			return true
  1941  
  1942  		default:
  1943  			return false
  1944  		}
  1945  	}
  1946  	// Iterator still in progress, wait for either a data or an error event
  1947  	select {
  1948  	case log := <-it.logs:
  1949  		it.Event = new(Erc721Transfer)
  1950  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1951  			it.fail = err
  1952  			return false
  1953  		}
  1954  		it.Event.Raw = log
  1955  		return true
  1956  
  1957  	case err := <-it.sub.Err():
  1958  		it.done = true
  1959  		it.fail = err
  1960  		return it.Next()
  1961  	}
  1962  }
  1963  
  1964  // Error returns any retrieval or parsing error occurred during filtering.
  1965  func (it *Erc721TransferIterator) Error() error {
  1966  	return it.fail
  1967  }
  1968  
  1969  // Close terminates the iteration process, releasing any pending underlying
  1970  // resources.
  1971  func (it *Erc721TransferIterator) Close() error {
  1972  	it.sub.Unsubscribe()
  1973  	return nil
  1974  }
  1975  
  1976  // Erc721Transfer represents a Transfer event raised by the Erc721 contract.
  1977  type Erc721Transfer struct {
  1978  	From    common.Address
  1979  	To      common.Address
  1980  	TokenId *big.Int
  1981  	Raw     types.Log // Blockchain specific contextual infos
  1982  }
  1983  
  1984  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  1985  //
  1986  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  1987  func (_Erc721 *Erc721Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*Erc721TransferIterator, error) {
  1988  
  1989  	var fromRule []interface{}
  1990  	for _, fromItem := range from {
  1991  		fromRule = append(fromRule, fromItem)
  1992  	}
  1993  	var toRule []interface{}
  1994  	for _, toItem := range to {
  1995  		toRule = append(toRule, toItem)
  1996  	}
  1997  	var tokenIdRule []interface{}
  1998  	for _, tokenIdItem := range tokenId {
  1999  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  2000  	}
  2001  
  2002  	logs, sub, err := _Erc721.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
  2003  	if err != nil {
  2004  		return nil, err
  2005  	}
  2006  	return &Erc721TransferIterator{contract: _Erc721.contract, event: "Transfer", logs: logs, sub: sub}, nil
  2007  }
  2008  
  2009  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  2010  //
  2011  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  2012  func (_Erc721 *Erc721Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *Erc721Transfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) {
  2013  
  2014  	var fromRule []interface{}
  2015  	for _, fromItem := range from {
  2016  		fromRule = append(fromRule, fromItem)
  2017  	}
  2018  	var toRule []interface{}
  2019  	for _, toItem := range to {
  2020  		toRule = append(toRule, toItem)
  2021  	}
  2022  	var tokenIdRule []interface{}
  2023  	for _, tokenIdItem := range tokenId {
  2024  		tokenIdRule = append(tokenIdRule, tokenIdItem)
  2025  	}
  2026  
  2027  	logs, sub, err := _Erc721.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
  2028  	if err != nil {
  2029  		return nil, err
  2030  	}
  2031  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2032  		defer sub.Unsubscribe()
  2033  		for {
  2034  			select {
  2035  			case log := <-logs:
  2036  				// New log arrived, parse the event and forward to the user
  2037  				event := new(Erc721Transfer)
  2038  				if err := _Erc721.contract.UnpackLog(event, "Transfer", log); err != nil {
  2039  					return err
  2040  				}
  2041  				event.Raw = log
  2042  
  2043  				select {
  2044  				case sink <- event:
  2045  				case err := <-sub.Err():
  2046  					return err
  2047  				case <-quit:
  2048  					return nil
  2049  				}
  2050  			case err := <-sub.Err():
  2051  				return err
  2052  			case <-quit:
  2053  				return nil
  2054  			}
  2055  		}
  2056  	}), nil
  2057  }
  2058  
  2059  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  2060  //
  2061  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
  2062  func (_Erc721 *Erc721Filterer) ParseTransfer(log types.Log) (*Erc721Transfer, error) {
  2063  	event := new(Erc721Transfer)
  2064  	if err := _Erc721.contract.UnpackLog(event, "Transfer", log); err != nil {
  2065  		return nil, err
  2066  	}
  2067  	event.Raw = log
  2068  	return event, nil
  2069  }