github.com/diadata-org/diadata@v1.4.593/config/nftContracts/cryptokittiesauction/cryptokittiesauction.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 cryptokittiesauction
     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 = "0x60606040526000805460a060020a60ff0219169055341561001f57600080fd5b604051604080610e66833981016040528080519190602001805160008054600160a060020a03191633600160a060020a0316178155909250905061271082111561006857600080fd5b50600281905581600160a060020a0381166301ffc9a77f9a20483d000000000000000000000000000000000000000000000000000000006040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281527fffffffff000000000000000000000000000000000000000000000000000000009091166004820152602401602060405180830381600087803b151561010f57600080fd5b5af1151561011c57600080fd5b50505060405180519050151561013157600080fd5b60018054600160a060020a03909216600160a060020a03199092169190911790555050610d03806101636000396000f3006060604052600436106100b65763ffffffff60e060020a60003504166327ebe40a81146100bb5780633f4ba83a146100e8578063454a2ab31461010f5780635c975abb1461011a5780635fd8c7101461012d57806378bd79351461014057806383b5ff8b146101915780638456cb59146101b6578063878eb368146101c95780638da5cb5b146101df57806396b5a7551461020e578063c55d0f5614610224578063dd1b7a0f1461023a578063f2fde38b1461024d575b600080fd5b34156100c657600080fd5b6100e6600435602435604435606435600160a060020a036084351661026c565b005b34156100f357600080fd5b6100fb610355565b604051901515815260200160405180910390f35b6100e66004356103d9565b341561012557600080fd5b6100fb610408565b341561013857600080fd5b6100e6610418565b341561014b57600080fd5b61015660043561048e565b604051600160a060020a03909516855260208501939093526040808501929092526060840152608083019190915260a0909101905180910390f35b341561019c57600080fd5b6101a461051b565b60405190815260200160405180910390f35b34156101c157600080fd5b6100fb610521565b34156101d457600080fd5b6100e66004356105aa565b34156101ea57600080fd5b6101f261061b565b604051600160a060020a03909116815260200160405180910390f35b341561021957600080fd5b6100e660043561062a565b341561022f57600080fd5b6101a4600435610678565b341561024557600080fd5b6101f26106aa565b341561025857600080fd5b6100e6600160a060020a03600435166106b9565b610274610ca9565b60005460a060020a900460ff161561028b57600080fd5b6001608060020a03851685146102a057600080fd5b6001608060020a03841684146102b557600080fd5b67ffffffffffffffff831683146102cb57600080fd5b6102d53387610710565b15156102e057600080fd5b6102ea3387610788565b60a06040519081016040528083600160a060020a03168152602001866001608060020a03168152602001856001608060020a031681526020018467ffffffffffffffff1681526020014267ffffffffffffffff16815250905061034d86826107ff565b505050505050565b6000805433600160a060020a0390811691161461037157600080fd5b60005460a060020a900460ff16151561038957600080fd5b6000805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a150600190565b60005460a060020a900460ff16156103f057600080fd5b6103fa813461099a565b506104053382610acb565b50565b60005460a060020a900460ff1681565b60015460008054600160a060020a03928316923381169116148061044d575081600160a060020a031633600160a060020a0316145b151561045857600080fd5b81600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f150505050505050565b600081815260036020526040812081908190819081906104ad81610b21565b15156104b857600080fd5b80546001820154600290920154600160a060020a03909116986001608060020a038084169950700100000000000000000000000000000000909304909216965067ffffffffffffffff808216965068010000000000000000909104169350915050565b60025481565b6000805433600160a060020a0390811691161461053d57600080fd5b60005460a060020a900460ff161561055457600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a150600190565b6000805460a060020a900460ff1615156105c357600080fd5b60005433600160a060020a039081169116146105de57600080fd5b5060008181526003602052604090206105f681610b21565b151561060157600080fd5b8054610617908390600160a060020a0316610b42565b5050565b600054600160a060020a031681565b60008181526003602052604081209061064282610b21565b151561064d57600080fd5b508054600160a060020a03908116903316811461066957600080fd5b6106738382610b42565b505050565b600081815260036020526040812061068f81610b21565b151561069a57600080fd5b6106a381610b8c565b9392505050565b600154600160a060020a031681565b60005433600160a060020a039081169116146106d457600080fd5b600160a060020a038116156104055760008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550565b600154600090600160a060020a038085169116636352211e8460405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561075f57600080fd5b5af1151561076c57600080fd5b50505060405180519050600160a060020a031614905092915050565b600154600160a060020a03166323b872dd83308460405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107eb57600080fd5b5af115156107f857600080fd5b5050505050565b603c816060015167ffffffffffffffff16101561081b57600080fd5b600082815260036020526040902081908151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039190911617815560208201516001820180546fffffffffffffffffffffffffffffffff19166001608060020a039290921691909117905560408201516001820180546001608060020a03928316700100000000000000000000000000000000029216919091179055606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201516002909101805467ffffffffffffffff9290921668010000000000000000026fffffffffffffffff000000000000000019909216919091179055507fa9c8dfcda5664a5a124c713e386da27de87432d5b668e79458501eb296389ba78260208301516001608060020a031683604001516001608060020a0316846060015167ffffffffffffffff166040518085815260200184815260200183815260200182815260200194505050505060405180910390a15050565b600082815260036020526040812081808080806109b686610b21565b15156109c157600080fd5b6109ca86610b8c565b9450848810156109d957600080fd5b8554600160a060020a031693506109ef89610c13565b6000851115610a3957610a0185610c60565b92508285039150600160a060020a03841682156108fc0283604051600060405180830381858888f193505050501515610a3957600080fd5b50838703600160a060020a03331681156108fc0282604051600060405180830381858888f193505050501515610a6e57600080fd5b7f4fcc30d90a842164dd58501ab874a101a3749c3d4747139cefe7c876f4ccebd28986336040519283526020830191909152600160a060020a03166040808301919091526060909101905180910390a15092979650505050505050565b600154600160a060020a031663a9059cbb838360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156107eb57600080fd5b6002015460006801000000000000000090910467ffffffffffffffff161190565b610b4b82610c13565b610b558183610acb565b7f2809c7e17bf978fbc7194c0a694b638c4215e9140cacc6c38ca36010b45697df8260405190815260200160405180910390a15050565b6002810154600090819068010000000000000000900467ffffffffffffffff16421115610bd25750600282015468010000000000000000900467ffffffffffffffff1642035b600183015460028401546106a3916001608060020a0380821692700100000000000000000000000000000000909204169067ffffffffffffffff1684610c6c565b6000908152600360205260408120805473ffffffffffffffffffffffffffffffffffffffff19168155600181019190915560020180546fffffffffffffffffffffffffffffffff19169055565b60025461271091020490565b6000808080858510610c8057869350610c9e565b878703925085858402811515610c9257fe5b05915081880190508093505b505050949350505050565b60a06040519081016040908152600080835260208301819052908201819052606082018190526080820152905600a165627a7a72305820677d4a684ab2167ef72b7640b96a95f22a492811ea7d2a486422586e3a5889d40029"
    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 = "0x6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166383b5ff8b8114604d578063dd1b7a0f14606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820b7cb6235cfe7070a6706e879770b0f1ac48c203be7c14473f84af0b3e99634fc0029"
  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  // OwnableABI is the input ABI used to generate the binding from.
  2515  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\"}]"
  2516  
  2517  // OwnableFuncSigs maps the 4-byte function signature to its string representation.
  2518  var OwnableFuncSigs = map[string]string{
  2519  	"8da5cb5b": "owner()",
  2520  	"f2fde38b": "transferOwnership(address)",
  2521  }
  2522  
  2523  // OwnableBin is the compiled bytecode used for deploying new contracts.
  2524  var OwnableBin = "0x6060604052341561000f57600080fd5b60008054600160a060020a033316600160a060020a031990911617905561017f8061003b6000396000f30060606040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416638da5cb5b8114610050578063f2fde38b1461008c575b600080fd5b341561005b57600080fd5b6100636100ba565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561009757600080fd5b6100b873ffffffffffffffffffffffffffffffffffffffff600435166100d6565b005b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6000543373ffffffffffffffffffffffffffffffffffffffff9081169116146100fe57600080fd5b73ffffffffffffffffffffffffffffffffffffffff811615610150576000805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff83161790555b505600a165627a7a723058209c6071079fe4d3455176e6b30f735ca99e5b67d24eb7deef2648d7ea1b152c3e0029"
  2525  
  2526  // DeployOwnable deploys a new Ethereum contract, binding an instance of Ownable to it.
  2527  func DeployOwnable(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Ownable, error) {
  2528  	parsed, err := abi.JSON(strings.NewReader(OwnableABI))
  2529  	if err != nil {
  2530  		return common.Address{}, nil, nil, err
  2531  	}
  2532  
  2533  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(OwnableBin), backend)
  2534  	if err != nil {
  2535  		return common.Address{}, nil, nil, err
  2536  	}
  2537  	return address, tx, &Ownable{OwnableCaller: OwnableCaller{contract: contract}, OwnableTransactor: OwnableTransactor{contract: contract}, OwnableFilterer: OwnableFilterer{contract: contract}}, nil
  2538  }
  2539  
  2540  // Ownable is an auto generated Go binding around an Ethereum contract.
  2541  type Ownable struct {
  2542  	OwnableCaller     // Read-only binding to the contract
  2543  	OwnableTransactor // Write-only binding to the contract
  2544  	OwnableFilterer   // Log filterer for contract events
  2545  }
  2546  
  2547  // OwnableCaller is an auto generated read-only Go binding around an Ethereum contract.
  2548  type OwnableCaller struct {
  2549  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2550  }
  2551  
  2552  // OwnableTransactor is an auto generated write-only Go binding around an Ethereum contract.
  2553  type OwnableTransactor struct {
  2554  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2555  }
  2556  
  2557  // OwnableFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  2558  type OwnableFilterer struct {
  2559  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2560  }
  2561  
  2562  // OwnableSession is an auto generated Go binding around an Ethereum contract,
  2563  // with pre-set call and transact options.
  2564  type OwnableSession struct {
  2565  	Contract     *Ownable          // Generic contract binding to set the session for
  2566  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  2567  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  2568  }
  2569  
  2570  // OwnableCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  2571  // with pre-set call options.
  2572  type OwnableCallerSession struct {
  2573  	Contract *OwnableCaller // Generic contract caller binding to set the session for
  2574  	CallOpts bind.CallOpts  // Call options to use throughout this session
  2575  }
  2576  
  2577  // OwnableTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  2578  // with pre-set transact options.
  2579  type OwnableTransactorSession struct {
  2580  	Contract     *OwnableTransactor // Generic contract transactor binding to set the session for
  2581  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
  2582  }
  2583  
  2584  // OwnableRaw is an auto generated low-level Go binding around an Ethereum contract.
  2585  type OwnableRaw struct {
  2586  	Contract *Ownable // Generic contract binding to access the raw methods on
  2587  }
  2588  
  2589  // OwnableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  2590  type OwnableCallerRaw struct {
  2591  	Contract *OwnableCaller // Generic read-only contract binding to access the raw methods on
  2592  }
  2593  
  2594  // OwnableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  2595  type OwnableTransactorRaw struct {
  2596  	Contract *OwnableTransactor // Generic write-only contract binding to access the raw methods on
  2597  }
  2598  
  2599  // NewOwnable creates a new instance of Ownable, bound to a specific deployed contract.
  2600  func NewOwnable(address common.Address, backend bind.ContractBackend) (*Ownable, error) {
  2601  	contract, err := bindOwnable(address, backend, backend, backend)
  2602  	if err != nil {
  2603  		return nil, err
  2604  	}
  2605  	return &Ownable{OwnableCaller: OwnableCaller{contract: contract}, OwnableTransactor: OwnableTransactor{contract: contract}, OwnableFilterer: OwnableFilterer{contract: contract}}, nil
  2606  }
  2607  
  2608  // NewOwnableCaller creates a new read-only instance of Ownable, bound to a specific deployed contract.
  2609  func NewOwnableCaller(address common.Address, caller bind.ContractCaller) (*OwnableCaller, error) {
  2610  	contract, err := bindOwnable(address, caller, nil, nil)
  2611  	if err != nil {
  2612  		return nil, err
  2613  	}
  2614  	return &OwnableCaller{contract: contract}, nil
  2615  }
  2616  
  2617  // NewOwnableTransactor creates a new write-only instance of Ownable, bound to a specific deployed contract.
  2618  func NewOwnableTransactor(address common.Address, transactor bind.ContractTransactor) (*OwnableTransactor, error) {
  2619  	contract, err := bindOwnable(address, nil, transactor, nil)
  2620  	if err != nil {
  2621  		return nil, err
  2622  	}
  2623  	return &OwnableTransactor{contract: contract}, nil
  2624  }
  2625  
  2626  // NewOwnableFilterer creates a new log filterer instance of Ownable, bound to a specific deployed contract.
  2627  func NewOwnableFilterer(address common.Address, filterer bind.ContractFilterer) (*OwnableFilterer, error) {
  2628  	contract, err := bindOwnable(address, nil, nil, filterer)
  2629  	if err != nil {
  2630  		return nil, err
  2631  	}
  2632  	return &OwnableFilterer{contract: contract}, nil
  2633  }
  2634  
  2635  // bindOwnable binds a generic wrapper to an already deployed contract.
  2636  func bindOwnable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  2637  	parsed, err := abi.JSON(strings.NewReader(OwnableABI))
  2638  	if err != nil {
  2639  		return nil, err
  2640  	}
  2641  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  2642  }
  2643  
  2644  // Call invokes the (constant) contract method with params as input values and
  2645  // sets the output to result. The result type might be a single field for simple
  2646  // returns, a slice of interfaces for anonymous returns and a struct for named
  2647  // returns.
  2648  func (_Ownable *OwnableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  2649  	return _Ownable.Contract.OwnableCaller.contract.Call(opts, result, method, params...)
  2650  }
  2651  
  2652  // Transfer initiates a plain transaction to move funds to the contract, calling
  2653  // its default method if one is available.
  2654  func (_Ownable *OwnableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  2655  	return _Ownable.Contract.OwnableTransactor.contract.Transfer(opts)
  2656  }
  2657  
  2658  // Transact invokes the (paid) contract method with params as input values.
  2659  func (_Ownable *OwnableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  2660  	return _Ownable.Contract.OwnableTransactor.contract.Transact(opts, method, params...)
  2661  }
  2662  
  2663  // Call invokes the (constant) contract method with params as input values and
  2664  // sets the output to result. The result type might be a single field for simple
  2665  // returns, a slice of interfaces for anonymous returns and a struct for named
  2666  // returns.
  2667  func (_Ownable *OwnableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  2668  	return _Ownable.Contract.contract.Call(opts, result, method, params...)
  2669  }
  2670  
  2671  // Transfer initiates a plain transaction to move funds to the contract, calling
  2672  // its default method if one is available.
  2673  func (_Ownable *OwnableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  2674  	return _Ownable.Contract.contract.Transfer(opts)
  2675  }
  2676  
  2677  // Transact invokes the (paid) contract method with params as input values.
  2678  func (_Ownable *OwnableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  2679  	return _Ownable.Contract.contract.Transact(opts, method, params...)
  2680  }
  2681  
  2682  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  2683  //
  2684  // Solidity: function owner() view returns(address)
  2685  func (_Ownable *OwnableCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
  2686  	var out []interface{}
  2687  	err := _Ownable.contract.Call(opts, &out, "owner")
  2688  
  2689  	if err != nil {
  2690  		return *new(common.Address), err
  2691  	}
  2692  
  2693  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  2694  
  2695  	return out0, err
  2696  
  2697  }
  2698  
  2699  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  2700  //
  2701  // Solidity: function owner() view returns(address)
  2702  func (_Ownable *OwnableSession) Owner() (common.Address, error) {
  2703  	return _Ownable.Contract.Owner(&_Ownable.CallOpts)
  2704  }
  2705  
  2706  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  2707  //
  2708  // Solidity: function owner() view returns(address)
  2709  func (_Ownable *OwnableCallerSession) Owner() (common.Address, error) {
  2710  	return _Ownable.Contract.Owner(&_Ownable.CallOpts)
  2711  }
  2712  
  2713  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  2714  //
  2715  // Solidity: function transferOwnership(address newOwner) returns()
  2716  func (_Ownable *OwnableTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  2717  	return _Ownable.contract.Transact(opts, "transferOwnership", newOwner)
  2718  }
  2719  
  2720  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  2721  //
  2722  // Solidity: function transferOwnership(address newOwner) returns()
  2723  func (_Ownable *OwnableSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  2724  	return _Ownable.Contract.TransferOwnership(&_Ownable.TransactOpts, newOwner)
  2725  }
  2726  
  2727  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  2728  //
  2729  // Solidity: function transferOwnership(address newOwner) returns()
  2730  func (_Ownable *OwnableTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  2731  	return _Ownable.Contract.TransferOwnership(&_Ownable.TransactOpts, newOwner)
  2732  }
  2733  
  2734  // PausableABI is the input ABI used to generate the binding from.
  2735  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\"}]"
  2736  
  2737  // PausableFuncSigs maps the 4-byte function signature to its string representation.
  2738  var PausableFuncSigs = map[string]string{
  2739  	"8da5cb5b": "owner()",
  2740  	"8456cb59": "pause()",
  2741  	"5c975abb": "paused()",
  2742  	"f2fde38b": "transferOwnership(address)",
  2743  	"3f4ba83a": "unpause()",
  2744  }
  2745  
  2746  // PausableBin is the compiled bytecode used for deploying new contracts.
  2747  var PausableBin = "0x606060405260008054600160a060020a033316600160a860020a0319909116179055610300806100306000396000f30060606040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633f4ba83a81146100715780635c975abb146100985780638456cb59146100ab5780638da5cb5b146100be578063f2fde38b146100ed575b600080fd5b341561007c57600080fd5b61008461010e565b604051901515815260200160405180910390f35b34156100a357600080fd5b6100846101a3565b34156100b657600080fd5b6100846101c4565b34156100c957600080fd5b6100d161026f565b604051600160a060020a03909116815260200160405180910390f35b34156100f857600080fd5b61010c600160a060020a036004351661027e565b005b6000805433600160a060020a0390811691161461012a57600080fd5b60005474010000000000000000000000000000000000000000900460ff16151561015357600080fd5b6000805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a150600190565b60005474010000000000000000000000000000000000000000900460ff1681565b6000805433600160a060020a039081169116146101e057600080fd5b60005474010000000000000000000000000000000000000000900460ff161561020857600080fd5b6000805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a150600190565b600054600160a060020a031681565b60005433600160a060020a0390811691161461029957600080fd5b600160a060020a038116156102d1576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b505600a165627a7a723058208f4ca20f8ce8152a24279eb8d5af2f301cf0e4b10593703bf9d8493817a14b190029"
  2748  
  2749  // DeployPausable deploys a new Ethereum contract, binding an instance of Pausable to it.
  2750  func DeployPausable(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Pausable, error) {
  2751  	parsed, err := abi.JSON(strings.NewReader(PausableABI))
  2752  	if err != nil {
  2753  		return common.Address{}, nil, nil, err
  2754  	}
  2755  
  2756  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(PausableBin), backend)
  2757  	if err != nil {
  2758  		return common.Address{}, nil, nil, err
  2759  	}
  2760  	return address, tx, &Pausable{PausableCaller: PausableCaller{contract: contract}, PausableTransactor: PausableTransactor{contract: contract}, PausableFilterer: PausableFilterer{contract: contract}}, nil
  2761  }
  2762  
  2763  // Pausable is an auto generated Go binding around an Ethereum contract.
  2764  type Pausable struct {
  2765  	PausableCaller     // Read-only binding to the contract
  2766  	PausableTransactor // Write-only binding to the contract
  2767  	PausableFilterer   // Log filterer for contract events
  2768  }
  2769  
  2770  // PausableCaller is an auto generated read-only Go binding around an Ethereum contract.
  2771  type PausableCaller struct {
  2772  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2773  }
  2774  
  2775  // PausableTransactor is an auto generated write-only Go binding around an Ethereum contract.
  2776  type PausableTransactor struct {
  2777  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2778  }
  2779  
  2780  // PausableFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  2781  type PausableFilterer struct {
  2782  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2783  }
  2784  
  2785  // PausableSession is an auto generated Go binding around an Ethereum contract,
  2786  // with pre-set call and transact options.
  2787  type PausableSession struct {
  2788  	Contract     *Pausable         // Generic contract binding to set the session for
  2789  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  2790  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  2791  }
  2792  
  2793  // PausableCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  2794  // with pre-set call options.
  2795  type PausableCallerSession struct {
  2796  	Contract *PausableCaller // Generic contract caller binding to set the session for
  2797  	CallOpts bind.CallOpts   // Call options to use throughout this session
  2798  }
  2799  
  2800  // PausableTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  2801  // with pre-set transact options.
  2802  type PausableTransactorSession struct {
  2803  	Contract     *PausableTransactor // Generic contract transactor binding to set the session for
  2804  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
  2805  }
  2806  
  2807  // PausableRaw is an auto generated low-level Go binding around an Ethereum contract.
  2808  type PausableRaw struct {
  2809  	Contract *Pausable // Generic contract binding to access the raw methods on
  2810  }
  2811  
  2812  // PausableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  2813  type PausableCallerRaw struct {
  2814  	Contract *PausableCaller // Generic read-only contract binding to access the raw methods on
  2815  }
  2816  
  2817  // PausableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  2818  type PausableTransactorRaw struct {
  2819  	Contract *PausableTransactor // Generic write-only contract binding to access the raw methods on
  2820  }
  2821  
  2822  // NewPausable creates a new instance of Pausable, bound to a specific deployed contract.
  2823  func NewPausable(address common.Address, backend bind.ContractBackend) (*Pausable, error) {
  2824  	contract, err := bindPausable(address, backend, backend, backend)
  2825  	if err != nil {
  2826  		return nil, err
  2827  	}
  2828  	return &Pausable{PausableCaller: PausableCaller{contract: contract}, PausableTransactor: PausableTransactor{contract: contract}, PausableFilterer: PausableFilterer{contract: contract}}, nil
  2829  }
  2830  
  2831  // NewPausableCaller creates a new read-only instance of Pausable, bound to a specific deployed contract.
  2832  func NewPausableCaller(address common.Address, caller bind.ContractCaller) (*PausableCaller, error) {
  2833  	contract, err := bindPausable(address, caller, nil, nil)
  2834  	if err != nil {
  2835  		return nil, err
  2836  	}
  2837  	return &PausableCaller{contract: contract}, nil
  2838  }
  2839  
  2840  // NewPausableTransactor creates a new write-only instance of Pausable, bound to a specific deployed contract.
  2841  func NewPausableTransactor(address common.Address, transactor bind.ContractTransactor) (*PausableTransactor, error) {
  2842  	contract, err := bindPausable(address, nil, transactor, nil)
  2843  	if err != nil {
  2844  		return nil, err
  2845  	}
  2846  	return &PausableTransactor{contract: contract}, nil
  2847  }
  2848  
  2849  // NewPausableFilterer creates a new log filterer instance of Pausable, bound to a specific deployed contract.
  2850  func NewPausableFilterer(address common.Address, filterer bind.ContractFilterer) (*PausableFilterer, error) {
  2851  	contract, err := bindPausable(address, nil, nil, filterer)
  2852  	if err != nil {
  2853  		return nil, err
  2854  	}
  2855  	return &PausableFilterer{contract: contract}, nil
  2856  }
  2857  
  2858  // bindPausable binds a generic wrapper to an already deployed contract.
  2859  func bindPausable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  2860  	parsed, err := abi.JSON(strings.NewReader(PausableABI))
  2861  	if err != nil {
  2862  		return nil, err
  2863  	}
  2864  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  2865  }
  2866  
  2867  // Call invokes the (constant) contract method with params as input values and
  2868  // sets the output to result. The result type might be a single field for simple
  2869  // returns, a slice of interfaces for anonymous returns and a struct for named
  2870  // returns.
  2871  func (_Pausable *PausableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  2872  	return _Pausable.Contract.PausableCaller.contract.Call(opts, result, method, params...)
  2873  }
  2874  
  2875  // Transfer initiates a plain transaction to move funds to the contract, calling
  2876  // its default method if one is available.
  2877  func (_Pausable *PausableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  2878  	return _Pausable.Contract.PausableTransactor.contract.Transfer(opts)
  2879  }
  2880  
  2881  // Transact invokes the (paid) contract method with params as input values.
  2882  func (_Pausable *PausableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  2883  	return _Pausable.Contract.PausableTransactor.contract.Transact(opts, method, params...)
  2884  }
  2885  
  2886  // Call invokes the (constant) contract method with params as input values and
  2887  // sets the output to result. The result type might be a single field for simple
  2888  // returns, a slice of interfaces for anonymous returns and a struct for named
  2889  // returns.
  2890  func (_Pausable *PausableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  2891  	return _Pausable.Contract.contract.Call(opts, result, method, params...)
  2892  }
  2893  
  2894  // Transfer initiates a plain transaction to move funds to the contract, calling
  2895  // its default method if one is available.
  2896  func (_Pausable *PausableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  2897  	return _Pausable.Contract.contract.Transfer(opts)
  2898  }
  2899  
  2900  // Transact invokes the (paid) contract method with params as input values.
  2901  func (_Pausable *PausableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  2902  	return _Pausable.Contract.contract.Transact(opts, method, params...)
  2903  }
  2904  
  2905  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  2906  //
  2907  // Solidity: function owner() view returns(address)
  2908  func (_Pausable *PausableCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
  2909  	var out []interface{}
  2910  	err := _Pausable.contract.Call(opts, &out, "owner")
  2911  
  2912  	if err != nil {
  2913  		return *new(common.Address), err
  2914  	}
  2915  
  2916  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  2917  
  2918  	return out0, err
  2919  
  2920  }
  2921  
  2922  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  2923  //
  2924  // Solidity: function owner() view returns(address)
  2925  func (_Pausable *PausableSession) Owner() (common.Address, error) {
  2926  	return _Pausable.Contract.Owner(&_Pausable.CallOpts)
  2927  }
  2928  
  2929  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  2930  //
  2931  // Solidity: function owner() view returns(address)
  2932  func (_Pausable *PausableCallerSession) Owner() (common.Address, error) {
  2933  	return _Pausable.Contract.Owner(&_Pausable.CallOpts)
  2934  }
  2935  
  2936  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
  2937  //
  2938  // Solidity: function paused() view returns(bool)
  2939  func (_Pausable *PausableCaller) Paused(opts *bind.CallOpts) (bool, error) {
  2940  	var out []interface{}
  2941  	err := _Pausable.contract.Call(opts, &out, "paused")
  2942  
  2943  	if err != nil {
  2944  		return *new(bool), err
  2945  	}
  2946  
  2947  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  2948  
  2949  	return out0, err
  2950  
  2951  }
  2952  
  2953  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
  2954  //
  2955  // Solidity: function paused() view returns(bool)
  2956  func (_Pausable *PausableSession) Paused() (bool, error) {
  2957  	return _Pausable.Contract.Paused(&_Pausable.CallOpts)
  2958  }
  2959  
  2960  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
  2961  //
  2962  // Solidity: function paused() view returns(bool)
  2963  func (_Pausable *PausableCallerSession) Paused() (bool, error) {
  2964  	return _Pausable.Contract.Paused(&_Pausable.CallOpts)
  2965  }
  2966  
  2967  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
  2968  //
  2969  // Solidity: function pause() returns(bool)
  2970  func (_Pausable *PausableTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) {
  2971  	return _Pausable.contract.Transact(opts, "pause")
  2972  }
  2973  
  2974  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
  2975  //
  2976  // Solidity: function pause() returns(bool)
  2977  func (_Pausable *PausableSession) Pause() (*types.Transaction, error) {
  2978  	return _Pausable.Contract.Pause(&_Pausable.TransactOpts)
  2979  }
  2980  
  2981  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
  2982  //
  2983  // Solidity: function pause() returns(bool)
  2984  func (_Pausable *PausableTransactorSession) Pause() (*types.Transaction, error) {
  2985  	return _Pausable.Contract.Pause(&_Pausable.TransactOpts)
  2986  }
  2987  
  2988  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  2989  //
  2990  // Solidity: function transferOwnership(address newOwner) returns()
  2991  func (_Pausable *PausableTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  2992  	return _Pausable.contract.Transact(opts, "transferOwnership", newOwner)
  2993  }
  2994  
  2995  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  2996  //
  2997  // Solidity: function transferOwnership(address newOwner) returns()
  2998  func (_Pausable *PausableSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  2999  	return _Pausable.Contract.TransferOwnership(&_Pausable.TransactOpts, newOwner)
  3000  }
  3001  
  3002  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  3003  //
  3004  // Solidity: function transferOwnership(address newOwner) returns()
  3005  func (_Pausable *PausableTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  3006  	return _Pausable.Contract.TransferOwnership(&_Pausable.TransactOpts, newOwner)
  3007  }
  3008  
  3009  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
  3010  //
  3011  // Solidity: function unpause() returns(bool)
  3012  func (_Pausable *PausableTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) {
  3013  	return _Pausable.contract.Transact(opts, "unpause")
  3014  }
  3015  
  3016  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
  3017  //
  3018  // Solidity: function unpause() returns(bool)
  3019  func (_Pausable *PausableSession) Unpause() (*types.Transaction, error) {
  3020  	return _Pausable.Contract.Unpause(&_Pausable.TransactOpts)
  3021  }
  3022  
  3023  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
  3024  //
  3025  // Solidity: function unpause() returns(bool)
  3026  func (_Pausable *PausableTransactorSession) Unpause() (*types.Transaction, error) {
  3027  	return _Pausable.Contract.Unpause(&_Pausable.TransactOpts)
  3028  }
  3029  
  3030  // 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.
  3031  type PausablePauseIterator struct {
  3032  	Event *PausablePause // Event containing the contract specifics and raw log
  3033  
  3034  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3035  	event    string              // Event name to use for unpacking event data
  3036  
  3037  	logs chan types.Log        // Log channel receiving the found contract events
  3038  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3039  	done bool                  // Whether the subscription completed delivering logs
  3040  	fail error                 // Occurred error to stop iteration
  3041  }
  3042  
  3043  // Next advances the iterator to the subsequent event, returning whether there
  3044  // are any more events found. In case of a retrieval or parsing error, false is
  3045  // returned and Error() can be queried for the exact failure.
  3046  func (it *PausablePauseIterator) Next() bool {
  3047  	// If the iterator failed, stop iterating
  3048  	if it.fail != nil {
  3049  		return false
  3050  	}
  3051  	// If the iterator completed, deliver directly whatever's available
  3052  	if it.done {
  3053  		select {
  3054  		case log := <-it.logs:
  3055  			it.Event = new(PausablePause)
  3056  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3057  				it.fail = err
  3058  				return false
  3059  			}
  3060  			it.Event.Raw = log
  3061  			return true
  3062  
  3063  		default:
  3064  			return false
  3065  		}
  3066  	}
  3067  	// Iterator still in progress, wait for either a data or an error event
  3068  	select {
  3069  	case log := <-it.logs:
  3070  		it.Event = new(PausablePause)
  3071  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3072  			it.fail = err
  3073  			return false
  3074  		}
  3075  		it.Event.Raw = log
  3076  		return true
  3077  
  3078  	case err := <-it.sub.Err():
  3079  		it.done = true
  3080  		it.fail = err
  3081  		return it.Next()
  3082  	}
  3083  }
  3084  
  3085  // Error returns any retrieval or parsing error occurred during filtering.
  3086  func (it *PausablePauseIterator) Error() error {
  3087  	return it.fail
  3088  }
  3089  
  3090  // Close terminates the iteration process, releasing any pending underlying
  3091  // resources.
  3092  func (it *PausablePauseIterator) Close() error {
  3093  	it.sub.Unsubscribe()
  3094  	return nil
  3095  }
  3096  
  3097  // PausablePause represents a Pause event raised by the Pausable contract.
  3098  type PausablePause struct {
  3099  	Raw types.Log // Blockchain specific contextual infos
  3100  }
  3101  
  3102  // FilterPause is a free log retrieval operation binding the contract event 0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625.
  3103  //
  3104  // Solidity: event Pause()
  3105  func (_Pausable *PausableFilterer) FilterPause(opts *bind.FilterOpts) (*PausablePauseIterator, error) {
  3106  
  3107  	logs, sub, err := _Pausable.contract.FilterLogs(opts, "Pause")
  3108  	if err != nil {
  3109  		return nil, err
  3110  	}
  3111  	return &PausablePauseIterator{contract: _Pausable.contract, event: "Pause", logs: logs, sub: sub}, nil
  3112  }
  3113  
  3114  // WatchPause is a free log subscription operation binding the contract event 0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625.
  3115  //
  3116  // Solidity: event Pause()
  3117  func (_Pausable *PausableFilterer) WatchPause(opts *bind.WatchOpts, sink chan<- *PausablePause) (event.Subscription, error) {
  3118  
  3119  	logs, sub, err := _Pausable.contract.WatchLogs(opts, "Pause")
  3120  	if err != nil {
  3121  		return nil, err
  3122  	}
  3123  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3124  		defer sub.Unsubscribe()
  3125  		for {
  3126  			select {
  3127  			case log := <-logs:
  3128  				// New log arrived, parse the event and forward to the user
  3129  				event := new(PausablePause)
  3130  				if err := _Pausable.contract.UnpackLog(event, "Pause", log); err != nil {
  3131  					return err
  3132  				}
  3133  				event.Raw = log
  3134  
  3135  				select {
  3136  				case sink <- event:
  3137  				case err := <-sub.Err():
  3138  					return err
  3139  				case <-quit:
  3140  					return nil
  3141  				}
  3142  			case err := <-sub.Err():
  3143  				return err
  3144  			case <-quit:
  3145  				return nil
  3146  			}
  3147  		}
  3148  	}), nil
  3149  }
  3150  
  3151  // ParsePause is a log parse operation binding the contract event 0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625.
  3152  //
  3153  // Solidity: event Pause()
  3154  func (_Pausable *PausableFilterer) ParsePause(log types.Log) (*PausablePause, error) {
  3155  	event := new(PausablePause)
  3156  	if err := _Pausable.contract.UnpackLog(event, "Pause", log); err != nil {
  3157  		return nil, err
  3158  	}
  3159  	event.Raw = log
  3160  	return event, nil
  3161  }
  3162  
  3163  // 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.
  3164  type PausableUnpauseIterator struct {
  3165  	Event *PausableUnpause // Event containing the contract specifics and raw log
  3166  
  3167  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3168  	event    string              // Event name to use for unpacking event data
  3169  
  3170  	logs chan types.Log        // Log channel receiving the found contract events
  3171  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3172  	done bool                  // Whether the subscription completed delivering logs
  3173  	fail error                 // Occurred error to stop iteration
  3174  }
  3175  
  3176  // Next advances the iterator to the subsequent event, returning whether there
  3177  // are any more events found. In case of a retrieval or parsing error, false is
  3178  // returned and Error() can be queried for the exact failure.
  3179  func (it *PausableUnpauseIterator) Next() bool {
  3180  	// If the iterator failed, stop iterating
  3181  	if it.fail != nil {
  3182  		return false
  3183  	}
  3184  	// If the iterator completed, deliver directly whatever's available
  3185  	if it.done {
  3186  		select {
  3187  		case log := <-it.logs:
  3188  			it.Event = new(PausableUnpause)
  3189  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3190  				it.fail = err
  3191  				return false
  3192  			}
  3193  			it.Event.Raw = log
  3194  			return true
  3195  
  3196  		default:
  3197  			return false
  3198  		}
  3199  	}
  3200  	// Iterator still in progress, wait for either a data or an error event
  3201  	select {
  3202  	case log := <-it.logs:
  3203  		it.Event = new(PausableUnpause)
  3204  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3205  			it.fail = err
  3206  			return false
  3207  		}
  3208  		it.Event.Raw = log
  3209  		return true
  3210  
  3211  	case err := <-it.sub.Err():
  3212  		it.done = true
  3213  		it.fail = err
  3214  		return it.Next()
  3215  	}
  3216  }
  3217  
  3218  // Error returns any retrieval or parsing error occurred during filtering.
  3219  func (it *PausableUnpauseIterator) Error() error {
  3220  	return it.fail
  3221  }
  3222  
  3223  // Close terminates the iteration process, releasing any pending underlying
  3224  // resources.
  3225  func (it *PausableUnpauseIterator) Close() error {
  3226  	it.sub.Unsubscribe()
  3227  	return nil
  3228  }
  3229  
  3230  // PausableUnpause represents a Unpause event raised by the Pausable contract.
  3231  type PausableUnpause struct {
  3232  	Raw types.Log // Blockchain specific contextual infos
  3233  }
  3234  
  3235  // FilterUnpause is a free log retrieval operation binding the contract event 0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33.
  3236  //
  3237  // Solidity: event Unpause()
  3238  func (_Pausable *PausableFilterer) FilterUnpause(opts *bind.FilterOpts) (*PausableUnpauseIterator, error) {
  3239  
  3240  	logs, sub, err := _Pausable.contract.FilterLogs(opts, "Unpause")
  3241  	if err != nil {
  3242  		return nil, err
  3243  	}
  3244  	return &PausableUnpauseIterator{contract: _Pausable.contract, event: "Unpause", logs: logs, sub: sub}, nil
  3245  }
  3246  
  3247  // WatchUnpause is a free log subscription operation binding the contract event 0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33.
  3248  //
  3249  // Solidity: event Unpause()
  3250  func (_Pausable *PausableFilterer) WatchUnpause(opts *bind.WatchOpts, sink chan<- *PausableUnpause) (event.Subscription, error) {
  3251  
  3252  	logs, sub, err := _Pausable.contract.WatchLogs(opts, "Unpause")
  3253  	if err != nil {
  3254  		return nil, err
  3255  	}
  3256  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3257  		defer sub.Unsubscribe()
  3258  		for {
  3259  			select {
  3260  			case log := <-logs:
  3261  				// New log arrived, parse the event and forward to the user
  3262  				event := new(PausableUnpause)
  3263  				if err := _Pausable.contract.UnpackLog(event, "Unpause", log); err != nil {
  3264  					return err
  3265  				}
  3266  				event.Raw = log
  3267  
  3268  				select {
  3269  				case sink <- event:
  3270  				case err := <-sub.Err():
  3271  					return err
  3272  				case <-quit:
  3273  					return nil
  3274  				}
  3275  			case err := <-sub.Err():
  3276  				return err
  3277  			case <-quit:
  3278  				return nil
  3279  			}
  3280  		}
  3281  	}), nil
  3282  }
  3283  
  3284  // ParseUnpause is a log parse operation binding the contract event 0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33.
  3285  //
  3286  // Solidity: event Unpause()
  3287  func (_Pausable *PausableFilterer) ParseUnpause(log types.Log) (*PausableUnpause, error) {
  3288  	event := new(PausableUnpause)
  3289  	if err := _Pausable.contract.UnpackLog(event, "Unpause", log); err != nil {
  3290  		return nil, err
  3291  	}
  3292  	event.Raw = log
  3293  	return event, nil
  3294  }
  3295  
  3296  // SaleClockAuctionABI is the input ABI used to generate the binding from.
  3297  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\"}]"
  3298  
  3299  // SaleClockAuctionFuncSigs maps the 4-byte function signature to its string representation.
  3300  var SaleClockAuctionFuncSigs = map[string]string{
  3301  	"eac9d94c": "averageGen0SalePrice()",
  3302  	"454a2ab3": "bid(uint256)",
  3303  	"96b5a755": "cancelAuction(uint256)",
  3304  	"878eb368": "cancelAuctionWhenPaused(uint256)",
  3305  	"27ebe40a": "createAuction(uint256,uint256,uint256,uint256,address)",
  3306  	"8a98a9cc": "gen0SaleCount()",
  3307  	"78bd7935": "getAuction(uint256)",
  3308  	"c55d0f56": "getCurrentPrice(uint256)",
  3309  	"85b86188": "isSaleClockAuction()",
  3310  	"484eccb4": "lastGen0SalePrices(uint256)",
  3311  	"dd1b7a0f": "nonFungibleContract()",
  3312  	"8da5cb5b": "owner()",
  3313  	"83b5ff8b": "ownerCut()",
  3314  	"8456cb59": "pause()",
  3315  	"5c975abb": "paused()",
  3316  	"f2fde38b": "transferOwnership(address)",
  3317  	"3f4ba83a": "unpause()",
  3318  	"5fd8c710": "withdrawBalance()",
  3319  }
  3320  
  3321  // SaleClockAuctionBin is the compiled bytecode used for deploying new contracts.
  3322  var SaleClockAuctionBin = "0x60606040526000805460a060020a60ff02191690556004805460ff19166001179055341561002c57600080fd5b604051604080610ef6833981016040528080519190602001805160008054600160a060020a03191633600160a060020a0316178155909250839150829061271082111561007857600080fd5b50600281905581600160a060020a0381166301ffc9a77f9a20483d000000000000000000000000000000000000000000000000000000006040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281527fffffffff000000000000000000000000000000000000000000000000000000009091166004820152602401602060405180830381600087803b151561011f57600080fd5b5af1151561012c57600080fd5b50505060405180519050151561014157600080fd5b60018054600160a060020a03909216600160a060020a031990921691909117905550505050610d81806101756000396000f3006060604052600436106100e25763ffffffff60e060020a60003504166327ebe40a81146100e75780633f4ba83a14610114578063454a2ab31461013b578063484eccb4146101465780635c975abb1461016e5780635fd8c7101461018157806378bd79351461019457806383b5ff8b146101e55780638456cb59146101f857806385b861881461020b578063878eb3681461021e5780638a98a9cc146102345780638da5cb5b1461024757806396b5a75514610276578063c55d0f561461028c578063dd1b7a0f146102a2578063eac9d94c146102b5578063f2fde38b146102c8575b600080fd5b34156100f257600080fd5b610112600435602435604435606435600160a060020a03608435166102e7565b005b341561011f57600080fd5b6101276103bf565b604051901515815260200160405180910390f35b610112600435610443565b341561015157600080fd5b61015c6004356104ad565b60405190815260200160405180910390f35b341561017957600080fd5b6101276104c1565b341561018c57600080fd5b6101126104d1565b341561019f57600080fd5b6101aa600435610547565b604051600160a060020a03909516855260208501939093526040808501929092526060840152608083019190915260a0909101905180910390f35b34156101f057600080fd5b61015c6105d4565b341561020357600080fd5b6101276105da565b341561021657600080fd5b610127610663565b341561022957600080fd5b61011260043561066c565b341561023f57600080fd5b61015c6106dd565b341561025257600080fd5b61025a6106e3565b604051600160a060020a03909116815260200160405180910390f35b341561028157600080fd5b6101126004356106f2565b341561029757600080fd5b61015c60043561073b565b34156102ad57600080fd5b61025a61076d565b34156102c057600080fd5b61015c61077c565b34156102d357600080fd5b610112600160a060020a03600435166107b0565b6102ef610d27565b6001608060020a038516851461030457600080fd5b6001608060020a038416841461031957600080fd5b67ffffffffffffffff8316831461032f57600080fd5b60015433600160a060020a0390811691161461034a57600080fd5b6103548287610806565b60a06040519081016040528083600160a060020a03168152602001866001608060020a03168152602001856001608060020a031681526020018467ffffffffffffffff1681526020014267ffffffffffffffff1681525090506103b7868261087d565b505050505050565b6000805433600160a060020a039081169116146103db57600080fd5b60005460a060020a900460ff1615156103f357600080fd5b6000805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a150600190565b600081815260036020526040812054600160a060020a0316906104668334610a18565b90506104723384610b49565b600154600160a060020a03838116911614156104a857600580548291600691066005811061049c57fe5b01556005805460010190555b505050565b600681600581106104ba57fe5b0154905081565b60005460a060020a900460ff1681565b60015460008054600160a060020a039283169233811691161480610506575081600160a060020a031633600160a060020a0316145b151561051157600080fd5b81600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f150505050505050565b6000818152600360205260408120819081908190819061056681610b9f565b151561057157600080fd5b80546001820154600290920154600160a060020a03909116986001608060020a038084169950700100000000000000000000000000000000909304909216965067ffffffffffffffff808216965068010000000000000000909104169350915050565b60025481565b6000805433600160a060020a039081169116146105f657600080fd5b60005460a060020a900460ff161561060d57600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a150600190565b60045460ff1681565b6000805460a060020a900460ff16151561068557600080fd5b60005433600160a060020a039081169116146106a057600080fd5b5060008181526003602052604090206106b881610b9f565b15156106c357600080fd5b80546106d9908390600160a060020a0316610bc0565b5050565b60055481565b600054600160a060020a031681565b60008181526003602052604081209061070a82610b9f565b151561071557600080fd5b508054600160a060020a03908116903316811461073157600080fd5b6104a88382610bc0565b600081815260036020526040812061075281610b9f565b151561075d57600080fd5b61076681610c0a565b9392505050565b600154600160a060020a031681565b600080805b60058110156107a6576006816005811061079757fe5b01549190910190600101610781565b5060059004919050565b60005433600160a060020a039081169116146107cb57600080fd5b600160a060020a03811615610803576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b600154600160a060020a03166323b872dd83308460405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086957600080fd5b5af1151561087657600080fd5b5050505050565b603c816060015167ffffffffffffffff16101561089957600080fd5b600082815260036020526040902081908151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039190911617815560208201516001820180546fffffffffffffffffffffffffffffffff19166001608060020a039290921691909117905560408201516001820180546001608060020a03928316700100000000000000000000000000000000029216919091179055606082015160028201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560808201516002909101805467ffffffffffffffff9290921668010000000000000000026fffffffffffffffff000000000000000019909216919091179055507fa9c8dfcda5664a5a124c713e386da27de87432d5b668e79458501eb296389ba78260208301516001608060020a031683604001516001608060020a0316846060015167ffffffffffffffff166040518085815260200184815260200183815260200182815260200194505050505060405180910390a15050565b60008281526003602052604081208180808080610a3486610b9f565b1515610a3f57600080fd5b610a4886610c0a565b945084881015610a5757600080fd5b8554600160a060020a03169350610a6d89610c91565b6000851115610ab757610a7f85610cde565b92508285039150600160a060020a03841682156108fc0283604051600060405180830381858888f193505050501515610ab757600080fd5b50838703600160a060020a03331681156108fc0282604051600060405180830381858888f193505050501515610aec57600080fd5b7f4fcc30d90a842164dd58501ab874a101a3749c3d4747139cefe7c876f4ccebd28986336040519283526020830191909152600160a060020a03166040808301919091526060909101905180910390a15092979650505050505050565b600154600160a060020a031663a9059cbb838360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561086957600080fd5b6002015460006801000000000000000090910467ffffffffffffffff161190565b610bc982610c91565b610bd38183610b49565b7f2809c7e17bf978fbc7194c0a694b638c4215e9140cacc6c38ca36010b45697df8260405190815260200160405180910390a15050565b6002810154600090819068010000000000000000900467ffffffffffffffff16421115610c505750600282015468010000000000000000900467ffffffffffffffff1642035b60018301546002840154610766916001608060020a0380821692700100000000000000000000000000000000909204169067ffffffffffffffff1684610cea565b6000908152600360205260408120805473ffffffffffffffffffffffffffffffffffffffff19168155600181019190915560020180546fffffffffffffffffffffffffffffffff19169055565b60025461271091020490565b6000808080858510610cfe57869350610d1c565b878703925085858402811515610d1057fe5b05915081880190508093505b505050949350505050565b60a06040519081016040908152600080835260208301819052908201819052606082018190526080820152905600a165627a7a7230582033b714da41785b626c601bfc003f79c83f61e8b703ffe45458694d13d1f622d70029"
  3323  
  3324  // DeploySaleClockAuction deploys a new Ethereum contract, binding an instance of SaleClockAuction to it.
  3325  func DeploySaleClockAuction(auth *bind.TransactOpts, backend bind.ContractBackend, _nftAddr common.Address, _cut *big.Int) (common.Address, *types.Transaction, *SaleClockAuction, error) {
  3326  	parsed, err := abi.JSON(strings.NewReader(SaleClockAuctionABI))
  3327  	if err != nil {
  3328  		return common.Address{}, nil, nil, err
  3329  	}
  3330  
  3331  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(SaleClockAuctionBin), backend, _nftAddr, _cut)
  3332  	if err != nil {
  3333  		return common.Address{}, nil, nil, err
  3334  	}
  3335  	return address, tx, &SaleClockAuction{SaleClockAuctionCaller: SaleClockAuctionCaller{contract: contract}, SaleClockAuctionTransactor: SaleClockAuctionTransactor{contract: contract}, SaleClockAuctionFilterer: SaleClockAuctionFilterer{contract: contract}}, nil
  3336  }
  3337  
  3338  // SaleClockAuction is an auto generated Go binding around an Ethereum contract.
  3339  type SaleClockAuction struct {
  3340  	SaleClockAuctionCaller     // Read-only binding to the contract
  3341  	SaleClockAuctionTransactor // Write-only binding to the contract
  3342  	SaleClockAuctionFilterer   // Log filterer for contract events
  3343  }
  3344  
  3345  // SaleClockAuctionCaller is an auto generated read-only Go binding around an Ethereum contract.
  3346  type SaleClockAuctionCaller struct {
  3347  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3348  }
  3349  
  3350  // SaleClockAuctionTransactor is an auto generated write-only Go binding around an Ethereum contract.
  3351  type SaleClockAuctionTransactor struct {
  3352  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3353  }
  3354  
  3355  // SaleClockAuctionFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  3356  type SaleClockAuctionFilterer struct {
  3357  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3358  }
  3359  
  3360  // SaleClockAuctionSession is an auto generated Go binding around an Ethereum contract,
  3361  // with pre-set call and transact options.
  3362  type SaleClockAuctionSession struct {
  3363  	Contract     *SaleClockAuction // Generic contract binding to set the session for
  3364  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  3365  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  3366  }
  3367  
  3368  // SaleClockAuctionCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  3369  // with pre-set call options.
  3370  type SaleClockAuctionCallerSession struct {
  3371  	Contract *SaleClockAuctionCaller // Generic contract caller binding to set the session for
  3372  	CallOpts bind.CallOpts           // Call options to use throughout this session
  3373  }
  3374  
  3375  // SaleClockAuctionTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  3376  // with pre-set transact options.
  3377  type SaleClockAuctionTransactorSession struct {
  3378  	Contract     *SaleClockAuctionTransactor // Generic contract transactor binding to set the session for
  3379  	TransactOpts bind.TransactOpts           // Transaction auth options to use throughout this session
  3380  }
  3381  
  3382  // SaleClockAuctionRaw is an auto generated low-level Go binding around an Ethereum contract.
  3383  type SaleClockAuctionRaw struct {
  3384  	Contract *SaleClockAuction // Generic contract binding to access the raw methods on
  3385  }
  3386  
  3387  // SaleClockAuctionCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  3388  type SaleClockAuctionCallerRaw struct {
  3389  	Contract *SaleClockAuctionCaller // Generic read-only contract binding to access the raw methods on
  3390  }
  3391  
  3392  // SaleClockAuctionTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  3393  type SaleClockAuctionTransactorRaw struct {
  3394  	Contract *SaleClockAuctionTransactor // Generic write-only contract binding to access the raw methods on
  3395  }
  3396  
  3397  // NewSaleClockAuction creates a new instance of SaleClockAuction, bound to a specific deployed contract.
  3398  func NewSaleClockAuction(address common.Address, backend bind.ContractBackend) (*SaleClockAuction, error) {
  3399  	contract, err := bindSaleClockAuction(address, backend, backend, backend)
  3400  	if err != nil {
  3401  		return nil, err
  3402  	}
  3403  	return &SaleClockAuction{SaleClockAuctionCaller: SaleClockAuctionCaller{contract: contract}, SaleClockAuctionTransactor: SaleClockAuctionTransactor{contract: contract}, SaleClockAuctionFilterer: SaleClockAuctionFilterer{contract: contract}}, nil
  3404  }
  3405  
  3406  // NewSaleClockAuctionCaller creates a new read-only instance of SaleClockAuction, bound to a specific deployed contract.
  3407  func NewSaleClockAuctionCaller(address common.Address, caller bind.ContractCaller) (*SaleClockAuctionCaller, error) {
  3408  	contract, err := bindSaleClockAuction(address, caller, nil, nil)
  3409  	if err != nil {
  3410  		return nil, err
  3411  	}
  3412  	return &SaleClockAuctionCaller{contract: contract}, nil
  3413  }
  3414  
  3415  // NewSaleClockAuctionTransactor creates a new write-only instance of SaleClockAuction, bound to a specific deployed contract.
  3416  func NewSaleClockAuctionTransactor(address common.Address, transactor bind.ContractTransactor) (*SaleClockAuctionTransactor, error) {
  3417  	contract, err := bindSaleClockAuction(address, nil, transactor, nil)
  3418  	if err != nil {
  3419  		return nil, err
  3420  	}
  3421  	return &SaleClockAuctionTransactor{contract: contract}, nil
  3422  }
  3423  
  3424  // NewSaleClockAuctionFilterer creates a new log filterer instance of SaleClockAuction, bound to a specific deployed contract.
  3425  func NewSaleClockAuctionFilterer(address common.Address, filterer bind.ContractFilterer) (*SaleClockAuctionFilterer, error) {
  3426  	contract, err := bindSaleClockAuction(address, nil, nil, filterer)
  3427  	if err != nil {
  3428  		return nil, err
  3429  	}
  3430  	return &SaleClockAuctionFilterer{contract: contract}, nil
  3431  }
  3432  
  3433  // bindSaleClockAuction binds a generic wrapper to an already deployed contract.
  3434  func bindSaleClockAuction(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  3435  	parsed, err := abi.JSON(strings.NewReader(SaleClockAuctionABI))
  3436  	if err != nil {
  3437  		return nil, err
  3438  	}
  3439  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  3440  }
  3441  
  3442  // Call invokes the (constant) contract method with params as input values and
  3443  // sets the output to result. The result type might be a single field for simple
  3444  // returns, a slice of interfaces for anonymous returns and a struct for named
  3445  // returns.
  3446  func (_SaleClockAuction *SaleClockAuctionRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  3447  	return _SaleClockAuction.Contract.SaleClockAuctionCaller.contract.Call(opts, result, method, params...)
  3448  }
  3449  
  3450  // Transfer initiates a plain transaction to move funds to the contract, calling
  3451  // its default method if one is available.
  3452  func (_SaleClockAuction *SaleClockAuctionRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3453  	return _SaleClockAuction.Contract.SaleClockAuctionTransactor.contract.Transfer(opts)
  3454  }
  3455  
  3456  // Transact invokes the (paid) contract method with params as input values.
  3457  func (_SaleClockAuction *SaleClockAuctionRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  3458  	return _SaleClockAuction.Contract.SaleClockAuctionTransactor.contract.Transact(opts, method, params...)
  3459  }
  3460  
  3461  // Call invokes the (constant) contract method with params as input values and
  3462  // sets the output to result. The result type might be a single field for simple
  3463  // returns, a slice of interfaces for anonymous returns and a struct for named
  3464  // returns.
  3465  func (_SaleClockAuction *SaleClockAuctionCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  3466  	return _SaleClockAuction.Contract.contract.Call(opts, result, method, params...)
  3467  }
  3468  
  3469  // Transfer initiates a plain transaction to move funds to the contract, calling
  3470  // its default method if one is available.
  3471  func (_SaleClockAuction *SaleClockAuctionTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3472  	return _SaleClockAuction.Contract.contract.Transfer(opts)
  3473  }
  3474  
  3475  // Transact invokes the (paid) contract method with params as input values.
  3476  func (_SaleClockAuction *SaleClockAuctionTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  3477  	return _SaleClockAuction.Contract.contract.Transact(opts, method, params...)
  3478  }
  3479  
  3480  // AverageGen0SalePrice is a free data retrieval call binding the contract method 0xeac9d94c.
  3481  //
  3482  // Solidity: function averageGen0SalePrice() view returns(uint256)
  3483  func (_SaleClockAuction *SaleClockAuctionCaller) AverageGen0SalePrice(opts *bind.CallOpts) (*big.Int, error) {
  3484  	var out []interface{}
  3485  	err := _SaleClockAuction.contract.Call(opts, &out, "averageGen0SalePrice")
  3486  
  3487  	if err != nil {
  3488  		return *new(*big.Int), err
  3489  	}
  3490  
  3491  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  3492  
  3493  	return out0, err
  3494  
  3495  }
  3496  
  3497  // AverageGen0SalePrice is a free data retrieval call binding the contract method 0xeac9d94c.
  3498  //
  3499  // Solidity: function averageGen0SalePrice() view returns(uint256)
  3500  func (_SaleClockAuction *SaleClockAuctionSession) AverageGen0SalePrice() (*big.Int, error) {
  3501  	return _SaleClockAuction.Contract.AverageGen0SalePrice(&_SaleClockAuction.CallOpts)
  3502  }
  3503  
  3504  // AverageGen0SalePrice is a free data retrieval call binding the contract method 0xeac9d94c.
  3505  //
  3506  // Solidity: function averageGen0SalePrice() view returns(uint256)
  3507  func (_SaleClockAuction *SaleClockAuctionCallerSession) AverageGen0SalePrice() (*big.Int, error) {
  3508  	return _SaleClockAuction.Contract.AverageGen0SalePrice(&_SaleClockAuction.CallOpts)
  3509  }
  3510  
  3511  // Gen0SaleCount is a free data retrieval call binding the contract method 0x8a98a9cc.
  3512  //
  3513  // Solidity: function gen0SaleCount() view returns(uint256)
  3514  func (_SaleClockAuction *SaleClockAuctionCaller) Gen0SaleCount(opts *bind.CallOpts) (*big.Int, error) {
  3515  	var out []interface{}
  3516  	err := _SaleClockAuction.contract.Call(opts, &out, "gen0SaleCount")
  3517  
  3518  	if err != nil {
  3519  		return *new(*big.Int), err
  3520  	}
  3521  
  3522  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  3523  
  3524  	return out0, err
  3525  
  3526  }
  3527  
  3528  // Gen0SaleCount is a free data retrieval call binding the contract method 0x8a98a9cc.
  3529  //
  3530  // Solidity: function gen0SaleCount() view returns(uint256)
  3531  func (_SaleClockAuction *SaleClockAuctionSession) Gen0SaleCount() (*big.Int, error) {
  3532  	return _SaleClockAuction.Contract.Gen0SaleCount(&_SaleClockAuction.CallOpts)
  3533  }
  3534  
  3535  // Gen0SaleCount is a free data retrieval call binding the contract method 0x8a98a9cc.
  3536  //
  3537  // Solidity: function gen0SaleCount() view returns(uint256)
  3538  func (_SaleClockAuction *SaleClockAuctionCallerSession) Gen0SaleCount() (*big.Int, error) {
  3539  	return _SaleClockAuction.Contract.Gen0SaleCount(&_SaleClockAuction.CallOpts)
  3540  }
  3541  
  3542  // GetAuction is a free data retrieval call binding the contract method 0x78bd7935.
  3543  //
  3544  // Solidity: function getAuction(uint256 _tokenId) view returns(address seller, uint256 startingPrice, uint256 endingPrice, uint256 duration, uint256 startedAt)
  3545  func (_SaleClockAuction *SaleClockAuctionCaller) GetAuction(opts *bind.CallOpts, _tokenId *big.Int) (struct {
  3546  	Seller        common.Address
  3547  	StartingPrice *big.Int
  3548  	EndingPrice   *big.Int
  3549  	Duration      *big.Int
  3550  	StartedAt     *big.Int
  3551  }, error) {
  3552  	var out []interface{}
  3553  	err := _SaleClockAuction.contract.Call(opts, &out, "getAuction", _tokenId)
  3554  
  3555  	outstruct := new(struct {
  3556  		Seller        common.Address
  3557  		StartingPrice *big.Int
  3558  		EndingPrice   *big.Int
  3559  		Duration      *big.Int
  3560  		StartedAt     *big.Int
  3561  	})
  3562  
  3563  	outstruct.Seller = out[0].(common.Address)
  3564  	outstruct.StartingPrice = out[1].(*big.Int)
  3565  	outstruct.EndingPrice = out[2].(*big.Int)
  3566  	outstruct.Duration = out[3].(*big.Int)
  3567  	outstruct.StartedAt = out[4].(*big.Int)
  3568  
  3569  	return *outstruct, err
  3570  
  3571  }
  3572  
  3573  // GetAuction is a free data retrieval call binding the contract method 0x78bd7935.
  3574  //
  3575  // Solidity: function getAuction(uint256 _tokenId) view returns(address seller, uint256 startingPrice, uint256 endingPrice, uint256 duration, uint256 startedAt)
  3576  func (_SaleClockAuction *SaleClockAuctionSession) GetAuction(_tokenId *big.Int) (struct {
  3577  	Seller        common.Address
  3578  	StartingPrice *big.Int
  3579  	EndingPrice   *big.Int
  3580  	Duration      *big.Int
  3581  	StartedAt     *big.Int
  3582  }, error) {
  3583  	return _SaleClockAuction.Contract.GetAuction(&_SaleClockAuction.CallOpts, _tokenId)
  3584  }
  3585  
  3586  // GetAuction is a free data retrieval call binding the contract method 0x78bd7935.
  3587  //
  3588  // Solidity: function getAuction(uint256 _tokenId) view returns(address seller, uint256 startingPrice, uint256 endingPrice, uint256 duration, uint256 startedAt)
  3589  func (_SaleClockAuction *SaleClockAuctionCallerSession) GetAuction(_tokenId *big.Int) (struct {
  3590  	Seller        common.Address
  3591  	StartingPrice *big.Int
  3592  	EndingPrice   *big.Int
  3593  	Duration      *big.Int
  3594  	StartedAt     *big.Int
  3595  }, error) {
  3596  	return _SaleClockAuction.Contract.GetAuction(&_SaleClockAuction.CallOpts, _tokenId)
  3597  }
  3598  
  3599  // GetCurrentPrice is a free data retrieval call binding the contract method 0xc55d0f56.
  3600  //
  3601  // Solidity: function getCurrentPrice(uint256 _tokenId) view returns(uint256)
  3602  func (_SaleClockAuction *SaleClockAuctionCaller) GetCurrentPrice(opts *bind.CallOpts, _tokenId *big.Int) (*big.Int, error) {
  3603  	var out []interface{}
  3604  	err := _SaleClockAuction.contract.Call(opts, &out, "getCurrentPrice", _tokenId)
  3605  
  3606  	if err != nil {
  3607  		return *new(*big.Int), err
  3608  	}
  3609  
  3610  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  3611  
  3612  	return out0, err
  3613  
  3614  }
  3615  
  3616  // GetCurrentPrice is a free data retrieval call binding the contract method 0xc55d0f56.
  3617  //
  3618  // Solidity: function getCurrentPrice(uint256 _tokenId) view returns(uint256)
  3619  func (_SaleClockAuction *SaleClockAuctionSession) GetCurrentPrice(_tokenId *big.Int) (*big.Int, error) {
  3620  	return _SaleClockAuction.Contract.GetCurrentPrice(&_SaleClockAuction.CallOpts, _tokenId)
  3621  }
  3622  
  3623  // GetCurrentPrice is a free data retrieval call binding the contract method 0xc55d0f56.
  3624  //
  3625  // Solidity: function getCurrentPrice(uint256 _tokenId) view returns(uint256)
  3626  func (_SaleClockAuction *SaleClockAuctionCallerSession) GetCurrentPrice(_tokenId *big.Int) (*big.Int, error) {
  3627  	return _SaleClockAuction.Contract.GetCurrentPrice(&_SaleClockAuction.CallOpts, _tokenId)
  3628  }
  3629  
  3630  // IsSaleClockAuction is a free data retrieval call binding the contract method 0x85b86188.
  3631  //
  3632  // Solidity: function isSaleClockAuction() view returns(bool)
  3633  func (_SaleClockAuction *SaleClockAuctionCaller) IsSaleClockAuction(opts *bind.CallOpts) (bool, error) {
  3634  	var out []interface{}
  3635  	err := _SaleClockAuction.contract.Call(opts, &out, "isSaleClockAuction")
  3636  
  3637  	if err != nil {
  3638  		return *new(bool), err
  3639  	}
  3640  
  3641  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  3642  
  3643  	return out0, err
  3644  
  3645  }
  3646  
  3647  // IsSaleClockAuction is a free data retrieval call binding the contract method 0x85b86188.
  3648  //
  3649  // Solidity: function isSaleClockAuction() view returns(bool)
  3650  func (_SaleClockAuction *SaleClockAuctionSession) IsSaleClockAuction() (bool, error) {
  3651  	return _SaleClockAuction.Contract.IsSaleClockAuction(&_SaleClockAuction.CallOpts)
  3652  }
  3653  
  3654  // IsSaleClockAuction is a free data retrieval call binding the contract method 0x85b86188.
  3655  //
  3656  // Solidity: function isSaleClockAuction() view returns(bool)
  3657  func (_SaleClockAuction *SaleClockAuctionCallerSession) IsSaleClockAuction() (bool, error) {
  3658  	return _SaleClockAuction.Contract.IsSaleClockAuction(&_SaleClockAuction.CallOpts)
  3659  }
  3660  
  3661  // LastGen0SalePrices is a free data retrieval call binding the contract method 0x484eccb4.
  3662  //
  3663  // Solidity: function lastGen0SalePrices(uint256 ) view returns(uint256)
  3664  func (_SaleClockAuction *SaleClockAuctionCaller) LastGen0SalePrices(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) {
  3665  	var out []interface{}
  3666  	err := _SaleClockAuction.contract.Call(opts, &out, "lastGen0SalePrices", arg0)
  3667  
  3668  	if err != nil {
  3669  		return *new(*big.Int), err
  3670  	}
  3671  
  3672  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  3673  
  3674  	return out0, err
  3675  
  3676  }
  3677  
  3678  // LastGen0SalePrices is a free data retrieval call binding the contract method 0x484eccb4.
  3679  //
  3680  // Solidity: function lastGen0SalePrices(uint256 ) view returns(uint256)
  3681  func (_SaleClockAuction *SaleClockAuctionSession) LastGen0SalePrices(arg0 *big.Int) (*big.Int, error) {
  3682  	return _SaleClockAuction.Contract.LastGen0SalePrices(&_SaleClockAuction.CallOpts, arg0)
  3683  }
  3684  
  3685  // LastGen0SalePrices is a free data retrieval call binding the contract method 0x484eccb4.
  3686  //
  3687  // Solidity: function lastGen0SalePrices(uint256 ) view returns(uint256)
  3688  func (_SaleClockAuction *SaleClockAuctionCallerSession) LastGen0SalePrices(arg0 *big.Int) (*big.Int, error) {
  3689  	return _SaleClockAuction.Contract.LastGen0SalePrices(&_SaleClockAuction.CallOpts, arg0)
  3690  }
  3691  
  3692  // NonFungibleContract is a free data retrieval call binding the contract method 0xdd1b7a0f.
  3693  //
  3694  // Solidity: function nonFungibleContract() view returns(address)
  3695  func (_SaleClockAuction *SaleClockAuctionCaller) NonFungibleContract(opts *bind.CallOpts) (common.Address, error) {
  3696  	var out []interface{}
  3697  	err := _SaleClockAuction.contract.Call(opts, &out, "nonFungibleContract")
  3698  
  3699  	if err != nil {
  3700  		return *new(common.Address), err
  3701  	}
  3702  
  3703  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  3704  
  3705  	return out0, err
  3706  
  3707  }
  3708  
  3709  // NonFungibleContract is a free data retrieval call binding the contract method 0xdd1b7a0f.
  3710  //
  3711  // Solidity: function nonFungibleContract() view returns(address)
  3712  func (_SaleClockAuction *SaleClockAuctionSession) NonFungibleContract() (common.Address, error) {
  3713  	return _SaleClockAuction.Contract.NonFungibleContract(&_SaleClockAuction.CallOpts)
  3714  }
  3715  
  3716  // NonFungibleContract is a free data retrieval call binding the contract method 0xdd1b7a0f.
  3717  //
  3718  // Solidity: function nonFungibleContract() view returns(address)
  3719  func (_SaleClockAuction *SaleClockAuctionCallerSession) NonFungibleContract() (common.Address, error) {
  3720  	return _SaleClockAuction.Contract.NonFungibleContract(&_SaleClockAuction.CallOpts)
  3721  }
  3722  
  3723  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  3724  //
  3725  // Solidity: function owner() view returns(address)
  3726  func (_SaleClockAuction *SaleClockAuctionCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
  3727  	var out []interface{}
  3728  	err := _SaleClockAuction.contract.Call(opts, &out, "owner")
  3729  
  3730  	if err != nil {
  3731  		return *new(common.Address), err
  3732  	}
  3733  
  3734  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  3735  
  3736  	return out0, err
  3737  
  3738  }
  3739  
  3740  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  3741  //
  3742  // Solidity: function owner() view returns(address)
  3743  func (_SaleClockAuction *SaleClockAuctionSession) Owner() (common.Address, error) {
  3744  	return _SaleClockAuction.Contract.Owner(&_SaleClockAuction.CallOpts)
  3745  }
  3746  
  3747  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  3748  //
  3749  // Solidity: function owner() view returns(address)
  3750  func (_SaleClockAuction *SaleClockAuctionCallerSession) Owner() (common.Address, error) {
  3751  	return _SaleClockAuction.Contract.Owner(&_SaleClockAuction.CallOpts)
  3752  }
  3753  
  3754  // OwnerCut is a free data retrieval call binding the contract method 0x83b5ff8b.
  3755  //
  3756  // Solidity: function ownerCut() view returns(uint256)
  3757  func (_SaleClockAuction *SaleClockAuctionCaller) OwnerCut(opts *bind.CallOpts) (*big.Int, error) {
  3758  	var out []interface{}
  3759  	err := _SaleClockAuction.contract.Call(opts, &out, "ownerCut")
  3760  
  3761  	if err != nil {
  3762  		return *new(*big.Int), err
  3763  	}
  3764  
  3765  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  3766  
  3767  	return out0, err
  3768  
  3769  }
  3770  
  3771  // OwnerCut is a free data retrieval call binding the contract method 0x83b5ff8b.
  3772  //
  3773  // Solidity: function ownerCut() view returns(uint256)
  3774  func (_SaleClockAuction *SaleClockAuctionSession) OwnerCut() (*big.Int, error) {
  3775  	return _SaleClockAuction.Contract.OwnerCut(&_SaleClockAuction.CallOpts)
  3776  }
  3777  
  3778  // OwnerCut is a free data retrieval call binding the contract method 0x83b5ff8b.
  3779  //
  3780  // Solidity: function ownerCut() view returns(uint256)
  3781  func (_SaleClockAuction *SaleClockAuctionCallerSession) OwnerCut() (*big.Int, error) {
  3782  	return _SaleClockAuction.Contract.OwnerCut(&_SaleClockAuction.CallOpts)
  3783  }
  3784  
  3785  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
  3786  //
  3787  // Solidity: function paused() view returns(bool)
  3788  func (_SaleClockAuction *SaleClockAuctionCaller) Paused(opts *bind.CallOpts) (bool, error) {
  3789  	var out []interface{}
  3790  	err := _SaleClockAuction.contract.Call(opts, &out, "paused")
  3791  
  3792  	if err != nil {
  3793  		return *new(bool), err
  3794  	}
  3795  
  3796  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  3797  
  3798  	return out0, err
  3799  
  3800  }
  3801  
  3802  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
  3803  //
  3804  // Solidity: function paused() view returns(bool)
  3805  func (_SaleClockAuction *SaleClockAuctionSession) Paused() (bool, error) {
  3806  	return _SaleClockAuction.Contract.Paused(&_SaleClockAuction.CallOpts)
  3807  }
  3808  
  3809  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
  3810  //
  3811  // Solidity: function paused() view returns(bool)
  3812  func (_SaleClockAuction *SaleClockAuctionCallerSession) Paused() (bool, error) {
  3813  	return _SaleClockAuction.Contract.Paused(&_SaleClockAuction.CallOpts)
  3814  }
  3815  
  3816  // Bid is a paid mutator transaction binding the contract method 0x454a2ab3.
  3817  //
  3818  // Solidity: function bid(uint256 _tokenId) payable returns()
  3819  func (_SaleClockAuction *SaleClockAuctionTransactor) Bid(opts *bind.TransactOpts, _tokenId *big.Int) (*types.Transaction, error) {
  3820  	return _SaleClockAuction.contract.Transact(opts, "bid", _tokenId)
  3821  }
  3822  
  3823  // Bid is a paid mutator transaction binding the contract method 0x454a2ab3.
  3824  //
  3825  // Solidity: function bid(uint256 _tokenId) payable returns()
  3826  func (_SaleClockAuction *SaleClockAuctionSession) Bid(_tokenId *big.Int) (*types.Transaction, error) {
  3827  	return _SaleClockAuction.Contract.Bid(&_SaleClockAuction.TransactOpts, _tokenId)
  3828  }
  3829  
  3830  // Bid is a paid mutator transaction binding the contract method 0x454a2ab3.
  3831  //
  3832  // Solidity: function bid(uint256 _tokenId) payable returns()
  3833  func (_SaleClockAuction *SaleClockAuctionTransactorSession) Bid(_tokenId *big.Int) (*types.Transaction, error) {
  3834  	return _SaleClockAuction.Contract.Bid(&_SaleClockAuction.TransactOpts, _tokenId)
  3835  }
  3836  
  3837  // CancelAuction is a paid mutator transaction binding the contract method 0x96b5a755.
  3838  //
  3839  // Solidity: function cancelAuction(uint256 _tokenId) returns()
  3840  func (_SaleClockAuction *SaleClockAuctionTransactor) CancelAuction(opts *bind.TransactOpts, _tokenId *big.Int) (*types.Transaction, error) {
  3841  	return _SaleClockAuction.contract.Transact(opts, "cancelAuction", _tokenId)
  3842  }
  3843  
  3844  // CancelAuction is a paid mutator transaction binding the contract method 0x96b5a755.
  3845  //
  3846  // Solidity: function cancelAuction(uint256 _tokenId) returns()
  3847  func (_SaleClockAuction *SaleClockAuctionSession) CancelAuction(_tokenId *big.Int) (*types.Transaction, error) {
  3848  	return _SaleClockAuction.Contract.CancelAuction(&_SaleClockAuction.TransactOpts, _tokenId)
  3849  }
  3850  
  3851  // CancelAuction is a paid mutator transaction binding the contract method 0x96b5a755.
  3852  //
  3853  // Solidity: function cancelAuction(uint256 _tokenId) returns()
  3854  func (_SaleClockAuction *SaleClockAuctionTransactorSession) CancelAuction(_tokenId *big.Int) (*types.Transaction, error) {
  3855  	return _SaleClockAuction.Contract.CancelAuction(&_SaleClockAuction.TransactOpts, _tokenId)
  3856  }
  3857  
  3858  // CancelAuctionWhenPaused is a paid mutator transaction binding the contract method 0x878eb368.
  3859  //
  3860  // Solidity: function cancelAuctionWhenPaused(uint256 _tokenId) returns()
  3861  func (_SaleClockAuction *SaleClockAuctionTransactor) CancelAuctionWhenPaused(opts *bind.TransactOpts, _tokenId *big.Int) (*types.Transaction, error) {
  3862  	return _SaleClockAuction.contract.Transact(opts, "cancelAuctionWhenPaused", _tokenId)
  3863  }
  3864  
  3865  // CancelAuctionWhenPaused is a paid mutator transaction binding the contract method 0x878eb368.
  3866  //
  3867  // Solidity: function cancelAuctionWhenPaused(uint256 _tokenId) returns()
  3868  func (_SaleClockAuction *SaleClockAuctionSession) CancelAuctionWhenPaused(_tokenId *big.Int) (*types.Transaction, error) {
  3869  	return _SaleClockAuction.Contract.CancelAuctionWhenPaused(&_SaleClockAuction.TransactOpts, _tokenId)
  3870  }
  3871  
  3872  // CancelAuctionWhenPaused is a paid mutator transaction binding the contract method 0x878eb368.
  3873  //
  3874  // Solidity: function cancelAuctionWhenPaused(uint256 _tokenId) returns()
  3875  func (_SaleClockAuction *SaleClockAuctionTransactorSession) CancelAuctionWhenPaused(_tokenId *big.Int) (*types.Transaction, error) {
  3876  	return _SaleClockAuction.Contract.CancelAuctionWhenPaused(&_SaleClockAuction.TransactOpts, _tokenId)
  3877  }
  3878  
  3879  // CreateAuction is a paid mutator transaction binding the contract method 0x27ebe40a.
  3880  //
  3881  // Solidity: function createAuction(uint256 _tokenId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration, address _seller) returns()
  3882  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) {
  3883  	return _SaleClockAuction.contract.Transact(opts, "createAuction", _tokenId, _startingPrice, _endingPrice, _duration, _seller)
  3884  }
  3885  
  3886  // CreateAuction is a paid mutator transaction binding the contract method 0x27ebe40a.
  3887  //
  3888  // Solidity: function createAuction(uint256 _tokenId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration, address _seller) returns()
  3889  func (_SaleClockAuction *SaleClockAuctionSession) CreateAuction(_tokenId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int, _seller common.Address) (*types.Transaction, error) {
  3890  	return _SaleClockAuction.Contract.CreateAuction(&_SaleClockAuction.TransactOpts, _tokenId, _startingPrice, _endingPrice, _duration, _seller)
  3891  }
  3892  
  3893  // CreateAuction is a paid mutator transaction binding the contract method 0x27ebe40a.
  3894  //
  3895  // Solidity: function createAuction(uint256 _tokenId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration, address _seller) returns()
  3896  func (_SaleClockAuction *SaleClockAuctionTransactorSession) CreateAuction(_tokenId *big.Int, _startingPrice *big.Int, _endingPrice *big.Int, _duration *big.Int, _seller common.Address) (*types.Transaction, error) {
  3897  	return _SaleClockAuction.Contract.CreateAuction(&_SaleClockAuction.TransactOpts, _tokenId, _startingPrice, _endingPrice, _duration, _seller)
  3898  }
  3899  
  3900  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
  3901  //
  3902  // Solidity: function pause() returns(bool)
  3903  func (_SaleClockAuction *SaleClockAuctionTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) {
  3904  	return _SaleClockAuction.contract.Transact(opts, "pause")
  3905  }
  3906  
  3907  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
  3908  //
  3909  // Solidity: function pause() returns(bool)
  3910  func (_SaleClockAuction *SaleClockAuctionSession) Pause() (*types.Transaction, error) {
  3911  	return _SaleClockAuction.Contract.Pause(&_SaleClockAuction.TransactOpts)
  3912  }
  3913  
  3914  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
  3915  //
  3916  // Solidity: function pause() returns(bool)
  3917  func (_SaleClockAuction *SaleClockAuctionTransactorSession) Pause() (*types.Transaction, error) {
  3918  	return _SaleClockAuction.Contract.Pause(&_SaleClockAuction.TransactOpts)
  3919  }
  3920  
  3921  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  3922  //
  3923  // Solidity: function transferOwnership(address newOwner) returns()
  3924  func (_SaleClockAuction *SaleClockAuctionTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  3925  	return _SaleClockAuction.contract.Transact(opts, "transferOwnership", newOwner)
  3926  }
  3927  
  3928  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  3929  //
  3930  // Solidity: function transferOwnership(address newOwner) returns()
  3931  func (_SaleClockAuction *SaleClockAuctionSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  3932  	return _SaleClockAuction.Contract.TransferOwnership(&_SaleClockAuction.TransactOpts, newOwner)
  3933  }
  3934  
  3935  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  3936  //
  3937  // Solidity: function transferOwnership(address newOwner) returns()
  3938  func (_SaleClockAuction *SaleClockAuctionTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  3939  	return _SaleClockAuction.Contract.TransferOwnership(&_SaleClockAuction.TransactOpts, newOwner)
  3940  }
  3941  
  3942  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
  3943  //
  3944  // Solidity: function unpause() returns(bool)
  3945  func (_SaleClockAuction *SaleClockAuctionTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) {
  3946  	return _SaleClockAuction.contract.Transact(opts, "unpause")
  3947  }
  3948  
  3949  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
  3950  //
  3951  // Solidity: function unpause() returns(bool)
  3952  func (_SaleClockAuction *SaleClockAuctionSession) Unpause() (*types.Transaction, error) {
  3953  	return _SaleClockAuction.Contract.Unpause(&_SaleClockAuction.TransactOpts)
  3954  }
  3955  
  3956  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
  3957  //
  3958  // Solidity: function unpause() returns(bool)
  3959  func (_SaleClockAuction *SaleClockAuctionTransactorSession) Unpause() (*types.Transaction, error) {
  3960  	return _SaleClockAuction.Contract.Unpause(&_SaleClockAuction.TransactOpts)
  3961  }
  3962  
  3963  // WithdrawBalance is a paid mutator transaction binding the contract method 0x5fd8c710.
  3964  //
  3965  // Solidity: function withdrawBalance() returns()
  3966  func (_SaleClockAuction *SaleClockAuctionTransactor) WithdrawBalance(opts *bind.TransactOpts) (*types.Transaction, error) {
  3967  	return _SaleClockAuction.contract.Transact(opts, "withdrawBalance")
  3968  }
  3969  
  3970  // WithdrawBalance is a paid mutator transaction binding the contract method 0x5fd8c710.
  3971  //
  3972  // Solidity: function withdrawBalance() returns()
  3973  func (_SaleClockAuction *SaleClockAuctionSession) WithdrawBalance() (*types.Transaction, error) {
  3974  	return _SaleClockAuction.Contract.WithdrawBalance(&_SaleClockAuction.TransactOpts)
  3975  }
  3976  
  3977  // WithdrawBalance is a paid mutator transaction binding the contract method 0x5fd8c710.
  3978  //
  3979  // Solidity: function withdrawBalance() returns()
  3980  func (_SaleClockAuction *SaleClockAuctionTransactorSession) WithdrawBalance() (*types.Transaction, error) {
  3981  	return _SaleClockAuction.Contract.WithdrawBalance(&_SaleClockAuction.TransactOpts)
  3982  }
  3983  
  3984  // 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.
  3985  type SaleClockAuctionAuctionCancelledIterator struct {
  3986  	Event *SaleClockAuctionAuctionCancelled // Event containing the contract specifics and raw log
  3987  
  3988  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3989  	event    string              // Event name to use for unpacking event data
  3990  
  3991  	logs chan types.Log        // Log channel receiving the found contract events
  3992  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3993  	done bool                  // Whether the subscription completed delivering logs
  3994  	fail error                 // Occurred error to stop iteration
  3995  }
  3996  
  3997  // Next advances the iterator to the subsequent event, returning whether there
  3998  // are any more events found. In case of a retrieval or parsing error, false is
  3999  // returned and Error() can be queried for the exact failure.
  4000  func (it *SaleClockAuctionAuctionCancelledIterator) Next() bool {
  4001  	// If the iterator failed, stop iterating
  4002  	if it.fail != nil {
  4003  		return false
  4004  	}
  4005  	// If the iterator completed, deliver directly whatever's available
  4006  	if it.done {
  4007  		select {
  4008  		case log := <-it.logs:
  4009  			it.Event = new(SaleClockAuctionAuctionCancelled)
  4010  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4011  				it.fail = err
  4012  				return false
  4013  			}
  4014  			it.Event.Raw = log
  4015  			return true
  4016  
  4017  		default:
  4018  			return false
  4019  		}
  4020  	}
  4021  	// Iterator still in progress, wait for either a data or an error event
  4022  	select {
  4023  	case log := <-it.logs:
  4024  		it.Event = new(SaleClockAuctionAuctionCancelled)
  4025  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4026  			it.fail = err
  4027  			return false
  4028  		}
  4029  		it.Event.Raw = log
  4030  		return true
  4031  
  4032  	case err := <-it.sub.Err():
  4033  		it.done = true
  4034  		it.fail = err
  4035  		return it.Next()
  4036  	}
  4037  }
  4038  
  4039  // Error returns any retrieval or parsing error occurred during filtering.
  4040  func (it *SaleClockAuctionAuctionCancelledIterator) Error() error {
  4041  	return it.fail
  4042  }
  4043  
  4044  // Close terminates the iteration process, releasing any pending underlying
  4045  // resources.
  4046  func (it *SaleClockAuctionAuctionCancelledIterator) Close() error {
  4047  	it.sub.Unsubscribe()
  4048  	return nil
  4049  }
  4050  
  4051  // SaleClockAuctionAuctionCancelled represents a AuctionCancelled event raised by the SaleClockAuction contract.
  4052  type SaleClockAuctionAuctionCancelled struct {
  4053  	TokenId *big.Int
  4054  	Raw     types.Log // Blockchain specific contextual infos
  4055  }
  4056  
  4057  // FilterAuctionCancelled is a free log retrieval operation binding the contract event 0x2809c7e17bf978fbc7194c0a694b638c4215e9140cacc6c38ca36010b45697df.
  4058  //
  4059  // Solidity: event AuctionCancelled(uint256 tokenId)
  4060  func (_SaleClockAuction *SaleClockAuctionFilterer) FilterAuctionCancelled(opts *bind.FilterOpts) (*SaleClockAuctionAuctionCancelledIterator, error) {
  4061  
  4062  	logs, sub, err := _SaleClockAuction.contract.FilterLogs(opts, "AuctionCancelled")
  4063  	if err != nil {
  4064  		return nil, err
  4065  	}
  4066  	return &SaleClockAuctionAuctionCancelledIterator{contract: _SaleClockAuction.contract, event: "AuctionCancelled", logs: logs, sub: sub}, nil
  4067  }
  4068  
  4069  // WatchAuctionCancelled is a free log subscription operation binding the contract event 0x2809c7e17bf978fbc7194c0a694b638c4215e9140cacc6c38ca36010b45697df.
  4070  //
  4071  // Solidity: event AuctionCancelled(uint256 tokenId)
  4072  func (_SaleClockAuction *SaleClockAuctionFilterer) WatchAuctionCancelled(opts *bind.WatchOpts, sink chan<- *SaleClockAuctionAuctionCancelled) (event.Subscription, error) {
  4073  
  4074  	logs, sub, err := _SaleClockAuction.contract.WatchLogs(opts, "AuctionCancelled")
  4075  	if err != nil {
  4076  		return nil, err
  4077  	}
  4078  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4079  		defer sub.Unsubscribe()
  4080  		for {
  4081  			select {
  4082  			case log := <-logs:
  4083  				// New log arrived, parse the event and forward to the user
  4084  				event := new(SaleClockAuctionAuctionCancelled)
  4085  				if err := _SaleClockAuction.contract.UnpackLog(event, "AuctionCancelled", log); err != nil {
  4086  					return err
  4087  				}
  4088  				event.Raw = log
  4089  
  4090  				select {
  4091  				case sink <- event:
  4092  				case err := <-sub.Err():
  4093  					return err
  4094  				case <-quit:
  4095  					return nil
  4096  				}
  4097  			case err := <-sub.Err():
  4098  				return err
  4099  			case <-quit:
  4100  				return nil
  4101  			}
  4102  		}
  4103  	}), nil
  4104  }
  4105  
  4106  // ParseAuctionCancelled is a log parse operation binding the contract event 0x2809c7e17bf978fbc7194c0a694b638c4215e9140cacc6c38ca36010b45697df.
  4107  //
  4108  // Solidity: event AuctionCancelled(uint256 tokenId)
  4109  func (_SaleClockAuction *SaleClockAuctionFilterer) ParseAuctionCancelled(log types.Log) (*SaleClockAuctionAuctionCancelled, error) {
  4110  	event := new(SaleClockAuctionAuctionCancelled)
  4111  	if err := _SaleClockAuction.contract.UnpackLog(event, "AuctionCancelled", log); err != nil {
  4112  		return nil, err
  4113  	}
  4114  	event.Raw = log
  4115  	return event, nil
  4116  }
  4117  
  4118  // 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.
  4119  type SaleClockAuctionAuctionCreatedIterator struct {
  4120  	Event *SaleClockAuctionAuctionCreated // Event containing the contract specifics and raw log
  4121  
  4122  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4123  	event    string              // Event name to use for unpacking event data
  4124  
  4125  	logs chan types.Log        // Log channel receiving the found contract events
  4126  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  4127  	done bool                  // Whether the subscription completed delivering logs
  4128  	fail error                 // Occurred error to stop iteration
  4129  }
  4130  
  4131  // Next advances the iterator to the subsequent event, returning whether there
  4132  // are any more events found. In case of a retrieval or parsing error, false is
  4133  // returned and Error() can be queried for the exact failure.
  4134  func (it *SaleClockAuctionAuctionCreatedIterator) Next() bool {
  4135  	// If the iterator failed, stop iterating
  4136  	if it.fail != nil {
  4137  		return false
  4138  	}
  4139  	// If the iterator completed, deliver directly whatever's available
  4140  	if it.done {
  4141  		select {
  4142  		case log := <-it.logs:
  4143  			it.Event = new(SaleClockAuctionAuctionCreated)
  4144  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4145  				it.fail = err
  4146  				return false
  4147  			}
  4148  			it.Event.Raw = log
  4149  			return true
  4150  
  4151  		default:
  4152  			return false
  4153  		}
  4154  	}
  4155  	// Iterator still in progress, wait for either a data or an error event
  4156  	select {
  4157  	case log := <-it.logs:
  4158  		it.Event = new(SaleClockAuctionAuctionCreated)
  4159  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4160  			it.fail = err
  4161  			return false
  4162  		}
  4163  		it.Event.Raw = log
  4164  		return true
  4165  
  4166  	case err := <-it.sub.Err():
  4167  		it.done = true
  4168  		it.fail = err
  4169  		return it.Next()
  4170  	}
  4171  }
  4172  
  4173  // Error returns any retrieval or parsing error occurred during filtering.
  4174  func (it *SaleClockAuctionAuctionCreatedIterator) Error() error {
  4175  	return it.fail
  4176  }
  4177  
  4178  // Close terminates the iteration process, releasing any pending underlying
  4179  // resources.
  4180  func (it *SaleClockAuctionAuctionCreatedIterator) Close() error {
  4181  	it.sub.Unsubscribe()
  4182  	return nil
  4183  }
  4184  
  4185  // SaleClockAuctionAuctionCreated represents a AuctionCreated event raised by the SaleClockAuction contract.
  4186  type SaleClockAuctionAuctionCreated struct {
  4187  	TokenId       *big.Int
  4188  	StartingPrice *big.Int
  4189  	EndingPrice   *big.Int
  4190  	Duration      *big.Int
  4191  	Raw           types.Log // Blockchain specific contextual infos
  4192  }
  4193  
  4194  // FilterAuctionCreated is a free log retrieval operation binding the contract event 0xa9c8dfcda5664a5a124c713e386da27de87432d5b668e79458501eb296389ba7.
  4195  //
  4196  // Solidity: event AuctionCreated(uint256 tokenId, uint256 startingPrice, uint256 endingPrice, uint256 duration)
  4197  func (_SaleClockAuction *SaleClockAuctionFilterer) FilterAuctionCreated(opts *bind.FilterOpts) (*SaleClockAuctionAuctionCreatedIterator, error) {
  4198  
  4199  	logs, sub, err := _SaleClockAuction.contract.FilterLogs(opts, "AuctionCreated")
  4200  	if err != nil {
  4201  		return nil, err
  4202  	}
  4203  	return &SaleClockAuctionAuctionCreatedIterator{contract: _SaleClockAuction.contract, event: "AuctionCreated", logs: logs, sub: sub}, nil
  4204  }
  4205  
  4206  // WatchAuctionCreated is a free log subscription operation binding the contract event 0xa9c8dfcda5664a5a124c713e386da27de87432d5b668e79458501eb296389ba7.
  4207  //
  4208  // Solidity: event AuctionCreated(uint256 tokenId, uint256 startingPrice, uint256 endingPrice, uint256 duration)
  4209  func (_SaleClockAuction *SaleClockAuctionFilterer) WatchAuctionCreated(opts *bind.WatchOpts, sink chan<- *SaleClockAuctionAuctionCreated) (event.Subscription, error) {
  4210  
  4211  	logs, sub, err := _SaleClockAuction.contract.WatchLogs(opts, "AuctionCreated")
  4212  	if err != nil {
  4213  		return nil, err
  4214  	}
  4215  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4216  		defer sub.Unsubscribe()
  4217  		for {
  4218  			select {
  4219  			case log := <-logs:
  4220  				// New log arrived, parse the event and forward to the user
  4221  				event := new(SaleClockAuctionAuctionCreated)
  4222  				if err := _SaleClockAuction.contract.UnpackLog(event, "AuctionCreated", log); err != nil {
  4223  					return err
  4224  				}
  4225  				event.Raw = log
  4226  
  4227  				select {
  4228  				case sink <- event:
  4229  				case err := <-sub.Err():
  4230  					return err
  4231  				case <-quit:
  4232  					return nil
  4233  				}
  4234  			case err := <-sub.Err():
  4235  				return err
  4236  			case <-quit:
  4237  				return nil
  4238  			}
  4239  		}
  4240  	}), nil
  4241  }
  4242  
  4243  // ParseAuctionCreated is a log parse operation binding the contract event 0xa9c8dfcda5664a5a124c713e386da27de87432d5b668e79458501eb296389ba7.
  4244  //
  4245  // Solidity: event AuctionCreated(uint256 tokenId, uint256 startingPrice, uint256 endingPrice, uint256 duration)
  4246  func (_SaleClockAuction *SaleClockAuctionFilterer) ParseAuctionCreated(log types.Log) (*SaleClockAuctionAuctionCreated, error) {
  4247  	event := new(SaleClockAuctionAuctionCreated)
  4248  	if err := _SaleClockAuction.contract.UnpackLog(event, "AuctionCreated", log); err != nil {
  4249  		return nil, err
  4250  	}
  4251  	event.Raw = log
  4252  	return event, nil
  4253  }
  4254  
  4255  // 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.
  4256  type SaleClockAuctionAuctionSuccessfulIterator struct {
  4257  	Event *SaleClockAuctionAuctionSuccessful // Event containing the contract specifics and raw log
  4258  
  4259  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4260  	event    string              // Event name to use for unpacking event data
  4261  
  4262  	logs chan types.Log        // Log channel receiving the found contract events
  4263  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  4264  	done bool                  // Whether the subscription completed delivering logs
  4265  	fail error                 // Occurred error to stop iteration
  4266  }
  4267  
  4268  // Next advances the iterator to the subsequent event, returning whether there
  4269  // are any more events found. In case of a retrieval or parsing error, false is
  4270  // returned and Error() can be queried for the exact failure.
  4271  func (it *SaleClockAuctionAuctionSuccessfulIterator) Next() bool {
  4272  	// If the iterator failed, stop iterating
  4273  	if it.fail != nil {
  4274  		return false
  4275  	}
  4276  	// If the iterator completed, deliver directly whatever's available
  4277  	if it.done {
  4278  		select {
  4279  		case log := <-it.logs:
  4280  			it.Event = new(SaleClockAuctionAuctionSuccessful)
  4281  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4282  				it.fail = err
  4283  				return false
  4284  			}
  4285  			it.Event.Raw = log
  4286  			return true
  4287  
  4288  		default:
  4289  			return false
  4290  		}
  4291  	}
  4292  	// Iterator still in progress, wait for either a data or an error event
  4293  	select {
  4294  	case log := <-it.logs:
  4295  		it.Event = new(SaleClockAuctionAuctionSuccessful)
  4296  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4297  			it.fail = err
  4298  			return false
  4299  		}
  4300  		it.Event.Raw = log
  4301  		return true
  4302  
  4303  	case err := <-it.sub.Err():
  4304  		it.done = true
  4305  		it.fail = err
  4306  		return it.Next()
  4307  	}
  4308  }
  4309  
  4310  // Error returns any retrieval or parsing error occurred during filtering.
  4311  func (it *SaleClockAuctionAuctionSuccessfulIterator) Error() error {
  4312  	return it.fail
  4313  }
  4314  
  4315  // Close terminates the iteration process, releasing any pending underlying
  4316  // resources.
  4317  func (it *SaleClockAuctionAuctionSuccessfulIterator) Close() error {
  4318  	it.sub.Unsubscribe()
  4319  	return nil
  4320  }
  4321  
  4322  // SaleClockAuctionAuctionSuccessful represents a AuctionSuccessful event raised by the SaleClockAuction contract.
  4323  type SaleClockAuctionAuctionSuccessful struct {
  4324  	TokenId    *big.Int
  4325  	TotalPrice *big.Int
  4326  	Winner     common.Address
  4327  	Raw        types.Log // Blockchain specific contextual infos
  4328  }
  4329  
  4330  // FilterAuctionSuccessful is a free log retrieval operation binding the contract event 0x4fcc30d90a842164dd58501ab874a101a3749c3d4747139cefe7c876f4ccebd2.
  4331  //
  4332  // Solidity: event AuctionSuccessful(uint256 tokenId, uint256 totalPrice, address winner)
  4333  func (_SaleClockAuction *SaleClockAuctionFilterer) FilterAuctionSuccessful(opts *bind.FilterOpts) (*SaleClockAuctionAuctionSuccessfulIterator, error) {
  4334  
  4335  	logs, sub, err := _SaleClockAuction.contract.FilterLogs(opts, "AuctionSuccessful")
  4336  	if err != nil {
  4337  		return nil, err
  4338  	}
  4339  	return &SaleClockAuctionAuctionSuccessfulIterator{contract: _SaleClockAuction.contract, event: "AuctionSuccessful", logs: logs, sub: sub}, nil
  4340  }
  4341  
  4342  // WatchAuctionSuccessful is a free log subscription operation binding the contract event 0x4fcc30d90a842164dd58501ab874a101a3749c3d4747139cefe7c876f4ccebd2.
  4343  //
  4344  // Solidity: event AuctionSuccessful(uint256 tokenId, uint256 totalPrice, address winner)
  4345  func (_SaleClockAuction *SaleClockAuctionFilterer) WatchAuctionSuccessful(opts *bind.WatchOpts, sink chan<- *SaleClockAuctionAuctionSuccessful) (event.Subscription, error) {
  4346  
  4347  	logs, sub, err := _SaleClockAuction.contract.WatchLogs(opts, "AuctionSuccessful")
  4348  	if err != nil {
  4349  		return nil, err
  4350  	}
  4351  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4352  		defer sub.Unsubscribe()
  4353  		for {
  4354  			select {
  4355  			case log := <-logs:
  4356  				// New log arrived, parse the event and forward to the user
  4357  				event := new(SaleClockAuctionAuctionSuccessful)
  4358  				if err := _SaleClockAuction.contract.UnpackLog(event, "AuctionSuccessful", log); err != nil {
  4359  					return err
  4360  				}
  4361  				event.Raw = log
  4362  
  4363  				select {
  4364  				case sink <- event:
  4365  				case err := <-sub.Err():
  4366  					return err
  4367  				case <-quit:
  4368  					return nil
  4369  				}
  4370  			case err := <-sub.Err():
  4371  				return err
  4372  			case <-quit:
  4373  				return nil
  4374  			}
  4375  		}
  4376  	}), nil
  4377  }
  4378  
  4379  // ParseAuctionSuccessful is a log parse operation binding the contract event 0x4fcc30d90a842164dd58501ab874a101a3749c3d4747139cefe7c876f4ccebd2.
  4380  //
  4381  // Solidity: event AuctionSuccessful(uint256 tokenId, uint256 totalPrice, address winner)
  4382  func (_SaleClockAuction *SaleClockAuctionFilterer) ParseAuctionSuccessful(log types.Log) (*SaleClockAuctionAuctionSuccessful, error) {
  4383  	event := new(SaleClockAuctionAuctionSuccessful)
  4384  	if err := _SaleClockAuction.contract.UnpackLog(event, "AuctionSuccessful", log); err != nil {
  4385  		return nil, err
  4386  	}
  4387  	event.Raw = log
  4388  	return event, nil
  4389  }
  4390  
  4391  // 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.
  4392  type SaleClockAuctionPauseIterator struct {
  4393  	Event *SaleClockAuctionPause // Event containing the contract specifics and raw log
  4394  
  4395  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4396  	event    string              // Event name to use for unpacking event data
  4397  
  4398  	logs chan types.Log        // Log channel receiving the found contract events
  4399  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  4400  	done bool                  // Whether the subscription completed delivering logs
  4401  	fail error                 // Occurred error to stop iteration
  4402  }
  4403  
  4404  // Next advances the iterator to the subsequent event, returning whether there
  4405  // are any more events found. In case of a retrieval or parsing error, false is
  4406  // returned and Error() can be queried for the exact failure.
  4407  func (it *SaleClockAuctionPauseIterator) Next() bool {
  4408  	// If the iterator failed, stop iterating
  4409  	if it.fail != nil {
  4410  		return false
  4411  	}
  4412  	// If the iterator completed, deliver directly whatever's available
  4413  	if it.done {
  4414  		select {
  4415  		case log := <-it.logs:
  4416  			it.Event = new(SaleClockAuctionPause)
  4417  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4418  				it.fail = err
  4419  				return false
  4420  			}
  4421  			it.Event.Raw = log
  4422  			return true
  4423  
  4424  		default:
  4425  			return false
  4426  		}
  4427  	}
  4428  	// Iterator still in progress, wait for either a data or an error event
  4429  	select {
  4430  	case log := <-it.logs:
  4431  		it.Event = new(SaleClockAuctionPause)
  4432  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4433  			it.fail = err
  4434  			return false
  4435  		}
  4436  		it.Event.Raw = log
  4437  		return true
  4438  
  4439  	case err := <-it.sub.Err():
  4440  		it.done = true
  4441  		it.fail = err
  4442  		return it.Next()
  4443  	}
  4444  }
  4445  
  4446  // Error returns any retrieval or parsing error occurred during filtering.
  4447  func (it *SaleClockAuctionPauseIterator) Error() error {
  4448  	return it.fail
  4449  }
  4450  
  4451  // Close terminates the iteration process, releasing any pending underlying
  4452  // resources.
  4453  func (it *SaleClockAuctionPauseIterator) Close() error {
  4454  	it.sub.Unsubscribe()
  4455  	return nil
  4456  }
  4457  
  4458  // SaleClockAuctionPause represents a Pause event raised by the SaleClockAuction contract.
  4459  type SaleClockAuctionPause struct {
  4460  	Raw types.Log // Blockchain specific contextual infos
  4461  }
  4462  
  4463  // FilterPause is a free log retrieval operation binding the contract event 0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625.
  4464  //
  4465  // Solidity: event Pause()
  4466  func (_SaleClockAuction *SaleClockAuctionFilterer) FilterPause(opts *bind.FilterOpts) (*SaleClockAuctionPauseIterator, error) {
  4467  
  4468  	logs, sub, err := _SaleClockAuction.contract.FilterLogs(opts, "Pause")
  4469  	if err != nil {
  4470  		return nil, err
  4471  	}
  4472  	return &SaleClockAuctionPauseIterator{contract: _SaleClockAuction.contract, event: "Pause", logs: logs, sub: sub}, nil
  4473  }
  4474  
  4475  // WatchPause is a free log subscription operation binding the contract event 0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625.
  4476  //
  4477  // Solidity: event Pause()
  4478  func (_SaleClockAuction *SaleClockAuctionFilterer) WatchPause(opts *bind.WatchOpts, sink chan<- *SaleClockAuctionPause) (event.Subscription, error) {
  4479  
  4480  	logs, sub, err := _SaleClockAuction.contract.WatchLogs(opts, "Pause")
  4481  	if err != nil {
  4482  		return nil, err
  4483  	}
  4484  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4485  		defer sub.Unsubscribe()
  4486  		for {
  4487  			select {
  4488  			case log := <-logs:
  4489  				// New log arrived, parse the event and forward to the user
  4490  				event := new(SaleClockAuctionPause)
  4491  				if err := _SaleClockAuction.contract.UnpackLog(event, "Pause", log); err != nil {
  4492  					return err
  4493  				}
  4494  				event.Raw = log
  4495  
  4496  				select {
  4497  				case sink <- event:
  4498  				case err := <-sub.Err():
  4499  					return err
  4500  				case <-quit:
  4501  					return nil
  4502  				}
  4503  			case err := <-sub.Err():
  4504  				return err
  4505  			case <-quit:
  4506  				return nil
  4507  			}
  4508  		}
  4509  	}), nil
  4510  }
  4511  
  4512  // ParsePause is a log parse operation binding the contract event 0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625.
  4513  //
  4514  // Solidity: event Pause()
  4515  func (_SaleClockAuction *SaleClockAuctionFilterer) ParsePause(log types.Log) (*SaleClockAuctionPause, error) {
  4516  	event := new(SaleClockAuctionPause)
  4517  	if err := _SaleClockAuction.contract.UnpackLog(event, "Pause", log); err != nil {
  4518  		return nil, err
  4519  	}
  4520  	event.Raw = log
  4521  	return event, nil
  4522  }
  4523  
  4524  // 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.
  4525  type SaleClockAuctionUnpauseIterator struct {
  4526  	Event *SaleClockAuctionUnpause // Event containing the contract specifics and raw log
  4527  
  4528  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4529  	event    string              // Event name to use for unpacking event data
  4530  
  4531  	logs chan types.Log        // Log channel receiving the found contract events
  4532  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  4533  	done bool                  // Whether the subscription completed delivering logs
  4534  	fail error                 // Occurred error to stop iteration
  4535  }
  4536  
  4537  // Next advances the iterator to the subsequent event, returning whether there
  4538  // are any more events found. In case of a retrieval or parsing error, false is
  4539  // returned and Error() can be queried for the exact failure.
  4540  func (it *SaleClockAuctionUnpauseIterator) Next() bool {
  4541  	// If the iterator failed, stop iterating
  4542  	if it.fail != nil {
  4543  		return false
  4544  	}
  4545  	// If the iterator completed, deliver directly whatever's available
  4546  	if it.done {
  4547  		select {
  4548  		case log := <-it.logs:
  4549  			it.Event = new(SaleClockAuctionUnpause)
  4550  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4551  				it.fail = err
  4552  				return false
  4553  			}
  4554  			it.Event.Raw = log
  4555  			return true
  4556  
  4557  		default:
  4558  			return false
  4559  		}
  4560  	}
  4561  	// Iterator still in progress, wait for either a data or an error event
  4562  	select {
  4563  	case log := <-it.logs:
  4564  		it.Event = new(SaleClockAuctionUnpause)
  4565  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4566  			it.fail = err
  4567  			return false
  4568  		}
  4569  		it.Event.Raw = log
  4570  		return true
  4571  
  4572  	case err := <-it.sub.Err():
  4573  		it.done = true
  4574  		it.fail = err
  4575  		return it.Next()
  4576  	}
  4577  }
  4578  
  4579  // Error returns any retrieval or parsing error occurred during filtering.
  4580  func (it *SaleClockAuctionUnpauseIterator) Error() error {
  4581  	return it.fail
  4582  }
  4583  
  4584  // Close terminates the iteration process, releasing any pending underlying
  4585  // resources.
  4586  func (it *SaleClockAuctionUnpauseIterator) Close() error {
  4587  	it.sub.Unsubscribe()
  4588  	return nil
  4589  }
  4590  
  4591  // SaleClockAuctionUnpause represents a Unpause event raised by the SaleClockAuction contract.
  4592  type SaleClockAuctionUnpause struct {
  4593  	Raw types.Log // Blockchain specific contextual infos
  4594  }
  4595  
  4596  // FilterUnpause is a free log retrieval operation binding the contract event 0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33.
  4597  //
  4598  // Solidity: event Unpause()
  4599  func (_SaleClockAuction *SaleClockAuctionFilterer) FilterUnpause(opts *bind.FilterOpts) (*SaleClockAuctionUnpauseIterator, error) {
  4600  
  4601  	logs, sub, err := _SaleClockAuction.contract.FilterLogs(opts, "Unpause")
  4602  	if err != nil {
  4603  		return nil, err
  4604  	}
  4605  	return &SaleClockAuctionUnpauseIterator{contract: _SaleClockAuction.contract, event: "Unpause", logs: logs, sub: sub}, nil
  4606  }
  4607  
  4608  // WatchUnpause is a free log subscription operation binding the contract event 0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33.
  4609  //
  4610  // Solidity: event Unpause()
  4611  func (_SaleClockAuction *SaleClockAuctionFilterer) WatchUnpause(opts *bind.WatchOpts, sink chan<- *SaleClockAuctionUnpause) (event.Subscription, error) {
  4612  
  4613  	logs, sub, err := _SaleClockAuction.contract.WatchLogs(opts, "Unpause")
  4614  	if err != nil {
  4615  		return nil, err
  4616  	}
  4617  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4618  		defer sub.Unsubscribe()
  4619  		for {
  4620  			select {
  4621  			case log := <-logs:
  4622  				// New log arrived, parse the event and forward to the user
  4623  				event := new(SaleClockAuctionUnpause)
  4624  				if err := _SaleClockAuction.contract.UnpackLog(event, "Unpause", log); err != nil {
  4625  					return err
  4626  				}
  4627  				event.Raw = log
  4628  
  4629  				select {
  4630  				case sink <- event:
  4631  				case err := <-sub.Err():
  4632  					return err
  4633  				case <-quit:
  4634  					return nil
  4635  				}
  4636  			case err := <-sub.Err():
  4637  				return err
  4638  			case <-quit:
  4639  				return nil
  4640  			}
  4641  		}
  4642  	}), nil
  4643  }
  4644  
  4645  // ParseUnpause is a log parse operation binding the contract event 0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33.
  4646  //
  4647  // Solidity: event Unpause()
  4648  func (_SaleClockAuction *SaleClockAuctionFilterer) ParseUnpause(log types.Log) (*SaleClockAuctionUnpause, error) {
  4649  	event := new(SaleClockAuctionUnpause)
  4650  	if err := _SaleClockAuction.contract.UnpackLog(event, "Unpause", log); err != nil {
  4651  		return nil, err
  4652  	}
  4653  	event.Raw = log
  4654  	return event, nil
  4655  }