github.com/cwntr/go-defi@v0.0.0-20210629134751-07f9ec2f7e66/binding/yearn/yvault/yvault.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 yvault
     5  
     6  import (
     7  	"math/big"
     8  	"strings"
     9  
    10  	ethereum "github.com/ethereum/go-ethereum"
    11  	"github.com/ethereum/go-ethereum/accounts/abi"
    12  	"github.com/ethereum/go-ethereum/accounts/abi/bind"
    13  	"github.com/ethereum/go-ethereum/common"
    14  	"github.com/ethereum/go-ethereum/core/types"
    15  	"github.com/ethereum/go-ethereum/event"
    16  )
    17  
    18  // Reference imports to suppress errors if they are not otherwise used.
    19  var (
    20  	_ = big.NewInt
    21  	_ = strings.NewReader
    22  	_ = ethereum.NotFound
    23  	_ = bind.Bind
    24  	_ = common.Big1
    25  	_ = types.BloomLookup
    26  	_ = event.NewSubscription
    27  )
    28  
    29  // YvaultABI is the input ABI used to generate the binding from.
    30  const YvaultABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_controller\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"available\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"balance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"controller\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"depositAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"earn\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getPricePerFullShare\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"governance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"reserve\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"harvest\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"max\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"min\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_controller\",\"type\":\"address\"}],\"name\":\"setController\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_governance\",\"type\":\"address\"}],\"name\":\"setGovernance\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_min\",\"type\":\"uint256\"}],\"name\":\"setMin\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"contractIERC20\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_shares\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"withdrawAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
    31  
    32  // Yvault is an auto generated Go binding around an Ethereum contract.
    33  type Yvault struct {
    34  	YvaultCaller     // Read-only binding to the contract
    35  	YvaultTransactor // Write-only binding to the contract
    36  	YvaultFilterer   // Log filterer for contract events
    37  }
    38  
    39  // YvaultCaller is an auto generated read-only Go binding around an Ethereum contract.
    40  type YvaultCaller struct {
    41  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    42  }
    43  
    44  // YvaultTransactor is an auto generated write-only Go binding around an Ethereum contract.
    45  type YvaultTransactor struct {
    46  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    47  }
    48  
    49  // YvaultFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
    50  type YvaultFilterer struct {
    51  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    52  }
    53  
    54  // YvaultSession is an auto generated Go binding around an Ethereum contract,
    55  // with pre-set call and transact options.
    56  type YvaultSession struct {
    57  	Contract     *Yvault           // Generic contract binding to set the session for
    58  	CallOpts     bind.CallOpts     // Call options to use throughout this session
    59  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
    60  }
    61  
    62  // YvaultCallerSession is an auto generated read-only Go binding around an Ethereum contract,
    63  // with pre-set call options.
    64  type YvaultCallerSession struct {
    65  	Contract *YvaultCaller // Generic contract caller binding to set the session for
    66  	CallOpts bind.CallOpts // Call options to use throughout this session
    67  }
    68  
    69  // YvaultTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
    70  // with pre-set transact options.
    71  type YvaultTransactorSession struct {
    72  	Contract     *YvaultTransactor // Generic contract transactor binding to set the session for
    73  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
    74  }
    75  
    76  // YvaultRaw is an auto generated low-level Go binding around an Ethereum contract.
    77  type YvaultRaw struct {
    78  	Contract *Yvault // Generic contract binding to access the raw methods on
    79  }
    80  
    81  // YvaultCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
    82  type YvaultCallerRaw struct {
    83  	Contract *YvaultCaller // Generic read-only contract binding to access the raw methods on
    84  }
    85  
    86  // YvaultTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
    87  type YvaultTransactorRaw struct {
    88  	Contract *YvaultTransactor // Generic write-only contract binding to access the raw methods on
    89  }
    90  
    91  // NewYvault creates a new instance of Yvault, bound to a specific deployed contract.
    92  func NewYvault(address common.Address, backend bind.ContractBackend) (*Yvault, error) {
    93  	contract, err := bindYvault(address, backend, backend, backend)
    94  	if err != nil {
    95  		return nil, err
    96  	}
    97  	return &Yvault{YvaultCaller: YvaultCaller{contract: contract}, YvaultTransactor: YvaultTransactor{contract: contract}, YvaultFilterer: YvaultFilterer{contract: contract}}, nil
    98  }
    99  
   100  // NewYvaultCaller creates a new read-only instance of Yvault, bound to a specific deployed contract.
   101  func NewYvaultCaller(address common.Address, caller bind.ContractCaller) (*YvaultCaller, error) {
   102  	contract, err := bindYvault(address, caller, nil, nil)
   103  	if err != nil {
   104  		return nil, err
   105  	}
   106  	return &YvaultCaller{contract: contract}, nil
   107  }
   108  
   109  // NewYvaultTransactor creates a new write-only instance of Yvault, bound to a specific deployed contract.
   110  func NewYvaultTransactor(address common.Address, transactor bind.ContractTransactor) (*YvaultTransactor, error) {
   111  	contract, err := bindYvault(address, nil, transactor, nil)
   112  	if err != nil {
   113  		return nil, err
   114  	}
   115  	return &YvaultTransactor{contract: contract}, nil
   116  }
   117  
   118  // NewYvaultFilterer creates a new log filterer instance of Yvault, bound to a specific deployed contract.
   119  func NewYvaultFilterer(address common.Address, filterer bind.ContractFilterer) (*YvaultFilterer, error) {
   120  	contract, err := bindYvault(address, nil, nil, filterer)
   121  	if err != nil {
   122  		return nil, err
   123  	}
   124  	return &YvaultFilterer{contract: contract}, nil
   125  }
   126  
   127  // bindYvault binds a generic wrapper to an already deployed contract.
   128  func bindYvault(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   129  	parsed, err := abi.JSON(strings.NewReader(YvaultABI))
   130  	if err != nil {
   131  		return nil, err
   132  	}
   133  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   134  }
   135  
   136  // Call invokes the (constant) contract method with params as input values and
   137  // sets the output to result. The result type might be a single field for simple
   138  // returns, a slice of interfaces for anonymous returns and a struct for named
   139  // returns.
   140  func (_Yvault *YvaultRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   141  	return _Yvault.Contract.YvaultCaller.contract.Call(opts, result, method, params...)
   142  }
   143  
   144  // Transfer initiates a plain transaction to move funds to the contract, calling
   145  // its default method if one is available.
   146  func (_Yvault *YvaultRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   147  	return _Yvault.Contract.YvaultTransactor.contract.Transfer(opts)
   148  }
   149  
   150  // Transact invokes the (paid) contract method with params as input values.
   151  func (_Yvault *YvaultRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   152  	return _Yvault.Contract.YvaultTransactor.contract.Transact(opts, method, params...)
   153  }
   154  
   155  // Call invokes the (constant) contract method with params as input values and
   156  // sets the output to result. The result type might be a single field for simple
   157  // returns, a slice of interfaces for anonymous returns and a struct for named
   158  // returns.
   159  func (_Yvault *YvaultCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   160  	return _Yvault.Contract.contract.Call(opts, result, method, params...)
   161  }
   162  
   163  // Transfer initiates a plain transaction to move funds to the contract, calling
   164  // its default method if one is available.
   165  func (_Yvault *YvaultTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   166  	return _Yvault.Contract.contract.Transfer(opts)
   167  }
   168  
   169  // Transact invokes the (paid) contract method with params as input values.
   170  func (_Yvault *YvaultTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   171  	return _Yvault.Contract.contract.Transact(opts, method, params...)
   172  }
   173  
   174  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
   175  //
   176  // Solidity: function allowance(address owner, address spender) view returns(uint256)
   177  func (_Yvault *YvaultCaller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) {
   178  	var out []interface{}
   179  	err := _Yvault.contract.Call(opts, &out, "allowance", owner, spender)
   180  
   181  	if err != nil {
   182  		return *new(*big.Int), err
   183  	}
   184  
   185  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   186  
   187  	return out0, err
   188  
   189  }
   190  
   191  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
   192  //
   193  // Solidity: function allowance(address owner, address spender) view returns(uint256)
   194  func (_Yvault *YvaultSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
   195  	return _Yvault.Contract.Allowance(&_Yvault.CallOpts, owner, spender)
   196  }
   197  
   198  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
   199  //
   200  // Solidity: function allowance(address owner, address spender) view returns(uint256)
   201  func (_Yvault *YvaultCallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
   202  	return _Yvault.Contract.Allowance(&_Yvault.CallOpts, owner, spender)
   203  }
   204  
   205  // Available is a free data retrieval call binding the contract method 0x48a0d754.
   206  //
   207  // Solidity: function available() view returns(uint256)
   208  func (_Yvault *YvaultCaller) Available(opts *bind.CallOpts) (*big.Int, error) {
   209  	var out []interface{}
   210  	err := _Yvault.contract.Call(opts, &out, "available")
   211  
   212  	if err != nil {
   213  		return *new(*big.Int), err
   214  	}
   215  
   216  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   217  
   218  	return out0, err
   219  
   220  }
   221  
   222  // Available is a free data retrieval call binding the contract method 0x48a0d754.
   223  //
   224  // Solidity: function available() view returns(uint256)
   225  func (_Yvault *YvaultSession) Available() (*big.Int, error) {
   226  	return _Yvault.Contract.Available(&_Yvault.CallOpts)
   227  }
   228  
   229  // Available is a free data retrieval call binding the contract method 0x48a0d754.
   230  //
   231  // Solidity: function available() view returns(uint256)
   232  func (_Yvault *YvaultCallerSession) Available() (*big.Int, error) {
   233  	return _Yvault.Contract.Available(&_Yvault.CallOpts)
   234  }
   235  
   236  // Balance is a free data retrieval call binding the contract method 0xb69ef8a8.
   237  //
   238  // Solidity: function balance() view returns(uint256)
   239  func (_Yvault *YvaultCaller) Balance(opts *bind.CallOpts) (*big.Int, error) {
   240  	var out []interface{}
   241  	err := _Yvault.contract.Call(opts, &out, "balance")
   242  
   243  	if err != nil {
   244  		return *new(*big.Int), err
   245  	}
   246  
   247  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   248  
   249  	return out0, err
   250  
   251  }
   252  
   253  // Balance is a free data retrieval call binding the contract method 0xb69ef8a8.
   254  //
   255  // Solidity: function balance() view returns(uint256)
   256  func (_Yvault *YvaultSession) Balance() (*big.Int, error) {
   257  	return _Yvault.Contract.Balance(&_Yvault.CallOpts)
   258  }
   259  
   260  // Balance is a free data retrieval call binding the contract method 0xb69ef8a8.
   261  //
   262  // Solidity: function balance() view returns(uint256)
   263  func (_Yvault *YvaultCallerSession) Balance() (*big.Int, error) {
   264  	return _Yvault.Contract.Balance(&_Yvault.CallOpts)
   265  }
   266  
   267  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
   268  //
   269  // Solidity: function balanceOf(address account) view returns(uint256)
   270  func (_Yvault *YvaultCaller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) {
   271  	var out []interface{}
   272  	err := _Yvault.contract.Call(opts, &out, "balanceOf", account)
   273  
   274  	if err != nil {
   275  		return *new(*big.Int), err
   276  	}
   277  
   278  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   279  
   280  	return out0, err
   281  
   282  }
   283  
   284  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
   285  //
   286  // Solidity: function balanceOf(address account) view returns(uint256)
   287  func (_Yvault *YvaultSession) BalanceOf(account common.Address) (*big.Int, error) {
   288  	return _Yvault.Contract.BalanceOf(&_Yvault.CallOpts, account)
   289  }
   290  
   291  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
   292  //
   293  // Solidity: function balanceOf(address account) view returns(uint256)
   294  func (_Yvault *YvaultCallerSession) BalanceOf(account common.Address) (*big.Int, error) {
   295  	return _Yvault.Contract.BalanceOf(&_Yvault.CallOpts, account)
   296  }
   297  
   298  // Controller is a free data retrieval call binding the contract method 0xf77c4791.
   299  //
   300  // Solidity: function controller() view returns(address)
   301  func (_Yvault *YvaultCaller) Controller(opts *bind.CallOpts) (common.Address, error) {
   302  	var out []interface{}
   303  	err := _Yvault.contract.Call(opts, &out, "controller")
   304  
   305  	if err != nil {
   306  		return *new(common.Address), err
   307  	}
   308  
   309  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   310  
   311  	return out0, err
   312  
   313  }
   314  
   315  // Controller is a free data retrieval call binding the contract method 0xf77c4791.
   316  //
   317  // Solidity: function controller() view returns(address)
   318  func (_Yvault *YvaultSession) Controller() (common.Address, error) {
   319  	return _Yvault.Contract.Controller(&_Yvault.CallOpts)
   320  }
   321  
   322  // Controller is a free data retrieval call binding the contract method 0xf77c4791.
   323  //
   324  // Solidity: function controller() view returns(address)
   325  func (_Yvault *YvaultCallerSession) Controller() (common.Address, error) {
   326  	return _Yvault.Contract.Controller(&_Yvault.CallOpts)
   327  }
   328  
   329  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
   330  //
   331  // Solidity: function decimals() view returns(uint8)
   332  func (_Yvault *YvaultCaller) Decimals(opts *bind.CallOpts) (uint8, error) {
   333  	var out []interface{}
   334  	err := _Yvault.contract.Call(opts, &out, "decimals")
   335  
   336  	if err != nil {
   337  		return *new(uint8), err
   338  	}
   339  
   340  	out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8)
   341  
   342  	return out0, err
   343  
   344  }
   345  
   346  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
   347  //
   348  // Solidity: function decimals() view returns(uint8)
   349  func (_Yvault *YvaultSession) Decimals() (uint8, error) {
   350  	return _Yvault.Contract.Decimals(&_Yvault.CallOpts)
   351  }
   352  
   353  // Decimals is a free data retrieval call binding the contract method 0x313ce567.
   354  //
   355  // Solidity: function decimals() view returns(uint8)
   356  func (_Yvault *YvaultCallerSession) Decimals() (uint8, error) {
   357  	return _Yvault.Contract.Decimals(&_Yvault.CallOpts)
   358  }
   359  
   360  // GetPricePerFullShare is a free data retrieval call binding the contract method 0x77c7b8fc.
   361  //
   362  // Solidity: function getPricePerFullShare() view returns(uint256)
   363  func (_Yvault *YvaultCaller) GetPricePerFullShare(opts *bind.CallOpts) (*big.Int, error) {
   364  	var out []interface{}
   365  	err := _Yvault.contract.Call(opts, &out, "getPricePerFullShare")
   366  
   367  	if err != nil {
   368  		return *new(*big.Int), err
   369  	}
   370  
   371  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   372  
   373  	return out0, err
   374  
   375  }
   376  
   377  // GetPricePerFullShare is a free data retrieval call binding the contract method 0x77c7b8fc.
   378  //
   379  // Solidity: function getPricePerFullShare() view returns(uint256)
   380  func (_Yvault *YvaultSession) GetPricePerFullShare() (*big.Int, error) {
   381  	return _Yvault.Contract.GetPricePerFullShare(&_Yvault.CallOpts)
   382  }
   383  
   384  // GetPricePerFullShare is a free data retrieval call binding the contract method 0x77c7b8fc.
   385  //
   386  // Solidity: function getPricePerFullShare() view returns(uint256)
   387  func (_Yvault *YvaultCallerSession) GetPricePerFullShare() (*big.Int, error) {
   388  	return _Yvault.Contract.GetPricePerFullShare(&_Yvault.CallOpts)
   389  }
   390  
   391  // Governance is a free data retrieval call binding the contract method 0x5aa6e675.
   392  //
   393  // Solidity: function governance() view returns(address)
   394  func (_Yvault *YvaultCaller) Governance(opts *bind.CallOpts) (common.Address, error) {
   395  	var out []interface{}
   396  	err := _Yvault.contract.Call(opts, &out, "governance")
   397  
   398  	if err != nil {
   399  		return *new(common.Address), err
   400  	}
   401  
   402  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   403  
   404  	return out0, err
   405  
   406  }
   407  
   408  // Governance is a free data retrieval call binding the contract method 0x5aa6e675.
   409  //
   410  // Solidity: function governance() view returns(address)
   411  func (_Yvault *YvaultSession) Governance() (common.Address, error) {
   412  	return _Yvault.Contract.Governance(&_Yvault.CallOpts)
   413  }
   414  
   415  // Governance is a free data retrieval call binding the contract method 0x5aa6e675.
   416  //
   417  // Solidity: function governance() view returns(address)
   418  func (_Yvault *YvaultCallerSession) Governance() (common.Address, error) {
   419  	return _Yvault.Contract.Governance(&_Yvault.CallOpts)
   420  }
   421  
   422  // Max is a free data retrieval call binding the contract method 0x6ac5db19.
   423  //
   424  // Solidity: function max() view returns(uint256)
   425  func (_Yvault *YvaultCaller) Max(opts *bind.CallOpts) (*big.Int, error) {
   426  	var out []interface{}
   427  	err := _Yvault.contract.Call(opts, &out, "max")
   428  
   429  	if err != nil {
   430  		return *new(*big.Int), err
   431  	}
   432  
   433  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   434  
   435  	return out0, err
   436  
   437  }
   438  
   439  // Max is a free data retrieval call binding the contract method 0x6ac5db19.
   440  //
   441  // Solidity: function max() view returns(uint256)
   442  func (_Yvault *YvaultSession) Max() (*big.Int, error) {
   443  	return _Yvault.Contract.Max(&_Yvault.CallOpts)
   444  }
   445  
   446  // Max is a free data retrieval call binding the contract method 0x6ac5db19.
   447  //
   448  // Solidity: function max() view returns(uint256)
   449  func (_Yvault *YvaultCallerSession) Max() (*big.Int, error) {
   450  	return _Yvault.Contract.Max(&_Yvault.CallOpts)
   451  }
   452  
   453  // Min is a free data retrieval call binding the contract method 0xf8897945.
   454  //
   455  // Solidity: function min() view returns(uint256)
   456  func (_Yvault *YvaultCaller) Min(opts *bind.CallOpts) (*big.Int, error) {
   457  	var out []interface{}
   458  	err := _Yvault.contract.Call(opts, &out, "min")
   459  
   460  	if err != nil {
   461  		return *new(*big.Int), err
   462  	}
   463  
   464  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   465  
   466  	return out0, err
   467  
   468  }
   469  
   470  // Min is a free data retrieval call binding the contract method 0xf8897945.
   471  //
   472  // Solidity: function min() view returns(uint256)
   473  func (_Yvault *YvaultSession) Min() (*big.Int, error) {
   474  	return _Yvault.Contract.Min(&_Yvault.CallOpts)
   475  }
   476  
   477  // Min is a free data retrieval call binding the contract method 0xf8897945.
   478  //
   479  // Solidity: function min() view returns(uint256)
   480  func (_Yvault *YvaultCallerSession) Min() (*big.Int, error) {
   481  	return _Yvault.Contract.Min(&_Yvault.CallOpts)
   482  }
   483  
   484  // Name is a free data retrieval call binding the contract method 0x06fdde03.
   485  //
   486  // Solidity: function name() view returns(string)
   487  func (_Yvault *YvaultCaller) Name(opts *bind.CallOpts) (string, error) {
   488  	var out []interface{}
   489  	err := _Yvault.contract.Call(opts, &out, "name")
   490  
   491  	if err != nil {
   492  		return *new(string), err
   493  	}
   494  
   495  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   496  
   497  	return out0, err
   498  
   499  }
   500  
   501  // Name is a free data retrieval call binding the contract method 0x06fdde03.
   502  //
   503  // Solidity: function name() view returns(string)
   504  func (_Yvault *YvaultSession) Name() (string, error) {
   505  	return _Yvault.Contract.Name(&_Yvault.CallOpts)
   506  }
   507  
   508  // Name is a free data retrieval call binding the contract method 0x06fdde03.
   509  //
   510  // Solidity: function name() view returns(string)
   511  func (_Yvault *YvaultCallerSession) Name() (string, error) {
   512  	return _Yvault.Contract.Name(&_Yvault.CallOpts)
   513  }
   514  
   515  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
   516  //
   517  // Solidity: function symbol() view returns(string)
   518  func (_Yvault *YvaultCaller) Symbol(opts *bind.CallOpts) (string, error) {
   519  	var out []interface{}
   520  	err := _Yvault.contract.Call(opts, &out, "symbol")
   521  
   522  	if err != nil {
   523  		return *new(string), err
   524  	}
   525  
   526  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   527  
   528  	return out0, err
   529  
   530  }
   531  
   532  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
   533  //
   534  // Solidity: function symbol() view returns(string)
   535  func (_Yvault *YvaultSession) Symbol() (string, error) {
   536  	return _Yvault.Contract.Symbol(&_Yvault.CallOpts)
   537  }
   538  
   539  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
   540  //
   541  // Solidity: function symbol() view returns(string)
   542  func (_Yvault *YvaultCallerSession) Symbol() (string, error) {
   543  	return _Yvault.Contract.Symbol(&_Yvault.CallOpts)
   544  }
   545  
   546  // Token is a free data retrieval call binding the contract method 0xfc0c546a.
   547  //
   548  // Solidity: function token() view returns(address)
   549  func (_Yvault *YvaultCaller) Token(opts *bind.CallOpts) (common.Address, error) {
   550  	var out []interface{}
   551  	err := _Yvault.contract.Call(opts, &out, "token")
   552  
   553  	if err != nil {
   554  		return *new(common.Address), err
   555  	}
   556  
   557  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   558  
   559  	return out0, err
   560  
   561  }
   562  
   563  // Token is a free data retrieval call binding the contract method 0xfc0c546a.
   564  //
   565  // Solidity: function token() view returns(address)
   566  func (_Yvault *YvaultSession) Token() (common.Address, error) {
   567  	return _Yvault.Contract.Token(&_Yvault.CallOpts)
   568  }
   569  
   570  // Token is a free data retrieval call binding the contract method 0xfc0c546a.
   571  //
   572  // Solidity: function token() view returns(address)
   573  func (_Yvault *YvaultCallerSession) Token() (common.Address, error) {
   574  	return _Yvault.Contract.Token(&_Yvault.CallOpts)
   575  }
   576  
   577  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
   578  //
   579  // Solidity: function totalSupply() view returns(uint256)
   580  func (_Yvault *YvaultCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
   581  	var out []interface{}
   582  	err := _Yvault.contract.Call(opts, &out, "totalSupply")
   583  
   584  	if err != nil {
   585  		return *new(*big.Int), err
   586  	}
   587  
   588  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   589  
   590  	return out0, err
   591  
   592  }
   593  
   594  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
   595  //
   596  // Solidity: function totalSupply() view returns(uint256)
   597  func (_Yvault *YvaultSession) TotalSupply() (*big.Int, error) {
   598  	return _Yvault.Contract.TotalSupply(&_Yvault.CallOpts)
   599  }
   600  
   601  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
   602  //
   603  // Solidity: function totalSupply() view returns(uint256)
   604  func (_Yvault *YvaultCallerSession) TotalSupply() (*big.Int, error) {
   605  	return _Yvault.Contract.TotalSupply(&_Yvault.CallOpts)
   606  }
   607  
   608  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
   609  //
   610  // Solidity: function approve(address spender, uint256 amount) returns(bool)
   611  func (_Yvault *YvaultTransactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) {
   612  	return _Yvault.contract.Transact(opts, "approve", spender, amount)
   613  }
   614  
   615  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
   616  //
   617  // Solidity: function approve(address spender, uint256 amount) returns(bool)
   618  func (_Yvault *YvaultSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
   619  	return _Yvault.Contract.Approve(&_Yvault.TransactOpts, spender, amount)
   620  }
   621  
   622  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
   623  //
   624  // Solidity: function approve(address spender, uint256 amount) returns(bool)
   625  func (_Yvault *YvaultTransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
   626  	return _Yvault.Contract.Approve(&_Yvault.TransactOpts, spender, amount)
   627  }
   628  
   629  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
   630  //
   631  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
   632  func (_Yvault *YvaultTransactor) DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
   633  	return _Yvault.contract.Transact(opts, "decreaseAllowance", spender, subtractedValue)
   634  }
   635  
   636  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
   637  //
   638  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
   639  func (_Yvault *YvaultSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
   640  	return _Yvault.Contract.DecreaseAllowance(&_Yvault.TransactOpts, spender, subtractedValue)
   641  }
   642  
   643  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
   644  //
   645  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
   646  func (_Yvault *YvaultTransactorSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
   647  	return _Yvault.Contract.DecreaseAllowance(&_Yvault.TransactOpts, spender, subtractedValue)
   648  }
   649  
   650  // Deposit is a paid mutator transaction binding the contract method 0xb6b55f25.
   651  //
   652  // Solidity: function deposit(uint256 _amount) returns()
   653  func (_Yvault *YvaultTransactor) Deposit(opts *bind.TransactOpts, _amount *big.Int) (*types.Transaction, error) {
   654  	return _Yvault.contract.Transact(opts, "deposit", _amount)
   655  }
   656  
   657  // Deposit is a paid mutator transaction binding the contract method 0xb6b55f25.
   658  //
   659  // Solidity: function deposit(uint256 _amount) returns()
   660  func (_Yvault *YvaultSession) Deposit(_amount *big.Int) (*types.Transaction, error) {
   661  	return _Yvault.Contract.Deposit(&_Yvault.TransactOpts, _amount)
   662  }
   663  
   664  // Deposit is a paid mutator transaction binding the contract method 0xb6b55f25.
   665  //
   666  // Solidity: function deposit(uint256 _amount) returns()
   667  func (_Yvault *YvaultTransactorSession) Deposit(_amount *big.Int) (*types.Transaction, error) {
   668  	return _Yvault.Contract.Deposit(&_Yvault.TransactOpts, _amount)
   669  }
   670  
   671  // DepositAll is a paid mutator transaction binding the contract method 0xde5f6268.
   672  //
   673  // Solidity: function depositAll() returns()
   674  func (_Yvault *YvaultTransactor) DepositAll(opts *bind.TransactOpts) (*types.Transaction, error) {
   675  	return _Yvault.contract.Transact(opts, "depositAll")
   676  }
   677  
   678  // DepositAll is a paid mutator transaction binding the contract method 0xde5f6268.
   679  //
   680  // Solidity: function depositAll() returns()
   681  func (_Yvault *YvaultSession) DepositAll() (*types.Transaction, error) {
   682  	return _Yvault.Contract.DepositAll(&_Yvault.TransactOpts)
   683  }
   684  
   685  // DepositAll is a paid mutator transaction binding the contract method 0xde5f6268.
   686  //
   687  // Solidity: function depositAll() returns()
   688  func (_Yvault *YvaultTransactorSession) DepositAll() (*types.Transaction, error) {
   689  	return _Yvault.Contract.DepositAll(&_Yvault.TransactOpts)
   690  }
   691  
   692  // Earn is a paid mutator transaction binding the contract method 0xd389800f.
   693  //
   694  // Solidity: function earn() returns()
   695  func (_Yvault *YvaultTransactor) Earn(opts *bind.TransactOpts) (*types.Transaction, error) {
   696  	return _Yvault.contract.Transact(opts, "earn")
   697  }
   698  
   699  // Earn is a paid mutator transaction binding the contract method 0xd389800f.
   700  //
   701  // Solidity: function earn() returns()
   702  func (_Yvault *YvaultSession) Earn() (*types.Transaction, error) {
   703  	return _Yvault.Contract.Earn(&_Yvault.TransactOpts)
   704  }
   705  
   706  // Earn is a paid mutator transaction binding the contract method 0xd389800f.
   707  //
   708  // Solidity: function earn() returns()
   709  func (_Yvault *YvaultTransactorSession) Earn() (*types.Transaction, error) {
   710  	return _Yvault.Contract.Earn(&_Yvault.TransactOpts)
   711  }
   712  
   713  // Harvest is a paid mutator transaction binding the contract method 0x018ee9b7.
   714  //
   715  // Solidity: function harvest(address reserve, uint256 amount) returns()
   716  func (_Yvault *YvaultTransactor) Harvest(opts *bind.TransactOpts, reserve common.Address, amount *big.Int) (*types.Transaction, error) {
   717  	return _Yvault.contract.Transact(opts, "harvest", reserve, amount)
   718  }
   719  
   720  // Harvest is a paid mutator transaction binding the contract method 0x018ee9b7.
   721  //
   722  // Solidity: function harvest(address reserve, uint256 amount) returns()
   723  func (_Yvault *YvaultSession) Harvest(reserve common.Address, amount *big.Int) (*types.Transaction, error) {
   724  	return _Yvault.Contract.Harvest(&_Yvault.TransactOpts, reserve, amount)
   725  }
   726  
   727  // Harvest is a paid mutator transaction binding the contract method 0x018ee9b7.
   728  //
   729  // Solidity: function harvest(address reserve, uint256 amount) returns()
   730  func (_Yvault *YvaultTransactorSession) Harvest(reserve common.Address, amount *big.Int) (*types.Transaction, error) {
   731  	return _Yvault.Contract.Harvest(&_Yvault.TransactOpts, reserve, amount)
   732  }
   733  
   734  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
   735  //
   736  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
   737  func (_Yvault *YvaultTransactor) IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
   738  	return _Yvault.contract.Transact(opts, "increaseAllowance", spender, addedValue)
   739  }
   740  
   741  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
   742  //
   743  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
   744  func (_Yvault *YvaultSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
   745  	return _Yvault.Contract.IncreaseAllowance(&_Yvault.TransactOpts, spender, addedValue)
   746  }
   747  
   748  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
   749  //
   750  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
   751  func (_Yvault *YvaultTransactorSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
   752  	return _Yvault.Contract.IncreaseAllowance(&_Yvault.TransactOpts, spender, addedValue)
   753  }
   754  
   755  // SetController is a paid mutator transaction binding the contract method 0x92eefe9b.
   756  //
   757  // Solidity: function setController(address _controller) returns()
   758  func (_Yvault *YvaultTransactor) SetController(opts *bind.TransactOpts, _controller common.Address) (*types.Transaction, error) {
   759  	return _Yvault.contract.Transact(opts, "setController", _controller)
   760  }
   761  
   762  // SetController is a paid mutator transaction binding the contract method 0x92eefe9b.
   763  //
   764  // Solidity: function setController(address _controller) returns()
   765  func (_Yvault *YvaultSession) SetController(_controller common.Address) (*types.Transaction, error) {
   766  	return _Yvault.Contract.SetController(&_Yvault.TransactOpts, _controller)
   767  }
   768  
   769  // SetController is a paid mutator transaction binding the contract method 0x92eefe9b.
   770  //
   771  // Solidity: function setController(address _controller) returns()
   772  func (_Yvault *YvaultTransactorSession) SetController(_controller common.Address) (*types.Transaction, error) {
   773  	return _Yvault.Contract.SetController(&_Yvault.TransactOpts, _controller)
   774  }
   775  
   776  // SetGovernance is a paid mutator transaction binding the contract method 0xab033ea9.
   777  //
   778  // Solidity: function setGovernance(address _governance) returns()
   779  func (_Yvault *YvaultTransactor) SetGovernance(opts *bind.TransactOpts, _governance common.Address) (*types.Transaction, error) {
   780  	return _Yvault.contract.Transact(opts, "setGovernance", _governance)
   781  }
   782  
   783  // SetGovernance is a paid mutator transaction binding the contract method 0xab033ea9.
   784  //
   785  // Solidity: function setGovernance(address _governance) returns()
   786  func (_Yvault *YvaultSession) SetGovernance(_governance common.Address) (*types.Transaction, error) {
   787  	return _Yvault.Contract.SetGovernance(&_Yvault.TransactOpts, _governance)
   788  }
   789  
   790  // SetGovernance is a paid mutator transaction binding the contract method 0xab033ea9.
   791  //
   792  // Solidity: function setGovernance(address _governance) returns()
   793  func (_Yvault *YvaultTransactorSession) SetGovernance(_governance common.Address) (*types.Transaction, error) {
   794  	return _Yvault.Contract.SetGovernance(&_Yvault.TransactOpts, _governance)
   795  }
   796  
   797  // SetMin is a paid mutator transaction binding the contract method 0x45dc3dd8.
   798  //
   799  // Solidity: function setMin(uint256 _min) returns()
   800  func (_Yvault *YvaultTransactor) SetMin(opts *bind.TransactOpts, _min *big.Int) (*types.Transaction, error) {
   801  	return _Yvault.contract.Transact(opts, "setMin", _min)
   802  }
   803  
   804  // SetMin is a paid mutator transaction binding the contract method 0x45dc3dd8.
   805  //
   806  // Solidity: function setMin(uint256 _min) returns()
   807  func (_Yvault *YvaultSession) SetMin(_min *big.Int) (*types.Transaction, error) {
   808  	return _Yvault.Contract.SetMin(&_Yvault.TransactOpts, _min)
   809  }
   810  
   811  // SetMin is a paid mutator transaction binding the contract method 0x45dc3dd8.
   812  //
   813  // Solidity: function setMin(uint256 _min) returns()
   814  func (_Yvault *YvaultTransactorSession) SetMin(_min *big.Int) (*types.Transaction, error) {
   815  	return _Yvault.Contract.SetMin(&_Yvault.TransactOpts, _min)
   816  }
   817  
   818  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
   819  //
   820  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
   821  func (_Yvault *YvaultTransactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
   822  	return _Yvault.contract.Transact(opts, "transfer", recipient, amount)
   823  }
   824  
   825  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
   826  //
   827  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
   828  func (_Yvault *YvaultSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
   829  	return _Yvault.Contract.Transfer(&_Yvault.TransactOpts, recipient, amount)
   830  }
   831  
   832  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
   833  //
   834  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
   835  func (_Yvault *YvaultTransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
   836  	return _Yvault.Contract.Transfer(&_Yvault.TransactOpts, recipient, amount)
   837  }
   838  
   839  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
   840  //
   841  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
   842  func (_Yvault *YvaultTransactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
   843  	return _Yvault.contract.Transact(opts, "transferFrom", sender, recipient, amount)
   844  }
   845  
   846  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
   847  //
   848  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
   849  func (_Yvault *YvaultSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
   850  	return _Yvault.Contract.TransferFrom(&_Yvault.TransactOpts, sender, recipient, amount)
   851  }
   852  
   853  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
   854  //
   855  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
   856  func (_Yvault *YvaultTransactorSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
   857  	return _Yvault.Contract.TransferFrom(&_Yvault.TransactOpts, sender, recipient, amount)
   858  }
   859  
   860  // Withdraw is a paid mutator transaction binding the contract method 0x2e1a7d4d.
   861  //
   862  // Solidity: function withdraw(uint256 _shares) returns()
   863  func (_Yvault *YvaultTransactor) Withdraw(opts *bind.TransactOpts, _shares *big.Int) (*types.Transaction, error) {
   864  	return _Yvault.contract.Transact(opts, "withdraw", _shares)
   865  }
   866  
   867  // Withdraw is a paid mutator transaction binding the contract method 0x2e1a7d4d.
   868  //
   869  // Solidity: function withdraw(uint256 _shares) returns()
   870  func (_Yvault *YvaultSession) Withdraw(_shares *big.Int) (*types.Transaction, error) {
   871  	return _Yvault.Contract.Withdraw(&_Yvault.TransactOpts, _shares)
   872  }
   873  
   874  // Withdraw is a paid mutator transaction binding the contract method 0x2e1a7d4d.
   875  //
   876  // Solidity: function withdraw(uint256 _shares) returns()
   877  func (_Yvault *YvaultTransactorSession) Withdraw(_shares *big.Int) (*types.Transaction, error) {
   878  	return _Yvault.Contract.Withdraw(&_Yvault.TransactOpts, _shares)
   879  }
   880  
   881  // WithdrawAll is a paid mutator transaction binding the contract method 0x853828b6.
   882  //
   883  // Solidity: function withdrawAll() returns()
   884  func (_Yvault *YvaultTransactor) WithdrawAll(opts *bind.TransactOpts) (*types.Transaction, error) {
   885  	return _Yvault.contract.Transact(opts, "withdrawAll")
   886  }
   887  
   888  // WithdrawAll is a paid mutator transaction binding the contract method 0x853828b6.
   889  //
   890  // Solidity: function withdrawAll() returns()
   891  func (_Yvault *YvaultSession) WithdrawAll() (*types.Transaction, error) {
   892  	return _Yvault.Contract.WithdrawAll(&_Yvault.TransactOpts)
   893  }
   894  
   895  // WithdrawAll is a paid mutator transaction binding the contract method 0x853828b6.
   896  //
   897  // Solidity: function withdrawAll() returns()
   898  func (_Yvault *YvaultTransactorSession) WithdrawAll() (*types.Transaction, error) {
   899  	return _Yvault.Contract.WithdrawAll(&_Yvault.TransactOpts)
   900  }
   901  
   902  // YvaultApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the Yvault contract.
   903  type YvaultApprovalIterator struct {
   904  	Event *YvaultApproval // Event containing the contract specifics and raw log
   905  
   906  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   907  	event    string              // Event name to use for unpacking event data
   908  
   909  	logs chan types.Log        // Log channel receiving the found contract events
   910  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   911  	done bool                  // Whether the subscription completed delivering logs
   912  	fail error                 // Occurred error to stop iteration
   913  }
   914  
   915  // Next advances the iterator to the subsequent event, returning whether there
   916  // are any more events found. In case of a retrieval or parsing error, false is
   917  // returned and Error() can be queried for the exact failure.
   918  func (it *YvaultApprovalIterator) Next() bool {
   919  	// If the iterator failed, stop iterating
   920  	if it.fail != nil {
   921  		return false
   922  	}
   923  	// If the iterator completed, deliver directly whatever's available
   924  	if it.done {
   925  		select {
   926  		case log := <-it.logs:
   927  			it.Event = new(YvaultApproval)
   928  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   929  				it.fail = err
   930  				return false
   931  			}
   932  			it.Event.Raw = log
   933  			return true
   934  
   935  		default:
   936  			return false
   937  		}
   938  	}
   939  	// Iterator still in progress, wait for either a data or an error event
   940  	select {
   941  	case log := <-it.logs:
   942  		it.Event = new(YvaultApproval)
   943  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   944  			it.fail = err
   945  			return false
   946  		}
   947  		it.Event.Raw = log
   948  		return true
   949  
   950  	case err := <-it.sub.Err():
   951  		it.done = true
   952  		it.fail = err
   953  		return it.Next()
   954  	}
   955  }
   956  
   957  // Error returns any retrieval or parsing error occurred during filtering.
   958  func (it *YvaultApprovalIterator) Error() error {
   959  	return it.fail
   960  }
   961  
   962  // Close terminates the iteration process, releasing any pending underlying
   963  // resources.
   964  func (it *YvaultApprovalIterator) Close() error {
   965  	it.sub.Unsubscribe()
   966  	return nil
   967  }
   968  
   969  // YvaultApproval represents a Approval event raised by the Yvault contract.
   970  type YvaultApproval struct {
   971  	Owner   common.Address
   972  	Spender common.Address
   973  	Value   *big.Int
   974  	Raw     types.Log // Blockchain specific contextual infos
   975  }
   976  
   977  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
   978  //
   979  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
   980  func (_Yvault *YvaultFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*YvaultApprovalIterator, error) {
   981  
   982  	var ownerRule []interface{}
   983  	for _, ownerItem := range owner {
   984  		ownerRule = append(ownerRule, ownerItem)
   985  	}
   986  	var spenderRule []interface{}
   987  	for _, spenderItem := range spender {
   988  		spenderRule = append(spenderRule, spenderItem)
   989  	}
   990  
   991  	logs, sub, err := _Yvault.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule)
   992  	if err != nil {
   993  		return nil, err
   994  	}
   995  	return &YvaultApprovalIterator{contract: _Yvault.contract, event: "Approval", logs: logs, sub: sub}, nil
   996  }
   997  
   998  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
   999  //
  1000  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
  1001  func (_Yvault *YvaultFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *YvaultApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) {
  1002  
  1003  	var ownerRule []interface{}
  1004  	for _, ownerItem := range owner {
  1005  		ownerRule = append(ownerRule, ownerItem)
  1006  	}
  1007  	var spenderRule []interface{}
  1008  	for _, spenderItem := range spender {
  1009  		spenderRule = append(spenderRule, spenderItem)
  1010  	}
  1011  
  1012  	logs, sub, err := _Yvault.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule)
  1013  	if err != nil {
  1014  		return nil, err
  1015  	}
  1016  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1017  		defer sub.Unsubscribe()
  1018  		for {
  1019  			select {
  1020  			case log := <-logs:
  1021  				// New log arrived, parse the event and forward to the user
  1022  				event := new(YvaultApproval)
  1023  				if err := _Yvault.contract.UnpackLog(event, "Approval", log); err != nil {
  1024  					return err
  1025  				}
  1026  				event.Raw = log
  1027  
  1028  				select {
  1029  				case sink <- event:
  1030  				case err := <-sub.Err():
  1031  					return err
  1032  				case <-quit:
  1033  					return nil
  1034  				}
  1035  			case err := <-sub.Err():
  1036  				return err
  1037  			case <-quit:
  1038  				return nil
  1039  			}
  1040  		}
  1041  	}), nil
  1042  }
  1043  
  1044  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  1045  //
  1046  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
  1047  func (_Yvault *YvaultFilterer) ParseApproval(log types.Log) (*YvaultApproval, error) {
  1048  	event := new(YvaultApproval)
  1049  	if err := _Yvault.contract.UnpackLog(event, "Approval", log); err != nil {
  1050  		return nil, err
  1051  	}
  1052  	return event, nil
  1053  }
  1054  
  1055  // YvaultTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the Yvault contract.
  1056  type YvaultTransferIterator struct {
  1057  	Event *YvaultTransfer // Event containing the contract specifics and raw log
  1058  
  1059  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1060  	event    string              // Event name to use for unpacking event data
  1061  
  1062  	logs chan types.Log        // Log channel receiving the found contract events
  1063  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1064  	done bool                  // Whether the subscription completed delivering logs
  1065  	fail error                 // Occurred error to stop iteration
  1066  }
  1067  
  1068  // Next advances the iterator to the subsequent event, returning whether there
  1069  // are any more events found. In case of a retrieval or parsing error, false is
  1070  // returned and Error() can be queried for the exact failure.
  1071  func (it *YvaultTransferIterator) Next() bool {
  1072  	// If the iterator failed, stop iterating
  1073  	if it.fail != nil {
  1074  		return false
  1075  	}
  1076  	// If the iterator completed, deliver directly whatever's available
  1077  	if it.done {
  1078  		select {
  1079  		case log := <-it.logs:
  1080  			it.Event = new(YvaultTransfer)
  1081  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1082  				it.fail = err
  1083  				return false
  1084  			}
  1085  			it.Event.Raw = log
  1086  			return true
  1087  
  1088  		default:
  1089  			return false
  1090  		}
  1091  	}
  1092  	// Iterator still in progress, wait for either a data or an error event
  1093  	select {
  1094  	case log := <-it.logs:
  1095  		it.Event = new(YvaultTransfer)
  1096  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1097  			it.fail = err
  1098  			return false
  1099  		}
  1100  		it.Event.Raw = log
  1101  		return true
  1102  
  1103  	case err := <-it.sub.Err():
  1104  		it.done = true
  1105  		it.fail = err
  1106  		return it.Next()
  1107  	}
  1108  }
  1109  
  1110  // Error returns any retrieval or parsing error occurred during filtering.
  1111  func (it *YvaultTransferIterator) Error() error {
  1112  	return it.fail
  1113  }
  1114  
  1115  // Close terminates the iteration process, releasing any pending underlying
  1116  // resources.
  1117  func (it *YvaultTransferIterator) Close() error {
  1118  	it.sub.Unsubscribe()
  1119  	return nil
  1120  }
  1121  
  1122  // YvaultTransfer represents a Transfer event raised by the Yvault contract.
  1123  type YvaultTransfer struct {
  1124  	From  common.Address
  1125  	To    common.Address
  1126  	Value *big.Int
  1127  	Raw   types.Log // Blockchain specific contextual infos
  1128  }
  1129  
  1130  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  1131  //
  1132  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
  1133  func (_Yvault *YvaultFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*YvaultTransferIterator, error) {
  1134  
  1135  	var fromRule []interface{}
  1136  	for _, fromItem := range from {
  1137  		fromRule = append(fromRule, fromItem)
  1138  	}
  1139  	var toRule []interface{}
  1140  	for _, toItem := range to {
  1141  		toRule = append(toRule, toItem)
  1142  	}
  1143  
  1144  	logs, sub, err := _Yvault.contract.FilterLogs(opts, "Transfer", fromRule, toRule)
  1145  	if err != nil {
  1146  		return nil, err
  1147  	}
  1148  	return &YvaultTransferIterator{contract: _Yvault.contract, event: "Transfer", logs: logs, sub: sub}, nil
  1149  }
  1150  
  1151  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  1152  //
  1153  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
  1154  func (_Yvault *YvaultFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *YvaultTransfer, from []common.Address, to []common.Address) (event.Subscription, error) {
  1155  
  1156  	var fromRule []interface{}
  1157  	for _, fromItem := range from {
  1158  		fromRule = append(fromRule, fromItem)
  1159  	}
  1160  	var toRule []interface{}
  1161  	for _, toItem := range to {
  1162  		toRule = append(toRule, toItem)
  1163  	}
  1164  
  1165  	logs, sub, err := _Yvault.contract.WatchLogs(opts, "Transfer", fromRule, toRule)
  1166  	if err != nil {
  1167  		return nil, err
  1168  	}
  1169  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1170  		defer sub.Unsubscribe()
  1171  		for {
  1172  			select {
  1173  			case log := <-logs:
  1174  				// New log arrived, parse the event and forward to the user
  1175  				event := new(YvaultTransfer)
  1176  				if err := _Yvault.contract.UnpackLog(event, "Transfer", log); err != nil {
  1177  					return err
  1178  				}
  1179  				event.Raw = log
  1180  
  1181  				select {
  1182  				case sink <- event:
  1183  				case err := <-sub.Err():
  1184  					return err
  1185  				case <-quit:
  1186  					return nil
  1187  				}
  1188  			case err := <-sub.Err():
  1189  				return err
  1190  			case <-quit:
  1191  				return nil
  1192  			}
  1193  		}
  1194  	}), nil
  1195  }
  1196  
  1197  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  1198  //
  1199  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
  1200  func (_Yvault *YvaultFilterer) ParseTransfer(log types.Log) (*YvaultTransfer, error) {
  1201  	event := new(YvaultTransfer)
  1202  	if err := _Yvault.contract.UnpackLog(event, "Transfer", log); err != nil {
  1203  		return nil, err
  1204  	}
  1205  	return event, nil
  1206  }