> For the complete documentation index, see [llms.txt](https://docs.algebra.finance/algebra-integral-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.algebra.finance/algebra-integral-documentation/algebra-v1-technical-reference/contracts/api-reference-v1.0/v1.0-tokenomics/ialgebravirtualpoolbase.md).

# IAlgebraVirtualPoolBase

Base interface for virtual pools

## Functions

### timeOutside

`timeOutside()` view external

**Returns:**

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

### ticks

`ticks(int24)` 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

`currentLiquidity()` view external

**Returns:**

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

### globalTick

`globalTick()` view external

**Returns:**

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

### globalSecondsPerLiquidityCumulative

`globalSecondsPerLiquidityCumulative()` view external

**Returns:**

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

### prevTimestamp

`prevTimestamp()` view external

**Returns:**

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

### getInnerSecondsPerLiquidity

`getInnerSecondsPerLiquidity(int24,int24)` 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 |             |

### applyLiquidityDeltaToPosition

`applyLiquidityDeltaToPosition(uint32,int24,int24,int128,int24)` external

| 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     |

***
