github.com/diadata-org/diadata@v1.4.593/pkg/dia/scraper/exchange-scrapers/platypusfinance/platypusfinance.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 platypusfinance
     5  
     6  import (
     7  	"errors"
     8  	"math/big"
     9  	"strings"
    10  
    11  	ethereum "github.com/ethereum/go-ethereum"
    12  	"github.com/ethereum/go-ethereum/accounts/abi"
    13  	"github.com/ethereum/go-ethereum/accounts/abi/bind"
    14  	"github.com/ethereum/go-ethereum/common"
    15  	"github.com/ethereum/go-ethereum/core/types"
    16  	"github.com/ethereum/go-ethereum/event"
    17  )
    18  
    19  // Reference imports to suppress errors if they are not otherwise used.
    20  var (
    21  	_ = errors.New
    22  	_ = big.NewInt
    23  	_ = strings.NewReader
    24  	_ = ethereum.NotFound
    25  	_ = bind.Bind
    26  	_ = common.Big1
    27  	_ = types.BloomLookup
    28  	_ = event.NewSubscription
    29  )
    30  
    31  // BaseMasterPlatypusMetaData contains all meta data concerning the BaseMasterPlatypus contract.
    32  var BaseMasterPlatypusMetaData = &bind.MetaData{
    33  	ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"pid\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"allocPoint\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"contractIERC20\",\"name\":\"lpToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contractIRewarder\",\"name\":\"rewarder\",\"type\":\"address\"}],\"name\":\"Add\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"pid\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"pid\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"DepositFor\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"pid\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"EmergencyWithdraw\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"pid\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Harvest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"pid\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"allocPoint\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"contractIRewarder\",\"name\":\"rewarder\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"overwrite\",\"type\":\"bool\"}],\"name\":\"Set\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ptpPerSec\",\"type\":\"uint256\"}],\"name\":\"UpdateEmissionRate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"pid\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"lastRewardTimestamp\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"lpSupply\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"accPtpPerShare\",\"type\":\"uint256\"}],\"name\":\"UpdatePool\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"pid\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_baseAllocPoint\",\"type\":\"uint256\"},{\"internalType\":\"contractIAsset\",\"name\":\"_lpToken\",\"type\":\"address\"},{\"internalType\":\"contractIRewarder\",\"name\":\"_rewarder\",\"type\":\"address\"}],\"name\":\"add\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_pid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_pid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"depositFor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"emergencyPtpWithdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_pid\",\"type\":\"uint256\"}],\"name\":\"emergencyWithdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIERC20\",\"name\":\"_ptp\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_ptpPerSec\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_startTimestamp\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"massUpdatePools\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_pids\",\"type\":\"uint256[]\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_pids\",\"type\":\"uint256[]\"}],\"name\":\"multiClaim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ownerCandidate\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_pid\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"pendingTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"pendingPtp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"bonusTokenAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"bonusTokenSymbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"pendingBonusToken\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"poolInfo\",\"outputs\":[{\"internalType\":\"contractIAsset\",\"name\":\"lpToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"baseAllocPoint\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastRewardTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accPtpPerShare\",\"type\":\"uint256\"},{\"internalType\":\"contractIRewarder\",\"name\":\"rewarder\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"proposeOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ptp\",\"outputs\":[{\"internalType\":\"contractIERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ptpPerSec\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_pid\",\"type\":\"uint256\"}],\"name\":\"rewarderBonusTokenInfo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"bonusTokenAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"bonusTokenSymbol\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_pid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_baseAllocPoint\",\"type\":\"uint256\"},{\"internalType\":\"contractIRewarder\",\"name\":\"_rewarder\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"overwrite\",\"type\":\"bool\"}],\"name\":\"set\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBaseMasterPlatypus\",\"name\":\"_newMasterPlatypus\",\"type\":\"address\"}],\"name\":\"setNewMasterPlatypus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalBaseAllocPoint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_ptpPerSec\",\"type\":\"uint256\"}],\"name\":\"updateEmissionRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_pid\",\"type\":\"uint256\"}],\"name\":\"updatePool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"userInfo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardDebt\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_pid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
    34  }
    35  
    36  // BaseMasterPlatypusABI is the input ABI used to generate the binding from.
    37  // Deprecated: Use BaseMasterPlatypusMetaData.ABI instead.
    38  var BaseMasterPlatypusABI = BaseMasterPlatypusMetaData.ABI
    39  
    40  // BaseMasterPlatypus is an auto generated Go binding around an Ethereum contract.
    41  type BaseMasterPlatypus struct {
    42  	BaseMasterPlatypusCaller     // Read-only binding to the contract
    43  	BaseMasterPlatypusTransactor // Write-only binding to the contract
    44  	BaseMasterPlatypusFilterer   // Log filterer for contract events
    45  }
    46  
    47  // BaseMasterPlatypusCaller is an auto generated read-only Go binding around an Ethereum contract.
    48  type BaseMasterPlatypusCaller struct {
    49  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    50  }
    51  
    52  // BaseMasterPlatypusTransactor is an auto generated write-only Go binding around an Ethereum contract.
    53  type BaseMasterPlatypusTransactor struct {
    54  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    55  }
    56  
    57  // BaseMasterPlatypusFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
    58  type BaseMasterPlatypusFilterer struct {
    59  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    60  }
    61  
    62  // BaseMasterPlatypusSession is an auto generated Go binding around an Ethereum contract,
    63  // with pre-set call and transact options.
    64  type BaseMasterPlatypusSession struct {
    65  	Contract     *BaseMasterPlatypus // Generic contract binding to set the session for
    66  	CallOpts     bind.CallOpts       // Call options to use throughout this session
    67  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
    68  }
    69  
    70  // BaseMasterPlatypusCallerSession is an auto generated read-only Go binding around an Ethereum contract,
    71  // with pre-set call options.
    72  type BaseMasterPlatypusCallerSession struct {
    73  	Contract *BaseMasterPlatypusCaller // Generic contract caller binding to set the session for
    74  	CallOpts bind.CallOpts             // Call options to use throughout this session
    75  }
    76  
    77  // BaseMasterPlatypusTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
    78  // with pre-set transact options.
    79  type BaseMasterPlatypusTransactorSession struct {
    80  	Contract     *BaseMasterPlatypusTransactor // Generic contract transactor binding to set the session for
    81  	TransactOpts bind.TransactOpts             // Transaction auth options to use throughout this session
    82  }
    83  
    84  // BaseMasterPlatypusRaw is an auto generated low-level Go binding around an Ethereum contract.
    85  type BaseMasterPlatypusRaw struct {
    86  	Contract *BaseMasterPlatypus // Generic contract binding to access the raw methods on
    87  }
    88  
    89  // BaseMasterPlatypusCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
    90  type BaseMasterPlatypusCallerRaw struct {
    91  	Contract *BaseMasterPlatypusCaller // Generic read-only contract binding to access the raw methods on
    92  }
    93  
    94  // BaseMasterPlatypusTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
    95  type BaseMasterPlatypusTransactorRaw struct {
    96  	Contract *BaseMasterPlatypusTransactor // Generic write-only contract binding to access the raw methods on
    97  }
    98  
    99  // NewBaseMasterPlatypus creates a new instance of BaseMasterPlatypus, bound to a specific deployed contract.
   100  func NewBaseMasterPlatypus(address common.Address, backend bind.ContractBackend) (*BaseMasterPlatypus, error) {
   101  	contract, err := bindBaseMasterPlatypus(address, backend, backend, backend)
   102  	if err != nil {
   103  		return nil, err
   104  	}
   105  	return &BaseMasterPlatypus{BaseMasterPlatypusCaller: BaseMasterPlatypusCaller{contract: contract}, BaseMasterPlatypusTransactor: BaseMasterPlatypusTransactor{contract: contract}, BaseMasterPlatypusFilterer: BaseMasterPlatypusFilterer{contract: contract}}, nil
   106  }
   107  
   108  // NewBaseMasterPlatypusCaller creates a new read-only instance of BaseMasterPlatypus, bound to a specific deployed contract.
   109  func NewBaseMasterPlatypusCaller(address common.Address, caller bind.ContractCaller) (*BaseMasterPlatypusCaller, error) {
   110  	contract, err := bindBaseMasterPlatypus(address, caller, nil, nil)
   111  	if err != nil {
   112  		return nil, err
   113  	}
   114  	return &BaseMasterPlatypusCaller{contract: contract}, nil
   115  }
   116  
   117  // NewBaseMasterPlatypusTransactor creates a new write-only instance of BaseMasterPlatypus, bound to a specific deployed contract.
   118  func NewBaseMasterPlatypusTransactor(address common.Address, transactor bind.ContractTransactor) (*BaseMasterPlatypusTransactor, error) {
   119  	contract, err := bindBaseMasterPlatypus(address, nil, transactor, nil)
   120  	if err != nil {
   121  		return nil, err
   122  	}
   123  	return &BaseMasterPlatypusTransactor{contract: contract}, nil
   124  }
   125  
   126  // NewBaseMasterPlatypusFilterer creates a new log filterer instance of BaseMasterPlatypus, bound to a specific deployed contract.
   127  func NewBaseMasterPlatypusFilterer(address common.Address, filterer bind.ContractFilterer) (*BaseMasterPlatypusFilterer, error) {
   128  	contract, err := bindBaseMasterPlatypus(address, nil, nil, filterer)
   129  	if err != nil {
   130  		return nil, err
   131  	}
   132  	return &BaseMasterPlatypusFilterer{contract: contract}, nil
   133  }
   134  
   135  // bindBaseMasterPlatypus binds a generic wrapper to an already deployed contract.
   136  func bindBaseMasterPlatypus(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   137  	parsed, err := abi.JSON(strings.NewReader(BaseMasterPlatypusABI))
   138  	if err != nil {
   139  		return nil, err
   140  	}
   141  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   142  }
   143  
   144  // Call invokes the (constant) contract method with params as input values and
   145  // sets the output to result. The result type might be a single field for simple
   146  // returns, a slice of interfaces for anonymous returns and a struct for named
   147  // returns.
   148  func (_BaseMasterPlatypus *BaseMasterPlatypusRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   149  	return _BaseMasterPlatypus.Contract.BaseMasterPlatypusCaller.contract.Call(opts, result, method, params...)
   150  }
   151  
   152  // Transfer initiates a plain transaction to move funds to the contract, calling
   153  // its default method if one is available.
   154  func (_BaseMasterPlatypus *BaseMasterPlatypusRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   155  	return _BaseMasterPlatypus.Contract.BaseMasterPlatypusTransactor.contract.Transfer(opts)
   156  }
   157  
   158  // Transact invokes the (paid) contract method with params as input values.
   159  func (_BaseMasterPlatypus *BaseMasterPlatypusRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   160  	return _BaseMasterPlatypus.Contract.BaseMasterPlatypusTransactor.contract.Transact(opts, method, params...)
   161  }
   162  
   163  // Call invokes the (constant) contract method with params as input values and
   164  // sets the output to result. The result type might be a single field for simple
   165  // returns, a slice of interfaces for anonymous returns and a struct for named
   166  // returns.
   167  func (_BaseMasterPlatypus *BaseMasterPlatypusCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   168  	return _BaseMasterPlatypus.Contract.contract.Call(opts, result, method, params...)
   169  }
   170  
   171  // Transfer initiates a plain transaction to move funds to the contract, calling
   172  // its default method if one is available.
   173  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   174  	return _BaseMasterPlatypus.Contract.contract.Transfer(opts)
   175  }
   176  
   177  // Transact invokes the (paid) contract method with params as input values.
   178  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   179  	return _BaseMasterPlatypus.Contract.contract.Transact(opts, method, params...)
   180  }
   181  
   182  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   183  //
   184  // Solidity: function owner() view returns(address)
   185  func (_BaseMasterPlatypus *BaseMasterPlatypusCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
   186  	var out []interface{}
   187  	err := _BaseMasterPlatypus.contract.Call(opts, &out, "owner")
   188  
   189  	if err != nil {
   190  		return *new(common.Address), err
   191  	}
   192  
   193  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   194  
   195  	return out0, err
   196  
   197  }
   198  
   199  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   200  //
   201  // Solidity: function owner() view returns(address)
   202  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) Owner() (common.Address, error) {
   203  	return _BaseMasterPlatypus.Contract.Owner(&_BaseMasterPlatypus.CallOpts)
   204  }
   205  
   206  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   207  //
   208  // Solidity: function owner() view returns(address)
   209  func (_BaseMasterPlatypus *BaseMasterPlatypusCallerSession) Owner() (common.Address, error) {
   210  	return _BaseMasterPlatypus.Contract.Owner(&_BaseMasterPlatypus.CallOpts)
   211  }
   212  
   213  // OwnerCandidate is a free data retrieval call binding the contract method 0x5f504a82.
   214  //
   215  // Solidity: function ownerCandidate() view returns(address)
   216  func (_BaseMasterPlatypus *BaseMasterPlatypusCaller) OwnerCandidate(opts *bind.CallOpts) (common.Address, error) {
   217  	var out []interface{}
   218  	err := _BaseMasterPlatypus.contract.Call(opts, &out, "ownerCandidate")
   219  
   220  	if err != nil {
   221  		return *new(common.Address), err
   222  	}
   223  
   224  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   225  
   226  	return out0, err
   227  
   228  }
   229  
   230  // OwnerCandidate is a free data retrieval call binding the contract method 0x5f504a82.
   231  //
   232  // Solidity: function ownerCandidate() view returns(address)
   233  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) OwnerCandidate() (common.Address, error) {
   234  	return _BaseMasterPlatypus.Contract.OwnerCandidate(&_BaseMasterPlatypus.CallOpts)
   235  }
   236  
   237  // OwnerCandidate is a free data retrieval call binding the contract method 0x5f504a82.
   238  //
   239  // Solidity: function ownerCandidate() view returns(address)
   240  func (_BaseMasterPlatypus *BaseMasterPlatypusCallerSession) OwnerCandidate() (common.Address, error) {
   241  	return _BaseMasterPlatypus.Contract.OwnerCandidate(&_BaseMasterPlatypus.CallOpts)
   242  }
   243  
   244  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
   245  //
   246  // Solidity: function paused() view returns(bool)
   247  func (_BaseMasterPlatypus *BaseMasterPlatypusCaller) Paused(opts *bind.CallOpts) (bool, error) {
   248  	var out []interface{}
   249  	err := _BaseMasterPlatypus.contract.Call(opts, &out, "paused")
   250  
   251  	if err != nil {
   252  		return *new(bool), err
   253  	}
   254  
   255  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   256  
   257  	return out0, err
   258  
   259  }
   260  
   261  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
   262  //
   263  // Solidity: function paused() view returns(bool)
   264  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) Paused() (bool, error) {
   265  	return _BaseMasterPlatypus.Contract.Paused(&_BaseMasterPlatypus.CallOpts)
   266  }
   267  
   268  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
   269  //
   270  // Solidity: function paused() view returns(bool)
   271  func (_BaseMasterPlatypus *BaseMasterPlatypusCallerSession) Paused() (bool, error) {
   272  	return _BaseMasterPlatypus.Contract.Paused(&_BaseMasterPlatypus.CallOpts)
   273  }
   274  
   275  // PendingTokens is a free data retrieval call binding the contract method 0xffcd4263.
   276  //
   277  // Solidity: function pendingTokens(uint256 _pid, address _user) view returns(uint256 pendingPtp, address bonusTokenAddress, string bonusTokenSymbol, uint256 pendingBonusToken)
   278  func (_BaseMasterPlatypus *BaseMasterPlatypusCaller) PendingTokens(opts *bind.CallOpts, _pid *big.Int, _user common.Address) (struct {
   279  	PendingPtp        *big.Int
   280  	BonusTokenAddress common.Address
   281  	BonusTokenSymbol  string
   282  	PendingBonusToken *big.Int
   283  }, error) {
   284  	var out []interface{}
   285  	err := _BaseMasterPlatypus.contract.Call(opts, &out, "pendingTokens", _pid, _user)
   286  
   287  	outstruct := new(struct {
   288  		PendingPtp        *big.Int
   289  		BonusTokenAddress common.Address
   290  		BonusTokenSymbol  string
   291  		PendingBonusToken *big.Int
   292  	})
   293  	if err != nil {
   294  		return *outstruct, err
   295  	}
   296  
   297  	outstruct.PendingPtp = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   298  	outstruct.BonusTokenAddress = *abi.ConvertType(out[1], new(common.Address)).(*common.Address)
   299  	outstruct.BonusTokenSymbol = *abi.ConvertType(out[2], new(string)).(*string)
   300  	outstruct.PendingBonusToken = *abi.ConvertType(out[3], new(*big.Int)).(**big.Int)
   301  
   302  	return *outstruct, err
   303  
   304  }
   305  
   306  // PendingTokens is a free data retrieval call binding the contract method 0xffcd4263.
   307  //
   308  // Solidity: function pendingTokens(uint256 _pid, address _user) view returns(uint256 pendingPtp, address bonusTokenAddress, string bonusTokenSymbol, uint256 pendingBonusToken)
   309  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) PendingTokens(_pid *big.Int, _user common.Address) (struct {
   310  	PendingPtp        *big.Int
   311  	BonusTokenAddress common.Address
   312  	BonusTokenSymbol  string
   313  	PendingBonusToken *big.Int
   314  }, error) {
   315  	return _BaseMasterPlatypus.Contract.PendingTokens(&_BaseMasterPlatypus.CallOpts, _pid, _user)
   316  }
   317  
   318  // PendingTokens is a free data retrieval call binding the contract method 0xffcd4263.
   319  //
   320  // Solidity: function pendingTokens(uint256 _pid, address _user) view returns(uint256 pendingPtp, address bonusTokenAddress, string bonusTokenSymbol, uint256 pendingBonusToken)
   321  func (_BaseMasterPlatypus *BaseMasterPlatypusCallerSession) PendingTokens(_pid *big.Int, _user common.Address) (struct {
   322  	PendingPtp        *big.Int
   323  	BonusTokenAddress common.Address
   324  	BonusTokenSymbol  string
   325  	PendingBonusToken *big.Int
   326  }, error) {
   327  	return _BaseMasterPlatypus.Contract.PendingTokens(&_BaseMasterPlatypus.CallOpts, _pid, _user)
   328  }
   329  
   330  // PoolInfo is a free data retrieval call binding the contract method 0x1526fe27.
   331  //
   332  // Solidity: function poolInfo(uint256 ) view returns(address lpToken, uint256 baseAllocPoint, uint256 lastRewardTimestamp, uint256 accPtpPerShare, address rewarder)
   333  func (_BaseMasterPlatypus *BaseMasterPlatypusCaller) PoolInfo(opts *bind.CallOpts, arg0 *big.Int) (struct {
   334  	LpToken             common.Address
   335  	BaseAllocPoint      *big.Int
   336  	LastRewardTimestamp *big.Int
   337  	AccPtpPerShare      *big.Int
   338  	Rewarder            common.Address
   339  }, error) {
   340  	var out []interface{}
   341  	err := _BaseMasterPlatypus.contract.Call(opts, &out, "poolInfo", arg0)
   342  
   343  	outstruct := new(struct {
   344  		LpToken             common.Address
   345  		BaseAllocPoint      *big.Int
   346  		LastRewardTimestamp *big.Int
   347  		AccPtpPerShare      *big.Int
   348  		Rewarder            common.Address
   349  	})
   350  	if err != nil {
   351  		return *outstruct, err
   352  	}
   353  
   354  	outstruct.LpToken = *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   355  	outstruct.BaseAllocPoint = *abi.ConvertType(out[1], new(*big.Int)).(**big.Int)
   356  	outstruct.LastRewardTimestamp = *abi.ConvertType(out[2], new(*big.Int)).(**big.Int)
   357  	outstruct.AccPtpPerShare = *abi.ConvertType(out[3], new(*big.Int)).(**big.Int)
   358  	outstruct.Rewarder = *abi.ConvertType(out[4], new(common.Address)).(*common.Address)
   359  
   360  	return *outstruct, err
   361  
   362  }
   363  
   364  // PoolInfo is a free data retrieval call binding the contract method 0x1526fe27.
   365  //
   366  // Solidity: function poolInfo(uint256 ) view returns(address lpToken, uint256 baseAllocPoint, uint256 lastRewardTimestamp, uint256 accPtpPerShare, address rewarder)
   367  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) PoolInfo(arg0 *big.Int) (struct {
   368  	LpToken             common.Address
   369  	BaseAllocPoint      *big.Int
   370  	LastRewardTimestamp *big.Int
   371  	AccPtpPerShare      *big.Int
   372  	Rewarder            common.Address
   373  }, error) {
   374  	return _BaseMasterPlatypus.Contract.PoolInfo(&_BaseMasterPlatypus.CallOpts, arg0)
   375  }
   376  
   377  // PoolInfo is a free data retrieval call binding the contract method 0x1526fe27.
   378  //
   379  // Solidity: function poolInfo(uint256 ) view returns(address lpToken, uint256 baseAllocPoint, uint256 lastRewardTimestamp, uint256 accPtpPerShare, address rewarder)
   380  func (_BaseMasterPlatypus *BaseMasterPlatypusCallerSession) PoolInfo(arg0 *big.Int) (struct {
   381  	LpToken             common.Address
   382  	BaseAllocPoint      *big.Int
   383  	LastRewardTimestamp *big.Int
   384  	AccPtpPerShare      *big.Int
   385  	Rewarder            common.Address
   386  }, error) {
   387  	return _BaseMasterPlatypus.Contract.PoolInfo(&_BaseMasterPlatypus.CallOpts, arg0)
   388  }
   389  
   390  // PoolLength is a free data retrieval call binding the contract method 0x081e3eda.
   391  //
   392  // Solidity: function poolLength() view returns(uint256)
   393  func (_BaseMasterPlatypus *BaseMasterPlatypusCaller) PoolLength(opts *bind.CallOpts) (*big.Int, error) {
   394  	var out []interface{}
   395  	err := _BaseMasterPlatypus.contract.Call(opts, &out, "poolLength")
   396  
   397  	if err != nil {
   398  		return *new(*big.Int), err
   399  	}
   400  
   401  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   402  
   403  	return out0, err
   404  
   405  }
   406  
   407  // PoolLength is a free data retrieval call binding the contract method 0x081e3eda.
   408  //
   409  // Solidity: function poolLength() view returns(uint256)
   410  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) PoolLength() (*big.Int, error) {
   411  	return _BaseMasterPlatypus.Contract.PoolLength(&_BaseMasterPlatypus.CallOpts)
   412  }
   413  
   414  // PoolLength is a free data retrieval call binding the contract method 0x081e3eda.
   415  //
   416  // Solidity: function poolLength() view returns(uint256)
   417  func (_BaseMasterPlatypus *BaseMasterPlatypusCallerSession) PoolLength() (*big.Int, error) {
   418  	return _BaseMasterPlatypus.Contract.PoolLength(&_BaseMasterPlatypus.CallOpts)
   419  }
   420  
   421  // Ptp is a free data retrieval call binding the contract method 0x6af66772.
   422  //
   423  // Solidity: function ptp() view returns(address)
   424  func (_BaseMasterPlatypus *BaseMasterPlatypusCaller) Ptp(opts *bind.CallOpts) (common.Address, error) {
   425  	var out []interface{}
   426  	err := _BaseMasterPlatypus.contract.Call(opts, &out, "ptp")
   427  
   428  	if err != nil {
   429  		return *new(common.Address), err
   430  	}
   431  
   432  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   433  
   434  	return out0, err
   435  
   436  }
   437  
   438  // Ptp is a free data retrieval call binding the contract method 0x6af66772.
   439  //
   440  // Solidity: function ptp() view returns(address)
   441  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) Ptp() (common.Address, error) {
   442  	return _BaseMasterPlatypus.Contract.Ptp(&_BaseMasterPlatypus.CallOpts)
   443  }
   444  
   445  // Ptp is a free data retrieval call binding the contract method 0x6af66772.
   446  //
   447  // Solidity: function ptp() view returns(address)
   448  func (_BaseMasterPlatypus *BaseMasterPlatypusCallerSession) Ptp() (common.Address, error) {
   449  	return _BaseMasterPlatypus.Contract.Ptp(&_BaseMasterPlatypus.CallOpts)
   450  }
   451  
   452  // PtpPerSec is a free data retrieval call binding the contract method 0x9702d3e2.
   453  //
   454  // Solidity: function ptpPerSec() view returns(uint256)
   455  func (_BaseMasterPlatypus *BaseMasterPlatypusCaller) PtpPerSec(opts *bind.CallOpts) (*big.Int, error) {
   456  	var out []interface{}
   457  	err := _BaseMasterPlatypus.contract.Call(opts, &out, "ptpPerSec")
   458  
   459  	if err != nil {
   460  		return *new(*big.Int), err
   461  	}
   462  
   463  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   464  
   465  	return out0, err
   466  
   467  }
   468  
   469  // PtpPerSec is a free data retrieval call binding the contract method 0x9702d3e2.
   470  //
   471  // Solidity: function ptpPerSec() view returns(uint256)
   472  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) PtpPerSec() (*big.Int, error) {
   473  	return _BaseMasterPlatypus.Contract.PtpPerSec(&_BaseMasterPlatypus.CallOpts)
   474  }
   475  
   476  // PtpPerSec is a free data retrieval call binding the contract method 0x9702d3e2.
   477  //
   478  // Solidity: function ptpPerSec() view returns(uint256)
   479  func (_BaseMasterPlatypus *BaseMasterPlatypusCallerSession) PtpPerSec() (*big.Int, error) {
   480  	return _BaseMasterPlatypus.Contract.PtpPerSec(&_BaseMasterPlatypus.CallOpts)
   481  }
   482  
   483  // RewarderBonusTokenInfo is a free data retrieval call binding the contract method 0xbc70fdbc.
   484  //
   485  // Solidity: function rewarderBonusTokenInfo(uint256 _pid) view returns(address bonusTokenAddress, string bonusTokenSymbol)
   486  func (_BaseMasterPlatypus *BaseMasterPlatypusCaller) RewarderBonusTokenInfo(opts *bind.CallOpts, _pid *big.Int) (struct {
   487  	BonusTokenAddress common.Address
   488  	BonusTokenSymbol  string
   489  }, error) {
   490  	var out []interface{}
   491  	err := _BaseMasterPlatypus.contract.Call(opts, &out, "rewarderBonusTokenInfo", _pid)
   492  
   493  	outstruct := new(struct {
   494  		BonusTokenAddress common.Address
   495  		BonusTokenSymbol  string
   496  	})
   497  	if err != nil {
   498  		return *outstruct, err
   499  	}
   500  
   501  	outstruct.BonusTokenAddress = *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   502  	outstruct.BonusTokenSymbol = *abi.ConvertType(out[1], new(string)).(*string)
   503  
   504  	return *outstruct, err
   505  
   506  }
   507  
   508  // RewarderBonusTokenInfo is a free data retrieval call binding the contract method 0xbc70fdbc.
   509  //
   510  // Solidity: function rewarderBonusTokenInfo(uint256 _pid) view returns(address bonusTokenAddress, string bonusTokenSymbol)
   511  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) RewarderBonusTokenInfo(_pid *big.Int) (struct {
   512  	BonusTokenAddress common.Address
   513  	BonusTokenSymbol  string
   514  }, error) {
   515  	return _BaseMasterPlatypus.Contract.RewarderBonusTokenInfo(&_BaseMasterPlatypus.CallOpts, _pid)
   516  }
   517  
   518  // RewarderBonusTokenInfo is a free data retrieval call binding the contract method 0xbc70fdbc.
   519  //
   520  // Solidity: function rewarderBonusTokenInfo(uint256 _pid) view returns(address bonusTokenAddress, string bonusTokenSymbol)
   521  func (_BaseMasterPlatypus *BaseMasterPlatypusCallerSession) RewarderBonusTokenInfo(_pid *big.Int) (struct {
   522  	BonusTokenAddress common.Address
   523  	BonusTokenSymbol  string
   524  }, error) {
   525  	return _BaseMasterPlatypus.Contract.RewarderBonusTokenInfo(&_BaseMasterPlatypus.CallOpts, _pid)
   526  }
   527  
   528  // StartTimestamp is a free data retrieval call binding the contract method 0xe6fd48bc.
   529  //
   530  // Solidity: function startTimestamp() view returns(uint256)
   531  func (_BaseMasterPlatypus *BaseMasterPlatypusCaller) StartTimestamp(opts *bind.CallOpts) (*big.Int, error) {
   532  	var out []interface{}
   533  	err := _BaseMasterPlatypus.contract.Call(opts, &out, "startTimestamp")
   534  
   535  	if err != nil {
   536  		return *new(*big.Int), err
   537  	}
   538  
   539  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   540  
   541  	return out0, err
   542  
   543  }
   544  
   545  // StartTimestamp is a free data retrieval call binding the contract method 0xe6fd48bc.
   546  //
   547  // Solidity: function startTimestamp() view returns(uint256)
   548  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) StartTimestamp() (*big.Int, error) {
   549  	return _BaseMasterPlatypus.Contract.StartTimestamp(&_BaseMasterPlatypus.CallOpts)
   550  }
   551  
   552  // StartTimestamp is a free data retrieval call binding the contract method 0xe6fd48bc.
   553  //
   554  // Solidity: function startTimestamp() view returns(uint256)
   555  func (_BaseMasterPlatypus *BaseMasterPlatypusCallerSession) StartTimestamp() (*big.Int, error) {
   556  	return _BaseMasterPlatypus.Contract.StartTimestamp(&_BaseMasterPlatypus.CallOpts)
   557  }
   558  
   559  // TotalBaseAllocPoint is a free data retrieval call binding the contract method 0x33e045fc.
   560  //
   561  // Solidity: function totalBaseAllocPoint() view returns(uint256)
   562  func (_BaseMasterPlatypus *BaseMasterPlatypusCaller) TotalBaseAllocPoint(opts *bind.CallOpts) (*big.Int, error) {
   563  	var out []interface{}
   564  	err := _BaseMasterPlatypus.contract.Call(opts, &out, "totalBaseAllocPoint")
   565  
   566  	if err != nil {
   567  		return *new(*big.Int), err
   568  	}
   569  
   570  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   571  
   572  	return out0, err
   573  
   574  }
   575  
   576  // TotalBaseAllocPoint is a free data retrieval call binding the contract method 0x33e045fc.
   577  //
   578  // Solidity: function totalBaseAllocPoint() view returns(uint256)
   579  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) TotalBaseAllocPoint() (*big.Int, error) {
   580  	return _BaseMasterPlatypus.Contract.TotalBaseAllocPoint(&_BaseMasterPlatypus.CallOpts)
   581  }
   582  
   583  // TotalBaseAllocPoint is a free data retrieval call binding the contract method 0x33e045fc.
   584  //
   585  // Solidity: function totalBaseAllocPoint() view returns(uint256)
   586  func (_BaseMasterPlatypus *BaseMasterPlatypusCallerSession) TotalBaseAllocPoint() (*big.Int, error) {
   587  	return _BaseMasterPlatypus.Contract.TotalBaseAllocPoint(&_BaseMasterPlatypus.CallOpts)
   588  }
   589  
   590  // UserInfo is a free data retrieval call binding the contract method 0x93f1a40b.
   591  //
   592  // Solidity: function userInfo(uint256 , address ) view returns(uint256 amount, uint256 rewardDebt)
   593  func (_BaseMasterPlatypus *BaseMasterPlatypusCaller) UserInfo(opts *bind.CallOpts, arg0 *big.Int, arg1 common.Address) (struct {
   594  	Amount     *big.Int
   595  	RewardDebt *big.Int
   596  }, error) {
   597  	var out []interface{}
   598  	err := _BaseMasterPlatypus.contract.Call(opts, &out, "userInfo", arg0, arg1)
   599  
   600  	outstruct := new(struct {
   601  		Amount     *big.Int
   602  		RewardDebt *big.Int
   603  	})
   604  	if err != nil {
   605  		return *outstruct, err
   606  	}
   607  
   608  	outstruct.Amount = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   609  	outstruct.RewardDebt = *abi.ConvertType(out[1], new(*big.Int)).(**big.Int)
   610  
   611  	return *outstruct, err
   612  
   613  }
   614  
   615  // UserInfo is a free data retrieval call binding the contract method 0x93f1a40b.
   616  //
   617  // Solidity: function userInfo(uint256 , address ) view returns(uint256 amount, uint256 rewardDebt)
   618  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) UserInfo(arg0 *big.Int, arg1 common.Address) (struct {
   619  	Amount     *big.Int
   620  	RewardDebt *big.Int
   621  }, error) {
   622  	return _BaseMasterPlatypus.Contract.UserInfo(&_BaseMasterPlatypus.CallOpts, arg0, arg1)
   623  }
   624  
   625  // UserInfo is a free data retrieval call binding the contract method 0x93f1a40b.
   626  //
   627  // Solidity: function userInfo(uint256 , address ) view returns(uint256 amount, uint256 rewardDebt)
   628  func (_BaseMasterPlatypus *BaseMasterPlatypusCallerSession) UserInfo(arg0 *big.Int, arg1 common.Address) (struct {
   629  	Amount     *big.Int
   630  	RewardDebt *big.Int
   631  }, error) {
   632  	return _BaseMasterPlatypus.Contract.UserInfo(&_BaseMasterPlatypus.CallOpts, arg0, arg1)
   633  }
   634  
   635  // AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097.
   636  //
   637  // Solidity: function acceptOwnership() returns()
   638  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
   639  	return _BaseMasterPlatypus.contract.Transact(opts, "acceptOwnership")
   640  }
   641  
   642  // AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097.
   643  //
   644  // Solidity: function acceptOwnership() returns()
   645  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) AcceptOwnership() (*types.Transaction, error) {
   646  	return _BaseMasterPlatypus.Contract.AcceptOwnership(&_BaseMasterPlatypus.TransactOpts)
   647  }
   648  
   649  // AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097.
   650  //
   651  // Solidity: function acceptOwnership() returns()
   652  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactorSession) AcceptOwnership() (*types.Transaction, error) {
   653  	return _BaseMasterPlatypus.Contract.AcceptOwnership(&_BaseMasterPlatypus.TransactOpts)
   654  }
   655  
   656  // Add is a paid mutator transaction binding the contract method 0xab7de098.
   657  //
   658  // Solidity: function add(uint256 _baseAllocPoint, address _lpToken, address _rewarder) returns()
   659  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactor) Add(opts *bind.TransactOpts, _baseAllocPoint *big.Int, _lpToken common.Address, _rewarder common.Address) (*types.Transaction, error) {
   660  	return _BaseMasterPlatypus.contract.Transact(opts, "add", _baseAllocPoint, _lpToken, _rewarder)
   661  }
   662  
   663  // Add is a paid mutator transaction binding the contract method 0xab7de098.
   664  //
   665  // Solidity: function add(uint256 _baseAllocPoint, address _lpToken, address _rewarder) returns()
   666  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) Add(_baseAllocPoint *big.Int, _lpToken common.Address, _rewarder common.Address) (*types.Transaction, error) {
   667  	return _BaseMasterPlatypus.Contract.Add(&_BaseMasterPlatypus.TransactOpts, _baseAllocPoint, _lpToken, _rewarder)
   668  }
   669  
   670  // Add is a paid mutator transaction binding the contract method 0xab7de098.
   671  //
   672  // Solidity: function add(uint256 _baseAllocPoint, address _lpToken, address _rewarder) returns()
   673  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactorSession) Add(_baseAllocPoint *big.Int, _lpToken common.Address, _rewarder common.Address) (*types.Transaction, error) {
   674  	return _BaseMasterPlatypus.Contract.Add(&_BaseMasterPlatypus.TransactOpts, _baseAllocPoint, _lpToken, _rewarder)
   675  }
   676  
   677  // Deposit is a paid mutator transaction binding the contract method 0xe2bbb158.
   678  //
   679  // Solidity: function deposit(uint256 _pid, uint256 _amount) returns(uint256, uint256)
   680  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactor) Deposit(opts *bind.TransactOpts, _pid *big.Int, _amount *big.Int) (*types.Transaction, error) {
   681  	return _BaseMasterPlatypus.contract.Transact(opts, "deposit", _pid, _amount)
   682  }
   683  
   684  // Deposit is a paid mutator transaction binding the contract method 0xe2bbb158.
   685  //
   686  // Solidity: function deposit(uint256 _pid, uint256 _amount) returns(uint256, uint256)
   687  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) Deposit(_pid *big.Int, _amount *big.Int) (*types.Transaction, error) {
   688  	return _BaseMasterPlatypus.Contract.Deposit(&_BaseMasterPlatypus.TransactOpts, _pid, _amount)
   689  }
   690  
   691  // Deposit is a paid mutator transaction binding the contract method 0xe2bbb158.
   692  //
   693  // Solidity: function deposit(uint256 _pid, uint256 _amount) returns(uint256, uint256)
   694  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactorSession) Deposit(_pid *big.Int, _amount *big.Int) (*types.Transaction, error) {
   695  	return _BaseMasterPlatypus.Contract.Deposit(&_BaseMasterPlatypus.TransactOpts, _pid, _amount)
   696  }
   697  
   698  // DepositFor is a paid mutator transaction binding the contract method 0x90210d7e.
   699  //
   700  // Solidity: function depositFor(uint256 _pid, uint256 _amount, address _user) returns()
   701  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactor) DepositFor(opts *bind.TransactOpts, _pid *big.Int, _amount *big.Int, _user common.Address) (*types.Transaction, error) {
   702  	return _BaseMasterPlatypus.contract.Transact(opts, "depositFor", _pid, _amount, _user)
   703  }
   704  
   705  // DepositFor is a paid mutator transaction binding the contract method 0x90210d7e.
   706  //
   707  // Solidity: function depositFor(uint256 _pid, uint256 _amount, address _user) returns()
   708  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) DepositFor(_pid *big.Int, _amount *big.Int, _user common.Address) (*types.Transaction, error) {
   709  	return _BaseMasterPlatypus.Contract.DepositFor(&_BaseMasterPlatypus.TransactOpts, _pid, _amount, _user)
   710  }
   711  
   712  // DepositFor is a paid mutator transaction binding the contract method 0x90210d7e.
   713  //
   714  // Solidity: function depositFor(uint256 _pid, uint256 _amount, address _user) returns()
   715  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactorSession) DepositFor(_pid *big.Int, _amount *big.Int, _user common.Address) (*types.Transaction, error) {
   716  	return _BaseMasterPlatypus.Contract.DepositFor(&_BaseMasterPlatypus.TransactOpts, _pid, _amount, _user)
   717  }
   718  
   719  // EmergencyPtpWithdraw is a paid mutator transaction binding the contract method 0x7dd38dcc.
   720  //
   721  // Solidity: function emergencyPtpWithdraw() returns()
   722  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactor) EmergencyPtpWithdraw(opts *bind.TransactOpts) (*types.Transaction, error) {
   723  	return _BaseMasterPlatypus.contract.Transact(opts, "emergencyPtpWithdraw")
   724  }
   725  
   726  // EmergencyPtpWithdraw is a paid mutator transaction binding the contract method 0x7dd38dcc.
   727  //
   728  // Solidity: function emergencyPtpWithdraw() returns()
   729  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) EmergencyPtpWithdraw() (*types.Transaction, error) {
   730  	return _BaseMasterPlatypus.Contract.EmergencyPtpWithdraw(&_BaseMasterPlatypus.TransactOpts)
   731  }
   732  
   733  // EmergencyPtpWithdraw is a paid mutator transaction binding the contract method 0x7dd38dcc.
   734  //
   735  // Solidity: function emergencyPtpWithdraw() returns()
   736  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactorSession) EmergencyPtpWithdraw() (*types.Transaction, error) {
   737  	return _BaseMasterPlatypus.Contract.EmergencyPtpWithdraw(&_BaseMasterPlatypus.TransactOpts)
   738  }
   739  
   740  // EmergencyWithdraw is a paid mutator transaction binding the contract method 0x5312ea8e.
   741  //
   742  // Solidity: function emergencyWithdraw(uint256 _pid) returns()
   743  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactor) EmergencyWithdraw(opts *bind.TransactOpts, _pid *big.Int) (*types.Transaction, error) {
   744  	return _BaseMasterPlatypus.contract.Transact(opts, "emergencyWithdraw", _pid)
   745  }
   746  
   747  // EmergencyWithdraw is a paid mutator transaction binding the contract method 0x5312ea8e.
   748  //
   749  // Solidity: function emergencyWithdraw(uint256 _pid) returns()
   750  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) EmergencyWithdraw(_pid *big.Int) (*types.Transaction, error) {
   751  	return _BaseMasterPlatypus.Contract.EmergencyWithdraw(&_BaseMasterPlatypus.TransactOpts, _pid)
   752  }
   753  
   754  // EmergencyWithdraw is a paid mutator transaction binding the contract method 0x5312ea8e.
   755  //
   756  // Solidity: function emergencyWithdraw(uint256 _pid) returns()
   757  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactorSession) EmergencyWithdraw(_pid *big.Int) (*types.Transaction, error) {
   758  	return _BaseMasterPlatypus.Contract.EmergencyWithdraw(&_BaseMasterPlatypus.TransactOpts, _pid)
   759  }
   760  
   761  // Initialize is a paid mutator transaction binding the contract method 0x7a1ac61e.
   762  //
   763  // Solidity: function initialize(address _ptp, uint256 _ptpPerSec, uint256 _startTimestamp) returns()
   764  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactor) Initialize(opts *bind.TransactOpts, _ptp common.Address, _ptpPerSec *big.Int, _startTimestamp *big.Int) (*types.Transaction, error) {
   765  	return _BaseMasterPlatypus.contract.Transact(opts, "initialize", _ptp, _ptpPerSec, _startTimestamp)
   766  }
   767  
   768  // Initialize is a paid mutator transaction binding the contract method 0x7a1ac61e.
   769  //
   770  // Solidity: function initialize(address _ptp, uint256 _ptpPerSec, uint256 _startTimestamp) returns()
   771  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) Initialize(_ptp common.Address, _ptpPerSec *big.Int, _startTimestamp *big.Int) (*types.Transaction, error) {
   772  	return _BaseMasterPlatypus.Contract.Initialize(&_BaseMasterPlatypus.TransactOpts, _ptp, _ptpPerSec, _startTimestamp)
   773  }
   774  
   775  // Initialize is a paid mutator transaction binding the contract method 0x7a1ac61e.
   776  //
   777  // Solidity: function initialize(address _ptp, uint256 _ptpPerSec, uint256 _startTimestamp) returns()
   778  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactorSession) Initialize(_ptp common.Address, _ptpPerSec *big.Int, _startTimestamp *big.Int) (*types.Transaction, error) {
   779  	return _BaseMasterPlatypus.Contract.Initialize(&_BaseMasterPlatypus.TransactOpts, _ptp, _ptpPerSec, _startTimestamp)
   780  }
   781  
   782  // MassUpdatePools is a paid mutator transaction binding the contract method 0x630b5ba1.
   783  //
   784  // Solidity: function massUpdatePools() returns()
   785  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactor) MassUpdatePools(opts *bind.TransactOpts) (*types.Transaction, error) {
   786  	return _BaseMasterPlatypus.contract.Transact(opts, "massUpdatePools")
   787  }
   788  
   789  // MassUpdatePools is a paid mutator transaction binding the contract method 0x630b5ba1.
   790  //
   791  // Solidity: function massUpdatePools() returns()
   792  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) MassUpdatePools() (*types.Transaction, error) {
   793  	return _BaseMasterPlatypus.Contract.MassUpdatePools(&_BaseMasterPlatypus.TransactOpts)
   794  }
   795  
   796  // MassUpdatePools is a paid mutator transaction binding the contract method 0x630b5ba1.
   797  //
   798  // Solidity: function massUpdatePools() returns()
   799  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactorSession) MassUpdatePools() (*types.Transaction, error) {
   800  	return _BaseMasterPlatypus.Contract.MassUpdatePools(&_BaseMasterPlatypus.TransactOpts)
   801  }
   802  
   803  // Migrate is a paid mutator transaction binding the contract method 0xd93bf4fe.
   804  //
   805  // Solidity: function migrate(uint256[] _pids) returns()
   806  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactor) Migrate(opts *bind.TransactOpts, _pids []*big.Int) (*types.Transaction, error) {
   807  	return _BaseMasterPlatypus.contract.Transact(opts, "migrate", _pids)
   808  }
   809  
   810  // Migrate is a paid mutator transaction binding the contract method 0xd93bf4fe.
   811  //
   812  // Solidity: function migrate(uint256[] _pids) returns()
   813  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) Migrate(_pids []*big.Int) (*types.Transaction, error) {
   814  	return _BaseMasterPlatypus.Contract.Migrate(&_BaseMasterPlatypus.TransactOpts, _pids)
   815  }
   816  
   817  // Migrate is a paid mutator transaction binding the contract method 0xd93bf4fe.
   818  //
   819  // Solidity: function migrate(uint256[] _pids) returns()
   820  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactorSession) Migrate(_pids []*big.Int) (*types.Transaction, error) {
   821  	return _BaseMasterPlatypus.Contract.Migrate(&_BaseMasterPlatypus.TransactOpts, _pids)
   822  }
   823  
   824  // MultiClaim is a paid mutator transaction binding the contract method 0x4ed73d28.
   825  //
   826  // Solidity: function multiClaim(uint256[] _pids) returns(uint256, uint256[], uint256[])
   827  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactor) MultiClaim(opts *bind.TransactOpts, _pids []*big.Int) (*types.Transaction, error) {
   828  	return _BaseMasterPlatypus.contract.Transact(opts, "multiClaim", _pids)
   829  }
   830  
   831  // MultiClaim is a paid mutator transaction binding the contract method 0x4ed73d28.
   832  //
   833  // Solidity: function multiClaim(uint256[] _pids) returns(uint256, uint256[], uint256[])
   834  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) MultiClaim(_pids []*big.Int) (*types.Transaction, error) {
   835  	return _BaseMasterPlatypus.Contract.MultiClaim(&_BaseMasterPlatypus.TransactOpts, _pids)
   836  }
   837  
   838  // MultiClaim is a paid mutator transaction binding the contract method 0x4ed73d28.
   839  //
   840  // Solidity: function multiClaim(uint256[] _pids) returns(uint256, uint256[], uint256[])
   841  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactorSession) MultiClaim(_pids []*big.Int) (*types.Transaction, error) {
   842  	return _BaseMasterPlatypus.Contract.MultiClaim(&_BaseMasterPlatypus.TransactOpts, _pids)
   843  }
   844  
   845  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
   846  //
   847  // Solidity: function pause() returns()
   848  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) {
   849  	return _BaseMasterPlatypus.contract.Transact(opts, "pause")
   850  }
   851  
   852  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
   853  //
   854  // Solidity: function pause() returns()
   855  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) Pause() (*types.Transaction, error) {
   856  	return _BaseMasterPlatypus.Contract.Pause(&_BaseMasterPlatypus.TransactOpts)
   857  }
   858  
   859  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
   860  //
   861  // Solidity: function pause() returns()
   862  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactorSession) Pause() (*types.Transaction, error) {
   863  	return _BaseMasterPlatypus.Contract.Pause(&_BaseMasterPlatypus.TransactOpts)
   864  }
   865  
   866  // ProposeOwner is a paid mutator transaction binding the contract method 0xb5ed298a.
   867  //
   868  // Solidity: function proposeOwner(address newOwner) returns()
   869  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactor) ProposeOwner(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
   870  	return _BaseMasterPlatypus.contract.Transact(opts, "proposeOwner", newOwner)
   871  }
   872  
   873  // ProposeOwner is a paid mutator transaction binding the contract method 0xb5ed298a.
   874  //
   875  // Solidity: function proposeOwner(address newOwner) returns()
   876  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) ProposeOwner(newOwner common.Address) (*types.Transaction, error) {
   877  	return _BaseMasterPlatypus.Contract.ProposeOwner(&_BaseMasterPlatypus.TransactOpts, newOwner)
   878  }
   879  
   880  // ProposeOwner is a paid mutator transaction binding the contract method 0xb5ed298a.
   881  //
   882  // Solidity: function proposeOwner(address newOwner) returns()
   883  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactorSession) ProposeOwner(newOwner common.Address) (*types.Transaction, error) {
   884  	return _BaseMasterPlatypus.Contract.ProposeOwner(&_BaseMasterPlatypus.TransactOpts, newOwner)
   885  }
   886  
   887  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
   888  //
   889  // Solidity: function renounceOwnership() returns()
   890  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
   891  	return _BaseMasterPlatypus.contract.Transact(opts, "renounceOwnership")
   892  }
   893  
   894  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
   895  //
   896  // Solidity: function renounceOwnership() returns()
   897  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) RenounceOwnership() (*types.Transaction, error) {
   898  	return _BaseMasterPlatypus.Contract.RenounceOwnership(&_BaseMasterPlatypus.TransactOpts)
   899  }
   900  
   901  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
   902  //
   903  // Solidity: function renounceOwnership() returns()
   904  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactorSession) RenounceOwnership() (*types.Transaction, error) {
   905  	return _BaseMasterPlatypus.Contract.RenounceOwnership(&_BaseMasterPlatypus.TransactOpts)
   906  }
   907  
   908  // Set is a paid mutator transaction binding the contract method 0x88bba42f.
   909  //
   910  // Solidity: function set(uint256 _pid, uint256 _baseAllocPoint, address _rewarder, bool overwrite) returns()
   911  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactor) Set(opts *bind.TransactOpts, _pid *big.Int, _baseAllocPoint *big.Int, _rewarder common.Address, overwrite bool) (*types.Transaction, error) {
   912  	return _BaseMasterPlatypus.contract.Transact(opts, "set", _pid, _baseAllocPoint, _rewarder, overwrite)
   913  }
   914  
   915  // Set is a paid mutator transaction binding the contract method 0x88bba42f.
   916  //
   917  // Solidity: function set(uint256 _pid, uint256 _baseAllocPoint, address _rewarder, bool overwrite) returns()
   918  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) Set(_pid *big.Int, _baseAllocPoint *big.Int, _rewarder common.Address, overwrite bool) (*types.Transaction, error) {
   919  	return _BaseMasterPlatypus.Contract.Set(&_BaseMasterPlatypus.TransactOpts, _pid, _baseAllocPoint, _rewarder, overwrite)
   920  }
   921  
   922  // Set is a paid mutator transaction binding the contract method 0x88bba42f.
   923  //
   924  // Solidity: function set(uint256 _pid, uint256 _baseAllocPoint, address _rewarder, bool overwrite) returns()
   925  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactorSession) Set(_pid *big.Int, _baseAllocPoint *big.Int, _rewarder common.Address, overwrite bool) (*types.Transaction, error) {
   926  	return _BaseMasterPlatypus.Contract.Set(&_BaseMasterPlatypus.TransactOpts, _pid, _baseAllocPoint, _rewarder, overwrite)
   927  }
   928  
   929  // SetNewMasterPlatypus is a paid mutator transaction binding the contract method 0x7b261591.
   930  //
   931  // Solidity: function setNewMasterPlatypus(address _newMasterPlatypus) returns()
   932  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactor) SetNewMasterPlatypus(opts *bind.TransactOpts, _newMasterPlatypus common.Address) (*types.Transaction, error) {
   933  	return _BaseMasterPlatypus.contract.Transact(opts, "setNewMasterPlatypus", _newMasterPlatypus)
   934  }
   935  
   936  // SetNewMasterPlatypus is a paid mutator transaction binding the contract method 0x7b261591.
   937  //
   938  // Solidity: function setNewMasterPlatypus(address _newMasterPlatypus) returns()
   939  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) SetNewMasterPlatypus(_newMasterPlatypus common.Address) (*types.Transaction, error) {
   940  	return _BaseMasterPlatypus.Contract.SetNewMasterPlatypus(&_BaseMasterPlatypus.TransactOpts, _newMasterPlatypus)
   941  }
   942  
   943  // SetNewMasterPlatypus is a paid mutator transaction binding the contract method 0x7b261591.
   944  //
   945  // Solidity: function setNewMasterPlatypus(address _newMasterPlatypus) returns()
   946  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactorSession) SetNewMasterPlatypus(_newMasterPlatypus common.Address) (*types.Transaction, error) {
   947  	return _BaseMasterPlatypus.Contract.SetNewMasterPlatypus(&_BaseMasterPlatypus.TransactOpts, _newMasterPlatypus)
   948  }
   949  
   950  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
   951  //
   952  // Solidity: function unpause() returns()
   953  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) {
   954  	return _BaseMasterPlatypus.contract.Transact(opts, "unpause")
   955  }
   956  
   957  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
   958  //
   959  // Solidity: function unpause() returns()
   960  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) Unpause() (*types.Transaction, error) {
   961  	return _BaseMasterPlatypus.Contract.Unpause(&_BaseMasterPlatypus.TransactOpts)
   962  }
   963  
   964  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
   965  //
   966  // Solidity: function unpause() returns()
   967  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactorSession) Unpause() (*types.Transaction, error) {
   968  	return _BaseMasterPlatypus.Contract.Unpause(&_BaseMasterPlatypus.TransactOpts)
   969  }
   970  
   971  // UpdateEmissionRate is a paid mutator transaction binding the contract method 0x0ba84cd2.
   972  //
   973  // Solidity: function updateEmissionRate(uint256 _ptpPerSec) returns()
   974  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactor) UpdateEmissionRate(opts *bind.TransactOpts, _ptpPerSec *big.Int) (*types.Transaction, error) {
   975  	return _BaseMasterPlatypus.contract.Transact(opts, "updateEmissionRate", _ptpPerSec)
   976  }
   977  
   978  // UpdateEmissionRate is a paid mutator transaction binding the contract method 0x0ba84cd2.
   979  //
   980  // Solidity: function updateEmissionRate(uint256 _ptpPerSec) returns()
   981  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) UpdateEmissionRate(_ptpPerSec *big.Int) (*types.Transaction, error) {
   982  	return _BaseMasterPlatypus.Contract.UpdateEmissionRate(&_BaseMasterPlatypus.TransactOpts, _ptpPerSec)
   983  }
   984  
   985  // UpdateEmissionRate is a paid mutator transaction binding the contract method 0x0ba84cd2.
   986  //
   987  // Solidity: function updateEmissionRate(uint256 _ptpPerSec) returns()
   988  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactorSession) UpdateEmissionRate(_ptpPerSec *big.Int) (*types.Transaction, error) {
   989  	return _BaseMasterPlatypus.Contract.UpdateEmissionRate(&_BaseMasterPlatypus.TransactOpts, _ptpPerSec)
   990  }
   991  
   992  // UpdatePool is a paid mutator transaction binding the contract method 0x51eb05a6.
   993  //
   994  // Solidity: function updatePool(uint256 _pid) returns()
   995  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactor) UpdatePool(opts *bind.TransactOpts, _pid *big.Int) (*types.Transaction, error) {
   996  	return _BaseMasterPlatypus.contract.Transact(opts, "updatePool", _pid)
   997  }
   998  
   999  // UpdatePool is a paid mutator transaction binding the contract method 0x51eb05a6.
  1000  //
  1001  // Solidity: function updatePool(uint256 _pid) returns()
  1002  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) UpdatePool(_pid *big.Int) (*types.Transaction, error) {
  1003  	return _BaseMasterPlatypus.Contract.UpdatePool(&_BaseMasterPlatypus.TransactOpts, _pid)
  1004  }
  1005  
  1006  // UpdatePool is a paid mutator transaction binding the contract method 0x51eb05a6.
  1007  //
  1008  // Solidity: function updatePool(uint256 _pid) returns()
  1009  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactorSession) UpdatePool(_pid *big.Int) (*types.Transaction, error) {
  1010  	return _BaseMasterPlatypus.Contract.UpdatePool(&_BaseMasterPlatypus.TransactOpts, _pid)
  1011  }
  1012  
  1013  // Withdraw is a paid mutator transaction binding the contract method 0x441a3e70.
  1014  //
  1015  // Solidity: function withdraw(uint256 _pid, uint256 _amount) returns(uint256, uint256)
  1016  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactor) Withdraw(opts *bind.TransactOpts, _pid *big.Int, _amount *big.Int) (*types.Transaction, error) {
  1017  	return _BaseMasterPlatypus.contract.Transact(opts, "withdraw", _pid, _amount)
  1018  }
  1019  
  1020  // Withdraw is a paid mutator transaction binding the contract method 0x441a3e70.
  1021  //
  1022  // Solidity: function withdraw(uint256 _pid, uint256 _amount) returns(uint256, uint256)
  1023  func (_BaseMasterPlatypus *BaseMasterPlatypusSession) Withdraw(_pid *big.Int, _amount *big.Int) (*types.Transaction, error) {
  1024  	return _BaseMasterPlatypus.Contract.Withdraw(&_BaseMasterPlatypus.TransactOpts, _pid, _amount)
  1025  }
  1026  
  1027  // Withdraw is a paid mutator transaction binding the contract method 0x441a3e70.
  1028  //
  1029  // Solidity: function withdraw(uint256 _pid, uint256 _amount) returns(uint256, uint256)
  1030  func (_BaseMasterPlatypus *BaseMasterPlatypusTransactorSession) Withdraw(_pid *big.Int, _amount *big.Int) (*types.Transaction, error) {
  1031  	return _BaseMasterPlatypus.Contract.Withdraw(&_BaseMasterPlatypus.TransactOpts, _pid, _amount)
  1032  }
  1033  
  1034  // BaseMasterPlatypusAddIterator is returned from FilterAdd and is used to iterate over the raw logs and unpacked data for Add events raised by the BaseMasterPlatypus contract.
  1035  type BaseMasterPlatypusAddIterator struct {
  1036  	Event *BaseMasterPlatypusAdd // Event containing the contract specifics and raw log
  1037  
  1038  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1039  	event    string              // Event name to use for unpacking event data
  1040  
  1041  	logs chan types.Log        // Log channel receiving the found contract events
  1042  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1043  	done bool                  // Whether the subscription completed delivering logs
  1044  	fail error                 // Occurred error to stop iteration
  1045  }
  1046  
  1047  // Next advances the iterator to the subsequent event, returning whether there
  1048  // are any more events found. In case of a retrieval or parsing error, false is
  1049  // returned and Error() can be queried for the exact failure.
  1050  func (it *BaseMasterPlatypusAddIterator) Next() bool {
  1051  	// If the iterator failed, stop iterating
  1052  	if it.fail != nil {
  1053  		return false
  1054  	}
  1055  	// If the iterator completed, deliver directly whatever's available
  1056  	if it.done {
  1057  		select {
  1058  		case log := <-it.logs:
  1059  			it.Event = new(BaseMasterPlatypusAdd)
  1060  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1061  				it.fail = err
  1062  				return false
  1063  			}
  1064  			it.Event.Raw = log
  1065  			return true
  1066  
  1067  		default:
  1068  			return false
  1069  		}
  1070  	}
  1071  	// Iterator still in progress, wait for either a data or an error event
  1072  	select {
  1073  	case log := <-it.logs:
  1074  		it.Event = new(BaseMasterPlatypusAdd)
  1075  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1076  			it.fail = err
  1077  			return false
  1078  		}
  1079  		it.Event.Raw = log
  1080  		return true
  1081  
  1082  	case err := <-it.sub.Err():
  1083  		it.done = true
  1084  		it.fail = err
  1085  		return it.Next()
  1086  	}
  1087  }
  1088  
  1089  // Error returns any retrieval or parsing error occurred during filtering.
  1090  func (it *BaseMasterPlatypusAddIterator) Error() error {
  1091  	return it.fail
  1092  }
  1093  
  1094  // Close terminates the iteration process, releasing any pending underlying
  1095  // resources.
  1096  func (it *BaseMasterPlatypusAddIterator) Close() error {
  1097  	it.sub.Unsubscribe()
  1098  	return nil
  1099  }
  1100  
  1101  // BaseMasterPlatypusAdd represents a Add event raised by the BaseMasterPlatypus contract.
  1102  type BaseMasterPlatypusAdd struct {
  1103  	Pid        *big.Int
  1104  	AllocPoint *big.Int
  1105  	LpToken    common.Address
  1106  	Rewarder   common.Address
  1107  	Raw        types.Log // Blockchain specific contextual infos
  1108  }
  1109  
  1110  // FilterAdd is a free log retrieval operation binding the contract event 0x4b16bd2431ad24dc020ab0e1de7fcb6563dead6a24fb10089d6c23e97a70381f.
  1111  //
  1112  // Solidity: event Add(uint256 indexed pid, uint256 allocPoint, address indexed lpToken, address indexed rewarder)
  1113  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) FilterAdd(opts *bind.FilterOpts, pid []*big.Int, lpToken []common.Address, rewarder []common.Address) (*BaseMasterPlatypusAddIterator, error) {
  1114  
  1115  	var pidRule []interface{}
  1116  	for _, pidItem := range pid {
  1117  		pidRule = append(pidRule, pidItem)
  1118  	}
  1119  
  1120  	var lpTokenRule []interface{}
  1121  	for _, lpTokenItem := range lpToken {
  1122  		lpTokenRule = append(lpTokenRule, lpTokenItem)
  1123  	}
  1124  	var rewarderRule []interface{}
  1125  	for _, rewarderItem := range rewarder {
  1126  		rewarderRule = append(rewarderRule, rewarderItem)
  1127  	}
  1128  
  1129  	logs, sub, err := _BaseMasterPlatypus.contract.FilterLogs(opts, "Add", pidRule, lpTokenRule, rewarderRule)
  1130  	if err != nil {
  1131  		return nil, err
  1132  	}
  1133  	return &BaseMasterPlatypusAddIterator{contract: _BaseMasterPlatypus.contract, event: "Add", logs: logs, sub: sub}, nil
  1134  }
  1135  
  1136  // WatchAdd is a free log subscription operation binding the contract event 0x4b16bd2431ad24dc020ab0e1de7fcb6563dead6a24fb10089d6c23e97a70381f.
  1137  //
  1138  // Solidity: event Add(uint256 indexed pid, uint256 allocPoint, address indexed lpToken, address indexed rewarder)
  1139  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) WatchAdd(opts *bind.WatchOpts, sink chan<- *BaseMasterPlatypusAdd, pid []*big.Int, lpToken []common.Address, rewarder []common.Address) (event.Subscription, error) {
  1140  
  1141  	var pidRule []interface{}
  1142  	for _, pidItem := range pid {
  1143  		pidRule = append(pidRule, pidItem)
  1144  	}
  1145  
  1146  	var lpTokenRule []interface{}
  1147  	for _, lpTokenItem := range lpToken {
  1148  		lpTokenRule = append(lpTokenRule, lpTokenItem)
  1149  	}
  1150  	var rewarderRule []interface{}
  1151  	for _, rewarderItem := range rewarder {
  1152  		rewarderRule = append(rewarderRule, rewarderItem)
  1153  	}
  1154  
  1155  	logs, sub, err := _BaseMasterPlatypus.contract.WatchLogs(opts, "Add", pidRule, lpTokenRule, rewarderRule)
  1156  	if err != nil {
  1157  		return nil, err
  1158  	}
  1159  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1160  		defer sub.Unsubscribe()
  1161  		for {
  1162  			select {
  1163  			case log := <-logs:
  1164  				// New log arrived, parse the event and forward to the user
  1165  				event := new(BaseMasterPlatypusAdd)
  1166  				if err := _BaseMasterPlatypus.contract.UnpackLog(event, "Add", log); err != nil {
  1167  					return err
  1168  				}
  1169  				event.Raw = log
  1170  
  1171  				select {
  1172  				case sink <- event:
  1173  				case err := <-sub.Err():
  1174  					return err
  1175  				case <-quit:
  1176  					return nil
  1177  				}
  1178  			case err := <-sub.Err():
  1179  				return err
  1180  			case <-quit:
  1181  				return nil
  1182  			}
  1183  		}
  1184  	}), nil
  1185  }
  1186  
  1187  // ParseAdd is a log parse operation binding the contract event 0x4b16bd2431ad24dc020ab0e1de7fcb6563dead6a24fb10089d6c23e97a70381f.
  1188  //
  1189  // Solidity: event Add(uint256 indexed pid, uint256 allocPoint, address indexed lpToken, address indexed rewarder)
  1190  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) ParseAdd(log types.Log) (*BaseMasterPlatypusAdd, error) {
  1191  	event := new(BaseMasterPlatypusAdd)
  1192  	if err := _BaseMasterPlatypus.contract.UnpackLog(event, "Add", log); err != nil {
  1193  		return nil, err
  1194  	}
  1195  	event.Raw = log
  1196  	return event, nil
  1197  }
  1198  
  1199  // BaseMasterPlatypusDepositIterator is returned from FilterDeposit and is used to iterate over the raw logs and unpacked data for Deposit events raised by the BaseMasterPlatypus contract.
  1200  type BaseMasterPlatypusDepositIterator struct {
  1201  	Event *BaseMasterPlatypusDeposit // Event containing the contract specifics and raw log
  1202  
  1203  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1204  	event    string              // Event name to use for unpacking event data
  1205  
  1206  	logs chan types.Log        // Log channel receiving the found contract events
  1207  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1208  	done bool                  // Whether the subscription completed delivering logs
  1209  	fail error                 // Occurred error to stop iteration
  1210  }
  1211  
  1212  // Next advances the iterator to the subsequent event, returning whether there
  1213  // are any more events found. In case of a retrieval or parsing error, false is
  1214  // returned and Error() can be queried for the exact failure.
  1215  func (it *BaseMasterPlatypusDepositIterator) Next() bool {
  1216  	// If the iterator failed, stop iterating
  1217  	if it.fail != nil {
  1218  		return false
  1219  	}
  1220  	// If the iterator completed, deliver directly whatever's available
  1221  	if it.done {
  1222  		select {
  1223  		case log := <-it.logs:
  1224  			it.Event = new(BaseMasterPlatypusDeposit)
  1225  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1226  				it.fail = err
  1227  				return false
  1228  			}
  1229  			it.Event.Raw = log
  1230  			return true
  1231  
  1232  		default:
  1233  			return false
  1234  		}
  1235  	}
  1236  	// Iterator still in progress, wait for either a data or an error event
  1237  	select {
  1238  	case log := <-it.logs:
  1239  		it.Event = new(BaseMasterPlatypusDeposit)
  1240  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1241  			it.fail = err
  1242  			return false
  1243  		}
  1244  		it.Event.Raw = log
  1245  		return true
  1246  
  1247  	case err := <-it.sub.Err():
  1248  		it.done = true
  1249  		it.fail = err
  1250  		return it.Next()
  1251  	}
  1252  }
  1253  
  1254  // Error returns any retrieval or parsing error occurred during filtering.
  1255  func (it *BaseMasterPlatypusDepositIterator) Error() error {
  1256  	return it.fail
  1257  }
  1258  
  1259  // Close terminates the iteration process, releasing any pending underlying
  1260  // resources.
  1261  func (it *BaseMasterPlatypusDepositIterator) Close() error {
  1262  	it.sub.Unsubscribe()
  1263  	return nil
  1264  }
  1265  
  1266  // BaseMasterPlatypusDeposit represents a Deposit event raised by the BaseMasterPlatypus contract.
  1267  type BaseMasterPlatypusDeposit struct {
  1268  	User   common.Address
  1269  	Pid    *big.Int
  1270  	Amount *big.Int
  1271  	Raw    types.Log // Blockchain specific contextual infos
  1272  }
  1273  
  1274  // FilterDeposit is a free log retrieval operation binding the contract event 0x90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15.
  1275  //
  1276  // Solidity: event Deposit(address indexed user, uint256 indexed pid, uint256 amount)
  1277  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) FilterDeposit(opts *bind.FilterOpts, user []common.Address, pid []*big.Int) (*BaseMasterPlatypusDepositIterator, error) {
  1278  
  1279  	var userRule []interface{}
  1280  	for _, userItem := range user {
  1281  		userRule = append(userRule, userItem)
  1282  	}
  1283  	var pidRule []interface{}
  1284  	for _, pidItem := range pid {
  1285  		pidRule = append(pidRule, pidItem)
  1286  	}
  1287  
  1288  	logs, sub, err := _BaseMasterPlatypus.contract.FilterLogs(opts, "Deposit", userRule, pidRule)
  1289  	if err != nil {
  1290  		return nil, err
  1291  	}
  1292  	return &BaseMasterPlatypusDepositIterator{contract: _BaseMasterPlatypus.contract, event: "Deposit", logs: logs, sub: sub}, nil
  1293  }
  1294  
  1295  // WatchDeposit is a free log subscription operation binding the contract event 0x90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15.
  1296  //
  1297  // Solidity: event Deposit(address indexed user, uint256 indexed pid, uint256 amount)
  1298  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) WatchDeposit(opts *bind.WatchOpts, sink chan<- *BaseMasterPlatypusDeposit, user []common.Address, pid []*big.Int) (event.Subscription, error) {
  1299  
  1300  	var userRule []interface{}
  1301  	for _, userItem := range user {
  1302  		userRule = append(userRule, userItem)
  1303  	}
  1304  	var pidRule []interface{}
  1305  	for _, pidItem := range pid {
  1306  		pidRule = append(pidRule, pidItem)
  1307  	}
  1308  
  1309  	logs, sub, err := _BaseMasterPlatypus.contract.WatchLogs(opts, "Deposit", userRule, pidRule)
  1310  	if err != nil {
  1311  		return nil, err
  1312  	}
  1313  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1314  		defer sub.Unsubscribe()
  1315  		for {
  1316  			select {
  1317  			case log := <-logs:
  1318  				// New log arrived, parse the event and forward to the user
  1319  				event := new(BaseMasterPlatypusDeposit)
  1320  				if err := _BaseMasterPlatypus.contract.UnpackLog(event, "Deposit", log); err != nil {
  1321  					return err
  1322  				}
  1323  				event.Raw = log
  1324  
  1325  				select {
  1326  				case sink <- event:
  1327  				case err := <-sub.Err():
  1328  					return err
  1329  				case <-quit:
  1330  					return nil
  1331  				}
  1332  			case err := <-sub.Err():
  1333  				return err
  1334  			case <-quit:
  1335  				return nil
  1336  			}
  1337  		}
  1338  	}), nil
  1339  }
  1340  
  1341  // ParseDeposit is a log parse operation binding the contract event 0x90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15.
  1342  //
  1343  // Solidity: event Deposit(address indexed user, uint256 indexed pid, uint256 amount)
  1344  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) ParseDeposit(log types.Log) (*BaseMasterPlatypusDeposit, error) {
  1345  	event := new(BaseMasterPlatypusDeposit)
  1346  	if err := _BaseMasterPlatypus.contract.UnpackLog(event, "Deposit", log); err != nil {
  1347  		return nil, err
  1348  	}
  1349  	event.Raw = log
  1350  	return event, nil
  1351  }
  1352  
  1353  // BaseMasterPlatypusDepositForIterator is returned from FilterDepositFor and is used to iterate over the raw logs and unpacked data for DepositFor events raised by the BaseMasterPlatypus contract.
  1354  type BaseMasterPlatypusDepositForIterator struct {
  1355  	Event *BaseMasterPlatypusDepositFor // Event containing the contract specifics and raw log
  1356  
  1357  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1358  	event    string              // Event name to use for unpacking event data
  1359  
  1360  	logs chan types.Log        // Log channel receiving the found contract events
  1361  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1362  	done bool                  // Whether the subscription completed delivering logs
  1363  	fail error                 // Occurred error to stop iteration
  1364  }
  1365  
  1366  // Next advances the iterator to the subsequent event, returning whether there
  1367  // are any more events found. In case of a retrieval or parsing error, false is
  1368  // returned and Error() can be queried for the exact failure.
  1369  func (it *BaseMasterPlatypusDepositForIterator) Next() bool {
  1370  	// If the iterator failed, stop iterating
  1371  	if it.fail != nil {
  1372  		return false
  1373  	}
  1374  	// If the iterator completed, deliver directly whatever's available
  1375  	if it.done {
  1376  		select {
  1377  		case log := <-it.logs:
  1378  			it.Event = new(BaseMasterPlatypusDepositFor)
  1379  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1380  				it.fail = err
  1381  				return false
  1382  			}
  1383  			it.Event.Raw = log
  1384  			return true
  1385  
  1386  		default:
  1387  			return false
  1388  		}
  1389  	}
  1390  	// Iterator still in progress, wait for either a data or an error event
  1391  	select {
  1392  	case log := <-it.logs:
  1393  		it.Event = new(BaseMasterPlatypusDepositFor)
  1394  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1395  			it.fail = err
  1396  			return false
  1397  		}
  1398  		it.Event.Raw = log
  1399  		return true
  1400  
  1401  	case err := <-it.sub.Err():
  1402  		it.done = true
  1403  		it.fail = err
  1404  		return it.Next()
  1405  	}
  1406  }
  1407  
  1408  // Error returns any retrieval or parsing error occurred during filtering.
  1409  func (it *BaseMasterPlatypusDepositForIterator) Error() error {
  1410  	return it.fail
  1411  }
  1412  
  1413  // Close terminates the iteration process, releasing any pending underlying
  1414  // resources.
  1415  func (it *BaseMasterPlatypusDepositForIterator) Close() error {
  1416  	it.sub.Unsubscribe()
  1417  	return nil
  1418  }
  1419  
  1420  // BaseMasterPlatypusDepositFor represents a DepositFor event raised by the BaseMasterPlatypus contract.
  1421  type BaseMasterPlatypusDepositFor struct {
  1422  	User   common.Address
  1423  	Pid    *big.Int
  1424  	Amount *big.Int
  1425  	Raw    types.Log // Blockchain specific contextual infos
  1426  }
  1427  
  1428  // FilterDepositFor is a free log retrieval operation binding the contract event 0x16f3fbfd4bcc50a5cecb2e53e398a1ad77d89f63288ef540d862b264ed57eb1f.
  1429  //
  1430  // Solidity: event DepositFor(address indexed user, uint256 indexed pid, uint256 amount)
  1431  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) FilterDepositFor(opts *bind.FilterOpts, user []common.Address, pid []*big.Int) (*BaseMasterPlatypusDepositForIterator, error) {
  1432  
  1433  	var userRule []interface{}
  1434  	for _, userItem := range user {
  1435  		userRule = append(userRule, userItem)
  1436  	}
  1437  	var pidRule []interface{}
  1438  	for _, pidItem := range pid {
  1439  		pidRule = append(pidRule, pidItem)
  1440  	}
  1441  
  1442  	logs, sub, err := _BaseMasterPlatypus.contract.FilterLogs(opts, "DepositFor", userRule, pidRule)
  1443  	if err != nil {
  1444  		return nil, err
  1445  	}
  1446  	return &BaseMasterPlatypusDepositForIterator{contract: _BaseMasterPlatypus.contract, event: "DepositFor", logs: logs, sub: sub}, nil
  1447  }
  1448  
  1449  // WatchDepositFor is a free log subscription operation binding the contract event 0x16f3fbfd4bcc50a5cecb2e53e398a1ad77d89f63288ef540d862b264ed57eb1f.
  1450  //
  1451  // Solidity: event DepositFor(address indexed user, uint256 indexed pid, uint256 amount)
  1452  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) WatchDepositFor(opts *bind.WatchOpts, sink chan<- *BaseMasterPlatypusDepositFor, user []common.Address, pid []*big.Int) (event.Subscription, error) {
  1453  
  1454  	var userRule []interface{}
  1455  	for _, userItem := range user {
  1456  		userRule = append(userRule, userItem)
  1457  	}
  1458  	var pidRule []interface{}
  1459  	for _, pidItem := range pid {
  1460  		pidRule = append(pidRule, pidItem)
  1461  	}
  1462  
  1463  	logs, sub, err := _BaseMasterPlatypus.contract.WatchLogs(opts, "DepositFor", userRule, pidRule)
  1464  	if err != nil {
  1465  		return nil, err
  1466  	}
  1467  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1468  		defer sub.Unsubscribe()
  1469  		for {
  1470  			select {
  1471  			case log := <-logs:
  1472  				// New log arrived, parse the event and forward to the user
  1473  				event := new(BaseMasterPlatypusDepositFor)
  1474  				if err := _BaseMasterPlatypus.contract.UnpackLog(event, "DepositFor", log); err != nil {
  1475  					return err
  1476  				}
  1477  				event.Raw = log
  1478  
  1479  				select {
  1480  				case sink <- event:
  1481  				case err := <-sub.Err():
  1482  					return err
  1483  				case <-quit:
  1484  					return nil
  1485  				}
  1486  			case err := <-sub.Err():
  1487  				return err
  1488  			case <-quit:
  1489  				return nil
  1490  			}
  1491  		}
  1492  	}), nil
  1493  }
  1494  
  1495  // ParseDepositFor is a log parse operation binding the contract event 0x16f3fbfd4bcc50a5cecb2e53e398a1ad77d89f63288ef540d862b264ed57eb1f.
  1496  //
  1497  // Solidity: event DepositFor(address indexed user, uint256 indexed pid, uint256 amount)
  1498  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) ParseDepositFor(log types.Log) (*BaseMasterPlatypusDepositFor, error) {
  1499  	event := new(BaseMasterPlatypusDepositFor)
  1500  	if err := _BaseMasterPlatypus.contract.UnpackLog(event, "DepositFor", log); err != nil {
  1501  		return nil, err
  1502  	}
  1503  	event.Raw = log
  1504  	return event, nil
  1505  }
  1506  
  1507  // BaseMasterPlatypusEmergencyWithdrawIterator is returned from FilterEmergencyWithdraw and is used to iterate over the raw logs and unpacked data for EmergencyWithdraw events raised by the BaseMasterPlatypus contract.
  1508  type BaseMasterPlatypusEmergencyWithdrawIterator struct {
  1509  	Event *BaseMasterPlatypusEmergencyWithdraw // Event containing the contract specifics and raw log
  1510  
  1511  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1512  	event    string              // Event name to use for unpacking event data
  1513  
  1514  	logs chan types.Log        // Log channel receiving the found contract events
  1515  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1516  	done bool                  // Whether the subscription completed delivering logs
  1517  	fail error                 // Occurred error to stop iteration
  1518  }
  1519  
  1520  // Next advances the iterator to the subsequent event, returning whether there
  1521  // are any more events found. In case of a retrieval or parsing error, false is
  1522  // returned and Error() can be queried for the exact failure.
  1523  func (it *BaseMasterPlatypusEmergencyWithdrawIterator) Next() bool {
  1524  	// If the iterator failed, stop iterating
  1525  	if it.fail != nil {
  1526  		return false
  1527  	}
  1528  	// If the iterator completed, deliver directly whatever's available
  1529  	if it.done {
  1530  		select {
  1531  		case log := <-it.logs:
  1532  			it.Event = new(BaseMasterPlatypusEmergencyWithdraw)
  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  		default:
  1541  			return false
  1542  		}
  1543  	}
  1544  	// Iterator still in progress, wait for either a data or an error event
  1545  	select {
  1546  	case log := <-it.logs:
  1547  		it.Event = new(BaseMasterPlatypusEmergencyWithdraw)
  1548  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1549  			it.fail = err
  1550  			return false
  1551  		}
  1552  		it.Event.Raw = log
  1553  		return true
  1554  
  1555  	case err := <-it.sub.Err():
  1556  		it.done = true
  1557  		it.fail = err
  1558  		return it.Next()
  1559  	}
  1560  }
  1561  
  1562  // Error returns any retrieval or parsing error occurred during filtering.
  1563  func (it *BaseMasterPlatypusEmergencyWithdrawIterator) Error() error {
  1564  	return it.fail
  1565  }
  1566  
  1567  // Close terminates the iteration process, releasing any pending underlying
  1568  // resources.
  1569  func (it *BaseMasterPlatypusEmergencyWithdrawIterator) Close() error {
  1570  	it.sub.Unsubscribe()
  1571  	return nil
  1572  }
  1573  
  1574  // BaseMasterPlatypusEmergencyWithdraw represents a EmergencyWithdraw event raised by the BaseMasterPlatypus contract.
  1575  type BaseMasterPlatypusEmergencyWithdraw struct {
  1576  	User   common.Address
  1577  	Pid    *big.Int
  1578  	Amount *big.Int
  1579  	Raw    types.Log // Blockchain specific contextual infos
  1580  }
  1581  
  1582  // FilterEmergencyWithdraw is a free log retrieval operation binding the contract event 0xbb757047c2b5f3974fe26b7c10f732e7bce710b0952a71082702781e62ae0595.
  1583  //
  1584  // Solidity: event EmergencyWithdraw(address indexed user, uint256 indexed pid, uint256 amount)
  1585  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) FilterEmergencyWithdraw(opts *bind.FilterOpts, user []common.Address, pid []*big.Int) (*BaseMasterPlatypusEmergencyWithdrawIterator, error) {
  1586  
  1587  	var userRule []interface{}
  1588  	for _, userItem := range user {
  1589  		userRule = append(userRule, userItem)
  1590  	}
  1591  	var pidRule []interface{}
  1592  	for _, pidItem := range pid {
  1593  		pidRule = append(pidRule, pidItem)
  1594  	}
  1595  
  1596  	logs, sub, err := _BaseMasterPlatypus.contract.FilterLogs(opts, "EmergencyWithdraw", userRule, pidRule)
  1597  	if err != nil {
  1598  		return nil, err
  1599  	}
  1600  	return &BaseMasterPlatypusEmergencyWithdrawIterator{contract: _BaseMasterPlatypus.contract, event: "EmergencyWithdraw", logs: logs, sub: sub}, nil
  1601  }
  1602  
  1603  // WatchEmergencyWithdraw is a free log subscription operation binding the contract event 0xbb757047c2b5f3974fe26b7c10f732e7bce710b0952a71082702781e62ae0595.
  1604  //
  1605  // Solidity: event EmergencyWithdraw(address indexed user, uint256 indexed pid, uint256 amount)
  1606  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) WatchEmergencyWithdraw(opts *bind.WatchOpts, sink chan<- *BaseMasterPlatypusEmergencyWithdraw, user []common.Address, pid []*big.Int) (event.Subscription, error) {
  1607  
  1608  	var userRule []interface{}
  1609  	for _, userItem := range user {
  1610  		userRule = append(userRule, userItem)
  1611  	}
  1612  	var pidRule []interface{}
  1613  	for _, pidItem := range pid {
  1614  		pidRule = append(pidRule, pidItem)
  1615  	}
  1616  
  1617  	logs, sub, err := _BaseMasterPlatypus.contract.WatchLogs(opts, "EmergencyWithdraw", userRule, pidRule)
  1618  	if err != nil {
  1619  		return nil, err
  1620  	}
  1621  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1622  		defer sub.Unsubscribe()
  1623  		for {
  1624  			select {
  1625  			case log := <-logs:
  1626  				// New log arrived, parse the event and forward to the user
  1627  				event := new(BaseMasterPlatypusEmergencyWithdraw)
  1628  				if err := _BaseMasterPlatypus.contract.UnpackLog(event, "EmergencyWithdraw", log); err != nil {
  1629  					return err
  1630  				}
  1631  				event.Raw = log
  1632  
  1633  				select {
  1634  				case sink <- event:
  1635  				case err := <-sub.Err():
  1636  					return err
  1637  				case <-quit:
  1638  					return nil
  1639  				}
  1640  			case err := <-sub.Err():
  1641  				return err
  1642  			case <-quit:
  1643  				return nil
  1644  			}
  1645  		}
  1646  	}), nil
  1647  }
  1648  
  1649  // ParseEmergencyWithdraw is a log parse operation binding the contract event 0xbb757047c2b5f3974fe26b7c10f732e7bce710b0952a71082702781e62ae0595.
  1650  //
  1651  // Solidity: event EmergencyWithdraw(address indexed user, uint256 indexed pid, uint256 amount)
  1652  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) ParseEmergencyWithdraw(log types.Log) (*BaseMasterPlatypusEmergencyWithdraw, error) {
  1653  	event := new(BaseMasterPlatypusEmergencyWithdraw)
  1654  	if err := _BaseMasterPlatypus.contract.UnpackLog(event, "EmergencyWithdraw", log); err != nil {
  1655  		return nil, err
  1656  	}
  1657  	event.Raw = log
  1658  	return event, nil
  1659  }
  1660  
  1661  // BaseMasterPlatypusHarvestIterator is returned from FilterHarvest and is used to iterate over the raw logs and unpacked data for Harvest events raised by the BaseMasterPlatypus contract.
  1662  type BaseMasterPlatypusHarvestIterator struct {
  1663  	Event *BaseMasterPlatypusHarvest // Event containing the contract specifics and raw log
  1664  
  1665  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1666  	event    string              // Event name to use for unpacking event data
  1667  
  1668  	logs chan types.Log        // Log channel receiving the found contract events
  1669  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1670  	done bool                  // Whether the subscription completed delivering logs
  1671  	fail error                 // Occurred error to stop iteration
  1672  }
  1673  
  1674  // Next advances the iterator to the subsequent event, returning whether there
  1675  // are any more events found. In case of a retrieval or parsing error, false is
  1676  // returned and Error() can be queried for the exact failure.
  1677  func (it *BaseMasterPlatypusHarvestIterator) Next() bool {
  1678  	// If the iterator failed, stop iterating
  1679  	if it.fail != nil {
  1680  		return false
  1681  	}
  1682  	// If the iterator completed, deliver directly whatever's available
  1683  	if it.done {
  1684  		select {
  1685  		case log := <-it.logs:
  1686  			it.Event = new(BaseMasterPlatypusHarvest)
  1687  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1688  				it.fail = err
  1689  				return false
  1690  			}
  1691  			it.Event.Raw = log
  1692  			return true
  1693  
  1694  		default:
  1695  			return false
  1696  		}
  1697  	}
  1698  	// Iterator still in progress, wait for either a data or an error event
  1699  	select {
  1700  	case log := <-it.logs:
  1701  		it.Event = new(BaseMasterPlatypusHarvest)
  1702  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1703  			it.fail = err
  1704  			return false
  1705  		}
  1706  		it.Event.Raw = log
  1707  		return true
  1708  
  1709  	case err := <-it.sub.Err():
  1710  		it.done = true
  1711  		it.fail = err
  1712  		return it.Next()
  1713  	}
  1714  }
  1715  
  1716  // Error returns any retrieval or parsing error occurred during filtering.
  1717  func (it *BaseMasterPlatypusHarvestIterator) Error() error {
  1718  	return it.fail
  1719  }
  1720  
  1721  // Close terminates the iteration process, releasing any pending underlying
  1722  // resources.
  1723  func (it *BaseMasterPlatypusHarvestIterator) Close() error {
  1724  	it.sub.Unsubscribe()
  1725  	return nil
  1726  }
  1727  
  1728  // BaseMasterPlatypusHarvest represents a Harvest event raised by the BaseMasterPlatypus contract.
  1729  type BaseMasterPlatypusHarvest struct {
  1730  	User   common.Address
  1731  	Pid    *big.Int
  1732  	Amount *big.Int
  1733  	Raw    types.Log // Blockchain specific contextual infos
  1734  }
  1735  
  1736  // FilterHarvest is a free log retrieval operation binding the contract event 0x71bab65ced2e5750775a0613be067df48ef06cf92a496ebf7663ae0660924954.
  1737  //
  1738  // Solidity: event Harvest(address indexed user, uint256 indexed pid, uint256 amount)
  1739  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) FilterHarvest(opts *bind.FilterOpts, user []common.Address, pid []*big.Int) (*BaseMasterPlatypusHarvestIterator, error) {
  1740  
  1741  	var userRule []interface{}
  1742  	for _, userItem := range user {
  1743  		userRule = append(userRule, userItem)
  1744  	}
  1745  	var pidRule []interface{}
  1746  	for _, pidItem := range pid {
  1747  		pidRule = append(pidRule, pidItem)
  1748  	}
  1749  
  1750  	logs, sub, err := _BaseMasterPlatypus.contract.FilterLogs(opts, "Harvest", userRule, pidRule)
  1751  	if err != nil {
  1752  		return nil, err
  1753  	}
  1754  	return &BaseMasterPlatypusHarvestIterator{contract: _BaseMasterPlatypus.contract, event: "Harvest", logs: logs, sub: sub}, nil
  1755  }
  1756  
  1757  // WatchHarvest is a free log subscription operation binding the contract event 0x71bab65ced2e5750775a0613be067df48ef06cf92a496ebf7663ae0660924954.
  1758  //
  1759  // Solidity: event Harvest(address indexed user, uint256 indexed pid, uint256 amount)
  1760  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) WatchHarvest(opts *bind.WatchOpts, sink chan<- *BaseMasterPlatypusHarvest, user []common.Address, pid []*big.Int) (event.Subscription, error) {
  1761  
  1762  	var userRule []interface{}
  1763  	for _, userItem := range user {
  1764  		userRule = append(userRule, userItem)
  1765  	}
  1766  	var pidRule []interface{}
  1767  	for _, pidItem := range pid {
  1768  		pidRule = append(pidRule, pidItem)
  1769  	}
  1770  
  1771  	logs, sub, err := _BaseMasterPlatypus.contract.WatchLogs(opts, "Harvest", userRule, pidRule)
  1772  	if err != nil {
  1773  		return nil, err
  1774  	}
  1775  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1776  		defer sub.Unsubscribe()
  1777  		for {
  1778  			select {
  1779  			case log := <-logs:
  1780  				// New log arrived, parse the event and forward to the user
  1781  				event := new(BaseMasterPlatypusHarvest)
  1782  				if err := _BaseMasterPlatypus.contract.UnpackLog(event, "Harvest", log); err != nil {
  1783  					return err
  1784  				}
  1785  				event.Raw = log
  1786  
  1787  				select {
  1788  				case sink <- event:
  1789  				case err := <-sub.Err():
  1790  					return err
  1791  				case <-quit:
  1792  					return nil
  1793  				}
  1794  			case err := <-sub.Err():
  1795  				return err
  1796  			case <-quit:
  1797  				return nil
  1798  			}
  1799  		}
  1800  	}), nil
  1801  }
  1802  
  1803  // ParseHarvest is a log parse operation binding the contract event 0x71bab65ced2e5750775a0613be067df48ef06cf92a496ebf7663ae0660924954.
  1804  //
  1805  // Solidity: event Harvest(address indexed user, uint256 indexed pid, uint256 amount)
  1806  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) ParseHarvest(log types.Log) (*BaseMasterPlatypusHarvest, error) {
  1807  	event := new(BaseMasterPlatypusHarvest)
  1808  	if err := _BaseMasterPlatypus.contract.UnpackLog(event, "Harvest", log); err != nil {
  1809  		return nil, err
  1810  	}
  1811  	event.Raw = log
  1812  	return event, nil
  1813  }
  1814  
  1815  // BaseMasterPlatypusOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the BaseMasterPlatypus contract.
  1816  type BaseMasterPlatypusOwnershipTransferredIterator struct {
  1817  	Event *BaseMasterPlatypusOwnershipTransferred // Event containing the contract specifics and raw log
  1818  
  1819  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1820  	event    string              // Event name to use for unpacking event data
  1821  
  1822  	logs chan types.Log        // Log channel receiving the found contract events
  1823  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1824  	done bool                  // Whether the subscription completed delivering logs
  1825  	fail error                 // Occurred error to stop iteration
  1826  }
  1827  
  1828  // Next advances the iterator to the subsequent event, returning whether there
  1829  // are any more events found. In case of a retrieval or parsing error, false is
  1830  // returned and Error() can be queried for the exact failure.
  1831  func (it *BaseMasterPlatypusOwnershipTransferredIterator) Next() bool {
  1832  	// If the iterator failed, stop iterating
  1833  	if it.fail != nil {
  1834  		return false
  1835  	}
  1836  	// If the iterator completed, deliver directly whatever's available
  1837  	if it.done {
  1838  		select {
  1839  		case log := <-it.logs:
  1840  			it.Event = new(BaseMasterPlatypusOwnershipTransferred)
  1841  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1842  				it.fail = err
  1843  				return false
  1844  			}
  1845  			it.Event.Raw = log
  1846  			return true
  1847  
  1848  		default:
  1849  			return false
  1850  		}
  1851  	}
  1852  	// Iterator still in progress, wait for either a data or an error event
  1853  	select {
  1854  	case log := <-it.logs:
  1855  		it.Event = new(BaseMasterPlatypusOwnershipTransferred)
  1856  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1857  			it.fail = err
  1858  			return false
  1859  		}
  1860  		it.Event.Raw = log
  1861  		return true
  1862  
  1863  	case err := <-it.sub.Err():
  1864  		it.done = true
  1865  		it.fail = err
  1866  		return it.Next()
  1867  	}
  1868  }
  1869  
  1870  // Error returns any retrieval or parsing error occurred during filtering.
  1871  func (it *BaseMasterPlatypusOwnershipTransferredIterator) Error() error {
  1872  	return it.fail
  1873  }
  1874  
  1875  // Close terminates the iteration process, releasing any pending underlying
  1876  // resources.
  1877  func (it *BaseMasterPlatypusOwnershipTransferredIterator) Close() error {
  1878  	it.sub.Unsubscribe()
  1879  	return nil
  1880  }
  1881  
  1882  // BaseMasterPlatypusOwnershipTransferred represents a OwnershipTransferred event raised by the BaseMasterPlatypus contract.
  1883  type BaseMasterPlatypusOwnershipTransferred struct {
  1884  	PreviousOwner common.Address
  1885  	NewOwner      common.Address
  1886  	Raw           types.Log // Blockchain specific contextual infos
  1887  }
  1888  
  1889  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1890  //
  1891  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  1892  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*BaseMasterPlatypusOwnershipTransferredIterator, error) {
  1893  
  1894  	var previousOwnerRule []interface{}
  1895  	for _, previousOwnerItem := range previousOwner {
  1896  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  1897  	}
  1898  	var newOwnerRule []interface{}
  1899  	for _, newOwnerItem := range newOwner {
  1900  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  1901  	}
  1902  
  1903  	logs, sub, err := _BaseMasterPlatypus.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  1904  	if err != nil {
  1905  		return nil, err
  1906  	}
  1907  	return &BaseMasterPlatypusOwnershipTransferredIterator{contract: _BaseMasterPlatypus.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  1908  }
  1909  
  1910  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1911  //
  1912  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  1913  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *BaseMasterPlatypusOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  1914  
  1915  	var previousOwnerRule []interface{}
  1916  	for _, previousOwnerItem := range previousOwner {
  1917  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  1918  	}
  1919  	var newOwnerRule []interface{}
  1920  	for _, newOwnerItem := range newOwner {
  1921  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  1922  	}
  1923  
  1924  	logs, sub, err := _BaseMasterPlatypus.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  1925  	if err != nil {
  1926  		return nil, err
  1927  	}
  1928  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1929  		defer sub.Unsubscribe()
  1930  		for {
  1931  			select {
  1932  			case log := <-logs:
  1933  				// New log arrived, parse the event and forward to the user
  1934  				event := new(BaseMasterPlatypusOwnershipTransferred)
  1935  				if err := _BaseMasterPlatypus.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  1936  					return err
  1937  				}
  1938  				event.Raw = log
  1939  
  1940  				select {
  1941  				case sink <- event:
  1942  				case err := <-sub.Err():
  1943  					return err
  1944  				case <-quit:
  1945  					return nil
  1946  				}
  1947  			case err := <-sub.Err():
  1948  				return err
  1949  			case <-quit:
  1950  				return nil
  1951  			}
  1952  		}
  1953  	}), nil
  1954  }
  1955  
  1956  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1957  //
  1958  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  1959  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) ParseOwnershipTransferred(log types.Log) (*BaseMasterPlatypusOwnershipTransferred, error) {
  1960  	event := new(BaseMasterPlatypusOwnershipTransferred)
  1961  	if err := _BaseMasterPlatypus.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  1962  		return nil, err
  1963  	}
  1964  	event.Raw = log
  1965  	return event, nil
  1966  }
  1967  
  1968  // BaseMasterPlatypusPausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the BaseMasterPlatypus contract.
  1969  type BaseMasterPlatypusPausedIterator struct {
  1970  	Event *BaseMasterPlatypusPaused // Event containing the contract specifics and raw log
  1971  
  1972  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1973  	event    string              // Event name to use for unpacking event data
  1974  
  1975  	logs chan types.Log        // Log channel receiving the found contract events
  1976  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1977  	done bool                  // Whether the subscription completed delivering logs
  1978  	fail error                 // Occurred error to stop iteration
  1979  }
  1980  
  1981  // Next advances the iterator to the subsequent event, returning whether there
  1982  // are any more events found. In case of a retrieval or parsing error, false is
  1983  // returned and Error() can be queried for the exact failure.
  1984  func (it *BaseMasterPlatypusPausedIterator) Next() bool {
  1985  	// If the iterator failed, stop iterating
  1986  	if it.fail != nil {
  1987  		return false
  1988  	}
  1989  	// If the iterator completed, deliver directly whatever's available
  1990  	if it.done {
  1991  		select {
  1992  		case log := <-it.logs:
  1993  			it.Event = new(BaseMasterPlatypusPaused)
  1994  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1995  				it.fail = err
  1996  				return false
  1997  			}
  1998  			it.Event.Raw = log
  1999  			return true
  2000  
  2001  		default:
  2002  			return false
  2003  		}
  2004  	}
  2005  	// Iterator still in progress, wait for either a data or an error event
  2006  	select {
  2007  	case log := <-it.logs:
  2008  		it.Event = new(BaseMasterPlatypusPaused)
  2009  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2010  			it.fail = err
  2011  			return false
  2012  		}
  2013  		it.Event.Raw = log
  2014  		return true
  2015  
  2016  	case err := <-it.sub.Err():
  2017  		it.done = true
  2018  		it.fail = err
  2019  		return it.Next()
  2020  	}
  2021  }
  2022  
  2023  // Error returns any retrieval or parsing error occurred during filtering.
  2024  func (it *BaseMasterPlatypusPausedIterator) Error() error {
  2025  	return it.fail
  2026  }
  2027  
  2028  // Close terminates the iteration process, releasing any pending underlying
  2029  // resources.
  2030  func (it *BaseMasterPlatypusPausedIterator) Close() error {
  2031  	it.sub.Unsubscribe()
  2032  	return nil
  2033  }
  2034  
  2035  // BaseMasterPlatypusPaused represents a Paused event raised by the BaseMasterPlatypus contract.
  2036  type BaseMasterPlatypusPaused struct {
  2037  	Account common.Address
  2038  	Raw     types.Log // Blockchain specific contextual infos
  2039  }
  2040  
  2041  // FilterPaused is a free log retrieval operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258.
  2042  //
  2043  // Solidity: event Paused(address account)
  2044  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) FilterPaused(opts *bind.FilterOpts) (*BaseMasterPlatypusPausedIterator, error) {
  2045  
  2046  	logs, sub, err := _BaseMasterPlatypus.contract.FilterLogs(opts, "Paused")
  2047  	if err != nil {
  2048  		return nil, err
  2049  	}
  2050  	return &BaseMasterPlatypusPausedIterator{contract: _BaseMasterPlatypus.contract, event: "Paused", logs: logs, sub: sub}, nil
  2051  }
  2052  
  2053  // WatchPaused is a free log subscription operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258.
  2054  //
  2055  // Solidity: event Paused(address account)
  2056  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) WatchPaused(opts *bind.WatchOpts, sink chan<- *BaseMasterPlatypusPaused) (event.Subscription, error) {
  2057  
  2058  	logs, sub, err := _BaseMasterPlatypus.contract.WatchLogs(opts, "Paused")
  2059  	if err != nil {
  2060  		return nil, err
  2061  	}
  2062  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2063  		defer sub.Unsubscribe()
  2064  		for {
  2065  			select {
  2066  			case log := <-logs:
  2067  				// New log arrived, parse the event and forward to the user
  2068  				event := new(BaseMasterPlatypusPaused)
  2069  				if err := _BaseMasterPlatypus.contract.UnpackLog(event, "Paused", log); err != nil {
  2070  					return err
  2071  				}
  2072  				event.Raw = log
  2073  
  2074  				select {
  2075  				case sink <- event:
  2076  				case err := <-sub.Err():
  2077  					return err
  2078  				case <-quit:
  2079  					return nil
  2080  				}
  2081  			case err := <-sub.Err():
  2082  				return err
  2083  			case <-quit:
  2084  				return nil
  2085  			}
  2086  		}
  2087  	}), nil
  2088  }
  2089  
  2090  // ParsePaused is a log parse operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258.
  2091  //
  2092  // Solidity: event Paused(address account)
  2093  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) ParsePaused(log types.Log) (*BaseMasterPlatypusPaused, error) {
  2094  	event := new(BaseMasterPlatypusPaused)
  2095  	if err := _BaseMasterPlatypus.contract.UnpackLog(event, "Paused", log); err != nil {
  2096  		return nil, err
  2097  	}
  2098  	event.Raw = log
  2099  	return event, nil
  2100  }
  2101  
  2102  // BaseMasterPlatypusSetIterator is returned from FilterSet and is used to iterate over the raw logs and unpacked data for Set events raised by the BaseMasterPlatypus contract.
  2103  type BaseMasterPlatypusSetIterator struct {
  2104  	Event *BaseMasterPlatypusSet // Event containing the contract specifics and raw log
  2105  
  2106  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2107  	event    string              // Event name to use for unpacking event data
  2108  
  2109  	logs chan types.Log        // Log channel receiving the found contract events
  2110  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2111  	done bool                  // Whether the subscription completed delivering logs
  2112  	fail error                 // Occurred error to stop iteration
  2113  }
  2114  
  2115  // Next advances the iterator to the subsequent event, returning whether there
  2116  // are any more events found. In case of a retrieval or parsing error, false is
  2117  // returned and Error() can be queried for the exact failure.
  2118  func (it *BaseMasterPlatypusSetIterator) Next() bool {
  2119  	// If the iterator failed, stop iterating
  2120  	if it.fail != nil {
  2121  		return false
  2122  	}
  2123  	// If the iterator completed, deliver directly whatever's available
  2124  	if it.done {
  2125  		select {
  2126  		case log := <-it.logs:
  2127  			it.Event = new(BaseMasterPlatypusSet)
  2128  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2129  				it.fail = err
  2130  				return false
  2131  			}
  2132  			it.Event.Raw = log
  2133  			return true
  2134  
  2135  		default:
  2136  			return false
  2137  		}
  2138  	}
  2139  	// Iterator still in progress, wait for either a data or an error event
  2140  	select {
  2141  	case log := <-it.logs:
  2142  		it.Event = new(BaseMasterPlatypusSet)
  2143  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2144  			it.fail = err
  2145  			return false
  2146  		}
  2147  		it.Event.Raw = log
  2148  		return true
  2149  
  2150  	case err := <-it.sub.Err():
  2151  		it.done = true
  2152  		it.fail = err
  2153  		return it.Next()
  2154  	}
  2155  }
  2156  
  2157  // Error returns any retrieval or parsing error occurred during filtering.
  2158  func (it *BaseMasterPlatypusSetIterator) Error() error {
  2159  	return it.fail
  2160  }
  2161  
  2162  // Close terminates the iteration process, releasing any pending underlying
  2163  // resources.
  2164  func (it *BaseMasterPlatypusSetIterator) Close() error {
  2165  	it.sub.Unsubscribe()
  2166  	return nil
  2167  }
  2168  
  2169  // BaseMasterPlatypusSet represents a Set event raised by the BaseMasterPlatypus contract.
  2170  type BaseMasterPlatypusSet struct {
  2171  	Pid        *big.Int
  2172  	AllocPoint *big.Int
  2173  	Rewarder   common.Address
  2174  	Overwrite  bool
  2175  	Raw        types.Log // Blockchain specific contextual infos
  2176  }
  2177  
  2178  // FilterSet is a free log retrieval operation binding the contract event 0xa54644aae5c48c5971516f334e4fe8ecbc7930e23f34877d4203c6551e67ffaa.
  2179  //
  2180  // Solidity: event Set(uint256 indexed pid, uint256 allocPoint, address indexed rewarder, bool overwrite)
  2181  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) FilterSet(opts *bind.FilterOpts, pid []*big.Int, rewarder []common.Address) (*BaseMasterPlatypusSetIterator, error) {
  2182  
  2183  	var pidRule []interface{}
  2184  	for _, pidItem := range pid {
  2185  		pidRule = append(pidRule, pidItem)
  2186  	}
  2187  
  2188  	var rewarderRule []interface{}
  2189  	for _, rewarderItem := range rewarder {
  2190  		rewarderRule = append(rewarderRule, rewarderItem)
  2191  	}
  2192  
  2193  	logs, sub, err := _BaseMasterPlatypus.contract.FilterLogs(opts, "Set", pidRule, rewarderRule)
  2194  	if err != nil {
  2195  		return nil, err
  2196  	}
  2197  	return &BaseMasterPlatypusSetIterator{contract: _BaseMasterPlatypus.contract, event: "Set", logs: logs, sub: sub}, nil
  2198  }
  2199  
  2200  // WatchSet is a free log subscription operation binding the contract event 0xa54644aae5c48c5971516f334e4fe8ecbc7930e23f34877d4203c6551e67ffaa.
  2201  //
  2202  // Solidity: event Set(uint256 indexed pid, uint256 allocPoint, address indexed rewarder, bool overwrite)
  2203  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) WatchSet(opts *bind.WatchOpts, sink chan<- *BaseMasterPlatypusSet, pid []*big.Int, rewarder []common.Address) (event.Subscription, error) {
  2204  
  2205  	var pidRule []interface{}
  2206  	for _, pidItem := range pid {
  2207  		pidRule = append(pidRule, pidItem)
  2208  	}
  2209  
  2210  	var rewarderRule []interface{}
  2211  	for _, rewarderItem := range rewarder {
  2212  		rewarderRule = append(rewarderRule, rewarderItem)
  2213  	}
  2214  
  2215  	logs, sub, err := _BaseMasterPlatypus.contract.WatchLogs(opts, "Set", pidRule, rewarderRule)
  2216  	if err != nil {
  2217  		return nil, err
  2218  	}
  2219  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2220  		defer sub.Unsubscribe()
  2221  		for {
  2222  			select {
  2223  			case log := <-logs:
  2224  				// New log arrived, parse the event and forward to the user
  2225  				event := new(BaseMasterPlatypusSet)
  2226  				if err := _BaseMasterPlatypus.contract.UnpackLog(event, "Set", log); err != nil {
  2227  					return err
  2228  				}
  2229  				event.Raw = log
  2230  
  2231  				select {
  2232  				case sink <- event:
  2233  				case err := <-sub.Err():
  2234  					return err
  2235  				case <-quit:
  2236  					return nil
  2237  				}
  2238  			case err := <-sub.Err():
  2239  				return err
  2240  			case <-quit:
  2241  				return nil
  2242  			}
  2243  		}
  2244  	}), nil
  2245  }
  2246  
  2247  // ParseSet is a log parse operation binding the contract event 0xa54644aae5c48c5971516f334e4fe8ecbc7930e23f34877d4203c6551e67ffaa.
  2248  //
  2249  // Solidity: event Set(uint256 indexed pid, uint256 allocPoint, address indexed rewarder, bool overwrite)
  2250  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) ParseSet(log types.Log) (*BaseMasterPlatypusSet, error) {
  2251  	event := new(BaseMasterPlatypusSet)
  2252  	if err := _BaseMasterPlatypus.contract.UnpackLog(event, "Set", log); err != nil {
  2253  		return nil, err
  2254  	}
  2255  	event.Raw = log
  2256  	return event, nil
  2257  }
  2258  
  2259  // BaseMasterPlatypusUnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the BaseMasterPlatypus contract.
  2260  type BaseMasterPlatypusUnpausedIterator struct {
  2261  	Event *BaseMasterPlatypusUnpaused // Event containing the contract specifics and raw log
  2262  
  2263  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2264  	event    string              // Event name to use for unpacking event data
  2265  
  2266  	logs chan types.Log        // Log channel receiving the found contract events
  2267  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2268  	done bool                  // Whether the subscription completed delivering logs
  2269  	fail error                 // Occurred error to stop iteration
  2270  }
  2271  
  2272  // Next advances the iterator to the subsequent event, returning whether there
  2273  // are any more events found. In case of a retrieval or parsing error, false is
  2274  // returned and Error() can be queried for the exact failure.
  2275  func (it *BaseMasterPlatypusUnpausedIterator) Next() bool {
  2276  	// If the iterator failed, stop iterating
  2277  	if it.fail != nil {
  2278  		return false
  2279  	}
  2280  	// If the iterator completed, deliver directly whatever's available
  2281  	if it.done {
  2282  		select {
  2283  		case log := <-it.logs:
  2284  			it.Event = new(BaseMasterPlatypusUnpaused)
  2285  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2286  				it.fail = err
  2287  				return false
  2288  			}
  2289  			it.Event.Raw = log
  2290  			return true
  2291  
  2292  		default:
  2293  			return false
  2294  		}
  2295  	}
  2296  	// Iterator still in progress, wait for either a data or an error event
  2297  	select {
  2298  	case log := <-it.logs:
  2299  		it.Event = new(BaseMasterPlatypusUnpaused)
  2300  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2301  			it.fail = err
  2302  			return false
  2303  		}
  2304  		it.Event.Raw = log
  2305  		return true
  2306  
  2307  	case err := <-it.sub.Err():
  2308  		it.done = true
  2309  		it.fail = err
  2310  		return it.Next()
  2311  	}
  2312  }
  2313  
  2314  // Error returns any retrieval or parsing error occurred during filtering.
  2315  func (it *BaseMasterPlatypusUnpausedIterator) Error() error {
  2316  	return it.fail
  2317  }
  2318  
  2319  // Close terminates the iteration process, releasing any pending underlying
  2320  // resources.
  2321  func (it *BaseMasterPlatypusUnpausedIterator) Close() error {
  2322  	it.sub.Unsubscribe()
  2323  	return nil
  2324  }
  2325  
  2326  // BaseMasterPlatypusUnpaused represents a Unpaused event raised by the BaseMasterPlatypus contract.
  2327  type BaseMasterPlatypusUnpaused struct {
  2328  	Account common.Address
  2329  	Raw     types.Log // Blockchain specific contextual infos
  2330  }
  2331  
  2332  // FilterUnpaused is a free log retrieval operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa.
  2333  //
  2334  // Solidity: event Unpaused(address account)
  2335  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) FilterUnpaused(opts *bind.FilterOpts) (*BaseMasterPlatypusUnpausedIterator, error) {
  2336  
  2337  	logs, sub, err := _BaseMasterPlatypus.contract.FilterLogs(opts, "Unpaused")
  2338  	if err != nil {
  2339  		return nil, err
  2340  	}
  2341  	return &BaseMasterPlatypusUnpausedIterator{contract: _BaseMasterPlatypus.contract, event: "Unpaused", logs: logs, sub: sub}, nil
  2342  }
  2343  
  2344  // WatchUnpaused is a free log subscription operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa.
  2345  //
  2346  // Solidity: event Unpaused(address account)
  2347  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) WatchUnpaused(opts *bind.WatchOpts, sink chan<- *BaseMasterPlatypusUnpaused) (event.Subscription, error) {
  2348  
  2349  	logs, sub, err := _BaseMasterPlatypus.contract.WatchLogs(opts, "Unpaused")
  2350  	if err != nil {
  2351  		return nil, err
  2352  	}
  2353  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2354  		defer sub.Unsubscribe()
  2355  		for {
  2356  			select {
  2357  			case log := <-logs:
  2358  				// New log arrived, parse the event and forward to the user
  2359  				event := new(BaseMasterPlatypusUnpaused)
  2360  				if err := _BaseMasterPlatypus.contract.UnpackLog(event, "Unpaused", log); err != nil {
  2361  					return err
  2362  				}
  2363  				event.Raw = log
  2364  
  2365  				select {
  2366  				case sink <- event:
  2367  				case err := <-sub.Err():
  2368  					return err
  2369  				case <-quit:
  2370  					return nil
  2371  				}
  2372  			case err := <-sub.Err():
  2373  				return err
  2374  			case <-quit:
  2375  				return nil
  2376  			}
  2377  		}
  2378  	}), nil
  2379  }
  2380  
  2381  // ParseUnpaused is a log parse operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa.
  2382  //
  2383  // Solidity: event Unpaused(address account)
  2384  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) ParseUnpaused(log types.Log) (*BaseMasterPlatypusUnpaused, error) {
  2385  	event := new(BaseMasterPlatypusUnpaused)
  2386  	if err := _BaseMasterPlatypus.contract.UnpackLog(event, "Unpaused", log); err != nil {
  2387  		return nil, err
  2388  	}
  2389  	event.Raw = log
  2390  	return event, nil
  2391  }
  2392  
  2393  // BaseMasterPlatypusUpdateEmissionRateIterator is returned from FilterUpdateEmissionRate and is used to iterate over the raw logs and unpacked data for UpdateEmissionRate events raised by the BaseMasterPlatypus contract.
  2394  type BaseMasterPlatypusUpdateEmissionRateIterator struct {
  2395  	Event *BaseMasterPlatypusUpdateEmissionRate // Event containing the contract specifics and raw log
  2396  
  2397  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2398  	event    string              // Event name to use for unpacking event data
  2399  
  2400  	logs chan types.Log        // Log channel receiving the found contract events
  2401  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2402  	done bool                  // Whether the subscription completed delivering logs
  2403  	fail error                 // Occurred error to stop iteration
  2404  }
  2405  
  2406  // Next advances the iterator to the subsequent event, returning whether there
  2407  // are any more events found. In case of a retrieval or parsing error, false is
  2408  // returned and Error() can be queried for the exact failure.
  2409  func (it *BaseMasterPlatypusUpdateEmissionRateIterator) Next() bool {
  2410  	// If the iterator failed, stop iterating
  2411  	if it.fail != nil {
  2412  		return false
  2413  	}
  2414  	// If the iterator completed, deliver directly whatever's available
  2415  	if it.done {
  2416  		select {
  2417  		case log := <-it.logs:
  2418  			it.Event = new(BaseMasterPlatypusUpdateEmissionRate)
  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  		default:
  2427  			return false
  2428  		}
  2429  	}
  2430  	// Iterator still in progress, wait for either a data or an error event
  2431  	select {
  2432  	case log := <-it.logs:
  2433  		it.Event = new(BaseMasterPlatypusUpdateEmissionRate)
  2434  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2435  			it.fail = err
  2436  			return false
  2437  		}
  2438  		it.Event.Raw = log
  2439  		return true
  2440  
  2441  	case err := <-it.sub.Err():
  2442  		it.done = true
  2443  		it.fail = err
  2444  		return it.Next()
  2445  	}
  2446  }
  2447  
  2448  // Error returns any retrieval or parsing error occurred during filtering.
  2449  func (it *BaseMasterPlatypusUpdateEmissionRateIterator) Error() error {
  2450  	return it.fail
  2451  }
  2452  
  2453  // Close terminates the iteration process, releasing any pending underlying
  2454  // resources.
  2455  func (it *BaseMasterPlatypusUpdateEmissionRateIterator) Close() error {
  2456  	it.sub.Unsubscribe()
  2457  	return nil
  2458  }
  2459  
  2460  // BaseMasterPlatypusUpdateEmissionRate represents a UpdateEmissionRate event raised by the BaseMasterPlatypus contract.
  2461  type BaseMasterPlatypusUpdateEmissionRate struct {
  2462  	User      common.Address
  2463  	PtpPerSec *big.Int
  2464  	Raw       types.Log // Blockchain specific contextual infos
  2465  }
  2466  
  2467  // FilterUpdateEmissionRate is a free log retrieval operation binding the contract event 0xe2492e003bbe8afa53088b406f0c1cb5d9e280370fc72a74cf116ffd343c4053.
  2468  //
  2469  // Solidity: event UpdateEmissionRate(address indexed user, uint256 ptpPerSec)
  2470  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) FilterUpdateEmissionRate(opts *bind.FilterOpts, user []common.Address) (*BaseMasterPlatypusUpdateEmissionRateIterator, error) {
  2471  
  2472  	var userRule []interface{}
  2473  	for _, userItem := range user {
  2474  		userRule = append(userRule, userItem)
  2475  	}
  2476  
  2477  	logs, sub, err := _BaseMasterPlatypus.contract.FilterLogs(opts, "UpdateEmissionRate", userRule)
  2478  	if err != nil {
  2479  		return nil, err
  2480  	}
  2481  	return &BaseMasterPlatypusUpdateEmissionRateIterator{contract: _BaseMasterPlatypus.contract, event: "UpdateEmissionRate", logs: logs, sub: sub}, nil
  2482  }
  2483  
  2484  // WatchUpdateEmissionRate is a free log subscription operation binding the contract event 0xe2492e003bbe8afa53088b406f0c1cb5d9e280370fc72a74cf116ffd343c4053.
  2485  //
  2486  // Solidity: event UpdateEmissionRate(address indexed user, uint256 ptpPerSec)
  2487  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) WatchUpdateEmissionRate(opts *bind.WatchOpts, sink chan<- *BaseMasterPlatypusUpdateEmissionRate, user []common.Address) (event.Subscription, error) {
  2488  
  2489  	var userRule []interface{}
  2490  	for _, userItem := range user {
  2491  		userRule = append(userRule, userItem)
  2492  	}
  2493  
  2494  	logs, sub, err := _BaseMasterPlatypus.contract.WatchLogs(opts, "UpdateEmissionRate", userRule)
  2495  	if err != nil {
  2496  		return nil, err
  2497  	}
  2498  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2499  		defer sub.Unsubscribe()
  2500  		for {
  2501  			select {
  2502  			case log := <-logs:
  2503  				// New log arrived, parse the event and forward to the user
  2504  				event := new(BaseMasterPlatypusUpdateEmissionRate)
  2505  				if err := _BaseMasterPlatypus.contract.UnpackLog(event, "UpdateEmissionRate", log); err != nil {
  2506  					return err
  2507  				}
  2508  				event.Raw = log
  2509  
  2510  				select {
  2511  				case sink <- event:
  2512  				case err := <-sub.Err():
  2513  					return err
  2514  				case <-quit:
  2515  					return nil
  2516  				}
  2517  			case err := <-sub.Err():
  2518  				return err
  2519  			case <-quit:
  2520  				return nil
  2521  			}
  2522  		}
  2523  	}), nil
  2524  }
  2525  
  2526  // ParseUpdateEmissionRate is a log parse operation binding the contract event 0xe2492e003bbe8afa53088b406f0c1cb5d9e280370fc72a74cf116ffd343c4053.
  2527  //
  2528  // Solidity: event UpdateEmissionRate(address indexed user, uint256 ptpPerSec)
  2529  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) ParseUpdateEmissionRate(log types.Log) (*BaseMasterPlatypusUpdateEmissionRate, error) {
  2530  	event := new(BaseMasterPlatypusUpdateEmissionRate)
  2531  	if err := _BaseMasterPlatypus.contract.UnpackLog(event, "UpdateEmissionRate", log); err != nil {
  2532  		return nil, err
  2533  	}
  2534  	event.Raw = log
  2535  	return event, nil
  2536  }
  2537  
  2538  // BaseMasterPlatypusUpdatePoolIterator is returned from FilterUpdatePool and is used to iterate over the raw logs and unpacked data for UpdatePool events raised by the BaseMasterPlatypus contract.
  2539  type BaseMasterPlatypusUpdatePoolIterator struct {
  2540  	Event *BaseMasterPlatypusUpdatePool // Event containing the contract specifics and raw log
  2541  
  2542  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2543  	event    string              // Event name to use for unpacking event data
  2544  
  2545  	logs chan types.Log        // Log channel receiving the found contract events
  2546  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2547  	done bool                  // Whether the subscription completed delivering logs
  2548  	fail error                 // Occurred error to stop iteration
  2549  }
  2550  
  2551  // Next advances the iterator to the subsequent event, returning whether there
  2552  // are any more events found. In case of a retrieval or parsing error, false is
  2553  // returned and Error() can be queried for the exact failure.
  2554  func (it *BaseMasterPlatypusUpdatePoolIterator) Next() bool {
  2555  	// If the iterator failed, stop iterating
  2556  	if it.fail != nil {
  2557  		return false
  2558  	}
  2559  	// If the iterator completed, deliver directly whatever's available
  2560  	if it.done {
  2561  		select {
  2562  		case log := <-it.logs:
  2563  			it.Event = new(BaseMasterPlatypusUpdatePool)
  2564  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2565  				it.fail = err
  2566  				return false
  2567  			}
  2568  			it.Event.Raw = log
  2569  			return true
  2570  
  2571  		default:
  2572  			return false
  2573  		}
  2574  	}
  2575  	// Iterator still in progress, wait for either a data or an error event
  2576  	select {
  2577  	case log := <-it.logs:
  2578  		it.Event = new(BaseMasterPlatypusUpdatePool)
  2579  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2580  			it.fail = err
  2581  			return false
  2582  		}
  2583  		it.Event.Raw = log
  2584  		return true
  2585  
  2586  	case err := <-it.sub.Err():
  2587  		it.done = true
  2588  		it.fail = err
  2589  		return it.Next()
  2590  	}
  2591  }
  2592  
  2593  // Error returns any retrieval or parsing error occurred during filtering.
  2594  func (it *BaseMasterPlatypusUpdatePoolIterator) Error() error {
  2595  	return it.fail
  2596  }
  2597  
  2598  // Close terminates the iteration process, releasing any pending underlying
  2599  // resources.
  2600  func (it *BaseMasterPlatypusUpdatePoolIterator) Close() error {
  2601  	it.sub.Unsubscribe()
  2602  	return nil
  2603  }
  2604  
  2605  // BaseMasterPlatypusUpdatePool represents a UpdatePool event raised by the BaseMasterPlatypus contract.
  2606  type BaseMasterPlatypusUpdatePool struct {
  2607  	Pid                 *big.Int
  2608  	LastRewardTimestamp *big.Int
  2609  	LpSupply            *big.Int
  2610  	AccPtpPerShare      *big.Int
  2611  	Raw                 types.Log // Blockchain specific contextual infos
  2612  }
  2613  
  2614  // FilterUpdatePool is a free log retrieval operation binding the contract event 0x3be3541fc42237d611b30329040bfa4569541d156560acdbbae57640d20b8f46.
  2615  //
  2616  // Solidity: event UpdatePool(uint256 indexed pid, uint256 lastRewardTimestamp, uint256 lpSupply, uint256 accPtpPerShare)
  2617  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) FilterUpdatePool(opts *bind.FilterOpts, pid []*big.Int) (*BaseMasterPlatypusUpdatePoolIterator, error) {
  2618  
  2619  	var pidRule []interface{}
  2620  	for _, pidItem := range pid {
  2621  		pidRule = append(pidRule, pidItem)
  2622  	}
  2623  
  2624  	logs, sub, err := _BaseMasterPlatypus.contract.FilterLogs(opts, "UpdatePool", pidRule)
  2625  	if err != nil {
  2626  		return nil, err
  2627  	}
  2628  	return &BaseMasterPlatypusUpdatePoolIterator{contract: _BaseMasterPlatypus.contract, event: "UpdatePool", logs: logs, sub: sub}, nil
  2629  }
  2630  
  2631  // WatchUpdatePool is a free log subscription operation binding the contract event 0x3be3541fc42237d611b30329040bfa4569541d156560acdbbae57640d20b8f46.
  2632  //
  2633  // Solidity: event UpdatePool(uint256 indexed pid, uint256 lastRewardTimestamp, uint256 lpSupply, uint256 accPtpPerShare)
  2634  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) WatchUpdatePool(opts *bind.WatchOpts, sink chan<- *BaseMasterPlatypusUpdatePool, pid []*big.Int) (event.Subscription, error) {
  2635  
  2636  	var pidRule []interface{}
  2637  	for _, pidItem := range pid {
  2638  		pidRule = append(pidRule, pidItem)
  2639  	}
  2640  
  2641  	logs, sub, err := _BaseMasterPlatypus.contract.WatchLogs(opts, "UpdatePool", pidRule)
  2642  	if err != nil {
  2643  		return nil, err
  2644  	}
  2645  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2646  		defer sub.Unsubscribe()
  2647  		for {
  2648  			select {
  2649  			case log := <-logs:
  2650  				// New log arrived, parse the event and forward to the user
  2651  				event := new(BaseMasterPlatypusUpdatePool)
  2652  				if err := _BaseMasterPlatypus.contract.UnpackLog(event, "UpdatePool", log); err != nil {
  2653  					return err
  2654  				}
  2655  				event.Raw = log
  2656  
  2657  				select {
  2658  				case sink <- event:
  2659  				case err := <-sub.Err():
  2660  					return err
  2661  				case <-quit:
  2662  					return nil
  2663  				}
  2664  			case err := <-sub.Err():
  2665  				return err
  2666  			case <-quit:
  2667  				return nil
  2668  			}
  2669  		}
  2670  	}), nil
  2671  }
  2672  
  2673  // ParseUpdatePool is a log parse operation binding the contract event 0x3be3541fc42237d611b30329040bfa4569541d156560acdbbae57640d20b8f46.
  2674  //
  2675  // Solidity: event UpdatePool(uint256 indexed pid, uint256 lastRewardTimestamp, uint256 lpSupply, uint256 accPtpPerShare)
  2676  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) ParseUpdatePool(log types.Log) (*BaseMasterPlatypusUpdatePool, error) {
  2677  	event := new(BaseMasterPlatypusUpdatePool)
  2678  	if err := _BaseMasterPlatypus.contract.UnpackLog(event, "UpdatePool", log); err != nil {
  2679  		return nil, err
  2680  	}
  2681  	event.Raw = log
  2682  	return event, nil
  2683  }
  2684  
  2685  // BaseMasterPlatypusWithdrawIterator is returned from FilterWithdraw and is used to iterate over the raw logs and unpacked data for Withdraw events raised by the BaseMasterPlatypus contract.
  2686  type BaseMasterPlatypusWithdrawIterator struct {
  2687  	Event *BaseMasterPlatypusWithdraw // Event containing the contract specifics and raw log
  2688  
  2689  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2690  	event    string              // Event name to use for unpacking event data
  2691  
  2692  	logs chan types.Log        // Log channel receiving the found contract events
  2693  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2694  	done bool                  // Whether the subscription completed delivering logs
  2695  	fail error                 // Occurred error to stop iteration
  2696  }
  2697  
  2698  // Next advances the iterator to the subsequent event, returning whether there
  2699  // are any more events found. In case of a retrieval or parsing error, false is
  2700  // returned and Error() can be queried for the exact failure.
  2701  func (it *BaseMasterPlatypusWithdrawIterator) Next() bool {
  2702  	// If the iterator failed, stop iterating
  2703  	if it.fail != nil {
  2704  		return false
  2705  	}
  2706  	// If the iterator completed, deliver directly whatever's available
  2707  	if it.done {
  2708  		select {
  2709  		case log := <-it.logs:
  2710  			it.Event = new(BaseMasterPlatypusWithdraw)
  2711  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2712  				it.fail = err
  2713  				return false
  2714  			}
  2715  			it.Event.Raw = log
  2716  			return true
  2717  
  2718  		default:
  2719  			return false
  2720  		}
  2721  	}
  2722  	// Iterator still in progress, wait for either a data or an error event
  2723  	select {
  2724  	case log := <-it.logs:
  2725  		it.Event = new(BaseMasterPlatypusWithdraw)
  2726  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2727  			it.fail = err
  2728  			return false
  2729  		}
  2730  		it.Event.Raw = log
  2731  		return true
  2732  
  2733  	case err := <-it.sub.Err():
  2734  		it.done = true
  2735  		it.fail = err
  2736  		return it.Next()
  2737  	}
  2738  }
  2739  
  2740  // Error returns any retrieval or parsing error occurred during filtering.
  2741  func (it *BaseMasterPlatypusWithdrawIterator) Error() error {
  2742  	return it.fail
  2743  }
  2744  
  2745  // Close terminates the iteration process, releasing any pending underlying
  2746  // resources.
  2747  func (it *BaseMasterPlatypusWithdrawIterator) Close() error {
  2748  	it.sub.Unsubscribe()
  2749  	return nil
  2750  }
  2751  
  2752  // BaseMasterPlatypusWithdraw represents a Withdraw event raised by the BaseMasterPlatypus contract.
  2753  type BaseMasterPlatypusWithdraw struct {
  2754  	User   common.Address
  2755  	Pid    *big.Int
  2756  	Amount *big.Int
  2757  	Raw    types.Log // Blockchain specific contextual infos
  2758  }
  2759  
  2760  // FilterWithdraw is a free log retrieval operation binding the contract event 0xf279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568.
  2761  //
  2762  // Solidity: event Withdraw(address indexed user, uint256 indexed pid, uint256 amount)
  2763  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) FilterWithdraw(opts *bind.FilterOpts, user []common.Address, pid []*big.Int) (*BaseMasterPlatypusWithdrawIterator, error) {
  2764  
  2765  	var userRule []interface{}
  2766  	for _, userItem := range user {
  2767  		userRule = append(userRule, userItem)
  2768  	}
  2769  	var pidRule []interface{}
  2770  	for _, pidItem := range pid {
  2771  		pidRule = append(pidRule, pidItem)
  2772  	}
  2773  
  2774  	logs, sub, err := _BaseMasterPlatypus.contract.FilterLogs(opts, "Withdraw", userRule, pidRule)
  2775  	if err != nil {
  2776  		return nil, err
  2777  	}
  2778  	return &BaseMasterPlatypusWithdrawIterator{contract: _BaseMasterPlatypus.contract, event: "Withdraw", logs: logs, sub: sub}, nil
  2779  }
  2780  
  2781  // WatchWithdraw is a free log subscription operation binding the contract event 0xf279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568.
  2782  //
  2783  // Solidity: event Withdraw(address indexed user, uint256 indexed pid, uint256 amount)
  2784  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) WatchWithdraw(opts *bind.WatchOpts, sink chan<- *BaseMasterPlatypusWithdraw, user []common.Address, pid []*big.Int) (event.Subscription, error) {
  2785  
  2786  	var userRule []interface{}
  2787  	for _, userItem := range user {
  2788  		userRule = append(userRule, userItem)
  2789  	}
  2790  	var pidRule []interface{}
  2791  	for _, pidItem := range pid {
  2792  		pidRule = append(pidRule, pidItem)
  2793  	}
  2794  
  2795  	logs, sub, err := _BaseMasterPlatypus.contract.WatchLogs(opts, "Withdraw", userRule, pidRule)
  2796  	if err != nil {
  2797  		return nil, err
  2798  	}
  2799  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2800  		defer sub.Unsubscribe()
  2801  		for {
  2802  			select {
  2803  			case log := <-logs:
  2804  				// New log arrived, parse the event and forward to the user
  2805  				event := new(BaseMasterPlatypusWithdraw)
  2806  				if err := _BaseMasterPlatypus.contract.UnpackLog(event, "Withdraw", log); err != nil {
  2807  					return err
  2808  				}
  2809  				event.Raw = log
  2810  
  2811  				select {
  2812  				case sink <- event:
  2813  				case err := <-sub.Err():
  2814  					return err
  2815  				case <-quit:
  2816  					return nil
  2817  				}
  2818  			case err := <-sub.Err():
  2819  				return err
  2820  			case <-quit:
  2821  				return nil
  2822  			}
  2823  		}
  2824  	}), nil
  2825  }
  2826  
  2827  // ParseWithdraw is a log parse operation binding the contract event 0xf279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568.
  2828  //
  2829  // Solidity: event Withdraw(address indexed user, uint256 indexed pid, uint256 amount)
  2830  func (_BaseMasterPlatypus *BaseMasterPlatypusFilterer) ParseWithdraw(log types.Log) (*BaseMasterPlatypusWithdraw, error) {
  2831  	event := new(BaseMasterPlatypusWithdraw)
  2832  	if err := _BaseMasterPlatypus.contract.UnpackLog(event, "Withdraw", log); err != nil {
  2833  		return nil, err
  2834  	}
  2835  	event.Raw = log
  2836  	return event, nil
  2837  }