# IAlgebraVirtualPoolBase

Base interface for virtual pools

## Functions

### timeOutside

`function timeOutside() external view returns (uint32)` view external

**Returns:**

| Name | Type   | Description |
| ---- | ------ | ----------- |
| \[0] | uint32 |             |

### ticks

`function ticks(int24 tickId) external view returns (uint128 liquidityTotal, int128 liquidityDelta, uint256 outerFeeGrowth0Token, uint256 outerFeeGrowth1Token, int56 outerTickCumulative, uint160 outerSecondsPerLiquidity, uint32 outerSecondsSpent, bool initialized)` view external

| Name   | Type  | Description |
| ------ | ----- | ----------- |
| tickId | int24 |             |

**Returns:**

| Name                     | Type    | Description |
| ------------------------ | ------- | ----------- |
| liquidityTotal           | uint128 |             |
| liquidityDelta           | int128  |             |
| outerFeeGrowth0Token     | uint256 |             |
| outerFeeGrowth1Token     | uint256 |             |
| outerTickCumulative      | int56   |             |
| outerSecondsPerLiquidity | uint160 |             |
| outerSecondsSpent        | uint32  |             |
| initialized              | bool    |             |

### currentLiquidity

`function currentLiquidity() external view returns (uint128)` view external

**Returns:**

| Name | Type    | Description |
| ---- | ------- | ----------- |
| \[0] | uint128 |             |

### globalTick

`function globalTick() external view returns (int24)` view external

**Returns:**

| Name | Type  | Description |
| ---- | ----- | ----------- |
| \[0] | int24 |             |

### globalSecondsPerLiquidityCumulative

`function globalSecondsPerLiquidityCumulative() external view returns (uint160)` view external

**Returns:**

| Name | Type    | Description |
| ---- | ------- | ----------- |
| \[0] | uint160 |             |

### prevTimestamp

`function prevTimestamp() external view returns (uint32)` view external

**Returns:**

| Name | Type   | Description |
| ---- | ------ | ----------- |
| \[0] | uint32 |             |

### deactivated

`function deactivated() external view returns (bool)` view external

**Returns:**

| Name | Type | Description |
| ---- | ---- | ----------- |
| \[0] | bool |             |

### getInnerSecondsPerLiquidity

`function getInnerSecondsPerLiquidity(int24 bottomTick, int24 topTick) external view returns (uint160 innerSecondsSpentPerLiquidity)` view external

This function is used to calculate the seconds per liquidity inside a certain position

| Name       | Type  | Description                   |
| ---------- | ----- | ----------------------------- |
| bottomTick | int24 | The bottom tick of a position |
| topTick    | int24 | The top tick of a position    |

**Returns:**

| Name                          | Type    | Description                                   |
| ----------------------------- | ------- | --------------------------------------------- |
| innerSecondsSpentPerLiquidity | uint160 | The seconds per liquidity inside the position |

### deactivate

`function deactivate() external` external

This function is used to deactivate virtual pool. Deactivated virtual pool will return Status.NOT\_EXIST in increaseCumulative function

### applyLiquidityDeltaToPosition

`function applyLiquidityDeltaToPosition(uint32 currentTimestamp, int24 bottomTick, int24 topTick, int128 liquidityDelta, int24 currentTick) external` external

*Developer note: This function is called when anyone farms their liquidity. The position in a virtual pool should be changed accordingly*

| Name             | Type   | Description                           |
| ---------------- | ------ | ------------------------------------- |
| currentTimestamp | uint32 | The timestamp of current block        |
| bottomTick       | int24  | The bottom tick of a position         |
| topTick          | int24  | The top tick of a position            |
| liquidityDelta   | int128 | The amount of liquidity in a position |
| currentTick      | int24  | The current tick in the main pool     |
