# IMaverickV2BoostedPosition

**Inherits:** [IBoostedPositionBase](https://docs.mav.xyz/technical-reference/maverick-v2/v2-contracts/maverick-v2-supplemental-contracts/boostedpositionbase/iboostedpositionbase)

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

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

Mints BP LP position to recipient. User has to add liquidity to BP contract before making this call as this mint function simply assigns any new liquidity that this BP possesses in the pool to the recipient. Accordingly, this function should only be called in the same transaction where liquidity has been added to a pool as part of a multicall or through a router/manager contract.

```solidity
function mint(address recipient) external returns (uint256 deltaSupply);
```

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

Burns BP LP positions and redeems the underlying A/B token to the recipient.

```solidity
function burn(address recipient, uint256 amount) external returns (uint256 tokenAOut, uint256 tokenBOut);
```

#### migrateBinLiquidityToRoot <a href="#migratebinliquiditytoroot" id="migratebinliquiditytoroot"></a>

Migrates all underlying movement-mode liquidity from a merged bin to the active parent of the merged bin. For Static BPs, this function is a no-op and never needs to be called.

```solidity
function migrateBinLiquidityToRoot() external;
```

#### getTicks <a href="#getticks" id="getticks"></a>

Array of ticks where the underlying BP liquidity exists.

```solidity
function getTicks() external view returns (int32[] memory ticks);
```

#### getRatios <a href="#getratios" id="getratios"></a>

Array of relative pool bin LP balance of the bins in the BP.

```solidity
function getRatios() external view returns (uint128[] memory ratios_);
```

#### getBinIds <a href="#getbinids" id="getbinids"></a>

Array of BP binIds.

```solidity
function getBinIds() external view returns (uint32[] memory binIds_);
```

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

#### BoostedPositionMigrateBinLiquidity <a href="#boostedpositionmigratebinliquidity" id="boostedpositionmigratebinliquidity"></a>

```solidity
event BoostedPositionMigrateBinLiquidity(uint32 currentBinId, uint32 newBinId, uint128 newBinBalance);
```

### Errors <a href="#errors" id="errors"></a>

#### BoostedPositionTooLittleLiquidityAdded <a href="#boostedpositiontoolittleliquidityadded" id="boostedpositiontoolittleliquidityadded"></a>

```solidity
error BoostedPositionTooLittleLiquidityAdded(uint256 binIdIndex, uint32 binId, uint128 required, uint128 available);
```

#### BoostedPositionMovementBinNotMigrated <a href="#boostedpositionmovementbinnotmigrated" id="boostedpositionmovementbinnotmigrated"></a>

```solidity
error BoostedPositionMovementBinNotMigrated();
```

<br>
