Contains methods for working with a mapping from tick to 32 bit timestamp values, specifically seconds spent outside the tick.
The mapping uses int24 for keys since ticks are represented as int24 and there are 8 (2^3) values per word. Note "seconds outside" is always a relative measurement, only consistent for as long as a the lower tick and upper tick have gross liquidity greater than 0.
Copy function initialize (
mapping( int24 => uint256 ) self ,
int24 tick ,
int24 tickCurrent ,
int24 tickSpacing ,
uint32 time
) internal Called the first time a tick is used to set the seconds outside value. Assumes the tick is not initialized.
Parameters: β arrow-up-right
mapping(int24 => uint256)
the packed mapping of tick to seconds outside
the tick to be initialized
the spacing between usable ticks
Called when a tick is no longer used, to clear the seconds outside value of the tick
Parameters: β arrow-up-right
mapping(int24 => uint256)
the packed mapping of tick to seconds outside
the spacing between usable ticks
Called when an initialized tick is crossed to update the seconds outside for that tick. Must be called every time an initialized tick is crossed
Parameters: β arrow-up-right
mapping(int24 => uint256)
the packed mapping of tick to seconds outside
the spacing between usable ticks
the current block timestamp truncated to 32 bits
Get the seconds outside for an initialized tick. Should be called only on initialized ticks.
Parameters: β arrow-up-right
mapping(int24 => uint256)
the packed mapping of tick to seconds outside
the tick to get the seconds outside value for
the spacing between usable ticks
Return Values: β arrow-up-right
seconds outside value for that tick
Get the seconds inside a tick range, assuming both tickLower and tickUpper are initialized
Parameters: β arrow-up-right
mapping(int24 => uint256)
the packed mapping of tick to seconds outside
the lower tick for which to get seconds inside
the upper tick for which to get seconds inside
the spacing between usable ticks
Return Values: β arrow-up-right
relative seconds inside value that can be snapshotted and compared to a later snapshot to compute
time spent between tickLower and tickUpper, i.e. time that a position's liquidity was in use.