# PositionImage

**Inherits:**[ IPositionImage](https://docs.mav.xyz/technical-reference/maverick-v2/v2-contracts/maverick-v2-supplemental-contracts/interfaces/ipositionimage)

Renders svg for Maverick V2 position.

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

#### NOT\_FOUND <a href="#not_found" id="not_found"></a>

```solidity
uint256 private constant NOT_FOUND = type(uint256).max;
```

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

```solidity
IMaverickV2Position public position;
```

#### poolLens <a href="#poollens" id="poollens"></a>

```solidity
IMaverickV2PoolLens public immutable poolLens;
```

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

```solidity
address private immutable deployer;
```

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

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

```solidity
constructor(IMaverickV2PoolLens _poolLens);
```

#### setPosition <a href="#setposition" id="setposition"></a>

```solidity
function setPosition(IMaverickV2Position _position) external override;
```

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

*Generates a JSON image URI for a given NFT token.*

```solidity
function image(uint256 tokenId, address) public view returns (string memory);
```

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

```solidity
function description(PositionMetadata memory metadata) internal pure returns (string memory description_);
```

#### \_feeString <a href="#feestring" id="feestring"></a>

```solidity
function _feeString(uint256 fee) internal pure returns (string memory feeString);
```

#### getPositionMetadata <a href="#getpositionmetadata" id="getpositionmetadata"></a>

```solidity
function getPositionMetadata(uint256 tokenId) internal view returns (PositionMetadata memory metadata);
```

#### getKind <a href="#getkind" id="getkind"></a>

```solidity
function getKind(uint8 kind) internal pure returns (string memory output);
```

#### getPoolLabels <a href="#getpoollabels" id="getpoollabels"></a>

```solidity
function getPoolLabels(PositionMetadata memory metadata) internal pure returns (string memory);
```

#### getPositionLabels <a href="#getpositionlabels" id="getpositionlabels"></a>

```solidity
function getPositionLabels(PositionMetadata memory metadata) internal pure returns (string memory);
```

#### getBackground <a href="#getbackground" id="getbackground"></a>

```solidity
function getBackground() internal pure returns (string memory);
```

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

*Generates an SVG image for a given NFT token.*

```solidity
function svg(PositionMetadata memory metadata) internal pure returns (bytes memory);
```

#### findTickIndex <a href="#findtickindex" id="findtickindex"></a>

```solidity
function findTickIndex(IMaverickV2Position.PositionFullInformation memory info, int32 tick)
    internal
    pure
    returns (uint256);
```

#### renderTick <a href="#rendertick" id="rendertick"></a>

```solidity
function renderTick(
    IMaverickV2Position.PositionFullInformation memory info,
    int32 tick,
    uint256 index,
    int32 activeTick
) internal pure returns (string memory);
```

#### getLiquidityBars <a href="#getliquiditybars" id="getliquiditybars"></a>

```solidity
function getLiquidityBars(
    IMaverickV2Position.PositionFullInformation memory info,
    int32 activeTick,
    uint256 sqrtPrice,
    uint256 tickSpacing
) internal pure returns (string memory);
```

#### truncateString <a href="#truncatestring" id="truncatestring"></a>

```solidity
function truncateString(string memory str, uint256 maxBytesLength) internal pure returns (string memory);
```

### Structs <a href="#structs" id="structs"></a>

#### PositionMetadata <a href="#positionmetadata" id="positionmetadata"></a>

```solidity
struct PositionMetadata {
    string poolName;
    string tokenId;
    string poolAddress;
    string tokenAAddress;
    string tokenBAddress;
    string fee;
    string width;
    string mode;
    string tokenABalance;
    string tokenASymbol;
    string tokenBBalance;
    string tokenBSymbol;
    string liquidityBars;
}
```

<br>
