# Constants

**Author:**
Axicon Labs Limited

This library provides constants used in Panoptic.

## State Variables

### FP96

Fixed point multiplier: 2**96

`uint256 internal constant FP96 = 0x1000000000000000000000000;`

### MIN_V4POOL_TICK

Minimum possible price tick in a Uniswap V4 pool

`int24 internal constant MIN_V4POOL_TICK = -887272;`

### MAX_V4POOL_TICK

Maximum possible price tick in a Uniswap V4 pool

`int24 internal constant MAX_V4POOL_TICK = 887272;`

### MIN_V4POOL_SQRT_RATIO

Minimum possible sqrtPriceX96 in a Uniswap V4 pool

`uint160 internal constant MIN_V4POOL_SQRT_RATIO = 4295128739;`

### MAX_V4POOL_SQRT_RATIO

Maximum possible sqrtPriceX96 in a Uniswap V4 pool

`uint160 internal constant MAX_V4POOL_SQRT_RATIO = 1461446703485210103287273052203988822378723970342;`

### SLOW_ORACLE_UNISWAP_MODE

Parameter that determines which oracle type to use for the "slow" oracle price on non-liquidation solvency checks.

*If false, an 8-slot internal median array is used to compute the "slow" oracle price.*

*This oracle is updated with the last oracle observation during mintOptions if MEDIAN_PERIOD has elapsed past the last observation.*

*If true, the "slow" oracle price is instead computed on-the-fly from 9 oracle observations (spaced 5 observations apart) irrespective of the frequency of mintOptions calls.*

`bool internal constant SLOW_ORACLE_UNISWAP_MODE = false;`

### MEDIAN_PERIOD

The minimum amount of time, in seconds, permitted between internal TWAP updates.

`uint256 internal constant MEDIAN_PERIOD = 60;`

### FAST_ORACLE_CARDINALITY

Amount of oracle observations to include in the "fast" oracle price.

`uint256 internal constant FAST_ORACLE_CARDINALITY = 3;`

### FAST_ORACLE_PERIOD

*Amount of observation indices to skip in between each observation for the "fast" oracle price.*

*Note that the *minimum* total observation time is determined by the blocktime and may need to be adjusted by chain.*

*oracle observations snapshot the last block's closing price at the first interaction with the pool in a block.*

*In this case, if there is an interaction every block, the "fast" oracle can consider 3 consecutive block end prices (min=36 seconds on Ethereum).*

`uint256 internal constant FAST_ORACLE_PERIOD = 1;`

### SLOW_ORACLE_CARDINALITY

Amount of oracle observations to include in the "slow" oracle price (in Uniswap mode).

`uint256 internal constant SLOW_ORACLE_CARDINALITY = 9;`

### SLOW_ORACLE_PERIOD

Amount of observation indices to skip in between each observation for the "slow" oracle price.

*Structured such that the minimum total observation time is 9 minutes on Ethereum.*

`uint256 internal constant SLOW_ORACLE_PERIOD = 5;`