# IMaverickV2PoolAdmin

### Functions <a href="#functions" id="functions"></a>

#### adminAction <a href="#adminaction" id="adminaction"></a>

Perform pool admin action; this function can only be called by the pool factory contract. When called by other callers, this function will revert.

```solidity
function adminAction(AdminAction action, uint256 value) external;
```

**Parameters**

| Name     | Type          | Description                                                                             |
| -------- | ------------- | --------------------------------------------------------------------------------------- |
| `action` | `AdminAction` | Selector of admin action from AdminAction enum.                                         |
| `value`  | `uint256`     | Applicable for "setting" admin actions and is the new value of the parameter being set. |

### Events <a href="#events" id="events"></a>

#### PoolProtocolFeeCollected <a href="#poolprotocolfeecollected" id="poolprotocolfeecollected"></a>

```solidity
event PoolProtocolFeeCollected(uint256 feeCollected, bool isTokenA);
```

#### PoolSetProtocolFeeRatio <a href="#poolsetprotocolfeeratio" id="poolsetprotocolfeeratio"></a>

```solidity
event PoolSetProtocolFeeRatio(uint256 protocolFeeRatioD3);
```

#### PoolSetLendingFeeRate <a href="#poolsetlendingfeerate" id="poolsetlendingfeerate"></a>

```solidity
event PoolSetLendingFeeRate(uint256 lendingFeeRateD18);
```

### Enums <a href="#enums" id="enums"></a>

#### AdminAction <a href="#adminaction-1" id="adminaction-1"></a>

```solidity
enum AdminAction {
    setProtocolFeeRatioD3,
    claimProtocolFeesA,
    claimProtocolFeesB,
    setLendingFeeRateD18
}
```
