Maverick Docs
  • Introducing Maverick
  • Getting Started
    • 🖥️The Maverick V2 UI
    • 👛Connect a Wallet
    • ⛓️Choose a Network
    • 🪙Approving Tokens
  • Guides
    • 🤝Traders
      • How to Make a Swap
    • 💰Liquidity Providers
      • Understanding Liquidity Provision
      • Understanding Modes
      • How to Add Liquidity
      • How to Deploy a New Pool
      • How to Check Position Balances
      • How to Manage Liquidity in a Pool
      • How to Migrate from V1 to V2
      • Understanding Permanent Loss
      • Liquidity Strategies
    • ⚡Incentives
      • Understanding Boosted Positions
      • Understanding Incentives
      • How to Join a Boosted Position
      • How to Create a Boosted Position
      • How to Manage a Boosted Position
      • How to Add Incentives
    • 🎡veFlywheel
      • veFlywheel Basics
      • Guide to veFlywheel Emissions
      • How to Vote to Direct Emissions
    • 👩‍🏫Advanced Tutorials
      • Single-Sided Incentives
  • Technical Reference
    • Contract Addresses
      • V1 Contract Addresses
      • V2 Contract Addresses
    • Maverick V1
      • V1 Whitepaper
      • V1 Contracts
        • Router
        • Pool
        • Factory
        • SlimRouter
    • Maverick V2
      • V2 Whitepaper
      • V2 Contracts
        • Maverick V2 Common Contracts
          • base
            • IMulticall
            • IPayableMulticall
            • Multicall
            • PayableMulticall
          • interfaces
            • IMaverickV2AddLiquidityCallback
            • IMaverickV2Factory
            • IMaverickV2FactoryAdmin
            • IMaverickV2FlashLoanCallback
            • IMaverickV2Pool
            • IMaverickV2PoolAdmin
            • IMaverickV2SwapCallback
          • libraries
            • ArrayOperations
            • Constants
            • Math
            • PoolLib
            • TickMath
            • TransferLib
        • Maverick V2 AMM Contracts
          • poollib
            • Bin
            • Delta
            • Deployer
            • DeployerPermissioned
            • SwapMath
            • Twa
          • MaverickV2Factory
          • MaverickV2Pool
          • MaverickV2PoolPermissioned
        • Maverick V2 Reward Contracts
          • interfaces
            • IMaverickV2IncentiveMatcher
            • IMaverickV2IncentiveMatcherFactory
            • IMaverickV2Reward
            • IMaverickV2RewardFactory
            • IMaverickV2RewardRouter
            • IMaverickV2RewardVault
            • IMaverickV2VotingEscrowBase
            • IMaverickV2VotingEscrow
            • IMaverickV2VotingEscrowFactory
            • IMaverickV2VotingEscrowLens
            • IMaverickV2VotingEscrowWSync
          • libraries
            • IncentiveMatcherDeployer
            • RewardDeployer
            • VotingEscrowDeployer
            • VotingEscrowWSyncDeployer
          • rewardbase
            • IRewardAccounting
            • RewardAccounting
          • votingescrowbase
            • HistoricalBalance
            • IHistoricalBalance
            • ILegacyVeMav
            • VotingEscrow
          • MaverickV2IncentiveMatcher
          • MaverickV2IncentiveMatcherFactory
          • MaverickV2Reward
          • MaverickV2RewardFactory
          • MaverickV2RewardRouter
          • MaverickV2RewardVault
          • MaverickV2VotingEscrow
          • MaverickV2VotingEscrowFactory
          • MaverickV2VotingEscrowLens
          • MaverickV2VotingEscrowWSync
        • Maverick V2 Supplemental Contracts
          • base
            • Checks
            • IChecks
            • IMigrateBins
            • MigrateBins
          • boostedpositionbase
            • BoostedPositionBase
            • IBoostedPositionBase
            • ImmutableArrayGetter
          • interfaces
            • IMaverickV2BoostedPosition
            • IMaverickV2BoostedPositionFactory
            • IMaverickV2LiquidityManager
            • IMaverickV2PoolLens
            • IMaverickV2Position
            • IMaverickV2Quoter
            • IMaverickV2Router
            • IPositionImage
          • libraries
            • BoostedPositionDeployerDynamic
            • BoostedPositionDeployerStatic
            • BytesLib
            • LiquidityUtilities
            • PackLib
            • Path
            • PoolInspection
          • liquiditybase
            • ArgPacker
            • IArgPacker
          • paymentbase
            • IERC20PermitAllowed
            • IPayment
            • ISelfPermit
            • IState
            • IWETH9
            • Payment
            • SelfPermit
            • State
          • positionbase
            • INft
            • Nft
          • routerbase
            • CallbackOperations
            • ExactOutputSlim
            • ICallbackOperations
            • IExactOutputSlim
            • IPushOperations
            • IRouterErrors
            • PushOperations
          • MaverickV2BoostedPositionDynamic
          • MaverickV2BoostedPositionFactory
          • MaverickV2BoostedPositionStatic
          • MaverickV2LiquidityManager
          • MaverickV2PoolLens
          • MaverickV2Position
          • MaverickV2Quoter
          • MaverickV2Router
          • PositionImage
      • V2 API Documentation
      • V2 Testnet Guide
        • Get Sepolia ETH & Test Tokens
        • How to Create a Boosted Position in V2
        • How to Add & Match Incentives
        • How to Create a veFlywheel
    • Development FAQ
    • Finding LP Balances
  • MAV token
    • MAV Token & Tokenomics
    • veMAV & MAV Staking
    • How to Stake MAV
    • Syncing V1 veMAV
    • Airdrop Information
      • Maverick Ecosystem Rewards Pre-Season Airdrop
      • Maverick Governance & S1 Airdrops
  • Further Information
    • Frequently Asked Questions
    • Glossary
    • Security
    • Maverick Wallets
    • Dune Analytics
    • Rebasing Tokens
    • Restricted Territories
    • Delphi Digital Report
Powered by GitBook
On this page
  • Functions
  • Errors
  1. Technical Reference
  2. Maverick V2
  3. V2 Contracts
  4. Maverick V2 Common Contracts
  5. libraries

TickMath

Functions

tickSqrtPrices

Compute the lower and upper sqrtPrice of a tick.

function tickSqrtPrices(uint256 tickSpacing, int32 _tick)
    internal
    pure
    returns (uint256 sqrtLowerPrice, uint256 sqrtUpperPrice);

Parameters

Name
Type
Description

tickSpacing

uint256

The tick spacing used for calculations.

_tick

int32

The input tick value.

subTickIndex

Compute the base tick value from the pool tick and the tickSpacing. Revert if base tick is beyond the max tick boundary.

function subTickIndex(uint256 tickSpacing, int32 _tick) internal pure returns (uint32 subTick);

Parameters

Name
Type
Description

tickSpacing

uint256

The tick spacing used for calculations.

_tick

int32

The input tick value.

tickSqrtPrice

Calculate the square root price for a given tick and tick spacing.

function tickSqrtPrice(uint256 tickSpacing, int32 _tick) internal pure returns (uint256 _result);

Parameters

Name
Type
Description

tickSpacing

uint256

The tick spacing used for calculations.

_tick

int32

The input tick value.

Returns

Name
Type
Description

_result

uint256

The square root price.

getTickL

Calculate liquidity of a tick.

function getTickL(uint256 reserveA, uint256 reserveB, uint256 sqrtLowerTickPrice, uint256 sqrtUpperTickPrice)
    internal
    pure
    returns (uint256 liquidity);

Parameters

Name
Type
Description

reserveA

uint256

Tick reserve of token A.

reserveB

uint256

Tick reserve of token B.

sqrtLowerTickPrice

uint256

The square root price of the lower tick edge.

sqrtUpperTickPrice

uint256

The square root price of the upper tick edge.

getSqrtPrice

Calculate square root price of a tick. Returns left edge of the tick if the tick has no reserves.

function getSqrtPrice(
    uint256 reserveA,
    uint256 reserveB,
    uint256 sqrtLowerTickPrice,
    uint256 sqrtUpperTickPrice,
    uint256 liquidity
) internal pure returns (uint256 sqrtPrice);

Parameters

Name
Type
Description

reserveA

uint256

Tick reserve of token A.

reserveB

uint256

Tick reserve of token B.

sqrtLowerTickPrice

uint256

The square root price of the lower tick edge.

sqrtUpperTickPrice

uint256

The square root price of the upper tick edge.

liquidity

uint256

Returns

Name
Type
Description

sqrtPrice

uint256

The calculated square root price.

getTickSqrtPriceAndL

Calculate square root price of a tick. Returns left edge of the tick if the tick has no reserves.

function getTickSqrtPriceAndL(
    uint256 reserveA,
    uint256 reserveB,
    uint256 sqrtLowerTickPrice,
    uint256 sqrtUpperTickPrice
) internal pure returns (uint256 sqrtPrice, uint256 liquidity);

Parameters

Name
Type
Description

reserveA

uint256

Tick reserve of token A.

reserveB

uint256

Tick reserve of token B.

sqrtLowerTickPrice

uint256

The square root price of the lower tick edge.

sqrtUpperTickPrice

uint256

The square root price of the upper tick edge.

Returns

Name
Type
Description

sqrtPrice

uint256

The calculated square root price.

liquidity

uint256

The calculated liquidity.

Errors

TickMaxExceeded

error TickMaxExceeded(int256 tick);
PreviousPoolLibNextTransferLib

Last updated 1 year ago