Skip to main content
Les prix CLMM existent sous trois représentations : Tous les prix bruts sont exprimés en token1 par token0 dans l’ordre trié. Les helpers base/cotation ci-dessous gèrent les paires d’interface dans les deux sens.

Tick ↔ sqrtPriceX96

getSqrtRatioAtTick(tick)

Portage exact des calculs de ticks on-chain. Lève TickOutOfBounds si |tick| > MAX_TICK (887272).

getTickAtSqrtRatio(sqrtPriceX96)

Le plus grand tick dont le ratio en racine carrée est ≤ à l’entrée. Lève SqrtPriceX96OutOfBounds hors de [MIN_SQRT_RATIO, MAX_SQRT_RATIO).

Prix ↔ sqrtPriceX96

priceToSqrtPriceX96(price, token0Decimals, token1Decimals)

price est le prix lisible du token0 exprimé en token1. Lève une erreur si le prix n’est pas fini ou pas strictement positif.

sqrtPriceX96ToPrice(sqrtPriceX96, token0Decimals, token1Decimals)

Alignement sur l’espacement des ticks

Les bornes de position doivent être des multiples du tickSpacing du palier de frais.

getAlignedTick(price, token0Decimals, token1Decimals, tickSpacing)

Convertit un prix lisible en tick valide le plus proche (arrondi au multiple de tickSpacing supérieur).

Helpers base/cotation pour les interfaces

Ces fonctions prennent les jetons tels que l’utilisateur les voit (tokenBase, tokenQuote) ainsi que baseIn, et passent à l’ordre trié en interne. Avec baseIn = true, le prix s’exprime comme « 1 base = X cotation ».

Calculs de swap

Constantes

Exportées depuis la racine du package : MIN_TICK = -887272n, MAX_TICK = 887272n, U256_MAX, UNLIMITED_AMOUNT et MAX_PIPS. La racine du package n’exporte pas MIN_SQRT_RATIO (4295128739n), MAX_SQRT_RATIO ni Q96 (2n ** 96n). Définissez-les localement si vous en avez besoin.