Trading Tokens
Utilisez la commande npx awal@2.8.2 trade pour échanger des tokens sur Base ou Polygon via l'API CDP Swap. Vous devez être authentifié pour trader.
Confirmer que le portefeuille est initialisé et authentifié
npx awal@2.8.2 status
Si le portefeuille n'est pas authentifié, consultez la skill authenticate-wallet.
Syntaxe de la commande
npx awal@2.8.2 trade <amount> <from> <to> [options]
Arguments
| Argument | Description |
|---|---|
amount |
Montant à échanger (voir Formats de montant ci-dessous) |
from |
Token source : alias (usdc, eth, pol) ou adresse de contrat (0x...) |
to |
Token destination : alias (usdc, eth, pol) ou adresse de contrat (0x...) |
Formats de montant
Le montant peut être spécifié dans plusieurs formats :
| Format | Exemple | Description |
|---|---|---|
| Préfixe dollar | '$1.00', '$0.50' |
Notation USD (décimales selon le token) |
| Décimal | 1.0, 0.50, 0.001 |
Lisible avec point décimal |
| Nombre entier | 5, 100 |
Interprété comme des tokens entiers |
| Unités atomiques | 500000 |
Les grands entiers sont traités comme unités atomiques |
Détection automatique : Les grands entiers sans point décimal sont traités comme unités atomiques. Par exemple, 500000 pour USDC (6 décimales) = $0,50.
Décimales : Pour les tokens connus (usdc=6, eth=18, pol=18), les décimales sont automatiques. Pour les adresses de contrat arbitraires, les décimales sont lues à partir du contrat token.
Options
| Option | Description |
|---|---|
-c, --chain <name> |
Réseau blockchain : base, polygon (défaut : base) |
-s, --slippage <n> |
Tolérance de slippage en basis points (100 = 1%) |
--json |
Afficher le résultat en JSON |
Alias de tokens
| Alias | Token | Décimales | Chaîne |
|---|---|---|---|
| usdc | USDC | 6 | base |
| eth | ETH | 18 | base |
| pol | POL | 18 | polygon |
IMPORTANT : Toujours mettre entre guillemets simples les montants utilisant $ pour éviter l'expansion de variables bash (par ex. '$1.00' et non $1.00).
Validation des entrées
Avant de construire la commande, validez toutes les valeurs fournies par l'utilisateur pour prévenir l'injection de shell :
- amount : Doit correspondre à
^\$?[\d.]+$(chiffres, point décimal optionnel, préfixe$optionnel). Rejetez s'il contient des espaces, points-virgules, pipes, backticks ou autres métacaractères shell. - from / to : Doit être un alias connu (
usdc,eth,pol) ou une adresse hex0xvalide (^0x[0-9a-fA-F]{40}$). Rejetez toute autre valeur. - slippage : Doit être un entier positif (
^\d+$).
Ne passez pas d'entrée utilisateur non validée dans la commande.
Exemples
# Échanger $1 USDC pour ETH (préfixe dollar — notez les guillemets simples)
npx awal@2.8.2 trade '$1' usdc eth
# Échanger 0,50 USDC pour ETH (format décimal)
npx awal@2.8.2 trade 0.50 usdc eth
# Échanger 500000 unités atomiques de USDC pour ETH
npx awal@2.8.2 trade 500000 usdc eth
# Échanger 0.01 ETH pour USDC
npx awal@2.8.2 trade 0.01 eth usdc
# Échanger avec slippage personnalisé (2%)
npx awal@2.8.2 trade '$5' usdc eth --slippage 200
# Échanger en utilisant des adresses de contrat (décimales lues depuis la chaîne)
npx awal@2.8.2 trade 100 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 0x4200000000000000000000000000000000000006
# Obtenir une sortie JSON
npx awal@2.8.2 trade '$1' usdc eth --json
# Échanger USDC pour POL sur Polygon
npx awal@2.8.2 trade '$1' usdc pol --chain polygon
Prérequis
- Doit être authentifié (
awal statuspour vérifier) - Le portefeuille doit avoir un solde suffisant du token source
Gestion des erreurs
Erreurs courantes :
- "Not authenticated" - Exécutez d'abord
awal auth login <email> - "Invalid token" - Utilisez un alias valide (usdc, eth, pol) ou une adresse 0x
- "POL only supported on polygon chain" - Utilisez
--chain polygonlors du trading de POL - "Cannot swap a token to itself" - From et to doivent être différents
- "Swap failed: TRANSFER_FROM_FAILED" - Solde insuffisant ou problème d'approbation
- "No liquidity" - Essayez un montant plus petit ou une autre paire de tokens
- "Amount has X decimals but token only supports Y" - Trop de décimales