# IMaverickV2BoostedPositionFactory

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

#### createBoostedPosition <a href="#createboostedposition" id="createboostedposition"></a>

Creates BP from the specified input parameters. Requirements:

* Pool must be from pool factory
* BP kind must be supported by the pool
* BinIds have to be sorted in ascending order
* ratios\[0] must be 1e18; ratios are specified in D18 scale
* ratio and binId arrays have to be the same length
* movement-mode BPs can only have one binId
* static-mode BPs can have at most 24 binIds

```solidity
function createBoostedPosition(IMaverickV2Pool pool, uint32[] memory binIds, uint128[] memory ratios, uint8 kind)
    external
    returns (IMaverickV2BoostedPosition boostedPosition);
```

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

Look up BPs by range of indexes.

```solidity
function lookup(uint256 startIndex, uint256 endIndex) external view returns (IMaverickV2BoostedPosition[] memory);
```

#### lookup <a href="#lookup-1" id="lookup-1"></a>

Look up BPs by range of indexes for a given pool.

```solidity
function lookup(IMaverickV2Pool pool, uint256 startIndex, uint256 endIndex)
    external
    view
    returns (IMaverickV2BoostedPosition[] memory);
```

#### isFactoryBoostedPosition <a href="#isfactoryboostedposition" id="isfactoryboostedposition"></a>

Returns whether or not input BP was created by this factory.

```solidity
function isFactoryBoostedPosition(IMaverickV2BoostedPosition) external returns (bool);
```

#### poolFactory <a href="#poolfactory" id="poolfactory"></a>

Pool factory that all BPs pool must be deployed from.

```solidity
function poolFactory() external returns (IMaverickV2Factory);
```

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

#### CreateBoostedPosition <a href="#createboostedposition-1" id="createboostedposition-1"></a>

```solidity
event CreateBoostedPosition(
    IMaverickV2Pool pool, uint32[] binIds, uint128[] ratios, uint8 kind, IMaverickV2BoostedPosition boostedPosition
);
```

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

#### BoostedPositionFactoryNotFactoryPool <a href="#boostedpositionfactorynotfactorypool" id="boostedpositionfactorynotfactorypool"></a>

```solidity
error BoostedPositionFactoryNotFactoryPool();
```

#### BoostedPositionFactoryKindNotSupportedByPool <a href="#boostedpositionfactorykindnotsupportedbypool" id="boostedpositionfactorykindnotsupportedbypool"></a>

```solidity
error BoostedPositionFactoryKindNotSupportedByPool(uint8 poolKinds, uint8 kind);
```

#### BoostedPositionFactoryInvalidRatioZero <a href="#boostedpositionfactoryinvalidratiozero" id="boostedpositionfactoryinvalidratiozero"></a>

```solidity
error BoostedPositionFactoryInvalidRatioZero(uint128 ratioZero);
```

#### BoostedPositionFactoryInvalidLengths <a href="#boostedpositionfactoryinvalidlengths" id="boostedpositionfactoryinvalidlengths"></a>

```solidity
error BoostedPositionFactoryInvalidLengths(uint256 ratioLength, uint256 binIdsLength);
```

#### BoostedPositionFactoryInvalidLengthForKind <a href="#boostedpositionfactoryinvalidlengthforkind" id="boostedpositionfactoryinvalidlengthforkind"></a>

```solidity
error BoostedPositionFactoryInvalidLengthForKind(uint8 kind, uint256 ratiosLength);
```

#### BoostedPositionFactoryInvalidBinIdOrder <a href="#boostedpositionfactoryinvalidbinidorder" id="boostedpositionfactoryinvalidbinidorder"></a>

```solidity
error BoostedPositionFactoryInvalidBinIdOrder(uint32 lastBinId, uint32 thisBinId);
```

#### BoostedPositionFactoryInvalidBinKind <a href="#boostedpositionfactoryinvalidbinkind" id="boostedpositionfactoryinvalidbinkind"></a>

```solidity
error BoostedPositionFactoryInvalidBinKind(uint8 inputKind, uint8 binKind, uint32 binId);
```

<br>


---

# 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.mav.xyz/technical-reference/maverick-v2/v2-contracts/maverick-v2-supplemental-contracts/interfaces/imaverickv2boostedpositionfactory.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.
