# PositionImage

**Inherits:**[ IPositionImage](/technical-reference/maverick-v2/v2-contracts/maverick-v2-supplemental-contracts/interfaces/ipositionimage.md)

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>


---

# 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/positionimage.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.
