Deposit

Deposits ERC-20 asset into token vault on behalf of receiver who receives the gTokens minted.

/**
 * @dev Function to handle a deposit of an underlying asset to the vault.
 *  Deploys the deposited assets to the yield strategy and mints new gTokens.
 * @param _amount amount of underlying asset to deposit
 * @param _receiver address to receive gTokens
*/
function deposit(
    uint256 _amount,
    address _receiver
) external

Make sure you approve the vault contract to spend this amount before calling deposit.

Withdraw

Withdraws ERC-20 asset from token vault into the receiver address. gTokens are burned from the owner address.

/**
 * @dev Function to withdraw underlying asset from vault. This usually involves
 *  converting the yield asset to the underlying asset first.
 * @param _amount amount of underlying asset to withdraw
 * @param _recevier address receiving asset withdraw from vault
 * @param _owner address to burn gTokens from
*/
function withdraw(
    uint256 _amount,
    address _receiver,
    address _owner
) external

Utility Methods

Returns the amount of yield attributable to a gToken address holder. Denominated in asset.

/**
 * @dev Function returning the yield associated with a user on the vault
 * @param _owner address owning the gTokens
*/
function getYield(
    address _owner
) external view returns (uint256)

Returns the amount of yield attributable to a gToken address holder. Denominated in asset.

/**
 * @dev Function returning the APY associated with the vault's
 * underlying yield strategy, 18 decimals.
*/
function getAPY() external view returns (uint256)

Converts an amount of the asset to its equivalent in the yield asset (ex: 1 ETH -> 0.8 rETH).

/**
 * @dev Function converting amount of asset to yield asset
 * @param _amount amount of asset
*/
function convertToYieldAsset(
    address _amount
) external view returns (uint256)

Converts an amount of the yield asset to its equivalent in the asset (ex: 0.8 rETH -> 1 ETH).

/**
 * @dev Function converting amount of yield assetΒ to asset
 * @param _amount amount of yield asset
*/
function convertToAsset(
    address _amount
) external view returns (uint256)

Other

  • All ERC-20 methods (transfer, transferFrom, balanceOf, etc.)

  • If underlying asset is a native token (ex: ETH), then there is also another method available with the following signature:

/**
 * @dev Function to handle a deposit of a native token to the vault
 * @param _receiver address to receive gTokens
*/
function depositETH(
    address _receiver
) external payable