PositionBalanceLibrary
Title: A Panoptic Position Balance. Tracks the Position Size, the Pool Utilizations at mint, and the current/fastOracle/slowOracle/latestObserved ticks at mint.
Author: Axicon Labs Limited
Functionsβ
storeBalanceDataβ
Create a new PositionBalance given by positionSize, utilizations, and its tickData.
function storeBalanceData(uint128 _positionSize, uint32 _utilizations, uint96 _tickData)
internal
pure
returns (PositionBalance);
Parameters
| Name | Type | Description |
|---|---|---|
_positionSize | uint128 | The amount of option minted |
_utilizations | uint32 | Packed data containing pool utilizations for token0 and token1 at mint |
_tickData | uint96 | Packed data containing ticks at mint (currentTick, fastOracleTick, slowOracleTick, lastObservedTick) |
Returns
| Name | Type | Description |
|---|---|---|
<none> | PositionBalance | The new PositionBalance with the given positionSize, utilization, and tickData |
storeBalanceDataβ
Create a new PositionBalance given by positionSize, utilizations, and its tickData.
function storeBalanceData(uint128 _positionSize, uint32 _utilizations, int24 _finalTick)
internal
pure
returns (PositionBalance);
Parameters
| Name | Type | Description |
|---|---|---|
_positionSize | uint128 | The amount of option minted |
_utilizations | uint32 | Packed data containing pool utilizations for token0 and token1 at mint |
_finalTick | int24 | the ticks at the end of the mint |
Returns
| Name | Type | Description |
|---|---|---|
<none> | PositionBalance | The new PositionBalance with the given positionSize, utilization, and tickData |
packTickDataβ
Concatenate all oracle ticks into a single uint96.
function packTickData(int24 _currentTick, int24 _fastOracleTick, int24 _slowOracleTick, int24 _lastObservedTick)
internal
pure
returns (uint96);
Parameters
| Name | Type | Description |
|---|---|---|
_currentTick | int24 | The current tick |
_fastOracleTick | int24 | The fast oracle tick |
_slowOracleTick | int24 | The slow oracle tick |
_lastObservedTick | int24 | The last observed tick |
Returns
| Name | Type | Description |
|---|---|---|
<none> | uint96 | A 96bit word concatenating all 4 input ticks |
lastObservedTickβ
Get the last observed tick of self.
function lastObservedTick(PositionBalance self) internal pure returns (int24);
Parameters
| Name | Type | Description |
|---|---|---|
self | PositionBalance | The PositionBalance to retrieve the last observed tick from |
Returns
| Name | Type | Description |
|---|---|---|
<none> | int24 | The last observed tick of self |
slowOracleTickβ
Get the slow oracle tick of self.
function slowOracleTick(PositionBalance self) internal pure returns (int24);
Parameters
| Name | Type | Description |
|---|---|---|
self | PositionBalance | The PositionBalance to retrieve the slow oracle tick from |
Returns
| Name | Type | Description |
|---|---|---|
<none> | int24 | The slow oracle tick of self |
fastOracleTickβ
Get the fast oracle tick of self.
function fastOracleTick(PositionBalance self) internal pure returns (int24);
Parameters
| Name | Type | Description |
|---|---|---|
self | PositionBalance | The PositionBalance to retrieve the fast oracle tick from |
Returns
| Name | Type | Description |
|---|---|---|
<none> | int24 | The fast oracle tick of self |
currentTickβ
Get the current tick of self.
function currentTick(PositionBalance self) internal pure returns (int24);
Parameters
| Name | Type | Description |
|---|---|---|
self | PositionBalance | The PositionBalance to retrieve the current tick from |
Returns
| Name | Type | Description |
|---|---|---|
<none> | int24 | The current tick of self |
tickDataβ
Get the tickData of self.
function tickData(PositionBalance self) internal pure returns (uint96);
Parameters
| Name | Type | Description |
|---|---|---|
self | PositionBalance | The PositionBalance to retrieve the tickData from |
Returns
| Name | Type | Description |
|---|---|---|
<none> | uint96 | The packed tickData (currentTick, fastOracleTick, slowOracleTick, lastObservedTick) |
unpackTickDataβ
Unpack the current, last observed, and fast/slow oracle ticks from a 96-bit tickData encoding.
function unpackTickData(uint96 _tickData) internal pure returns (int24, int24, int24, int24);
Parameters
| Name | Type | Description |
|---|---|---|
_tickData | uint96 | The packed tickData to unpack ticks from |
Returns
| Name | Type | Description |
|---|---|---|
<none> | int24 | The current tick contained in _tickData |
<none> | int24 | The fast oracle tick contained in _tickData |
<none> | int24 | The slow oracle tick contained in _tickData |
<none> | int24 | The last observed tick contained in _tickData |
utilization0β
Get token0 utilization of self.
function utilization0(PositionBalance self) internal pure returns (int256);
Parameters
| Name | Type | Description |
|---|---|---|
self | PositionBalance | The PositionBalance to retrieve the token0 utilization from |
Returns
| Name | Type | Description |
|---|---|---|
<none> | int256 | The token0 utilization in basis points |
utilization1β
Get token1 utilization of self.
function utilization1(PositionBalance self) internal pure returns (int256);
Parameters
| Name | Type | Description |
|---|---|---|
self | PositionBalance | The PositionBalance to retrieve the token1 utilization from |
Returns
| Name | Type | Description |
|---|---|---|
<none> | int256 | The token1 utilization in basis points |
utilizationsβ
Get both token0 and token1 utilizations of self.
function utilizations(PositionBalance self) internal pure returns (uint32);
Parameters
| Name | Type | Description |
|---|---|---|
self | PositionBalance | The PositionBalance to retrieve the utilizations from |
Returns
| Name | Type | Description |
|---|---|---|
<none> | uint32 | The packed utilizations for token0 and token1 in basis points |
positionSizeβ
Get the positionSize of self.
function positionSize(PositionBalance self) internal pure returns (uint128);
Parameters
| Name | Type | Description |
|---|---|---|
self | PositionBalance | The PositionBalance to retrieve the positionSize from |
Returns
| Name | Type | Description |
|---|---|---|
<none> | uint128 | The positionSize of self |
unpackAllβ
Unpack all data from self.
function unpackAll(PositionBalance self)
external
pure
returns (
int24 currentTickAtMint,
int24 fastOracleTickAtMint,
int24 slowOracleTickAtMint,
int24 lastObservedTickAtMint,
int256 utilization0AtMint,
int256 utilization1AtMint,
uint128 _positionSize
);
Parameters
| Name | Type | Description |
|---|---|---|
self | PositionBalance | The PositionBalance to get all data from |
Returns
| Name | Type | Description |
|---|---|---|
currentTickAtMint | int24 | currentTick at mint |
fastOracleTickAtMint | int24 | Fast oracle tick at mint |
slowOracleTickAtMint | int24 | Slow oracle tick at mint |
lastObservedTickAtMint | int24 | Last observed tick at mint |
utilization0AtMint | int256 | Utilization of token0 at mint |
utilization1AtMint | int256 | Utilization of token1 at mint |
_positionSize | uint128 | Size of the position |