Skip to main content

Les montants sont des bigint bruts

Tous les montants acceptés ou renvoyés par le SDK sont des bigint 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.
N’utilisez jamais de number JavaScript pour les montants. Les montants à 18 décimales dépassent Number.MAX_SAFE_INTEGER presque immédiatement, et les types du SDK exigent des bigint.

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.
Lors d’un ajout de liquidité dans un pool existant, 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 :
Un slippage de 1 % sur un swap CLMM signifie donc « le prix du pool peut bouger jusqu’à 1 % ». Pour un gros trade dans une plage étroite, cela peut quand même représenter un écart important sur le montant reçu. Comparez toujours la sortie simulée à votre propre minimum.

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 acceptent ttlMinutes (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.