Les montants sont des bigint bruts
Tous les montants acceptés ou renvoyés par le SDK sont desbigint exprimés dans la plus petite unité du jeton, exactement comme stockés on-chain :
Les décimales s’obtiennent via la liste de jetons (
(await powfi.token.getTokenById(id)).decimals) ou l’état du pool (state.token0Info.decimals).
Convertissez avec NumericUtils :
@alephium/web3 exporte aussi convertAmountWithDecimals et prettifyTokenAmount pour le même usage.
Points de base
Le slippage s’exprime en points de base (bps) sous forme de bigint, avec BPS = 10_000n :
Les valeurs valides vérifient
0n <= slippage < 10_000n. Toute autre valeur lève une erreur.
CPMM : slippage sur les montants
Les cotations CPMM appliquent le slippage au montant que vous ne fixez pas :computeSwapAmount renseigne minimalTokenOutAmount (entrée exacte) ou maximalTokenInAmount (sortie exacte). L’autre champ vaut undefined.
minimalAmount divise par (1 + s) au lieu de multiplier par (1 − s). Pour 0,5 %, cela donne 99,5025 % au lieu de 99,5 % : c’est légèrement plus strict, et minimalAmount et maximalAmount restent des inverses exacts.minimalAmount s’applique aux deux montants souhaités. Pour le premier dépôt dans un pool vide, aucun slippage n’est appliqué, car c’est le déposant qui fixe le prix.
CLMM : slippage sur le prix
Les opérations CLMM transforment le slippage en limite de prix en racine carrée. Le swap s’arrête (ou l’ajout de liquidité échoue) si le prix du pool devait la dépasser :Impact de prix
CpmmSwapQuote.priceImpact est un pourcentage (par exemple 0.42 signifie 0,42 %), calculé à partir des réserves avant et après le trade. cpmm.swap refuse les trades où priceImpact >= 5 (MAX_PRICE_IMPACT).
Frais
Échéances
Les méthodes d’écriture CPMM acceptentttlMinutes (par défaut 60). Le SDK le convertit en horodatage en millisecondes (Date.now() + ttl), et le routeur rejette la transaction passé ce délai.
Dépôts ALPH et dust
Sur Alephium, les sorties qui portent des jetons doivent contenir un montant minimal d’ALPH (DUST_AMOUNT), et les nouveaux contrats nécessitent MINIMAL_CONTRACT_DEPOSIT. Le SDK joint automatiquement le bon montant d’ALPH. Par exemple, un swap CPMM joint 2 à 3 × DUST_AMOUNT en plus de l’entrée, et la création d’un pool CPMM joint 1 ALPH comme dépôt de contrat. Prévoyez un peu d’ALPH en plus dans le solde de l’expéditeur pour cela et pour le gas.