> For the complete documentation index, see [llms.txt](https://docs.essencefinance.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.essencefinance.io/development/smart-contracts/refs/uniref.md).

# UniRef

defines some utilities around interacting with Uniswap

the uniswap pair should be CHI and another asset

## Functions

### constructor

```solidity
function constructor(
    address _core,
    address _pair,
    address _oracle,
    address _backupOracle
) internal
```

UniRef constructor

#### Parameters

| Name            | Type    | Description                |
| --------------- | ------- | -------------------------- |
| `_core`         | address | Chi Core to reference      |
| `_pair`         | address | Uniswap pair to reference  |
| `_oracle`       | address | oracle to reference        |
| `_backupOracle` | address | backup oracle to reference |

### setPair

```solidity
function setPair(
    address newPair
) external
```

set the new pair contract

#### Parameters

| Name      | Type    | Description  |
| --------- | ------- | ------------ |
| `newPair` | address | the new pair |

### getReserves

```solidity
function getReserves() public returns (uint256 chiReserves, uint256 tokenReserves)
```

pair reserves with chi listed first

### \_setupPair

```solidity
function _setupPair(
    address newPair
) internal
```

#### Parameters

| Name      | Type    | Description |
| --------- | ------- | ----------- |
| `newPair` | address |             |

### \_token

```solidity
function _token() internal returns (address)
```
