Helpers ​
Inherits:CommonImport
Functions ​
_reentrancyLock ​
modifier _reentrancyLock();
_getExtraDataSlot ​
function _getExtraDataSlot() internal view returns (address extraDataAddress_);
_getGovernanceAddr ​
function _getGovernanceAddr() internal view returns (address governance_);
_callExtraDataSlot ​
function _callExtraDataSlot(bytes memory data_) internal;
_tenPow ​
function _tenPow(uint256 power_) internal pure returns (uint256);
_calculateReservesOutsideRange ​
getting reserves outside range.
function _calculateReservesOutsideRange(uint256 gp_, uint256 pa_, uint256 rx_, uint256 ry_)
internal
pure
returns (uint256 xa_, uint256 yb_);
Parameters
Name | Type | Description |
---|---|---|
gp_ | uint256 | is geometric mean pricing of upper percent & lower percent |
pa_ | uint256 | price of upper range or lower range |
rx_ | uint256 | real reserves of token0 or token1 |
ry_ | uint256 | whatever is rx_ the other will be ry_ |
_calcShiftingDone ​
This function calculates the new value of a parameter after a shifting process
function _calcShiftingDone(uint256 current_, uint256 old_, uint256 timePassed_, uint256 shiftDuration_)
internal
pure
returns (uint256);
Parameters
Name | Type | Description |
---|---|---|
current_ | uint256 | The current value is the final value where the shift ends |
old_ | uint256 | The old value from where shifting started |
timePassed_ | uint256 | The time passed since shifting started |
shiftDuration_ | uint256 | The total duration of the shift when old_ reaches current_ |
Returns
Name | Type | Description |
---|---|---|
<none> | uint256 | The new value of the parameter after the shift |
_calcRangeShifting ​
This function handles the gradual shifting of range values over time
If the shift is complete, it updates the state and clears the shift data
Calculates the new upper and lower range values during an active range shift
function _calcRangeShifting(uint256 upperRange_, uint256 lowerRange_, bytes8 dexId_)
internal
returns (uint256, uint256);
Parameters
Name | Type | Description |
---|---|---|
upperRange_ | uint256 | The target upper range value |
lowerRange_ | uint256 | The target lower range value |
dexId_ | bytes8 |
_calcThresholdShifting ​
This function handles the gradual shifting of threshold values over time
If the shift is complete, it updates the state and clears the shift data
Calculates the new upper and lower threshold values during an active threshold shift
function _calcThresholdShifting(uint256 upperThreshold_, uint256 lowerThreshold_, bytes8 dexId_)
internal
returns (uint256, uint256);
Parameters
Name | Type | Description |
---|---|---|
upperThreshold_ | uint256 | The target upper threshold value |
lowerThreshold_ | uint256 | The target lower threshold value |
dexId_ | bytes8 |
Returns
Name | Type | Description |
---|---|---|
<none> | uint256 | The updated upper threshold, lower threshold |
<none> | uint256 |
_calcCenterPrice ​
This function gradually shifts the center price towards a new target price over time
It uses an external price source (via ICenterPrice) to determine the target price
The shift continues until the current price reaches the target, or the shift duration ends
Once the shift is complete, it updates the state and clears the shift data
The shift rate is dynamic and depends on:
Time remaining in the shift duration
The new center price (fetched externally, which may change)
The current (old) center price
This results in a fuzzy shifting mechanism where the rate can change as these parameters evolve
The externally fetched new center price is expected to not differ significantly from the last externally fetched center price
Calculates the new center price during an active price shift
function _calcCenterPrice(DexKey calldata dexKey_, uint256 dexVariables_, bytes8 dexId_)
internal
returns (uint256 newCenterPrice_);
Parameters
Name | Type | Description |
---|---|---|
dexKey_ | DexKey | |
dexVariables_ | uint256 | The current state of dex variables |
dexId_ | bytes8 |
Returns
Name | Type | Description |
---|---|---|
newCenterPrice_ | uint256 | The updated center price |
_getPricesAndReserves ​
Calculates and returns the current prices and exchange prices for the pool
function _getPricesAndReserves(
DexKey calldata dexKey_,
uint256 dexVariables_,
bytes8 dexId_,
uint256 token0Supply_,
uint256 token1Supply_
) internal returns (uint256 centerPrice_, uint256 token0ImaginaryReserves_, uint256 token1ImaginaryReserves_);
Parameters
Name | Type | Description |
---|---|---|
dexKey_ | DexKey | |
dexVariables_ | uint256 | The first set of DEX variables containing various pool parameters |
dexId_ | bytes8 | |
token0Supply_ | uint256 | |
token1Supply_ | uint256 |
_getRebalancingStatus ​
function _getRebalancingStatus(
uint256 dexVariables_,
bytes8 dexId_,
uint256 rebalancingStatus_,
uint256 price_,
uint256 centerPrice_
) internal returns (uint256);
_transferTokens ​
function _transferTokens(
address tokenIn_,
uint256 amountIn_,
address tokenOut_,
uint256 amountOut_,
address to_,
bool isCallback_,
bytes calldata callbackData_
) internal;
_spell ​
do any arbitrary call
function _spell(address target_, bytes memory data_) internal returns (bytes memory response_);
Parameters
Name | Type | Description |
---|---|---|
target_ | address | Address to which the call needs to be delegated |
data_ | bytes | Data to execute at the delegated address |