DataStorageOperator

Modifiers

onlyPool

Variables

struct DataStorage.Timepoint[65536] timepoints

struct AdaptiveFee.Configuration feeConfig

Functions

constructor

constructor(address) public

Name
Type
Description

_pool

address

initialize

onlyPool

initialize(uint32,int24) external

Initialize the dataStorage array by writing the first slot. Called once for the lifecycle of the timepoints array

Name
Type
Description

time

uint32

The time of the dataStorage initialization, via block.timestamp truncated to uint32

tick

int24

Initial tick

changeFeeConfiguration

changeFeeConfiguration(struct AdaptiveFee.Configuration) external

Changes fee configuration for the pool

Name
Type
Description

_feeConfig

struct AdaptiveFee.Configuration

getSingleTimepoint

onlyPool

getSingleTimepoint(uint32,uint32,int24,uint16,uint128) view external

Name
Type
Description

time

uint32

The current block timestamp

secondsAgo

uint32

The amount of time to look back, in seconds, at which point to return an timepoint

tick

int24

The current tick

index

uint16

The index of the timepoint that was most recently written to the timepoints array

liquidity

uint128

The current in-range pool liquidity

Returns:

Name
Type
Description

tickCumulative

int56

secondsPerLiquidityCumulative

uint160

volatilityCumulative

uint112

volumePerAvgLiquidity

uint256

getTimepoints

onlyPool

getTimepoints(uint32,uint32[],int24,uint16,uint128) view external

Returns the accumulator values as of each time seconds ago from the given time in the array of `secondsAgos`

Name
Type
Description

time

uint32

The current block.timestamp

secondsAgos

uint32[]

Each amount of time to look back, in seconds, at which point to return an timepoint

tick

int24

The current tick

index

uint16

The index of the timepoint that was most recently written to the timepoints array

liquidity

uint128

The current in-range pool liquidity

Returns:

Name
Type
Description

tickCumulatives

int56[]

secondsPerLiquidityCumulatives

uint160[]

volatilityCumulatives

uint112[]

volumePerAvgLiquiditys

uint256[]

getAverages

onlyPool

getAverages(uint32,int24,uint16,uint128) view external

Returns average volatility in the range from time-WINDOW to time

Name
Type
Description

time

uint32

The current block.timestamp

tick

int24

The current tick

index

uint16

The index of the timepoint that was most recently written to the timepoints array

liquidity

uint128

The current in-range pool liquidity

Returns:

Name
Type
Description

TWVolatilityAverage

uint112

TWVolumePerLiqAverage

uint256

write

onlyPool

write(uint16,uint32,int24,uint128,uint128) external

Writes an dataStorage timepoint to the array

Name
Type
Description

index

uint16

The index of the timepoint that was most recently written to the timepoints array

blockTimestamp

uint32

The timestamp of the new timepoint

tick

int24

The active tick at the time of the new timepoint

liquidity

uint128

The total in-range liquidity at the time of the new timepoint

volumePerLiquidity

uint128

The gmean(volumes)/liquidity at the time of the new timepoint

Returns:

Name
Type
Description

indexUpdated

uint16

calculateVolumePerLiquidity

calculateVolumePerLiquidity(uint128,int256,int256) pure external

Calculates gmean(volume/liquidity) for block

Name
Type
Description

liquidity

uint128

The current in-range pool liquidity

amount0

int256

Total amount of swapped token0

amount1

int256

Total amount of swapped token1

Returns:

Name
Type
Description

volumePerLiquidity

uint128

window

window() pure external

Returns:

Name
Type
Description

[0]

uint32

getFee

onlyPool

getFee(uint32,int24,uint16,uint128) view external

Calculates fee based on combination of sigmoids

Name
Type
Description

_time

uint32

_tick

int24

_index

uint16

_liquidity

uint128

Returns:

Name
Type
Description

fee

uint16