github.com/diadata-org/diadata@v1.4.593/config/nftContracts/cryptokitties/cryptokitties.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 cryptokitties
     5  
     6  import (
     7  	"math/big"
     8  	"strings"
     9  
    10  	ethereum "github.com/ethereum/go-ethereum"
    11  	"github.com/ethereum/go-ethereum/accounts/abi"
    12  	"github.com/ethereum/go-ethereum/accounts/abi/bind"
    13  	"github.com/ethereum/go-ethereum/common"
    14  	"github.com/ethereum/go-ethereum/core/types"
    15  	"github.com/ethereum/go-ethereum/event"
    16  )
    17  
    18  // Reference imports to suppress errors if they are not otherwise used.
    19  var (
    20  	_ = big.NewInt
    21  	_ = strings.NewReader
    22  	_ = ethereum.NotFound
    23  	_ = bind.Bind
    24  	_ = common.Big1
    25  	_ = types.BloomLookup
    26  	_ = event.NewSubscription
    27  )
    28  
    29  // ClockAuctionABI is the input ABI used to generate the binding from.
    30  const ClockAuctionABI = "[{\"constant\":false,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_startingPrice\",\"type\":\"uint256\"},{\"name\":\"_endingPrice\",\"type\":\"uint256\"},{\"name\":\"_duration\",\"type\":\"uint256\"},{\"name\":\"_seller\",\"type\":\"address\"}],\"name\":\"createAuction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"bid\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"withdrawBalance\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getAuction\",\"outputs\":[{\"name\":\"seller\",\"type\":\"address\"},{\"name\":\"startingPrice\",\"type\":\"uint256\"},{\"name\":\"endingPrice\",\"type\":\"uint256\"},{\"name\":\"duration\",\"type\":\"uint256\"},{\"name\":\"startedAt\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ownerCut\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"cancelAuctionWhenPaused\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"cancelAuction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getCurrentPrice\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nonFungibleContract\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_nftAddress\",\"type\":\"address\"},{\"name\":\"_cut\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"startingPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"endingPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"AuctionCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"totalPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"winner\",\"type\":\"address\"}],\"name\":\"AuctionSuccessful\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"AuctionCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Pause\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Unpause\",\"type\":\"event\"}]"
    31  
    32  // ClockAuctionFuncSigs maps the 4-byte function signature to its string representation.
    33  var ClockAuctionFuncSigs = map[string]string{
    34  	"454a2ab3": "bid(uint256)",
    35  	"96b5a755": "cancelAuction(uint256)",
    36  	"878eb368": "cancelAuctionWhenPaused(uint256)",
    37  	"27ebe40a": "createAuction(uint256,uint256,uint256,uint256,address)",
    38  	"78bd7935": "getAuction(uint256)",
    39  	"c55d0f56": "getCurrentPrice(uint256)",
    40  	"dd1b7a0f": "nonFungibleContract()",
    41  	"8da5cb5b": "owner()",
    42  	"83b5ff8b": "ownerCut()",
    43  	"8456cb59": "pause()",
    44  	"5c975abb": "paused()",
    45  	"f2fde38b": "transferOwnership(address)",
    46  	"3f4ba83a": "unpause()",
    47  	"5fd8c710": "withdrawBalance()",
    48  }
    49  
    50  // ClockAuctionBin is the compiled bytecode used for deploying new contracts.
    51  var ClockAuctionBin = "0x60606040526000805460a060020a60ff0219169055341561001f57600080fd5b604051604080610e66833981016040528080519190602001805160008054600160a060020a03191633600160a060020a0316178155909250905061271082111561006857600080fd5b50600281905581600160a060020a0381166301ffc9a77f9a20483d000000000000000000000000000000000000000000000000000000006040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281527fffffffff000000000000000000000000000000000000000000000000000000009091166004820152602401602060405180830381600087803b151561010f57600080fd5b5af1151561011c57600080fd5b50505060405180519050151561013157600080fd5b60018054600160a060020a03909216600160a060020a03199092169190911790555050610d03806101636000396000f3006060604052600436106100b65763ffffffff60e060020a60003504166327ebe40a81146100bb5780633f4ba83a146100e8578063454a2ab31461010f5780635c975abb1461011a5780635fd8c7101461012d57806378bd79351461014057806383b5ff8b146101915780638456cb59146101b6578063878eb368146101c95780638da5cb5b146101df57806396b5a7551461020e578063c55d0f5614610224578063dd1b7a0f1461023a578063f2fde38b1461024d575b600080fd5b34156100c657600080fd5b6100e6600435602435604435606435600160a060020a036084351661026c565b005b34156100f357600080fd5b6100fb610355565b604051901515815260200160405180910390f35b6100e66004356103d9565b341561012557600080fd5b6100fb610408565b341561013857600080fd5b6100e6610418565b341561014b57600080fd5b61015660043561048e565b604051600160a060020a03909516855260208501939093526040808501929092526060840152608083019190915260a0909101905180910390f35b341561019c57600080fd5b6101a461051b565b60405190815260200160405180910390f35b34156101c157600080fd5b6100fb610521565b34156101d457600080fd5b6100e66004356105aa565b34156101ea57600080fd5b6101f261061b565b604051600160a060020a03909116815260200160405180910390f35b341561021957600080fd5b6100e660043561062a565b341561022f57600080fd5b6101a4600435610678565b341561024557600080fd5b6101f26106aa565b341561025857600080fd5b6100e6600160a060020a03600435166106b9565b610274610ca9565b60005460a060020a900460ff161561028b57600080fd5b6001608060020a03851685146102a057600080fd5b6001608060020a03841684146102b557600080fd5b67ffffffffffffffff831683146102cb57600080fd5b6102d53387610710565b15156102e057600080fd5b6102ea3387610788565b60a06040519081016040528083600160a060020a03168152602001866001608060020a03168152602001856001608060020a031681526020018467ffffffffffffffff1681526020014267ffffffffffffffff16815250905061034d86826107ff565b505050505050565b6000805433600160a060020a0390811691161461037157600080fd5b60005460a060020a900460ff16151561038957600080fd5b6000805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a150600190565b60005460a060020a900460ff16156103f057600080fd5b6103fa813461099a565b506104053382610acb565b50565b60005460a060020a900460ff1681565b60015460008054600160a060020a03928316923381169116148061044d575081600160a060020a031633600160a060020a0316145b151561045857600080fd5b81600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f150505050505050565b600081815260036020526040812081908190819081906104ad81610b21565b15156104b857600080fd5b80546001820154600290920154600160a060020a03909116986001608060020a038084169950700100000000000000000000000000000000909304909216965067ffffffffffffffff808216965068010000000000000000909104169350915050565b60025481565b6000805433600160a060020a0390811691161461053d57600080fd5b60005460a060020a900460ff161561055457600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a150600190565b6000805460a060020a900460ff1615156105c357600080fd5b60005433600160a060020a039081169116146105de57600080fd5b5060008181526003602052604090206105f681610b21565b151561060157600080fd5b8054610617908390600160a060020a0316610b42565b5050565b600054600160a060020a031681565b60008181526003602052604081209061064282610b21565b151561064d57600080fd5b508054600160a060020a03908116903316811461066957600080fd5b6106738382610b42565b505050565b600081815260036020526040812061068f81610b21565b151561069a57600080fd5b6106a381610b8c565b9392505050565b600154600160a060020a031681565b60005433600160a060020a039081169116146106d457600080fd5b600160a060020a038116156104055760008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550565b600154600090600160a060020a038085169116636352211e8460405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561075f57600080fd5b5af1151561076c57600080fd5b50505060405180519050600160a060020a031614905092915050565b600154600160a060020a03166323b872dd83308460405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107eb57600080fd5b5af115156107f857600080fd5b5050505050565b603c816060015167ffffffffffffffff16101561081b57600080fd5b600082815260036020526040902081908151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039190911617815560208201516001820180546fffffffffffffffffffffffffffffffff19166001608060020a039290921691909117905560408201516001820180546001608060020a03928316700100000000000000000000000000000000029216919091179055606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201516002909101805467ffffffffffffffff9290921668010000000000000000026fffffffffffffffff000000000000000019909216919091179055507fa9c8dfcda5664a5a124c713e386da27de87432d5b668e79458501eb296389ba78260208301516001608060020a031683604001516001608060020a0316846060015167ffffffffffffffff166040518085815260200184815260200183815260200182815260200194505050505060405180910390a15050565b600082815260036020526040812081808080806109b686610b21565b15156109c157600080fd5b6109ca86610b8c565b9450848810156109d957600080fd5b8554600160a060020a031693506109ef89610c13565b6000851115610a3957610a0185610c60565b92508285039150600160a060020a03841682156108fc0283604051600060405180830381858888f193505050501515610a3957600080fd5b50838703600160a060020a03331681156108fc0282604051600060405180830381858888f193505050501515610a6e57600080fd5b7f4fcc30d90a842164dd58501ab874a101a3749c3d4747139cefe7c876f4ccebd28986336040519283526020830191909152600160a060020a03166040808301919091526060909101905180910390a15092979650505050505050565b600154600160a060020a031663a9059cbb838360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156107eb57600080fd5b6002015460006801000000000000000090910467ffffffffffffffff161190565b610b4b82610c13565b610b558183610acb565b7f2809c7e17bf978fbc7194c0a694b638c4215e9140cacc6c38ca36010b45697df8260405190815260200160405180910390a15050565b6002810154600090819068010000000000000000900467ffffffffffffffff16421115610bd25750600282015468010000000000000000900467ffffffffffffffff1642035b600183015460028401546106a3916001608060020a0380821692700100000000000000000000000000000000909204169067ffffffffffffffff1684610c6c565b6000908152600360205260408120805473ffffffffffffffffffffffffffffffffffffffff19168155600181019190915560020180546fffffffffffffffffffffffffffffffff19169055565b60025461271091020490565b6000808080858510610c8057869350610c9e565b878703925085858402811515610c9257fe5b05915081880190508093505b505050949350505050565b60a06040519081016040908152600080835260208301819052908201819052606082018190526080820152905600a165627a7a7230582012c4316600eb344490ef44ce513857e05c89e9b2f102d2e58d9517941e7502680029"
    52  
    53  // DeployClockAuction deploys a new Ethereum contract, binding an instance of ClockAuction to it.
    54  func DeployClockAuction(auth *bind.TransactOpts, backend bind.ContractBackend, _nftAddress common.Address, _cut *big.Int) (common.Address, *types.Transaction, *ClockAuction, error) {
    55  	parsed, err := abi.JSON(strings.NewReader(ClockAuctionABI))
    56  	if err != nil {
    57  		return common.Address{}, nil, nil, err
    58  	}
    59  
    60  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(ClockAuctionBin), backend, _nftAddress, _cut)
    61  	if err != nil {
    62  		return common.Address{}, nil, nil, err
    63  	}
    64  	return address, tx, &ClockAuction{ClockAuctionCaller: ClockAuctionCaller{contract: contract}, ClockAuctionTransactor: ClockAuctionTransactor{contract: contract}, ClockAuctionFilterer: ClockAuctionFilterer{contract: contract}}, nil
    65  }
    66  
    67  // ClockAuction is an auto generated Go binding around an Ethereum contract.
    68  type ClockAuction struct {
    69  	ClockAuctionCaller     // Read-only binding to the contract
    70  	ClockAuctionTransactor // Write-only binding to the contract
    71  	ClockAuctionFilterer   // Log filterer for contract events
    72  }
    73  
    74  // ClockAuctionCaller is an auto generated read-only Go binding around an Ethereum contract.
    75  type ClockAuctionCaller struct {
    76  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    77  }
    78  
    79  // ClockAuctionTransactor is an auto generated write-only Go binding around an Ethereum contract.
    80  type ClockAuctionTransactor struct {
    81  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    82  }
    83  
    84  // ClockAuctionFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
    85  type ClockAuctionFilterer struct {
    86  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    87  }
    88  
    89  // ClockAuctionSession is an auto generated Go binding around an Ethereum contract,
    90  // with pre-set call and transact options.
    91  type ClockAuctionSession struct {
    92  	Contract     *ClockAuction     // Generic contract binding to set the session for
    93  	CallOpts     bind.CallOpts     // Call options to use throughout this session
    94  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
    95  }
    96  
    97  // ClockAuctionCallerSession is an auto generated read-only Go binding around an Ethereum contract,
    98  // with pre-set call options.
    99  type ClockAuctionCallerSession struct {
   100  	Contract *ClockAuctionCaller // Generic contract caller binding to set the session for
   101  	CallOpts bind.CallOpts       // Call options to use throughout this session
   102  }
   103  
   104  // ClockAuctionTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
   105  // with pre-set transact options.
   106  type ClockAuctionTransactorSession struct {
   107  	Contract     *ClockAuctionTransactor // Generic contract transactor binding to set the session for
   108  	TransactOpts bind.TransactOpts       // Transaction auth options to use throughout this session
   109  }
   110  
   111  // ClockAuctionRaw is an auto generated low-level Go binding around an Ethereum contract.
   112  type ClockAuctionRaw struct {
   113  	Contract *ClockAuction // Generic contract binding to access the raw methods on
   114  }
   115  
   116  // ClockAuctionCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
   117  type ClockAuctionCallerRaw struct {
   118  	Contract *ClockAuctionCaller // Generic read-only contract binding to access the raw methods on
   119  }
   120  
   121  // ClockAuctionTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
   122  type ClockAuctionTransactorRaw struct {
   123  	Contract *ClockAuctionTransactor // Generic write-only contract binding to access the raw methods on
   124  }
   125  
   126  // NewClockAuction creates a new instance of ClockAuction, bound to a specific deployed contract.
   127  func NewClockAuction(address common.Address, backend bind.ContractBackend) (*ClockAuction, error) {
   128  	contract, err := bindClockAuction(address, backend, backend, backend)
   129  	if err != nil {
   130  		return nil, err
   131  	}
   132  	return &ClockAuction{ClockAuctionCaller: ClockAuctionCaller{contract: contract}, ClockAuctionTransactor: ClockAuctionTransactor{contract: contract}, ClockAuctionFilterer: ClockAuctionFilterer{contract: contract}}, nil
   133  }
   134  
   135  // NewClockAuctionCaller creates a new read-only instance of ClockAuction, bound to a specific deployed contract.
   136  func NewClockAuctionCaller(address common.Address, caller bind.ContractCaller) (*ClockAuctionCaller, error) {
   137  	contract, err := bindClockAuction(address, caller, nil, nil)
   138  	if err != nil {
   139  		return nil, err
   140  	}
   141  	return &ClockAuctionCaller{contract: contract}, nil
   142  }
   143  
   144  // NewClockAuctionTransactor creates a new write-only instance of ClockAuction, bound to a specific deployed contract.
   145  func NewClockAuctionTransactor(address common.Address, transactor bind.ContractTransactor) (*ClockAuctionTransactor, error) {
   146  	contract, err := bindClockAuction(address, nil, transactor, nil)
   147  	if err != nil {
   148  		return nil, err
   149  	}
   150  	return &ClockAuctionTransactor{contract: contract}, nil
   151  }
   152  
   153  // NewClockAuctionFilterer creates a new log filterer instance of ClockAuction, bound to a specific deployed contract.
   154  func NewClockAuctionFilterer(address common.Address, filterer bind.ContractFilterer) (*ClockAuctionFilterer, error) {
   155  	contract, err := bindClockAuction(address, nil, nil, filterer)
   156  	if err != nil {
   157  		return nil, err
   158  	}
   159  	return &ClockAuctionFilterer{contract: contract}, nil
   160  }
   161  
   162  // bindClockAuction binds a generic wrapper to an already deployed contract.
   163  func bindClockAuction(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   164  	parsed, err := abi.JSON(strings.NewReader(ClockAuctionABI))
   165  	if err != nil {
   166  		return nil, err
   167  	}
   168  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   169  }
   170  
   171  // Call invokes the (constant) contract method with params as input values and
   172  // sets the output to result. The result type might be a single field for simple
   173  // returns, a slice of interfaces for anonymous returns and a struct for named
   174  // returns.
   175  func (_ClockAuction *ClockAuctionRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   176  	return _ClockAuction.Contract.ClockAuctionCaller.contract.Call(opts, result, method, params...)
   177  }
   178  
   179  // Transfer initiates a plain transaction to move funds to the contract, calling
   180  // its default method if one is available.
   181  func (_ClockAuction *ClockAuctionRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   182  	return _ClockAuction.Contract.ClockAuctionTransactor.contract.Transfer(opts)
   183  }
   184  
   185  // Transact invokes the (paid) contract method with params as input values.
   186  func (_ClockAuction *ClockAuctionRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   187  	return _ClockAuction.Contract.ClockAuctionTransactor.contract.Transact(opts, method, params...)
   188  }
   189  
   190  // Call invokes the (constant) contract method with params as input values and
   191  // sets the output to result. The result type might be a single field for simple
   192  // returns, a slice of interfaces for anonymous returns and a struct for named
   193  // returns.
   194  func (_ClockAuction *ClockAuctionCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   195  	return _ClockAuction.Contract.contract.Call(opts, result, method, params...)
   196  }
   197  
   198  // Transfer initiates a plain transaction to move funds to the contract, calling
   199  // its default method if one is available.
   200  func (_ClockAuction *ClockAuctionTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   201  	return _ClockAuction.Contract.contract.Transfer(opts)
   202  }
   203  
   204  // Transact invokes the (paid) contract method with params as input values.
   205  func (_ClockAuction *ClockAuctionTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   206  	return _ClockAuction.Contract.contract.Transact(opts, method, params...)
   207  }
   208  
   209  // GetAuction is a free data retrieval call binding the contract method 0x78bd7935.
   210  //
   211  // Solidity: function getAuction(uint256 _tokenId) view returns(address seller, uint256 startingPrice, uint256 endingPrice, uint256 duration, uint256 startedAt)
   212  func (_ClockAuction *ClockAuctionCaller) GetAuction(opts *bind.CallOpts, _tokenId *big.Int) (struct {
   213  	Seller        common.Address
   214  	StartingPrice *big.Int
   215  	EndingPrice   *big.Int
   216  	Duration      *big.Int
   217  	StartedAt     *big.Int
   218  }, error) {
   219  	var out []interface{}
   220  	err := _ClockAuction.contract.Call(opts, &out, "getAuction", _tokenId)
   221  
   222  	outstruct := new(struct {
   223  		Seller        common.Address
   224  		StartingPrice *big.Int
   225  		EndingPrice   *big.Int
   226  		Duration      *big.Int
   227  		StartedAt     *big.Int
   228  	})
   229  
   230  	outstruct.Seller = out[0].(common.Address)
   231  	outstruct.StartingPrice = out[1].(*big.Int)
   232  	outstruct.EndingPrice = out[2].(*big.Int)
   233  	outstruct.Duration = out[3].(*big.Int)
   234  	outstruct.StartedAt = out[4].(*big.Int)
   235  
   236  	return *outstruct, err
   237  
   238  }
   239  
   240  // GetAuction is a free data retrieval call binding the contract method 0x78bd7935.
   241  //
   242  // Solidity: function getAuction(uint256 _tokenId) view returns(address seller, uint256 startingPrice, uint256 endingPrice, uint256 duration, uint256 startedAt)
   243  func (_ClockAuction *ClockAuctionSession) GetAuction(_tokenId *big.Int) (struct {
   244  	Seller        common.Address
   245  	StartingPrice *big.Int
   246  	EndingPrice   *big.Int
   247  	Duration      *big.Int
   248  	StartedAt     *big.Int
   249  }, error) {
   250  	return _ClockAuction.Contract.GetAuction(&_ClockAuction.CallOpts, _tokenId)
   251  }
   252  
   253  // GetAuction is a free data retrieval call binding the contract method 0x78bd7935.
   254  //
   255  // Solidity: function getAuction(uint256 _tokenId) view returns(address seller, uint256 startingPrice, uint256 endingPrice, uint256 duration, uint256 startedAt)
   256  func (_ClockAuction *ClockAuctionCallerSession) GetAuction(_tokenId *big.Int) (struct {
   257  	Seller        common.Address
   258  	StartingPrice *big.Int
   259  	EndingPrice   *big.Int
   260  	Duration      *big.Int
   261  	StartedAt     *big.Int
   262  }, error) {
   263  	return _ClockAuction.Contract.GetAuction(&_ClockAuction.CallOpts, _tokenId)
   264  }
   265  
   266  // GetCurrentPrice is a free data retrieval call binding the contract method 0xc55d0f56.
   267  //
   268  // Solidity: function getCurrentPrice(uint256 _tokenId) view returns(uint256)
   269  func (_ClockAuction *ClockAuctionCaller) GetCurrentPrice(opts *bind.CallOpts, _tokenId *big.Int) (*big.Int, error) {
   270  	var out []interface{}
   271  	err := _ClockAuction.contract.Call(opts, &out, "getCurrentPrice", _tokenId)
   272  
   273  	if err != nil {
   274  		return *new(*big.Int), err
   275  	}
   276  
   277  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   278  
   279  	return out0, err
   280  
   281  }
   282  
   283  // GetCurrentPrice is a free data retrieval call binding the contract method 0xc55d0f56.
   284  //
   285  // Solidity: function getCurrentPrice(uint256 _tokenId) view returns(uint256)
   286  func (_ClockAuction *ClockAuctionSession) GetCurrentPrice(_tokenId *big.Int) (*big.Int, error) {
   287  	return _ClockAuction.Contract.GetCurrentPrice(&_ClockAuction.CallOpts, _tokenId)
   288  }
   289  
   290  // GetCurrentPrice is a free data retrieval call binding the contract method 0xc55d0f56.
   291  //
   292  // Solidity: function getCurrentPrice(uint256 _tokenId) view returns(uint256)
   293  func (_ClockAuction *ClockAuctionCallerSession) GetCurrentPrice(_tokenId *big.Int) (*big.Int, error) {
   294  	return _ClockAuction.Contract.GetCurrentPrice(&_ClockAuction.CallOpts, _tokenId)
   295  }
   296  
   297  // NonFungibleContract is a free data retrieval call binding the contract method 0xdd1b7a0f.
   298  //
   299  // Solidity: function nonFungibleContract() view returns(address)
   300  func (_ClockAuction *ClockAuctionCaller) NonFungibleContract(opts *bind.CallOpts) (common.Address, error) {
   301  	var out []interface{}
   302  	err := _ClockAuction.contract.Call(opts, &out, "nonFungibleContract")
   303  
   304  	if err != nil {
   305  		return *new(common.Address), err
   306  	}
   307  
   308  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   309  
   310  	return out0, err
   311  
   312  }
   313  
   314  // NonFungibleContract is a free data retrieval call binding the contract method 0xdd1b7a0f.
   315  //
   316  // Solidity: function nonFungibleContract() view returns(address)
   317  func (_ClockAuction *ClockAuctionSession) NonFungibleContract() (common.Address, error) {
   318  	return _ClockAuction.Contract.NonFungibleContract(&_ClockAuction.CallOpts)
   319  }
   320  
   321  // NonFungibleContract is a free data retrieval call binding the contract method 0xdd1b7a0f.
   322  //
   323  // Solidity: function nonFungibleContract() view returns(address)
   324  func (_ClockAuction *ClockAuctionCallerSession) NonFungibleContract() (common.Address, error) {
   325  	return _ClockAuction.Contract.NonFungibleContract(&_ClockAuction.CallOpts)
   326  }
   327  
   328  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   329  //
   330  // Solidity: function owner() view returns(address)
   331  func (_ClockAuction *ClockAuctionCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
   332  	var out []interface{}
   333  	err := _ClockAuction.contract.Call(opts, &out, "owner")
   334  
   335  	if err != nil {
   336  		return *new(common.Address), err
   337  	}
   338  
   339  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   340  
   341  	return out0, err
   342  
   343  }
   344  
   345  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   346  //
   347  // Solidity: function owner() view returns(address)
   348  func (_ClockAuction *ClockAuctionSession) Owner() (common.Address, error) {
   349  	return _ClockAuction.Contract.Owner(&_ClockAuction.CallOpts)
   350  }
   351  
   352  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   353  //
   354  // Solidity: function owner() view returns(address)
   355  func (_ClockAuction *ClockAuctionCallerSession) Owner() (common.Address, error) {
   356  	return _ClockAuction.Contract.Owner(&_ClockAuction.CallOpts)
   357  }
   358  
   359  // OwnerCut is a free data retrieval call binding the contract method 0x83b5ff8b.
   360  //
   361  // Solidity: function ownerCut() view returns(uint256)
   362  func (_ClockAuction *ClockAuctionCaller) OwnerCut(opts *bind.CallOpts) (*big.Int, error) {
   363  	var out []interface{}
   364  	err := _ClockAuction.contract.Call(opts, &out, "ownerCut")
   365  
   366  	if err != nil {
   367  		return *new(*big.Int), err
   368  	}
   369  
   370  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   371  
   372  	return out0, err
   373  
   374  }
   375  
   376  // OwnerCut is a free data retrieval call binding the contract method 0x83b5ff8b.
   377  //
   378  // Solidity: function ownerCut() view returns(uint256)
   379  func (_ClockAuction *ClockAuctionSession) OwnerCut() (*big.Int, error) {
   380  	return _ClockAuction.Contract.OwnerCut(&_ClockAuction.CallOpts)
   381  }
   382  
   383  // OwnerCut is a free data retrieval call binding the contract method 0x83b5ff8b.
   384  //
   385  // Solidity: function ownerCut() view returns(uint256)
   386  func (_ClockAuction *ClockAuctionCallerSession) OwnerCut() (*big.Int, error) {
   387  	return _ClockAuction.Contract.OwnerCut(&_ClockAuction.CallOpts)
   388  }
   389  
   390  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
   391  //
   392  // Solidity: function paused() view returns(bool)
   393  func (_ClockAuction *ClockAuctionCaller) Paused(opts *bind.CallOpts) (bool, error) {
   394  	var out []interface{}
   395  	err := _ClockAuction.contract.Call(opts, &out, "paused")
   396  
   397  	if err != nil {
   398  		return *new(bool), err
   399  	}
   400  
   401  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   402  
   403  	return out0, err
   404  
   405  }
   406  
   407  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
   408  //
   409  // Solidity: function paused() view returns(bool)
   410  func (_ClockAuction *ClockAuctionSession) Paused() (bool, error) {
   411  	return _ClockAuction.Contract.Paused(&_ClockAuction.CallOpts)
   412  }
   413  
   414  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
   415  //
   416  // Solidity: function paused() view returns(bool)
   417  func (_ClockAuction *ClockAuctionCallerSession) Paused() (bool, error) {
   418  	return _ClockAuction.Contract.Paused(&_ClockAuction.CallOpts)
   419  }
   420  
   421  // Bid is a paid mutator transaction binding the contract method 0x454a2ab3.
   422  //
   423  // Solidity: function bid(uint256 _tokenId) payable returns()
   424  func (_ClockAuction *ClockAuctionTransactor) Bid(opts *bind.TransactOpts, _tokenId *big.Int) (*types.Transaction, error) {
   425  	return _ClockAuction.contract.Transact(opts, "bid", _tokenId)
   426  }
   427  
   428  // Bid is a paid mutator transaction binding the contract method 0x454a2ab3.
   429  //
   430  // Solidity: function bid(uint256 _tokenId) payable returns()
   431  func (_ClockAuction *ClockAuctionSession) Bid(_tokenId *big.Int) (*types.Transaction, error) {
   432  	return _ClockAuction.Contract.Bid(&_ClockAuction.TransactOpts, _tokenId)
   433  }
   434  
   435  // Bid is a paid mutator transaction binding the contract method 0x454a2ab3.
   436  //
   437  // Solidity: function bid(uint256 _tokenId) payable returns()
   438  func (_ClockAuction *ClockAuctionTransactorSession) Bid(_tokenId *big.Int) (*types.Transaction, error) {
   439  	return _ClockAuction.Contract.Bid(&_ClockAuction.TransactOpts, _tokenId)
   440  }
   441  
   442  // CancelAuction is a paid mutator transaction binding the contract method 0x96b5a755.
   443  //
   444  // Solidity: function cancelAuction(uint256 _tokenId) returns()
   445  func (_ClockAuction *ClockAuctionTransactor) CancelAuction(opts *bind.TransactOpts, _tokenId *big.Int) (*types.Transaction, error) {
   446  	return _ClockAuction.contract.Transact(opts, "cancelAuction", _tokenId)
   447  }
   448  
   449  // CancelAuction is a paid mutator transaction binding the contract method 0x96b5a755.
   450  //
   451  // Solidity: function cancelAuction(uint256 _tokenId) returns()
   452  func (_ClockAuction *ClockAuctionSession) CancelAuction(_tokenId *big.Int) (*types.Transaction, error) {
   453  	return _ClockAuction.Contract.CancelAuction(&_ClockAuction.TransactOpts, _tokenId)
   454  }
   455  
   456  // CancelAuction is a paid mutator transaction binding the contract method 0x96b5a755.
   457  //
   458  // Solidity: function cancelAuction(uint256 _tokenId) returns()
   459  func (_ClockAuction *ClockAuctionTransactorSession) CancelAuction(_tokenId *big.Int) (*types.Transaction, error) {
   460  	return _ClockAuction.Contract.CancelAuction(&_ClockAuction.TransactOpts, _tokenId)
   461  }
   462  
   463  // CancelAuctionWhenPaused is a paid mutator transaction binding the contract method 0x878eb368.
   464  //
   465  // Solidity: function cancelAuctionWhenPaused(uint256 _tokenId) returns()
   466  func (_ClockAuction *ClockAuctionTransactor) CancelAuctionWhenPaused(opts *bind.TransactOpts, _tokenId *big.Int) (*types.Transaction, error) {
   467  	return _ClockAuction.contract.Transact(opts, "cancelAuctionWhenPaused", _tokenId)
   468  }
   469  
   470  // CancelAuctionWhenPaused is a paid mutator transaction binding the contract method 0x878eb368.
   471  //
   472  // Solidity: function cancelAuctionWhenPaused(uint256 _tokenId) returns()
   473  func (_ClockAuction *ClockAuctionSession) CancelAuctionWhenPaused(_tokenId *big.Int) (*types.Transaction, error) {
   474  	return _ClockAuction.Contract.CancelAuctionWhenPaused(&_ClockAuction.TransactOpts, _tokenId)
   475  }
   476  
   477  // CancelAuctionWhenPaused is a paid mutator transaction binding the contract method 0x878eb368.
   478  //
   479  // Solidity: function cancelAuctionWhenPaused(uint256 _tokenId) returns()
   480  func (_ClockAuction *ClockAuctionTransactorSession) CancelAuctionWhenPaused(_tokenId *big.Int) (*types.Transaction, error) {
   481  	return _ClockAuction.Contract.CancelAuctionWhenPaused(&_ClockAuction.TransactOpts, _tokenId)
   482  }
   483  
   484  // CreateAuction is a paid mutator transaction binding the contract method 0x27ebe40a.
   485  //
   486  // Solidity: function createAuction(uint256 _tokenId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration, address _seller) returns()
   487  func (_ClockAuction *ClockAuctionTransactor) CreateAuction(opts *bind.TransactOpts, _tokenId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int, _seller common.Address) (*types.Transaction, error) {
   488  	return _ClockAuction.contract.Transact(opts, "createAuction", _tokenId, _startingPrice, _endingPrice, _duration, _seller)
   489  }
   490  
   491  // CreateAuction is a paid mutator transaction binding the contract method 0x27ebe40a.
   492  //
   493  // Solidity: function createAuction(uint256 _tokenId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration, address _seller) returns()
   494  func (_ClockAuction *ClockAuctionSession) CreateAuction(_tokenId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int, _seller common.Address) (*types.Transaction, error) {
   495  	return _ClockAuction.Contract.CreateAuction(&_ClockAuction.TransactOpts, _tokenId, _startingPrice, _endingPrice, _duration, _seller)
   496  }
   497  
   498  // CreateAuction is a paid mutator transaction binding the contract method 0x27ebe40a.
   499  //
   500  // Solidity: function createAuction(uint256 _tokenId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration, address _seller) returns()
   501  func (_ClockAuction *ClockAuctionTransactorSession) CreateAuction(_tokenId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int, _seller common.Address) (*types.Transaction, error) {
   502  	return _ClockAuction.Contract.CreateAuction(&_ClockAuction.TransactOpts, _tokenId, _startingPrice, _endingPrice, _duration, _seller)
   503  }
   504  
   505  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
   506  //
   507  // Solidity: function pause() returns(bool)
   508  func (_ClockAuction *ClockAuctionTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) {
   509  	return _ClockAuction.contract.Transact(opts, "pause")
   510  }
   511  
   512  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
   513  //
   514  // Solidity: function pause() returns(bool)
   515  func (_ClockAuction *ClockAuctionSession) Pause() (*types.Transaction, error) {
   516  	return _ClockAuction.Contract.Pause(&_ClockAuction.TransactOpts)
   517  }
   518  
   519  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
   520  //
   521  // Solidity: function pause() returns(bool)
   522  func (_ClockAuction *ClockAuctionTransactorSession) Pause() (*types.Transaction, error) {
   523  	return _ClockAuction.Contract.Pause(&_ClockAuction.TransactOpts)
   524  }
   525  
   526  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
   527  //
   528  // Solidity: function transferOwnership(address newOwner) returns()
   529  func (_ClockAuction *ClockAuctionTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
   530  	return _ClockAuction.contract.Transact(opts, "transferOwnership", newOwner)
   531  }
   532  
   533  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
   534  //
   535  // Solidity: function transferOwnership(address newOwner) returns()
   536  func (_ClockAuction *ClockAuctionSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
   537  	return _ClockAuction.Contract.TransferOwnership(&_ClockAuction.TransactOpts, newOwner)
   538  }
   539  
   540  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
   541  //
   542  // Solidity: function transferOwnership(address newOwner) returns()
   543  func (_ClockAuction *ClockAuctionTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
   544  	return _ClockAuction.Contract.TransferOwnership(&_ClockAuction.TransactOpts, newOwner)
   545  }
   546  
   547  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
   548  //
   549  // Solidity: function unpause() returns(bool)
   550  func (_ClockAuction *ClockAuctionTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) {
   551  	return _ClockAuction.contract.Transact(opts, "unpause")
   552  }
   553  
   554  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
   555  //
   556  // Solidity: function unpause() returns(bool)
   557  func (_ClockAuction *ClockAuctionSession) Unpause() (*types.Transaction, error) {
   558  	return _ClockAuction.Contract.Unpause(&_ClockAuction.TransactOpts)
   559  }
   560  
   561  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
   562  //
   563  // Solidity: function unpause() returns(bool)
   564  func (_ClockAuction *ClockAuctionTransactorSession) Unpause() (*types.Transaction, error) {
   565  	return _ClockAuction.Contract.Unpause(&_ClockAuction.TransactOpts)
   566  }
   567  
   568  // WithdrawBalance is a paid mutator transaction binding the contract method 0x5fd8c710.
   569  //
   570  // Solidity: function withdrawBalance() returns()
   571  func (_ClockAuction *ClockAuctionTransactor) WithdrawBalance(opts *bind.TransactOpts) (*types.Transaction, error) {
   572  	return _ClockAuction.contract.Transact(opts, "withdrawBalance")
   573  }
   574  
   575  // WithdrawBalance is a paid mutator transaction binding the contract method 0x5fd8c710.
   576  //
   577  // Solidity: function withdrawBalance() returns()
   578  func (_ClockAuction *ClockAuctionSession) WithdrawBalance() (*types.Transaction, error) {
   579  	return _ClockAuction.Contract.WithdrawBalance(&_ClockAuction.TransactOpts)
   580  }
   581  
   582  // WithdrawBalance is a paid mutator transaction binding the contract method 0x5fd8c710.
   583  //
   584  // Solidity: function withdrawBalance() returns()
   585  func (_ClockAuction *ClockAuctionTransactorSession) WithdrawBalance() (*types.Transaction, error) {
   586  	return _ClockAuction.Contract.WithdrawBalance(&_ClockAuction.TransactOpts)
   587  }
   588  
   589  // ClockAuctionAuctionCancelledIterator is returned from FilterAuctionCancelled and is used to iterate over the raw logs and unpacked data for AuctionCancelled events raised by the ClockAuction contract.
   590  type ClockAuctionAuctionCancelledIterator struct {
   591  	Event *ClockAuctionAuctionCancelled // Event containing the contract specifics and raw log
   592  
   593  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   594  	event    string              // Event name to use for unpacking event data
   595  
   596  	logs chan types.Log        // Log channel receiving the found contract events
   597  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   598  	done bool                  // Whether the subscription completed delivering logs
   599  	fail error                 // Occurred error to stop iteration
   600  }
   601  
   602  // Next advances the iterator to the subsequent event, returning whether there
   603  // are any more events found. In case of a retrieval or parsing error, false is
   604  // returned and Error() can be queried for the exact failure.
   605  func (it *ClockAuctionAuctionCancelledIterator) Next() bool {
   606  	// If the iterator failed, stop iterating
   607  	if it.fail != nil {
   608  		return false
   609  	}
   610  	// If the iterator completed, deliver directly whatever's available
   611  	if it.done {
   612  		select {
   613  		case log := <-it.logs:
   614  			it.Event = new(ClockAuctionAuctionCancelled)
   615  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   616  				it.fail = err
   617  				return false
   618  			}
   619  			it.Event.Raw = log
   620  			return true
   621  
   622  		default:
   623  			return false
   624  		}
   625  	}
   626  	// Iterator still in progress, wait for either a data or an error event
   627  	select {
   628  	case log := <-it.logs:
   629  		it.Event = new(ClockAuctionAuctionCancelled)
   630  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   631  			it.fail = err
   632  			return false
   633  		}
   634  		it.Event.Raw = log
   635  		return true
   636  
   637  	case err := <-it.sub.Err():
   638  		it.done = true
   639  		it.fail = err
   640  		return it.Next()
   641  	}
   642  }
   643  
   644  // Error returns any retrieval or parsing error occurred during filtering.
   645  func (it *ClockAuctionAuctionCancelledIterator) Error() error {
   646  	return it.fail
   647  }
   648  
   649  // Close terminates the iteration process, releasing any pending underlying
   650  // resources.
   651  func (it *ClockAuctionAuctionCancelledIterator) Close() error {
   652  	it.sub.Unsubscribe()
   653  	return nil
   654  }
   655  
   656  // ClockAuctionAuctionCancelled represents a AuctionCancelled event raised by the ClockAuction contract.
   657  type ClockAuctionAuctionCancelled struct {
   658  	TokenId *big.Int
   659  	Raw     types.Log // Blockchain specific contextual infos
   660  }
   661  
   662  // FilterAuctionCancelled is a free log retrieval operation binding the contract event 0x2809c7e17bf978fbc7194c0a694b638c4215e9140cacc6c38ca36010b45697df.
   663  //
   664  // Solidity: event AuctionCancelled(uint256 tokenId)
   665  func (_ClockAuction *ClockAuctionFilterer) FilterAuctionCancelled(opts *bind.FilterOpts) (*ClockAuctionAuctionCancelledIterator, error) {
   666  
   667  	logs, sub, err := _ClockAuction.contract.FilterLogs(opts, "AuctionCancelled")
   668  	if err != nil {
   669  		return nil, err
   670  	}
   671  	return &ClockAuctionAuctionCancelledIterator{contract: _ClockAuction.contract, event: "AuctionCancelled", logs: logs, sub: sub}, nil
   672  }
   673  
   674  // WatchAuctionCancelled is a free log subscription operation binding the contract event 0x2809c7e17bf978fbc7194c0a694b638c4215e9140cacc6c38ca36010b45697df.
   675  //
   676  // Solidity: event AuctionCancelled(uint256 tokenId)
   677  func (_ClockAuction *ClockAuctionFilterer) WatchAuctionCancelled(opts *bind.WatchOpts, sink chan<- *ClockAuctionAuctionCancelled) (event.Subscription, error) {
   678  
   679  	logs, sub, err := _ClockAuction.contract.WatchLogs(opts, "AuctionCancelled")
   680  	if err != nil {
   681  		return nil, err
   682  	}
   683  	return event.NewSubscription(func(quit <-chan struct{}) error {
   684  		defer sub.Unsubscribe()
   685  		for {
   686  			select {
   687  			case log := <-logs:
   688  				// New log arrived, parse the event and forward to the user
   689  				event := new(ClockAuctionAuctionCancelled)
   690  				if err := _ClockAuction.contract.UnpackLog(event, "AuctionCancelled", log); err != nil {
   691  					return err
   692  				}
   693  				event.Raw = log
   694  
   695  				select {
   696  				case sink <- event:
   697  				case err := <-sub.Err():
   698  					return err
   699  				case <-quit:
   700  					return nil
   701  				}
   702  			case err := <-sub.Err():
   703  				return err
   704  			case <-quit:
   705  				return nil
   706  			}
   707  		}
   708  	}), nil
   709  }
   710  
   711  // ParseAuctionCancelled is a log parse operation binding the contract event 0x2809c7e17bf978fbc7194c0a694b638c4215e9140cacc6c38ca36010b45697df.
   712  //
   713  // Solidity: event AuctionCancelled(uint256 tokenId)
   714  func (_ClockAuction *ClockAuctionFilterer) ParseAuctionCancelled(log types.Log) (*ClockAuctionAuctionCancelled, error) {
   715  	event := new(ClockAuctionAuctionCancelled)
   716  	if err := _ClockAuction.contract.UnpackLog(event, "AuctionCancelled", log); err != nil {
   717  		return nil, err
   718  	}
   719  	event.Raw = log
   720  	return event, nil
   721  }
   722  
   723  // ClockAuctionAuctionCreatedIterator is returned from FilterAuctionCreated and is used to iterate over the raw logs and unpacked data for AuctionCreated events raised by the ClockAuction contract.
   724  type ClockAuctionAuctionCreatedIterator struct {
   725  	Event *ClockAuctionAuctionCreated // Event containing the contract specifics and raw log
   726  
   727  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   728  	event    string              // Event name to use for unpacking event data
   729  
   730  	logs chan types.Log        // Log channel receiving the found contract events
   731  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   732  	done bool                  // Whether the subscription completed delivering logs
   733  	fail error                 // Occurred error to stop iteration
   734  }
   735  
   736  // Next advances the iterator to the subsequent event, returning whether there
   737  // are any more events found. In case of a retrieval or parsing error, false is
   738  // returned and Error() can be queried for the exact failure.
   739  func (it *ClockAuctionAuctionCreatedIterator) Next() bool {
   740  	// If the iterator failed, stop iterating
   741  	if it.fail != nil {
   742  		return false
   743  	}
   744  	// If the iterator completed, deliver directly whatever's available
   745  	if it.done {
   746  		select {
   747  		case log := <-it.logs:
   748  			it.Event = new(ClockAuctionAuctionCreated)
   749  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   750  				it.fail = err
   751  				return false
   752  			}
   753  			it.Event.Raw = log
   754  			return true
   755  
   756  		default:
   757  			return false
   758  		}
   759  	}
   760  	// Iterator still in progress, wait for either a data or an error event
   761  	select {
   762  	case log := <-it.logs:
   763  		it.Event = new(ClockAuctionAuctionCreated)
   764  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   765  			it.fail = err
   766  			return false
   767  		}
   768  		it.Event.Raw = log
   769  		return true
   770  
   771  	case err := <-it.sub.Err():
   772  		it.done = true
   773  		it.fail = err
   774  		return it.Next()
   775  	}
   776  }
   777  
   778  // Error returns any retrieval or parsing error occurred during filtering.
   779  func (it *ClockAuctionAuctionCreatedIterator) Error() error {
   780  	return it.fail
   781  }
   782  
   783  // Close terminates the iteration process, releasing any pending underlying
   784  // resources.
   785  func (it *ClockAuctionAuctionCreatedIterator) Close() error {
   786  	it.sub.Unsubscribe()
   787  	return nil
   788  }
   789  
   790  // ClockAuctionAuctionCreated represents a AuctionCreated event raised by the ClockAuction contract.
   791  type ClockAuctionAuctionCreated struct {
   792  	TokenId       *big.Int
   793  	StartingPrice *big.Int
   794  	EndingPrice   *big.Int
   795  	Duration      *big.Int
   796  	Raw           types.Log // Blockchain specific contextual infos
   797  }
   798  
   799  // FilterAuctionCreated is a free log retrieval operation binding the contract event 0xa9c8dfcda5664a5a124c713e386da27de87432d5b668e79458501eb296389ba7.
   800  //
   801  // Solidity: event AuctionCreated(uint256 tokenId, uint256 startingPrice, uint256 endingPrice, uint256 duration)
   802  func (_ClockAuction *ClockAuctionFilterer) FilterAuctionCreated(opts *bind.FilterOpts) (*ClockAuctionAuctionCreatedIterator, error) {
   803  
   804  	logs, sub, err := _ClockAuction.contract.FilterLogs(opts, "AuctionCreated")
   805  	if err != nil {
   806  		return nil, err
   807  	}
   808  	return &ClockAuctionAuctionCreatedIterator{contract: _ClockAuction.contract, event: "AuctionCreated", logs: logs, sub: sub}, nil
   809  }
   810  
   811  // WatchAuctionCreated is a free log subscription operation binding the contract event 0xa9c8dfcda5664a5a124c713e386da27de87432d5b668e79458501eb296389ba7.
   812  //
   813  // Solidity: event AuctionCreated(uint256 tokenId, uint256 startingPrice, uint256 endingPrice, uint256 duration)
   814  func (_ClockAuction *ClockAuctionFilterer) WatchAuctionCreated(opts *bind.WatchOpts, sink chan<- *ClockAuctionAuctionCreated) (event.Subscription, error) {
   815  
   816  	logs, sub, err := _ClockAuction.contract.WatchLogs(opts, "AuctionCreated")
   817  	if err != nil {
   818  		return nil, err
   819  	}
   820  	return event.NewSubscription(func(quit <-chan struct{}) error {
   821  		defer sub.Unsubscribe()
   822  		for {
   823  			select {
   824  			case log := <-logs:
   825  				// New log arrived, parse the event and forward to the user
   826  				event := new(ClockAuctionAuctionCreated)
   827  				if err := _ClockAuction.contract.UnpackLog(event, "AuctionCreated", log); err != nil {
   828  					return err
   829  				}
   830  				event.Raw = log
   831  
   832  				select {
   833  				case sink <- event:
   834  				case err := <-sub.Err():
   835  					return err
   836  				case <-quit:
   837  					return nil
   838  				}
   839  			case err := <-sub.Err():
   840  				return err
   841  			case <-quit:
   842  				return nil
   843  			}
   844  		}
   845  	}), nil
   846  }
   847  
   848  // ParseAuctionCreated is a log parse operation binding the contract event 0xa9c8dfcda5664a5a124c713e386da27de87432d5b668e79458501eb296389ba7.
   849  //
   850  // Solidity: event AuctionCreated(uint256 tokenId, uint256 startingPrice, uint256 endingPrice, uint256 duration)
   851  func (_ClockAuction *ClockAuctionFilterer) ParseAuctionCreated(log types.Log) (*ClockAuctionAuctionCreated, error) {
   852  	event := new(ClockAuctionAuctionCreated)
   853  	if err := _ClockAuction.contract.UnpackLog(event, "AuctionCreated", log); err != nil {
   854  		return nil, err
   855  	}
   856  	event.Raw = log
   857  	return event, nil
   858  }
   859  
   860  // ClockAuctionAuctionSuccessfulIterator is returned from FilterAuctionSuccessful and is used to iterate over the raw logs and unpacked data for AuctionSuccessful events raised by the ClockAuction contract.
   861  type ClockAuctionAuctionSuccessfulIterator struct {
   862  	Event *ClockAuctionAuctionSuccessful // Event containing the contract specifics and raw log
   863  
   864  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   865  	event    string              // Event name to use for unpacking event data
   866  
   867  	logs chan types.Log        // Log channel receiving the found contract events
   868  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   869  	done bool                  // Whether the subscription completed delivering logs
   870  	fail error                 // Occurred error to stop iteration
   871  }
   872  
   873  // Next advances the iterator to the subsequent event, returning whether there
   874  // are any more events found. In case of a retrieval or parsing error, false is
   875  // returned and Error() can be queried for the exact failure.
   876  func (it *ClockAuctionAuctionSuccessfulIterator) Next() bool {
   877  	// If the iterator failed, stop iterating
   878  	if it.fail != nil {
   879  		return false
   880  	}
   881  	// If the iterator completed, deliver directly whatever's available
   882  	if it.done {
   883  		select {
   884  		case log := <-it.logs:
   885  			it.Event = new(ClockAuctionAuctionSuccessful)
   886  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   887  				it.fail = err
   888  				return false
   889  			}
   890  			it.Event.Raw = log
   891  			return true
   892  
   893  		default:
   894  			return false
   895  		}
   896  	}
   897  	// Iterator still in progress, wait for either a data or an error event
   898  	select {
   899  	case log := <-it.logs:
   900  		it.Event = new(ClockAuctionAuctionSuccessful)
   901  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   902  			it.fail = err
   903  			return false
   904  		}
   905  		it.Event.Raw = log
   906  		return true
   907  
   908  	case err := <-it.sub.Err():
   909  		it.done = true
   910  		it.fail = err
   911  		return it.Next()
   912  	}
   913  }
   914  
   915  // Error returns any retrieval or parsing error occurred during filtering.
   916  func (it *ClockAuctionAuctionSuccessfulIterator) Error() error {
   917  	return it.fail
   918  }
   919  
   920  // Close terminates the iteration process, releasing any pending underlying
   921  // resources.
   922  func (it *ClockAuctionAuctionSuccessfulIterator) Close() error {
   923  	it.sub.Unsubscribe()
   924  	return nil
   925  }
   926  
   927  // ClockAuctionAuctionSuccessful represents a AuctionSuccessful event raised by the ClockAuction contract.
   928  type ClockAuctionAuctionSuccessful struct {
   929  	TokenId    *big.Int
   930  	TotalPrice *big.Int
   931  	Winner     common.Address
   932  	Raw        types.Log // Blockchain specific contextual infos
   933  }
   934  
   935  // FilterAuctionSuccessful is a free log retrieval operation binding the contract event 0x4fcc30d90a842164dd58501ab874a101a3749c3d4747139cefe7c876f4ccebd2.
   936  //
   937  // Solidity: event AuctionSuccessful(uint256 tokenId, uint256 totalPrice, address winner)
   938  func (_ClockAuction *ClockAuctionFilterer) FilterAuctionSuccessful(opts *bind.FilterOpts) (*ClockAuctionAuctionSuccessfulIterator, error) {
   939  
   940  	logs, sub, err := _ClockAuction.contract.FilterLogs(opts, "AuctionSuccessful")
   941  	if err != nil {
   942  		return nil, err
   943  	}
   944  	return &ClockAuctionAuctionSuccessfulIterator{contract: _ClockAuction.contract, event: "AuctionSuccessful", logs: logs, sub: sub}, nil
   945  }
   946  
   947  // WatchAuctionSuccessful is a free log subscription operation binding the contract event 0x4fcc30d90a842164dd58501ab874a101a3749c3d4747139cefe7c876f4ccebd2.
   948  //
   949  // Solidity: event AuctionSuccessful(uint256 tokenId, uint256 totalPrice, address winner)
   950  func (_ClockAuction *ClockAuctionFilterer) WatchAuctionSuccessful(opts *bind.WatchOpts, sink chan<- *ClockAuctionAuctionSuccessful) (event.Subscription, error) {
   951  
   952  	logs, sub, err := _ClockAuction.contract.WatchLogs(opts, "AuctionSuccessful")
   953  	if err != nil {
   954  		return nil, err
   955  	}
   956  	return event.NewSubscription(func(quit <-chan struct{}) error {
   957  		defer sub.Unsubscribe()
   958  		for {
   959  			select {
   960  			case log := <-logs:
   961  				// New log arrived, parse the event and forward to the user
   962  				event := new(ClockAuctionAuctionSuccessful)
   963  				if err := _ClockAuction.contract.UnpackLog(event, "AuctionSuccessful", log); err != nil {
   964  					return err
   965  				}
   966  				event.Raw = log
   967  
   968  				select {
   969  				case sink <- event:
   970  				case err := <-sub.Err():
   971  					return err
   972  				case <-quit:
   973  					return nil
   974  				}
   975  			case err := <-sub.Err():
   976  				return err
   977  			case <-quit:
   978  				return nil
   979  			}
   980  		}
   981  	}), nil
   982  }
   983  
   984  // ParseAuctionSuccessful is a log parse operation binding the contract event 0x4fcc30d90a842164dd58501ab874a101a3749c3d4747139cefe7c876f4ccebd2.
   985  //
   986  // Solidity: event AuctionSuccessful(uint256 tokenId, uint256 totalPrice, address winner)
   987  func (_ClockAuction *ClockAuctionFilterer) ParseAuctionSuccessful(log types.Log) (*ClockAuctionAuctionSuccessful, error) {
   988  	event := new(ClockAuctionAuctionSuccessful)
   989  	if err := _ClockAuction.contract.UnpackLog(event, "AuctionSuccessful", log); err != nil {
   990  		return nil, err
   991  	}
   992  	event.Raw = log
   993  	return event, nil
   994  }
   995  
   996  // ClockAuctionPauseIterator is returned from FilterPause and is used to iterate over the raw logs and unpacked data for Pause events raised by the ClockAuction contract.
   997  type ClockAuctionPauseIterator struct {
   998  	Event *ClockAuctionPause // Event containing the contract specifics and raw log
   999  
  1000  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1001  	event    string              // Event name to use for unpacking event data
  1002  
  1003  	logs chan types.Log        // Log channel receiving the found contract events
  1004  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1005  	done bool                  // Whether the subscription completed delivering logs
  1006  	fail error                 // Occurred error to stop iteration
  1007  }
  1008  
  1009  // Next advances the iterator to the subsequent event, returning whether there
  1010  // are any more events found. In case of a retrieval or parsing error, false is
  1011  // returned and Error() can be queried for the exact failure.
  1012  func (it *ClockAuctionPauseIterator) Next() bool {
  1013  	// If the iterator failed, stop iterating
  1014  	if it.fail != nil {
  1015  		return false
  1016  	}
  1017  	// If the iterator completed, deliver directly whatever's available
  1018  	if it.done {
  1019  		select {
  1020  		case log := <-it.logs:
  1021  			it.Event = new(ClockAuctionPause)
  1022  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1023  				it.fail = err
  1024  				return false
  1025  			}
  1026  			it.Event.Raw = log
  1027  			return true
  1028  
  1029  		default:
  1030  			return false
  1031  		}
  1032  	}
  1033  	// Iterator still in progress, wait for either a data or an error event
  1034  	select {
  1035  	case log := <-it.logs:
  1036  		it.Event = new(ClockAuctionPause)
  1037  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1038  			it.fail = err
  1039  			return false
  1040  		}
  1041  		it.Event.Raw = log
  1042  		return true
  1043  
  1044  	case err := <-it.sub.Err():
  1045  		it.done = true
  1046  		it.fail = err
  1047  		return it.Next()
  1048  	}
  1049  }
  1050  
  1051  // Error returns any retrieval or parsing error occurred during filtering.
  1052  func (it *ClockAuctionPauseIterator) Error() error {
  1053  	return it.fail
  1054  }
  1055  
  1056  // Close terminates the iteration process, releasing any pending underlying
  1057  // resources.
  1058  func (it *ClockAuctionPauseIterator) Close() error {
  1059  	it.sub.Unsubscribe()
  1060  	return nil
  1061  }
  1062  
  1063  // ClockAuctionPause represents a Pause event raised by the ClockAuction contract.
  1064  type ClockAuctionPause struct {
  1065  	Raw types.Log // Blockchain specific contextual infos
  1066  }
  1067  
  1068  // FilterPause is a free log retrieval operation binding the contract event 0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625.
  1069  //
  1070  // Solidity: event Pause()
  1071  func (_ClockAuction *ClockAuctionFilterer) FilterPause(opts *bind.FilterOpts) (*ClockAuctionPauseIterator, error) {
  1072  
  1073  	logs, sub, err := _ClockAuction.contract.FilterLogs(opts, "Pause")
  1074  	if err != nil {
  1075  		return nil, err
  1076  	}
  1077  	return &ClockAuctionPauseIterator{contract: _ClockAuction.contract, event: "Pause", logs: logs, sub: sub}, nil
  1078  }
  1079  
  1080  // WatchPause is a free log subscription operation binding the contract event 0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625.
  1081  //
  1082  // Solidity: event Pause()
  1083  func (_ClockAuction *ClockAuctionFilterer) WatchPause(opts *bind.WatchOpts, sink chan<- *ClockAuctionPause) (event.Subscription, error) {
  1084  
  1085  	logs, sub, err := _ClockAuction.contract.WatchLogs(opts, "Pause")
  1086  	if err != nil {
  1087  		return nil, err
  1088  	}
  1089  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1090  		defer sub.Unsubscribe()
  1091  		for {
  1092  			select {
  1093  			case log := <-logs:
  1094  				// New log arrived, parse the event and forward to the user
  1095  				event := new(ClockAuctionPause)
  1096  				if err := _ClockAuction.contract.UnpackLog(event, "Pause", log); err != nil {
  1097  					return err
  1098  				}
  1099  				event.Raw = log
  1100  
  1101  				select {
  1102  				case sink <- event:
  1103  				case err := <-sub.Err():
  1104  					return err
  1105  				case <-quit:
  1106  					return nil
  1107  				}
  1108  			case err := <-sub.Err():
  1109  				return err
  1110  			case <-quit:
  1111  				return nil
  1112  			}
  1113  		}
  1114  	}), nil
  1115  }
  1116  
  1117  // ParsePause is a log parse operation binding the contract event 0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625.
  1118  //
  1119  // Solidity: event Pause()
  1120  func (_ClockAuction *ClockAuctionFilterer) ParsePause(log types.Log) (*ClockAuctionPause, error) {
  1121  	event := new(ClockAuctionPause)
  1122  	if err := _ClockAuction.contract.UnpackLog(event, "Pause", log); err != nil {
  1123  		return nil, err
  1124  	}
  1125  	event.Raw = log
  1126  	return event, nil
  1127  }
  1128  
  1129  // ClockAuctionUnpauseIterator is returned from FilterUnpause and is used to iterate over the raw logs and unpacked data for Unpause events raised by the ClockAuction contract.
  1130  type ClockAuctionUnpauseIterator struct {
  1131  	Event *ClockAuctionUnpause // Event containing the contract specifics and raw log
  1132  
  1133  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1134  	event    string              // Event name to use for unpacking event data
  1135  
  1136  	logs chan types.Log        // Log channel receiving the found contract events
  1137  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1138  	done bool                  // Whether the subscription completed delivering logs
  1139  	fail error                 // Occurred error to stop iteration
  1140  }
  1141  
  1142  // Next advances the iterator to the subsequent event, returning whether there
  1143  // are any more events found. In case of a retrieval or parsing error, false is
  1144  // returned and Error() can be queried for the exact failure.
  1145  func (it *ClockAuctionUnpauseIterator) Next() bool {
  1146  	// If the iterator failed, stop iterating
  1147  	if it.fail != nil {
  1148  		return false
  1149  	}
  1150  	// If the iterator completed, deliver directly whatever's available
  1151  	if it.done {
  1152  		select {
  1153  		case log := <-it.logs:
  1154  			it.Event = new(ClockAuctionUnpause)
  1155  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1156  				it.fail = err
  1157  				return false
  1158  			}
  1159  			it.Event.Raw = log
  1160  			return true
  1161  
  1162  		default:
  1163  			return false
  1164  		}
  1165  	}
  1166  	// Iterator still in progress, wait for either a data or an error event
  1167  	select {
  1168  	case log := <-it.logs:
  1169  		it.Event = new(ClockAuctionUnpause)
  1170  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1171  			it.fail = err
  1172  			return false
  1173  		}
  1174  		it.Event.Raw = log
  1175  		return true
  1176  
  1177  	case err := <-it.sub.Err():
  1178  		it.done = true
  1179  		it.fail = err
  1180  		return it.Next()
  1181  	}
  1182  }
  1183  
  1184  // Error returns any retrieval or parsing error occurred during filtering.
  1185  func (it *ClockAuctionUnpauseIterator) Error() error {
  1186  	return it.fail
  1187  }
  1188  
  1189  // Close terminates the iteration process, releasing any pending underlying
  1190  // resources.
  1191  func (it *ClockAuctionUnpauseIterator) Close() error {
  1192  	it.sub.Unsubscribe()
  1193  	return nil
  1194  }
  1195  
  1196  // ClockAuctionUnpause represents a Unpause event raised by the ClockAuction contract.
  1197  type ClockAuctionUnpause struct {
  1198  	Raw types.Log // Blockchain specific contextual infos
  1199  }
  1200  
  1201  // FilterUnpause is a free log retrieval operation binding the contract event 0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33.
  1202  //
  1203  // Solidity: event Unpause()
  1204  func (_ClockAuction *ClockAuctionFilterer) FilterUnpause(opts *bind.FilterOpts) (*ClockAuctionUnpauseIterator, error) {
  1205  
  1206  	logs, sub, err := _ClockAuction.contract.FilterLogs(opts, "Unpause")
  1207  	if err != nil {
  1208  		return nil, err
  1209  	}
  1210  	return &ClockAuctionUnpauseIterator{contract: _ClockAuction.contract, event: "Unpause", logs: logs, sub: sub}, nil
  1211  }
  1212  
  1213  // WatchUnpause is a free log subscription operation binding the contract event 0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33.
  1214  //
  1215  // Solidity: event Unpause()
  1216  func (_ClockAuction *ClockAuctionFilterer) WatchUnpause(opts *bind.WatchOpts, sink chan<- *ClockAuctionUnpause) (event.Subscription, error) {
  1217  
  1218  	logs, sub, err := _ClockAuction.contract.WatchLogs(opts, "Unpause")
  1219  	if err != nil {
  1220  		return nil, err
  1221  	}
  1222  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1223  		defer sub.Unsubscribe()
  1224  		for {
  1225  			select {
  1226  			case log := <-logs:
  1227  				// New log arrived, parse the event and forward to the user
  1228  				event := new(ClockAuctionUnpause)
  1229  				if err := _ClockAuction.contract.UnpackLog(event, "Unpause", log); err != nil {
  1230  					return err
  1231  				}
  1232  				event.Raw = log
  1233  
  1234  				select {
  1235  				case sink <- event:
  1236  				case err := <-sub.Err():
  1237  					return err
  1238  				case <-quit:
  1239  					return nil
  1240  				}
  1241  			case err := <-sub.Err():
  1242  				return err
  1243  			case <-quit:
  1244  				return nil
  1245  			}
  1246  		}
  1247  	}), nil
  1248  }
  1249  
  1250  // ParseUnpause is a log parse operation binding the contract event 0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33.
  1251  //
  1252  // Solidity: event Unpause()
  1253  func (_ClockAuction *ClockAuctionFilterer) ParseUnpause(log types.Log) (*ClockAuctionUnpause, error) {
  1254  	event := new(ClockAuctionUnpause)
  1255  	if err := _ClockAuction.contract.UnpackLog(event, "Unpause", log); err != nil {
  1256  		return nil, err
  1257  	}
  1258  	event.Raw = log
  1259  	return event, nil
  1260  }
  1261  
  1262  // ClockAuctionBaseABI is the input ABI used to generate the binding from.
  1263  const ClockAuctionBaseABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"ownerCut\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nonFungibleContract\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"startingPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"endingPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"AuctionCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"totalPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"winner\",\"type\":\"address\"}],\"name\":\"AuctionSuccessful\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"AuctionCancelled\",\"type\":\"event\"}]"
  1264  
  1265  // ClockAuctionBaseFuncSigs maps the 4-byte function signature to its string representation.
  1266  var ClockAuctionBaseFuncSigs = map[string]string{
  1267  	"dd1b7a0f": "nonFungibleContract()",
  1268  	"83b5ff8b": "ownerCut()",
  1269  }
  1270  
  1271  // ClockAuctionBaseBin is the compiled bytecode used for deploying new contracts.
  1272  var ClockAuctionBaseBin = "0x6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166383b5ff8b8114604d578063dd1b7a0f14606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820fe3cea5d82af0f85fe74428c3c5bda702554c4149ace518dbca409d272de68e10029"
  1273  
  1274  // DeployClockAuctionBase deploys a new Ethereum contract, binding an instance of ClockAuctionBase to it.
  1275  func DeployClockAuctionBase(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ClockAuctionBase, error) {
  1276  	parsed, err := abi.JSON(strings.NewReader(ClockAuctionBaseABI))
  1277  	if err != nil {
  1278  		return common.Address{}, nil, nil, err
  1279  	}
  1280  
  1281  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(ClockAuctionBaseBin), backend)
  1282  	if err != nil {
  1283  		return common.Address{}, nil, nil, err
  1284  	}
  1285  	return address, tx, &ClockAuctionBase{ClockAuctionBaseCaller: ClockAuctionBaseCaller{contract: contract}, ClockAuctionBaseTransactor: ClockAuctionBaseTransactor{contract: contract}, ClockAuctionBaseFilterer: ClockAuctionBaseFilterer{contract: contract}}, nil
  1286  }
  1287  
  1288  // ClockAuctionBase is an auto generated Go binding around an Ethereum contract.
  1289  type ClockAuctionBase struct {
  1290  	ClockAuctionBaseCaller     // Read-only binding to the contract
  1291  	ClockAuctionBaseTransactor // Write-only binding to the contract
  1292  	ClockAuctionBaseFilterer   // Log filterer for contract events
  1293  }
  1294  
  1295  // ClockAuctionBaseCaller is an auto generated read-only Go binding around an Ethereum contract.
  1296  type ClockAuctionBaseCaller struct {
  1297  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1298  }
  1299  
  1300  // ClockAuctionBaseTransactor is an auto generated write-only Go binding around an Ethereum contract.
  1301  type ClockAuctionBaseTransactor struct {
  1302  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1303  }
  1304  
  1305  // ClockAuctionBaseFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  1306  type ClockAuctionBaseFilterer struct {
  1307  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1308  }
  1309  
  1310  // ClockAuctionBaseSession is an auto generated Go binding around an Ethereum contract,
  1311  // with pre-set call and transact options.
  1312  type ClockAuctionBaseSession struct {
  1313  	Contract     *ClockAuctionBase // Generic contract binding to set the session for
  1314  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  1315  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  1316  }
  1317  
  1318  // ClockAuctionBaseCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  1319  // with pre-set call options.
  1320  type ClockAuctionBaseCallerSession struct {
  1321  	Contract *ClockAuctionBaseCaller // Generic contract caller binding to set the session for
  1322  	CallOpts bind.CallOpts           // Call options to use throughout this session
  1323  }
  1324  
  1325  // ClockAuctionBaseTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  1326  // with pre-set transact options.
  1327  type ClockAuctionBaseTransactorSession struct {
  1328  	Contract     *ClockAuctionBaseTransactor // Generic contract transactor binding to set the session for
  1329  	TransactOpts bind.TransactOpts           // Transaction auth options to use throughout this session
  1330  }
  1331  
  1332  // ClockAuctionBaseRaw is an auto generated low-level Go binding around an Ethereum contract.
  1333  type ClockAuctionBaseRaw struct {
  1334  	Contract *ClockAuctionBase // Generic contract binding to access the raw methods on
  1335  }
  1336  
  1337  // ClockAuctionBaseCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  1338  type ClockAuctionBaseCallerRaw struct {
  1339  	Contract *ClockAuctionBaseCaller // Generic read-only contract binding to access the raw methods on
  1340  }
  1341  
  1342  // ClockAuctionBaseTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  1343  type ClockAuctionBaseTransactorRaw struct {
  1344  	Contract *ClockAuctionBaseTransactor // Generic write-only contract binding to access the raw methods on
  1345  }
  1346  
  1347  // NewClockAuctionBase creates a new instance of ClockAuctionBase, bound to a specific deployed contract.
  1348  func NewClockAuctionBase(address common.Address, backend bind.ContractBackend) (*ClockAuctionBase, error) {
  1349  	contract, err := bindClockAuctionBase(address, backend, backend, backend)
  1350  	if err != nil {
  1351  		return nil, err
  1352  	}
  1353  	return &ClockAuctionBase{ClockAuctionBaseCaller: ClockAuctionBaseCaller{contract: contract}, ClockAuctionBaseTransactor: ClockAuctionBaseTransactor{contract: contract}, ClockAuctionBaseFilterer: ClockAuctionBaseFilterer{contract: contract}}, nil
  1354  }
  1355  
  1356  // NewClockAuctionBaseCaller creates a new read-only instance of ClockAuctionBase, bound to a specific deployed contract.
  1357  func NewClockAuctionBaseCaller(address common.Address, caller bind.ContractCaller) (*ClockAuctionBaseCaller, error) {
  1358  	contract, err := bindClockAuctionBase(address, caller, nil, nil)
  1359  	if err != nil {
  1360  		return nil, err
  1361  	}
  1362  	return &ClockAuctionBaseCaller{contract: contract}, nil
  1363  }
  1364  
  1365  // NewClockAuctionBaseTransactor creates a new write-only instance of ClockAuctionBase, bound to a specific deployed contract.
  1366  func NewClockAuctionBaseTransactor(address common.Address, transactor bind.ContractTransactor) (*ClockAuctionBaseTransactor, error) {
  1367  	contract, err := bindClockAuctionBase(address, nil, transactor, nil)
  1368  	if err != nil {
  1369  		return nil, err
  1370  	}
  1371  	return &ClockAuctionBaseTransactor{contract: contract}, nil
  1372  }
  1373  
  1374  // NewClockAuctionBaseFilterer creates a new log filterer instance of ClockAuctionBase, bound to a specific deployed contract.
  1375  func NewClockAuctionBaseFilterer(address common.Address, filterer bind.ContractFilterer) (*ClockAuctionBaseFilterer, error) {
  1376  	contract, err := bindClockAuctionBase(address, nil, nil, filterer)
  1377  	if err != nil {
  1378  		return nil, err
  1379  	}
  1380  	return &ClockAuctionBaseFilterer{contract: contract}, nil
  1381  }
  1382  
  1383  // bindClockAuctionBase binds a generic wrapper to an already deployed contract.
  1384  func bindClockAuctionBase(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  1385  	parsed, err := abi.JSON(strings.NewReader(ClockAuctionBaseABI))
  1386  	if err != nil {
  1387  		return nil, err
  1388  	}
  1389  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  1390  }
  1391  
  1392  // Call invokes the (constant) contract method with params as input values and
  1393  // sets the output to result. The result type might be a single field for simple
  1394  // returns, a slice of interfaces for anonymous returns and a struct for named
  1395  // returns.
  1396  func (_ClockAuctionBase *ClockAuctionBaseRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  1397  	return _ClockAuctionBase.Contract.ClockAuctionBaseCaller.contract.Call(opts, result, method, params...)
  1398  }
  1399  
  1400  // Transfer initiates a plain transaction to move funds to the contract, calling
  1401  // its default method if one is available.
  1402  func (_ClockAuctionBase *ClockAuctionBaseRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  1403  	return _ClockAuctionBase.Contract.ClockAuctionBaseTransactor.contract.Transfer(opts)
  1404  }
  1405  
  1406  // Transact invokes the (paid) contract method with params as input values.
  1407  func (_ClockAuctionBase *ClockAuctionBaseRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  1408  	return _ClockAuctionBase.Contract.ClockAuctionBaseTransactor.contract.Transact(opts, method, params...)
  1409  }
  1410  
  1411  // Call invokes the (constant) contract method with params as input values and
  1412  // sets the output to result. The result type might be a single field for simple
  1413  // returns, a slice of interfaces for anonymous returns and a struct for named
  1414  // returns.
  1415  func (_ClockAuctionBase *ClockAuctionBaseCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  1416  	return _ClockAuctionBase.Contract.contract.Call(opts, result, method, params...)
  1417  }
  1418  
  1419  // Transfer initiates a plain transaction to move funds to the contract, calling
  1420  // its default method if one is available.
  1421  func (_ClockAuctionBase *ClockAuctionBaseTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  1422  	return _ClockAuctionBase.Contract.contract.Transfer(opts)
  1423  }
  1424  
  1425  // Transact invokes the (paid) contract method with params as input values.
  1426  func (_ClockAuctionBase *ClockAuctionBaseTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  1427  	return _ClockAuctionBase.Contract.contract.Transact(opts, method, params...)
  1428  }
  1429  
  1430  // NonFungibleContract is a free data retrieval call binding the contract method 0xdd1b7a0f.
  1431  //
  1432  // Solidity: function nonFungibleContract() view returns(address)
  1433  func (_ClockAuctionBase *ClockAuctionBaseCaller) NonFungibleContract(opts *bind.CallOpts) (common.Address, error) {
  1434  	var out []interface{}
  1435  	err := _ClockAuctionBase.contract.Call(opts, &out, "nonFungibleContract")
  1436  
  1437  	if err != nil {
  1438  		return *new(common.Address), err
  1439  	}
  1440  
  1441  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  1442  
  1443  	return out0, err
  1444  
  1445  }
  1446  
  1447  // NonFungibleContract is a free data retrieval call binding the contract method 0xdd1b7a0f.
  1448  //
  1449  // Solidity: function nonFungibleContract() view returns(address)
  1450  func (_ClockAuctionBase *ClockAuctionBaseSession) NonFungibleContract() (common.Address, error) {
  1451  	return _ClockAuctionBase.Contract.NonFungibleContract(&_ClockAuctionBase.CallOpts)
  1452  }
  1453  
  1454  // NonFungibleContract is a free data retrieval call binding the contract method 0xdd1b7a0f.
  1455  //
  1456  // Solidity: function nonFungibleContract() view returns(address)
  1457  func (_ClockAuctionBase *ClockAuctionBaseCallerSession) NonFungibleContract() (common.Address, error) {
  1458  	return _ClockAuctionBase.Contract.NonFungibleContract(&_ClockAuctionBase.CallOpts)
  1459  }
  1460  
  1461  // OwnerCut is a free data retrieval call binding the contract method 0x83b5ff8b.
  1462  //
  1463  // Solidity: function ownerCut() view returns(uint256)
  1464  func (_ClockAuctionBase *ClockAuctionBaseCaller) OwnerCut(opts *bind.CallOpts) (*big.Int, error) {
  1465  	var out []interface{}
  1466  	err := _ClockAuctionBase.contract.Call(opts, &out, "ownerCut")
  1467  
  1468  	if err != nil {
  1469  		return *new(*big.Int), err
  1470  	}
  1471  
  1472  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  1473  
  1474  	return out0, err
  1475  
  1476  }
  1477  
  1478  // OwnerCut is a free data retrieval call binding the contract method 0x83b5ff8b.
  1479  //
  1480  // Solidity: function ownerCut() view returns(uint256)
  1481  func (_ClockAuctionBase *ClockAuctionBaseSession) OwnerCut() (*big.Int, error) {
  1482  	return _ClockAuctionBase.Contract.OwnerCut(&_ClockAuctionBase.CallOpts)
  1483  }
  1484  
  1485  // OwnerCut is a free data retrieval call binding the contract method 0x83b5ff8b.
  1486  //
  1487  // Solidity: function ownerCut() view returns(uint256)
  1488  func (_ClockAuctionBase *ClockAuctionBaseCallerSession) OwnerCut() (*big.Int, error) {
  1489  	return _ClockAuctionBase.Contract.OwnerCut(&_ClockAuctionBase.CallOpts)
  1490  }
  1491  
  1492  // ClockAuctionBaseAuctionCancelledIterator is returned from FilterAuctionCancelled and is used to iterate over the raw logs and unpacked data for AuctionCancelled events raised by the ClockAuctionBase contract.
  1493  type ClockAuctionBaseAuctionCancelledIterator struct {
  1494  	Event *ClockAuctionBaseAuctionCancelled // Event containing the contract specifics and raw log
  1495  
  1496  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1497  	event    string              // Event name to use for unpacking event data
  1498  
  1499  	logs chan types.Log        // Log channel receiving the found contract events
  1500  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1501  	done bool                  // Whether the subscription completed delivering logs
  1502  	fail error                 // Occurred error to stop iteration
  1503  }
  1504  
  1505  // Next advances the iterator to the subsequent event, returning whether there
  1506  // are any more events found. In case of a retrieval or parsing error, false is
  1507  // returned and Error() can be queried for the exact failure.
  1508  func (it *ClockAuctionBaseAuctionCancelledIterator) Next() bool {
  1509  	// If the iterator failed, stop iterating
  1510  	if it.fail != nil {
  1511  		return false
  1512  	}
  1513  	// If the iterator completed, deliver directly whatever's available
  1514  	if it.done {
  1515  		select {
  1516  		case log := <-it.logs:
  1517  			it.Event = new(ClockAuctionBaseAuctionCancelled)
  1518  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1519  				it.fail = err
  1520  				return false
  1521  			}
  1522  			it.Event.Raw = log
  1523  			return true
  1524  
  1525  		default:
  1526  			return false
  1527  		}
  1528  	}
  1529  	// Iterator still in progress, wait for either a data or an error event
  1530  	select {
  1531  	case log := <-it.logs:
  1532  		it.Event = new(ClockAuctionBaseAuctionCancelled)
  1533  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1534  			it.fail = err
  1535  			return false
  1536  		}
  1537  		it.Event.Raw = log
  1538  		return true
  1539  
  1540  	case err := <-it.sub.Err():
  1541  		it.done = true
  1542  		it.fail = err
  1543  		return it.Next()
  1544  	}
  1545  }
  1546  
  1547  // Error returns any retrieval or parsing error occurred during filtering.
  1548  func (it *ClockAuctionBaseAuctionCancelledIterator) Error() error {
  1549  	return it.fail
  1550  }
  1551  
  1552  // Close terminates the iteration process, releasing any pending underlying
  1553  // resources.
  1554  func (it *ClockAuctionBaseAuctionCancelledIterator) Close() error {
  1555  	it.sub.Unsubscribe()
  1556  	return nil
  1557  }
  1558  
  1559  // ClockAuctionBaseAuctionCancelled represents a AuctionCancelled event raised by the ClockAuctionBase contract.
  1560  type ClockAuctionBaseAuctionCancelled struct {
  1561  	TokenId *big.Int
  1562  	Raw     types.Log // Blockchain specific contextual infos
  1563  }
  1564  
  1565  // FilterAuctionCancelled is a free log retrieval operation binding the contract event 0x2809c7e17bf978fbc7194c0a694b638c4215e9140cacc6c38ca36010b45697df.
  1566  //
  1567  // Solidity: event AuctionCancelled(uint256 tokenId)
  1568  func (_ClockAuctionBase *ClockAuctionBaseFilterer) FilterAuctionCancelled(opts *bind.FilterOpts) (*ClockAuctionBaseAuctionCancelledIterator, error) {
  1569  
  1570  	logs, sub, err := _ClockAuctionBase.contract.FilterLogs(opts, "AuctionCancelled")
  1571  	if err != nil {
  1572  		return nil, err
  1573  	}
  1574  	return &ClockAuctionBaseAuctionCancelledIterator{contract: _ClockAuctionBase.contract, event: "AuctionCancelled", logs: logs, sub: sub}, nil
  1575  }
  1576  
  1577  // WatchAuctionCancelled is a free log subscription operation binding the contract event 0x2809c7e17bf978fbc7194c0a694b638c4215e9140cacc6c38ca36010b45697df.
  1578  //
  1579  // Solidity: event AuctionCancelled(uint256 tokenId)
  1580  func (_ClockAuctionBase *ClockAuctionBaseFilterer) WatchAuctionCancelled(opts *bind.WatchOpts, sink chan<- *ClockAuctionBaseAuctionCancelled) (event.Subscription, error) {
  1581  
  1582  	logs, sub, err := _ClockAuctionBase.contract.WatchLogs(opts, "AuctionCancelled")
  1583  	if err != nil {
  1584  		return nil, err
  1585  	}
  1586  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1587  		defer sub.Unsubscribe()
  1588  		for {
  1589  			select {
  1590  			case log := <-logs:
  1591  				// New log arrived, parse the event and forward to the user
  1592  				event := new(ClockAuctionBaseAuctionCancelled)
  1593  				if err := _ClockAuctionBase.contract.UnpackLog(event, "AuctionCancelled", log); err != nil {
  1594  					return err
  1595  				}
  1596  				event.Raw = log
  1597  
  1598  				select {
  1599  				case sink <- event:
  1600  				case err := <-sub.Err():
  1601  					return err
  1602  				case <-quit:
  1603  					return nil
  1604  				}
  1605  			case err := <-sub.Err():
  1606  				return err
  1607  			case <-quit:
  1608  				return nil
  1609  			}
  1610  		}
  1611  	}), nil
  1612  }
  1613  
  1614  // ParseAuctionCancelled is a log parse operation binding the contract event 0x2809c7e17bf978fbc7194c0a694b638c4215e9140cacc6c38ca36010b45697df.
  1615  //
  1616  // Solidity: event AuctionCancelled(uint256 tokenId)
  1617  func (_ClockAuctionBase *ClockAuctionBaseFilterer) ParseAuctionCancelled(log types.Log) (*ClockAuctionBaseAuctionCancelled, error) {
  1618  	event := new(ClockAuctionBaseAuctionCancelled)
  1619  	if err := _ClockAuctionBase.contract.UnpackLog(event, "AuctionCancelled", log); err != nil {
  1620  		return nil, err
  1621  	}
  1622  	event.Raw = log
  1623  	return event, nil
  1624  }
  1625  
  1626  // ClockAuctionBaseAuctionCreatedIterator is returned from FilterAuctionCreated and is used to iterate over the raw logs and unpacked data for AuctionCreated events raised by the ClockAuctionBase contract.
  1627  type ClockAuctionBaseAuctionCreatedIterator struct {
  1628  	Event *ClockAuctionBaseAuctionCreated // Event containing the contract specifics and raw log
  1629  
  1630  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1631  	event    string              // Event name to use for unpacking event data
  1632  
  1633  	logs chan types.Log        // Log channel receiving the found contract events
  1634  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1635  	done bool                  // Whether the subscription completed delivering logs
  1636  	fail error                 // Occurred error to stop iteration
  1637  }
  1638  
  1639  // Next advances the iterator to the subsequent event, returning whether there
  1640  // are any more events found. In case of a retrieval or parsing error, false is
  1641  // returned and Error() can be queried for the exact failure.
  1642  func (it *ClockAuctionBaseAuctionCreatedIterator) Next() bool {
  1643  	// If the iterator failed, stop iterating
  1644  	if it.fail != nil {
  1645  		return false
  1646  	}
  1647  	// If the iterator completed, deliver directly whatever's available
  1648  	if it.done {
  1649  		select {
  1650  		case log := <-it.logs:
  1651  			it.Event = new(ClockAuctionBaseAuctionCreated)
  1652  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1653  				it.fail = err
  1654  				return false
  1655  			}
  1656  			it.Event.Raw = log
  1657  			return true
  1658  
  1659  		default:
  1660  			return false
  1661  		}
  1662  	}
  1663  	// Iterator still in progress, wait for either a data or an error event
  1664  	select {
  1665  	case log := <-it.logs:
  1666  		it.Event = new(ClockAuctionBaseAuctionCreated)
  1667  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1668  			it.fail = err
  1669  			return false
  1670  		}
  1671  		it.Event.Raw = log
  1672  		return true
  1673  
  1674  	case err := <-it.sub.Err():
  1675  		it.done = true
  1676  		it.fail = err
  1677  		return it.Next()
  1678  	}
  1679  }
  1680  
  1681  // Error returns any retrieval or parsing error occurred during filtering.
  1682  func (it *ClockAuctionBaseAuctionCreatedIterator) Error() error {
  1683  	return it.fail
  1684  }
  1685  
  1686  // Close terminates the iteration process, releasing any pending underlying
  1687  // resources.
  1688  func (it *ClockAuctionBaseAuctionCreatedIterator) Close() error {
  1689  	it.sub.Unsubscribe()
  1690  	return nil
  1691  }
  1692  
  1693  // ClockAuctionBaseAuctionCreated represents a AuctionCreated event raised by the ClockAuctionBase contract.
  1694  type ClockAuctionBaseAuctionCreated struct {
  1695  	TokenId       *big.Int
  1696  	StartingPrice *big.Int
  1697  	EndingPrice   *big.Int
  1698  	Duration      *big.Int
  1699  	Raw           types.Log // Blockchain specific contextual infos
  1700  }
  1701  
  1702  // FilterAuctionCreated is a free log retrieval operation binding the contract event 0xa9c8dfcda5664a5a124c713e386da27de87432d5b668e79458501eb296389ba7.
  1703  //
  1704  // Solidity: event AuctionCreated(uint256 tokenId, uint256 startingPrice, uint256 endingPrice, uint256 duration)
  1705  func (_ClockAuctionBase *ClockAuctionBaseFilterer) FilterAuctionCreated(opts *bind.FilterOpts) (*ClockAuctionBaseAuctionCreatedIterator, error) {
  1706  
  1707  	logs, sub, err := _ClockAuctionBase.contract.FilterLogs(opts, "AuctionCreated")
  1708  	if err != nil {
  1709  		return nil, err
  1710  	}
  1711  	return &ClockAuctionBaseAuctionCreatedIterator{contract: _ClockAuctionBase.contract, event: "AuctionCreated", logs: logs, sub: sub}, nil
  1712  }
  1713  
  1714  // WatchAuctionCreated is a free log subscription operation binding the contract event 0xa9c8dfcda5664a5a124c713e386da27de87432d5b668e79458501eb296389ba7.
  1715  //
  1716  // Solidity: event AuctionCreated(uint256 tokenId, uint256 startingPrice, uint256 endingPrice, uint256 duration)
  1717  func (_ClockAuctionBase *ClockAuctionBaseFilterer) WatchAuctionCreated(opts *bind.WatchOpts, sink chan<- *ClockAuctionBaseAuctionCreated) (event.Subscription, error) {
  1718  
  1719  	logs, sub, err := _ClockAuctionBase.contract.WatchLogs(opts, "AuctionCreated")
  1720  	if err != nil {
  1721  		return nil, err
  1722  	}
  1723  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1724  		defer sub.Unsubscribe()
  1725  		for {
  1726  			select {
  1727  			case log := <-logs:
  1728  				// New log arrived, parse the event and forward to the user
  1729  				event := new(ClockAuctionBaseAuctionCreated)
  1730  				if err := _ClockAuctionBase.contract.UnpackLog(event, "AuctionCreated", log); err != nil {
  1731  					return err
  1732  				}
  1733  				event.Raw = log
  1734  
  1735  				select {
  1736  				case sink <- event:
  1737  				case err := <-sub.Err():
  1738  					return err
  1739  				case <-quit:
  1740  					return nil
  1741  				}
  1742  			case err := <-sub.Err():
  1743  				return err
  1744  			case <-quit:
  1745  				return nil
  1746  			}
  1747  		}
  1748  	}), nil
  1749  }
  1750  
  1751  // ParseAuctionCreated is a log parse operation binding the contract event 0xa9c8dfcda5664a5a124c713e386da27de87432d5b668e79458501eb296389ba7.
  1752  //
  1753  // Solidity: event AuctionCreated(uint256 tokenId, uint256 startingPrice, uint256 endingPrice, uint256 duration)
  1754  func (_ClockAuctionBase *ClockAuctionBaseFilterer) ParseAuctionCreated(log types.Log) (*ClockAuctionBaseAuctionCreated, error) {
  1755  	event := new(ClockAuctionBaseAuctionCreated)
  1756  	if err := _ClockAuctionBase.contract.UnpackLog(event, "AuctionCreated", log); err != nil {
  1757  		return nil, err
  1758  	}
  1759  	event.Raw = log
  1760  	return event, nil
  1761  }
  1762  
  1763  // ClockAuctionBaseAuctionSuccessfulIterator is returned from FilterAuctionSuccessful and is used to iterate over the raw logs and unpacked data for AuctionSuccessful events raised by the ClockAuctionBase contract.
  1764  type ClockAuctionBaseAuctionSuccessfulIterator struct {
  1765  	Event *ClockAuctionBaseAuctionSuccessful // Event containing the contract specifics and raw log
  1766  
  1767  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1768  	event    string              // Event name to use for unpacking event data
  1769  
  1770  	logs chan types.Log        // Log channel receiving the found contract events
  1771  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1772  	done bool                  // Whether the subscription completed delivering logs
  1773  	fail error                 // Occurred error to stop iteration
  1774  }
  1775  
  1776  // Next advances the iterator to the subsequent event, returning whether there
  1777  // are any more events found. In case of a retrieval or parsing error, false is
  1778  // returned and Error() can be queried for the exact failure.
  1779  func (it *ClockAuctionBaseAuctionSuccessfulIterator) Next() bool {
  1780  	// If the iterator failed, stop iterating
  1781  	if it.fail != nil {
  1782  		return false
  1783  	}
  1784  	// If the iterator completed, deliver directly whatever's available
  1785  	if it.done {
  1786  		select {
  1787  		case log := <-it.logs:
  1788  			it.Event = new(ClockAuctionBaseAuctionSuccessful)
  1789  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1790  				it.fail = err
  1791  				return false
  1792  			}
  1793  			it.Event.Raw = log
  1794  			return true
  1795  
  1796  		default:
  1797  			return false
  1798  		}
  1799  	}
  1800  	// Iterator still in progress, wait for either a data or an error event
  1801  	select {
  1802  	case log := <-it.logs:
  1803  		it.Event = new(ClockAuctionBaseAuctionSuccessful)
  1804  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1805  			it.fail = err
  1806  			return false
  1807  		}
  1808  		it.Event.Raw = log
  1809  		return true
  1810  
  1811  	case err := <-it.sub.Err():
  1812  		it.done = true
  1813  		it.fail = err
  1814  		return it.Next()
  1815  	}
  1816  }
  1817  
  1818  // Error returns any retrieval or parsing error occurred during filtering.
  1819  func (it *ClockAuctionBaseAuctionSuccessfulIterator) Error() error {
  1820  	return it.fail
  1821  }
  1822  
  1823  // Close terminates the iteration process, releasing any pending underlying
  1824  // resources.
  1825  func (it *ClockAuctionBaseAuctionSuccessfulIterator) Close() error {
  1826  	it.sub.Unsubscribe()
  1827  	return nil
  1828  }
  1829  
  1830  // ClockAuctionBaseAuctionSuccessful represents a AuctionSuccessful event raised by the ClockAuctionBase contract.
  1831  type ClockAuctionBaseAuctionSuccessful struct {
  1832  	TokenId    *big.Int
  1833  	TotalPrice *big.Int
  1834  	Winner     common.Address
  1835  	Raw        types.Log // Blockchain specific contextual infos
  1836  }
  1837  
  1838  // FilterAuctionSuccessful is a free log retrieval operation binding the contract event 0x4fcc30d90a842164dd58501ab874a101a3749c3d4747139cefe7c876f4ccebd2.
  1839  //
  1840  // Solidity: event AuctionSuccessful(uint256 tokenId, uint256 totalPrice, address winner)
  1841  func (_ClockAuctionBase *ClockAuctionBaseFilterer) FilterAuctionSuccessful(opts *bind.FilterOpts) (*ClockAuctionBaseAuctionSuccessfulIterator, error) {
  1842  
  1843  	logs, sub, err := _ClockAuctionBase.contract.FilterLogs(opts, "AuctionSuccessful")
  1844  	if err != nil {
  1845  		return nil, err
  1846  	}
  1847  	return &ClockAuctionBaseAuctionSuccessfulIterator{contract: _ClockAuctionBase.contract, event: "AuctionSuccessful", logs: logs, sub: sub}, nil
  1848  }
  1849  
  1850  // WatchAuctionSuccessful is a free log subscription operation binding the contract event 0x4fcc30d90a842164dd58501ab874a101a3749c3d4747139cefe7c876f4ccebd2.
  1851  //
  1852  // Solidity: event AuctionSuccessful(uint256 tokenId, uint256 totalPrice, address winner)
  1853  func (_ClockAuctionBase *ClockAuctionBaseFilterer) WatchAuctionSuccessful(opts *bind.WatchOpts, sink chan<- *ClockAuctionBaseAuctionSuccessful) (event.Subscription, error) {
  1854  
  1855  	logs, sub, err := _ClockAuctionBase.contract.WatchLogs(opts, "AuctionSuccessful")
  1856  	if err != nil {
  1857  		return nil, err
  1858  	}
  1859  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1860  		defer sub.Unsubscribe()
  1861  		for {
  1862  			select {
  1863  			case log := <-logs:
  1864  				// New log arrived, parse the event and forward to the user
  1865  				event := new(ClockAuctionBaseAuctionSuccessful)
  1866  				if err := _ClockAuctionBase.contract.UnpackLog(event, "AuctionSuccessful", log); err != nil {
  1867  					return err
  1868  				}
  1869  				event.Raw = log
  1870  
  1871  				select {
  1872  				case sink <- event:
  1873  				case err := <-sub.Err():
  1874  					return err
  1875  				case <-quit:
  1876  					return nil
  1877  				}
  1878  			case err := <-sub.Err():
  1879  				return err
  1880  			case <-quit:
  1881  				return nil
  1882  			}
  1883  		}
  1884  	}), nil
  1885  }
  1886  
  1887  // ParseAuctionSuccessful is a log parse operation binding the contract event 0x4fcc30d90a842164dd58501ab874a101a3749c3d4747139cefe7c876f4ccebd2.
  1888  //
  1889  // Solidity: event AuctionSuccessful(uint256 tokenId, uint256 totalPrice, address winner)
  1890  func (_ClockAuctionBase *ClockAuctionBaseFilterer) ParseAuctionSuccessful(log types.Log) (*ClockAuctionBaseAuctionSuccessful, error) {
  1891  	event := new(ClockAuctionBaseAuctionSuccessful)
  1892  	if err := _ClockAuctionBase.contract.UnpackLog(event, "AuctionSuccessful", log); err != nil {
  1893  		return nil, err
  1894  	}
  1895  	event.Raw = log
  1896  	return event, nil
  1897  }
  1898  
  1899  // ERC721ABI is the input ABI used to generate the binding from.
  1900  const ERC721ABI = "[{\"constant\":true,\"inputs\":[{\"name\":\"_interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"total\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}]"
  1901  
  1902  // ERC721FuncSigs maps the 4-byte function signature to its string representation.
  1903  var ERC721FuncSigs = map[string]string{
  1904  	"095ea7b3": "approve(address,uint256)",
  1905  	"70a08231": "balanceOf(address)",
  1906  	"6352211e": "ownerOf(uint256)",
  1907  	"01ffc9a7": "supportsInterface(bytes4)",
  1908  	"18160ddd": "totalSupply()",
  1909  	"a9059cbb": "transfer(address,uint256)",
  1910  	"23b872dd": "transferFrom(address,address,uint256)",
  1911  }
  1912  
  1913  // ERC721 is an auto generated Go binding around an Ethereum contract.
  1914  type ERC721 struct {
  1915  	ERC721Caller     // Read-only binding to the contract
  1916  	ERC721Transactor // Write-only binding to the contract
  1917  	ERC721Filterer   // Log filterer for contract events
  1918  }
  1919  
  1920  // ERC721Caller is an auto generated read-only Go binding around an Ethereum contract.
  1921  type ERC721Caller struct {
  1922  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1923  }
  1924  
  1925  // ERC721Transactor is an auto generated write-only Go binding around an Ethereum contract.
  1926  type ERC721Transactor struct {
  1927  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1928  }
  1929  
  1930  // ERC721Filterer is an auto generated log filtering Go binding around an Ethereum contract events.
  1931  type ERC721Filterer struct {
  1932  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1933  }
  1934  
  1935  // ERC721Session is an auto generated Go binding around an Ethereum contract,
  1936  // with pre-set call and transact options.
  1937  type ERC721Session struct {
  1938  	Contract     *ERC721           // Generic contract binding to set the session for
  1939  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  1940  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  1941  }
  1942  
  1943  // ERC721CallerSession is an auto generated read-only Go binding around an Ethereum contract,
  1944  // with pre-set call options.
  1945  type ERC721CallerSession struct {
  1946  	Contract *ERC721Caller // Generic contract caller binding to set the session for
  1947  	CallOpts bind.CallOpts // Call options to use throughout this session
  1948  }
  1949  
  1950  // ERC721TransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  1951  // with pre-set transact options.
  1952  type ERC721TransactorSession struct {
  1953  	Contract     *ERC721Transactor // Generic contract transactor binding to set the session for
  1954  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  1955  }
  1956  
  1957  // ERC721Raw is an auto generated low-level Go binding around an Ethereum contract.
  1958  type ERC721Raw struct {
  1959  	Contract *ERC721 // Generic contract binding to access the raw methods on
  1960  }
  1961  
  1962  // ERC721CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  1963  type ERC721CallerRaw struct {
  1964  	Contract *ERC721Caller // Generic read-only contract binding to access the raw methods on
  1965  }
  1966  
  1967  // ERC721TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  1968  type ERC721TransactorRaw struct {
  1969  	Contract *ERC721Transactor // Generic write-only contract binding to access the raw methods on
  1970  }
  1971  
  1972  // NewERC721 creates a new instance of ERC721, bound to a specific deployed contract.
  1973  func NewERC721(address common.Address, backend bind.ContractBackend) (*ERC721, error) {
  1974  	contract, err := bindERC721(address, backend, backend, backend)
  1975  	if err != nil {
  1976  		return nil, err
  1977  	}
  1978  	return &ERC721{ERC721Caller: ERC721Caller{contract: contract}, ERC721Transactor: ERC721Transactor{contract: contract}, ERC721Filterer: ERC721Filterer{contract: contract}}, nil
  1979  }
  1980  
  1981  // NewERC721Caller creates a new read-only instance of ERC721, bound to a specific deployed contract.
  1982  func NewERC721Caller(address common.Address, caller bind.ContractCaller) (*ERC721Caller, error) {
  1983  	contract, err := bindERC721(address, caller, nil, nil)
  1984  	if err != nil {
  1985  		return nil, err
  1986  	}
  1987  	return &ERC721Caller{contract: contract}, nil
  1988  }
  1989  
  1990  // NewERC721Transactor creates a new write-only instance of ERC721, bound to a specific deployed contract.
  1991  func NewERC721Transactor(address common.Address, transactor bind.ContractTransactor) (*ERC721Transactor, error) {
  1992  	contract, err := bindERC721(address, nil, transactor, nil)
  1993  	if err != nil {
  1994  		return nil, err
  1995  	}
  1996  	return &ERC721Transactor{contract: contract}, nil
  1997  }
  1998  
  1999  // NewERC721Filterer creates a new log filterer instance of ERC721, bound to a specific deployed contract.
  2000  func NewERC721Filterer(address common.Address, filterer bind.ContractFilterer) (*ERC721Filterer, error) {
  2001  	contract, err := bindERC721(address, nil, nil, filterer)
  2002  	if err != nil {
  2003  		return nil, err
  2004  	}
  2005  	return &ERC721Filterer{contract: contract}, nil
  2006  }
  2007  
  2008  // bindERC721 binds a generic wrapper to an already deployed contract.
  2009  func bindERC721(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  2010  	parsed, err := abi.JSON(strings.NewReader(ERC721ABI))
  2011  	if err != nil {
  2012  		return nil, err
  2013  	}
  2014  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  2015  }
  2016  
  2017  // Call invokes the (constant) contract method with params as input values and
  2018  // sets the output to result. The result type might be a single field for simple
  2019  // returns, a slice of interfaces for anonymous returns and a struct for named
  2020  // returns.
  2021  func (_ERC721 *ERC721Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  2022  	return _ERC721.Contract.ERC721Caller.contract.Call(opts, result, method, params...)
  2023  }
  2024  
  2025  // Transfer initiates a plain transaction to move funds to the contract, calling
  2026  // its default method if one is available.
  2027  func (_ERC721 *ERC721Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  2028  	return _ERC721.Contract.ERC721Transactor.contract.Transfer(opts)
  2029  }
  2030  
  2031  // Transact invokes the (paid) contract method with params as input values.
  2032  func (_ERC721 *ERC721Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  2033  	return _ERC721.Contract.ERC721Transactor.contract.Transact(opts, method, params...)
  2034  }
  2035  
  2036  // Call invokes the (constant) contract method with params as input values and
  2037  // sets the output to result. The result type might be a single field for simple
  2038  // returns, a slice of interfaces for anonymous returns and a struct for named
  2039  // returns.
  2040  func (_ERC721 *ERC721CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  2041  	return _ERC721.Contract.contract.Call(opts, result, method, params...)
  2042  }
  2043  
  2044  // Transfer initiates a plain transaction to move funds to the contract, calling
  2045  // its default method if one is available.
  2046  func (_ERC721 *ERC721TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  2047  	return _ERC721.Contract.contract.Transfer(opts)
  2048  }
  2049  
  2050  // Transact invokes the (paid) contract method with params as input values.
  2051  func (_ERC721 *ERC721TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  2052  	return _ERC721.Contract.contract.Transact(opts, method, params...)
  2053  }
  2054  
  2055  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  2056  //
  2057  // Solidity: function balanceOf(address _owner) view returns(uint256 balance)
  2058  func (_ERC721 *ERC721Caller) BalanceOf(opts *bind.CallOpts, _owner common.Address) (*big.Int, error) {
  2059  	var out []interface{}
  2060  	err := _ERC721.contract.Call(opts, &out, "balanceOf", _owner)
  2061  
  2062  	if err != nil {
  2063  		return *new(*big.Int), err
  2064  	}
  2065  
  2066  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  2067  
  2068  	return out0, err
  2069  
  2070  }
  2071  
  2072  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  2073  //
  2074  // Solidity: function balanceOf(address _owner) view returns(uint256 balance)
  2075  func (_ERC721 *ERC721Session) BalanceOf(_owner common.Address) (*big.Int, error) {
  2076  	return _ERC721.Contract.BalanceOf(&_ERC721.CallOpts, _owner)
  2077  }
  2078  
  2079  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  2080  //
  2081  // Solidity: function balanceOf(address _owner) view returns(uint256 balance)
  2082  func (_ERC721 *ERC721CallerSession) BalanceOf(_owner common.Address) (*big.Int, error) {
  2083  	return _ERC721.Contract.BalanceOf(&_ERC721.CallOpts, _owner)
  2084  }
  2085  
  2086  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
  2087  //
  2088  // Solidity: function ownerOf(uint256 _tokenId) view returns(address owner)
  2089  func (_ERC721 *ERC721Caller) OwnerOf(opts *bind.CallOpts, _tokenId *big.Int) (common.Address, error) {
  2090  	var out []interface{}
  2091  	err := _ERC721.contract.Call(opts, &out, "ownerOf", _tokenId)
  2092  
  2093  	if err != nil {
  2094  		return *new(common.Address), err
  2095  	}
  2096  
  2097  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  2098  
  2099  	return out0, err
  2100  
  2101  }
  2102  
  2103  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
  2104  //
  2105  // Solidity: function ownerOf(uint256 _tokenId) view returns(address owner)
  2106  func (_ERC721 *ERC721Session) OwnerOf(_tokenId *big.Int) (common.Address, error) {
  2107  	return _ERC721.Contract.OwnerOf(&_ERC721.CallOpts, _tokenId)
  2108  }
  2109  
  2110  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
  2111  //
  2112  // Solidity: function ownerOf(uint256 _tokenId) view returns(address owner)
  2113  func (_ERC721 *ERC721CallerSession) OwnerOf(_tokenId *big.Int) (common.Address, error) {
  2114  	return _ERC721.Contract.OwnerOf(&_ERC721.CallOpts, _tokenId)
  2115  }
  2116  
  2117  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  2118  //
  2119  // Solidity: function supportsInterface(bytes4 _interfaceID) view returns(bool)
  2120  func (_ERC721 *ERC721Caller) SupportsInterface(opts *bind.CallOpts, _interfaceID [4]byte) (bool, error) {
  2121  	var out []interface{}
  2122  	err := _ERC721.contract.Call(opts, &out, "supportsInterface", _interfaceID)
  2123  
  2124  	if err != nil {
  2125  		return *new(bool), err
  2126  	}
  2127  
  2128  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  2129  
  2130  	return out0, err
  2131  
  2132  }
  2133  
  2134  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  2135  //
  2136  // Solidity: function supportsInterface(bytes4 _interfaceID) view returns(bool)
  2137  func (_ERC721 *ERC721Session) SupportsInterface(_interfaceID [4]byte) (bool, error) {
  2138  	return _ERC721.Contract.SupportsInterface(&_ERC721.CallOpts, _interfaceID)
  2139  }
  2140  
  2141  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  2142  //
  2143  // Solidity: function supportsInterface(bytes4 _interfaceID) view returns(bool)
  2144  func (_ERC721 *ERC721CallerSession) SupportsInterface(_interfaceID [4]byte) (bool, error) {
  2145  	return _ERC721.Contract.SupportsInterface(&_ERC721.CallOpts, _interfaceID)
  2146  }
  2147  
  2148  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  2149  //
  2150  // Solidity: function totalSupply() view returns(uint256 total)
  2151  func (_ERC721 *ERC721Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
  2152  	var out []interface{}
  2153  	err := _ERC721.contract.Call(opts, &out, "totalSupply")
  2154  
  2155  	if err != nil {
  2156  		return *new(*big.Int), err
  2157  	}
  2158  
  2159  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  2160  
  2161  	return out0, err
  2162  
  2163  }
  2164  
  2165  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  2166  //
  2167  // Solidity: function totalSupply() view returns(uint256 total)
  2168  func (_ERC721 *ERC721Session) TotalSupply() (*big.Int, error) {
  2169  	return _ERC721.Contract.TotalSupply(&_ERC721.CallOpts)
  2170  }
  2171  
  2172  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  2173  //
  2174  // Solidity: function totalSupply() view returns(uint256 total)
  2175  func (_ERC721 *ERC721CallerSession) TotalSupply() (*big.Int, error) {
  2176  	return _ERC721.Contract.TotalSupply(&_ERC721.CallOpts)
  2177  }
  2178  
  2179  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  2180  //
  2181  // Solidity: function approve(address _to, uint256 _tokenId) returns()
  2182  func (_ERC721 *ERC721Transactor) Approve(opts *bind.TransactOpts, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
  2183  	return _ERC721.contract.Transact(opts, "approve", _to, _tokenId)
  2184  }
  2185  
  2186  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  2187  //
  2188  // Solidity: function approve(address _to, uint256 _tokenId) returns()
  2189  func (_ERC721 *ERC721Session) Approve(_to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
  2190  	return _ERC721.Contract.Approve(&_ERC721.TransactOpts, _to, _tokenId)
  2191  }
  2192  
  2193  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  2194  //
  2195  // Solidity: function approve(address _to, uint256 _tokenId) returns()
  2196  func (_ERC721 *ERC721TransactorSession) Approve(_to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
  2197  	return _ERC721.Contract.Approve(&_ERC721.TransactOpts, _to, _tokenId)
  2198  }
  2199  
  2200  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  2201  //
  2202  // Solidity: function transfer(address _to, uint256 _tokenId) returns()
  2203  func (_ERC721 *ERC721Transactor) Transfer(opts *bind.TransactOpts, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
  2204  	return _ERC721.contract.Transact(opts, "transfer", _to, _tokenId)
  2205  }
  2206  
  2207  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  2208  //
  2209  // Solidity: function transfer(address _to, uint256 _tokenId) returns()
  2210  func (_ERC721 *ERC721Session) Transfer(_to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
  2211  	return _ERC721.Contract.Transfer(&_ERC721.TransactOpts, _to, _tokenId)
  2212  }
  2213  
  2214  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  2215  //
  2216  // Solidity: function transfer(address _to, uint256 _tokenId) returns()
  2217  func (_ERC721 *ERC721TransactorSession) Transfer(_to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
  2218  	return _ERC721.Contract.Transfer(&_ERC721.TransactOpts, _to, _tokenId)
  2219  }
  2220  
  2221  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  2222  //
  2223  // Solidity: function transferFrom(address _from, address _to, uint256 _tokenId) returns()
  2224  func (_ERC721 *ERC721Transactor) TransferFrom(opts *bind.TransactOpts, _from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
  2225  	return _ERC721.contract.Transact(opts, "transferFrom", _from, _to, _tokenId)
  2226  }
  2227  
  2228  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  2229  //
  2230  // Solidity: function transferFrom(address _from, address _to, uint256 _tokenId) returns()
  2231  func (_ERC721 *ERC721Session) TransferFrom(_from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
  2232  	return _ERC721.Contract.TransferFrom(&_ERC721.TransactOpts, _from, _to, _tokenId)
  2233  }
  2234  
  2235  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  2236  //
  2237  // Solidity: function transferFrom(address _from, address _to, uint256 _tokenId) returns()
  2238  func (_ERC721 *ERC721TransactorSession) TransferFrom(_from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
  2239  	return _ERC721.Contract.TransferFrom(&_ERC721.TransactOpts, _from, _to, _tokenId)
  2240  }
  2241  
  2242  // 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.
  2243  type ERC721ApprovalIterator struct {
  2244  	Event *ERC721Approval // Event containing the contract specifics and raw log
  2245  
  2246  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2247  	event    string              // Event name to use for unpacking event data
  2248  
  2249  	logs chan types.Log        // Log channel receiving the found contract events
  2250  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2251  	done bool                  // Whether the subscription completed delivering logs
  2252  	fail error                 // Occurred error to stop iteration
  2253  }
  2254  
  2255  // Next advances the iterator to the subsequent event, returning whether there
  2256  // are any more events found. In case of a retrieval or parsing error, false is
  2257  // returned and Error() can be queried for the exact failure.
  2258  func (it *ERC721ApprovalIterator) Next() bool {
  2259  	// If the iterator failed, stop iterating
  2260  	if it.fail != nil {
  2261  		return false
  2262  	}
  2263  	// If the iterator completed, deliver directly whatever's available
  2264  	if it.done {
  2265  		select {
  2266  		case log := <-it.logs:
  2267  			it.Event = new(ERC721Approval)
  2268  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2269  				it.fail = err
  2270  				return false
  2271  			}
  2272  			it.Event.Raw = log
  2273  			return true
  2274  
  2275  		default:
  2276  			return false
  2277  		}
  2278  	}
  2279  	// Iterator still in progress, wait for either a data or an error event
  2280  	select {
  2281  	case log := <-it.logs:
  2282  		it.Event = new(ERC721Approval)
  2283  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2284  			it.fail = err
  2285  			return false
  2286  		}
  2287  		it.Event.Raw = log
  2288  		return true
  2289  
  2290  	case err := <-it.sub.Err():
  2291  		it.done = true
  2292  		it.fail = err
  2293  		return it.Next()
  2294  	}
  2295  }
  2296  
  2297  // Error returns any retrieval or parsing error occurred during filtering.
  2298  func (it *ERC721ApprovalIterator) Error() error {
  2299  	return it.fail
  2300  }
  2301  
  2302  // Close terminates the iteration process, releasing any pending underlying
  2303  // resources.
  2304  func (it *ERC721ApprovalIterator) Close() error {
  2305  	it.sub.Unsubscribe()
  2306  	return nil
  2307  }
  2308  
  2309  // ERC721Approval represents a Approval event raised by the ERC721 contract.
  2310  type ERC721Approval struct {
  2311  	Owner    common.Address
  2312  	Approved common.Address
  2313  	TokenId  *big.Int
  2314  	Raw      types.Log // Blockchain specific contextual infos
  2315  }
  2316  
  2317  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  2318  //
  2319  // Solidity: event Approval(address owner, address approved, uint256 tokenId)
  2320  func (_ERC721 *ERC721Filterer) FilterApproval(opts *bind.FilterOpts) (*ERC721ApprovalIterator, error) {
  2321  
  2322  	logs, sub, err := _ERC721.contract.FilterLogs(opts, "Approval")
  2323  	if err != nil {
  2324  		return nil, err
  2325  	}
  2326  	return &ERC721ApprovalIterator{contract: _ERC721.contract, event: "Approval", logs: logs, sub: sub}, nil
  2327  }
  2328  
  2329  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  2330  //
  2331  // Solidity: event Approval(address owner, address approved, uint256 tokenId)
  2332  func (_ERC721 *ERC721Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC721Approval) (event.Subscription, error) {
  2333  
  2334  	logs, sub, err := _ERC721.contract.WatchLogs(opts, "Approval")
  2335  	if err != nil {
  2336  		return nil, err
  2337  	}
  2338  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2339  		defer sub.Unsubscribe()
  2340  		for {
  2341  			select {
  2342  			case log := <-logs:
  2343  				// New log arrived, parse the event and forward to the user
  2344  				event := new(ERC721Approval)
  2345  				if err := _ERC721.contract.UnpackLog(event, "Approval", log); err != nil {
  2346  					return err
  2347  				}
  2348  				event.Raw = log
  2349  
  2350  				select {
  2351  				case sink <- event:
  2352  				case err := <-sub.Err():
  2353  					return err
  2354  				case <-quit:
  2355  					return nil
  2356  				}
  2357  			case err := <-sub.Err():
  2358  				return err
  2359  			case <-quit:
  2360  				return nil
  2361  			}
  2362  		}
  2363  	}), nil
  2364  }
  2365  
  2366  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  2367  //
  2368  // Solidity: event Approval(address owner, address approved, uint256 tokenId)
  2369  func (_ERC721 *ERC721Filterer) ParseApproval(log types.Log) (*ERC721Approval, error) {
  2370  	event := new(ERC721Approval)
  2371  	if err := _ERC721.contract.UnpackLog(event, "Approval", log); err != nil {
  2372  		return nil, err
  2373  	}
  2374  	event.Raw = log
  2375  	return event, nil
  2376  }
  2377  
  2378  // 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.
  2379  type ERC721TransferIterator struct {
  2380  	Event *ERC721Transfer // Event containing the contract specifics and raw log
  2381  
  2382  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2383  	event    string              // Event name to use for unpacking event data
  2384  
  2385  	logs chan types.Log        // Log channel receiving the found contract events
  2386  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2387  	done bool                  // Whether the subscription completed delivering logs
  2388  	fail error                 // Occurred error to stop iteration
  2389  }
  2390  
  2391  // Next advances the iterator to the subsequent event, returning whether there
  2392  // are any more events found. In case of a retrieval or parsing error, false is
  2393  // returned and Error() can be queried for the exact failure.
  2394  func (it *ERC721TransferIterator) Next() bool {
  2395  	// If the iterator failed, stop iterating
  2396  	if it.fail != nil {
  2397  		return false
  2398  	}
  2399  	// If the iterator completed, deliver directly whatever's available
  2400  	if it.done {
  2401  		select {
  2402  		case log := <-it.logs:
  2403  			it.Event = new(ERC721Transfer)
  2404  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2405  				it.fail = err
  2406  				return false
  2407  			}
  2408  			it.Event.Raw = log
  2409  			return true
  2410  
  2411  		default:
  2412  			return false
  2413  		}
  2414  	}
  2415  	// Iterator still in progress, wait for either a data or an error event
  2416  	select {
  2417  	case log := <-it.logs:
  2418  		it.Event = new(ERC721Transfer)
  2419  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2420  			it.fail = err
  2421  			return false
  2422  		}
  2423  		it.Event.Raw = log
  2424  		return true
  2425  
  2426  	case err := <-it.sub.Err():
  2427  		it.done = true
  2428  		it.fail = err
  2429  		return it.Next()
  2430  	}
  2431  }
  2432  
  2433  // Error returns any retrieval or parsing error occurred during filtering.
  2434  func (it *ERC721TransferIterator) Error() error {
  2435  	return it.fail
  2436  }
  2437  
  2438  // Close terminates the iteration process, releasing any pending underlying
  2439  // resources.
  2440  func (it *ERC721TransferIterator) Close() error {
  2441  	it.sub.Unsubscribe()
  2442  	return nil
  2443  }
  2444  
  2445  // ERC721Transfer represents a Transfer event raised by the ERC721 contract.
  2446  type ERC721Transfer struct {
  2447  	From    common.Address
  2448  	To      common.Address
  2449  	TokenId *big.Int
  2450  	Raw     types.Log // Blockchain specific contextual infos
  2451  }
  2452  
  2453  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  2454  //
  2455  // Solidity: event Transfer(address from, address to, uint256 tokenId)
  2456  func (_ERC721 *ERC721Filterer) FilterTransfer(opts *bind.FilterOpts) (*ERC721TransferIterator, error) {
  2457  
  2458  	logs, sub, err := _ERC721.contract.FilterLogs(opts, "Transfer")
  2459  	if err != nil {
  2460  		return nil, err
  2461  	}
  2462  	return &ERC721TransferIterator{contract: _ERC721.contract, event: "Transfer", logs: logs, sub: sub}, nil
  2463  }
  2464  
  2465  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  2466  //
  2467  // Solidity: event Transfer(address from, address to, uint256 tokenId)
  2468  func (_ERC721 *ERC721Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC721Transfer) (event.Subscription, error) {
  2469  
  2470  	logs, sub, err := _ERC721.contract.WatchLogs(opts, "Transfer")
  2471  	if err != nil {
  2472  		return nil, err
  2473  	}
  2474  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2475  		defer sub.Unsubscribe()
  2476  		for {
  2477  			select {
  2478  			case log := <-logs:
  2479  				// New log arrived, parse the event and forward to the user
  2480  				event := new(ERC721Transfer)
  2481  				if err := _ERC721.contract.UnpackLog(event, "Transfer", log); err != nil {
  2482  					return err
  2483  				}
  2484  				event.Raw = log
  2485  
  2486  				select {
  2487  				case sink <- event:
  2488  				case err := <-sub.Err():
  2489  					return err
  2490  				case <-quit:
  2491  					return nil
  2492  				}
  2493  			case err := <-sub.Err():
  2494  				return err
  2495  			case <-quit:
  2496  				return nil
  2497  			}
  2498  		}
  2499  	}), nil
  2500  }
  2501  
  2502  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  2503  //
  2504  // Solidity: event Transfer(address from, address to, uint256 tokenId)
  2505  func (_ERC721 *ERC721Filterer) ParseTransfer(log types.Log) (*ERC721Transfer, error) {
  2506  	event := new(ERC721Transfer)
  2507  	if err := _ERC721.contract.UnpackLog(event, "Transfer", log); err != nil {
  2508  		return nil, err
  2509  	}
  2510  	event.Raw = log
  2511  	return event, nil
  2512  }
  2513  
  2514  // ERC721MetadataABI is the input ABI used to generate the binding from.
  2515  const ERC721MetadataABI = "[{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"string\"}],\"name\":\"getMetadata\",\"outputs\":[{\"name\":\"buffer\",\"type\":\"bytes32[4]\"},{\"name\":\"count\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]"
  2516  
  2517  // ERC721MetadataFuncSigs maps the 4-byte function signature to its string representation.
  2518  var ERC721MetadataFuncSigs = map[string]string{
  2519  	"cb4799f2": "getMetadata(uint256,string)",
  2520  }
  2521  
  2522  // ERC721MetadataBin is the compiled bytecode used for deploying new contracts.
  2523  var ERC721MetadataBin = "0x6060604052341561000f57600080fd5b6102708061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663cb4799f28114610045575b600080fd5b341561005057600080fd5b61009b600480359060446024803590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506100da95505050505050565b6040518083608080838360005b838110156100c05780820151838201526020016100a8565b505050509050018281526020019250505060405180910390f35b6100e261021b565b6000836001141561011857507f48656c6c6f20576f726c6421203a4400000000000000000000000000000000008152600f610214565b836002141561017257507f4920776f756c6420646566696e6974656c792063686f6f73652061206d65646981527f756d206c656e67746820737472696e672e00000000000000000000000000000060208201526031610214565b836003141561021457507f4c6f72656d20697073756d20646f6c6f722073697420616d65742c206d69206581527f737420616363756d73616e2064617069627573206175677565206c6f72656d2c60208201527f2074726973746971756520766573746962756c756d2069642c206c696265726f60408201527f207375736369706974207661726975732073617069656e20616c697175616d2e606082015260805b9250929050565b60806040519081016040526004815b6000815260001991909101906020018161022a57905050905600a165627a7a72305820ecdf48182e19d599c4eac88072add5e16a742b4144bcf661005b44bdeb469f340029"
  2524  
  2525  // DeployERC721Metadata deploys a new Ethereum contract, binding an instance of ERC721Metadata to it.
  2526  func DeployERC721Metadata(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ERC721Metadata, error) {
  2527  	parsed, err := abi.JSON(strings.NewReader(ERC721MetadataABI))
  2528  	if err != nil {
  2529  		return common.Address{}, nil, nil, err
  2530  	}
  2531  
  2532  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(ERC721MetadataBin), backend)
  2533  	if err != nil {
  2534  		return common.Address{}, nil, nil, err
  2535  	}
  2536  	return address, tx, &ERC721Metadata{ERC721MetadataCaller: ERC721MetadataCaller{contract: contract}, ERC721MetadataTransactor: ERC721MetadataTransactor{contract: contract}, ERC721MetadataFilterer: ERC721MetadataFilterer{contract: contract}}, nil
  2537  }
  2538  
  2539  // ERC721Metadata is an auto generated Go binding around an Ethereum contract.
  2540  type ERC721Metadata struct {
  2541  	ERC721MetadataCaller     // Read-only binding to the contract
  2542  	ERC721MetadataTransactor // Write-only binding to the contract
  2543  	ERC721MetadataFilterer   // Log filterer for contract events
  2544  }
  2545  
  2546  // ERC721MetadataCaller is an auto generated read-only Go binding around an Ethereum contract.
  2547  type ERC721MetadataCaller struct {
  2548  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2549  }
  2550  
  2551  // ERC721MetadataTransactor is an auto generated write-only Go binding around an Ethereum contract.
  2552  type ERC721MetadataTransactor struct {
  2553  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2554  }
  2555  
  2556  // ERC721MetadataFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  2557  type ERC721MetadataFilterer struct {
  2558  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2559  }
  2560  
  2561  // ERC721MetadataSession is an auto generated Go binding around an Ethereum contract,
  2562  // with pre-set call and transact options.
  2563  type ERC721MetadataSession struct {
  2564  	Contract     *ERC721Metadata   // Generic contract binding to set the session for
  2565  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  2566  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  2567  }
  2568  
  2569  // ERC721MetadataCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  2570  // with pre-set call options.
  2571  type ERC721MetadataCallerSession struct {
  2572  	Contract *ERC721MetadataCaller // Generic contract caller binding to set the session for
  2573  	CallOpts bind.CallOpts         // Call options to use throughout this session
  2574  }
  2575  
  2576  // ERC721MetadataTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  2577  // with pre-set transact options.
  2578  type ERC721MetadataTransactorSession struct {
  2579  	Contract     *ERC721MetadataTransactor // Generic contract transactor binding to set the session for
  2580  	TransactOpts bind.TransactOpts         // Transaction auth options to use throughout this session
  2581  }
  2582  
  2583  // ERC721MetadataRaw is an auto generated low-level Go binding around an Ethereum contract.
  2584  type ERC721MetadataRaw struct {
  2585  	Contract *ERC721Metadata // Generic contract binding to access the raw methods on
  2586  }
  2587  
  2588  // ERC721MetadataCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  2589  type ERC721MetadataCallerRaw struct {
  2590  	Contract *ERC721MetadataCaller // Generic read-only contract binding to access the raw methods on
  2591  }
  2592  
  2593  // ERC721MetadataTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  2594  type ERC721MetadataTransactorRaw struct {
  2595  	Contract *ERC721MetadataTransactor // Generic write-only contract binding to access the raw methods on
  2596  }
  2597  
  2598  // NewERC721Metadata creates a new instance of ERC721Metadata, bound to a specific deployed contract.
  2599  func NewERC721Metadata(address common.Address, backend bind.ContractBackend) (*ERC721Metadata, error) {
  2600  	contract, err := bindERC721Metadata(address, backend, backend, backend)
  2601  	if err != nil {
  2602  		return nil, err
  2603  	}
  2604  	return &ERC721Metadata{ERC721MetadataCaller: ERC721MetadataCaller{contract: contract}, ERC721MetadataTransactor: ERC721MetadataTransactor{contract: contract}, ERC721MetadataFilterer: ERC721MetadataFilterer{contract: contract}}, nil
  2605  }
  2606  
  2607  // NewERC721MetadataCaller creates a new read-only instance of ERC721Metadata, bound to a specific deployed contract.
  2608  func NewERC721MetadataCaller(address common.Address, caller bind.ContractCaller) (*ERC721MetadataCaller, error) {
  2609  	contract, err := bindERC721Metadata(address, caller, nil, nil)
  2610  	if err != nil {
  2611  		return nil, err
  2612  	}
  2613  	return &ERC721MetadataCaller{contract: contract}, nil
  2614  }
  2615  
  2616  // NewERC721MetadataTransactor creates a new write-only instance of ERC721Metadata, bound to a specific deployed contract.
  2617  func NewERC721MetadataTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC721MetadataTransactor, error) {
  2618  	contract, err := bindERC721Metadata(address, nil, transactor, nil)
  2619  	if err != nil {
  2620  		return nil, err
  2621  	}
  2622  	return &ERC721MetadataTransactor{contract: contract}, nil
  2623  }
  2624  
  2625  // NewERC721MetadataFilterer creates a new log filterer instance of ERC721Metadata, bound to a specific deployed contract.
  2626  func NewERC721MetadataFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC721MetadataFilterer, error) {
  2627  	contract, err := bindERC721Metadata(address, nil, nil, filterer)
  2628  	if err != nil {
  2629  		return nil, err
  2630  	}
  2631  	return &ERC721MetadataFilterer{contract: contract}, nil
  2632  }
  2633  
  2634  // bindERC721Metadata binds a generic wrapper to an already deployed contract.
  2635  func bindERC721Metadata(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  2636  	parsed, err := abi.JSON(strings.NewReader(ERC721MetadataABI))
  2637  	if err != nil {
  2638  		return nil, err
  2639  	}
  2640  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  2641  }
  2642  
  2643  // Call invokes the (constant) contract method with params as input values and
  2644  // sets the output to result. The result type might be a single field for simple
  2645  // returns, a slice of interfaces for anonymous returns and a struct for named
  2646  // returns.
  2647  func (_ERC721Metadata *ERC721MetadataRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  2648  	return _ERC721Metadata.Contract.ERC721MetadataCaller.contract.Call(opts, result, method, params...)
  2649  }
  2650  
  2651  // Transfer initiates a plain transaction to move funds to the contract, calling
  2652  // its default method if one is available.
  2653  func (_ERC721Metadata *ERC721MetadataRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  2654  	return _ERC721Metadata.Contract.ERC721MetadataTransactor.contract.Transfer(opts)
  2655  }
  2656  
  2657  // Transact invokes the (paid) contract method with params as input values.
  2658  func (_ERC721Metadata *ERC721MetadataRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  2659  	return _ERC721Metadata.Contract.ERC721MetadataTransactor.contract.Transact(opts, method, params...)
  2660  }
  2661  
  2662  // Call invokes the (constant) contract method with params as input values and
  2663  // sets the output to result. The result type might be a single field for simple
  2664  // returns, a slice of interfaces for anonymous returns and a struct for named
  2665  // returns.
  2666  func (_ERC721Metadata *ERC721MetadataCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  2667  	return _ERC721Metadata.Contract.contract.Call(opts, result, method, params...)
  2668  }
  2669  
  2670  // Transfer initiates a plain transaction to move funds to the contract, calling
  2671  // its default method if one is available.
  2672  func (_ERC721Metadata *ERC721MetadataTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  2673  	return _ERC721Metadata.Contract.contract.Transfer(opts)
  2674  }
  2675  
  2676  // Transact invokes the (paid) contract method with params as input values.
  2677  func (_ERC721Metadata *ERC721MetadataTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  2678  	return _ERC721Metadata.Contract.contract.Transact(opts, method, params...)
  2679  }
  2680  
  2681  // GetMetadata is a free data retrieval call binding the contract method 0xcb4799f2.
  2682  //
  2683  // Solidity: function getMetadata(uint256 _tokenId, string ) view returns(bytes32[4] buffer, uint256 count)
  2684  func (_ERC721Metadata *ERC721MetadataCaller) GetMetadata(opts *bind.CallOpts, _tokenId *big.Int, arg1 string) (struct {
  2685  	Buffer [4][32]byte
  2686  	Count  *big.Int
  2687  }, error) {
  2688  	var out []interface{}
  2689  	err := _ERC721Metadata.contract.Call(opts, &out, "getMetadata", _tokenId, arg1)
  2690  
  2691  	outstruct := new(struct {
  2692  		Buffer [4][32]byte
  2693  		Count  *big.Int
  2694  	})
  2695  
  2696  	outstruct.Buffer = out[0].([4][32]byte)
  2697  	outstruct.Count = out[1].(*big.Int)
  2698  
  2699  	return *outstruct, err
  2700  
  2701  }
  2702  
  2703  // GetMetadata is a free data retrieval call binding the contract method 0xcb4799f2.
  2704  //
  2705  // Solidity: function getMetadata(uint256 _tokenId, string ) view returns(bytes32[4] buffer, uint256 count)
  2706  func (_ERC721Metadata *ERC721MetadataSession) GetMetadata(_tokenId *big.Int, arg1 string) (struct {
  2707  	Buffer [4][32]byte
  2708  	Count  *big.Int
  2709  }, error) {
  2710  	return _ERC721Metadata.Contract.GetMetadata(&_ERC721Metadata.CallOpts, _tokenId, arg1)
  2711  }
  2712  
  2713  // GetMetadata is a free data retrieval call binding the contract method 0xcb4799f2.
  2714  //
  2715  // Solidity: function getMetadata(uint256 _tokenId, string ) view returns(bytes32[4] buffer, uint256 count)
  2716  func (_ERC721Metadata *ERC721MetadataCallerSession) GetMetadata(_tokenId *big.Int, arg1 string) (struct {
  2717  	Buffer [4][32]byte
  2718  	Count  *big.Int
  2719  }, error) {
  2720  	return _ERC721Metadata.Contract.GetMetadata(&_ERC721Metadata.CallOpts, _tokenId, arg1)
  2721  }
  2722  
  2723  // GeneScienceInterfaceABI is the input ABI used to generate the binding from.
  2724  const GeneScienceInterfaceABI = "[{\"constant\":false,\"inputs\":[{\"name\":\"genes1\",\"type\":\"uint256\"},{\"name\":\"genes2\",\"type\":\"uint256\"},{\"name\":\"targetBlock\",\"type\":\"uint256\"}],\"name\":\"mixGenes\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isGeneScience\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}]"
  2725  
  2726  // GeneScienceInterfaceFuncSigs maps the 4-byte function signature to its string representation.
  2727  var GeneScienceInterfaceFuncSigs = map[string]string{
  2728  	"54c15b82": "isGeneScience()",
  2729  	"0d9f5aed": "mixGenes(uint256,uint256,uint256)",
  2730  }
  2731  
  2732  // GeneScienceInterface is an auto generated Go binding around an Ethereum contract.
  2733  type GeneScienceInterface struct {
  2734  	GeneScienceInterfaceCaller     // Read-only binding to the contract
  2735  	GeneScienceInterfaceTransactor // Write-only binding to the contract
  2736  	GeneScienceInterfaceFilterer   // Log filterer for contract events
  2737  }
  2738  
  2739  // GeneScienceInterfaceCaller is an auto generated read-only Go binding around an Ethereum contract.
  2740  type GeneScienceInterfaceCaller struct {
  2741  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2742  }
  2743  
  2744  // GeneScienceInterfaceTransactor is an auto generated write-only Go binding around an Ethereum contract.
  2745  type GeneScienceInterfaceTransactor struct {
  2746  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2747  }
  2748  
  2749  // GeneScienceInterfaceFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  2750  type GeneScienceInterfaceFilterer struct {
  2751  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2752  }
  2753  
  2754  // GeneScienceInterfaceSession is an auto generated Go binding around an Ethereum contract,
  2755  // with pre-set call and transact options.
  2756  type GeneScienceInterfaceSession struct {
  2757  	Contract     *GeneScienceInterface // Generic contract binding to set the session for
  2758  	CallOpts     bind.CallOpts         // Call options to use throughout this session
  2759  	TransactOpts bind.TransactOpts     // Transaction auth options to use throughout this session
  2760  }
  2761  
  2762  // GeneScienceInterfaceCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  2763  // with pre-set call options.
  2764  type GeneScienceInterfaceCallerSession struct {
  2765  	Contract *GeneScienceInterfaceCaller // Generic contract caller binding to set the session for
  2766  	CallOpts bind.CallOpts               // Call options to use throughout this session
  2767  }
  2768  
  2769  // GeneScienceInterfaceTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  2770  // with pre-set transact options.
  2771  type GeneScienceInterfaceTransactorSession struct {
  2772  	Contract     *GeneScienceInterfaceTransactor // Generic contract transactor binding to set the session for
  2773  	TransactOpts bind.TransactOpts               // Transaction auth options to use throughout this session
  2774  }
  2775  
  2776  // GeneScienceInterfaceRaw is an auto generated low-level Go binding around an Ethereum contract.
  2777  type GeneScienceInterfaceRaw struct {
  2778  	Contract *GeneScienceInterface // Generic contract binding to access the raw methods on
  2779  }
  2780  
  2781  // GeneScienceInterfaceCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  2782  type GeneScienceInterfaceCallerRaw struct {
  2783  	Contract *GeneScienceInterfaceCaller // Generic read-only contract binding to access the raw methods on
  2784  }
  2785  
  2786  // GeneScienceInterfaceTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  2787  type GeneScienceInterfaceTransactorRaw struct {
  2788  	Contract *GeneScienceInterfaceTransactor // Generic write-only contract binding to access the raw methods on
  2789  }
  2790  
  2791  // NewGeneScienceInterface creates a new instance of GeneScienceInterface, bound to a specific deployed contract.
  2792  func NewGeneScienceInterface(address common.Address, backend bind.ContractBackend) (*GeneScienceInterface, error) {
  2793  	contract, err := bindGeneScienceInterface(address, backend, backend, backend)
  2794  	if err != nil {
  2795  		return nil, err
  2796  	}
  2797  	return &GeneScienceInterface{GeneScienceInterfaceCaller: GeneScienceInterfaceCaller{contract: contract}, GeneScienceInterfaceTransactor: GeneScienceInterfaceTransactor{contract: contract}, GeneScienceInterfaceFilterer: GeneScienceInterfaceFilterer{contract: contract}}, nil
  2798  }
  2799  
  2800  // NewGeneScienceInterfaceCaller creates a new read-only instance of GeneScienceInterface, bound to a specific deployed contract.
  2801  func NewGeneScienceInterfaceCaller(address common.Address, caller bind.ContractCaller) (*GeneScienceInterfaceCaller, error) {
  2802  	contract, err := bindGeneScienceInterface(address, caller, nil, nil)
  2803  	if err != nil {
  2804  		return nil, err
  2805  	}
  2806  	return &GeneScienceInterfaceCaller{contract: contract}, nil
  2807  }
  2808  
  2809  // NewGeneScienceInterfaceTransactor creates a new write-only instance of GeneScienceInterface, bound to a specific deployed contract.
  2810  func NewGeneScienceInterfaceTransactor(address common.Address, transactor bind.ContractTransactor) (*GeneScienceInterfaceTransactor, error) {
  2811  	contract, err := bindGeneScienceInterface(address, nil, transactor, nil)
  2812  	if err != nil {
  2813  		return nil, err
  2814  	}
  2815  	return &GeneScienceInterfaceTransactor{contract: contract}, nil
  2816  }
  2817  
  2818  // NewGeneScienceInterfaceFilterer creates a new log filterer instance of GeneScienceInterface, bound to a specific deployed contract.
  2819  func NewGeneScienceInterfaceFilterer(address common.Address, filterer bind.ContractFilterer) (*GeneScienceInterfaceFilterer, error) {
  2820  	contract, err := bindGeneScienceInterface(address, nil, nil, filterer)
  2821  	if err != nil {
  2822  		return nil, err
  2823  	}
  2824  	return &GeneScienceInterfaceFilterer{contract: contract}, nil
  2825  }
  2826  
  2827  // bindGeneScienceInterface binds a generic wrapper to an already deployed contract.
  2828  func bindGeneScienceInterface(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  2829  	parsed, err := abi.JSON(strings.NewReader(GeneScienceInterfaceABI))
  2830  	if err != nil {
  2831  		return nil, err
  2832  	}
  2833  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  2834  }
  2835  
  2836  // Call invokes the (constant) contract method with params as input values and
  2837  // sets the output to result. The result type might be a single field for simple
  2838  // returns, a slice of interfaces for anonymous returns and a struct for named
  2839  // returns.
  2840  func (_GeneScienceInterface *GeneScienceInterfaceRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  2841  	return _GeneScienceInterface.Contract.GeneScienceInterfaceCaller.contract.Call(opts, result, method, params...)
  2842  }
  2843  
  2844  // Transfer initiates a plain transaction to move funds to the contract, calling
  2845  // its default method if one is available.
  2846  func (_GeneScienceInterface *GeneScienceInterfaceRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  2847  	return _GeneScienceInterface.Contract.GeneScienceInterfaceTransactor.contract.Transfer(opts)
  2848  }
  2849  
  2850  // Transact invokes the (paid) contract method with params as input values.
  2851  func (_GeneScienceInterface *GeneScienceInterfaceRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  2852  	return _GeneScienceInterface.Contract.GeneScienceInterfaceTransactor.contract.Transact(opts, method, params...)
  2853  }
  2854  
  2855  // Call invokes the (constant) contract method with params as input values and
  2856  // sets the output to result. The result type might be a single field for simple
  2857  // returns, a slice of interfaces for anonymous returns and a struct for named
  2858  // returns.
  2859  func (_GeneScienceInterface *GeneScienceInterfaceCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  2860  	return _GeneScienceInterface.Contract.contract.Call(opts, result, method, params...)
  2861  }
  2862  
  2863  // Transfer initiates a plain transaction to move funds to the contract, calling
  2864  // its default method if one is available.
  2865  func (_GeneScienceInterface *GeneScienceInterfaceTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  2866  	return _GeneScienceInterface.Contract.contract.Transfer(opts)
  2867  }
  2868  
  2869  // Transact invokes the (paid) contract method with params as input values.
  2870  func (_GeneScienceInterface *GeneScienceInterfaceTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  2871  	return _GeneScienceInterface.Contract.contract.Transact(opts, method, params...)
  2872  }
  2873  
  2874  // IsGeneScience is a free data retrieval call binding the contract method 0x54c15b82.
  2875  //
  2876  // Solidity: function isGeneScience() pure returns(bool)
  2877  func (_GeneScienceInterface *GeneScienceInterfaceCaller) IsGeneScience(opts *bind.CallOpts) (bool, error) {
  2878  	var out []interface{}
  2879  	err := _GeneScienceInterface.contract.Call(opts, &out, "isGeneScience")
  2880  
  2881  	if err != nil {
  2882  		return *new(bool), err
  2883  	}
  2884  
  2885  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  2886  
  2887  	return out0, err
  2888  
  2889  }
  2890  
  2891  // IsGeneScience is a free data retrieval call binding the contract method 0x54c15b82.
  2892  //
  2893  // Solidity: function isGeneScience() pure returns(bool)
  2894  func (_GeneScienceInterface *GeneScienceInterfaceSession) IsGeneScience() (bool, error) {
  2895  	return _GeneScienceInterface.Contract.IsGeneScience(&_GeneScienceInterface.CallOpts)
  2896  }
  2897  
  2898  // IsGeneScience is a free data retrieval call binding the contract method 0x54c15b82.
  2899  //
  2900  // Solidity: function isGeneScience() pure returns(bool)
  2901  func (_GeneScienceInterface *GeneScienceInterfaceCallerSession) IsGeneScience() (bool, error) {
  2902  	return _GeneScienceInterface.Contract.IsGeneScience(&_GeneScienceInterface.CallOpts)
  2903  }
  2904  
  2905  // MixGenes is a paid mutator transaction binding the contract method 0x0d9f5aed.
  2906  //
  2907  // Solidity: function mixGenes(uint256 genes1, uint256 genes2, uint256 targetBlock) returns(uint256)
  2908  func (_GeneScienceInterface *GeneScienceInterfaceTransactor) MixGenes(opts *bind.TransactOpts, genes1 *big.Int, genes2 *big.Int, targetBlock *big.Int) (*types.Transaction, error) {
  2909  	return _GeneScienceInterface.contract.Transact(opts, "mixGenes", genes1, genes2, targetBlock)
  2910  }
  2911  
  2912  // MixGenes is a paid mutator transaction binding the contract method 0x0d9f5aed.
  2913  //
  2914  // Solidity: function mixGenes(uint256 genes1, uint256 genes2, uint256 targetBlock) returns(uint256)
  2915  func (_GeneScienceInterface *GeneScienceInterfaceSession) MixGenes(genes1 *big.Int, genes2 *big.Int, targetBlock *big.Int) (*types.Transaction, error) {
  2916  	return _GeneScienceInterface.Contract.MixGenes(&_GeneScienceInterface.TransactOpts, genes1, genes2, targetBlock)
  2917  }
  2918  
  2919  // MixGenes is a paid mutator transaction binding the contract method 0x0d9f5aed.
  2920  //
  2921  // Solidity: function mixGenes(uint256 genes1, uint256 genes2, uint256 targetBlock) returns(uint256)
  2922  func (_GeneScienceInterface *GeneScienceInterfaceTransactorSession) MixGenes(genes1 *big.Int, genes2 *big.Int, targetBlock *big.Int) (*types.Transaction, error) {
  2923  	return _GeneScienceInterface.Contract.MixGenes(&_GeneScienceInterface.TransactOpts, genes1, genes2, targetBlock)
  2924  }
  2925  
  2926  // KittyAccessControlABI is the input ABI used to generate the binding from.
  2927  const KittyAccessControlABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"cfoAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ceoAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newCEO\",\"type\":\"address\"}],\"name\":\"setCEO\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newCOO\",\"type\":\"address\"}],\"name\":\"setCOO\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newCFO\",\"type\":\"address\"}],\"name\":\"setCFO\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cooAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"newContract\",\"type\":\"address\"}],\"name\":\"ContractUpgrade\",\"type\":\"event\"}]"
  2928  
  2929  // KittyAccessControlFuncSigs maps the 4-byte function signature to its string representation.
  2930  var KittyAccessControlFuncSigs = map[string]string{
  2931  	"0a0f8168": "ceoAddress()",
  2932  	"0519ce79": "cfoAddress()",
  2933  	"b047fb50": "cooAddress()",
  2934  	"8456cb59": "pause()",
  2935  	"5c975abb": "paused()",
  2936  	"27d7874c": "setCEO(address)",
  2937  	"4e0a3379": "setCFO(address)",
  2938  	"2ba73c15": "setCOO(address)",
  2939  	"3f4ba83a": "unpause()",
  2940  }
  2941  
  2942  // KittyAccessControlBin is the compiled bytecode used for deploying new contracts.
  2943  var KittyAccessControlBin = "0x60606040526002805460a060020a60ff0219169055341561001f57600080fd5b6104478061002e6000396000f3006060604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630519ce79811461009d5780630a0f8168146100cc57806327d7874c146100df5780632ba73c15146101005780633f4ba83a1461011f5780634e0a3379146101325780635c975abb146101515780638456cb5914610178578063b047fb501461018b575b600080fd5b34156100a857600080fd5b6100b061019e565b604051600160a060020a03909116815260200160405180910390f35b34156100d757600080fd5b6100b06101ad565b34156100ea57600080fd5b6100fe600160a060020a03600435166101bc565b005b341561010b57600080fd5b6100fe600160a060020a036004351661021b565b341561012a57600080fd5b6100fe61027a565b341561013d57600080fd5b6100fe600160a060020a03600435166102de565b341561015c57600080fd5b61016461033d565b604051901515815260200160405180910390f35b341561018357600080fd5b6100fe61035e565b341561019657600080fd5b6100b061040c565b600154600160a060020a031681565b600054600160a060020a031681565b60005433600160a060020a039081169116146101d757600080fd5b600160a060020a03811615156101ec57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a0390811691161461023657600080fd5b600160a060020a038116151561024b57600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a0390811691161461029557600080fd5b60025474010000000000000000000000000000000000000000900460ff1615156102be57600080fd5b6002805474ff000000000000000000000000000000000000000019169055565b60005433600160a060020a039081169116146102f957600080fd5b600160a060020a038116151561030e57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60025474010000000000000000000000000000000000000000900460ff1681565b60025433600160a060020a0390811691161480610389575060005433600160a060020a039081169116145b806103a2575060015433600160a060020a039081169116145b15156103ad57600080fd5b60025474010000000000000000000000000000000000000000900460ff16156103d557600080fd5b6002805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600254600160a060020a0316815600a165627a7a723058201647cca0924c8f20a3927b34a49ceb35d9ce3e905520c6d772384991a2af79600029"
  2944  
  2945  // DeployKittyAccessControl deploys a new Ethereum contract, binding an instance of KittyAccessControl to it.
  2946  func DeployKittyAccessControl(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *KittyAccessControl, error) {
  2947  	parsed, err := abi.JSON(strings.NewReader(KittyAccessControlABI))
  2948  	if err != nil {
  2949  		return common.Address{}, nil, nil, err
  2950  	}
  2951  
  2952  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(KittyAccessControlBin), backend)
  2953  	if err != nil {
  2954  		return common.Address{}, nil, nil, err
  2955  	}
  2956  	return address, tx, &KittyAccessControl{KittyAccessControlCaller: KittyAccessControlCaller{contract: contract}, KittyAccessControlTransactor: KittyAccessControlTransactor{contract: contract}, KittyAccessControlFilterer: KittyAccessControlFilterer{contract: contract}}, nil
  2957  }
  2958  
  2959  // KittyAccessControl is an auto generated Go binding around an Ethereum contract.
  2960  type KittyAccessControl struct {
  2961  	KittyAccessControlCaller     // Read-only binding to the contract
  2962  	KittyAccessControlTransactor // Write-only binding to the contract
  2963  	KittyAccessControlFilterer   // Log filterer for contract events
  2964  }
  2965  
  2966  // KittyAccessControlCaller is an auto generated read-only Go binding around an Ethereum contract.
  2967  type KittyAccessControlCaller struct {
  2968  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2969  }
  2970  
  2971  // KittyAccessControlTransactor is an auto generated write-only Go binding around an Ethereum contract.
  2972  type KittyAccessControlTransactor struct {
  2973  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2974  }
  2975  
  2976  // KittyAccessControlFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  2977  type KittyAccessControlFilterer struct {
  2978  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2979  }
  2980  
  2981  // KittyAccessControlSession is an auto generated Go binding around an Ethereum contract,
  2982  // with pre-set call and transact options.
  2983  type KittyAccessControlSession struct {
  2984  	Contract     *KittyAccessControl // Generic contract binding to set the session for
  2985  	CallOpts     bind.CallOpts       // Call options to use throughout this session
  2986  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
  2987  }
  2988  
  2989  // KittyAccessControlCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  2990  // with pre-set call options.
  2991  type KittyAccessControlCallerSession struct {
  2992  	Contract *KittyAccessControlCaller // Generic contract caller binding to set the session for
  2993  	CallOpts bind.CallOpts             // Call options to use throughout this session
  2994  }
  2995  
  2996  // KittyAccessControlTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  2997  // with pre-set transact options.
  2998  type KittyAccessControlTransactorSession struct {
  2999  	Contract     *KittyAccessControlTransactor // Generic contract transactor binding to set the session for
  3000  	TransactOpts bind.TransactOpts             // Transaction auth options to use throughout this session
  3001  }
  3002  
  3003  // KittyAccessControlRaw is an auto generated low-level Go binding around an Ethereum contract.
  3004  type KittyAccessControlRaw struct {
  3005  	Contract *KittyAccessControl // Generic contract binding to access the raw methods on
  3006  }
  3007  
  3008  // KittyAccessControlCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  3009  type KittyAccessControlCallerRaw struct {
  3010  	Contract *KittyAccessControlCaller // Generic read-only contract binding to access the raw methods on
  3011  }
  3012  
  3013  // KittyAccessControlTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  3014  type KittyAccessControlTransactorRaw struct {
  3015  	Contract *KittyAccessControlTransactor // Generic write-only contract binding to access the raw methods on
  3016  }
  3017  
  3018  // NewKittyAccessControl creates a new instance of KittyAccessControl, bound to a specific deployed contract.
  3019  func NewKittyAccessControl(address common.Address, backend bind.ContractBackend) (*KittyAccessControl, error) {
  3020  	contract, err := bindKittyAccessControl(address, backend, backend, backend)
  3021  	if err != nil {
  3022  		return nil, err
  3023  	}
  3024  	return &KittyAccessControl{KittyAccessControlCaller: KittyAccessControlCaller{contract: contract}, KittyAccessControlTransactor: KittyAccessControlTransactor{contract: contract}, KittyAccessControlFilterer: KittyAccessControlFilterer{contract: contract}}, nil
  3025  }
  3026  
  3027  // NewKittyAccessControlCaller creates a new read-only instance of KittyAccessControl, bound to a specific deployed contract.
  3028  func NewKittyAccessControlCaller(address common.Address, caller bind.ContractCaller) (*KittyAccessControlCaller, error) {
  3029  	contract, err := bindKittyAccessControl(address, caller, nil, nil)
  3030  	if err != nil {
  3031  		return nil, err
  3032  	}
  3033  	return &KittyAccessControlCaller{contract: contract}, nil
  3034  }
  3035  
  3036  // NewKittyAccessControlTransactor creates a new write-only instance of KittyAccessControl, bound to a specific deployed contract.
  3037  func NewKittyAccessControlTransactor(address common.Address, transactor bind.ContractTransactor) (*KittyAccessControlTransactor, error) {
  3038  	contract, err := bindKittyAccessControl(address, nil, transactor, nil)
  3039  	if err != nil {
  3040  		return nil, err
  3041  	}
  3042  	return &KittyAccessControlTransactor{contract: contract}, nil
  3043  }
  3044  
  3045  // NewKittyAccessControlFilterer creates a new log filterer instance of KittyAccessControl, bound to a specific deployed contract.
  3046  func NewKittyAccessControlFilterer(address common.Address, filterer bind.ContractFilterer) (*KittyAccessControlFilterer, error) {
  3047  	contract, err := bindKittyAccessControl(address, nil, nil, filterer)
  3048  	if err != nil {
  3049  		return nil, err
  3050  	}
  3051  	return &KittyAccessControlFilterer{contract: contract}, nil
  3052  }
  3053  
  3054  // bindKittyAccessControl binds a generic wrapper to an already deployed contract.
  3055  func bindKittyAccessControl(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  3056  	parsed, err := abi.JSON(strings.NewReader(KittyAccessControlABI))
  3057  	if err != nil {
  3058  		return nil, err
  3059  	}
  3060  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  3061  }
  3062  
  3063  // Call invokes the (constant) contract method with params as input values and
  3064  // sets the output to result. The result type might be a single field for simple
  3065  // returns, a slice of interfaces for anonymous returns and a struct for named
  3066  // returns.
  3067  func (_KittyAccessControl *KittyAccessControlRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  3068  	return _KittyAccessControl.Contract.KittyAccessControlCaller.contract.Call(opts, result, method, params...)
  3069  }
  3070  
  3071  // Transfer initiates a plain transaction to move funds to the contract, calling
  3072  // its default method if one is available.
  3073  func (_KittyAccessControl *KittyAccessControlRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3074  	return _KittyAccessControl.Contract.KittyAccessControlTransactor.contract.Transfer(opts)
  3075  }
  3076  
  3077  // Transact invokes the (paid) contract method with params as input values.
  3078  func (_KittyAccessControl *KittyAccessControlRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  3079  	return _KittyAccessControl.Contract.KittyAccessControlTransactor.contract.Transact(opts, method, params...)
  3080  }
  3081  
  3082  // Call invokes the (constant) contract method with params as input values and
  3083  // sets the output to result. The result type might be a single field for simple
  3084  // returns, a slice of interfaces for anonymous returns and a struct for named
  3085  // returns.
  3086  func (_KittyAccessControl *KittyAccessControlCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  3087  	return _KittyAccessControl.Contract.contract.Call(opts, result, method, params...)
  3088  }
  3089  
  3090  // Transfer initiates a plain transaction to move funds to the contract, calling
  3091  // its default method if one is available.
  3092  func (_KittyAccessControl *KittyAccessControlTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3093  	return _KittyAccessControl.Contract.contract.Transfer(opts)
  3094  }
  3095  
  3096  // Transact invokes the (paid) contract method with params as input values.
  3097  func (_KittyAccessControl *KittyAccessControlTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  3098  	return _KittyAccessControl.Contract.contract.Transact(opts, method, params...)
  3099  }
  3100  
  3101  // CeoAddress is a free data retrieval call binding the contract method 0x0a0f8168.
  3102  //
  3103  // Solidity: function ceoAddress() view returns(address)
  3104  func (_KittyAccessControl *KittyAccessControlCaller) CeoAddress(opts *bind.CallOpts) (common.Address, error) {
  3105  	var out []interface{}
  3106  	err := _KittyAccessControl.contract.Call(opts, &out, "ceoAddress")
  3107  
  3108  	if err != nil {
  3109  		return *new(common.Address), err
  3110  	}
  3111  
  3112  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  3113  
  3114  	return out0, err
  3115  
  3116  }
  3117  
  3118  // CeoAddress is a free data retrieval call binding the contract method 0x0a0f8168.
  3119  //
  3120  // Solidity: function ceoAddress() view returns(address)
  3121  func (_KittyAccessControl *KittyAccessControlSession) CeoAddress() (common.Address, error) {
  3122  	return _KittyAccessControl.Contract.CeoAddress(&_KittyAccessControl.CallOpts)
  3123  }
  3124  
  3125  // CeoAddress is a free data retrieval call binding the contract method 0x0a0f8168.
  3126  //
  3127  // Solidity: function ceoAddress() view returns(address)
  3128  func (_KittyAccessControl *KittyAccessControlCallerSession) CeoAddress() (common.Address, error) {
  3129  	return _KittyAccessControl.Contract.CeoAddress(&_KittyAccessControl.CallOpts)
  3130  }
  3131  
  3132  // CfoAddress is a free data retrieval call binding the contract method 0x0519ce79.
  3133  //
  3134  // Solidity: function cfoAddress() view returns(address)
  3135  func (_KittyAccessControl *KittyAccessControlCaller) CfoAddress(opts *bind.CallOpts) (common.Address, error) {
  3136  	var out []interface{}
  3137  	err := _KittyAccessControl.contract.Call(opts, &out, "cfoAddress")
  3138  
  3139  	if err != nil {
  3140  		return *new(common.Address), err
  3141  	}
  3142  
  3143  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  3144  
  3145  	return out0, err
  3146  
  3147  }
  3148  
  3149  // CfoAddress is a free data retrieval call binding the contract method 0x0519ce79.
  3150  //
  3151  // Solidity: function cfoAddress() view returns(address)
  3152  func (_KittyAccessControl *KittyAccessControlSession) CfoAddress() (common.Address, error) {
  3153  	return _KittyAccessControl.Contract.CfoAddress(&_KittyAccessControl.CallOpts)
  3154  }
  3155  
  3156  // CfoAddress is a free data retrieval call binding the contract method 0x0519ce79.
  3157  //
  3158  // Solidity: function cfoAddress() view returns(address)
  3159  func (_KittyAccessControl *KittyAccessControlCallerSession) CfoAddress() (common.Address, error) {
  3160  	return _KittyAccessControl.Contract.CfoAddress(&_KittyAccessControl.CallOpts)
  3161  }
  3162  
  3163  // CooAddress is a free data retrieval call binding the contract method 0xb047fb50.
  3164  //
  3165  // Solidity: function cooAddress() view returns(address)
  3166  func (_KittyAccessControl *KittyAccessControlCaller) CooAddress(opts *bind.CallOpts) (common.Address, error) {
  3167  	var out []interface{}
  3168  	err := _KittyAccessControl.contract.Call(opts, &out, "cooAddress")
  3169  
  3170  	if err != nil {
  3171  		return *new(common.Address), err
  3172  	}
  3173  
  3174  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  3175  
  3176  	return out0, err
  3177  
  3178  }
  3179  
  3180  // CooAddress is a free data retrieval call binding the contract method 0xb047fb50.
  3181  //
  3182  // Solidity: function cooAddress() view returns(address)
  3183  func (_KittyAccessControl *KittyAccessControlSession) CooAddress() (common.Address, error) {
  3184  	return _KittyAccessControl.Contract.CooAddress(&_KittyAccessControl.CallOpts)
  3185  }
  3186  
  3187  // CooAddress is a free data retrieval call binding the contract method 0xb047fb50.
  3188  //
  3189  // Solidity: function cooAddress() view returns(address)
  3190  func (_KittyAccessControl *KittyAccessControlCallerSession) CooAddress() (common.Address, error) {
  3191  	return _KittyAccessControl.Contract.CooAddress(&_KittyAccessControl.CallOpts)
  3192  }
  3193  
  3194  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
  3195  //
  3196  // Solidity: function paused() view returns(bool)
  3197  func (_KittyAccessControl *KittyAccessControlCaller) Paused(opts *bind.CallOpts) (bool, error) {
  3198  	var out []interface{}
  3199  	err := _KittyAccessControl.contract.Call(opts, &out, "paused")
  3200  
  3201  	if err != nil {
  3202  		return *new(bool), err
  3203  	}
  3204  
  3205  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  3206  
  3207  	return out0, err
  3208  
  3209  }
  3210  
  3211  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
  3212  //
  3213  // Solidity: function paused() view returns(bool)
  3214  func (_KittyAccessControl *KittyAccessControlSession) Paused() (bool, error) {
  3215  	return _KittyAccessControl.Contract.Paused(&_KittyAccessControl.CallOpts)
  3216  }
  3217  
  3218  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
  3219  //
  3220  // Solidity: function paused() view returns(bool)
  3221  func (_KittyAccessControl *KittyAccessControlCallerSession) Paused() (bool, error) {
  3222  	return _KittyAccessControl.Contract.Paused(&_KittyAccessControl.CallOpts)
  3223  }
  3224  
  3225  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
  3226  //
  3227  // Solidity: function pause() returns()
  3228  func (_KittyAccessControl *KittyAccessControlTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) {
  3229  	return _KittyAccessControl.contract.Transact(opts, "pause")
  3230  }
  3231  
  3232  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
  3233  //
  3234  // Solidity: function pause() returns()
  3235  func (_KittyAccessControl *KittyAccessControlSession) Pause() (*types.Transaction, error) {
  3236  	return _KittyAccessControl.Contract.Pause(&_KittyAccessControl.TransactOpts)
  3237  }
  3238  
  3239  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
  3240  //
  3241  // Solidity: function pause() returns()
  3242  func (_KittyAccessControl *KittyAccessControlTransactorSession) Pause() (*types.Transaction, error) {
  3243  	return _KittyAccessControl.Contract.Pause(&_KittyAccessControl.TransactOpts)
  3244  }
  3245  
  3246  // SetCEO is a paid mutator transaction binding the contract method 0x27d7874c.
  3247  //
  3248  // Solidity: function setCEO(address _newCEO) returns()
  3249  func (_KittyAccessControl *KittyAccessControlTransactor) SetCEO(opts *bind.TransactOpts, _newCEO common.Address) (*types.Transaction, error) {
  3250  	return _KittyAccessControl.contract.Transact(opts, "setCEO", _newCEO)
  3251  }
  3252  
  3253  // SetCEO is a paid mutator transaction binding the contract method 0x27d7874c.
  3254  //
  3255  // Solidity: function setCEO(address _newCEO) returns()
  3256  func (_KittyAccessControl *KittyAccessControlSession) SetCEO(_newCEO common.Address) (*types.Transaction, error) {
  3257  	return _KittyAccessControl.Contract.SetCEO(&_KittyAccessControl.TransactOpts, _newCEO)
  3258  }
  3259  
  3260  // SetCEO is a paid mutator transaction binding the contract method 0x27d7874c.
  3261  //
  3262  // Solidity: function setCEO(address _newCEO) returns()
  3263  func (_KittyAccessControl *KittyAccessControlTransactorSession) SetCEO(_newCEO common.Address) (*types.Transaction, error) {
  3264  	return _KittyAccessControl.Contract.SetCEO(&_KittyAccessControl.TransactOpts, _newCEO)
  3265  }
  3266  
  3267  // SetCFO is a paid mutator transaction binding the contract method 0x4e0a3379.
  3268  //
  3269  // Solidity: function setCFO(address _newCFO) returns()
  3270  func (_KittyAccessControl *KittyAccessControlTransactor) SetCFO(opts *bind.TransactOpts, _newCFO common.Address) (*types.Transaction, error) {
  3271  	return _KittyAccessControl.contract.Transact(opts, "setCFO", _newCFO)
  3272  }
  3273  
  3274  // SetCFO is a paid mutator transaction binding the contract method 0x4e0a3379.
  3275  //
  3276  // Solidity: function setCFO(address _newCFO) returns()
  3277  func (_KittyAccessControl *KittyAccessControlSession) SetCFO(_newCFO common.Address) (*types.Transaction, error) {
  3278  	return _KittyAccessControl.Contract.SetCFO(&_KittyAccessControl.TransactOpts, _newCFO)
  3279  }
  3280  
  3281  // SetCFO is a paid mutator transaction binding the contract method 0x4e0a3379.
  3282  //
  3283  // Solidity: function setCFO(address _newCFO) returns()
  3284  func (_KittyAccessControl *KittyAccessControlTransactorSession) SetCFO(_newCFO common.Address) (*types.Transaction, error) {
  3285  	return _KittyAccessControl.Contract.SetCFO(&_KittyAccessControl.TransactOpts, _newCFO)
  3286  }
  3287  
  3288  // SetCOO is a paid mutator transaction binding the contract method 0x2ba73c15.
  3289  //
  3290  // Solidity: function setCOO(address _newCOO) returns()
  3291  func (_KittyAccessControl *KittyAccessControlTransactor) SetCOO(opts *bind.TransactOpts, _newCOO common.Address) (*types.Transaction, error) {
  3292  	return _KittyAccessControl.contract.Transact(opts, "setCOO", _newCOO)
  3293  }
  3294  
  3295  // SetCOO is a paid mutator transaction binding the contract method 0x2ba73c15.
  3296  //
  3297  // Solidity: function setCOO(address _newCOO) returns()
  3298  func (_KittyAccessControl *KittyAccessControlSession) SetCOO(_newCOO common.Address) (*types.Transaction, error) {
  3299  	return _KittyAccessControl.Contract.SetCOO(&_KittyAccessControl.TransactOpts, _newCOO)
  3300  }
  3301  
  3302  // SetCOO is a paid mutator transaction binding the contract method 0x2ba73c15.
  3303  //
  3304  // Solidity: function setCOO(address _newCOO) returns()
  3305  func (_KittyAccessControl *KittyAccessControlTransactorSession) SetCOO(_newCOO common.Address) (*types.Transaction, error) {
  3306  	return _KittyAccessControl.Contract.SetCOO(&_KittyAccessControl.TransactOpts, _newCOO)
  3307  }
  3308  
  3309  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
  3310  //
  3311  // Solidity: function unpause() returns()
  3312  func (_KittyAccessControl *KittyAccessControlTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) {
  3313  	return _KittyAccessControl.contract.Transact(opts, "unpause")
  3314  }
  3315  
  3316  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
  3317  //
  3318  // Solidity: function unpause() returns()
  3319  func (_KittyAccessControl *KittyAccessControlSession) Unpause() (*types.Transaction, error) {
  3320  	return _KittyAccessControl.Contract.Unpause(&_KittyAccessControl.TransactOpts)
  3321  }
  3322  
  3323  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
  3324  //
  3325  // Solidity: function unpause() returns()
  3326  func (_KittyAccessControl *KittyAccessControlTransactorSession) Unpause() (*types.Transaction, error) {
  3327  	return _KittyAccessControl.Contract.Unpause(&_KittyAccessControl.TransactOpts)
  3328  }
  3329  
  3330  // KittyAccessControlContractUpgradeIterator is returned from FilterContractUpgrade and is used to iterate over the raw logs and unpacked data for ContractUpgrade events raised by the KittyAccessControl contract.
  3331  type KittyAccessControlContractUpgradeIterator struct {
  3332  	Event *KittyAccessControlContractUpgrade // Event containing the contract specifics and raw log
  3333  
  3334  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3335  	event    string              // Event name to use for unpacking event data
  3336  
  3337  	logs chan types.Log        // Log channel receiving the found contract events
  3338  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3339  	done bool                  // Whether the subscription completed delivering logs
  3340  	fail error                 // Occurred error to stop iteration
  3341  }
  3342  
  3343  // Next advances the iterator to the subsequent event, returning whether there
  3344  // are any more events found. In case of a retrieval or parsing error, false is
  3345  // returned and Error() can be queried for the exact failure.
  3346  func (it *KittyAccessControlContractUpgradeIterator) Next() bool {
  3347  	// If the iterator failed, stop iterating
  3348  	if it.fail != nil {
  3349  		return false
  3350  	}
  3351  	// If the iterator completed, deliver directly whatever's available
  3352  	if it.done {
  3353  		select {
  3354  		case log := <-it.logs:
  3355  			it.Event = new(KittyAccessControlContractUpgrade)
  3356  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3357  				it.fail = err
  3358  				return false
  3359  			}
  3360  			it.Event.Raw = log
  3361  			return true
  3362  
  3363  		default:
  3364  			return false
  3365  		}
  3366  	}
  3367  	// Iterator still in progress, wait for either a data or an error event
  3368  	select {
  3369  	case log := <-it.logs:
  3370  		it.Event = new(KittyAccessControlContractUpgrade)
  3371  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3372  			it.fail = err
  3373  			return false
  3374  		}
  3375  		it.Event.Raw = log
  3376  		return true
  3377  
  3378  	case err := <-it.sub.Err():
  3379  		it.done = true
  3380  		it.fail = err
  3381  		return it.Next()
  3382  	}
  3383  }
  3384  
  3385  // Error returns any retrieval or parsing error occurred during filtering.
  3386  func (it *KittyAccessControlContractUpgradeIterator) Error() error {
  3387  	return it.fail
  3388  }
  3389  
  3390  // Close terminates the iteration process, releasing any pending underlying
  3391  // resources.
  3392  func (it *KittyAccessControlContractUpgradeIterator) Close() error {
  3393  	it.sub.Unsubscribe()
  3394  	return nil
  3395  }
  3396  
  3397  // KittyAccessControlContractUpgrade represents a ContractUpgrade event raised by the KittyAccessControl contract.
  3398  type KittyAccessControlContractUpgrade struct {
  3399  	NewContract common.Address
  3400  	Raw         types.Log // Blockchain specific contextual infos
  3401  }
  3402  
  3403  // FilterContractUpgrade is a free log retrieval operation binding the contract event 0x450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa446199305.
  3404  //
  3405  // Solidity: event ContractUpgrade(address newContract)
  3406  func (_KittyAccessControl *KittyAccessControlFilterer) FilterContractUpgrade(opts *bind.FilterOpts) (*KittyAccessControlContractUpgradeIterator, error) {
  3407  
  3408  	logs, sub, err := _KittyAccessControl.contract.FilterLogs(opts, "ContractUpgrade")
  3409  	if err != nil {
  3410  		return nil, err
  3411  	}
  3412  	return &KittyAccessControlContractUpgradeIterator{contract: _KittyAccessControl.contract, event: "ContractUpgrade", logs: logs, sub: sub}, nil
  3413  }
  3414  
  3415  // WatchContractUpgrade is a free log subscription operation binding the contract event 0x450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa446199305.
  3416  //
  3417  // Solidity: event ContractUpgrade(address newContract)
  3418  func (_KittyAccessControl *KittyAccessControlFilterer) WatchContractUpgrade(opts *bind.WatchOpts, sink chan<- *KittyAccessControlContractUpgrade) (event.Subscription, error) {
  3419  
  3420  	logs, sub, err := _KittyAccessControl.contract.WatchLogs(opts, "ContractUpgrade")
  3421  	if err != nil {
  3422  		return nil, err
  3423  	}
  3424  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3425  		defer sub.Unsubscribe()
  3426  		for {
  3427  			select {
  3428  			case log := <-logs:
  3429  				// New log arrived, parse the event and forward to the user
  3430  				event := new(KittyAccessControlContractUpgrade)
  3431  				if err := _KittyAccessControl.contract.UnpackLog(event, "ContractUpgrade", log); err != nil {
  3432  					return err
  3433  				}
  3434  				event.Raw = log
  3435  
  3436  				select {
  3437  				case sink <- event:
  3438  				case err := <-sub.Err():
  3439  					return err
  3440  				case <-quit:
  3441  					return nil
  3442  				}
  3443  			case err := <-sub.Err():
  3444  				return err
  3445  			case <-quit:
  3446  				return nil
  3447  			}
  3448  		}
  3449  	}), nil
  3450  }
  3451  
  3452  // ParseContractUpgrade is a log parse operation binding the contract event 0x450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa446199305.
  3453  //
  3454  // Solidity: event ContractUpgrade(address newContract)
  3455  func (_KittyAccessControl *KittyAccessControlFilterer) ParseContractUpgrade(log types.Log) (*KittyAccessControlContractUpgrade, error) {
  3456  	event := new(KittyAccessControlContractUpgrade)
  3457  	if err := _KittyAccessControl.contract.UnpackLog(event, "ContractUpgrade", log); err != nil {
  3458  		return nil, err
  3459  	}
  3460  	event.Raw = log
  3461  	return event, nil
  3462  }
  3463  
  3464  // KittyAuctionABI is the input ABI used to generate the binding from.
  3465  const KittyAuctionABI = "[{\"constant\":true,\"inputs\":[{\"name\":\"_interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cfoAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_preferredTransport\",\"type\":\"string\"}],\"name\":\"tokenMetadata\",\"outputs\":[{\"name\":\"infoUrl\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ceoAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setSiringAuctionAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pregnantKitties\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_kittyId\",\"type\":\"uint256\"}],\"name\":\"isPregnant\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"siringAuction\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setGeneScienceAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newCEO\",\"type\":\"address\"}],\"name\":\"setCEO\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newCOO\",\"type\":\"address\"}],\"name\":\"setCOO\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_kittyId\",\"type\":\"uint256\"},{\"name\":\"_startingPrice\",\"type\":\"uint256\"},{\"name\":\"_endingPrice\",\"type\":\"uint256\"},{\"name\":\"_duration\",\"type\":\"uint256\"}],\"name\":\"createSaleAuction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"sireAllowedToAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_matronId\",\"type\":\"uint256\"},{\"name\":\"_sireId\",\"type\":\"uint256\"}],\"name\":\"canBreedWith\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"kittyIndexToApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_kittyId\",\"type\":\"uint256\"},{\"name\":\"_startingPrice\",\"type\":\"uint256\"},{\"name\":\"_endingPrice\",\"type\":\"uint256\"},{\"name\":\"_duration\",\"type\":\"uint256\"}],\"name\":\"createSiringAuction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"setAutoBirthFee\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_addr\",\"type\":\"address\"},{\"name\":\"_sireId\",\"type\":\"uint256\"}],\"name\":\"approveSiring\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newCFO\",\"type\":\"address\"}],\"name\":\"setCFO\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"secs\",\"type\":\"uint256\"}],\"name\":\"setSecondsPerBlock\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setSaleAuctionAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"count\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"secondsPerBlock\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"tokensOfOwner\",\"outputs\":[{\"name\":\"ownerTokens\",\"type\":\"uint256[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_matronId\",\"type\":\"uint256\"}],\"name\":\"giveBirth\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"withdrawAuctionBalances\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"cooldowns\",\"outputs\":[{\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"kittyIndexToOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cooAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"autoBirthFee\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"erc721Metadata\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_kittyId\",\"type\":\"uint256\"}],\"name\":\"isReadyToBreed\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_contractAddress\",\"type\":\"address\"}],\"name\":\"setMetadataAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"saleAuction\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sireId\",\"type\":\"uint256\"},{\"name\":\"_matronId\",\"type\":\"uint256\"}],\"name\":\"bidOnSiringAuction\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"geneScience\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_matronId\",\"type\":\"uint256\"},{\"name\":\"_sireId\",\"type\":\"uint256\"}],\"name\":\"breedWithAuto\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"matronId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"sireId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"cooldownEndBlock\",\"type\":\"uint256\"}],\"name\":\"Pregnant\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"kittyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"matronId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"sireId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"genes\",\"type\":\"uint256\"}],\"name\":\"Birth\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"newContract\",\"type\":\"address\"}],\"name\":\"ContractUpgrade\",\"type\":\"event\"}]"
  3466  
  3467  // KittyAuctionFuncSigs maps the 4-byte function signature to its string representation.
  3468  var KittyAuctionFuncSigs = map[string]string{
  3469  	"095ea7b3": "approve(address,uint256)",
  3470  	"4dfff04f": "approveSiring(address,uint256)",
  3471  	"b0c35c05": "autoBirthFee()",
  3472  	"70a08231": "balanceOf(address)",
  3473  	"ed60ade6": "bidOnSiringAuction(uint256,uint256)",
  3474  	"f7d8c883": "breedWithAuto(uint256,uint256)",
  3475  	"46d22c70": "canBreedWith(uint256,uint256)",
  3476  	"0a0f8168": "ceoAddress()",
  3477  	"0519ce79": "cfoAddress()",
  3478  	"b047fb50": "cooAddress()",
  3479  	"9d6fac6f": "cooldowns(uint256)",
  3480  	"3d7d3f5a": "createSaleAuction(uint256,uint256,uint256,uint256)",
  3481  	"4ad8c938": "createSiringAuction(uint256,uint256,uint256,uint256)",
  3482  	"bc4006f5": "erc721Metadata()",
  3483  	"f2b47d52": "geneScience()",
  3484  	"88c2a0bf": "giveBirth(uint256)",
  3485  	"1940a936": "isPregnant(uint256)",
  3486  	"d3e6f49f": "isReadyToBreed(uint256)",
  3487  	"481af3d3": "kittyIndexToApproved(uint256)",
  3488  	"a45f4bfc": "kittyIndexToOwner(uint256)",
  3489  	"06fdde03": "name()",
  3490  	"6352211e": "ownerOf(uint256)",
  3491  	"8456cb59": "pause()",
  3492  	"5c975abb": "paused()",
  3493  	"183a7947": "pregnantKitties()",
  3494  	"e6cbe351": "saleAuction()",
  3495  	"7a7d4937": "secondsPerBlock()",
  3496  	"4b85fd55": "setAutoBirthFee(uint256)",
  3497  	"27d7874c": "setCEO(address)",
  3498  	"4e0a3379": "setCFO(address)",
  3499  	"2ba73c15": "setCOO(address)",
  3500  	"24e7a38a": "setGeneScienceAddress(address)",
  3501  	"e17b25af": "setMetadataAddress(address)",
  3502  	"6fbde40d": "setSaleAuctionAddress(address)",
  3503  	"5663896e": "setSecondsPerBlock(uint256)",
  3504  	"14001f4c": "setSiringAuctionAddress(address)",
  3505  	"46116e6f": "sireAllowedToAddress(uint256)",
  3506  	"21717ebf": "siringAuction()",
  3507  	"01ffc9a7": "supportsInterface(bytes4)",
  3508  	"95d89b41": "symbol()",
  3509  	"0560ff44": "tokenMetadata(uint256,string)",
  3510  	"8462151c": "tokensOfOwner(address)",
  3511  	"18160ddd": "totalSupply()",
  3512  	"a9059cbb": "transfer(address,uint256)",
  3513  	"23b872dd": "transferFrom(address,address,uint256)",
  3514  	"3f4ba83a": "unpause()",
  3515  	"91876e57": "withdrawAuctionBalances()",
  3516  }
  3517  
  3518  // KittyAuctionBin is the compiled bytecode used for deploying new contracts.
  3519  var KittyAuctionBin = "0x606060409081526002805460a060020a60ff02191690556101c090519081016040908152603c82526078602083015261012c9082015261025860608201526107086080820152610e1060a0820152611c2060c082015261384060e082015261708061010082015261e100610120820152620151806101408201526202a3006101608201526205460061018082015262093a806101a0820152620000a790600390600e620000ca565b50600f60055566071afd498d0000600e553415620000c457600080fd5b62000194565b6002830191839082156200015b5791602002820160005b838211156200012757835183826101000a81548163ffffffff021916908363ffffffff1602179055509260200192600401602081600301049283019260010302620000e1565b8015620001595782816101000a81549063ffffffff021916905560040160208160030104928301926001030262000127565b505b50620001699291506200016d565b5090565b6200019191905b808211156200016957805463ffffffff1916815560010162000174565b90565b6128ef80620001a46000396000f3006060604052600436106102215763ffffffff60e060020a60003504166301ffc9a781146102265780630519ce79146102725780630560ff44146102a157806306fdde031461033a578063095ea7b31461034d5780630a0f81681461037157806314001f4c1461038457806318160ddd146103a3578063183a7947146103c85780631940a936146103db57806321717ebf146103f157806323b872dd1461040457806324e7a38a1461042c57806327d7874c1461044b5780632ba73c151461046a5780633d7d3f5a146104895780633f4ba83a146104a857806346116e6f146104bb57806346d22c70146104d1578063481af3d3146104ea5780634ad8c938146105005780634b85fd551461051f5780634dfff04f146105355780634e0a3379146105575780635663896e146105765780635c975abb1461058c5780636352211e1461059f5780636fbde40d146105b557806370a08231146105d45780637a7d4937146105f35780638456cb59146106065780638462151c1461061957806388c2a0bf1461068b57806391876e57146106a157806395d89b41146106b45780639d6fac6f146106c7578063a45f4bfc146106f6578063a9059cbb1461070c578063b047fb501461072e578063b0c35c0514610741578063bc4006f514610754578063d3e6f49f14610767578063e17b25af1461077d578063e6cbe3511461079c578063ed60ade6146107af578063f2b47d52146107bd578063f7d8c883146107d0575b600080fd5b341561023157600080fd5b61025e7fffffffff00000000000000000000000000000000000000000000000000000000600435166107de565b604051901515815260200160405180910390f35b341561027d57600080fd5b610285610a65565b604051600160a060020a03909116815260200160405180910390f35b34156102ac57600080fd5b6102c3600480359060248035908101910135610a74565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102ff5780820151838201526020016102e7565b50505050905090810190601f16801561032c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561034557600080fd5b6102c3610b44565b341561035857600080fd5b61036f600160a060020a0360043516602435610b7b565b005b341561037c57600080fd5b610285610c05565b341561038f57600080fd5b61036f600160a060020a0360043516610c14565b34156103ae57600080fd5b6103b6610cb4565b60405190815260200160405180910390f35b34156103d357600080fd5b6103b6610cbf565b34156103e657600080fd5b61025e600435610cc5565b34156103fc57600080fd5b610285610d0a565b341561040f57600080fd5b61036f600160a060020a0360043581169060243516604435610d19565b341561043757600080fd5b61036f600160a060020a0360043516610da0565b341561045657600080fd5b61036f600160a060020a0360043516610e40565b341561047557600080fd5b61036f600160a060020a0360043516610e92565b341561049457600080fd5b61036f600435602435604435606435610ee4565b34156104b357600080fd5b61036f610fbf565b34156104c657600080fd5b610285600435611012565b34156104dc57600080fd5b61025e60043560243561102d565b34156104f557600080fd5b6102856004356110ad565b341561050b57600080fd5b61036f6004356024356044356064356110c8565b341561052a57600080fd5b61036f60043561118e565b341561054057600080fd5b61036f600160a060020a03600435166024356111ae565b341561056257600080fd5b61036f600160a060020a0360043516611208565b341561058157600080fd5b61036f60043561125a565b341561059757600080fd5b61025e6112c2565b34156105aa57600080fd5b6102856004356112d2565b34156105c057600080fd5b61036f600160a060020a03600435166112f6565b34156105df57600080fd5b6103b6600160a060020a0360043516611396565b34156105fe57600080fd5b6103b66113b1565b341561061157600080fd5b61036f6113b7565b341561062457600080fd5b610638600160a060020a0360043516611443565b60405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561067757808201518382015260200161065f565b505050509050019250505060405180910390f35b341561069657600080fd5b6103b6600435611524565b34156106ac57600080fd5b61036f6117e7565b34156106bf57600080fd5b6102c36118d2565b34156106d257600080fd5b6106dd600435611909565b60405163ffffffff909116815260200160405180910390f35b341561070157600080fd5b610285600435611936565b341561071757600080fd5b61036f600160a060020a0360043516602435611951565b341561073957600080fd5b6102856119f8565b341561074c57600080fd5b6103b6611a07565b341561075f57600080fd5b610285611a0d565b341561077257600080fd5b61025e600435611a1c565b341561078857600080fd5b61036f600160a060020a0360043516611ae5565b34156107a757600080fd5b610285611b22565b61036f600435602435611b31565b34156107c857600080fd5b610285611c73565b61036f600435602435611c82565b60006040517f737570706f727473496e7465726661636528627974657334290000000000000081526019016040518091039020600160e060020a03191682600160e060020a0319161480610a5d57506040517f746f6b656e4d657461646174612875696e743235362c737472696e67290000008152601d0160405180910390206040517f746f6b656e734f664f776e657228616464726573732900000000000000000000815260160160405180910390206040517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f7432353629000000000000000000000000000000000000000000000000000000602082015260250160405180910390206040517f7472616e7366657228616464726573732c75696e743235362900000000000000815260190160405180910390206040517f617070726f766528616464726573732c75696e74323536290000000000000000815260180160405180910390206040517f6f776e65724f662875696e743235362900000000000000000000000000000000815260100160405180910390206040517f62616c616e63654f662861646472657373290000000000000000000000000000815260120160405180910390206040517f746f74616c537570706c792829000000000000000000000000000000000000008152600d0160405180910390206040517f73796d626f6c2829000000000000000000000000000000000000000000000000815260080160405180910390206040517f6e616d652829000000000000000000000000000000000000000000000000000081526006016040518091039020181818181818181818600160e060020a03191682600160e060020a031916145b90505b919050565b600154600160a060020a031681565b610a7c6127fc565b610a8461280e565b600d54600090600160a060020a03161515610a9e57600080fd5b600d54600160a060020a031663cb4799f287878760405160e060020a63ffffffff861602815260048101848152604060248301908152604483018490529091606401848480828437820191505094505050505060a060405180830381600087803b1515610b0a57600080fd5b5af11515610b1757600080fd5b50505060405180608001805160209091016040529092509050610b3a8282611e7a565b9695505050505050565b60408051908101604052600d81527f43727970746f4b69747469657300000000000000000000000000000000000000602082015281565b60025460a060020a900460ff1615610b9257600080fd5b610b9c3382611ecf565b1515610ba757600080fd5b610bb18183611eef565b7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925338383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a15050565b600054600160a060020a031681565b6000805433600160a060020a03908116911614610c3057600080fd5b5080600160a060020a0381166376190f8f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610c6f57600080fd5b5af11515610c7c57600080fd5b505050604051805190501515610c9157600080fd5b600c8054600160a060020a031916600160a060020a039290921691909117905550565b600654600019015b90565b600f5481565b6000808211610cd357600080fd5b6006805483908110610ce157fe5b600091825260209091206002909102016001015460c060020a900463ffffffff16151592915050565b600c54600160a060020a031681565b60025460a060020a900460ff1615610d3057600080fd5b600160a060020a0382161515610d4557600080fd5b30600160a060020a031682600160a060020a031614151515610d6657600080fd5b610d703382611f1d565b1515610d7b57600080fd5b610d858382611ecf565b1515610d9057600080fd5b610d9b838383611f3d565b505050565b6000805433600160a060020a03908116911614610dbc57600080fd5b5080600160a060020a0381166354c15b826040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610dfb57600080fd5b5af11515610e0857600080fd5b505050604051805190501515610e1d57600080fd5b60108054600160a060020a031916600160a060020a039290921691909117905550565b60005433600160a060020a03908116911614610e5b57600080fd5b600160a060020a0381161515610e7057600080fd5b60008054600160a060020a031916600160a060020a0392909216919091179055565b60005433600160a060020a03908116911614610ead57600080fd5b600160a060020a0381161515610ec257600080fd5b60028054600160a060020a031916600160a060020a0392909216919091179055565b60025460a060020a900460ff1615610efb57600080fd5b610f053385611ecf565b1515610f1057600080fd5b610f1984610cc5565b15610f2357600080fd5b600b54610f3a908590600160a060020a0316611eef565b600b54600160a060020a03166327ebe40a858585853360405160e060020a63ffffffff88160281526004810195909552602485019390935260448401919091526064830152600160a060020a0316608482015260a401600060405180830381600087803b1515610fa957600080fd5b5af11515610fb657600080fd5b50505050505050565b60005433600160a060020a03908116911614610fda57600080fd5b60025460a060020a900460ff161515610ff257600080fd5b6002805474ff000000000000000000000000000000000000000019169055565b600a60205260009081526040902054600160a060020a031681565b6000808080851161103d57600080fd5b6000841161104a57600080fd5b600680548690811061105857fe5b9060005260206000209060020201915060068481548110151561107757fe5b9060005260206000209060020201905061109382868387612025565b80156110a457506110a484866121a5565b95945050505050565b600960205260009081526040902054600160a060020a031681565b60025460a060020a900460ff16156110df57600080fd5b6110e93385611ecf565b15156110f457600080fd5b6110fd84611a1c565b151561110857600080fd5b600c5461111f908590600160a060020a0316611eef565b600c54600160a060020a03166327ebe40a858585853360405160e060020a63ffffffff88160281526004810195909552602485019390935260448401919091526064830152600160a060020a0316608482015260a401600060405180830381600087803b1515610fa957600080fd5b60025433600160a060020a039081169116146111a957600080fd5b600e55565b60025460a060020a900460ff16156111c557600080fd5b6111cf3382611ecf565b15156111da57600080fd5b6000908152600a602052604090208054600160a060020a031916600160a060020a0392909216919091179055565b60005433600160a060020a0390811691161461122357600080fd5b600160a060020a038116151561123857600080fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60025433600160a060020a0390811691161480611285575060005433600160a060020a039081169116145b8061129e575060015433600160a060020a039081169116145b15156112a957600080fd5b60035463ffffffff1681106112bd57600080fd5b600555565b60025460a060020a900460ff1681565b600081815260076020526040902054600160a060020a0316801515610a6057600080fd5b6000805433600160a060020a0390811691161461131257600080fd5b5080600160a060020a0381166385b861886040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561135157600080fd5b5af1151561135e57600080fd5b50505060405180519050151561137357600080fd5b600b8054600160a060020a031916600160a060020a039290921691909117905550565b600160a060020a031660009081526008602052604090205490565b60055481565b60025433600160a060020a03908116911614806113e2575060005433600160a060020a039081169116145b806113fb575060015433600160a060020a039081169116145b151561140657600080fd5b60025460a060020a900460ff161561141d57600080fd5b6002805474ff0000000000000000000000000000000000000000191660a060020a179055565b61144b6127fc565b60006114556127fc565b600080600061146387611396565b945084151561149357600060405180591061147b5750595b9080825280602002602001820160405250955061151a565b846040518059106114a15750595b908082528060200260200182016040525093506114bc610cb4565b925060009150600190505b82811161151657600081815260076020526040902054600160a060020a038881169116141561150e57808483815181106114fd57fe5b602090810290910101526001909101905b6001016114c7565b8395505b5050505050919050565b600080600080600080600080600260149054906101000a900460ff1615151561154c57600080fd5b600680548a90811061155a57fe5b60009182526020909120600290910201600181015490975067ffffffffffffffff16151561158757600080fd5b61161c8761010060405190810160409081528254825260019092015467ffffffffffffffff8082166020840152680100000000000000008204169282019290925263ffffffff608060020a83048116606083015260a060020a83048116608083015260c060020a83041660a082015261ffff60e060020a8304811660c083015260f060020a90920490911660e08201526121fa565b151561162757600080fd5b60018701546006805460c060020a90920463ffffffff169750908790811061164b57fe5b600091825260209091206001808a015460029093029091019081015490965061ffff60f060020a9283900481169650919004168490111561169957600185015460f060020a900461ffff1693505b6010548754865460018a0154600160a060020a0390931692630d9f5aed92919068010000000000000000900467ffffffffffffffff166000190160405160e060020a63ffffffff86160281526004810193909352602483019190915267ffffffffffffffff166044820152606401602060405180830381600087803b151561172057600080fd5b5af1151561172d57600080fd5b505050604051805160008b81526007602052604090205460018a810154929650600160a060020a03909116945061177c92508b9160c060020a900463ffffffff1690870161ffff168686612232565b6001880180547bffffffff00000000000000000000000000000000000000000000000019169055600f8054600019019055600e54909150600160a060020a0333169080156108fc0290604051600060405180830381858888f150939c9b505050505050505050505050565b60025433600160a060020a0390811691161480611812575060005433600160a060020a039081169116145b8061182b575060015433600160a060020a039081169116145b151561183657600080fd5b600b54600160a060020a0316635fd8c7106040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561187557600080fd5b5af1151561188257600080fd5b5050600c54600160a060020a03169050635fd8c7106040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156118c557600080fd5b5af11515610d9b57600080fd5b60408051908101604052600281527f434b000000000000000000000000000000000000000000000000000000000000602082015281565b600381600e811061191657fe5b60089182820401919006600402915054906101000a900463ffffffff1681565b600760205260009081526040902054600160a060020a031681565b60025460a060020a900460ff161561196857600080fd5b600160a060020a038216151561197d57600080fd5b30600160a060020a031682600160a060020a03161415151561199e57600080fd5b600b54600160a060020a03838116911614156119b957600080fd5b600c54600160a060020a03838116911614156119d457600080fd5b6119de3382611ecf565b15156119e957600080fd5b6119f4338383611f3d565b5050565b600254600160a060020a031681565b600e5481565b600d54600160a060020a031681565b600080808311611a2b57600080fd5b6006805484908110611a3957fe5b90600052602060002090600202019050611ade8161010060405190810160409081528254825260019092015467ffffffffffffffff8082166020840152680100000000000000008204169282019290925263ffffffff608060020a83048116606083015260a060020a83048116608083015260c060020a83041660a082015261ffff60e060020a8304811660c083015260f060020a90920490911660e08201526124de565b9392505050565b60005433600160a060020a03908116911614611b0057600080fd5b600d8054600160a060020a031916600160a060020a0392909216919091179055565b600b54600160a060020a031681565b60025460009060a060020a900460ff1615611b4b57600080fd5b611b553383611ecf565b1515611b6057600080fd5b611b6982611a1c565b1515611b7457600080fd5b611b7e8284612515565b1515611b8957600080fd5b600c54600160a060020a031663c55d0f568460405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611bd157600080fd5b5af11515611bde57600080fd5b5050506040518051600e5490925082013410159050611bfc57600080fd5b600c54600e54600160a060020a039091169063454a2ab39034038560405160e060020a63ffffffff851602815260048101919091526024016000604051808303818588803b1515611c4c57600080fd5b5af11515611c5957600080fd5b50505050610d9b8263ffffffff168463ffffffff16612564565b601054600160a060020a031681565b600254600090819060a060020a900460ff1615611c9e57600080fd5b600e54341015611cad57600080fd5b611cb73385611ecf565b1515611cc257600080fd5b611ccc83856121a5565b1515611cd757600080fd5b6006805485908110611ce557fe5b90600052602060002090600202019150611d8a8261010060405190810160409081528254825260019092015467ffffffffffffffff8082166020840152680100000000000000008204169282019290925263ffffffff608060020a83048116606083015260a060020a83048116608083015260c060020a83041660a082015261ffff60e060020a8304811660c083015260f060020a90920490911660e08201526124de565b1515611d9557600080fd5b6006805484908110611da357fe5b90600052602060002090600202019050611e488161010060405190810160409081528254825260019092015467ffffffffffffffff8082166020840152680100000000000000008204169282019290925263ffffffff608060020a83048116606083015260a060020a83048116608083015260c060020a83041660a082015261ffff60e060020a8304811660c083015260f060020a90920490911660e08201526124de565b1515611e5357600080fd5b611e5f82858386612025565b1515611e6a57600080fd5b611e748484612564565b50505050565b611e826127fc565b611e8a6127fc565b60008084604051805910611e9b5750595b818152601f19601f8301168101602001604052905092505060208201905084611ec58282876126ce565b5090949350505050565b600090815260076020526040902054600160a060020a0391821691161490565b6000918252600960205260409091208054600160a060020a031916600160a060020a03909216919091179055565b600090815260096020526040902054600160a060020a0391821691161490565b600160a060020a03808316600081815260086020908152604080832080546001019055858352600790915290208054600160a060020a0319169091179055831615611fd057600160a060020a03831660009081526008602090815260408083208054600019019055838352600a82528083208054600160a060020a03199081169091556009909252909120805490911690555b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a1505050565b6000818414156120375750600061219d565b6001850154608060020a900463ffffffff168214806120665750600185015460a060020a900463ffffffff1682145b156120735750600061219d565b6001830154608060020a900463ffffffff168414806120a25750600183015460a060020a900463ffffffff1684145b156120af5750600061219d565b6001830154608060020a900463ffffffff1615806120dc57506001850154608060020a900463ffffffff16155b156120e95750600161219d565b60018581015490840154608060020a9182900463ffffffff90811692909104161480612134575060018086015490840154608060020a900463ffffffff90811660a060020a90920416145b156121415750600061219d565b6001808601549084015460a060020a900463ffffffff908116608060020a90920416148061218c57506001858101549084015460a060020a9182900463ffffffff9081169290910416145b156121995750600061219d565b5060015b949350505050565b6000818152600760205260408082205484835290822054600160a060020a039182169116808214806110a457506000858152600a6020526040902054600160a060020a03908116908316149250505092915050565b60008160a0015163ffffffff1615801590610a5d57504367ffffffffffffffff16826040015167ffffffffffffffff16111592915050565b60008061223d612837565b600063ffffffff8916891461225157600080fd5b63ffffffff8816881461226357600080fd5b61ffff8716871461227357600080fd5b600287049250600d8361ffff16111561228b57600d92505b610100604051908101604090815287825267ffffffffffffffff42166020830152600090820181905263ffffffff808c1660608401528a16608083015260a082015261ffff80851660c0830152881660e0820152600680549193506001918083016122f6838261287b565b6000928352602090922085916002020181518155602082015160018201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560408201518160010160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060608201518160010160106101000a81548163ffffffff021916908363ffffffff16021790555060808201518160010160146101000a81548163ffffffff021916908363ffffffff16021790555060a08201518160010160186101000a81548163ffffffff021916908363ffffffff16021790555060c082015181600101601c6101000a81548161ffff021916908361ffff16021790555060e08201516001909101805461ffff9290921660f060020a027dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092169190911790555003905063ffffffff8116811461245157600080fd5b7f0a5311bd2a6608f08a180df2ee7c5946819a649b204b554bb8e39825b2c50ad58582846060015163ffffffff16856080015163ffffffff168651604051600160a060020a03909516855260208501939093526040808501929092526060840152608083019190915260a0909101905180910390a16124d260008683611f3d565b98975050505050505050565b60008160a0015163ffffffff16158015610a5d57504367ffffffffffffffff16826040015167ffffffffffffffff16111592915050565b600080600060068581548110151561252957fe5b9060005260206000209060020201915060068481548110151561254857fe5b906000526020600020906002020190506110a482868387612025565b60008060068381548110151561257657fe5b9060005260206000209060020201915060068481548110151561259557fe5b600091825260209091206002909102016001810180547bffffffff000000000000000000000000000000000000000000000000191660c060020a63ffffffff87160217905590506125e582612713565b6125ee81612713565b6000848152600a602090815260408083208054600160a060020a031990811690915586845281842080549091169055600f8054600190810190915587845260079092529182902054908301547f241ea03ca20251805084d27d4440371c34a0b85ff108f6bb5611248f73818b8092600160a060020a0390921691879187916801000000000000000090910467ffffffffffffffff1690518085600160a060020a0316600160a060020a031681526020018481526020018381526020018267ffffffffffffffff16815260200194505050505060405180910390a150505050565b60005b602082106126f457825184526020840193506020830192506020820391506126d1565b6001826020036101000a03905080198351168185511617909352505050565b600554600182015443919060039060e060020a900461ffff16600e811061273657fe5b600891828204019190066004029054906101000a900463ffffffff1663ffffffff1681151561276157fe5b6001840180546fffffffffffffffff0000000000000000191668010000000000000000939092049390930167ffffffffffffffff16919091021790819055600d60e060020a90910461ffff1610156127f9576001818101805461ffff60e060020a8083048216909401169092027fffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092169190911790555b50565b60206040519081016040526000815290565b60806040519081016040526004815b6000815260001991909101906020018161281d5790505090565b6101006040519081016040908152600080835260208301819052908201819052606082018190526080820181905260a0820181905260c0820181905260e082015290565b815481835581811511610d9b57600083815260209020610d9b91610cbc9160029182028101918502015b808211156128bf57600080825560018201556002016128a5565b50905600a165627a7a72305820d1a173ff405af79ee52b6fcb9afc5d0fe61dc5f26d44135dac5db708d0672aaf0029"
  3520  
  3521  // DeployKittyAuction deploys a new Ethereum contract, binding an instance of KittyAuction to it.
  3522  func DeployKittyAuction(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *KittyAuction, error) {
  3523  	parsed, err := abi.JSON(strings.NewReader(KittyAuctionABI))
  3524  	if err != nil {
  3525  		return common.Address{}, nil, nil, err
  3526  	}
  3527  
  3528  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(KittyAuctionBin), backend)
  3529  	if err != nil {
  3530  		return common.Address{}, nil, nil, err
  3531  	}
  3532  	return address, tx, &KittyAuction{KittyAuctionCaller: KittyAuctionCaller{contract: contract}, KittyAuctionTransactor: KittyAuctionTransactor{contract: contract}, KittyAuctionFilterer: KittyAuctionFilterer{contract: contract}}, nil
  3533  }
  3534  
  3535  // KittyAuction is an auto generated Go binding around an Ethereum contract.
  3536  type KittyAuction struct {
  3537  	KittyAuctionCaller     // Read-only binding to the contract
  3538  	KittyAuctionTransactor // Write-only binding to the contract
  3539  	KittyAuctionFilterer   // Log filterer for contract events
  3540  }
  3541  
  3542  // KittyAuctionCaller is an auto generated read-only Go binding around an Ethereum contract.
  3543  type KittyAuctionCaller struct {
  3544  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3545  }
  3546  
  3547  // KittyAuctionTransactor is an auto generated write-only Go binding around an Ethereum contract.
  3548  type KittyAuctionTransactor struct {
  3549  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3550  }
  3551  
  3552  // KittyAuctionFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  3553  type KittyAuctionFilterer struct {
  3554  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3555  }
  3556  
  3557  // KittyAuctionSession is an auto generated Go binding around an Ethereum contract,
  3558  // with pre-set call and transact options.
  3559  type KittyAuctionSession struct {
  3560  	Contract     *KittyAuction     // Generic contract binding to set the session for
  3561  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  3562  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  3563  }
  3564  
  3565  // KittyAuctionCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  3566  // with pre-set call options.
  3567  type KittyAuctionCallerSession struct {
  3568  	Contract *KittyAuctionCaller // Generic contract caller binding to set the session for
  3569  	CallOpts bind.CallOpts       // Call options to use throughout this session
  3570  }
  3571  
  3572  // KittyAuctionTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  3573  // with pre-set transact options.
  3574  type KittyAuctionTransactorSession struct {
  3575  	Contract     *KittyAuctionTransactor // Generic contract transactor binding to set the session for
  3576  	TransactOpts bind.TransactOpts       // Transaction auth options to use throughout this session
  3577  }
  3578  
  3579  // KittyAuctionRaw is an auto generated low-level Go binding around an Ethereum contract.
  3580  type KittyAuctionRaw struct {
  3581  	Contract *KittyAuction // Generic contract binding to access the raw methods on
  3582  }
  3583  
  3584  // KittyAuctionCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  3585  type KittyAuctionCallerRaw struct {
  3586  	Contract *KittyAuctionCaller // Generic read-only contract binding to access the raw methods on
  3587  }
  3588  
  3589  // KittyAuctionTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  3590  type KittyAuctionTransactorRaw struct {
  3591  	Contract *KittyAuctionTransactor // Generic write-only contract binding to access the raw methods on
  3592  }
  3593  
  3594  // NewKittyAuction creates a new instance of KittyAuction, bound to a specific deployed contract.
  3595  func NewKittyAuction(address common.Address, backend bind.ContractBackend) (*KittyAuction, error) {
  3596  	contract, err := bindKittyAuction(address, backend, backend, backend)
  3597  	if err != nil {
  3598  		return nil, err
  3599  	}
  3600  	return &KittyAuction{KittyAuctionCaller: KittyAuctionCaller{contract: contract}, KittyAuctionTransactor: KittyAuctionTransactor{contract: contract}, KittyAuctionFilterer: KittyAuctionFilterer{contract: contract}}, nil
  3601  }
  3602  
  3603  // NewKittyAuctionCaller creates a new read-only instance of KittyAuction, bound to a specific deployed contract.
  3604  func NewKittyAuctionCaller(address common.Address, caller bind.ContractCaller) (*KittyAuctionCaller, error) {
  3605  	contract, err := bindKittyAuction(address, caller, nil, nil)
  3606  	if err != nil {
  3607  		return nil, err
  3608  	}
  3609  	return &KittyAuctionCaller{contract: contract}, nil
  3610  }
  3611  
  3612  // NewKittyAuctionTransactor creates a new write-only instance of KittyAuction, bound to a specific deployed contract.
  3613  func NewKittyAuctionTransactor(address common.Address, transactor bind.ContractTransactor) (*KittyAuctionTransactor, error) {
  3614  	contract, err := bindKittyAuction(address, nil, transactor, nil)
  3615  	if err != nil {
  3616  		return nil, err
  3617  	}
  3618  	return &KittyAuctionTransactor{contract: contract}, nil
  3619  }
  3620  
  3621  // NewKittyAuctionFilterer creates a new log filterer instance of KittyAuction, bound to a specific deployed contract.
  3622  func NewKittyAuctionFilterer(address common.Address, filterer bind.ContractFilterer) (*KittyAuctionFilterer, error) {
  3623  	contract, err := bindKittyAuction(address, nil, nil, filterer)
  3624  	if err != nil {
  3625  		return nil, err
  3626  	}
  3627  	return &KittyAuctionFilterer{contract: contract}, nil
  3628  }
  3629  
  3630  // bindKittyAuction binds a generic wrapper to an already deployed contract.
  3631  func bindKittyAuction(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  3632  	parsed, err := abi.JSON(strings.NewReader(KittyAuctionABI))
  3633  	if err != nil {
  3634  		return nil, err
  3635  	}
  3636  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  3637  }
  3638  
  3639  // Call invokes the (constant) contract method with params as input values and
  3640  // sets the output to result. The result type might be a single field for simple
  3641  // returns, a slice of interfaces for anonymous returns and a struct for named
  3642  // returns.
  3643  func (_KittyAuction *KittyAuctionRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  3644  	return _KittyAuction.Contract.KittyAuctionCaller.contract.Call(opts, result, method, params...)
  3645  }
  3646  
  3647  // Transfer initiates a plain transaction to move funds to the contract, calling
  3648  // its default method if one is available.
  3649  func (_KittyAuction *KittyAuctionRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3650  	return _KittyAuction.Contract.KittyAuctionTransactor.contract.Transfer(opts)
  3651  }
  3652  
  3653  // Transact invokes the (paid) contract method with params as input values.
  3654  func (_KittyAuction *KittyAuctionRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  3655  	return _KittyAuction.Contract.KittyAuctionTransactor.contract.Transact(opts, method, params...)
  3656  }
  3657  
  3658  // Call invokes the (constant) contract method with params as input values and
  3659  // sets the output to result. The result type might be a single field for simple
  3660  // returns, a slice of interfaces for anonymous returns and a struct for named
  3661  // returns.
  3662  func (_KittyAuction *KittyAuctionCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  3663  	return _KittyAuction.Contract.contract.Call(opts, result, method, params...)
  3664  }
  3665  
  3666  // Transfer initiates a plain transaction to move funds to the contract, calling
  3667  // its default method if one is available.
  3668  func (_KittyAuction *KittyAuctionTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3669  	return _KittyAuction.Contract.contract.Transfer(opts)
  3670  }
  3671  
  3672  // Transact invokes the (paid) contract method with params as input values.
  3673  func (_KittyAuction *KittyAuctionTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  3674  	return _KittyAuction.Contract.contract.Transact(opts, method, params...)
  3675  }
  3676  
  3677  // AutoBirthFee is a free data retrieval call binding the contract method 0xb0c35c05.
  3678  //
  3679  // Solidity: function autoBirthFee() view returns(uint256)
  3680  func (_KittyAuction *KittyAuctionCaller) AutoBirthFee(opts *bind.CallOpts) (*big.Int, error) {
  3681  	var out []interface{}
  3682  	err := _KittyAuction.contract.Call(opts, &out, "autoBirthFee")
  3683  
  3684  	if err != nil {
  3685  		return *new(*big.Int), err
  3686  	}
  3687  
  3688  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  3689  
  3690  	return out0, err
  3691  
  3692  }
  3693  
  3694  // AutoBirthFee is a free data retrieval call binding the contract method 0xb0c35c05.
  3695  //
  3696  // Solidity: function autoBirthFee() view returns(uint256)
  3697  func (_KittyAuction *KittyAuctionSession) AutoBirthFee() (*big.Int, error) {
  3698  	return _KittyAuction.Contract.AutoBirthFee(&_KittyAuction.CallOpts)
  3699  }
  3700  
  3701  // AutoBirthFee is a free data retrieval call binding the contract method 0xb0c35c05.
  3702  //
  3703  // Solidity: function autoBirthFee() view returns(uint256)
  3704  func (_KittyAuction *KittyAuctionCallerSession) AutoBirthFee() (*big.Int, error) {
  3705  	return _KittyAuction.Contract.AutoBirthFee(&_KittyAuction.CallOpts)
  3706  }
  3707  
  3708  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  3709  //
  3710  // Solidity: function balanceOf(address _owner) view returns(uint256 count)
  3711  func (_KittyAuction *KittyAuctionCaller) BalanceOf(opts *bind.CallOpts, _owner common.Address) (*big.Int, error) {
  3712  	var out []interface{}
  3713  	err := _KittyAuction.contract.Call(opts, &out, "balanceOf", _owner)
  3714  
  3715  	if err != nil {
  3716  		return *new(*big.Int), err
  3717  	}
  3718  
  3719  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  3720  
  3721  	return out0, err
  3722  
  3723  }
  3724  
  3725  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  3726  //
  3727  // Solidity: function balanceOf(address _owner) view returns(uint256 count)
  3728  func (_KittyAuction *KittyAuctionSession) BalanceOf(_owner common.Address) (*big.Int, error) {
  3729  	return _KittyAuction.Contract.BalanceOf(&_KittyAuction.CallOpts, _owner)
  3730  }
  3731  
  3732  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  3733  //
  3734  // Solidity: function balanceOf(address _owner) view returns(uint256 count)
  3735  func (_KittyAuction *KittyAuctionCallerSession) BalanceOf(_owner common.Address) (*big.Int, error) {
  3736  	return _KittyAuction.Contract.BalanceOf(&_KittyAuction.CallOpts, _owner)
  3737  }
  3738  
  3739  // CanBreedWith is a free data retrieval call binding the contract method 0x46d22c70.
  3740  //
  3741  // Solidity: function canBreedWith(uint256 _matronId, uint256 _sireId) view returns(bool)
  3742  func (_KittyAuction *KittyAuctionCaller) CanBreedWith(opts *bind.CallOpts, _matronId *big.Int, _sireId *big.Int) (bool, error) {
  3743  	var out []interface{}
  3744  	err := _KittyAuction.contract.Call(opts, &out, "canBreedWith", _matronId, _sireId)
  3745  
  3746  	if err != nil {
  3747  		return *new(bool), err
  3748  	}
  3749  
  3750  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  3751  
  3752  	return out0, err
  3753  
  3754  }
  3755  
  3756  // CanBreedWith is a free data retrieval call binding the contract method 0x46d22c70.
  3757  //
  3758  // Solidity: function canBreedWith(uint256 _matronId, uint256 _sireId) view returns(bool)
  3759  func (_KittyAuction *KittyAuctionSession) CanBreedWith(_matronId *big.Int, _sireId *big.Int) (bool, error) {
  3760  	return _KittyAuction.Contract.CanBreedWith(&_KittyAuction.CallOpts, _matronId, _sireId)
  3761  }
  3762  
  3763  // CanBreedWith is a free data retrieval call binding the contract method 0x46d22c70.
  3764  //
  3765  // Solidity: function canBreedWith(uint256 _matronId, uint256 _sireId) view returns(bool)
  3766  func (_KittyAuction *KittyAuctionCallerSession) CanBreedWith(_matronId *big.Int, _sireId *big.Int) (bool, error) {
  3767  	return _KittyAuction.Contract.CanBreedWith(&_KittyAuction.CallOpts, _matronId, _sireId)
  3768  }
  3769  
  3770  // CeoAddress is a free data retrieval call binding the contract method 0x0a0f8168.
  3771  //
  3772  // Solidity: function ceoAddress() view returns(address)
  3773  func (_KittyAuction *KittyAuctionCaller) CeoAddress(opts *bind.CallOpts) (common.Address, error) {
  3774  	var out []interface{}
  3775  	err := _KittyAuction.contract.Call(opts, &out, "ceoAddress")
  3776  
  3777  	if err != nil {
  3778  		return *new(common.Address), err
  3779  	}
  3780  
  3781  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  3782  
  3783  	return out0, err
  3784  
  3785  }
  3786  
  3787  // CeoAddress is a free data retrieval call binding the contract method 0x0a0f8168.
  3788  //
  3789  // Solidity: function ceoAddress() view returns(address)
  3790  func (_KittyAuction *KittyAuctionSession) CeoAddress() (common.Address, error) {
  3791  	return _KittyAuction.Contract.CeoAddress(&_KittyAuction.CallOpts)
  3792  }
  3793  
  3794  // CeoAddress is a free data retrieval call binding the contract method 0x0a0f8168.
  3795  //
  3796  // Solidity: function ceoAddress() view returns(address)
  3797  func (_KittyAuction *KittyAuctionCallerSession) CeoAddress() (common.Address, error) {
  3798  	return _KittyAuction.Contract.CeoAddress(&_KittyAuction.CallOpts)
  3799  }
  3800  
  3801  // CfoAddress is a free data retrieval call binding the contract method 0x0519ce79.
  3802  //
  3803  // Solidity: function cfoAddress() view returns(address)
  3804  func (_KittyAuction *KittyAuctionCaller) CfoAddress(opts *bind.CallOpts) (common.Address, error) {
  3805  	var out []interface{}
  3806  	err := _KittyAuction.contract.Call(opts, &out, "cfoAddress")
  3807  
  3808  	if err != nil {
  3809  		return *new(common.Address), err
  3810  	}
  3811  
  3812  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  3813  
  3814  	return out0, err
  3815  
  3816  }
  3817  
  3818  // CfoAddress is a free data retrieval call binding the contract method 0x0519ce79.
  3819  //
  3820  // Solidity: function cfoAddress() view returns(address)
  3821  func (_KittyAuction *KittyAuctionSession) CfoAddress() (common.Address, error) {
  3822  	return _KittyAuction.Contract.CfoAddress(&_KittyAuction.CallOpts)
  3823  }
  3824  
  3825  // CfoAddress is a free data retrieval call binding the contract method 0x0519ce79.
  3826  //
  3827  // Solidity: function cfoAddress() view returns(address)
  3828  func (_KittyAuction *KittyAuctionCallerSession) CfoAddress() (common.Address, error) {
  3829  	return _KittyAuction.Contract.CfoAddress(&_KittyAuction.CallOpts)
  3830  }
  3831  
  3832  // CooAddress is a free data retrieval call binding the contract method 0xb047fb50.
  3833  //
  3834  // Solidity: function cooAddress() view returns(address)
  3835  func (_KittyAuction *KittyAuctionCaller) CooAddress(opts *bind.CallOpts) (common.Address, error) {
  3836  	var out []interface{}
  3837  	err := _KittyAuction.contract.Call(opts, &out, "cooAddress")
  3838  
  3839  	if err != nil {
  3840  		return *new(common.Address), err
  3841  	}
  3842  
  3843  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  3844  
  3845  	return out0, err
  3846  
  3847  }
  3848  
  3849  // CooAddress is a free data retrieval call binding the contract method 0xb047fb50.
  3850  //
  3851  // Solidity: function cooAddress() view returns(address)
  3852  func (_KittyAuction *KittyAuctionSession) CooAddress() (common.Address, error) {
  3853  	return _KittyAuction.Contract.CooAddress(&_KittyAuction.CallOpts)
  3854  }
  3855  
  3856  // CooAddress is a free data retrieval call binding the contract method 0xb047fb50.
  3857  //
  3858  // Solidity: function cooAddress() view returns(address)
  3859  func (_KittyAuction *KittyAuctionCallerSession) CooAddress() (common.Address, error) {
  3860  	return _KittyAuction.Contract.CooAddress(&_KittyAuction.CallOpts)
  3861  }
  3862  
  3863  // Cooldowns is a free data retrieval call binding the contract method 0x9d6fac6f.
  3864  //
  3865  // Solidity: function cooldowns(uint256 ) view returns(uint32)
  3866  func (_KittyAuction *KittyAuctionCaller) Cooldowns(opts *bind.CallOpts, arg0 *big.Int) (uint32, error) {
  3867  	var out []interface{}
  3868  	err := _KittyAuction.contract.Call(opts, &out, "cooldowns", arg0)
  3869  
  3870  	if err != nil {
  3871  		return *new(uint32), err
  3872  	}
  3873  
  3874  	out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32)
  3875  
  3876  	return out0, err
  3877  
  3878  }
  3879  
  3880  // Cooldowns is a free data retrieval call binding the contract method 0x9d6fac6f.
  3881  //
  3882  // Solidity: function cooldowns(uint256 ) view returns(uint32)
  3883  func (_KittyAuction *KittyAuctionSession) Cooldowns(arg0 *big.Int) (uint32, error) {
  3884  	return _KittyAuction.Contract.Cooldowns(&_KittyAuction.CallOpts, arg0)
  3885  }
  3886  
  3887  // Cooldowns is a free data retrieval call binding the contract method 0x9d6fac6f.
  3888  //
  3889  // Solidity: function cooldowns(uint256 ) view returns(uint32)
  3890  func (_KittyAuction *KittyAuctionCallerSession) Cooldowns(arg0 *big.Int) (uint32, error) {
  3891  	return _KittyAuction.Contract.Cooldowns(&_KittyAuction.CallOpts, arg0)
  3892  }
  3893  
  3894  // Erc721Metadata is a free data retrieval call binding the contract method 0xbc4006f5.
  3895  //
  3896  // Solidity: function erc721Metadata() view returns(address)
  3897  func (_KittyAuction *KittyAuctionCaller) Erc721Metadata(opts *bind.CallOpts) (common.Address, error) {
  3898  	var out []interface{}
  3899  	err := _KittyAuction.contract.Call(opts, &out, "erc721Metadata")
  3900  
  3901  	if err != nil {
  3902  		return *new(common.Address), err
  3903  	}
  3904  
  3905  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  3906  
  3907  	return out0, err
  3908  
  3909  }
  3910  
  3911  // Erc721Metadata is a free data retrieval call binding the contract method 0xbc4006f5.
  3912  //
  3913  // Solidity: function erc721Metadata() view returns(address)
  3914  func (_KittyAuction *KittyAuctionSession) Erc721Metadata() (common.Address, error) {
  3915  	return _KittyAuction.Contract.Erc721Metadata(&_KittyAuction.CallOpts)
  3916  }
  3917  
  3918  // Erc721Metadata is a free data retrieval call binding the contract method 0xbc4006f5.
  3919  //
  3920  // Solidity: function erc721Metadata() view returns(address)
  3921  func (_KittyAuction *KittyAuctionCallerSession) Erc721Metadata() (common.Address, error) {
  3922  	return _KittyAuction.Contract.Erc721Metadata(&_KittyAuction.CallOpts)
  3923  }
  3924  
  3925  // GeneScience is a free data retrieval call binding the contract method 0xf2b47d52.
  3926  //
  3927  // Solidity: function geneScience() view returns(address)
  3928  func (_KittyAuction *KittyAuctionCaller) GeneScience(opts *bind.CallOpts) (common.Address, error) {
  3929  	var out []interface{}
  3930  	err := _KittyAuction.contract.Call(opts, &out, "geneScience")
  3931  
  3932  	if err != nil {
  3933  		return *new(common.Address), err
  3934  	}
  3935  
  3936  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  3937  
  3938  	return out0, err
  3939  
  3940  }
  3941  
  3942  // GeneScience is a free data retrieval call binding the contract method 0xf2b47d52.
  3943  //
  3944  // Solidity: function geneScience() view returns(address)
  3945  func (_KittyAuction *KittyAuctionSession) GeneScience() (common.Address, error) {
  3946  	return _KittyAuction.Contract.GeneScience(&_KittyAuction.CallOpts)
  3947  }
  3948  
  3949  // GeneScience is a free data retrieval call binding the contract method 0xf2b47d52.
  3950  //
  3951  // Solidity: function geneScience() view returns(address)
  3952  func (_KittyAuction *KittyAuctionCallerSession) GeneScience() (common.Address, error) {
  3953  	return _KittyAuction.Contract.GeneScience(&_KittyAuction.CallOpts)
  3954  }
  3955  
  3956  // IsPregnant is a free data retrieval call binding the contract method 0x1940a936.
  3957  //
  3958  // Solidity: function isPregnant(uint256 _kittyId) view returns(bool)
  3959  func (_KittyAuction *KittyAuctionCaller) IsPregnant(opts *bind.CallOpts, _kittyId *big.Int) (bool, error) {
  3960  	var out []interface{}
  3961  	err := _KittyAuction.contract.Call(opts, &out, "isPregnant", _kittyId)
  3962  
  3963  	if err != nil {
  3964  		return *new(bool), err
  3965  	}
  3966  
  3967  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  3968  
  3969  	return out0, err
  3970  
  3971  }
  3972  
  3973  // IsPregnant is a free data retrieval call binding the contract method 0x1940a936.
  3974  //
  3975  // Solidity: function isPregnant(uint256 _kittyId) view returns(bool)
  3976  func (_KittyAuction *KittyAuctionSession) IsPregnant(_kittyId *big.Int) (bool, error) {
  3977  	return _KittyAuction.Contract.IsPregnant(&_KittyAuction.CallOpts, _kittyId)
  3978  }
  3979  
  3980  // IsPregnant is a free data retrieval call binding the contract method 0x1940a936.
  3981  //
  3982  // Solidity: function isPregnant(uint256 _kittyId) view returns(bool)
  3983  func (_KittyAuction *KittyAuctionCallerSession) IsPregnant(_kittyId *big.Int) (bool, error) {
  3984  	return _KittyAuction.Contract.IsPregnant(&_KittyAuction.CallOpts, _kittyId)
  3985  }
  3986  
  3987  // IsReadyToBreed is a free data retrieval call binding the contract method 0xd3e6f49f.
  3988  //
  3989  // Solidity: function isReadyToBreed(uint256 _kittyId) view returns(bool)
  3990  func (_KittyAuction *KittyAuctionCaller) IsReadyToBreed(opts *bind.CallOpts, _kittyId *big.Int) (bool, error) {
  3991  	var out []interface{}
  3992  	err := _KittyAuction.contract.Call(opts, &out, "isReadyToBreed", _kittyId)
  3993  
  3994  	if err != nil {
  3995  		return *new(bool), err
  3996  	}
  3997  
  3998  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  3999  
  4000  	return out0, err
  4001  
  4002  }
  4003  
  4004  // IsReadyToBreed is a free data retrieval call binding the contract method 0xd3e6f49f.
  4005  //
  4006  // Solidity: function isReadyToBreed(uint256 _kittyId) view returns(bool)
  4007  func (_KittyAuction *KittyAuctionSession) IsReadyToBreed(_kittyId *big.Int) (bool, error) {
  4008  	return _KittyAuction.Contract.IsReadyToBreed(&_KittyAuction.CallOpts, _kittyId)
  4009  }
  4010  
  4011  // IsReadyToBreed is a free data retrieval call binding the contract method 0xd3e6f49f.
  4012  //
  4013  // Solidity: function isReadyToBreed(uint256 _kittyId) view returns(bool)
  4014  func (_KittyAuction *KittyAuctionCallerSession) IsReadyToBreed(_kittyId *big.Int) (bool, error) {
  4015  	return _KittyAuction.Contract.IsReadyToBreed(&_KittyAuction.CallOpts, _kittyId)
  4016  }
  4017  
  4018  // KittyIndexToApproved is a free data retrieval call binding the contract method 0x481af3d3.
  4019  //
  4020  // Solidity: function kittyIndexToApproved(uint256 ) view returns(address)
  4021  func (_KittyAuction *KittyAuctionCaller) KittyIndexToApproved(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  4022  	var out []interface{}
  4023  	err := _KittyAuction.contract.Call(opts, &out, "kittyIndexToApproved", arg0)
  4024  
  4025  	if err != nil {
  4026  		return *new(common.Address), err
  4027  	}
  4028  
  4029  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  4030  
  4031  	return out0, err
  4032  
  4033  }
  4034  
  4035  // KittyIndexToApproved is a free data retrieval call binding the contract method 0x481af3d3.
  4036  //
  4037  // Solidity: function kittyIndexToApproved(uint256 ) view returns(address)
  4038  func (_KittyAuction *KittyAuctionSession) KittyIndexToApproved(arg0 *big.Int) (common.Address, error) {
  4039  	return _KittyAuction.Contract.KittyIndexToApproved(&_KittyAuction.CallOpts, arg0)
  4040  }
  4041  
  4042  // KittyIndexToApproved is a free data retrieval call binding the contract method 0x481af3d3.
  4043  //
  4044  // Solidity: function kittyIndexToApproved(uint256 ) view returns(address)
  4045  func (_KittyAuction *KittyAuctionCallerSession) KittyIndexToApproved(arg0 *big.Int) (common.Address, error) {
  4046  	return _KittyAuction.Contract.KittyIndexToApproved(&_KittyAuction.CallOpts, arg0)
  4047  }
  4048  
  4049  // KittyIndexToOwner is a free data retrieval call binding the contract method 0xa45f4bfc.
  4050  //
  4051  // Solidity: function kittyIndexToOwner(uint256 ) view returns(address)
  4052  func (_KittyAuction *KittyAuctionCaller) KittyIndexToOwner(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  4053  	var out []interface{}
  4054  	err := _KittyAuction.contract.Call(opts, &out, "kittyIndexToOwner", arg0)
  4055  
  4056  	if err != nil {
  4057  		return *new(common.Address), err
  4058  	}
  4059  
  4060  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  4061  
  4062  	return out0, err
  4063  
  4064  }
  4065  
  4066  // KittyIndexToOwner is a free data retrieval call binding the contract method 0xa45f4bfc.
  4067  //
  4068  // Solidity: function kittyIndexToOwner(uint256 ) view returns(address)
  4069  func (_KittyAuction *KittyAuctionSession) KittyIndexToOwner(arg0 *big.Int) (common.Address, error) {
  4070  	return _KittyAuction.Contract.KittyIndexToOwner(&_KittyAuction.CallOpts, arg0)
  4071  }
  4072  
  4073  // KittyIndexToOwner is a free data retrieval call binding the contract method 0xa45f4bfc.
  4074  //
  4075  // Solidity: function kittyIndexToOwner(uint256 ) view returns(address)
  4076  func (_KittyAuction *KittyAuctionCallerSession) KittyIndexToOwner(arg0 *big.Int) (common.Address, error) {
  4077  	return _KittyAuction.Contract.KittyIndexToOwner(&_KittyAuction.CallOpts, arg0)
  4078  }
  4079  
  4080  // Name is a free data retrieval call binding the contract method 0x06fdde03.
  4081  //
  4082  // Solidity: function name() view returns(string)
  4083  func (_KittyAuction *KittyAuctionCaller) Name(opts *bind.CallOpts) (string, error) {
  4084  	var out []interface{}
  4085  	err := _KittyAuction.contract.Call(opts, &out, "name")
  4086  
  4087  	if err != nil {
  4088  		return *new(string), err
  4089  	}
  4090  
  4091  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
  4092  
  4093  	return out0, err
  4094  
  4095  }
  4096  
  4097  // Name is a free data retrieval call binding the contract method 0x06fdde03.
  4098  //
  4099  // Solidity: function name() view returns(string)
  4100  func (_KittyAuction *KittyAuctionSession) Name() (string, error) {
  4101  	return _KittyAuction.Contract.Name(&_KittyAuction.CallOpts)
  4102  }
  4103  
  4104  // Name is a free data retrieval call binding the contract method 0x06fdde03.
  4105  //
  4106  // Solidity: function name() view returns(string)
  4107  func (_KittyAuction *KittyAuctionCallerSession) Name() (string, error) {
  4108  	return _KittyAuction.Contract.Name(&_KittyAuction.CallOpts)
  4109  }
  4110  
  4111  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
  4112  //
  4113  // Solidity: function ownerOf(uint256 _tokenId) view returns(address owner)
  4114  func (_KittyAuction *KittyAuctionCaller) OwnerOf(opts *bind.CallOpts, _tokenId *big.Int) (common.Address, error) {
  4115  	var out []interface{}
  4116  	err := _KittyAuction.contract.Call(opts, &out, "ownerOf", _tokenId)
  4117  
  4118  	if err != nil {
  4119  		return *new(common.Address), err
  4120  	}
  4121  
  4122  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  4123  
  4124  	return out0, err
  4125  
  4126  }
  4127  
  4128  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
  4129  //
  4130  // Solidity: function ownerOf(uint256 _tokenId) view returns(address owner)
  4131  func (_KittyAuction *KittyAuctionSession) OwnerOf(_tokenId *big.Int) (common.Address, error) {
  4132  	return _KittyAuction.Contract.OwnerOf(&_KittyAuction.CallOpts, _tokenId)
  4133  }
  4134  
  4135  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
  4136  //
  4137  // Solidity: function ownerOf(uint256 _tokenId) view returns(address owner)
  4138  func (_KittyAuction *KittyAuctionCallerSession) OwnerOf(_tokenId *big.Int) (common.Address, error) {
  4139  	return _KittyAuction.Contract.OwnerOf(&_KittyAuction.CallOpts, _tokenId)
  4140  }
  4141  
  4142  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
  4143  //
  4144  // Solidity: function paused() view returns(bool)
  4145  func (_KittyAuction *KittyAuctionCaller) Paused(opts *bind.CallOpts) (bool, error) {
  4146  	var out []interface{}
  4147  	err := _KittyAuction.contract.Call(opts, &out, "paused")
  4148  
  4149  	if err != nil {
  4150  		return *new(bool), err
  4151  	}
  4152  
  4153  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  4154  
  4155  	return out0, err
  4156  
  4157  }
  4158  
  4159  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
  4160  //
  4161  // Solidity: function paused() view returns(bool)
  4162  func (_KittyAuction *KittyAuctionSession) Paused() (bool, error) {
  4163  	return _KittyAuction.Contract.Paused(&_KittyAuction.CallOpts)
  4164  }
  4165  
  4166  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
  4167  //
  4168  // Solidity: function paused() view returns(bool)
  4169  func (_KittyAuction *KittyAuctionCallerSession) Paused() (bool, error) {
  4170  	return _KittyAuction.Contract.Paused(&_KittyAuction.CallOpts)
  4171  }
  4172  
  4173  // PregnantKitties is a free data retrieval call binding the contract method 0x183a7947.
  4174  //
  4175  // Solidity: function pregnantKitties() view returns(uint256)
  4176  func (_KittyAuction *KittyAuctionCaller) PregnantKitties(opts *bind.CallOpts) (*big.Int, error) {
  4177  	var out []interface{}
  4178  	err := _KittyAuction.contract.Call(opts, &out, "pregnantKitties")
  4179  
  4180  	if err != nil {
  4181  		return *new(*big.Int), err
  4182  	}
  4183  
  4184  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  4185  
  4186  	return out0, err
  4187  
  4188  }
  4189  
  4190  // PregnantKitties is a free data retrieval call binding the contract method 0x183a7947.
  4191  //
  4192  // Solidity: function pregnantKitties() view returns(uint256)
  4193  func (_KittyAuction *KittyAuctionSession) PregnantKitties() (*big.Int, error) {
  4194  	return _KittyAuction.Contract.PregnantKitties(&_KittyAuction.CallOpts)
  4195  }
  4196  
  4197  // PregnantKitties is a free data retrieval call binding the contract method 0x183a7947.
  4198  //
  4199  // Solidity: function pregnantKitties() view returns(uint256)
  4200  func (_KittyAuction *KittyAuctionCallerSession) PregnantKitties() (*big.Int, error) {
  4201  	return _KittyAuction.Contract.PregnantKitties(&_KittyAuction.CallOpts)
  4202  }
  4203  
  4204  // SaleAuction is a free data retrieval call binding the contract method 0xe6cbe351.
  4205  //
  4206  // Solidity: function saleAuction() view returns(address)
  4207  func (_KittyAuction *KittyAuctionCaller) SaleAuction(opts *bind.CallOpts) (common.Address, error) {
  4208  	var out []interface{}
  4209  	err := _KittyAuction.contract.Call(opts, &out, "saleAuction")
  4210  
  4211  	if err != nil {
  4212  		return *new(common.Address), err
  4213  	}
  4214  
  4215  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  4216  
  4217  	return out0, err
  4218  
  4219  }
  4220  
  4221  // SaleAuction is a free data retrieval call binding the contract method 0xe6cbe351.
  4222  //
  4223  // Solidity: function saleAuction() view returns(address)
  4224  func (_KittyAuction *KittyAuctionSession) SaleAuction() (common.Address, error) {
  4225  	return _KittyAuction.Contract.SaleAuction(&_KittyAuction.CallOpts)
  4226  }
  4227  
  4228  // SaleAuction is a free data retrieval call binding the contract method 0xe6cbe351.
  4229  //
  4230  // Solidity: function saleAuction() view returns(address)
  4231  func (_KittyAuction *KittyAuctionCallerSession) SaleAuction() (common.Address, error) {
  4232  	return _KittyAuction.Contract.SaleAuction(&_KittyAuction.CallOpts)
  4233  }
  4234  
  4235  // SecondsPerBlock is a free data retrieval call binding the contract method 0x7a7d4937.
  4236  //
  4237  // Solidity: function secondsPerBlock() view returns(uint256)
  4238  func (_KittyAuction *KittyAuctionCaller) SecondsPerBlock(opts *bind.CallOpts) (*big.Int, error) {
  4239  	var out []interface{}
  4240  	err := _KittyAuction.contract.Call(opts, &out, "secondsPerBlock")
  4241  
  4242  	if err != nil {
  4243  		return *new(*big.Int), err
  4244  	}
  4245  
  4246  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  4247  
  4248  	return out0, err
  4249  
  4250  }
  4251  
  4252  // SecondsPerBlock is a free data retrieval call binding the contract method 0x7a7d4937.
  4253  //
  4254  // Solidity: function secondsPerBlock() view returns(uint256)
  4255  func (_KittyAuction *KittyAuctionSession) SecondsPerBlock() (*big.Int, error) {
  4256  	return _KittyAuction.Contract.SecondsPerBlock(&_KittyAuction.CallOpts)
  4257  }
  4258  
  4259  // SecondsPerBlock is a free data retrieval call binding the contract method 0x7a7d4937.
  4260  //
  4261  // Solidity: function secondsPerBlock() view returns(uint256)
  4262  func (_KittyAuction *KittyAuctionCallerSession) SecondsPerBlock() (*big.Int, error) {
  4263  	return _KittyAuction.Contract.SecondsPerBlock(&_KittyAuction.CallOpts)
  4264  }
  4265  
  4266  // SireAllowedToAddress is a free data retrieval call binding the contract method 0x46116e6f.
  4267  //
  4268  // Solidity: function sireAllowedToAddress(uint256 ) view returns(address)
  4269  func (_KittyAuction *KittyAuctionCaller) SireAllowedToAddress(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  4270  	var out []interface{}
  4271  	err := _KittyAuction.contract.Call(opts, &out, "sireAllowedToAddress", arg0)
  4272  
  4273  	if err != nil {
  4274  		return *new(common.Address), err
  4275  	}
  4276  
  4277  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  4278  
  4279  	return out0, err
  4280  
  4281  }
  4282  
  4283  // SireAllowedToAddress is a free data retrieval call binding the contract method 0x46116e6f.
  4284  //
  4285  // Solidity: function sireAllowedToAddress(uint256 ) view returns(address)
  4286  func (_KittyAuction *KittyAuctionSession) SireAllowedToAddress(arg0 *big.Int) (common.Address, error) {
  4287  	return _KittyAuction.Contract.SireAllowedToAddress(&_KittyAuction.CallOpts, arg0)
  4288  }
  4289  
  4290  // SireAllowedToAddress is a free data retrieval call binding the contract method 0x46116e6f.
  4291  //
  4292  // Solidity: function sireAllowedToAddress(uint256 ) view returns(address)
  4293  func (_KittyAuction *KittyAuctionCallerSession) SireAllowedToAddress(arg0 *big.Int) (common.Address, error) {
  4294  	return _KittyAuction.Contract.SireAllowedToAddress(&_KittyAuction.CallOpts, arg0)
  4295  }
  4296  
  4297  // SiringAuction is a free data retrieval call binding the contract method 0x21717ebf.
  4298  //
  4299  // Solidity: function siringAuction() view returns(address)
  4300  func (_KittyAuction *KittyAuctionCaller) SiringAuction(opts *bind.CallOpts) (common.Address, error) {
  4301  	var out []interface{}
  4302  	err := _KittyAuction.contract.Call(opts, &out, "siringAuction")
  4303  
  4304  	if err != nil {
  4305  		return *new(common.Address), err
  4306  	}
  4307  
  4308  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  4309  
  4310  	return out0, err
  4311  
  4312  }
  4313  
  4314  // SiringAuction is a free data retrieval call binding the contract method 0x21717ebf.
  4315  //
  4316  // Solidity: function siringAuction() view returns(address)
  4317  func (_KittyAuction *KittyAuctionSession) SiringAuction() (common.Address, error) {
  4318  	return _KittyAuction.Contract.SiringAuction(&_KittyAuction.CallOpts)
  4319  }
  4320  
  4321  // SiringAuction is a free data retrieval call binding the contract method 0x21717ebf.
  4322  //
  4323  // Solidity: function siringAuction() view returns(address)
  4324  func (_KittyAuction *KittyAuctionCallerSession) SiringAuction() (common.Address, error) {
  4325  	return _KittyAuction.Contract.SiringAuction(&_KittyAuction.CallOpts)
  4326  }
  4327  
  4328  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  4329  //
  4330  // Solidity: function supportsInterface(bytes4 _interfaceID) view returns(bool)
  4331  func (_KittyAuction *KittyAuctionCaller) SupportsInterface(opts *bind.CallOpts, _interfaceID [4]byte) (bool, error) {
  4332  	var out []interface{}
  4333  	err := _KittyAuction.contract.Call(opts, &out, "supportsInterface", _interfaceID)
  4334  
  4335  	if err != nil {
  4336  		return *new(bool), err
  4337  	}
  4338  
  4339  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  4340  
  4341  	return out0, err
  4342  
  4343  }
  4344  
  4345  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  4346  //
  4347  // Solidity: function supportsInterface(bytes4 _interfaceID) view returns(bool)
  4348  func (_KittyAuction *KittyAuctionSession) SupportsInterface(_interfaceID [4]byte) (bool, error) {
  4349  	return _KittyAuction.Contract.SupportsInterface(&_KittyAuction.CallOpts, _interfaceID)
  4350  }
  4351  
  4352  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  4353  //
  4354  // Solidity: function supportsInterface(bytes4 _interfaceID) view returns(bool)
  4355  func (_KittyAuction *KittyAuctionCallerSession) SupportsInterface(_interfaceID [4]byte) (bool, error) {
  4356  	return _KittyAuction.Contract.SupportsInterface(&_KittyAuction.CallOpts, _interfaceID)
  4357  }
  4358  
  4359  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
  4360  //
  4361  // Solidity: function symbol() view returns(string)
  4362  func (_KittyAuction *KittyAuctionCaller) Symbol(opts *bind.CallOpts) (string, error) {
  4363  	var out []interface{}
  4364  	err := _KittyAuction.contract.Call(opts, &out, "symbol")
  4365  
  4366  	if err != nil {
  4367  		return *new(string), err
  4368  	}
  4369  
  4370  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
  4371  
  4372  	return out0, err
  4373  
  4374  }
  4375  
  4376  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
  4377  //
  4378  // Solidity: function symbol() view returns(string)
  4379  func (_KittyAuction *KittyAuctionSession) Symbol() (string, error) {
  4380  	return _KittyAuction.Contract.Symbol(&_KittyAuction.CallOpts)
  4381  }
  4382  
  4383  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
  4384  //
  4385  // Solidity: function symbol() view returns(string)
  4386  func (_KittyAuction *KittyAuctionCallerSession) Symbol() (string, error) {
  4387  	return _KittyAuction.Contract.Symbol(&_KittyAuction.CallOpts)
  4388  }
  4389  
  4390  // TokenMetadata is a free data retrieval call binding the contract method 0x0560ff44.
  4391  //
  4392  // Solidity: function tokenMetadata(uint256 _tokenId, string _preferredTransport) view returns(string infoUrl)
  4393  func (_KittyAuction *KittyAuctionCaller) TokenMetadata(opts *bind.CallOpts, _tokenId *big.Int, _preferredTransport string) (string, error) {
  4394  	var out []interface{}
  4395  	err := _KittyAuction.contract.Call(opts, &out, "tokenMetadata", _tokenId, _preferredTransport)
  4396  
  4397  	if err != nil {
  4398  		return *new(string), err
  4399  	}
  4400  
  4401  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
  4402  
  4403  	return out0, err
  4404  
  4405  }
  4406  
  4407  // TokenMetadata is a free data retrieval call binding the contract method 0x0560ff44.
  4408  //
  4409  // Solidity: function tokenMetadata(uint256 _tokenId, string _preferredTransport) view returns(string infoUrl)
  4410  func (_KittyAuction *KittyAuctionSession) TokenMetadata(_tokenId *big.Int, _preferredTransport string) (string, error) {
  4411  	return _KittyAuction.Contract.TokenMetadata(&_KittyAuction.CallOpts, _tokenId, _preferredTransport)
  4412  }
  4413  
  4414  // TokenMetadata is a free data retrieval call binding the contract method 0x0560ff44.
  4415  //
  4416  // Solidity: function tokenMetadata(uint256 _tokenId, string _preferredTransport) view returns(string infoUrl)
  4417  func (_KittyAuction *KittyAuctionCallerSession) TokenMetadata(_tokenId *big.Int, _preferredTransport string) (string, error) {
  4418  	return _KittyAuction.Contract.TokenMetadata(&_KittyAuction.CallOpts, _tokenId, _preferredTransport)
  4419  }
  4420  
  4421  // TokensOfOwner is a free data retrieval call binding the contract method 0x8462151c.
  4422  //
  4423  // Solidity: function tokensOfOwner(address _owner) view returns(uint256[] ownerTokens)
  4424  func (_KittyAuction *KittyAuctionCaller) TokensOfOwner(opts *bind.CallOpts, _owner common.Address) ([]*big.Int, error) {
  4425  	var out []interface{}
  4426  	err := _KittyAuction.contract.Call(opts, &out, "tokensOfOwner", _owner)
  4427  
  4428  	if err != nil {
  4429  		return *new([]*big.Int), err
  4430  	}
  4431  
  4432  	out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int)
  4433  
  4434  	return out0, err
  4435  
  4436  }
  4437  
  4438  // TokensOfOwner is a free data retrieval call binding the contract method 0x8462151c.
  4439  //
  4440  // Solidity: function tokensOfOwner(address _owner) view returns(uint256[] ownerTokens)
  4441  func (_KittyAuction *KittyAuctionSession) TokensOfOwner(_owner common.Address) ([]*big.Int, error) {
  4442  	return _KittyAuction.Contract.TokensOfOwner(&_KittyAuction.CallOpts, _owner)
  4443  }
  4444  
  4445  // TokensOfOwner is a free data retrieval call binding the contract method 0x8462151c.
  4446  //
  4447  // Solidity: function tokensOfOwner(address _owner) view returns(uint256[] ownerTokens)
  4448  func (_KittyAuction *KittyAuctionCallerSession) TokensOfOwner(_owner common.Address) ([]*big.Int, error) {
  4449  	return _KittyAuction.Contract.TokensOfOwner(&_KittyAuction.CallOpts, _owner)
  4450  }
  4451  
  4452  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  4453  //
  4454  // Solidity: function totalSupply() view returns(uint256)
  4455  func (_KittyAuction *KittyAuctionCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
  4456  	var out []interface{}
  4457  	err := _KittyAuction.contract.Call(opts, &out, "totalSupply")
  4458  
  4459  	if err != nil {
  4460  		return *new(*big.Int), err
  4461  	}
  4462  
  4463  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  4464  
  4465  	return out0, err
  4466  
  4467  }
  4468  
  4469  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  4470  //
  4471  // Solidity: function totalSupply() view returns(uint256)
  4472  func (_KittyAuction *KittyAuctionSession) TotalSupply() (*big.Int, error) {
  4473  	return _KittyAuction.Contract.TotalSupply(&_KittyAuction.CallOpts)
  4474  }
  4475  
  4476  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  4477  //
  4478  // Solidity: function totalSupply() view returns(uint256)
  4479  func (_KittyAuction *KittyAuctionCallerSession) TotalSupply() (*big.Int, error) {
  4480  	return _KittyAuction.Contract.TotalSupply(&_KittyAuction.CallOpts)
  4481  }
  4482  
  4483  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  4484  //
  4485  // Solidity: function approve(address _to, uint256 _tokenId) returns()
  4486  func (_KittyAuction *KittyAuctionTransactor) Approve(opts *bind.TransactOpts, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
  4487  	return _KittyAuction.contract.Transact(opts, "approve", _to, _tokenId)
  4488  }
  4489  
  4490  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  4491  //
  4492  // Solidity: function approve(address _to, uint256 _tokenId) returns()
  4493  func (_KittyAuction *KittyAuctionSession) Approve(_to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
  4494  	return _KittyAuction.Contract.Approve(&_KittyAuction.TransactOpts, _to, _tokenId)
  4495  }
  4496  
  4497  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  4498  //
  4499  // Solidity: function approve(address _to, uint256 _tokenId) returns()
  4500  func (_KittyAuction *KittyAuctionTransactorSession) Approve(_to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
  4501  	return _KittyAuction.Contract.Approve(&_KittyAuction.TransactOpts, _to, _tokenId)
  4502  }
  4503  
  4504  // ApproveSiring is a paid mutator transaction binding the contract method 0x4dfff04f.
  4505  //
  4506  // Solidity: function approveSiring(address _addr, uint256 _sireId) returns()
  4507  func (_KittyAuction *KittyAuctionTransactor) ApproveSiring(opts *bind.TransactOpts, _addr common.Address, _sireId *big.Int) (*types.Transaction, error) {
  4508  	return _KittyAuction.contract.Transact(opts, "approveSiring", _addr, _sireId)
  4509  }
  4510  
  4511  // ApproveSiring is a paid mutator transaction binding the contract method 0x4dfff04f.
  4512  //
  4513  // Solidity: function approveSiring(address _addr, uint256 _sireId) returns()
  4514  func (_KittyAuction *KittyAuctionSession) ApproveSiring(_addr common.Address, _sireId *big.Int) (*types.Transaction, error) {
  4515  	return _KittyAuction.Contract.ApproveSiring(&_KittyAuction.TransactOpts, _addr, _sireId)
  4516  }
  4517  
  4518  // ApproveSiring is a paid mutator transaction binding the contract method 0x4dfff04f.
  4519  //
  4520  // Solidity: function approveSiring(address _addr, uint256 _sireId) returns()
  4521  func (_KittyAuction *KittyAuctionTransactorSession) ApproveSiring(_addr common.Address, _sireId *big.Int) (*types.Transaction, error) {
  4522  	return _KittyAuction.Contract.ApproveSiring(&_KittyAuction.TransactOpts, _addr, _sireId)
  4523  }
  4524  
  4525  // BidOnSiringAuction is a paid mutator transaction binding the contract method 0xed60ade6.
  4526  //
  4527  // Solidity: function bidOnSiringAuction(uint256 _sireId, uint256 _matronId) payable returns()
  4528  func (_KittyAuction *KittyAuctionTransactor) BidOnSiringAuction(opts *bind.TransactOpts, _sireId *big.Int, _matronId *big.Int) (*types.Transaction, error) {
  4529  	return _KittyAuction.contract.Transact(opts, "bidOnSiringAuction", _sireId, _matronId)
  4530  }
  4531  
  4532  // BidOnSiringAuction is a paid mutator transaction binding the contract method 0xed60ade6.
  4533  //
  4534  // Solidity: function bidOnSiringAuction(uint256 _sireId, uint256 _matronId) payable returns()
  4535  func (_KittyAuction *KittyAuctionSession) BidOnSiringAuction(_sireId *big.Int, _matronId *big.Int) (*types.Transaction, error) {
  4536  	return _KittyAuction.Contract.BidOnSiringAuction(&_KittyAuction.TransactOpts, _sireId, _matronId)
  4537  }
  4538  
  4539  // BidOnSiringAuction is a paid mutator transaction binding the contract method 0xed60ade6.
  4540  //
  4541  // Solidity: function bidOnSiringAuction(uint256 _sireId, uint256 _matronId) payable returns()
  4542  func (_KittyAuction *KittyAuctionTransactorSession) BidOnSiringAuction(_sireId *big.Int, _matronId *big.Int) (*types.Transaction, error) {
  4543  	return _KittyAuction.Contract.BidOnSiringAuction(&_KittyAuction.TransactOpts, _sireId, _matronId)
  4544  }
  4545  
  4546  // BreedWithAuto is a paid mutator transaction binding the contract method 0xf7d8c883.
  4547  //
  4548  // Solidity: function breedWithAuto(uint256 _matronId, uint256 _sireId) payable returns()
  4549  func (_KittyAuction *KittyAuctionTransactor) BreedWithAuto(opts *bind.TransactOpts, _matronId *big.Int, _sireId *big.Int) (*types.Transaction, error) {
  4550  	return _KittyAuction.contract.Transact(opts, "breedWithAuto", _matronId, _sireId)
  4551  }
  4552  
  4553  // BreedWithAuto is a paid mutator transaction binding the contract method 0xf7d8c883.
  4554  //
  4555  // Solidity: function breedWithAuto(uint256 _matronId, uint256 _sireId) payable returns()
  4556  func (_KittyAuction *KittyAuctionSession) BreedWithAuto(_matronId *big.Int, _sireId *big.Int) (*types.Transaction, error) {
  4557  	return _KittyAuction.Contract.BreedWithAuto(&_KittyAuction.TransactOpts, _matronId, _sireId)
  4558  }
  4559  
  4560  // BreedWithAuto is a paid mutator transaction binding the contract method 0xf7d8c883.
  4561  //
  4562  // Solidity: function breedWithAuto(uint256 _matronId, uint256 _sireId) payable returns()
  4563  func (_KittyAuction *KittyAuctionTransactorSession) BreedWithAuto(_matronId *big.Int, _sireId *big.Int) (*types.Transaction, error) {
  4564  	return _KittyAuction.Contract.BreedWithAuto(&_KittyAuction.TransactOpts, _matronId, _sireId)
  4565  }
  4566  
  4567  // CreateSaleAuction is a paid mutator transaction binding the contract method 0x3d7d3f5a.
  4568  //
  4569  // Solidity: function createSaleAuction(uint256 _kittyId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration) returns()
  4570  func (_KittyAuction *KittyAuctionTransactor) CreateSaleAuction(opts *bind.TransactOpts, _kittyId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int) (*types.Transaction, error) {
  4571  	return _KittyAuction.contract.Transact(opts, "createSaleAuction", _kittyId, _startingPrice, _endingPrice, _duration)
  4572  }
  4573  
  4574  // CreateSaleAuction is a paid mutator transaction binding the contract method 0x3d7d3f5a.
  4575  //
  4576  // Solidity: function createSaleAuction(uint256 _kittyId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration) returns()
  4577  func (_KittyAuction *KittyAuctionSession) CreateSaleAuction(_kittyId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int) (*types.Transaction, error) {
  4578  	return _KittyAuction.Contract.CreateSaleAuction(&_KittyAuction.TransactOpts, _kittyId, _startingPrice, _endingPrice, _duration)
  4579  }
  4580  
  4581  // CreateSaleAuction is a paid mutator transaction binding the contract method 0x3d7d3f5a.
  4582  //
  4583  // Solidity: function createSaleAuction(uint256 _kittyId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration) returns()
  4584  func (_KittyAuction *KittyAuctionTransactorSession) CreateSaleAuction(_kittyId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int) (*types.Transaction, error) {
  4585  	return _KittyAuction.Contract.CreateSaleAuction(&_KittyAuction.TransactOpts, _kittyId, _startingPrice, _endingPrice, _duration)
  4586  }
  4587  
  4588  // CreateSiringAuction is a paid mutator transaction binding the contract method 0x4ad8c938.
  4589  //
  4590  // Solidity: function createSiringAuction(uint256 _kittyId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration) returns()
  4591  func (_KittyAuction *KittyAuctionTransactor) CreateSiringAuction(opts *bind.TransactOpts, _kittyId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int) (*types.Transaction, error) {
  4592  	return _KittyAuction.contract.Transact(opts, "createSiringAuction", _kittyId, _startingPrice, _endingPrice, _duration)
  4593  }
  4594  
  4595  // CreateSiringAuction is a paid mutator transaction binding the contract method 0x4ad8c938.
  4596  //
  4597  // Solidity: function createSiringAuction(uint256 _kittyId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration) returns()
  4598  func (_KittyAuction *KittyAuctionSession) CreateSiringAuction(_kittyId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int) (*types.Transaction, error) {
  4599  	return _KittyAuction.Contract.CreateSiringAuction(&_KittyAuction.TransactOpts, _kittyId, _startingPrice, _endingPrice, _duration)
  4600  }
  4601  
  4602  // CreateSiringAuction is a paid mutator transaction binding the contract method 0x4ad8c938.
  4603  //
  4604  // Solidity: function createSiringAuction(uint256 _kittyId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration) returns()
  4605  func (_KittyAuction *KittyAuctionTransactorSession) CreateSiringAuction(_kittyId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int) (*types.Transaction, error) {
  4606  	return _KittyAuction.Contract.CreateSiringAuction(&_KittyAuction.TransactOpts, _kittyId, _startingPrice, _endingPrice, _duration)
  4607  }
  4608  
  4609  // GiveBirth is a paid mutator transaction binding the contract method 0x88c2a0bf.
  4610  //
  4611  // Solidity: function giveBirth(uint256 _matronId) returns(uint256)
  4612  func (_KittyAuction *KittyAuctionTransactor) GiveBirth(opts *bind.TransactOpts, _matronId *big.Int) (*types.Transaction, error) {
  4613  	return _KittyAuction.contract.Transact(opts, "giveBirth", _matronId)
  4614  }
  4615  
  4616  // GiveBirth is a paid mutator transaction binding the contract method 0x88c2a0bf.
  4617  //
  4618  // Solidity: function giveBirth(uint256 _matronId) returns(uint256)
  4619  func (_KittyAuction *KittyAuctionSession) GiveBirth(_matronId *big.Int) (*types.Transaction, error) {
  4620  	return _KittyAuction.Contract.GiveBirth(&_KittyAuction.TransactOpts, _matronId)
  4621  }
  4622  
  4623  // GiveBirth is a paid mutator transaction binding the contract method 0x88c2a0bf.
  4624  //
  4625  // Solidity: function giveBirth(uint256 _matronId) returns(uint256)
  4626  func (_KittyAuction *KittyAuctionTransactorSession) GiveBirth(_matronId *big.Int) (*types.Transaction, error) {
  4627  	return _KittyAuction.Contract.GiveBirth(&_KittyAuction.TransactOpts, _matronId)
  4628  }
  4629  
  4630  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
  4631  //
  4632  // Solidity: function pause() returns()
  4633  func (_KittyAuction *KittyAuctionTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) {
  4634  	return _KittyAuction.contract.Transact(opts, "pause")
  4635  }
  4636  
  4637  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
  4638  //
  4639  // Solidity: function pause() returns()
  4640  func (_KittyAuction *KittyAuctionSession) Pause() (*types.Transaction, error) {
  4641  	return _KittyAuction.Contract.Pause(&_KittyAuction.TransactOpts)
  4642  }
  4643  
  4644  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
  4645  //
  4646  // Solidity: function pause() returns()
  4647  func (_KittyAuction *KittyAuctionTransactorSession) Pause() (*types.Transaction, error) {
  4648  	return _KittyAuction.Contract.Pause(&_KittyAuction.TransactOpts)
  4649  }
  4650  
  4651  // SetAutoBirthFee is a paid mutator transaction binding the contract method 0x4b85fd55.
  4652  //
  4653  // Solidity: function setAutoBirthFee(uint256 val) returns()
  4654  func (_KittyAuction *KittyAuctionTransactor) SetAutoBirthFee(opts *bind.TransactOpts, val *big.Int) (*types.Transaction, error) {
  4655  	return _KittyAuction.contract.Transact(opts, "setAutoBirthFee", val)
  4656  }
  4657  
  4658  // SetAutoBirthFee is a paid mutator transaction binding the contract method 0x4b85fd55.
  4659  //
  4660  // Solidity: function setAutoBirthFee(uint256 val) returns()
  4661  func (_KittyAuction *KittyAuctionSession) SetAutoBirthFee(val *big.Int) (*types.Transaction, error) {
  4662  	return _KittyAuction.Contract.SetAutoBirthFee(&_KittyAuction.TransactOpts, val)
  4663  }
  4664  
  4665  // SetAutoBirthFee is a paid mutator transaction binding the contract method 0x4b85fd55.
  4666  //
  4667  // Solidity: function setAutoBirthFee(uint256 val) returns()
  4668  func (_KittyAuction *KittyAuctionTransactorSession) SetAutoBirthFee(val *big.Int) (*types.Transaction, error) {
  4669  	return _KittyAuction.Contract.SetAutoBirthFee(&_KittyAuction.TransactOpts, val)
  4670  }
  4671  
  4672  // SetCEO is a paid mutator transaction binding the contract method 0x27d7874c.
  4673  //
  4674  // Solidity: function setCEO(address _newCEO) returns()
  4675  func (_KittyAuction *KittyAuctionTransactor) SetCEO(opts *bind.TransactOpts, _newCEO common.Address) (*types.Transaction, error) {
  4676  	return _KittyAuction.contract.Transact(opts, "setCEO", _newCEO)
  4677  }
  4678  
  4679  // SetCEO is a paid mutator transaction binding the contract method 0x27d7874c.
  4680  //
  4681  // Solidity: function setCEO(address _newCEO) returns()
  4682  func (_KittyAuction *KittyAuctionSession) SetCEO(_newCEO common.Address) (*types.Transaction, error) {
  4683  	return _KittyAuction.Contract.SetCEO(&_KittyAuction.TransactOpts, _newCEO)
  4684  }
  4685  
  4686  // SetCEO is a paid mutator transaction binding the contract method 0x27d7874c.
  4687  //
  4688  // Solidity: function setCEO(address _newCEO) returns()
  4689  func (_KittyAuction *KittyAuctionTransactorSession) SetCEO(_newCEO common.Address) (*types.Transaction, error) {
  4690  	return _KittyAuction.Contract.SetCEO(&_KittyAuction.TransactOpts, _newCEO)
  4691  }
  4692  
  4693  // SetCFO is a paid mutator transaction binding the contract method 0x4e0a3379.
  4694  //
  4695  // Solidity: function setCFO(address _newCFO) returns()
  4696  func (_KittyAuction *KittyAuctionTransactor) SetCFO(opts *bind.TransactOpts, _newCFO common.Address) (*types.Transaction, error) {
  4697  	return _KittyAuction.contract.Transact(opts, "setCFO", _newCFO)
  4698  }
  4699  
  4700  // SetCFO is a paid mutator transaction binding the contract method 0x4e0a3379.
  4701  //
  4702  // Solidity: function setCFO(address _newCFO) returns()
  4703  func (_KittyAuction *KittyAuctionSession) SetCFO(_newCFO common.Address) (*types.Transaction, error) {
  4704  	return _KittyAuction.Contract.SetCFO(&_KittyAuction.TransactOpts, _newCFO)
  4705  }
  4706  
  4707  // SetCFO is a paid mutator transaction binding the contract method 0x4e0a3379.
  4708  //
  4709  // Solidity: function setCFO(address _newCFO) returns()
  4710  func (_KittyAuction *KittyAuctionTransactorSession) SetCFO(_newCFO common.Address) (*types.Transaction, error) {
  4711  	return _KittyAuction.Contract.SetCFO(&_KittyAuction.TransactOpts, _newCFO)
  4712  }
  4713  
  4714  // SetCOO is a paid mutator transaction binding the contract method 0x2ba73c15.
  4715  //
  4716  // Solidity: function setCOO(address _newCOO) returns()
  4717  func (_KittyAuction *KittyAuctionTransactor) SetCOO(opts *bind.TransactOpts, _newCOO common.Address) (*types.Transaction, error) {
  4718  	return _KittyAuction.contract.Transact(opts, "setCOO", _newCOO)
  4719  }
  4720  
  4721  // SetCOO is a paid mutator transaction binding the contract method 0x2ba73c15.
  4722  //
  4723  // Solidity: function setCOO(address _newCOO) returns()
  4724  func (_KittyAuction *KittyAuctionSession) SetCOO(_newCOO common.Address) (*types.Transaction, error) {
  4725  	return _KittyAuction.Contract.SetCOO(&_KittyAuction.TransactOpts, _newCOO)
  4726  }
  4727  
  4728  // SetCOO is a paid mutator transaction binding the contract method 0x2ba73c15.
  4729  //
  4730  // Solidity: function setCOO(address _newCOO) returns()
  4731  func (_KittyAuction *KittyAuctionTransactorSession) SetCOO(_newCOO common.Address) (*types.Transaction, error) {
  4732  	return _KittyAuction.Contract.SetCOO(&_KittyAuction.TransactOpts, _newCOO)
  4733  }
  4734  
  4735  // SetGeneScienceAddress is a paid mutator transaction binding the contract method 0x24e7a38a.
  4736  //
  4737  // Solidity: function setGeneScienceAddress(address _address) returns()
  4738  func (_KittyAuction *KittyAuctionTransactor) SetGeneScienceAddress(opts *bind.TransactOpts, _address common.Address) (*types.Transaction, error) {
  4739  	return _KittyAuction.contract.Transact(opts, "setGeneScienceAddress", _address)
  4740  }
  4741  
  4742  // SetGeneScienceAddress is a paid mutator transaction binding the contract method 0x24e7a38a.
  4743  //
  4744  // Solidity: function setGeneScienceAddress(address _address) returns()
  4745  func (_KittyAuction *KittyAuctionSession) SetGeneScienceAddress(_address common.Address) (*types.Transaction, error) {
  4746  	return _KittyAuction.Contract.SetGeneScienceAddress(&_KittyAuction.TransactOpts, _address)
  4747  }
  4748  
  4749  // SetGeneScienceAddress is a paid mutator transaction binding the contract method 0x24e7a38a.
  4750  //
  4751  // Solidity: function setGeneScienceAddress(address _address) returns()
  4752  func (_KittyAuction *KittyAuctionTransactorSession) SetGeneScienceAddress(_address common.Address) (*types.Transaction, error) {
  4753  	return _KittyAuction.Contract.SetGeneScienceAddress(&_KittyAuction.TransactOpts, _address)
  4754  }
  4755  
  4756  // SetMetadataAddress is a paid mutator transaction binding the contract method 0xe17b25af.
  4757  //
  4758  // Solidity: function setMetadataAddress(address _contractAddress) returns()
  4759  func (_KittyAuction *KittyAuctionTransactor) SetMetadataAddress(opts *bind.TransactOpts, _contractAddress common.Address) (*types.Transaction, error) {
  4760  	return _KittyAuction.contract.Transact(opts, "setMetadataAddress", _contractAddress)
  4761  }
  4762  
  4763  // SetMetadataAddress is a paid mutator transaction binding the contract method 0xe17b25af.
  4764  //
  4765  // Solidity: function setMetadataAddress(address _contractAddress) returns()
  4766  func (_KittyAuction *KittyAuctionSession) SetMetadataAddress(_contractAddress common.Address) (*types.Transaction, error) {
  4767  	return _KittyAuction.Contract.SetMetadataAddress(&_KittyAuction.TransactOpts, _contractAddress)
  4768  }
  4769  
  4770  // SetMetadataAddress is a paid mutator transaction binding the contract method 0xe17b25af.
  4771  //
  4772  // Solidity: function setMetadataAddress(address _contractAddress) returns()
  4773  func (_KittyAuction *KittyAuctionTransactorSession) SetMetadataAddress(_contractAddress common.Address) (*types.Transaction, error) {
  4774  	return _KittyAuction.Contract.SetMetadataAddress(&_KittyAuction.TransactOpts, _contractAddress)
  4775  }
  4776  
  4777  // SetSaleAuctionAddress is a paid mutator transaction binding the contract method 0x6fbde40d.
  4778  //
  4779  // Solidity: function setSaleAuctionAddress(address _address) returns()
  4780  func (_KittyAuction *KittyAuctionTransactor) SetSaleAuctionAddress(opts *bind.TransactOpts, _address common.Address) (*types.Transaction, error) {
  4781  	return _KittyAuction.contract.Transact(opts, "setSaleAuctionAddress", _address)
  4782  }
  4783  
  4784  // SetSaleAuctionAddress is a paid mutator transaction binding the contract method 0x6fbde40d.
  4785  //
  4786  // Solidity: function setSaleAuctionAddress(address _address) returns()
  4787  func (_KittyAuction *KittyAuctionSession) SetSaleAuctionAddress(_address common.Address) (*types.Transaction, error) {
  4788  	return _KittyAuction.Contract.SetSaleAuctionAddress(&_KittyAuction.TransactOpts, _address)
  4789  }
  4790  
  4791  // SetSaleAuctionAddress is a paid mutator transaction binding the contract method 0x6fbde40d.
  4792  //
  4793  // Solidity: function setSaleAuctionAddress(address _address) returns()
  4794  func (_KittyAuction *KittyAuctionTransactorSession) SetSaleAuctionAddress(_address common.Address) (*types.Transaction, error) {
  4795  	return _KittyAuction.Contract.SetSaleAuctionAddress(&_KittyAuction.TransactOpts, _address)
  4796  }
  4797  
  4798  // SetSecondsPerBlock is a paid mutator transaction binding the contract method 0x5663896e.
  4799  //
  4800  // Solidity: function setSecondsPerBlock(uint256 secs) returns()
  4801  func (_KittyAuction *KittyAuctionTransactor) SetSecondsPerBlock(opts *bind.TransactOpts, secs *big.Int) (*types.Transaction, error) {
  4802  	return _KittyAuction.contract.Transact(opts, "setSecondsPerBlock", secs)
  4803  }
  4804  
  4805  // SetSecondsPerBlock is a paid mutator transaction binding the contract method 0x5663896e.
  4806  //
  4807  // Solidity: function setSecondsPerBlock(uint256 secs) returns()
  4808  func (_KittyAuction *KittyAuctionSession) SetSecondsPerBlock(secs *big.Int) (*types.Transaction, error) {
  4809  	return _KittyAuction.Contract.SetSecondsPerBlock(&_KittyAuction.TransactOpts, secs)
  4810  }
  4811  
  4812  // SetSecondsPerBlock is a paid mutator transaction binding the contract method 0x5663896e.
  4813  //
  4814  // Solidity: function setSecondsPerBlock(uint256 secs) returns()
  4815  func (_KittyAuction *KittyAuctionTransactorSession) SetSecondsPerBlock(secs *big.Int) (*types.Transaction, error) {
  4816  	return _KittyAuction.Contract.SetSecondsPerBlock(&_KittyAuction.TransactOpts, secs)
  4817  }
  4818  
  4819  // SetSiringAuctionAddress is a paid mutator transaction binding the contract method 0x14001f4c.
  4820  //
  4821  // Solidity: function setSiringAuctionAddress(address _address) returns()
  4822  func (_KittyAuction *KittyAuctionTransactor) SetSiringAuctionAddress(opts *bind.TransactOpts, _address common.Address) (*types.Transaction, error) {
  4823  	return _KittyAuction.contract.Transact(opts, "setSiringAuctionAddress", _address)
  4824  }
  4825  
  4826  // SetSiringAuctionAddress is a paid mutator transaction binding the contract method 0x14001f4c.
  4827  //
  4828  // Solidity: function setSiringAuctionAddress(address _address) returns()
  4829  func (_KittyAuction *KittyAuctionSession) SetSiringAuctionAddress(_address common.Address) (*types.Transaction, error) {
  4830  	return _KittyAuction.Contract.SetSiringAuctionAddress(&_KittyAuction.TransactOpts, _address)
  4831  }
  4832  
  4833  // SetSiringAuctionAddress is a paid mutator transaction binding the contract method 0x14001f4c.
  4834  //
  4835  // Solidity: function setSiringAuctionAddress(address _address) returns()
  4836  func (_KittyAuction *KittyAuctionTransactorSession) SetSiringAuctionAddress(_address common.Address) (*types.Transaction, error) {
  4837  	return _KittyAuction.Contract.SetSiringAuctionAddress(&_KittyAuction.TransactOpts, _address)
  4838  }
  4839  
  4840  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  4841  //
  4842  // Solidity: function transfer(address _to, uint256 _tokenId) returns()
  4843  func (_KittyAuction *KittyAuctionTransactor) Transfer(opts *bind.TransactOpts, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
  4844  	return _KittyAuction.contract.Transact(opts, "transfer", _to, _tokenId)
  4845  }
  4846  
  4847  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  4848  //
  4849  // Solidity: function transfer(address _to, uint256 _tokenId) returns()
  4850  func (_KittyAuction *KittyAuctionSession) Transfer(_to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
  4851  	return _KittyAuction.Contract.Transfer(&_KittyAuction.TransactOpts, _to, _tokenId)
  4852  }
  4853  
  4854  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  4855  //
  4856  // Solidity: function transfer(address _to, uint256 _tokenId) returns()
  4857  func (_KittyAuction *KittyAuctionTransactorSession) Transfer(_to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
  4858  	return _KittyAuction.Contract.Transfer(&_KittyAuction.TransactOpts, _to, _tokenId)
  4859  }
  4860  
  4861  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  4862  //
  4863  // Solidity: function transferFrom(address _from, address _to, uint256 _tokenId) returns()
  4864  func (_KittyAuction *KittyAuctionTransactor) TransferFrom(opts *bind.TransactOpts, _from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
  4865  	return _KittyAuction.contract.Transact(opts, "transferFrom", _from, _to, _tokenId)
  4866  }
  4867  
  4868  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  4869  //
  4870  // Solidity: function transferFrom(address _from, address _to, uint256 _tokenId) returns()
  4871  func (_KittyAuction *KittyAuctionSession) TransferFrom(_from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
  4872  	return _KittyAuction.Contract.TransferFrom(&_KittyAuction.TransactOpts, _from, _to, _tokenId)
  4873  }
  4874  
  4875  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  4876  //
  4877  // Solidity: function transferFrom(address _from, address _to, uint256 _tokenId) returns()
  4878  func (_KittyAuction *KittyAuctionTransactorSession) TransferFrom(_from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
  4879  	return _KittyAuction.Contract.TransferFrom(&_KittyAuction.TransactOpts, _from, _to, _tokenId)
  4880  }
  4881  
  4882  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
  4883  //
  4884  // Solidity: function unpause() returns()
  4885  func (_KittyAuction *KittyAuctionTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) {
  4886  	return _KittyAuction.contract.Transact(opts, "unpause")
  4887  }
  4888  
  4889  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
  4890  //
  4891  // Solidity: function unpause() returns()
  4892  func (_KittyAuction *KittyAuctionSession) Unpause() (*types.Transaction, error) {
  4893  	return _KittyAuction.Contract.Unpause(&_KittyAuction.TransactOpts)
  4894  }
  4895  
  4896  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
  4897  //
  4898  // Solidity: function unpause() returns()
  4899  func (_KittyAuction *KittyAuctionTransactorSession) Unpause() (*types.Transaction, error) {
  4900  	return _KittyAuction.Contract.Unpause(&_KittyAuction.TransactOpts)
  4901  }
  4902  
  4903  // WithdrawAuctionBalances is a paid mutator transaction binding the contract method 0x91876e57.
  4904  //
  4905  // Solidity: function withdrawAuctionBalances() returns()
  4906  func (_KittyAuction *KittyAuctionTransactor) WithdrawAuctionBalances(opts *bind.TransactOpts) (*types.Transaction, error) {
  4907  	return _KittyAuction.contract.Transact(opts, "withdrawAuctionBalances")
  4908  }
  4909  
  4910  // WithdrawAuctionBalances is a paid mutator transaction binding the contract method 0x91876e57.
  4911  //
  4912  // Solidity: function withdrawAuctionBalances() returns()
  4913  func (_KittyAuction *KittyAuctionSession) WithdrawAuctionBalances() (*types.Transaction, error) {
  4914  	return _KittyAuction.Contract.WithdrawAuctionBalances(&_KittyAuction.TransactOpts)
  4915  }
  4916  
  4917  // WithdrawAuctionBalances is a paid mutator transaction binding the contract method 0x91876e57.
  4918  //
  4919  // Solidity: function withdrawAuctionBalances() returns()
  4920  func (_KittyAuction *KittyAuctionTransactorSession) WithdrawAuctionBalances() (*types.Transaction, error) {
  4921  	return _KittyAuction.Contract.WithdrawAuctionBalances(&_KittyAuction.TransactOpts)
  4922  }
  4923  
  4924  // KittyAuctionApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the KittyAuction contract.
  4925  type KittyAuctionApprovalIterator struct {
  4926  	Event *KittyAuctionApproval // Event containing the contract specifics and raw log
  4927  
  4928  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4929  	event    string              // Event name to use for unpacking event data
  4930  
  4931  	logs chan types.Log        // Log channel receiving the found contract events
  4932  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  4933  	done bool                  // Whether the subscription completed delivering logs
  4934  	fail error                 // Occurred error to stop iteration
  4935  }
  4936  
  4937  // Next advances the iterator to the subsequent event, returning whether there
  4938  // are any more events found. In case of a retrieval or parsing error, false is
  4939  // returned and Error() can be queried for the exact failure.
  4940  func (it *KittyAuctionApprovalIterator) Next() bool {
  4941  	// If the iterator failed, stop iterating
  4942  	if it.fail != nil {
  4943  		return false
  4944  	}
  4945  	// If the iterator completed, deliver directly whatever's available
  4946  	if it.done {
  4947  		select {
  4948  		case log := <-it.logs:
  4949  			it.Event = new(KittyAuctionApproval)
  4950  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4951  				it.fail = err
  4952  				return false
  4953  			}
  4954  			it.Event.Raw = log
  4955  			return true
  4956  
  4957  		default:
  4958  			return false
  4959  		}
  4960  	}
  4961  	// Iterator still in progress, wait for either a data or an error event
  4962  	select {
  4963  	case log := <-it.logs:
  4964  		it.Event = new(KittyAuctionApproval)
  4965  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4966  			it.fail = err
  4967  			return false
  4968  		}
  4969  		it.Event.Raw = log
  4970  		return true
  4971  
  4972  	case err := <-it.sub.Err():
  4973  		it.done = true
  4974  		it.fail = err
  4975  		return it.Next()
  4976  	}
  4977  }
  4978  
  4979  // Error returns any retrieval or parsing error occurred during filtering.
  4980  func (it *KittyAuctionApprovalIterator) Error() error {
  4981  	return it.fail
  4982  }
  4983  
  4984  // Close terminates the iteration process, releasing any pending underlying
  4985  // resources.
  4986  func (it *KittyAuctionApprovalIterator) Close() error {
  4987  	it.sub.Unsubscribe()
  4988  	return nil
  4989  }
  4990  
  4991  // KittyAuctionApproval represents a Approval event raised by the KittyAuction contract.
  4992  type KittyAuctionApproval struct {
  4993  	Owner    common.Address
  4994  	Approved common.Address
  4995  	TokenId  *big.Int
  4996  	Raw      types.Log // Blockchain specific contextual infos
  4997  }
  4998  
  4999  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  5000  //
  5001  // Solidity: event Approval(address owner, address approved, uint256 tokenId)
  5002  func (_KittyAuction *KittyAuctionFilterer) FilterApproval(opts *bind.FilterOpts) (*KittyAuctionApprovalIterator, error) {
  5003  
  5004  	logs, sub, err := _KittyAuction.contract.FilterLogs(opts, "Approval")
  5005  	if err != nil {
  5006  		return nil, err
  5007  	}
  5008  	return &KittyAuctionApprovalIterator{contract: _KittyAuction.contract, event: "Approval", logs: logs, sub: sub}, nil
  5009  }
  5010  
  5011  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  5012  //
  5013  // Solidity: event Approval(address owner, address approved, uint256 tokenId)
  5014  func (_KittyAuction *KittyAuctionFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *KittyAuctionApproval) (event.Subscription, error) {
  5015  
  5016  	logs, sub, err := _KittyAuction.contract.WatchLogs(opts, "Approval")
  5017  	if err != nil {
  5018  		return nil, err
  5019  	}
  5020  	return event.NewSubscription(func(quit <-chan struct{}) error {
  5021  		defer sub.Unsubscribe()
  5022  		for {
  5023  			select {
  5024  			case log := <-logs:
  5025  				// New log arrived, parse the event and forward to the user
  5026  				event := new(KittyAuctionApproval)
  5027  				if err := _KittyAuction.contract.UnpackLog(event, "Approval", log); err != nil {
  5028  					return err
  5029  				}
  5030  				event.Raw = log
  5031  
  5032  				select {
  5033  				case sink <- event:
  5034  				case err := <-sub.Err():
  5035  					return err
  5036  				case <-quit:
  5037  					return nil
  5038  				}
  5039  			case err := <-sub.Err():
  5040  				return err
  5041  			case <-quit:
  5042  				return nil
  5043  			}
  5044  		}
  5045  	}), nil
  5046  }
  5047  
  5048  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  5049  //
  5050  // Solidity: event Approval(address owner, address approved, uint256 tokenId)
  5051  func (_KittyAuction *KittyAuctionFilterer) ParseApproval(log types.Log) (*KittyAuctionApproval, error) {
  5052  	event := new(KittyAuctionApproval)
  5053  	if err := _KittyAuction.contract.UnpackLog(event, "Approval", log); err != nil {
  5054  		return nil, err
  5055  	}
  5056  	event.Raw = log
  5057  	return event, nil
  5058  }
  5059  
  5060  // KittyAuctionBirthIterator is returned from FilterBirth and is used to iterate over the raw logs and unpacked data for Birth events raised by the KittyAuction contract.
  5061  type KittyAuctionBirthIterator struct {
  5062  	Event *KittyAuctionBirth // Event containing the contract specifics and raw log
  5063  
  5064  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  5065  	event    string              // Event name to use for unpacking event data
  5066  
  5067  	logs chan types.Log        // Log channel receiving the found contract events
  5068  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  5069  	done bool                  // Whether the subscription completed delivering logs
  5070  	fail error                 // Occurred error to stop iteration
  5071  }
  5072  
  5073  // Next advances the iterator to the subsequent event, returning whether there
  5074  // are any more events found. In case of a retrieval or parsing error, false is
  5075  // returned and Error() can be queried for the exact failure.
  5076  func (it *KittyAuctionBirthIterator) Next() bool {
  5077  	// If the iterator failed, stop iterating
  5078  	if it.fail != nil {
  5079  		return false
  5080  	}
  5081  	// If the iterator completed, deliver directly whatever's available
  5082  	if it.done {
  5083  		select {
  5084  		case log := <-it.logs:
  5085  			it.Event = new(KittyAuctionBirth)
  5086  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5087  				it.fail = err
  5088  				return false
  5089  			}
  5090  			it.Event.Raw = log
  5091  			return true
  5092  
  5093  		default:
  5094  			return false
  5095  		}
  5096  	}
  5097  	// Iterator still in progress, wait for either a data or an error event
  5098  	select {
  5099  	case log := <-it.logs:
  5100  		it.Event = new(KittyAuctionBirth)
  5101  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5102  			it.fail = err
  5103  			return false
  5104  		}
  5105  		it.Event.Raw = log
  5106  		return true
  5107  
  5108  	case err := <-it.sub.Err():
  5109  		it.done = true
  5110  		it.fail = err
  5111  		return it.Next()
  5112  	}
  5113  }
  5114  
  5115  // Error returns any retrieval or parsing error occurred during filtering.
  5116  func (it *KittyAuctionBirthIterator) Error() error {
  5117  	return it.fail
  5118  }
  5119  
  5120  // Close terminates the iteration process, releasing any pending underlying
  5121  // resources.
  5122  func (it *KittyAuctionBirthIterator) Close() error {
  5123  	it.sub.Unsubscribe()
  5124  	return nil
  5125  }
  5126  
  5127  // KittyAuctionBirth represents a Birth event raised by the KittyAuction contract.
  5128  type KittyAuctionBirth struct {
  5129  	Owner    common.Address
  5130  	KittyId  *big.Int
  5131  	MatronId *big.Int
  5132  	SireId   *big.Int
  5133  	Genes    *big.Int
  5134  	Raw      types.Log // Blockchain specific contextual infos
  5135  }
  5136  
  5137  // FilterBirth is a free log retrieval operation binding the contract event 0x0a5311bd2a6608f08a180df2ee7c5946819a649b204b554bb8e39825b2c50ad5.
  5138  //
  5139  // Solidity: event Birth(address owner, uint256 kittyId, uint256 matronId, uint256 sireId, uint256 genes)
  5140  func (_KittyAuction *KittyAuctionFilterer) FilterBirth(opts *bind.FilterOpts) (*KittyAuctionBirthIterator, error) {
  5141  
  5142  	logs, sub, err := _KittyAuction.contract.FilterLogs(opts, "Birth")
  5143  	if err != nil {
  5144  		return nil, err
  5145  	}
  5146  	return &KittyAuctionBirthIterator{contract: _KittyAuction.contract, event: "Birth", logs: logs, sub: sub}, nil
  5147  }
  5148  
  5149  // WatchBirth is a free log subscription operation binding the contract event 0x0a5311bd2a6608f08a180df2ee7c5946819a649b204b554bb8e39825b2c50ad5.
  5150  //
  5151  // Solidity: event Birth(address owner, uint256 kittyId, uint256 matronId, uint256 sireId, uint256 genes)
  5152  func (_KittyAuction *KittyAuctionFilterer) WatchBirth(opts *bind.WatchOpts, sink chan<- *KittyAuctionBirth) (event.Subscription, error) {
  5153  
  5154  	logs, sub, err := _KittyAuction.contract.WatchLogs(opts, "Birth")
  5155  	if err != nil {
  5156  		return nil, err
  5157  	}
  5158  	return event.NewSubscription(func(quit <-chan struct{}) error {
  5159  		defer sub.Unsubscribe()
  5160  		for {
  5161  			select {
  5162  			case log := <-logs:
  5163  				// New log arrived, parse the event and forward to the user
  5164  				event := new(KittyAuctionBirth)
  5165  				if err := _KittyAuction.contract.UnpackLog(event, "Birth", log); err != nil {
  5166  					return err
  5167  				}
  5168  				event.Raw = log
  5169  
  5170  				select {
  5171  				case sink <- event:
  5172  				case err := <-sub.Err():
  5173  					return err
  5174  				case <-quit:
  5175  					return nil
  5176  				}
  5177  			case err := <-sub.Err():
  5178  				return err
  5179  			case <-quit:
  5180  				return nil
  5181  			}
  5182  		}
  5183  	}), nil
  5184  }
  5185  
  5186  // ParseBirth is a log parse operation binding the contract event 0x0a5311bd2a6608f08a180df2ee7c5946819a649b204b554bb8e39825b2c50ad5.
  5187  //
  5188  // Solidity: event Birth(address owner, uint256 kittyId, uint256 matronId, uint256 sireId, uint256 genes)
  5189  func (_KittyAuction *KittyAuctionFilterer) ParseBirth(log types.Log) (*KittyAuctionBirth, error) {
  5190  	event := new(KittyAuctionBirth)
  5191  	if err := _KittyAuction.contract.UnpackLog(event, "Birth", log); err != nil {
  5192  		return nil, err
  5193  	}
  5194  	event.Raw = log
  5195  	return event, nil
  5196  }
  5197  
  5198  // KittyAuctionContractUpgradeIterator is returned from FilterContractUpgrade and is used to iterate over the raw logs and unpacked data for ContractUpgrade events raised by the KittyAuction contract.
  5199  type KittyAuctionContractUpgradeIterator struct {
  5200  	Event *KittyAuctionContractUpgrade // Event containing the contract specifics and raw log
  5201  
  5202  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  5203  	event    string              // Event name to use for unpacking event data
  5204  
  5205  	logs chan types.Log        // Log channel receiving the found contract events
  5206  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  5207  	done bool                  // Whether the subscription completed delivering logs
  5208  	fail error                 // Occurred error to stop iteration
  5209  }
  5210  
  5211  // Next advances the iterator to the subsequent event, returning whether there
  5212  // are any more events found. In case of a retrieval or parsing error, false is
  5213  // returned and Error() can be queried for the exact failure.
  5214  func (it *KittyAuctionContractUpgradeIterator) Next() bool {
  5215  	// If the iterator failed, stop iterating
  5216  	if it.fail != nil {
  5217  		return false
  5218  	}
  5219  	// If the iterator completed, deliver directly whatever's available
  5220  	if it.done {
  5221  		select {
  5222  		case log := <-it.logs:
  5223  			it.Event = new(KittyAuctionContractUpgrade)
  5224  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5225  				it.fail = err
  5226  				return false
  5227  			}
  5228  			it.Event.Raw = log
  5229  			return true
  5230  
  5231  		default:
  5232  			return false
  5233  		}
  5234  	}
  5235  	// Iterator still in progress, wait for either a data or an error event
  5236  	select {
  5237  	case log := <-it.logs:
  5238  		it.Event = new(KittyAuctionContractUpgrade)
  5239  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5240  			it.fail = err
  5241  			return false
  5242  		}
  5243  		it.Event.Raw = log
  5244  		return true
  5245  
  5246  	case err := <-it.sub.Err():
  5247  		it.done = true
  5248  		it.fail = err
  5249  		return it.Next()
  5250  	}
  5251  }
  5252  
  5253  // Error returns any retrieval or parsing error occurred during filtering.
  5254  func (it *KittyAuctionContractUpgradeIterator) Error() error {
  5255  	return it.fail
  5256  }
  5257  
  5258  // Close terminates the iteration process, releasing any pending underlying
  5259  // resources.
  5260  func (it *KittyAuctionContractUpgradeIterator) Close() error {
  5261  	it.sub.Unsubscribe()
  5262  	return nil
  5263  }
  5264  
  5265  // KittyAuctionContractUpgrade represents a ContractUpgrade event raised by the KittyAuction contract.
  5266  type KittyAuctionContractUpgrade struct {
  5267  	NewContract common.Address
  5268  	Raw         types.Log // Blockchain specific contextual infos
  5269  }
  5270  
  5271  // FilterContractUpgrade is a free log retrieval operation binding the contract event 0x450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa446199305.
  5272  //
  5273  // Solidity: event ContractUpgrade(address newContract)
  5274  func (_KittyAuction *KittyAuctionFilterer) FilterContractUpgrade(opts *bind.FilterOpts) (*KittyAuctionContractUpgradeIterator, error) {
  5275  
  5276  	logs, sub, err := _KittyAuction.contract.FilterLogs(opts, "ContractUpgrade")
  5277  	if err != nil {
  5278  		return nil, err
  5279  	}
  5280  	return &KittyAuctionContractUpgradeIterator{contract: _KittyAuction.contract, event: "ContractUpgrade", logs: logs, sub: sub}, nil
  5281  }
  5282  
  5283  // WatchContractUpgrade is a free log subscription operation binding the contract event 0x450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa446199305.
  5284  //
  5285  // Solidity: event ContractUpgrade(address newContract)
  5286  func (_KittyAuction *KittyAuctionFilterer) WatchContractUpgrade(opts *bind.WatchOpts, sink chan<- *KittyAuctionContractUpgrade) (event.Subscription, error) {
  5287  
  5288  	logs, sub, err := _KittyAuction.contract.WatchLogs(opts, "ContractUpgrade")
  5289  	if err != nil {
  5290  		return nil, err
  5291  	}
  5292  	return event.NewSubscription(func(quit <-chan struct{}) error {
  5293  		defer sub.Unsubscribe()
  5294  		for {
  5295  			select {
  5296  			case log := <-logs:
  5297  				// New log arrived, parse the event and forward to the user
  5298  				event := new(KittyAuctionContractUpgrade)
  5299  				if err := _KittyAuction.contract.UnpackLog(event, "ContractUpgrade", log); err != nil {
  5300  					return err
  5301  				}
  5302  				event.Raw = log
  5303  
  5304  				select {
  5305  				case sink <- event:
  5306  				case err := <-sub.Err():
  5307  					return err
  5308  				case <-quit:
  5309  					return nil
  5310  				}
  5311  			case err := <-sub.Err():
  5312  				return err
  5313  			case <-quit:
  5314  				return nil
  5315  			}
  5316  		}
  5317  	}), nil
  5318  }
  5319  
  5320  // ParseContractUpgrade is a log parse operation binding the contract event 0x450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa446199305.
  5321  //
  5322  // Solidity: event ContractUpgrade(address newContract)
  5323  func (_KittyAuction *KittyAuctionFilterer) ParseContractUpgrade(log types.Log) (*KittyAuctionContractUpgrade, error) {
  5324  	event := new(KittyAuctionContractUpgrade)
  5325  	if err := _KittyAuction.contract.UnpackLog(event, "ContractUpgrade", log); err != nil {
  5326  		return nil, err
  5327  	}
  5328  	event.Raw = log
  5329  	return event, nil
  5330  }
  5331  
  5332  // KittyAuctionPregnantIterator is returned from FilterPregnant and is used to iterate over the raw logs and unpacked data for Pregnant events raised by the KittyAuction contract.
  5333  type KittyAuctionPregnantIterator struct {
  5334  	Event *KittyAuctionPregnant // Event containing the contract specifics and raw log
  5335  
  5336  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  5337  	event    string              // Event name to use for unpacking event data
  5338  
  5339  	logs chan types.Log        // Log channel receiving the found contract events
  5340  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  5341  	done bool                  // Whether the subscription completed delivering logs
  5342  	fail error                 // Occurred error to stop iteration
  5343  }
  5344  
  5345  // Next advances the iterator to the subsequent event, returning whether there
  5346  // are any more events found. In case of a retrieval or parsing error, false is
  5347  // returned and Error() can be queried for the exact failure.
  5348  func (it *KittyAuctionPregnantIterator) Next() bool {
  5349  	// If the iterator failed, stop iterating
  5350  	if it.fail != nil {
  5351  		return false
  5352  	}
  5353  	// If the iterator completed, deliver directly whatever's available
  5354  	if it.done {
  5355  		select {
  5356  		case log := <-it.logs:
  5357  			it.Event = new(KittyAuctionPregnant)
  5358  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5359  				it.fail = err
  5360  				return false
  5361  			}
  5362  			it.Event.Raw = log
  5363  			return true
  5364  
  5365  		default:
  5366  			return false
  5367  		}
  5368  	}
  5369  	// Iterator still in progress, wait for either a data or an error event
  5370  	select {
  5371  	case log := <-it.logs:
  5372  		it.Event = new(KittyAuctionPregnant)
  5373  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5374  			it.fail = err
  5375  			return false
  5376  		}
  5377  		it.Event.Raw = log
  5378  		return true
  5379  
  5380  	case err := <-it.sub.Err():
  5381  		it.done = true
  5382  		it.fail = err
  5383  		return it.Next()
  5384  	}
  5385  }
  5386  
  5387  // Error returns any retrieval or parsing error occurred during filtering.
  5388  func (it *KittyAuctionPregnantIterator) Error() error {
  5389  	return it.fail
  5390  }
  5391  
  5392  // Close terminates the iteration process, releasing any pending underlying
  5393  // resources.
  5394  func (it *KittyAuctionPregnantIterator) Close() error {
  5395  	it.sub.Unsubscribe()
  5396  	return nil
  5397  }
  5398  
  5399  // KittyAuctionPregnant represents a Pregnant event raised by the KittyAuction contract.
  5400  type KittyAuctionPregnant struct {
  5401  	Owner            common.Address
  5402  	MatronId         *big.Int
  5403  	SireId           *big.Int
  5404  	CooldownEndBlock *big.Int
  5405  	Raw              types.Log // Blockchain specific contextual infos
  5406  }
  5407  
  5408  // FilterPregnant is a free log retrieval operation binding the contract event 0x241ea03ca20251805084d27d4440371c34a0b85ff108f6bb5611248f73818b80.
  5409  //
  5410  // Solidity: event Pregnant(address owner, uint256 matronId, uint256 sireId, uint256 cooldownEndBlock)
  5411  func (_KittyAuction *KittyAuctionFilterer) FilterPregnant(opts *bind.FilterOpts) (*KittyAuctionPregnantIterator, error) {
  5412  
  5413  	logs, sub, err := _KittyAuction.contract.FilterLogs(opts, "Pregnant")
  5414  	if err != nil {
  5415  		return nil, err
  5416  	}
  5417  	return &KittyAuctionPregnantIterator{contract: _KittyAuction.contract, event: "Pregnant", logs: logs, sub: sub}, nil
  5418  }
  5419  
  5420  // WatchPregnant is a free log subscription operation binding the contract event 0x241ea03ca20251805084d27d4440371c34a0b85ff108f6bb5611248f73818b80.
  5421  //
  5422  // Solidity: event Pregnant(address owner, uint256 matronId, uint256 sireId, uint256 cooldownEndBlock)
  5423  func (_KittyAuction *KittyAuctionFilterer) WatchPregnant(opts *bind.WatchOpts, sink chan<- *KittyAuctionPregnant) (event.Subscription, error) {
  5424  
  5425  	logs, sub, err := _KittyAuction.contract.WatchLogs(opts, "Pregnant")
  5426  	if err != nil {
  5427  		return nil, err
  5428  	}
  5429  	return event.NewSubscription(func(quit <-chan struct{}) error {
  5430  		defer sub.Unsubscribe()
  5431  		for {
  5432  			select {
  5433  			case log := <-logs:
  5434  				// New log arrived, parse the event and forward to the user
  5435  				event := new(KittyAuctionPregnant)
  5436  				if err := _KittyAuction.contract.UnpackLog(event, "Pregnant", log); err != nil {
  5437  					return err
  5438  				}
  5439  				event.Raw = log
  5440  
  5441  				select {
  5442  				case sink <- event:
  5443  				case err := <-sub.Err():
  5444  					return err
  5445  				case <-quit:
  5446  					return nil
  5447  				}
  5448  			case err := <-sub.Err():
  5449  				return err
  5450  			case <-quit:
  5451  				return nil
  5452  			}
  5453  		}
  5454  	}), nil
  5455  }
  5456  
  5457  // ParsePregnant is a log parse operation binding the contract event 0x241ea03ca20251805084d27d4440371c34a0b85ff108f6bb5611248f73818b80.
  5458  //
  5459  // Solidity: event Pregnant(address owner, uint256 matronId, uint256 sireId, uint256 cooldownEndBlock)
  5460  func (_KittyAuction *KittyAuctionFilterer) ParsePregnant(log types.Log) (*KittyAuctionPregnant, error) {
  5461  	event := new(KittyAuctionPregnant)
  5462  	if err := _KittyAuction.contract.UnpackLog(event, "Pregnant", log); err != nil {
  5463  		return nil, err
  5464  	}
  5465  	event.Raw = log
  5466  	return event, nil
  5467  }
  5468  
  5469  // KittyAuctionTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the KittyAuction contract.
  5470  type KittyAuctionTransferIterator struct {
  5471  	Event *KittyAuctionTransfer // Event containing the contract specifics and raw log
  5472  
  5473  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  5474  	event    string              // Event name to use for unpacking event data
  5475  
  5476  	logs chan types.Log        // Log channel receiving the found contract events
  5477  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  5478  	done bool                  // Whether the subscription completed delivering logs
  5479  	fail error                 // Occurred error to stop iteration
  5480  }
  5481  
  5482  // Next advances the iterator to the subsequent event, returning whether there
  5483  // are any more events found. In case of a retrieval or parsing error, false is
  5484  // returned and Error() can be queried for the exact failure.
  5485  func (it *KittyAuctionTransferIterator) Next() bool {
  5486  	// If the iterator failed, stop iterating
  5487  	if it.fail != nil {
  5488  		return false
  5489  	}
  5490  	// If the iterator completed, deliver directly whatever's available
  5491  	if it.done {
  5492  		select {
  5493  		case log := <-it.logs:
  5494  			it.Event = new(KittyAuctionTransfer)
  5495  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5496  				it.fail = err
  5497  				return false
  5498  			}
  5499  			it.Event.Raw = log
  5500  			return true
  5501  
  5502  		default:
  5503  			return false
  5504  		}
  5505  	}
  5506  	// Iterator still in progress, wait for either a data or an error event
  5507  	select {
  5508  	case log := <-it.logs:
  5509  		it.Event = new(KittyAuctionTransfer)
  5510  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5511  			it.fail = err
  5512  			return false
  5513  		}
  5514  		it.Event.Raw = log
  5515  		return true
  5516  
  5517  	case err := <-it.sub.Err():
  5518  		it.done = true
  5519  		it.fail = err
  5520  		return it.Next()
  5521  	}
  5522  }
  5523  
  5524  // Error returns any retrieval or parsing error occurred during filtering.
  5525  func (it *KittyAuctionTransferIterator) Error() error {
  5526  	return it.fail
  5527  }
  5528  
  5529  // Close terminates the iteration process, releasing any pending underlying
  5530  // resources.
  5531  func (it *KittyAuctionTransferIterator) Close() error {
  5532  	it.sub.Unsubscribe()
  5533  	return nil
  5534  }
  5535  
  5536  // KittyAuctionTransfer represents a Transfer event raised by the KittyAuction contract.
  5537  type KittyAuctionTransfer struct {
  5538  	From    common.Address
  5539  	To      common.Address
  5540  	TokenId *big.Int
  5541  	Raw     types.Log // Blockchain specific contextual infos
  5542  }
  5543  
  5544  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  5545  //
  5546  // Solidity: event Transfer(address from, address to, uint256 tokenId)
  5547  func (_KittyAuction *KittyAuctionFilterer) FilterTransfer(opts *bind.FilterOpts) (*KittyAuctionTransferIterator, error) {
  5548  
  5549  	logs, sub, err := _KittyAuction.contract.FilterLogs(opts, "Transfer")
  5550  	if err != nil {
  5551  		return nil, err
  5552  	}
  5553  	return &KittyAuctionTransferIterator{contract: _KittyAuction.contract, event: "Transfer", logs: logs, sub: sub}, nil
  5554  }
  5555  
  5556  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  5557  //
  5558  // Solidity: event Transfer(address from, address to, uint256 tokenId)
  5559  func (_KittyAuction *KittyAuctionFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *KittyAuctionTransfer) (event.Subscription, error) {
  5560  
  5561  	logs, sub, err := _KittyAuction.contract.WatchLogs(opts, "Transfer")
  5562  	if err != nil {
  5563  		return nil, err
  5564  	}
  5565  	return event.NewSubscription(func(quit <-chan struct{}) error {
  5566  		defer sub.Unsubscribe()
  5567  		for {
  5568  			select {
  5569  			case log := <-logs:
  5570  				// New log arrived, parse the event and forward to the user
  5571  				event := new(KittyAuctionTransfer)
  5572  				if err := _KittyAuction.contract.UnpackLog(event, "Transfer", log); err != nil {
  5573  					return err
  5574  				}
  5575  				event.Raw = log
  5576  
  5577  				select {
  5578  				case sink <- event:
  5579  				case err := <-sub.Err():
  5580  					return err
  5581  				case <-quit:
  5582  					return nil
  5583  				}
  5584  			case err := <-sub.Err():
  5585  				return err
  5586  			case <-quit:
  5587  				return nil
  5588  			}
  5589  		}
  5590  	}), nil
  5591  }
  5592  
  5593  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  5594  //
  5595  // Solidity: event Transfer(address from, address to, uint256 tokenId)
  5596  func (_KittyAuction *KittyAuctionFilterer) ParseTransfer(log types.Log) (*KittyAuctionTransfer, error) {
  5597  	event := new(KittyAuctionTransfer)
  5598  	if err := _KittyAuction.contract.UnpackLog(event, "Transfer", log); err != nil {
  5599  		return nil, err
  5600  	}
  5601  	event.Raw = log
  5602  	return event, nil
  5603  }
  5604  
  5605  // KittyBaseABI is the input ABI used to generate the binding from.
  5606  const KittyBaseABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"cfoAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ceoAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"siringAuction\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newCEO\",\"type\":\"address\"}],\"name\":\"setCEO\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newCOO\",\"type\":\"address\"}],\"name\":\"setCOO\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"sireAllowedToAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"kittyIndexToApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newCFO\",\"type\":\"address\"}],\"name\":\"setCFO\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"secs\",\"type\":\"uint256\"}],\"name\":\"setSecondsPerBlock\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"secondsPerBlock\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"cooldowns\",\"outputs\":[{\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"kittyIndexToOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cooAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"saleAuction\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"kittyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"matronId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"sireId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"genes\",\"type\":\"uint256\"}],\"name\":\"Birth\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"newContract\",\"type\":\"address\"}],\"name\":\"ContractUpgrade\",\"type\":\"event\"}]"
  5607  
  5608  // KittyBaseFuncSigs maps the 4-byte function signature to its string representation.
  5609  var KittyBaseFuncSigs = map[string]string{
  5610  	"0a0f8168": "ceoAddress()",
  5611  	"0519ce79": "cfoAddress()",
  5612  	"b047fb50": "cooAddress()",
  5613  	"9d6fac6f": "cooldowns(uint256)",
  5614  	"481af3d3": "kittyIndexToApproved(uint256)",
  5615  	"a45f4bfc": "kittyIndexToOwner(uint256)",
  5616  	"8456cb59": "pause()",
  5617  	"5c975abb": "paused()",
  5618  	"e6cbe351": "saleAuction()",
  5619  	"7a7d4937": "secondsPerBlock()",
  5620  	"27d7874c": "setCEO(address)",
  5621  	"4e0a3379": "setCFO(address)",
  5622  	"2ba73c15": "setCOO(address)",
  5623  	"5663896e": "setSecondsPerBlock(uint256)",
  5624  	"46116e6f": "sireAllowedToAddress(uint256)",
  5625  	"21717ebf": "siringAuction()",
  5626  	"3f4ba83a": "unpause()",
  5627  }
  5628  
  5629  // KittyBaseBin is the compiled bytecode used for deploying new contracts.
  5630  var KittyBaseBin = "0x606060409081526002805460a060020a60ff02191690556101c090519081016040908152603c82526078602083015261012c9082015261025860608201526107086080820152610e1060a0820152611c2060c082015261384060e082015261708061010082015261e100610120820152620151806101408201526202a3006101608201526205460061018082015262093a806101a08201526100a590600390600e6100bb565b50600f60055534156100b657600080fd5b61017b565b6002830191839082156101475791602002820160005b8382111561011557835183826101000a81548163ffffffff021916908363ffffffff16021790555092602001926004016020816003010492830192600103026100d1565b80156101455782816101000a81549063ffffffff0219169055600401602081600301049283019260010302610115565b505b50610153929150610157565b5090565b61017891905b8082111561015357805463ffffffff1916815560010161015d565b90565b61067b8061018a6000396000f3006060604052600436106100f05763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630519ce7981146100f55780630a0f81681461012457806321717ebf1461013757806327d7874c1461014a5780632ba73c151461016b5780633f4ba83a1461018a57806346116e6f1461019d578063481af3d3146101b35780634e0a3379146101c95780635663896e146101e85780635c975abb146101fe5780637a7d4937146102255780638456cb591461024a5780639d6fac6f1461025d578063a45f4bfc1461028c578063b047fb50146102a2578063e6cbe351146102b5575b600080fd5b341561010057600080fd5b6101086102c8565b604051600160a060020a03909116815260200160405180910390f35b341561012f57600080fd5b6101086102d7565b341561014257600080fd5b6101086102e6565b341561015557600080fd5b610169600160a060020a03600435166102f5565b005b341561017657600080fd5b610169600160a060020a0360043516610354565b341561019557600080fd5b6101696103b3565b34156101a857600080fd5b610108600435610417565b34156101be57600080fd5b610108600435610432565b34156101d457600080fd5b610169600160a060020a036004351661044d565b34156101f357600080fd5b6101696004356104ac565b341561020957600080fd5b610211610514565b604051901515815260200160405180910390f35b341561023057600080fd5b610238610535565b60405190815260200160405180910390f35b341561025557600080fd5b61016961053b565b341561026857600080fd5b6102736004356105e9565b60405163ffffffff909116815260200160405180910390f35b341561029757600080fd5b610108600435610616565b34156102ad57600080fd5b610108610631565b34156102c057600080fd5b610108610640565b600154600160a060020a031681565b600054600160a060020a031681565b600c54600160a060020a031681565b60005433600160a060020a0390811691161461031057600080fd5b600160a060020a038116151561032557600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a0390811691161461036f57600080fd5b600160a060020a038116151561038457600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a039081169116146103ce57600080fd5b60025474010000000000000000000000000000000000000000900460ff1615156103f757600080fd5b6002805474ff000000000000000000000000000000000000000019169055565b600a60205260009081526040902054600160a060020a031681565b600960205260009081526040902054600160a060020a031681565b60005433600160a060020a0390811691161461046857600080fd5b600160a060020a038116151561047d57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60025433600160a060020a03908116911614806104d7575060005433600160a060020a039081169116145b806104f0575060015433600160a060020a039081169116145b15156104fb57600080fd5b60035463ffffffff16811061050f57600080fd5b600555565b60025474010000000000000000000000000000000000000000900460ff1681565b60055481565b60025433600160a060020a0390811691161480610566575060005433600160a060020a039081169116145b8061057f575060015433600160a060020a039081169116145b151561058a57600080fd5b60025474010000000000000000000000000000000000000000900460ff16156105b257600080fd5b6002805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600381600e81106105f657fe5b60089182820401919006600402915054906101000a900463ffffffff1681565b600760205260009081526040902054600160a060020a031681565b600254600160a060020a031681565b600b54600160a060020a0316815600a165627a7a7230582023cb3506f6d7eb9939c1071621b212edf1f9ab18a8d979c26061380aa18e32080029"
  5631  
  5632  // DeployKittyBase deploys a new Ethereum contract, binding an instance of KittyBase to it.
  5633  func DeployKittyBase(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *KittyBase, error) {
  5634  	parsed, err := abi.JSON(strings.NewReader(KittyBaseABI))
  5635  	if err != nil {
  5636  		return common.Address{}, nil, nil, err
  5637  	}
  5638  
  5639  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(KittyBaseBin), backend)
  5640  	if err != nil {
  5641  		return common.Address{}, nil, nil, err
  5642  	}
  5643  	return address, tx, &KittyBase{KittyBaseCaller: KittyBaseCaller{contract: contract}, KittyBaseTransactor: KittyBaseTransactor{contract: contract}, KittyBaseFilterer: KittyBaseFilterer{contract: contract}}, nil
  5644  }
  5645  
  5646  // KittyBase is an auto generated Go binding around an Ethereum contract.
  5647  type KittyBase struct {
  5648  	KittyBaseCaller     // Read-only binding to the contract
  5649  	KittyBaseTransactor // Write-only binding to the contract
  5650  	KittyBaseFilterer   // Log filterer for contract events
  5651  }
  5652  
  5653  // KittyBaseCaller is an auto generated read-only Go binding around an Ethereum contract.
  5654  type KittyBaseCaller struct {
  5655  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5656  }
  5657  
  5658  // KittyBaseTransactor is an auto generated write-only Go binding around an Ethereum contract.
  5659  type KittyBaseTransactor struct {
  5660  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5661  }
  5662  
  5663  // KittyBaseFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  5664  type KittyBaseFilterer struct {
  5665  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5666  }
  5667  
  5668  // KittyBaseSession is an auto generated Go binding around an Ethereum contract,
  5669  // with pre-set call and transact options.
  5670  type KittyBaseSession struct {
  5671  	Contract     *KittyBase        // Generic contract binding to set the session for
  5672  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  5673  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  5674  }
  5675  
  5676  // KittyBaseCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  5677  // with pre-set call options.
  5678  type KittyBaseCallerSession struct {
  5679  	Contract *KittyBaseCaller // Generic contract caller binding to set the session for
  5680  	CallOpts bind.CallOpts    // Call options to use throughout this session
  5681  }
  5682  
  5683  // KittyBaseTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  5684  // with pre-set transact options.
  5685  type KittyBaseTransactorSession struct {
  5686  	Contract     *KittyBaseTransactor // Generic contract transactor binding to set the session for
  5687  	TransactOpts bind.TransactOpts    // Transaction auth options to use throughout this session
  5688  }
  5689  
  5690  // KittyBaseRaw is an auto generated low-level Go binding around an Ethereum contract.
  5691  type KittyBaseRaw struct {
  5692  	Contract *KittyBase // Generic contract binding to access the raw methods on
  5693  }
  5694  
  5695  // KittyBaseCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  5696  type KittyBaseCallerRaw struct {
  5697  	Contract *KittyBaseCaller // Generic read-only contract binding to access the raw methods on
  5698  }
  5699  
  5700  // KittyBaseTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  5701  type KittyBaseTransactorRaw struct {
  5702  	Contract *KittyBaseTransactor // Generic write-only contract binding to access the raw methods on
  5703  }
  5704  
  5705  // NewKittyBase creates a new instance of KittyBase, bound to a specific deployed contract.
  5706  func NewKittyBase(address common.Address, backend bind.ContractBackend) (*KittyBase, error) {
  5707  	contract, err := bindKittyBase(address, backend, backend, backend)
  5708  	if err != nil {
  5709  		return nil, err
  5710  	}
  5711  	return &KittyBase{KittyBaseCaller: KittyBaseCaller{contract: contract}, KittyBaseTransactor: KittyBaseTransactor{contract: contract}, KittyBaseFilterer: KittyBaseFilterer{contract: contract}}, nil
  5712  }
  5713  
  5714  // NewKittyBaseCaller creates a new read-only instance of KittyBase, bound to a specific deployed contract.
  5715  func NewKittyBaseCaller(address common.Address, caller bind.ContractCaller) (*KittyBaseCaller, error) {
  5716  	contract, err := bindKittyBase(address, caller, nil, nil)
  5717  	if err != nil {
  5718  		return nil, err
  5719  	}
  5720  	return &KittyBaseCaller{contract: contract}, nil
  5721  }
  5722  
  5723  // NewKittyBaseTransactor creates a new write-only instance of KittyBase, bound to a specific deployed contract.
  5724  func NewKittyBaseTransactor(address common.Address, transactor bind.ContractTransactor) (*KittyBaseTransactor, error) {
  5725  	contract, err := bindKittyBase(address, nil, transactor, nil)
  5726  	if err != nil {
  5727  		return nil, err
  5728  	}
  5729  	return &KittyBaseTransactor{contract: contract}, nil
  5730  }
  5731  
  5732  // NewKittyBaseFilterer creates a new log filterer instance of KittyBase, bound to a specific deployed contract.
  5733  func NewKittyBaseFilterer(address common.Address, filterer bind.ContractFilterer) (*KittyBaseFilterer, error) {
  5734  	contract, err := bindKittyBase(address, nil, nil, filterer)
  5735  	if err != nil {
  5736  		return nil, err
  5737  	}
  5738  	return &KittyBaseFilterer{contract: contract}, nil
  5739  }
  5740  
  5741  // bindKittyBase binds a generic wrapper to an already deployed contract.
  5742  func bindKittyBase(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  5743  	parsed, err := abi.JSON(strings.NewReader(KittyBaseABI))
  5744  	if err != nil {
  5745  		return nil, err
  5746  	}
  5747  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  5748  }
  5749  
  5750  // Call invokes the (constant) contract method with params as input values and
  5751  // sets the output to result. The result type might be a single field for simple
  5752  // returns, a slice of interfaces for anonymous returns and a struct for named
  5753  // returns.
  5754  func (_KittyBase *KittyBaseRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  5755  	return _KittyBase.Contract.KittyBaseCaller.contract.Call(opts, result, method, params...)
  5756  }
  5757  
  5758  // Transfer initiates a plain transaction to move funds to the contract, calling
  5759  // its default method if one is available.
  5760  func (_KittyBase *KittyBaseRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  5761  	return _KittyBase.Contract.KittyBaseTransactor.contract.Transfer(opts)
  5762  }
  5763  
  5764  // Transact invokes the (paid) contract method with params as input values.
  5765  func (_KittyBase *KittyBaseRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  5766  	return _KittyBase.Contract.KittyBaseTransactor.contract.Transact(opts, method, params...)
  5767  }
  5768  
  5769  // Call invokes the (constant) contract method with params as input values and
  5770  // sets the output to result. The result type might be a single field for simple
  5771  // returns, a slice of interfaces for anonymous returns and a struct for named
  5772  // returns.
  5773  func (_KittyBase *KittyBaseCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  5774  	return _KittyBase.Contract.contract.Call(opts, result, method, params...)
  5775  }
  5776  
  5777  // Transfer initiates a plain transaction to move funds to the contract, calling
  5778  // its default method if one is available.
  5779  func (_KittyBase *KittyBaseTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  5780  	return _KittyBase.Contract.contract.Transfer(opts)
  5781  }
  5782  
  5783  // Transact invokes the (paid) contract method with params as input values.
  5784  func (_KittyBase *KittyBaseTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  5785  	return _KittyBase.Contract.contract.Transact(opts, method, params...)
  5786  }
  5787  
  5788  // CeoAddress is a free data retrieval call binding the contract method 0x0a0f8168.
  5789  //
  5790  // Solidity: function ceoAddress() view returns(address)
  5791  func (_KittyBase *KittyBaseCaller) CeoAddress(opts *bind.CallOpts) (common.Address, error) {
  5792  	var out []interface{}
  5793  	err := _KittyBase.contract.Call(opts, &out, "ceoAddress")
  5794  
  5795  	if err != nil {
  5796  		return *new(common.Address), err
  5797  	}
  5798  
  5799  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  5800  
  5801  	return out0, err
  5802  
  5803  }
  5804  
  5805  // CeoAddress is a free data retrieval call binding the contract method 0x0a0f8168.
  5806  //
  5807  // Solidity: function ceoAddress() view returns(address)
  5808  func (_KittyBase *KittyBaseSession) CeoAddress() (common.Address, error) {
  5809  	return _KittyBase.Contract.CeoAddress(&_KittyBase.CallOpts)
  5810  }
  5811  
  5812  // CeoAddress is a free data retrieval call binding the contract method 0x0a0f8168.
  5813  //
  5814  // Solidity: function ceoAddress() view returns(address)
  5815  func (_KittyBase *KittyBaseCallerSession) CeoAddress() (common.Address, error) {
  5816  	return _KittyBase.Contract.CeoAddress(&_KittyBase.CallOpts)
  5817  }
  5818  
  5819  // CfoAddress is a free data retrieval call binding the contract method 0x0519ce79.
  5820  //
  5821  // Solidity: function cfoAddress() view returns(address)
  5822  func (_KittyBase *KittyBaseCaller) CfoAddress(opts *bind.CallOpts) (common.Address, error) {
  5823  	var out []interface{}
  5824  	err := _KittyBase.contract.Call(opts, &out, "cfoAddress")
  5825  
  5826  	if err != nil {
  5827  		return *new(common.Address), err
  5828  	}
  5829  
  5830  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  5831  
  5832  	return out0, err
  5833  
  5834  }
  5835  
  5836  // CfoAddress is a free data retrieval call binding the contract method 0x0519ce79.
  5837  //
  5838  // Solidity: function cfoAddress() view returns(address)
  5839  func (_KittyBase *KittyBaseSession) CfoAddress() (common.Address, error) {
  5840  	return _KittyBase.Contract.CfoAddress(&_KittyBase.CallOpts)
  5841  }
  5842  
  5843  // CfoAddress is a free data retrieval call binding the contract method 0x0519ce79.
  5844  //
  5845  // Solidity: function cfoAddress() view returns(address)
  5846  func (_KittyBase *KittyBaseCallerSession) CfoAddress() (common.Address, error) {
  5847  	return _KittyBase.Contract.CfoAddress(&_KittyBase.CallOpts)
  5848  }
  5849  
  5850  // CooAddress is a free data retrieval call binding the contract method 0xb047fb50.
  5851  //
  5852  // Solidity: function cooAddress() view returns(address)
  5853  func (_KittyBase *KittyBaseCaller) CooAddress(opts *bind.CallOpts) (common.Address, error) {
  5854  	var out []interface{}
  5855  	err := _KittyBase.contract.Call(opts, &out, "cooAddress")
  5856  
  5857  	if err != nil {
  5858  		return *new(common.Address), err
  5859  	}
  5860  
  5861  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  5862  
  5863  	return out0, err
  5864  
  5865  }
  5866  
  5867  // CooAddress is a free data retrieval call binding the contract method 0xb047fb50.
  5868  //
  5869  // Solidity: function cooAddress() view returns(address)
  5870  func (_KittyBase *KittyBaseSession) CooAddress() (common.Address, error) {
  5871  	return _KittyBase.Contract.CooAddress(&_KittyBase.CallOpts)
  5872  }
  5873  
  5874  // CooAddress is a free data retrieval call binding the contract method 0xb047fb50.
  5875  //
  5876  // Solidity: function cooAddress() view returns(address)
  5877  func (_KittyBase *KittyBaseCallerSession) CooAddress() (common.Address, error) {
  5878  	return _KittyBase.Contract.CooAddress(&_KittyBase.CallOpts)
  5879  }
  5880  
  5881  // Cooldowns is a free data retrieval call binding the contract method 0x9d6fac6f.
  5882  //
  5883  // Solidity: function cooldowns(uint256 ) view returns(uint32)
  5884  func (_KittyBase *KittyBaseCaller) Cooldowns(opts *bind.CallOpts, arg0 *big.Int) (uint32, error) {
  5885  	var out []interface{}
  5886  	err := _KittyBase.contract.Call(opts, &out, "cooldowns", arg0)
  5887  
  5888  	if err != nil {
  5889  		return *new(uint32), err
  5890  	}
  5891  
  5892  	out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32)
  5893  
  5894  	return out0, err
  5895  
  5896  }
  5897  
  5898  // Cooldowns is a free data retrieval call binding the contract method 0x9d6fac6f.
  5899  //
  5900  // Solidity: function cooldowns(uint256 ) view returns(uint32)
  5901  func (_KittyBase *KittyBaseSession) Cooldowns(arg0 *big.Int) (uint32, error) {
  5902  	return _KittyBase.Contract.Cooldowns(&_KittyBase.CallOpts, arg0)
  5903  }
  5904  
  5905  // Cooldowns is a free data retrieval call binding the contract method 0x9d6fac6f.
  5906  //
  5907  // Solidity: function cooldowns(uint256 ) view returns(uint32)
  5908  func (_KittyBase *KittyBaseCallerSession) Cooldowns(arg0 *big.Int) (uint32, error) {
  5909  	return _KittyBase.Contract.Cooldowns(&_KittyBase.CallOpts, arg0)
  5910  }
  5911  
  5912  // KittyIndexToApproved is a free data retrieval call binding the contract method 0x481af3d3.
  5913  //
  5914  // Solidity: function kittyIndexToApproved(uint256 ) view returns(address)
  5915  func (_KittyBase *KittyBaseCaller) KittyIndexToApproved(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  5916  	var out []interface{}
  5917  	err := _KittyBase.contract.Call(opts, &out, "kittyIndexToApproved", arg0)
  5918  
  5919  	if err != nil {
  5920  		return *new(common.Address), err
  5921  	}
  5922  
  5923  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  5924  
  5925  	return out0, err
  5926  
  5927  }
  5928  
  5929  // KittyIndexToApproved is a free data retrieval call binding the contract method 0x481af3d3.
  5930  //
  5931  // Solidity: function kittyIndexToApproved(uint256 ) view returns(address)
  5932  func (_KittyBase *KittyBaseSession) KittyIndexToApproved(arg0 *big.Int) (common.Address, error) {
  5933  	return _KittyBase.Contract.KittyIndexToApproved(&_KittyBase.CallOpts, arg0)
  5934  }
  5935  
  5936  // KittyIndexToApproved is a free data retrieval call binding the contract method 0x481af3d3.
  5937  //
  5938  // Solidity: function kittyIndexToApproved(uint256 ) view returns(address)
  5939  func (_KittyBase *KittyBaseCallerSession) KittyIndexToApproved(arg0 *big.Int) (common.Address, error) {
  5940  	return _KittyBase.Contract.KittyIndexToApproved(&_KittyBase.CallOpts, arg0)
  5941  }
  5942  
  5943  // KittyIndexToOwner is a free data retrieval call binding the contract method 0xa45f4bfc.
  5944  //
  5945  // Solidity: function kittyIndexToOwner(uint256 ) view returns(address)
  5946  func (_KittyBase *KittyBaseCaller) KittyIndexToOwner(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  5947  	var out []interface{}
  5948  	err := _KittyBase.contract.Call(opts, &out, "kittyIndexToOwner", arg0)
  5949  
  5950  	if err != nil {
  5951  		return *new(common.Address), err
  5952  	}
  5953  
  5954  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  5955  
  5956  	return out0, err
  5957  
  5958  }
  5959  
  5960  // KittyIndexToOwner is a free data retrieval call binding the contract method 0xa45f4bfc.
  5961  //
  5962  // Solidity: function kittyIndexToOwner(uint256 ) view returns(address)
  5963  func (_KittyBase *KittyBaseSession) KittyIndexToOwner(arg0 *big.Int) (common.Address, error) {
  5964  	return _KittyBase.Contract.KittyIndexToOwner(&_KittyBase.CallOpts, arg0)
  5965  }
  5966  
  5967  // KittyIndexToOwner is a free data retrieval call binding the contract method 0xa45f4bfc.
  5968  //
  5969  // Solidity: function kittyIndexToOwner(uint256 ) view returns(address)
  5970  func (_KittyBase *KittyBaseCallerSession) KittyIndexToOwner(arg0 *big.Int) (common.Address, error) {
  5971  	return _KittyBase.Contract.KittyIndexToOwner(&_KittyBase.CallOpts, arg0)
  5972  }
  5973  
  5974  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
  5975  //
  5976  // Solidity: function paused() view returns(bool)
  5977  func (_KittyBase *KittyBaseCaller) Paused(opts *bind.CallOpts) (bool, error) {
  5978  	var out []interface{}
  5979  	err := _KittyBase.contract.Call(opts, &out, "paused")
  5980  
  5981  	if err != nil {
  5982  		return *new(bool), err
  5983  	}
  5984  
  5985  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  5986  
  5987  	return out0, err
  5988  
  5989  }
  5990  
  5991  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
  5992  //
  5993  // Solidity: function paused() view returns(bool)
  5994  func (_KittyBase *KittyBaseSession) Paused() (bool, error) {
  5995  	return _KittyBase.Contract.Paused(&_KittyBase.CallOpts)
  5996  }
  5997  
  5998  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
  5999  //
  6000  // Solidity: function paused() view returns(bool)
  6001  func (_KittyBase *KittyBaseCallerSession) Paused() (bool, error) {
  6002  	return _KittyBase.Contract.Paused(&_KittyBase.CallOpts)
  6003  }
  6004  
  6005  // SaleAuction is a free data retrieval call binding the contract method 0xe6cbe351.
  6006  //
  6007  // Solidity: function saleAuction() view returns(address)
  6008  func (_KittyBase *KittyBaseCaller) SaleAuction(opts *bind.CallOpts) (common.Address, error) {
  6009  	var out []interface{}
  6010  	err := _KittyBase.contract.Call(opts, &out, "saleAuction")
  6011  
  6012  	if err != nil {
  6013  		return *new(common.Address), err
  6014  	}
  6015  
  6016  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  6017  
  6018  	return out0, err
  6019  
  6020  }
  6021  
  6022  // SaleAuction is a free data retrieval call binding the contract method 0xe6cbe351.
  6023  //
  6024  // Solidity: function saleAuction() view returns(address)
  6025  func (_KittyBase *KittyBaseSession) SaleAuction() (common.Address, error) {
  6026  	return _KittyBase.Contract.SaleAuction(&_KittyBase.CallOpts)
  6027  }
  6028  
  6029  // SaleAuction is a free data retrieval call binding the contract method 0xe6cbe351.
  6030  //
  6031  // Solidity: function saleAuction() view returns(address)
  6032  func (_KittyBase *KittyBaseCallerSession) SaleAuction() (common.Address, error) {
  6033  	return _KittyBase.Contract.SaleAuction(&_KittyBase.CallOpts)
  6034  }
  6035  
  6036  // SecondsPerBlock is a free data retrieval call binding the contract method 0x7a7d4937.
  6037  //
  6038  // Solidity: function secondsPerBlock() view returns(uint256)
  6039  func (_KittyBase *KittyBaseCaller) SecondsPerBlock(opts *bind.CallOpts) (*big.Int, error) {
  6040  	var out []interface{}
  6041  	err := _KittyBase.contract.Call(opts, &out, "secondsPerBlock")
  6042  
  6043  	if err != nil {
  6044  		return *new(*big.Int), err
  6045  	}
  6046  
  6047  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  6048  
  6049  	return out0, err
  6050  
  6051  }
  6052  
  6053  // SecondsPerBlock is a free data retrieval call binding the contract method 0x7a7d4937.
  6054  //
  6055  // Solidity: function secondsPerBlock() view returns(uint256)
  6056  func (_KittyBase *KittyBaseSession) SecondsPerBlock() (*big.Int, error) {
  6057  	return _KittyBase.Contract.SecondsPerBlock(&_KittyBase.CallOpts)
  6058  }
  6059  
  6060  // SecondsPerBlock is a free data retrieval call binding the contract method 0x7a7d4937.
  6061  //
  6062  // Solidity: function secondsPerBlock() view returns(uint256)
  6063  func (_KittyBase *KittyBaseCallerSession) SecondsPerBlock() (*big.Int, error) {
  6064  	return _KittyBase.Contract.SecondsPerBlock(&_KittyBase.CallOpts)
  6065  }
  6066  
  6067  // SireAllowedToAddress is a free data retrieval call binding the contract method 0x46116e6f.
  6068  //
  6069  // Solidity: function sireAllowedToAddress(uint256 ) view returns(address)
  6070  func (_KittyBase *KittyBaseCaller) SireAllowedToAddress(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  6071  	var out []interface{}
  6072  	err := _KittyBase.contract.Call(opts, &out, "sireAllowedToAddress", arg0)
  6073  
  6074  	if err != nil {
  6075  		return *new(common.Address), err
  6076  	}
  6077  
  6078  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  6079  
  6080  	return out0, err
  6081  
  6082  }
  6083  
  6084  // SireAllowedToAddress is a free data retrieval call binding the contract method 0x46116e6f.
  6085  //
  6086  // Solidity: function sireAllowedToAddress(uint256 ) view returns(address)
  6087  func (_KittyBase *KittyBaseSession) SireAllowedToAddress(arg0 *big.Int) (common.Address, error) {
  6088  	return _KittyBase.Contract.SireAllowedToAddress(&_KittyBase.CallOpts, arg0)
  6089  }
  6090  
  6091  // SireAllowedToAddress is a free data retrieval call binding the contract method 0x46116e6f.
  6092  //
  6093  // Solidity: function sireAllowedToAddress(uint256 ) view returns(address)
  6094  func (_KittyBase *KittyBaseCallerSession) SireAllowedToAddress(arg0 *big.Int) (common.Address, error) {
  6095  	return _KittyBase.Contract.SireAllowedToAddress(&_KittyBase.CallOpts, arg0)
  6096  }
  6097  
  6098  // SiringAuction is a free data retrieval call binding the contract method 0x21717ebf.
  6099  //
  6100  // Solidity: function siringAuction() view returns(address)
  6101  func (_KittyBase *KittyBaseCaller) SiringAuction(opts *bind.CallOpts) (common.Address, error) {
  6102  	var out []interface{}
  6103  	err := _KittyBase.contract.Call(opts, &out, "siringAuction")
  6104  
  6105  	if err != nil {
  6106  		return *new(common.Address), err
  6107  	}
  6108  
  6109  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  6110  
  6111  	return out0, err
  6112  
  6113  }
  6114  
  6115  // SiringAuction is a free data retrieval call binding the contract method 0x21717ebf.
  6116  //
  6117  // Solidity: function siringAuction() view returns(address)
  6118  func (_KittyBase *KittyBaseSession) SiringAuction() (common.Address, error) {
  6119  	return _KittyBase.Contract.SiringAuction(&_KittyBase.CallOpts)
  6120  }
  6121  
  6122  // SiringAuction is a free data retrieval call binding the contract method 0x21717ebf.
  6123  //
  6124  // Solidity: function siringAuction() view returns(address)
  6125  func (_KittyBase *KittyBaseCallerSession) SiringAuction() (common.Address, error) {
  6126  	return _KittyBase.Contract.SiringAuction(&_KittyBase.CallOpts)
  6127  }
  6128  
  6129  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
  6130  //
  6131  // Solidity: function pause() returns()
  6132  func (_KittyBase *KittyBaseTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) {
  6133  	return _KittyBase.contract.Transact(opts, "pause")
  6134  }
  6135  
  6136  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
  6137  //
  6138  // Solidity: function pause() returns()
  6139  func (_KittyBase *KittyBaseSession) Pause() (*types.Transaction, error) {
  6140  	return _KittyBase.Contract.Pause(&_KittyBase.TransactOpts)
  6141  }
  6142  
  6143  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
  6144  //
  6145  // Solidity: function pause() returns()
  6146  func (_KittyBase *KittyBaseTransactorSession) Pause() (*types.Transaction, error) {
  6147  	return _KittyBase.Contract.Pause(&_KittyBase.TransactOpts)
  6148  }
  6149  
  6150  // SetCEO is a paid mutator transaction binding the contract method 0x27d7874c.
  6151  //
  6152  // Solidity: function setCEO(address _newCEO) returns()
  6153  func (_KittyBase *KittyBaseTransactor) SetCEO(opts *bind.TransactOpts, _newCEO common.Address) (*types.Transaction, error) {
  6154  	return _KittyBase.contract.Transact(opts, "setCEO", _newCEO)
  6155  }
  6156  
  6157  // SetCEO is a paid mutator transaction binding the contract method 0x27d7874c.
  6158  //
  6159  // Solidity: function setCEO(address _newCEO) returns()
  6160  func (_KittyBase *KittyBaseSession) SetCEO(_newCEO common.Address) (*types.Transaction, error) {
  6161  	return _KittyBase.Contract.SetCEO(&_KittyBase.TransactOpts, _newCEO)
  6162  }
  6163  
  6164  // SetCEO is a paid mutator transaction binding the contract method 0x27d7874c.
  6165  //
  6166  // Solidity: function setCEO(address _newCEO) returns()
  6167  func (_KittyBase *KittyBaseTransactorSession) SetCEO(_newCEO common.Address) (*types.Transaction, error) {
  6168  	return _KittyBase.Contract.SetCEO(&_KittyBase.TransactOpts, _newCEO)
  6169  }
  6170  
  6171  // SetCFO is a paid mutator transaction binding the contract method 0x4e0a3379.
  6172  //
  6173  // Solidity: function setCFO(address _newCFO) returns()
  6174  func (_KittyBase *KittyBaseTransactor) SetCFO(opts *bind.TransactOpts, _newCFO common.Address) (*types.Transaction, error) {
  6175  	return _KittyBase.contract.Transact(opts, "setCFO", _newCFO)
  6176  }
  6177  
  6178  // SetCFO is a paid mutator transaction binding the contract method 0x4e0a3379.
  6179  //
  6180  // Solidity: function setCFO(address _newCFO) returns()
  6181  func (_KittyBase *KittyBaseSession) SetCFO(_newCFO common.Address) (*types.Transaction, error) {
  6182  	return _KittyBase.Contract.SetCFO(&_KittyBase.TransactOpts, _newCFO)
  6183  }
  6184  
  6185  // SetCFO is a paid mutator transaction binding the contract method 0x4e0a3379.
  6186  //
  6187  // Solidity: function setCFO(address _newCFO) returns()
  6188  func (_KittyBase *KittyBaseTransactorSession) SetCFO(_newCFO common.Address) (*types.Transaction, error) {
  6189  	return _KittyBase.Contract.SetCFO(&_KittyBase.TransactOpts, _newCFO)
  6190  }
  6191  
  6192  // SetCOO is a paid mutator transaction binding the contract method 0x2ba73c15.
  6193  //
  6194  // Solidity: function setCOO(address _newCOO) returns()
  6195  func (_KittyBase *KittyBaseTransactor) SetCOO(opts *bind.TransactOpts, _newCOO common.Address) (*types.Transaction, error) {
  6196  	return _KittyBase.contract.Transact(opts, "setCOO", _newCOO)
  6197  }
  6198  
  6199  // SetCOO is a paid mutator transaction binding the contract method 0x2ba73c15.
  6200  //
  6201  // Solidity: function setCOO(address _newCOO) returns()
  6202  func (_KittyBase *KittyBaseSession) SetCOO(_newCOO common.Address) (*types.Transaction, error) {
  6203  	return _KittyBase.Contract.SetCOO(&_KittyBase.TransactOpts, _newCOO)
  6204  }
  6205  
  6206  // SetCOO is a paid mutator transaction binding the contract method 0x2ba73c15.
  6207  //
  6208  // Solidity: function setCOO(address _newCOO) returns()
  6209  func (_KittyBase *KittyBaseTransactorSession) SetCOO(_newCOO common.Address) (*types.Transaction, error) {
  6210  	return _KittyBase.Contract.SetCOO(&_KittyBase.TransactOpts, _newCOO)
  6211  }
  6212  
  6213  // SetSecondsPerBlock is a paid mutator transaction binding the contract method 0x5663896e.
  6214  //
  6215  // Solidity: function setSecondsPerBlock(uint256 secs) returns()
  6216  func (_KittyBase *KittyBaseTransactor) SetSecondsPerBlock(opts *bind.TransactOpts, secs *big.Int) (*types.Transaction, error) {
  6217  	return _KittyBase.contract.Transact(opts, "setSecondsPerBlock", secs)
  6218  }
  6219  
  6220  // SetSecondsPerBlock is a paid mutator transaction binding the contract method 0x5663896e.
  6221  //
  6222  // Solidity: function setSecondsPerBlock(uint256 secs) returns()
  6223  func (_KittyBase *KittyBaseSession) SetSecondsPerBlock(secs *big.Int) (*types.Transaction, error) {
  6224  	return _KittyBase.Contract.SetSecondsPerBlock(&_KittyBase.TransactOpts, secs)
  6225  }
  6226  
  6227  // SetSecondsPerBlock is a paid mutator transaction binding the contract method 0x5663896e.
  6228  //
  6229  // Solidity: function setSecondsPerBlock(uint256 secs) returns()
  6230  func (_KittyBase *KittyBaseTransactorSession) SetSecondsPerBlock(secs *big.Int) (*types.Transaction, error) {
  6231  	return _KittyBase.Contract.SetSecondsPerBlock(&_KittyBase.TransactOpts, secs)
  6232  }
  6233  
  6234  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
  6235  //
  6236  // Solidity: function unpause() returns()
  6237  func (_KittyBase *KittyBaseTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) {
  6238  	return _KittyBase.contract.Transact(opts, "unpause")
  6239  }
  6240  
  6241  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
  6242  //
  6243  // Solidity: function unpause() returns()
  6244  func (_KittyBase *KittyBaseSession) Unpause() (*types.Transaction, error) {
  6245  	return _KittyBase.Contract.Unpause(&_KittyBase.TransactOpts)
  6246  }
  6247  
  6248  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
  6249  //
  6250  // Solidity: function unpause() returns()
  6251  func (_KittyBase *KittyBaseTransactorSession) Unpause() (*types.Transaction, error) {
  6252  	return _KittyBase.Contract.Unpause(&_KittyBase.TransactOpts)
  6253  }
  6254  
  6255  // KittyBaseBirthIterator is returned from FilterBirth and is used to iterate over the raw logs and unpacked data for Birth events raised by the KittyBase contract.
  6256  type KittyBaseBirthIterator struct {
  6257  	Event *KittyBaseBirth // Event containing the contract specifics and raw log
  6258  
  6259  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  6260  	event    string              // Event name to use for unpacking event data
  6261  
  6262  	logs chan types.Log        // Log channel receiving the found contract events
  6263  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  6264  	done bool                  // Whether the subscription completed delivering logs
  6265  	fail error                 // Occurred error to stop iteration
  6266  }
  6267  
  6268  // Next advances the iterator to the subsequent event, returning whether there
  6269  // are any more events found. In case of a retrieval or parsing error, false is
  6270  // returned and Error() can be queried for the exact failure.
  6271  func (it *KittyBaseBirthIterator) Next() bool {
  6272  	// If the iterator failed, stop iterating
  6273  	if it.fail != nil {
  6274  		return false
  6275  	}
  6276  	// If the iterator completed, deliver directly whatever's available
  6277  	if it.done {
  6278  		select {
  6279  		case log := <-it.logs:
  6280  			it.Event = new(KittyBaseBirth)
  6281  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6282  				it.fail = err
  6283  				return false
  6284  			}
  6285  			it.Event.Raw = log
  6286  			return true
  6287  
  6288  		default:
  6289  			return false
  6290  		}
  6291  	}
  6292  	// Iterator still in progress, wait for either a data or an error event
  6293  	select {
  6294  	case log := <-it.logs:
  6295  		it.Event = new(KittyBaseBirth)
  6296  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6297  			it.fail = err
  6298  			return false
  6299  		}
  6300  		it.Event.Raw = log
  6301  		return true
  6302  
  6303  	case err := <-it.sub.Err():
  6304  		it.done = true
  6305  		it.fail = err
  6306  		return it.Next()
  6307  	}
  6308  }
  6309  
  6310  // Error returns any retrieval or parsing error occurred during filtering.
  6311  func (it *KittyBaseBirthIterator) Error() error {
  6312  	return it.fail
  6313  }
  6314  
  6315  // Close terminates the iteration process, releasing any pending underlying
  6316  // resources.
  6317  func (it *KittyBaseBirthIterator) Close() error {
  6318  	it.sub.Unsubscribe()
  6319  	return nil
  6320  }
  6321  
  6322  // KittyBaseBirth represents a Birth event raised by the KittyBase contract.
  6323  type KittyBaseBirth struct {
  6324  	Owner    common.Address
  6325  	KittyId  *big.Int
  6326  	MatronId *big.Int
  6327  	SireId   *big.Int
  6328  	Genes    *big.Int
  6329  	Raw      types.Log // Blockchain specific contextual infos
  6330  }
  6331  
  6332  // FilterBirth is a free log retrieval operation binding the contract event 0x0a5311bd2a6608f08a180df2ee7c5946819a649b204b554bb8e39825b2c50ad5.
  6333  //
  6334  // Solidity: event Birth(address owner, uint256 kittyId, uint256 matronId, uint256 sireId, uint256 genes)
  6335  func (_KittyBase *KittyBaseFilterer) FilterBirth(opts *bind.FilterOpts) (*KittyBaseBirthIterator, error) {
  6336  
  6337  	logs, sub, err := _KittyBase.contract.FilterLogs(opts, "Birth")
  6338  	if err != nil {
  6339  		return nil, err
  6340  	}
  6341  	return &KittyBaseBirthIterator{contract: _KittyBase.contract, event: "Birth", logs: logs, sub: sub}, nil
  6342  }
  6343  
  6344  // WatchBirth is a free log subscription operation binding the contract event 0x0a5311bd2a6608f08a180df2ee7c5946819a649b204b554bb8e39825b2c50ad5.
  6345  //
  6346  // Solidity: event Birth(address owner, uint256 kittyId, uint256 matronId, uint256 sireId, uint256 genes)
  6347  func (_KittyBase *KittyBaseFilterer) WatchBirth(opts *bind.WatchOpts, sink chan<- *KittyBaseBirth) (event.Subscription, error) {
  6348  
  6349  	logs, sub, err := _KittyBase.contract.WatchLogs(opts, "Birth")
  6350  	if err != nil {
  6351  		return nil, err
  6352  	}
  6353  	return event.NewSubscription(func(quit <-chan struct{}) error {
  6354  		defer sub.Unsubscribe()
  6355  		for {
  6356  			select {
  6357  			case log := <-logs:
  6358  				// New log arrived, parse the event and forward to the user
  6359  				event := new(KittyBaseBirth)
  6360  				if err := _KittyBase.contract.UnpackLog(event, "Birth", log); err != nil {
  6361  					return err
  6362  				}
  6363  				event.Raw = log
  6364  
  6365  				select {
  6366  				case sink <- event:
  6367  				case err := <-sub.Err():
  6368  					return err
  6369  				case <-quit:
  6370  					return nil
  6371  				}
  6372  			case err := <-sub.Err():
  6373  				return err
  6374  			case <-quit:
  6375  				return nil
  6376  			}
  6377  		}
  6378  	}), nil
  6379  }
  6380  
  6381  // ParseBirth is a log parse operation binding the contract event 0x0a5311bd2a6608f08a180df2ee7c5946819a649b204b554bb8e39825b2c50ad5.
  6382  //
  6383  // Solidity: event Birth(address owner, uint256 kittyId, uint256 matronId, uint256 sireId, uint256 genes)
  6384  func (_KittyBase *KittyBaseFilterer) ParseBirth(log types.Log) (*KittyBaseBirth, error) {
  6385  	event := new(KittyBaseBirth)
  6386  	if err := _KittyBase.contract.UnpackLog(event, "Birth", log); err != nil {
  6387  		return nil, err
  6388  	}
  6389  	event.Raw = log
  6390  	return event, nil
  6391  }
  6392  
  6393  // KittyBaseContractUpgradeIterator is returned from FilterContractUpgrade and is used to iterate over the raw logs and unpacked data for ContractUpgrade events raised by the KittyBase contract.
  6394  type KittyBaseContractUpgradeIterator struct {
  6395  	Event *KittyBaseContractUpgrade // Event containing the contract specifics and raw log
  6396  
  6397  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  6398  	event    string              // Event name to use for unpacking event data
  6399  
  6400  	logs chan types.Log        // Log channel receiving the found contract events
  6401  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  6402  	done bool                  // Whether the subscription completed delivering logs
  6403  	fail error                 // Occurred error to stop iteration
  6404  }
  6405  
  6406  // Next advances the iterator to the subsequent event, returning whether there
  6407  // are any more events found. In case of a retrieval or parsing error, false is
  6408  // returned and Error() can be queried for the exact failure.
  6409  func (it *KittyBaseContractUpgradeIterator) Next() bool {
  6410  	// If the iterator failed, stop iterating
  6411  	if it.fail != nil {
  6412  		return false
  6413  	}
  6414  	// If the iterator completed, deliver directly whatever's available
  6415  	if it.done {
  6416  		select {
  6417  		case log := <-it.logs:
  6418  			it.Event = new(KittyBaseContractUpgrade)
  6419  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6420  				it.fail = err
  6421  				return false
  6422  			}
  6423  			it.Event.Raw = log
  6424  			return true
  6425  
  6426  		default:
  6427  			return false
  6428  		}
  6429  	}
  6430  	// Iterator still in progress, wait for either a data or an error event
  6431  	select {
  6432  	case log := <-it.logs:
  6433  		it.Event = new(KittyBaseContractUpgrade)
  6434  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6435  			it.fail = err
  6436  			return false
  6437  		}
  6438  		it.Event.Raw = log
  6439  		return true
  6440  
  6441  	case err := <-it.sub.Err():
  6442  		it.done = true
  6443  		it.fail = err
  6444  		return it.Next()
  6445  	}
  6446  }
  6447  
  6448  // Error returns any retrieval or parsing error occurred during filtering.
  6449  func (it *KittyBaseContractUpgradeIterator) Error() error {
  6450  	return it.fail
  6451  }
  6452  
  6453  // Close terminates the iteration process, releasing any pending underlying
  6454  // resources.
  6455  func (it *KittyBaseContractUpgradeIterator) Close() error {
  6456  	it.sub.Unsubscribe()
  6457  	return nil
  6458  }
  6459  
  6460  // KittyBaseContractUpgrade represents a ContractUpgrade event raised by the KittyBase contract.
  6461  type KittyBaseContractUpgrade struct {
  6462  	NewContract common.Address
  6463  	Raw         types.Log // Blockchain specific contextual infos
  6464  }
  6465  
  6466  // FilterContractUpgrade is a free log retrieval operation binding the contract event 0x450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa446199305.
  6467  //
  6468  // Solidity: event ContractUpgrade(address newContract)
  6469  func (_KittyBase *KittyBaseFilterer) FilterContractUpgrade(opts *bind.FilterOpts) (*KittyBaseContractUpgradeIterator, error) {
  6470  
  6471  	logs, sub, err := _KittyBase.contract.FilterLogs(opts, "ContractUpgrade")
  6472  	if err != nil {
  6473  		return nil, err
  6474  	}
  6475  	return &KittyBaseContractUpgradeIterator{contract: _KittyBase.contract, event: "ContractUpgrade", logs: logs, sub: sub}, nil
  6476  }
  6477  
  6478  // WatchContractUpgrade is a free log subscription operation binding the contract event 0x450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa446199305.
  6479  //
  6480  // Solidity: event ContractUpgrade(address newContract)
  6481  func (_KittyBase *KittyBaseFilterer) WatchContractUpgrade(opts *bind.WatchOpts, sink chan<- *KittyBaseContractUpgrade) (event.Subscription, error) {
  6482  
  6483  	logs, sub, err := _KittyBase.contract.WatchLogs(opts, "ContractUpgrade")
  6484  	if err != nil {
  6485  		return nil, err
  6486  	}
  6487  	return event.NewSubscription(func(quit <-chan struct{}) error {
  6488  		defer sub.Unsubscribe()
  6489  		for {
  6490  			select {
  6491  			case log := <-logs:
  6492  				// New log arrived, parse the event and forward to the user
  6493  				event := new(KittyBaseContractUpgrade)
  6494  				if err := _KittyBase.contract.UnpackLog(event, "ContractUpgrade", log); err != nil {
  6495  					return err
  6496  				}
  6497  				event.Raw = log
  6498  
  6499  				select {
  6500  				case sink <- event:
  6501  				case err := <-sub.Err():
  6502  					return err
  6503  				case <-quit:
  6504  					return nil
  6505  				}
  6506  			case err := <-sub.Err():
  6507  				return err
  6508  			case <-quit:
  6509  				return nil
  6510  			}
  6511  		}
  6512  	}), nil
  6513  }
  6514  
  6515  // ParseContractUpgrade is a log parse operation binding the contract event 0x450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa446199305.
  6516  //
  6517  // Solidity: event ContractUpgrade(address newContract)
  6518  func (_KittyBase *KittyBaseFilterer) ParseContractUpgrade(log types.Log) (*KittyBaseContractUpgrade, error) {
  6519  	event := new(KittyBaseContractUpgrade)
  6520  	if err := _KittyBase.contract.UnpackLog(event, "ContractUpgrade", log); err != nil {
  6521  		return nil, err
  6522  	}
  6523  	event.Raw = log
  6524  	return event, nil
  6525  }
  6526  
  6527  // KittyBaseTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the KittyBase contract.
  6528  type KittyBaseTransferIterator struct {
  6529  	Event *KittyBaseTransfer // Event containing the contract specifics and raw log
  6530  
  6531  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  6532  	event    string              // Event name to use for unpacking event data
  6533  
  6534  	logs chan types.Log        // Log channel receiving the found contract events
  6535  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  6536  	done bool                  // Whether the subscription completed delivering logs
  6537  	fail error                 // Occurred error to stop iteration
  6538  }
  6539  
  6540  // Next advances the iterator to the subsequent event, returning whether there
  6541  // are any more events found. In case of a retrieval or parsing error, false is
  6542  // returned and Error() can be queried for the exact failure.
  6543  func (it *KittyBaseTransferIterator) Next() bool {
  6544  	// If the iterator failed, stop iterating
  6545  	if it.fail != nil {
  6546  		return false
  6547  	}
  6548  	// If the iterator completed, deliver directly whatever's available
  6549  	if it.done {
  6550  		select {
  6551  		case log := <-it.logs:
  6552  			it.Event = new(KittyBaseTransfer)
  6553  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6554  				it.fail = err
  6555  				return false
  6556  			}
  6557  			it.Event.Raw = log
  6558  			return true
  6559  
  6560  		default:
  6561  			return false
  6562  		}
  6563  	}
  6564  	// Iterator still in progress, wait for either a data or an error event
  6565  	select {
  6566  	case log := <-it.logs:
  6567  		it.Event = new(KittyBaseTransfer)
  6568  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6569  			it.fail = err
  6570  			return false
  6571  		}
  6572  		it.Event.Raw = log
  6573  		return true
  6574  
  6575  	case err := <-it.sub.Err():
  6576  		it.done = true
  6577  		it.fail = err
  6578  		return it.Next()
  6579  	}
  6580  }
  6581  
  6582  // Error returns any retrieval or parsing error occurred during filtering.
  6583  func (it *KittyBaseTransferIterator) Error() error {
  6584  	return it.fail
  6585  }
  6586  
  6587  // Close terminates the iteration process, releasing any pending underlying
  6588  // resources.
  6589  func (it *KittyBaseTransferIterator) Close() error {
  6590  	it.sub.Unsubscribe()
  6591  	return nil
  6592  }
  6593  
  6594  // KittyBaseTransfer represents a Transfer event raised by the KittyBase contract.
  6595  type KittyBaseTransfer struct {
  6596  	From    common.Address
  6597  	To      common.Address
  6598  	TokenId *big.Int
  6599  	Raw     types.Log // Blockchain specific contextual infos
  6600  }
  6601  
  6602  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  6603  //
  6604  // Solidity: event Transfer(address from, address to, uint256 tokenId)
  6605  func (_KittyBase *KittyBaseFilterer) FilterTransfer(opts *bind.FilterOpts) (*KittyBaseTransferIterator, error) {
  6606  
  6607  	logs, sub, err := _KittyBase.contract.FilterLogs(opts, "Transfer")
  6608  	if err != nil {
  6609  		return nil, err
  6610  	}
  6611  	return &KittyBaseTransferIterator{contract: _KittyBase.contract, event: "Transfer", logs: logs, sub: sub}, nil
  6612  }
  6613  
  6614  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  6615  //
  6616  // Solidity: event Transfer(address from, address to, uint256 tokenId)
  6617  func (_KittyBase *KittyBaseFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *KittyBaseTransfer) (event.Subscription, error) {
  6618  
  6619  	logs, sub, err := _KittyBase.contract.WatchLogs(opts, "Transfer")
  6620  	if err != nil {
  6621  		return nil, err
  6622  	}
  6623  	return event.NewSubscription(func(quit <-chan struct{}) error {
  6624  		defer sub.Unsubscribe()
  6625  		for {
  6626  			select {
  6627  			case log := <-logs:
  6628  				// New log arrived, parse the event and forward to the user
  6629  				event := new(KittyBaseTransfer)
  6630  				if err := _KittyBase.contract.UnpackLog(event, "Transfer", log); err != nil {
  6631  					return err
  6632  				}
  6633  				event.Raw = log
  6634  
  6635  				select {
  6636  				case sink <- event:
  6637  				case err := <-sub.Err():
  6638  					return err
  6639  				case <-quit:
  6640  					return nil
  6641  				}
  6642  			case err := <-sub.Err():
  6643  				return err
  6644  			case <-quit:
  6645  				return nil
  6646  			}
  6647  		}
  6648  	}), nil
  6649  }
  6650  
  6651  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  6652  //
  6653  // Solidity: event Transfer(address from, address to, uint256 tokenId)
  6654  func (_KittyBase *KittyBaseFilterer) ParseTransfer(log types.Log) (*KittyBaseTransfer, error) {
  6655  	event := new(KittyBaseTransfer)
  6656  	if err := _KittyBase.contract.UnpackLog(event, "Transfer", log); err != nil {
  6657  		return nil, err
  6658  	}
  6659  	event.Raw = log
  6660  	return event, nil
  6661  }
  6662  
  6663  // KittyBreedingABI is the input ABI used to generate the binding from.
  6664  const KittyBreedingABI = "[{\"constant\":true,\"inputs\":[{\"name\":\"_interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cfoAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_preferredTransport\",\"type\":\"string\"}],\"name\":\"tokenMetadata\",\"outputs\":[{\"name\":\"infoUrl\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ceoAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pregnantKitties\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_kittyId\",\"type\":\"uint256\"}],\"name\":\"isPregnant\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"siringAuction\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setGeneScienceAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newCEO\",\"type\":\"address\"}],\"name\":\"setCEO\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newCOO\",\"type\":\"address\"}],\"name\":\"setCOO\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"sireAllowedToAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_matronId\",\"type\":\"uint256\"},{\"name\":\"_sireId\",\"type\":\"uint256\"}],\"name\":\"canBreedWith\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"kittyIndexToApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"setAutoBirthFee\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_addr\",\"type\":\"address\"},{\"name\":\"_sireId\",\"type\":\"uint256\"}],\"name\":\"approveSiring\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newCFO\",\"type\":\"address\"}],\"name\":\"setCFO\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"secs\",\"type\":\"uint256\"}],\"name\":\"setSecondsPerBlock\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"count\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"secondsPerBlock\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"tokensOfOwner\",\"outputs\":[{\"name\":\"ownerTokens\",\"type\":\"uint256[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_matronId\",\"type\":\"uint256\"}],\"name\":\"giveBirth\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"cooldowns\",\"outputs\":[{\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"kittyIndexToOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cooAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"autoBirthFee\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"erc721Metadata\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_kittyId\",\"type\":\"uint256\"}],\"name\":\"isReadyToBreed\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_contractAddress\",\"type\":\"address\"}],\"name\":\"setMetadataAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"saleAuction\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"geneScience\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_matronId\",\"type\":\"uint256\"},{\"name\":\"_sireId\",\"type\":\"uint256\"}],\"name\":\"breedWithAuto\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"matronId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"sireId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"cooldownEndBlock\",\"type\":\"uint256\"}],\"name\":\"Pregnant\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"kittyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"matronId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"sireId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"genes\",\"type\":\"uint256\"}],\"name\":\"Birth\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"newContract\",\"type\":\"address\"}],\"name\":\"ContractUpgrade\",\"type\":\"event\"}]"
  6665  
  6666  // KittyBreedingFuncSigs maps the 4-byte function signature to its string representation.
  6667  var KittyBreedingFuncSigs = map[string]string{
  6668  	"095ea7b3": "approve(address,uint256)",
  6669  	"4dfff04f": "approveSiring(address,uint256)",
  6670  	"b0c35c05": "autoBirthFee()",
  6671  	"70a08231": "balanceOf(address)",
  6672  	"f7d8c883": "breedWithAuto(uint256,uint256)",
  6673  	"46d22c70": "canBreedWith(uint256,uint256)",
  6674  	"0a0f8168": "ceoAddress()",
  6675  	"0519ce79": "cfoAddress()",
  6676  	"b047fb50": "cooAddress()",
  6677  	"9d6fac6f": "cooldowns(uint256)",
  6678  	"bc4006f5": "erc721Metadata()",
  6679  	"f2b47d52": "geneScience()",
  6680  	"88c2a0bf": "giveBirth(uint256)",
  6681  	"1940a936": "isPregnant(uint256)",
  6682  	"d3e6f49f": "isReadyToBreed(uint256)",
  6683  	"481af3d3": "kittyIndexToApproved(uint256)",
  6684  	"a45f4bfc": "kittyIndexToOwner(uint256)",
  6685  	"06fdde03": "name()",
  6686  	"6352211e": "ownerOf(uint256)",
  6687  	"8456cb59": "pause()",
  6688  	"5c975abb": "paused()",
  6689  	"183a7947": "pregnantKitties()",
  6690  	"e6cbe351": "saleAuction()",
  6691  	"7a7d4937": "secondsPerBlock()",
  6692  	"4b85fd55": "setAutoBirthFee(uint256)",
  6693  	"27d7874c": "setCEO(address)",
  6694  	"4e0a3379": "setCFO(address)",
  6695  	"2ba73c15": "setCOO(address)",
  6696  	"24e7a38a": "setGeneScienceAddress(address)",
  6697  	"e17b25af": "setMetadataAddress(address)",
  6698  	"5663896e": "setSecondsPerBlock(uint256)",
  6699  	"46116e6f": "sireAllowedToAddress(uint256)",
  6700  	"21717ebf": "siringAuction()",
  6701  	"01ffc9a7": "supportsInterface(bytes4)",
  6702  	"95d89b41": "symbol()",
  6703  	"0560ff44": "tokenMetadata(uint256,string)",
  6704  	"8462151c": "tokensOfOwner(address)",
  6705  	"18160ddd": "totalSupply()",
  6706  	"a9059cbb": "transfer(address,uint256)",
  6707  	"23b872dd": "transferFrom(address,address,uint256)",
  6708  	"3f4ba83a": "unpause()",
  6709  }
  6710  
  6711  // KittyBreedingBin is the compiled bytecode used for deploying new contracts.
  6712  var KittyBreedingBin = "0x606060409081526002805460a060020a60ff02191690556101c090519081016040908152603c82526078602083015261012c9082015261025860608201526107086080820152610e1060a0820152611c2060c082015261384060e082015261708061010082015261e100610120820152620151806101408201526202a3006101608201526205460061018082015262093a806101a0820152620000a790600390600e620000ca565b50600f60055566071afd498d0000600e553415620000c457600080fd5b62000194565b6002830191839082156200015b5791602002820160005b838211156200012757835183826101000a81548163ffffffff021916908363ffffffff1602179055509260200192600401602081600301049283019260010302620000e1565b8015620001595782816101000a81549063ffffffff021916905560040160208160030104928301926001030262000127565b505b50620001699291506200016d565b5090565b6200019191905b808211156200016957805463ffffffff1916815560010162000174565b90565b6122b380620001a46000396000f3006060604052600436106101df5763ffffffff60e060020a60003504166301ffc9a781146101e45780630519ce79146102305780630560ff441461025f57806306fdde03146102f8578063095ea7b31461030b5780630a0f81681461032f57806318160ddd14610342578063183a7947146103675780631940a9361461037a57806321717ebf1461039057806323b872dd146103a357806324e7a38a146103cb57806327d7874c146103ea5780632ba73c15146104095780633f4ba83a1461042857806346116e6f1461043b57806346d22c7014610451578063481af3d31461046a5780634b85fd55146104805780634dfff04f146104965780634e0a3379146104b85780635663896e146104d75780635c975abb146104ed5780636352211e1461050057806370a08231146105165780637a7d4937146105355780638456cb59146105485780638462151c1461055b57806388c2a0bf146105cd57806395d89b41146105e35780639d6fac6f146105f6578063a45f4bfc14610625578063a9059cbb1461063b578063b047fb501461065d578063b0c35c0514610670578063bc4006f514610683578063d3e6f49f14610696578063e17b25af146106ac578063e6cbe351146106cb578063f2b47d52146106de578063f7d8c883146106f1575b600080fd5b34156101ef57600080fd5b61021c7fffffffff00000000000000000000000000000000000000000000000000000000600435166106ff565b604051901515815260200160405180910390f35b341561023b57600080fd5b610243610986565b604051600160a060020a03909116815260200160405180910390f35b341561026a57600080fd5b610281600480359060248035908101910135610995565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102bd5780820151838201526020016102a5565b50505050905090810190601f1680156102ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561030357600080fd5b610281610a65565b341561031657600080fd5b61032d600160a060020a0360043516602435610a9c565b005b341561033a57600080fd5b610243610b26565b341561034d57600080fd5b610355610b35565b60405190815260200160405180910390f35b341561037257600080fd5b610355610b40565b341561038557600080fd5b61021c600435610b46565b341561039b57600080fd5b610243610b8b565b34156103ae57600080fd5b61032d600160a060020a0360043581169060243516604435610b9a565b34156103d657600080fd5b61032d600160a060020a0360043516610c21565b34156103f557600080fd5b61032d600160a060020a0360043516610cc1565b341561041457600080fd5b61032d600160a060020a0360043516610d13565b341561043357600080fd5b61032d610d65565b341561044657600080fd5b610243600435610db8565b341561045c57600080fd5b61021c600435602435610dd3565b341561047557600080fd5b610243600435610e53565b341561048b57600080fd5b61032d600435610e6e565b34156104a157600080fd5b61032d600160a060020a0360043516602435610e8e565b34156104c357600080fd5b61032d600160a060020a0360043516610ee8565b34156104e257600080fd5b61032d600435610f3a565b34156104f857600080fd5b61021c610fa2565b341561050b57600080fd5b610243600435610fb2565b341561052157600080fd5b610355600160a060020a0360043516610fd6565b341561054057600080fd5b610355610ff1565b341561055357600080fd5b61032d610ff7565b341561056657600080fd5b61057a600160a060020a0360043516611083565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156105b95780820151838201526020016105a1565b505050509050019250505060405180910390f35b34156105d857600080fd5b610355600435611164565b34156105ee57600080fd5b610281611427565b341561060157600080fd5b61060c60043561145e565b60405163ffffffff909116815260200160405180910390f35b341561063057600080fd5b61024360043561148b565b341561064657600080fd5b61032d600160a060020a03600435166024356114a6565b341561066857600080fd5b61024361154d565b341561067b57600080fd5b61035561155c565b341561068e57600080fd5b610243611562565b34156106a157600080fd5b61021c600435611571565b34156106b757600080fd5b61032d600160a060020a036004351661163a565b34156106d657600080fd5b610243611677565b34156106e957600080fd5b610243611686565b61032d600435602435611695565b60006040517f737570706f727473496e7465726661636528627974657334290000000000000081526019016040518091039020600160e060020a03191682600160e060020a031916148061097e57506040517f746f6b656e4d657461646174612875696e743235362c737472696e67290000008152601d0160405180910390206040517f746f6b656e734f664f776e657228616464726573732900000000000000000000815260160160405180910390206040517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f7432353629000000000000000000000000000000000000000000000000000000602082015260250160405180910390206040517f7472616e7366657228616464726573732c75696e743235362900000000000000815260190160405180910390206040517f617070726f766528616464726573732c75696e74323536290000000000000000815260180160405180910390206040517f6f776e65724f662875696e743235362900000000000000000000000000000000815260100160405180910390206040517f62616c616e63654f662861646472657373290000000000000000000000000000815260120160405180910390206040517f746f74616c537570706c792829000000000000000000000000000000000000008152600d0160405180910390206040517f73796d626f6c2829000000000000000000000000000000000000000000000000815260080160405180910390206040517f6e616d652829000000000000000000000000000000000000000000000000000081526006016040518091039020181818181818181818600160e060020a03191682600160e060020a031916145b90505b919050565b600154600160a060020a031681565b61099d6121c0565b6109a56121d2565b600d54600090600160a060020a031615156109bf57600080fd5b600d54600160a060020a031663cb4799f287878760405160e060020a63ffffffff861602815260048101848152604060248301908152604483018490529091606401848480828437820191505094505050505060a060405180830381600087803b1515610a2b57600080fd5b5af11515610a3857600080fd5b50505060405180608001805160209091016040529092509050610a5b828261188d565b9695505050505050565b60408051908101604052600d81527f43727970746f4b69747469657300000000000000000000000000000000000000602082015281565b60025460a060020a900460ff1615610ab357600080fd5b610abd33826118e2565b1515610ac857600080fd5b610ad28183611902565b7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925338383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a15050565b600054600160a060020a031681565b600654600019015b90565b600f5481565b6000808211610b5457600080fd5b6006805483908110610b6257fe5b600091825260209091206002909102016001015460c060020a900463ffffffff16151592915050565b600c54600160a060020a031681565b60025460a060020a900460ff1615610bb157600080fd5b600160a060020a0382161515610bc657600080fd5b30600160a060020a031682600160a060020a031614151515610be757600080fd5b610bf13382611930565b1515610bfc57600080fd5b610c0683826118e2565b1515610c1157600080fd5b610c1c838383611950565b505050565b6000805433600160a060020a03908116911614610c3d57600080fd5b5080600160a060020a0381166354c15b826040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610c7c57600080fd5b5af11515610c8957600080fd5b505050604051805190501515610c9e57600080fd5b60108054600160a060020a031916600160a060020a039290921691909117905550565b60005433600160a060020a03908116911614610cdc57600080fd5b600160a060020a0381161515610cf157600080fd5b60008054600160a060020a031916600160a060020a0392909216919091179055565b60005433600160a060020a03908116911614610d2e57600080fd5b600160a060020a0381161515610d4357600080fd5b60028054600160a060020a031916600160a060020a0392909216919091179055565b60005433600160a060020a03908116911614610d8057600080fd5b60025460a060020a900460ff161515610d9857600080fd5b6002805474ff000000000000000000000000000000000000000019169055565b600a60205260009081526040902054600160a060020a031681565b60008080808511610de357600080fd5b60008411610df057600080fd5b6006805486908110610dfe57fe5b90600052602060002090600202019150600684815481101515610e1d57fe5b90600052602060002090600202019050610e3982868387611a38565b8015610e4a5750610e4a8486611bb8565b95945050505050565b600960205260009081526040902054600160a060020a031681565b60025433600160a060020a03908116911614610e8957600080fd5b600e55565b60025460a060020a900460ff1615610ea557600080fd5b610eaf33826118e2565b1515610eba57600080fd5b6000908152600a602052604090208054600160a060020a031916600160a060020a0392909216919091179055565b60005433600160a060020a03908116911614610f0357600080fd5b600160a060020a0381161515610f1857600080fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60025433600160a060020a0390811691161480610f65575060005433600160a060020a039081169116145b80610f7e575060015433600160a060020a039081169116145b1515610f8957600080fd5b60035463ffffffff168110610f9d57600080fd5b600555565b60025460a060020a900460ff1681565b600081815260076020526040902054600160a060020a031680151561098157600080fd5b600160a060020a031660009081526008602052604090205490565b60055481565b60025433600160a060020a0390811691161480611022575060005433600160a060020a039081169116145b8061103b575060015433600160a060020a039081169116145b151561104657600080fd5b60025460a060020a900460ff161561105d57600080fd5b6002805474ff0000000000000000000000000000000000000000191660a060020a179055565b61108b6121c0565b60006110956121c0565b60008060006110a387610fd6565b94508415156110d35760006040518059106110bb5750595b9080825280602002602001820160405250955061115a565b846040518059106110e15750595b908082528060200260200182016040525093506110fc610b35565b925060009150600190505b82811161115657600081815260076020526040902054600160a060020a038881169116141561114e578084838151811061113d57fe5b602090810290910101526001909101905b600101611107565b8395505b5050505050919050565b600080600080600080600080600260149054906101000a900460ff1615151561118c57600080fd5b600680548a90811061119a57fe5b60009182526020909120600290910201600181015490975067ffffffffffffffff1615156111c757600080fd5b61125c8761010060405190810160409081528254825260019092015467ffffffffffffffff8082166020840152680100000000000000008204169282019290925263ffffffff608060020a83048116606083015260a060020a83048116608083015260c060020a83041660a082015261ffff60e060020a8304811660c083015260f060020a90920490911660e0820152611c0d565b151561126757600080fd5b60018701546006805460c060020a90920463ffffffff169750908790811061128b57fe5b600091825260209091206001808a015460029093029091019081015490965061ffff60f060020a928390048116965091900416849011156112d957600185015460f060020a900461ffff1693505b6010548754865460018a0154600160a060020a0390931692630d9f5aed92919068010000000000000000900467ffffffffffffffff166000190160405160e060020a63ffffffff86160281526004810193909352602483019190915267ffffffffffffffff166044820152606401602060405180830381600087803b151561136057600080fd5b5af1151561136d57600080fd5b505050604051805160008b81526007602052604090205460018a810154929650600160a060020a0390911694506113bc92508b9160c060020a900463ffffffff1690870161ffff168686611c45565b6001880180547bffffffff00000000000000000000000000000000000000000000000019169055600f8054600019019055600e54909150600160a060020a0333169080156108fc0290604051600060405180830381858888f150939c9b505050505050505050505050565b60408051908101604052600281527f434b000000000000000000000000000000000000000000000000000000000000602082015281565b600381600e811061146b57fe5b60089182820401919006600402915054906101000a900463ffffffff1681565b600760205260009081526040902054600160a060020a031681565b60025460a060020a900460ff16156114bd57600080fd5b600160a060020a03821615156114d257600080fd5b30600160a060020a031682600160a060020a0316141515156114f357600080fd5b600b54600160a060020a038381169116141561150e57600080fd5b600c54600160a060020a038381169116141561152957600080fd5b61153333826118e2565b151561153e57600080fd5b611549338383611950565b5050565b600254600160a060020a031681565b600e5481565b600d54600160a060020a031681565b60008080831161158057600080fd5b600680548490811061158e57fe5b906000526020600020906002020190506116338161010060405190810160409081528254825260019092015467ffffffffffffffff8082166020840152680100000000000000008204169282019290925263ffffffff608060020a83048116606083015260a060020a83048116608083015260c060020a83041660a082015261ffff60e060020a8304811660c083015260f060020a90920490911660e0820152611ef1565b9392505050565b60005433600160a060020a0390811691161461165557600080fd5b600d8054600160a060020a031916600160a060020a0392909216919091179055565b600b54600160a060020a031681565b601054600160a060020a031681565b600254600090819060a060020a900460ff16156116b157600080fd5b600e543410156116c057600080fd5b6116ca33856118e2565b15156116d557600080fd5b6116df8385611bb8565b15156116ea57600080fd5b60068054859081106116f857fe5b9060005260206000209060020201915061179d8261010060405190810160409081528254825260019092015467ffffffffffffffff8082166020840152680100000000000000008204169282019290925263ffffffff608060020a83048116606083015260a060020a83048116608083015260c060020a83041660a082015261ffff60e060020a8304811660c083015260f060020a90920490911660e0820152611ef1565b15156117a857600080fd5b60068054849081106117b657fe5b9060005260206000209060020201905061185b8161010060405190810160409081528254825260019092015467ffffffffffffffff8082166020840152680100000000000000008204169282019290925263ffffffff608060020a83048116606083015260a060020a83048116608083015260c060020a83041660a082015261ffff60e060020a8304811660c083015260f060020a90920490911660e0820152611ef1565b151561186657600080fd5b61187282858386611a38565b151561187d57600080fd5b6118878484611f28565b50505050565b6118956121c0565b61189d6121c0565b600080846040518059106118ae5750595b818152601f19601f83011681016020016040529050925050602082019050846118d8828287612092565b5090949350505050565b600090815260076020526040902054600160a060020a0391821691161490565b6000918252600960205260409091208054600160a060020a031916600160a060020a03909216919091179055565b600090815260096020526040902054600160a060020a0391821691161490565b600160a060020a03808316600081815260086020908152604080832080546001019055858352600790915290208054600160a060020a03191690911790558316156119e357600160a060020a03831660009081526008602090815260408083208054600019019055838352600a82528083208054600160a060020a03199081169091556009909252909120805490911690555b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a1505050565b600081841415611a4a57506000611bb0565b6001850154608060020a900463ffffffff16821480611a795750600185015460a060020a900463ffffffff1682145b15611a8657506000611bb0565b6001830154608060020a900463ffffffff16841480611ab55750600183015460a060020a900463ffffffff1684145b15611ac257506000611bb0565b6001830154608060020a900463ffffffff161580611aef57506001850154608060020a900463ffffffff16155b15611afc57506001611bb0565b60018581015490840154608060020a9182900463ffffffff90811692909104161480611b47575060018086015490840154608060020a900463ffffffff90811660a060020a90920416145b15611b5457506000611bb0565b6001808601549084015460a060020a900463ffffffff908116608060020a909204161480611b9f57506001858101549084015460a060020a9182900463ffffffff9081169290910416145b15611bac57506000611bb0565b5060015b949350505050565b6000818152600760205260408082205484835290822054600160a060020a03918216911680821480610e4a57506000858152600a6020526040902054600160a060020a03908116908316149250505092915050565b60008160a0015163ffffffff161580159061097e57504367ffffffffffffffff16826040015167ffffffffffffffff16111592915050565b600080611c506121fb565b600063ffffffff89168914611c6457600080fd5b63ffffffff88168814611c7657600080fd5b61ffff87168714611c8657600080fd5b600287049250600d8361ffff161115611c9e57600d92505b610100604051908101604090815287825267ffffffffffffffff42166020830152600090820181905263ffffffff808c1660608401528a16608083015260a082015261ffff80851660c0830152881660e082015260068054919350600191808301611d09838261223f565b6000928352602090922085916002020181518155602082015160018201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560408201518160010160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060608201518160010160106101000a81548163ffffffff021916908363ffffffff16021790555060808201518160010160146101000a81548163ffffffff021916908363ffffffff16021790555060a08201518160010160186101000a81548163ffffffff021916908363ffffffff16021790555060c082015181600101601c6101000a81548161ffff021916908361ffff16021790555060e08201516001909101805461ffff9290921660f060020a027dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092169190911790555003905063ffffffff81168114611e6457600080fd5b7f0a5311bd2a6608f08a180df2ee7c5946819a649b204b554bb8e39825b2c50ad58582846060015163ffffffff16856080015163ffffffff168651604051600160a060020a03909516855260208501939093526040808501929092526060840152608083019190915260a0909101905180910390a1611ee560008683611950565b98975050505050505050565b60008160a0015163ffffffff1615801561097e57504367ffffffffffffffff16826040015167ffffffffffffffff16111592915050565b600080600683815481101515611f3a57fe5b90600052602060002090600202019150600684815481101515611f5957fe5b600091825260209091206002909102016001810180547bffffffff000000000000000000000000000000000000000000000000191660c060020a63ffffffff8716021790559050611fa9826120d7565b611fb2816120d7565b6000848152600a602090815260408083208054600160a060020a031990811690915586845281842080549091169055600f8054600190810190915587845260079092529182902054908301547f241ea03ca20251805084d27d4440371c34a0b85ff108f6bb5611248f73818b8092600160a060020a0390921691879187916801000000000000000090910467ffffffffffffffff1690518085600160a060020a0316600160a060020a031681526020018481526020018381526020018267ffffffffffffffff16815260200194505050505060405180910390a150505050565b60005b602082106120b85782518452602084019350602083019250602082039150612095565b6001826020036101000a03905080198351168185511617909352505050565b600554600182015443919060039060e060020a900461ffff16600e81106120fa57fe5b600891828204019190066004029054906101000a900463ffffffff1663ffffffff1681151561212557fe5b6001840180546fffffffffffffffff0000000000000000191668010000000000000000939092049390930167ffffffffffffffff16919091021790819055600d60e060020a90910461ffff1610156121bd576001818101805461ffff60e060020a8083048216909401169092027fffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092169190911790555b50565b60206040519081016040526000815290565b60806040519081016040526004815b600081526000199190910190602001816121e15790505090565b6101006040519081016040908152600080835260208301819052908201819052606082018190526080820181905260a0820181905260c0820181905260e082015290565b815481835581811511610c1c57600083815260209020610c1c91610b3d9160029182028101918502015b808211156122835760008082556001820155600201612269565b50905600a165627a7a723058205d71dc99559f427637552a755156c88aa2618886db2bfe0b595eb2e57ab3a2c60029"
  6713  
  6714  // DeployKittyBreeding deploys a new Ethereum contract, binding an instance of KittyBreeding to it.
  6715  func DeployKittyBreeding(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *KittyBreeding, error) {
  6716  	parsed, err := abi.JSON(strings.NewReader(KittyBreedingABI))
  6717  	if err != nil {
  6718  		return common.Address{}, nil, nil, err
  6719  	}
  6720  
  6721  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(KittyBreedingBin), backend)
  6722  	if err != nil {
  6723  		return common.Address{}, nil, nil, err
  6724  	}
  6725  	return address, tx, &KittyBreeding{KittyBreedingCaller: KittyBreedingCaller{contract: contract}, KittyBreedingTransactor: KittyBreedingTransactor{contract: contract}, KittyBreedingFilterer: KittyBreedingFilterer{contract: contract}}, nil
  6726  }
  6727  
  6728  // KittyBreeding is an auto generated Go binding around an Ethereum contract.
  6729  type KittyBreeding struct {
  6730  	KittyBreedingCaller     // Read-only binding to the contract
  6731  	KittyBreedingTransactor // Write-only binding to the contract
  6732  	KittyBreedingFilterer   // Log filterer for contract events
  6733  }
  6734  
  6735  // KittyBreedingCaller is an auto generated read-only Go binding around an Ethereum contract.
  6736  type KittyBreedingCaller struct {
  6737  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  6738  }
  6739  
  6740  // KittyBreedingTransactor is an auto generated write-only Go binding around an Ethereum contract.
  6741  type KittyBreedingTransactor struct {
  6742  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  6743  }
  6744  
  6745  // KittyBreedingFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  6746  type KittyBreedingFilterer struct {
  6747  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  6748  }
  6749  
  6750  // KittyBreedingSession is an auto generated Go binding around an Ethereum contract,
  6751  // with pre-set call and transact options.
  6752  type KittyBreedingSession struct {
  6753  	Contract     *KittyBreeding    // Generic contract binding to set the session for
  6754  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  6755  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  6756  }
  6757  
  6758  // KittyBreedingCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  6759  // with pre-set call options.
  6760  type KittyBreedingCallerSession struct {
  6761  	Contract *KittyBreedingCaller // Generic contract caller binding to set the session for
  6762  	CallOpts bind.CallOpts        // Call options to use throughout this session
  6763  }
  6764  
  6765  // KittyBreedingTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  6766  // with pre-set transact options.
  6767  type KittyBreedingTransactorSession struct {
  6768  	Contract     *KittyBreedingTransactor // Generic contract transactor binding to set the session for
  6769  	TransactOpts bind.TransactOpts        // Transaction auth options to use throughout this session
  6770  }
  6771  
  6772  // KittyBreedingRaw is an auto generated low-level Go binding around an Ethereum contract.
  6773  type KittyBreedingRaw struct {
  6774  	Contract *KittyBreeding // Generic contract binding to access the raw methods on
  6775  }
  6776  
  6777  // KittyBreedingCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  6778  type KittyBreedingCallerRaw struct {
  6779  	Contract *KittyBreedingCaller // Generic read-only contract binding to access the raw methods on
  6780  }
  6781  
  6782  // KittyBreedingTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  6783  type KittyBreedingTransactorRaw struct {
  6784  	Contract *KittyBreedingTransactor // Generic write-only contract binding to access the raw methods on
  6785  }
  6786  
  6787  // NewKittyBreeding creates a new instance of KittyBreeding, bound to a specific deployed contract.
  6788  func NewKittyBreeding(address common.Address, backend bind.ContractBackend) (*KittyBreeding, error) {
  6789  	contract, err := bindKittyBreeding(address, backend, backend, backend)
  6790  	if err != nil {
  6791  		return nil, err
  6792  	}
  6793  	return &KittyBreeding{KittyBreedingCaller: KittyBreedingCaller{contract: contract}, KittyBreedingTransactor: KittyBreedingTransactor{contract: contract}, KittyBreedingFilterer: KittyBreedingFilterer{contract: contract}}, nil
  6794  }
  6795  
  6796  // NewKittyBreedingCaller creates a new read-only instance of KittyBreeding, bound to a specific deployed contract.
  6797  func NewKittyBreedingCaller(address common.Address, caller bind.ContractCaller) (*KittyBreedingCaller, error) {
  6798  	contract, err := bindKittyBreeding(address, caller, nil, nil)
  6799  	if err != nil {
  6800  		return nil, err
  6801  	}
  6802  	return &KittyBreedingCaller{contract: contract}, nil
  6803  }
  6804  
  6805  // NewKittyBreedingTransactor creates a new write-only instance of KittyBreeding, bound to a specific deployed contract.
  6806  func NewKittyBreedingTransactor(address common.Address, transactor bind.ContractTransactor) (*KittyBreedingTransactor, error) {
  6807  	contract, err := bindKittyBreeding(address, nil, transactor, nil)
  6808  	if err != nil {
  6809  		return nil, err
  6810  	}
  6811  	return &KittyBreedingTransactor{contract: contract}, nil
  6812  }
  6813  
  6814  // NewKittyBreedingFilterer creates a new log filterer instance of KittyBreeding, bound to a specific deployed contract.
  6815  func NewKittyBreedingFilterer(address common.Address, filterer bind.ContractFilterer) (*KittyBreedingFilterer, error) {
  6816  	contract, err := bindKittyBreeding(address, nil, nil, filterer)
  6817  	if err != nil {
  6818  		return nil, err
  6819  	}
  6820  	return &KittyBreedingFilterer{contract: contract}, nil
  6821  }
  6822  
  6823  // bindKittyBreeding binds a generic wrapper to an already deployed contract.
  6824  func bindKittyBreeding(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  6825  	parsed, err := abi.JSON(strings.NewReader(KittyBreedingABI))
  6826  	if err != nil {
  6827  		return nil, err
  6828  	}
  6829  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  6830  }
  6831  
  6832  // Call invokes the (constant) contract method with params as input values and
  6833  // sets the output to result. The result type might be a single field for simple
  6834  // returns, a slice of interfaces for anonymous returns and a struct for named
  6835  // returns.
  6836  func (_KittyBreeding *KittyBreedingRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  6837  	return _KittyBreeding.Contract.KittyBreedingCaller.contract.Call(opts, result, method, params...)
  6838  }
  6839  
  6840  // Transfer initiates a plain transaction to move funds to the contract, calling
  6841  // its default method if one is available.
  6842  func (_KittyBreeding *KittyBreedingRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  6843  	return _KittyBreeding.Contract.KittyBreedingTransactor.contract.Transfer(opts)
  6844  }
  6845  
  6846  // Transact invokes the (paid) contract method with params as input values.
  6847  func (_KittyBreeding *KittyBreedingRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  6848  	return _KittyBreeding.Contract.KittyBreedingTransactor.contract.Transact(opts, method, params...)
  6849  }
  6850  
  6851  // Call invokes the (constant) contract method with params as input values and
  6852  // sets the output to result. The result type might be a single field for simple
  6853  // returns, a slice of interfaces for anonymous returns and a struct for named
  6854  // returns.
  6855  func (_KittyBreeding *KittyBreedingCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  6856  	return _KittyBreeding.Contract.contract.Call(opts, result, method, params...)
  6857  }
  6858  
  6859  // Transfer initiates a plain transaction to move funds to the contract, calling
  6860  // its default method if one is available.
  6861  func (_KittyBreeding *KittyBreedingTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  6862  	return _KittyBreeding.Contract.contract.Transfer(opts)
  6863  }
  6864  
  6865  // Transact invokes the (paid) contract method with params as input values.
  6866  func (_KittyBreeding *KittyBreedingTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  6867  	return _KittyBreeding.Contract.contract.Transact(opts, method, params...)
  6868  }
  6869  
  6870  // AutoBirthFee is a free data retrieval call binding the contract method 0xb0c35c05.
  6871  //
  6872  // Solidity: function autoBirthFee() view returns(uint256)
  6873  func (_KittyBreeding *KittyBreedingCaller) AutoBirthFee(opts *bind.CallOpts) (*big.Int, error) {
  6874  	var out []interface{}
  6875  	err := _KittyBreeding.contract.Call(opts, &out, "autoBirthFee")
  6876  
  6877  	if err != nil {
  6878  		return *new(*big.Int), err
  6879  	}
  6880  
  6881  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  6882  
  6883  	return out0, err
  6884  
  6885  }
  6886  
  6887  // AutoBirthFee is a free data retrieval call binding the contract method 0xb0c35c05.
  6888  //
  6889  // Solidity: function autoBirthFee() view returns(uint256)
  6890  func (_KittyBreeding *KittyBreedingSession) AutoBirthFee() (*big.Int, error) {
  6891  	return _KittyBreeding.Contract.AutoBirthFee(&_KittyBreeding.CallOpts)
  6892  }
  6893  
  6894  // AutoBirthFee is a free data retrieval call binding the contract method 0xb0c35c05.
  6895  //
  6896  // Solidity: function autoBirthFee() view returns(uint256)
  6897  func (_KittyBreeding *KittyBreedingCallerSession) AutoBirthFee() (*big.Int, error) {
  6898  	return _KittyBreeding.Contract.AutoBirthFee(&_KittyBreeding.CallOpts)
  6899  }
  6900  
  6901  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  6902  //
  6903  // Solidity: function balanceOf(address _owner) view returns(uint256 count)
  6904  func (_KittyBreeding *KittyBreedingCaller) BalanceOf(opts *bind.CallOpts, _owner common.Address) (*big.Int, error) {
  6905  	var out []interface{}
  6906  	err := _KittyBreeding.contract.Call(opts, &out, "balanceOf", _owner)
  6907  
  6908  	if err != nil {
  6909  		return *new(*big.Int), err
  6910  	}
  6911  
  6912  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  6913  
  6914  	return out0, err
  6915  
  6916  }
  6917  
  6918  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  6919  //
  6920  // Solidity: function balanceOf(address _owner) view returns(uint256 count)
  6921  func (_KittyBreeding *KittyBreedingSession) BalanceOf(_owner common.Address) (*big.Int, error) {
  6922  	return _KittyBreeding.Contract.BalanceOf(&_KittyBreeding.CallOpts, _owner)
  6923  }
  6924  
  6925  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  6926  //
  6927  // Solidity: function balanceOf(address _owner) view returns(uint256 count)
  6928  func (_KittyBreeding *KittyBreedingCallerSession) BalanceOf(_owner common.Address) (*big.Int, error) {
  6929  	return _KittyBreeding.Contract.BalanceOf(&_KittyBreeding.CallOpts, _owner)
  6930  }
  6931  
  6932  // CanBreedWith is a free data retrieval call binding the contract method 0x46d22c70.
  6933  //
  6934  // Solidity: function canBreedWith(uint256 _matronId, uint256 _sireId) view returns(bool)
  6935  func (_KittyBreeding *KittyBreedingCaller) CanBreedWith(opts *bind.CallOpts, _matronId *big.Int, _sireId *big.Int) (bool, error) {
  6936  	var out []interface{}
  6937  	err := _KittyBreeding.contract.Call(opts, &out, "canBreedWith", _matronId, _sireId)
  6938  
  6939  	if err != nil {
  6940  		return *new(bool), err
  6941  	}
  6942  
  6943  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  6944  
  6945  	return out0, err
  6946  
  6947  }
  6948  
  6949  // CanBreedWith is a free data retrieval call binding the contract method 0x46d22c70.
  6950  //
  6951  // Solidity: function canBreedWith(uint256 _matronId, uint256 _sireId) view returns(bool)
  6952  func (_KittyBreeding *KittyBreedingSession) CanBreedWith(_matronId *big.Int, _sireId *big.Int) (bool, error) {
  6953  	return _KittyBreeding.Contract.CanBreedWith(&_KittyBreeding.CallOpts, _matronId, _sireId)
  6954  }
  6955  
  6956  // CanBreedWith is a free data retrieval call binding the contract method 0x46d22c70.
  6957  //
  6958  // Solidity: function canBreedWith(uint256 _matronId, uint256 _sireId) view returns(bool)
  6959  func (_KittyBreeding *KittyBreedingCallerSession) CanBreedWith(_matronId *big.Int, _sireId *big.Int) (bool, error) {
  6960  	return _KittyBreeding.Contract.CanBreedWith(&_KittyBreeding.CallOpts, _matronId, _sireId)
  6961  }
  6962  
  6963  // CeoAddress is a free data retrieval call binding the contract method 0x0a0f8168.
  6964  //
  6965  // Solidity: function ceoAddress() view returns(address)
  6966  func (_KittyBreeding *KittyBreedingCaller) CeoAddress(opts *bind.CallOpts) (common.Address, error) {
  6967  	var out []interface{}
  6968  	err := _KittyBreeding.contract.Call(opts, &out, "ceoAddress")
  6969  
  6970  	if err != nil {
  6971  		return *new(common.Address), err
  6972  	}
  6973  
  6974  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  6975  
  6976  	return out0, err
  6977  
  6978  }
  6979  
  6980  // CeoAddress is a free data retrieval call binding the contract method 0x0a0f8168.
  6981  //
  6982  // Solidity: function ceoAddress() view returns(address)
  6983  func (_KittyBreeding *KittyBreedingSession) CeoAddress() (common.Address, error) {
  6984  	return _KittyBreeding.Contract.CeoAddress(&_KittyBreeding.CallOpts)
  6985  }
  6986  
  6987  // CeoAddress is a free data retrieval call binding the contract method 0x0a0f8168.
  6988  //
  6989  // Solidity: function ceoAddress() view returns(address)
  6990  func (_KittyBreeding *KittyBreedingCallerSession) CeoAddress() (common.Address, error) {
  6991  	return _KittyBreeding.Contract.CeoAddress(&_KittyBreeding.CallOpts)
  6992  }
  6993  
  6994  // CfoAddress is a free data retrieval call binding the contract method 0x0519ce79.
  6995  //
  6996  // Solidity: function cfoAddress() view returns(address)
  6997  func (_KittyBreeding *KittyBreedingCaller) CfoAddress(opts *bind.CallOpts) (common.Address, error) {
  6998  	var out []interface{}
  6999  	err := _KittyBreeding.contract.Call(opts, &out, "cfoAddress")
  7000  
  7001  	if err != nil {
  7002  		return *new(common.Address), err
  7003  	}
  7004  
  7005  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  7006  
  7007  	return out0, err
  7008  
  7009  }
  7010  
  7011  // CfoAddress is a free data retrieval call binding the contract method 0x0519ce79.
  7012  //
  7013  // Solidity: function cfoAddress() view returns(address)
  7014  func (_KittyBreeding *KittyBreedingSession) CfoAddress() (common.Address, error) {
  7015  	return _KittyBreeding.Contract.CfoAddress(&_KittyBreeding.CallOpts)
  7016  }
  7017  
  7018  // CfoAddress is a free data retrieval call binding the contract method 0x0519ce79.
  7019  //
  7020  // Solidity: function cfoAddress() view returns(address)
  7021  func (_KittyBreeding *KittyBreedingCallerSession) CfoAddress() (common.Address, error) {
  7022  	return _KittyBreeding.Contract.CfoAddress(&_KittyBreeding.CallOpts)
  7023  }
  7024  
  7025  // CooAddress is a free data retrieval call binding the contract method 0xb047fb50.
  7026  //
  7027  // Solidity: function cooAddress() view returns(address)
  7028  func (_KittyBreeding *KittyBreedingCaller) CooAddress(opts *bind.CallOpts) (common.Address, error) {
  7029  	var out []interface{}
  7030  	err := _KittyBreeding.contract.Call(opts, &out, "cooAddress")
  7031  
  7032  	if err != nil {
  7033  		return *new(common.Address), err
  7034  	}
  7035  
  7036  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  7037  
  7038  	return out0, err
  7039  
  7040  }
  7041  
  7042  // CooAddress is a free data retrieval call binding the contract method 0xb047fb50.
  7043  //
  7044  // Solidity: function cooAddress() view returns(address)
  7045  func (_KittyBreeding *KittyBreedingSession) CooAddress() (common.Address, error) {
  7046  	return _KittyBreeding.Contract.CooAddress(&_KittyBreeding.CallOpts)
  7047  }
  7048  
  7049  // CooAddress is a free data retrieval call binding the contract method 0xb047fb50.
  7050  //
  7051  // Solidity: function cooAddress() view returns(address)
  7052  func (_KittyBreeding *KittyBreedingCallerSession) CooAddress() (common.Address, error) {
  7053  	return _KittyBreeding.Contract.CooAddress(&_KittyBreeding.CallOpts)
  7054  }
  7055  
  7056  // Cooldowns is a free data retrieval call binding the contract method 0x9d6fac6f.
  7057  //
  7058  // Solidity: function cooldowns(uint256 ) view returns(uint32)
  7059  func (_KittyBreeding *KittyBreedingCaller) Cooldowns(opts *bind.CallOpts, arg0 *big.Int) (uint32, error) {
  7060  	var out []interface{}
  7061  	err := _KittyBreeding.contract.Call(opts, &out, "cooldowns", arg0)
  7062  
  7063  	if err != nil {
  7064  		return *new(uint32), err
  7065  	}
  7066  
  7067  	out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32)
  7068  
  7069  	return out0, err
  7070  
  7071  }
  7072  
  7073  // Cooldowns is a free data retrieval call binding the contract method 0x9d6fac6f.
  7074  //
  7075  // Solidity: function cooldowns(uint256 ) view returns(uint32)
  7076  func (_KittyBreeding *KittyBreedingSession) Cooldowns(arg0 *big.Int) (uint32, error) {
  7077  	return _KittyBreeding.Contract.Cooldowns(&_KittyBreeding.CallOpts, arg0)
  7078  }
  7079  
  7080  // Cooldowns is a free data retrieval call binding the contract method 0x9d6fac6f.
  7081  //
  7082  // Solidity: function cooldowns(uint256 ) view returns(uint32)
  7083  func (_KittyBreeding *KittyBreedingCallerSession) Cooldowns(arg0 *big.Int) (uint32, error) {
  7084  	return _KittyBreeding.Contract.Cooldowns(&_KittyBreeding.CallOpts, arg0)
  7085  }
  7086  
  7087  // Erc721Metadata is a free data retrieval call binding the contract method 0xbc4006f5.
  7088  //
  7089  // Solidity: function erc721Metadata() view returns(address)
  7090  func (_KittyBreeding *KittyBreedingCaller) Erc721Metadata(opts *bind.CallOpts) (common.Address, error) {
  7091  	var out []interface{}
  7092  	err := _KittyBreeding.contract.Call(opts, &out, "erc721Metadata")
  7093  
  7094  	if err != nil {
  7095  		return *new(common.Address), err
  7096  	}
  7097  
  7098  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  7099  
  7100  	return out0, err
  7101  
  7102  }
  7103  
  7104  // Erc721Metadata is a free data retrieval call binding the contract method 0xbc4006f5.
  7105  //
  7106  // Solidity: function erc721Metadata() view returns(address)
  7107  func (_KittyBreeding *KittyBreedingSession) Erc721Metadata() (common.Address, error) {
  7108  	return _KittyBreeding.Contract.Erc721Metadata(&_KittyBreeding.CallOpts)
  7109  }
  7110  
  7111  // Erc721Metadata is a free data retrieval call binding the contract method 0xbc4006f5.
  7112  //
  7113  // Solidity: function erc721Metadata() view returns(address)
  7114  func (_KittyBreeding *KittyBreedingCallerSession) Erc721Metadata() (common.Address, error) {
  7115  	return _KittyBreeding.Contract.Erc721Metadata(&_KittyBreeding.CallOpts)
  7116  }
  7117  
  7118  // GeneScience is a free data retrieval call binding the contract method 0xf2b47d52.
  7119  //
  7120  // Solidity: function geneScience() view returns(address)
  7121  func (_KittyBreeding *KittyBreedingCaller) GeneScience(opts *bind.CallOpts) (common.Address, error) {
  7122  	var out []interface{}
  7123  	err := _KittyBreeding.contract.Call(opts, &out, "geneScience")
  7124  
  7125  	if err != nil {
  7126  		return *new(common.Address), err
  7127  	}
  7128  
  7129  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  7130  
  7131  	return out0, err
  7132  
  7133  }
  7134  
  7135  // GeneScience is a free data retrieval call binding the contract method 0xf2b47d52.
  7136  //
  7137  // Solidity: function geneScience() view returns(address)
  7138  func (_KittyBreeding *KittyBreedingSession) GeneScience() (common.Address, error) {
  7139  	return _KittyBreeding.Contract.GeneScience(&_KittyBreeding.CallOpts)
  7140  }
  7141  
  7142  // GeneScience is a free data retrieval call binding the contract method 0xf2b47d52.
  7143  //
  7144  // Solidity: function geneScience() view returns(address)
  7145  func (_KittyBreeding *KittyBreedingCallerSession) GeneScience() (common.Address, error) {
  7146  	return _KittyBreeding.Contract.GeneScience(&_KittyBreeding.CallOpts)
  7147  }
  7148  
  7149  // IsPregnant is a free data retrieval call binding the contract method 0x1940a936.
  7150  //
  7151  // Solidity: function isPregnant(uint256 _kittyId) view returns(bool)
  7152  func (_KittyBreeding *KittyBreedingCaller) IsPregnant(opts *bind.CallOpts, _kittyId *big.Int) (bool, error) {
  7153  	var out []interface{}
  7154  	err := _KittyBreeding.contract.Call(opts, &out, "isPregnant", _kittyId)
  7155  
  7156  	if err != nil {
  7157  		return *new(bool), err
  7158  	}
  7159  
  7160  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  7161  
  7162  	return out0, err
  7163  
  7164  }
  7165  
  7166  // IsPregnant is a free data retrieval call binding the contract method 0x1940a936.
  7167  //
  7168  // Solidity: function isPregnant(uint256 _kittyId) view returns(bool)
  7169  func (_KittyBreeding *KittyBreedingSession) IsPregnant(_kittyId *big.Int) (bool, error) {
  7170  	return _KittyBreeding.Contract.IsPregnant(&_KittyBreeding.CallOpts, _kittyId)
  7171  }
  7172  
  7173  // IsPregnant is a free data retrieval call binding the contract method 0x1940a936.
  7174  //
  7175  // Solidity: function isPregnant(uint256 _kittyId) view returns(bool)
  7176  func (_KittyBreeding *KittyBreedingCallerSession) IsPregnant(_kittyId *big.Int) (bool, error) {
  7177  	return _KittyBreeding.Contract.IsPregnant(&_KittyBreeding.CallOpts, _kittyId)
  7178  }
  7179  
  7180  // IsReadyToBreed is a free data retrieval call binding the contract method 0xd3e6f49f.
  7181  //
  7182  // Solidity: function isReadyToBreed(uint256 _kittyId) view returns(bool)
  7183  func (_KittyBreeding *KittyBreedingCaller) IsReadyToBreed(opts *bind.CallOpts, _kittyId *big.Int) (bool, error) {
  7184  	var out []interface{}
  7185  	err := _KittyBreeding.contract.Call(opts, &out, "isReadyToBreed", _kittyId)
  7186  
  7187  	if err != nil {
  7188  		return *new(bool), err
  7189  	}
  7190  
  7191  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  7192  
  7193  	return out0, err
  7194  
  7195  }
  7196  
  7197  // IsReadyToBreed is a free data retrieval call binding the contract method 0xd3e6f49f.
  7198  //
  7199  // Solidity: function isReadyToBreed(uint256 _kittyId) view returns(bool)
  7200  func (_KittyBreeding *KittyBreedingSession) IsReadyToBreed(_kittyId *big.Int) (bool, error) {
  7201  	return _KittyBreeding.Contract.IsReadyToBreed(&_KittyBreeding.CallOpts, _kittyId)
  7202  }
  7203  
  7204  // IsReadyToBreed is a free data retrieval call binding the contract method 0xd3e6f49f.
  7205  //
  7206  // Solidity: function isReadyToBreed(uint256 _kittyId) view returns(bool)
  7207  func (_KittyBreeding *KittyBreedingCallerSession) IsReadyToBreed(_kittyId *big.Int) (bool, error) {
  7208  	return _KittyBreeding.Contract.IsReadyToBreed(&_KittyBreeding.CallOpts, _kittyId)
  7209  }
  7210  
  7211  // KittyIndexToApproved is a free data retrieval call binding the contract method 0x481af3d3.
  7212  //
  7213  // Solidity: function kittyIndexToApproved(uint256 ) view returns(address)
  7214  func (_KittyBreeding *KittyBreedingCaller) KittyIndexToApproved(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  7215  	var out []interface{}
  7216  	err := _KittyBreeding.contract.Call(opts, &out, "kittyIndexToApproved", arg0)
  7217  
  7218  	if err != nil {
  7219  		return *new(common.Address), err
  7220  	}
  7221  
  7222  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  7223  
  7224  	return out0, err
  7225  
  7226  }
  7227  
  7228  // KittyIndexToApproved is a free data retrieval call binding the contract method 0x481af3d3.
  7229  //
  7230  // Solidity: function kittyIndexToApproved(uint256 ) view returns(address)
  7231  func (_KittyBreeding *KittyBreedingSession) KittyIndexToApproved(arg0 *big.Int) (common.Address, error) {
  7232  	return _KittyBreeding.Contract.KittyIndexToApproved(&_KittyBreeding.CallOpts, arg0)
  7233  }
  7234  
  7235  // KittyIndexToApproved is a free data retrieval call binding the contract method 0x481af3d3.
  7236  //
  7237  // Solidity: function kittyIndexToApproved(uint256 ) view returns(address)
  7238  func (_KittyBreeding *KittyBreedingCallerSession) KittyIndexToApproved(arg0 *big.Int) (common.Address, error) {
  7239  	return _KittyBreeding.Contract.KittyIndexToApproved(&_KittyBreeding.CallOpts, arg0)
  7240  }
  7241  
  7242  // KittyIndexToOwner is a free data retrieval call binding the contract method 0xa45f4bfc.
  7243  //
  7244  // Solidity: function kittyIndexToOwner(uint256 ) view returns(address)
  7245  func (_KittyBreeding *KittyBreedingCaller) KittyIndexToOwner(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  7246  	var out []interface{}
  7247  	err := _KittyBreeding.contract.Call(opts, &out, "kittyIndexToOwner", arg0)
  7248  
  7249  	if err != nil {
  7250  		return *new(common.Address), err
  7251  	}
  7252  
  7253  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  7254  
  7255  	return out0, err
  7256  
  7257  }
  7258  
  7259  // KittyIndexToOwner is a free data retrieval call binding the contract method 0xa45f4bfc.
  7260  //
  7261  // Solidity: function kittyIndexToOwner(uint256 ) view returns(address)
  7262  func (_KittyBreeding *KittyBreedingSession) KittyIndexToOwner(arg0 *big.Int) (common.Address, error) {
  7263  	return _KittyBreeding.Contract.KittyIndexToOwner(&_KittyBreeding.CallOpts, arg0)
  7264  }
  7265  
  7266  // KittyIndexToOwner is a free data retrieval call binding the contract method 0xa45f4bfc.
  7267  //
  7268  // Solidity: function kittyIndexToOwner(uint256 ) view returns(address)
  7269  func (_KittyBreeding *KittyBreedingCallerSession) KittyIndexToOwner(arg0 *big.Int) (common.Address, error) {
  7270  	return _KittyBreeding.Contract.KittyIndexToOwner(&_KittyBreeding.CallOpts, arg0)
  7271  }
  7272  
  7273  // Name is a free data retrieval call binding the contract method 0x06fdde03.
  7274  //
  7275  // Solidity: function name() view returns(string)
  7276  func (_KittyBreeding *KittyBreedingCaller) Name(opts *bind.CallOpts) (string, error) {
  7277  	var out []interface{}
  7278  	err := _KittyBreeding.contract.Call(opts, &out, "name")
  7279  
  7280  	if err != nil {
  7281  		return *new(string), err
  7282  	}
  7283  
  7284  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
  7285  
  7286  	return out0, err
  7287  
  7288  }
  7289  
  7290  // Name is a free data retrieval call binding the contract method 0x06fdde03.
  7291  //
  7292  // Solidity: function name() view returns(string)
  7293  func (_KittyBreeding *KittyBreedingSession) Name() (string, error) {
  7294  	return _KittyBreeding.Contract.Name(&_KittyBreeding.CallOpts)
  7295  }
  7296  
  7297  // Name is a free data retrieval call binding the contract method 0x06fdde03.
  7298  //
  7299  // Solidity: function name() view returns(string)
  7300  func (_KittyBreeding *KittyBreedingCallerSession) Name() (string, error) {
  7301  	return _KittyBreeding.Contract.Name(&_KittyBreeding.CallOpts)
  7302  }
  7303  
  7304  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
  7305  //
  7306  // Solidity: function ownerOf(uint256 _tokenId) view returns(address owner)
  7307  func (_KittyBreeding *KittyBreedingCaller) OwnerOf(opts *bind.CallOpts, _tokenId *big.Int) (common.Address, error) {
  7308  	var out []interface{}
  7309  	err := _KittyBreeding.contract.Call(opts, &out, "ownerOf", _tokenId)
  7310  
  7311  	if err != nil {
  7312  		return *new(common.Address), err
  7313  	}
  7314  
  7315  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  7316  
  7317  	return out0, err
  7318  
  7319  }
  7320  
  7321  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
  7322  //
  7323  // Solidity: function ownerOf(uint256 _tokenId) view returns(address owner)
  7324  func (_KittyBreeding *KittyBreedingSession) OwnerOf(_tokenId *big.Int) (common.Address, error) {
  7325  	return _KittyBreeding.Contract.OwnerOf(&_KittyBreeding.CallOpts, _tokenId)
  7326  }
  7327  
  7328  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
  7329  //
  7330  // Solidity: function ownerOf(uint256 _tokenId) view returns(address owner)
  7331  func (_KittyBreeding *KittyBreedingCallerSession) OwnerOf(_tokenId *big.Int) (common.Address, error) {
  7332  	return _KittyBreeding.Contract.OwnerOf(&_KittyBreeding.CallOpts, _tokenId)
  7333  }
  7334  
  7335  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
  7336  //
  7337  // Solidity: function paused() view returns(bool)
  7338  func (_KittyBreeding *KittyBreedingCaller) Paused(opts *bind.CallOpts) (bool, error) {
  7339  	var out []interface{}
  7340  	err := _KittyBreeding.contract.Call(opts, &out, "paused")
  7341  
  7342  	if err != nil {
  7343  		return *new(bool), err
  7344  	}
  7345  
  7346  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  7347  
  7348  	return out0, err
  7349  
  7350  }
  7351  
  7352  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
  7353  //
  7354  // Solidity: function paused() view returns(bool)
  7355  func (_KittyBreeding *KittyBreedingSession) Paused() (bool, error) {
  7356  	return _KittyBreeding.Contract.Paused(&_KittyBreeding.CallOpts)
  7357  }
  7358  
  7359  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
  7360  //
  7361  // Solidity: function paused() view returns(bool)
  7362  func (_KittyBreeding *KittyBreedingCallerSession) Paused() (bool, error) {
  7363  	return _KittyBreeding.Contract.Paused(&_KittyBreeding.CallOpts)
  7364  }
  7365  
  7366  // PregnantKitties is a free data retrieval call binding the contract method 0x183a7947.
  7367  //
  7368  // Solidity: function pregnantKitties() view returns(uint256)
  7369  func (_KittyBreeding *KittyBreedingCaller) PregnantKitties(opts *bind.CallOpts) (*big.Int, error) {
  7370  	var out []interface{}
  7371  	err := _KittyBreeding.contract.Call(opts, &out, "pregnantKitties")
  7372  
  7373  	if err != nil {
  7374  		return *new(*big.Int), err
  7375  	}
  7376  
  7377  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  7378  
  7379  	return out0, err
  7380  
  7381  }
  7382  
  7383  // PregnantKitties is a free data retrieval call binding the contract method 0x183a7947.
  7384  //
  7385  // Solidity: function pregnantKitties() view returns(uint256)
  7386  func (_KittyBreeding *KittyBreedingSession) PregnantKitties() (*big.Int, error) {
  7387  	return _KittyBreeding.Contract.PregnantKitties(&_KittyBreeding.CallOpts)
  7388  }
  7389  
  7390  // PregnantKitties is a free data retrieval call binding the contract method 0x183a7947.
  7391  //
  7392  // Solidity: function pregnantKitties() view returns(uint256)
  7393  func (_KittyBreeding *KittyBreedingCallerSession) PregnantKitties() (*big.Int, error) {
  7394  	return _KittyBreeding.Contract.PregnantKitties(&_KittyBreeding.CallOpts)
  7395  }
  7396  
  7397  // SaleAuction is a free data retrieval call binding the contract method 0xe6cbe351.
  7398  //
  7399  // Solidity: function saleAuction() view returns(address)
  7400  func (_KittyBreeding *KittyBreedingCaller) SaleAuction(opts *bind.CallOpts) (common.Address, error) {
  7401  	var out []interface{}
  7402  	err := _KittyBreeding.contract.Call(opts, &out, "saleAuction")
  7403  
  7404  	if err != nil {
  7405  		return *new(common.Address), err
  7406  	}
  7407  
  7408  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  7409  
  7410  	return out0, err
  7411  
  7412  }
  7413  
  7414  // SaleAuction is a free data retrieval call binding the contract method 0xe6cbe351.
  7415  //
  7416  // Solidity: function saleAuction() view returns(address)
  7417  func (_KittyBreeding *KittyBreedingSession) SaleAuction() (common.Address, error) {
  7418  	return _KittyBreeding.Contract.SaleAuction(&_KittyBreeding.CallOpts)
  7419  }
  7420  
  7421  // SaleAuction is a free data retrieval call binding the contract method 0xe6cbe351.
  7422  //
  7423  // Solidity: function saleAuction() view returns(address)
  7424  func (_KittyBreeding *KittyBreedingCallerSession) SaleAuction() (common.Address, error) {
  7425  	return _KittyBreeding.Contract.SaleAuction(&_KittyBreeding.CallOpts)
  7426  }
  7427  
  7428  // SecondsPerBlock is a free data retrieval call binding the contract method 0x7a7d4937.
  7429  //
  7430  // Solidity: function secondsPerBlock() view returns(uint256)
  7431  func (_KittyBreeding *KittyBreedingCaller) SecondsPerBlock(opts *bind.CallOpts) (*big.Int, error) {
  7432  	var out []interface{}
  7433  	err := _KittyBreeding.contract.Call(opts, &out, "secondsPerBlock")
  7434  
  7435  	if err != nil {
  7436  		return *new(*big.Int), err
  7437  	}
  7438  
  7439  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  7440  
  7441  	return out0, err
  7442  
  7443  }
  7444  
  7445  // SecondsPerBlock is a free data retrieval call binding the contract method 0x7a7d4937.
  7446  //
  7447  // Solidity: function secondsPerBlock() view returns(uint256)
  7448  func (_KittyBreeding *KittyBreedingSession) SecondsPerBlock() (*big.Int, error) {
  7449  	return _KittyBreeding.Contract.SecondsPerBlock(&_KittyBreeding.CallOpts)
  7450  }
  7451  
  7452  // SecondsPerBlock is a free data retrieval call binding the contract method 0x7a7d4937.
  7453  //
  7454  // Solidity: function secondsPerBlock() view returns(uint256)
  7455  func (_KittyBreeding *KittyBreedingCallerSession) SecondsPerBlock() (*big.Int, error) {
  7456  	return _KittyBreeding.Contract.SecondsPerBlock(&_KittyBreeding.CallOpts)
  7457  }
  7458  
  7459  // SireAllowedToAddress is a free data retrieval call binding the contract method 0x46116e6f.
  7460  //
  7461  // Solidity: function sireAllowedToAddress(uint256 ) view returns(address)
  7462  func (_KittyBreeding *KittyBreedingCaller) SireAllowedToAddress(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  7463  	var out []interface{}
  7464  	err := _KittyBreeding.contract.Call(opts, &out, "sireAllowedToAddress", arg0)
  7465  
  7466  	if err != nil {
  7467  		return *new(common.Address), err
  7468  	}
  7469  
  7470  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  7471  
  7472  	return out0, err
  7473  
  7474  }
  7475  
  7476  // SireAllowedToAddress is a free data retrieval call binding the contract method 0x46116e6f.
  7477  //
  7478  // Solidity: function sireAllowedToAddress(uint256 ) view returns(address)
  7479  func (_KittyBreeding *KittyBreedingSession) SireAllowedToAddress(arg0 *big.Int) (common.Address, error) {
  7480  	return _KittyBreeding.Contract.SireAllowedToAddress(&_KittyBreeding.CallOpts, arg0)
  7481  }
  7482  
  7483  // SireAllowedToAddress is a free data retrieval call binding the contract method 0x46116e6f.
  7484  //
  7485  // Solidity: function sireAllowedToAddress(uint256 ) view returns(address)
  7486  func (_KittyBreeding *KittyBreedingCallerSession) SireAllowedToAddress(arg0 *big.Int) (common.Address, error) {
  7487  	return _KittyBreeding.Contract.SireAllowedToAddress(&_KittyBreeding.CallOpts, arg0)
  7488  }
  7489  
  7490  // SiringAuction is a free data retrieval call binding the contract method 0x21717ebf.
  7491  //
  7492  // Solidity: function siringAuction() view returns(address)
  7493  func (_KittyBreeding *KittyBreedingCaller) SiringAuction(opts *bind.CallOpts) (common.Address, error) {
  7494  	var out []interface{}
  7495  	err := _KittyBreeding.contract.Call(opts, &out, "siringAuction")
  7496  
  7497  	if err != nil {
  7498  		return *new(common.Address), err
  7499  	}
  7500  
  7501  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  7502  
  7503  	return out0, err
  7504  
  7505  }
  7506  
  7507  // SiringAuction is a free data retrieval call binding the contract method 0x21717ebf.
  7508  //
  7509  // Solidity: function siringAuction() view returns(address)
  7510  func (_KittyBreeding *KittyBreedingSession) SiringAuction() (common.Address, error) {
  7511  	return _KittyBreeding.Contract.SiringAuction(&_KittyBreeding.CallOpts)
  7512  }
  7513  
  7514  // SiringAuction is a free data retrieval call binding the contract method 0x21717ebf.
  7515  //
  7516  // Solidity: function siringAuction() view returns(address)
  7517  func (_KittyBreeding *KittyBreedingCallerSession) SiringAuction() (common.Address, error) {
  7518  	return _KittyBreeding.Contract.SiringAuction(&_KittyBreeding.CallOpts)
  7519  }
  7520  
  7521  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  7522  //
  7523  // Solidity: function supportsInterface(bytes4 _interfaceID) view returns(bool)
  7524  func (_KittyBreeding *KittyBreedingCaller) SupportsInterface(opts *bind.CallOpts, _interfaceID [4]byte) (bool, error) {
  7525  	var out []interface{}
  7526  	err := _KittyBreeding.contract.Call(opts, &out, "supportsInterface", _interfaceID)
  7527  
  7528  	if err != nil {
  7529  		return *new(bool), err
  7530  	}
  7531  
  7532  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  7533  
  7534  	return out0, err
  7535  
  7536  }
  7537  
  7538  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  7539  //
  7540  // Solidity: function supportsInterface(bytes4 _interfaceID) view returns(bool)
  7541  func (_KittyBreeding *KittyBreedingSession) SupportsInterface(_interfaceID [4]byte) (bool, error) {
  7542  	return _KittyBreeding.Contract.SupportsInterface(&_KittyBreeding.CallOpts, _interfaceID)
  7543  }
  7544  
  7545  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  7546  //
  7547  // Solidity: function supportsInterface(bytes4 _interfaceID) view returns(bool)
  7548  func (_KittyBreeding *KittyBreedingCallerSession) SupportsInterface(_interfaceID [4]byte) (bool, error) {
  7549  	return _KittyBreeding.Contract.SupportsInterface(&_KittyBreeding.CallOpts, _interfaceID)
  7550  }
  7551  
  7552  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
  7553  //
  7554  // Solidity: function symbol() view returns(string)
  7555  func (_KittyBreeding *KittyBreedingCaller) Symbol(opts *bind.CallOpts) (string, error) {
  7556  	var out []interface{}
  7557  	err := _KittyBreeding.contract.Call(opts, &out, "symbol")
  7558  
  7559  	if err != nil {
  7560  		return *new(string), err
  7561  	}
  7562  
  7563  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
  7564  
  7565  	return out0, err
  7566  
  7567  }
  7568  
  7569  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
  7570  //
  7571  // Solidity: function symbol() view returns(string)
  7572  func (_KittyBreeding *KittyBreedingSession) Symbol() (string, error) {
  7573  	return _KittyBreeding.Contract.Symbol(&_KittyBreeding.CallOpts)
  7574  }
  7575  
  7576  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
  7577  //
  7578  // Solidity: function symbol() view returns(string)
  7579  func (_KittyBreeding *KittyBreedingCallerSession) Symbol() (string, error) {
  7580  	return _KittyBreeding.Contract.Symbol(&_KittyBreeding.CallOpts)
  7581  }
  7582  
  7583  // TokenMetadata is a free data retrieval call binding the contract method 0x0560ff44.
  7584  //
  7585  // Solidity: function tokenMetadata(uint256 _tokenId, string _preferredTransport) view returns(string infoUrl)
  7586  func (_KittyBreeding *KittyBreedingCaller) TokenMetadata(opts *bind.CallOpts, _tokenId *big.Int, _preferredTransport string) (string, error) {
  7587  	var out []interface{}
  7588  	err := _KittyBreeding.contract.Call(opts, &out, "tokenMetadata", _tokenId, _preferredTransport)
  7589  
  7590  	if err != nil {
  7591  		return *new(string), err
  7592  	}
  7593  
  7594  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
  7595  
  7596  	return out0, err
  7597  
  7598  }
  7599  
  7600  // TokenMetadata is a free data retrieval call binding the contract method 0x0560ff44.
  7601  //
  7602  // Solidity: function tokenMetadata(uint256 _tokenId, string _preferredTransport) view returns(string infoUrl)
  7603  func (_KittyBreeding *KittyBreedingSession) TokenMetadata(_tokenId *big.Int, _preferredTransport string) (string, error) {
  7604  	return _KittyBreeding.Contract.TokenMetadata(&_KittyBreeding.CallOpts, _tokenId, _preferredTransport)
  7605  }
  7606  
  7607  // TokenMetadata is a free data retrieval call binding the contract method 0x0560ff44.
  7608  //
  7609  // Solidity: function tokenMetadata(uint256 _tokenId, string _preferredTransport) view returns(string infoUrl)
  7610  func (_KittyBreeding *KittyBreedingCallerSession) TokenMetadata(_tokenId *big.Int, _preferredTransport string) (string, error) {
  7611  	return _KittyBreeding.Contract.TokenMetadata(&_KittyBreeding.CallOpts, _tokenId, _preferredTransport)
  7612  }
  7613  
  7614  // TokensOfOwner is a free data retrieval call binding the contract method 0x8462151c.
  7615  //
  7616  // Solidity: function tokensOfOwner(address _owner) view returns(uint256[] ownerTokens)
  7617  func (_KittyBreeding *KittyBreedingCaller) TokensOfOwner(opts *bind.CallOpts, _owner common.Address) ([]*big.Int, error) {
  7618  	var out []interface{}
  7619  	err := _KittyBreeding.contract.Call(opts, &out, "tokensOfOwner", _owner)
  7620  
  7621  	if err != nil {
  7622  		return *new([]*big.Int), err
  7623  	}
  7624  
  7625  	out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int)
  7626  
  7627  	return out0, err
  7628  
  7629  }
  7630  
  7631  // TokensOfOwner is a free data retrieval call binding the contract method 0x8462151c.
  7632  //
  7633  // Solidity: function tokensOfOwner(address _owner) view returns(uint256[] ownerTokens)
  7634  func (_KittyBreeding *KittyBreedingSession) TokensOfOwner(_owner common.Address) ([]*big.Int, error) {
  7635  	return _KittyBreeding.Contract.TokensOfOwner(&_KittyBreeding.CallOpts, _owner)
  7636  }
  7637  
  7638  // TokensOfOwner is a free data retrieval call binding the contract method 0x8462151c.
  7639  //
  7640  // Solidity: function tokensOfOwner(address _owner) view returns(uint256[] ownerTokens)
  7641  func (_KittyBreeding *KittyBreedingCallerSession) TokensOfOwner(_owner common.Address) ([]*big.Int, error) {
  7642  	return _KittyBreeding.Contract.TokensOfOwner(&_KittyBreeding.CallOpts, _owner)
  7643  }
  7644  
  7645  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  7646  //
  7647  // Solidity: function totalSupply() view returns(uint256)
  7648  func (_KittyBreeding *KittyBreedingCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
  7649  	var out []interface{}
  7650  	err := _KittyBreeding.contract.Call(opts, &out, "totalSupply")
  7651  
  7652  	if err != nil {
  7653  		return *new(*big.Int), err
  7654  	}
  7655  
  7656  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  7657  
  7658  	return out0, err
  7659  
  7660  }
  7661  
  7662  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  7663  //
  7664  // Solidity: function totalSupply() view returns(uint256)
  7665  func (_KittyBreeding *KittyBreedingSession) TotalSupply() (*big.Int, error) {
  7666  	return _KittyBreeding.Contract.TotalSupply(&_KittyBreeding.CallOpts)
  7667  }
  7668  
  7669  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  7670  //
  7671  // Solidity: function totalSupply() view returns(uint256)
  7672  func (_KittyBreeding *KittyBreedingCallerSession) TotalSupply() (*big.Int, error) {
  7673  	return _KittyBreeding.Contract.TotalSupply(&_KittyBreeding.CallOpts)
  7674  }
  7675  
  7676  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  7677  //
  7678  // Solidity: function approve(address _to, uint256 _tokenId) returns()
  7679  func (_KittyBreeding *KittyBreedingTransactor) Approve(opts *bind.TransactOpts, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
  7680  	return _KittyBreeding.contract.Transact(opts, "approve", _to, _tokenId)
  7681  }
  7682  
  7683  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  7684  //
  7685  // Solidity: function approve(address _to, uint256 _tokenId) returns()
  7686  func (_KittyBreeding *KittyBreedingSession) Approve(_to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
  7687  	return _KittyBreeding.Contract.Approve(&_KittyBreeding.TransactOpts, _to, _tokenId)
  7688  }
  7689  
  7690  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  7691  //
  7692  // Solidity: function approve(address _to, uint256 _tokenId) returns()
  7693  func (_KittyBreeding *KittyBreedingTransactorSession) Approve(_to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
  7694  	return _KittyBreeding.Contract.Approve(&_KittyBreeding.TransactOpts, _to, _tokenId)
  7695  }
  7696  
  7697  // ApproveSiring is a paid mutator transaction binding the contract method 0x4dfff04f.
  7698  //
  7699  // Solidity: function approveSiring(address _addr, uint256 _sireId) returns()
  7700  func (_KittyBreeding *KittyBreedingTransactor) ApproveSiring(opts *bind.TransactOpts, _addr common.Address, _sireId *big.Int) (*types.Transaction, error) {
  7701  	return _KittyBreeding.contract.Transact(opts, "approveSiring", _addr, _sireId)
  7702  }
  7703  
  7704  // ApproveSiring is a paid mutator transaction binding the contract method 0x4dfff04f.
  7705  //
  7706  // Solidity: function approveSiring(address _addr, uint256 _sireId) returns()
  7707  func (_KittyBreeding *KittyBreedingSession) ApproveSiring(_addr common.Address, _sireId *big.Int) (*types.Transaction, error) {
  7708  	return _KittyBreeding.Contract.ApproveSiring(&_KittyBreeding.TransactOpts, _addr, _sireId)
  7709  }
  7710  
  7711  // ApproveSiring is a paid mutator transaction binding the contract method 0x4dfff04f.
  7712  //
  7713  // Solidity: function approveSiring(address _addr, uint256 _sireId) returns()
  7714  func (_KittyBreeding *KittyBreedingTransactorSession) ApproveSiring(_addr common.Address, _sireId *big.Int) (*types.Transaction, error) {
  7715  	return _KittyBreeding.Contract.ApproveSiring(&_KittyBreeding.TransactOpts, _addr, _sireId)
  7716  }
  7717  
  7718  // BreedWithAuto is a paid mutator transaction binding the contract method 0xf7d8c883.
  7719  //
  7720  // Solidity: function breedWithAuto(uint256 _matronId, uint256 _sireId) payable returns()
  7721  func (_KittyBreeding *KittyBreedingTransactor) BreedWithAuto(opts *bind.TransactOpts, _matronId *big.Int, _sireId *big.Int) (*types.Transaction, error) {
  7722  	return _KittyBreeding.contract.Transact(opts, "breedWithAuto", _matronId, _sireId)
  7723  }
  7724  
  7725  // BreedWithAuto is a paid mutator transaction binding the contract method 0xf7d8c883.
  7726  //
  7727  // Solidity: function breedWithAuto(uint256 _matronId, uint256 _sireId) payable returns()
  7728  func (_KittyBreeding *KittyBreedingSession) BreedWithAuto(_matronId *big.Int, _sireId *big.Int) (*types.Transaction, error) {
  7729  	return _KittyBreeding.Contract.BreedWithAuto(&_KittyBreeding.TransactOpts, _matronId, _sireId)
  7730  }
  7731  
  7732  // BreedWithAuto is a paid mutator transaction binding the contract method 0xf7d8c883.
  7733  //
  7734  // Solidity: function breedWithAuto(uint256 _matronId, uint256 _sireId) payable returns()
  7735  func (_KittyBreeding *KittyBreedingTransactorSession) BreedWithAuto(_matronId *big.Int, _sireId *big.Int) (*types.Transaction, error) {
  7736  	return _KittyBreeding.Contract.BreedWithAuto(&_KittyBreeding.TransactOpts, _matronId, _sireId)
  7737  }
  7738  
  7739  // GiveBirth is a paid mutator transaction binding the contract method 0x88c2a0bf.
  7740  //
  7741  // Solidity: function giveBirth(uint256 _matronId) returns(uint256)
  7742  func (_KittyBreeding *KittyBreedingTransactor) GiveBirth(opts *bind.TransactOpts, _matronId *big.Int) (*types.Transaction, error) {
  7743  	return _KittyBreeding.contract.Transact(opts, "giveBirth", _matronId)
  7744  }
  7745  
  7746  // GiveBirth is a paid mutator transaction binding the contract method 0x88c2a0bf.
  7747  //
  7748  // Solidity: function giveBirth(uint256 _matronId) returns(uint256)
  7749  func (_KittyBreeding *KittyBreedingSession) GiveBirth(_matronId *big.Int) (*types.Transaction, error) {
  7750  	return _KittyBreeding.Contract.GiveBirth(&_KittyBreeding.TransactOpts, _matronId)
  7751  }
  7752  
  7753  // GiveBirth is a paid mutator transaction binding the contract method 0x88c2a0bf.
  7754  //
  7755  // Solidity: function giveBirth(uint256 _matronId) returns(uint256)
  7756  func (_KittyBreeding *KittyBreedingTransactorSession) GiveBirth(_matronId *big.Int) (*types.Transaction, error) {
  7757  	return _KittyBreeding.Contract.GiveBirth(&_KittyBreeding.TransactOpts, _matronId)
  7758  }
  7759  
  7760  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
  7761  //
  7762  // Solidity: function pause() returns()
  7763  func (_KittyBreeding *KittyBreedingTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) {
  7764  	return _KittyBreeding.contract.Transact(opts, "pause")
  7765  }
  7766  
  7767  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
  7768  //
  7769  // Solidity: function pause() returns()
  7770  func (_KittyBreeding *KittyBreedingSession) Pause() (*types.Transaction, error) {
  7771  	return _KittyBreeding.Contract.Pause(&_KittyBreeding.TransactOpts)
  7772  }
  7773  
  7774  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
  7775  //
  7776  // Solidity: function pause() returns()
  7777  func (_KittyBreeding *KittyBreedingTransactorSession) Pause() (*types.Transaction, error) {
  7778  	return _KittyBreeding.Contract.Pause(&_KittyBreeding.TransactOpts)
  7779  }
  7780  
  7781  // SetAutoBirthFee is a paid mutator transaction binding the contract method 0x4b85fd55.
  7782  //
  7783  // Solidity: function setAutoBirthFee(uint256 val) returns()
  7784  func (_KittyBreeding *KittyBreedingTransactor) SetAutoBirthFee(opts *bind.TransactOpts, val *big.Int) (*types.Transaction, error) {
  7785  	return _KittyBreeding.contract.Transact(opts, "setAutoBirthFee", val)
  7786  }
  7787  
  7788  // SetAutoBirthFee is a paid mutator transaction binding the contract method 0x4b85fd55.
  7789  //
  7790  // Solidity: function setAutoBirthFee(uint256 val) returns()
  7791  func (_KittyBreeding *KittyBreedingSession) SetAutoBirthFee(val *big.Int) (*types.Transaction, error) {
  7792  	return _KittyBreeding.Contract.SetAutoBirthFee(&_KittyBreeding.TransactOpts, val)
  7793  }
  7794  
  7795  // SetAutoBirthFee is a paid mutator transaction binding the contract method 0x4b85fd55.
  7796  //
  7797  // Solidity: function setAutoBirthFee(uint256 val) returns()
  7798  func (_KittyBreeding *KittyBreedingTransactorSession) SetAutoBirthFee(val *big.Int) (*types.Transaction, error) {
  7799  	return _KittyBreeding.Contract.SetAutoBirthFee(&_KittyBreeding.TransactOpts, val)
  7800  }
  7801  
  7802  // SetCEO is a paid mutator transaction binding the contract method 0x27d7874c.
  7803  //
  7804  // Solidity: function setCEO(address _newCEO) returns()
  7805  func (_KittyBreeding *KittyBreedingTransactor) SetCEO(opts *bind.TransactOpts, _newCEO common.Address) (*types.Transaction, error) {
  7806  	return _KittyBreeding.contract.Transact(opts, "setCEO", _newCEO)
  7807  }
  7808  
  7809  // SetCEO is a paid mutator transaction binding the contract method 0x27d7874c.
  7810  //
  7811  // Solidity: function setCEO(address _newCEO) returns()
  7812  func (_KittyBreeding *KittyBreedingSession) SetCEO(_newCEO common.Address) (*types.Transaction, error) {
  7813  	return _KittyBreeding.Contract.SetCEO(&_KittyBreeding.TransactOpts, _newCEO)
  7814  }
  7815  
  7816  // SetCEO is a paid mutator transaction binding the contract method 0x27d7874c.
  7817  //
  7818  // Solidity: function setCEO(address _newCEO) returns()
  7819  func (_KittyBreeding *KittyBreedingTransactorSession) SetCEO(_newCEO common.Address) (*types.Transaction, error) {
  7820  	return _KittyBreeding.Contract.SetCEO(&_KittyBreeding.TransactOpts, _newCEO)
  7821  }
  7822  
  7823  // SetCFO is a paid mutator transaction binding the contract method 0x4e0a3379.
  7824  //
  7825  // Solidity: function setCFO(address _newCFO) returns()
  7826  func (_KittyBreeding *KittyBreedingTransactor) SetCFO(opts *bind.TransactOpts, _newCFO common.Address) (*types.Transaction, error) {
  7827  	return _KittyBreeding.contract.Transact(opts, "setCFO", _newCFO)
  7828  }
  7829  
  7830  // SetCFO is a paid mutator transaction binding the contract method 0x4e0a3379.
  7831  //
  7832  // Solidity: function setCFO(address _newCFO) returns()
  7833  func (_KittyBreeding *KittyBreedingSession) SetCFO(_newCFO common.Address) (*types.Transaction, error) {
  7834  	return _KittyBreeding.Contract.SetCFO(&_KittyBreeding.TransactOpts, _newCFO)
  7835  }
  7836  
  7837  // SetCFO is a paid mutator transaction binding the contract method 0x4e0a3379.
  7838  //
  7839  // Solidity: function setCFO(address _newCFO) returns()
  7840  func (_KittyBreeding *KittyBreedingTransactorSession) SetCFO(_newCFO common.Address) (*types.Transaction, error) {
  7841  	return _KittyBreeding.Contract.SetCFO(&_KittyBreeding.TransactOpts, _newCFO)
  7842  }
  7843  
  7844  // SetCOO is a paid mutator transaction binding the contract method 0x2ba73c15.
  7845  //
  7846  // Solidity: function setCOO(address _newCOO) returns()
  7847  func (_KittyBreeding *KittyBreedingTransactor) SetCOO(opts *bind.TransactOpts, _newCOO common.Address) (*types.Transaction, error) {
  7848  	return _KittyBreeding.contract.Transact(opts, "setCOO", _newCOO)
  7849  }
  7850  
  7851  // SetCOO is a paid mutator transaction binding the contract method 0x2ba73c15.
  7852  //
  7853  // Solidity: function setCOO(address _newCOO) returns()
  7854  func (_KittyBreeding *KittyBreedingSession) SetCOO(_newCOO common.Address) (*types.Transaction, error) {
  7855  	return _KittyBreeding.Contract.SetCOO(&_KittyBreeding.TransactOpts, _newCOO)
  7856  }
  7857  
  7858  // SetCOO is a paid mutator transaction binding the contract method 0x2ba73c15.
  7859  //
  7860  // Solidity: function setCOO(address _newCOO) returns()
  7861  func (_KittyBreeding *KittyBreedingTransactorSession) SetCOO(_newCOO common.Address) (*types.Transaction, error) {
  7862  	return _KittyBreeding.Contract.SetCOO(&_KittyBreeding.TransactOpts, _newCOO)
  7863  }
  7864  
  7865  // SetGeneScienceAddress is a paid mutator transaction binding the contract method 0x24e7a38a.
  7866  //
  7867  // Solidity: function setGeneScienceAddress(address _address) returns()
  7868  func (_KittyBreeding *KittyBreedingTransactor) SetGeneScienceAddress(opts *bind.TransactOpts, _address common.Address) (*types.Transaction, error) {
  7869  	return _KittyBreeding.contract.Transact(opts, "setGeneScienceAddress", _address)
  7870  }
  7871  
  7872  // SetGeneScienceAddress is a paid mutator transaction binding the contract method 0x24e7a38a.
  7873  //
  7874  // Solidity: function setGeneScienceAddress(address _address) returns()
  7875  func (_KittyBreeding *KittyBreedingSession) SetGeneScienceAddress(_address common.Address) (*types.Transaction, error) {
  7876  	return _KittyBreeding.Contract.SetGeneScienceAddress(&_KittyBreeding.TransactOpts, _address)
  7877  }
  7878  
  7879  // SetGeneScienceAddress is a paid mutator transaction binding the contract method 0x24e7a38a.
  7880  //
  7881  // Solidity: function setGeneScienceAddress(address _address) returns()
  7882  func (_KittyBreeding *KittyBreedingTransactorSession) SetGeneScienceAddress(_address common.Address) (*types.Transaction, error) {
  7883  	return _KittyBreeding.Contract.SetGeneScienceAddress(&_KittyBreeding.TransactOpts, _address)
  7884  }
  7885  
  7886  // SetMetadataAddress is a paid mutator transaction binding the contract method 0xe17b25af.
  7887  //
  7888  // Solidity: function setMetadataAddress(address _contractAddress) returns()
  7889  func (_KittyBreeding *KittyBreedingTransactor) SetMetadataAddress(opts *bind.TransactOpts, _contractAddress common.Address) (*types.Transaction, error) {
  7890  	return _KittyBreeding.contract.Transact(opts, "setMetadataAddress", _contractAddress)
  7891  }
  7892  
  7893  // SetMetadataAddress is a paid mutator transaction binding the contract method 0xe17b25af.
  7894  //
  7895  // Solidity: function setMetadataAddress(address _contractAddress) returns()
  7896  func (_KittyBreeding *KittyBreedingSession) SetMetadataAddress(_contractAddress common.Address) (*types.Transaction, error) {
  7897  	return _KittyBreeding.Contract.SetMetadataAddress(&_KittyBreeding.TransactOpts, _contractAddress)
  7898  }
  7899  
  7900  // SetMetadataAddress is a paid mutator transaction binding the contract method 0xe17b25af.
  7901  //
  7902  // Solidity: function setMetadataAddress(address _contractAddress) returns()
  7903  func (_KittyBreeding *KittyBreedingTransactorSession) SetMetadataAddress(_contractAddress common.Address) (*types.Transaction, error) {
  7904  	return _KittyBreeding.Contract.SetMetadataAddress(&_KittyBreeding.TransactOpts, _contractAddress)
  7905  }
  7906  
  7907  // SetSecondsPerBlock is a paid mutator transaction binding the contract method 0x5663896e.
  7908  //
  7909  // Solidity: function setSecondsPerBlock(uint256 secs) returns()
  7910  func (_KittyBreeding *KittyBreedingTransactor) SetSecondsPerBlock(opts *bind.TransactOpts, secs *big.Int) (*types.Transaction, error) {
  7911  	return _KittyBreeding.contract.Transact(opts, "setSecondsPerBlock", secs)
  7912  }
  7913  
  7914  // SetSecondsPerBlock is a paid mutator transaction binding the contract method 0x5663896e.
  7915  //
  7916  // Solidity: function setSecondsPerBlock(uint256 secs) returns()
  7917  func (_KittyBreeding *KittyBreedingSession) SetSecondsPerBlock(secs *big.Int) (*types.Transaction, error) {
  7918  	return _KittyBreeding.Contract.SetSecondsPerBlock(&_KittyBreeding.TransactOpts, secs)
  7919  }
  7920  
  7921  // SetSecondsPerBlock is a paid mutator transaction binding the contract method 0x5663896e.
  7922  //
  7923  // Solidity: function setSecondsPerBlock(uint256 secs) returns()
  7924  func (_KittyBreeding *KittyBreedingTransactorSession) SetSecondsPerBlock(secs *big.Int) (*types.Transaction, error) {
  7925  	return _KittyBreeding.Contract.SetSecondsPerBlock(&_KittyBreeding.TransactOpts, secs)
  7926  }
  7927  
  7928  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  7929  //
  7930  // Solidity: function transfer(address _to, uint256 _tokenId) returns()
  7931  func (_KittyBreeding *KittyBreedingTransactor) Transfer(opts *bind.TransactOpts, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
  7932  	return _KittyBreeding.contract.Transact(opts, "transfer", _to, _tokenId)
  7933  }
  7934  
  7935  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  7936  //
  7937  // Solidity: function transfer(address _to, uint256 _tokenId) returns()
  7938  func (_KittyBreeding *KittyBreedingSession) Transfer(_to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
  7939  	return _KittyBreeding.Contract.Transfer(&_KittyBreeding.TransactOpts, _to, _tokenId)
  7940  }
  7941  
  7942  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  7943  //
  7944  // Solidity: function transfer(address _to, uint256 _tokenId) returns()
  7945  func (_KittyBreeding *KittyBreedingTransactorSession) Transfer(_to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
  7946  	return _KittyBreeding.Contract.Transfer(&_KittyBreeding.TransactOpts, _to, _tokenId)
  7947  }
  7948  
  7949  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  7950  //
  7951  // Solidity: function transferFrom(address _from, address _to, uint256 _tokenId) returns()
  7952  func (_KittyBreeding *KittyBreedingTransactor) TransferFrom(opts *bind.TransactOpts, _from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
  7953  	return _KittyBreeding.contract.Transact(opts, "transferFrom", _from, _to, _tokenId)
  7954  }
  7955  
  7956  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  7957  //
  7958  // Solidity: function transferFrom(address _from, address _to, uint256 _tokenId) returns()
  7959  func (_KittyBreeding *KittyBreedingSession) TransferFrom(_from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
  7960  	return _KittyBreeding.Contract.TransferFrom(&_KittyBreeding.TransactOpts, _from, _to, _tokenId)
  7961  }
  7962  
  7963  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  7964  //
  7965  // Solidity: function transferFrom(address _from, address _to, uint256 _tokenId) returns()
  7966  func (_KittyBreeding *KittyBreedingTransactorSession) TransferFrom(_from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
  7967  	return _KittyBreeding.Contract.TransferFrom(&_KittyBreeding.TransactOpts, _from, _to, _tokenId)
  7968  }
  7969  
  7970  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
  7971  //
  7972  // Solidity: function unpause() returns()
  7973  func (_KittyBreeding *KittyBreedingTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) {
  7974  	return _KittyBreeding.contract.Transact(opts, "unpause")
  7975  }
  7976  
  7977  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
  7978  //
  7979  // Solidity: function unpause() returns()
  7980  func (_KittyBreeding *KittyBreedingSession) Unpause() (*types.Transaction, error) {
  7981  	return _KittyBreeding.Contract.Unpause(&_KittyBreeding.TransactOpts)
  7982  }
  7983  
  7984  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
  7985  //
  7986  // Solidity: function unpause() returns()
  7987  func (_KittyBreeding *KittyBreedingTransactorSession) Unpause() (*types.Transaction, error) {
  7988  	return _KittyBreeding.Contract.Unpause(&_KittyBreeding.TransactOpts)
  7989  }
  7990  
  7991  // KittyBreedingApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the KittyBreeding contract.
  7992  type KittyBreedingApprovalIterator struct {
  7993  	Event *KittyBreedingApproval // Event containing the contract specifics and raw log
  7994  
  7995  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  7996  	event    string              // Event name to use for unpacking event data
  7997  
  7998  	logs chan types.Log        // Log channel receiving the found contract events
  7999  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  8000  	done bool                  // Whether the subscription completed delivering logs
  8001  	fail error                 // Occurred error to stop iteration
  8002  }
  8003  
  8004  // Next advances the iterator to the subsequent event, returning whether there
  8005  // are any more events found. In case of a retrieval or parsing error, false is
  8006  // returned and Error() can be queried for the exact failure.
  8007  func (it *KittyBreedingApprovalIterator) Next() bool {
  8008  	// If the iterator failed, stop iterating
  8009  	if it.fail != nil {
  8010  		return false
  8011  	}
  8012  	// If the iterator completed, deliver directly whatever's available
  8013  	if it.done {
  8014  		select {
  8015  		case log := <-it.logs:
  8016  			it.Event = new(KittyBreedingApproval)
  8017  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8018  				it.fail = err
  8019  				return false
  8020  			}
  8021  			it.Event.Raw = log
  8022  			return true
  8023  
  8024  		default:
  8025  			return false
  8026  		}
  8027  	}
  8028  	// Iterator still in progress, wait for either a data or an error event
  8029  	select {
  8030  	case log := <-it.logs:
  8031  		it.Event = new(KittyBreedingApproval)
  8032  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8033  			it.fail = err
  8034  			return false
  8035  		}
  8036  		it.Event.Raw = log
  8037  		return true
  8038  
  8039  	case err := <-it.sub.Err():
  8040  		it.done = true
  8041  		it.fail = err
  8042  		return it.Next()
  8043  	}
  8044  }
  8045  
  8046  // Error returns any retrieval or parsing error occurred during filtering.
  8047  func (it *KittyBreedingApprovalIterator) Error() error {
  8048  	return it.fail
  8049  }
  8050  
  8051  // Close terminates the iteration process, releasing any pending underlying
  8052  // resources.
  8053  func (it *KittyBreedingApprovalIterator) Close() error {
  8054  	it.sub.Unsubscribe()
  8055  	return nil
  8056  }
  8057  
  8058  // KittyBreedingApproval represents a Approval event raised by the KittyBreeding contract.
  8059  type KittyBreedingApproval struct {
  8060  	Owner    common.Address
  8061  	Approved common.Address
  8062  	TokenId  *big.Int
  8063  	Raw      types.Log // Blockchain specific contextual infos
  8064  }
  8065  
  8066  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  8067  //
  8068  // Solidity: event Approval(address owner, address approved, uint256 tokenId)
  8069  func (_KittyBreeding *KittyBreedingFilterer) FilterApproval(opts *bind.FilterOpts) (*KittyBreedingApprovalIterator, error) {
  8070  
  8071  	logs, sub, err := _KittyBreeding.contract.FilterLogs(opts, "Approval")
  8072  	if err != nil {
  8073  		return nil, err
  8074  	}
  8075  	return &KittyBreedingApprovalIterator{contract: _KittyBreeding.contract, event: "Approval", logs: logs, sub: sub}, nil
  8076  }
  8077  
  8078  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  8079  //
  8080  // Solidity: event Approval(address owner, address approved, uint256 tokenId)
  8081  func (_KittyBreeding *KittyBreedingFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *KittyBreedingApproval) (event.Subscription, error) {
  8082  
  8083  	logs, sub, err := _KittyBreeding.contract.WatchLogs(opts, "Approval")
  8084  	if err != nil {
  8085  		return nil, err
  8086  	}
  8087  	return event.NewSubscription(func(quit <-chan struct{}) error {
  8088  		defer sub.Unsubscribe()
  8089  		for {
  8090  			select {
  8091  			case log := <-logs:
  8092  				// New log arrived, parse the event and forward to the user
  8093  				event := new(KittyBreedingApproval)
  8094  				if err := _KittyBreeding.contract.UnpackLog(event, "Approval", log); err != nil {
  8095  					return err
  8096  				}
  8097  				event.Raw = log
  8098  
  8099  				select {
  8100  				case sink <- event:
  8101  				case err := <-sub.Err():
  8102  					return err
  8103  				case <-quit:
  8104  					return nil
  8105  				}
  8106  			case err := <-sub.Err():
  8107  				return err
  8108  			case <-quit:
  8109  				return nil
  8110  			}
  8111  		}
  8112  	}), nil
  8113  }
  8114  
  8115  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  8116  //
  8117  // Solidity: event Approval(address owner, address approved, uint256 tokenId)
  8118  func (_KittyBreeding *KittyBreedingFilterer) ParseApproval(log types.Log) (*KittyBreedingApproval, error) {
  8119  	event := new(KittyBreedingApproval)
  8120  	if err := _KittyBreeding.contract.UnpackLog(event, "Approval", log); err != nil {
  8121  		return nil, err
  8122  	}
  8123  	event.Raw = log
  8124  	return event, nil
  8125  }
  8126  
  8127  // KittyBreedingBirthIterator is returned from FilterBirth and is used to iterate over the raw logs and unpacked data for Birth events raised by the KittyBreeding contract.
  8128  type KittyBreedingBirthIterator struct {
  8129  	Event *KittyBreedingBirth // Event containing the contract specifics and raw log
  8130  
  8131  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  8132  	event    string              // Event name to use for unpacking event data
  8133  
  8134  	logs chan types.Log        // Log channel receiving the found contract events
  8135  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  8136  	done bool                  // Whether the subscription completed delivering logs
  8137  	fail error                 // Occurred error to stop iteration
  8138  }
  8139  
  8140  // Next advances the iterator to the subsequent event, returning whether there
  8141  // are any more events found. In case of a retrieval or parsing error, false is
  8142  // returned and Error() can be queried for the exact failure.
  8143  func (it *KittyBreedingBirthIterator) Next() bool {
  8144  	// If the iterator failed, stop iterating
  8145  	if it.fail != nil {
  8146  		return false
  8147  	}
  8148  	// If the iterator completed, deliver directly whatever's available
  8149  	if it.done {
  8150  		select {
  8151  		case log := <-it.logs:
  8152  			it.Event = new(KittyBreedingBirth)
  8153  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8154  				it.fail = err
  8155  				return false
  8156  			}
  8157  			it.Event.Raw = log
  8158  			return true
  8159  
  8160  		default:
  8161  			return false
  8162  		}
  8163  	}
  8164  	// Iterator still in progress, wait for either a data or an error event
  8165  	select {
  8166  	case log := <-it.logs:
  8167  		it.Event = new(KittyBreedingBirth)
  8168  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8169  			it.fail = err
  8170  			return false
  8171  		}
  8172  		it.Event.Raw = log
  8173  		return true
  8174  
  8175  	case err := <-it.sub.Err():
  8176  		it.done = true
  8177  		it.fail = err
  8178  		return it.Next()
  8179  	}
  8180  }
  8181  
  8182  // Error returns any retrieval or parsing error occurred during filtering.
  8183  func (it *KittyBreedingBirthIterator) Error() error {
  8184  	return it.fail
  8185  }
  8186  
  8187  // Close terminates the iteration process, releasing any pending underlying
  8188  // resources.
  8189  func (it *KittyBreedingBirthIterator) Close() error {
  8190  	it.sub.Unsubscribe()
  8191  	return nil
  8192  }
  8193  
  8194  // KittyBreedingBirth represents a Birth event raised by the KittyBreeding contract.
  8195  type KittyBreedingBirth struct {
  8196  	Owner    common.Address
  8197  	KittyId  *big.Int
  8198  	MatronId *big.Int
  8199  	SireId   *big.Int
  8200  	Genes    *big.Int
  8201  	Raw      types.Log // Blockchain specific contextual infos
  8202  }
  8203  
  8204  // FilterBirth is a free log retrieval operation binding the contract event 0x0a5311bd2a6608f08a180df2ee7c5946819a649b204b554bb8e39825b2c50ad5.
  8205  //
  8206  // Solidity: event Birth(address owner, uint256 kittyId, uint256 matronId, uint256 sireId, uint256 genes)
  8207  func (_KittyBreeding *KittyBreedingFilterer) FilterBirth(opts *bind.FilterOpts) (*KittyBreedingBirthIterator, error) {
  8208  
  8209  	logs, sub, err := _KittyBreeding.contract.FilterLogs(opts, "Birth")
  8210  	if err != nil {
  8211  		return nil, err
  8212  	}
  8213  	return &KittyBreedingBirthIterator{contract: _KittyBreeding.contract, event: "Birth", logs: logs, sub: sub}, nil
  8214  }
  8215  
  8216  // WatchBirth is a free log subscription operation binding the contract event 0x0a5311bd2a6608f08a180df2ee7c5946819a649b204b554bb8e39825b2c50ad5.
  8217  //
  8218  // Solidity: event Birth(address owner, uint256 kittyId, uint256 matronId, uint256 sireId, uint256 genes)
  8219  func (_KittyBreeding *KittyBreedingFilterer) WatchBirth(opts *bind.WatchOpts, sink chan<- *KittyBreedingBirth) (event.Subscription, error) {
  8220  
  8221  	logs, sub, err := _KittyBreeding.contract.WatchLogs(opts, "Birth")
  8222  	if err != nil {
  8223  		return nil, err
  8224  	}
  8225  	return event.NewSubscription(func(quit <-chan struct{}) error {
  8226  		defer sub.Unsubscribe()
  8227  		for {
  8228  			select {
  8229  			case log := <-logs:
  8230  				// New log arrived, parse the event and forward to the user
  8231  				event := new(KittyBreedingBirth)
  8232  				if err := _KittyBreeding.contract.UnpackLog(event, "Birth", log); err != nil {
  8233  					return err
  8234  				}
  8235  				event.Raw = log
  8236  
  8237  				select {
  8238  				case sink <- event:
  8239  				case err := <-sub.Err():
  8240  					return err
  8241  				case <-quit:
  8242  					return nil
  8243  				}
  8244  			case err := <-sub.Err():
  8245  				return err
  8246  			case <-quit:
  8247  				return nil
  8248  			}
  8249  		}
  8250  	}), nil
  8251  }
  8252  
  8253  // ParseBirth is a log parse operation binding the contract event 0x0a5311bd2a6608f08a180df2ee7c5946819a649b204b554bb8e39825b2c50ad5.
  8254  //
  8255  // Solidity: event Birth(address owner, uint256 kittyId, uint256 matronId, uint256 sireId, uint256 genes)
  8256  func (_KittyBreeding *KittyBreedingFilterer) ParseBirth(log types.Log) (*KittyBreedingBirth, error) {
  8257  	event := new(KittyBreedingBirth)
  8258  	if err := _KittyBreeding.contract.UnpackLog(event, "Birth", log); err != nil {
  8259  		return nil, err
  8260  	}
  8261  	event.Raw = log
  8262  	return event, nil
  8263  }
  8264  
  8265  // KittyBreedingContractUpgradeIterator is returned from FilterContractUpgrade and is used to iterate over the raw logs and unpacked data for ContractUpgrade events raised by the KittyBreeding contract.
  8266  type KittyBreedingContractUpgradeIterator struct {
  8267  	Event *KittyBreedingContractUpgrade // Event containing the contract specifics and raw log
  8268  
  8269  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  8270  	event    string              // Event name to use for unpacking event data
  8271  
  8272  	logs chan types.Log        // Log channel receiving the found contract events
  8273  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  8274  	done bool                  // Whether the subscription completed delivering logs
  8275  	fail error                 // Occurred error to stop iteration
  8276  }
  8277  
  8278  // Next advances the iterator to the subsequent event, returning whether there
  8279  // are any more events found. In case of a retrieval or parsing error, false is
  8280  // returned and Error() can be queried for the exact failure.
  8281  func (it *KittyBreedingContractUpgradeIterator) Next() bool {
  8282  	// If the iterator failed, stop iterating
  8283  	if it.fail != nil {
  8284  		return false
  8285  	}
  8286  	// If the iterator completed, deliver directly whatever's available
  8287  	if it.done {
  8288  		select {
  8289  		case log := <-it.logs:
  8290  			it.Event = new(KittyBreedingContractUpgrade)
  8291  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8292  				it.fail = err
  8293  				return false
  8294  			}
  8295  			it.Event.Raw = log
  8296  			return true
  8297  
  8298  		default:
  8299  			return false
  8300  		}
  8301  	}
  8302  	// Iterator still in progress, wait for either a data or an error event
  8303  	select {
  8304  	case log := <-it.logs:
  8305  		it.Event = new(KittyBreedingContractUpgrade)
  8306  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8307  			it.fail = err
  8308  			return false
  8309  		}
  8310  		it.Event.Raw = log
  8311  		return true
  8312  
  8313  	case err := <-it.sub.Err():
  8314  		it.done = true
  8315  		it.fail = err
  8316  		return it.Next()
  8317  	}
  8318  }
  8319  
  8320  // Error returns any retrieval or parsing error occurred during filtering.
  8321  func (it *KittyBreedingContractUpgradeIterator) Error() error {
  8322  	return it.fail
  8323  }
  8324  
  8325  // Close terminates the iteration process, releasing any pending underlying
  8326  // resources.
  8327  func (it *KittyBreedingContractUpgradeIterator) Close() error {
  8328  	it.sub.Unsubscribe()
  8329  	return nil
  8330  }
  8331  
  8332  // KittyBreedingContractUpgrade represents a ContractUpgrade event raised by the KittyBreeding contract.
  8333  type KittyBreedingContractUpgrade struct {
  8334  	NewContract common.Address
  8335  	Raw         types.Log // Blockchain specific contextual infos
  8336  }
  8337  
  8338  // FilterContractUpgrade is a free log retrieval operation binding the contract event 0x450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa446199305.
  8339  //
  8340  // Solidity: event ContractUpgrade(address newContract)
  8341  func (_KittyBreeding *KittyBreedingFilterer) FilterContractUpgrade(opts *bind.FilterOpts) (*KittyBreedingContractUpgradeIterator, error) {
  8342  
  8343  	logs, sub, err := _KittyBreeding.contract.FilterLogs(opts, "ContractUpgrade")
  8344  	if err != nil {
  8345  		return nil, err
  8346  	}
  8347  	return &KittyBreedingContractUpgradeIterator{contract: _KittyBreeding.contract, event: "ContractUpgrade", logs: logs, sub: sub}, nil
  8348  }
  8349  
  8350  // WatchContractUpgrade is a free log subscription operation binding the contract event 0x450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa446199305.
  8351  //
  8352  // Solidity: event ContractUpgrade(address newContract)
  8353  func (_KittyBreeding *KittyBreedingFilterer) WatchContractUpgrade(opts *bind.WatchOpts, sink chan<- *KittyBreedingContractUpgrade) (event.Subscription, error) {
  8354  
  8355  	logs, sub, err := _KittyBreeding.contract.WatchLogs(opts, "ContractUpgrade")
  8356  	if err != nil {
  8357  		return nil, err
  8358  	}
  8359  	return event.NewSubscription(func(quit <-chan struct{}) error {
  8360  		defer sub.Unsubscribe()
  8361  		for {
  8362  			select {
  8363  			case log := <-logs:
  8364  				// New log arrived, parse the event and forward to the user
  8365  				event := new(KittyBreedingContractUpgrade)
  8366  				if err := _KittyBreeding.contract.UnpackLog(event, "ContractUpgrade", log); err != nil {
  8367  					return err
  8368  				}
  8369  				event.Raw = log
  8370  
  8371  				select {
  8372  				case sink <- event:
  8373  				case err := <-sub.Err():
  8374  					return err
  8375  				case <-quit:
  8376  					return nil
  8377  				}
  8378  			case err := <-sub.Err():
  8379  				return err
  8380  			case <-quit:
  8381  				return nil
  8382  			}
  8383  		}
  8384  	}), nil
  8385  }
  8386  
  8387  // ParseContractUpgrade is a log parse operation binding the contract event 0x450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa446199305.
  8388  //
  8389  // Solidity: event ContractUpgrade(address newContract)
  8390  func (_KittyBreeding *KittyBreedingFilterer) ParseContractUpgrade(log types.Log) (*KittyBreedingContractUpgrade, error) {
  8391  	event := new(KittyBreedingContractUpgrade)
  8392  	if err := _KittyBreeding.contract.UnpackLog(event, "ContractUpgrade", log); err != nil {
  8393  		return nil, err
  8394  	}
  8395  	event.Raw = log
  8396  	return event, nil
  8397  }
  8398  
  8399  // KittyBreedingPregnantIterator is returned from FilterPregnant and is used to iterate over the raw logs and unpacked data for Pregnant events raised by the KittyBreeding contract.
  8400  type KittyBreedingPregnantIterator struct {
  8401  	Event *KittyBreedingPregnant // Event containing the contract specifics and raw log
  8402  
  8403  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  8404  	event    string              // Event name to use for unpacking event data
  8405  
  8406  	logs chan types.Log        // Log channel receiving the found contract events
  8407  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  8408  	done bool                  // Whether the subscription completed delivering logs
  8409  	fail error                 // Occurred error to stop iteration
  8410  }
  8411  
  8412  // Next advances the iterator to the subsequent event, returning whether there
  8413  // are any more events found. In case of a retrieval or parsing error, false is
  8414  // returned and Error() can be queried for the exact failure.
  8415  func (it *KittyBreedingPregnantIterator) Next() bool {
  8416  	// If the iterator failed, stop iterating
  8417  	if it.fail != nil {
  8418  		return false
  8419  	}
  8420  	// If the iterator completed, deliver directly whatever's available
  8421  	if it.done {
  8422  		select {
  8423  		case log := <-it.logs:
  8424  			it.Event = new(KittyBreedingPregnant)
  8425  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8426  				it.fail = err
  8427  				return false
  8428  			}
  8429  			it.Event.Raw = log
  8430  			return true
  8431  
  8432  		default:
  8433  			return false
  8434  		}
  8435  	}
  8436  	// Iterator still in progress, wait for either a data or an error event
  8437  	select {
  8438  	case log := <-it.logs:
  8439  		it.Event = new(KittyBreedingPregnant)
  8440  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8441  			it.fail = err
  8442  			return false
  8443  		}
  8444  		it.Event.Raw = log
  8445  		return true
  8446  
  8447  	case err := <-it.sub.Err():
  8448  		it.done = true
  8449  		it.fail = err
  8450  		return it.Next()
  8451  	}
  8452  }
  8453  
  8454  // Error returns any retrieval or parsing error occurred during filtering.
  8455  func (it *KittyBreedingPregnantIterator) Error() error {
  8456  	return it.fail
  8457  }
  8458  
  8459  // Close terminates the iteration process, releasing any pending underlying
  8460  // resources.
  8461  func (it *KittyBreedingPregnantIterator) Close() error {
  8462  	it.sub.Unsubscribe()
  8463  	return nil
  8464  }
  8465  
  8466  // KittyBreedingPregnant represents a Pregnant event raised by the KittyBreeding contract.
  8467  type KittyBreedingPregnant struct {
  8468  	Owner            common.Address
  8469  	MatronId         *big.Int
  8470  	SireId           *big.Int
  8471  	CooldownEndBlock *big.Int
  8472  	Raw              types.Log // Blockchain specific contextual infos
  8473  }
  8474  
  8475  // FilterPregnant is a free log retrieval operation binding the contract event 0x241ea03ca20251805084d27d4440371c34a0b85ff108f6bb5611248f73818b80.
  8476  //
  8477  // Solidity: event Pregnant(address owner, uint256 matronId, uint256 sireId, uint256 cooldownEndBlock)
  8478  func (_KittyBreeding *KittyBreedingFilterer) FilterPregnant(opts *bind.FilterOpts) (*KittyBreedingPregnantIterator, error) {
  8479  
  8480  	logs, sub, err := _KittyBreeding.contract.FilterLogs(opts, "Pregnant")
  8481  	if err != nil {
  8482  		return nil, err
  8483  	}
  8484  	return &KittyBreedingPregnantIterator{contract: _KittyBreeding.contract, event: "Pregnant", logs: logs, sub: sub}, nil
  8485  }
  8486  
  8487  // WatchPregnant is a free log subscription operation binding the contract event 0x241ea03ca20251805084d27d4440371c34a0b85ff108f6bb5611248f73818b80.
  8488  //
  8489  // Solidity: event Pregnant(address owner, uint256 matronId, uint256 sireId, uint256 cooldownEndBlock)
  8490  func (_KittyBreeding *KittyBreedingFilterer) WatchPregnant(opts *bind.WatchOpts, sink chan<- *KittyBreedingPregnant) (event.Subscription, error) {
  8491  
  8492  	logs, sub, err := _KittyBreeding.contract.WatchLogs(opts, "Pregnant")
  8493  	if err != nil {
  8494  		return nil, err
  8495  	}
  8496  	return event.NewSubscription(func(quit <-chan struct{}) error {
  8497  		defer sub.Unsubscribe()
  8498  		for {
  8499  			select {
  8500  			case log := <-logs:
  8501  				// New log arrived, parse the event and forward to the user
  8502  				event := new(KittyBreedingPregnant)
  8503  				if err := _KittyBreeding.contract.UnpackLog(event, "Pregnant", log); err != nil {
  8504  					return err
  8505  				}
  8506  				event.Raw = log
  8507  
  8508  				select {
  8509  				case sink <- event:
  8510  				case err := <-sub.Err():
  8511  					return err
  8512  				case <-quit:
  8513  					return nil
  8514  				}
  8515  			case err := <-sub.Err():
  8516  				return err
  8517  			case <-quit:
  8518  				return nil
  8519  			}
  8520  		}
  8521  	}), nil
  8522  }
  8523  
  8524  // ParsePregnant is a log parse operation binding the contract event 0x241ea03ca20251805084d27d4440371c34a0b85ff108f6bb5611248f73818b80.
  8525  //
  8526  // Solidity: event Pregnant(address owner, uint256 matronId, uint256 sireId, uint256 cooldownEndBlock)
  8527  func (_KittyBreeding *KittyBreedingFilterer) ParsePregnant(log types.Log) (*KittyBreedingPregnant, error) {
  8528  	event := new(KittyBreedingPregnant)
  8529  	if err := _KittyBreeding.contract.UnpackLog(event, "Pregnant", log); err != nil {
  8530  		return nil, err
  8531  	}
  8532  	event.Raw = log
  8533  	return event, nil
  8534  }
  8535  
  8536  // KittyBreedingTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the KittyBreeding contract.
  8537  type KittyBreedingTransferIterator struct {
  8538  	Event *KittyBreedingTransfer // Event containing the contract specifics and raw log
  8539  
  8540  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  8541  	event    string              // Event name to use for unpacking event data
  8542  
  8543  	logs chan types.Log        // Log channel receiving the found contract events
  8544  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  8545  	done bool                  // Whether the subscription completed delivering logs
  8546  	fail error                 // Occurred error to stop iteration
  8547  }
  8548  
  8549  // Next advances the iterator to the subsequent event, returning whether there
  8550  // are any more events found. In case of a retrieval or parsing error, false is
  8551  // returned and Error() can be queried for the exact failure.
  8552  func (it *KittyBreedingTransferIterator) Next() bool {
  8553  	// If the iterator failed, stop iterating
  8554  	if it.fail != nil {
  8555  		return false
  8556  	}
  8557  	// If the iterator completed, deliver directly whatever's available
  8558  	if it.done {
  8559  		select {
  8560  		case log := <-it.logs:
  8561  			it.Event = new(KittyBreedingTransfer)
  8562  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8563  				it.fail = err
  8564  				return false
  8565  			}
  8566  			it.Event.Raw = log
  8567  			return true
  8568  
  8569  		default:
  8570  			return false
  8571  		}
  8572  	}
  8573  	// Iterator still in progress, wait for either a data or an error event
  8574  	select {
  8575  	case log := <-it.logs:
  8576  		it.Event = new(KittyBreedingTransfer)
  8577  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8578  			it.fail = err
  8579  			return false
  8580  		}
  8581  		it.Event.Raw = log
  8582  		return true
  8583  
  8584  	case err := <-it.sub.Err():
  8585  		it.done = true
  8586  		it.fail = err
  8587  		return it.Next()
  8588  	}
  8589  }
  8590  
  8591  // Error returns any retrieval or parsing error occurred during filtering.
  8592  func (it *KittyBreedingTransferIterator) Error() error {
  8593  	return it.fail
  8594  }
  8595  
  8596  // Close terminates the iteration process, releasing any pending underlying
  8597  // resources.
  8598  func (it *KittyBreedingTransferIterator) Close() error {
  8599  	it.sub.Unsubscribe()
  8600  	return nil
  8601  }
  8602  
  8603  // KittyBreedingTransfer represents a Transfer event raised by the KittyBreeding contract.
  8604  type KittyBreedingTransfer struct {
  8605  	From    common.Address
  8606  	To      common.Address
  8607  	TokenId *big.Int
  8608  	Raw     types.Log // Blockchain specific contextual infos
  8609  }
  8610  
  8611  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  8612  //
  8613  // Solidity: event Transfer(address from, address to, uint256 tokenId)
  8614  func (_KittyBreeding *KittyBreedingFilterer) FilterTransfer(opts *bind.FilterOpts) (*KittyBreedingTransferIterator, error) {
  8615  
  8616  	logs, sub, err := _KittyBreeding.contract.FilterLogs(opts, "Transfer")
  8617  	if err != nil {
  8618  		return nil, err
  8619  	}
  8620  	return &KittyBreedingTransferIterator{contract: _KittyBreeding.contract, event: "Transfer", logs: logs, sub: sub}, nil
  8621  }
  8622  
  8623  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  8624  //
  8625  // Solidity: event Transfer(address from, address to, uint256 tokenId)
  8626  func (_KittyBreeding *KittyBreedingFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *KittyBreedingTransfer) (event.Subscription, error) {
  8627  
  8628  	logs, sub, err := _KittyBreeding.contract.WatchLogs(opts, "Transfer")
  8629  	if err != nil {
  8630  		return nil, err
  8631  	}
  8632  	return event.NewSubscription(func(quit <-chan struct{}) error {
  8633  		defer sub.Unsubscribe()
  8634  		for {
  8635  			select {
  8636  			case log := <-logs:
  8637  				// New log arrived, parse the event and forward to the user
  8638  				event := new(KittyBreedingTransfer)
  8639  				if err := _KittyBreeding.contract.UnpackLog(event, "Transfer", log); err != nil {
  8640  					return err
  8641  				}
  8642  				event.Raw = log
  8643  
  8644  				select {
  8645  				case sink <- event:
  8646  				case err := <-sub.Err():
  8647  					return err
  8648  				case <-quit:
  8649  					return nil
  8650  				}
  8651  			case err := <-sub.Err():
  8652  				return err
  8653  			case <-quit:
  8654  				return nil
  8655  			}
  8656  		}
  8657  	}), nil
  8658  }
  8659  
  8660  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  8661  //
  8662  // Solidity: event Transfer(address from, address to, uint256 tokenId)
  8663  func (_KittyBreeding *KittyBreedingFilterer) ParseTransfer(log types.Log) (*KittyBreedingTransfer, error) {
  8664  	event := new(KittyBreedingTransfer)
  8665  	if err := _KittyBreeding.contract.UnpackLog(event, "Transfer", log); err != nil {
  8666  		return nil, err
  8667  	}
  8668  	event.Raw = log
  8669  	return event, nil
  8670  }
  8671  
  8672  // KittyCoreABI is the input ABI used to generate the binding from.
  8673  const KittyCoreABI = "[{\"constant\":true,\"inputs\":[{\"name\":\"_interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cfoAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_preferredTransport\",\"type\":\"string\"}],\"name\":\"tokenMetadata\",\"outputs\":[{\"name\":\"infoUrl\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"promoCreatedCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ceoAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"GEN0_STARTING_PRICE\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setSiringAuctionAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pregnantKitties\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_kittyId\",\"type\":\"uint256\"}],\"name\":\"isPregnant\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"GEN0_AUCTION_DURATION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"siringAuction\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setGeneScienceAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newCEO\",\"type\":\"address\"}],\"name\":\"setCEO\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newCOO\",\"type\":\"address\"}],\"name\":\"setCOO\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_kittyId\",\"type\":\"uint256\"},{\"name\":\"_startingPrice\",\"type\":\"uint256\"},{\"name\":\"_endingPrice\",\"type\":\"uint256\"},{\"name\":\"_duration\",\"type\":\"uint256\"}],\"name\":\"createSaleAuction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"sireAllowedToAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_matronId\",\"type\":\"uint256\"},{\"name\":\"_sireId\",\"type\":\"uint256\"}],\"name\":\"canBreedWith\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"kittyIndexToApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_kittyId\",\"type\":\"uint256\"},{\"name\":\"_startingPrice\",\"type\":\"uint256\"},{\"name\":\"_endingPrice\",\"type\":\"uint256\"},{\"name\":\"_duration\",\"type\":\"uint256\"}],\"name\":\"createSiringAuction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"setAutoBirthFee\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_addr\",\"type\":\"address\"},{\"name\":\"_sireId\",\"type\":\"uint256\"}],\"name\":\"approveSiring\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newCFO\",\"type\":\"address\"}],\"name\":\"setCFO\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_genes\",\"type\":\"uint256\"},{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"createPromoKitty\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"secs\",\"type\":\"uint256\"}],\"name\":\"setSecondsPerBlock\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"withdrawBalance\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"GEN0_CREATION_LIMIT\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"newContractAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setSaleAuctionAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"count\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_v2Address\",\"type\":\"address\"}],\"name\":\"setNewAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"secondsPerBlock\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"tokensOfOwner\",\"outputs\":[{\"name\":\"ownerTokens\",\"type\":\"uint256[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_matronId\",\"type\":\"uint256\"}],\"name\":\"giveBirth\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"withdrawAuctionBalances\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"cooldowns\",\"outputs\":[{\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"kittyIndexToOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cooAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"autoBirthFee\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"erc721Metadata\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_genes\",\"type\":\"uint256\"}],\"name\":\"createGen0Auction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_kittyId\",\"type\":\"uint256\"}],\"name\":\"isReadyToBreed\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PROMO_CREATION_LIMIT\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_contractAddress\",\"type\":\"address\"}],\"name\":\"setMetadataAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"saleAuction\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_id\",\"type\":\"uint256\"}],\"name\":\"getKitty\",\"outputs\":[{\"name\":\"isGestating\",\"type\":\"bool\"},{\"name\":\"isReady\",\"type\":\"bool\"},{\"name\":\"cooldownIndex\",\"type\":\"uint256\"},{\"name\":\"nextActionAt\",\"type\":\"uint256\"},{\"name\":\"siringWithId\",\"type\":\"uint256\"},{\"name\":\"birthTime\",\"type\":\"uint256\"},{\"name\":\"matronId\",\"type\":\"uint256\"},{\"name\":\"sireId\",\"type\":\"uint256\"},{\"name\":\"generation\",\"type\":\"uint256\"},{\"name\":\"genes\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sireId\",\"type\":\"uint256\"},{\"name\":\"_matronId\",\"type\":\"uint256\"}],\"name\":\"bidOnSiringAuction\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"gen0CreatedCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"geneScience\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_matronId\",\"type\":\"uint256\"},{\"name\":\"_sireId\",\"type\":\"uint256\"}],\"name\":\"breedWithAuto\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"matronId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"sireId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"cooldownEndBlock\",\"type\":\"uint256\"}],\"name\":\"Pregnant\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"kittyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"matronId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"sireId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"genes\",\"type\":\"uint256\"}],\"name\":\"Birth\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"newContract\",\"type\":\"address\"}],\"name\":\"ContractUpgrade\",\"type\":\"event\"}]"
  8674  
  8675  // KittyCoreFuncSigs maps the 4-byte function signature to its string representation.
  8676  var KittyCoreFuncSigs = map[string]string{
  8677  	"19c2f201": "GEN0_AUCTION_DURATION()",
  8678  	"680eba27": "GEN0_CREATION_LIMIT()",
  8679  	"0e583df0": "GEN0_STARTING_PRICE()",
  8680  	"defb9584": "PROMO_CREATION_LIMIT()",
  8681  	"095ea7b3": "approve(address,uint256)",
  8682  	"4dfff04f": "approveSiring(address,uint256)",
  8683  	"b0c35c05": "autoBirthFee()",
  8684  	"70a08231": "balanceOf(address)",
  8685  	"ed60ade6": "bidOnSiringAuction(uint256,uint256)",
  8686  	"f7d8c883": "breedWithAuto(uint256,uint256)",
  8687  	"46d22c70": "canBreedWith(uint256,uint256)",
  8688  	"0a0f8168": "ceoAddress()",
  8689  	"0519ce79": "cfoAddress()",
  8690  	"b047fb50": "cooAddress()",
  8691  	"9d6fac6f": "cooldowns(uint256)",
  8692  	"c3bea9af": "createGen0Auction(uint256)",
  8693  	"56129134": "createPromoKitty(uint256,address)",
  8694  	"3d7d3f5a": "createSaleAuction(uint256,uint256,uint256,uint256)",
  8695  	"4ad8c938": "createSiringAuction(uint256,uint256,uint256,uint256)",
  8696  	"bc4006f5": "erc721Metadata()",
  8697  	"f1ca9410": "gen0CreatedCount()",
  8698  	"f2b47d52": "geneScience()",
  8699  	"e98b7f4d": "getKitty(uint256)",
  8700  	"88c2a0bf": "giveBirth(uint256)",
  8701  	"1940a936": "isPregnant(uint256)",
  8702  	"d3e6f49f": "isReadyToBreed(uint256)",
  8703  	"481af3d3": "kittyIndexToApproved(uint256)",
  8704  	"a45f4bfc": "kittyIndexToOwner(uint256)",
  8705  	"06fdde03": "name()",
  8706  	"6af04a57": "newContractAddress()",
  8707  	"6352211e": "ownerOf(uint256)",
  8708  	"8456cb59": "pause()",
  8709  	"5c975abb": "paused()",
  8710  	"183a7947": "pregnantKitties()",
  8711  	"05e45546": "promoCreatedCount()",
  8712  	"e6cbe351": "saleAuction()",
  8713  	"7a7d4937": "secondsPerBlock()",
  8714  	"4b85fd55": "setAutoBirthFee(uint256)",
  8715  	"27d7874c": "setCEO(address)",
  8716  	"4e0a3379": "setCFO(address)",
  8717  	"2ba73c15": "setCOO(address)",
  8718  	"24e7a38a": "setGeneScienceAddress(address)",
  8719  	"e17b25af": "setMetadataAddress(address)",
  8720  	"71587988": "setNewAddress(address)",
  8721  	"6fbde40d": "setSaleAuctionAddress(address)",
  8722  	"5663896e": "setSecondsPerBlock(uint256)",
  8723  	"14001f4c": "setSiringAuctionAddress(address)",
  8724  	"46116e6f": "sireAllowedToAddress(uint256)",
  8725  	"21717ebf": "siringAuction()",
  8726  	"01ffc9a7": "supportsInterface(bytes4)",
  8727  	"95d89b41": "symbol()",
  8728  	"0560ff44": "tokenMetadata(uint256,string)",
  8729  	"8462151c": "tokensOfOwner(address)",
  8730  	"18160ddd": "totalSupply()",
  8731  	"a9059cbb": "transfer(address,uint256)",
  8732  	"23b872dd": "transferFrom(address,address,uint256)",
  8733  	"3f4ba83a": "unpause()",
  8734  	"91876e57": "withdrawAuctionBalances()",
  8735  	"5fd8c710": "withdrawBalance()",
  8736  }
  8737  
  8738  // KittyCoreBin is the compiled bytecode used for deploying new contracts.
  8739  var KittyCoreBin = "0x606060409081526002805460a060020a60ff02191690556101c090519081016040908152603c82526078602083015261012c9082015261025860608201526107086080820152610e1060a0820152611c2060c082015261384060e082015261708061010082015261e100610120820152620151806101408201526202a3006101608201526205460061018082015262093a806101a0820152620000a790600390600e620004e4565b50600f60055566071afd498d0000600e553415620000c457600080fd5b6002805460008054600160a060020a033316600160a060020a03199182168117835560a060020a60ff02199093167401000000000000000000000000000000000000000017169091179091556200012f908080600019816401000000006200288e6200013682021704565b5062000649565b6000806200014362000587565b600063ffffffff891689146200015857600080fd5b63ffffffff881688146200016b57600080fd5b61ffff871687146200017c57600080fd5b600287049250600d8361ffff1611156200019557600d92505b61010060405190810160409081528782526001604060020a0342166020830152600090820181905263ffffffff808c1660608401528a16608083015260a082015261ffff80851660c0830152881660e082015260068054919350600191808301620002018382620005cb565b6000928352602090922085916002020181518155602082015160018201805467ffffffffffffffff19166001604060020a039290921691909117905560408201518160010160086101000a8154816001604060020a0302191690836001604060020a0316021790555060608201518160010160106101000a81548163ffffffff021916908363ffffffff16021790555060808201518160010160146101000a81548163ffffffff021916908363ffffffff16021790555060a08201518160010160186101000a81548163ffffffff021916908363ffffffff16021790555060c082015181600101601c6101000a81548161ffff021916908361ffff16021790555060e08201516001909101805461ffff929092167e0100000000000000000000000000000000000000000000000000000000000002600160f060020a039092169190911790555003905063ffffffff811681146200035e57600080fd5b7f0a5311bd2a6608f08a180df2ee7c5946819a649b204b554bb8e39825b2c50ad58582846060015163ffffffff16856080015163ffffffff168651604051600160a060020a03909516855260208501939093526040808501929092526060840152608083019190915260a0909101905180910390a1620003ef600086836401000000006200257e620003fb82021704565b98975050505050505050565b600160a060020a03808316600081815260086020908152604080832080546001019055858352600790915290208054600160a060020a03191690911790558316156200048f57600160a060020a03831660009081526008602090815260408083208054600019019055838352600a82528083208054600160a060020a03199081169091556009909252909120805490911690555b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a1505050565b600283019183908215620005755791602002820160005b838211156200054157835183826101000a81548163ffffffff021916908363ffffffff1602179055509260200192600401602081600301049283019260010302620004fb565b8015620005735782816101000a81549063ffffffff021916905560040160208160030104928301926001030262000541565b505b5062000583929150620005ff565b5090565b6101006040519081016040908152600080835260208301819052908201819052606082018190526080820181905260a0820181905260c0820181905260e082015290565b815481835581811511620005fa57600202816002028360005260206000209182019101620005fa919062000626565b505050565b6200062391905b808211156200058357805463ffffffff1916815560010162000606565b90565b6200062391905b808211156200058357600080825560018201556002016200062d565b61302580620006596000396000f3006060604052600436106102a55763ffffffff60e060020a60003504166301ffc9a781146102dd5780630519ce79146103295780630560ff441461035857806305e45546146103f157806306fdde0314610416578063095ea7b3146104295780630a0f81681461044b5780630e583df01461045e57806314001f4c1461047157806318160ddd14610490578063183a7947146104a35780631940a936146104b657806319c2f201146104cc57806321717ebf146104df57806323b872dd146104f257806324e7a38a1461051a57806327d7874c146105395780632ba73c15146105585780633d7d3f5a146105775780633f4ba83a1461059657806346116e6f146105a957806346d22c70146105bf578063481af3d3146105d85780634ad8c938146105ee5780634b85fd551461060d5780634dfff04f146106235780634e0a33791461064557806356129134146106645780635663896e146106865780635c975abb1461069c5780635fd8c710146106af5780636352211e146106c2578063680eba27146106d85780636af04a57146106eb5780636fbde40d146106fe57806370a082311461071d578063715879881461073c5780637a7d49371461075b5780638456cb591461076e5780638462151c1461078157806388c2a0bf146107f357806391876e571461080957806395d89b411461081c5780639d6fac6f1461082f578063a45f4bfc1461085e578063a9059cbb14610874578063b047fb5014610896578063b0c35c05146108a9578063bc4006f5146108bc578063c3bea9af146108cf578063d3e6f49f146108e5578063defb9584146108fb578063e17b25af1461090e578063e6cbe3511461092d578063e98b7f4d14610940578063ed60ade6146109ae578063f1ca9410146109bc578063f2b47d52146109cf578063f7d8c883146109e2575b600b5433600160a060020a03908116911614806102d05750600c5433600160a060020a039081169116145b15156102db57600080fd5b005b34156102e857600080fd5b6103157fffffffff00000000000000000000000000000000000000000000000000000000600435166109f0565b604051901515815260200160405180910390f35b341561033457600080fd5b61033c610c77565b604051600160a060020a03909116815260200160405180910390f35b341561036357600080fd5b61037a600480359060248035908101910135610c86565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156103b657808201518382015260200161039e565b50505050905090810190601f1680156103e35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103fc57600080fd5b610404610d56565b60405190815260200160405180910390f35b341561042157600080fd5b61037a610d5c565b341561043457600080fd5b6102db600160a060020a0360043516602435610d93565b341561045657600080fd5b61033c610e1d565b341561046957600080fd5b610404610e2c565b341561047c57600080fd5b6102db600160a060020a0360043516610e37565b341561049b57600080fd5b610404610ed7565b34156104ae57600080fd5b610404610ee2565b34156104c157600080fd5b610315600435610ee8565b34156104d757600080fd5b610404610f2d565b34156104ea57600080fd5b61033c610f34565b34156104fd57600080fd5b6102db600160a060020a0360043581169060243516604435610f43565b341561052557600080fd5b6102db600160a060020a0360043516610fca565b341561054457600080fd5b6102db600160a060020a036004351661106a565b341561056357600080fd5b6102db600160a060020a03600435166110bc565b341561058257600080fd5b6102db60043560243560443560643561110e565b34156105a157600080fd5b6102db6111e9565b34156105b457600080fd5b61033c600435611281565b34156105ca57600080fd5b61031560043560243561129c565b34156105e357600080fd5b61033c60043561131c565b34156105f957600080fd5b6102db600435602435604435606435611337565b341561061857600080fd5b6102db6004356113fd565b341561062e57600080fd5b6102db600160a060020a036004351660243561141d565b341561065057600080fd5b6102db600160a060020a0360043516611477565b341561066f57600080fd5b6102db600435600160a060020a03602435166114c9565b341561069157600080fd5b6102db600435611535565b34156106a757600080fd5b61031561159d565b34156106ba57600080fd5b6102db6115ad565b34156106cd57600080fd5b61033c60043561161e565b34156106e357600080fd5b610404611642565b34156106f657600080fd5b61033c611648565b341561070957600080fd5b6102db600160a060020a0360043516611657565b341561072857600080fd5b610404600160a060020a03600435166116f7565b341561074757600080fd5b6102db600160a060020a0360043516611712565b341561076657600080fd5b6104046117a0565b341561077957600080fd5b6102db6117a6565b341561078c57600080fd5b6107a0600160a060020a0360043516611832565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156107df5780820151838201526020016107c7565b505050509050019250505060405180910390f35b34156107fe57600080fd5b610404600435611913565b341561081457600080fd5b6102db611bd6565b341561082757600080fd5b61037a611cc1565b341561083a57600080fd5b610845600435611cf8565b60405163ffffffff909116815260200160405180910390f35b341561086957600080fd5b61033c600435611d25565b341561087f57600080fd5b6102db600160a060020a0360043516602435611d40565b34156108a157600080fd5b61033c611de3565b34156108b457600080fd5b610404611df2565b34156108c757600080fd5b61033c611df8565b34156108da57600080fd5b6102db600435611e07565b34156108f057600080fd5b610315600435611ef6565b341561090657600080fd5b610404611fbf565b341561091957600080fd5b6102db600160a060020a0360043516611fc5565b341561093857600080fd5b61033c612002565b341561094b57600080fd5b610956600435612011565b6040519915158a5297151560208a01526040808a01979097526060890195909552608088019390935260a087019190915260c086015260e0850152610100840152610120830191909152610140909101905180910390f35b6102db600435602435612172565b34156109c757600080fd5b6104046122b4565b34156109da57600080fd5b61033c6122ba565b6102db6004356024356122c9565b60006040517f737570706f727473496e7465726661636528627974657334290000000000000081526019016040518091039020600160e060020a03191682600160e060020a0319161480610c6f57506040517f746f6b656e4d657461646174612875696e743235362c737472696e67290000008152601d0160405180910390206040517f746f6b656e734f664f776e657228616464726573732900000000000000000000815260160160405180910390206040517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f7432353629000000000000000000000000000000000000000000000000000000602082015260250160405180910390206040517f7472616e7366657228616464726573732c75696e743235362900000000000000815260190160405180910390206040517f617070726f766528616464726573732c75696e74323536290000000000000000815260180160405180910390206040517f6f776e65724f662875696e743235362900000000000000000000000000000000815260100160405180910390206040517f62616c616e63654f662861646472657373290000000000000000000000000000815260120160405180910390206040517f746f74616c537570706c792829000000000000000000000000000000000000008152600d0160405180910390206040517f73796d626f6c2829000000000000000000000000000000000000000000000000815260080160405180910390206040517f6e616d652829000000000000000000000000000000000000000000000000000081526006016040518091039020181818181818181818600160e060020a03191682600160e060020a031916145b90505b919050565b600154600160a060020a031681565b610c8e612f32565b610c96612f44565b600d54600090600160a060020a03161515610cb057600080fd5b600d54600160a060020a031663cb4799f287878760405160e060020a63ffffffff861602815260048101848152604060248301908152604483018490529091606401848480828437820191505094505050505060a060405180830381600087803b1515610d1c57600080fd5b5af11515610d2957600080fd5b50505060405180608001805160209091016040529092509050610d4c82826124bb565b9695505050505050565b60115481565b60408051908101604052600d81527f43727970746f4b69747469657300000000000000000000000000000000000000602082015281565b60025460a060020a900460ff1615610daa57600080fd5b610db43382612510565b1515610dbf57600080fd5b610dc98183612530565b7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925338383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a15050565b600054600160a060020a031681565b662386f26fc1000081565b6000805433600160a060020a03908116911614610e5357600080fd5b5080600160a060020a0381166376190f8f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e9257600080fd5b5af11515610e9f57600080fd5b505050604051805190501515610eb457600080fd5b600c8054600160a060020a031916600160a060020a039290921691909117905550565b600654600019015b90565b600f5481565b6000808211610ef657600080fd5b6006805483908110610f0457fe5b600091825260209091206002909102016001015460c060020a900463ffffffff16151592915050565b6201518081565b600c54600160a060020a031681565b60025460a060020a900460ff1615610f5a57600080fd5b600160a060020a0382161515610f6f57600080fd5b30600160a060020a031682600160a060020a031614151515610f9057600080fd5b610f9a338261255e565b1515610fa557600080fd5b610faf8382612510565b1515610fba57600080fd5b610fc583838361257e565b505050565b6000805433600160a060020a03908116911614610fe657600080fd5b5080600160a060020a0381166354c15b826040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561102557600080fd5b5af1151561103257600080fd5b50505060405180519050151561104757600080fd5b60108054600160a060020a031916600160a060020a039290921691909117905550565b60005433600160a060020a0390811691161461108557600080fd5b600160a060020a038116151561109a57600080fd5b60008054600160a060020a031916600160a060020a0392909216919091179055565b60005433600160a060020a039081169116146110d757600080fd5b600160a060020a03811615156110ec57600080fd5b60028054600160a060020a031916600160a060020a0392909216919091179055565b60025460a060020a900460ff161561112557600080fd5b61112f3385612510565b151561113a57600080fd5b61114384610ee8565b1561114d57600080fd5b600b54611164908590600160a060020a0316612530565b600b54600160a060020a03166327ebe40a858585853360405160e060020a63ffffffff88160281526004810195909552602485019390935260448401919091526064830152600160a060020a0316608482015260a401600060405180830381600087803b15156111d357600080fd5b5af115156111e057600080fd5b50505050505050565b60005433600160a060020a0390811691161461120457600080fd5b60025460a060020a900460ff16151561121c57600080fd5b600b54600160a060020a0316151561123357600080fd5b600c54600160a060020a0316151561124a57600080fd5b601054600160a060020a0316151561126157600080fd5b601354600160a060020a03161561127757600080fd5b61127f612666565b565b600a60205260009081526040902054600160a060020a031681565b600080808085116112ac57600080fd5b600084116112b957600080fd5b60068054869081106112c757fe5b906000526020600020906002020191506006848154811015156112e657fe5b90600052602060002090600202019050611302828683876126b9565b801561131357506113138486612839565b95945050505050565b600960205260009081526040902054600160a060020a031681565b60025460a060020a900460ff161561134e57600080fd5b6113583385612510565b151561136357600080fd5b61136c84611ef6565b151561137757600080fd5b600c5461138e908590600160a060020a0316612530565b600c54600160a060020a03166327ebe40a858585853360405160e060020a63ffffffff88160281526004810195909552602485019390935260448401919091526064830152600160a060020a0316608482015260a401600060405180830381600087803b15156111d357600080fd5b60025433600160a060020a0390811691161461141857600080fd5b600e55565b60025460a060020a900460ff161561143457600080fd5b61143e3382612510565b151561144957600080fd5b6000908152600a602052604090208054600160a060020a031916600160a060020a0392909216919091179055565b60005433600160a060020a0390811691161461149257600080fd5b600160a060020a03811615156114a757600080fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60025460009033600160a060020a039081169116146114e757600080fd5b5080600160a060020a03811615156115075750600254600160a060020a03165b601154611388901061151857600080fd5b60118054600101905561152f60008080868561288e565b50505050565b60025433600160a060020a0390811691161480611560575060005433600160a060020a039081169116145b80611579575060015433600160a060020a039081169116145b151561158457600080fd5b60035463ffffffff16811061159857600080fd5b600555565b60025460a060020a900460ff1681565b600154600090819033600160a060020a039081169116146115cd57600080fd5b30600160a060020a0316319150600e54600f546001010290508082111561161a57600154600160a060020a031681830380156108fc0290604051600060405180830381858888f150505050505b5050565b600081815260076020526040902054600160a060020a0316801515610c7257600080fd5b61afc881565b601354600160a060020a031681565b6000805433600160a060020a0390811691161461167357600080fd5b5080600160a060020a0381166385b861886040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156116b257600080fd5b5af115156116bf57600080fd5b5050506040518051905015156116d457600080fd5b600b8054600160a060020a031916600160a060020a039290921691909117905550565b600160a060020a031660009081526008602052604090205490565b60005433600160a060020a0390811691161461172d57600080fd5b60025460a060020a900460ff16151561174557600080fd5b60138054600160a060020a031916600160a060020a0383161790557f450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa44619930581604051600160a060020a03909116815260200160405180910390a150565b60055481565b60025433600160a060020a03908116911614806117d1575060005433600160a060020a039081169116145b806117ea575060015433600160a060020a039081169116145b15156117f557600080fd5b60025460a060020a900460ff161561180c57600080fd5b6002805474ff0000000000000000000000000000000000000000191660a060020a179055565b61183a612f32565b6000611844612f32565b6000806000611852876116f7565b945084151561188257600060405180591061186a5750595b90808252806020026020018201604052509550611909565b846040518059106118905750595b908082528060200260200182016040525093506118ab610ed7565b925060009150600190505b82811161190557600081815260076020526040902054600160a060020a03888116911614156118fd57808483815181106118ec57fe5b602090810290910101526001909101905b6001016118b6565b8395505b5050505050919050565b600080600080600080600080600260149054906101000a900460ff1615151561193b57600080fd5b600680548a90811061194957fe5b60009182526020909120600290910201600181015490975067ffffffffffffffff16151561197657600080fd5b611a0b8761010060405190810160409081528254825260019092015467ffffffffffffffff8082166020840152680100000000000000008204169282019290925263ffffffff608060020a83048116606083015260a060020a83048116608083015260c060020a83041660a082015261ffff60e060020a8304811660c083015260f060020a90920490911660e0820152612b3a565b1515611a1657600080fd5b60018701546006805460c060020a90920463ffffffff1697509087908110611a3a57fe5b600091825260209091206001808a015460029093029091019081015490965061ffff60f060020a92839004811696509190041684901115611a8857600185015460f060020a900461ffff1693505b6010548754865460018a0154600160a060020a0390931692630d9f5aed92919068010000000000000000900467ffffffffffffffff166000190160405160e060020a63ffffffff86160281526004810193909352602483019190915267ffffffffffffffff166044820152606401602060405180830381600087803b1515611b0f57600080fd5b5af11515611b1c57600080fd5b505050604051805160008b81526007602052604090205460018a810154929650600160a060020a039091169450611b6b92508b9160c060020a900463ffffffff1690870161ffff16868661288e565b6001880180547bffffffff00000000000000000000000000000000000000000000000019169055600f8054600019019055600e54909150600160a060020a0333169080156108fc0290604051600060405180830381858888f150939c9b505050505050505050505050565b60025433600160a060020a0390811691161480611c01575060005433600160a060020a039081169116145b80611c1a575060015433600160a060020a039081169116145b1515611c2557600080fd5b600b54600160a060020a0316635fd8c7106040518163ffffffff1660e060020a028152600401600060405180830381600087803b1515611c6457600080fd5b5af11515611c7157600080fd5b5050600c54600160a060020a03169050635fd8c7106040518163ffffffff1660e060020a028152600401600060405180830381600087803b1515611cb457600080fd5b5af11515610fc557600080fd5b60408051908101604052600281527f434b000000000000000000000000000000000000000000000000000000000000602082015281565b600381600e8110611d0557fe5b60089182820401919006600402915054906101000a900463ffffffff1681565b600760205260009081526040902054600160a060020a031681565b60025460a060020a900460ff1615611d5757600080fd5b600160a060020a0382161515611d6c57600080fd5b30600160a060020a031682600160a060020a031614151515611d8d57600080fd5b600b54600160a060020a0383811691161415611da857600080fd5b600c54600160a060020a0383811691161415611dc357600080fd5b611dcd3382612510565b1515611dd857600080fd5b61161a33838361257e565b600254600160a060020a031681565b600e5481565b600d54600160a060020a031681565b60025460009033600160a060020a03908116911614611e2557600080fd5b60125461afc89010611e3657600080fd5b611e456000806000853061288e565b600b54909150611e5f908290600160a060020a0316612530565b600b54600160a060020a03166327ebe40a82611e79612b72565b6000620151803060405160e060020a63ffffffff88160281526004810195909552602485019390935260448401919091526064830152600160a060020a0316608482015260a401600060405180830381600087803b1515611ed957600080fd5b5af11515611ee657600080fd5b5050601280546001019055505050565b600080808311611f0557600080fd5b6006805484908110611f1357fe5b90600052602060002090600202019050611fb88161010060405190810160409081528254825260019092015467ffffffffffffffff8082166020840152680100000000000000008204169282019290925263ffffffff608060020a83048116606083015260a060020a83048116608083015260c060020a83041660a082015261ffff60e060020a8304811660c083015260f060020a90920490911660e0820152612c14565b9392505050565b61138881565b60005433600160a060020a03908116911614611fe057600080fd5b600d8054600160a060020a031916600160a060020a0392909216919091179055565b600b54600160a060020a031681565b600080600080600080600080600080600060068c81548110151561203157fe5b906000526020600020906002020190508060010160189054906101000a900463ffffffff1663ffffffff16600014159a50438160010160089054906101000a900467ffffffffffffffff1667ffffffffffffffff161115995080600101601c9054906101000a900461ffff1661ffff1698508060010160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1697508060010160189054906101000a900463ffffffff1663ffffffff1696508060010160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1695508060010160109054906101000a900463ffffffff1663ffffffff1694508060010160149054906101000a900463ffffffff1663ffffffff16935080600101601e9054906101000a900461ffff1661ffff16925080600001549150509193959799509193959799565b60025460009060a060020a900460ff161561218c57600080fd5b6121963383612510565b15156121a157600080fd5b6121aa82611ef6565b15156121b557600080fd5b6121bf8284612c4b565b15156121ca57600080fd5b600c54600160a060020a031663c55d0f568460405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561221257600080fd5b5af1151561221f57600080fd5b5050506040518051600e549092508201341015905061223d57600080fd5b600c54600e54600160a060020a039091169063454a2ab39034038560405160e060020a63ffffffff851602815260048101919091526024016000604051808303818588803b151561228d57600080fd5b5af1151561229a57600080fd5b50505050610fc58263ffffffff168463ffffffff16612c9a565b60125481565b601054600160a060020a031681565b600254600090819060a060020a900460ff16156122e557600080fd5b600e543410156122f457600080fd5b6122fe3385612510565b151561230957600080fd5b6123138385612839565b151561231e57600080fd5b600680548590811061232c57fe5b906000526020600020906002020191506123d18261010060405190810160409081528254825260019092015467ffffffffffffffff8082166020840152680100000000000000008204169282019290925263ffffffff608060020a83048116606083015260a060020a83048116608083015260c060020a83041660a082015261ffff60e060020a8304811660c083015260f060020a90920490911660e0820152612c14565b15156123dc57600080fd5b60068054849081106123ea57fe5b9060005260206000209060020201905061248f8161010060405190810160409081528254825260019092015467ffffffffffffffff8082166020840152680100000000000000008204169282019290925263ffffffff608060020a83048116606083015260a060020a83048116608083015260c060020a83041660a082015261ffff60e060020a8304811660c083015260f060020a90920490911660e0820152612c14565b151561249a57600080fd5b6124a6828583866126b9565b15156124b157600080fd5b61152f8484612c9a565b6124c3612f32565b6124cb612f32565b600080846040518059106124dc5750595b818152601f19601f8301168101602001604052905092505060208201905084612506828287612e04565b5090949350505050565b600090815260076020526040902054600160a060020a0391821691161490565b6000918252600960205260409091208054600160a060020a031916600160a060020a03909216919091179055565b600090815260096020526040902054600160a060020a0391821691161490565b600160a060020a03808316600081815260086020908152604080832080546001019055858352600790915290208054600160a060020a031916909117905583161561261157600160a060020a03831660009081526008602090815260408083208054600019019055838352600a82528083208054600160a060020a03199081169091556009909252909120805490911690555b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a1505050565b60005433600160a060020a0390811691161461268157600080fd5b60025460a060020a900460ff16151561269957600080fd5b6002805474ff000000000000000000000000000000000000000019169055565b6000818414156126cb57506000612831565b6001850154608060020a900463ffffffff168214806126fa5750600185015460a060020a900463ffffffff1682145b1561270757506000612831565b6001830154608060020a900463ffffffff168414806127365750600183015460a060020a900463ffffffff1684145b1561274357506000612831565b6001830154608060020a900463ffffffff16158061277057506001850154608060020a900463ffffffff16155b1561277d57506001612831565b60018581015490840154608060020a9182900463ffffffff908116929091041614806127c8575060018086015490840154608060020a900463ffffffff90811660a060020a90920416145b156127d557506000612831565b6001808601549084015460a060020a900463ffffffff908116608060020a90920416148061282057506001858101549084015460a060020a9182900463ffffffff9081169290910416145b1561282d57506000612831565b5060015b949350505050565b6000818152600760205260408082205484835290822054600160a060020a0391821691168082148061131357506000858152600a6020526040902054600160a060020a03908116908316149250505092915050565b600080612899612f6d565b600063ffffffff891689146128ad57600080fd5b63ffffffff881688146128bf57600080fd5b61ffff871687146128cf57600080fd5b600287049250600d8361ffff1611156128e757600d92505b610100604051908101604090815287825267ffffffffffffffff42166020830152600090820181905263ffffffff808c1660608401528a16608083015260a082015261ffff80851660c0830152881660e0820152600680549193506001918083016129528382612fb1565b6000928352602090922085916002020181518155602082015160018201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560408201518160010160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060608201518160010160106101000a81548163ffffffff021916908363ffffffff16021790555060808201518160010160146101000a81548163ffffffff021916908363ffffffff16021790555060a08201518160010160186101000a81548163ffffffff021916908363ffffffff16021790555060c082015181600101601c6101000a81548161ffff021916908361ffff16021790555060e08201516001909101805461ffff9290921660f060020a027dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092169190911790555003905063ffffffff81168114612aad57600080fd5b7f0a5311bd2a6608f08a180df2ee7c5946819a649b204b554bb8e39825b2c50ad58582846060015163ffffffff16856080015163ffffffff168651604051600160a060020a03909516855260208501939093526040808501929092526060840152608083019190915260a0909101905180910390a1612b2e6000868361257e565b98975050505050505050565b60008160a0015163ffffffff1615801590610c6f57504367ffffffffffffffff16826040015167ffffffffffffffff16111592915050565b600b5460009081908190600160a060020a031663eac9d94c6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515612bb857600080fd5b5af11515612bc557600080fd5b50505060405180519250506fffffffffffffffffffffffffffffffff82168214612bee57600080fd5b50600281048101662386f26fc10000811015612c0e5750662386f26fc100005b92915050565b60008160a0015163ffffffff16158015610c6f57504367ffffffffffffffff16826040015167ffffffffffffffff16111592915050565b6000806000600685815481101515612c5f57fe5b90600052602060002090600202019150600684815481101515612c7e57fe5b90600052602060002090600202019050611313828683876126b9565b600080600683815481101515612cac57fe5b90600052602060002090600202019150600684815481101515612ccb57fe5b600091825260209091206002909102016001810180547bffffffff000000000000000000000000000000000000000000000000191660c060020a63ffffffff8716021790559050612d1b82612e49565b612d2481612e49565b6000848152600a602090815260408083208054600160a060020a031990811690915586845281842080549091169055600f8054600190810190915587845260079092529182902054908301547f241ea03ca20251805084d27d4440371c34a0b85ff108f6bb5611248f73818b8092600160a060020a0390921691879187916801000000000000000090910467ffffffffffffffff1690518085600160a060020a0316600160a060020a031681526020018481526020018381526020018267ffffffffffffffff16815260200194505050505060405180910390a150505050565b60005b60208210612e2a5782518452602084019350602083019250602082039150612e07565b6001826020036101000a03905080198351168185511617909352505050565b600554600182015443919060039060e060020a900461ffff16600e8110612e6c57fe5b600891828204019190066004029054906101000a900463ffffffff1663ffffffff16811515612e9757fe5b6001840180546fffffffffffffffff0000000000000000191668010000000000000000939092049390930167ffffffffffffffff16919091021790819055600d60e060020a90910461ffff161015612f2f576001818101805461ffff60e060020a8083048216909401169092027fffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092169190911790555b50565b60206040519081016040526000815290565b60806040519081016040526004815b60008152600019919091019060200181612f535790505090565b6101006040519081016040908152600080835260208301819052908201819052606082018190526080820181905260a0820181905260c0820181905260e082015290565b815481835581811511610fc557600083815260209020610fc591610edf9160029182028101918502015b80821115612ff55760008082556001820155600201612fdb565b50905600a165627a7a723058201377ba8df8c95c58e83203c4cb84f8d1add7d4e548e68be2bc144b1800439e2c0029"
  8740  
  8741  // DeployKittyCore deploys a new Ethereum contract, binding an instance of KittyCore to it.
  8742  func DeployKittyCore(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *KittyCore, error) {
  8743  	parsed, err := abi.JSON(strings.NewReader(KittyCoreABI))
  8744  	if err != nil {
  8745  		return common.Address{}, nil, nil, err
  8746  	}
  8747  
  8748  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(KittyCoreBin), backend)
  8749  	if err != nil {
  8750  		return common.Address{}, nil, nil, err
  8751  	}
  8752  	return address, tx, &KittyCore{KittyCoreCaller: KittyCoreCaller{contract: contract}, KittyCoreTransactor: KittyCoreTransactor{contract: contract}, KittyCoreFilterer: KittyCoreFilterer{contract: contract}}, nil
  8753  }
  8754  
  8755  // KittyCore is an auto generated Go binding around an Ethereum contract.
  8756  type KittyCore struct {
  8757  	KittyCoreCaller     // Read-only binding to the contract
  8758  	KittyCoreTransactor // Write-only binding to the contract
  8759  	KittyCoreFilterer   // Log filterer for contract events
  8760  }
  8761  
  8762  // KittyCoreCaller is an auto generated read-only Go binding around an Ethereum contract.
  8763  type KittyCoreCaller struct {
  8764  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  8765  }
  8766  
  8767  // KittyCoreTransactor is an auto generated write-only Go binding around an Ethereum contract.
  8768  type KittyCoreTransactor struct {
  8769  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  8770  }
  8771  
  8772  // KittyCoreFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  8773  type KittyCoreFilterer struct {
  8774  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  8775  }
  8776  
  8777  // KittyCoreSession is an auto generated Go binding around an Ethereum contract,
  8778  // with pre-set call and transact options.
  8779  type KittyCoreSession struct {
  8780  	Contract     *KittyCore        // Generic contract binding to set the session for
  8781  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  8782  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  8783  }
  8784  
  8785  // KittyCoreCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  8786  // with pre-set call options.
  8787  type KittyCoreCallerSession struct {
  8788  	Contract *KittyCoreCaller // Generic contract caller binding to set the session for
  8789  	CallOpts bind.CallOpts    // Call options to use throughout this session
  8790  }
  8791  
  8792  // KittyCoreTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  8793  // with pre-set transact options.
  8794  type KittyCoreTransactorSession struct {
  8795  	Contract     *KittyCoreTransactor // Generic contract transactor binding to set the session for
  8796  	TransactOpts bind.TransactOpts    // Transaction auth options to use throughout this session
  8797  }
  8798  
  8799  // KittyCoreRaw is an auto generated low-level Go binding around an Ethereum contract.
  8800  type KittyCoreRaw struct {
  8801  	Contract *KittyCore // Generic contract binding to access the raw methods on
  8802  }
  8803  
  8804  // KittyCoreCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  8805  type KittyCoreCallerRaw struct {
  8806  	Contract *KittyCoreCaller // Generic read-only contract binding to access the raw methods on
  8807  }
  8808  
  8809  // KittyCoreTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  8810  type KittyCoreTransactorRaw struct {
  8811  	Contract *KittyCoreTransactor // Generic write-only contract binding to access the raw methods on
  8812  }
  8813  
  8814  // NewKittyCore creates a new instance of KittyCore, bound to a specific deployed contract.
  8815  func NewKittyCore(address common.Address, backend bind.ContractBackend) (*KittyCore, error) {
  8816  	contract, err := bindKittyCore(address, backend, backend, backend)
  8817  	if err != nil {
  8818  		return nil, err
  8819  	}
  8820  	return &KittyCore{KittyCoreCaller: KittyCoreCaller{contract: contract}, KittyCoreTransactor: KittyCoreTransactor{contract: contract}, KittyCoreFilterer: KittyCoreFilterer{contract: contract}}, nil
  8821  }
  8822  
  8823  // NewKittyCoreCaller creates a new read-only instance of KittyCore, bound to a specific deployed contract.
  8824  func NewKittyCoreCaller(address common.Address, caller bind.ContractCaller) (*KittyCoreCaller, error) {
  8825  	contract, err := bindKittyCore(address, caller, nil, nil)
  8826  	if err != nil {
  8827  		return nil, err
  8828  	}
  8829  	return &KittyCoreCaller{contract: contract}, nil
  8830  }
  8831  
  8832  // NewKittyCoreTransactor creates a new write-only instance of KittyCore, bound to a specific deployed contract.
  8833  func NewKittyCoreTransactor(address common.Address, transactor bind.ContractTransactor) (*KittyCoreTransactor, error) {
  8834  	contract, err := bindKittyCore(address, nil, transactor, nil)
  8835  	if err != nil {
  8836  		return nil, err
  8837  	}
  8838  	return &KittyCoreTransactor{contract: contract}, nil
  8839  }
  8840  
  8841  // NewKittyCoreFilterer creates a new log filterer instance of KittyCore, bound to a specific deployed contract.
  8842  func NewKittyCoreFilterer(address common.Address, filterer bind.ContractFilterer) (*KittyCoreFilterer, error) {
  8843  	contract, err := bindKittyCore(address, nil, nil, filterer)
  8844  	if err != nil {
  8845  		return nil, err
  8846  	}
  8847  	return &KittyCoreFilterer{contract: contract}, nil
  8848  }
  8849  
  8850  // bindKittyCore binds a generic wrapper to an already deployed contract.
  8851  func bindKittyCore(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  8852  	parsed, err := abi.JSON(strings.NewReader(KittyCoreABI))
  8853  	if err != nil {
  8854  		return nil, err
  8855  	}
  8856  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  8857  }
  8858  
  8859  // Call invokes the (constant) contract method with params as input values and
  8860  // sets the output to result. The result type might be a single field for simple
  8861  // returns, a slice of interfaces for anonymous returns and a struct for named
  8862  // returns.
  8863  func (_KittyCore *KittyCoreRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  8864  	return _KittyCore.Contract.KittyCoreCaller.contract.Call(opts, result, method, params...)
  8865  }
  8866  
  8867  // Transfer initiates a plain transaction to move funds to the contract, calling
  8868  // its default method if one is available.
  8869  func (_KittyCore *KittyCoreRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  8870  	return _KittyCore.Contract.KittyCoreTransactor.contract.Transfer(opts)
  8871  }
  8872  
  8873  // Transact invokes the (paid) contract method with params as input values.
  8874  func (_KittyCore *KittyCoreRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  8875  	return _KittyCore.Contract.KittyCoreTransactor.contract.Transact(opts, method, params...)
  8876  }
  8877  
  8878  // Call invokes the (constant) contract method with params as input values and
  8879  // sets the output to result. The result type might be a single field for simple
  8880  // returns, a slice of interfaces for anonymous returns and a struct for named
  8881  // returns.
  8882  func (_KittyCore *KittyCoreCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  8883  	return _KittyCore.Contract.contract.Call(opts, result, method, params...)
  8884  }
  8885  
  8886  // Transfer initiates a plain transaction to move funds to the contract, calling
  8887  // its default method if one is available.
  8888  func (_KittyCore *KittyCoreTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  8889  	return _KittyCore.Contract.contract.Transfer(opts)
  8890  }
  8891  
  8892  // Transact invokes the (paid) contract method with params as input values.
  8893  func (_KittyCore *KittyCoreTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  8894  	return _KittyCore.Contract.contract.Transact(opts, method, params...)
  8895  }
  8896  
  8897  // GEN0AUCTIONDURATION is a free data retrieval call binding the contract method 0x19c2f201.
  8898  //
  8899  // Solidity: function GEN0_AUCTION_DURATION() view returns(uint256)
  8900  func (_KittyCore *KittyCoreCaller) GEN0AUCTIONDURATION(opts *bind.CallOpts) (*big.Int, error) {
  8901  	var out []interface{}
  8902  	err := _KittyCore.contract.Call(opts, &out, "GEN0_AUCTION_DURATION")
  8903  
  8904  	if err != nil {
  8905  		return *new(*big.Int), err
  8906  	}
  8907  
  8908  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  8909  
  8910  	return out0, err
  8911  
  8912  }
  8913  
  8914  // GEN0AUCTIONDURATION is a free data retrieval call binding the contract method 0x19c2f201.
  8915  //
  8916  // Solidity: function GEN0_AUCTION_DURATION() view returns(uint256)
  8917  func (_KittyCore *KittyCoreSession) GEN0AUCTIONDURATION() (*big.Int, error) {
  8918  	return _KittyCore.Contract.GEN0AUCTIONDURATION(&_KittyCore.CallOpts)
  8919  }
  8920  
  8921  // GEN0AUCTIONDURATION is a free data retrieval call binding the contract method 0x19c2f201.
  8922  //
  8923  // Solidity: function GEN0_AUCTION_DURATION() view returns(uint256)
  8924  func (_KittyCore *KittyCoreCallerSession) GEN0AUCTIONDURATION() (*big.Int, error) {
  8925  	return _KittyCore.Contract.GEN0AUCTIONDURATION(&_KittyCore.CallOpts)
  8926  }
  8927  
  8928  // GEN0CREATIONLIMIT is a free data retrieval call binding the contract method 0x680eba27.
  8929  //
  8930  // Solidity: function GEN0_CREATION_LIMIT() view returns(uint256)
  8931  func (_KittyCore *KittyCoreCaller) GEN0CREATIONLIMIT(opts *bind.CallOpts) (*big.Int, error) {
  8932  	var out []interface{}
  8933  	err := _KittyCore.contract.Call(opts, &out, "GEN0_CREATION_LIMIT")
  8934  
  8935  	if err != nil {
  8936  		return *new(*big.Int), err
  8937  	}
  8938  
  8939  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  8940  
  8941  	return out0, err
  8942  
  8943  }
  8944  
  8945  // GEN0CREATIONLIMIT is a free data retrieval call binding the contract method 0x680eba27.
  8946  //
  8947  // Solidity: function GEN0_CREATION_LIMIT() view returns(uint256)
  8948  func (_KittyCore *KittyCoreSession) GEN0CREATIONLIMIT() (*big.Int, error) {
  8949  	return _KittyCore.Contract.GEN0CREATIONLIMIT(&_KittyCore.CallOpts)
  8950  }
  8951  
  8952  // GEN0CREATIONLIMIT is a free data retrieval call binding the contract method 0x680eba27.
  8953  //
  8954  // Solidity: function GEN0_CREATION_LIMIT() view returns(uint256)
  8955  func (_KittyCore *KittyCoreCallerSession) GEN0CREATIONLIMIT() (*big.Int, error) {
  8956  	return _KittyCore.Contract.GEN0CREATIONLIMIT(&_KittyCore.CallOpts)
  8957  }
  8958  
  8959  // GEN0STARTINGPRICE is a free data retrieval call binding the contract method 0x0e583df0.
  8960  //
  8961  // Solidity: function GEN0_STARTING_PRICE() view returns(uint256)
  8962  func (_KittyCore *KittyCoreCaller) GEN0STARTINGPRICE(opts *bind.CallOpts) (*big.Int, error) {
  8963  	var out []interface{}
  8964  	err := _KittyCore.contract.Call(opts, &out, "GEN0_STARTING_PRICE")
  8965  
  8966  	if err != nil {
  8967  		return *new(*big.Int), err
  8968  	}
  8969  
  8970  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  8971  
  8972  	return out0, err
  8973  
  8974  }
  8975  
  8976  // GEN0STARTINGPRICE is a free data retrieval call binding the contract method 0x0e583df0.
  8977  //
  8978  // Solidity: function GEN0_STARTING_PRICE() view returns(uint256)
  8979  func (_KittyCore *KittyCoreSession) GEN0STARTINGPRICE() (*big.Int, error) {
  8980  	return _KittyCore.Contract.GEN0STARTINGPRICE(&_KittyCore.CallOpts)
  8981  }
  8982  
  8983  // GEN0STARTINGPRICE is a free data retrieval call binding the contract method 0x0e583df0.
  8984  //
  8985  // Solidity: function GEN0_STARTING_PRICE() view returns(uint256)
  8986  func (_KittyCore *KittyCoreCallerSession) GEN0STARTINGPRICE() (*big.Int, error) {
  8987  	return _KittyCore.Contract.GEN0STARTINGPRICE(&_KittyCore.CallOpts)
  8988  }
  8989  
  8990  // PROMOCREATIONLIMIT is a free data retrieval call binding the contract method 0xdefb9584.
  8991  //
  8992  // Solidity: function PROMO_CREATION_LIMIT() view returns(uint256)
  8993  func (_KittyCore *KittyCoreCaller) PROMOCREATIONLIMIT(opts *bind.CallOpts) (*big.Int, error) {
  8994  	var out []interface{}
  8995  	err := _KittyCore.contract.Call(opts, &out, "PROMO_CREATION_LIMIT")
  8996  
  8997  	if err != nil {
  8998  		return *new(*big.Int), err
  8999  	}
  9000  
  9001  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  9002  
  9003  	return out0, err
  9004  
  9005  }
  9006  
  9007  // PROMOCREATIONLIMIT is a free data retrieval call binding the contract method 0xdefb9584.
  9008  //
  9009  // Solidity: function PROMO_CREATION_LIMIT() view returns(uint256)
  9010  func (_KittyCore *KittyCoreSession) PROMOCREATIONLIMIT() (*big.Int, error) {
  9011  	return _KittyCore.Contract.PROMOCREATIONLIMIT(&_KittyCore.CallOpts)
  9012  }
  9013  
  9014  // PROMOCREATIONLIMIT is a free data retrieval call binding the contract method 0xdefb9584.
  9015  //
  9016  // Solidity: function PROMO_CREATION_LIMIT() view returns(uint256)
  9017  func (_KittyCore *KittyCoreCallerSession) PROMOCREATIONLIMIT() (*big.Int, error) {
  9018  	return _KittyCore.Contract.PROMOCREATIONLIMIT(&_KittyCore.CallOpts)
  9019  }
  9020  
  9021  // AutoBirthFee is a free data retrieval call binding the contract method 0xb0c35c05.
  9022  //
  9023  // Solidity: function autoBirthFee() view returns(uint256)
  9024  func (_KittyCore *KittyCoreCaller) AutoBirthFee(opts *bind.CallOpts) (*big.Int, error) {
  9025  	var out []interface{}
  9026  	err := _KittyCore.contract.Call(opts, &out, "autoBirthFee")
  9027  
  9028  	if err != nil {
  9029  		return *new(*big.Int), err
  9030  	}
  9031  
  9032  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  9033  
  9034  	return out0, err
  9035  
  9036  }
  9037  
  9038  // AutoBirthFee is a free data retrieval call binding the contract method 0xb0c35c05.
  9039  //
  9040  // Solidity: function autoBirthFee() view returns(uint256)
  9041  func (_KittyCore *KittyCoreSession) AutoBirthFee() (*big.Int, error) {
  9042  	return _KittyCore.Contract.AutoBirthFee(&_KittyCore.CallOpts)
  9043  }
  9044  
  9045  // AutoBirthFee is a free data retrieval call binding the contract method 0xb0c35c05.
  9046  //
  9047  // Solidity: function autoBirthFee() view returns(uint256)
  9048  func (_KittyCore *KittyCoreCallerSession) AutoBirthFee() (*big.Int, error) {
  9049  	return _KittyCore.Contract.AutoBirthFee(&_KittyCore.CallOpts)
  9050  }
  9051  
  9052  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  9053  //
  9054  // Solidity: function balanceOf(address _owner) view returns(uint256 count)
  9055  func (_KittyCore *KittyCoreCaller) BalanceOf(opts *bind.CallOpts, _owner common.Address) (*big.Int, error) {
  9056  	var out []interface{}
  9057  	err := _KittyCore.contract.Call(opts, &out, "balanceOf", _owner)
  9058  
  9059  	if err != nil {
  9060  		return *new(*big.Int), err
  9061  	}
  9062  
  9063  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  9064  
  9065  	return out0, err
  9066  
  9067  }
  9068  
  9069  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  9070  //
  9071  // Solidity: function balanceOf(address _owner) view returns(uint256 count)
  9072  func (_KittyCore *KittyCoreSession) BalanceOf(_owner common.Address) (*big.Int, error) {
  9073  	return _KittyCore.Contract.BalanceOf(&_KittyCore.CallOpts, _owner)
  9074  }
  9075  
  9076  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  9077  //
  9078  // Solidity: function balanceOf(address _owner) view returns(uint256 count)
  9079  func (_KittyCore *KittyCoreCallerSession) BalanceOf(_owner common.Address) (*big.Int, error) {
  9080  	return _KittyCore.Contract.BalanceOf(&_KittyCore.CallOpts, _owner)
  9081  }
  9082  
  9083  // CanBreedWith is a free data retrieval call binding the contract method 0x46d22c70.
  9084  //
  9085  // Solidity: function canBreedWith(uint256 _matronId, uint256 _sireId) view returns(bool)
  9086  func (_KittyCore *KittyCoreCaller) CanBreedWith(opts *bind.CallOpts, _matronId *big.Int, _sireId *big.Int) (bool, error) {
  9087  	var out []interface{}
  9088  	err := _KittyCore.contract.Call(opts, &out, "canBreedWith", _matronId, _sireId)
  9089  
  9090  	if err != nil {
  9091  		return *new(bool), err
  9092  	}
  9093  
  9094  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  9095  
  9096  	return out0, err
  9097  
  9098  }
  9099  
  9100  // CanBreedWith is a free data retrieval call binding the contract method 0x46d22c70.
  9101  //
  9102  // Solidity: function canBreedWith(uint256 _matronId, uint256 _sireId) view returns(bool)
  9103  func (_KittyCore *KittyCoreSession) CanBreedWith(_matronId *big.Int, _sireId *big.Int) (bool, error) {
  9104  	return _KittyCore.Contract.CanBreedWith(&_KittyCore.CallOpts, _matronId, _sireId)
  9105  }
  9106  
  9107  // CanBreedWith is a free data retrieval call binding the contract method 0x46d22c70.
  9108  //
  9109  // Solidity: function canBreedWith(uint256 _matronId, uint256 _sireId) view returns(bool)
  9110  func (_KittyCore *KittyCoreCallerSession) CanBreedWith(_matronId *big.Int, _sireId *big.Int) (bool, error) {
  9111  	return _KittyCore.Contract.CanBreedWith(&_KittyCore.CallOpts, _matronId, _sireId)
  9112  }
  9113  
  9114  // CeoAddress is a free data retrieval call binding the contract method 0x0a0f8168.
  9115  //
  9116  // Solidity: function ceoAddress() view returns(address)
  9117  func (_KittyCore *KittyCoreCaller) CeoAddress(opts *bind.CallOpts) (common.Address, error) {
  9118  	var out []interface{}
  9119  	err := _KittyCore.contract.Call(opts, &out, "ceoAddress")
  9120  
  9121  	if err != nil {
  9122  		return *new(common.Address), err
  9123  	}
  9124  
  9125  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  9126  
  9127  	return out0, err
  9128  
  9129  }
  9130  
  9131  // CeoAddress is a free data retrieval call binding the contract method 0x0a0f8168.
  9132  //
  9133  // Solidity: function ceoAddress() view returns(address)
  9134  func (_KittyCore *KittyCoreSession) CeoAddress() (common.Address, error) {
  9135  	return _KittyCore.Contract.CeoAddress(&_KittyCore.CallOpts)
  9136  }
  9137  
  9138  // CeoAddress is a free data retrieval call binding the contract method 0x0a0f8168.
  9139  //
  9140  // Solidity: function ceoAddress() view returns(address)
  9141  func (_KittyCore *KittyCoreCallerSession) CeoAddress() (common.Address, error) {
  9142  	return _KittyCore.Contract.CeoAddress(&_KittyCore.CallOpts)
  9143  }
  9144  
  9145  // CfoAddress is a free data retrieval call binding the contract method 0x0519ce79.
  9146  //
  9147  // Solidity: function cfoAddress() view returns(address)
  9148  func (_KittyCore *KittyCoreCaller) CfoAddress(opts *bind.CallOpts) (common.Address, error) {
  9149  	var out []interface{}
  9150  	err := _KittyCore.contract.Call(opts, &out, "cfoAddress")
  9151  
  9152  	if err != nil {
  9153  		return *new(common.Address), err
  9154  	}
  9155  
  9156  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  9157  
  9158  	return out0, err
  9159  
  9160  }
  9161  
  9162  // CfoAddress is a free data retrieval call binding the contract method 0x0519ce79.
  9163  //
  9164  // Solidity: function cfoAddress() view returns(address)
  9165  func (_KittyCore *KittyCoreSession) CfoAddress() (common.Address, error) {
  9166  	return _KittyCore.Contract.CfoAddress(&_KittyCore.CallOpts)
  9167  }
  9168  
  9169  // CfoAddress is a free data retrieval call binding the contract method 0x0519ce79.
  9170  //
  9171  // Solidity: function cfoAddress() view returns(address)
  9172  func (_KittyCore *KittyCoreCallerSession) CfoAddress() (common.Address, error) {
  9173  	return _KittyCore.Contract.CfoAddress(&_KittyCore.CallOpts)
  9174  }
  9175  
  9176  // CooAddress is a free data retrieval call binding the contract method 0xb047fb50.
  9177  //
  9178  // Solidity: function cooAddress() view returns(address)
  9179  func (_KittyCore *KittyCoreCaller) CooAddress(opts *bind.CallOpts) (common.Address, error) {
  9180  	var out []interface{}
  9181  	err := _KittyCore.contract.Call(opts, &out, "cooAddress")
  9182  
  9183  	if err != nil {
  9184  		return *new(common.Address), err
  9185  	}
  9186  
  9187  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  9188  
  9189  	return out0, err
  9190  
  9191  }
  9192  
  9193  // CooAddress is a free data retrieval call binding the contract method 0xb047fb50.
  9194  //
  9195  // Solidity: function cooAddress() view returns(address)
  9196  func (_KittyCore *KittyCoreSession) CooAddress() (common.Address, error) {
  9197  	return _KittyCore.Contract.CooAddress(&_KittyCore.CallOpts)
  9198  }
  9199  
  9200  // CooAddress is a free data retrieval call binding the contract method 0xb047fb50.
  9201  //
  9202  // Solidity: function cooAddress() view returns(address)
  9203  func (_KittyCore *KittyCoreCallerSession) CooAddress() (common.Address, error) {
  9204  	return _KittyCore.Contract.CooAddress(&_KittyCore.CallOpts)
  9205  }
  9206  
  9207  // Cooldowns is a free data retrieval call binding the contract method 0x9d6fac6f.
  9208  //
  9209  // Solidity: function cooldowns(uint256 ) view returns(uint32)
  9210  func (_KittyCore *KittyCoreCaller) Cooldowns(opts *bind.CallOpts, arg0 *big.Int) (uint32, error) {
  9211  	var out []interface{}
  9212  	err := _KittyCore.contract.Call(opts, &out, "cooldowns", arg0)
  9213  
  9214  	if err != nil {
  9215  		return *new(uint32), err
  9216  	}
  9217  
  9218  	out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32)
  9219  
  9220  	return out0, err
  9221  
  9222  }
  9223  
  9224  // Cooldowns is a free data retrieval call binding the contract method 0x9d6fac6f.
  9225  //
  9226  // Solidity: function cooldowns(uint256 ) view returns(uint32)
  9227  func (_KittyCore *KittyCoreSession) Cooldowns(arg0 *big.Int) (uint32, error) {
  9228  	return _KittyCore.Contract.Cooldowns(&_KittyCore.CallOpts, arg0)
  9229  }
  9230  
  9231  // Cooldowns is a free data retrieval call binding the contract method 0x9d6fac6f.
  9232  //
  9233  // Solidity: function cooldowns(uint256 ) view returns(uint32)
  9234  func (_KittyCore *KittyCoreCallerSession) Cooldowns(arg0 *big.Int) (uint32, error) {
  9235  	return _KittyCore.Contract.Cooldowns(&_KittyCore.CallOpts, arg0)
  9236  }
  9237  
  9238  // Erc721Metadata is a free data retrieval call binding the contract method 0xbc4006f5.
  9239  //
  9240  // Solidity: function erc721Metadata() view returns(address)
  9241  func (_KittyCore *KittyCoreCaller) Erc721Metadata(opts *bind.CallOpts) (common.Address, error) {
  9242  	var out []interface{}
  9243  	err := _KittyCore.contract.Call(opts, &out, "erc721Metadata")
  9244  
  9245  	if err != nil {
  9246  		return *new(common.Address), err
  9247  	}
  9248  
  9249  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  9250  
  9251  	return out0, err
  9252  
  9253  }
  9254  
  9255  // Erc721Metadata is a free data retrieval call binding the contract method 0xbc4006f5.
  9256  //
  9257  // Solidity: function erc721Metadata() view returns(address)
  9258  func (_KittyCore *KittyCoreSession) Erc721Metadata() (common.Address, error) {
  9259  	return _KittyCore.Contract.Erc721Metadata(&_KittyCore.CallOpts)
  9260  }
  9261  
  9262  // Erc721Metadata is a free data retrieval call binding the contract method 0xbc4006f5.
  9263  //
  9264  // Solidity: function erc721Metadata() view returns(address)
  9265  func (_KittyCore *KittyCoreCallerSession) Erc721Metadata() (common.Address, error) {
  9266  	return _KittyCore.Contract.Erc721Metadata(&_KittyCore.CallOpts)
  9267  }
  9268  
  9269  // Gen0CreatedCount is a free data retrieval call binding the contract method 0xf1ca9410.
  9270  //
  9271  // Solidity: function gen0CreatedCount() view returns(uint256)
  9272  func (_KittyCore *KittyCoreCaller) Gen0CreatedCount(opts *bind.CallOpts) (*big.Int, error) {
  9273  	var out []interface{}
  9274  	err := _KittyCore.contract.Call(opts, &out, "gen0CreatedCount")
  9275  
  9276  	if err != nil {
  9277  		return *new(*big.Int), err
  9278  	}
  9279  
  9280  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  9281  
  9282  	return out0, err
  9283  
  9284  }
  9285  
  9286  // Gen0CreatedCount is a free data retrieval call binding the contract method 0xf1ca9410.
  9287  //
  9288  // Solidity: function gen0CreatedCount() view returns(uint256)
  9289  func (_KittyCore *KittyCoreSession) Gen0CreatedCount() (*big.Int, error) {
  9290  	return _KittyCore.Contract.Gen0CreatedCount(&_KittyCore.CallOpts)
  9291  }
  9292  
  9293  // Gen0CreatedCount is a free data retrieval call binding the contract method 0xf1ca9410.
  9294  //
  9295  // Solidity: function gen0CreatedCount() view returns(uint256)
  9296  func (_KittyCore *KittyCoreCallerSession) Gen0CreatedCount() (*big.Int, error) {
  9297  	return _KittyCore.Contract.Gen0CreatedCount(&_KittyCore.CallOpts)
  9298  }
  9299  
  9300  // GeneScience is a free data retrieval call binding the contract method 0xf2b47d52.
  9301  //
  9302  // Solidity: function geneScience() view returns(address)
  9303  func (_KittyCore *KittyCoreCaller) GeneScience(opts *bind.CallOpts) (common.Address, error) {
  9304  	var out []interface{}
  9305  	err := _KittyCore.contract.Call(opts, &out, "geneScience")
  9306  
  9307  	if err != nil {
  9308  		return *new(common.Address), err
  9309  	}
  9310  
  9311  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  9312  
  9313  	return out0, err
  9314  
  9315  }
  9316  
  9317  // GeneScience is a free data retrieval call binding the contract method 0xf2b47d52.
  9318  //
  9319  // Solidity: function geneScience() view returns(address)
  9320  func (_KittyCore *KittyCoreSession) GeneScience() (common.Address, error) {
  9321  	return _KittyCore.Contract.GeneScience(&_KittyCore.CallOpts)
  9322  }
  9323  
  9324  // GeneScience is a free data retrieval call binding the contract method 0xf2b47d52.
  9325  //
  9326  // Solidity: function geneScience() view returns(address)
  9327  func (_KittyCore *KittyCoreCallerSession) GeneScience() (common.Address, error) {
  9328  	return _KittyCore.Contract.GeneScience(&_KittyCore.CallOpts)
  9329  }
  9330  
  9331  // GetKitty is a free data retrieval call binding the contract method 0xe98b7f4d.
  9332  //
  9333  // Solidity: function getKitty(uint256 _id) view returns(bool isGestating, bool isReady, uint256 cooldownIndex, uint256 nextActionAt, uint256 siringWithId, uint256 birthTime, uint256 matronId, uint256 sireId, uint256 generation, uint256 genes)
  9334  func (_KittyCore *KittyCoreCaller) GetKitty(opts *bind.CallOpts, _id *big.Int) (struct {
  9335  	IsGestating   bool
  9336  	IsReady       bool
  9337  	CooldownIndex *big.Int
  9338  	NextActionAt  *big.Int
  9339  	SiringWithId  *big.Int
  9340  	BirthTime     *big.Int
  9341  	MatronId      *big.Int
  9342  	SireId        *big.Int
  9343  	Generation    *big.Int
  9344  	Genes         *big.Int
  9345  }, error) {
  9346  	var out []interface{}
  9347  	err := _KittyCore.contract.Call(opts, &out, "getKitty", _id)
  9348  
  9349  	outstruct := new(struct {
  9350  		IsGestating   bool
  9351  		IsReady       bool
  9352  		CooldownIndex *big.Int
  9353  		NextActionAt  *big.Int
  9354  		SiringWithId  *big.Int
  9355  		BirthTime     *big.Int
  9356  		MatronId      *big.Int
  9357  		SireId        *big.Int
  9358  		Generation    *big.Int
  9359  		Genes         *big.Int
  9360  	})
  9361  
  9362  	outstruct.IsGestating = out[0].(bool)
  9363  	outstruct.IsReady = out[1].(bool)
  9364  	outstruct.CooldownIndex = out[2].(*big.Int)
  9365  	outstruct.NextActionAt = out[3].(*big.Int)
  9366  	outstruct.SiringWithId = out[4].(*big.Int)
  9367  	outstruct.BirthTime = out[5].(*big.Int)
  9368  	outstruct.MatronId = out[6].(*big.Int)
  9369  	outstruct.SireId = out[7].(*big.Int)
  9370  	outstruct.Generation = out[8].(*big.Int)
  9371  	outstruct.Genes = out[9].(*big.Int)
  9372  
  9373  	return *outstruct, err
  9374  
  9375  }
  9376  
  9377  // GetKitty is a free data retrieval call binding the contract method 0xe98b7f4d.
  9378  //
  9379  // Solidity: function getKitty(uint256 _id) view returns(bool isGestating, bool isReady, uint256 cooldownIndex, uint256 nextActionAt, uint256 siringWithId, uint256 birthTime, uint256 matronId, uint256 sireId, uint256 generation, uint256 genes)
  9380  func (_KittyCore *KittyCoreSession) GetKitty(_id *big.Int) (struct {
  9381  	IsGestating   bool
  9382  	IsReady       bool
  9383  	CooldownIndex *big.Int
  9384  	NextActionAt  *big.Int
  9385  	SiringWithId  *big.Int
  9386  	BirthTime     *big.Int
  9387  	MatronId      *big.Int
  9388  	SireId        *big.Int
  9389  	Generation    *big.Int
  9390  	Genes         *big.Int
  9391  }, error) {
  9392  	return _KittyCore.Contract.GetKitty(&_KittyCore.CallOpts, _id)
  9393  }
  9394  
  9395  // GetKitty is a free data retrieval call binding the contract method 0xe98b7f4d.
  9396  //
  9397  // Solidity: function getKitty(uint256 _id) view returns(bool isGestating, bool isReady, uint256 cooldownIndex, uint256 nextActionAt, uint256 siringWithId, uint256 birthTime, uint256 matronId, uint256 sireId, uint256 generation, uint256 genes)
  9398  func (_KittyCore *KittyCoreCallerSession) GetKitty(_id *big.Int) (struct {
  9399  	IsGestating   bool
  9400  	IsReady       bool
  9401  	CooldownIndex *big.Int
  9402  	NextActionAt  *big.Int
  9403  	SiringWithId  *big.Int
  9404  	BirthTime     *big.Int
  9405  	MatronId      *big.Int
  9406  	SireId        *big.Int
  9407  	Generation    *big.Int
  9408  	Genes         *big.Int
  9409  }, error) {
  9410  	return _KittyCore.Contract.GetKitty(&_KittyCore.CallOpts, _id)
  9411  }
  9412  
  9413  // IsPregnant is a free data retrieval call binding the contract method 0x1940a936.
  9414  //
  9415  // Solidity: function isPregnant(uint256 _kittyId) view returns(bool)
  9416  func (_KittyCore *KittyCoreCaller) IsPregnant(opts *bind.CallOpts, _kittyId *big.Int) (bool, error) {
  9417  	var out []interface{}
  9418  	err := _KittyCore.contract.Call(opts, &out, "isPregnant", _kittyId)
  9419  
  9420  	if err != nil {
  9421  		return *new(bool), err
  9422  	}
  9423  
  9424  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  9425  
  9426  	return out0, err
  9427  
  9428  }
  9429  
  9430  // IsPregnant is a free data retrieval call binding the contract method 0x1940a936.
  9431  //
  9432  // Solidity: function isPregnant(uint256 _kittyId) view returns(bool)
  9433  func (_KittyCore *KittyCoreSession) IsPregnant(_kittyId *big.Int) (bool, error) {
  9434  	return _KittyCore.Contract.IsPregnant(&_KittyCore.CallOpts, _kittyId)
  9435  }
  9436  
  9437  // IsPregnant is a free data retrieval call binding the contract method 0x1940a936.
  9438  //
  9439  // Solidity: function isPregnant(uint256 _kittyId) view returns(bool)
  9440  func (_KittyCore *KittyCoreCallerSession) IsPregnant(_kittyId *big.Int) (bool, error) {
  9441  	return _KittyCore.Contract.IsPregnant(&_KittyCore.CallOpts, _kittyId)
  9442  }
  9443  
  9444  // IsReadyToBreed is a free data retrieval call binding the contract method 0xd3e6f49f.
  9445  //
  9446  // Solidity: function isReadyToBreed(uint256 _kittyId) view returns(bool)
  9447  func (_KittyCore *KittyCoreCaller) IsReadyToBreed(opts *bind.CallOpts, _kittyId *big.Int) (bool, error) {
  9448  	var out []interface{}
  9449  	err := _KittyCore.contract.Call(opts, &out, "isReadyToBreed", _kittyId)
  9450  
  9451  	if err != nil {
  9452  		return *new(bool), err
  9453  	}
  9454  
  9455  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  9456  
  9457  	return out0, err
  9458  
  9459  }
  9460  
  9461  // IsReadyToBreed is a free data retrieval call binding the contract method 0xd3e6f49f.
  9462  //
  9463  // Solidity: function isReadyToBreed(uint256 _kittyId) view returns(bool)
  9464  func (_KittyCore *KittyCoreSession) IsReadyToBreed(_kittyId *big.Int) (bool, error) {
  9465  	return _KittyCore.Contract.IsReadyToBreed(&_KittyCore.CallOpts, _kittyId)
  9466  }
  9467  
  9468  // IsReadyToBreed is a free data retrieval call binding the contract method 0xd3e6f49f.
  9469  //
  9470  // Solidity: function isReadyToBreed(uint256 _kittyId) view returns(bool)
  9471  func (_KittyCore *KittyCoreCallerSession) IsReadyToBreed(_kittyId *big.Int) (bool, error) {
  9472  	return _KittyCore.Contract.IsReadyToBreed(&_KittyCore.CallOpts, _kittyId)
  9473  }
  9474  
  9475  // KittyIndexToApproved is a free data retrieval call binding the contract method 0x481af3d3.
  9476  //
  9477  // Solidity: function kittyIndexToApproved(uint256 ) view returns(address)
  9478  func (_KittyCore *KittyCoreCaller) KittyIndexToApproved(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  9479  	var out []interface{}
  9480  	err := _KittyCore.contract.Call(opts, &out, "kittyIndexToApproved", arg0)
  9481  
  9482  	if err != nil {
  9483  		return *new(common.Address), err
  9484  	}
  9485  
  9486  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  9487  
  9488  	return out0, err
  9489  
  9490  }
  9491  
  9492  // KittyIndexToApproved is a free data retrieval call binding the contract method 0x481af3d3.
  9493  //
  9494  // Solidity: function kittyIndexToApproved(uint256 ) view returns(address)
  9495  func (_KittyCore *KittyCoreSession) KittyIndexToApproved(arg0 *big.Int) (common.Address, error) {
  9496  	return _KittyCore.Contract.KittyIndexToApproved(&_KittyCore.CallOpts, arg0)
  9497  }
  9498  
  9499  // KittyIndexToApproved is a free data retrieval call binding the contract method 0x481af3d3.
  9500  //
  9501  // Solidity: function kittyIndexToApproved(uint256 ) view returns(address)
  9502  func (_KittyCore *KittyCoreCallerSession) KittyIndexToApproved(arg0 *big.Int) (common.Address, error) {
  9503  	return _KittyCore.Contract.KittyIndexToApproved(&_KittyCore.CallOpts, arg0)
  9504  }
  9505  
  9506  // KittyIndexToOwner is a free data retrieval call binding the contract method 0xa45f4bfc.
  9507  //
  9508  // Solidity: function kittyIndexToOwner(uint256 ) view returns(address)
  9509  func (_KittyCore *KittyCoreCaller) KittyIndexToOwner(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  9510  	var out []interface{}
  9511  	err := _KittyCore.contract.Call(opts, &out, "kittyIndexToOwner", arg0)
  9512  
  9513  	if err != nil {
  9514  		return *new(common.Address), err
  9515  	}
  9516  
  9517  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  9518  
  9519  	return out0, err
  9520  
  9521  }
  9522  
  9523  // KittyIndexToOwner is a free data retrieval call binding the contract method 0xa45f4bfc.
  9524  //
  9525  // Solidity: function kittyIndexToOwner(uint256 ) view returns(address)
  9526  func (_KittyCore *KittyCoreSession) KittyIndexToOwner(arg0 *big.Int) (common.Address, error) {
  9527  	return _KittyCore.Contract.KittyIndexToOwner(&_KittyCore.CallOpts, arg0)
  9528  }
  9529  
  9530  // KittyIndexToOwner is a free data retrieval call binding the contract method 0xa45f4bfc.
  9531  //
  9532  // Solidity: function kittyIndexToOwner(uint256 ) view returns(address)
  9533  func (_KittyCore *KittyCoreCallerSession) KittyIndexToOwner(arg0 *big.Int) (common.Address, error) {
  9534  	return _KittyCore.Contract.KittyIndexToOwner(&_KittyCore.CallOpts, arg0)
  9535  }
  9536  
  9537  // Name is a free data retrieval call binding the contract method 0x06fdde03.
  9538  //
  9539  // Solidity: function name() view returns(string)
  9540  func (_KittyCore *KittyCoreCaller) Name(opts *bind.CallOpts) (string, error) {
  9541  	var out []interface{}
  9542  	err := _KittyCore.contract.Call(opts, &out, "name")
  9543  
  9544  	if err != nil {
  9545  		return *new(string), err
  9546  	}
  9547  
  9548  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
  9549  
  9550  	return out0, err
  9551  
  9552  }
  9553  
  9554  // Name is a free data retrieval call binding the contract method 0x06fdde03.
  9555  //
  9556  // Solidity: function name() view returns(string)
  9557  func (_KittyCore *KittyCoreSession) Name() (string, error) {
  9558  	return _KittyCore.Contract.Name(&_KittyCore.CallOpts)
  9559  }
  9560  
  9561  // Name is a free data retrieval call binding the contract method 0x06fdde03.
  9562  //
  9563  // Solidity: function name() view returns(string)
  9564  func (_KittyCore *KittyCoreCallerSession) Name() (string, error) {
  9565  	return _KittyCore.Contract.Name(&_KittyCore.CallOpts)
  9566  }
  9567  
  9568  // NewContractAddress is a free data retrieval call binding the contract method 0x6af04a57.
  9569  //
  9570  // Solidity: function newContractAddress() view returns(address)
  9571  func (_KittyCore *KittyCoreCaller) NewContractAddress(opts *bind.CallOpts) (common.Address, error) {
  9572  	var out []interface{}
  9573  	err := _KittyCore.contract.Call(opts, &out, "newContractAddress")
  9574  
  9575  	if err != nil {
  9576  		return *new(common.Address), err
  9577  	}
  9578  
  9579  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  9580  
  9581  	return out0, err
  9582  
  9583  }
  9584  
  9585  // NewContractAddress is a free data retrieval call binding the contract method 0x6af04a57.
  9586  //
  9587  // Solidity: function newContractAddress() view returns(address)
  9588  func (_KittyCore *KittyCoreSession) NewContractAddress() (common.Address, error) {
  9589  	return _KittyCore.Contract.NewContractAddress(&_KittyCore.CallOpts)
  9590  }
  9591  
  9592  // NewContractAddress is a free data retrieval call binding the contract method 0x6af04a57.
  9593  //
  9594  // Solidity: function newContractAddress() view returns(address)
  9595  func (_KittyCore *KittyCoreCallerSession) NewContractAddress() (common.Address, error) {
  9596  	return _KittyCore.Contract.NewContractAddress(&_KittyCore.CallOpts)
  9597  }
  9598  
  9599  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
  9600  //
  9601  // Solidity: function ownerOf(uint256 _tokenId) view returns(address owner)
  9602  func (_KittyCore *KittyCoreCaller) OwnerOf(opts *bind.CallOpts, _tokenId *big.Int) (common.Address, error) {
  9603  	var out []interface{}
  9604  	err := _KittyCore.contract.Call(opts, &out, "ownerOf", _tokenId)
  9605  
  9606  	if err != nil {
  9607  		return *new(common.Address), err
  9608  	}
  9609  
  9610  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  9611  
  9612  	return out0, err
  9613  
  9614  }
  9615  
  9616  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
  9617  //
  9618  // Solidity: function ownerOf(uint256 _tokenId) view returns(address owner)
  9619  func (_KittyCore *KittyCoreSession) OwnerOf(_tokenId *big.Int) (common.Address, error) {
  9620  	return _KittyCore.Contract.OwnerOf(&_KittyCore.CallOpts, _tokenId)
  9621  }
  9622  
  9623  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
  9624  //
  9625  // Solidity: function ownerOf(uint256 _tokenId) view returns(address owner)
  9626  func (_KittyCore *KittyCoreCallerSession) OwnerOf(_tokenId *big.Int) (common.Address, error) {
  9627  	return _KittyCore.Contract.OwnerOf(&_KittyCore.CallOpts, _tokenId)
  9628  }
  9629  
  9630  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
  9631  //
  9632  // Solidity: function paused() view returns(bool)
  9633  func (_KittyCore *KittyCoreCaller) Paused(opts *bind.CallOpts) (bool, error) {
  9634  	var out []interface{}
  9635  	err := _KittyCore.contract.Call(opts, &out, "paused")
  9636  
  9637  	if err != nil {
  9638  		return *new(bool), err
  9639  	}
  9640  
  9641  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  9642  
  9643  	return out0, err
  9644  
  9645  }
  9646  
  9647  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
  9648  //
  9649  // Solidity: function paused() view returns(bool)
  9650  func (_KittyCore *KittyCoreSession) Paused() (bool, error) {
  9651  	return _KittyCore.Contract.Paused(&_KittyCore.CallOpts)
  9652  }
  9653  
  9654  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
  9655  //
  9656  // Solidity: function paused() view returns(bool)
  9657  func (_KittyCore *KittyCoreCallerSession) Paused() (bool, error) {
  9658  	return _KittyCore.Contract.Paused(&_KittyCore.CallOpts)
  9659  }
  9660  
  9661  // PregnantKitties is a free data retrieval call binding the contract method 0x183a7947.
  9662  //
  9663  // Solidity: function pregnantKitties() view returns(uint256)
  9664  func (_KittyCore *KittyCoreCaller) PregnantKitties(opts *bind.CallOpts) (*big.Int, error) {
  9665  	var out []interface{}
  9666  	err := _KittyCore.contract.Call(opts, &out, "pregnantKitties")
  9667  
  9668  	if err != nil {
  9669  		return *new(*big.Int), err
  9670  	}
  9671  
  9672  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  9673  
  9674  	return out0, err
  9675  
  9676  }
  9677  
  9678  // PregnantKitties is a free data retrieval call binding the contract method 0x183a7947.
  9679  //
  9680  // Solidity: function pregnantKitties() view returns(uint256)
  9681  func (_KittyCore *KittyCoreSession) PregnantKitties() (*big.Int, error) {
  9682  	return _KittyCore.Contract.PregnantKitties(&_KittyCore.CallOpts)
  9683  }
  9684  
  9685  // PregnantKitties is a free data retrieval call binding the contract method 0x183a7947.
  9686  //
  9687  // Solidity: function pregnantKitties() view returns(uint256)
  9688  func (_KittyCore *KittyCoreCallerSession) PregnantKitties() (*big.Int, error) {
  9689  	return _KittyCore.Contract.PregnantKitties(&_KittyCore.CallOpts)
  9690  }
  9691  
  9692  // PromoCreatedCount is a free data retrieval call binding the contract method 0x05e45546.
  9693  //
  9694  // Solidity: function promoCreatedCount() view returns(uint256)
  9695  func (_KittyCore *KittyCoreCaller) PromoCreatedCount(opts *bind.CallOpts) (*big.Int, error) {
  9696  	var out []interface{}
  9697  	err := _KittyCore.contract.Call(opts, &out, "promoCreatedCount")
  9698  
  9699  	if err != nil {
  9700  		return *new(*big.Int), err
  9701  	}
  9702  
  9703  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  9704  
  9705  	return out0, err
  9706  
  9707  }
  9708  
  9709  // PromoCreatedCount is a free data retrieval call binding the contract method 0x05e45546.
  9710  //
  9711  // Solidity: function promoCreatedCount() view returns(uint256)
  9712  func (_KittyCore *KittyCoreSession) PromoCreatedCount() (*big.Int, error) {
  9713  	return _KittyCore.Contract.PromoCreatedCount(&_KittyCore.CallOpts)
  9714  }
  9715  
  9716  // PromoCreatedCount is a free data retrieval call binding the contract method 0x05e45546.
  9717  //
  9718  // Solidity: function promoCreatedCount() view returns(uint256)
  9719  func (_KittyCore *KittyCoreCallerSession) PromoCreatedCount() (*big.Int, error) {
  9720  	return _KittyCore.Contract.PromoCreatedCount(&_KittyCore.CallOpts)
  9721  }
  9722  
  9723  // SaleAuction is a free data retrieval call binding the contract method 0xe6cbe351.
  9724  //
  9725  // Solidity: function saleAuction() view returns(address)
  9726  func (_KittyCore *KittyCoreCaller) SaleAuction(opts *bind.CallOpts) (common.Address, error) {
  9727  	var out []interface{}
  9728  	err := _KittyCore.contract.Call(opts, &out, "saleAuction")
  9729  
  9730  	if err != nil {
  9731  		return *new(common.Address), err
  9732  	}
  9733  
  9734  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  9735  
  9736  	return out0, err
  9737  
  9738  }
  9739  
  9740  // SaleAuction is a free data retrieval call binding the contract method 0xe6cbe351.
  9741  //
  9742  // Solidity: function saleAuction() view returns(address)
  9743  func (_KittyCore *KittyCoreSession) SaleAuction() (common.Address, error) {
  9744  	return _KittyCore.Contract.SaleAuction(&_KittyCore.CallOpts)
  9745  }
  9746  
  9747  // SaleAuction is a free data retrieval call binding the contract method 0xe6cbe351.
  9748  //
  9749  // Solidity: function saleAuction() view returns(address)
  9750  func (_KittyCore *KittyCoreCallerSession) SaleAuction() (common.Address, error) {
  9751  	return _KittyCore.Contract.SaleAuction(&_KittyCore.CallOpts)
  9752  }
  9753  
  9754  // SecondsPerBlock is a free data retrieval call binding the contract method 0x7a7d4937.
  9755  //
  9756  // Solidity: function secondsPerBlock() view returns(uint256)
  9757  func (_KittyCore *KittyCoreCaller) SecondsPerBlock(opts *bind.CallOpts) (*big.Int, error) {
  9758  	var out []interface{}
  9759  	err := _KittyCore.contract.Call(opts, &out, "secondsPerBlock")
  9760  
  9761  	if err != nil {
  9762  		return *new(*big.Int), err
  9763  	}
  9764  
  9765  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  9766  
  9767  	return out0, err
  9768  
  9769  }
  9770  
  9771  // SecondsPerBlock is a free data retrieval call binding the contract method 0x7a7d4937.
  9772  //
  9773  // Solidity: function secondsPerBlock() view returns(uint256)
  9774  func (_KittyCore *KittyCoreSession) SecondsPerBlock() (*big.Int, error) {
  9775  	return _KittyCore.Contract.SecondsPerBlock(&_KittyCore.CallOpts)
  9776  }
  9777  
  9778  // SecondsPerBlock is a free data retrieval call binding the contract method 0x7a7d4937.
  9779  //
  9780  // Solidity: function secondsPerBlock() view returns(uint256)
  9781  func (_KittyCore *KittyCoreCallerSession) SecondsPerBlock() (*big.Int, error) {
  9782  	return _KittyCore.Contract.SecondsPerBlock(&_KittyCore.CallOpts)
  9783  }
  9784  
  9785  // SireAllowedToAddress is a free data retrieval call binding the contract method 0x46116e6f.
  9786  //
  9787  // Solidity: function sireAllowedToAddress(uint256 ) view returns(address)
  9788  func (_KittyCore *KittyCoreCaller) SireAllowedToAddress(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  9789  	var out []interface{}
  9790  	err := _KittyCore.contract.Call(opts, &out, "sireAllowedToAddress", arg0)
  9791  
  9792  	if err != nil {
  9793  		return *new(common.Address), err
  9794  	}
  9795  
  9796  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  9797  
  9798  	return out0, err
  9799  
  9800  }
  9801  
  9802  // SireAllowedToAddress is a free data retrieval call binding the contract method 0x46116e6f.
  9803  //
  9804  // Solidity: function sireAllowedToAddress(uint256 ) view returns(address)
  9805  func (_KittyCore *KittyCoreSession) SireAllowedToAddress(arg0 *big.Int) (common.Address, error) {
  9806  	return _KittyCore.Contract.SireAllowedToAddress(&_KittyCore.CallOpts, arg0)
  9807  }
  9808  
  9809  // SireAllowedToAddress is a free data retrieval call binding the contract method 0x46116e6f.
  9810  //
  9811  // Solidity: function sireAllowedToAddress(uint256 ) view returns(address)
  9812  func (_KittyCore *KittyCoreCallerSession) SireAllowedToAddress(arg0 *big.Int) (common.Address, error) {
  9813  	return _KittyCore.Contract.SireAllowedToAddress(&_KittyCore.CallOpts, arg0)
  9814  }
  9815  
  9816  // SiringAuction is a free data retrieval call binding the contract method 0x21717ebf.
  9817  //
  9818  // Solidity: function siringAuction() view returns(address)
  9819  func (_KittyCore *KittyCoreCaller) SiringAuction(opts *bind.CallOpts) (common.Address, error) {
  9820  	var out []interface{}
  9821  	err := _KittyCore.contract.Call(opts, &out, "siringAuction")
  9822  
  9823  	if err != nil {
  9824  		return *new(common.Address), err
  9825  	}
  9826  
  9827  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  9828  
  9829  	return out0, err
  9830  
  9831  }
  9832  
  9833  // SiringAuction is a free data retrieval call binding the contract method 0x21717ebf.
  9834  //
  9835  // Solidity: function siringAuction() view returns(address)
  9836  func (_KittyCore *KittyCoreSession) SiringAuction() (common.Address, error) {
  9837  	return _KittyCore.Contract.SiringAuction(&_KittyCore.CallOpts)
  9838  }
  9839  
  9840  // SiringAuction is a free data retrieval call binding the contract method 0x21717ebf.
  9841  //
  9842  // Solidity: function siringAuction() view returns(address)
  9843  func (_KittyCore *KittyCoreCallerSession) SiringAuction() (common.Address, error) {
  9844  	return _KittyCore.Contract.SiringAuction(&_KittyCore.CallOpts)
  9845  }
  9846  
  9847  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  9848  //
  9849  // Solidity: function supportsInterface(bytes4 _interfaceID) view returns(bool)
  9850  func (_KittyCore *KittyCoreCaller) SupportsInterface(opts *bind.CallOpts, _interfaceID [4]byte) (bool, error) {
  9851  	var out []interface{}
  9852  	err := _KittyCore.contract.Call(opts, &out, "supportsInterface", _interfaceID)
  9853  
  9854  	if err != nil {
  9855  		return *new(bool), err
  9856  	}
  9857  
  9858  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  9859  
  9860  	return out0, err
  9861  
  9862  }
  9863  
  9864  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  9865  //
  9866  // Solidity: function supportsInterface(bytes4 _interfaceID) view returns(bool)
  9867  func (_KittyCore *KittyCoreSession) SupportsInterface(_interfaceID [4]byte) (bool, error) {
  9868  	return _KittyCore.Contract.SupportsInterface(&_KittyCore.CallOpts, _interfaceID)
  9869  }
  9870  
  9871  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  9872  //
  9873  // Solidity: function supportsInterface(bytes4 _interfaceID) view returns(bool)
  9874  func (_KittyCore *KittyCoreCallerSession) SupportsInterface(_interfaceID [4]byte) (bool, error) {
  9875  	return _KittyCore.Contract.SupportsInterface(&_KittyCore.CallOpts, _interfaceID)
  9876  }
  9877  
  9878  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
  9879  //
  9880  // Solidity: function symbol() view returns(string)
  9881  func (_KittyCore *KittyCoreCaller) Symbol(opts *bind.CallOpts) (string, error) {
  9882  	var out []interface{}
  9883  	err := _KittyCore.contract.Call(opts, &out, "symbol")
  9884  
  9885  	if err != nil {
  9886  		return *new(string), err
  9887  	}
  9888  
  9889  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
  9890  
  9891  	return out0, err
  9892  
  9893  }
  9894  
  9895  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
  9896  //
  9897  // Solidity: function symbol() view returns(string)
  9898  func (_KittyCore *KittyCoreSession) Symbol() (string, error) {
  9899  	return _KittyCore.Contract.Symbol(&_KittyCore.CallOpts)
  9900  }
  9901  
  9902  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
  9903  //
  9904  // Solidity: function symbol() view returns(string)
  9905  func (_KittyCore *KittyCoreCallerSession) Symbol() (string, error) {
  9906  	return _KittyCore.Contract.Symbol(&_KittyCore.CallOpts)
  9907  }
  9908  
  9909  // TokenMetadata is a free data retrieval call binding the contract method 0x0560ff44.
  9910  //
  9911  // Solidity: function tokenMetadata(uint256 _tokenId, string _preferredTransport) view returns(string infoUrl)
  9912  func (_KittyCore *KittyCoreCaller) TokenMetadata(opts *bind.CallOpts, _tokenId *big.Int, _preferredTransport string) (string, error) {
  9913  	var out []interface{}
  9914  	err := _KittyCore.contract.Call(opts, &out, "tokenMetadata", _tokenId, _preferredTransport)
  9915  
  9916  	if err != nil {
  9917  		return *new(string), err
  9918  	}
  9919  
  9920  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
  9921  
  9922  	return out0, err
  9923  
  9924  }
  9925  
  9926  // TokenMetadata is a free data retrieval call binding the contract method 0x0560ff44.
  9927  //
  9928  // Solidity: function tokenMetadata(uint256 _tokenId, string _preferredTransport) view returns(string infoUrl)
  9929  func (_KittyCore *KittyCoreSession) TokenMetadata(_tokenId *big.Int, _preferredTransport string) (string, error) {
  9930  	return _KittyCore.Contract.TokenMetadata(&_KittyCore.CallOpts, _tokenId, _preferredTransport)
  9931  }
  9932  
  9933  // TokenMetadata is a free data retrieval call binding the contract method 0x0560ff44.
  9934  //
  9935  // Solidity: function tokenMetadata(uint256 _tokenId, string _preferredTransport) view returns(string infoUrl)
  9936  func (_KittyCore *KittyCoreCallerSession) TokenMetadata(_tokenId *big.Int, _preferredTransport string) (string, error) {
  9937  	return _KittyCore.Contract.TokenMetadata(&_KittyCore.CallOpts, _tokenId, _preferredTransport)
  9938  }
  9939  
  9940  // TokensOfOwner is a free data retrieval call binding the contract method 0x8462151c.
  9941  //
  9942  // Solidity: function tokensOfOwner(address _owner) view returns(uint256[] ownerTokens)
  9943  func (_KittyCore *KittyCoreCaller) TokensOfOwner(opts *bind.CallOpts, _owner common.Address) ([]*big.Int, error) {
  9944  	var out []interface{}
  9945  	err := _KittyCore.contract.Call(opts, &out, "tokensOfOwner", _owner)
  9946  
  9947  	if err != nil {
  9948  		return *new([]*big.Int), err
  9949  	}
  9950  
  9951  	out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int)
  9952  
  9953  	return out0, err
  9954  
  9955  }
  9956  
  9957  // TokensOfOwner is a free data retrieval call binding the contract method 0x8462151c.
  9958  //
  9959  // Solidity: function tokensOfOwner(address _owner) view returns(uint256[] ownerTokens)
  9960  func (_KittyCore *KittyCoreSession) TokensOfOwner(_owner common.Address) ([]*big.Int, error) {
  9961  	return _KittyCore.Contract.TokensOfOwner(&_KittyCore.CallOpts, _owner)
  9962  }
  9963  
  9964  // TokensOfOwner is a free data retrieval call binding the contract method 0x8462151c.
  9965  //
  9966  // Solidity: function tokensOfOwner(address _owner) view returns(uint256[] ownerTokens)
  9967  func (_KittyCore *KittyCoreCallerSession) TokensOfOwner(_owner common.Address) ([]*big.Int, error) {
  9968  	return _KittyCore.Contract.TokensOfOwner(&_KittyCore.CallOpts, _owner)
  9969  }
  9970  
  9971  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  9972  //
  9973  // Solidity: function totalSupply() view returns(uint256)
  9974  func (_KittyCore *KittyCoreCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
  9975  	var out []interface{}
  9976  	err := _KittyCore.contract.Call(opts, &out, "totalSupply")
  9977  
  9978  	if err != nil {
  9979  		return *new(*big.Int), err
  9980  	}
  9981  
  9982  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  9983  
  9984  	return out0, err
  9985  
  9986  }
  9987  
  9988  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  9989  //
  9990  // Solidity: function totalSupply() view returns(uint256)
  9991  func (_KittyCore *KittyCoreSession) TotalSupply() (*big.Int, error) {
  9992  	return _KittyCore.Contract.TotalSupply(&_KittyCore.CallOpts)
  9993  }
  9994  
  9995  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  9996  //
  9997  // Solidity: function totalSupply() view returns(uint256)
  9998  func (_KittyCore *KittyCoreCallerSession) TotalSupply() (*big.Int, error) {
  9999  	return _KittyCore.Contract.TotalSupply(&_KittyCore.CallOpts)
 10000  }
 10001  
 10002  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 10003  //
 10004  // Solidity: function approve(address _to, uint256 _tokenId) returns()
 10005  func (_KittyCore *KittyCoreTransactor) Approve(opts *bind.TransactOpts, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
 10006  	return _KittyCore.contract.Transact(opts, "approve", _to, _tokenId)
 10007  }
 10008  
 10009  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 10010  //
 10011  // Solidity: function approve(address _to, uint256 _tokenId) returns()
 10012  func (_KittyCore *KittyCoreSession) Approve(_to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
 10013  	return _KittyCore.Contract.Approve(&_KittyCore.TransactOpts, _to, _tokenId)
 10014  }
 10015  
 10016  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 10017  //
 10018  // Solidity: function approve(address _to, uint256 _tokenId) returns()
 10019  func (_KittyCore *KittyCoreTransactorSession) Approve(_to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
 10020  	return _KittyCore.Contract.Approve(&_KittyCore.TransactOpts, _to, _tokenId)
 10021  }
 10022  
 10023  // ApproveSiring is a paid mutator transaction binding the contract method 0x4dfff04f.
 10024  //
 10025  // Solidity: function approveSiring(address _addr, uint256 _sireId) returns()
 10026  func (_KittyCore *KittyCoreTransactor) ApproveSiring(opts *bind.TransactOpts, _addr common.Address, _sireId *big.Int) (*types.Transaction, error) {
 10027  	return _KittyCore.contract.Transact(opts, "approveSiring", _addr, _sireId)
 10028  }
 10029  
 10030  // ApproveSiring is a paid mutator transaction binding the contract method 0x4dfff04f.
 10031  //
 10032  // Solidity: function approveSiring(address _addr, uint256 _sireId) returns()
 10033  func (_KittyCore *KittyCoreSession) ApproveSiring(_addr common.Address, _sireId *big.Int) (*types.Transaction, error) {
 10034  	return _KittyCore.Contract.ApproveSiring(&_KittyCore.TransactOpts, _addr, _sireId)
 10035  }
 10036  
 10037  // ApproveSiring is a paid mutator transaction binding the contract method 0x4dfff04f.
 10038  //
 10039  // Solidity: function approveSiring(address _addr, uint256 _sireId) returns()
 10040  func (_KittyCore *KittyCoreTransactorSession) ApproveSiring(_addr common.Address, _sireId *big.Int) (*types.Transaction, error) {
 10041  	return _KittyCore.Contract.ApproveSiring(&_KittyCore.TransactOpts, _addr, _sireId)
 10042  }
 10043  
 10044  // BidOnSiringAuction is a paid mutator transaction binding the contract method 0xed60ade6.
 10045  //
 10046  // Solidity: function bidOnSiringAuction(uint256 _sireId, uint256 _matronId) payable returns()
 10047  func (_KittyCore *KittyCoreTransactor) BidOnSiringAuction(opts *bind.TransactOpts, _sireId *big.Int, _matronId *big.Int) (*types.Transaction, error) {
 10048  	return _KittyCore.contract.Transact(opts, "bidOnSiringAuction", _sireId, _matronId)
 10049  }
 10050  
 10051  // BidOnSiringAuction is a paid mutator transaction binding the contract method 0xed60ade6.
 10052  //
 10053  // Solidity: function bidOnSiringAuction(uint256 _sireId, uint256 _matronId) payable returns()
 10054  func (_KittyCore *KittyCoreSession) BidOnSiringAuction(_sireId *big.Int, _matronId *big.Int) (*types.Transaction, error) {
 10055  	return _KittyCore.Contract.BidOnSiringAuction(&_KittyCore.TransactOpts, _sireId, _matronId)
 10056  }
 10057  
 10058  // BidOnSiringAuction is a paid mutator transaction binding the contract method 0xed60ade6.
 10059  //
 10060  // Solidity: function bidOnSiringAuction(uint256 _sireId, uint256 _matronId) payable returns()
 10061  func (_KittyCore *KittyCoreTransactorSession) BidOnSiringAuction(_sireId *big.Int, _matronId *big.Int) (*types.Transaction, error) {
 10062  	return _KittyCore.Contract.BidOnSiringAuction(&_KittyCore.TransactOpts, _sireId, _matronId)
 10063  }
 10064  
 10065  // BreedWithAuto is a paid mutator transaction binding the contract method 0xf7d8c883.
 10066  //
 10067  // Solidity: function breedWithAuto(uint256 _matronId, uint256 _sireId) payable returns()
 10068  func (_KittyCore *KittyCoreTransactor) BreedWithAuto(opts *bind.TransactOpts, _matronId *big.Int, _sireId *big.Int) (*types.Transaction, error) {
 10069  	return _KittyCore.contract.Transact(opts, "breedWithAuto", _matronId, _sireId)
 10070  }
 10071  
 10072  // BreedWithAuto is a paid mutator transaction binding the contract method 0xf7d8c883.
 10073  //
 10074  // Solidity: function breedWithAuto(uint256 _matronId, uint256 _sireId) payable returns()
 10075  func (_KittyCore *KittyCoreSession) BreedWithAuto(_matronId *big.Int, _sireId *big.Int) (*types.Transaction, error) {
 10076  	return _KittyCore.Contract.BreedWithAuto(&_KittyCore.TransactOpts, _matronId, _sireId)
 10077  }
 10078  
 10079  // BreedWithAuto is a paid mutator transaction binding the contract method 0xf7d8c883.
 10080  //
 10081  // Solidity: function breedWithAuto(uint256 _matronId, uint256 _sireId) payable returns()
 10082  func (_KittyCore *KittyCoreTransactorSession) BreedWithAuto(_matronId *big.Int, _sireId *big.Int) (*types.Transaction, error) {
 10083  	return _KittyCore.Contract.BreedWithAuto(&_KittyCore.TransactOpts, _matronId, _sireId)
 10084  }
 10085  
 10086  // CreateGen0Auction is a paid mutator transaction binding the contract method 0xc3bea9af.
 10087  //
 10088  // Solidity: function createGen0Auction(uint256 _genes) returns()
 10089  func (_KittyCore *KittyCoreTransactor) CreateGen0Auction(opts *bind.TransactOpts, _genes *big.Int) (*types.Transaction, error) {
 10090  	return _KittyCore.contract.Transact(opts, "createGen0Auction", _genes)
 10091  }
 10092  
 10093  // CreateGen0Auction is a paid mutator transaction binding the contract method 0xc3bea9af.
 10094  //
 10095  // Solidity: function createGen0Auction(uint256 _genes) returns()
 10096  func (_KittyCore *KittyCoreSession) CreateGen0Auction(_genes *big.Int) (*types.Transaction, error) {
 10097  	return _KittyCore.Contract.CreateGen0Auction(&_KittyCore.TransactOpts, _genes)
 10098  }
 10099  
 10100  // CreateGen0Auction is a paid mutator transaction binding the contract method 0xc3bea9af.
 10101  //
 10102  // Solidity: function createGen0Auction(uint256 _genes) returns()
 10103  func (_KittyCore *KittyCoreTransactorSession) CreateGen0Auction(_genes *big.Int) (*types.Transaction, error) {
 10104  	return _KittyCore.Contract.CreateGen0Auction(&_KittyCore.TransactOpts, _genes)
 10105  }
 10106  
 10107  // CreatePromoKitty is a paid mutator transaction binding the contract method 0x56129134.
 10108  //
 10109  // Solidity: function createPromoKitty(uint256 _genes, address _owner) returns()
 10110  func (_KittyCore *KittyCoreTransactor) CreatePromoKitty(opts *bind.TransactOpts, _genes *big.Int, _owner common.Address) (*types.Transaction, error) {
 10111  	return _KittyCore.contract.Transact(opts, "createPromoKitty", _genes, _owner)
 10112  }
 10113  
 10114  // CreatePromoKitty is a paid mutator transaction binding the contract method 0x56129134.
 10115  //
 10116  // Solidity: function createPromoKitty(uint256 _genes, address _owner) returns()
 10117  func (_KittyCore *KittyCoreSession) CreatePromoKitty(_genes *big.Int, _owner common.Address) (*types.Transaction, error) {
 10118  	return _KittyCore.Contract.CreatePromoKitty(&_KittyCore.TransactOpts, _genes, _owner)
 10119  }
 10120  
 10121  // CreatePromoKitty is a paid mutator transaction binding the contract method 0x56129134.
 10122  //
 10123  // Solidity: function createPromoKitty(uint256 _genes, address _owner) returns()
 10124  func (_KittyCore *KittyCoreTransactorSession) CreatePromoKitty(_genes *big.Int, _owner common.Address) (*types.Transaction, error) {
 10125  	return _KittyCore.Contract.CreatePromoKitty(&_KittyCore.TransactOpts, _genes, _owner)
 10126  }
 10127  
 10128  // CreateSaleAuction is a paid mutator transaction binding the contract method 0x3d7d3f5a.
 10129  //
 10130  // Solidity: function createSaleAuction(uint256 _kittyId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration) returns()
 10131  func (_KittyCore *KittyCoreTransactor) CreateSaleAuction(opts *bind.TransactOpts, _kittyId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int) (*types.Transaction, error) {
 10132  	return _KittyCore.contract.Transact(opts, "createSaleAuction", _kittyId, _startingPrice, _endingPrice, _duration)
 10133  }
 10134  
 10135  // CreateSaleAuction is a paid mutator transaction binding the contract method 0x3d7d3f5a.
 10136  //
 10137  // Solidity: function createSaleAuction(uint256 _kittyId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration) returns()
 10138  func (_KittyCore *KittyCoreSession) CreateSaleAuction(_kittyId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int) (*types.Transaction, error) {
 10139  	return _KittyCore.Contract.CreateSaleAuction(&_KittyCore.TransactOpts, _kittyId, _startingPrice, _endingPrice, _duration)
 10140  }
 10141  
 10142  // CreateSaleAuction is a paid mutator transaction binding the contract method 0x3d7d3f5a.
 10143  //
 10144  // Solidity: function createSaleAuction(uint256 _kittyId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration) returns()
 10145  func (_KittyCore *KittyCoreTransactorSession) CreateSaleAuction(_kittyId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int) (*types.Transaction, error) {
 10146  	return _KittyCore.Contract.CreateSaleAuction(&_KittyCore.TransactOpts, _kittyId, _startingPrice, _endingPrice, _duration)
 10147  }
 10148  
 10149  // CreateSiringAuction is a paid mutator transaction binding the contract method 0x4ad8c938.
 10150  //
 10151  // Solidity: function createSiringAuction(uint256 _kittyId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration) returns()
 10152  func (_KittyCore *KittyCoreTransactor) CreateSiringAuction(opts *bind.TransactOpts, _kittyId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int) (*types.Transaction, error) {
 10153  	return _KittyCore.contract.Transact(opts, "createSiringAuction", _kittyId, _startingPrice, _endingPrice, _duration)
 10154  }
 10155  
 10156  // CreateSiringAuction is a paid mutator transaction binding the contract method 0x4ad8c938.
 10157  //
 10158  // Solidity: function createSiringAuction(uint256 _kittyId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration) returns()
 10159  func (_KittyCore *KittyCoreSession) CreateSiringAuction(_kittyId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int) (*types.Transaction, error) {
 10160  	return _KittyCore.Contract.CreateSiringAuction(&_KittyCore.TransactOpts, _kittyId, _startingPrice, _endingPrice, _duration)
 10161  }
 10162  
 10163  // CreateSiringAuction is a paid mutator transaction binding the contract method 0x4ad8c938.
 10164  //
 10165  // Solidity: function createSiringAuction(uint256 _kittyId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration) returns()
 10166  func (_KittyCore *KittyCoreTransactorSession) CreateSiringAuction(_kittyId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int) (*types.Transaction, error) {
 10167  	return _KittyCore.Contract.CreateSiringAuction(&_KittyCore.TransactOpts, _kittyId, _startingPrice, _endingPrice, _duration)
 10168  }
 10169  
 10170  // GiveBirth is a paid mutator transaction binding the contract method 0x88c2a0bf.
 10171  //
 10172  // Solidity: function giveBirth(uint256 _matronId) returns(uint256)
 10173  func (_KittyCore *KittyCoreTransactor) GiveBirth(opts *bind.TransactOpts, _matronId *big.Int) (*types.Transaction, error) {
 10174  	return _KittyCore.contract.Transact(opts, "giveBirth", _matronId)
 10175  }
 10176  
 10177  // GiveBirth is a paid mutator transaction binding the contract method 0x88c2a0bf.
 10178  //
 10179  // Solidity: function giveBirth(uint256 _matronId) returns(uint256)
 10180  func (_KittyCore *KittyCoreSession) GiveBirth(_matronId *big.Int) (*types.Transaction, error) {
 10181  	return _KittyCore.Contract.GiveBirth(&_KittyCore.TransactOpts, _matronId)
 10182  }
 10183  
 10184  // GiveBirth is a paid mutator transaction binding the contract method 0x88c2a0bf.
 10185  //
 10186  // Solidity: function giveBirth(uint256 _matronId) returns(uint256)
 10187  func (_KittyCore *KittyCoreTransactorSession) GiveBirth(_matronId *big.Int) (*types.Transaction, error) {
 10188  	return _KittyCore.Contract.GiveBirth(&_KittyCore.TransactOpts, _matronId)
 10189  }
 10190  
 10191  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
 10192  //
 10193  // Solidity: function pause() returns()
 10194  func (_KittyCore *KittyCoreTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) {
 10195  	return _KittyCore.contract.Transact(opts, "pause")
 10196  }
 10197  
 10198  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
 10199  //
 10200  // Solidity: function pause() returns()
 10201  func (_KittyCore *KittyCoreSession) Pause() (*types.Transaction, error) {
 10202  	return _KittyCore.Contract.Pause(&_KittyCore.TransactOpts)
 10203  }
 10204  
 10205  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
 10206  //
 10207  // Solidity: function pause() returns()
 10208  func (_KittyCore *KittyCoreTransactorSession) Pause() (*types.Transaction, error) {
 10209  	return _KittyCore.Contract.Pause(&_KittyCore.TransactOpts)
 10210  }
 10211  
 10212  // SetAutoBirthFee is a paid mutator transaction binding the contract method 0x4b85fd55.
 10213  //
 10214  // Solidity: function setAutoBirthFee(uint256 val) returns()
 10215  func (_KittyCore *KittyCoreTransactor) SetAutoBirthFee(opts *bind.TransactOpts, val *big.Int) (*types.Transaction, error) {
 10216  	return _KittyCore.contract.Transact(opts, "setAutoBirthFee", val)
 10217  }
 10218  
 10219  // SetAutoBirthFee is a paid mutator transaction binding the contract method 0x4b85fd55.
 10220  //
 10221  // Solidity: function setAutoBirthFee(uint256 val) returns()
 10222  func (_KittyCore *KittyCoreSession) SetAutoBirthFee(val *big.Int) (*types.Transaction, error) {
 10223  	return _KittyCore.Contract.SetAutoBirthFee(&_KittyCore.TransactOpts, val)
 10224  }
 10225  
 10226  // SetAutoBirthFee is a paid mutator transaction binding the contract method 0x4b85fd55.
 10227  //
 10228  // Solidity: function setAutoBirthFee(uint256 val) returns()
 10229  func (_KittyCore *KittyCoreTransactorSession) SetAutoBirthFee(val *big.Int) (*types.Transaction, error) {
 10230  	return _KittyCore.Contract.SetAutoBirthFee(&_KittyCore.TransactOpts, val)
 10231  }
 10232  
 10233  // SetCEO is a paid mutator transaction binding the contract method 0x27d7874c.
 10234  //
 10235  // Solidity: function setCEO(address _newCEO) returns()
 10236  func (_KittyCore *KittyCoreTransactor) SetCEO(opts *bind.TransactOpts, _newCEO common.Address) (*types.Transaction, error) {
 10237  	return _KittyCore.contract.Transact(opts, "setCEO", _newCEO)
 10238  }
 10239  
 10240  // SetCEO is a paid mutator transaction binding the contract method 0x27d7874c.
 10241  //
 10242  // Solidity: function setCEO(address _newCEO) returns()
 10243  func (_KittyCore *KittyCoreSession) SetCEO(_newCEO common.Address) (*types.Transaction, error) {
 10244  	return _KittyCore.Contract.SetCEO(&_KittyCore.TransactOpts, _newCEO)
 10245  }
 10246  
 10247  // SetCEO is a paid mutator transaction binding the contract method 0x27d7874c.
 10248  //
 10249  // Solidity: function setCEO(address _newCEO) returns()
 10250  func (_KittyCore *KittyCoreTransactorSession) SetCEO(_newCEO common.Address) (*types.Transaction, error) {
 10251  	return _KittyCore.Contract.SetCEO(&_KittyCore.TransactOpts, _newCEO)
 10252  }
 10253  
 10254  // SetCFO is a paid mutator transaction binding the contract method 0x4e0a3379.
 10255  //
 10256  // Solidity: function setCFO(address _newCFO) returns()
 10257  func (_KittyCore *KittyCoreTransactor) SetCFO(opts *bind.TransactOpts, _newCFO common.Address) (*types.Transaction, error) {
 10258  	return _KittyCore.contract.Transact(opts, "setCFO", _newCFO)
 10259  }
 10260  
 10261  // SetCFO is a paid mutator transaction binding the contract method 0x4e0a3379.
 10262  //
 10263  // Solidity: function setCFO(address _newCFO) returns()
 10264  func (_KittyCore *KittyCoreSession) SetCFO(_newCFO common.Address) (*types.Transaction, error) {
 10265  	return _KittyCore.Contract.SetCFO(&_KittyCore.TransactOpts, _newCFO)
 10266  }
 10267  
 10268  // SetCFO is a paid mutator transaction binding the contract method 0x4e0a3379.
 10269  //
 10270  // Solidity: function setCFO(address _newCFO) returns()
 10271  func (_KittyCore *KittyCoreTransactorSession) SetCFO(_newCFO common.Address) (*types.Transaction, error) {
 10272  	return _KittyCore.Contract.SetCFO(&_KittyCore.TransactOpts, _newCFO)
 10273  }
 10274  
 10275  // SetCOO is a paid mutator transaction binding the contract method 0x2ba73c15.
 10276  //
 10277  // Solidity: function setCOO(address _newCOO) returns()
 10278  func (_KittyCore *KittyCoreTransactor) SetCOO(opts *bind.TransactOpts, _newCOO common.Address) (*types.Transaction, error) {
 10279  	return _KittyCore.contract.Transact(opts, "setCOO", _newCOO)
 10280  }
 10281  
 10282  // SetCOO is a paid mutator transaction binding the contract method 0x2ba73c15.
 10283  //
 10284  // Solidity: function setCOO(address _newCOO) returns()
 10285  func (_KittyCore *KittyCoreSession) SetCOO(_newCOO common.Address) (*types.Transaction, error) {
 10286  	return _KittyCore.Contract.SetCOO(&_KittyCore.TransactOpts, _newCOO)
 10287  }
 10288  
 10289  // SetCOO is a paid mutator transaction binding the contract method 0x2ba73c15.
 10290  //
 10291  // Solidity: function setCOO(address _newCOO) returns()
 10292  func (_KittyCore *KittyCoreTransactorSession) SetCOO(_newCOO common.Address) (*types.Transaction, error) {
 10293  	return _KittyCore.Contract.SetCOO(&_KittyCore.TransactOpts, _newCOO)
 10294  }
 10295  
 10296  // SetGeneScienceAddress is a paid mutator transaction binding the contract method 0x24e7a38a.
 10297  //
 10298  // Solidity: function setGeneScienceAddress(address _address) returns()
 10299  func (_KittyCore *KittyCoreTransactor) SetGeneScienceAddress(opts *bind.TransactOpts, _address common.Address) (*types.Transaction, error) {
 10300  	return _KittyCore.contract.Transact(opts, "setGeneScienceAddress", _address)
 10301  }
 10302  
 10303  // SetGeneScienceAddress is a paid mutator transaction binding the contract method 0x24e7a38a.
 10304  //
 10305  // Solidity: function setGeneScienceAddress(address _address) returns()
 10306  func (_KittyCore *KittyCoreSession) SetGeneScienceAddress(_address common.Address) (*types.Transaction, error) {
 10307  	return _KittyCore.Contract.SetGeneScienceAddress(&_KittyCore.TransactOpts, _address)
 10308  }
 10309  
 10310  // SetGeneScienceAddress is a paid mutator transaction binding the contract method 0x24e7a38a.
 10311  //
 10312  // Solidity: function setGeneScienceAddress(address _address) returns()
 10313  func (_KittyCore *KittyCoreTransactorSession) SetGeneScienceAddress(_address common.Address) (*types.Transaction, error) {
 10314  	return _KittyCore.Contract.SetGeneScienceAddress(&_KittyCore.TransactOpts, _address)
 10315  }
 10316  
 10317  // SetMetadataAddress is a paid mutator transaction binding the contract method 0xe17b25af.
 10318  //
 10319  // Solidity: function setMetadataAddress(address _contractAddress) returns()
 10320  func (_KittyCore *KittyCoreTransactor) SetMetadataAddress(opts *bind.TransactOpts, _contractAddress common.Address) (*types.Transaction, error) {
 10321  	return _KittyCore.contract.Transact(opts, "setMetadataAddress", _contractAddress)
 10322  }
 10323  
 10324  // SetMetadataAddress is a paid mutator transaction binding the contract method 0xe17b25af.
 10325  //
 10326  // Solidity: function setMetadataAddress(address _contractAddress) returns()
 10327  func (_KittyCore *KittyCoreSession) SetMetadataAddress(_contractAddress common.Address) (*types.Transaction, error) {
 10328  	return _KittyCore.Contract.SetMetadataAddress(&_KittyCore.TransactOpts, _contractAddress)
 10329  }
 10330  
 10331  // SetMetadataAddress is a paid mutator transaction binding the contract method 0xe17b25af.
 10332  //
 10333  // Solidity: function setMetadataAddress(address _contractAddress) returns()
 10334  func (_KittyCore *KittyCoreTransactorSession) SetMetadataAddress(_contractAddress common.Address) (*types.Transaction, error) {
 10335  	return _KittyCore.Contract.SetMetadataAddress(&_KittyCore.TransactOpts, _contractAddress)
 10336  }
 10337  
 10338  // SetNewAddress is a paid mutator transaction binding the contract method 0x71587988.
 10339  //
 10340  // Solidity: function setNewAddress(address _v2Address) returns()
 10341  func (_KittyCore *KittyCoreTransactor) SetNewAddress(opts *bind.TransactOpts, _v2Address common.Address) (*types.Transaction, error) {
 10342  	return _KittyCore.contract.Transact(opts, "setNewAddress", _v2Address)
 10343  }
 10344  
 10345  // SetNewAddress is a paid mutator transaction binding the contract method 0x71587988.
 10346  //
 10347  // Solidity: function setNewAddress(address _v2Address) returns()
 10348  func (_KittyCore *KittyCoreSession) SetNewAddress(_v2Address common.Address) (*types.Transaction, error) {
 10349  	return _KittyCore.Contract.SetNewAddress(&_KittyCore.TransactOpts, _v2Address)
 10350  }
 10351  
 10352  // SetNewAddress is a paid mutator transaction binding the contract method 0x71587988.
 10353  //
 10354  // Solidity: function setNewAddress(address _v2Address) returns()
 10355  func (_KittyCore *KittyCoreTransactorSession) SetNewAddress(_v2Address common.Address) (*types.Transaction, error) {
 10356  	return _KittyCore.Contract.SetNewAddress(&_KittyCore.TransactOpts, _v2Address)
 10357  }
 10358  
 10359  // SetSaleAuctionAddress is a paid mutator transaction binding the contract method 0x6fbde40d.
 10360  //
 10361  // Solidity: function setSaleAuctionAddress(address _address) returns()
 10362  func (_KittyCore *KittyCoreTransactor) SetSaleAuctionAddress(opts *bind.TransactOpts, _address common.Address) (*types.Transaction, error) {
 10363  	return _KittyCore.contract.Transact(opts, "setSaleAuctionAddress", _address)
 10364  }
 10365  
 10366  // SetSaleAuctionAddress is a paid mutator transaction binding the contract method 0x6fbde40d.
 10367  //
 10368  // Solidity: function setSaleAuctionAddress(address _address) returns()
 10369  func (_KittyCore *KittyCoreSession) SetSaleAuctionAddress(_address common.Address) (*types.Transaction, error) {
 10370  	return _KittyCore.Contract.SetSaleAuctionAddress(&_KittyCore.TransactOpts, _address)
 10371  }
 10372  
 10373  // SetSaleAuctionAddress is a paid mutator transaction binding the contract method 0x6fbde40d.
 10374  //
 10375  // Solidity: function setSaleAuctionAddress(address _address) returns()
 10376  func (_KittyCore *KittyCoreTransactorSession) SetSaleAuctionAddress(_address common.Address) (*types.Transaction, error) {
 10377  	return _KittyCore.Contract.SetSaleAuctionAddress(&_KittyCore.TransactOpts, _address)
 10378  }
 10379  
 10380  // SetSecondsPerBlock is a paid mutator transaction binding the contract method 0x5663896e.
 10381  //
 10382  // Solidity: function setSecondsPerBlock(uint256 secs) returns()
 10383  func (_KittyCore *KittyCoreTransactor) SetSecondsPerBlock(opts *bind.TransactOpts, secs *big.Int) (*types.Transaction, error) {
 10384  	return _KittyCore.contract.Transact(opts, "setSecondsPerBlock", secs)
 10385  }
 10386  
 10387  // SetSecondsPerBlock is a paid mutator transaction binding the contract method 0x5663896e.
 10388  //
 10389  // Solidity: function setSecondsPerBlock(uint256 secs) returns()
 10390  func (_KittyCore *KittyCoreSession) SetSecondsPerBlock(secs *big.Int) (*types.Transaction, error) {
 10391  	return _KittyCore.Contract.SetSecondsPerBlock(&_KittyCore.TransactOpts, secs)
 10392  }
 10393  
 10394  // SetSecondsPerBlock is a paid mutator transaction binding the contract method 0x5663896e.
 10395  //
 10396  // Solidity: function setSecondsPerBlock(uint256 secs) returns()
 10397  func (_KittyCore *KittyCoreTransactorSession) SetSecondsPerBlock(secs *big.Int) (*types.Transaction, error) {
 10398  	return _KittyCore.Contract.SetSecondsPerBlock(&_KittyCore.TransactOpts, secs)
 10399  }
 10400  
 10401  // SetSiringAuctionAddress is a paid mutator transaction binding the contract method 0x14001f4c.
 10402  //
 10403  // Solidity: function setSiringAuctionAddress(address _address) returns()
 10404  func (_KittyCore *KittyCoreTransactor) SetSiringAuctionAddress(opts *bind.TransactOpts, _address common.Address) (*types.Transaction, error) {
 10405  	return _KittyCore.contract.Transact(opts, "setSiringAuctionAddress", _address)
 10406  }
 10407  
 10408  // SetSiringAuctionAddress is a paid mutator transaction binding the contract method 0x14001f4c.
 10409  //
 10410  // Solidity: function setSiringAuctionAddress(address _address) returns()
 10411  func (_KittyCore *KittyCoreSession) SetSiringAuctionAddress(_address common.Address) (*types.Transaction, error) {
 10412  	return _KittyCore.Contract.SetSiringAuctionAddress(&_KittyCore.TransactOpts, _address)
 10413  }
 10414  
 10415  // SetSiringAuctionAddress is a paid mutator transaction binding the contract method 0x14001f4c.
 10416  //
 10417  // Solidity: function setSiringAuctionAddress(address _address) returns()
 10418  func (_KittyCore *KittyCoreTransactorSession) SetSiringAuctionAddress(_address common.Address) (*types.Transaction, error) {
 10419  	return _KittyCore.Contract.SetSiringAuctionAddress(&_KittyCore.TransactOpts, _address)
 10420  }
 10421  
 10422  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 10423  //
 10424  // Solidity: function transfer(address _to, uint256 _tokenId) returns()
 10425  func (_KittyCore *KittyCoreTransactor) Transfer(opts *bind.TransactOpts, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
 10426  	return _KittyCore.contract.Transact(opts, "transfer", _to, _tokenId)
 10427  }
 10428  
 10429  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 10430  //
 10431  // Solidity: function transfer(address _to, uint256 _tokenId) returns()
 10432  func (_KittyCore *KittyCoreSession) Transfer(_to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
 10433  	return _KittyCore.Contract.Transfer(&_KittyCore.TransactOpts, _to, _tokenId)
 10434  }
 10435  
 10436  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 10437  //
 10438  // Solidity: function transfer(address _to, uint256 _tokenId) returns()
 10439  func (_KittyCore *KittyCoreTransactorSession) Transfer(_to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
 10440  	return _KittyCore.Contract.Transfer(&_KittyCore.TransactOpts, _to, _tokenId)
 10441  }
 10442  
 10443  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 10444  //
 10445  // Solidity: function transferFrom(address _from, address _to, uint256 _tokenId) returns()
 10446  func (_KittyCore *KittyCoreTransactor) TransferFrom(opts *bind.TransactOpts, _from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
 10447  	return _KittyCore.contract.Transact(opts, "transferFrom", _from, _to, _tokenId)
 10448  }
 10449  
 10450  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 10451  //
 10452  // Solidity: function transferFrom(address _from, address _to, uint256 _tokenId) returns()
 10453  func (_KittyCore *KittyCoreSession) TransferFrom(_from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
 10454  	return _KittyCore.Contract.TransferFrom(&_KittyCore.TransactOpts, _from, _to, _tokenId)
 10455  }
 10456  
 10457  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 10458  //
 10459  // Solidity: function transferFrom(address _from, address _to, uint256 _tokenId) returns()
 10460  func (_KittyCore *KittyCoreTransactorSession) TransferFrom(_from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
 10461  	return _KittyCore.Contract.TransferFrom(&_KittyCore.TransactOpts, _from, _to, _tokenId)
 10462  }
 10463  
 10464  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
 10465  //
 10466  // Solidity: function unpause() returns()
 10467  func (_KittyCore *KittyCoreTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) {
 10468  	return _KittyCore.contract.Transact(opts, "unpause")
 10469  }
 10470  
 10471  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
 10472  //
 10473  // Solidity: function unpause() returns()
 10474  func (_KittyCore *KittyCoreSession) Unpause() (*types.Transaction, error) {
 10475  	return _KittyCore.Contract.Unpause(&_KittyCore.TransactOpts)
 10476  }
 10477  
 10478  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
 10479  //
 10480  // Solidity: function unpause() returns()
 10481  func (_KittyCore *KittyCoreTransactorSession) Unpause() (*types.Transaction, error) {
 10482  	return _KittyCore.Contract.Unpause(&_KittyCore.TransactOpts)
 10483  }
 10484  
 10485  // WithdrawAuctionBalances is a paid mutator transaction binding the contract method 0x91876e57.
 10486  //
 10487  // Solidity: function withdrawAuctionBalances() returns()
 10488  func (_KittyCore *KittyCoreTransactor) WithdrawAuctionBalances(opts *bind.TransactOpts) (*types.Transaction, error) {
 10489  	return _KittyCore.contract.Transact(opts, "withdrawAuctionBalances")
 10490  }
 10491  
 10492  // WithdrawAuctionBalances is a paid mutator transaction binding the contract method 0x91876e57.
 10493  //
 10494  // Solidity: function withdrawAuctionBalances() returns()
 10495  func (_KittyCore *KittyCoreSession) WithdrawAuctionBalances() (*types.Transaction, error) {
 10496  	return _KittyCore.Contract.WithdrawAuctionBalances(&_KittyCore.TransactOpts)
 10497  }
 10498  
 10499  // WithdrawAuctionBalances is a paid mutator transaction binding the contract method 0x91876e57.
 10500  //
 10501  // Solidity: function withdrawAuctionBalances() returns()
 10502  func (_KittyCore *KittyCoreTransactorSession) WithdrawAuctionBalances() (*types.Transaction, error) {
 10503  	return _KittyCore.Contract.WithdrawAuctionBalances(&_KittyCore.TransactOpts)
 10504  }
 10505  
 10506  // WithdrawBalance is a paid mutator transaction binding the contract method 0x5fd8c710.
 10507  //
 10508  // Solidity: function withdrawBalance() returns()
 10509  func (_KittyCore *KittyCoreTransactor) WithdrawBalance(opts *bind.TransactOpts) (*types.Transaction, error) {
 10510  	return _KittyCore.contract.Transact(opts, "withdrawBalance")
 10511  }
 10512  
 10513  // WithdrawBalance is a paid mutator transaction binding the contract method 0x5fd8c710.
 10514  //
 10515  // Solidity: function withdrawBalance() returns()
 10516  func (_KittyCore *KittyCoreSession) WithdrawBalance() (*types.Transaction, error) {
 10517  	return _KittyCore.Contract.WithdrawBalance(&_KittyCore.TransactOpts)
 10518  }
 10519  
 10520  // WithdrawBalance is a paid mutator transaction binding the contract method 0x5fd8c710.
 10521  //
 10522  // Solidity: function withdrawBalance() returns()
 10523  func (_KittyCore *KittyCoreTransactorSession) WithdrawBalance() (*types.Transaction, error) {
 10524  	return _KittyCore.Contract.WithdrawBalance(&_KittyCore.TransactOpts)
 10525  }
 10526  
 10527  // Fallback is a paid mutator transaction binding the contract fallback function.
 10528  //
 10529  // Solidity: fallback() payable returns()
 10530  func (_KittyCore *KittyCoreTransactor) Fallback(opts *bind.TransactOpts, calldata []byte) (*types.Transaction, error) {
 10531  	return _KittyCore.contract.RawTransact(opts, calldata)
 10532  }
 10533  
 10534  // Fallback is a paid mutator transaction binding the contract fallback function.
 10535  //
 10536  // Solidity: fallback() payable returns()
 10537  func (_KittyCore *KittyCoreSession) Fallback(calldata []byte) (*types.Transaction, error) {
 10538  	return _KittyCore.Contract.Fallback(&_KittyCore.TransactOpts, calldata)
 10539  }
 10540  
 10541  // Fallback is a paid mutator transaction binding the contract fallback function.
 10542  //
 10543  // Solidity: fallback() payable returns()
 10544  func (_KittyCore *KittyCoreTransactorSession) Fallback(calldata []byte) (*types.Transaction, error) {
 10545  	return _KittyCore.Contract.Fallback(&_KittyCore.TransactOpts, calldata)
 10546  }
 10547  
 10548  // KittyCoreApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the KittyCore contract.
 10549  type KittyCoreApprovalIterator struct {
 10550  	Event *KittyCoreApproval // Event containing the contract specifics and raw log
 10551  
 10552  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 10553  	event    string              // Event name to use for unpacking event data
 10554  
 10555  	logs chan types.Log        // Log channel receiving the found contract events
 10556  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 10557  	done bool                  // Whether the subscription completed delivering logs
 10558  	fail error                 // Occurred error to stop iteration
 10559  }
 10560  
 10561  // Next advances the iterator to the subsequent event, returning whether there
 10562  // are any more events found. In case of a retrieval or parsing error, false is
 10563  // returned and Error() can be queried for the exact failure.
 10564  func (it *KittyCoreApprovalIterator) Next() bool {
 10565  	// If the iterator failed, stop iterating
 10566  	if it.fail != nil {
 10567  		return false
 10568  	}
 10569  	// If the iterator completed, deliver directly whatever's available
 10570  	if it.done {
 10571  		select {
 10572  		case log := <-it.logs:
 10573  			it.Event = new(KittyCoreApproval)
 10574  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10575  				it.fail = err
 10576  				return false
 10577  			}
 10578  			it.Event.Raw = log
 10579  			return true
 10580  
 10581  		default:
 10582  			return false
 10583  		}
 10584  	}
 10585  	// Iterator still in progress, wait for either a data or an error event
 10586  	select {
 10587  	case log := <-it.logs:
 10588  		it.Event = new(KittyCoreApproval)
 10589  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10590  			it.fail = err
 10591  			return false
 10592  		}
 10593  		it.Event.Raw = log
 10594  		return true
 10595  
 10596  	case err := <-it.sub.Err():
 10597  		it.done = true
 10598  		it.fail = err
 10599  		return it.Next()
 10600  	}
 10601  }
 10602  
 10603  // Error returns any retrieval or parsing error occurred during filtering.
 10604  func (it *KittyCoreApprovalIterator) Error() error {
 10605  	return it.fail
 10606  }
 10607  
 10608  // Close terminates the iteration process, releasing any pending underlying
 10609  // resources.
 10610  func (it *KittyCoreApprovalIterator) Close() error {
 10611  	it.sub.Unsubscribe()
 10612  	return nil
 10613  }
 10614  
 10615  // KittyCoreApproval represents a Approval event raised by the KittyCore contract.
 10616  type KittyCoreApproval struct {
 10617  	Owner    common.Address
 10618  	Approved common.Address
 10619  	TokenId  *big.Int
 10620  	Raw      types.Log // Blockchain specific contextual infos
 10621  }
 10622  
 10623  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 10624  //
 10625  // Solidity: event Approval(address owner, address approved, uint256 tokenId)
 10626  func (_KittyCore *KittyCoreFilterer) FilterApproval(opts *bind.FilterOpts) (*KittyCoreApprovalIterator, error) {
 10627  
 10628  	logs, sub, err := _KittyCore.contract.FilterLogs(opts, "Approval")
 10629  	if err != nil {
 10630  		return nil, err
 10631  	}
 10632  	return &KittyCoreApprovalIterator{contract: _KittyCore.contract, event: "Approval", logs: logs, sub: sub}, nil
 10633  }
 10634  
 10635  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 10636  //
 10637  // Solidity: event Approval(address owner, address approved, uint256 tokenId)
 10638  func (_KittyCore *KittyCoreFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *KittyCoreApproval) (event.Subscription, error) {
 10639  
 10640  	logs, sub, err := _KittyCore.contract.WatchLogs(opts, "Approval")
 10641  	if err != nil {
 10642  		return nil, err
 10643  	}
 10644  	return event.NewSubscription(func(quit <-chan struct{}) error {
 10645  		defer sub.Unsubscribe()
 10646  		for {
 10647  			select {
 10648  			case log := <-logs:
 10649  				// New log arrived, parse the event and forward to the user
 10650  				event := new(KittyCoreApproval)
 10651  				if err := _KittyCore.contract.UnpackLog(event, "Approval", log); err != nil {
 10652  					return err
 10653  				}
 10654  				event.Raw = log
 10655  
 10656  				select {
 10657  				case sink <- event:
 10658  				case err := <-sub.Err():
 10659  					return err
 10660  				case <-quit:
 10661  					return nil
 10662  				}
 10663  			case err := <-sub.Err():
 10664  				return err
 10665  			case <-quit:
 10666  				return nil
 10667  			}
 10668  		}
 10669  	}), nil
 10670  }
 10671  
 10672  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 10673  //
 10674  // Solidity: event Approval(address owner, address approved, uint256 tokenId)
 10675  func (_KittyCore *KittyCoreFilterer) ParseApproval(log types.Log) (*KittyCoreApproval, error) {
 10676  	event := new(KittyCoreApproval)
 10677  	if err := _KittyCore.contract.UnpackLog(event, "Approval", log); err != nil {
 10678  		return nil, err
 10679  	}
 10680  	event.Raw = log
 10681  	return event, nil
 10682  }
 10683  
 10684  // KittyCoreBirthIterator is returned from FilterBirth and is used to iterate over the raw logs and unpacked data for Birth events raised by the KittyCore contract.
 10685  type KittyCoreBirthIterator struct {
 10686  	Event *KittyCoreBirth // Event containing the contract specifics and raw log
 10687  
 10688  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 10689  	event    string              // Event name to use for unpacking event data
 10690  
 10691  	logs chan types.Log        // Log channel receiving the found contract events
 10692  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 10693  	done bool                  // Whether the subscription completed delivering logs
 10694  	fail error                 // Occurred error to stop iteration
 10695  }
 10696  
 10697  // Next advances the iterator to the subsequent event, returning whether there
 10698  // are any more events found. In case of a retrieval or parsing error, false is
 10699  // returned and Error() can be queried for the exact failure.
 10700  func (it *KittyCoreBirthIterator) Next() bool {
 10701  	// If the iterator failed, stop iterating
 10702  	if it.fail != nil {
 10703  		return false
 10704  	}
 10705  	// If the iterator completed, deliver directly whatever's available
 10706  	if it.done {
 10707  		select {
 10708  		case log := <-it.logs:
 10709  			it.Event = new(KittyCoreBirth)
 10710  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10711  				it.fail = err
 10712  				return false
 10713  			}
 10714  			it.Event.Raw = log
 10715  			return true
 10716  
 10717  		default:
 10718  			return false
 10719  		}
 10720  	}
 10721  	// Iterator still in progress, wait for either a data or an error event
 10722  	select {
 10723  	case log := <-it.logs:
 10724  		it.Event = new(KittyCoreBirth)
 10725  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10726  			it.fail = err
 10727  			return false
 10728  		}
 10729  		it.Event.Raw = log
 10730  		return true
 10731  
 10732  	case err := <-it.sub.Err():
 10733  		it.done = true
 10734  		it.fail = err
 10735  		return it.Next()
 10736  	}
 10737  }
 10738  
 10739  // Error returns any retrieval or parsing error occurred during filtering.
 10740  func (it *KittyCoreBirthIterator) Error() error {
 10741  	return it.fail
 10742  }
 10743  
 10744  // Close terminates the iteration process, releasing any pending underlying
 10745  // resources.
 10746  func (it *KittyCoreBirthIterator) Close() error {
 10747  	it.sub.Unsubscribe()
 10748  	return nil
 10749  }
 10750  
 10751  // KittyCoreBirth represents a Birth event raised by the KittyCore contract.
 10752  type KittyCoreBirth struct {
 10753  	Owner    common.Address
 10754  	KittyId  *big.Int
 10755  	MatronId *big.Int
 10756  	SireId   *big.Int
 10757  	Genes    *big.Int
 10758  	Raw      types.Log // Blockchain specific contextual infos
 10759  }
 10760  
 10761  // FilterBirth is a free log retrieval operation binding the contract event 0x0a5311bd2a6608f08a180df2ee7c5946819a649b204b554bb8e39825b2c50ad5.
 10762  //
 10763  // Solidity: event Birth(address owner, uint256 kittyId, uint256 matronId, uint256 sireId, uint256 genes)
 10764  func (_KittyCore *KittyCoreFilterer) FilterBirth(opts *bind.FilterOpts) (*KittyCoreBirthIterator, error) {
 10765  
 10766  	logs, sub, err := _KittyCore.contract.FilterLogs(opts, "Birth")
 10767  	if err != nil {
 10768  		return nil, err
 10769  	}
 10770  	return &KittyCoreBirthIterator{contract: _KittyCore.contract, event: "Birth", logs: logs, sub: sub}, nil
 10771  }
 10772  
 10773  // WatchBirth is a free log subscription operation binding the contract event 0x0a5311bd2a6608f08a180df2ee7c5946819a649b204b554bb8e39825b2c50ad5.
 10774  //
 10775  // Solidity: event Birth(address owner, uint256 kittyId, uint256 matronId, uint256 sireId, uint256 genes)
 10776  func (_KittyCore *KittyCoreFilterer) WatchBirth(opts *bind.WatchOpts, sink chan<- *KittyCoreBirth) (event.Subscription, error) {
 10777  
 10778  	logs, sub, err := _KittyCore.contract.WatchLogs(opts, "Birth")
 10779  	if err != nil {
 10780  		return nil, err
 10781  	}
 10782  	return event.NewSubscription(func(quit <-chan struct{}) error {
 10783  		defer sub.Unsubscribe()
 10784  		for {
 10785  			select {
 10786  			case log := <-logs:
 10787  				// New log arrived, parse the event and forward to the user
 10788  				event := new(KittyCoreBirth)
 10789  				if err := _KittyCore.contract.UnpackLog(event, "Birth", log); err != nil {
 10790  					return err
 10791  				}
 10792  				event.Raw = log
 10793  
 10794  				select {
 10795  				case sink <- event:
 10796  				case err := <-sub.Err():
 10797  					return err
 10798  				case <-quit:
 10799  					return nil
 10800  				}
 10801  			case err := <-sub.Err():
 10802  				return err
 10803  			case <-quit:
 10804  				return nil
 10805  			}
 10806  		}
 10807  	}), nil
 10808  }
 10809  
 10810  // ParseBirth is a log parse operation binding the contract event 0x0a5311bd2a6608f08a180df2ee7c5946819a649b204b554bb8e39825b2c50ad5.
 10811  //
 10812  // Solidity: event Birth(address owner, uint256 kittyId, uint256 matronId, uint256 sireId, uint256 genes)
 10813  func (_KittyCore *KittyCoreFilterer) ParseBirth(log types.Log) (*KittyCoreBirth, error) {
 10814  	event := new(KittyCoreBirth)
 10815  	if err := _KittyCore.contract.UnpackLog(event, "Birth", log); err != nil {
 10816  		return nil, err
 10817  	}
 10818  	event.Raw = log
 10819  	return event, nil
 10820  }
 10821  
 10822  // KittyCoreContractUpgradeIterator is returned from FilterContractUpgrade and is used to iterate over the raw logs and unpacked data for ContractUpgrade events raised by the KittyCore contract.
 10823  type KittyCoreContractUpgradeIterator struct {
 10824  	Event *KittyCoreContractUpgrade // Event containing the contract specifics and raw log
 10825  
 10826  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 10827  	event    string              // Event name to use for unpacking event data
 10828  
 10829  	logs chan types.Log        // Log channel receiving the found contract events
 10830  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 10831  	done bool                  // Whether the subscription completed delivering logs
 10832  	fail error                 // Occurred error to stop iteration
 10833  }
 10834  
 10835  // Next advances the iterator to the subsequent event, returning whether there
 10836  // are any more events found. In case of a retrieval or parsing error, false is
 10837  // returned and Error() can be queried for the exact failure.
 10838  func (it *KittyCoreContractUpgradeIterator) Next() bool {
 10839  	// If the iterator failed, stop iterating
 10840  	if it.fail != nil {
 10841  		return false
 10842  	}
 10843  	// If the iterator completed, deliver directly whatever's available
 10844  	if it.done {
 10845  		select {
 10846  		case log := <-it.logs:
 10847  			it.Event = new(KittyCoreContractUpgrade)
 10848  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10849  				it.fail = err
 10850  				return false
 10851  			}
 10852  			it.Event.Raw = log
 10853  			return true
 10854  
 10855  		default:
 10856  			return false
 10857  		}
 10858  	}
 10859  	// Iterator still in progress, wait for either a data or an error event
 10860  	select {
 10861  	case log := <-it.logs:
 10862  		it.Event = new(KittyCoreContractUpgrade)
 10863  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10864  			it.fail = err
 10865  			return false
 10866  		}
 10867  		it.Event.Raw = log
 10868  		return true
 10869  
 10870  	case err := <-it.sub.Err():
 10871  		it.done = true
 10872  		it.fail = err
 10873  		return it.Next()
 10874  	}
 10875  }
 10876  
 10877  // Error returns any retrieval or parsing error occurred during filtering.
 10878  func (it *KittyCoreContractUpgradeIterator) Error() error {
 10879  	return it.fail
 10880  }
 10881  
 10882  // Close terminates the iteration process, releasing any pending underlying
 10883  // resources.
 10884  func (it *KittyCoreContractUpgradeIterator) Close() error {
 10885  	it.sub.Unsubscribe()
 10886  	return nil
 10887  }
 10888  
 10889  // KittyCoreContractUpgrade represents a ContractUpgrade event raised by the KittyCore contract.
 10890  type KittyCoreContractUpgrade struct {
 10891  	NewContract common.Address
 10892  	Raw         types.Log // Blockchain specific contextual infos
 10893  }
 10894  
 10895  // FilterContractUpgrade is a free log retrieval operation binding the contract event 0x450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa446199305.
 10896  //
 10897  // Solidity: event ContractUpgrade(address newContract)
 10898  func (_KittyCore *KittyCoreFilterer) FilterContractUpgrade(opts *bind.FilterOpts) (*KittyCoreContractUpgradeIterator, error) {
 10899  
 10900  	logs, sub, err := _KittyCore.contract.FilterLogs(opts, "ContractUpgrade")
 10901  	if err != nil {
 10902  		return nil, err
 10903  	}
 10904  	return &KittyCoreContractUpgradeIterator{contract: _KittyCore.contract, event: "ContractUpgrade", logs: logs, sub: sub}, nil
 10905  }
 10906  
 10907  // WatchContractUpgrade is a free log subscription operation binding the contract event 0x450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa446199305.
 10908  //
 10909  // Solidity: event ContractUpgrade(address newContract)
 10910  func (_KittyCore *KittyCoreFilterer) WatchContractUpgrade(opts *bind.WatchOpts, sink chan<- *KittyCoreContractUpgrade) (event.Subscription, error) {
 10911  
 10912  	logs, sub, err := _KittyCore.contract.WatchLogs(opts, "ContractUpgrade")
 10913  	if err != nil {
 10914  		return nil, err
 10915  	}
 10916  	return event.NewSubscription(func(quit <-chan struct{}) error {
 10917  		defer sub.Unsubscribe()
 10918  		for {
 10919  			select {
 10920  			case log := <-logs:
 10921  				// New log arrived, parse the event and forward to the user
 10922  				event := new(KittyCoreContractUpgrade)
 10923  				if err := _KittyCore.contract.UnpackLog(event, "ContractUpgrade", log); err != nil {
 10924  					return err
 10925  				}
 10926  				event.Raw = log
 10927  
 10928  				select {
 10929  				case sink <- event:
 10930  				case err := <-sub.Err():
 10931  					return err
 10932  				case <-quit:
 10933  					return nil
 10934  				}
 10935  			case err := <-sub.Err():
 10936  				return err
 10937  			case <-quit:
 10938  				return nil
 10939  			}
 10940  		}
 10941  	}), nil
 10942  }
 10943  
 10944  // ParseContractUpgrade is a log parse operation binding the contract event 0x450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa446199305.
 10945  //
 10946  // Solidity: event ContractUpgrade(address newContract)
 10947  func (_KittyCore *KittyCoreFilterer) ParseContractUpgrade(log types.Log) (*KittyCoreContractUpgrade, error) {
 10948  	event := new(KittyCoreContractUpgrade)
 10949  	if err := _KittyCore.contract.UnpackLog(event, "ContractUpgrade", log); err != nil {
 10950  		return nil, err
 10951  	}
 10952  	event.Raw = log
 10953  	return event, nil
 10954  }
 10955  
 10956  // KittyCorePregnantIterator is returned from FilterPregnant and is used to iterate over the raw logs and unpacked data for Pregnant events raised by the KittyCore contract.
 10957  type KittyCorePregnantIterator struct {
 10958  	Event *KittyCorePregnant // Event containing the contract specifics and raw log
 10959  
 10960  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 10961  	event    string              // Event name to use for unpacking event data
 10962  
 10963  	logs chan types.Log        // Log channel receiving the found contract events
 10964  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 10965  	done bool                  // Whether the subscription completed delivering logs
 10966  	fail error                 // Occurred error to stop iteration
 10967  }
 10968  
 10969  // Next advances the iterator to the subsequent event, returning whether there
 10970  // are any more events found. In case of a retrieval or parsing error, false is
 10971  // returned and Error() can be queried for the exact failure.
 10972  func (it *KittyCorePregnantIterator) Next() bool {
 10973  	// If the iterator failed, stop iterating
 10974  	if it.fail != nil {
 10975  		return false
 10976  	}
 10977  	// If the iterator completed, deliver directly whatever's available
 10978  	if it.done {
 10979  		select {
 10980  		case log := <-it.logs:
 10981  			it.Event = new(KittyCorePregnant)
 10982  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10983  				it.fail = err
 10984  				return false
 10985  			}
 10986  			it.Event.Raw = log
 10987  			return true
 10988  
 10989  		default:
 10990  			return false
 10991  		}
 10992  	}
 10993  	// Iterator still in progress, wait for either a data or an error event
 10994  	select {
 10995  	case log := <-it.logs:
 10996  		it.Event = new(KittyCorePregnant)
 10997  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10998  			it.fail = err
 10999  			return false
 11000  		}
 11001  		it.Event.Raw = log
 11002  		return true
 11003  
 11004  	case err := <-it.sub.Err():
 11005  		it.done = true
 11006  		it.fail = err
 11007  		return it.Next()
 11008  	}
 11009  }
 11010  
 11011  // Error returns any retrieval or parsing error occurred during filtering.
 11012  func (it *KittyCorePregnantIterator) Error() error {
 11013  	return it.fail
 11014  }
 11015  
 11016  // Close terminates the iteration process, releasing any pending underlying
 11017  // resources.
 11018  func (it *KittyCorePregnantIterator) Close() error {
 11019  	it.sub.Unsubscribe()
 11020  	return nil
 11021  }
 11022  
 11023  // KittyCorePregnant represents a Pregnant event raised by the KittyCore contract.
 11024  type KittyCorePregnant struct {
 11025  	Owner            common.Address
 11026  	MatronId         *big.Int
 11027  	SireId           *big.Int
 11028  	CooldownEndBlock *big.Int
 11029  	Raw              types.Log // Blockchain specific contextual infos
 11030  }
 11031  
 11032  // FilterPregnant is a free log retrieval operation binding the contract event 0x241ea03ca20251805084d27d4440371c34a0b85ff108f6bb5611248f73818b80.
 11033  //
 11034  // Solidity: event Pregnant(address owner, uint256 matronId, uint256 sireId, uint256 cooldownEndBlock)
 11035  func (_KittyCore *KittyCoreFilterer) FilterPregnant(opts *bind.FilterOpts) (*KittyCorePregnantIterator, error) {
 11036  
 11037  	logs, sub, err := _KittyCore.contract.FilterLogs(opts, "Pregnant")
 11038  	if err != nil {
 11039  		return nil, err
 11040  	}
 11041  	return &KittyCorePregnantIterator{contract: _KittyCore.contract, event: "Pregnant", logs: logs, sub: sub}, nil
 11042  }
 11043  
 11044  // WatchPregnant is a free log subscription operation binding the contract event 0x241ea03ca20251805084d27d4440371c34a0b85ff108f6bb5611248f73818b80.
 11045  //
 11046  // Solidity: event Pregnant(address owner, uint256 matronId, uint256 sireId, uint256 cooldownEndBlock)
 11047  func (_KittyCore *KittyCoreFilterer) WatchPregnant(opts *bind.WatchOpts, sink chan<- *KittyCorePregnant) (event.Subscription, error) {
 11048  
 11049  	logs, sub, err := _KittyCore.contract.WatchLogs(opts, "Pregnant")
 11050  	if err != nil {
 11051  		return nil, err
 11052  	}
 11053  	return event.NewSubscription(func(quit <-chan struct{}) error {
 11054  		defer sub.Unsubscribe()
 11055  		for {
 11056  			select {
 11057  			case log := <-logs:
 11058  				// New log arrived, parse the event and forward to the user
 11059  				event := new(KittyCorePregnant)
 11060  				if err := _KittyCore.contract.UnpackLog(event, "Pregnant", log); err != nil {
 11061  					return err
 11062  				}
 11063  				event.Raw = log
 11064  
 11065  				select {
 11066  				case sink <- event:
 11067  				case err := <-sub.Err():
 11068  					return err
 11069  				case <-quit:
 11070  					return nil
 11071  				}
 11072  			case err := <-sub.Err():
 11073  				return err
 11074  			case <-quit:
 11075  				return nil
 11076  			}
 11077  		}
 11078  	}), nil
 11079  }
 11080  
 11081  // ParsePregnant is a log parse operation binding the contract event 0x241ea03ca20251805084d27d4440371c34a0b85ff108f6bb5611248f73818b80.
 11082  //
 11083  // Solidity: event Pregnant(address owner, uint256 matronId, uint256 sireId, uint256 cooldownEndBlock)
 11084  func (_KittyCore *KittyCoreFilterer) ParsePregnant(log types.Log) (*KittyCorePregnant, error) {
 11085  	event := new(KittyCorePregnant)
 11086  	if err := _KittyCore.contract.UnpackLog(event, "Pregnant", log); err != nil {
 11087  		return nil, err
 11088  	}
 11089  	event.Raw = log
 11090  	return event, nil
 11091  }
 11092  
 11093  // KittyCoreTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the KittyCore contract.
 11094  type KittyCoreTransferIterator struct {
 11095  	Event *KittyCoreTransfer // Event containing the contract specifics and raw log
 11096  
 11097  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 11098  	event    string              // Event name to use for unpacking event data
 11099  
 11100  	logs chan types.Log        // Log channel receiving the found contract events
 11101  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 11102  	done bool                  // Whether the subscription completed delivering logs
 11103  	fail error                 // Occurred error to stop iteration
 11104  }
 11105  
 11106  // Next advances the iterator to the subsequent event, returning whether there
 11107  // are any more events found. In case of a retrieval or parsing error, false is
 11108  // returned and Error() can be queried for the exact failure.
 11109  func (it *KittyCoreTransferIterator) Next() bool {
 11110  	// If the iterator failed, stop iterating
 11111  	if it.fail != nil {
 11112  		return false
 11113  	}
 11114  	// If the iterator completed, deliver directly whatever's available
 11115  	if it.done {
 11116  		select {
 11117  		case log := <-it.logs:
 11118  			it.Event = new(KittyCoreTransfer)
 11119  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11120  				it.fail = err
 11121  				return false
 11122  			}
 11123  			it.Event.Raw = log
 11124  			return true
 11125  
 11126  		default:
 11127  			return false
 11128  		}
 11129  	}
 11130  	// Iterator still in progress, wait for either a data or an error event
 11131  	select {
 11132  	case log := <-it.logs:
 11133  		it.Event = new(KittyCoreTransfer)
 11134  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11135  			it.fail = err
 11136  			return false
 11137  		}
 11138  		it.Event.Raw = log
 11139  		return true
 11140  
 11141  	case err := <-it.sub.Err():
 11142  		it.done = true
 11143  		it.fail = err
 11144  		return it.Next()
 11145  	}
 11146  }
 11147  
 11148  // Error returns any retrieval or parsing error occurred during filtering.
 11149  func (it *KittyCoreTransferIterator) Error() error {
 11150  	return it.fail
 11151  }
 11152  
 11153  // Close terminates the iteration process, releasing any pending underlying
 11154  // resources.
 11155  func (it *KittyCoreTransferIterator) Close() error {
 11156  	it.sub.Unsubscribe()
 11157  	return nil
 11158  }
 11159  
 11160  // KittyCoreTransfer represents a Transfer event raised by the KittyCore contract.
 11161  type KittyCoreTransfer struct {
 11162  	From    common.Address
 11163  	To      common.Address
 11164  	TokenId *big.Int
 11165  	Raw     types.Log // Blockchain specific contextual infos
 11166  }
 11167  
 11168  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 11169  //
 11170  // Solidity: event Transfer(address from, address to, uint256 tokenId)
 11171  func (_KittyCore *KittyCoreFilterer) FilterTransfer(opts *bind.FilterOpts) (*KittyCoreTransferIterator, error) {
 11172  
 11173  	logs, sub, err := _KittyCore.contract.FilterLogs(opts, "Transfer")
 11174  	if err != nil {
 11175  		return nil, err
 11176  	}
 11177  	return &KittyCoreTransferIterator{contract: _KittyCore.contract, event: "Transfer", logs: logs, sub: sub}, nil
 11178  }
 11179  
 11180  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 11181  //
 11182  // Solidity: event Transfer(address from, address to, uint256 tokenId)
 11183  func (_KittyCore *KittyCoreFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *KittyCoreTransfer) (event.Subscription, error) {
 11184  
 11185  	logs, sub, err := _KittyCore.contract.WatchLogs(opts, "Transfer")
 11186  	if err != nil {
 11187  		return nil, err
 11188  	}
 11189  	return event.NewSubscription(func(quit <-chan struct{}) error {
 11190  		defer sub.Unsubscribe()
 11191  		for {
 11192  			select {
 11193  			case log := <-logs:
 11194  				// New log arrived, parse the event and forward to the user
 11195  				event := new(KittyCoreTransfer)
 11196  				if err := _KittyCore.contract.UnpackLog(event, "Transfer", log); err != nil {
 11197  					return err
 11198  				}
 11199  				event.Raw = log
 11200  
 11201  				select {
 11202  				case sink <- event:
 11203  				case err := <-sub.Err():
 11204  					return err
 11205  				case <-quit:
 11206  					return nil
 11207  				}
 11208  			case err := <-sub.Err():
 11209  				return err
 11210  			case <-quit:
 11211  				return nil
 11212  			}
 11213  		}
 11214  	}), nil
 11215  }
 11216  
 11217  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 11218  //
 11219  // Solidity: event Transfer(address from, address to, uint256 tokenId)
 11220  func (_KittyCore *KittyCoreFilterer) ParseTransfer(log types.Log) (*KittyCoreTransfer, error) {
 11221  	event := new(KittyCoreTransfer)
 11222  	if err := _KittyCore.contract.UnpackLog(event, "Transfer", log); err != nil {
 11223  		return nil, err
 11224  	}
 11225  	event.Raw = log
 11226  	return event, nil
 11227  }
 11228  
 11229  // KittyMintingABI is the input ABI used to generate the binding from.
 11230  const KittyMintingABI = "[{\"constant\":true,\"inputs\":[{\"name\":\"_interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cfoAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_preferredTransport\",\"type\":\"string\"}],\"name\":\"tokenMetadata\",\"outputs\":[{\"name\":\"infoUrl\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"promoCreatedCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ceoAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"GEN0_STARTING_PRICE\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setSiringAuctionAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pregnantKitties\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_kittyId\",\"type\":\"uint256\"}],\"name\":\"isPregnant\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"GEN0_AUCTION_DURATION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"siringAuction\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setGeneScienceAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newCEO\",\"type\":\"address\"}],\"name\":\"setCEO\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newCOO\",\"type\":\"address\"}],\"name\":\"setCOO\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_kittyId\",\"type\":\"uint256\"},{\"name\":\"_startingPrice\",\"type\":\"uint256\"},{\"name\":\"_endingPrice\",\"type\":\"uint256\"},{\"name\":\"_duration\",\"type\":\"uint256\"}],\"name\":\"createSaleAuction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"sireAllowedToAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_matronId\",\"type\":\"uint256\"},{\"name\":\"_sireId\",\"type\":\"uint256\"}],\"name\":\"canBreedWith\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"kittyIndexToApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_kittyId\",\"type\":\"uint256\"},{\"name\":\"_startingPrice\",\"type\":\"uint256\"},{\"name\":\"_endingPrice\",\"type\":\"uint256\"},{\"name\":\"_duration\",\"type\":\"uint256\"}],\"name\":\"createSiringAuction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"setAutoBirthFee\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_addr\",\"type\":\"address\"},{\"name\":\"_sireId\",\"type\":\"uint256\"}],\"name\":\"approveSiring\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newCFO\",\"type\":\"address\"}],\"name\":\"setCFO\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_genes\",\"type\":\"uint256\"},{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"createPromoKitty\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"secs\",\"type\":\"uint256\"}],\"name\":\"setSecondsPerBlock\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"GEN0_CREATION_LIMIT\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setSaleAuctionAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"count\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"secondsPerBlock\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"tokensOfOwner\",\"outputs\":[{\"name\":\"ownerTokens\",\"type\":\"uint256[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_matronId\",\"type\":\"uint256\"}],\"name\":\"giveBirth\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"withdrawAuctionBalances\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"cooldowns\",\"outputs\":[{\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"kittyIndexToOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cooAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"autoBirthFee\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"erc721Metadata\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_genes\",\"type\":\"uint256\"}],\"name\":\"createGen0Auction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_kittyId\",\"type\":\"uint256\"}],\"name\":\"isReadyToBreed\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PROMO_CREATION_LIMIT\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_contractAddress\",\"type\":\"address\"}],\"name\":\"setMetadataAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"saleAuction\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sireId\",\"type\":\"uint256\"},{\"name\":\"_matronId\",\"type\":\"uint256\"}],\"name\":\"bidOnSiringAuction\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"gen0CreatedCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"geneScience\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_matronId\",\"type\":\"uint256\"},{\"name\":\"_sireId\",\"type\":\"uint256\"}],\"name\":\"breedWithAuto\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"matronId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"sireId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"cooldownEndBlock\",\"type\":\"uint256\"}],\"name\":\"Pregnant\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"kittyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"matronId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"sireId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"genes\",\"type\":\"uint256\"}],\"name\":\"Birth\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"newContract\",\"type\":\"address\"}],\"name\":\"ContractUpgrade\",\"type\":\"event\"}]"
 11231  
 11232  // KittyMintingFuncSigs maps the 4-byte function signature to its string representation.
 11233  var KittyMintingFuncSigs = map[string]string{
 11234  	"19c2f201": "GEN0_AUCTION_DURATION()",
 11235  	"680eba27": "GEN0_CREATION_LIMIT()",
 11236  	"0e583df0": "GEN0_STARTING_PRICE()",
 11237  	"defb9584": "PROMO_CREATION_LIMIT()",
 11238  	"095ea7b3": "approve(address,uint256)",
 11239  	"4dfff04f": "approveSiring(address,uint256)",
 11240  	"b0c35c05": "autoBirthFee()",
 11241  	"70a08231": "balanceOf(address)",
 11242  	"ed60ade6": "bidOnSiringAuction(uint256,uint256)",
 11243  	"f7d8c883": "breedWithAuto(uint256,uint256)",
 11244  	"46d22c70": "canBreedWith(uint256,uint256)",
 11245  	"0a0f8168": "ceoAddress()",
 11246  	"0519ce79": "cfoAddress()",
 11247  	"b047fb50": "cooAddress()",
 11248  	"9d6fac6f": "cooldowns(uint256)",
 11249  	"c3bea9af": "createGen0Auction(uint256)",
 11250  	"56129134": "createPromoKitty(uint256,address)",
 11251  	"3d7d3f5a": "createSaleAuction(uint256,uint256,uint256,uint256)",
 11252  	"4ad8c938": "createSiringAuction(uint256,uint256,uint256,uint256)",
 11253  	"bc4006f5": "erc721Metadata()",
 11254  	"f1ca9410": "gen0CreatedCount()",
 11255  	"f2b47d52": "geneScience()",
 11256  	"88c2a0bf": "giveBirth(uint256)",
 11257  	"1940a936": "isPregnant(uint256)",
 11258  	"d3e6f49f": "isReadyToBreed(uint256)",
 11259  	"481af3d3": "kittyIndexToApproved(uint256)",
 11260  	"a45f4bfc": "kittyIndexToOwner(uint256)",
 11261  	"06fdde03": "name()",
 11262  	"6352211e": "ownerOf(uint256)",
 11263  	"8456cb59": "pause()",
 11264  	"5c975abb": "paused()",
 11265  	"183a7947": "pregnantKitties()",
 11266  	"05e45546": "promoCreatedCount()",
 11267  	"e6cbe351": "saleAuction()",
 11268  	"7a7d4937": "secondsPerBlock()",
 11269  	"4b85fd55": "setAutoBirthFee(uint256)",
 11270  	"27d7874c": "setCEO(address)",
 11271  	"4e0a3379": "setCFO(address)",
 11272  	"2ba73c15": "setCOO(address)",
 11273  	"24e7a38a": "setGeneScienceAddress(address)",
 11274  	"e17b25af": "setMetadataAddress(address)",
 11275  	"6fbde40d": "setSaleAuctionAddress(address)",
 11276  	"5663896e": "setSecondsPerBlock(uint256)",
 11277  	"14001f4c": "setSiringAuctionAddress(address)",
 11278  	"46116e6f": "sireAllowedToAddress(uint256)",
 11279  	"21717ebf": "siringAuction()",
 11280  	"01ffc9a7": "supportsInterface(bytes4)",
 11281  	"95d89b41": "symbol()",
 11282  	"0560ff44": "tokenMetadata(uint256,string)",
 11283  	"8462151c": "tokensOfOwner(address)",
 11284  	"18160ddd": "totalSupply()",
 11285  	"a9059cbb": "transfer(address,uint256)",
 11286  	"23b872dd": "transferFrom(address,address,uint256)",
 11287  	"3f4ba83a": "unpause()",
 11288  	"91876e57": "withdrawAuctionBalances()",
 11289  }
 11290  
 11291  // KittyMintingBin is the compiled bytecode used for deploying new contracts.
 11292  var KittyMintingBin = "0x606060409081526002805460a060020a60ff02191690556101c090519081016040908152603c82526078602083015261012c9082015261025860608201526107086080820152610e1060a0820152611c2060c082015261384060e082015261708061010082015261e100610120820152620151806101408201526202a3006101608201526205460061018082015262093a806101a0820152620000a790600390600e620000ca565b50600f60055566071afd498d0000600e553415620000c457600080fd5b62000194565b6002830191839082156200015b5791602002820160005b838211156200012757835183826101000a81548163ffffffff021916908363ffffffff1602179055509260200192600401602081600301049283019260010302620000e1565b8015620001595782816101000a81549063ffffffff021916905560040160208160030104928301926001030262000127565b505b50620001699291506200016d565b5090565b6200019191905b808211156200016957805463ffffffff1916815560010162000174565b90565b612c1280620001a46000396000f3006060604052600436106102795763ffffffff60e060020a60003504166301ffc9a7811461027e5780630519ce79146102ca5780630560ff44146102f957806305e455461461039257806306fdde03146103b7578063095ea7b3146103ca5780630a0f8168146103ee5780630e583df01461040157806314001f4c1461041457806318160ddd14610433578063183a7947146104465780631940a9361461045957806319c2f2011461046f57806321717ebf1461048257806323b872dd1461049557806324e7a38a146104bd57806327d7874c146104dc5780632ba73c15146104fb5780633d7d3f5a1461051a5780633f4ba83a1461053957806346116e6f1461054c57806346d22c7014610562578063481af3d31461057b5780634ad8c938146105915780634b85fd55146105b05780634dfff04f146105c65780634e0a3379146105e857806356129134146106075780635663896e146106295780635c975abb1461063f5780636352211e14610652578063680eba27146106685780636fbde40d1461067b57806370a082311461069a5780637a7d4937146106b95780638456cb59146106cc5780638462151c146106df57806388c2a0bf1461075157806391876e571461076757806395d89b411461077a5780639d6fac6f1461078d578063a45f4bfc146107bc578063a9059cbb146107d2578063b047fb50146107f4578063b0c35c0514610807578063bc4006f51461081a578063c3bea9af1461082d578063d3e6f49f14610843578063defb958414610859578063e17b25af1461086c578063e6cbe3511461088b578063ed60ade61461089e578063f1ca9410146108ac578063f2b47d52146108bf578063f7d8c883146108d2575b600080fd5b341561028957600080fd5b6102b67fffffffff00000000000000000000000000000000000000000000000000000000600435166108e0565b604051901515815260200160405180910390f35b34156102d557600080fd5b6102dd610b67565b604051600160a060020a03909116815260200160405180910390f35b341561030457600080fd5b61031b600480359060248035908101910135610b76565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561035757808201518382015260200161033f565b50505050905090810190601f1680156103845780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561039d57600080fd5b6103a5610c46565b60405190815260200160405180910390f35b34156103c257600080fd5b61031b610c4c565b34156103d557600080fd5b6103ec600160a060020a0360043516602435610c83565b005b34156103f957600080fd5b6102dd610d0d565b341561040c57600080fd5b6103a5610d1c565b341561041f57600080fd5b6103ec600160a060020a0360043516610d27565b341561043e57600080fd5b6103a5610dc7565b341561045157600080fd5b6103a5610dd2565b341561046457600080fd5b6102b6600435610dd8565b341561047a57600080fd5b6103a5610e1d565b341561048d57600080fd5b6102dd610e24565b34156104a057600080fd5b6103ec600160a060020a0360043581169060243516604435610e33565b34156104c857600080fd5b6103ec600160a060020a0360043516610eba565b34156104e757600080fd5b6103ec600160a060020a0360043516610f5a565b341561050657600080fd5b6103ec600160a060020a0360043516610fac565b341561052557600080fd5b6103ec600435602435604435606435610ffe565b341561054457600080fd5b6103ec6110d9565b341561055757600080fd5b6102dd60043561112c565b341561056d57600080fd5b6102b6600435602435611147565b341561058657600080fd5b6102dd6004356111c7565b341561059c57600080fd5b6103ec6004356024356044356064356111e2565b34156105bb57600080fd5b6103ec6004356112a8565b34156105d157600080fd5b6103ec600160a060020a03600435166024356112c8565b34156105f357600080fd5b6103ec600160a060020a0360043516611322565b341561061257600080fd5b6103ec600435600160a060020a0360243516611374565b341561063457600080fd5b6103ec6004356113e0565b341561064a57600080fd5b6102b6611448565b341561065d57600080fd5b6102dd600435611458565b341561067357600080fd5b6103a561147c565b341561068657600080fd5b6103ec600160a060020a0360043516611482565b34156106a557600080fd5b6103a5600160a060020a0360043516611522565b34156106c457600080fd5b6103a561153d565b34156106d757600080fd5b6103ec611543565b34156106ea57600080fd5b6106fe600160a060020a03600435166115cf565b60405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561073d578082015183820152602001610725565b505050509050019250505060405180910390f35b341561075c57600080fd5b6103a56004356116b0565b341561077257600080fd5b6103ec611973565b341561078557600080fd5b61031b611a5e565b341561079857600080fd5b6107a3600435611a95565b60405163ffffffff909116815260200160405180910390f35b34156107c757600080fd5b6102dd600435611ac2565b34156107dd57600080fd5b6103ec600160a060020a0360043516602435611add565b34156107ff57600080fd5b6102dd611b84565b341561081257600080fd5b6103a5611b93565b341561082557600080fd5b6102dd611b99565b341561083857600080fd5b6103ec600435611ba8565b341561084e57600080fd5b6102b6600435611c97565b341561086457600080fd5b6103a5611d60565b341561087757600080fd5b6103ec600160a060020a0360043516611d66565b341561089657600080fd5b6102dd611da3565b6103ec600435602435611db2565b34156108b757600080fd5b6103a5611ef4565b34156108ca57600080fd5b6102dd611efa565b6103ec600435602435611f09565b60006040517f737570706f727473496e7465726661636528627974657334290000000000000081526019016040518091039020600160e060020a03191682600160e060020a0319161480610b5f57506040517f746f6b656e4d657461646174612875696e743235362c737472696e67290000008152601d0160405180910390206040517f746f6b656e734f664f776e657228616464726573732900000000000000000000815260160160405180910390206040517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f7432353629000000000000000000000000000000000000000000000000000000602082015260250160405180910390206040517f7472616e7366657228616464726573732c75696e743235362900000000000000815260190160405180910390206040517f617070726f766528616464726573732c75696e74323536290000000000000000815260180160405180910390206040517f6f776e65724f662875696e743235362900000000000000000000000000000000815260100160405180910390206040517f62616c616e63654f662861646472657373290000000000000000000000000000815260120160405180910390206040517f746f74616c537570706c792829000000000000000000000000000000000000008152600d0160405180910390206040517f73796d626f6c2829000000000000000000000000000000000000000000000000815260080160405180910390206040517f6e616d652829000000000000000000000000000000000000000000000000000081526006016040518091039020181818181818181818600160e060020a03191682600160e060020a031916145b90505b919050565b600154600160a060020a031681565b610b7e612b1f565b610b86612b31565b600d54600090600160a060020a03161515610ba057600080fd5b600d54600160a060020a031663cb4799f287878760405160e060020a63ffffffff861602815260048101848152604060248301908152604483018490529091606401848480828437820191505094505050505060a060405180830381600087803b1515610c0c57600080fd5b5af11515610c1957600080fd5b50505060405180608001805160209091016040529092509050610c3c82826120fb565b9695505050505050565b60115481565b60408051908101604052600d81527f43727970746f4b69747469657300000000000000000000000000000000000000602082015281565b60025460a060020a900460ff1615610c9a57600080fd5b610ca43382612150565b1515610caf57600080fd5b610cb98183612170565b7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925338383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a15050565b600054600160a060020a031681565b662386f26fc1000081565b6000805433600160a060020a03908116911614610d4357600080fd5b5080600160a060020a0381166376190f8f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610d8257600080fd5b5af11515610d8f57600080fd5b505050604051805190501515610da457600080fd5b600c8054600160a060020a031916600160a060020a039290921691909117905550565b600654600019015b90565b600f5481565b6000808211610de657600080fd5b6006805483908110610df457fe5b600091825260209091206002909102016001015460c060020a900463ffffffff16151592915050565b6201518081565b600c54600160a060020a031681565b60025460a060020a900460ff1615610e4a57600080fd5b600160a060020a0382161515610e5f57600080fd5b30600160a060020a031682600160a060020a031614151515610e8057600080fd5b610e8a338261219e565b1515610e9557600080fd5b610e9f8382612150565b1515610eaa57600080fd5b610eb58383836121be565b505050565b6000805433600160a060020a03908116911614610ed657600080fd5b5080600160a060020a0381166354c15b826040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610f1557600080fd5b5af11515610f2257600080fd5b505050604051805190501515610f3757600080fd5b60108054600160a060020a031916600160a060020a039290921691909117905550565b60005433600160a060020a03908116911614610f7557600080fd5b600160a060020a0381161515610f8a57600080fd5b60008054600160a060020a031916600160a060020a0392909216919091179055565b60005433600160a060020a03908116911614610fc757600080fd5b600160a060020a0381161515610fdc57600080fd5b60028054600160a060020a031916600160a060020a0392909216919091179055565b60025460a060020a900460ff161561101557600080fd5b61101f3385612150565b151561102a57600080fd5b61103384610dd8565b1561103d57600080fd5b600b54611054908590600160a060020a0316612170565b600b54600160a060020a03166327ebe40a858585853360405160e060020a63ffffffff88160281526004810195909552602485019390935260448401919091526064830152600160a060020a0316608482015260a401600060405180830381600087803b15156110c357600080fd5b5af115156110d057600080fd5b50505050505050565b60005433600160a060020a039081169116146110f457600080fd5b60025460a060020a900460ff16151561110c57600080fd5b6002805474ff000000000000000000000000000000000000000019169055565b600a60205260009081526040902054600160a060020a031681565b6000808080851161115757600080fd5b6000841161116457600080fd5b600680548690811061117257fe5b9060005260206000209060020201915060068481548110151561119157fe5b906000526020600020906002020190506111ad828683876122a6565b80156111be57506111be8486612426565b95945050505050565b600960205260009081526040902054600160a060020a031681565b60025460a060020a900460ff16156111f957600080fd5b6112033385612150565b151561120e57600080fd5b61121784611c97565b151561122257600080fd5b600c54611239908590600160a060020a0316612170565b600c54600160a060020a03166327ebe40a858585853360405160e060020a63ffffffff88160281526004810195909552602485019390935260448401919091526064830152600160a060020a0316608482015260a401600060405180830381600087803b15156110c357600080fd5b60025433600160a060020a039081169116146112c357600080fd5b600e55565b60025460a060020a900460ff16156112df57600080fd5b6112e93382612150565b15156112f457600080fd5b6000908152600a602052604090208054600160a060020a031916600160a060020a0392909216919091179055565b60005433600160a060020a0390811691161461133d57600080fd5b600160a060020a038116151561135257600080fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60025460009033600160a060020a0390811691161461139257600080fd5b5080600160a060020a03811615156113b25750600254600160a060020a03165b60115461138890106113c357600080fd5b6011805460010190556113da60008080868561247b565b50505050565b60025433600160a060020a039081169116148061140b575060005433600160a060020a039081169116145b80611424575060015433600160a060020a039081169116145b151561142f57600080fd5b60035463ffffffff16811061144357600080fd5b600555565b60025460a060020a900460ff1681565b600081815260076020526040902054600160a060020a0316801515610b6257600080fd5b61afc881565b6000805433600160a060020a0390811691161461149e57600080fd5b5080600160a060020a0381166385b861886040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156114dd57600080fd5b5af115156114ea57600080fd5b5050506040518051905015156114ff57600080fd5b600b8054600160a060020a031916600160a060020a039290921691909117905550565b600160a060020a031660009081526008602052604090205490565b60055481565b60025433600160a060020a039081169116148061156e575060005433600160a060020a039081169116145b80611587575060015433600160a060020a039081169116145b151561159257600080fd5b60025460a060020a900460ff16156115a957600080fd5b6002805474ff0000000000000000000000000000000000000000191660a060020a179055565b6115d7612b1f565b60006115e1612b1f565b60008060006115ef87611522565b945084151561161f5760006040518059106116075750595b908082528060200260200182016040525095506116a6565b8460405180591061162d5750595b90808252806020026020018201604052509350611648610dc7565b925060009150600190505b8281116116a257600081815260076020526040902054600160a060020a038881169116141561169a578084838151811061168957fe5b602090810290910101526001909101905b600101611653565b8395505b5050505050919050565b600080600080600080600080600260149054906101000a900460ff161515156116d857600080fd5b600680548a9081106116e657fe5b60009182526020909120600290910201600181015490975067ffffffffffffffff16151561171357600080fd5b6117a88761010060405190810160409081528254825260019092015467ffffffffffffffff8082166020840152680100000000000000008204169282019290925263ffffffff608060020a83048116606083015260a060020a83048116608083015260c060020a83041660a082015261ffff60e060020a8304811660c083015260f060020a90920490911660e0820152612727565b15156117b357600080fd5b60018701546006805460c060020a90920463ffffffff16975090879081106117d757fe5b600091825260209091206001808a015460029093029091019081015490965061ffff60f060020a9283900481169650919004168490111561182557600185015460f060020a900461ffff1693505b6010548754865460018a0154600160a060020a0390931692630d9f5aed92919068010000000000000000900467ffffffffffffffff166000190160405160e060020a63ffffffff86160281526004810193909352602483019190915267ffffffffffffffff166044820152606401602060405180830381600087803b15156118ac57600080fd5b5af115156118b957600080fd5b505050604051805160008b81526007602052604090205460018a810154929650600160a060020a03909116945061190892508b9160c060020a900463ffffffff1690870161ffff16868661247b565b6001880180547bffffffff00000000000000000000000000000000000000000000000019169055600f8054600019019055600e54909150600160a060020a0333169080156108fc0290604051600060405180830381858888f150939c9b505050505050505050505050565b60025433600160a060020a039081169116148061199e575060005433600160a060020a039081169116145b806119b7575060015433600160a060020a039081169116145b15156119c257600080fd5b600b54600160a060020a0316635fd8c7106040518163ffffffff1660e060020a028152600401600060405180830381600087803b1515611a0157600080fd5b5af11515611a0e57600080fd5b5050600c54600160a060020a03169050635fd8c7106040518163ffffffff1660e060020a028152600401600060405180830381600087803b1515611a5157600080fd5b5af11515610eb557600080fd5b60408051908101604052600281527f434b000000000000000000000000000000000000000000000000000000000000602082015281565b600381600e8110611aa257fe5b60089182820401919006600402915054906101000a900463ffffffff1681565b600760205260009081526040902054600160a060020a031681565b60025460a060020a900460ff1615611af457600080fd5b600160a060020a0382161515611b0957600080fd5b30600160a060020a031682600160a060020a031614151515611b2a57600080fd5b600b54600160a060020a0383811691161415611b4557600080fd5b600c54600160a060020a0383811691161415611b6057600080fd5b611b6a3382612150565b1515611b7557600080fd5b611b803383836121be565b5050565b600254600160a060020a031681565b600e5481565b600d54600160a060020a031681565b60025460009033600160a060020a03908116911614611bc657600080fd5b60125461afc89010611bd757600080fd5b611be66000806000853061247b565b600b54909150611c00908290600160a060020a0316612170565b600b54600160a060020a03166327ebe40a82611c1a61275f565b6000620151803060405160e060020a63ffffffff88160281526004810195909552602485019390935260448401919091526064830152600160a060020a0316608482015260a401600060405180830381600087803b1515611c7a57600080fd5b5af11515611c8757600080fd5b5050601280546001019055505050565b600080808311611ca657600080fd5b6006805484908110611cb457fe5b90600052602060002090600202019050611d598161010060405190810160409081528254825260019092015467ffffffffffffffff8082166020840152680100000000000000008204169282019290925263ffffffff608060020a83048116606083015260a060020a83048116608083015260c060020a83041660a082015261ffff60e060020a8304811660c083015260f060020a90920490911660e0820152612801565b9392505050565b61138881565b60005433600160a060020a03908116911614611d8157600080fd5b600d8054600160a060020a031916600160a060020a0392909216919091179055565b600b54600160a060020a031681565b60025460009060a060020a900460ff1615611dcc57600080fd5b611dd63383612150565b1515611de157600080fd5b611dea82611c97565b1515611df557600080fd5b611dff8284612838565b1515611e0a57600080fd5b600c54600160a060020a031663c55d0f568460405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611e5257600080fd5b5af11515611e5f57600080fd5b5050506040518051600e5490925082013410159050611e7d57600080fd5b600c54600e54600160a060020a039091169063454a2ab39034038560405160e060020a63ffffffff851602815260048101919091526024016000604051808303818588803b1515611ecd57600080fd5b5af11515611eda57600080fd5b50505050610eb58263ffffffff168463ffffffff16612887565b60125481565b601054600160a060020a031681565b600254600090819060a060020a900460ff1615611f2557600080fd5b600e54341015611f3457600080fd5b611f3e3385612150565b1515611f4957600080fd5b611f538385612426565b1515611f5e57600080fd5b6006805485908110611f6c57fe5b906000526020600020906002020191506120118261010060405190810160409081528254825260019092015467ffffffffffffffff8082166020840152680100000000000000008204169282019290925263ffffffff608060020a83048116606083015260a060020a83048116608083015260c060020a83041660a082015261ffff60e060020a8304811660c083015260f060020a90920490911660e0820152612801565b151561201c57600080fd5b600680548490811061202a57fe5b906000526020600020906002020190506120cf8161010060405190810160409081528254825260019092015467ffffffffffffffff8082166020840152680100000000000000008204169282019290925263ffffffff608060020a83048116606083015260a060020a83048116608083015260c060020a83041660a082015261ffff60e060020a8304811660c083015260f060020a90920490911660e0820152612801565b15156120da57600080fd5b6120e6828583866122a6565b15156120f157600080fd5b6113da8484612887565b612103612b1f565b61210b612b1f565b6000808460405180591061211c5750595b818152601f19601f83011681016020016040529050925050602082019050846121468282876129f1565b5090949350505050565b600090815260076020526040902054600160a060020a0391821691161490565b6000918252600960205260409091208054600160a060020a031916600160a060020a03909216919091179055565b600090815260096020526040902054600160a060020a0391821691161490565b600160a060020a03808316600081815260086020908152604080832080546001019055858352600790915290208054600160a060020a031916909117905583161561225157600160a060020a03831660009081526008602090815260408083208054600019019055838352600a82528083208054600160a060020a03199081169091556009909252909120805490911690555b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a1505050565b6000818414156122b85750600061241e565b6001850154608060020a900463ffffffff168214806122e75750600185015460a060020a900463ffffffff1682145b156122f45750600061241e565b6001830154608060020a900463ffffffff168414806123235750600183015460a060020a900463ffffffff1684145b156123305750600061241e565b6001830154608060020a900463ffffffff16158061235d57506001850154608060020a900463ffffffff16155b1561236a5750600161241e565b60018581015490840154608060020a9182900463ffffffff908116929091041614806123b5575060018086015490840154608060020a900463ffffffff90811660a060020a90920416145b156123c25750600061241e565b6001808601549084015460a060020a900463ffffffff908116608060020a90920416148061240d57506001858101549084015460a060020a9182900463ffffffff9081169290910416145b1561241a5750600061241e565b5060015b949350505050565b6000818152600760205260408082205484835290822054600160a060020a039182169116808214806111be57506000858152600a6020526040902054600160a060020a03908116908316149250505092915050565b600080612486612b5a565b600063ffffffff8916891461249a57600080fd5b63ffffffff881688146124ac57600080fd5b61ffff871687146124bc57600080fd5b600287049250600d8361ffff1611156124d457600d92505b610100604051908101604090815287825267ffffffffffffffff42166020830152600090820181905263ffffffff808c1660608401528a16608083015260a082015261ffff80851660c0830152881660e08201526006805491935060019180830161253f8382612b9e565b6000928352602090922085916002020181518155602082015160018201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560408201518160010160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060608201518160010160106101000a81548163ffffffff021916908363ffffffff16021790555060808201518160010160146101000a81548163ffffffff021916908363ffffffff16021790555060a08201518160010160186101000a81548163ffffffff021916908363ffffffff16021790555060c082015181600101601c6101000a81548161ffff021916908361ffff16021790555060e08201516001909101805461ffff9290921660f060020a027dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092169190911790555003905063ffffffff8116811461269a57600080fd5b7f0a5311bd2a6608f08a180df2ee7c5946819a649b204b554bb8e39825b2c50ad58582846060015163ffffffff16856080015163ffffffff168651604051600160a060020a03909516855260208501939093526040808501929092526060840152608083019190915260a0909101905180910390a161271b600086836121be565b98975050505050505050565b60008160a0015163ffffffff1615801590610b5f57504367ffffffffffffffff16826040015167ffffffffffffffff16111592915050565b600b5460009081908190600160a060020a031663eac9d94c6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156127a557600080fd5b5af115156127b257600080fd5b50505060405180519250506fffffffffffffffffffffffffffffffff821682146127db57600080fd5b50600281048101662386f26fc100008110156127fb5750662386f26fc100005b92915050565b60008160a0015163ffffffff16158015610b5f57504367ffffffffffffffff16826040015167ffffffffffffffff16111592915050565b600080600060068581548110151561284c57fe5b9060005260206000209060020201915060068481548110151561286b57fe5b906000526020600020906002020190506111be828683876122a6565b60008060068381548110151561289957fe5b906000526020600020906002020191506006848154811015156128b857fe5b600091825260209091206002909102016001810180547bffffffff000000000000000000000000000000000000000000000000191660c060020a63ffffffff871602179055905061290882612a36565b61291181612a36565b6000848152600a602090815260408083208054600160a060020a031990811690915586845281842080549091169055600f8054600190810190915587845260079092529182902054908301547f241ea03ca20251805084d27d4440371c34a0b85ff108f6bb5611248f73818b8092600160a060020a0390921691879187916801000000000000000090910467ffffffffffffffff1690518085600160a060020a0316600160a060020a031681526020018481526020018381526020018267ffffffffffffffff16815260200194505050505060405180910390a150505050565b60005b60208210612a1757825184526020840193506020830192506020820391506129f4565b6001826020036101000a03905080198351168185511617909352505050565b600554600182015443919060039060e060020a900461ffff16600e8110612a5957fe5b600891828204019190066004029054906101000a900463ffffffff1663ffffffff16811515612a8457fe5b6001840180546fffffffffffffffff0000000000000000191668010000000000000000939092049390930167ffffffffffffffff16919091021790819055600d60e060020a90910461ffff161015612b1c576001818101805461ffff60e060020a8083048216909401169092027fffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092169190911790555b50565b60206040519081016040526000815290565b60806040519081016040526004815b60008152600019919091019060200181612b405790505090565b6101006040519081016040908152600080835260208301819052908201819052606082018190526080820181905260a0820181905260c0820181905260e082015290565b815481835581811511610eb557600083815260209020610eb591610dcf9160029182028101918502015b80821115612be25760008082556001820155600201612bc8565b50905600a165627a7a72305820fef72fab47944956ff684690f1315b29324e5f8cbf3949370f53d5138314580f0029"
 11293  
 11294  // DeployKittyMinting deploys a new Ethereum contract, binding an instance of KittyMinting to it.
 11295  func DeployKittyMinting(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *KittyMinting, error) {
 11296  	parsed, err := abi.JSON(strings.NewReader(KittyMintingABI))
 11297  	if err != nil {
 11298  		return common.Address{}, nil, nil, err
 11299  	}
 11300  
 11301  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(KittyMintingBin), backend)
 11302  	if err != nil {
 11303  		return common.Address{}, nil, nil, err
 11304  	}
 11305  	return address, tx, &KittyMinting{KittyMintingCaller: KittyMintingCaller{contract: contract}, KittyMintingTransactor: KittyMintingTransactor{contract: contract}, KittyMintingFilterer: KittyMintingFilterer{contract: contract}}, nil
 11306  }
 11307  
 11308  // KittyMinting is an auto generated Go binding around an Ethereum contract.
 11309  type KittyMinting struct {
 11310  	KittyMintingCaller     // Read-only binding to the contract
 11311  	KittyMintingTransactor // Write-only binding to the contract
 11312  	KittyMintingFilterer   // Log filterer for contract events
 11313  }
 11314  
 11315  // KittyMintingCaller is an auto generated read-only Go binding around an Ethereum contract.
 11316  type KittyMintingCaller struct {
 11317  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 11318  }
 11319  
 11320  // KittyMintingTransactor is an auto generated write-only Go binding around an Ethereum contract.
 11321  type KittyMintingTransactor struct {
 11322  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 11323  }
 11324  
 11325  // KittyMintingFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 11326  type KittyMintingFilterer struct {
 11327  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 11328  }
 11329  
 11330  // KittyMintingSession is an auto generated Go binding around an Ethereum contract,
 11331  // with pre-set call and transact options.
 11332  type KittyMintingSession struct {
 11333  	Contract     *KittyMinting     // Generic contract binding to set the session for
 11334  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 11335  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 11336  }
 11337  
 11338  // KittyMintingCallerSession is an auto generated read-only Go binding around an Ethereum contract,
 11339  // with pre-set call options.
 11340  type KittyMintingCallerSession struct {
 11341  	Contract *KittyMintingCaller // Generic contract caller binding to set the session for
 11342  	CallOpts bind.CallOpts       // Call options to use throughout this session
 11343  }
 11344  
 11345  // KittyMintingTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 11346  // with pre-set transact options.
 11347  type KittyMintingTransactorSession struct {
 11348  	Contract     *KittyMintingTransactor // Generic contract transactor binding to set the session for
 11349  	TransactOpts bind.TransactOpts       // Transaction auth options to use throughout this session
 11350  }
 11351  
 11352  // KittyMintingRaw is an auto generated low-level Go binding around an Ethereum contract.
 11353  type KittyMintingRaw struct {
 11354  	Contract *KittyMinting // Generic contract binding to access the raw methods on
 11355  }
 11356  
 11357  // KittyMintingCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 11358  type KittyMintingCallerRaw struct {
 11359  	Contract *KittyMintingCaller // Generic read-only contract binding to access the raw methods on
 11360  }
 11361  
 11362  // KittyMintingTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 11363  type KittyMintingTransactorRaw struct {
 11364  	Contract *KittyMintingTransactor // Generic write-only contract binding to access the raw methods on
 11365  }
 11366  
 11367  // NewKittyMinting creates a new instance of KittyMinting, bound to a specific deployed contract.
 11368  func NewKittyMinting(address common.Address, backend bind.ContractBackend) (*KittyMinting, error) {
 11369  	contract, err := bindKittyMinting(address, backend, backend, backend)
 11370  	if err != nil {
 11371  		return nil, err
 11372  	}
 11373  	return &KittyMinting{KittyMintingCaller: KittyMintingCaller{contract: contract}, KittyMintingTransactor: KittyMintingTransactor{contract: contract}, KittyMintingFilterer: KittyMintingFilterer{contract: contract}}, nil
 11374  }
 11375  
 11376  // NewKittyMintingCaller creates a new read-only instance of KittyMinting, bound to a specific deployed contract.
 11377  func NewKittyMintingCaller(address common.Address, caller bind.ContractCaller) (*KittyMintingCaller, error) {
 11378  	contract, err := bindKittyMinting(address, caller, nil, nil)
 11379  	if err != nil {
 11380  		return nil, err
 11381  	}
 11382  	return &KittyMintingCaller{contract: contract}, nil
 11383  }
 11384  
 11385  // NewKittyMintingTransactor creates a new write-only instance of KittyMinting, bound to a specific deployed contract.
 11386  func NewKittyMintingTransactor(address common.Address, transactor bind.ContractTransactor) (*KittyMintingTransactor, error) {
 11387  	contract, err := bindKittyMinting(address, nil, transactor, nil)
 11388  	if err != nil {
 11389  		return nil, err
 11390  	}
 11391  	return &KittyMintingTransactor{contract: contract}, nil
 11392  }
 11393  
 11394  // NewKittyMintingFilterer creates a new log filterer instance of KittyMinting, bound to a specific deployed contract.
 11395  func NewKittyMintingFilterer(address common.Address, filterer bind.ContractFilterer) (*KittyMintingFilterer, error) {
 11396  	contract, err := bindKittyMinting(address, nil, nil, filterer)
 11397  	if err != nil {
 11398  		return nil, err
 11399  	}
 11400  	return &KittyMintingFilterer{contract: contract}, nil
 11401  }
 11402  
 11403  // bindKittyMinting binds a generic wrapper to an already deployed contract.
 11404  func bindKittyMinting(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 11405  	parsed, err := abi.JSON(strings.NewReader(KittyMintingABI))
 11406  	if err != nil {
 11407  		return nil, err
 11408  	}
 11409  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 11410  }
 11411  
 11412  // Call invokes the (constant) contract method with params as input values and
 11413  // sets the output to result. The result type might be a single field for simple
 11414  // returns, a slice of interfaces for anonymous returns and a struct for named
 11415  // returns.
 11416  func (_KittyMinting *KittyMintingRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 11417  	return _KittyMinting.Contract.KittyMintingCaller.contract.Call(opts, result, method, params...)
 11418  }
 11419  
 11420  // Transfer initiates a plain transaction to move funds to the contract, calling
 11421  // its default method if one is available.
 11422  func (_KittyMinting *KittyMintingRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 11423  	return _KittyMinting.Contract.KittyMintingTransactor.contract.Transfer(opts)
 11424  }
 11425  
 11426  // Transact invokes the (paid) contract method with params as input values.
 11427  func (_KittyMinting *KittyMintingRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 11428  	return _KittyMinting.Contract.KittyMintingTransactor.contract.Transact(opts, method, params...)
 11429  }
 11430  
 11431  // Call invokes the (constant) contract method with params as input values and
 11432  // sets the output to result. The result type might be a single field for simple
 11433  // returns, a slice of interfaces for anonymous returns and a struct for named
 11434  // returns.
 11435  func (_KittyMinting *KittyMintingCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 11436  	return _KittyMinting.Contract.contract.Call(opts, result, method, params...)
 11437  }
 11438  
 11439  // Transfer initiates a plain transaction to move funds to the contract, calling
 11440  // its default method if one is available.
 11441  func (_KittyMinting *KittyMintingTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 11442  	return _KittyMinting.Contract.contract.Transfer(opts)
 11443  }
 11444  
 11445  // Transact invokes the (paid) contract method with params as input values.
 11446  func (_KittyMinting *KittyMintingTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 11447  	return _KittyMinting.Contract.contract.Transact(opts, method, params...)
 11448  }
 11449  
 11450  // GEN0AUCTIONDURATION is a free data retrieval call binding the contract method 0x19c2f201.
 11451  //
 11452  // Solidity: function GEN0_AUCTION_DURATION() view returns(uint256)
 11453  func (_KittyMinting *KittyMintingCaller) GEN0AUCTIONDURATION(opts *bind.CallOpts) (*big.Int, error) {
 11454  	var out []interface{}
 11455  	err := _KittyMinting.contract.Call(opts, &out, "GEN0_AUCTION_DURATION")
 11456  
 11457  	if err != nil {
 11458  		return *new(*big.Int), err
 11459  	}
 11460  
 11461  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 11462  
 11463  	return out0, err
 11464  
 11465  }
 11466  
 11467  // GEN0AUCTIONDURATION is a free data retrieval call binding the contract method 0x19c2f201.
 11468  //
 11469  // Solidity: function GEN0_AUCTION_DURATION() view returns(uint256)
 11470  func (_KittyMinting *KittyMintingSession) GEN0AUCTIONDURATION() (*big.Int, error) {
 11471  	return _KittyMinting.Contract.GEN0AUCTIONDURATION(&_KittyMinting.CallOpts)
 11472  }
 11473  
 11474  // GEN0AUCTIONDURATION is a free data retrieval call binding the contract method 0x19c2f201.
 11475  //
 11476  // Solidity: function GEN0_AUCTION_DURATION() view returns(uint256)
 11477  func (_KittyMinting *KittyMintingCallerSession) GEN0AUCTIONDURATION() (*big.Int, error) {
 11478  	return _KittyMinting.Contract.GEN0AUCTIONDURATION(&_KittyMinting.CallOpts)
 11479  }
 11480  
 11481  // GEN0CREATIONLIMIT is a free data retrieval call binding the contract method 0x680eba27.
 11482  //
 11483  // Solidity: function GEN0_CREATION_LIMIT() view returns(uint256)
 11484  func (_KittyMinting *KittyMintingCaller) GEN0CREATIONLIMIT(opts *bind.CallOpts) (*big.Int, error) {
 11485  	var out []interface{}
 11486  	err := _KittyMinting.contract.Call(opts, &out, "GEN0_CREATION_LIMIT")
 11487  
 11488  	if err != nil {
 11489  		return *new(*big.Int), err
 11490  	}
 11491  
 11492  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 11493  
 11494  	return out0, err
 11495  
 11496  }
 11497  
 11498  // GEN0CREATIONLIMIT is a free data retrieval call binding the contract method 0x680eba27.
 11499  //
 11500  // Solidity: function GEN0_CREATION_LIMIT() view returns(uint256)
 11501  func (_KittyMinting *KittyMintingSession) GEN0CREATIONLIMIT() (*big.Int, error) {
 11502  	return _KittyMinting.Contract.GEN0CREATIONLIMIT(&_KittyMinting.CallOpts)
 11503  }
 11504  
 11505  // GEN0CREATIONLIMIT is a free data retrieval call binding the contract method 0x680eba27.
 11506  //
 11507  // Solidity: function GEN0_CREATION_LIMIT() view returns(uint256)
 11508  func (_KittyMinting *KittyMintingCallerSession) GEN0CREATIONLIMIT() (*big.Int, error) {
 11509  	return _KittyMinting.Contract.GEN0CREATIONLIMIT(&_KittyMinting.CallOpts)
 11510  }
 11511  
 11512  // GEN0STARTINGPRICE is a free data retrieval call binding the contract method 0x0e583df0.
 11513  //
 11514  // Solidity: function GEN0_STARTING_PRICE() view returns(uint256)
 11515  func (_KittyMinting *KittyMintingCaller) GEN0STARTINGPRICE(opts *bind.CallOpts) (*big.Int, error) {
 11516  	var out []interface{}
 11517  	err := _KittyMinting.contract.Call(opts, &out, "GEN0_STARTING_PRICE")
 11518  
 11519  	if err != nil {
 11520  		return *new(*big.Int), err
 11521  	}
 11522  
 11523  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 11524  
 11525  	return out0, err
 11526  
 11527  }
 11528  
 11529  // GEN0STARTINGPRICE is a free data retrieval call binding the contract method 0x0e583df0.
 11530  //
 11531  // Solidity: function GEN0_STARTING_PRICE() view returns(uint256)
 11532  func (_KittyMinting *KittyMintingSession) GEN0STARTINGPRICE() (*big.Int, error) {
 11533  	return _KittyMinting.Contract.GEN0STARTINGPRICE(&_KittyMinting.CallOpts)
 11534  }
 11535  
 11536  // GEN0STARTINGPRICE is a free data retrieval call binding the contract method 0x0e583df0.
 11537  //
 11538  // Solidity: function GEN0_STARTING_PRICE() view returns(uint256)
 11539  func (_KittyMinting *KittyMintingCallerSession) GEN0STARTINGPRICE() (*big.Int, error) {
 11540  	return _KittyMinting.Contract.GEN0STARTINGPRICE(&_KittyMinting.CallOpts)
 11541  }
 11542  
 11543  // PROMOCREATIONLIMIT is a free data retrieval call binding the contract method 0xdefb9584.
 11544  //
 11545  // Solidity: function PROMO_CREATION_LIMIT() view returns(uint256)
 11546  func (_KittyMinting *KittyMintingCaller) PROMOCREATIONLIMIT(opts *bind.CallOpts) (*big.Int, error) {
 11547  	var out []interface{}
 11548  	err := _KittyMinting.contract.Call(opts, &out, "PROMO_CREATION_LIMIT")
 11549  
 11550  	if err != nil {
 11551  		return *new(*big.Int), err
 11552  	}
 11553  
 11554  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 11555  
 11556  	return out0, err
 11557  
 11558  }
 11559  
 11560  // PROMOCREATIONLIMIT is a free data retrieval call binding the contract method 0xdefb9584.
 11561  //
 11562  // Solidity: function PROMO_CREATION_LIMIT() view returns(uint256)
 11563  func (_KittyMinting *KittyMintingSession) PROMOCREATIONLIMIT() (*big.Int, error) {
 11564  	return _KittyMinting.Contract.PROMOCREATIONLIMIT(&_KittyMinting.CallOpts)
 11565  }
 11566  
 11567  // PROMOCREATIONLIMIT is a free data retrieval call binding the contract method 0xdefb9584.
 11568  //
 11569  // Solidity: function PROMO_CREATION_LIMIT() view returns(uint256)
 11570  func (_KittyMinting *KittyMintingCallerSession) PROMOCREATIONLIMIT() (*big.Int, error) {
 11571  	return _KittyMinting.Contract.PROMOCREATIONLIMIT(&_KittyMinting.CallOpts)
 11572  }
 11573  
 11574  // AutoBirthFee is a free data retrieval call binding the contract method 0xb0c35c05.
 11575  //
 11576  // Solidity: function autoBirthFee() view returns(uint256)
 11577  func (_KittyMinting *KittyMintingCaller) AutoBirthFee(opts *bind.CallOpts) (*big.Int, error) {
 11578  	var out []interface{}
 11579  	err := _KittyMinting.contract.Call(opts, &out, "autoBirthFee")
 11580  
 11581  	if err != nil {
 11582  		return *new(*big.Int), err
 11583  	}
 11584  
 11585  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 11586  
 11587  	return out0, err
 11588  
 11589  }
 11590  
 11591  // AutoBirthFee is a free data retrieval call binding the contract method 0xb0c35c05.
 11592  //
 11593  // Solidity: function autoBirthFee() view returns(uint256)
 11594  func (_KittyMinting *KittyMintingSession) AutoBirthFee() (*big.Int, error) {
 11595  	return _KittyMinting.Contract.AutoBirthFee(&_KittyMinting.CallOpts)
 11596  }
 11597  
 11598  // AutoBirthFee is a free data retrieval call binding the contract method 0xb0c35c05.
 11599  //
 11600  // Solidity: function autoBirthFee() view returns(uint256)
 11601  func (_KittyMinting *KittyMintingCallerSession) AutoBirthFee() (*big.Int, error) {
 11602  	return _KittyMinting.Contract.AutoBirthFee(&_KittyMinting.CallOpts)
 11603  }
 11604  
 11605  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 11606  //
 11607  // Solidity: function balanceOf(address _owner) view returns(uint256 count)
 11608  func (_KittyMinting *KittyMintingCaller) BalanceOf(opts *bind.CallOpts, _owner common.Address) (*big.Int, error) {
 11609  	var out []interface{}
 11610  	err := _KittyMinting.contract.Call(opts, &out, "balanceOf", _owner)
 11611  
 11612  	if err != nil {
 11613  		return *new(*big.Int), err
 11614  	}
 11615  
 11616  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 11617  
 11618  	return out0, err
 11619  
 11620  }
 11621  
 11622  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 11623  //
 11624  // Solidity: function balanceOf(address _owner) view returns(uint256 count)
 11625  func (_KittyMinting *KittyMintingSession) BalanceOf(_owner common.Address) (*big.Int, error) {
 11626  	return _KittyMinting.Contract.BalanceOf(&_KittyMinting.CallOpts, _owner)
 11627  }
 11628  
 11629  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 11630  //
 11631  // Solidity: function balanceOf(address _owner) view returns(uint256 count)
 11632  func (_KittyMinting *KittyMintingCallerSession) BalanceOf(_owner common.Address) (*big.Int, error) {
 11633  	return _KittyMinting.Contract.BalanceOf(&_KittyMinting.CallOpts, _owner)
 11634  }
 11635  
 11636  // CanBreedWith is a free data retrieval call binding the contract method 0x46d22c70.
 11637  //
 11638  // Solidity: function canBreedWith(uint256 _matronId, uint256 _sireId) view returns(bool)
 11639  func (_KittyMinting *KittyMintingCaller) CanBreedWith(opts *bind.CallOpts, _matronId *big.Int, _sireId *big.Int) (bool, error) {
 11640  	var out []interface{}
 11641  	err := _KittyMinting.contract.Call(opts, &out, "canBreedWith", _matronId, _sireId)
 11642  
 11643  	if err != nil {
 11644  		return *new(bool), err
 11645  	}
 11646  
 11647  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 11648  
 11649  	return out0, err
 11650  
 11651  }
 11652  
 11653  // CanBreedWith is a free data retrieval call binding the contract method 0x46d22c70.
 11654  //
 11655  // Solidity: function canBreedWith(uint256 _matronId, uint256 _sireId) view returns(bool)
 11656  func (_KittyMinting *KittyMintingSession) CanBreedWith(_matronId *big.Int, _sireId *big.Int) (bool, error) {
 11657  	return _KittyMinting.Contract.CanBreedWith(&_KittyMinting.CallOpts, _matronId, _sireId)
 11658  }
 11659  
 11660  // CanBreedWith is a free data retrieval call binding the contract method 0x46d22c70.
 11661  //
 11662  // Solidity: function canBreedWith(uint256 _matronId, uint256 _sireId) view returns(bool)
 11663  func (_KittyMinting *KittyMintingCallerSession) CanBreedWith(_matronId *big.Int, _sireId *big.Int) (bool, error) {
 11664  	return _KittyMinting.Contract.CanBreedWith(&_KittyMinting.CallOpts, _matronId, _sireId)
 11665  }
 11666  
 11667  // CeoAddress is a free data retrieval call binding the contract method 0x0a0f8168.
 11668  //
 11669  // Solidity: function ceoAddress() view returns(address)
 11670  func (_KittyMinting *KittyMintingCaller) CeoAddress(opts *bind.CallOpts) (common.Address, error) {
 11671  	var out []interface{}
 11672  	err := _KittyMinting.contract.Call(opts, &out, "ceoAddress")
 11673  
 11674  	if err != nil {
 11675  		return *new(common.Address), err
 11676  	}
 11677  
 11678  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 11679  
 11680  	return out0, err
 11681  
 11682  }
 11683  
 11684  // CeoAddress is a free data retrieval call binding the contract method 0x0a0f8168.
 11685  //
 11686  // Solidity: function ceoAddress() view returns(address)
 11687  func (_KittyMinting *KittyMintingSession) CeoAddress() (common.Address, error) {
 11688  	return _KittyMinting.Contract.CeoAddress(&_KittyMinting.CallOpts)
 11689  }
 11690  
 11691  // CeoAddress is a free data retrieval call binding the contract method 0x0a0f8168.
 11692  //
 11693  // Solidity: function ceoAddress() view returns(address)
 11694  func (_KittyMinting *KittyMintingCallerSession) CeoAddress() (common.Address, error) {
 11695  	return _KittyMinting.Contract.CeoAddress(&_KittyMinting.CallOpts)
 11696  }
 11697  
 11698  // CfoAddress is a free data retrieval call binding the contract method 0x0519ce79.
 11699  //
 11700  // Solidity: function cfoAddress() view returns(address)
 11701  func (_KittyMinting *KittyMintingCaller) CfoAddress(opts *bind.CallOpts) (common.Address, error) {
 11702  	var out []interface{}
 11703  	err := _KittyMinting.contract.Call(opts, &out, "cfoAddress")
 11704  
 11705  	if err != nil {
 11706  		return *new(common.Address), err
 11707  	}
 11708  
 11709  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 11710  
 11711  	return out0, err
 11712  
 11713  }
 11714  
 11715  // CfoAddress is a free data retrieval call binding the contract method 0x0519ce79.
 11716  //
 11717  // Solidity: function cfoAddress() view returns(address)
 11718  func (_KittyMinting *KittyMintingSession) CfoAddress() (common.Address, error) {
 11719  	return _KittyMinting.Contract.CfoAddress(&_KittyMinting.CallOpts)
 11720  }
 11721  
 11722  // CfoAddress is a free data retrieval call binding the contract method 0x0519ce79.
 11723  //
 11724  // Solidity: function cfoAddress() view returns(address)
 11725  func (_KittyMinting *KittyMintingCallerSession) CfoAddress() (common.Address, error) {
 11726  	return _KittyMinting.Contract.CfoAddress(&_KittyMinting.CallOpts)
 11727  }
 11728  
 11729  // CooAddress is a free data retrieval call binding the contract method 0xb047fb50.
 11730  //
 11731  // Solidity: function cooAddress() view returns(address)
 11732  func (_KittyMinting *KittyMintingCaller) CooAddress(opts *bind.CallOpts) (common.Address, error) {
 11733  	var out []interface{}
 11734  	err := _KittyMinting.contract.Call(opts, &out, "cooAddress")
 11735  
 11736  	if err != nil {
 11737  		return *new(common.Address), err
 11738  	}
 11739  
 11740  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 11741  
 11742  	return out0, err
 11743  
 11744  }
 11745  
 11746  // CooAddress is a free data retrieval call binding the contract method 0xb047fb50.
 11747  //
 11748  // Solidity: function cooAddress() view returns(address)
 11749  func (_KittyMinting *KittyMintingSession) CooAddress() (common.Address, error) {
 11750  	return _KittyMinting.Contract.CooAddress(&_KittyMinting.CallOpts)
 11751  }
 11752  
 11753  // CooAddress is a free data retrieval call binding the contract method 0xb047fb50.
 11754  //
 11755  // Solidity: function cooAddress() view returns(address)
 11756  func (_KittyMinting *KittyMintingCallerSession) CooAddress() (common.Address, error) {
 11757  	return _KittyMinting.Contract.CooAddress(&_KittyMinting.CallOpts)
 11758  }
 11759  
 11760  // Cooldowns is a free data retrieval call binding the contract method 0x9d6fac6f.
 11761  //
 11762  // Solidity: function cooldowns(uint256 ) view returns(uint32)
 11763  func (_KittyMinting *KittyMintingCaller) Cooldowns(opts *bind.CallOpts, arg0 *big.Int) (uint32, error) {
 11764  	var out []interface{}
 11765  	err := _KittyMinting.contract.Call(opts, &out, "cooldowns", arg0)
 11766  
 11767  	if err != nil {
 11768  		return *new(uint32), err
 11769  	}
 11770  
 11771  	out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32)
 11772  
 11773  	return out0, err
 11774  
 11775  }
 11776  
 11777  // Cooldowns is a free data retrieval call binding the contract method 0x9d6fac6f.
 11778  //
 11779  // Solidity: function cooldowns(uint256 ) view returns(uint32)
 11780  func (_KittyMinting *KittyMintingSession) Cooldowns(arg0 *big.Int) (uint32, error) {
 11781  	return _KittyMinting.Contract.Cooldowns(&_KittyMinting.CallOpts, arg0)
 11782  }
 11783  
 11784  // Cooldowns is a free data retrieval call binding the contract method 0x9d6fac6f.
 11785  //
 11786  // Solidity: function cooldowns(uint256 ) view returns(uint32)
 11787  func (_KittyMinting *KittyMintingCallerSession) Cooldowns(arg0 *big.Int) (uint32, error) {
 11788  	return _KittyMinting.Contract.Cooldowns(&_KittyMinting.CallOpts, arg0)
 11789  }
 11790  
 11791  // Erc721Metadata is a free data retrieval call binding the contract method 0xbc4006f5.
 11792  //
 11793  // Solidity: function erc721Metadata() view returns(address)
 11794  func (_KittyMinting *KittyMintingCaller) Erc721Metadata(opts *bind.CallOpts) (common.Address, error) {
 11795  	var out []interface{}
 11796  	err := _KittyMinting.contract.Call(opts, &out, "erc721Metadata")
 11797  
 11798  	if err != nil {
 11799  		return *new(common.Address), err
 11800  	}
 11801  
 11802  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 11803  
 11804  	return out0, err
 11805  
 11806  }
 11807  
 11808  // Erc721Metadata is a free data retrieval call binding the contract method 0xbc4006f5.
 11809  //
 11810  // Solidity: function erc721Metadata() view returns(address)
 11811  func (_KittyMinting *KittyMintingSession) Erc721Metadata() (common.Address, error) {
 11812  	return _KittyMinting.Contract.Erc721Metadata(&_KittyMinting.CallOpts)
 11813  }
 11814  
 11815  // Erc721Metadata is a free data retrieval call binding the contract method 0xbc4006f5.
 11816  //
 11817  // Solidity: function erc721Metadata() view returns(address)
 11818  func (_KittyMinting *KittyMintingCallerSession) Erc721Metadata() (common.Address, error) {
 11819  	return _KittyMinting.Contract.Erc721Metadata(&_KittyMinting.CallOpts)
 11820  }
 11821  
 11822  // Gen0CreatedCount is a free data retrieval call binding the contract method 0xf1ca9410.
 11823  //
 11824  // Solidity: function gen0CreatedCount() view returns(uint256)
 11825  func (_KittyMinting *KittyMintingCaller) Gen0CreatedCount(opts *bind.CallOpts) (*big.Int, error) {
 11826  	var out []interface{}
 11827  	err := _KittyMinting.contract.Call(opts, &out, "gen0CreatedCount")
 11828  
 11829  	if err != nil {
 11830  		return *new(*big.Int), err
 11831  	}
 11832  
 11833  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 11834  
 11835  	return out0, err
 11836  
 11837  }
 11838  
 11839  // Gen0CreatedCount is a free data retrieval call binding the contract method 0xf1ca9410.
 11840  //
 11841  // Solidity: function gen0CreatedCount() view returns(uint256)
 11842  func (_KittyMinting *KittyMintingSession) Gen0CreatedCount() (*big.Int, error) {
 11843  	return _KittyMinting.Contract.Gen0CreatedCount(&_KittyMinting.CallOpts)
 11844  }
 11845  
 11846  // Gen0CreatedCount is a free data retrieval call binding the contract method 0xf1ca9410.
 11847  //
 11848  // Solidity: function gen0CreatedCount() view returns(uint256)
 11849  func (_KittyMinting *KittyMintingCallerSession) Gen0CreatedCount() (*big.Int, error) {
 11850  	return _KittyMinting.Contract.Gen0CreatedCount(&_KittyMinting.CallOpts)
 11851  }
 11852  
 11853  // GeneScience is a free data retrieval call binding the contract method 0xf2b47d52.
 11854  //
 11855  // Solidity: function geneScience() view returns(address)
 11856  func (_KittyMinting *KittyMintingCaller) GeneScience(opts *bind.CallOpts) (common.Address, error) {
 11857  	var out []interface{}
 11858  	err := _KittyMinting.contract.Call(opts, &out, "geneScience")
 11859  
 11860  	if err != nil {
 11861  		return *new(common.Address), err
 11862  	}
 11863  
 11864  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 11865  
 11866  	return out0, err
 11867  
 11868  }
 11869  
 11870  // GeneScience is a free data retrieval call binding the contract method 0xf2b47d52.
 11871  //
 11872  // Solidity: function geneScience() view returns(address)
 11873  func (_KittyMinting *KittyMintingSession) GeneScience() (common.Address, error) {
 11874  	return _KittyMinting.Contract.GeneScience(&_KittyMinting.CallOpts)
 11875  }
 11876  
 11877  // GeneScience is a free data retrieval call binding the contract method 0xf2b47d52.
 11878  //
 11879  // Solidity: function geneScience() view returns(address)
 11880  func (_KittyMinting *KittyMintingCallerSession) GeneScience() (common.Address, error) {
 11881  	return _KittyMinting.Contract.GeneScience(&_KittyMinting.CallOpts)
 11882  }
 11883  
 11884  // IsPregnant is a free data retrieval call binding the contract method 0x1940a936.
 11885  //
 11886  // Solidity: function isPregnant(uint256 _kittyId) view returns(bool)
 11887  func (_KittyMinting *KittyMintingCaller) IsPregnant(opts *bind.CallOpts, _kittyId *big.Int) (bool, error) {
 11888  	var out []interface{}
 11889  	err := _KittyMinting.contract.Call(opts, &out, "isPregnant", _kittyId)
 11890  
 11891  	if err != nil {
 11892  		return *new(bool), err
 11893  	}
 11894  
 11895  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 11896  
 11897  	return out0, err
 11898  
 11899  }
 11900  
 11901  // IsPregnant is a free data retrieval call binding the contract method 0x1940a936.
 11902  //
 11903  // Solidity: function isPregnant(uint256 _kittyId) view returns(bool)
 11904  func (_KittyMinting *KittyMintingSession) IsPregnant(_kittyId *big.Int) (bool, error) {
 11905  	return _KittyMinting.Contract.IsPregnant(&_KittyMinting.CallOpts, _kittyId)
 11906  }
 11907  
 11908  // IsPregnant is a free data retrieval call binding the contract method 0x1940a936.
 11909  //
 11910  // Solidity: function isPregnant(uint256 _kittyId) view returns(bool)
 11911  func (_KittyMinting *KittyMintingCallerSession) IsPregnant(_kittyId *big.Int) (bool, error) {
 11912  	return _KittyMinting.Contract.IsPregnant(&_KittyMinting.CallOpts, _kittyId)
 11913  }
 11914  
 11915  // IsReadyToBreed is a free data retrieval call binding the contract method 0xd3e6f49f.
 11916  //
 11917  // Solidity: function isReadyToBreed(uint256 _kittyId) view returns(bool)
 11918  func (_KittyMinting *KittyMintingCaller) IsReadyToBreed(opts *bind.CallOpts, _kittyId *big.Int) (bool, error) {
 11919  	var out []interface{}
 11920  	err := _KittyMinting.contract.Call(opts, &out, "isReadyToBreed", _kittyId)
 11921  
 11922  	if err != nil {
 11923  		return *new(bool), err
 11924  	}
 11925  
 11926  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 11927  
 11928  	return out0, err
 11929  
 11930  }
 11931  
 11932  // IsReadyToBreed is a free data retrieval call binding the contract method 0xd3e6f49f.
 11933  //
 11934  // Solidity: function isReadyToBreed(uint256 _kittyId) view returns(bool)
 11935  func (_KittyMinting *KittyMintingSession) IsReadyToBreed(_kittyId *big.Int) (bool, error) {
 11936  	return _KittyMinting.Contract.IsReadyToBreed(&_KittyMinting.CallOpts, _kittyId)
 11937  }
 11938  
 11939  // IsReadyToBreed is a free data retrieval call binding the contract method 0xd3e6f49f.
 11940  //
 11941  // Solidity: function isReadyToBreed(uint256 _kittyId) view returns(bool)
 11942  func (_KittyMinting *KittyMintingCallerSession) IsReadyToBreed(_kittyId *big.Int) (bool, error) {
 11943  	return _KittyMinting.Contract.IsReadyToBreed(&_KittyMinting.CallOpts, _kittyId)
 11944  }
 11945  
 11946  // KittyIndexToApproved is a free data retrieval call binding the contract method 0x481af3d3.
 11947  //
 11948  // Solidity: function kittyIndexToApproved(uint256 ) view returns(address)
 11949  func (_KittyMinting *KittyMintingCaller) KittyIndexToApproved(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
 11950  	var out []interface{}
 11951  	err := _KittyMinting.contract.Call(opts, &out, "kittyIndexToApproved", arg0)
 11952  
 11953  	if err != nil {
 11954  		return *new(common.Address), err
 11955  	}
 11956  
 11957  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 11958  
 11959  	return out0, err
 11960  
 11961  }
 11962  
 11963  // KittyIndexToApproved is a free data retrieval call binding the contract method 0x481af3d3.
 11964  //
 11965  // Solidity: function kittyIndexToApproved(uint256 ) view returns(address)
 11966  func (_KittyMinting *KittyMintingSession) KittyIndexToApproved(arg0 *big.Int) (common.Address, error) {
 11967  	return _KittyMinting.Contract.KittyIndexToApproved(&_KittyMinting.CallOpts, arg0)
 11968  }
 11969  
 11970  // KittyIndexToApproved is a free data retrieval call binding the contract method 0x481af3d3.
 11971  //
 11972  // Solidity: function kittyIndexToApproved(uint256 ) view returns(address)
 11973  func (_KittyMinting *KittyMintingCallerSession) KittyIndexToApproved(arg0 *big.Int) (common.Address, error) {
 11974  	return _KittyMinting.Contract.KittyIndexToApproved(&_KittyMinting.CallOpts, arg0)
 11975  }
 11976  
 11977  // KittyIndexToOwner is a free data retrieval call binding the contract method 0xa45f4bfc.
 11978  //
 11979  // Solidity: function kittyIndexToOwner(uint256 ) view returns(address)
 11980  func (_KittyMinting *KittyMintingCaller) KittyIndexToOwner(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
 11981  	var out []interface{}
 11982  	err := _KittyMinting.contract.Call(opts, &out, "kittyIndexToOwner", arg0)
 11983  
 11984  	if err != nil {
 11985  		return *new(common.Address), err
 11986  	}
 11987  
 11988  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 11989  
 11990  	return out0, err
 11991  
 11992  }
 11993  
 11994  // KittyIndexToOwner is a free data retrieval call binding the contract method 0xa45f4bfc.
 11995  //
 11996  // Solidity: function kittyIndexToOwner(uint256 ) view returns(address)
 11997  func (_KittyMinting *KittyMintingSession) KittyIndexToOwner(arg0 *big.Int) (common.Address, error) {
 11998  	return _KittyMinting.Contract.KittyIndexToOwner(&_KittyMinting.CallOpts, arg0)
 11999  }
 12000  
 12001  // KittyIndexToOwner is a free data retrieval call binding the contract method 0xa45f4bfc.
 12002  //
 12003  // Solidity: function kittyIndexToOwner(uint256 ) view returns(address)
 12004  func (_KittyMinting *KittyMintingCallerSession) KittyIndexToOwner(arg0 *big.Int) (common.Address, error) {
 12005  	return _KittyMinting.Contract.KittyIndexToOwner(&_KittyMinting.CallOpts, arg0)
 12006  }
 12007  
 12008  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 12009  //
 12010  // Solidity: function name() view returns(string)
 12011  func (_KittyMinting *KittyMintingCaller) Name(opts *bind.CallOpts) (string, error) {
 12012  	var out []interface{}
 12013  	err := _KittyMinting.contract.Call(opts, &out, "name")
 12014  
 12015  	if err != nil {
 12016  		return *new(string), err
 12017  	}
 12018  
 12019  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
 12020  
 12021  	return out0, err
 12022  
 12023  }
 12024  
 12025  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 12026  //
 12027  // Solidity: function name() view returns(string)
 12028  func (_KittyMinting *KittyMintingSession) Name() (string, error) {
 12029  	return _KittyMinting.Contract.Name(&_KittyMinting.CallOpts)
 12030  }
 12031  
 12032  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 12033  //
 12034  // Solidity: function name() view returns(string)
 12035  func (_KittyMinting *KittyMintingCallerSession) Name() (string, error) {
 12036  	return _KittyMinting.Contract.Name(&_KittyMinting.CallOpts)
 12037  }
 12038  
 12039  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 12040  //
 12041  // Solidity: function ownerOf(uint256 _tokenId) view returns(address owner)
 12042  func (_KittyMinting *KittyMintingCaller) OwnerOf(opts *bind.CallOpts, _tokenId *big.Int) (common.Address, error) {
 12043  	var out []interface{}
 12044  	err := _KittyMinting.contract.Call(opts, &out, "ownerOf", _tokenId)
 12045  
 12046  	if err != nil {
 12047  		return *new(common.Address), err
 12048  	}
 12049  
 12050  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 12051  
 12052  	return out0, err
 12053  
 12054  }
 12055  
 12056  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 12057  //
 12058  // Solidity: function ownerOf(uint256 _tokenId) view returns(address owner)
 12059  func (_KittyMinting *KittyMintingSession) OwnerOf(_tokenId *big.Int) (common.Address, error) {
 12060  	return _KittyMinting.Contract.OwnerOf(&_KittyMinting.CallOpts, _tokenId)
 12061  }
 12062  
 12063  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 12064  //
 12065  // Solidity: function ownerOf(uint256 _tokenId) view returns(address owner)
 12066  func (_KittyMinting *KittyMintingCallerSession) OwnerOf(_tokenId *big.Int) (common.Address, error) {
 12067  	return _KittyMinting.Contract.OwnerOf(&_KittyMinting.CallOpts, _tokenId)
 12068  }
 12069  
 12070  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
 12071  //
 12072  // Solidity: function paused() view returns(bool)
 12073  func (_KittyMinting *KittyMintingCaller) Paused(opts *bind.CallOpts) (bool, error) {
 12074  	var out []interface{}
 12075  	err := _KittyMinting.contract.Call(opts, &out, "paused")
 12076  
 12077  	if err != nil {
 12078  		return *new(bool), err
 12079  	}
 12080  
 12081  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 12082  
 12083  	return out0, err
 12084  
 12085  }
 12086  
 12087  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
 12088  //
 12089  // Solidity: function paused() view returns(bool)
 12090  func (_KittyMinting *KittyMintingSession) Paused() (bool, error) {
 12091  	return _KittyMinting.Contract.Paused(&_KittyMinting.CallOpts)
 12092  }
 12093  
 12094  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
 12095  //
 12096  // Solidity: function paused() view returns(bool)
 12097  func (_KittyMinting *KittyMintingCallerSession) Paused() (bool, error) {
 12098  	return _KittyMinting.Contract.Paused(&_KittyMinting.CallOpts)
 12099  }
 12100  
 12101  // PregnantKitties is a free data retrieval call binding the contract method 0x183a7947.
 12102  //
 12103  // Solidity: function pregnantKitties() view returns(uint256)
 12104  func (_KittyMinting *KittyMintingCaller) PregnantKitties(opts *bind.CallOpts) (*big.Int, error) {
 12105  	var out []interface{}
 12106  	err := _KittyMinting.contract.Call(opts, &out, "pregnantKitties")
 12107  
 12108  	if err != nil {
 12109  		return *new(*big.Int), err
 12110  	}
 12111  
 12112  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 12113  
 12114  	return out0, err
 12115  
 12116  }
 12117  
 12118  // PregnantKitties is a free data retrieval call binding the contract method 0x183a7947.
 12119  //
 12120  // Solidity: function pregnantKitties() view returns(uint256)
 12121  func (_KittyMinting *KittyMintingSession) PregnantKitties() (*big.Int, error) {
 12122  	return _KittyMinting.Contract.PregnantKitties(&_KittyMinting.CallOpts)
 12123  }
 12124  
 12125  // PregnantKitties is a free data retrieval call binding the contract method 0x183a7947.
 12126  //
 12127  // Solidity: function pregnantKitties() view returns(uint256)
 12128  func (_KittyMinting *KittyMintingCallerSession) PregnantKitties() (*big.Int, error) {
 12129  	return _KittyMinting.Contract.PregnantKitties(&_KittyMinting.CallOpts)
 12130  }
 12131  
 12132  // PromoCreatedCount is a free data retrieval call binding the contract method 0x05e45546.
 12133  //
 12134  // Solidity: function promoCreatedCount() view returns(uint256)
 12135  func (_KittyMinting *KittyMintingCaller) PromoCreatedCount(opts *bind.CallOpts) (*big.Int, error) {
 12136  	var out []interface{}
 12137  	err := _KittyMinting.contract.Call(opts, &out, "promoCreatedCount")
 12138  
 12139  	if err != nil {
 12140  		return *new(*big.Int), err
 12141  	}
 12142  
 12143  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 12144  
 12145  	return out0, err
 12146  
 12147  }
 12148  
 12149  // PromoCreatedCount is a free data retrieval call binding the contract method 0x05e45546.
 12150  //
 12151  // Solidity: function promoCreatedCount() view returns(uint256)
 12152  func (_KittyMinting *KittyMintingSession) PromoCreatedCount() (*big.Int, error) {
 12153  	return _KittyMinting.Contract.PromoCreatedCount(&_KittyMinting.CallOpts)
 12154  }
 12155  
 12156  // PromoCreatedCount is a free data retrieval call binding the contract method 0x05e45546.
 12157  //
 12158  // Solidity: function promoCreatedCount() view returns(uint256)
 12159  func (_KittyMinting *KittyMintingCallerSession) PromoCreatedCount() (*big.Int, error) {
 12160  	return _KittyMinting.Contract.PromoCreatedCount(&_KittyMinting.CallOpts)
 12161  }
 12162  
 12163  // SaleAuction is a free data retrieval call binding the contract method 0xe6cbe351.
 12164  //
 12165  // Solidity: function saleAuction() view returns(address)
 12166  func (_KittyMinting *KittyMintingCaller) SaleAuction(opts *bind.CallOpts) (common.Address, error) {
 12167  	var out []interface{}
 12168  	err := _KittyMinting.contract.Call(opts, &out, "saleAuction")
 12169  
 12170  	if err != nil {
 12171  		return *new(common.Address), err
 12172  	}
 12173  
 12174  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 12175  
 12176  	return out0, err
 12177  
 12178  }
 12179  
 12180  // SaleAuction is a free data retrieval call binding the contract method 0xe6cbe351.
 12181  //
 12182  // Solidity: function saleAuction() view returns(address)
 12183  func (_KittyMinting *KittyMintingSession) SaleAuction() (common.Address, error) {
 12184  	return _KittyMinting.Contract.SaleAuction(&_KittyMinting.CallOpts)
 12185  }
 12186  
 12187  // SaleAuction is a free data retrieval call binding the contract method 0xe6cbe351.
 12188  //
 12189  // Solidity: function saleAuction() view returns(address)
 12190  func (_KittyMinting *KittyMintingCallerSession) SaleAuction() (common.Address, error) {
 12191  	return _KittyMinting.Contract.SaleAuction(&_KittyMinting.CallOpts)
 12192  }
 12193  
 12194  // SecondsPerBlock is a free data retrieval call binding the contract method 0x7a7d4937.
 12195  //
 12196  // Solidity: function secondsPerBlock() view returns(uint256)
 12197  func (_KittyMinting *KittyMintingCaller) SecondsPerBlock(opts *bind.CallOpts) (*big.Int, error) {
 12198  	var out []interface{}
 12199  	err := _KittyMinting.contract.Call(opts, &out, "secondsPerBlock")
 12200  
 12201  	if err != nil {
 12202  		return *new(*big.Int), err
 12203  	}
 12204  
 12205  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 12206  
 12207  	return out0, err
 12208  
 12209  }
 12210  
 12211  // SecondsPerBlock is a free data retrieval call binding the contract method 0x7a7d4937.
 12212  //
 12213  // Solidity: function secondsPerBlock() view returns(uint256)
 12214  func (_KittyMinting *KittyMintingSession) SecondsPerBlock() (*big.Int, error) {
 12215  	return _KittyMinting.Contract.SecondsPerBlock(&_KittyMinting.CallOpts)
 12216  }
 12217  
 12218  // SecondsPerBlock is a free data retrieval call binding the contract method 0x7a7d4937.
 12219  //
 12220  // Solidity: function secondsPerBlock() view returns(uint256)
 12221  func (_KittyMinting *KittyMintingCallerSession) SecondsPerBlock() (*big.Int, error) {
 12222  	return _KittyMinting.Contract.SecondsPerBlock(&_KittyMinting.CallOpts)
 12223  }
 12224  
 12225  // SireAllowedToAddress is a free data retrieval call binding the contract method 0x46116e6f.
 12226  //
 12227  // Solidity: function sireAllowedToAddress(uint256 ) view returns(address)
 12228  func (_KittyMinting *KittyMintingCaller) SireAllowedToAddress(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
 12229  	var out []interface{}
 12230  	err := _KittyMinting.contract.Call(opts, &out, "sireAllowedToAddress", arg0)
 12231  
 12232  	if err != nil {
 12233  		return *new(common.Address), err
 12234  	}
 12235  
 12236  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 12237  
 12238  	return out0, err
 12239  
 12240  }
 12241  
 12242  // SireAllowedToAddress is a free data retrieval call binding the contract method 0x46116e6f.
 12243  //
 12244  // Solidity: function sireAllowedToAddress(uint256 ) view returns(address)
 12245  func (_KittyMinting *KittyMintingSession) SireAllowedToAddress(arg0 *big.Int) (common.Address, error) {
 12246  	return _KittyMinting.Contract.SireAllowedToAddress(&_KittyMinting.CallOpts, arg0)
 12247  }
 12248  
 12249  // SireAllowedToAddress is a free data retrieval call binding the contract method 0x46116e6f.
 12250  //
 12251  // Solidity: function sireAllowedToAddress(uint256 ) view returns(address)
 12252  func (_KittyMinting *KittyMintingCallerSession) SireAllowedToAddress(arg0 *big.Int) (common.Address, error) {
 12253  	return _KittyMinting.Contract.SireAllowedToAddress(&_KittyMinting.CallOpts, arg0)
 12254  }
 12255  
 12256  // SiringAuction is a free data retrieval call binding the contract method 0x21717ebf.
 12257  //
 12258  // Solidity: function siringAuction() view returns(address)
 12259  func (_KittyMinting *KittyMintingCaller) SiringAuction(opts *bind.CallOpts) (common.Address, error) {
 12260  	var out []interface{}
 12261  	err := _KittyMinting.contract.Call(opts, &out, "siringAuction")
 12262  
 12263  	if err != nil {
 12264  		return *new(common.Address), err
 12265  	}
 12266  
 12267  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 12268  
 12269  	return out0, err
 12270  
 12271  }
 12272  
 12273  // SiringAuction is a free data retrieval call binding the contract method 0x21717ebf.
 12274  //
 12275  // Solidity: function siringAuction() view returns(address)
 12276  func (_KittyMinting *KittyMintingSession) SiringAuction() (common.Address, error) {
 12277  	return _KittyMinting.Contract.SiringAuction(&_KittyMinting.CallOpts)
 12278  }
 12279  
 12280  // SiringAuction is a free data retrieval call binding the contract method 0x21717ebf.
 12281  //
 12282  // Solidity: function siringAuction() view returns(address)
 12283  func (_KittyMinting *KittyMintingCallerSession) SiringAuction() (common.Address, error) {
 12284  	return _KittyMinting.Contract.SiringAuction(&_KittyMinting.CallOpts)
 12285  }
 12286  
 12287  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 12288  //
 12289  // Solidity: function supportsInterface(bytes4 _interfaceID) view returns(bool)
 12290  func (_KittyMinting *KittyMintingCaller) SupportsInterface(opts *bind.CallOpts, _interfaceID [4]byte) (bool, error) {
 12291  	var out []interface{}
 12292  	err := _KittyMinting.contract.Call(opts, &out, "supportsInterface", _interfaceID)
 12293  
 12294  	if err != nil {
 12295  		return *new(bool), err
 12296  	}
 12297  
 12298  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 12299  
 12300  	return out0, err
 12301  
 12302  }
 12303  
 12304  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 12305  //
 12306  // Solidity: function supportsInterface(bytes4 _interfaceID) view returns(bool)
 12307  func (_KittyMinting *KittyMintingSession) SupportsInterface(_interfaceID [4]byte) (bool, error) {
 12308  	return _KittyMinting.Contract.SupportsInterface(&_KittyMinting.CallOpts, _interfaceID)
 12309  }
 12310  
 12311  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 12312  //
 12313  // Solidity: function supportsInterface(bytes4 _interfaceID) view returns(bool)
 12314  func (_KittyMinting *KittyMintingCallerSession) SupportsInterface(_interfaceID [4]byte) (bool, error) {
 12315  	return _KittyMinting.Contract.SupportsInterface(&_KittyMinting.CallOpts, _interfaceID)
 12316  }
 12317  
 12318  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 12319  //
 12320  // Solidity: function symbol() view returns(string)
 12321  func (_KittyMinting *KittyMintingCaller) Symbol(opts *bind.CallOpts) (string, error) {
 12322  	var out []interface{}
 12323  	err := _KittyMinting.contract.Call(opts, &out, "symbol")
 12324  
 12325  	if err != nil {
 12326  		return *new(string), err
 12327  	}
 12328  
 12329  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
 12330  
 12331  	return out0, err
 12332  
 12333  }
 12334  
 12335  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 12336  //
 12337  // Solidity: function symbol() view returns(string)
 12338  func (_KittyMinting *KittyMintingSession) Symbol() (string, error) {
 12339  	return _KittyMinting.Contract.Symbol(&_KittyMinting.CallOpts)
 12340  }
 12341  
 12342  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 12343  //
 12344  // Solidity: function symbol() view returns(string)
 12345  func (_KittyMinting *KittyMintingCallerSession) Symbol() (string, error) {
 12346  	return _KittyMinting.Contract.Symbol(&_KittyMinting.CallOpts)
 12347  }
 12348  
 12349  // TokenMetadata is a free data retrieval call binding the contract method 0x0560ff44.
 12350  //
 12351  // Solidity: function tokenMetadata(uint256 _tokenId, string _preferredTransport) view returns(string infoUrl)
 12352  func (_KittyMinting *KittyMintingCaller) TokenMetadata(opts *bind.CallOpts, _tokenId *big.Int, _preferredTransport string) (string, error) {
 12353  	var out []interface{}
 12354  	err := _KittyMinting.contract.Call(opts, &out, "tokenMetadata", _tokenId, _preferredTransport)
 12355  
 12356  	if err != nil {
 12357  		return *new(string), err
 12358  	}
 12359  
 12360  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
 12361  
 12362  	return out0, err
 12363  
 12364  }
 12365  
 12366  // TokenMetadata is a free data retrieval call binding the contract method 0x0560ff44.
 12367  //
 12368  // Solidity: function tokenMetadata(uint256 _tokenId, string _preferredTransport) view returns(string infoUrl)
 12369  func (_KittyMinting *KittyMintingSession) TokenMetadata(_tokenId *big.Int, _preferredTransport string) (string, error) {
 12370  	return _KittyMinting.Contract.TokenMetadata(&_KittyMinting.CallOpts, _tokenId, _preferredTransport)
 12371  }
 12372  
 12373  // TokenMetadata is a free data retrieval call binding the contract method 0x0560ff44.
 12374  //
 12375  // Solidity: function tokenMetadata(uint256 _tokenId, string _preferredTransport) view returns(string infoUrl)
 12376  func (_KittyMinting *KittyMintingCallerSession) TokenMetadata(_tokenId *big.Int, _preferredTransport string) (string, error) {
 12377  	return _KittyMinting.Contract.TokenMetadata(&_KittyMinting.CallOpts, _tokenId, _preferredTransport)
 12378  }
 12379  
 12380  // TokensOfOwner is a free data retrieval call binding the contract method 0x8462151c.
 12381  //
 12382  // Solidity: function tokensOfOwner(address _owner) view returns(uint256[] ownerTokens)
 12383  func (_KittyMinting *KittyMintingCaller) TokensOfOwner(opts *bind.CallOpts, _owner common.Address) ([]*big.Int, error) {
 12384  	var out []interface{}
 12385  	err := _KittyMinting.contract.Call(opts, &out, "tokensOfOwner", _owner)
 12386  
 12387  	if err != nil {
 12388  		return *new([]*big.Int), err
 12389  	}
 12390  
 12391  	out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int)
 12392  
 12393  	return out0, err
 12394  
 12395  }
 12396  
 12397  // TokensOfOwner is a free data retrieval call binding the contract method 0x8462151c.
 12398  //
 12399  // Solidity: function tokensOfOwner(address _owner) view returns(uint256[] ownerTokens)
 12400  func (_KittyMinting *KittyMintingSession) TokensOfOwner(_owner common.Address) ([]*big.Int, error) {
 12401  	return _KittyMinting.Contract.TokensOfOwner(&_KittyMinting.CallOpts, _owner)
 12402  }
 12403  
 12404  // TokensOfOwner is a free data retrieval call binding the contract method 0x8462151c.
 12405  //
 12406  // Solidity: function tokensOfOwner(address _owner) view returns(uint256[] ownerTokens)
 12407  func (_KittyMinting *KittyMintingCallerSession) TokensOfOwner(_owner common.Address) ([]*big.Int, error) {
 12408  	return _KittyMinting.Contract.TokensOfOwner(&_KittyMinting.CallOpts, _owner)
 12409  }
 12410  
 12411  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 12412  //
 12413  // Solidity: function totalSupply() view returns(uint256)
 12414  func (_KittyMinting *KittyMintingCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
 12415  	var out []interface{}
 12416  	err := _KittyMinting.contract.Call(opts, &out, "totalSupply")
 12417  
 12418  	if err != nil {
 12419  		return *new(*big.Int), err
 12420  	}
 12421  
 12422  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 12423  
 12424  	return out0, err
 12425  
 12426  }
 12427  
 12428  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 12429  //
 12430  // Solidity: function totalSupply() view returns(uint256)
 12431  func (_KittyMinting *KittyMintingSession) TotalSupply() (*big.Int, error) {
 12432  	return _KittyMinting.Contract.TotalSupply(&_KittyMinting.CallOpts)
 12433  }
 12434  
 12435  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 12436  //
 12437  // Solidity: function totalSupply() view returns(uint256)
 12438  func (_KittyMinting *KittyMintingCallerSession) TotalSupply() (*big.Int, error) {
 12439  	return _KittyMinting.Contract.TotalSupply(&_KittyMinting.CallOpts)
 12440  }
 12441  
 12442  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 12443  //
 12444  // Solidity: function approve(address _to, uint256 _tokenId) returns()
 12445  func (_KittyMinting *KittyMintingTransactor) Approve(opts *bind.TransactOpts, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
 12446  	return _KittyMinting.contract.Transact(opts, "approve", _to, _tokenId)
 12447  }
 12448  
 12449  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 12450  //
 12451  // Solidity: function approve(address _to, uint256 _tokenId) returns()
 12452  func (_KittyMinting *KittyMintingSession) Approve(_to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
 12453  	return _KittyMinting.Contract.Approve(&_KittyMinting.TransactOpts, _to, _tokenId)
 12454  }
 12455  
 12456  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 12457  //
 12458  // Solidity: function approve(address _to, uint256 _tokenId) returns()
 12459  func (_KittyMinting *KittyMintingTransactorSession) Approve(_to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
 12460  	return _KittyMinting.Contract.Approve(&_KittyMinting.TransactOpts, _to, _tokenId)
 12461  }
 12462  
 12463  // ApproveSiring is a paid mutator transaction binding the contract method 0x4dfff04f.
 12464  //
 12465  // Solidity: function approveSiring(address _addr, uint256 _sireId) returns()
 12466  func (_KittyMinting *KittyMintingTransactor) ApproveSiring(opts *bind.TransactOpts, _addr common.Address, _sireId *big.Int) (*types.Transaction, error) {
 12467  	return _KittyMinting.contract.Transact(opts, "approveSiring", _addr, _sireId)
 12468  }
 12469  
 12470  // ApproveSiring is a paid mutator transaction binding the contract method 0x4dfff04f.
 12471  //
 12472  // Solidity: function approveSiring(address _addr, uint256 _sireId) returns()
 12473  func (_KittyMinting *KittyMintingSession) ApproveSiring(_addr common.Address, _sireId *big.Int) (*types.Transaction, error) {
 12474  	return _KittyMinting.Contract.ApproveSiring(&_KittyMinting.TransactOpts, _addr, _sireId)
 12475  }
 12476  
 12477  // ApproveSiring is a paid mutator transaction binding the contract method 0x4dfff04f.
 12478  //
 12479  // Solidity: function approveSiring(address _addr, uint256 _sireId) returns()
 12480  func (_KittyMinting *KittyMintingTransactorSession) ApproveSiring(_addr common.Address, _sireId *big.Int) (*types.Transaction, error) {
 12481  	return _KittyMinting.Contract.ApproveSiring(&_KittyMinting.TransactOpts, _addr, _sireId)
 12482  }
 12483  
 12484  // BidOnSiringAuction is a paid mutator transaction binding the contract method 0xed60ade6.
 12485  //
 12486  // Solidity: function bidOnSiringAuction(uint256 _sireId, uint256 _matronId) payable returns()
 12487  func (_KittyMinting *KittyMintingTransactor) BidOnSiringAuction(opts *bind.TransactOpts, _sireId *big.Int, _matronId *big.Int) (*types.Transaction, error) {
 12488  	return _KittyMinting.contract.Transact(opts, "bidOnSiringAuction", _sireId, _matronId)
 12489  }
 12490  
 12491  // BidOnSiringAuction is a paid mutator transaction binding the contract method 0xed60ade6.
 12492  //
 12493  // Solidity: function bidOnSiringAuction(uint256 _sireId, uint256 _matronId) payable returns()
 12494  func (_KittyMinting *KittyMintingSession) BidOnSiringAuction(_sireId *big.Int, _matronId *big.Int) (*types.Transaction, error) {
 12495  	return _KittyMinting.Contract.BidOnSiringAuction(&_KittyMinting.TransactOpts, _sireId, _matronId)
 12496  }
 12497  
 12498  // BidOnSiringAuction is a paid mutator transaction binding the contract method 0xed60ade6.
 12499  //
 12500  // Solidity: function bidOnSiringAuction(uint256 _sireId, uint256 _matronId) payable returns()
 12501  func (_KittyMinting *KittyMintingTransactorSession) BidOnSiringAuction(_sireId *big.Int, _matronId *big.Int) (*types.Transaction, error) {
 12502  	return _KittyMinting.Contract.BidOnSiringAuction(&_KittyMinting.TransactOpts, _sireId, _matronId)
 12503  }
 12504  
 12505  // BreedWithAuto is a paid mutator transaction binding the contract method 0xf7d8c883.
 12506  //
 12507  // Solidity: function breedWithAuto(uint256 _matronId, uint256 _sireId) payable returns()
 12508  func (_KittyMinting *KittyMintingTransactor) BreedWithAuto(opts *bind.TransactOpts, _matronId *big.Int, _sireId *big.Int) (*types.Transaction, error) {
 12509  	return _KittyMinting.contract.Transact(opts, "breedWithAuto", _matronId, _sireId)
 12510  }
 12511  
 12512  // BreedWithAuto is a paid mutator transaction binding the contract method 0xf7d8c883.
 12513  //
 12514  // Solidity: function breedWithAuto(uint256 _matronId, uint256 _sireId) payable returns()
 12515  func (_KittyMinting *KittyMintingSession) BreedWithAuto(_matronId *big.Int, _sireId *big.Int) (*types.Transaction, error) {
 12516  	return _KittyMinting.Contract.BreedWithAuto(&_KittyMinting.TransactOpts, _matronId, _sireId)
 12517  }
 12518  
 12519  // BreedWithAuto is a paid mutator transaction binding the contract method 0xf7d8c883.
 12520  //
 12521  // Solidity: function breedWithAuto(uint256 _matronId, uint256 _sireId) payable returns()
 12522  func (_KittyMinting *KittyMintingTransactorSession) BreedWithAuto(_matronId *big.Int, _sireId *big.Int) (*types.Transaction, error) {
 12523  	return _KittyMinting.Contract.BreedWithAuto(&_KittyMinting.TransactOpts, _matronId, _sireId)
 12524  }
 12525  
 12526  // CreateGen0Auction is a paid mutator transaction binding the contract method 0xc3bea9af.
 12527  //
 12528  // Solidity: function createGen0Auction(uint256 _genes) returns()
 12529  func (_KittyMinting *KittyMintingTransactor) CreateGen0Auction(opts *bind.TransactOpts, _genes *big.Int) (*types.Transaction, error) {
 12530  	return _KittyMinting.contract.Transact(opts, "createGen0Auction", _genes)
 12531  }
 12532  
 12533  // CreateGen0Auction is a paid mutator transaction binding the contract method 0xc3bea9af.
 12534  //
 12535  // Solidity: function createGen0Auction(uint256 _genes) returns()
 12536  func (_KittyMinting *KittyMintingSession) CreateGen0Auction(_genes *big.Int) (*types.Transaction, error) {
 12537  	return _KittyMinting.Contract.CreateGen0Auction(&_KittyMinting.TransactOpts, _genes)
 12538  }
 12539  
 12540  // CreateGen0Auction is a paid mutator transaction binding the contract method 0xc3bea9af.
 12541  //
 12542  // Solidity: function createGen0Auction(uint256 _genes) returns()
 12543  func (_KittyMinting *KittyMintingTransactorSession) CreateGen0Auction(_genes *big.Int) (*types.Transaction, error) {
 12544  	return _KittyMinting.Contract.CreateGen0Auction(&_KittyMinting.TransactOpts, _genes)
 12545  }
 12546  
 12547  // CreatePromoKitty is a paid mutator transaction binding the contract method 0x56129134.
 12548  //
 12549  // Solidity: function createPromoKitty(uint256 _genes, address _owner) returns()
 12550  func (_KittyMinting *KittyMintingTransactor) CreatePromoKitty(opts *bind.TransactOpts, _genes *big.Int, _owner common.Address) (*types.Transaction, error) {
 12551  	return _KittyMinting.contract.Transact(opts, "createPromoKitty", _genes, _owner)
 12552  }
 12553  
 12554  // CreatePromoKitty is a paid mutator transaction binding the contract method 0x56129134.
 12555  //
 12556  // Solidity: function createPromoKitty(uint256 _genes, address _owner) returns()
 12557  func (_KittyMinting *KittyMintingSession) CreatePromoKitty(_genes *big.Int, _owner common.Address) (*types.Transaction, error) {
 12558  	return _KittyMinting.Contract.CreatePromoKitty(&_KittyMinting.TransactOpts, _genes, _owner)
 12559  }
 12560  
 12561  // CreatePromoKitty is a paid mutator transaction binding the contract method 0x56129134.
 12562  //
 12563  // Solidity: function createPromoKitty(uint256 _genes, address _owner) returns()
 12564  func (_KittyMinting *KittyMintingTransactorSession) CreatePromoKitty(_genes *big.Int, _owner common.Address) (*types.Transaction, error) {
 12565  	return _KittyMinting.Contract.CreatePromoKitty(&_KittyMinting.TransactOpts, _genes, _owner)
 12566  }
 12567  
 12568  // CreateSaleAuction is a paid mutator transaction binding the contract method 0x3d7d3f5a.
 12569  //
 12570  // Solidity: function createSaleAuction(uint256 _kittyId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration) returns()
 12571  func (_KittyMinting *KittyMintingTransactor) CreateSaleAuction(opts *bind.TransactOpts, _kittyId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int) (*types.Transaction, error) {
 12572  	return _KittyMinting.contract.Transact(opts, "createSaleAuction", _kittyId, _startingPrice, _endingPrice, _duration)
 12573  }
 12574  
 12575  // CreateSaleAuction is a paid mutator transaction binding the contract method 0x3d7d3f5a.
 12576  //
 12577  // Solidity: function createSaleAuction(uint256 _kittyId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration) returns()
 12578  func (_KittyMinting *KittyMintingSession) CreateSaleAuction(_kittyId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int) (*types.Transaction, error) {
 12579  	return _KittyMinting.Contract.CreateSaleAuction(&_KittyMinting.TransactOpts, _kittyId, _startingPrice, _endingPrice, _duration)
 12580  }
 12581  
 12582  // CreateSaleAuction is a paid mutator transaction binding the contract method 0x3d7d3f5a.
 12583  //
 12584  // Solidity: function createSaleAuction(uint256 _kittyId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration) returns()
 12585  func (_KittyMinting *KittyMintingTransactorSession) CreateSaleAuction(_kittyId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int) (*types.Transaction, error) {
 12586  	return _KittyMinting.Contract.CreateSaleAuction(&_KittyMinting.TransactOpts, _kittyId, _startingPrice, _endingPrice, _duration)
 12587  }
 12588  
 12589  // CreateSiringAuction is a paid mutator transaction binding the contract method 0x4ad8c938.
 12590  //
 12591  // Solidity: function createSiringAuction(uint256 _kittyId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration) returns()
 12592  func (_KittyMinting *KittyMintingTransactor) CreateSiringAuction(opts *bind.TransactOpts, _kittyId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int) (*types.Transaction, error) {
 12593  	return _KittyMinting.contract.Transact(opts, "createSiringAuction", _kittyId, _startingPrice, _endingPrice, _duration)
 12594  }
 12595  
 12596  // CreateSiringAuction is a paid mutator transaction binding the contract method 0x4ad8c938.
 12597  //
 12598  // Solidity: function createSiringAuction(uint256 _kittyId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration) returns()
 12599  func (_KittyMinting *KittyMintingSession) CreateSiringAuction(_kittyId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int) (*types.Transaction, error) {
 12600  	return _KittyMinting.Contract.CreateSiringAuction(&_KittyMinting.TransactOpts, _kittyId, _startingPrice, _endingPrice, _duration)
 12601  }
 12602  
 12603  // CreateSiringAuction is a paid mutator transaction binding the contract method 0x4ad8c938.
 12604  //
 12605  // Solidity: function createSiringAuction(uint256 _kittyId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration) returns()
 12606  func (_KittyMinting *KittyMintingTransactorSession) CreateSiringAuction(_kittyId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int) (*types.Transaction, error) {
 12607  	return _KittyMinting.Contract.CreateSiringAuction(&_KittyMinting.TransactOpts, _kittyId, _startingPrice, _endingPrice, _duration)
 12608  }
 12609  
 12610  // GiveBirth is a paid mutator transaction binding the contract method 0x88c2a0bf.
 12611  //
 12612  // Solidity: function giveBirth(uint256 _matronId) returns(uint256)
 12613  func (_KittyMinting *KittyMintingTransactor) GiveBirth(opts *bind.TransactOpts, _matronId *big.Int) (*types.Transaction, error) {
 12614  	return _KittyMinting.contract.Transact(opts, "giveBirth", _matronId)
 12615  }
 12616  
 12617  // GiveBirth is a paid mutator transaction binding the contract method 0x88c2a0bf.
 12618  //
 12619  // Solidity: function giveBirth(uint256 _matronId) returns(uint256)
 12620  func (_KittyMinting *KittyMintingSession) GiveBirth(_matronId *big.Int) (*types.Transaction, error) {
 12621  	return _KittyMinting.Contract.GiveBirth(&_KittyMinting.TransactOpts, _matronId)
 12622  }
 12623  
 12624  // GiveBirth is a paid mutator transaction binding the contract method 0x88c2a0bf.
 12625  //
 12626  // Solidity: function giveBirth(uint256 _matronId) returns(uint256)
 12627  func (_KittyMinting *KittyMintingTransactorSession) GiveBirth(_matronId *big.Int) (*types.Transaction, error) {
 12628  	return _KittyMinting.Contract.GiveBirth(&_KittyMinting.TransactOpts, _matronId)
 12629  }
 12630  
 12631  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
 12632  //
 12633  // Solidity: function pause() returns()
 12634  func (_KittyMinting *KittyMintingTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) {
 12635  	return _KittyMinting.contract.Transact(opts, "pause")
 12636  }
 12637  
 12638  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
 12639  //
 12640  // Solidity: function pause() returns()
 12641  func (_KittyMinting *KittyMintingSession) Pause() (*types.Transaction, error) {
 12642  	return _KittyMinting.Contract.Pause(&_KittyMinting.TransactOpts)
 12643  }
 12644  
 12645  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
 12646  //
 12647  // Solidity: function pause() returns()
 12648  func (_KittyMinting *KittyMintingTransactorSession) Pause() (*types.Transaction, error) {
 12649  	return _KittyMinting.Contract.Pause(&_KittyMinting.TransactOpts)
 12650  }
 12651  
 12652  // SetAutoBirthFee is a paid mutator transaction binding the contract method 0x4b85fd55.
 12653  //
 12654  // Solidity: function setAutoBirthFee(uint256 val) returns()
 12655  func (_KittyMinting *KittyMintingTransactor) SetAutoBirthFee(opts *bind.TransactOpts, val *big.Int) (*types.Transaction, error) {
 12656  	return _KittyMinting.contract.Transact(opts, "setAutoBirthFee", val)
 12657  }
 12658  
 12659  // SetAutoBirthFee is a paid mutator transaction binding the contract method 0x4b85fd55.
 12660  //
 12661  // Solidity: function setAutoBirthFee(uint256 val) returns()
 12662  func (_KittyMinting *KittyMintingSession) SetAutoBirthFee(val *big.Int) (*types.Transaction, error) {
 12663  	return _KittyMinting.Contract.SetAutoBirthFee(&_KittyMinting.TransactOpts, val)
 12664  }
 12665  
 12666  // SetAutoBirthFee is a paid mutator transaction binding the contract method 0x4b85fd55.
 12667  //
 12668  // Solidity: function setAutoBirthFee(uint256 val) returns()
 12669  func (_KittyMinting *KittyMintingTransactorSession) SetAutoBirthFee(val *big.Int) (*types.Transaction, error) {
 12670  	return _KittyMinting.Contract.SetAutoBirthFee(&_KittyMinting.TransactOpts, val)
 12671  }
 12672  
 12673  // SetCEO is a paid mutator transaction binding the contract method 0x27d7874c.
 12674  //
 12675  // Solidity: function setCEO(address _newCEO) returns()
 12676  func (_KittyMinting *KittyMintingTransactor) SetCEO(opts *bind.TransactOpts, _newCEO common.Address) (*types.Transaction, error) {
 12677  	return _KittyMinting.contract.Transact(opts, "setCEO", _newCEO)
 12678  }
 12679  
 12680  // SetCEO is a paid mutator transaction binding the contract method 0x27d7874c.
 12681  //
 12682  // Solidity: function setCEO(address _newCEO) returns()
 12683  func (_KittyMinting *KittyMintingSession) SetCEO(_newCEO common.Address) (*types.Transaction, error) {
 12684  	return _KittyMinting.Contract.SetCEO(&_KittyMinting.TransactOpts, _newCEO)
 12685  }
 12686  
 12687  // SetCEO is a paid mutator transaction binding the contract method 0x27d7874c.
 12688  //
 12689  // Solidity: function setCEO(address _newCEO) returns()
 12690  func (_KittyMinting *KittyMintingTransactorSession) SetCEO(_newCEO common.Address) (*types.Transaction, error) {
 12691  	return _KittyMinting.Contract.SetCEO(&_KittyMinting.TransactOpts, _newCEO)
 12692  }
 12693  
 12694  // SetCFO is a paid mutator transaction binding the contract method 0x4e0a3379.
 12695  //
 12696  // Solidity: function setCFO(address _newCFO) returns()
 12697  func (_KittyMinting *KittyMintingTransactor) SetCFO(opts *bind.TransactOpts, _newCFO common.Address) (*types.Transaction, error) {
 12698  	return _KittyMinting.contract.Transact(opts, "setCFO", _newCFO)
 12699  }
 12700  
 12701  // SetCFO is a paid mutator transaction binding the contract method 0x4e0a3379.
 12702  //
 12703  // Solidity: function setCFO(address _newCFO) returns()
 12704  func (_KittyMinting *KittyMintingSession) SetCFO(_newCFO common.Address) (*types.Transaction, error) {
 12705  	return _KittyMinting.Contract.SetCFO(&_KittyMinting.TransactOpts, _newCFO)
 12706  }
 12707  
 12708  // SetCFO is a paid mutator transaction binding the contract method 0x4e0a3379.
 12709  //
 12710  // Solidity: function setCFO(address _newCFO) returns()
 12711  func (_KittyMinting *KittyMintingTransactorSession) SetCFO(_newCFO common.Address) (*types.Transaction, error) {
 12712  	return _KittyMinting.Contract.SetCFO(&_KittyMinting.TransactOpts, _newCFO)
 12713  }
 12714  
 12715  // SetCOO is a paid mutator transaction binding the contract method 0x2ba73c15.
 12716  //
 12717  // Solidity: function setCOO(address _newCOO) returns()
 12718  func (_KittyMinting *KittyMintingTransactor) SetCOO(opts *bind.TransactOpts, _newCOO common.Address) (*types.Transaction, error) {
 12719  	return _KittyMinting.contract.Transact(opts, "setCOO", _newCOO)
 12720  }
 12721  
 12722  // SetCOO is a paid mutator transaction binding the contract method 0x2ba73c15.
 12723  //
 12724  // Solidity: function setCOO(address _newCOO) returns()
 12725  func (_KittyMinting *KittyMintingSession) SetCOO(_newCOO common.Address) (*types.Transaction, error) {
 12726  	return _KittyMinting.Contract.SetCOO(&_KittyMinting.TransactOpts, _newCOO)
 12727  }
 12728  
 12729  // SetCOO is a paid mutator transaction binding the contract method 0x2ba73c15.
 12730  //
 12731  // Solidity: function setCOO(address _newCOO) returns()
 12732  func (_KittyMinting *KittyMintingTransactorSession) SetCOO(_newCOO common.Address) (*types.Transaction, error) {
 12733  	return _KittyMinting.Contract.SetCOO(&_KittyMinting.TransactOpts, _newCOO)
 12734  }
 12735  
 12736  // SetGeneScienceAddress is a paid mutator transaction binding the contract method 0x24e7a38a.
 12737  //
 12738  // Solidity: function setGeneScienceAddress(address _address) returns()
 12739  func (_KittyMinting *KittyMintingTransactor) SetGeneScienceAddress(opts *bind.TransactOpts, _address common.Address) (*types.Transaction, error) {
 12740  	return _KittyMinting.contract.Transact(opts, "setGeneScienceAddress", _address)
 12741  }
 12742  
 12743  // SetGeneScienceAddress is a paid mutator transaction binding the contract method 0x24e7a38a.
 12744  //
 12745  // Solidity: function setGeneScienceAddress(address _address) returns()
 12746  func (_KittyMinting *KittyMintingSession) SetGeneScienceAddress(_address common.Address) (*types.Transaction, error) {
 12747  	return _KittyMinting.Contract.SetGeneScienceAddress(&_KittyMinting.TransactOpts, _address)
 12748  }
 12749  
 12750  // SetGeneScienceAddress is a paid mutator transaction binding the contract method 0x24e7a38a.
 12751  //
 12752  // Solidity: function setGeneScienceAddress(address _address) returns()
 12753  func (_KittyMinting *KittyMintingTransactorSession) SetGeneScienceAddress(_address common.Address) (*types.Transaction, error) {
 12754  	return _KittyMinting.Contract.SetGeneScienceAddress(&_KittyMinting.TransactOpts, _address)
 12755  }
 12756  
 12757  // SetMetadataAddress is a paid mutator transaction binding the contract method 0xe17b25af.
 12758  //
 12759  // Solidity: function setMetadataAddress(address _contractAddress) returns()
 12760  func (_KittyMinting *KittyMintingTransactor) SetMetadataAddress(opts *bind.TransactOpts, _contractAddress common.Address) (*types.Transaction, error) {
 12761  	return _KittyMinting.contract.Transact(opts, "setMetadataAddress", _contractAddress)
 12762  }
 12763  
 12764  // SetMetadataAddress is a paid mutator transaction binding the contract method 0xe17b25af.
 12765  //
 12766  // Solidity: function setMetadataAddress(address _contractAddress) returns()
 12767  func (_KittyMinting *KittyMintingSession) SetMetadataAddress(_contractAddress common.Address) (*types.Transaction, error) {
 12768  	return _KittyMinting.Contract.SetMetadataAddress(&_KittyMinting.TransactOpts, _contractAddress)
 12769  }
 12770  
 12771  // SetMetadataAddress is a paid mutator transaction binding the contract method 0xe17b25af.
 12772  //
 12773  // Solidity: function setMetadataAddress(address _contractAddress) returns()
 12774  func (_KittyMinting *KittyMintingTransactorSession) SetMetadataAddress(_contractAddress common.Address) (*types.Transaction, error) {
 12775  	return _KittyMinting.Contract.SetMetadataAddress(&_KittyMinting.TransactOpts, _contractAddress)
 12776  }
 12777  
 12778  // SetSaleAuctionAddress is a paid mutator transaction binding the contract method 0x6fbde40d.
 12779  //
 12780  // Solidity: function setSaleAuctionAddress(address _address) returns()
 12781  func (_KittyMinting *KittyMintingTransactor) SetSaleAuctionAddress(opts *bind.TransactOpts, _address common.Address) (*types.Transaction, error) {
 12782  	return _KittyMinting.contract.Transact(opts, "setSaleAuctionAddress", _address)
 12783  }
 12784  
 12785  // SetSaleAuctionAddress is a paid mutator transaction binding the contract method 0x6fbde40d.
 12786  //
 12787  // Solidity: function setSaleAuctionAddress(address _address) returns()
 12788  func (_KittyMinting *KittyMintingSession) SetSaleAuctionAddress(_address common.Address) (*types.Transaction, error) {
 12789  	return _KittyMinting.Contract.SetSaleAuctionAddress(&_KittyMinting.TransactOpts, _address)
 12790  }
 12791  
 12792  // SetSaleAuctionAddress is a paid mutator transaction binding the contract method 0x6fbde40d.
 12793  //
 12794  // Solidity: function setSaleAuctionAddress(address _address) returns()
 12795  func (_KittyMinting *KittyMintingTransactorSession) SetSaleAuctionAddress(_address common.Address) (*types.Transaction, error) {
 12796  	return _KittyMinting.Contract.SetSaleAuctionAddress(&_KittyMinting.TransactOpts, _address)
 12797  }
 12798  
 12799  // SetSecondsPerBlock is a paid mutator transaction binding the contract method 0x5663896e.
 12800  //
 12801  // Solidity: function setSecondsPerBlock(uint256 secs) returns()
 12802  func (_KittyMinting *KittyMintingTransactor) SetSecondsPerBlock(opts *bind.TransactOpts, secs *big.Int) (*types.Transaction, error) {
 12803  	return _KittyMinting.contract.Transact(opts, "setSecondsPerBlock", secs)
 12804  }
 12805  
 12806  // SetSecondsPerBlock is a paid mutator transaction binding the contract method 0x5663896e.
 12807  //
 12808  // Solidity: function setSecondsPerBlock(uint256 secs) returns()
 12809  func (_KittyMinting *KittyMintingSession) SetSecondsPerBlock(secs *big.Int) (*types.Transaction, error) {
 12810  	return _KittyMinting.Contract.SetSecondsPerBlock(&_KittyMinting.TransactOpts, secs)
 12811  }
 12812  
 12813  // SetSecondsPerBlock is a paid mutator transaction binding the contract method 0x5663896e.
 12814  //
 12815  // Solidity: function setSecondsPerBlock(uint256 secs) returns()
 12816  func (_KittyMinting *KittyMintingTransactorSession) SetSecondsPerBlock(secs *big.Int) (*types.Transaction, error) {
 12817  	return _KittyMinting.Contract.SetSecondsPerBlock(&_KittyMinting.TransactOpts, secs)
 12818  }
 12819  
 12820  // SetSiringAuctionAddress is a paid mutator transaction binding the contract method 0x14001f4c.
 12821  //
 12822  // Solidity: function setSiringAuctionAddress(address _address) returns()
 12823  func (_KittyMinting *KittyMintingTransactor) SetSiringAuctionAddress(opts *bind.TransactOpts, _address common.Address) (*types.Transaction, error) {
 12824  	return _KittyMinting.contract.Transact(opts, "setSiringAuctionAddress", _address)
 12825  }
 12826  
 12827  // SetSiringAuctionAddress is a paid mutator transaction binding the contract method 0x14001f4c.
 12828  //
 12829  // Solidity: function setSiringAuctionAddress(address _address) returns()
 12830  func (_KittyMinting *KittyMintingSession) SetSiringAuctionAddress(_address common.Address) (*types.Transaction, error) {
 12831  	return _KittyMinting.Contract.SetSiringAuctionAddress(&_KittyMinting.TransactOpts, _address)
 12832  }
 12833  
 12834  // SetSiringAuctionAddress is a paid mutator transaction binding the contract method 0x14001f4c.
 12835  //
 12836  // Solidity: function setSiringAuctionAddress(address _address) returns()
 12837  func (_KittyMinting *KittyMintingTransactorSession) SetSiringAuctionAddress(_address common.Address) (*types.Transaction, error) {
 12838  	return _KittyMinting.Contract.SetSiringAuctionAddress(&_KittyMinting.TransactOpts, _address)
 12839  }
 12840  
 12841  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 12842  //
 12843  // Solidity: function transfer(address _to, uint256 _tokenId) returns()
 12844  func (_KittyMinting *KittyMintingTransactor) Transfer(opts *bind.TransactOpts, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
 12845  	return _KittyMinting.contract.Transact(opts, "transfer", _to, _tokenId)
 12846  }
 12847  
 12848  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 12849  //
 12850  // Solidity: function transfer(address _to, uint256 _tokenId) returns()
 12851  func (_KittyMinting *KittyMintingSession) Transfer(_to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
 12852  	return _KittyMinting.Contract.Transfer(&_KittyMinting.TransactOpts, _to, _tokenId)
 12853  }
 12854  
 12855  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 12856  //
 12857  // Solidity: function transfer(address _to, uint256 _tokenId) returns()
 12858  func (_KittyMinting *KittyMintingTransactorSession) Transfer(_to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
 12859  	return _KittyMinting.Contract.Transfer(&_KittyMinting.TransactOpts, _to, _tokenId)
 12860  }
 12861  
 12862  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 12863  //
 12864  // Solidity: function transferFrom(address _from, address _to, uint256 _tokenId) returns()
 12865  func (_KittyMinting *KittyMintingTransactor) TransferFrom(opts *bind.TransactOpts, _from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
 12866  	return _KittyMinting.contract.Transact(opts, "transferFrom", _from, _to, _tokenId)
 12867  }
 12868  
 12869  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 12870  //
 12871  // Solidity: function transferFrom(address _from, address _to, uint256 _tokenId) returns()
 12872  func (_KittyMinting *KittyMintingSession) TransferFrom(_from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
 12873  	return _KittyMinting.Contract.TransferFrom(&_KittyMinting.TransactOpts, _from, _to, _tokenId)
 12874  }
 12875  
 12876  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 12877  //
 12878  // Solidity: function transferFrom(address _from, address _to, uint256 _tokenId) returns()
 12879  func (_KittyMinting *KittyMintingTransactorSession) TransferFrom(_from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
 12880  	return _KittyMinting.Contract.TransferFrom(&_KittyMinting.TransactOpts, _from, _to, _tokenId)
 12881  }
 12882  
 12883  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
 12884  //
 12885  // Solidity: function unpause() returns()
 12886  func (_KittyMinting *KittyMintingTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) {
 12887  	return _KittyMinting.contract.Transact(opts, "unpause")
 12888  }
 12889  
 12890  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
 12891  //
 12892  // Solidity: function unpause() returns()
 12893  func (_KittyMinting *KittyMintingSession) Unpause() (*types.Transaction, error) {
 12894  	return _KittyMinting.Contract.Unpause(&_KittyMinting.TransactOpts)
 12895  }
 12896  
 12897  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
 12898  //
 12899  // Solidity: function unpause() returns()
 12900  func (_KittyMinting *KittyMintingTransactorSession) Unpause() (*types.Transaction, error) {
 12901  	return _KittyMinting.Contract.Unpause(&_KittyMinting.TransactOpts)
 12902  }
 12903  
 12904  // WithdrawAuctionBalances is a paid mutator transaction binding the contract method 0x91876e57.
 12905  //
 12906  // Solidity: function withdrawAuctionBalances() returns()
 12907  func (_KittyMinting *KittyMintingTransactor) WithdrawAuctionBalances(opts *bind.TransactOpts) (*types.Transaction, error) {
 12908  	return _KittyMinting.contract.Transact(opts, "withdrawAuctionBalances")
 12909  }
 12910  
 12911  // WithdrawAuctionBalances is a paid mutator transaction binding the contract method 0x91876e57.
 12912  //
 12913  // Solidity: function withdrawAuctionBalances() returns()
 12914  func (_KittyMinting *KittyMintingSession) WithdrawAuctionBalances() (*types.Transaction, error) {
 12915  	return _KittyMinting.Contract.WithdrawAuctionBalances(&_KittyMinting.TransactOpts)
 12916  }
 12917  
 12918  // WithdrawAuctionBalances is a paid mutator transaction binding the contract method 0x91876e57.
 12919  //
 12920  // Solidity: function withdrawAuctionBalances() returns()
 12921  func (_KittyMinting *KittyMintingTransactorSession) WithdrawAuctionBalances() (*types.Transaction, error) {
 12922  	return _KittyMinting.Contract.WithdrawAuctionBalances(&_KittyMinting.TransactOpts)
 12923  }
 12924  
 12925  // KittyMintingApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the KittyMinting contract.
 12926  type KittyMintingApprovalIterator struct {
 12927  	Event *KittyMintingApproval // Event containing the contract specifics and raw log
 12928  
 12929  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 12930  	event    string              // Event name to use for unpacking event data
 12931  
 12932  	logs chan types.Log        // Log channel receiving the found contract events
 12933  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 12934  	done bool                  // Whether the subscription completed delivering logs
 12935  	fail error                 // Occurred error to stop iteration
 12936  }
 12937  
 12938  // Next advances the iterator to the subsequent event, returning whether there
 12939  // are any more events found. In case of a retrieval or parsing error, false is
 12940  // returned and Error() can be queried for the exact failure.
 12941  func (it *KittyMintingApprovalIterator) Next() bool {
 12942  	// If the iterator failed, stop iterating
 12943  	if it.fail != nil {
 12944  		return false
 12945  	}
 12946  	// If the iterator completed, deliver directly whatever's available
 12947  	if it.done {
 12948  		select {
 12949  		case log := <-it.logs:
 12950  			it.Event = new(KittyMintingApproval)
 12951  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12952  				it.fail = err
 12953  				return false
 12954  			}
 12955  			it.Event.Raw = log
 12956  			return true
 12957  
 12958  		default:
 12959  			return false
 12960  		}
 12961  	}
 12962  	// Iterator still in progress, wait for either a data or an error event
 12963  	select {
 12964  	case log := <-it.logs:
 12965  		it.Event = new(KittyMintingApproval)
 12966  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12967  			it.fail = err
 12968  			return false
 12969  		}
 12970  		it.Event.Raw = log
 12971  		return true
 12972  
 12973  	case err := <-it.sub.Err():
 12974  		it.done = true
 12975  		it.fail = err
 12976  		return it.Next()
 12977  	}
 12978  }
 12979  
 12980  // Error returns any retrieval or parsing error occurred during filtering.
 12981  func (it *KittyMintingApprovalIterator) Error() error {
 12982  	return it.fail
 12983  }
 12984  
 12985  // Close terminates the iteration process, releasing any pending underlying
 12986  // resources.
 12987  func (it *KittyMintingApprovalIterator) Close() error {
 12988  	it.sub.Unsubscribe()
 12989  	return nil
 12990  }
 12991  
 12992  // KittyMintingApproval represents a Approval event raised by the KittyMinting contract.
 12993  type KittyMintingApproval struct {
 12994  	Owner    common.Address
 12995  	Approved common.Address
 12996  	TokenId  *big.Int
 12997  	Raw      types.Log // Blockchain specific contextual infos
 12998  }
 12999  
 13000  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 13001  //
 13002  // Solidity: event Approval(address owner, address approved, uint256 tokenId)
 13003  func (_KittyMinting *KittyMintingFilterer) FilterApproval(opts *bind.FilterOpts) (*KittyMintingApprovalIterator, error) {
 13004  
 13005  	logs, sub, err := _KittyMinting.contract.FilterLogs(opts, "Approval")
 13006  	if err != nil {
 13007  		return nil, err
 13008  	}
 13009  	return &KittyMintingApprovalIterator{contract: _KittyMinting.contract, event: "Approval", logs: logs, sub: sub}, nil
 13010  }
 13011  
 13012  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 13013  //
 13014  // Solidity: event Approval(address owner, address approved, uint256 tokenId)
 13015  func (_KittyMinting *KittyMintingFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *KittyMintingApproval) (event.Subscription, error) {
 13016  
 13017  	logs, sub, err := _KittyMinting.contract.WatchLogs(opts, "Approval")
 13018  	if err != nil {
 13019  		return nil, err
 13020  	}
 13021  	return event.NewSubscription(func(quit <-chan struct{}) error {
 13022  		defer sub.Unsubscribe()
 13023  		for {
 13024  			select {
 13025  			case log := <-logs:
 13026  				// New log arrived, parse the event and forward to the user
 13027  				event := new(KittyMintingApproval)
 13028  				if err := _KittyMinting.contract.UnpackLog(event, "Approval", log); err != nil {
 13029  					return err
 13030  				}
 13031  				event.Raw = log
 13032  
 13033  				select {
 13034  				case sink <- event:
 13035  				case err := <-sub.Err():
 13036  					return err
 13037  				case <-quit:
 13038  					return nil
 13039  				}
 13040  			case err := <-sub.Err():
 13041  				return err
 13042  			case <-quit:
 13043  				return nil
 13044  			}
 13045  		}
 13046  	}), nil
 13047  }
 13048  
 13049  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 13050  //
 13051  // Solidity: event Approval(address owner, address approved, uint256 tokenId)
 13052  func (_KittyMinting *KittyMintingFilterer) ParseApproval(log types.Log) (*KittyMintingApproval, error) {
 13053  	event := new(KittyMintingApproval)
 13054  	if err := _KittyMinting.contract.UnpackLog(event, "Approval", log); err != nil {
 13055  		return nil, err
 13056  	}
 13057  	event.Raw = log
 13058  	return event, nil
 13059  }
 13060  
 13061  // KittyMintingBirthIterator is returned from FilterBirth and is used to iterate over the raw logs and unpacked data for Birth events raised by the KittyMinting contract.
 13062  type KittyMintingBirthIterator struct {
 13063  	Event *KittyMintingBirth // Event containing the contract specifics and raw log
 13064  
 13065  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 13066  	event    string              // Event name to use for unpacking event data
 13067  
 13068  	logs chan types.Log        // Log channel receiving the found contract events
 13069  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 13070  	done bool                  // Whether the subscription completed delivering logs
 13071  	fail error                 // Occurred error to stop iteration
 13072  }
 13073  
 13074  // Next advances the iterator to the subsequent event, returning whether there
 13075  // are any more events found. In case of a retrieval or parsing error, false is
 13076  // returned and Error() can be queried for the exact failure.
 13077  func (it *KittyMintingBirthIterator) Next() bool {
 13078  	// If the iterator failed, stop iterating
 13079  	if it.fail != nil {
 13080  		return false
 13081  	}
 13082  	// If the iterator completed, deliver directly whatever's available
 13083  	if it.done {
 13084  		select {
 13085  		case log := <-it.logs:
 13086  			it.Event = new(KittyMintingBirth)
 13087  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13088  				it.fail = err
 13089  				return false
 13090  			}
 13091  			it.Event.Raw = log
 13092  			return true
 13093  
 13094  		default:
 13095  			return false
 13096  		}
 13097  	}
 13098  	// Iterator still in progress, wait for either a data or an error event
 13099  	select {
 13100  	case log := <-it.logs:
 13101  		it.Event = new(KittyMintingBirth)
 13102  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13103  			it.fail = err
 13104  			return false
 13105  		}
 13106  		it.Event.Raw = log
 13107  		return true
 13108  
 13109  	case err := <-it.sub.Err():
 13110  		it.done = true
 13111  		it.fail = err
 13112  		return it.Next()
 13113  	}
 13114  }
 13115  
 13116  // Error returns any retrieval or parsing error occurred during filtering.
 13117  func (it *KittyMintingBirthIterator) Error() error {
 13118  	return it.fail
 13119  }
 13120  
 13121  // Close terminates the iteration process, releasing any pending underlying
 13122  // resources.
 13123  func (it *KittyMintingBirthIterator) Close() error {
 13124  	it.sub.Unsubscribe()
 13125  	return nil
 13126  }
 13127  
 13128  // KittyMintingBirth represents a Birth event raised by the KittyMinting contract.
 13129  type KittyMintingBirth struct {
 13130  	Owner    common.Address
 13131  	KittyId  *big.Int
 13132  	MatronId *big.Int
 13133  	SireId   *big.Int
 13134  	Genes    *big.Int
 13135  	Raw      types.Log // Blockchain specific contextual infos
 13136  }
 13137  
 13138  // FilterBirth is a free log retrieval operation binding the contract event 0x0a5311bd2a6608f08a180df2ee7c5946819a649b204b554bb8e39825b2c50ad5.
 13139  //
 13140  // Solidity: event Birth(address owner, uint256 kittyId, uint256 matronId, uint256 sireId, uint256 genes)
 13141  func (_KittyMinting *KittyMintingFilterer) FilterBirth(opts *bind.FilterOpts) (*KittyMintingBirthIterator, error) {
 13142  
 13143  	logs, sub, err := _KittyMinting.contract.FilterLogs(opts, "Birth")
 13144  	if err != nil {
 13145  		return nil, err
 13146  	}
 13147  	return &KittyMintingBirthIterator{contract: _KittyMinting.contract, event: "Birth", logs: logs, sub: sub}, nil
 13148  }
 13149  
 13150  // WatchBirth is a free log subscription operation binding the contract event 0x0a5311bd2a6608f08a180df2ee7c5946819a649b204b554bb8e39825b2c50ad5.
 13151  //
 13152  // Solidity: event Birth(address owner, uint256 kittyId, uint256 matronId, uint256 sireId, uint256 genes)
 13153  func (_KittyMinting *KittyMintingFilterer) WatchBirth(opts *bind.WatchOpts, sink chan<- *KittyMintingBirth) (event.Subscription, error) {
 13154  
 13155  	logs, sub, err := _KittyMinting.contract.WatchLogs(opts, "Birth")
 13156  	if err != nil {
 13157  		return nil, err
 13158  	}
 13159  	return event.NewSubscription(func(quit <-chan struct{}) error {
 13160  		defer sub.Unsubscribe()
 13161  		for {
 13162  			select {
 13163  			case log := <-logs:
 13164  				// New log arrived, parse the event and forward to the user
 13165  				event := new(KittyMintingBirth)
 13166  				if err := _KittyMinting.contract.UnpackLog(event, "Birth", log); err != nil {
 13167  					return err
 13168  				}
 13169  				event.Raw = log
 13170  
 13171  				select {
 13172  				case sink <- event:
 13173  				case err := <-sub.Err():
 13174  					return err
 13175  				case <-quit:
 13176  					return nil
 13177  				}
 13178  			case err := <-sub.Err():
 13179  				return err
 13180  			case <-quit:
 13181  				return nil
 13182  			}
 13183  		}
 13184  	}), nil
 13185  }
 13186  
 13187  // ParseBirth is a log parse operation binding the contract event 0x0a5311bd2a6608f08a180df2ee7c5946819a649b204b554bb8e39825b2c50ad5.
 13188  //
 13189  // Solidity: event Birth(address owner, uint256 kittyId, uint256 matronId, uint256 sireId, uint256 genes)
 13190  func (_KittyMinting *KittyMintingFilterer) ParseBirth(log types.Log) (*KittyMintingBirth, error) {
 13191  	event := new(KittyMintingBirth)
 13192  	if err := _KittyMinting.contract.UnpackLog(event, "Birth", log); err != nil {
 13193  		return nil, err
 13194  	}
 13195  	event.Raw = log
 13196  	return event, nil
 13197  }
 13198  
 13199  // KittyMintingContractUpgradeIterator is returned from FilterContractUpgrade and is used to iterate over the raw logs and unpacked data for ContractUpgrade events raised by the KittyMinting contract.
 13200  type KittyMintingContractUpgradeIterator struct {
 13201  	Event *KittyMintingContractUpgrade // Event containing the contract specifics and raw log
 13202  
 13203  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 13204  	event    string              // Event name to use for unpacking event data
 13205  
 13206  	logs chan types.Log        // Log channel receiving the found contract events
 13207  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 13208  	done bool                  // Whether the subscription completed delivering logs
 13209  	fail error                 // Occurred error to stop iteration
 13210  }
 13211  
 13212  // Next advances the iterator to the subsequent event, returning whether there
 13213  // are any more events found. In case of a retrieval or parsing error, false is
 13214  // returned and Error() can be queried for the exact failure.
 13215  func (it *KittyMintingContractUpgradeIterator) Next() bool {
 13216  	// If the iterator failed, stop iterating
 13217  	if it.fail != nil {
 13218  		return false
 13219  	}
 13220  	// If the iterator completed, deliver directly whatever's available
 13221  	if it.done {
 13222  		select {
 13223  		case log := <-it.logs:
 13224  			it.Event = new(KittyMintingContractUpgrade)
 13225  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13226  				it.fail = err
 13227  				return false
 13228  			}
 13229  			it.Event.Raw = log
 13230  			return true
 13231  
 13232  		default:
 13233  			return false
 13234  		}
 13235  	}
 13236  	// Iterator still in progress, wait for either a data or an error event
 13237  	select {
 13238  	case log := <-it.logs:
 13239  		it.Event = new(KittyMintingContractUpgrade)
 13240  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13241  			it.fail = err
 13242  			return false
 13243  		}
 13244  		it.Event.Raw = log
 13245  		return true
 13246  
 13247  	case err := <-it.sub.Err():
 13248  		it.done = true
 13249  		it.fail = err
 13250  		return it.Next()
 13251  	}
 13252  }
 13253  
 13254  // Error returns any retrieval or parsing error occurred during filtering.
 13255  func (it *KittyMintingContractUpgradeIterator) Error() error {
 13256  	return it.fail
 13257  }
 13258  
 13259  // Close terminates the iteration process, releasing any pending underlying
 13260  // resources.
 13261  func (it *KittyMintingContractUpgradeIterator) Close() error {
 13262  	it.sub.Unsubscribe()
 13263  	return nil
 13264  }
 13265  
 13266  // KittyMintingContractUpgrade represents a ContractUpgrade event raised by the KittyMinting contract.
 13267  type KittyMintingContractUpgrade struct {
 13268  	NewContract common.Address
 13269  	Raw         types.Log // Blockchain specific contextual infos
 13270  }
 13271  
 13272  // FilterContractUpgrade is a free log retrieval operation binding the contract event 0x450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa446199305.
 13273  //
 13274  // Solidity: event ContractUpgrade(address newContract)
 13275  func (_KittyMinting *KittyMintingFilterer) FilterContractUpgrade(opts *bind.FilterOpts) (*KittyMintingContractUpgradeIterator, error) {
 13276  
 13277  	logs, sub, err := _KittyMinting.contract.FilterLogs(opts, "ContractUpgrade")
 13278  	if err != nil {
 13279  		return nil, err
 13280  	}
 13281  	return &KittyMintingContractUpgradeIterator{contract: _KittyMinting.contract, event: "ContractUpgrade", logs: logs, sub: sub}, nil
 13282  }
 13283  
 13284  // WatchContractUpgrade is a free log subscription operation binding the contract event 0x450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa446199305.
 13285  //
 13286  // Solidity: event ContractUpgrade(address newContract)
 13287  func (_KittyMinting *KittyMintingFilterer) WatchContractUpgrade(opts *bind.WatchOpts, sink chan<- *KittyMintingContractUpgrade) (event.Subscription, error) {
 13288  
 13289  	logs, sub, err := _KittyMinting.contract.WatchLogs(opts, "ContractUpgrade")
 13290  	if err != nil {
 13291  		return nil, err
 13292  	}
 13293  	return event.NewSubscription(func(quit <-chan struct{}) error {
 13294  		defer sub.Unsubscribe()
 13295  		for {
 13296  			select {
 13297  			case log := <-logs:
 13298  				// New log arrived, parse the event and forward to the user
 13299  				event := new(KittyMintingContractUpgrade)
 13300  				if err := _KittyMinting.contract.UnpackLog(event, "ContractUpgrade", log); err != nil {
 13301  					return err
 13302  				}
 13303  				event.Raw = log
 13304  
 13305  				select {
 13306  				case sink <- event:
 13307  				case err := <-sub.Err():
 13308  					return err
 13309  				case <-quit:
 13310  					return nil
 13311  				}
 13312  			case err := <-sub.Err():
 13313  				return err
 13314  			case <-quit:
 13315  				return nil
 13316  			}
 13317  		}
 13318  	}), nil
 13319  }
 13320  
 13321  // ParseContractUpgrade is a log parse operation binding the contract event 0x450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa446199305.
 13322  //
 13323  // Solidity: event ContractUpgrade(address newContract)
 13324  func (_KittyMinting *KittyMintingFilterer) ParseContractUpgrade(log types.Log) (*KittyMintingContractUpgrade, error) {
 13325  	event := new(KittyMintingContractUpgrade)
 13326  	if err := _KittyMinting.contract.UnpackLog(event, "ContractUpgrade", log); err != nil {
 13327  		return nil, err
 13328  	}
 13329  	event.Raw = log
 13330  	return event, nil
 13331  }
 13332  
 13333  // KittyMintingPregnantIterator is returned from FilterPregnant and is used to iterate over the raw logs and unpacked data for Pregnant events raised by the KittyMinting contract.
 13334  type KittyMintingPregnantIterator struct {
 13335  	Event *KittyMintingPregnant // Event containing the contract specifics and raw log
 13336  
 13337  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 13338  	event    string              // Event name to use for unpacking event data
 13339  
 13340  	logs chan types.Log        // Log channel receiving the found contract events
 13341  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 13342  	done bool                  // Whether the subscription completed delivering logs
 13343  	fail error                 // Occurred error to stop iteration
 13344  }
 13345  
 13346  // Next advances the iterator to the subsequent event, returning whether there
 13347  // are any more events found. In case of a retrieval or parsing error, false is
 13348  // returned and Error() can be queried for the exact failure.
 13349  func (it *KittyMintingPregnantIterator) Next() bool {
 13350  	// If the iterator failed, stop iterating
 13351  	if it.fail != nil {
 13352  		return false
 13353  	}
 13354  	// If the iterator completed, deliver directly whatever's available
 13355  	if it.done {
 13356  		select {
 13357  		case log := <-it.logs:
 13358  			it.Event = new(KittyMintingPregnant)
 13359  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13360  				it.fail = err
 13361  				return false
 13362  			}
 13363  			it.Event.Raw = log
 13364  			return true
 13365  
 13366  		default:
 13367  			return false
 13368  		}
 13369  	}
 13370  	// Iterator still in progress, wait for either a data or an error event
 13371  	select {
 13372  	case log := <-it.logs:
 13373  		it.Event = new(KittyMintingPregnant)
 13374  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13375  			it.fail = err
 13376  			return false
 13377  		}
 13378  		it.Event.Raw = log
 13379  		return true
 13380  
 13381  	case err := <-it.sub.Err():
 13382  		it.done = true
 13383  		it.fail = err
 13384  		return it.Next()
 13385  	}
 13386  }
 13387  
 13388  // Error returns any retrieval or parsing error occurred during filtering.
 13389  func (it *KittyMintingPregnantIterator) Error() error {
 13390  	return it.fail
 13391  }
 13392  
 13393  // Close terminates the iteration process, releasing any pending underlying
 13394  // resources.
 13395  func (it *KittyMintingPregnantIterator) Close() error {
 13396  	it.sub.Unsubscribe()
 13397  	return nil
 13398  }
 13399  
 13400  // KittyMintingPregnant represents a Pregnant event raised by the KittyMinting contract.
 13401  type KittyMintingPregnant struct {
 13402  	Owner            common.Address
 13403  	MatronId         *big.Int
 13404  	SireId           *big.Int
 13405  	CooldownEndBlock *big.Int
 13406  	Raw              types.Log // Blockchain specific contextual infos
 13407  }
 13408  
 13409  // FilterPregnant is a free log retrieval operation binding the contract event 0x241ea03ca20251805084d27d4440371c34a0b85ff108f6bb5611248f73818b80.
 13410  //
 13411  // Solidity: event Pregnant(address owner, uint256 matronId, uint256 sireId, uint256 cooldownEndBlock)
 13412  func (_KittyMinting *KittyMintingFilterer) FilterPregnant(opts *bind.FilterOpts) (*KittyMintingPregnantIterator, error) {
 13413  
 13414  	logs, sub, err := _KittyMinting.contract.FilterLogs(opts, "Pregnant")
 13415  	if err != nil {
 13416  		return nil, err
 13417  	}
 13418  	return &KittyMintingPregnantIterator{contract: _KittyMinting.contract, event: "Pregnant", logs: logs, sub: sub}, nil
 13419  }
 13420  
 13421  // WatchPregnant is a free log subscription operation binding the contract event 0x241ea03ca20251805084d27d4440371c34a0b85ff108f6bb5611248f73818b80.
 13422  //
 13423  // Solidity: event Pregnant(address owner, uint256 matronId, uint256 sireId, uint256 cooldownEndBlock)
 13424  func (_KittyMinting *KittyMintingFilterer) WatchPregnant(opts *bind.WatchOpts, sink chan<- *KittyMintingPregnant) (event.Subscription, error) {
 13425  
 13426  	logs, sub, err := _KittyMinting.contract.WatchLogs(opts, "Pregnant")
 13427  	if err != nil {
 13428  		return nil, err
 13429  	}
 13430  	return event.NewSubscription(func(quit <-chan struct{}) error {
 13431  		defer sub.Unsubscribe()
 13432  		for {
 13433  			select {
 13434  			case log := <-logs:
 13435  				// New log arrived, parse the event and forward to the user
 13436  				event := new(KittyMintingPregnant)
 13437  				if err := _KittyMinting.contract.UnpackLog(event, "Pregnant", log); err != nil {
 13438  					return err
 13439  				}
 13440  				event.Raw = log
 13441  
 13442  				select {
 13443  				case sink <- event:
 13444  				case err := <-sub.Err():
 13445  					return err
 13446  				case <-quit:
 13447  					return nil
 13448  				}
 13449  			case err := <-sub.Err():
 13450  				return err
 13451  			case <-quit:
 13452  				return nil
 13453  			}
 13454  		}
 13455  	}), nil
 13456  }
 13457  
 13458  // ParsePregnant is a log parse operation binding the contract event 0x241ea03ca20251805084d27d4440371c34a0b85ff108f6bb5611248f73818b80.
 13459  //
 13460  // Solidity: event Pregnant(address owner, uint256 matronId, uint256 sireId, uint256 cooldownEndBlock)
 13461  func (_KittyMinting *KittyMintingFilterer) ParsePregnant(log types.Log) (*KittyMintingPregnant, error) {
 13462  	event := new(KittyMintingPregnant)
 13463  	if err := _KittyMinting.contract.UnpackLog(event, "Pregnant", log); err != nil {
 13464  		return nil, err
 13465  	}
 13466  	event.Raw = log
 13467  	return event, nil
 13468  }
 13469  
 13470  // KittyMintingTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the KittyMinting contract.
 13471  type KittyMintingTransferIterator struct {
 13472  	Event *KittyMintingTransfer // Event containing the contract specifics and raw log
 13473  
 13474  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 13475  	event    string              // Event name to use for unpacking event data
 13476  
 13477  	logs chan types.Log        // Log channel receiving the found contract events
 13478  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 13479  	done bool                  // Whether the subscription completed delivering logs
 13480  	fail error                 // Occurred error to stop iteration
 13481  }
 13482  
 13483  // Next advances the iterator to the subsequent event, returning whether there
 13484  // are any more events found. In case of a retrieval or parsing error, false is
 13485  // returned and Error() can be queried for the exact failure.
 13486  func (it *KittyMintingTransferIterator) Next() bool {
 13487  	// If the iterator failed, stop iterating
 13488  	if it.fail != nil {
 13489  		return false
 13490  	}
 13491  	// If the iterator completed, deliver directly whatever's available
 13492  	if it.done {
 13493  		select {
 13494  		case log := <-it.logs:
 13495  			it.Event = new(KittyMintingTransfer)
 13496  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13497  				it.fail = err
 13498  				return false
 13499  			}
 13500  			it.Event.Raw = log
 13501  			return true
 13502  
 13503  		default:
 13504  			return false
 13505  		}
 13506  	}
 13507  	// Iterator still in progress, wait for either a data or an error event
 13508  	select {
 13509  	case log := <-it.logs:
 13510  		it.Event = new(KittyMintingTransfer)
 13511  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13512  			it.fail = err
 13513  			return false
 13514  		}
 13515  		it.Event.Raw = log
 13516  		return true
 13517  
 13518  	case err := <-it.sub.Err():
 13519  		it.done = true
 13520  		it.fail = err
 13521  		return it.Next()
 13522  	}
 13523  }
 13524  
 13525  // Error returns any retrieval or parsing error occurred during filtering.
 13526  func (it *KittyMintingTransferIterator) Error() error {
 13527  	return it.fail
 13528  }
 13529  
 13530  // Close terminates the iteration process, releasing any pending underlying
 13531  // resources.
 13532  func (it *KittyMintingTransferIterator) Close() error {
 13533  	it.sub.Unsubscribe()
 13534  	return nil
 13535  }
 13536  
 13537  // KittyMintingTransfer represents a Transfer event raised by the KittyMinting contract.
 13538  type KittyMintingTransfer struct {
 13539  	From    common.Address
 13540  	To      common.Address
 13541  	TokenId *big.Int
 13542  	Raw     types.Log // Blockchain specific contextual infos
 13543  }
 13544  
 13545  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 13546  //
 13547  // Solidity: event Transfer(address from, address to, uint256 tokenId)
 13548  func (_KittyMinting *KittyMintingFilterer) FilterTransfer(opts *bind.FilterOpts) (*KittyMintingTransferIterator, error) {
 13549  
 13550  	logs, sub, err := _KittyMinting.contract.FilterLogs(opts, "Transfer")
 13551  	if err != nil {
 13552  		return nil, err
 13553  	}
 13554  	return &KittyMintingTransferIterator{contract: _KittyMinting.contract, event: "Transfer", logs: logs, sub: sub}, nil
 13555  }
 13556  
 13557  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 13558  //
 13559  // Solidity: event Transfer(address from, address to, uint256 tokenId)
 13560  func (_KittyMinting *KittyMintingFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *KittyMintingTransfer) (event.Subscription, error) {
 13561  
 13562  	logs, sub, err := _KittyMinting.contract.WatchLogs(opts, "Transfer")
 13563  	if err != nil {
 13564  		return nil, err
 13565  	}
 13566  	return event.NewSubscription(func(quit <-chan struct{}) error {
 13567  		defer sub.Unsubscribe()
 13568  		for {
 13569  			select {
 13570  			case log := <-logs:
 13571  				// New log arrived, parse the event and forward to the user
 13572  				event := new(KittyMintingTransfer)
 13573  				if err := _KittyMinting.contract.UnpackLog(event, "Transfer", log); err != nil {
 13574  					return err
 13575  				}
 13576  				event.Raw = log
 13577  
 13578  				select {
 13579  				case sink <- event:
 13580  				case err := <-sub.Err():
 13581  					return err
 13582  				case <-quit:
 13583  					return nil
 13584  				}
 13585  			case err := <-sub.Err():
 13586  				return err
 13587  			case <-quit:
 13588  				return nil
 13589  			}
 13590  		}
 13591  	}), nil
 13592  }
 13593  
 13594  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 13595  //
 13596  // Solidity: event Transfer(address from, address to, uint256 tokenId)
 13597  func (_KittyMinting *KittyMintingFilterer) ParseTransfer(log types.Log) (*KittyMintingTransfer, error) {
 13598  	event := new(KittyMintingTransfer)
 13599  	if err := _KittyMinting.contract.UnpackLog(event, "Transfer", log); err != nil {
 13600  		return nil, err
 13601  	}
 13602  	event.Raw = log
 13603  	return event, nil
 13604  }
 13605  
 13606  // KittyOwnershipABI is the input ABI used to generate the binding from.
 13607  const KittyOwnershipABI = "[{\"constant\":true,\"inputs\":[{\"name\":\"_interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cfoAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_preferredTransport\",\"type\":\"string\"}],\"name\":\"tokenMetadata\",\"outputs\":[{\"name\":\"infoUrl\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ceoAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"siringAuction\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newCEO\",\"type\":\"address\"}],\"name\":\"setCEO\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newCOO\",\"type\":\"address\"}],\"name\":\"setCOO\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"sireAllowedToAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"kittyIndexToApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newCFO\",\"type\":\"address\"}],\"name\":\"setCFO\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"secs\",\"type\":\"uint256\"}],\"name\":\"setSecondsPerBlock\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"count\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"secondsPerBlock\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"tokensOfOwner\",\"outputs\":[{\"name\":\"ownerTokens\",\"type\":\"uint256[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"cooldowns\",\"outputs\":[{\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"kittyIndexToOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cooAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"erc721Metadata\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_contractAddress\",\"type\":\"address\"}],\"name\":\"setMetadataAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"saleAuction\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"kittyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"matronId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"sireId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"genes\",\"type\":\"uint256\"}],\"name\":\"Birth\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"newContract\",\"type\":\"address\"}],\"name\":\"ContractUpgrade\",\"type\":\"event\"}]"
 13608  
 13609  // KittyOwnershipFuncSigs maps the 4-byte function signature to its string representation.
 13610  var KittyOwnershipFuncSigs = map[string]string{
 13611  	"095ea7b3": "approve(address,uint256)",
 13612  	"70a08231": "balanceOf(address)",
 13613  	"0a0f8168": "ceoAddress()",
 13614  	"0519ce79": "cfoAddress()",
 13615  	"b047fb50": "cooAddress()",
 13616  	"9d6fac6f": "cooldowns(uint256)",
 13617  	"bc4006f5": "erc721Metadata()",
 13618  	"481af3d3": "kittyIndexToApproved(uint256)",
 13619  	"a45f4bfc": "kittyIndexToOwner(uint256)",
 13620  	"06fdde03": "name()",
 13621  	"6352211e": "ownerOf(uint256)",
 13622  	"8456cb59": "pause()",
 13623  	"5c975abb": "paused()",
 13624  	"e6cbe351": "saleAuction()",
 13625  	"7a7d4937": "secondsPerBlock()",
 13626  	"27d7874c": "setCEO(address)",
 13627  	"4e0a3379": "setCFO(address)",
 13628  	"2ba73c15": "setCOO(address)",
 13629  	"e17b25af": "setMetadataAddress(address)",
 13630  	"5663896e": "setSecondsPerBlock(uint256)",
 13631  	"46116e6f": "sireAllowedToAddress(uint256)",
 13632  	"21717ebf": "siringAuction()",
 13633  	"01ffc9a7": "supportsInterface(bytes4)",
 13634  	"95d89b41": "symbol()",
 13635  	"0560ff44": "tokenMetadata(uint256,string)",
 13636  	"8462151c": "tokensOfOwner(address)",
 13637  	"18160ddd": "totalSupply()",
 13638  	"a9059cbb": "transfer(address,uint256)",
 13639  	"23b872dd": "transferFrom(address,address,uint256)",
 13640  	"3f4ba83a": "unpause()",
 13641  }
 13642  
 13643  // KittyOwnershipBin is the compiled bytecode used for deploying new contracts.
 13644  var KittyOwnershipBin = "0x606060409081526002805460a060020a60ff02191690556101c090519081016040908152603c82526078602083015261012c9082015261025860608201526107086080820152610e1060a0820152611c2060c082015261384060e082015261708061010082015261e100610120820152620151806101408201526202a3006101608201526205460061018082015262093a806101a0820152620000a790600390600e620000bf565b50600f6005553415620000b957600080fd5b62000189565b600283019183908215620001505791602002820160005b838211156200011c57835183826101000a81548163ffffffff021916908363ffffffff1602179055509260200192600401602081600301049283019260010302620000d6565b80156200014e5782816101000a81549063ffffffff02191690556004016020816003010492830192600103026200011c565b505b506200015e92915062000162565b5090565b6200018691905b808211156200015e57805463ffffffff1916815560010162000169565b90565b61122580620001996000396000f30060606040526004361061017f5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146101845780630519ce79146101d05780630560ff44146101ff57806306fdde0314610298578063095ea7b3146102ab5780630a0f8168146102cf57806318160ddd146102e257806321717ebf1461030757806323b872dd1461031a57806327d7874c146103425780632ba73c15146103615780633f4ba83a1461038057806346116e6f14610393578063481af3d3146103a95780634e0a3379146103bf5780635663896e146103de5780635c975abb146103f45780636352211e1461040757806370a082311461041d5780637a7d49371461043c5780638456cb591461044f5780638462151c1461046257806395d89b41146104d45780639d6fac6f146104e7578063a45f4bfc14610516578063a9059cbb1461052c578063b047fb501461054e578063bc4006f514610561578063e17b25af14610574578063e6cbe35114610593575b600080fd5b341561018f57600080fd5b6101bc7fffffffff00000000000000000000000000000000000000000000000000000000600435166105a6565b604051901515815260200160405180910390f35b34156101db57600080fd5b6101e361082d565b604051600160a060020a03909116815260200160405180910390f35b341561020a57600080fd5b61022160048035906024803590810191013561083c565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561025d578082015183820152602001610245565b50505050905090810190601f16801561028a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102a357600080fd5b610221610925565b34156102b657600080fd5b6102cd600160a060020a036004351660243561095c565b005b34156102da57600080fd5b6101e36109e6565b34156102ed57600080fd5b6102f56109f5565b60405190815260200160405180910390f35b341561031257600080fd5b6101e36109ff565b341561032557600080fd5b6102cd600160a060020a0360043581169060243516604435610a0e565b341561034d57600080fd5b6102cd600160a060020a0360043516610a95565b341561036c57600080fd5b6102cd600160a060020a0360043516610ae7565b341561038b57600080fd5b6102cd610b39565b341561039e57600080fd5b6101e3600435610b8c565b34156103b457600080fd5b6101e3600435610ba7565b34156103ca57600080fd5b6102cd600160a060020a0360043516610bc2565b34156103e957600080fd5b6102cd600435610c14565b34156103ff57600080fd5b6101bc610c7c565b341561041257600080fd5b6101e3600435610c8c565b341561042857600080fd5b6102f5600160a060020a0360043516610cb0565b341561044757600080fd5b6102f5610ccb565b341561045a57600080fd5b6102cd610cd1565b341561046d57600080fd5b610481600160a060020a0360043516610d5d565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156104c05780820151838201526020016104a8565b505050509050019250505060405180910390f35b34156104df57600080fd5b610221610e3e565b34156104f257600080fd5b6104fd600435610e75565b60405163ffffffff909116815260200160405180910390f35b341561052157600080fd5b6101e3600435610ea2565b341561053757600080fd5b6102cd600160a060020a0360043516602435610ebd565b341561055957600080fd5b6101e3610f64565b341561056c57600080fd5b6101e3610f73565b341561057f57600080fd5b6102cd600160a060020a0360043516610f82565b341561059e57600080fd5b6101e3610fbf565b60006040517f737570706f727473496e7465726661636528627974657334290000000000000081526019016040518091039020600160e060020a03191682600160e060020a031916148061082557506040517f746f6b656e4d657461646174612875696e743235362c737472696e67290000008152601d0160405180910390206040517f746f6b656e734f664f776e657228616464726573732900000000000000000000815260160160405180910390206040517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f7432353629000000000000000000000000000000000000000000000000000000602082015260250160405180910390206040517f7472616e7366657228616464726573732c75696e743235362900000000000000815260190160405180910390206040517f617070726f766528616464726573732c75696e74323536290000000000000000815260180160405180910390206040517f6f776e65724f662875696e743235362900000000000000000000000000000000815260100160405180910390206040517f62616c616e63654f662861646472657373290000000000000000000000000000815260120160405180910390206040517f746f74616c537570706c792829000000000000000000000000000000000000008152600d0160405180910390206040517f73796d626f6c2829000000000000000000000000000000000000000000000000815260080160405180910390206040517f6e616d652829000000000000000000000000000000000000000000000000000081526006016040518091039020181818181818181818600160e060020a03191682600160e060020a031916145b90505b919050565b600154600160a060020a031681565b6108446111be565b61084c6111d0565b600d54600090600160a060020a0316151561086657600080fd5b600d54600160a060020a031663cb4799f28787876040517c010000000000000000000000000000000000000000000000000000000063ffffffff861602815260048101848152604060248301908152604483018490529091606401848480828437820191505094505050505060a060405180830381600087803b15156108eb57600080fd5b5af115156108f857600080fd5b5050506040518060800180516020909101604052909250905061091b8282610fce565b9695505050505050565b60408051908101604052600d81527f43727970746f4b69747469657300000000000000000000000000000000000000602082015281565b60025460a060020a900460ff161561097357600080fd5b61097d3382611023565b151561098857600080fd5b6109928183611043565b7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925338383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a15050565b600054600160a060020a031681565b6006546000190190565b600c54600160a060020a031681565b60025460a060020a900460ff1615610a2557600080fd5b600160a060020a0382161515610a3a57600080fd5b30600160a060020a031682600160a060020a031614151515610a5b57600080fd5b610a653382611071565b1515610a7057600080fd5b610a7a8382611023565b1515610a8557600080fd5b610a90838383611091565b505050565b60005433600160a060020a03908116911614610ab057600080fd5b600160a060020a0381161515610ac557600080fd5b60008054600160a060020a031916600160a060020a0392909216919091179055565b60005433600160a060020a03908116911614610b0257600080fd5b600160a060020a0381161515610b1757600080fd5b60028054600160a060020a031916600160a060020a0392909216919091179055565b60005433600160a060020a03908116911614610b5457600080fd5b60025460a060020a900460ff161515610b6c57600080fd5b6002805474ff000000000000000000000000000000000000000019169055565b600a60205260009081526040902054600160a060020a031681565b600960205260009081526040902054600160a060020a031681565b60005433600160a060020a03908116911614610bdd57600080fd5b600160a060020a0381161515610bf257600080fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60025433600160a060020a0390811691161480610c3f575060005433600160a060020a039081169116145b80610c58575060015433600160a060020a039081169116145b1515610c6357600080fd5b60035463ffffffff168110610c7757600080fd5b600555565b60025460a060020a900460ff1681565b600081815260076020526040902054600160a060020a031680151561082857600080fd5b600160a060020a031660009081526008602052604090205490565b60055481565b60025433600160a060020a0390811691161480610cfc575060005433600160a060020a039081169116145b80610d15575060015433600160a060020a039081169116145b1515610d2057600080fd5b60025460a060020a900460ff1615610d3757600080fd5b6002805474ff0000000000000000000000000000000000000000191660a060020a179055565b610d656111be565b6000610d6f6111be565b6000806000610d7d87610cb0565b9450841515610dad576000604051805910610d955750595b90808252806020026020018201604052509550610e34565b84604051805910610dbb5750595b90808252806020026020018201604052509350610dd66109f5565b925060009150600190505b828111610e3057600081815260076020526040902054600160a060020a0388811691161415610e285780848381518110610e1757fe5b602090810290910101526001909101905b600101610de1565b8395505b5050505050919050565b60408051908101604052600281527f434b000000000000000000000000000000000000000000000000000000000000602082015281565b600381600e8110610e8257fe5b60089182820401919006600402915054906101000a900463ffffffff1681565b600760205260009081526040902054600160a060020a031681565b60025460a060020a900460ff1615610ed457600080fd5b600160a060020a0382161515610ee957600080fd5b30600160a060020a031682600160a060020a031614151515610f0a57600080fd5b600b54600160a060020a0383811691161415610f2557600080fd5b600c54600160a060020a0383811691161415610f4057600080fd5b610f4a3382611023565b1515610f5557600080fd5b610f60338383611091565b5050565b600254600160a060020a031681565b600d54600160a060020a031681565b60005433600160a060020a03908116911614610f9d57600080fd5b600d8054600160a060020a031916600160a060020a0392909216919091179055565b600b54600160a060020a031681565b610fd66111be565b610fde6111be565b60008084604051805910610fef5750595b818152601f19601f8301168101602001604052905092505060208201905084611019828287611179565b5090949350505050565b600090815260076020526040902054600160a060020a0391821691161490565b6000918252600960205260409091208054600160a060020a031916600160a060020a03909216919091179055565b600090815260096020526040902054600160a060020a0391821691161490565b600160a060020a03808316600081815260086020908152604080832080546001019055858352600790915290208054600160a060020a031916909117905583161561112457600160a060020a03831660009081526008602090815260408083208054600019019055838352600a82528083208054600160a060020a03199081169091556009909252909120805490911690555b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a1505050565b60005b6020821061119f578251845260208401935060208301925060208203915061117c565b6001826020036101000a03905080198351168185511617909352505050565b60206040519081016040526000815290565b60806040519081016040526004815b600081526000199190910190602001816111df57905050905600a165627a7a7230582026b14365de8966a12508427d03efd535efc282255d45ebf502e50ef0b9eba80a0029"
 13645  
 13646  // DeployKittyOwnership deploys a new Ethereum contract, binding an instance of KittyOwnership to it.
 13647  func DeployKittyOwnership(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *KittyOwnership, error) {
 13648  	parsed, err := abi.JSON(strings.NewReader(KittyOwnershipABI))
 13649  	if err != nil {
 13650  		return common.Address{}, nil, nil, err
 13651  	}
 13652  
 13653  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(KittyOwnershipBin), backend)
 13654  	if err != nil {
 13655  		return common.Address{}, nil, nil, err
 13656  	}
 13657  	return address, tx, &KittyOwnership{KittyOwnershipCaller: KittyOwnershipCaller{contract: contract}, KittyOwnershipTransactor: KittyOwnershipTransactor{contract: contract}, KittyOwnershipFilterer: KittyOwnershipFilterer{contract: contract}}, nil
 13658  }
 13659  
 13660  // KittyOwnership is an auto generated Go binding around an Ethereum contract.
 13661  type KittyOwnership struct {
 13662  	KittyOwnershipCaller     // Read-only binding to the contract
 13663  	KittyOwnershipTransactor // Write-only binding to the contract
 13664  	KittyOwnershipFilterer   // Log filterer for contract events
 13665  }
 13666  
 13667  // KittyOwnershipCaller is an auto generated read-only Go binding around an Ethereum contract.
 13668  type KittyOwnershipCaller struct {
 13669  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 13670  }
 13671  
 13672  // KittyOwnershipTransactor is an auto generated write-only Go binding around an Ethereum contract.
 13673  type KittyOwnershipTransactor struct {
 13674  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 13675  }
 13676  
 13677  // KittyOwnershipFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 13678  type KittyOwnershipFilterer struct {
 13679  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 13680  }
 13681  
 13682  // KittyOwnershipSession is an auto generated Go binding around an Ethereum contract,
 13683  // with pre-set call and transact options.
 13684  type KittyOwnershipSession struct {
 13685  	Contract     *KittyOwnership   // Generic contract binding to set the session for
 13686  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 13687  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 13688  }
 13689  
 13690  // KittyOwnershipCallerSession is an auto generated read-only Go binding around an Ethereum contract,
 13691  // with pre-set call options.
 13692  type KittyOwnershipCallerSession struct {
 13693  	Contract *KittyOwnershipCaller // Generic contract caller binding to set the session for
 13694  	CallOpts bind.CallOpts         // Call options to use throughout this session
 13695  }
 13696  
 13697  // KittyOwnershipTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 13698  // with pre-set transact options.
 13699  type KittyOwnershipTransactorSession struct {
 13700  	Contract     *KittyOwnershipTransactor // Generic contract transactor binding to set the session for
 13701  	TransactOpts bind.TransactOpts         // Transaction auth options to use throughout this session
 13702  }
 13703  
 13704  // KittyOwnershipRaw is an auto generated low-level Go binding around an Ethereum contract.
 13705  type KittyOwnershipRaw struct {
 13706  	Contract *KittyOwnership // Generic contract binding to access the raw methods on
 13707  }
 13708  
 13709  // KittyOwnershipCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 13710  type KittyOwnershipCallerRaw struct {
 13711  	Contract *KittyOwnershipCaller // Generic read-only contract binding to access the raw methods on
 13712  }
 13713  
 13714  // KittyOwnershipTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 13715  type KittyOwnershipTransactorRaw struct {
 13716  	Contract *KittyOwnershipTransactor // Generic write-only contract binding to access the raw methods on
 13717  }
 13718  
 13719  // NewKittyOwnership creates a new instance of KittyOwnership, bound to a specific deployed contract.
 13720  func NewKittyOwnership(address common.Address, backend bind.ContractBackend) (*KittyOwnership, error) {
 13721  	contract, err := bindKittyOwnership(address, backend, backend, backend)
 13722  	if err != nil {
 13723  		return nil, err
 13724  	}
 13725  	return &KittyOwnership{KittyOwnershipCaller: KittyOwnershipCaller{contract: contract}, KittyOwnershipTransactor: KittyOwnershipTransactor{contract: contract}, KittyOwnershipFilterer: KittyOwnershipFilterer{contract: contract}}, nil
 13726  }
 13727  
 13728  // NewKittyOwnershipCaller creates a new read-only instance of KittyOwnership, bound to a specific deployed contract.
 13729  func NewKittyOwnershipCaller(address common.Address, caller bind.ContractCaller) (*KittyOwnershipCaller, error) {
 13730  	contract, err := bindKittyOwnership(address, caller, nil, nil)
 13731  	if err != nil {
 13732  		return nil, err
 13733  	}
 13734  	return &KittyOwnershipCaller{contract: contract}, nil
 13735  }
 13736  
 13737  // NewKittyOwnershipTransactor creates a new write-only instance of KittyOwnership, bound to a specific deployed contract.
 13738  func NewKittyOwnershipTransactor(address common.Address, transactor bind.ContractTransactor) (*KittyOwnershipTransactor, error) {
 13739  	contract, err := bindKittyOwnership(address, nil, transactor, nil)
 13740  	if err != nil {
 13741  		return nil, err
 13742  	}
 13743  	return &KittyOwnershipTransactor{contract: contract}, nil
 13744  }
 13745  
 13746  // NewKittyOwnershipFilterer creates a new log filterer instance of KittyOwnership, bound to a specific deployed contract.
 13747  func NewKittyOwnershipFilterer(address common.Address, filterer bind.ContractFilterer) (*KittyOwnershipFilterer, error) {
 13748  	contract, err := bindKittyOwnership(address, nil, nil, filterer)
 13749  	if err != nil {
 13750  		return nil, err
 13751  	}
 13752  	return &KittyOwnershipFilterer{contract: contract}, nil
 13753  }
 13754  
 13755  // bindKittyOwnership binds a generic wrapper to an already deployed contract.
 13756  func bindKittyOwnership(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 13757  	parsed, err := abi.JSON(strings.NewReader(KittyOwnershipABI))
 13758  	if err != nil {
 13759  		return nil, err
 13760  	}
 13761  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 13762  }
 13763  
 13764  // Call invokes the (constant) contract method with params as input values and
 13765  // sets the output to result. The result type might be a single field for simple
 13766  // returns, a slice of interfaces for anonymous returns and a struct for named
 13767  // returns.
 13768  func (_KittyOwnership *KittyOwnershipRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 13769  	return _KittyOwnership.Contract.KittyOwnershipCaller.contract.Call(opts, result, method, params...)
 13770  }
 13771  
 13772  // Transfer initiates a plain transaction to move funds to the contract, calling
 13773  // its default method if one is available.
 13774  func (_KittyOwnership *KittyOwnershipRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 13775  	return _KittyOwnership.Contract.KittyOwnershipTransactor.contract.Transfer(opts)
 13776  }
 13777  
 13778  // Transact invokes the (paid) contract method with params as input values.
 13779  func (_KittyOwnership *KittyOwnershipRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 13780  	return _KittyOwnership.Contract.KittyOwnershipTransactor.contract.Transact(opts, method, params...)
 13781  }
 13782  
 13783  // Call invokes the (constant) contract method with params as input values and
 13784  // sets the output to result. The result type might be a single field for simple
 13785  // returns, a slice of interfaces for anonymous returns and a struct for named
 13786  // returns.
 13787  func (_KittyOwnership *KittyOwnershipCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 13788  	return _KittyOwnership.Contract.contract.Call(opts, result, method, params...)
 13789  }
 13790  
 13791  // Transfer initiates a plain transaction to move funds to the contract, calling
 13792  // its default method if one is available.
 13793  func (_KittyOwnership *KittyOwnershipTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 13794  	return _KittyOwnership.Contract.contract.Transfer(opts)
 13795  }
 13796  
 13797  // Transact invokes the (paid) contract method with params as input values.
 13798  func (_KittyOwnership *KittyOwnershipTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 13799  	return _KittyOwnership.Contract.contract.Transact(opts, method, params...)
 13800  }
 13801  
 13802  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 13803  //
 13804  // Solidity: function balanceOf(address _owner) view returns(uint256 count)
 13805  func (_KittyOwnership *KittyOwnershipCaller) BalanceOf(opts *bind.CallOpts, _owner common.Address) (*big.Int, error) {
 13806  	var out []interface{}
 13807  	err := _KittyOwnership.contract.Call(opts, &out, "balanceOf", _owner)
 13808  
 13809  	if err != nil {
 13810  		return *new(*big.Int), err
 13811  	}
 13812  
 13813  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 13814  
 13815  	return out0, err
 13816  
 13817  }
 13818  
 13819  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 13820  //
 13821  // Solidity: function balanceOf(address _owner) view returns(uint256 count)
 13822  func (_KittyOwnership *KittyOwnershipSession) BalanceOf(_owner common.Address) (*big.Int, error) {
 13823  	return _KittyOwnership.Contract.BalanceOf(&_KittyOwnership.CallOpts, _owner)
 13824  }
 13825  
 13826  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 13827  //
 13828  // Solidity: function balanceOf(address _owner) view returns(uint256 count)
 13829  func (_KittyOwnership *KittyOwnershipCallerSession) BalanceOf(_owner common.Address) (*big.Int, error) {
 13830  	return _KittyOwnership.Contract.BalanceOf(&_KittyOwnership.CallOpts, _owner)
 13831  }
 13832  
 13833  // CeoAddress is a free data retrieval call binding the contract method 0x0a0f8168.
 13834  //
 13835  // Solidity: function ceoAddress() view returns(address)
 13836  func (_KittyOwnership *KittyOwnershipCaller) CeoAddress(opts *bind.CallOpts) (common.Address, error) {
 13837  	var out []interface{}
 13838  	err := _KittyOwnership.contract.Call(opts, &out, "ceoAddress")
 13839  
 13840  	if err != nil {
 13841  		return *new(common.Address), err
 13842  	}
 13843  
 13844  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 13845  
 13846  	return out0, err
 13847  
 13848  }
 13849  
 13850  // CeoAddress is a free data retrieval call binding the contract method 0x0a0f8168.
 13851  //
 13852  // Solidity: function ceoAddress() view returns(address)
 13853  func (_KittyOwnership *KittyOwnershipSession) CeoAddress() (common.Address, error) {
 13854  	return _KittyOwnership.Contract.CeoAddress(&_KittyOwnership.CallOpts)
 13855  }
 13856  
 13857  // CeoAddress is a free data retrieval call binding the contract method 0x0a0f8168.
 13858  //
 13859  // Solidity: function ceoAddress() view returns(address)
 13860  func (_KittyOwnership *KittyOwnershipCallerSession) CeoAddress() (common.Address, error) {
 13861  	return _KittyOwnership.Contract.CeoAddress(&_KittyOwnership.CallOpts)
 13862  }
 13863  
 13864  // CfoAddress is a free data retrieval call binding the contract method 0x0519ce79.
 13865  //
 13866  // Solidity: function cfoAddress() view returns(address)
 13867  func (_KittyOwnership *KittyOwnershipCaller) CfoAddress(opts *bind.CallOpts) (common.Address, error) {
 13868  	var out []interface{}
 13869  	err := _KittyOwnership.contract.Call(opts, &out, "cfoAddress")
 13870  
 13871  	if err != nil {
 13872  		return *new(common.Address), err
 13873  	}
 13874  
 13875  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 13876  
 13877  	return out0, err
 13878  
 13879  }
 13880  
 13881  // CfoAddress is a free data retrieval call binding the contract method 0x0519ce79.
 13882  //
 13883  // Solidity: function cfoAddress() view returns(address)
 13884  func (_KittyOwnership *KittyOwnershipSession) CfoAddress() (common.Address, error) {
 13885  	return _KittyOwnership.Contract.CfoAddress(&_KittyOwnership.CallOpts)
 13886  }
 13887  
 13888  // CfoAddress is a free data retrieval call binding the contract method 0x0519ce79.
 13889  //
 13890  // Solidity: function cfoAddress() view returns(address)
 13891  func (_KittyOwnership *KittyOwnershipCallerSession) CfoAddress() (common.Address, error) {
 13892  	return _KittyOwnership.Contract.CfoAddress(&_KittyOwnership.CallOpts)
 13893  }
 13894  
 13895  // CooAddress is a free data retrieval call binding the contract method 0xb047fb50.
 13896  //
 13897  // Solidity: function cooAddress() view returns(address)
 13898  func (_KittyOwnership *KittyOwnershipCaller) CooAddress(opts *bind.CallOpts) (common.Address, error) {
 13899  	var out []interface{}
 13900  	err := _KittyOwnership.contract.Call(opts, &out, "cooAddress")
 13901  
 13902  	if err != nil {
 13903  		return *new(common.Address), err
 13904  	}
 13905  
 13906  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 13907  
 13908  	return out0, err
 13909  
 13910  }
 13911  
 13912  // CooAddress is a free data retrieval call binding the contract method 0xb047fb50.
 13913  //
 13914  // Solidity: function cooAddress() view returns(address)
 13915  func (_KittyOwnership *KittyOwnershipSession) CooAddress() (common.Address, error) {
 13916  	return _KittyOwnership.Contract.CooAddress(&_KittyOwnership.CallOpts)
 13917  }
 13918  
 13919  // CooAddress is a free data retrieval call binding the contract method 0xb047fb50.
 13920  //
 13921  // Solidity: function cooAddress() view returns(address)
 13922  func (_KittyOwnership *KittyOwnershipCallerSession) CooAddress() (common.Address, error) {
 13923  	return _KittyOwnership.Contract.CooAddress(&_KittyOwnership.CallOpts)
 13924  }
 13925  
 13926  // Cooldowns is a free data retrieval call binding the contract method 0x9d6fac6f.
 13927  //
 13928  // Solidity: function cooldowns(uint256 ) view returns(uint32)
 13929  func (_KittyOwnership *KittyOwnershipCaller) Cooldowns(opts *bind.CallOpts, arg0 *big.Int) (uint32, error) {
 13930  	var out []interface{}
 13931  	err := _KittyOwnership.contract.Call(opts, &out, "cooldowns", arg0)
 13932  
 13933  	if err != nil {
 13934  		return *new(uint32), err
 13935  	}
 13936  
 13937  	out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32)
 13938  
 13939  	return out0, err
 13940  
 13941  }
 13942  
 13943  // Cooldowns is a free data retrieval call binding the contract method 0x9d6fac6f.
 13944  //
 13945  // Solidity: function cooldowns(uint256 ) view returns(uint32)
 13946  func (_KittyOwnership *KittyOwnershipSession) Cooldowns(arg0 *big.Int) (uint32, error) {
 13947  	return _KittyOwnership.Contract.Cooldowns(&_KittyOwnership.CallOpts, arg0)
 13948  }
 13949  
 13950  // Cooldowns is a free data retrieval call binding the contract method 0x9d6fac6f.
 13951  //
 13952  // Solidity: function cooldowns(uint256 ) view returns(uint32)
 13953  func (_KittyOwnership *KittyOwnershipCallerSession) Cooldowns(arg0 *big.Int) (uint32, error) {
 13954  	return _KittyOwnership.Contract.Cooldowns(&_KittyOwnership.CallOpts, arg0)
 13955  }
 13956  
 13957  // Erc721Metadata is a free data retrieval call binding the contract method 0xbc4006f5.
 13958  //
 13959  // Solidity: function erc721Metadata() view returns(address)
 13960  func (_KittyOwnership *KittyOwnershipCaller) Erc721Metadata(opts *bind.CallOpts) (common.Address, error) {
 13961  	var out []interface{}
 13962  	err := _KittyOwnership.contract.Call(opts, &out, "erc721Metadata")
 13963  
 13964  	if err != nil {
 13965  		return *new(common.Address), err
 13966  	}
 13967  
 13968  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 13969  
 13970  	return out0, err
 13971  
 13972  }
 13973  
 13974  // Erc721Metadata is a free data retrieval call binding the contract method 0xbc4006f5.
 13975  //
 13976  // Solidity: function erc721Metadata() view returns(address)
 13977  func (_KittyOwnership *KittyOwnershipSession) Erc721Metadata() (common.Address, error) {
 13978  	return _KittyOwnership.Contract.Erc721Metadata(&_KittyOwnership.CallOpts)
 13979  }
 13980  
 13981  // Erc721Metadata is a free data retrieval call binding the contract method 0xbc4006f5.
 13982  //
 13983  // Solidity: function erc721Metadata() view returns(address)
 13984  func (_KittyOwnership *KittyOwnershipCallerSession) Erc721Metadata() (common.Address, error) {
 13985  	return _KittyOwnership.Contract.Erc721Metadata(&_KittyOwnership.CallOpts)
 13986  }
 13987  
 13988  // KittyIndexToApproved is a free data retrieval call binding the contract method 0x481af3d3.
 13989  //
 13990  // Solidity: function kittyIndexToApproved(uint256 ) view returns(address)
 13991  func (_KittyOwnership *KittyOwnershipCaller) KittyIndexToApproved(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
 13992  	var out []interface{}
 13993  	err := _KittyOwnership.contract.Call(opts, &out, "kittyIndexToApproved", arg0)
 13994  
 13995  	if err != nil {
 13996  		return *new(common.Address), err
 13997  	}
 13998  
 13999  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 14000  
 14001  	return out0, err
 14002  
 14003  }
 14004  
 14005  // KittyIndexToApproved is a free data retrieval call binding the contract method 0x481af3d3.
 14006  //
 14007  // Solidity: function kittyIndexToApproved(uint256 ) view returns(address)
 14008  func (_KittyOwnership *KittyOwnershipSession) KittyIndexToApproved(arg0 *big.Int) (common.Address, error) {
 14009  	return _KittyOwnership.Contract.KittyIndexToApproved(&_KittyOwnership.CallOpts, arg0)
 14010  }
 14011  
 14012  // KittyIndexToApproved is a free data retrieval call binding the contract method 0x481af3d3.
 14013  //
 14014  // Solidity: function kittyIndexToApproved(uint256 ) view returns(address)
 14015  func (_KittyOwnership *KittyOwnershipCallerSession) KittyIndexToApproved(arg0 *big.Int) (common.Address, error) {
 14016  	return _KittyOwnership.Contract.KittyIndexToApproved(&_KittyOwnership.CallOpts, arg0)
 14017  }
 14018  
 14019  // KittyIndexToOwner is a free data retrieval call binding the contract method 0xa45f4bfc.
 14020  //
 14021  // Solidity: function kittyIndexToOwner(uint256 ) view returns(address)
 14022  func (_KittyOwnership *KittyOwnershipCaller) KittyIndexToOwner(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
 14023  	var out []interface{}
 14024  	err := _KittyOwnership.contract.Call(opts, &out, "kittyIndexToOwner", arg0)
 14025  
 14026  	if err != nil {
 14027  		return *new(common.Address), err
 14028  	}
 14029  
 14030  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 14031  
 14032  	return out0, err
 14033  
 14034  }
 14035  
 14036  // KittyIndexToOwner is a free data retrieval call binding the contract method 0xa45f4bfc.
 14037  //
 14038  // Solidity: function kittyIndexToOwner(uint256 ) view returns(address)
 14039  func (_KittyOwnership *KittyOwnershipSession) KittyIndexToOwner(arg0 *big.Int) (common.Address, error) {
 14040  	return _KittyOwnership.Contract.KittyIndexToOwner(&_KittyOwnership.CallOpts, arg0)
 14041  }
 14042  
 14043  // KittyIndexToOwner is a free data retrieval call binding the contract method 0xa45f4bfc.
 14044  //
 14045  // Solidity: function kittyIndexToOwner(uint256 ) view returns(address)
 14046  func (_KittyOwnership *KittyOwnershipCallerSession) KittyIndexToOwner(arg0 *big.Int) (common.Address, error) {
 14047  	return _KittyOwnership.Contract.KittyIndexToOwner(&_KittyOwnership.CallOpts, arg0)
 14048  }
 14049  
 14050  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 14051  //
 14052  // Solidity: function name() view returns(string)
 14053  func (_KittyOwnership *KittyOwnershipCaller) Name(opts *bind.CallOpts) (string, error) {
 14054  	var out []interface{}
 14055  	err := _KittyOwnership.contract.Call(opts, &out, "name")
 14056  
 14057  	if err != nil {
 14058  		return *new(string), err
 14059  	}
 14060  
 14061  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
 14062  
 14063  	return out0, err
 14064  
 14065  }
 14066  
 14067  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 14068  //
 14069  // Solidity: function name() view returns(string)
 14070  func (_KittyOwnership *KittyOwnershipSession) Name() (string, error) {
 14071  	return _KittyOwnership.Contract.Name(&_KittyOwnership.CallOpts)
 14072  }
 14073  
 14074  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 14075  //
 14076  // Solidity: function name() view returns(string)
 14077  func (_KittyOwnership *KittyOwnershipCallerSession) Name() (string, error) {
 14078  	return _KittyOwnership.Contract.Name(&_KittyOwnership.CallOpts)
 14079  }
 14080  
 14081  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 14082  //
 14083  // Solidity: function ownerOf(uint256 _tokenId) view returns(address owner)
 14084  func (_KittyOwnership *KittyOwnershipCaller) OwnerOf(opts *bind.CallOpts, _tokenId *big.Int) (common.Address, error) {
 14085  	var out []interface{}
 14086  	err := _KittyOwnership.contract.Call(opts, &out, "ownerOf", _tokenId)
 14087  
 14088  	if err != nil {
 14089  		return *new(common.Address), err
 14090  	}
 14091  
 14092  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 14093  
 14094  	return out0, err
 14095  
 14096  }
 14097  
 14098  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 14099  //
 14100  // Solidity: function ownerOf(uint256 _tokenId) view returns(address owner)
 14101  func (_KittyOwnership *KittyOwnershipSession) OwnerOf(_tokenId *big.Int) (common.Address, error) {
 14102  	return _KittyOwnership.Contract.OwnerOf(&_KittyOwnership.CallOpts, _tokenId)
 14103  }
 14104  
 14105  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 14106  //
 14107  // Solidity: function ownerOf(uint256 _tokenId) view returns(address owner)
 14108  func (_KittyOwnership *KittyOwnershipCallerSession) OwnerOf(_tokenId *big.Int) (common.Address, error) {
 14109  	return _KittyOwnership.Contract.OwnerOf(&_KittyOwnership.CallOpts, _tokenId)
 14110  }
 14111  
 14112  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
 14113  //
 14114  // Solidity: function paused() view returns(bool)
 14115  func (_KittyOwnership *KittyOwnershipCaller) Paused(opts *bind.CallOpts) (bool, error) {
 14116  	var out []interface{}
 14117  	err := _KittyOwnership.contract.Call(opts, &out, "paused")
 14118  
 14119  	if err != nil {
 14120  		return *new(bool), err
 14121  	}
 14122  
 14123  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 14124  
 14125  	return out0, err
 14126  
 14127  }
 14128  
 14129  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
 14130  //
 14131  // Solidity: function paused() view returns(bool)
 14132  func (_KittyOwnership *KittyOwnershipSession) Paused() (bool, error) {
 14133  	return _KittyOwnership.Contract.Paused(&_KittyOwnership.CallOpts)
 14134  }
 14135  
 14136  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
 14137  //
 14138  // Solidity: function paused() view returns(bool)
 14139  func (_KittyOwnership *KittyOwnershipCallerSession) Paused() (bool, error) {
 14140  	return _KittyOwnership.Contract.Paused(&_KittyOwnership.CallOpts)
 14141  }
 14142  
 14143  // SaleAuction is a free data retrieval call binding the contract method 0xe6cbe351.
 14144  //
 14145  // Solidity: function saleAuction() view returns(address)
 14146  func (_KittyOwnership *KittyOwnershipCaller) SaleAuction(opts *bind.CallOpts) (common.Address, error) {
 14147  	var out []interface{}
 14148  	err := _KittyOwnership.contract.Call(opts, &out, "saleAuction")
 14149  
 14150  	if err != nil {
 14151  		return *new(common.Address), err
 14152  	}
 14153  
 14154  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 14155  
 14156  	return out0, err
 14157  
 14158  }
 14159  
 14160  // SaleAuction is a free data retrieval call binding the contract method 0xe6cbe351.
 14161  //
 14162  // Solidity: function saleAuction() view returns(address)
 14163  func (_KittyOwnership *KittyOwnershipSession) SaleAuction() (common.Address, error) {
 14164  	return _KittyOwnership.Contract.SaleAuction(&_KittyOwnership.CallOpts)
 14165  }
 14166  
 14167  // SaleAuction is a free data retrieval call binding the contract method 0xe6cbe351.
 14168  //
 14169  // Solidity: function saleAuction() view returns(address)
 14170  func (_KittyOwnership *KittyOwnershipCallerSession) SaleAuction() (common.Address, error) {
 14171  	return _KittyOwnership.Contract.SaleAuction(&_KittyOwnership.CallOpts)
 14172  }
 14173  
 14174  // SecondsPerBlock is a free data retrieval call binding the contract method 0x7a7d4937.
 14175  //
 14176  // Solidity: function secondsPerBlock() view returns(uint256)
 14177  func (_KittyOwnership *KittyOwnershipCaller) SecondsPerBlock(opts *bind.CallOpts) (*big.Int, error) {
 14178  	var out []interface{}
 14179  	err := _KittyOwnership.contract.Call(opts, &out, "secondsPerBlock")
 14180  
 14181  	if err != nil {
 14182  		return *new(*big.Int), err
 14183  	}
 14184  
 14185  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 14186  
 14187  	return out0, err
 14188  
 14189  }
 14190  
 14191  // SecondsPerBlock is a free data retrieval call binding the contract method 0x7a7d4937.
 14192  //
 14193  // Solidity: function secondsPerBlock() view returns(uint256)
 14194  func (_KittyOwnership *KittyOwnershipSession) SecondsPerBlock() (*big.Int, error) {
 14195  	return _KittyOwnership.Contract.SecondsPerBlock(&_KittyOwnership.CallOpts)
 14196  }
 14197  
 14198  // SecondsPerBlock is a free data retrieval call binding the contract method 0x7a7d4937.
 14199  //
 14200  // Solidity: function secondsPerBlock() view returns(uint256)
 14201  func (_KittyOwnership *KittyOwnershipCallerSession) SecondsPerBlock() (*big.Int, error) {
 14202  	return _KittyOwnership.Contract.SecondsPerBlock(&_KittyOwnership.CallOpts)
 14203  }
 14204  
 14205  // SireAllowedToAddress is a free data retrieval call binding the contract method 0x46116e6f.
 14206  //
 14207  // Solidity: function sireAllowedToAddress(uint256 ) view returns(address)
 14208  func (_KittyOwnership *KittyOwnershipCaller) SireAllowedToAddress(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
 14209  	var out []interface{}
 14210  	err := _KittyOwnership.contract.Call(opts, &out, "sireAllowedToAddress", arg0)
 14211  
 14212  	if err != nil {
 14213  		return *new(common.Address), err
 14214  	}
 14215  
 14216  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 14217  
 14218  	return out0, err
 14219  
 14220  }
 14221  
 14222  // SireAllowedToAddress is a free data retrieval call binding the contract method 0x46116e6f.
 14223  //
 14224  // Solidity: function sireAllowedToAddress(uint256 ) view returns(address)
 14225  func (_KittyOwnership *KittyOwnershipSession) SireAllowedToAddress(arg0 *big.Int) (common.Address, error) {
 14226  	return _KittyOwnership.Contract.SireAllowedToAddress(&_KittyOwnership.CallOpts, arg0)
 14227  }
 14228  
 14229  // SireAllowedToAddress is a free data retrieval call binding the contract method 0x46116e6f.
 14230  //
 14231  // Solidity: function sireAllowedToAddress(uint256 ) view returns(address)
 14232  func (_KittyOwnership *KittyOwnershipCallerSession) SireAllowedToAddress(arg0 *big.Int) (common.Address, error) {
 14233  	return _KittyOwnership.Contract.SireAllowedToAddress(&_KittyOwnership.CallOpts, arg0)
 14234  }
 14235  
 14236  // SiringAuction is a free data retrieval call binding the contract method 0x21717ebf.
 14237  //
 14238  // Solidity: function siringAuction() view returns(address)
 14239  func (_KittyOwnership *KittyOwnershipCaller) SiringAuction(opts *bind.CallOpts) (common.Address, error) {
 14240  	var out []interface{}
 14241  	err := _KittyOwnership.contract.Call(opts, &out, "siringAuction")
 14242  
 14243  	if err != nil {
 14244  		return *new(common.Address), err
 14245  	}
 14246  
 14247  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 14248  
 14249  	return out0, err
 14250  
 14251  }
 14252  
 14253  // SiringAuction is a free data retrieval call binding the contract method 0x21717ebf.
 14254  //
 14255  // Solidity: function siringAuction() view returns(address)
 14256  func (_KittyOwnership *KittyOwnershipSession) SiringAuction() (common.Address, error) {
 14257  	return _KittyOwnership.Contract.SiringAuction(&_KittyOwnership.CallOpts)
 14258  }
 14259  
 14260  // SiringAuction is a free data retrieval call binding the contract method 0x21717ebf.
 14261  //
 14262  // Solidity: function siringAuction() view returns(address)
 14263  func (_KittyOwnership *KittyOwnershipCallerSession) SiringAuction() (common.Address, error) {
 14264  	return _KittyOwnership.Contract.SiringAuction(&_KittyOwnership.CallOpts)
 14265  }
 14266  
 14267  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 14268  //
 14269  // Solidity: function supportsInterface(bytes4 _interfaceID) view returns(bool)
 14270  func (_KittyOwnership *KittyOwnershipCaller) SupportsInterface(opts *bind.CallOpts, _interfaceID [4]byte) (bool, error) {
 14271  	var out []interface{}
 14272  	err := _KittyOwnership.contract.Call(opts, &out, "supportsInterface", _interfaceID)
 14273  
 14274  	if err != nil {
 14275  		return *new(bool), err
 14276  	}
 14277  
 14278  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 14279  
 14280  	return out0, err
 14281  
 14282  }
 14283  
 14284  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 14285  //
 14286  // Solidity: function supportsInterface(bytes4 _interfaceID) view returns(bool)
 14287  func (_KittyOwnership *KittyOwnershipSession) SupportsInterface(_interfaceID [4]byte) (bool, error) {
 14288  	return _KittyOwnership.Contract.SupportsInterface(&_KittyOwnership.CallOpts, _interfaceID)
 14289  }
 14290  
 14291  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 14292  //
 14293  // Solidity: function supportsInterface(bytes4 _interfaceID) view returns(bool)
 14294  func (_KittyOwnership *KittyOwnershipCallerSession) SupportsInterface(_interfaceID [4]byte) (bool, error) {
 14295  	return _KittyOwnership.Contract.SupportsInterface(&_KittyOwnership.CallOpts, _interfaceID)
 14296  }
 14297  
 14298  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 14299  //
 14300  // Solidity: function symbol() view returns(string)
 14301  func (_KittyOwnership *KittyOwnershipCaller) Symbol(opts *bind.CallOpts) (string, error) {
 14302  	var out []interface{}
 14303  	err := _KittyOwnership.contract.Call(opts, &out, "symbol")
 14304  
 14305  	if err != nil {
 14306  		return *new(string), err
 14307  	}
 14308  
 14309  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
 14310  
 14311  	return out0, err
 14312  
 14313  }
 14314  
 14315  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 14316  //
 14317  // Solidity: function symbol() view returns(string)
 14318  func (_KittyOwnership *KittyOwnershipSession) Symbol() (string, error) {
 14319  	return _KittyOwnership.Contract.Symbol(&_KittyOwnership.CallOpts)
 14320  }
 14321  
 14322  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 14323  //
 14324  // Solidity: function symbol() view returns(string)
 14325  func (_KittyOwnership *KittyOwnershipCallerSession) Symbol() (string, error) {
 14326  	return _KittyOwnership.Contract.Symbol(&_KittyOwnership.CallOpts)
 14327  }
 14328  
 14329  // TokenMetadata is a free data retrieval call binding the contract method 0x0560ff44.
 14330  //
 14331  // Solidity: function tokenMetadata(uint256 _tokenId, string _preferredTransport) view returns(string infoUrl)
 14332  func (_KittyOwnership *KittyOwnershipCaller) TokenMetadata(opts *bind.CallOpts, _tokenId *big.Int, _preferredTransport string) (string, error) {
 14333  	var out []interface{}
 14334  	err := _KittyOwnership.contract.Call(opts, &out, "tokenMetadata", _tokenId, _preferredTransport)
 14335  
 14336  	if err != nil {
 14337  		return *new(string), err
 14338  	}
 14339  
 14340  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
 14341  
 14342  	return out0, err
 14343  
 14344  }
 14345  
 14346  // TokenMetadata is a free data retrieval call binding the contract method 0x0560ff44.
 14347  //
 14348  // Solidity: function tokenMetadata(uint256 _tokenId, string _preferredTransport) view returns(string infoUrl)
 14349  func (_KittyOwnership *KittyOwnershipSession) TokenMetadata(_tokenId *big.Int, _preferredTransport string) (string, error) {
 14350  	return _KittyOwnership.Contract.TokenMetadata(&_KittyOwnership.CallOpts, _tokenId, _preferredTransport)
 14351  }
 14352  
 14353  // TokenMetadata is a free data retrieval call binding the contract method 0x0560ff44.
 14354  //
 14355  // Solidity: function tokenMetadata(uint256 _tokenId, string _preferredTransport) view returns(string infoUrl)
 14356  func (_KittyOwnership *KittyOwnershipCallerSession) TokenMetadata(_tokenId *big.Int, _preferredTransport string) (string, error) {
 14357  	return _KittyOwnership.Contract.TokenMetadata(&_KittyOwnership.CallOpts, _tokenId, _preferredTransport)
 14358  }
 14359  
 14360  // TokensOfOwner is a free data retrieval call binding the contract method 0x8462151c.
 14361  //
 14362  // Solidity: function tokensOfOwner(address _owner) view returns(uint256[] ownerTokens)
 14363  func (_KittyOwnership *KittyOwnershipCaller) TokensOfOwner(opts *bind.CallOpts, _owner common.Address) ([]*big.Int, error) {
 14364  	var out []interface{}
 14365  	err := _KittyOwnership.contract.Call(opts, &out, "tokensOfOwner", _owner)
 14366  
 14367  	if err != nil {
 14368  		return *new([]*big.Int), err
 14369  	}
 14370  
 14371  	out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int)
 14372  
 14373  	return out0, err
 14374  
 14375  }
 14376  
 14377  // TokensOfOwner is a free data retrieval call binding the contract method 0x8462151c.
 14378  //
 14379  // Solidity: function tokensOfOwner(address _owner) view returns(uint256[] ownerTokens)
 14380  func (_KittyOwnership *KittyOwnershipSession) TokensOfOwner(_owner common.Address) ([]*big.Int, error) {
 14381  	return _KittyOwnership.Contract.TokensOfOwner(&_KittyOwnership.CallOpts, _owner)
 14382  }
 14383  
 14384  // TokensOfOwner is a free data retrieval call binding the contract method 0x8462151c.
 14385  //
 14386  // Solidity: function tokensOfOwner(address _owner) view returns(uint256[] ownerTokens)
 14387  func (_KittyOwnership *KittyOwnershipCallerSession) TokensOfOwner(_owner common.Address) ([]*big.Int, error) {
 14388  	return _KittyOwnership.Contract.TokensOfOwner(&_KittyOwnership.CallOpts, _owner)
 14389  }
 14390  
 14391  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 14392  //
 14393  // Solidity: function totalSupply() view returns(uint256)
 14394  func (_KittyOwnership *KittyOwnershipCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
 14395  	var out []interface{}
 14396  	err := _KittyOwnership.contract.Call(opts, &out, "totalSupply")
 14397  
 14398  	if err != nil {
 14399  		return *new(*big.Int), err
 14400  	}
 14401  
 14402  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 14403  
 14404  	return out0, err
 14405  
 14406  }
 14407  
 14408  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 14409  //
 14410  // Solidity: function totalSupply() view returns(uint256)
 14411  func (_KittyOwnership *KittyOwnershipSession) TotalSupply() (*big.Int, error) {
 14412  	return _KittyOwnership.Contract.TotalSupply(&_KittyOwnership.CallOpts)
 14413  }
 14414  
 14415  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 14416  //
 14417  // Solidity: function totalSupply() view returns(uint256)
 14418  func (_KittyOwnership *KittyOwnershipCallerSession) TotalSupply() (*big.Int, error) {
 14419  	return _KittyOwnership.Contract.TotalSupply(&_KittyOwnership.CallOpts)
 14420  }
 14421  
 14422  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 14423  //
 14424  // Solidity: function approve(address _to, uint256 _tokenId) returns()
 14425  func (_KittyOwnership *KittyOwnershipTransactor) Approve(opts *bind.TransactOpts, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
 14426  	return _KittyOwnership.contract.Transact(opts, "approve", _to, _tokenId)
 14427  }
 14428  
 14429  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 14430  //
 14431  // Solidity: function approve(address _to, uint256 _tokenId) returns()
 14432  func (_KittyOwnership *KittyOwnershipSession) Approve(_to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
 14433  	return _KittyOwnership.Contract.Approve(&_KittyOwnership.TransactOpts, _to, _tokenId)
 14434  }
 14435  
 14436  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 14437  //
 14438  // Solidity: function approve(address _to, uint256 _tokenId) returns()
 14439  func (_KittyOwnership *KittyOwnershipTransactorSession) Approve(_to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
 14440  	return _KittyOwnership.Contract.Approve(&_KittyOwnership.TransactOpts, _to, _tokenId)
 14441  }
 14442  
 14443  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
 14444  //
 14445  // Solidity: function pause() returns()
 14446  func (_KittyOwnership *KittyOwnershipTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) {
 14447  	return _KittyOwnership.contract.Transact(opts, "pause")
 14448  }
 14449  
 14450  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
 14451  //
 14452  // Solidity: function pause() returns()
 14453  func (_KittyOwnership *KittyOwnershipSession) Pause() (*types.Transaction, error) {
 14454  	return _KittyOwnership.Contract.Pause(&_KittyOwnership.TransactOpts)
 14455  }
 14456  
 14457  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
 14458  //
 14459  // Solidity: function pause() returns()
 14460  func (_KittyOwnership *KittyOwnershipTransactorSession) Pause() (*types.Transaction, error) {
 14461  	return _KittyOwnership.Contract.Pause(&_KittyOwnership.TransactOpts)
 14462  }
 14463  
 14464  // SetCEO is a paid mutator transaction binding the contract method 0x27d7874c.
 14465  //
 14466  // Solidity: function setCEO(address _newCEO) returns()
 14467  func (_KittyOwnership *KittyOwnershipTransactor) SetCEO(opts *bind.TransactOpts, _newCEO common.Address) (*types.Transaction, error) {
 14468  	return _KittyOwnership.contract.Transact(opts, "setCEO", _newCEO)
 14469  }
 14470  
 14471  // SetCEO is a paid mutator transaction binding the contract method 0x27d7874c.
 14472  //
 14473  // Solidity: function setCEO(address _newCEO) returns()
 14474  func (_KittyOwnership *KittyOwnershipSession) SetCEO(_newCEO common.Address) (*types.Transaction, error) {
 14475  	return _KittyOwnership.Contract.SetCEO(&_KittyOwnership.TransactOpts, _newCEO)
 14476  }
 14477  
 14478  // SetCEO is a paid mutator transaction binding the contract method 0x27d7874c.
 14479  //
 14480  // Solidity: function setCEO(address _newCEO) returns()
 14481  func (_KittyOwnership *KittyOwnershipTransactorSession) SetCEO(_newCEO common.Address) (*types.Transaction, error) {
 14482  	return _KittyOwnership.Contract.SetCEO(&_KittyOwnership.TransactOpts, _newCEO)
 14483  }
 14484  
 14485  // SetCFO is a paid mutator transaction binding the contract method 0x4e0a3379.
 14486  //
 14487  // Solidity: function setCFO(address _newCFO) returns()
 14488  func (_KittyOwnership *KittyOwnershipTransactor) SetCFO(opts *bind.TransactOpts, _newCFO common.Address) (*types.Transaction, error) {
 14489  	return _KittyOwnership.contract.Transact(opts, "setCFO", _newCFO)
 14490  }
 14491  
 14492  // SetCFO is a paid mutator transaction binding the contract method 0x4e0a3379.
 14493  //
 14494  // Solidity: function setCFO(address _newCFO) returns()
 14495  func (_KittyOwnership *KittyOwnershipSession) SetCFO(_newCFO common.Address) (*types.Transaction, error) {
 14496  	return _KittyOwnership.Contract.SetCFO(&_KittyOwnership.TransactOpts, _newCFO)
 14497  }
 14498  
 14499  // SetCFO is a paid mutator transaction binding the contract method 0x4e0a3379.
 14500  //
 14501  // Solidity: function setCFO(address _newCFO) returns()
 14502  func (_KittyOwnership *KittyOwnershipTransactorSession) SetCFO(_newCFO common.Address) (*types.Transaction, error) {
 14503  	return _KittyOwnership.Contract.SetCFO(&_KittyOwnership.TransactOpts, _newCFO)
 14504  }
 14505  
 14506  // SetCOO is a paid mutator transaction binding the contract method 0x2ba73c15.
 14507  //
 14508  // Solidity: function setCOO(address _newCOO) returns()
 14509  func (_KittyOwnership *KittyOwnershipTransactor) SetCOO(opts *bind.TransactOpts, _newCOO common.Address) (*types.Transaction, error) {
 14510  	return _KittyOwnership.contract.Transact(opts, "setCOO", _newCOO)
 14511  }
 14512  
 14513  // SetCOO is a paid mutator transaction binding the contract method 0x2ba73c15.
 14514  //
 14515  // Solidity: function setCOO(address _newCOO) returns()
 14516  func (_KittyOwnership *KittyOwnershipSession) SetCOO(_newCOO common.Address) (*types.Transaction, error) {
 14517  	return _KittyOwnership.Contract.SetCOO(&_KittyOwnership.TransactOpts, _newCOO)
 14518  }
 14519  
 14520  // SetCOO is a paid mutator transaction binding the contract method 0x2ba73c15.
 14521  //
 14522  // Solidity: function setCOO(address _newCOO) returns()
 14523  func (_KittyOwnership *KittyOwnershipTransactorSession) SetCOO(_newCOO common.Address) (*types.Transaction, error) {
 14524  	return _KittyOwnership.Contract.SetCOO(&_KittyOwnership.TransactOpts, _newCOO)
 14525  }
 14526  
 14527  // SetMetadataAddress is a paid mutator transaction binding the contract method 0xe17b25af.
 14528  //
 14529  // Solidity: function setMetadataAddress(address _contractAddress) returns()
 14530  func (_KittyOwnership *KittyOwnershipTransactor) SetMetadataAddress(opts *bind.TransactOpts, _contractAddress common.Address) (*types.Transaction, error) {
 14531  	return _KittyOwnership.contract.Transact(opts, "setMetadataAddress", _contractAddress)
 14532  }
 14533  
 14534  // SetMetadataAddress is a paid mutator transaction binding the contract method 0xe17b25af.
 14535  //
 14536  // Solidity: function setMetadataAddress(address _contractAddress) returns()
 14537  func (_KittyOwnership *KittyOwnershipSession) SetMetadataAddress(_contractAddress common.Address) (*types.Transaction, error) {
 14538  	return _KittyOwnership.Contract.SetMetadataAddress(&_KittyOwnership.TransactOpts, _contractAddress)
 14539  }
 14540  
 14541  // SetMetadataAddress is a paid mutator transaction binding the contract method 0xe17b25af.
 14542  //
 14543  // Solidity: function setMetadataAddress(address _contractAddress) returns()
 14544  func (_KittyOwnership *KittyOwnershipTransactorSession) SetMetadataAddress(_contractAddress common.Address) (*types.Transaction, error) {
 14545  	return _KittyOwnership.Contract.SetMetadataAddress(&_KittyOwnership.TransactOpts, _contractAddress)
 14546  }
 14547  
 14548  // SetSecondsPerBlock is a paid mutator transaction binding the contract method 0x5663896e.
 14549  //
 14550  // Solidity: function setSecondsPerBlock(uint256 secs) returns()
 14551  func (_KittyOwnership *KittyOwnershipTransactor) SetSecondsPerBlock(opts *bind.TransactOpts, secs *big.Int) (*types.Transaction, error) {
 14552  	return _KittyOwnership.contract.Transact(opts, "setSecondsPerBlock", secs)
 14553  }
 14554  
 14555  // SetSecondsPerBlock is a paid mutator transaction binding the contract method 0x5663896e.
 14556  //
 14557  // Solidity: function setSecondsPerBlock(uint256 secs) returns()
 14558  func (_KittyOwnership *KittyOwnershipSession) SetSecondsPerBlock(secs *big.Int) (*types.Transaction, error) {
 14559  	return _KittyOwnership.Contract.SetSecondsPerBlock(&_KittyOwnership.TransactOpts, secs)
 14560  }
 14561  
 14562  // SetSecondsPerBlock is a paid mutator transaction binding the contract method 0x5663896e.
 14563  //
 14564  // Solidity: function setSecondsPerBlock(uint256 secs) returns()
 14565  func (_KittyOwnership *KittyOwnershipTransactorSession) SetSecondsPerBlock(secs *big.Int) (*types.Transaction, error) {
 14566  	return _KittyOwnership.Contract.SetSecondsPerBlock(&_KittyOwnership.TransactOpts, secs)
 14567  }
 14568  
 14569  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 14570  //
 14571  // Solidity: function transfer(address _to, uint256 _tokenId) returns()
 14572  func (_KittyOwnership *KittyOwnershipTransactor) Transfer(opts *bind.TransactOpts, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
 14573  	return _KittyOwnership.contract.Transact(opts, "transfer", _to, _tokenId)
 14574  }
 14575  
 14576  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 14577  //
 14578  // Solidity: function transfer(address _to, uint256 _tokenId) returns()
 14579  func (_KittyOwnership *KittyOwnershipSession) Transfer(_to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
 14580  	return _KittyOwnership.Contract.Transfer(&_KittyOwnership.TransactOpts, _to, _tokenId)
 14581  }
 14582  
 14583  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 14584  //
 14585  // Solidity: function transfer(address _to, uint256 _tokenId) returns()
 14586  func (_KittyOwnership *KittyOwnershipTransactorSession) Transfer(_to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
 14587  	return _KittyOwnership.Contract.Transfer(&_KittyOwnership.TransactOpts, _to, _tokenId)
 14588  }
 14589  
 14590  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 14591  //
 14592  // Solidity: function transferFrom(address _from, address _to, uint256 _tokenId) returns()
 14593  func (_KittyOwnership *KittyOwnershipTransactor) TransferFrom(opts *bind.TransactOpts, _from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
 14594  	return _KittyOwnership.contract.Transact(opts, "transferFrom", _from, _to, _tokenId)
 14595  }
 14596  
 14597  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 14598  //
 14599  // Solidity: function transferFrom(address _from, address _to, uint256 _tokenId) returns()
 14600  func (_KittyOwnership *KittyOwnershipSession) TransferFrom(_from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
 14601  	return _KittyOwnership.Contract.TransferFrom(&_KittyOwnership.TransactOpts, _from, _to, _tokenId)
 14602  }
 14603  
 14604  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 14605  //
 14606  // Solidity: function transferFrom(address _from, address _to, uint256 _tokenId) returns()
 14607  func (_KittyOwnership *KittyOwnershipTransactorSession) TransferFrom(_from common.Address, _to common.Address, _tokenId *big.Int) (*types.Transaction, error) {
 14608  	return _KittyOwnership.Contract.TransferFrom(&_KittyOwnership.TransactOpts, _from, _to, _tokenId)
 14609  }
 14610  
 14611  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
 14612  //
 14613  // Solidity: function unpause() returns()
 14614  func (_KittyOwnership *KittyOwnershipTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) {
 14615  	return _KittyOwnership.contract.Transact(opts, "unpause")
 14616  }
 14617  
 14618  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
 14619  //
 14620  // Solidity: function unpause() returns()
 14621  func (_KittyOwnership *KittyOwnershipSession) Unpause() (*types.Transaction, error) {
 14622  	return _KittyOwnership.Contract.Unpause(&_KittyOwnership.TransactOpts)
 14623  }
 14624  
 14625  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
 14626  //
 14627  // Solidity: function unpause() returns()
 14628  func (_KittyOwnership *KittyOwnershipTransactorSession) Unpause() (*types.Transaction, error) {
 14629  	return _KittyOwnership.Contract.Unpause(&_KittyOwnership.TransactOpts)
 14630  }
 14631  
 14632  // KittyOwnershipApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the KittyOwnership contract.
 14633  type KittyOwnershipApprovalIterator struct {
 14634  	Event *KittyOwnershipApproval // Event containing the contract specifics and raw log
 14635  
 14636  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 14637  	event    string              // Event name to use for unpacking event data
 14638  
 14639  	logs chan types.Log        // Log channel receiving the found contract events
 14640  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 14641  	done bool                  // Whether the subscription completed delivering logs
 14642  	fail error                 // Occurred error to stop iteration
 14643  }
 14644  
 14645  // Next advances the iterator to the subsequent event, returning whether there
 14646  // are any more events found. In case of a retrieval or parsing error, false is
 14647  // returned and Error() can be queried for the exact failure.
 14648  func (it *KittyOwnershipApprovalIterator) Next() bool {
 14649  	// If the iterator failed, stop iterating
 14650  	if it.fail != nil {
 14651  		return false
 14652  	}
 14653  	// If the iterator completed, deliver directly whatever's available
 14654  	if it.done {
 14655  		select {
 14656  		case log := <-it.logs:
 14657  			it.Event = new(KittyOwnershipApproval)
 14658  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14659  				it.fail = err
 14660  				return false
 14661  			}
 14662  			it.Event.Raw = log
 14663  			return true
 14664  
 14665  		default:
 14666  			return false
 14667  		}
 14668  	}
 14669  	// Iterator still in progress, wait for either a data or an error event
 14670  	select {
 14671  	case log := <-it.logs:
 14672  		it.Event = new(KittyOwnershipApproval)
 14673  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14674  			it.fail = err
 14675  			return false
 14676  		}
 14677  		it.Event.Raw = log
 14678  		return true
 14679  
 14680  	case err := <-it.sub.Err():
 14681  		it.done = true
 14682  		it.fail = err
 14683  		return it.Next()
 14684  	}
 14685  }
 14686  
 14687  // Error returns any retrieval or parsing error occurred during filtering.
 14688  func (it *KittyOwnershipApprovalIterator) Error() error {
 14689  	return it.fail
 14690  }
 14691  
 14692  // Close terminates the iteration process, releasing any pending underlying
 14693  // resources.
 14694  func (it *KittyOwnershipApprovalIterator) Close() error {
 14695  	it.sub.Unsubscribe()
 14696  	return nil
 14697  }
 14698  
 14699  // KittyOwnershipApproval represents a Approval event raised by the KittyOwnership contract.
 14700  type KittyOwnershipApproval struct {
 14701  	Owner    common.Address
 14702  	Approved common.Address
 14703  	TokenId  *big.Int
 14704  	Raw      types.Log // Blockchain specific contextual infos
 14705  }
 14706  
 14707  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 14708  //
 14709  // Solidity: event Approval(address owner, address approved, uint256 tokenId)
 14710  func (_KittyOwnership *KittyOwnershipFilterer) FilterApproval(opts *bind.FilterOpts) (*KittyOwnershipApprovalIterator, error) {
 14711  
 14712  	logs, sub, err := _KittyOwnership.contract.FilterLogs(opts, "Approval")
 14713  	if err != nil {
 14714  		return nil, err
 14715  	}
 14716  	return &KittyOwnershipApprovalIterator{contract: _KittyOwnership.contract, event: "Approval", logs: logs, sub: sub}, nil
 14717  }
 14718  
 14719  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 14720  //
 14721  // Solidity: event Approval(address owner, address approved, uint256 tokenId)
 14722  func (_KittyOwnership *KittyOwnershipFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *KittyOwnershipApproval) (event.Subscription, error) {
 14723  
 14724  	logs, sub, err := _KittyOwnership.contract.WatchLogs(opts, "Approval")
 14725  	if err != nil {
 14726  		return nil, err
 14727  	}
 14728  	return event.NewSubscription(func(quit <-chan struct{}) error {
 14729  		defer sub.Unsubscribe()
 14730  		for {
 14731  			select {
 14732  			case log := <-logs:
 14733  				// New log arrived, parse the event and forward to the user
 14734  				event := new(KittyOwnershipApproval)
 14735  				if err := _KittyOwnership.contract.UnpackLog(event, "Approval", log); err != nil {
 14736  					return err
 14737  				}
 14738  				event.Raw = log
 14739  
 14740  				select {
 14741  				case sink <- event:
 14742  				case err := <-sub.Err():
 14743  					return err
 14744  				case <-quit:
 14745  					return nil
 14746  				}
 14747  			case err := <-sub.Err():
 14748  				return err
 14749  			case <-quit:
 14750  				return nil
 14751  			}
 14752  		}
 14753  	}), nil
 14754  }
 14755  
 14756  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 14757  //
 14758  // Solidity: event Approval(address owner, address approved, uint256 tokenId)
 14759  func (_KittyOwnership *KittyOwnershipFilterer) ParseApproval(log types.Log) (*KittyOwnershipApproval, error) {
 14760  	event := new(KittyOwnershipApproval)
 14761  	if err := _KittyOwnership.contract.UnpackLog(event, "Approval", log); err != nil {
 14762  		return nil, err
 14763  	}
 14764  	event.Raw = log
 14765  	return event, nil
 14766  }
 14767  
 14768  // KittyOwnershipBirthIterator is returned from FilterBirth and is used to iterate over the raw logs and unpacked data for Birth events raised by the KittyOwnership contract.
 14769  type KittyOwnershipBirthIterator struct {
 14770  	Event *KittyOwnershipBirth // Event containing the contract specifics and raw log
 14771  
 14772  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 14773  	event    string              // Event name to use for unpacking event data
 14774  
 14775  	logs chan types.Log        // Log channel receiving the found contract events
 14776  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 14777  	done bool                  // Whether the subscription completed delivering logs
 14778  	fail error                 // Occurred error to stop iteration
 14779  }
 14780  
 14781  // Next advances the iterator to the subsequent event, returning whether there
 14782  // are any more events found. In case of a retrieval or parsing error, false is
 14783  // returned and Error() can be queried for the exact failure.
 14784  func (it *KittyOwnershipBirthIterator) Next() bool {
 14785  	// If the iterator failed, stop iterating
 14786  	if it.fail != nil {
 14787  		return false
 14788  	}
 14789  	// If the iterator completed, deliver directly whatever's available
 14790  	if it.done {
 14791  		select {
 14792  		case log := <-it.logs:
 14793  			it.Event = new(KittyOwnershipBirth)
 14794  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14795  				it.fail = err
 14796  				return false
 14797  			}
 14798  			it.Event.Raw = log
 14799  			return true
 14800  
 14801  		default:
 14802  			return false
 14803  		}
 14804  	}
 14805  	// Iterator still in progress, wait for either a data or an error event
 14806  	select {
 14807  	case log := <-it.logs:
 14808  		it.Event = new(KittyOwnershipBirth)
 14809  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14810  			it.fail = err
 14811  			return false
 14812  		}
 14813  		it.Event.Raw = log
 14814  		return true
 14815  
 14816  	case err := <-it.sub.Err():
 14817  		it.done = true
 14818  		it.fail = err
 14819  		return it.Next()
 14820  	}
 14821  }
 14822  
 14823  // Error returns any retrieval or parsing error occurred during filtering.
 14824  func (it *KittyOwnershipBirthIterator) Error() error {
 14825  	return it.fail
 14826  }
 14827  
 14828  // Close terminates the iteration process, releasing any pending underlying
 14829  // resources.
 14830  func (it *KittyOwnershipBirthIterator) Close() error {
 14831  	it.sub.Unsubscribe()
 14832  	return nil
 14833  }
 14834  
 14835  // KittyOwnershipBirth represents a Birth event raised by the KittyOwnership contract.
 14836  type KittyOwnershipBirth struct {
 14837  	Owner    common.Address
 14838  	KittyId  *big.Int
 14839  	MatronId *big.Int
 14840  	SireId   *big.Int
 14841  	Genes    *big.Int
 14842  	Raw      types.Log // Blockchain specific contextual infos
 14843  }
 14844  
 14845  // FilterBirth is a free log retrieval operation binding the contract event 0x0a5311bd2a6608f08a180df2ee7c5946819a649b204b554bb8e39825b2c50ad5.
 14846  //
 14847  // Solidity: event Birth(address owner, uint256 kittyId, uint256 matronId, uint256 sireId, uint256 genes)
 14848  func (_KittyOwnership *KittyOwnershipFilterer) FilterBirth(opts *bind.FilterOpts) (*KittyOwnershipBirthIterator, error) {
 14849  
 14850  	logs, sub, err := _KittyOwnership.contract.FilterLogs(opts, "Birth")
 14851  	if err != nil {
 14852  		return nil, err
 14853  	}
 14854  	return &KittyOwnershipBirthIterator{contract: _KittyOwnership.contract, event: "Birth", logs: logs, sub: sub}, nil
 14855  }
 14856  
 14857  // WatchBirth is a free log subscription operation binding the contract event 0x0a5311bd2a6608f08a180df2ee7c5946819a649b204b554bb8e39825b2c50ad5.
 14858  //
 14859  // Solidity: event Birth(address owner, uint256 kittyId, uint256 matronId, uint256 sireId, uint256 genes)
 14860  func (_KittyOwnership *KittyOwnershipFilterer) WatchBirth(opts *bind.WatchOpts, sink chan<- *KittyOwnershipBirth) (event.Subscription, error) {
 14861  
 14862  	logs, sub, err := _KittyOwnership.contract.WatchLogs(opts, "Birth")
 14863  	if err != nil {
 14864  		return nil, err
 14865  	}
 14866  	return event.NewSubscription(func(quit <-chan struct{}) error {
 14867  		defer sub.Unsubscribe()
 14868  		for {
 14869  			select {
 14870  			case log := <-logs:
 14871  				// New log arrived, parse the event and forward to the user
 14872  				event := new(KittyOwnershipBirth)
 14873  				if err := _KittyOwnership.contract.UnpackLog(event, "Birth", log); err != nil {
 14874  					return err
 14875  				}
 14876  				event.Raw = log
 14877  
 14878  				select {
 14879  				case sink <- event:
 14880  				case err := <-sub.Err():
 14881  					return err
 14882  				case <-quit:
 14883  					return nil
 14884  				}
 14885  			case err := <-sub.Err():
 14886  				return err
 14887  			case <-quit:
 14888  				return nil
 14889  			}
 14890  		}
 14891  	}), nil
 14892  }
 14893  
 14894  // ParseBirth is a log parse operation binding the contract event 0x0a5311bd2a6608f08a180df2ee7c5946819a649b204b554bb8e39825b2c50ad5.
 14895  //
 14896  // Solidity: event Birth(address owner, uint256 kittyId, uint256 matronId, uint256 sireId, uint256 genes)
 14897  func (_KittyOwnership *KittyOwnershipFilterer) ParseBirth(log types.Log) (*KittyOwnershipBirth, error) {
 14898  	event := new(KittyOwnershipBirth)
 14899  	if err := _KittyOwnership.contract.UnpackLog(event, "Birth", log); err != nil {
 14900  		return nil, err
 14901  	}
 14902  	event.Raw = log
 14903  	return event, nil
 14904  }
 14905  
 14906  // KittyOwnershipContractUpgradeIterator is returned from FilterContractUpgrade and is used to iterate over the raw logs and unpacked data for ContractUpgrade events raised by the KittyOwnership contract.
 14907  type KittyOwnershipContractUpgradeIterator struct {
 14908  	Event *KittyOwnershipContractUpgrade // Event containing the contract specifics and raw log
 14909  
 14910  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 14911  	event    string              // Event name to use for unpacking event data
 14912  
 14913  	logs chan types.Log        // Log channel receiving the found contract events
 14914  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 14915  	done bool                  // Whether the subscription completed delivering logs
 14916  	fail error                 // Occurred error to stop iteration
 14917  }
 14918  
 14919  // Next advances the iterator to the subsequent event, returning whether there
 14920  // are any more events found. In case of a retrieval or parsing error, false is
 14921  // returned and Error() can be queried for the exact failure.
 14922  func (it *KittyOwnershipContractUpgradeIterator) Next() bool {
 14923  	// If the iterator failed, stop iterating
 14924  	if it.fail != nil {
 14925  		return false
 14926  	}
 14927  	// If the iterator completed, deliver directly whatever's available
 14928  	if it.done {
 14929  		select {
 14930  		case log := <-it.logs:
 14931  			it.Event = new(KittyOwnershipContractUpgrade)
 14932  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14933  				it.fail = err
 14934  				return false
 14935  			}
 14936  			it.Event.Raw = log
 14937  			return true
 14938  
 14939  		default:
 14940  			return false
 14941  		}
 14942  	}
 14943  	// Iterator still in progress, wait for either a data or an error event
 14944  	select {
 14945  	case log := <-it.logs:
 14946  		it.Event = new(KittyOwnershipContractUpgrade)
 14947  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14948  			it.fail = err
 14949  			return false
 14950  		}
 14951  		it.Event.Raw = log
 14952  		return true
 14953  
 14954  	case err := <-it.sub.Err():
 14955  		it.done = true
 14956  		it.fail = err
 14957  		return it.Next()
 14958  	}
 14959  }
 14960  
 14961  // Error returns any retrieval or parsing error occurred during filtering.
 14962  func (it *KittyOwnershipContractUpgradeIterator) Error() error {
 14963  	return it.fail
 14964  }
 14965  
 14966  // Close terminates the iteration process, releasing any pending underlying
 14967  // resources.
 14968  func (it *KittyOwnershipContractUpgradeIterator) Close() error {
 14969  	it.sub.Unsubscribe()
 14970  	return nil
 14971  }
 14972  
 14973  // KittyOwnershipContractUpgrade represents a ContractUpgrade event raised by the KittyOwnership contract.
 14974  type KittyOwnershipContractUpgrade struct {
 14975  	NewContract common.Address
 14976  	Raw         types.Log // Blockchain specific contextual infos
 14977  }
 14978  
 14979  // FilterContractUpgrade is a free log retrieval operation binding the contract event 0x450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa446199305.
 14980  //
 14981  // Solidity: event ContractUpgrade(address newContract)
 14982  func (_KittyOwnership *KittyOwnershipFilterer) FilterContractUpgrade(opts *bind.FilterOpts) (*KittyOwnershipContractUpgradeIterator, error) {
 14983  
 14984  	logs, sub, err := _KittyOwnership.contract.FilterLogs(opts, "ContractUpgrade")
 14985  	if err != nil {
 14986  		return nil, err
 14987  	}
 14988  	return &KittyOwnershipContractUpgradeIterator{contract: _KittyOwnership.contract, event: "ContractUpgrade", logs: logs, sub: sub}, nil
 14989  }
 14990  
 14991  // WatchContractUpgrade is a free log subscription operation binding the contract event 0x450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa446199305.
 14992  //
 14993  // Solidity: event ContractUpgrade(address newContract)
 14994  func (_KittyOwnership *KittyOwnershipFilterer) WatchContractUpgrade(opts *bind.WatchOpts, sink chan<- *KittyOwnershipContractUpgrade) (event.Subscription, error) {
 14995  
 14996  	logs, sub, err := _KittyOwnership.contract.WatchLogs(opts, "ContractUpgrade")
 14997  	if err != nil {
 14998  		return nil, err
 14999  	}
 15000  	return event.NewSubscription(func(quit <-chan struct{}) error {
 15001  		defer sub.Unsubscribe()
 15002  		for {
 15003  			select {
 15004  			case log := <-logs:
 15005  				// New log arrived, parse the event and forward to the user
 15006  				event := new(KittyOwnershipContractUpgrade)
 15007  				if err := _KittyOwnership.contract.UnpackLog(event, "ContractUpgrade", log); err != nil {
 15008  					return err
 15009  				}
 15010  				event.Raw = log
 15011  
 15012  				select {
 15013  				case sink <- event:
 15014  				case err := <-sub.Err():
 15015  					return err
 15016  				case <-quit:
 15017  					return nil
 15018  				}
 15019  			case err := <-sub.Err():
 15020  				return err
 15021  			case <-quit:
 15022  				return nil
 15023  			}
 15024  		}
 15025  	}), nil
 15026  }
 15027  
 15028  // ParseContractUpgrade is a log parse operation binding the contract event 0x450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa446199305.
 15029  //
 15030  // Solidity: event ContractUpgrade(address newContract)
 15031  func (_KittyOwnership *KittyOwnershipFilterer) ParseContractUpgrade(log types.Log) (*KittyOwnershipContractUpgrade, error) {
 15032  	event := new(KittyOwnershipContractUpgrade)
 15033  	if err := _KittyOwnership.contract.UnpackLog(event, "ContractUpgrade", log); err != nil {
 15034  		return nil, err
 15035  	}
 15036  	event.Raw = log
 15037  	return event, nil
 15038  }
 15039  
 15040  // KittyOwnershipTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the KittyOwnership contract.
 15041  type KittyOwnershipTransferIterator struct {
 15042  	Event *KittyOwnershipTransfer // Event containing the contract specifics and raw log
 15043  
 15044  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 15045  	event    string              // Event name to use for unpacking event data
 15046  
 15047  	logs chan types.Log        // Log channel receiving the found contract events
 15048  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 15049  	done bool                  // Whether the subscription completed delivering logs
 15050  	fail error                 // Occurred error to stop iteration
 15051  }
 15052  
 15053  // Next advances the iterator to the subsequent event, returning whether there
 15054  // are any more events found. In case of a retrieval or parsing error, false is
 15055  // returned and Error() can be queried for the exact failure.
 15056  func (it *KittyOwnershipTransferIterator) Next() bool {
 15057  	// If the iterator failed, stop iterating
 15058  	if it.fail != nil {
 15059  		return false
 15060  	}
 15061  	// If the iterator completed, deliver directly whatever's available
 15062  	if it.done {
 15063  		select {
 15064  		case log := <-it.logs:
 15065  			it.Event = new(KittyOwnershipTransfer)
 15066  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 15067  				it.fail = err
 15068  				return false
 15069  			}
 15070  			it.Event.Raw = log
 15071  			return true
 15072  
 15073  		default:
 15074  			return false
 15075  		}
 15076  	}
 15077  	// Iterator still in progress, wait for either a data or an error event
 15078  	select {
 15079  	case log := <-it.logs:
 15080  		it.Event = new(KittyOwnershipTransfer)
 15081  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 15082  			it.fail = err
 15083  			return false
 15084  		}
 15085  		it.Event.Raw = log
 15086  		return true
 15087  
 15088  	case err := <-it.sub.Err():
 15089  		it.done = true
 15090  		it.fail = err
 15091  		return it.Next()
 15092  	}
 15093  }
 15094  
 15095  // Error returns any retrieval or parsing error occurred during filtering.
 15096  func (it *KittyOwnershipTransferIterator) Error() error {
 15097  	return it.fail
 15098  }
 15099  
 15100  // Close terminates the iteration process, releasing any pending underlying
 15101  // resources.
 15102  func (it *KittyOwnershipTransferIterator) Close() error {
 15103  	it.sub.Unsubscribe()
 15104  	return nil
 15105  }
 15106  
 15107  // KittyOwnershipTransfer represents a Transfer event raised by the KittyOwnership contract.
 15108  type KittyOwnershipTransfer struct {
 15109  	From    common.Address
 15110  	To      common.Address
 15111  	TokenId *big.Int
 15112  	Raw     types.Log // Blockchain specific contextual infos
 15113  }
 15114  
 15115  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 15116  //
 15117  // Solidity: event Transfer(address from, address to, uint256 tokenId)
 15118  func (_KittyOwnership *KittyOwnershipFilterer) FilterTransfer(opts *bind.FilterOpts) (*KittyOwnershipTransferIterator, error) {
 15119  
 15120  	logs, sub, err := _KittyOwnership.contract.FilterLogs(opts, "Transfer")
 15121  	if err != nil {
 15122  		return nil, err
 15123  	}
 15124  	return &KittyOwnershipTransferIterator{contract: _KittyOwnership.contract, event: "Transfer", logs: logs, sub: sub}, nil
 15125  }
 15126  
 15127  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 15128  //
 15129  // Solidity: event Transfer(address from, address to, uint256 tokenId)
 15130  func (_KittyOwnership *KittyOwnershipFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *KittyOwnershipTransfer) (event.Subscription, error) {
 15131  
 15132  	logs, sub, err := _KittyOwnership.contract.WatchLogs(opts, "Transfer")
 15133  	if err != nil {
 15134  		return nil, err
 15135  	}
 15136  	return event.NewSubscription(func(quit <-chan struct{}) error {
 15137  		defer sub.Unsubscribe()
 15138  		for {
 15139  			select {
 15140  			case log := <-logs:
 15141  				// New log arrived, parse the event and forward to the user
 15142  				event := new(KittyOwnershipTransfer)
 15143  				if err := _KittyOwnership.contract.UnpackLog(event, "Transfer", log); err != nil {
 15144  					return err
 15145  				}
 15146  				event.Raw = log
 15147  
 15148  				select {
 15149  				case sink <- event:
 15150  				case err := <-sub.Err():
 15151  					return err
 15152  				case <-quit:
 15153  					return nil
 15154  				}
 15155  			case err := <-sub.Err():
 15156  				return err
 15157  			case <-quit:
 15158  				return nil
 15159  			}
 15160  		}
 15161  	}), nil
 15162  }
 15163  
 15164  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 15165  //
 15166  // Solidity: event Transfer(address from, address to, uint256 tokenId)
 15167  func (_KittyOwnership *KittyOwnershipFilterer) ParseTransfer(log types.Log) (*KittyOwnershipTransfer, error) {
 15168  	event := new(KittyOwnershipTransfer)
 15169  	if err := _KittyOwnership.contract.UnpackLog(event, "Transfer", log); err != nil {
 15170  		return nil, err
 15171  	}
 15172  	event.Raw = log
 15173  	return event, nil
 15174  }
 15175  
 15176  // OwnableABI is the input ABI used to generate the binding from.
 15177  const OwnableABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}]"
 15178  
 15179  // OwnableFuncSigs maps the 4-byte function signature to its string representation.
 15180  var OwnableFuncSigs = map[string]string{
 15181  	"8da5cb5b": "owner()",
 15182  	"f2fde38b": "transferOwnership(address)",
 15183  }
 15184  
 15185  // OwnableBin is the compiled bytecode used for deploying new contracts.
 15186  var OwnableBin = "0x6060604052341561000f57600080fd5b60008054600160a060020a033316600160a060020a031990911617905561017f8061003b6000396000f30060606040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416638da5cb5b8114610050578063f2fde38b1461008c575b600080fd5b341561005b57600080fd5b6100636100ba565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561009757600080fd5b6100b873ffffffffffffffffffffffffffffffffffffffff600435166100d6565b005b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6000543373ffffffffffffffffffffffffffffffffffffffff9081169116146100fe57600080fd5b73ffffffffffffffffffffffffffffffffffffffff811615610150576000805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff83161790555b505600a165627a7a7230582052a652a6ee6dca506179948d92db1ba0441bd3a562fd92c002c39e6d99920c5c0029"
 15187  
 15188  // DeployOwnable deploys a new Ethereum contract, binding an instance of Ownable to it.
 15189  func DeployOwnable(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Ownable, error) {
 15190  	parsed, err := abi.JSON(strings.NewReader(OwnableABI))
 15191  	if err != nil {
 15192  		return common.Address{}, nil, nil, err
 15193  	}
 15194  
 15195  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(OwnableBin), backend)
 15196  	if err != nil {
 15197  		return common.Address{}, nil, nil, err
 15198  	}
 15199  	return address, tx, &Ownable{OwnableCaller: OwnableCaller{contract: contract}, OwnableTransactor: OwnableTransactor{contract: contract}, OwnableFilterer: OwnableFilterer{contract: contract}}, nil
 15200  }
 15201  
 15202  // Ownable is an auto generated Go binding around an Ethereum contract.
 15203  type Ownable struct {
 15204  	OwnableCaller     // Read-only binding to the contract
 15205  	OwnableTransactor // Write-only binding to the contract
 15206  	OwnableFilterer   // Log filterer for contract events
 15207  }
 15208  
 15209  // OwnableCaller is an auto generated read-only Go binding around an Ethereum contract.
 15210  type OwnableCaller struct {
 15211  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 15212  }
 15213  
 15214  // OwnableTransactor is an auto generated write-only Go binding around an Ethereum contract.
 15215  type OwnableTransactor struct {
 15216  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 15217  }
 15218  
 15219  // OwnableFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 15220  type OwnableFilterer struct {
 15221  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 15222  }
 15223  
 15224  // OwnableSession is an auto generated Go binding around an Ethereum contract,
 15225  // with pre-set call and transact options.
 15226  type OwnableSession struct {
 15227  	Contract     *Ownable          // Generic contract binding to set the session for
 15228  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 15229  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 15230  }
 15231  
 15232  // OwnableCallerSession is an auto generated read-only Go binding around an Ethereum contract,
 15233  // with pre-set call options.
 15234  type OwnableCallerSession struct {
 15235  	Contract *OwnableCaller // Generic contract caller binding to set the session for
 15236  	CallOpts bind.CallOpts  // Call options to use throughout this session
 15237  }
 15238  
 15239  // OwnableTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 15240  // with pre-set transact options.
 15241  type OwnableTransactorSession struct {
 15242  	Contract     *OwnableTransactor // Generic contract transactor binding to set the session for
 15243  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
 15244  }
 15245  
 15246  // OwnableRaw is an auto generated low-level Go binding around an Ethereum contract.
 15247  type OwnableRaw struct {
 15248  	Contract *Ownable // Generic contract binding to access the raw methods on
 15249  }
 15250  
 15251  // OwnableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 15252  type OwnableCallerRaw struct {
 15253  	Contract *OwnableCaller // Generic read-only contract binding to access the raw methods on
 15254  }
 15255  
 15256  // OwnableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 15257  type OwnableTransactorRaw struct {
 15258  	Contract *OwnableTransactor // Generic write-only contract binding to access the raw methods on
 15259  }
 15260  
 15261  // NewOwnable creates a new instance of Ownable, bound to a specific deployed contract.
 15262  func NewOwnable(address common.Address, backend bind.ContractBackend) (*Ownable, error) {
 15263  	contract, err := bindOwnable(address, backend, backend, backend)
 15264  	if err != nil {
 15265  		return nil, err
 15266  	}
 15267  	return &Ownable{OwnableCaller: OwnableCaller{contract: contract}, OwnableTransactor: OwnableTransactor{contract: contract}, OwnableFilterer: OwnableFilterer{contract: contract}}, nil
 15268  }
 15269  
 15270  // NewOwnableCaller creates a new read-only instance of Ownable, bound to a specific deployed contract.
 15271  func NewOwnableCaller(address common.Address, caller bind.ContractCaller) (*OwnableCaller, error) {
 15272  	contract, err := bindOwnable(address, caller, nil, nil)
 15273  	if err != nil {
 15274  		return nil, err
 15275  	}
 15276  	return &OwnableCaller{contract: contract}, nil
 15277  }
 15278  
 15279  // NewOwnableTransactor creates a new write-only instance of Ownable, bound to a specific deployed contract.
 15280  func NewOwnableTransactor(address common.Address, transactor bind.ContractTransactor) (*OwnableTransactor, error) {
 15281  	contract, err := bindOwnable(address, nil, transactor, nil)
 15282  	if err != nil {
 15283  		return nil, err
 15284  	}
 15285  	return &OwnableTransactor{contract: contract}, nil
 15286  }
 15287  
 15288  // NewOwnableFilterer creates a new log filterer instance of Ownable, bound to a specific deployed contract.
 15289  func NewOwnableFilterer(address common.Address, filterer bind.ContractFilterer) (*OwnableFilterer, error) {
 15290  	contract, err := bindOwnable(address, nil, nil, filterer)
 15291  	if err != nil {
 15292  		return nil, err
 15293  	}
 15294  	return &OwnableFilterer{contract: contract}, nil
 15295  }
 15296  
 15297  // bindOwnable binds a generic wrapper to an already deployed contract.
 15298  func bindOwnable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 15299  	parsed, err := abi.JSON(strings.NewReader(OwnableABI))
 15300  	if err != nil {
 15301  		return nil, err
 15302  	}
 15303  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 15304  }
 15305  
 15306  // Call invokes the (constant) contract method with params as input values and
 15307  // sets the output to result. The result type might be a single field for simple
 15308  // returns, a slice of interfaces for anonymous returns and a struct for named
 15309  // returns.
 15310  func (_Ownable *OwnableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 15311  	return _Ownable.Contract.OwnableCaller.contract.Call(opts, result, method, params...)
 15312  }
 15313  
 15314  // Transfer initiates a plain transaction to move funds to the contract, calling
 15315  // its default method if one is available.
 15316  func (_Ownable *OwnableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 15317  	return _Ownable.Contract.OwnableTransactor.contract.Transfer(opts)
 15318  }
 15319  
 15320  // Transact invokes the (paid) contract method with params as input values.
 15321  func (_Ownable *OwnableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 15322  	return _Ownable.Contract.OwnableTransactor.contract.Transact(opts, method, params...)
 15323  }
 15324  
 15325  // Call invokes the (constant) contract method with params as input values and
 15326  // sets the output to result. The result type might be a single field for simple
 15327  // returns, a slice of interfaces for anonymous returns and a struct for named
 15328  // returns.
 15329  func (_Ownable *OwnableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 15330  	return _Ownable.Contract.contract.Call(opts, result, method, params...)
 15331  }
 15332  
 15333  // Transfer initiates a plain transaction to move funds to the contract, calling
 15334  // its default method if one is available.
 15335  func (_Ownable *OwnableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 15336  	return _Ownable.Contract.contract.Transfer(opts)
 15337  }
 15338  
 15339  // Transact invokes the (paid) contract method with params as input values.
 15340  func (_Ownable *OwnableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 15341  	return _Ownable.Contract.contract.Transact(opts, method, params...)
 15342  }
 15343  
 15344  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 15345  //
 15346  // Solidity: function owner() view returns(address)
 15347  func (_Ownable *OwnableCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
 15348  	var out []interface{}
 15349  	err := _Ownable.contract.Call(opts, &out, "owner")
 15350  
 15351  	if err != nil {
 15352  		return *new(common.Address), err
 15353  	}
 15354  
 15355  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 15356  
 15357  	return out0, err
 15358  
 15359  }
 15360  
 15361  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 15362  //
 15363  // Solidity: function owner() view returns(address)
 15364  func (_Ownable *OwnableSession) Owner() (common.Address, error) {
 15365  	return _Ownable.Contract.Owner(&_Ownable.CallOpts)
 15366  }
 15367  
 15368  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 15369  //
 15370  // Solidity: function owner() view returns(address)
 15371  func (_Ownable *OwnableCallerSession) Owner() (common.Address, error) {
 15372  	return _Ownable.Contract.Owner(&_Ownable.CallOpts)
 15373  }
 15374  
 15375  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 15376  //
 15377  // Solidity: function transferOwnership(address newOwner) returns()
 15378  func (_Ownable *OwnableTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
 15379  	return _Ownable.contract.Transact(opts, "transferOwnership", newOwner)
 15380  }
 15381  
 15382  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 15383  //
 15384  // Solidity: function transferOwnership(address newOwner) returns()
 15385  func (_Ownable *OwnableSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 15386  	return _Ownable.Contract.TransferOwnership(&_Ownable.TransactOpts, newOwner)
 15387  }
 15388  
 15389  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 15390  //
 15391  // Solidity: function transferOwnership(address newOwner) returns()
 15392  func (_Ownable *OwnableTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 15393  	return _Ownable.Contract.TransferOwnership(&_Ownable.TransactOpts, newOwner)
 15394  }
 15395  
 15396  // PausableABI is the input ABI used to generate the binding from.
 15397  const PausableABI = "[{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Pause\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Unpause\",\"type\":\"event\"}]"
 15398  
 15399  // PausableFuncSigs maps the 4-byte function signature to its string representation.
 15400  var PausableFuncSigs = map[string]string{
 15401  	"8da5cb5b": "owner()",
 15402  	"8456cb59": "pause()",
 15403  	"5c975abb": "paused()",
 15404  	"f2fde38b": "transferOwnership(address)",
 15405  	"3f4ba83a": "unpause()",
 15406  }
 15407  
 15408  // PausableBin is the compiled bytecode used for deploying new contracts.
 15409  var PausableBin = "0x606060405260008054600160a060020a033316600160a860020a0319909116179055610300806100306000396000f30060606040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633f4ba83a81146100715780635c975abb146100985780638456cb59146100ab5780638da5cb5b146100be578063f2fde38b146100ed575b600080fd5b341561007c57600080fd5b61008461010e565b604051901515815260200160405180910390f35b34156100a357600080fd5b6100846101a3565b34156100b657600080fd5b6100846101c4565b34156100c957600080fd5b6100d161026f565b604051600160a060020a03909116815260200160405180910390f35b34156100f857600080fd5b61010c600160a060020a036004351661027e565b005b6000805433600160a060020a0390811691161461012a57600080fd5b60005474010000000000000000000000000000000000000000900460ff16151561015357600080fd5b6000805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a150600190565b60005474010000000000000000000000000000000000000000900460ff1681565b6000805433600160a060020a039081169116146101e057600080fd5b60005474010000000000000000000000000000000000000000900460ff161561020857600080fd5b6000805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a150600190565b600054600160a060020a031681565b60005433600160a060020a0390811691161461029957600080fd5b600160a060020a038116156102d1576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b505600a165627a7a72305820a1649640b194c33c1b6ef2ee29f5bc68a321d7a64d3266cf4b3c684434c1be700029"
 15410  
 15411  // DeployPausable deploys a new Ethereum contract, binding an instance of Pausable to it.
 15412  func DeployPausable(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Pausable, error) {
 15413  	parsed, err := abi.JSON(strings.NewReader(PausableABI))
 15414  	if err != nil {
 15415  		return common.Address{}, nil, nil, err
 15416  	}
 15417  
 15418  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(PausableBin), backend)
 15419  	if err != nil {
 15420  		return common.Address{}, nil, nil, err
 15421  	}
 15422  	return address, tx, &Pausable{PausableCaller: PausableCaller{contract: contract}, PausableTransactor: PausableTransactor{contract: contract}, PausableFilterer: PausableFilterer{contract: contract}}, nil
 15423  }
 15424  
 15425  // Pausable is an auto generated Go binding around an Ethereum contract.
 15426  type Pausable struct {
 15427  	PausableCaller     // Read-only binding to the contract
 15428  	PausableTransactor // Write-only binding to the contract
 15429  	PausableFilterer   // Log filterer for contract events
 15430  }
 15431  
 15432  // PausableCaller is an auto generated read-only Go binding around an Ethereum contract.
 15433  type PausableCaller struct {
 15434  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 15435  }
 15436  
 15437  // PausableTransactor is an auto generated write-only Go binding around an Ethereum contract.
 15438  type PausableTransactor struct {
 15439  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 15440  }
 15441  
 15442  // PausableFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 15443  type PausableFilterer struct {
 15444  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 15445  }
 15446  
 15447  // PausableSession is an auto generated Go binding around an Ethereum contract,
 15448  // with pre-set call and transact options.
 15449  type PausableSession struct {
 15450  	Contract     *Pausable         // Generic contract binding to set the session for
 15451  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 15452  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 15453  }
 15454  
 15455  // PausableCallerSession is an auto generated read-only Go binding around an Ethereum contract,
 15456  // with pre-set call options.
 15457  type PausableCallerSession struct {
 15458  	Contract *PausableCaller // Generic contract caller binding to set the session for
 15459  	CallOpts bind.CallOpts   // Call options to use throughout this session
 15460  }
 15461  
 15462  // PausableTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 15463  // with pre-set transact options.
 15464  type PausableTransactorSession struct {
 15465  	Contract     *PausableTransactor // Generic contract transactor binding to set the session for
 15466  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
 15467  }
 15468  
 15469  // PausableRaw is an auto generated low-level Go binding around an Ethereum contract.
 15470  type PausableRaw struct {
 15471  	Contract *Pausable // Generic contract binding to access the raw methods on
 15472  }
 15473  
 15474  // PausableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 15475  type PausableCallerRaw struct {
 15476  	Contract *PausableCaller // Generic read-only contract binding to access the raw methods on
 15477  }
 15478  
 15479  // PausableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 15480  type PausableTransactorRaw struct {
 15481  	Contract *PausableTransactor // Generic write-only contract binding to access the raw methods on
 15482  }
 15483  
 15484  // NewPausable creates a new instance of Pausable, bound to a specific deployed contract.
 15485  func NewPausable(address common.Address, backend bind.ContractBackend) (*Pausable, error) {
 15486  	contract, err := bindPausable(address, backend, backend, backend)
 15487  	if err != nil {
 15488  		return nil, err
 15489  	}
 15490  	return &Pausable{PausableCaller: PausableCaller{contract: contract}, PausableTransactor: PausableTransactor{contract: contract}, PausableFilterer: PausableFilterer{contract: contract}}, nil
 15491  }
 15492  
 15493  // NewPausableCaller creates a new read-only instance of Pausable, bound to a specific deployed contract.
 15494  func NewPausableCaller(address common.Address, caller bind.ContractCaller) (*PausableCaller, error) {
 15495  	contract, err := bindPausable(address, caller, nil, nil)
 15496  	if err != nil {
 15497  		return nil, err
 15498  	}
 15499  	return &PausableCaller{contract: contract}, nil
 15500  }
 15501  
 15502  // NewPausableTransactor creates a new write-only instance of Pausable, bound to a specific deployed contract.
 15503  func NewPausableTransactor(address common.Address, transactor bind.ContractTransactor) (*PausableTransactor, error) {
 15504  	contract, err := bindPausable(address, nil, transactor, nil)
 15505  	if err != nil {
 15506  		return nil, err
 15507  	}
 15508  	return &PausableTransactor{contract: contract}, nil
 15509  }
 15510  
 15511  // NewPausableFilterer creates a new log filterer instance of Pausable, bound to a specific deployed contract.
 15512  func NewPausableFilterer(address common.Address, filterer bind.ContractFilterer) (*PausableFilterer, error) {
 15513  	contract, err := bindPausable(address, nil, nil, filterer)
 15514  	if err != nil {
 15515  		return nil, err
 15516  	}
 15517  	return &PausableFilterer{contract: contract}, nil
 15518  }
 15519  
 15520  // bindPausable binds a generic wrapper to an already deployed contract.
 15521  func bindPausable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 15522  	parsed, err := abi.JSON(strings.NewReader(PausableABI))
 15523  	if err != nil {
 15524  		return nil, err
 15525  	}
 15526  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 15527  }
 15528  
 15529  // Call invokes the (constant) contract method with params as input values and
 15530  // sets the output to result. The result type might be a single field for simple
 15531  // returns, a slice of interfaces for anonymous returns and a struct for named
 15532  // returns.
 15533  func (_Pausable *PausableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 15534  	return _Pausable.Contract.PausableCaller.contract.Call(opts, result, method, params...)
 15535  }
 15536  
 15537  // Transfer initiates a plain transaction to move funds to the contract, calling
 15538  // its default method if one is available.
 15539  func (_Pausable *PausableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 15540  	return _Pausable.Contract.PausableTransactor.contract.Transfer(opts)
 15541  }
 15542  
 15543  // Transact invokes the (paid) contract method with params as input values.
 15544  func (_Pausable *PausableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 15545  	return _Pausable.Contract.PausableTransactor.contract.Transact(opts, method, params...)
 15546  }
 15547  
 15548  // Call invokes the (constant) contract method with params as input values and
 15549  // sets the output to result. The result type might be a single field for simple
 15550  // returns, a slice of interfaces for anonymous returns and a struct for named
 15551  // returns.
 15552  func (_Pausable *PausableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 15553  	return _Pausable.Contract.contract.Call(opts, result, method, params...)
 15554  }
 15555  
 15556  // Transfer initiates a plain transaction to move funds to the contract, calling
 15557  // its default method if one is available.
 15558  func (_Pausable *PausableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 15559  	return _Pausable.Contract.contract.Transfer(opts)
 15560  }
 15561  
 15562  // Transact invokes the (paid) contract method with params as input values.
 15563  func (_Pausable *PausableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 15564  	return _Pausable.Contract.contract.Transact(opts, method, params...)
 15565  }
 15566  
 15567  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 15568  //
 15569  // Solidity: function owner() view returns(address)
 15570  func (_Pausable *PausableCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
 15571  	var out []interface{}
 15572  	err := _Pausable.contract.Call(opts, &out, "owner")
 15573  
 15574  	if err != nil {
 15575  		return *new(common.Address), err
 15576  	}
 15577  
 15578  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 15579  
 15580  	return out0, err
 15581  
 15582  }
 15583  
 15584  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 15585  //
 15586  // Solidity: function owner() view returns(address)
 15587  func (_Pausable *PausableSession) Owner() (common.Address, error) {
 15588  	return _Pausable.Contract.Owner(&_Pausable.CallOpts)
 15589  }
 15590  
 15591  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 15592  //
 15593  // Solidity: function owner() view returns(address)
 15594  func (_Pausable *PausableCallerSession) Owner() (common.Address, error) {
 15595  	return _Pausable.Contract.Owner(&_Pausable.CallOpts)
 15596  }
 15597  
 15598  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
 15599  //
 15600  // Solidity: function paused() view returns(bool)
 15601  func (_Pausable *PausableCaller) Paused(opts *bind.CallOpts) (bool, error) {
 15602  	var out []interface{}
 15603  	err := _Pausable.contract.Call(opts, &out, "paused")
 15604  
 15605  	if err != nil {
 15606  		return *new(bool), err
 15607  	}
 15608  
 15609  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 15610  
 15611  	return out0, err
 15612  
 15613  }
 15614  
 15615  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
 15616  //
 15617  // Solidity: function paused() view returns(bool)
 15618  func (_Pausable *PausableSession) Paused() (bool, error) {
 15619  	return _Pausable.Contract.Paused(&_Pausable.CallOpts)
 15620  }
 15621  
 15622  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
 15623  //
 15624  // Solidity: function paused() view returns(bool)
 15625  func (_Pausable *PausableCallerSession) Paused() (bool, error) {
 15626  	return _Pausable.Contract.Paused(&_Pausable.CallOpts)
 15627  }
 15628  
 15629  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
 15630  //
 15631  // Solidity: function pause() returns(bool)
 15632  func (_Pausable *PausableTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) {
 15633  	return _Pausable.contract.Transact(opts, "pause")
 15634  }
 15635  
 15636  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
 15637  //
 15638  // Solidity: function pause() returns(bool)
 15639  func (_Pausable *PausableSession) Pause() (*types.Transaction, error) {
 15640  	return _Pausable.Contract.Pause(&_Pausable.TransactOpts)
 15641  }
 15642  
 15643  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
 15644  //
 15645  // Solidity: function pause() returns(bool)
 15646  func (_Pausable *PausableTransactorSession) Pause() (*types.Transaction, error) {
 15647  	return _Pausable.Contract.Pause(&_Pausable.TransactOpts)
 15648  }
 15649  
 15650  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 15651  //
 15652  // Solidity: function transferOwnership(address newOwner) returns()
 15653  func (_Pausable *PausableTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
 15654  	return _Pausable.contract.Transact(opts, "transferOwnership", newOwner)
 15655  }
 15656  
 15657  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 15658  //
 15659  // Solidity: function transferOwnership(address newOwner) returns()
 15660  func (_Pausable *PausableSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 15661  	return _Pausable.Contract.TransferOwnership(&_Pausable.TransactOpts, newOwner)
 15662  }
 15663  
 15664  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 15665  //
 15666  // Solidity: function transferOwnership(address newOwner) returns()
 15667  func (_Pausable *PausableTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 15668  	return _Pausable.Contract.TransferOwnership(&_Pausable.TransactOpts, newOwner)
 15669  }
 15670  
 15671  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
 15672  //
 15673  // Solidity: function unpause() returns(bool)
 15674  func (_Pausable *PausableTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) {
 15675  	return _Pausable.contract.Transact(opts, "unpause")
 15676  }
 15677  
 15678  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
 15679  //
 15680  // Solidity: function unpause() returns(bool)
 15681  func (_Pausable *PausableSession) Unpause() (*types.Transaction, error) {
 15682  	return _Pausable.Contract.Unpause(&_Pausable.TransactOpts)
 15683  }
 15684  
 15685  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
 15686  //
 15687  // Solidity: function unpause() returns(bool)
 15688  func (_Pausable *PausableTransactorSession) Unpause() (*types.Transaction, error) {
 15689  	return _Pausable.Contract.Unpause(&_Pausable.TransactOpts)
 15690  }
 15691  
 15692  // PausablePauseIterator is returned from FilterPause and is used to iterate over the raw logs and unpacked data for Pause events raised by the Pausable contract.
 15693  type PausablePauseIterator struct {
 15694  	Event *PausablePause // Event containing the contract specifics and raw log
 15695  
 15696  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 15697  	event    string              // Event name to use for unpacking event data
 15698  
 15699  	logs chan types.Log        // Log channel receiving the found contract events
 15700  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 15701  	done bool                  // Whether the subscription completed delivering logs
 15702  	fail error                 // Occurred error to stop iteration
 15703  }
 15704  
 15705  // Next advances the iterator to the subsequent event, returning whether there
 15706  // are any more events found. In case of a retrieval or parsing error, false is
 15707  // returned and Error() can be queried for the exact failure.
 15708  func (it *PausablePauseIterator) Next() bool {
 15709  	// If the iterator failed, stop iterating
 15710  	if it.fail != nil {
 15711  		return false
 15712  	}
 15713  	// If the iterator completed, deliver directly whatever's available
 15714  	if it.done {
 15715  		select {
 15716  		case log := <-it.logs:
 15717  			it.Event = new(PausablePause)
 15718  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 15719  				it.fail = err
 15720  				return false
 15721  			}
 15722  			it.Event.Raw = log
 15723  			return true
 15724  
 15725  		default:
 15726  			return false
 15727  		}
 15728  	}
 15729  	// Iterator still in progress, wait for either a data or an error event
 15730  	select {
 15731  	case log := <-it.logs:
 15732  		it.Event = new(PausablePause)
 15733  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 15734  			it.fail = err
 15735  			return false
 15736  		}
 15737  		it.Event.Raw = log
 15738  		return true
 15739  
 15740  	case err := <-it.sub.Err():
 15741  		it.done = true
 15742  		it.fail = err
 15743  		return it.Next()
 15744  	}
 15745  }
 15746  
 15747  // Error returns any retrieval or parsing error occurred during filtering.
 15748  func (it *PausablePauseIterator) Error() error {
 15749  	return it.fail
 15750  }
 15751  
 15752  // Close terminates the iteration process, releasing any pending underlying
 15753  // resources.
 15754  func (it *PausablePauseIterator) Close() error {
 15755  	it.sub.Unsubscribe()
 15756  	return nil
 15757  }
 15758  
 15759  // PausablePause represents a Pause event raised by the Pausable contract.
 15760  type PausablePause struct {
 15761  	Raw types.Log // Blockchain specific contextual infos
 15762  }
 15763  
 15764  // FilterPause is a free log retrieval operation binding the contract event 0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625.
 15765  //
 15766  // Solidity: event Pause()
 15767  func (_Pausable *PausableFilterer) FilterPause(opts *bind.FilterOpts) (*PausablePauseIterator, error) {
 15768  
 15769  	logs, sub, err := _Pausable.contract.FilterLogs(opts, "Pause")
 15770  	if err != nil {
 15771  		return nil, err
 15772  	}
 15773  	return &PausablePauseIterator{contract: _Pausable.contract, event: "Pause", logs: logs, sub: sub}, nil
 15774  }
 15775  
 15776  // WatchPause is a free log subscription operation binding the contract event 0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625.
 15777  //
 15778  // Solidity: event Pause()
 15779  func (_Pausable *PausableFilterer) WatchPause(opts *bind.WatchOpts, sink chan<- *PausablePause) (event.Subscription, error) {
 15780  
 15781  	logs, sub, err := _Pausable.contract.WatchLogs(opts, "Pause")
 15782  	if err != nil {
 15783  		return nil, err
 15784  	}
 15785  	return event.NewSubscription(func(quit <-chan struct{}) error {
 15786  		defer sub.Unsubscribe()
 15787  		for {
 15788  			select {
 15789  			case log := <-logs:
 15790  				// New log arrived, parse the event and forward to the user
 15791  				event := new(PausablePause)
 15792  				if err := _Pausable.contract.UnpackLog(event, "Pause", log); err != nil {
 15793  					return err
 15794  				}
 15795  				event.Raw = log
 15796  
 15797  				select {
 15798  				case sink <- event:
 15799  				case err := <-sub.Err():
 15800  					return err
 15801  				case <-quit:
 15802  					return nil
 15803  				}
 15804  			case err := <-sub.Err():
 15805  				return err
 15806  			case <-quit:
 15807  				return nil
 15808  			}
 15809  		}
 15810  	}), nil
 15811  }
 15812  
 15813  // ParsePause is a log parse operation binding the contract event 0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625.
 15814  //
 15815  // Solidity: event Pause()
 15816  func (_Pausable *PausableFilterer) ParsePause(log types.Log) (*PausablePause, error) {
 15817  	event := new(PausablePause)
 15818  	if err := _Pausable.contract.UnpackLog(event, "Pause", log); err != nil {
 15819  		return nil, err
 15820  	}
 15821  	event.Raw = log
 15822  	return event, nil
 15823  }
 15824  
 15825  // PausableUnpauseIterator is returned from FilterUnpause and is used to iterate over the raw logs and unpacked data for Unpause events raised by the Pausable contract.
 15826  type PausableUnpauseIterator struct {
 15827  	Event *PausableUnpause // Event containing the contract specifics and raw log
 15828  
 15829  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 15830  	event    string              // Event name to use for unpacking event data
 15831  
 15832  	logs chan types.Log        // Log channel receiving the found contract events
 15833  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 15834  	done bool                  // Whether the subscription completed delivering logs
 15835  	fail error                 // Occurred error to stop iteration
 15836  }
 15837  
 15838  // Next advances the iterator to the subsequent event, returning whether there
 15839  // are any more events found. In case of a retrieval or parsing error, false is
 15840  // returned and Error() can be queried for the exact failure.
 15841  func (it *PausableUnpauseIterator) Next() bool {
 15842  	// If the iterator failed, stop iterating
 15843  	if it.fail != nil {
 15844  		return false
 15845  	}
 15846  	// If the iterator completed, deliver directly whatever's available
 15847  	if it.done {
 15848  		select {
 15849  		case log := <-it.logs:
 15850  			it.Event = new(PausableUnpause)
 15851  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 15852  				it.fail = err
 15853  				return false
 15854  			}
 15855  			it.Event.Raw = log
 15856  			return true
 15857  
 15858  		default:
 15859  			return false
 15860  		}
 15861  	}
 15862  	// Iterator still in progress, wait for either a data or an error event
 15863  	select {
 15864  	case log := <-it.logs:
 15865  		it.Event = new(PausableUnpause)
 15866  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 15867  			it.fail = err
 15868  			return false
 15869  		}
 15870  		it.Event.Raw = log
 15871  		return true
 15872  
 15873  	case err := <-it.sub.Err():
 15874  		it.done = true
 15875  		it.fail = err
 15876  		return it.Next()
 15877  	}
 15878  }
 15879  
 15880  // Error returns any retrieval or parsing error occurred during filtering.
 15881  func (it *PausableUnpauseIterator) Error() error {
 15882  	return it.fail
 15883  }
 15884  
 15885  // Close terminates the iteration process, releasing any pending underlying
 15886  // resources.
 15887  func (it *PausableUnpauseIterator) Close() error {
 15888  	it.sub.Unsubscribe()
 15889  	return nil
 15890  }
 15891  
 15892  // PausableUnpause represents a Unpause event raised by the Pausable contract.
 15893  type PausableUnpause struct {
 15894  	Raw types.Log // Blockchain specific contextual infos
 15895  }
 15896  
 15897  // FilterUnpause is a free log retrieval operation binding the contract event 0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33.
 15898  //
 15899  // Solidity: event Unpause()
 15900  func (_Pausable *PausableFilterer) FilterUnpause(opts *bind.FilterOpts) (*PausableUnpauseIterator, error) {
 15901  
 15902  	logs, sub, err := _Pausable.contract.FilterLogs(opts, "Unpause")
 15903  	if err != nil {
 15904  		return nil, err
 15905  	}
 15906  	return &PausableUnpauseIterator{contract: _Pausable.contract, event: "Unpause", logs: logs, sub: sub}, nil
 15907  }
 15908  
 15909  // WatchUnpause is a free log subscription operation binding the contract event 0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33.
 15910  //
 15911  // Solidity: event Unpause()
 15912  func (_Pausable *PausableFilterer) WatchUnpause(opts *bind.WatchOpts, sink chan<- *PausableUnpause) (event.Subscription, error) {
 15913  
 15914  	logs, sub, err := _Pausable.contract.WatchLogs(opts, "Unpause")
 15915  	if err != nil {
 15916  		return nil, err
 15917  	}
 15918  	return event.NewSubscription(func(quit <-chan struct{}) error {
 15919  		defer sub.Unsubscribe()
 15920  		for {
 15921  			select {
 15922  			case log := <-logs:
 15923  				// New log arrived, parse the event and forward to the user
 15924  				event := new(PausableUnpause)
 15925  				if err := _Pausable.contract.UnpackLog(event, "Unpause", log); err != nil {
 15926  					return err
 15927  				}
 15928  				event.Raw = log
 15929  
 15930  				select {
 15931  				case sink <- event:
 15932  				case err := <-sub.Err():
 15933  					return err
 15934  				case <-quit:
 15935  					return nil
 15936  				}
 15937  			case err := <-sub.Err():
 15938  				return err
 15939  			case <-quit:
 15940  				return nil
 15941  			}
 15942  		}
 15943  	}), nil
 15944  }
 15945  
 15946  // ParseUnpause is a log parse operation binding the contract event 0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33.
 15947  //
 15948  // Solidity: event Unpause()
 15949  func (_Pausable *PausableFilterer) ParseUnpause(log types.Log) (*PausableUnpause, error) {
 15950  	event := new(PausableUnpause)
 15951  	if err := _Pausable.contract.UnpackLog(event, "Unpause", log); err != nil {
 15952  		return nil, err
 15953  	}
 15954  	event.Raw = log
 15955  	return event, nil
 15956  }
 15957  
 15958  // SaleClockAuctionABI is the input ABI used to generate the binding from.
 15959  const SaleClockAuctionABI = "[{\"constant\":false,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_startingPrice\",\"type\":\"uint256\"},{\"name\":\"_endingPrice\",\"type\":\"uint256\"},{\"name\":\"_duration\",\"type\":\"uint256\"},{\"name\":\"_seller\",\"type\":\"address\"}],\"name\":\"createAuction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"bid\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"lastGen0SalePrices\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"withdrawBalance\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getAuction\",\"outputs\":[{\"name\":\"seller\",\"type\":\"address\"},{\"name\":\"startingPrice\",\"type\":\"uint256\"},{\"name\":\"endingPrice\",\"type\":\"uint256\"},{\"name\":\"duration\",\"type\":\"uint256\"},{\"name\":\"startedAt\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ownerCut\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isSaleClockAuction\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"cancelAuctionWhenPaused\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"gen0SaleCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"cancelAuction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getCurrentPrice\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nonFungibleContract\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"averageGen0SalePrice\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_nftAddr\",\"type\":\"address\"},{\"name\":\"_cut\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"startingPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"endingPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"AuctionCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"totalPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"winner\",\"type\":\"address\"}],\"name\":\"AuctionSuccessful\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"AuctionCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Pause\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Unpause\",\"type\":\"event\"}]"
 15960  
 15961  // SaleClockAuctionFuncSigs maps the 4-byte function signature to its string representation.
 15962  var SaleClockAuctionFuncSigs = map[string]string{
 15963  	"eac9d94c": "averageGen0SalePrice()",
 15964  	"454a2ab3": "bid(uint256)",
 15965  	"96b5a755": "cancelAuction(uint256)",
 15966  	"878eb368": "cancelAuctionWhenPaused(uint256)",
 15967  	"27ebe40a": "createAuction(uint256,uint256,uint256,uint256,address)",
 15968  	"8a98a9cc": "gen0SaleCount()",
 15969  	"78bd7935": "getAuction(uint256)",
 15970  	"c55d0f56": "getCurrentPrice(uint256)",
 15971  	"85b86188": "isSaleClockAuction()",
 15972  	"484eccb4": "lastGen0SalePrices(uint256)",
 15973  	"dd1b7a0f": "nonFungibleContract()",
 15974  	"8da5cb5b": "owner()",
 15975  	"83b5ff8b": "ownerCut()",
 15976  	"8456cb59": "pause()",
 15977  	"5c975abb": "paused()",
 15978  	"f2fde38b": "transferOwnership(address)",
 15979  	"3f4ba83a": "unpause()",
 15980  	"5fd8c710": "withdrawBalance()",
 15981  }
 15982  
 15983  // SaleClockAuctionBin is the compiled bytecode used for deploying new contracts.
 15984  var SaleClockAuctionBin = "0x60606040526000805460a060020a60ff02191690556004805460ff19166001179055341561002c57600080fd5b604051604080610ef6833981016040528080519190602001805160008054600160a060020a03191633600160a060020a0316178155909250839150829061271082111561007857600080fd5b50600281905581600160a060020a0381166301ffc9a77f9a20483d000000000000000000000000000000000000000000000000000000006040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281527fffffffff000000000000000000000000000000000000000000000000000000009091166004820152602401602060405180830381600087803b151561011f57600080fd5b5af1151561012c57600080fd5b50505060405180519050151561014157600080fd5b60018054600160a060020a03909216600160a060020a031990921691909117905550505050610d81806101756000396000f3006060604052600436106100e25763ffffffff60e060020a60003504166327ebe40a81146100e75780633f4ba83a14610114578063454a2ab31461013b578063484eccb4146101465780635c975abb1461016e5780635fd8c7101461018157806378bd79351461019457806383b5ff8b146101e55780638456cb59146101f857806385b861881461020b578063878eb3681461021e5780638a98a9cc146102345780638da5cb5b1461024757806396b5a75514610276578063c55d0f561461028c578063dd1b7a0f146102a2578063eac9d94c146102b5578063f2fde38b146102c8575b600080fd5b34156100f257600080fd5b610112600435602435604435606435600160a060020a03608435166102e7565b005b341561011f57600080fd5b6101276103bf565b604051901515815260200160405180910390f35b610112600435610443565b341561015157600080fd5b61015c6004356104ad565b60405190815260200160405180910390f35b341561017957600080fd5b6101276104c1565b341561018c57600080fd5b6101126104d1565b341561019f57600080fd5b6101aa600435610547565b604051600160a060020a03909516855260208501939093526040808501929092526060840152608083019190915260a0909101905180910390f35b34156101f057600080fd5b61015c6105d4565b341561020357600080fd5b6101276105da565b341561021657600080fd5b610127610663565b341561022957600080fd5b61011260043561066c565b341561023f57600080fd5b61015c6106dd565b341561025257600080fd5b61025a6106e3565b604051600160a060020a03909116815260200160405180910390f35b341561028157600080fd5b6101126004356106f2565b341561029757600080fd5b61015c60043561073b565b34156102ad57600080fd5b61025a61076d565b34156102c057600080fd5b61015c61077c565b34156102d357600080fd5b610112600160a060020a03600435166107b0565b6102ef610d27565b6001608060020a038516851461030457600080fd5b6001608060020a038416841461031957600080fd5b67ffffffffffffffff8316831461032f57600080fd5b60015433600160a060020a0390811691161461034a57600080fd5b6103548287610806565b60a06040519081016040528083600160a060020a03168152602001866001608060020a03168152602001856001608060020a031681526020018467ffffffffffffffff1681526020014267ffffffffffffffff1681525090506103b7868261087d565b505050505050565b6000805433600160a060020a039081169116146103db57600080fd5b60005460a060020a900460ff1615156103f357600080fd5b6000805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a150600190565b600081815260036020526040812054600160a060020a0316906104668334610a18565b90506104723384610b49565b600154600160a060020a03838116911614156104a857600580548291600691066005811061049c57fe5b01556005805460010190555b505050565b600681600581106104ba57fe5b0154905081565b60005460a060020a900460ff1681565b60015460008054600160a060020a039283169233811691161480610506575081600160a060020a031633600160a060020a0316145b151561051157600080fd5b81600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f150505050505050565b6000818152600360205260408120819081908190819061056681610b9f565b151561057157600080fd5b80546001820154600290920154600160a060020a03909116986001608060020a038084169950700100000000000000000000000000000000909304909216965067ffffffffffffffff808216965068010000000000000000909104169350915050565b60025481565b6000805433600160a060020a039081169116146105f657600080fd5b60005460a060020a900460ff161561060d57600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a150600190565b60045460ff1681565b6000805460a060020a900460ff16151561068557600080fd5b60005433600160a060020a039081169116146106a057600080fd5b5060008181526003602052604090206106b881610b9f565b15156106c357600080fd5b80546106d9908390600160a060020a0316610bc0565b5050565b60055481565b600054600160a060020a031681565b60008181526003602052604081209061070a82610b9f565b151561071557600080fd5b508054600160a060020a03908116903316811461073157600080fd5b6104a88382610bc0565b600081815260036020526040812061075281610b9f565b151561075d57600080fd5b61076681610c0a565b9392505050565b600154600160a060020a031681565b600080805b60058110156107a6576006816005811061079757fe5b01549190910190600101610781565b5060059004919050565b60005433600160a060020a039081169116146107cb57600080fd5b600160a060020a03811615610803576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b600154600160a060020a03166323b872dd83308460405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086957600080fd5b5af1151561087657600080fd5b5050505050565b603c816060015167ffffffffffffffff16101561089957600080fd5b600082815260036020526040902081908151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039190911617815560208201516001820180546fffffffffffffffffffffffffffffffff19166001608060020a039290921691909117905560408201516001820180546001608060020a03928316700100000000000000000000000000000000029216919091179055606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201516002909101805467ffffffffffffffff9290921668010000000000000000026fffffffffffffffff000000000000000019909216919091179055507fa9c8dfcda5664a5a124c713e386da27de87432d5b668e79458501eb296389ba78260208301516001608060020a031683604001516001608060020a0316846060015167ffffffffffffffff166040518085815260200184815260200183815260200182815260200194505050505060405180910390a15050565b60008281526003602052604081208180808080610a3486610b9f565b1515610a3f57600080fd5b610a4886610c0a565b945084881015610a5757600080fd5b8554600160a060020a03169350610a6d89610c91565b6000851115610ab757610a7f85610cde565b92508285039150600160a060020a03841682156108fc0283604051600060405180830381858888f193505050501515610ab757600080fd5b50838703600160a060020a03331681156108fc0282604051600060405180830381858888f193505050501515610aec57600080fd5b7f4fcc30d90a842164dd58501ab874a101a3749c3d4747139cefe7c876f4ccebd28986336040519283526020830191909152600160a060020a03166040808301919091526060909101905180910390a15092979650505050505050565b600154600160a060020a031663a9059cbb838360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561086957600080fd5b6002015460006801000000000000000090910467ffffffffffffffff161190565b610bc982610c91565b610bd38183610b49565b7f2809c7e17bf978fbc7194c0a694b638c4215e9140cacc6c38ca36010b45697df8260405190815260200160405180910390a15050565b6002810154600090819068010000000000000000900467ffffffffffffffff16421115610c505750600282015468010000000000000000900467ffffffffffffffff1642035b60018301546002840154610766916001608060020a0380821692700100000000000000000000000000000000909204169067ffffffffffffffff1684610cea565b6000908152600360205260408120805473ffffffffffffffffffffffffffffffffffffffff19168155600181019190915560020180546fffffffffffffffffffffffffffffffff19169055565b60025461271091020490565b6000808080858510610cfe57869350610d1c565b878703925085858402811515610d1057fe5b05915081880190508093505b505050949350505050565b60a06040519081016040908152600080835260208301819052908201819052606082018190526080820152905600a165627a7a723058203fd71c63cb1e9083a70435e9914e093cafab4a3e87520e971a195b1fd2f253010029"
 15985  
 15986  // DeploySaleClockAuction deploys a new Ethereum contract, binding an instance of SaleClockAuction to it.
 15987  func DeploySaleClockAuction(auth *bind.TransactOpts, backend bind.ContractBackend, _nftAddr common.Address, _cut *big.Int) (common.Address, *types.Transaction, *SaleClockAuction, error) {
 15988  	parsed, err := abi.JSON(strings.NewReader(SaleClockAuctionABI))
 15989  	if err != nil {
 15990  		return common.Address{}, nil, nil, err
 15991  	}
 15992  
 15993  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(SaleClockAuctionBin), backend, _nftAddr, _cut)
 15994  	if err != nil {
 15995  		return common.Address{}, nil, nil, err
 15996  	}
 15997  	return address, tx, &SaleClockAuction{SaleClockAuctionCaller: SaleClockAuctionCaller{contract: contract}, SaleClockAuctionTransactor: SaleClockAuctionTransactor{contract: contract}, SaleClockAuctionFilterer: SaleClockAuctionFilterer{contract: contract}}, nil
 15998  }
 15999  
 16000  // SaleClockAuction is an auto generated Go binding around an Ethereum contract.
 16001  type SaleClockAuction struct {
 16002  	SaleClockAuctionCaller     // Read-only binding to the contract
 16003  	SaleClockAuctionTransactor // Write-only binding to the contract
 16004  	SaleClockAuctionFilterer   // Log filterer for contract events
 16005  }
 16006  
 16007  // SaleClockAuctionCaller is an auto generated read-only Go binding around an Ethereum contract.
 16008  type SaleClockAuctionCaller struct {
 16009  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 16010  }
 16011  
 16012  // SaleClockAuctionTransactor is an auto generated write-only Go binding around an Ethereum contract.
 16013  type SaleClockAuctionTransactor struct {
 16014  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 16015  }
 16016  
 16017  // SaleClockAuctionFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 16018  type SaleClockAuctionFilterer struct {
 16019  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 16020  }
 16021  
 16022  // SaleClockAuctionSession is an auto generated Go binding around an Ethereum contract,
 16023  // with pre-set call and transact options.
 16024  type SaleClockAuctionSession struct {
 16025  	Contract     *SaleClockAuction // Generic contract binding to set the session for
 16026  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 16027  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 16028  }
 16029  
 16030  // SaleClockAuctionCallerSession is an auto generated read-only Go binding around an Ethereum contract,
 16031  // with pre-set call options.
 16032  type SaleClockAuctionCallerSession struct {
 16033  	Contract *SaleClockAuctionCaller // Generic contract caller binding to set the session for
 16034  	CallOpts bind.CallOpts           // Call options to use throughout this session
 16035  }
 16036  
 16037  // SaleClockAuctionTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 16038  // with pre-set transact options.
 16039  type SaleClockAuctionTransactorSession struct {
 16040  	Contract     *SaleClockAuctionTransactor // Generic contract transactor binding to set the session for
 16041  	TransactOpts bind.TransactOpts           // Transaction auth options to use throughout this session
 16042  }
 16043  
 16044  // SaleClockAuctionRaw is an auto generated low-level Go binding around an Ethereum contract.
 16045  type SaleClockAuctionRaw struct {
 16046  	Contract *SaleClockAuction // Generic contract binding to access the raw methods on
 16047  }
 16048  
 16049  // SaleClockAuctionCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 16050  type SaleClockAuctionCallerRaw struct {
 16051  	Contract *SaleClockAuctionCaller // Generic read-only contract binding to access the raw methods on
 16052  }
 16053  
 16054  // SaleClockAuctionTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 16055  type SaleClockAuctionTransactorRaw struct {
 16056  	Contract *SaleClockAuctionTransactor // Generic write-only contract binding to access the raw methods on
 16057  }
 16058  
 16059  // NewSaleClockAuction creates a new instance of SaleClockAuction, bound to a specific deployed contract.
 16060  func NewSaleClockAuction(address common.Address, backend bind.ContractBackend) (*SaleClockAuction, error) {
 16061  	contract, err := bindSaleClockAuction(address, backend, backend, backend)
 16062  	if err != nil {
 16063  		return nil, err
 16064  	}
 16065  	return &SaleClockAuction{SaleClockAuctionCaller: SaleClockAuctionCaller{contract: contract}, SaleClockAuctionTransactor: SaleClockAuctionTransactor{contract: contract}, SaleClockAuctionFilterer: SaleClockAuctionFilterer{contract: contract}}, nil
 16066  }
 16067  
 16068  // NewSaleClockAuctionCaller creates a new read-only instance of SaleClockAuction, bound to a specific deployed contract.
 16069  func NewSaleClockAuctionCaller(address common.Address, caller bind.ContractCaller) (*SaleClockAuctionCaller, error) {
 16070  	contract, err := bindSaleClockAuction(address, caller, nil, nil)
 16071  	if err != nil {
 16072  		return nil, err
 16073  	}
 16074  	return &SaleClockAuctionCaller{contract: contract}, nil
 16075  }
 16076  
 16077  // NewSaleClockAuctionTransactor creates a new write-only instance of SaleClockAuction, bound to a specific deployed contract.
 16078  func NewSaleClockAuctionTransactor(address common.Address, transactor bind.ContractTransactor) (*SaleClockAuctionTransactor, error) {
 16079  	contract, err := bindSaleClockAuction(address, nil, transactor, nil)
 16080  	if err != nil {
 16081  		return nil, err
 16082  	}
 16083  	return &SaleClockAuctionTransactor{contract: contract}, nil
 16084  }
 16085  
 16086  // NewSaleClockAuctionFilterer creates a new log filterer instance of SaleClockAuction, bound to a specific deployed contract.
 16087  func NewSaleClockAuctionFilterer(address common.Address, filterer bind.ContractFilterer) (*SaleClockAuctionFilterer, error) {
 16088  	contract, err := bindSaleClockAuction(address, nil, nil, filterer)
 16089  	if err != nil {
 16090  		return nil, err
 16091  	}
 16092  	return &SaleClockAuctionFilterer{contract: contract}, nil
 16093  }
 16094  
 16095  // bindSaleClockAuction binds a generic wrapper to an already deployed contract.
 16096  func bindSaleClockAuction(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 16097  	parsed, err := abi.JSON(strings.NewReader(SaleClockAuctionABI))
 16098  	if err != nil {
 16099  		return nil, err
 16100  	}
 16101  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 16102  }
 16103  
 16104  // Call invokes the (constant) contract method with params as input values and
 16105  // sets the output to result. The result type might be a single field for simple
 16106  // returns, a slice of interfaces for anonymous returns and a struct for named
 16107  // returns.
 16108  func (_SaleClockAuction *SaleClockAuctionRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 16109  	return _SaleClockAuction.Contract.SaleClockAuctionCaller.contract.Call(opts, result, method, params...)
 16110  }
 16111  
 16112  // Transfer initiates a plain transaction to move funds to the contract, calling
 16113  // its default method if one is available.
 16114  func (_SaleClockAuction *SaleClockAuctionRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 16115  	return _SaleClockAuction.Contract.SaleClockAuctionTransactor.contract.Transfer(opts)
 16116  }
 16117  
 16118  // Transact invokes the (paid) contract method with params as input values.
 16119  func (_SaleClockAuction *SaleClockAuctionRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 16120  	return _SaleClockAuction.Contract.SaleClockAuctionTransactor.contract.Transact(opts, method, params...)
 16121  }
 16122  
 16123  // Call invokes the (constant) contract method with params as input values and
 16124  // sets the output to result. The result type might be a single field for simple
 16125  // returns, a slice of interfaces for anonymous returns and a struct for named
 16126  // returns.
 16127  func (_SaleClockAuction *SaleClockAuctionCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 16128  	return _SaleClockAuction.Contract.contract.Call(opts, result, method, params...)
 16129  }
 16130  
 16131  // Transfer initiates a plain transaction to move funds to the contract, calling
 16132  // its default method if one is available.
 16133  func (_SaleClockAuction *SaleClockAuctionTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 16134  	return _SaleClockAuction.Contract.contract.Transfer(opts)
 16135  }
 16136  
 16137  // Transact invokes the (paid) contract method with params as input values.
 16138  func (_SaleClockAuction *SaleClockAuctionTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 16139  	return _SaleClockAuction.Contract.contract.Transact(opts, method, params...)
 16140  }
 16141  
 16142  // AverageGen0SalePrice is a free data retrieval call binding the contract method 0xeac9d94c.
 16143  //
 16144  // Solidity: function averageGen0SalePrice() view returns(uint256)
 16145  func (_SaleClockAuction *SaleClockAuctionCaller) AverageGen0SalePrice(opts *bind.CallOpts) (*big.Int, error) {
 16146  	var out []interface{}
 16147  	err := _SaleClockAuction.contract.Call(opts, &out, "averageGen0SalePrice")
 16148  
 16149  	if err != nil {
 16150  		return *new(*big.Int), err
 16151  	}
 16152  
 16153  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 16154  
 16155  	return out0, err
 16156  
 16157  }
 16158  
 16159  // AverageGen0SalePrice is a free data retrieval call binding the contract method 0xeac9d94c.
 16160  //
 16161  // Solidity: function averageGen0SalePrice() view returns(uint256)
 16162  func (_SaleClockAuction *SaleClockAuctionSession) AverageGen0SalePrice() (*big.Int, error) {
 16163  	return _SaleClockAuction.Contract.AverageGen0SalePrice(&_SaleClockAuction.CallOpts)
 16164  }
 16165  
 16166  // AverageGen0SalePrice is a free data retrieval call binding the contract method 0xeac9d94c.
 16167  //
 16168  // Solidity: function averageGen0SalePrice() view returns(uint256)
 16169  func (_SaleClockAuction *SaleClockAuctionCallerSession) AverageGen0SalePrice() (*big.Int, error) {
 16170  	return _SaleClockAuction.Contract.AverageGen0SalePrice(&_SaleClockAuction.CallOpts)
 16171  }
 16172  
 16173  // Gen0SaleCount is a free data retrieval call binding the contract method 0x8a98a9cc.
 16174  //
 16175  // Solidity: function gen0SaleCount() view returns(uint256)
 16176  func (_SaleClockAuction *SaleClockAuctionCaller) Gen0SaleCount(opts *bind.CallOpts) (*big.Int, error) {
 16177  	var out []interface{}
 16178  	err := _SaleClockAuction.contract.Call(opts, &out, "gen0SaleCount")
 16179  
 16180  	if err != nil {
 16181  		return *new(*big.Int), err
 16182  	}
 16183  
 16184  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 16185  
 16186  	return out0, err
 16187  
 16188  }
 16189  
 16190  // Gen0SaleCount is a free data retrieval call binding the contract method 0x8a98a9cc.
 16191  //
 16192  // Solidity: function gen0SaleCount() view returns(uint256)
 16193  func (_SaleClockAuction *SaleClockAuctionSession) Gen0SaleCount() (*big.Int, error) {
 16194  	return _SaleClockAuction.Contract.Gen0SaleCount(&_SaleClockAuction.CallOpts)
 16195  }
 16196  
 16197  // Gen0SaleCount is a free data retrieval call binding the contract method 0x8a98a9cc.
 16198  //
 16199  // Solidity: function gen0SaleCount() view returns(uint256)
 16200  func (_SaleClockAuction *SaleClockAuctionCallerSession) Gen0SaleCount() (*big.Int, error) {
 16201  	return _SaleClockAuction.Contract.Gen0SaleCount(&_SaleClockAuction.CallOpts)
 16202  }
 16203  
 16204  // GetAuction is a free data retrieval call binding the contract method 0x78bd7935.
 16205  //
 16206  // Solidity: function getAuction(uint256 _tokenId) view returns(address seller, uint256 startingPrice, uint256 endingPrice, uint256 duration, uint256 startedAt)
 16207  func (_SaleClockAuction *SaleClockAuctionCaller) GetAuction(opts *bind.CallOpts, _tokenId *big.Int) (struct {
 16208  	Seller        common.Address
 16209  	StartingPrice *big.Int
 16210  	EndingPrice   *big.Int
 16211  	Duration      *big.Int
 16212  	StartedAt     *big.Int
 16213  }, error) {
 16214  	var out []interface{}
 16215  	err := _SaleClockAuction.contract.Call(opts, &out, "getAuction", _tokenId)
 16216  
 16217  	outstruct := new(struct {
 16218  		Seller        common.Address
 16219  		StartingPrice *big.Int
 16220  		EndingPrice   *big.Int
 16221  		Duration      *big.Int
 16222  		StartedAt     *big.Int
 16223  	})
 16224  
 16225  	outstruct.Seller = out[0].(common.Address)
 16226  	outstruct.StartingPrice = out[1].(*big.Int)
 16227  	outstruct.EndingPrice = out[2].(*big.Int)
 16228  	outstruct.Duration = out[3].(*big.Int)
 16229  	outstruct.StartedAt = out[4].(*big.Int)
 16230  
 16231  	return *outstruct, err
 16232  
 16233  }
 16234  
 16235  // GetAuction is a free data retrieval call binding the contract method 0x78bd7935.
 16236  //
 16237  // Solidity: function getAuction(uint256 _tokenId) view returns(address seller, uint256 startingPrice, uint256 endingPrice, uint256 duration, uint256 startedAt)
 16238  func (_SaleClockAuction *SaleClockAuctionSession) GetAuction(_tokenId *big.Int) (struct {
 16239  	Seller        common.Address
 16240  	StartingPrice *big.Int
 16241  	EndingPrice   *big.Int
 16242  	Duration      *big.Int
 16243  	StartedAt     *big.Int
 16244  }, error) {
 16245  	return _SaleClockAuction.Contract.GetAuction(&_SaleClockAuction.CallOpts, _tokenId)
 16246  }
 16247  
 16248  // GetAuction is a free data retrieval call binding the contract method 0x78bd7935.
 16249  //
 16250  // Solidity: function getAuction(uint256 _tokenId) view returns(address seller, uint256 startingPrice, uint256 endingPrice, uint256 duration, uint256 startedAt)
 16251  func (_SaleClockAuction *SaleClockAuctionCallerSession) GetAuction(_tokenId *big.Int) (struct {
 16252  	Seller        common.Address
 16253  	StartingPrice *big.Int
 16254  	EndingPrice   *big.Int
 16255  	Duration      *big.Int
 16256  	StartedAt     *big.Int
 16257  }, error) {
 16258  	return _SaleClockAuction.Contract.GetAuction(&_SaleClockAuction.CallOpts, _tokenId)
 16259  }
 16260  
 16261  // GetCurrentPrice is a free data retrieval call binding the contract method 0xc55d0f56.
 16262  //
 16263  // Solidity: function getCurrentPrice(uint256 _tokenId) view returns(uint256)
 16264  func (_SaleClockAuction *SaleClockAuctionCaller) GetCurrentPrice(opts *bind.CallOpts, _tokenId *big.Int) (*big.Int, error) {
 16265  	var out []interface{}
 16266  	err := _SaleClockAuction.contract.Call(opts, &out, "getCurrentPrice", _tokenId)
 16267  
 16268  	if err != nil {
 16269  		return *new(*big.Int), err
 16270  	}
 16271  
 16272  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 16273  
 16274  	return out0, err
 16275  
 16276  }
 16277  
 16278  // GetCurrentPrice is a free data retrieval call binding the contract method 0xc55d0f56.
 16279  //
 16280  // Solidity: function getCurrentPrice(uint256 _tokenId) view returns(uint256)
 16281  func (_SaleClockAuction *SaleClockAuctionSession) GetCurrentPrice(_tokenId *big.Int) (*big.Int, error) {
 16282  	return _SaleClockAuction.Contract.GetCurrentPrice(&_SaleClockAuction.CallOpts, _tokenId)
 16283  }
 16284  
 16285  // GetCurrentPrice is a free data retrieval call binding the contract method 0xc55d0f56.
 16286  //
 16287  // Solidity: function getCurrentPrice(uint256 _tokenId) view returns(uint256)
 16288  func (_SaleClockAuction *SaleClockAuctionCallerSession) GetCurrentPrice(_tokenId *big.Int) (*big.Int, error) {
 16289  	return _SaleClockAuction.Contract.GetCurrentPrice(&_SaleClockAuction.CallOpts, _tokenId)
 16290  }
 16291  
 16292  // IsSaleClockAuction is a free data retrieval call binding the contract method 0x85b86188.
 16293  //
 16294  // Solidity: function isSaleClockAuction() view returns(bool)
 16295  func (_SaleClockAuction *SaleClockAuctionCaller) IsSaleClockAuction(opts *bind.CallOpts) (bool, error) {
 16296  	var out []interface{}
 16297  	err := _SaleClockAuction.contract.Call(opts, &out, "isSaleClockAuction")
 16298  
 16299  	if err != nil {
 16300  		return *new(bool), err
 16301  	}
 16302  
 16303  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 16304  
 16305  	return out0, err
 16306  
 16307  }
 16308  
 16309  // IsSaleClockAuction is a free data retrieval call binding the contract method 0x85b86188.
 16310  //
 16311  // Solidity: function isSaleClockAuction() view returns(bool)
 16312  func (_SaleClockAuction *SaleClockAuctionSession) IsSaleClockAuction() (bool, error) {
 16313  	return _SaleClockAuction.Contract.IsSaleClockAuction(&_SaleClockAuction.CallOpts)
 16314  }
 16315  
 16316  // IsSaleClockAuction is a free data retrieval call binding the contract method 0x85b86188.
 16317  //
 16318  // Solidity: function isSaleClockAuction() view returns(bool)
 16319  func (_SaleClockAuction *SaleClockAuctionCallerSession) IsSaleClockAuction() (bool, error) {
 16320  	return _SaleClockAuction.Contract.IsSaleClockAuction(&_SaleClockAuction.CallOpts)
 16321  }
 16322  
 16323  // LastGen0SalePrices is a free data retrieval call binding the contract method 0x484eccb4.
 16324  //
 16325  // Solidity: function lastGen0SalePrices(uint256 ) view returns(uint256)
 16326  func (_SaleClockAuction *SaleClockAuctionCaller) LastGen0SalePrices(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) {
 16327  	var out []interface{}
 16328  	err := _SaleClockAuction.contract.Call(opts, &out, "lastGen0SalePrices", arg0)
 16329  
 16330  	if err != nil {
 16331  		return *new(*big.Int), err
 16332  	}
 16333  
 16334  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 16335  
 16336  	return out0, err
 16337  
 16338  }
 16339  
 16340  // LastGen0SalePrices is a free data retrieval call binding the contract method 0x484eccb4.
 16341  //
 16342  // Solidity: function lastGen0SalePrices(uint256 ) view returns(uint256)
 16343  func (_SaleClockAuction *SaleClockAuctionSession) LastGen0SalePrices(arg0 *big.Int) (*big.Int, error) {
 16344  	return _SaleClockAuction.Contract.LastGen0SalePrices(&_SaleClockAuction.CallOpts, arg0)
 16345  }
 16346  
 16347  // LastGen0SalePrices is a free data retrieval call binding the contract method 0x484eccb4.
 16348  //
 16349  // Solidity: function lastGen0SalePrices(uint256 ) view returns(uint256)
 16350  func (_SaleClockAuction *SaleClockAuctionCallerSession) LastGen0SalePrices(arg0 *big.Int) (*big.Int, error) {
 16351  	return _SaleClockAuction.Contract.LastGen0SalePrices(&_SaleClockAuction.CallOpts, arg0)
 16352  }
 16353  
 16354  // NonFungibleContract is a free data retrieval call binding the contract method 0xdd1b7a0f.
 16355  //
 16356  // Solidity: function nonFungibleContract() view returns(address)
 16357  func (_SaleClockAuction *SaleClockAuctionCaller) NonFungibleContract(opts *bind.CallOpts) (common.Address, error) {
 16358  	var out []interface{}
 16359  	err := _SaleClockAuction.contract.Call(opts, &out, "nonFungibleContract")
 16360  
 16361  	if err != nil {
 16362  		return *new(common.Address), err
 16363  	}
 16364  
 16365  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 16366  
 16367  	return out0, err
 16368  
 16369  }
 16370  
 16371  // NonFungibleContract is a free data retrieval call binding the contract method 0xdd1b7a0f.
 16372  //
 16373  // Solidity: function nonFungibleContract() view returns(address)
 16374  func (_SaleClockAuction *SaleClockAuctionSession) NonFungibleContract() (common.Address, error) {
 16375  	return _SaleClockAuction.Contract.NonFungibleContract(&_SaleClockAuction.CallOpts)
 16376  }
 16377  
 16378  // NonFungibleContract is a free data retrieval call binding the contract method 0xdd1b7a0f.
 16379  //
 16380  // Solidity: function nonFungibleContract() view returns(address)
 16381  func (_SaleClockAuction *SaleClockAuctionCallerSession) NonFungibleContract() (common.Address, error) {
 16382  	return _SaleClockAuction.Contract.NonFungibleContract(&_SaleClockAuction.CallOpts)
 16383  }
 16384  
 16385  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 16386  //
 16387  // Solidity: function owner() view returns(address)
 16388  func (_SaleClockAuction *SaleClockAuctionCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
 16389  	var out []interface{}
 16390  	err := _SaleClockAuction.contract.Call(opts, &out, "owner")
 16391  
 16392  	if err != nil {
 16393  		return *new(common.Address), err
 16394  	}
 16395  
 16396  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 16397  
 16398  	return out0, err
 16399  
 16400  }
 16401  
 16402  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 16403  //
 16404  // Solidity: function owner() view returns(address)
 16405  func (_SaleClockAuction *SaleClockAuctionSession) Owner() (common.Address, error) {
 16406  	return _SaleClockAuction.Contract.Owner(&_SaleClockAuction.CallOpts)
 16407  }
 16408  
 16409  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 16410  //
 16411  // Solidity: function owner() view returns(address)
 16412  func (_SaleClockAuction *SaleClockAuctionCallerSession) Owner() (common.Address, error) {
 16413  	return _SaleClockAuction.Contract.Owner(&_SaleClockAuction.CallOpts)
 16414  }
 16415  
 16416  // OwnerCut is a free data retrieval call binding the contract method 0x83b5ff8b.
 16417  //
 16418  // Solidity: function ownerCut() view returns(uint256)
 16419  func (_SaleClockAuction *SaleClockAuctionCaller) OwnerCut(opts *bind.CallOpts) (*big.Int, error) {
 16420  	var out []interface{}
 16421  	err := _SaleClockAuction.contract.Call(opts, &out, "ownerCut")
 16422  
 16423  	if err != nil {
 16424  		return *new(*big.Int), err
 16425  	}
 16426  
 16427  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 16428  
 16429  	return out0, err
 16430  
 16431  }
 16432  
 16433  // OwnerCut is a free data retrieval call binding the contract method 0x83b5ff8b.
 16434  //
 16435  // Solidity: function ownerCut() view returns(uint256)
 16436  func (_SaleClockAuction *SaleClockAuctionSession) OwnerCut() (*big.Int, error) {
 16437  	return _SaleClockAuction.Contract.OwnerCut(&_SaleClockAuction.CallOpts)
 16438  }
 16439  
 16440  // OwnerCut is a free data retrieval call binding the contract method 0x83b5ff8b.
 16441  //
 16442  // Solidity: function ownerCut() view returns(uint256)
 16443  func (_SaleClockAuction *SaleClockAuctionCallerSession) OwnerCut() (*big.Int, error) {
 16444  	return _SaleClockAuction.Contract.OwnerCut(&_SaleClockAuction.CallOpts)
 16445  }
 16446  
 16447  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
 16448  //
 16449  // Solidity: function paused() view returns(bool)
 16450  func (_SaleClockAuction *SaleClockAuctionCaller) Paused(opts *bind.CallOpts) (bool, error) {
 16451  	var out []interface{}
 16452  	err := _SaleClockAuction.contract.Call(opts, &out, "paused")
 16453  
 16454  	if err != nil {
 16455  		return *new(bool), err
 16456  	}
 16457  
 16458  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 16459  
 16460  	return out0, err
 16461  
 16462  }
 16463  
 16464  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
 16465  //
 16466  // Solidity: function paused() view returns(bool)
 16467  func (_SaleClockAuction *SaleClockAuctionSession) Paused() (bool, error) {
 16468  	return _SaleClockAuction.Contract.Paused(&_SaleClockAuction.CallOpts)
 16469  }
 16470  
 16471  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
 16472  //
 16473  // Solidity: function paused() view returns(bool)
 16474  func (_SaleClockAuction *SaleClockAuctionCallerSession) Paused() (bool, error) {
 16475  	return _SaleClockAuction.Contract.Paused(&_SaleClockAuction.CallOpts)
 16476  }
 16477  
 16478  // Bid is a paid mutator transaction binding the contract method 0x454a2ab3.
 16479  //
 16480  // Solidity: function bid(uint256 _tokenId) payable returns()
 16481  func (_SaleClockAuction *SaleClockAuctionTransactor) Bid(opts *bind.TransactOpts, _tokenId *big.Int) (*types.Transaction, error) {
 16482  	return _SaleClockAuction.contract.Transact(opts, "bid", _tokenId)
 16483  }
 16484  
 16485  // Bid is a paid mutator transaction binding the contract method 0x454a2ab3.
 16486  //
 16487  // Solidity: function bid(uint256 _tokenId) payable returns()
 16488  func (_SaleClockAuction *SaleClockAuctionSession) Bid(_tokenId *big.Int) (*types.Transaction, error) {
 16489  	return _SaleClockAuction.Contract.Bid(&_SaleClockAuction.TransactOpts, _tokenId)
 16490  }
 16491  
 16492  // Bid is a paid mutator transaction binding the contract method 0x454a2ab3.
 16493  //
 16494  // Solidity: function bid(uint256 _tokenId) payable returns()
 16495  func (_SaleClockAuction *SaleClockAuctionTransactorSession) Bid(_tokenId *big.Int) (*types.Transaction, error) {
 16496  	return _SaleClockAuction.Contract.Bid(&_SaleClockAuction.TransactOpts, _tokenId)
 16497  }
 16498  
 16499  // CancelAuction is a paid mutator transaction binding the contract method 0x96b5a755.
 16500  //
 16501  // Solidity: function cancelAuction(uint256 _tokenId) returns()
 16502  func (_SaleClockAuction *SaleClockAuctionTransactor) CancelAuction(opts *bind.TransactOpts, _tokenId *big.Int) (*types.Transaction, error) {
 16503  	return _SaleClockAuction.contract.Transact(opts, "cancelAuction", _tokenId)
 16504  }
 16505  
 16506  // CancelAuction is a paid mutator transaction binding the contract method 0x96b5a755.
 16507  //
 16508  // Solidity: function cancelAuction(uint256 _tokenId) returns()
 16509  func (_SaleClockAuction *SaleClockAuctionSession) CancelAuction(_tokenId *big.Int) (*types.Transaction, error) {
 16510  	return _SaleClockAuction.Contract.CancelAuction(&_SaleClockAuction.TransactOpts, _tokenId)
 16511  }
 16512  
 16513  // CancelAuction is a paid mutator transaction binding the contract method 0x96b5a755.
 16514  //
 16515  // Solidity: function cancelAuction(uint256 _tokenId) returns()
 16516  func (_SaleClockAuction *SaleClockAuctionTransactorSession) CancelAuction(_tokenId *big.Int) (*types.Transaction, error) {
 16517  	return _SaleClockAuction.Contract.CancelAuction(&_SaleClockAuction.TransactOpts, _tokenId)
 16518  }
 16519  
 16520  // CancelAuctionWhenPaused is a paid mutator transaction binding the contract method 0x878eb368.
 16521  //
 16522  // Solidity: function cancelAuctionWhenPaused(uint256 _tokenId) returns()
 16523  func (_SaleClockAuction *SaleClockAuctionTransactor) CancelAuctionWhenPaused(opts *bind.TransactOpts, _tokenId *big.Int) (*types.Transaction, error) {
 16524  	return _SaleClockAuction.contract.Transact(opts, "cancelAuctionWhenPaused", _tokenId)
 16525  }
 16526  
 16527  // CancelAuctionWhenPaused is a paid mutator transaction binding the contract method 0x878eb368.
 16528  //
 16529  // Solidity: function cancelAuctionWhenPaused(uint256 _tokenId) returns()
 16530  func (_SaleClockAuction *SaleClockAuctionSession) CancelAuctionWhenPaused(_tokenId *big.Int) (*types.Transaction, error) {
 16531  	return _SaleClockAuction.Contract.CancelAuctionWhenPaused(&_SaleClockAuction.TransactOpts, _tokenId)
 16532  }
 16533  
 16534  // CancelAuctionWhenPaused is a paid mutator transaction binding the contract method 0x878eb368.
 16535  //
 16536  // Solidity: function cancelAuctionWhenPaused(uint256 _tokenId) returns()
 16537  func (_SaleClockAuction *SaleClockAuctionTransactorSession) CancelAuctionWhenPaused(_tokenId *big.Int) (*types.Transaction, error) {
 16538  	return _SaleClockAuction.Contract.CancelAuctionWhenPaused(&_SaleClockAuction.TransactOpts, _tokenId)
 16539  }
 16540  
 16541  // CreateAuction is a paid mutator transaction binding the contract method 0x27ebe40a.
 16542  //
 16543  // Solidity: function createAuction(uint256 _tokenId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration, address _seller) returns()
 16544  func (_SaleClockAuction *SaleClockAuctionTransactor) CreateAuction(opts *bind.TransactOpts, _tokenId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int, _seller common.Address) (*types.Transaction, error) {
 16545  	return _SaleClockAuction.contract.Transact(opts, "createAuction", _tokenId, _startingPrice, _endingPrice, _duration, _seller)
 16546  }
 16547  
 16548  // CreateAuction is a paid mutator transaction binding the contract method 0x27ebe40a.
 16549  //
 16550  // Solidity: function createAuction(uint256 _tokenId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration, address _seller) returns()
 16551  func (_SaleClockAuction *SaleClockAuctionSession) CreateAuction(_tokenId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int, _seller common.Address) (*types.Transaction, error) {
 16552  	return _SaleClockAuction.Contract.CreateAuction(&_SaleClockAuction.TransactOpts, _tokenId, _startingPrice, _endingPrice, _duration, _seller)
 16553  }
 16554  
 16555  // CreateAuction is a paid mutator transaction binding the contract method 0x27ebe40a.
 16556  //
 16557  // Solidity: function createAuction(uint256 _tokenId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration, address _seller) returns()
 16558  func (_SaleClockAuction *SaleClockAuctionTransactorSession) CreateAuction(_tokenId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int, _seller common.Address) (*types.Transaction, error) {
 16559  	return _SaleClockAuction.Contract.CreateAuction(&_SaleClockAuction.TransactOpts, _tokenId, _startingPrice, _endingPrice, _duration, _seller)
 16560  }
 16561  
 16562  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
 16563  //
 16564  // Solidity: function pause() returns(bool)
 16565  func (_SaleClockAuction *SaleClockAuctionTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) {
 16566  	return _SaleClockAuction.contract.Transact(opts, "pause")
 16567  }
 16568  
 16569  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
 16570  //
 16571  // Solidity: function pause() returns(bool)
 16572  func (_SaleClockAuction *SaleClockAuctionSession) Pause() (*types.Transaction, error) {
 16573  	return _SaleClockAuction.Contract.Pause(&_SaleClockAuction.TransactOpts)
 16574  }
 16575  
 16576  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
 16577  //
 16578  // Solidity: function pause() returns(bool)
 16579  func (_SaleClockAuction *SaleClockAuctionTransactorSession) Pause() (*types.Transaction, error) {
 16580  	return _SaleClockAuction.Contract.Pause(&_SaleClockAuction.TransactOpts)
 16581  }
 16582  
 16583  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 16584  //
 16585  // Solidity: function transferOwnership(address newOwner) returns()
 16586  func (_SaleClockAuction *SaleClockAuctionTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
 16587  	return _SaleClockAuction.contract.Transact(opts, "transferOwnership", newOwner)
 16588  }
 16589  
 16590  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 16591  //
 16592  // Solidity: function transferOwnership(address newOwner) returns()
 16593  func (_SaleClockAuction *SaleClockAuctionSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 16594  	return _SaleClockAuction.Contract.TransferOwnership(&_SaleClockAuction.TransactOpts, newOwner)
 16595  }
 16596  
 16597  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 16598  //
 16599  // Solidity: function transferOwnership(address newOwner) returns()
 16600  func (_SaleClockAuction *SaleClockAuctionTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 16601  	return _SaleClockAuction.Contract.TransferOwnership(&_SaleClockAuction.TransactOpts, newOwner)
 16602  }
 16603  
 16604  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
 16605  //
 16606  // Solidity: function unpause() returns(bool)
 16607  func (_SaleClockAuction *SaleClockAuctionTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) {
 16608  	return _SaleClockAuction.contract.Transact(opts, "unpause")
 16609  }
 16610  
 16611  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
 16612  //
 16613  // Solidity: function unpause() returns(bool)
 16614  func (_SaleClockAuction *SaleClockAuctionSession) Unpause() (*types.Transaction, error) {
 16615  	return _SaleClockAuction.Contract.Unpause(&_SaleClockAuction.TransactOpts)
 16616  }
 16617  
 16618  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
 16619  //
 16620  // Solidity: function unpause() returns(bool)
 16621  func (_SaleClockAuction *SaleClockAuctionTransactorSession) Unpause() (*types.Transaction, error) {
 16622  	return _SaleClockAuction.Contract.Unpause(&_SaleClockAuction.TransactOpts)
 16623  }
 16624  
 16625  // WithdrawBalance is a paid mutator transaction binding the contract method 0x5fd8c710.
 16626  //
 16627  // Solidity: function withdrawBalance() returns()
 16628  func (_SaleClockAuction *SaleClockAuctionTransactor) WithdrawBalance(opts *bind.TransactOpts) (*types.Transaction, error) {
 16629  	return _SaleClockAuction.contract.Transact(opts, "withdrawBalance")
 16630  }
 16631  
 16632  // WithdrawBalance is a paid mutator transaction binding the contract method 0x5fd8c710.
 16633  //
 16634  // Solidity: function withdrawBalance() returns()
 16635  func (_SaleClockAuction *SaleClockAuctionSession) WithdrawBalance() (*types.Transaction, error) {
 16636  	return _SaleClockAuction.Contract.WithdrawBalance(&_SaleClockAuction.TransactOpts)
 16637  }
 16638  
 16639  // WithdrawBalance is a paid mutator transaction binding the contract method 0x5fd8c710.
 16640  //
 16641  // Solidity: function withdrawBalance() returns()
 16642  func (_SaleClockAuction *SaleClockAuctionTransactorSession) WithdrawBalance() (*types.Transaction, error) {
 16643  	return _SaleClockAuction.Contract.WithdrawBalance(&_SaleClockAuction.TransactOpts)
 16644  }
 16645  
 16646  // SaleClockAuctionAuctionCancelledIterator is returned from FilterAuctionCancelled and is used to iterate over the raw logs and unpacked data for AuctionCancelled events raised by the SaleClockAuction contract.
 16647  type SaleClockAuctionAuctionCancelledIterator struct {
 16648  	Event *SaleClockAuctionAuctionCancelled // Event containing the contract specifics and raw log
 16649  
 16650  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 16651  	event    string              // Event name to use for unpacking event data
 16652  
 16653  	logs chan types.Log        // Log channel receiving the found contract events
 16654  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 16655  	done bool                  // Whether the subscription completed delivering logs
 16656  	fail error                 // Occurred error to stop iteration
 16657  }
 16658  
 16659  // Next advances the iterator to the subsequent event, returning whether there
 16660  // are any more events found. In case of a retrieval or parsing error, false is
 16661  // returned and Error() can be queried for the exact failure.
 16662  func (it *SaleClockAuctionAuctionCancelledIterator) Next() bool {
 16663  	// If the iterator failed, stop iterating
 16664  	if it.fail != nil {
 16665  		return false
 16666  	}
 16667  	// If the iterator completed, deliver directly whatever's available
 16668  	if it.done {
 16669  		select {
 16670  		case log := <-it.logs:
 16671  			it.Event = new(SaleClockAuctionAuctionCancelled)
 16672  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16673  				it.fail = err
 16674  				return false
 16675  			}
 16676  			it.Event.Raw = log
 16677  			return true
 16678  
 16679  		default:
 16680  			return false
 16681  		}
 16682  	}
 16683  	// Iterator still in progress, wait for either a data or an error event
 16684  	select {
 16685  	case log := <-it.logs:
 16686  		it.Event = new(SaleClockAuctionAuctionCancelled)
 16687  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16688  			it.fail = err
 16689  			return false
 16690  		}
 16691  		it.Event.Raw = log
 16692  		return true
 16693  
 16694  	case err := <-it.sub.Err():
 16695  		it.done = true
 16696  		it.fail = err
 16697  		return it.Next()
 16698  	}
 16699  }
 16700  
 16701  // Error returns any retrieval or parsing error occurred during filtering.
 16702  func (it *SaleClockAuctionAuctionCancelledIterator) Error() error {
 16703  	return it.fail
 16704  }
 16705  
 16706  // Close terminates the iteration process, releasing any pending underlying
 16707  // resources.
 16708  func (it *SaleClockAuctionAuctionCancelledIterator) Close() error {
 16709  	it.sub.Unsubscribe()
 16710  	return nil
 16711  }
 16712  
 16713  // SaleClockAuctionAuctionCancelled represents a AuctionCancelled event raised by the SaleClockAuction contract.
 16714  type SaleClockAuctionAuctionCancelled struct {
 16715  	TokenId *big.Int
 16716  	Raw     types.Log // Blockchain specific contextual infos
 16717  }
 16718  
 16719  // FilterAuctionCancelled is a free log retrieval operation binding the contract event 0x2809c7e17bf978fbc7194c0a694b638c4215e9140cacc6c38ca36010b45697df.
 16720  //
 16721  // Solidity: event AuctionCancelled(uint256 tokenId)
 16722  func (_SaleClockAuction *SaleClockAuctionFilterer) FilterAuctionCancelled(opts *bind.FilterOpts) (*SaleClockAuctionAuctionCancelledIterator, error) {
 16723  
 16724  	logs, sub, err := _SaleClockAuction.contract.FilterLogs(opts, "AuctionCancelled")
 16725  	if err != nil {
 16726  		return nil, err
 16727  	}
 16728  	return &SaleClockAuctionAuctionCancelledIterator{contract: _SaleClockAuction.contract, event: "AuctionCancelled", logs: logs, sub: sub}, nil
 16729  }
 16730  
 16731  // WatchAuctionCancelled is a free log subscription operation binding the contract event 0x2809c7e17bf978fbc7194c0a694b638c4215e9140cacc6c38ca36010b45697df.
 16732  //
 16733  // Solidity: event AuctionCancelled(uint256 tokenId)
 16734  func (_SaleClockAuction *SaleClockAuctionFilterer) WatchAuctionCancelled(opts *bind.WatchOpts, sink chan<- *SaleClockAuctionAuctionCancelled) (event.Subscription, error) {
 16735  
 16736  	logs, sub, err := _SaleClockAuction.contract.WatchLogs(opts, "AuctionCancelled")
 16737  	if err != nil {
 16738  		return nil, err
 16739  	}
 16740  	return event.NewSubscription(func(quit <-chan struct{}) error {
 16741  		defer sub.Unsubscribe()
 16742  		for {
 16743  			select {
 16744  			case log := <-logs:
 16745  				// New log arrived, parse the event and forward to the user
 16746  				event := new(SaleClockAuctionAuctionCancelled)
 16747  				if err := _SaleClockAuction.contract.UnpackLog(event, "AuctionCancelled", log); err != nil {
 16748  					return err
 16749  				}
 16750  				event.Raw = log
 16751  
 16752  				select {
 16753  				case sink <- event:
 16754  				case err := <-sub.Err():
 16755  					return err
 16756  				case <-quit:
 16757  					return nil
 16758  				}
 16759  			case err := <-sub.Err():
 16760  				return err
 16761  			case <-quit:
 16762  				return nil
 16763  			}
 16764  		}
 16765  	}), nil
 16766  }
 16767  
 16768  // ParseAuctionCancelled is a log parse operation binding the contract event 0x2809c7e17bf978fbc7194c0a694b638c4215e9140cacc6c38ca36010b45697df.
 16769  //
 16770  // Solidity: event AuctionCancelled(uint256 tokenId)
 16771  func (_SaleClockAuction *SaleClockAuctionFilterer) ParseAuctionCancelled(log types.Log) (*SaleClockAuctionAuctionCancelled, error) {
 16772  	event := new(SaleClockAuctionAuctionCancelled)
 16773  	if err := _SaleClockAuction.contract.UnpackLog(event, "AuctionCancelled", log); err != nil {
 16774  		return nil, err
 16775  	}
 16776  	event.Raw = log
 16777  	return event, nil
 16778  }
 16779  
 16780  // SaleClockAuctionAuctionCreatedIterator is returned from FilterAuctionCreated and is used to iterate over the raw logs and unpacked data for AuctionCreated events raised by the SaleClockAuction contract.
 16781  type SaleClockAuctionAuctionCreatedIterator struct {
 16782  	Event *SaleClockAuctionAuctionCreated // Event containing the contract specifics and raw log
 16783  
 16784  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 16785  	event    string              // Event name to use for unpacking event data
 16786  
 16787  	logs chan types.Log        // Log channel receiving the found contract events
 16788  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 16789  	done bool                  // Whether the subscription completed delivering logs
 16790  	fail error                 // Occurred error to stop iteration
 16791  }
 16792  
 16793  // Next advances the iterator to the subsequent event, returning whether there
 16794  // are any more events found. In case of a retrieval or parsing error, false is
 16795  // returned and Error() can be queried for the exact failure.
 16796  func (it *SaleClockAuctionAuctionCreatedIterator) Next() bool {
 16797  	// If the iterator failed, stop iterating
 16798  	if it.fail != nil {
 16799  		return false
 16800  	}
 16801  	// If the iterator completed, deliver directly whatever's available
 16802  	if it.done {
 16803  		select {
 16804  		case log := <-it.logs:
 16805  			it.Event = new(SaleClockAuctionAuctionCreated)
 16806  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16807  				it.fail = err
 16808  				return false
 16809  			}
 16810  			it.Event.Raw = log
 16811  			return true
 16812  
 16813  		default:
 16814  			return false
 16815  		}
 16816  	}
 16817  	// Iterator still in progress, wait for either a data or an error event
 16818  	select {
 16819  	case log := <-it.logs:
 16820  		it.Event = new(SaleClockAuctionAuctionCreated)
 16821  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16822  			it.fail = err
 16823  			return false
 16824  		}
 16825  		it.Event.Raw = log
 16826  		return true
 16827  
 16828  	case err := <-it.sub.Err():
 16829  		it.done = true
 16830  		it.fail = err
 16831  		return it.Next()
 16832  	}
 16833  }
 16834  
 16835  // Error returns any retrieval or parsing error occurred during filtering.
 16836  func (it *SaleClockAuctionAuctionCreatedIterator) Error() error {
 16837  	return it.fail
 16838  }
 16839  
 16840  // Close terminates the iteration process, releasing any pending underlying
 16841  // resources.
 16842  func (it *SaleClockAuctionAuctionCreatedIterator) Close() error {
 16843  	it.sub.Unsubscribe()
 16844  	return nil
 16845  }
 16846  
 16847  // SaleClockAuctionAuctionCreated represents a AuctionCreated event raised by the SaleClockAuction contract.
 16848  type SaleClockAuctionAuctionCreated struct {
 16849  	TokenId       *big.Int
 16850  	StartingPrice *big.Int
 16851  	EndingPrice   *big.Int
 16852  	Duration      *big.Int
 16853  	Raw           types.Log // Blockchain specific contextual infos
 16854  }
 16855  
 16856  // FilterAuctionCreated is a free log retrieval operation binding the contract event 0xa9c8dfcda5664a5a124c713e386da27de87432d5b668e79458501eb296389ba7.
 16857  //
 16858  // Solidity: event AuctionCreated(uint256 tokenId, uint256 startingPrice, uint256 endingPrice, uint256 duration)
 16859  func (_SaleClockAuction *SaleClockAuctionFilterer) FilterAuctionCreated(opts *bind.FilterOpts) (*SaleClockAuctionAuctionCreatedIterator, error) {
 16860  
 16861  	logs, sub, err := _SaleClockAuction.contract.FilterLogs(opts, "AuctionCreated")
 16862  	if err != nil {
 16863  		return nil, err
 16864  	}
 16865  	return &SaleClockAuctionAuctionCreatedIterator{contract: _SaleClockAuction.contract, event: "AuctionCreated", logs: logs, sub: sub}, nil
 16866  }
 16867  
 16868  // WatchAuctionCreated is a free log subscription operation binding the contract event 0xa9c8dfcda5664a5a124c713e386da27de87432d5b668e79458501eb296389ba7.
 16869  //
 16870  // Solidity: event AuctionCreated(uint256 tokenId, uint256 startingPrice, uint256 endingPrice, uint256 duration)
 16871  func (_SaleClockAuction *SaleClockAuctionFilterer) WatchAuctionCreated(opts *bind.WatchOpts, sink chan<- *SaleClockAuctionAuctionCreated) (event.Subscription, error) {
 16872  
 16873  	logs, sub, err := _SaleClockAuction.contract.WatchLogs(opts, "AuctionCreated")
 16874  	if err != nil {
 16875  		return nil, err
 16876  	}
 16877  	return event.NewSubscription(func(quit <-chan struct{}) error {
 16878  		defer sub.Unsubscribe()
 16879  		for {
 16880  			select {
 16881  			case log := <-logs:
 16882  				// New log arrived, parse the event and forward to the user
 16883  				event := new(SaleClockAuctionAuctionCreated)
 16884  				if err := _SaleClockAuction.contract.UnpackLog(event, "AuctionCreated", log); err != nil {
 16885  					return err
 16886  				}
 16887  				event.Raw = log
 16888  
 16889  				select {
 16890  				case sink <- event:
 16891  				case err := <-sub.Err():
 16892  					return err
 16893  				case <-quit:
 16894  					return nil
 16895  				}
 16896  			case err := <-sub.Err():
 16897  				return err
 16898  			case <-quit:
 16899  				return nil
 16900  			}
 16901  		}
 16902  	}), nil
 16903  }
 16904  
 16905  // ParseAuctionCreated is a log parse operation binding the contract event 0xa9c8dfcda5664a5a124c713e386da27de87432d5b668e79458501eb296389ba7.
 16906  //
 16907  // Solidity: event AuctionCreated(uint256 tokenId, uint256 startingPrice, uint256 endingPrice, uint256 duration)
 16908  func (_SaleClockAuction *SaleClockAuctionFilterer) ParseAuctionCreated(log types.Log) (*SaleClockAuctionAuctionCreated, error) {
 16909  	event := new(SaleClockAuctionAuctionCreated)
 16910  	if err := _SaleClockAuction.contract.UnpackLog(event, "AuctionCreated", log); err != nil {
 16911  		return nil, err
 16912  	}
 16913  	event.Raw = log
 16914  	return event, nil
 16915  }
 16916  
 16917  // SaleClockAuctionAuctionSuccessfulIterator is returned from FilterAuctionSuccessful and is used to iterate over the raw logs and unpacked data for AuctionSuccessful events raised by the SaleClockAuction contract.
 16918  type SaleClockAuctionAuctionSuccessfulIterator struct {
 16919  	Event *SaleClockAuctionAuctionSuccessful // Event containing the contract specifics and raw log
 16920  
 16921  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 16922  	event    string              // Event name to use for unpacking event data
 16923  
 16924  	logs chan types.Log        // Log channel receiving the found contract events
 16925  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 16926  	done bool                  // Whether the subscription completed delivering logs
 16927  	fail error                 // Occurred error to stop iteration
 16928  }
 16929  
 16930  // Next advances the iterator to the subsequent event, returning whether there
 16931  // are any more events found. In case of a retrieval or parsing error, false is
 16932  // returned and Error() can be queried for the exact failure.
 16933  func (it *SaleClockAuctionAuctionSuccessfulIterator) Next() bool {
 16934  	// If the iterator failed, stop iterating
 16935  	if it.fail != nil {
 16936  		return false
 16937  	}
 16938  	// If the iterator completed, deliver directly whatever's available
 16939  	if it.done {
 16940  		select {
 16941  		case log := <-it.logs:
 16942  			it.Event = new(SaleClockAuctionAuctionSuccessful)
 16943  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16944  				it.fail = err
 16945  				return false
 16946  			}
 16947  			it.Event.Raw = log
 16948  			return true
 16949  
 16950  		default:
 16951  			return false
 16952  		}
 16953  	}
 16954  	// Iterator still in progress, wait for either a data or an error event
 16955  	select {
 16956  	case log := <-it.logs:
 16957  		it.Event = new(SaleClockAuctionAuctionSuccessful)
 16958  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16959  			it.fail = err
 16960  			return false
 16961  		}
 16962  		it.Event.Raw = log
 16963  		return true
 16964  
 16965  	case err := <-it.sub.Err():
 16966  		it.done = true
 16967  		it.fail = err
 16968  		return it.Next()
 16969  	}
 16970  }
 16971  
 16972  // Error returns any retrieval or parsing error occurred during filtering.
 16973  func (it *SaleClockAuctionAuctionSuccessfulIterator) Error() error {
 16974  	return it.fail
 16975  }
 16976  
 16977  // Close terminates the iteration process, releasing any pending underlying
 16978  // resources.
 16979  func (it *SaleClockAuctionAuctionSuccessfulIterator) Close() error {
 16980  	it.sub.Unsubscribe()
 16981  	return nil
 16982  }
 16983  
 16984  // SaleClockAuctionAuctionSuccessful represents a AuctionSuccessful event raised by the SaleClockAuction contract.
 16985  type SaleClockAuctionAuctionSuccessful struct {
 16986  	TokenId    *big.Int
 16987  	TotalPrice *big.Int
 16988  	Winner     common.Address
 16989  	Raw        types.Log // Blockchain specific contextual infos
 16990  }
 16991  
 16992  // FilterAuctionSuccessful is a free log retrieval operation binding the contract event 0x4fcc30d90a842164dd58501ab874a101a3749c3d4747139cefe7c876f4ccebd2.
 16993  //
 16994  // Solidity: event AuctionSuccessful(uint256 tokenId, uint256 totalPrice, address winner)
 16995  func (_SaleClockAuction *SaleClockAuctionFilterer) FilterAuctionSuccessful(opts *bind.FilterOpts) (*SaleClockAuctionAuctionSuccessfulIterator, error) {
 16996  
 16997  	logs, sub, err := _SaleClockAuction.contract.FilterLogs(opts, "AuctionSuccessful")
 16998  	if err != nil {
 16999  		return nil, err
 17000  	}
 17001  	return &SaleClockAuctionAuctionSuccessfulIterator{contract: _SaleClockAuction.contract, event: "AuctionSuccessful", logs: logs, sub: sub}, nil
 17002  }
 17003  
 17004  // WatchAuctionSuccessful is a free log subscription operation binding the contract event 0x4fcc30d90a842164dd58501ab874a101a3749c3d4747139cefe7c876f4ccebd2.
 17005  //
 17006  // Solidity: event AuctionSuccessful(uint256 tokenId, uint256 totalPrice, address winner)
 17007  func (_SaleClockAuction *SaleClockAuctionFilterer) WatchAuctionSuccessful(opts *bind.WatchOpts, sink chan<- *SaleClockAuctionAuctionSuccessful) (event.Subscription, error) {
 17008  
 17009  	logs, sub, err := _SaleClockAuction.contract.WatchLogs(opts, "AuctionSuccessful")
 17010  	if err != nil {
 17011  		return nil, err
 17012  	}
 17013  	return event.NewSubscription(func(quit <-chan struct{}) error {
 17014  		defer sub.Unsubscribe()
 17015  		for {
 17016  			select {
 17017  			case log := <-logs:
 17018  				// New log arrived, parse the event and forward to the user
 17019  				event := new(SaleClockAuctionAuctionSuccessful)
 17020  				if err := _SaleClockAuction.contract.UnpackLog(event, "AuctionSuccessful", log); err != nil {
 17021  					return err
 17022  				}
 17023  				event.Raw = log
 17024  
 17025  				select {
 17026  				case sink <- event:
 17027  				case err := <-sub.Err():
 17028  					return err
 17029  				case <-quit:
 17030  					return nil
 17031  				}
 17032  			case err := <-sub.Err():
 17033  				return err
 17034  			case <-quit:
 17035  				return nil
 17036  			}
 17037  		}
 17038  	}), nil
 17039  }
 17040  
 17041  // ParseAuctionSuccessful is a log parse operation binding the contract event 0x4fcc30d90a842164dd58501ab874a101a3749c3d4747139cefe7c876f4ccebd2.
 17042  //
 17043  // Solidity: event AuctionSuccessful(uint256 tokenId, uint256 totalPrice, address winner)
 17044  func (_SaleClockAuction *SaleClockAuctionFilterer) ParseAuctionSuccessful(log types.Log) (*SaleClockAuctionAuctionSuccessful, error) {
 17045  	event := new(SaleClockAuctionAuctionSuccessful)
 17046  	if err := _SaleClockAuction.contract.UnpackLog(event, "AuctionSuccessful", log); err != nil {
 17047  		return nil, err
 17048  	}
 17049  	event.Raw = log
 17050  	return event, nil
 17051  }
 17052  
 17053  // SaleClockAuctionPauseIterator is returned from FilterPause and is used to iterate over the raw logs and unpacked data for Pause events raised by the SaleClockAuction contract.
 17054  type SaleClockAuctionPauseIterator struct {
 17055  	Event *SaleClockAuctionPause // Event containing the contract specifics and raw log
 17056  
 17057  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 17058  	event    string              // Event name to use for unpacking event data
 17059  
 17060  	logs chan types.Log        // Log channel receiving the found contract events
 17061  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 17062  	done bool                  // Whether the subscription completed delivering logs
 17063  	fail error                 // Occurred error to stop iteration
 17064  }
 17065  
 17066  // Next advances the iterator to the subsequent event, returning whether there
 17067  // are any more events found. In case of a retrieval or parsing error, false is
 17068  // returned and Error() can be queried for the exact failure.
 17069  func (it *SaleClockAuctionPauseIterator) Next() bool {
 17070  	// If the iterator failed, stop iterating
 17071  	if it.fail != nil {
 17072  		return false
 17073  	}
 17074  	// If the iterator completed, deliver directly whatever's available
 17075  	if it.done {
 17076  		select {
 17077  		case log := <-it.logs:
 17078  			it.Event = new(SaleClockAuctionPause)
 17079  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 17080  				it.fail = err
 17081  				return false
 17082  			}
 17083  			it.Event.Raw = log
 17084  			return true
 17085  
 17086  		default:
 17087  			return false
 17088  		}
 17089  	}
 17090  	// Iterator still in progress, wait for either a data or an error event
 17091  	select {
 17092  	case log := <-it.logs:
 17093  		it.Event = new(SaleClockAuctionPause)
 17094  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 17095  			it.fail = err
 17096  			return false
 17097  		}
 17098  		it.Event.Raw = log
 17099  		return true
 17100  
 17101  	case err := <-it.sub.Err():
 17102  		it.done = true
 17103  		it.fail = err
 17104  		return it.Next()
 17105  	}
 17106  }
 17107  
 17108  // Error returns any retrieval or parsing error occurred during filtering.
 17109  func (it *SaleClockAuctionPauseIterator) Error() error {
 17110  	return it.fail
 17111  }
 17112  
 17113  // Close terminates the iteration process, releasing any pending underlying
 17114  // resources.
 17115  func (it *SaleClockAuctionPauseIterator) Close() error {
 17116  	it.sub.Unsubscribe()
 17117  	return nil
 17118  }
 17119  
 17120  // SaleClockAuctionPause represents a Pause event raised by the SaleClockAuction contract.
 17121  type SaleClockAuctionPause struct {
 17122  	Raw types.Log // Blockchain specific contextual infos
 17123  }
 17124  
 17125  // FilterPause is a free log retrieval operation binding the contract event 0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625.
 17126  //
 17127  // Solidity: event Pause()
 17128  func (_SaleClockAuction *SaleClockAuctionFilterer) FilterPause(opts *bind.FilterOpts) (*SaleClockAuctionPauseIterator, error) {
 17129  
 17130  	logs, sub, err := _SaleClockAuction.contract.FilterLogs(opts, "Pause")
 17131  	if err != nil {
 17132  		return nil, err
 17133  	}
 17134  	return &SaleClockAuctionPauseIterator{contract: _SaleClockAuction.contract, event: "Pause", logs: logs, sub: sub}, nil
 17135  }
 17136  
 17137  // WatchPause is a free log subscription operation binding the contract event 0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625.
 17138  //
 17139  // Solidity: event Pause()
 17140  func (_SaleClockAuction *SaleClockAuctionFilterer) WatchPause(opts *bind.WatchOpts, sink chan<- *SaleClockAuctionPause) (event.Subscription, error) {
 17141  
 17142  	logs, sub, err := _SaleClockAuction.contract.WatchLogs(opts, "Pause")
 17143  	if err != nil {
 17144  		return nil, err
 17145  	}
 17146  	return event.NewSubscription(func(quit <-chan struct{}) error {
 17147  		defer sub.Unsubscribe()
 17148  		for {
 17149  			select {
 17150  			case log := <-logs:
 17151  				// New log arrived, parse the event and forward to the user
 17152  				event := new(SaleClockAuctionPause)
 17153  				if err := _SaleClockAuction.contract.UnpackLog(event, "Pause", log); err != nil {
 17154  					return err
 17155  				}
 17156  				event.Raw = log
 17157  
 17158  				select {
 17159  				case sink <- event:
 17160  				case err := <-sub.Err():
 17161  					return err
 17162  				case <-quit:
 17163  					return nil
 17164  				}
 17165  			case err := <-sub.Err():
 17166  				return err
 17167  			case <-quit:
 17168  				return nil
 17169  			}
 17170  		}
 17171  	}), nil
 17172  }
 17173  
 17174  // ParsePause is a log parse operation binding the contract event 0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625.
 17175  //
 17176  // Solidity: event Pause()
 17177  func (_SaleClockAuction *SaleClockAuctionFilterer) ParsePause(log types.Log) (*SaleClockAuctionPause, error) {
 17178  	event := new(SaleClockAuctionPause)
 17179  	if err := _SaleClockAuction.contract.UnpackLog(event, "Pause", log); err != nil {
 17180  		return nil, err
 17181  	}
 17182  	event.Raw = log
 17183  	return event, nil
 17184  }
 17185  
 17186  // SaleClockAuctionUnpauseIterator is returned from FilterUnpause and is used to iterate over the raw logs and unpacked data for Unpause events raised by the SaleClockAuction contract.
 17187  type SaleClockAuctionUnpauseIterator struct {
 17188  	Event *SaleClockAuctionUnpause // Event containing the contract specifics and raw log
 17189  
 17190  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 17191  	event    string              // Event name to use for unpacking event data
 17192  
 17193  	logs chan types.Log        // Log channel receiving the found contract events
 17194  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 17195  	done bool                  // Whether the subscription completed delivering logs
 17196  	fail error                 // Occurred error to stop iteration
 17197  }
 17198  
 17199  // Next advances the iterator to the subsequent event, returning whether there
 17200  // are any more events found. In case of a retrieval or parsing error, false is
 17201  // returned and Error() can be queried for the exact failure.
 17202  func (it *SaleClockAuctionUnpauseIterator) Next() bool {
 17203  	// If the iterator failed, stop iterating
 17204  	if it.fail != nil {
 17205  		return false
 17206  	}
 17207  	// If the iterator completed, deliver directly whatever's available
 17208  	if it.done {
 17209  		select {
 17210  		case log := <-it.logs:
 17211  			it.Event = new(SaleClockAuctionUnpause)
 17212  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 17213  				it.fail = err
 17214  				return false
 17215  			}
 17216  			it.Event.Raw = log
 17217  			return true
 17218  
 17219  		default:
 17220  			return false
 17221  		}
 17222  	}
 17223  	// Iterator still in progress, wait for either a data or an error event
 17224  	select {
 17225  	case log := <-it.logs:
 17226  		it.Event = new(SaleClockAuctionUnpause)
 17227  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 17228  			it.fail = err
 17229  			return false
 17230  		}
 17231  		it.Event.Raw = log
 17232  		return true
 17233  
 17234  	case err := <-it.sub.Err():
 17235  		it.done = true
 17236  		it.fail = err
 17237  		return it.Next()
 17238  	}
 17239  }
 17240  
 17241  // Error returns any retrieval or parsing error occurred during filtering.
 17242  func (it *SaleClockAuctionUnpauseIterator) Error() error {
 17243  	return it.fail
 17244  }
 17245  
 17246  // Close terminates the iteration process, releasing any pending underlying
 17247  // resources.
 17248  func (it *SaleClockAuctionUnpauseIterator) Close() error {
 17249  	it.sub.Unsubscribe()
 17250  	return nil
 17251  }
 17252  
 17253  // SaleClockAuctionUnpause represents a Unpause event raised by the SaleClockAuction contract.
 17254  type SaleClockAuctionUnpause struct {
 17255  	Raw types.Log // Blockchain specific contextual infos
 17256  }
 17257  
 17258  // FilterUnpause is a free log retrieval operation binding the contract event 0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33.
 17259  //
 17260  // Solidity: event Unpause()
 17261  func (_SaleClockAuction *SaleClockAuctionFilterer) FilterUnpause(opts *bind.FilterOpts) (*SaleClockAuctionUnpauseIterator, error) {
 17262  
 17263  	logs, sub, err := _SaleClockAuction.contract.FilterLogs(opts, "Unpause")
 17264  	if err != nil {
 17265  		return nil, err
 17266  	}
 17267  	return &SaleClockAuctionUnpauseIterator{contract: _SaleClockAuction.contract, event: "Unpause", logs: logs, sub: sub}, nil
 17268  }
 17269  
 17270  // WatchUnpause is a free log subscription operation binding the contract event 0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33.
 17271  //
 17272  // Solidity: event Unpause()
 17273  func (_SaleClockAuction *SaleClockAuctionFilterer) WatchUnpause(opts *bind.WatchOpts, sink chan<- *SaleClockAuctionUnpause) (event.Subscription, error) {
 17274  
 17275  	logs, sub, err := _SaleClockAuction.contract.WatchLogs(opts, "Unpause")
 17276  	if err != nil {
 17277  		return nil, err
 17278  	}
 17279  	return event.NewSubscription(func(quit <-chan struct{}) error {
 17280  		defer sub.Unsubscribe()
 17281  		for {
 17282  			select {
 17283  			case log := <-logs:
 17284  				// New log arrived, parse the event and forward to the user
 17285  				event := new(SaleClockAuctionUnpause)
 17286  				if err := _SaleClockAuction.contract.UnpackLog(event, "Unpause", log); err != nil {
 17287  					return err
 17288  				}
 17289  				event.Raw = log
 17290  
 17291  				select {
 17292  				case sink <- event:
 17293  				case err := <-sub.Err():
 17294  					return err
 17295  				case <-quit:
 17296  					return nil
 17297  				}
 17298  			case err := <-sub.Err():
 17299  				return err
 17300  			case <-quit:
 17301  				return nil
 17302  			}
 17303  		}
 17304  	}), nil
 17305  }
 17306  
 17307  // ParseUnpause is a log parse operation binding the contract event 0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33.
 17308  //
 17309  // Solidity: event Unpause()
 17310  func (_SaleClockAuction *SaleClockAuctionFilterer) ParseUnpause(log types.Log) (*SaleClockAuctionUnpause, error) {
 17311  	event := new(SaleClockAuctionUnpause)
 17312  	if err := _SaleClockAuction.contract.UnpackLog(event, "Unpause", log); err != nil {
 17313  		return nil, err
 17314  	}
 17315  	event.Raw = log
 17316  	return event, nil
 17317  }
 17318  
 17319  // SiringClockAuctionABI is the input ABI used to generate the binding from.
 17320  const SiringClockAuctionABI = "[{\"constant\":false,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_startingPrice\",\"type\":\"uint256\"},{\"name\":\"_endingPrice\",\"type\":\"uint256\"},{\"name\":\"_duration\",\"type\":\"uint256\"},{\"name\":\"_seller\",\"type\":\"address\"}],\"name\":\"createAuction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"bid\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"withdrawBalance\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isSiringClockAuction\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getAuction\",\"outputs\":[{\"name\":\"seller\",\"type\":\"address\"},{\"name\":\"startingPrice\",\"type\":\"uint256\"},{\"name\":\"endingPrice\",\"type\":\"uint256\"},{\"name\":\"duration\",\"type\":\"uint256\"},{\"name\":\"startedAt\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ownerCut\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"cancelAuctionWhenPaused\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"cancelAuction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getCurrentPrice\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nonFungibleContract\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_nftAddr\",\"type\":\"address\"},{\"name\":\"_cut\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"startingPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"endingPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"AuctionCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"totalPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"winner\",\"type\":\"address\"}],\"name\":\"AuctionSuccessful\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"AuctionCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Pause\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Unpause\",\"type\":\"event\"}]"
 17321  
 17322  // SiringClockAuctionFuncSigs maps the 4-byte function signature to its string representation.
 17323  var SiringClockAuctionFuncSigs = map[string]string{
 17324  	"454a2ab3": "bid(uint256)",
 17325  	"96b5a755": "cancelAuction(uint256)",
 17326  	"878eb368": "cancelAuctionWhenPaused(uint256)",
 17327  	"27ebe40a": "createAuction(uint256,uint256,uint256,uint256,address)",
 17328  	"78bd7935": "getAuction(uint256)",
 17329  	"c55d0f56": "getCurrentPrice(uint256)",
 17330  	"76190f8f": "isSiringClockAuction()",
 17331  	"dd1b7a0f": "nonFungibleContract()",
 17332  	"8da5cb5b": "owner()",
 17333  	"83b5ff8b": "ownerCut()",
 17334  	"8456cb59": "pause()",
 17335  	"5c975abb": "paused()",
 17336  	"f2fde38b": "transferOwnership(address)",
 17337  	"3f4ba83a": "unpause()",
 17338  	"5fd8c710": "withdrawBalance()",
 17339  }
 17340  
 17341  // SiringClockAuctionBin is the compiled bytecode used for deploying new contracts.
 17342  var SiringClockAuctionBin = "0x60606040526000805460a060020a60ff02191690556004805460ff19166001179055341561002c57600080fd5b604051604080610e32833981016040528080519190602001805160008054600160a060020a03191633600160a060020a0316178155909250839150829061271082111561007857600080fd5b50600281905581600160a060020a0381166301ffc9a77f9a20483d000000000000000000000000000000000000000000000000000000006040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281527fffffffff000000000000000000000000000000000000000000000000000000009091166004820152602401602060405180830381600087803b151561011f57600080fd5b5af1151561012c57600080fd5b50505060405180519050151561014157600080fd5b60018054600160a060020a03909216600160a060020a031990921691909117905550505050610cbd806101756000396000f3006060604052600436106100c15763ffffffff60e060020a60003504166327ebe40a81146100c65780633f4ba83a146100f3578063454a2ab31461011a5780635c975abb146101255780635fd8c7101461013857806376190f8f1461014b57806378bd79351461015e57806383b5ff8b146101af5780638456cb59146101d4578063878eb368146101e75780638da5cb5b146101fd57806396b5a7551461022c578063c55d0f5614610242578063dd1b7a0f14610258578063f2fde38b1461026b575b600080fd5b34156100d157600080fd5b6100f1600435602435604435606435600160a060020a036084351661028a565b005b34156100fe57600080fd5b610106610362565b604051901515815260200160405180910390f35b6100f16004356103e6565b341561013057600080fd5b610106610436565b341561014357600080fd5b6100f1610446565b341561015657600080fd5b6101066104bc565b341561016957600080fd5b6101746004356104c5565b604051600160a060020a03909516855260208501939093526040808501929092526060840152608083019190915260a0909101905180910390f35b34156101ba57600080fd5b6101c2610552565b60405190815260200160405180910390f35b34156101df57600080fd5b610106610558565b34156101f257600080fd5b6100f16004356105e1565b341561020857600080fd5b61021061064e565b604051600160a060020a03909116815260200160405180910390f35b341561023757600080fd5b6100f160043561065d565b341561024d57600080fd5b6101c26004356106ab565b341561026357600080fd5b6102106106dd565b341561027657600080fd5b6100f1600160a060020a03600435166106ec565b610292610c63565b6001608060020a03851685146102a757600080fd5b6001608060020a03841684146102bc57600080fd5b67ffffffffffffffff831683146102d257600080fd5b60015433600160a060020a039081169116146102ed57600080fd5b6102f78287610742565b60a06040519081016040528083600160a060020a03168152602001866001608060020a03168152602001856001608060020a031681526020018467ffffffffffffffff1681526020014267ffffffffffffffff16815250905061035a86826107b9565b505050505050565b6000805433600160a060020a0390811691161461037e57600080fd5b60005460a060020a900460ff16151561039657600080fd5b6000805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a150600190565b60015460009033600160a060020a0390811691161461040457600080fd5b50600081815260036020526040902054600160a060020a03166104278234610954565b506104328183610a85565b5050565b60005460a060020a900460ff1681565b60015460008054600160a060020a03928316923381169116148061047b575081600160a060020a031633600160a060020a0316145b151561048657600080fd5b81600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f150505050505050565b60045460ff1681565b600081815260036020526040812081908190819081906104e481610adb565b15156104ef57600080fd5b80546001820154600290920154600160a060020a03909116986001608060020a038084169950700100000000000000000000000000000000909304909216965067ffffffffffffffff808216965068010000000000000000909104169350915050565b60025481565b6000805433600160a060020a0390811691161461057457600080fd5b60005460a060020a900460ff161561058b57600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a150600190565b6000805460a060020a900460ff1615156105fa57600080fd5b60005433600160a060020a0390811691161461061557600080fd5b50600081815260036020526040902061062d81610adb565b151561063857600080fd5b8054610432908390600160a060020a0316610afc565b600054600160a060020a031681565b60008181526003602052604081209061067582610adb565b151561068057600080fd5b508054600160a060020a03908116903316811461069c57600080fd5b6106a68382610afc565b505050565b60008181526003602052604081206106c281610adb565b15156106cd57600080fd5b6106d681610b46565b9392505050565b600154600160a060020a031681565b60005433600160a060020a0390811691161461070757600080fd5b600160a060020a0381161561073f576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b600154600160a060020a03166323b872dd83308460405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107a557600080fd5b5af115156107b257600080fd5b5050505050565b603c816060015167ffffffffffffffff1610156107d557600080fd5b600082815260036020526040902081908151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039190911617815560208201516001820180546fffffffffffffffffffffffffffffffff19166001608060020a039290921691909117905560408201516001820180546001608060020a03928316700100000000000000000000000000000000029216919091179055606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201516002909101805467ffffffffffffffff9290921668010000000000000000026fffffffffffffffff000000000000000019909216919091179055507fa9c8dfcda5664a5a124c713e386da27de87432d5b668e79458501eb296389ba78260208301516001608060020a031683604001516001608060020a0316846060015167ffffffffffffffff166040518085815260200184815260200183815260200182815260200194505050505060405180910390a15050565b6000828152600360205260408120818080808061097086610adb565b151561097b57600080fd5b61098486610b46565b94508488101561099357600080fd5b8554600160a060020a031693506109a989610bcd565b60008511156109f3576109bb85610c1a565b92508285039150600160a060020a03841682156108fc0283604051600060405180830381858888f1935050505015156109f357600080fd5b50838703600160a060020a03331681156108fc0282604051600060405180830381858888f193505050501515610a2857600080fd5b7f4fcc30d90a842164dd58501ab874a101a3749c3d4747139cefe7c876f4ccebd28986336040519283526020830191909152600160a060020a03166040808301919091526060909101905180910390a15092979650505050505050565b600154600160a060020a031663a9059cbb838360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156107a557600080fd5b6002015460006801000000000000000090910467ffffffffffffffff161190565b610b0582610bcd565b610b0f8183610a85565b7f2809c7e17bf978fbc7194c0a694b638c4215e9140cacc6c38ca36010b45697df8260405190815260200160405180910390a15050565b6002810154600090819068010000000000000000900467ffffffffffffffff16421115610b8c5750600282015468010000000000000000900467ffffffffffffffff1642035b600183015460028401546106d6916001608060020a0380821692700100000000000000000000000000000000909204169067ffffffffffffffff1684610c26565b6000908152600360205260408120805473ffffffffffffffffffffffffffffffffffffffff19168155600181019190915560020180546fffffffffffffffffffffffffffffffff19169055565b60025461271091020490565b6000808080858510610c3a57869350610c58565b878703925085858402811515610c4c57fe5b05915081880190508093505b505050949350505050565b60a06040519081016040908152600080835260208301819052908201819052606082018190526080820152905600a165627a7a7230582014a23cbca84564759f995822c14037e8dc35b7daab68d7b1fa19dfcb36c920bb0029"
 17343  
 17344  // DeploySiringClockAuction deploys a new Ethereum contract, binding an instance of SiringClockAuction to it.
 17345  func DeploySiringClockAuction(auth *bind.TransactOpts, backend bind.ContractBackend, _nftAddr common.Address, _cut *big.Int) (common.Address, *types.Transaction, *SiringClockAuction, error) {
 17346  	parsed, err := abi.JSON(strings.NewReader(SiringClockAuctionABI))
 17347  	if err != nil {
 17348  		return common.Address{}, nil, nil, err
 17349  	}
 17350  
 17351  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(SiringClockAuctionBin), backend, _nftAddr, _cut)
 17352  	if err != nil {
 17353  		return common.Address{}, nil, nil, err
 17354  	}
 17355  	return address, tx, &SiringClockAuction{SiringClockAuctionCaller: SiringClockAuctionCaller{contract: contract}, SiringClockAuctionTransactor: SiringClockAuctionTransactor{contract: contract}, SiringClockAuctionFilterer: SiringClockAuctionFilterer{contract: contract}}, nil
 17356  }
 17357  
 17358  // SiringClockAuction is an auto generated Go binding around an Ethereum contract.
 17359  type SiringClockAuction struct {
 17360  	SiringClockAuctionCaller     // Read-only binding to the contract
 17361  	SiringClockAuctionTransactor // Write-only binding to the contract
 17362  	SiringClockAuctionFilterer   // Log filterer for contract events
 17363  }
 17364  
 17365  // SiringClockAuctionCaller is an auto generated read-only Go binding around an Ethereum contract.
 17366  type SiringClockAuctionCaller struct {
 17367  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 17368  }
 17369  
 17370  // SiringClockAuctionTransactor is an auto generated write-only Go binding around an Ethereum contract.
 17371  type SiringClockAuctionTransactor struct {
 17372  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 17373  }
 17374  
 17375  // SiringClockAuctionFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
 17376  type SiringClockAuctionFilterer struct {
 17377  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 17378  }
 17379  
 17380  // SiringClockAuctionSession is an auto generated Go binding around an Ethereum contract,
 17381  // with pre-set call and transact options.
 17382  type SiringClockAuctionSession struct {
 17383  	Contract     *SiringClockAuction // Generic contract binding to set the session for
 17384  	CallOpts     bind.CallOpts       // Call options to use throughout this session
 17385  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
 17386  }
 17387  
 17388  // SiringClockAuctionCallerSession is an auto generated read-only Go binding around an Ethereum contract,
 17389  // with pre-set call options.
 17390  type SiringClockAuctionCallerSession struct {
 17391  	Contract *SiringClockAuctionCaller // Generic contract caller binding to set the session for
 17392  	CallOpts bind.CallOpts             // Call options to use throughout this session
 17393  }
 17394  
 17395  // SiringClockAuctionTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
 17396  // with pre-set transact options.
 17397  type SiringClockAuctionTransactorSession struct {
 17398  	Contract     *SiringClockAuctionTransactor // Generic contract transactor binding to set the session for
 17399  	TransactOpts bind.TransactOpts             // Transaction auth options to use throughout this session
 17400  }
 17401  
 17402  // SiringClockAuctionRaw is an auto generated low-level Go binding around an Ethereum contract.
 17403  type SiringClockAuctionRaw struct {
 17404  	Contract *SiringClockAuction // Generic contract binding to access the raw methods on
 17405  }
 17406  
 17407  // SiringClockAuctionCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 17408  type SiringClockAuctionCallerRaw struct {
 17409  	Contract *SiringClockAuctionCaller // Generic read-only contract binding to access the raw methods on
 17410  }
 17411  
 17412  // SiringClockAuctionTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 17413  type SiringClockAuctionTransactorRaw struct {
 17414  	Contract *SiringClockAuctionTransactor // Generic write-only contract binding to access the raw methods on
 17415  }
 17416  
 17417  // NewSiringClockAuction creates a new instance of SiringClockAuction, bound to a specific deployed contract.
 17418  func NewSiringClockAuction(address common.Address, backend bind.ContractBackend) (*SiringClockAuction, error) {
 17419  	contract, err := bindSiringClockAuction(address, backend, backend, backend)
 17420  	if err != nil {
 17421  		return nil, err
 17422  	}
 17423  	return &SiringClockAuction{SiringClockAuctionCaller: SiringClockAuctionCaller{contract: contract}, SiringClockAuctionTransactor: SiringClockAuctionTransactor{contract: contract}, SiringClockAuctionFilterer: SiringClockAuctionFilterer{contract: contract}}, nil
 17424  }
 17425  
 17426  // NewSiringClockAuctionCaller creates a new read-only instance of SiringClockAuction, bound to a specific deployed contract.
 17427  func NewSiringClockAuctionCaller(address common.Address, caller bind.ContractCaller) (*SiringClockAuctionCaller, error) {
 17428  	contract, err := bindSiringClockAuction(address, caller, nil, nil)
 17429  	if err != nil {
 17430  		return nil, err
 17431  	}
 17432  	return &SiringClockAuctionCaller{contract: contract}, nil
 17433  }
 17434  
 17435  // NewSiringClockAuctionTransactor creates a new write-only instance of SiringClockAuction, bound to a specific deployed contract.
 17436  func NewSiringClockAuctionTransactor(address common.Address, transactor bind.ContractTransactor) (*SiringClockAuctionTransactor, error) {
 17437  	contract, err := bindSiringClockAuction(address, nil, transactor, nil)
 17438  	if err != nil {
 17439  		return nil, err
 17440  	}
 17441  	return &SiringClockAuctionTransactor{contract: contract}, nil
 17442  }
 17443  
 17444  // NewSiringClockAuctionFilterer creates a new log filterer instance of SiringClockAuction, bound to a specific deployed contract.
 17445  func NewSiringClockAuctionFilterer(address common.Address, filterer bind.ContractFilterer) (*SiringClockAuctionFilterer, error) {
 17446  	contract, err := bindSiringClockAuction(address, nil, nil, filterer)
 17447  	if err != nil {
 17448  		return nil, err
 17449  	}
 17450  	return &SiringClockAuctionFilterer{contract: contract}, nil
 17451  }
 17452  
 17453  // bindSiringClockAuction binds a generic wrapper to an already deployed contract.
 17454  func bindSiringClockAuction(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 17455  	parsed, err := abi.JSON(strings.NewReader(SiringClockAuctionABI))
 17456  	if err != nil {
 17457  		return nil, err
 17458  	}
 17459  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 17460  }
 17461  
 17462  // Call invokes the (constant) contract method with params as input values and
 17463  // sets the output to result. The result type might be a single field for simple
 17464  // returns, a slice of interfaces for anonymous returns and a struct for named
 17465  // returns.
 17466  func (_SiringClockAuction *SiringClockAuctionRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 17467  	return _SiringClockAuction.Contract.SiringClockAuctionCaller.contract.Call(opts, result, method, params...)
 17468  }
 17469  
 17470  // Transfer initiates a plain transaction to move funds to the contract, calling
 17471  // its default method if one is available.
 17472  func (_SiringClockAuction *SiringClockAuctionRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 17473  	return _SiringClockAuction.Contract.SiringClockAuctionTransactor.contract.Transfer(opts)
 17474  }
 17475  
 17476  // Transact invokes the (paid) contract method with params as input values.
 17477  func (_SiringClockAuction *SiringClockAuctionRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 17478  	return _SiringClockAuction.Contract.SiringClockAuctionTransactor.contract.Transact(opts, method, params...)
 17479  }
 17480  
 17481  // Call invokes the (constant) contract method with params as input values and
 17482  // sets the output to result. The result type might be a single field for simple
 17483  // returns, a slice of interfaces for anonymous returns and a struct for named
 17484  // returns.
 17485  func (_SiringClockAuction *SiringClockAuctionCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 17486  	return _SiringClockAuction.Contract.contract.Call(opts, result, method, params...)
 17487  }
 17488  
 17489  // Transfer initiates a plain transaction to move funds to the contract, calling
 17490  // its default method if one is available.
 17491  func (_SiringClockAuction *SiringClockAuctionTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 17492  	return _SiringClockAuction.Contract.contract.Transfer(opts)
 17493  }
 17494  
 17495  // Transact invokes the (paid) contract method with params as input values.
 17496  func (_SiringClockAuction *SiringClockAuctionTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 17497  	return _SiringClockAuction.Contract.contract.Transact(opts, method, params...)
 17498  }
 17499  
 17500  // GetAuction is a free data retrieval call binding the contract method 0x78bd7935.
 17501  //
 17502  // Solidity: function getAuction(uint256 _tokenId) view returns(address seller, uint256 startingPrice, uint256 endingPrice, uint256 duration, uint256 startedAt)
 17503  func (_SiringClockAuction *SiringClockAuctionCaller) GetAuction(opts *bind.CallOpts, _tokenId *big.Int) (struct {
 17504  	Seller        common.Address
 17505  	StartingPrice *big.Int
 17506  	EndingPrice   *big.Int
 17507  	Duration      *big.Int
 17508  	StartedAt     *big.Int
 17509  }, error) {
 17510  	var out []interface{}
 17511  	err := _SiringClockAuction.contract.Call(opts, &out, "getAuction", _tokenId)
 17512  
 17513  	outstruct := new(struct {
 17514  		Seller        common.Address
 17515  		StartingPrice *big.Int
 17516  		EndingPrice   *big.Int
 17517  		Duration      *big.Int
 17518  		StartedAt     *big.Int
 17519  	})
 17520  
 17521  	outstruct.Seller = out[0].(common.Address)
 17522  	outstruct.StartingPrice = out[1].(*big.Int)
 17523  	outstruct.EndingPrice = out[2].(*big.Int)
 17524  	outstruct.Duration = out[3].(*big.Int)
 17525  	outstruct.StartedAt = out[4].(*big.Int)
 17526  
 17527  	return *outstruct, err
 17528  
 17529  }
 17530  
 17531  // GetAuction is a free data retrieval call binding the contract method 0x78bd7935.
 17532  //
 17533  // Solidity: function getAuction(uint256 _tokenId) view returns(address seller, uint256 startingPrice, uint256 endingPrice, uint256 duration, uint256 startedAt)
 17534  func (_SiringClockAuction *SiringClockAuctionSession) GetAuction(_tokenId *big.Int) (struct {
 17535  	Seller        common.Address
 17536  	StartingPrice *big.Int
 17537  	EndingPrice   *big.Int
 17538  	Duration      *big.Int
 17539  	StartedAt     *big.Int
 17540  }, error) {
 17541  	return _SiringClockAuction.Contract.GetAuction(&_SiringClockAuction.CallOpts, _tokenId)
 17542  }
 17543  
 17544  // GetAuction is a free data retrieval call binding the contract method 0x78bd7935.
 17545  //
 17546  // Solidity: function getAuction(uint256 _tokenId) view returns(address seller, uint256 startingPrice, uint256 endingPrice, uint256 duration, uint256 startedAt)
 17547  func (_SiringClockAuction *SiringClockAuctionCallerSession) GetAuction(_tokenId *big.Int) (struct {
 17548  	Seller        common.Address
 17549  	StartingPrice *big.Int
 17550  	EndingPrice   *big.Int
 17551  	Duration      *big.Int
 17552  	StartedAt     *big.Int
 17553  }, error) {
 17554  	return _SiringClockAuction.Contract.GetAuction(&_SiringClockAuction.CallOpts, _tokenId)
 17555  }
 17556  
 17557  // GetCurrentPrice is a free data retrieval call binding the contract method 0xc55d0f56.
 17558  //
 17559  // Solidity: function getCurrentPrice(uint256 _tokenId) view returns(uint256)
 17560  func (_SiringClockAuction *SiringClockAuctionCaller) GetCurrentPrice(opts *bind.CallOpts, _tokenId *big.Int) (*big.Int, error) {
 17561  	var out []interface{}
 17562  	err := _SiringClockAuction.contract.Call(opts, &out, "getCurrentPrice", _tokenId)
 17563  
 17564  	if err != nil {
 17565  		return *new(*big.Int), err
 17566  	}
 17567  
 17568  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 17569  
 17570  	return out0, err
 17571  
 17572  }
 17573  
 17574  // GetCurrentPrice is a free data retrieval call binding the contract method 0xc55d0f56.
 17575  //
 17576  // Solidity: function getCurrentPrice(uint256 _tokenId) view returns(uint256)
 17577  func (_SiringClockAuction *SiringClockAuctionSession) GetCurrentPrice(_tokenId *big.Int) (*big.Int, error) {
 17578  	return _SiringClockAuction.Contract.GetCurrentPrice(&_SiringClockAuction.CallOpts, _tokenId)
 17579  }
 17580  
 17581  // GetCurrentPrice is a free data retrieval call binding the contract method 0xc55d0f56.
 17582  //
 17583  // Solidity: function getCurrentPrice(uint256 _tokenId) view returns(uint256)
 17584  func (_SiringClockAuction *SiringClockAuctionCallerSession) GetCurrentPrice(_tokenId *big.Int) (*big.Int, error) {
 17585  	return _SiringClockAuction.Contract.GetCurrentPrice(&_SiringClockAuction.CallOpts, _tokenId)
 17586  }
 17587  
 17588  // IsSiringClockAuction is a free data retrieval call binding the contract method 0x76190f8f.
 17589  //
 17590  // Solidity: function isSiringClockAuction() view returns(bool)
 17591  func (_SiringClockAuction *SiringClockAuctionCaller) IsSiringClockAuction(opts *bind.CallOpts) (bool, error) {
 17592  	var out []interface{}
 17593  	err := _SiringClockAuction.contract.Call(opts, &out, "isSiringClockAuction")
 17594  
 17595  	if err != nil {
 17596  		return *new(bool), err
 17597  	}
 17598  
 17599  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 17600  
 17601  	return out0, err
 17602  
 17603  }
 17604  
 17605  // IsSiringClockAuction is a free data retrieval call binding the contract method 0x76190f8f.
 17606  //
 17607  // Solidity: function isSiringClockAuction() view returns(bool)
 17608  func (_SiringClockAuction *SiringClockAuctionSession) IsSiringClockAuction() (bool, error) {
 17609  	return _SiringClockAuction.Contract.IsSiringClockAuction(&_SiringClockAuction.CallOpts)
 17610  }
 17611  
 17612  // IsSiringClockAuction is a free data retrieval call binding the contract method 0x76190f8f.
 17613  //
 17614  // Solidity: function isSiringClockAuction() view returns(bool)
 17615  func (_SiringClockAuction *SiringClockAuctionCallerSession) IsSiringClockAuction() (bool, error) {
 17616  	return _SiringClockAuction.Contract.IsSiringClockAuction(&_SiringClockAuction.CallOpts)
 17617  }
 17618  
 17619  // NonFungibleContract is a free data retrieval call binding the contract method 0xdd1b7a0f.
 17620  //
 17621  // Solidity: function nonFungibleContract() view returns(address)
 17622  func (_SiringClockAuction *SiringClockAuctionCaller) NonFungibleContract(opts *bind.CallOpts) (common.Address, error) {
 17623  	var out []interface{}
 17624  	err := _SiringClockAuction.contract.Call(opts, &out, "nonFungibleContract")
 17625  
 17626  	if err != nil {
 17627  		return *new(common.Address), err
 17628  	}
 17629  
 17630  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 17631  
 17632  	return out0, err
 17633  
 17634  }
 17635  
 17636  // NonFungibleContract is a free data retrieval call binding the contract method 0xdd1b7a0f.
 17637  //
 17638  // Solidity: function nonFungibleContract() view returns(address)
 17639  func (_SiringClockAuction *SiringClockAuctionSession) NonFungibleContract() (common.Address, error) {
 17640  	return _SiringClockAuction.Contract.NonFungibleContract(&_SiringClockAuction.CallOpts)
 17641  }
 17642  
 17643  // NonFungibleContract is a free data retrieval call binding the contract method 0xdd1b7a0f.
 17644  //
 17645  // Solidity: function nonFungibleContract() view returns(address)
 17646  func (_SiringClockAuction *SiringClockAuctionCallerSession) NonFungibleContract() (common.Address, error) {
 17647  	return _SiringClockAuction.Contract.NonFungibleContract(&_SiringClockAuction.CallOpts)
 17648  }
 17649  
 17650  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 17651  //
 17652  // Solidity: function owner() view returns(address)
 17653  func (_SiringClockAuction *SiringClockAuctionCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
 17654  	var out []interface{}
 17655  	err := _SiringClockAuction.contract.Call(opts, &out, "owner")
 17656  
 17657  	if err != nil {
 17658  		return *new(common.Address), err
 17659  	}
 17660  
 17661  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 17662  
 17663  	return out0, err
 17664  
 17665  }
 17666  
 17667  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 17668  //
 17669  // Solidity: function owner() view returns(address)
 17670  func (_SiringClockAuction *SiringClockAuctionSession) Owner() (common.Address, error) {
 17671  	return _SiringClockAuction.Contract.Owner(&_SiringClockAuction.CallOpts)
 17672  }
 17673  
 17674  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 17675  //
 17676  // Solidity: function owner() view returns(address)
 17677  func (_SiringClockAuction *SiringClockAuctionCallerSession) Owner() (common.Address, error) {
 17678  	return _SiringClockAuction.Contract.Owner(&_SiringClockAuction.CallOpts)
 17679  }
 17680  
 17681  // OwnerCut is a free data retrieval call binding the contract method 0x83b5ff8b.
 17682  //
 17683  // Solidity: function ownerCut() view returns(uint256)
 17684  func (_SiringClockAuction *SiringClockAuctionCaller) OwnerCut(opts *bind.CallOpts) (*big.Int, error) {
 17685  	var out []interface{}
 17686  	err := _SiringClockAuction.contract.Call(opts, &out, "ownerCut")
 17687  
 17688  	if err != nil {
 17689  		return *new(*big.Int), err
 17690  	}
 17691  
 17692  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 17693  
 17694  	return out0, err
 17695  
 17696  }
 17697  
 17698  // OwnerCut is a free data retrieval call binding the contract method 0x83b5ff8b.
 17699  //
 17700  // Solidity: function ownerCut() view returns(uint256)
 17701  func (_SiringClockAuction *SiringClockAuctionSession) OwnerCut() (*big.Int, error) {
 17702  	return _SiringClockAuction.Contract.OwnerCut(&_SiringClockAuction.CallOpts)
 17703  }
 17704  
 17705  // OwnerCut is a free data retrieval call binding the contract method 0x83b5ff8b.
 17706  //
 17707  // Solidity: function ownerCut() view returns(uint256)
 17708  func (_SiringClockAuction *SiringClockAuctionCallerSession) OwnerCut() (*big.Int, error) {
 17709  	return _SiringClockAuction.Contract.OwnerCut(&_SiringClockAuction.CallOpts)
 17710  }
 17711  
 17712  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
 17713  //
 17714  // Solidity: function paused() view returns(bool)
 17715  func (_SiringClockAuction *SiringClockAuctionCaller) Paused(opts *bind.CallOpts) (bool, error) {
 17716  	var out []interface{}
 17717  	err := _SiringClockAuction.contract.Call(opts, &out, "paused")
 17718  
 17719  	if err != nil {
 17720  		return *new(bool), err
 17721  	}
 17722  
 17723  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 17724  
 17725  	return out0, err
 17726  
 17727  }
 17728  
 17729  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
 17730  //
 17731  // Solidity: function paused() view returns(bool)
 17732  func (_SiringClockAuction *SiringClockAuctionSession) Paused() (bool, error) {
 17733  	return _SiringClockAuction.Contract.Paused(&_SiringClockAuction.CallOpts)
 17734  }
 17735  
 17736  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
 17737  //
 17738  // Solidity: function paused() view returns(bool)
 17739  func (_SiringClockAuction *SiringClockAuctionCallerSession) Paused() (bool, error) {
 17740  	return _SiringClockAuction.Contract.Paused(&_SiringClockAuction.CallOpts)
 17741  }
 17742  
 17743  // Bid is a paid mutator transaction binding the contract method 0x454a2ab3.
 17744  //
 17745  // Solidity: function bid(uint256 _tokenId) payable returns()
 17746  func (_SiringClockAuction *SiringClockAuctionTransactor) Bid(opts *bind.TransactOpts, _tokenId *big.Int) (*types.Transaction, error) {
 17747  	return _SiringClockAuction.contract.Transact(opts, "bid", _tokenId)
 17748  }
 17749  
 17750  // Bid is a paid mutator transaction binding the contract method 0x454a2ab3.
 17751  //
 17752  // Solidity: function bid(uint256 _tokenId) payable returns()
 17753  func (_SiringClockAuction *SiringClockAuctionSession) Bid(_tokenId *big.Int) (*types.Transaction, error) {
 17754  	return _SiringClockAuction.Contract.Bid(&_SiringClockAuction.TransactOpts, _tokenId)
 17755  }
 17756  
 17757  // Bid is a paid mutator transaction binding the contract method 0x454a2ab3.
 17758  //
 17759  // Solidity: function bid(uint256 _tokenId) payable returns()
 17760  func (_SiringClockAuction *SiringClockAuctionTransactorSession) Bid(_tokenId *big.Int) (*types.Transaction, error) {
 17761  	return _SiringClockAuction.Contract.Bid(&_SiringClockAuction.TransactOpts, _tokenId)
 17762  }
 17763  
 17764  // CancelAuction is a paid mutator transaction binding the contract method 0x96b5a755.
 17765  //
 17766  // Solidity: function cancelAuction(uint256 _tokenId) returns()
 17767  func (_SiringClockAuction *SiringClockAuctionTransactor) CancelAuction(opts *bind.TransactOpts, _tokenId *big.Int) (*types.Transaction, error) {
 17768  	return _SiringClockAuction.contract.Transact(opts, "cancelAuction", _tokenId)
 17769  }
 17770  
 17771  // CancelAuction is a paid mutator transaction binding the contract method 0x96b5a755.
 17772  //
 17773  // Solidity: function cancelAuction(uint256 _tokenId) returns()
 17774  func (_SiringClockAuction *SiringClockAuctionSession) CancelAuction(_tokenId *big.Int) (*types.Transaction, error) {
 17775  	return _SiringClockAuction.Contract.CancelAuction(&_SiringClockAuction.TransactOpts, _tokenId)
 17776  }
 17777  
 17778  // CancelAuction is a paid mutator transaction binding the contract method 0x96b5a755.
 17779  //
 17780  // Solidity: function cancelAuction(uint256 _tokenId) returns()
 17781  func (_SiringClockAuction *SiringClockAuctionTransactorSession) CancelAuction(_tokenId *big.Int) (*types.Transaction, error) {
 17782  	return _SiringClockAuction.Contract.CancelAuction(&_SiringClockAuction.TransactOpts, _tokenId)
 17783  }
 17784  
 17785  // CancelAuctionWhenPaused is a paid mutator transaction binding the contract method 0x878eb368.
 17786  //
 17787  // Solidity: function cancelAuctionWhenPaused(uint256 _tokenId) returns()
 17788  func (_SiringClockAuction *SiringClockAuctionTransactor) CancelAuctionWhenPaused(opts *bind.TransactOpts, _tokenId *big.Int) (*types.Transaction, error) {
 17789  	return _SiringClockAuction.contract.Transact(opts, "cancelAuctionWhenPaused", _tokenId)
 17790  }
 17791  
 17792  // CancelAuctionWhenPaused is a paid mutator transaction binding the contract method 0x878eb368.
 17793  //
 17794  // Solidity: function cancelAuctionWhenPaused(uint256 _tokenId) returns()
 17795  func (_SiringClockAuction *SiringClockAuctionSession) CancelAuctionWhenPaused(_tokenId *big.Int) (*types.Transaction, error) {
 17796  	return _SiringClockAuction.Contract.CancelAuctionWhenPaused(&_SiringClockAuction.TransactOpts, _tokenId)
 17797  }
 17798  
 17799  // CancelAuctionWhenPaused is a paid mutator transaction binding the contract method 0x878eb368.
 17800  //
 17801  // Solidity: function cancelAuctionWhenPaused(uint256 _tokenId) returns()
 17802  func (_SiringClockAuction *SiringClockAuctionTransactorSession) CancelAuctionWhenPaused(_tokenId *big.Int) (*types.Transaction, error) {
 17803  	return _SiringClockAuction.Contract.CancelAuctionWhenPaused(&_SiringClockAuction.TransactOpts, _tokenId)
 17804  }
 17805  
 17806  // CreateAuction is a paid mutator transaction binding the contract method 0x27ebe40a.
 17807  //
 17808  // Solidity: function createAuction(uint256 _tokenId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration, address _seller) returns()
 17809  func (_SiringClockAuction *SiringClockAuctionTransactor) CreateAuction(opts *bind.TransactOpts, _tokenId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int, _seller common.Address) (*types.Transaction, error) {
 17810  	return _SiringClockAuction.contract.Transact(opts, "createAuction", _tokenId, _startingPrice, _endingPrice, _duration, _seller)
 17811  }
 17812  
 17813  // CreateAuction is a paid mutator transaction binding the contract method 0x27ebe40a.
 17814  //
 17815  // Solidity: function createAuction(uint256 _tokenId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration, address _seller) returns()
 17816  func (_SiringClockAuction *SiringClockAuctionSession) CreateAuction(_tokenId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int, _seller common.Address) (*types.Transaction, error) {
 17817  	return _SiringClockAuction.Contract.CreateAuction(&_SiringClockAuction.TransactOpts, _tokenId, _startingPrice, _endingPrice, _duration, _seller)
 17818  }
 17819  
 17820  // CreateAuction is a paid mutator transaction binding the contract method 0x27ebe40a.
 17821  //
 17822  // Solidity: function createAuction(uint256 _tokenId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration, address _seller) returns()
 17823  func (_SiringClockAuction *SiringClockAuctionTransactorSession) CreateAuction(_tokenId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int, _seller common.Address) (*types.Transaction, error) {
 17824  	return _SiringClockAuction.Contract.CreateAuction(&_SiringClockAuction.TransactOpts, _tokenId, _startingPrice, _endingPrice, _duration, _seller)
 17825  }
 17826  
 17827  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
 17828  //
 17829  // Solidity: function pause() returns(bool)
 17830  func (_SiringClockAuction *SiringClockAuctionTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) {
 17831  	return _SiringClockAuction.contract.Transact(opts, "pause")
 17832  }
 17833  
 17834  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
 17835  //
 17836  // Solidity: function pause() returns(bool)
 17837  func (_SiringClockAuction *SiringClockAuctionSession) Pause() (*types.Transaction, error) {
 17838  	return _SiringClockAuction.Contract.Pause(&_SiringClockAuction.TransactOpts)
 17839  }
 17840  
 17841  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
 17842  //
 17843  // Solidity: function pause() returns(bool)
 17844  func (_SiringClockAuction *SiringClockAuctionTransactorSession) Pause() (*types.Transaction, error) {
 17845  	return _SiringClockAuction.Contract.Pause(&_SiringClockAuction.TransactOpts)
 17846  }
 17847  
 17848  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 17849  //
 17850  // Solidity: function transferOwnership(address newOwner) returns()
 17851  func (_SiringClockAuction *SiringClockAuctionTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
 17852  	return _SiringClockAuction.contract.Transact(opts, "transferOwnership", newOwner)
 17853  }
 17854  
 17855  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 17856  //
 17857  // Solidity: function transferOwnership(address newOwner) returns()
 17858  func (_SiringClockAuction *SiringClockAuctionSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 17859  	return _SiringClockAuction.Contract.TransferOwnership(&_SiringClockAuction.TransactOpts, newOwner)
 17860  }
 17861  
 17862  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 17863  //
 17864  // Solidity: function transferOwnership(address newOwner) returns()
 17865  func (_SiringClockAuction *SiringClockAuctionTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 17866  	return _SiringClockAuction.Contract.TransferOwnership(&_SiringClockAuction.TransactOpts, newOwner)
 17867  }
 17868  
 17869  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
 17870  //
 17871  // Solidity: function unpause() returns(bool)
 17872  func (_SiringClockAuction *SiringClockAuctionTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) {
 17873  	return _SiringClockAuction.contract.Transact(opts, "unpause")
 17874  }
 17875  
 17876  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
 17877  //
 17878  // Solidity: function unpause() returns(bool)
 17879  func (_SiringClockAuction *SiringClockAuctionSession) Unpause() (*types.Transaction, error) {
 17880  	return _SiringClockAuction.Contract.Unpause(&_SiringClockAuction.TransactOpts)
 17881  }
 17882  
 17883  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
 17884  //
 17885  // Solidity: function unpause() returns(bool)
 17886  func (_SiringClockAuction *SiringClockAuctionTransactorSession) Unpause() (*types.Transaction, error) {
 17887  	return _SiringClockAuction.Contract.Unpause(&_SiringClockAuction.TransactOpts)
 17888  }
 17889  
 17890  // WithdrawBalance is a paid mutator transaction binding the contract method 0x5fd8c710.
 17891  //
 17892  // Solidity: function withdrawBalance() returns()
 17893  func (_SiringClockAuction *SiringClockAuctionTransactor) WithdrawBalance(opts *bind.TransactOpts) (*types.Transaction, error) {
 17894  	return _SiringClockAuction.contract.Transact(opts, "withdrawBalance")
 17895  }
 17896  
 17897  // WithdrawBalance is a paid mutator transaction binding the contract method 0x5fd8c710.
 17898  //
 17899  // Solidity: function withdrawBalance() returns()
 17900  func (_SiringClockAuction *SiringClockAuctionSession) WithdrawBalance() (*types.Transaction, error) {
 17901  	return _SiringClockAuction.Contract.WithdrawBalance(&_SiringClockAuction.TransactOpts)
 17902  }
 17903  
 17904  // WithdrawBalance is a paid mutator transaction binding the contract method 0x5fd8c710.
 17905  //
 17906  // Solidity: function withdrawBalance() returns()
 17907  func (_SiringClockAuction *SiringClockAuctionTransactorSession) WithdrawBalance() (*types.Transaction, error) {
 17908  	return _SiringClockAuction.Contract.WithdrawBalance(&_SiringClockAuction.TransactOpts)
 17909  }
 17910  
 17911  // SiringClockAuctionAuctionCancelledIterator is returned from FilterAuctionCancelled and is used to iterate over the raw logs and unpacked data for AuctionCancelled events raised by the SiringClockAuction contract.
 17912  type SiringClockAuctionAuctionCancelledIterator struct {
 17913  	Event *SiringClockAuctionAuctionCancelled // Event containing the contract specifics and raw log
 17914  
 17915  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 17916  	event    string              // Event name to use for unpacking event data
 17917  
 17918  	logs chan types.Log        // Log channel receiving the found contract events
 17919  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 17920  	done bool                  // Whether the subscription completed delivering logs
 17921  	fail error                 // Occurred error to stop iteration
 17922  }
 17923  
 17924  // Next advances the iterator to the subsequent event, returning whether there
 17925  // are any more events found. In case of a retrieval or parsing error, false is
 17926  // returned and Error() can be queried for the exact failure.
 17927  func (it *SiringClockAuctionAuctionCancelledIterator) Next() bool {
 17928  	// If the iterator failed, stop iterating
 17929  	if it.fail != nil {
 17930  		return false
 17931  	}
 17932  	// If the iterator completed, deliver directly whatever's available
 17933  	if it.done {
 17934  		select {
 17935  		case log := <-it.logs:
 17936  			it.Event = new(SiringClockAuctionAuctionCancelled)
 17937  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 17938  				it.fail = err
 17939  				return false
 17940  			}
 17941  			it.Event.Raw = log
 17942  			return true
 17943  
 17944  		default:
 17945  			return false
 17946  		}
 17947  	}
 17948  	// Iterator still in progress, wait for either a data or an error event
 17949  	select {
 17950  	case log := <-it.logs:
 17951  		it.Event = new(SiringClockAuctionAuctionCancelled)
 17952  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 17953  			it.fail = err
 17954  			return false
 17955  		}
 17956  		it.Event.Raw = log
 17957  		return true
 17958  
 17959  	case err := <-it.sub.Err():
 17960  		it.done = true
 17961  		it.fail = err
 17962  		return it.Next()
 17963  	}
 17964  }
 17965  
 17966  // Error returns any retrieval or parsing error occurred during filtering.
 17967  func (it *SiringClockAuctionAuctionCancelledIterator) Error() error {
 17968  	return it.fail
 17969  }
 17970  
 17971  // Close terminates the iteration process, releasing any pending underlying
 17972  // resources.
 17973  func (it *SiringClockAuctionAuctionCancelledIterator) Close() error {
 17974  	it.sub.Unsubscribe()
 17975  	return nil
 17976  }
 17977  
 17978  // SiringClockAuctionAuctionCancelled represents a AuctionCancelled event raised by the SiringClockAuction contract.
 17979  type SiringClockAuctionAuctionCancelled struct {
 17980  	TokenId *big.Int
 17981  	Raw     types.Log // Blockchain specific contextual infos
 17982  }
 17983  
 17984  // FilterAuctionCancelled is a free log retrieval operation binding the contract event 0x2809c7e17bf978fbc7194c0a694b638c4215e9140cacc6c38ca36010b45697df.
 17985  //
 17986  // Solidity: event AuctionCancelled(uint256 tokenId)
 17987  func (_SiringClockAuction *SiringClockAuctionFilterer) FilterAuctionCancelled(opts *bind.FilterOpts) (*SiringClockAuctionAuctionCancelledIterator, error) {
 17988  
 17989  	logs, sub, err := _SiringClockAuction.contract.FilterLogs(opts, "AuctionCancelled")
 17990  	if err != nil {
 17991  		return nil, err
 17992  	}
 17993  	return &SiringClockAuctionAuctionCancelledIterator{contract: _SiringClockAuction.contract, event: "AuctionCancelled", logs: logs, sub: sub}, nil
 17994  }
 17995  
 17996  // WatchAuctionCancelled is a free log subscription operation binding the contract event 0x2809c7e17bf978fbc7194c0a694b638c4215e9140cacc6c38ca36010b45697df.
 17997  //
 17998  // Solidity: event AuctionCancelled(uint256 tokenId)
 17999  func (_SiringClockAuction *SiringClockAuctionFilterer) WatchAuctionCancelled(opts *bind.WatchOpts, sink chan<- *SiringClockAuctionAuctionCancelled) (event.Subscription, error) {
 18000  
 18001  	logs, sub, err := _SiringClockAuction.contract.WatchLogs(opts, "AuctionCancelled")
 18002  	if err != nil {
 18003  		return nil, err
 18004  	}
 18005  	return event.NewSubscription(func(quit <-chan struct{}) error {
 18006  		defer sub.Unsubscribe()
 18007  		for {
 18008  			select {
 18009  			case log := <-logs:
 18010  				// New log arrived, parse the event and forward to the user
 18011  				event := new(SiringClockAuctionAuctionCancelled)
 18012  				if err := _SiringClockAuction.contract.UnpackLog(event, "AuctionCancelled", log); err != nil {
 18013  					return err
 18014  				}
 18015  				event.Raw = log
 18016  
 18017  				select {
 18018  				case sink <- event:
 18019  				case err := <-sub.Err():
 18020  					return err
 18021  				case <-quit:
 18022  					return nil
 18023  				}
 18024  			case err := <-sub.Err():
 18025  				return err
 18026  			case <-quit:
 18027  				return nil
 18028  			}
 18029  		}
 18030  	}), nil
 18031  }
 18032  
 18033  // ParseAuctionCancelled is a log parse operation binding the contract event 0x2809c7e17bf978fbc7194c0a694b638c4215e9140cacc6c38ca36010b45697df.
 18034  //
 18035  // Solidity: event AuctionCancelled(uint256 tokenId)
 18036  func (_SiringClockAuction *SiringClockAuctionFilterer) ParseAuctionCancelled(log types.Log) (*SiringClockAuctionAuctionCancelled, error) {
 18037  	event := new(SiringClockAuctionAuctionCancelled)
 18038  	if err := _SiringClockAuction.contract.UnpackLog(event, "AuctionCancelled", log); err != nil {
 18039  		return nil, err
 18040  	}
 18041  	event.Raw = log
 18042  	return event, nil
 18043  }
 18044  
 18045  // SiringClockAuctionAuctionCreatedIterator is returned from FilterAuctionCreated and is used to iterate over the raw logs and unpacked data for AuctionCreated events raised by the SiringClockAuction contract.
 18046  type SiringClockAuctionAuctionCreatedIterator struct {
 18047  	Event *SiringClockAuctionAuctionCreated // Event containing the contract specifics and raw log
 18048  
 18049  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 18050  	event    string              // Event name to use for unpacking event data
 18051  
 18052  	logs chan types.Log        // Log channel receiving the found contract events
 18053  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 18054  	done bool                  // Whether the subscription completed delivering logs
 18055  	fail error                 // Occurred error to stop iteration
 18056  }
 18057  
 18058  // Next advances the iterator to the subsequent event, returning whether there
 18059  // are any more events found. In case of a retrieval or parsing error, false is
 18060  // returned and Error() can be queried for the exact failure.
 18061  func (it *SiringClockAuctionAuctionCreatedIterator) Next() bool {
 18062  	// If the iterator failed, stop iterating
 18063  	if it.fail != nil {
 18064  		return false
 18065  	}
 18066  	// If the iterator completed, deliver directly whatever's available
 18067  	if it.done {
 18068  		select {
 18069  		case log := <-it.logs:
 18070  			it.Event = new(SiringClockAuctionAuctionCreated)
 18071  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 18072  				it.fail = err
 18073  				return false
 18074  			}
 18075  			it.Event.Raw = log
 18076  			return true
 18077  
 18078  		default:
 18079  			return false
 18080  		}
 18081  	}
 18082  	// Iterator still in progress, wait for either a data or an error event
 18083  	select {
 18084  	case log := <-it.logs:
 18085  		it.Event = new(SiringClockAuctionAuctionCreated)
 18086  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 18087  			it.fail = err
 18088  			return false
 18089  		}
 18090  		it.Event.Raw = log
 18091  		return true
 18092  
 18093  	case err := <-it.sub.Err():
 18094  		it.done = true
 18095  		it.fail = err
 18096  		return it.Next()
 18097  	}
 18098  }
 18099  
 18100  // Error returns any retrieval or parsing error occurred during filtering.
 18101  func (it *SiringClockAuctionAuctionCreatedIterator) Error() error {
 18102  	return it.fail
 18103  }
 18104  
 18105  // Close terminates the iteration process, releasing any pending underlying
 18106  // resources.
 18107  func (it *SiringClockAuctionAuctionCreatedIterator) Close() error {
 18108  	it.sub.Unsubscribe()
 18109  	return nil
 18110  }
 18111  
 18112  // SiringClockAuctionAuctionCreated represents a AuctionCreated event raised by the SiringClockAuction contract.
 18113  type SiringClockAuctionAuctionCreated struct {
 18114  	TokenId       *big.Int
 18115  	StartingPrice *big.Int
 18116  	EndingPrice   *big.Int
 18117  	Duration      *big.Int
 18118  	Raw           types.Log // Blockchain specific contextual infos
 18119  }
 18120  
 18121  // FilterAuctionCreated is a free log retrieval operation binding the contract event 0xa9c8dfcda5664a5a124c713e386da27de87432d5b668e79458501eb296389ba7.
 18122  //
 18123  // Solidity: event AuctionCreated(uint256 tokenId, uint256 startingPrice, uint256 endingPrice, uint256 duration)
 18124  func (_SiringClockAuction *SiringClockAuctionFilterer) FilterAuctionCreated(opts *bind.FilterOpts) (*SiringClockAuctionAuctionCreatedIterator, error) {
 18125  
 18126  	logs, sub, err := _SiringClockAuction.contract.FilterLogs(opts, "AuctionCreated")
 18127  	if err != nil {
 18128  		return nil, err
 18129  	}
 18130  	return &SiringClockAuctionAuctionCreatedIterator{contract: _SiringClockAuction.contract, event: "AuctionCreated", logs: logs, sub: sub}, nil
 18131  }
 18132  
 18133  // WatchAuctionCreated is a free log subscription operation binding the contract event 0xa9c8dfcda5664a5a124c713e386da27de87432d5b668e79458501eb296389ba7.
 18134  //
 18135  // Solidity: event AuctionCreated(uint256 tokenId, uint256 startingPrice, uint256 endingPrice, uint256 duration)
 18136  func (_SiringClockAuction *SiringClockAuctionFilterer) WatchAuctionCreated(opts *bind.WatchOpts, sink chan<- *SiringClockAuctionAuctionCreated) (event.Subscription, error) {
 18137  
 18138  	logs, sub, err := _SiringClockAuction.contract.WatchLogs(opts, "AuctionCreated")
 18139  	if err != nil {
 18140  		return nil, err
 18141  	}
 18142  	return event.NewSubscription(func(quit <-chan struct{}) error {
 18143  		defer sub.Unsubscribe()
 18144  		for {
 18145  			select {
 18146  			case log := <-logs:
 18147  				// New log arrived, parse the event and forward to the user
 18148  				event := new(SiringClockAuctionAuctionCreated)
 18149  				if err := _SiringClockAuction.contract.UnpackLog(event, "AuctionCreated", log); err != nil {
 18150  					return err
 18151  				}
 18152  				event.Raw = log
 18153  
 18154  				select {
 18155  				case sink <- event:
 18156  				case err := <-sub.Err():
 18157  					return err
 18158  				case <-quit:
 18159  					return nil
 18160  				}
 18161  			case err := <-sub.Err():
 18162  				return err
 18163  			case <-quit:
 18164  				return nil
 18165  			}
 18166  		}
 18167  	}), nil
 18168  }
 18169  
 18170  // ParseAuctionCreated is a log parse operation binding the contract event 0xa9c8dfcda5664a5a124c713e386da27de87432d5b668e79458501eb296389ba7.
 18171  //
 18172  // Solidity: event AuctionCreated(uint256 tokenId, uint256 startingPrice, uint256 endingPrice, uint256 duration)
 18173  func (_SiringClockAuction *SiringClockAuctionFilterer) ParseAuctionCreated(log types.Log) (*SiringClockAuctionAuctionCreated, error) {
 18174  	event := new(SiringClockAuctionAuctionCreated)
 18175  	if err := _SiringClockAuction.contract.UnpackLog(event, "AuctionCreated", log); err != nil {
 18176  		return nil, err
 18177  	}
 18178  	event.Raw = log
 18179  	return event, nil
 18180  }
 18181  
 18182  // SiringClockAuctionAuctionSuccessfulIterator is returned from FilterAuctionSuccessful and is used to iterate over the raw logs and unpacked data for AuctionSuccessful events raised by the SiringClockAuction contract.
 18183  type SiringClockAuctionAuctionSuccessfulIterator struct {
 18184  	Event *SiringClockAuctionAuctionSuccessful // Event containing the contract specifics and raw log
 18185  
 18186  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 18187  	event    string              // Event name to use for unpacking event data
 18188  
 18189  	logs chan types.Log        // Log channel receiving the found contract events
 18190  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 18191  	done bool                  // Whether the subscription completed delivering logs
 18192  	fail error                 // Occurred error to stop iteration
 18193  }
 18194  
 18195  // Next advances the iterator to the subsequent event, returning whether there
 18196  // are any more events found. In case of a retrieval or parsing error, false is
 18197  // returned and Error() can be queried for the exact failure.
 18198  func (it *SiringClockAuctionAuctionSuccessfulIterator) Next() bool {
 18199  	// If the iterator failed, stop iterating
 18200  	if it.fail != nil {
 18201  		return false
 18202  	}
 18203  	// If the iterator completed, deliver directly whatever's available
 18204  	if it.done {
 18205  		select {
 18206  		case log := <-it.logs:
 18207  			it.Event = new(SiringClockAuctionAuctionSuccessful)
 18208  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 18209  				it.fail = err
 18210  				return false
 18211  			}
 18212  			it.Event.Raw = log
 18213  			return true
 18214  
 18215  		default:
 18216  			return false
 18217  		}
 18218  	}
 18219  	// Iterator still in progress, wait for either a data or an error event
 18220  	select {
 18221  	case log := <-it.logs:
 18222  		it.Event = new(SiringClockAuctionAuctionSuccessful)
 18223  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 18224  			it.fail = err
 18225  			return false
 18226  		}
 18227  		it.Event.Raw = log
 18228  		return true
 18229  
 18230  	case err := <-it.sub.Err():
 18231  		it.done = true
 18232  		it.fail = err
 18233  		return it.Next()
 18234  	}
 18235  }
 18236  
 18237  // Error returns any retrieval or parsing error occurred during filtering.
 18238  func (it *SiringClockAuctionAuctionSuccessfulIterator) Error() error {
 18239  	return it.fail
 18240  }
 18241  
 18242  // Close terminates the iteration process, releasing any pending underlying
 18243  // resources.
 18244  func (it *SiringClockAuctionAuctionSuccessfulIterator) Close() error {
 18245  	it.sub.Unsubscribe()
 18246  	return nil
 18247  }
 18248  
 18249  // SiringClockAuctionAuctionSuccessful represents a AuctionSuccessful event raised by the SiringClockAuction contract.
 18250  type SiringClockAuctionAuctionSuccessful struct {
 18251  	TokenId    *big.Int
 18252  	TotalPrice *big.Int
 18253  	Winner     common.Address
 18254  	Raw        types.Log // Blockchain specific contextual infos
 18255  }
 18256  
 18257  // FilterAuctionSuccessful is a free log retrieval operation binding the contract event 0x4fcc30d90a842164dd58501ab874a101a3749c3d4747139cefe7c876f4ccebd2.
 18258  //
 18259  // Solidity: event AuctionSuccessful(uint256 tokenId, uint256 totalPrice, address winner)
 18260  func (_SiringClockAuction *SiringClockAuctionFilterer) FilterAuctionSuccessful(opts *bind.FilterOpts) (*SiringClockAuctionAuctionSuccessfulIterator, error) {
 18261  
 18262  	logs, sub, err := _SiringClockAuction.contract.FilterLogs(opts, "AuctionSuccessful")
 18263  	if err != nil {
 18264  		return nil, err
 18265  	}
 18266  	return &SiringClockAuctionAuctionSuccessfulIterator{contract: _SiringClockAuction.contract, event: "AuctionSuccessful", logs: logs, sub: sub}, nil
 18267  }
 18268  
 18269  // WatchAuctionSuccessful is a free log subscription operation binding the contract event 0x4fcc30d90a842164dd58501ab874a101a3749c3d4747139cefe7c876f4ccebd2.
 18270  //
 18271  // Solidity: event AuctionSuccessful(uint256 tokenId, uint256 totalPrice, address winner)
 18272  func (_SiringClockAuction *SiringClockAuctionFilterer) WatchAuctionSuccessful(opts *bind.WatchOpts, sink chan<- *SiringClockAuctionAuctionSuccessful) (event.Subscription, error) {
 18273  
 18274  	logs, sub, err := _SiringClockAuction.contract.WatchLogs(opts, "AuctionSuccessful")
 18275  	if err != nil {
 18276  		return nil, err
 18277  	}
 18278  	return event.NewSubscription(func(quit <-chan struct{}) error {
 18279  		defer sub.Unsubscribe()
 18280  		for {
 18281  			select {
 18282  			case log := <-logs:
 18283  				// New log arrived, parse the event and forward to the user
 18284  				event := new(SiringClockAuctionAuctionSuccessful)
 18285  				if err := _SiringClockAuction.contract.UnpackLog(event, "AuctionSuccessful", log); err != nil {
 18286  					return err
 18287  				}
 18288  				event.Raw = log
 18289  
 18290  				select {
 18291  				case sink <- event:
 18292  				case err := <-sub.Err():
 18293  					return err
 18294  				case <-quit:
 18295  					return nil
 18296  				}
 18297  			case err := <-sub.Err():
 18298  				return err
 18299  			case <-quit:
 18300  				return nil
 18301  			}
 18302  		}
 18303  	}), nil
 18304  }
 18305  
 18306  // ParseAuctionSuccessful is a log parse operation binding the contract event 0x4fcc30d90a842164dd58501ab874a101a3749c3d4747139cefe7c876f4ccebd2.
 18307  //
 18308  // Solidity: event AuctionSuccessful(uint256 tokenId, uint256 totalPrice, address winner)
 18309  func (_SiringClockAuction *SiringClockAuctionFilterer) ParseAuctionSuccessful(log types.Log) (*SiringClockAuctionAuctionSuccessful, error) {
 18310  	event := new(SiringClockAuctionAuctionSuccessful)
 18311  	if err := _SiringClockAuction.contract.UnpackLog(event, "AuctionSuccessful", log); err != nil {
 18312  		return nil, err
 18313  	}
 18314  	event.Raw = log
 18315  	return event, nil
 18316  }
 18317  
 18318  // SiringClockAuctionPauseIterator is returned from FilterPause and is used to iterate over the raw logs and unpacked data for Pause events raised by the SiringClockAuction contract.
 18319  type SiringClockAuctionPauseIterator struct {
 18320  	Event *SiringClockAuctionPause // Event containing the contract specifics and raw log
 18321  
 18322  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 18323  	event    string              // Event name to use for unpacking event data
 18324  
 18325  	logs chan types.Log        // Log channel receiving the found contract events
 18326  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 18327  	done bool                  // Whether the subscription completed delivering logs
 18328  	fail error                 // Occurred error to stop iteration
 18329  }
 18330  
 18331  // Next advances the iterator to the subsequent event, returning whether there
 18332  // are any more events found. In case of a retrieval or parsing error, false is
 18333  // returned and Error() can be queried for the exact failure.
 18334  func (it *SiringClockAuctionPauseIterator) Next() bool {
 18335  	// If the iterator failed, stop iterating
 18336  	if it.fail != nil {
 18337  		return false
 18338  	}
 18339  	// If the iterator completed, deliver directly whatever's available
 18340  	if it.done {
 18341  		select {
 18342  		case log := <-it.logs:
 18343  			it.Event = new(SiringClockAuctionPause)
 18344  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 18345  				it.fail = err
 18346  				return false
 18347  			}
 18348  			it.Event.Raw = log
 18349  			return true
 18350  
 18351  		default:
 18352  			return false
 18353  		}
 18354  	}
 18355  	// Iterator still in progress, wait for either a data or an error event
 18356  	select {
 18357  	case log := <-it.logs:
 18358  		it.Event = new(SiringClockAuctionPause)
 18359  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 18360  			it.fail = err
 18361  			return false
 18362  		}
 18363  		it.Event.Raw = log
 18364  		return true
 18365  
 18366  	case err := <-it.sub.Err():
 18367  		it.done = true
 18368  		it.fail = err
 18369  		return it.Next()
 18370  	}
 18371  }
 18372  
 18373  // Error returns any retrieval or parsing error occurred during filtering.
 18374  func (it *SiringClockAuctionPauseIterator) Error() error {
 18375  	return it.fail
 18376  }
 18377  
 18378  // Close terminates the iteration process, releasing any pending underlying
 18379  // resources.
 18380  func (it *SiringClockAuctionPauseIterator) Close() error {
 18381  	it.sub.Unsubscribe()
 18382  	return nil
 18383  }
 18384  
 18385  // SiringClockAuctionPause represents a Pause event raised by the SiringClockAuction contract.
 18386  type SiringClockAuctionPause struct {
 18387  	Raw types.Log // Blockchain specific contextual infos
 18388  }
 18389  
 18390  // FilterPause is a free log retrieval operation binding the contract event 0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625.
 18391  //
 18392  // Solidity: event Pause()
 18393  func (_SiringClockAuction *SiringClockAuctionFilterer) FilterPause(opts *bind.FilterOpts) (*SiringClockAuctionPauseIterator, error) {
 18394  
 18395  	logs, sub, err := _SiringClockAuction.contract.FilterLogs(opts, "Pause")
 18396  	if err != nil {
 18397  		return nil, err
 18398  	}
 18399  	return &SiringClockAuctionPauseIterator{contract: _SiringClockAuction.contract, event: "Pause", logs: logs, sub: sub}, nil
 18400  }
 18401  
 18402  // WatchPause is a free log subscription operation binding the contract event 0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625.
 18403  //
 18404  // Solidity: event Pause()
 18405  func (_SiringClockAuction *SiringClockAuctionFilterer) WatchPause(opts *bind.WatchOpts, sink chan<- *SiringClockAuctionPause) (event.Subscription, error) {
 18406  
 18407  	logs, sub, err := _SiringClockAuction.contract.WatchLogs(opts, "Pause")
 18408  	if err != nil {
 18409  		return nil, err
 18410  	}
 18411  	return event.NewSubscription(func(quit <-chan struct{}) error {
 18412  		defer sub.Unsubscribe()
 18413  		for {
 18414  			select {
 18415  			case log := <-logs:
 18416  				// New log arrived, parse the event and forward to the user
 18417  				event := new(SiringClockAuctionPause)
 18418  				if err := _SiringClockAuction.contract.UnpackLog(event, "Pause", log); err != nil {
 18419  					return err
 18420  				}
 18421  				event.Raw = log
 18422  
 18423  				select {
 18424  				case sink <- event:
 18425  				case err := <-sub.Err():
 18426  					return err
 18427  				case <-quit:
 18428  					return nil
 18429  				}
 18430  			case err := <-sub.Err():
 18431  				return err
 18432  			case <-quit:
 18433  				return nil
 18434  			}
 18435  		}
 18436  	}), nil
 18437  }
 18438  
 18439  // ParsePause is a log parse operation binding the contract event 0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625.
 18440  //
 18441  // Solidity: event Pause()
 18442  func (_SiringClockAuction *SiringClockAuctionFilterer) ParsePause(log types.Log) (*SiringClockAuctionPause, error) {
 18443  	event := new(SiringClockAuctionPause)
 18444  	if err := _SiringClockAuction.contract.UnpackLog(event, "Pause", log); err != nil {
 18445  		return nil, err
 18446  	}
 18447  	event.Raw = log
 18448  	return event, nil
 18449  }
 18450  
 18451  // SiringClockAuctionUnpauseIterator is returned from FilterUnpause and is used to iterate over the raw logs and unpacked data for Unpause events raised by the SiringClockAuction contract.
 18452  type SiringClockAuctionUnpauseIterator struct {
 18453  	Event *SiringClockAuctionUnpause // Event containing the contract specifics and raw log
 18454  
 18455  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 18456  	event    string              // Event name to use for unpacking event data
 18457  
 18458  	logs chan types.Log        // Log channel receiving the found contract events
 18459  	sub  ethereum.Subscription // Subscription for errors, completion and termination
 18460  	done bool                  // Whether the subscription completed delivering logs
 18461  	fail error                 // Occurred error to stop iteration
 18462  }
 18463  
 18464  // Next advances the iterator to the subsequent event, returning whether there
 18465  // are any more events found. In case of a retrieval or parsing error, false is
 18466  // returned and Error() can be queried for the exact failure.
 18467  func (it *SiringClockAuctionUnpauseIterator) Next() bool {
 18468  	// If the iterator failed, stop iterating
 18469  	if it.fail != nil {
 18470  		return false
 18471  	}
 18472  	// If the iterator completed, deliver directly whatever's available
 18473  	if it.done {
 18474  		select {
 18475  		case log := <-it.logs:
 18476  			it.Event = new(SiringClockAuctionUnpause)
 18477  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 18478  				it.fail = err
 18479  				return false
 18480  			}
 18481  			it.Event.Raw = log
 18482  			return true
 18483  
 18484  		default:
 18485  			return false
 18486  		}
 18487  	}
 18488  	// Iterator still in progress, wait for either a data or an error event
 18489  	select {
 18490  	case log := <-it.logs:
 18491  		it.Event = new(SiringClockAuctionUnpause)
 18492  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 18493  			it.fail = err
 18494  			return false
 18495  		}
 18496  		it.Event.Raw = log
 18497  		return true
 18498  
 18499  	case err := <-it.sub.Err():
 18500  		it.done = true
 18501  		it.fail = err
 18502  		return it.Next()
 18503  	}
 18504  }
 18505  
 18506  // Error returns any retrieval or parsing error occurred during filtering.
 18507  func (it *SiringClockAuctionUnpauseIterator) Error() error {
 18508  	return it.fail
 18509  }
 18510  
 18511  // Close terminates the iteration process, releasing any pending underlying
 18512  // resources.
 18513  func (it *SiringClockAuctionUnpauseIterator) Close() error {
 18514  	it.sub.Unsubscribe()
 18515  	return nil
 18516  }
 18517  
 18518  // SiringClockAuctionUnpause represents a Unpause event raised by the SiringClockAuction contract.
 18519  type SiringClockAuctionUnpause struct {
 18520  	Raw types.Log // Blockchain specific contextual infos
 18521  }
 18522  
 18523  // FilterUnpause is a free log retrieval operation binding the contract event 0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33.
 18524  //
 18525  // Solidity: event Unpause()
 18526  func (_SiringClockAuction *SiringClockAuctionFilterer) FilterUnpause(opts *bind.FilterOpts) (*SiringClockAuctionUnpauseIterator, error) {
 18527  
 18528  	logs, sub, err := _SiringClockAuction.contract.FilterLogs(opts, "Unpause")
 18529  	if err != nil {
 18530  		return nil, err
 18531  	}
 18532  	return &SiringClockAuctionUnpauseIterator{contract: _SiringClockAuction.contract, event: "Unpause", logs: logs, sub: sub}, nil
 18533  }
 18534  
 18535  // WatchUnpause is a free log subscription operation binding the contract event 0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33.
 18536  //
 18537  // Solidity: event Unpause()
 18538  func (_SiringClockAuction *SiringClockAuctionFilterer) WatchUnpause(opts *bind.WatchOpts, sink chan<- *SiringClockAuctionUnpause) (event.Subscription, error) {
 18539  
 18540  	logs, sub, err := _SiringClockAuction.contract.WatchLogs(opts, "Unpause")
 18541  	if err != nil {
 18542  		return nil, err
 18543  	}
 18544  	return event.NewSubscription(func(quit <-chan struct{}) error {
 18545  		defer sub.Unsubscribe()
 18546  		for {
 18547  			select {
 18548  			case log := <-logs:
 18549  				// New log arrived, parse the event and forward to the user
 18550  				event := new(SiringClockAuctionUnpause)
 18551  				if err := _SiringClockAuction.contract.UnpackLog(event, "Unpause", log); err != nil {
 18552  					return err
 18553  				}
 18554  				event.Raw = log
 18555  
 18556  				select {
 18557  				case sink <- event:
 18558  				case err := <-sub.Err():
 18559  					return err
 18560  				case <-quit:
 18561  					return nil
 18562  				}
 18563  			case err := <-sub.Err():
 18564  				return err
 18565  			case <-quit:
 18566  				return nil
 18567  			}
 18568  		}
 18569  	}), nil
 18570  }
 18571  
 18572  // ParseUnpause is a log parse operation binding the contract event 0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33.
 18573  //
 18574  // Solidity: event Unpause()
 18575  func (_SiringClockAuction *SiringClockAuctionFilterer) ParseUnpause(log types.Log) (*SiringClockAuctionUnpause, error) {
 18576  	event := new(SiringClockAuctionUnpause)
 18577  	if err := _SiringClockAuction.contract.UnpackLog(event, "Unpause", log); err != nil {
 18578  		return nil, err
 18579  	}
 18580  	event.Raw = log
 18581  	return event, nil
 18582  }