# Interface

## version

```solidity
    function version() external returns (string);
```

Gets the current version.

## token

```solidity
    function token() external returns (address);
```

Gets the address of the yield token that this adapter supports.

## underlyingToken

```solidity
    function underlyingToken() external returns (address);
```

Gets the address of the underlying token that the yield token wraps.

## price

```solidity
    function price() external returns (uint256);
```

Gets the number of underlying tokens that a single whole yield token is redeemable for.

## wrap

```solidity
    function wrap(
        uint256 amount,
        address recipient
    ) external returns (uint256 amountYieldTokens);
```

Wraps `amount` underlying tokens into the yield token.

### Parameters:

| Name        | Type    | Description                                      |
| ----------- | ------- | ------------------------------------------------ |
| `amount`    | uint256 | The amount of the underlying token to wrap.      |
| `recipient` | address | The address which will receive the yield tokens. |

### Return Values:

| Name                | Type    | Description                                       |
| ------------------- | ------- | ------------------------------------------------- |
| `amountYieldTokens` | uint256 | The amount of yield tokens minted to `recipient`. |

## unwrap

```solidity
    function unwrap(
        uint256 amount,
        address recipient
    ) external returns (uint256 amountUnderlyingTokens);
```

Unwraps `amount` yield tokens into the underlying token.

### Parameters:

| Name        | Type    | Description                                       |
| ----------- | ------- | ------------------------------------------------- |
| `amount`    | uint256 | The amount of yield-tokens to redeem.             |
| `recipient` | address | The recipient of the resulting underlying-tokens. |

### Return Values:

| Name                     | Type    | Description                                               |
| ------------------------ | ------- | --------------------------------------------------------- |
| `amountUnderlyingTokens` | uint256 | The amount of underlying tokens unwrapped to `recipient`. |
