index/functions/roundTickBoundaries.md
roundTickBoundaries(
tickLower,tickUpper,tickSpacing):object
Round tick boundaries to valid Uniswap V3 spacing multiples
Uniswap V3 ticks must be multiples of tickSpacing (1, 10, 60, 200, etc.). This utility rounds tickLower down and tickUpper up to valid boundaries.
Consolidates 5 occurrences of inline Math.floor/Math.ceil logic in GSwap services.
tick lower upper spacing
Parameters
| Parameter | Type | Description |
|---|---|---|
tickLower | number | Lower tick boundary (before rounding) |
tickUpper | number | Upper tick boundary (before rounding) |
tickSpacing | number | Tick spacing requirement (e.g., 60 for 0.3% fee tier) |
tick lower upper spacing
Returns
object
Object with rounded tickLower (floor) and tickUpper (ceil)
| Name | Type |
|---|---|
tickLower | number |
tickUpper | number |
tick lower upper
Throws
Error if tickLower >= tickUpper or if tickSpacing <= 0
Example
// Round to nearest 60-tick multiples
const rounded = roundTickBoundaries(1234, 5678, 60);
// Returns: { tickLower: 1200, tickUpper: 5700 }
// (1234 rounds down to 1200, 5678 rounds up to 5700)
// Handle negative ticks (below price 1.0)
const rounded = roundTickBoundaries(-1234, -1000, 10);
// Returns: { tickLower: -1240, tickUpper: -1000 }
// Ticks already valid (multiples of spacing)
const rounded = roundTickBoundaries(0, 60, 60);
// Returns: { tickLower: 0, tickUpper: 60 }