Tick
Manages the discrete price points and liquidity distribution across the price curve.
Core Data Structures
struct TickManager {
tick_spacing: u32, // Spacing between valid ticks
ticks: SkipList<Tick> // Ordered collection of ticks
}struct Tick {
index: I32, // Tick index (price level)
sqrt_price: u128, // Square root price at this tick
liquidity_net: I128, // Net liquidity change when crossing
liquidity_gross: u128, // Total liquidity at this tick
fee_growth_outside_a: u128, // Fee growth outside for token A
fee_growth_outside_b: u128, // Fee growth outside for token B
points_growth_outside: u128, // Points growth outside
rewards_growth_outside: vector<u128> // Reward growth outside (per token)
}Key Properties
Core Functionality
Initialization
Liquidity Management
Swap Operations
Range Calculations
Advanced Features
Tick Discovery and Querying
Data Access Functions
Internal Implementation
Tick Scoring System
Default Tick Creation
Liquidity Update Logic
Error Codes
Mathematical Concepts
Price Calculation
Liquidity Net Calculation
Growth Outside Pattern
Performance Characteristics
Time Complexity
Space Complexity
Gas Efficiency
Best Practices
Security Considerations
Last updated