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)
TickOutOfBounds si |tick| > MAX_TICK (887272).
getTickAtSqrtRatio(sqrtPriceX96)
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 dutickSpacing 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.