Skip to main content
Global, outside, and position checkpoint fee growth use u256::U256 in Q128.128 form.

Growth per unit of liquidity

The input-token global accumulator increases by this value.

Growth inside a range

The contract derives growth below and above the position from global growth, each boundary’s outside growth, and the current tick. It subtracts both from global growth to get inside growth. Crossing an initialized tick flips its outside accumulator relative to current global growth. This makes the same boundary work in either crossing direction.

Owed amount

The subtraction wraps modulo 2^256. The wide product is shifted by 128 bits. The result must fit u128. The contract stores u256::U256 directly. It does not declare a separate FeeGrowth struct. Client code can use a semantic wrapper type, but its wire parser must match { hi, lo }.