68 lines
2.1 KiB
Solidity
68 lines
2.1 KiB
Solidity
// SPDX-License-Identifier: UNLICENSED
|
|
pragma solidity =0.7.6;
|
|
pragma abicoder v2;
|
|
|
|
import '../libraries/OracleLibrary.sol';
|
|
|
|
contract OracleTest {
|
|
function consult(address pool, uint32 secondsAgo)
|
|
public
|
|
view
|
|
returns (int24 arithmeticMeanTick, uint128 harmonicMeanLiquidity)
|
|
{
|
|
return OracleLibrary.consult(pool, secondsAgo);
|
|
}
|
|
|
|
function getQuoteAtTick(
|
|
int24 tick,
|
|
uint128 baseAmount,
|
|
address baseToken,
|
|
address quoteToken
|
|
) public pure returns (uint256 quoteAmount) {
|
|
quoteAmount = OracleLibrary.getQuoteAtTick(tick, baseAmount, baseToken, quoteToken);
|
|
}
|
|
|
|
// For gas snapshot test
|
|
function getGasCostOfConsult(address pool, uint32 period) public view returns (uint256) {
|
|
uint256 gasBefore = gasleft();
|
|
OracleLibrary.consult(pool, period);
|
|
return gasBefore - gasleft();
|
|
}
|
|
|
|
function getGasCostOfGetQuoteAtTick(
|
|
int24 tick,
|
|
uint128 baseAmount,
|
|
address baseToken,
|
|
address quoteToken
|
|
) public view returns (uint256) {
|
|
uint256 gasBefore = gasleft();
|
|
OracleLibrary.getQuoteAtTick(tick, baseAmount, baseToken, quoteToken);
|
|
return gasBefore - gasleft();
|
|
}
|
|
|
|
function getOldestObservationSecondsAgo(address pool)
|
|
public
|
|
view
|
|
returns (uint32 secondsAgo, uint32 currentTimestamp)
|
|
{
|
|
secondsAgo = OracleLibrary.getOldestObservationSecondsAgo(pool);
|
|
currentTimestamp = uint32(block.timestamp);
|
|
}
|
|
|
|
function getBlockStartingTickAndLiquidity(address pool) public view returns (int24, uint128) {
|
|
return OracleLibrary.getBlockStartingTickAndLiquidity(pool);
|
|
}
|
|
|
|
function getWeightedArithmeticMeanTick(OracleLibrary.WeightedTickData[] memory observations)
|
|
public
|
|
pure
|
|
returns (int24 arithmeticMeanWeightedTick)
|
|
{
|
|
return OracleLibrary.getWeightedArithmeticMeanTick(observations);
|
|
}
|
|
|
|
function getChainedPrice(address[] memory tokens, int24[] memory ticks) public view returns (int256 syntheticTick) {
|
|
return OracleLibrary.getChainedPrice(tokens, ticks);
|
|
}
|
|
}
|