github.com/status-im/status-go@v1.1.0/contracts/uniswapV3/interfaces/pool/IUniswapV3PoolImmutables.sol (about) 1 // SPDX-License-Identifier: GPL-2.0-or-later 2 pragma solidity >=0.5.0; 3 4 /// @title Pool state that never changes 5 /// @notice These parameters are fixed for a pool forever, i.e., the methods will always return the same values 6 interface IUniswapV3PoolImmutables { 7 /// @notice The contract that deployed the pool, which must adhere to the IUniswapV3Factory interface 8 /// @return The contract address 9 function factory() external view returns (address); 10 11 /// @notice The first of the two tokens of the pool, sorted by address 12 /// @return The token contract address 13 function token0() external view returns (address); 14 15 /// @notice The second of the two tokens of the pool, sorted by address 16 /// @return The token contract address 17 function token1() external view returns (address); 18 19 /// @notice The pool's fee in hundredths of a bip, i.e. 1e-6 20 /// @return The fee 21 function fee() external view returns (uint24); 22 23 /// @notice The pool tick spacing 24 /// @dev Ticks can only be used at multiples of this value, minimum of 1 and always positive 25 /// e.g.: a tickSpacing of 3 means ticks can be initialized every 3rd tick, i.e., ..., -6, -3, 0, 3, 6, ... 26 /// This value is an int24 to avoid casting even though it is always positive. 27 /// @return The tick spacing 28 function tickSpacing() external view returns (int24); 29 30 /// @notice The maximum amount of position liquidity that can use any tick in the range 31 /// @dev This parameter is enforced per tick to prevent liquidity from overflowing a uint128 at any point, and 32 /// also prevents out-of-range liquidity from being used to prevent adding in-range liquidity to a pool 33 /// @return The max amount of liquidity per tick 34 function maxLiquidityPerTick() external view returns (uint128); 35 }