> For the complete documentation index, see [llms.txt](https://docs.yuzu.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.yuzu.finance/technical/smart-contracts/yuzu-clmm/example-usage/liquidity-pool.md).

# Liquidity Pool

**Extract key attributes of a position**

This function is used to extract key attributes of a position.

```
public fun extract_core_position(
    position: &Position,
): (u64, u32, u32, u128, u256, u256, u64, u64)
```

**Function arguments**

| Argument | Type       | Description                                    |
| -------- | ---------- | ---------------------------------------------- |
| position | \&Position | The current position to extract detailed data. |

**Returns**

| Type   | Description                          |
| ------ | ------------------------------------ |
| `u64`  | Position identifier                  |
| `u32`  | Lower tick boundary                  |
| `u32`  | Upper tick boundary                  |
| `u128` | Liquidity value                      |
| `u256` | Fee growth inside for token 0        |
| `u256` | Fee growth inside for token 1        |
| `u64`  | Pending fees for position in token 0 |
| `u64`  | Pending fees for position in token 1 |

**Extract position rewards**

This function is used to extract all reward information associated with the given position.

```
public fun extract_position_rewards(
    position: &Position,
): vector<PositionRewardInfo>
```

**Function arguments**

| Argument   | Type        | Description                                                         |
| ---------- | ----------- | ------------------------------------------------------------------- |
| `position` | `&Position` | A reference to the position from which reward details are retrieved |

**Returns**

| Type                         | Description                                                        |
| ---------------------------- | ------------------------------------------------------------------ |
| `vector<PositionRewardInfo>` | A vector containing all reward information records of the position |

**Extract reward info of a position**

This function is used to extract the detailed reward data from a position reward information.

```
public fun extract_reward_info(
    reward_info: &PositionRewardInfo,
): (u256, u64)
```

**Function arguments**

| Argument      | Type                  | Description                                                    |
| ------------- | --------------------- | -------------------------------------------------------------- |
| `reward_info` | `&PositionRewardInfo` | A reference to the reward info record to extract detailed data |

**Returns**

| Type   | Description                   |
| ------ | ----------------------------- |
| `u256` | The reward growth accumulated |
| `u64`  | The pending reward amount     |
