# UniswapOracleLibrary

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

Provides functions to integrate with V3 pool oracle

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

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

Calculates time-weighted means of tick and liquidity for a given Uniswap V3 pool

```
function consult(
    address pool,
    uint32 secondsAgo
)
    internal
    view
    returns (int24 arithmeticMeanTick, uint128 harmonicMeanLiquidity);
```

**Parameters**

| Name         | Type      | Description                                                                   |
| ------------ | --------- | ----------------------------------------------------------------------------- |
| `pool`       | `address` | Address of the pool that we want to observe                                   |
| `secondsAgo` | `uint32`  | Number of seconds in the past from which to calculate the time-weighted means |

**Returns**

| Name                    | Type      | Description                                                                        |
| ----------------------- | --------- | ---------------------------------------------------------------------------------- |
| `arithmeticMeanTick`    | `int24`   | The arithmetic mean tick from (block.timestamp - secondsAgo) to block.timestamp    |
| `harmonicMeanLiquidity` | `uint128` | The harmonic mean liquidity from (block.timestamp - secondsAgo) to block.timestamp |
