func (_Bindings *BindingsSession) SetCloseFactor(newCloseFactorMantissa *big.Int) (*types.Transaction, error) {
	return _Bindings.Contract.SetCloseFactor(&_Bindings.TransactOpts, newCloseFactorMantissa)
}
SetCloseFactor is a paid mutator transaction binding the contract method 0x317b0b77.

Solidity: function _setCloseFactor(uint256 newCloseFactorMantissa) returns(uint256)
package bindings
import (
	"math/big"
	"strings"
	ethereum "github.com/ethereum/go-ethereum"
	"github.com/ethereum/go-ethereum/accounts/abi"
	"github.com/ethereum/go-ethereum/accounts/abi/bind"
	"github.com/ethereum/go-ethereum/common"
	"github.com/ethereum/go-ethereum/core/types"
	"github.com/ethereum/go-ethereum/event"
)
var (
	_ = big.NewInt
	_ = strings.NewReader
	_ = ethereum.NotFound
	_ = abi.U256
	_ = bind.Bind
	_ = common.Big1
	_ = types.BloomLookup
	_ = event.NewSubscription
)
const BindingsABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"isComptroller\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"cToken\",\"type\":\"address\"},{\"name\":\"payer\",\"type\":\"address\"},{\"name\":\"borrower\",\"type\":\"address\"},{\"name\":\"repayAmount\",\"type\":\"uint256\"},{\"name\":\"borrowerIndex\",\"type\":\"uint256\"}],\"name\":\"repayBorrowVerify\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"cToken\",\"type\":\"address\"},{\"name\":\"payer\",\"type\":\"address\"},{\"name\":\"borrower\",\"type\":\"address\"},{\"name\":\"repayAmount\",\"type\":\"uint256\"}],\"name\":\"repayBorrowAllowed\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pendingAdmin\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newCloseFactorMantissa\",\"type\":\"uint256\"}],\"name\":\"_setCloseFactor\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"unitroller\",\"type\":\"address\"},{\"name\":\"_oracle\",\"type\":\"address\"},{\"name\":\"_closeFactorMantissa\",\"type\":\"uint256\"},{\"name\":\"_maxAssets\",\"type\":\"uint256\"},{\"name\":\"reinitializing\",\"type\":\"bool\"}],\"name\":\"_become\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"cToken\",\"type\":\"address\"},{\"name\":\"minter\",\"type\":\"address\"},{\"name\":\"mintAmount\",\"type\":\"uint256\"},{\"name\":\"mintTokens\",\"type\":\"uint256\"}],\"name\":\"mintVerify\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"cTokenBorrowed\",\"type\":\"address\"},{\"name\":\"cTokenCollateral\",\"type\":\"address\"},{\"name\":\"liquidator\",\"type\":\"address\"},{\"name\":\"borrower\",\"type\":\"address\"},{\"name\":\"repayAmount\",\"type\":\"uint256\"},{\"name\":\"seizeTokens\",\"type\":\"uint256\"}],\"name\":\"liquidateBorrowVerify\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"liquidationIncentiveMantissa\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"cToken\",\"type\":\"address\"},{\"name\":\"minter\",\"type\":\"address\"},{\"name\":\"mintAmount\",\"type\":\"uint256\"}],\"name\":\"mintAllowed\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newLiquidationIncentiveMantissa\",\"type\":\"uint256\"}],\"name\":\"_setLiquidationIncentive\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"cToken\",\"type\":\"address\"},{\"name\":\"redeemer\",\"type\":\"address\"},{\"name\":\"redeemAmount\",\"type\":\"uint256\"},{\"name\":\"redeemTokens\",\"type\":\"uint256\"}],\"name\":\"redeemVerify\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOracle\",\"type\":\"address\"}],\"name\":\"_setPriceOracle\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"cToken\",\"type\":\"address\"},{\"name\":\"borrower\",\"type\":\"address\"},{\"name\":\"borrowAmount\",\"type\":\"uint256\"}],\"name\":\"borrowVerify\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getAccountLiquidity\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"cTokenBorrowed\",\"type\":\"address\"},{\"name\":\"cTokenCollateral\",\"type\":\"address\"},{\"name\":\"liquidator\",\"type\":\"address\"},{\"name\":\"borrower\",\"type\":\"address\"},{\"name\":\"repayAmount\",\"type\":\"uint256\"}],\"name\":\"liquidateBorrowAllowed\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"cToken\",\"type\":\"address\"},{\"name\":\"src\",\"type\":\"address\"},{\"name\":\"dst\",\"type\":\"address\"},{\"name\":\"transferTokens\",\"type\":\"uint256\"}],\"name\":\"transferVerify\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"cTokenCollateral\",\"type\":\"address\"},{\"name\":\"cTokenBorrowed\",\"type\":\"address\"},{\"name\":\"liquidator\",\"type\":\"address\"},{\"name\":\"borrower\",\"type\":\"address\"},{\"name\":\"seizeTokens\",\"type\":\"uint256\"}],\"name\":\"seizeVerify\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"markets\",\"outputs\":[{\"name\":\"isListed\",\"type\":\"bool\"},{\"name\":\"collateralFactorMantissa\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"},{\"name\":\"cToken\",\"type\":\"address\"}],\"name\":\"checkMembership\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"maxAssets\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"cToken\",\"type\":\"address\"}],\"name\":\"_supportMarket\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getAssetsIn\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"comptrollerImplementation\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"cToken\",\"type\":\"address\"},{\"name\":\"src\",\"type\":\"address\"},{\"name\":\"dst\",\"type\":\"address\"},{\"name\":\"transferTokens\",\"type\":\"uint256\"}],\"name\":\"transferAllowed\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"cTokens\",\"type\":\"address[]\"}],\"name\":\"enterMarkets\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"cTokenBorrowed\",\"type\":\"address\"},{\"name\":\"cTokenCollateral\",\"type\":\"address\"},{\"name\":\"repayAmount\",\"type\":\"uint256\"}],\"name\":\"liquidateCalculateSeizeTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"cTokenCollateral\",\"type\":\"address\"},{\"name\":\"cTokenBorrowed\",\"type\":\"address\"},{\"name\":\"liquidator\",\"type\":\"address\"},{\"name\":\"borrower\",\"type\":\"address\"},{\"name\":\"seizeTokens\",\"type\":\"uint256\"}],\"name\":\"seizeAllowed\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newMaxAssets\",\"type\":\"uint256\"}],\"name\":\"_setMaxAssets\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"cToken\",\"type\":\"address\"},{\"name\":\"borrower\",\"type\":\"address\"},{\"name\":\"borrowAmount\",\"type\":\"uint256\"}],\"name\":\"borrowAllowed\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"accountAssets\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pendingComptrollerImplementation\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"cToken\",\"type\":\"address\"},{\"name\":\"newCollateralFactorMantissa\",\"type\":\"uint256\"}],\"name\":\"_setCollateralFactor\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"closeFactorMantissa\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"cToken\",\"type\":\"address\"},{\"name\":\"redeemer\",\"type\":\"address\"},{\"name\":\"redeemTokens\",\"type\":\"uint256\"}],\"name\":\"redeemAllowed\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"cTokenAddress\",\"type\":\"address\"}],\"name\":\"exitMarket\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"cToken\",\"type\":\"address\"}],\"name\":\"MarketListed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"cToken\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MarketEntered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"cToken\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MarketExited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"oldCloseFactorMantissa\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"newCloseFactorMantissa\",\"type\":\"uint256\"}],\"name\":\"NewCloseFactor\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"cToken\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"oldCollateralFactorMantissa\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"newCollateralFactorMantissa\",\"type\":\"uint256\"}],\"name\":\"NewCollateralFactor\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"oldLiquidationIncentiveMantissa\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"newLiquidationIncentiveMantissa\",\"type\":\"uint256\"}],\"name\":\"NewLiquidationIncentive\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"oldMaxAssets\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"newMaxAssets\",\"type\":\"uint256\"}],\"name\":\"NewMaxAssets\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"oldPriceOracle\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"newPriceOracle\",\"type\":\"address\"}],\"name\":\"NewPriceOracle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"error\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"info\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"detail\",\"type\":\"uint256\"}],\"name\":\"Failure\",\"type\":\"event\"}]"
type Bindings struct {
	BindingsCaller      
	BindingsTransactor  
	BindingsFilterer    
}
type BindingsCaller struct {
	contract *bind.BoundContract  
}
type BindingsTransactor struct {
	contract *bind.BoundContract  
}
type BindingsFilterer struct {
	contract *bind.BoundContract  
}
type BindingsSession struct {
	Contract     *Bindings          
	CallOpts     bind.CallOpts      
	TransactOpts bind.TransactOpts  
}
type BindingsCallerSession struct {
	Contract *BindingsCaller  
	CallOpts bind.CallOpts    
}
type BindingsTransactorSession struct {
	Contract     *BindingsTransactor  
	TransactOpts bind.TransactOpts    
}
type BindingsRaw struct {
	Contract *Bindings  
}
type BindingsCallerRaw struct {
	Contract *BindingsCaller  
}
type BindingsTransactorRaw struct {
	Contract *BindingsTransactor  
}
func NewBindings(address common.Address, backend bind.ContractBackend) (*Bindings, error) {
	contract, err := bindBindings(address, backend, backend, backend)
	if err != nil {
		return nil, err
	}
	return &Bindings{BindingsCaller: BindingsCaller{contract: contract}, BindingsTransactor: BindingsTransactor{contract: contract}, BindingsFilterer: BindingsFilterer{contract: contract}}, nil
}
func NewBindingsCaller(address common.Address, caller bind.ContractCaller) (*BindingsCaller, error) {
	contract, err := bindBindings(address, caller, nil, nil)
	if err != nil {
		return nil, err
	}
	return &BindingsCaller{contract: contract}, nil
}
func NewBindingsTransactor(address common.Address, transactor bind.ContractTransactor) (*BindingsTransactor, error) {
	contract, err := bindBindings(address, nil, transactor, nil)
	if err != nil {
		return nil, err
	}
	return &BindingsTransactor{contract: contract}, nil
}
func NewBindingsFilterer(address common.Address, filterer bind.ContractFilterer) (*BindingsFilterer, error) {
	contract, err := bindBindings(address, nil, nil, filterer)
	if err != nil {
		return nil, err
	}
	return &BindingsFilterer{contract: contract}, nil
}
func bindBindings(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
	parsed, err := abi.JSON(strings.NewReader(BindingsABI))
	if err != nil {
		return nil, err
	}
	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
}
func (_Bindings *BindingsRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
	return _Bindings.Contract.BindingsCaller.contract.Call(opts, result, method, params...)
}
func (_Bindings *BindingsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
	return _Bindings.Contract.BindingsTransactor.contract.Transfer(opts)
}
func (_Bindings *BindingsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
	return _Bindings.Contract.BindingsTransactor.contract.Transact(opts, method, params...)
}
func (_Bindings *BindingsCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
	return _Bindings.Contract.contract.Call(opts, result, method, params...)
}
func (_Bindings *BindingsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
	return _Bindings.Contract.contract.Transfer(opts)
}
func (_Bindings *BindingsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
	return _Bindings.Contract.contract.Transact(opts, method, params...)
}
func (_Bindings *BindingsCaller) AccountAssets(opts *bind.CallOpts, arg0 common.Address, arg1 *big.Int) (common.Address, error) {
	var (
		ret0 = new(common.Address)
	)
	out := ret0
	err := _Bindings.contract.Call(opts, out, "accountAssets", arg0, arg1)
	return *ret0, err
}
func (_Bindings *BindingsSession) AccountAssets(arg0 common.Address, arg1 *big.Int) (common.Address, error) {
	return _Bindings.Contract.AccountAssets(&_Bindings.CallOpts, arg0, arg1)
}
func (_Bindings *BindingsCallerSession) AccountAssets(arg0 common.Address, arg1 *big.Int) (common.Address, error) {
	return _Bindings.Contract.AccountAssets(&_Bindings.CallOpts, arg0, arg1)
}
func (_Bindings *BindingsCaller) Admin(opts *bind.CallOpts) (common.Address, error) {
	var (
		ret0 = new(common.Address)
	)
	out := ret0
	err := _Bindings.contract.Call(opts, out, "admin")
	return *ret0, err
}
func (_Bindings *BindingsSession) Admin() (common.Address, error) {
	return _Bindings.Contract.Admin(&_Bindings.CallOpts)
}
func (_Bindings *BindingsCallerSession) Admin() (common.Address, error) {
	return _Bindings.Contract.Admin(&_Bindings.CallOpts)
}
func (_Bindings *BindingsCaller) CheckMembership(opts *bind.CallOpts, account common.Address, cToken common.Address) (bool, error) {
	var (
		ret0 = new(bool)
	)
	out := ret0
	err := _Bindings.contract.Call(opts, out, "checkMembership", account, cToken)
	return *ret0, err
}
func (_Bindings *BindingsSession) CheckMembership(account common.Address, cToken common.Address) (bool, error) {
	return _Bindings.Contract.CheckMembership(&_Bindings.CallOpts, account, cToken)
}
func (_Bindings *BindingsCallerSession) CheckMembership(account common.Address, cToken common.Address) (bool, error) {
	return _Bindings.Contract.CheckMembership(&_Bindings.CallOpts, account, cToken)
}
func (_Bindings *BindingsCaller) CloseFactorMantissa(opts *bind.CallOpts) (*big.Int, error) {
	var (
		ret0 = new(*big.Int)
	)
	out := ret0
	err := _Bindings.contract.Call(opts, out, "closeFactorMantissa")
	return *ret0, err
}
func (_Bindings *BindingsSession) CloseFactorMantissa() (*big.Int, error) {
	return _Bindings.Contract.CloseFactorMantissa(&_Bindings.CallOpts)
}
func (_Bindings *BindingsCallerSession) CloseFactorMantissa() (*big.Int, error) {
	return _Bindings.Contract.CloseFactorMantissa(&_Bindings.CallOpts)
}
func (_Bindings *BindingsCaller) ComptrollerImplementation(opts *bind.CallOpts) (common.Address, error) {
	var (
		ret0 = new(common.Address)
	)
	out := ret0
	err := _Bindings.contract.Call(opts, out, "comptrollerImplementation")
	return *ret0, err
}
func (_Bindings *BindingsSession) ComptrollerImplementation() (common.Address, error) {
	return _Bindings.Contract.ComptrollerImplementation(&_Bindings.CallOpts)
}
func (_Bindings *BindingsCallerSession) ComptrollerImplementation() (common.Address, error) {
	return _Bindings.Contract.ComptrollerImplementation(&_Bindings.CallOpts)
}
func (_Bindings *BindingsCaller) GetAccountLiquidity(opts *bind.CallOpts, account common.Address) (*big.Int, *big.Int, *big.Int, error) {
	var (
		ret0 = new(*big.Int)
		ret1 = new(*big.Int)
		ret2 = new(*big.Int)
	)
	out := &[]interface{}{
		ret0,
		ret1,
		ret2,
	}
	err := _Bindings.contract.Call(opts, out, "getAccountLiquidity", account)
	return *ret0, *ret1, *ret2, err
}
func (_Bindings *BindingsSession) GetAccountLiquidity(account common.Address) (*big.Int, *big.Int, *big.Int, error) {
	return _Bindings.Contract.GetAccountLiquidity(&_Bindings.CallOpts, account)
}
func (_Bindings *BindingsCallerSession) GetAccountLiquidity(account common.Address) (*big.Int, *big.Int, *big.Int, error) {
	return _Bindings.Contract.GetAccountLiquidity(&_Bindings.CallOpts, account)
}
func (_Bindings *BindingsCaller) GetAssetsIn(opts *bind.CallOpts, account common.Address) ([]common.Address, error) {
	var (
		ret0 = new([]common.Address)
	)
	out := ret0
	err := _Bindings.contract.Call(opts, out, "getAssetsIn", account)
	return *ret0, err
}
func (_Bindings *BindingsSession) GetAssetsIn(account common.Address) ([]common.Address, error) {
	return _Bindings.Contract.GetAssetsIn(&_Bindings.CallOpts, account)
}
func (_Bindings *BindingsCallerSession) GetAssetsIn(account common.Address) ([]common.Address, error) {
	return _Bindings.Contract.GetAssetsIn(&_Bindings.CallOpts, account)
}
func (_Bindings *BindingsCaller) IsComptroller(opts *bind.CallOpts) (bool, error) {
	var (
		ret0 = new(bool)
	)
	out := ret0
	err := _Bindings.contract.Call(opts, out, "isComptroller")
	return *ret0, err
}
func (_Bindings *BindingsSession) IsComptroller() (bool, error) {
	return _Bindings.Contract.IsComptroller(&_Bindings.CallOpts)
}
func (_Bindings *BindingsCallerSession) IsComptroller() (bool, error) {
	return _Bindings.Contract.IsComptroller(&_Bindings.CallOpts)
}
func (_Bindings *BindingsCaller) LiquidateCalculateSeizeTokens(opts *bind.CallOpts, cTokenBorrowed common.Address, cTokenCollateral common.Address, repayAmount *big.Int) (*big.Int, *big.Int, error) {
	var (
		ret0 = new(*big.Int)
		ret1 = new(*big.Int)
	)
	out := &[]interface{}{
		ret0,
		ret1,
	}
	err := _Bindings.contract.Call(opts, out, "liquidateCalculateSeizeTokens", cTokenBorrowed, cTokenCollateral, repayAmount)
	return *ret0, *ret1, err
}
func (_Bindings *BindingsSession) LiquidateCalculateSeizeTokens(cTokenBorrowed common.Address, cTokenCollateral common.Address, repayAmount *big.Int) (*big.Int, *big.Int, error) {
	return _Bindings.Contract.LiquidateCalculateSeizeTokens(&_Bindings.CallOpts, cTokenBorrowed, cTokenCollateral, repayAmount)
}
func (_Bindings *BindingsCallerSession) LiquidateCalculateSeizeTokens(cTokenBorrowed common.Address, cTokenCollateral common.Address, repayAmount *big.Int) (*big.Int, *big.Int, error) {
	return _Bindings.Contract.LiquidateCalculateSeizeTokens(&_Bindings.CallOpts, cTokenBorrowed, cTokenCollateral, repayAmount)
}
func (_Bindings *BindingsCaller) LiquidationIncentiveMantissa(opts *bind.CallOpts) (*big.Int, error) {
	var (
		ret0 = new(*big.Int)
	)
	out := ret0
	err := _Bindings.contract.Call(opts, out, "liquidationIncentiveMantissa")
	return *ret0, err
}
func (_Bindings *BindingsSession) LiquidationIncentiveMantissa() (*big.Int, error) {
	return _Bindings.Contract.LiquidationIncentiveMantissa(&_Bindings.CallOpts)
}
func (_Bindings *BindingsCallerSession) LiquidationIncentiveMantissa() (*big.Int, error) {
	return _Bindings.Contract.LiquidationIncentiveMantissa(&_Bindings.CallOpts)
}
func (_Bindings *BindingsCaller) Markets(opts *bind.CallOpts, arg0 common.Address) (struct {
	IsListed                 bool
	CollateralFactorMantissa *big.Int
}, error) {
	ret := new(struct {
		IsListed                 bool
		CollateralFactorMantissa *big.Int
	})
	out := ret
	err := _Bindings.contract.Call(opts, out, "markets", arg0)
	return *ret, err
}
func (_Bindings *BindingsSession) Markets(arg0 common.Address) (struct {
	IsListed                 bool
	CollateralFactorMantissa *big.Int
}, error) {
	return _Bindings.Contract.Markets(&_Bindings.CallOpts, arg0)
}
func (_Bindings *BindingsCallerSession) Markets(arg0 common.Address) (struct {
	IsListed                 bool
	CollateralFactorMantissa *big.Int
}, error) {
	return _Bindings.Contract.Markets(&_Bindings.CallOpts, arg0)
}
func (_Bindings *BindingsCaller) MaxAssets(opts *bind.CallOpts) (*big.Int, error) {
	var (
		ret0 = new(*big.Int)
	)
	out := ret0
	err := _Bindings.contract.Call(opts, out, "maxAssets")
	return *ret0, err
}
func (_Bindings *BindingsSession) MaxAssets() (*big.Int, error) {
	return _Bindings.Contract.MaxAssets(&_Bindings.CallOpts)
}
func (_Bindings *BindingsCallerSession) MaxAssets() (*big.Int, error) {
	return _Bindings.Contract.MaxAssets(&_Bindings.CallOpts)
}
func (_Bindings *BindingsCaller) Oracle(opts *bind.CallOpts) (common.Address, error) {
	var (
		ret0 = new(common.Address)
	)
	out := ret0
	err := _Bindings.contract.Call(opts, out, "oracle")
	return *ret0, err
}
func (_Bindings *BindingsSession) Oracle() (common.Address, error) {
	return _Bindings.Contract.Oracle(&_Bindings.CallOpts)
}
func (_Bindings *BindingsCallerSession) Oracle() (common.Address, error) {
	return _Bindings.Contract.Oracle(&_Bindings.CallOpts)
}
func (_Bindings *BindingsCaller) PendingAdmin(opts *bind.CallOpts) (common.Address, error) {
	var (
		ret0 = new(common.Address)
	)
	out := ret0
	err := _Bindings.contract.Call(opts, out, "pendingAdmin")
	return *ret0, err
}
func (_Bindings *BindingsSession) PendingAdmin() (common.Address, error) {
	return _Bindings.Contract.PendingAdmin(&_Bindings.CallOpts)
}
func (_Bindings *BindingsCallerSession) PendingAdmin() (common.Address, error) {
	return _Bindings.Contract.PendingAdmin(&_Bindings.CallOpts)
}
func (_Bindings *BindingsCaller) PendingComptrollerImplementation(opts *bind.CallOpts) (common.Address, error) {
	var (
		ret0 = new(common.Address)
	)
	out := ret0
	err := _Bindings.contract.Call(opts, out, "pendingComptrollerImplementation")
	return *ret0, err
}
func (_Bindings *BindingsSession) PendingComptrollerImplementation() (common.Address, error) {
	return _Bindings.Contract.PendingComptrollerImplementation(&_Bindings.CallOpts)
}
func (_Bindings *BindingsCallerSession) PendingComptrollerImplementation() (common.Address, error) {
	return _Bindings.Contract.PendingComptrollerImplementation(&_Bindings.CallOpts)
}
func (_Bindings *BindingsTransactor) Become(opts *bind.TransactOpts, unitroller common.Address, _oracle common.Address, _closeFactorMantissa *big.Int, _maxAssets *big.Int, reinitializing bool) (*types.Transaction, error) {
	return _Bindings.contract.Transact(opts, "_become", unitroller, _oracle, _closeFactorMantissa, _maxAssets, reinitializing)
}
func (_Bindings *BindingsSession) Become(unitroller common.Address, _oracle common.Address, _closeFactorMantissa *big.Int, _maxAssets *big.Int, reinitializing bool) (*types.Transaction, error) {
	return _Bindings.Contract.Become(&_Bindings.TransactOpts, unitroller, _oracle, _closeFactorMantissa, _maxAssets, reinitializing)
}
func (_Bindings *BindingsTransactorSession) Become(unitroller common.Address, _oracle common.Address, _closeFactorMantissa *big.Int, _maxAssets *big.Int, reinitializing bool) (*types.Transaction, error) {
	return _Bindings.Contract.Become(&_Bindings.TransactOpts, unitroller, _oracle, _closeFactorMantissa, _maxAssets, reinitializing)
}
func (_Bindings *BindingsTransactor) SetCloseFactor(opts *bind.TransactOpts, newCloseFactorMantissa *big.Int) (*types.Transaction, error) {
	return _Bindings.contract.Transact(opts, "_setCloseFactor", newCloseFactorMantissa)
}