# PCVEquityMinter

A ChiTimedMinter that mints based on a percentage of PCV equity

## Functions

### constructor

```solidity
function constructor(
    address _core,
    address _target,
    uint256 _incentive,
    uint256 _frequency,
    contract ICollateralizationOracle _collateralizationOracle,
    uint256 _aprBasisPoints,
    uint256 _maxAPRBasisPoints,
    uint256 _chiMintingLimitPerSecond
) public
```

constructor for PCVEquityMinter @param \_core the Core address to reference @param \_target the target to receive minted CHI @param \_incentive the incentive amount for calling buy paid in CHI @param \_frequency the frequency buybacks happen @param \_collateralizationOracle the collateralization oracle used for PCV equity calculations @param \_aprBasisPoints the APR paid out from pcv equity per year expressed in basis points

#### Parameters

| Name                        | Type                              | Description |
| --------------------------- | --------------------------------- | ----------- |
| `_core`                     | address                           |             |
| `_target`                   | address                           |             |
| `_collateralizationOracle`  | contract ICollateralizationOracle |             |
| `_chiMintingLimitPerSecond` | uint256                           |             |

### mint

```solidity
function mint() public
```

triggers a minting of CHI based on the PCV equity

### mintAmount

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

### setCollateralizationOracle

```solidity
function setCollateralizationOracle(
    contract ICollateralizationOracle newCollateralizationOracle
) external
```

set the collateralization oracle

#### Parameters

| Name                         | Type                              | Description |
| ---------------------------- | --------------------------------- | ----------- |
| `newCollateralizationOracle` | contract ICollateralizationOracle |             |

### \_setCollateralizationOracle

```solidity
function _setCollateralizationOracle(
    contract ICollateralizationOracle newCollateralizationOracle
) internal
```

#### Parameters

| Name                         | Type                              | Description |
| ---------------------------- | --------------------------------- | ----------- |
| `newCollateralizationOracle` | contract ICollateralizationOracle |             |

### \_afterMint

```solidity
function _afterMint() internal
```
