1. Price와 Tick
X = amount of token 0
Y = amount of token 1
P = price of X in terms of Y = Y / X // 이건 V2에서 사용하던 가격 계산식과 동일
// v3에서의 가격계산식은 다음과 같음
P = 1.0001 ^ tick
V2에서는 풀 안의 token0와 token1의 수량으로 가격을 계산하였음.
V3에서는 풀 안의 토큰의 양을 계산하기 위해서는 3가지를 알아야 한다! : Liquidity, Price range, current price
이 세가지를 알면 주어진 가격범위에서 토큰들의 양을 계산할 수 있게된다.
Eth와 USDC 풀에서 Price와 Tick의 예시를 봐보자
tick = -200697
p = 1.0001 ** tick // 1.924313e-09
가격은 아주 작은 수로 나온다. 이를 어떻게 Eth/USDC (1이더는 당시 1924달러 정도인듯) 크기로 맞출까?
각 토큰의 decimals를 확인해보면 된다.
tick = -200697
p = 1.0001 ** tick # 1.924313e-09
# token0 = ETH
decimals_0 = 1e18
# token1 = USDC
decimals_1 = 1e6
P = p * decimals_0 / decimals_1 # 1924.313..
2. Tick Spacing
Number of ticks to skip when the price moves
스왑이 일어날 때마다 가격은 움직인다. 가격은 상승하거나 감소하는데 이 증감의 단위가 tick spacing이 된다.
tick spacing이 2라고 하면,
tick은 0에서 2, 2에서 4로 상승하고 감소할때도 0에서 -2, -4로 감소하게된다.
따라서…. 가격 역시 특정한 간격을 두고 움직이게 된다! 일단 여기까지가 오늘 깨달은 tick의 개념...