# EthPerWstEthRateProvider

[Git Source](https://github.com/Ion-Protocol/nucleus-boring-vault/blob/cc0b494b83e17b9b169a73b96050d2810b690477/src/oracles/EthPerWstEthRateProvider.sol)

**Inherits:** IRateProvider

Reports the price of wstETH in terms of ETH.

## State Variables

### ST\_ETH\_TO\_ETH\_CHAINLINK

```solidity
IChainlink public immutable ST_ETH_TO_ETH_CHAINLINK;
```

### WST\_ETH

```solidity
IWstEth public immutable WST_ETH;
```

### MAX\_TIME\_FROM\_LAST\_UPDATE

```solidity
uint256 public immutable MAX_TIME_FROM_LAST_UPDATE;
```

## Functions

### constructor

```solidity
constructor(address _stEthToEthChainlink, address _wstETH, uint256 _maxTimeFromLastUpdate);
```

**Parameters**

| Name                     | Type      | Description                             |
| ------------------------ | --------- | --------------------------------------- |
| `_stEthToEthChainlink`   | `address` | The chainlink price feed for stETH/ETH. |
| `_wstETH`                | `address` | The wstETH contract address.            |
| `_maxTimeFromLastUpdate` | `uint256` |                                         |

### getRate

Gets the price of wstETH in terms of ETH.

*If the beaconchain reserve decreases, the wstETH to stEth conversion will be directly impacted, but the stEth to Eth conversion will simply be determined by the chainlink price oracle.*

```solidity
function getRate() public view returns (uint256 ethPerWstEth);
```

**Returns**

| Name           | Type      | Description                    |
| -------------- | --------- | ------------------------------ |
| `ethPerWstEth` | `uint256` | price of wstETH in ETH. \[WAD] |

## Errors

### MaxTimeFromLastUpdatePassed

```solidity
error MaxTimeFromLastUpdatePassed(uint256 blockTimestamp, uint256 lastUpdated);
```
