Documentation Index
Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
Use this file to discover all available pages before exploring further.
Esta página fue traducida automáticamente por IA. La versión en inglés es la fuente autorizada.Ver versión en inglés →
Resumen de instrucciones
| Etiqueta | Discriminador | Exactitud | Variante |
|---|---|---|---|
| 0 | SwapBaseInWithUserAccount | Entrada | Legacy |
| 1 | SwapBaseOutWithUserAccount | Salida | Legacy |
| 5 | CreateSyncNative | — | Utilidad |
| 6 | CloseTokenAccount | — | Utilidad |
| 8 | SwapBaseIn | Entrada | Actual |
| 9 | SwapBaseOut | Salida | Actual |
- Exactitud: cuál cantidad es fija según el llamador (Entrada =
amount_inexacto; Salida =amount_outexacto). - Variante: Las instrucciones Legacy requieren una deque
limit_pricesno vacía incluso si no hay saltos CLMM en la ruta. Las instrucciones actuales (8 / 9) tratan unalimit_pricesvacía como “sin verificaciones”, que es el camino recomendado para código nuevo.
SwapBaseIn) o etiqueta 9 (SwapBaseOut) a menos que tengas una razón específica para llamar a una variante Legacy.
Instrucciones de swap actuales (recomendadas)
Estos son los puntos de entrada que debe usar el código nuevo. La estructura de argumentos es la misma que en las variantes Legacy, perolimit_prices puede estar vacía.
SwapBaseIn (etiqueta 8)
Swap multi-salto de entrada exacta. El llamador fija amount_in; el enrutador ejecuta salto a salto y afirma que la cantidad final se sitúa en o por encima de minimum_amount_out.
Argumentos
- El llamador firma con
user_input_ata. user_input_ata.amount >= amount_in.- Cada ATA de usuario intermedia existe y es propiedad del llamador.
- Si algún salto es CLMM y deseas aplicar límites de precio, proporciona una entrada
limit_pricespor cada salto CLMM.
- El balance de
user_input_atadisminuye enamount_in. - El balance de
user_output_ataaumenta en ≥minimum_amount_out. - Cada ATA intermedia se deja con cambio neto cero (la ruta consume lo que produjo un salto anterior).
ExceededSlippage— salida final <minimum_amount_out.InvalidInput— ruta vacía, cuentas malformadas opool_programno soportado.SqrtPriceX64— el precio de un salto CLMM se movió fuera del límitelimit_pricessuministrado (solo cuandolimit_priceses no vacía).
SwapBaseOut (etiqueta 9)
Swap multi-salto de salida exacta. El llamador fija amount_out; el enrutador afirma que la entrada real no excede maximum_amount_in.
Argumentos
- El llamador firma con
user_input_ata; balance>= maximum_amount_in(peor caso). - Cada ATA intermedia y de salida existen.
user_input_atadisminuye en la cantidad real necesaria (≤maximum_amount_in).user_output_ataaumenta exactamente enamount_out.
ExceededSlippage— entrada requerida excedemaximum_amount_in.InvalidInput,SqrtPriceX64— igual que para la etiqueta 8.
Instrucciones de swap Legacy
Estas variantes antiguas aún se pueden llamar en el programa activo y se documentan aquí por completitud. Prefiere etiqueta 8 / etiqueta 9 para código nuevo; ambas variantes Legacy a continuación requieren una dequelimit_prices no vacía incluso cuando no hay saltos CLMM involucrados, lo que las hace incómodas de usar.
SwapBaseInWithUserAccount (etiqueta 0)
Swap multi-salto de entrada exacta, idéntico en forma a la etiqueta 8 pero con el requisito más estricto de limit_prices.
Argumentos
SwapBaseIn (etiqueta 8). Todos los espacios intermedios deben ser ATAs propiedad del llamador.
Precondiciones
- El llamador firma con
user_input_ata. user_input_ata.amount >= amount_in.- Todas las ATAs de usuario intermedia existen y son propiedad del llamador.
limit_priceses no vacía (una entrada por cada salto CLMM; rellena con valores placeholder si no hay saltos CLMM involucrados).
- El balance de
user_input_atadisminuye enamount_in. - El balance de
user_output_ataaumenta en ≥minimum_amount_out.
ExceededSlippage.InvalidInput—limit_pricesvacía es rechazada en esta variante Legacy.SqrtPriceX64.
SwapBaseOutWithUserAccount (etiqueta 1)
Swap de salida exacta, la contraparte Legacy de SwapBaseOut (etiqueta 9).
Argumentos
- El llamador firma con
user_input_ata. user_input_ata.amount >= maximum_amount_in.- Todas las ATAs de usuario intermedia existen y son propiedad del llamador.
limit_priceses no vacía.
user_input_atadisminuye en la cantidad real necesaria (≤maximum_amount_in).user_output_ataaumenta exactamente enamount_out.
ExceededSlippage.InvalidInput.SqrtPriceX64.
Instrucciones de utilidad
CreateSyncNative (etiqueta 5)
Crear (si falta) y sincronizar una ATA de wSOL en un solo paso. Conveniente cuando envuelves SOL en línea junto a un swap.
Argumentos
- Crea
user_wsol_atasi aún no existe. - Transfiere
amountlamports desde el balance de SOL nativo del firmante a la ATA. - Llama a
SyncNativeen la ATA para que su balance de tokens refleje los nuevos lamports.
InvalidOwner— el propietario deuser_wsol_atano es el firmante.
CloseTokenAccount (etiqueta 6)
Cerrar una cuenta de token y devolver su renta a la billetera de destino. Se empareja con CreateSyncNative: después de un swap de ramificación wSOL, llama a CloseTokenAccount para recuperar la renta que respaldaba la ATA de wSOL.
Argumentos — ninguno.
Cuentas
- Cierra
token_account_to_close. - Transfiere el balance de lamports exento de renta (~0.00203928 SOL en mainnet para una cuenta vanilla SPL Token) a
destination_for_rent. - La cuenta de token debe tener balance de token cero.
InvalidOwner— el llamador no es el propietario de la ATA.- El balance de la cuenta de token es distinto de cero.
A dónde ir después
products/routing/code-demos— construyendo cada una de estas instrucciones en TypeScript.products/routing/accounts— claves de envío por AMM y diseño de cuentas por salto.reference/error-codes— lista completa deRouteError.


