# YieldOraclePendle

[Git Source](https://github.com/Ion-Protocol/ion-protocol/blob/88cc595825f1dc2eb738fb93e172a3e8ab7a5c43/src/YieldOraclePendle.sol)

**Inherits:** IYieldOracle

Yield Oracle for Pendle Markets

### [State Variables](https://docs.ionprotocol.io/devs/smart-contract-architecture/broken-reference) <a href="#state-variables" id="state-variables"></a>

#### [MARKET](https://docs.ionprotocol.io/devs/smart-contract-architecture/broken-reference) <a href="#market" id="market"></a>

```
IPMarketV3 public immutable MARKET;
```

#### [TWAP\_DURATION](https://docs.ionprotocol.io/devs/smart-contract-architecture/broken-reference) <a href="#twap_duration" id="twap_duration"></a>

```
uint32 public immutable TWAP_DURATION;
```

#### [YIELD\_CEILING](https://docs.ionprotocol.io/devs/smart-contract-architecture/broken-reference) <a href="#yield_ceiling" id="yield_ceiling"></a>

```
uint256 public immutable YIELD_CEILING;
```

### [Functions](https://docs.ionprotocol.io/devs/smart-contract-architecture/broken-reference) <a href="#functions" id="functions"></a>

#### [constructor](https://docs.ionprotocol.io/devs/smart-contract-architecture/broken-reference) <a href="#constructor" id="constructor"></a>

Construct a new `YieldOraclePendle` instance

```
constructor(IPMarketV3 _market, uint32 _twapDuration, uint256 _yieldCeiling);
```

**Parameters**

| Name            | Type         | Description                           |
| --------------- | ------------ | ------------------------------------- |
| `_market`       | `IPMarketV3` | The Pendle Market to get the APY from |
| `_twapDuration` | `uint32`     | The duration of the TWAP              |
| `_yieldCeiling` | `uint256`    | The maximum APY                       |

#### [apys](https://docs.ionprotocol.io/devs/smart-contract-architecture/broken-reference) <a href="#apys" id="apys"></a>

Get the APY for a given collateral

```
function apys(uint256) external view override returns (uint32);
```

### [Errors](https://docs.ionprotocol.io/devs/smart-contract-architecture/broken-reference) <a href="#errors" id="errors"></a>

#### [InsufficientOracleSlots](https://docs.ionprotocol.io/devs/smart-contract-architecture/broken-reference) <a href="#insufficientoracleslots" id="insufficientoracleslots"></a>

```
error InsufficientOracleSlots(uint256 currentSlots);
```
