> 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/algebravirtualpoolbase.md).

# AlgebraVirtualPoolBase

Abstract base contract for Algebra virtual pools

## Modifiers

### onlyFromPool

only pool (or FarmingCenter as "proxy") can call

### onlyFarming

## Variables

### address farmingCenterAddress immutable

### address farmingAddress immutable

### address pool immutable

### mapping(int24 => struct TickManager.Tick) ticks

### uint128 currentLiquidity

### int24 globalTick

### uint32 timeOutside

### uint160 globalSecondsPerLiquidityCumulative

### uint32 prevTimestamp

## Functions

### getInnerSecondsPerLiquidity

`getInnerSecondsPerLiquidity(int24,int24)` view external

get seconds per liquidity inside range

| Name       | Type  | Description |
| ---------- | ----- | ----------- |
| bottomTick | int24 |             |
| topTick    | int24 |             |

**Returns:**

| Name                          | Type    | Description |
| ----------------------------- | ------- | ----------- |
| innerSecondsSpentPerLiquidity | uint160 |             |

### cross

onlyFromPool

`cross(int24,bool)` external

| Name      | Type  | Description      |
| --------- | ----- | ---------------- |
| nextTick  | int24 | The crossed tick |
| zeroToOne | bool  | The direction    |

### increaseCumulative

onlyFromPool

`increaseCumulative(uint32)` external

| Name             | Type   | Description                       |
| ---------------- | ------ | --------------------------------- |
| currentTimestamp | uint32 | The timestamp of the current swap |

**Returns:**

| Name | Type                            | Description |
| ---- | ------------------------------- | ----------- |
| \[0] | enum IAlgebraVirtualPool.Status |             |

### applyLiquidityDeltaToPosition

onlyFarming

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

***
