# MaverickV2PoolPermissioned

**Inherits:** [MaverickV2Pool](https://docs.mav.xyz/technical-reference/maverick-v2/v2-contracts/maverick-v2-amm-contracts/maverickv2pool)

### State Variables <a href="#state-variables" id="state-variables"></a>

#### variableFeeAIn <a href="#variablefeeain" id="variablefeeain"></a>

```solidity
uint128 private variableFeeAIn;
```

#### variableFeeBIn <a href="#variablefeebin" id="variablefeebin"></a>

```solidity
uint128 private variableFeeBIn;
```

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

#### onlyAccessor <a href="#onlyaccessor" id="onlyaccessor"></a>

```solidity
modifier onlyAccessor();
```

#### addLiquidity <a href="#addliquidity" id="addliquidity"></a>

```solidity
function addLiquidity(address user, uint256 subaccount, AddLiquidityParams calldata params, bytes calldata data)
    public
    override
    onlyAccessor
    returns (uint256 tokenAAmount, uint256 tokenBAmount, uint32[] memory binIds);
```

#### migrateBinUpStack <a href="#migratebinupstack" id="migratebinupstack"></a>

```solidity
function migrateBinUpStack(uint32 binId, uint32 maxRecursion) public override onlyAccessor;
```

#### removeLiquidity <a href="#removeliquidity" id="removeliquidity"></a>

```solidity
function removeLiquidity(address recipient, uint256 subaccount, RemoveLiquidityParams calldata params)
    public
    override
    onlyAccessor
    returns (uint256 tokenAOut, uint256 tokenBOut);
```

#### swap <a href="#swap" id="swap"></a>

```solidity
function swap(address recipient, SwapParams memory params, bytes calldata data)
    public
    override
    onlyAccessor
    returns (uint256 amountIn, uint256 amountOut);
```

#### setFee <a href="#setfee" id="setfee"></a>

```solidity
function setFee(uint256 newFeeAIn, uint256 newFeeBIn) public override onlyAccessor;
```

#### fee <a href="#fee" id="fee"></a>

```solidity
function fee(bool tokenAIn) public view override returns (uint256);
```
