Skip to main content

1. Choisir le pool

Une paire peut avoir un pool par palier de frais. Utilisez le plus profond :

2. Déterminer la direction

La direction se définit sur la paire triée : vendre token0 correspond à zeroForOne = true.

3. Simuler et coter

simulateSwap fait un seul appel au nœud et renvoie la courbe de liquidité tick par tick. offlineSwap la rejoue localement : vous pouvez donc recoter des montants proches sans nouvel aller-retour, tant que le montant ne dépasse pas la dernière ligne simulée. Prix avant et après :

4. Exécuter

Dans ClmmSwapRequest, token0 / token1 signifient entrée / sortie, et non l’ordre trié.
Le slippage devient un sqrtPriceLimitX96 : le swap échoue si l’exécution du montant complet devait faire bouger le prix au-delà de la tolérance. Voir CLMM : slippage sur le prix.
clmm.swap() exige une exécution complète. Si la limite de prix est atteinte avant que tout le amount soit échangé, la transaction échoue avec l’erreur de contrat 501 et aucun token ne bouge. Réessayez avec un slippage plus élevé ou un montant plus petit. (swapTo() est différent : il s’arrête au prix cible et peut être exécuté partiellement, par conception.)

Cotations multi-sauts

Pour coter A → B → C sur deux pools du même palier de frais, enchaînez les simulations. La sortie du premier saut devient le montant en entrée exacte du second :
Pour simuler tout le chemin en un seul appel, passez data: powfi.clmm.buildSwapPath(C, configIndex) et l’adresse du second pool dans interestedContracts. clmm.swap() n’exécute que des swaps sur un seul pool. Pour exécuter un swap multi-sauts, appelez le script SwapWithoutAccount de ClmmScripts avec le même data.

Swapper jusqu’à un prix cible

La cible doit être du bon côté : vendre du token0 fait baisser le prix, vendre du token1 le fait monter.