# 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 |             |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.essencefinance.io/development/smart-contracts/refs/coreref.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
