u256::U256 in Q128.128 form.
Growth per unit of liquidity
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
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 }.