# CoreRef

defines some modifiers and utilities around interacting with Core

## Functions

### constructor

```solidity
function constructor(
    address coreAddress
) internal
```

#### Parameters

| Name          | Type    | Description |
| ------------- | ------- | ----------- |
| `coreAddress` | address |             |

### \_initialize

```solidity
function _initialize(
    address 
) internal
```

#### Parameters

| Name | Type    | Description |
| ---- | ------- | ----------- |
| \`\` | address |             |

### setContractAdminRole

```solidity
function setContractAdminRole(
    bytes32 newContractAdminRole
) external
```

sets a new admin role for this contract

#### Parameters

| Name                   | Type    | Description |
| ---------------------- | ------- | ----------- |
| `newContractAdminRole` | bytes32 |             |

### isContractAdmin

```solidity
function isContractAdmin(
    address _admin
) public returns (bool)
```

returns whether a given address has the admin role for this contract

#### Parameters

| Name     | Type    | Description |
| -------- | ------- | ----------- |
| `_admin` | address |             |

### pause

```solidity
function pause() public
```

set pausable methods to paused

### unpause

```solidity
function unpause() public
```

set pausable methods to unpaused

### core

```solidity
function core() public returns (contract ICore)
```

address of the Core contract referenced

#### Return Values

| Name  | Type           | Description                  |
| ----- | -------------- | ---------------------------- |
| `[0]` | contract ICore | ICore implementation address |

### chi

```solidity
function chi() public returns (contract IChi)
```

address of the Chi contract referenced by Core

#### Return Values

| Name  | Type          | Description                 |
| ----- | ------------- | --------------------------- |
| `[0]` | contract IChi | IChi implementation address |

### zen

```solidity
function zen() public returns (contract IERC20)
```

address of the Zen contract referenced by Core

#### Return Values

| Name  | Type            | Description                   |
| ----- | --------------- | ----------------------------- |
| `[0]` | contract IERC20 | IERC20 implementation address |

### chiBalance

```solidity
function chiBalance() public returns (uint256)
```

chi balance of contract

#### Return Values

| Name  | Type    | Description     |
| ----- | ------- | --------------- |
| `[0]` | uint256 | chi amount held |

### zenBalance

```solidity
function zenBalance() public returns (uint256)
```

zen balance of contract

#### Return Values

| Name  | Type    | Description     |
| ----- | ------- | --------------- |
| `[0]` | uint256 | zen amount held |

### \_burnChiHeld

```solidity
function _burnChiHeld() internal
```

### \_mintChi

```solidity
function _mintChi(
    address to,
    uint256 amount
) internal
```

#### Parameters

| Name     | Type    | Description |
| -------- | ------- | ----------- |
| `to`     | address |             |
| `amount` | uint256 |             |

### \_setContractAdminRole

```solidity
function _setContractAdminRole(
    bytes32 newContractAdminRole
) internal
```

#### Parameters

| Name                   | Type    | Description |
| ---------------------- | ------- | ----------- |
| `newContractAdminRole` | bytes32 |             |
