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 foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →
O roteador não realiza cálculos
O programa de roteamento não implementa nenhuma lógica de preço. É um orquestrador puro: aceita uma rota, passa contas para programas filhos e encadeia fluxos de tokens. Cada salto precifica pela curva do seu próprio programa de pool:- Saltos AMM v4: usam a fórmula de produto constante (
x · y = k) com preços híbridos do OpenBook. Vejaproducts/amm-v4/math. - Saltos CPMM: usam a fórmula de produto constante com camadas de taxas configuráveis. Veja
products/cpmm/math. - Saltos CLMM: usam matemática de tick com liquidez concentrada. Veja
algorithms/clmm-math. - Saltos estáveis: usam a curva stable-swap para ativos do mesmo tipo. Veja
products/stable/math.
- Chamar a instrução de swap de cada pool via CPI.
- Coletar o montante de saída.
- Passá-lo como o montante de entrada para o próximo salto.
- Verificar a saída final contra o limite de slippage do chamador.
Composição de slippage
Em uma rota com múltiplos saltos, o slippage em cada salto se compõe. Um pequeno slippage no salto 1 se torna um slippage maior no salto 2 porque o volume que entra no salto 2 já está reduzido. Exemplo:minimum_amount_out, o roteador verifica sua saída final contra este limite global. Cada salto também verifica seu próprio swap contra sua estrutura de taxa local, mas o roteador não faz novas cotações no meio da rota—você deve pré-computar a rota e incluir tolerância de slippage suficiente.
Saltos CLMM e limit_prices
Para cada salto para um pool CLMM, o roteador verifica se osqrt_price_x64 atual do pool está dentro de um limite especificado. Os limites são passados como um VecDeque<u128> chamado limit_prices:
- Um
sqrt_price_x64por salto CLMM na rota. sqrt_price_x64é a representação de preço baseada em tick usada por CLMM. Vejaalgorithms/clmm-mathpara a definição.- O roteador força:
Variantes de instrução e limit_prices
-
SwapBaseInWithUserAccount,SwapBaseOutWithUserAccount(Legado, tags 0 e 1): o VecDequelimit_pricesé obrigatório. Uma fila vazia é rejeitada com um erro se algum salto for um pool CLMM. Você deve fornecer um preço por salto CLMM, em ordem. -
SwapBaseIn,SwapBaseOut(Atual, tags 8 e 9): o VecDequelimit_pricesé opcional. Uma fila vazia é silenciosamente ignorada; nenhuma verificação de preço é realizada. Novo código deve usar estes.
Construindo limit_prices
Para uma rota com M saltos CLMM, a fila deve conter exatamente M entradas. Ordene-as por salto:Quando verificar limit_prices
Osqrt_price_x64 é um instantâneo do preço atual do pool. Muda continuamente conforme os swaps são executados. Você deve:
- Buscar o estado atual do pool on-chain.
- Computar limites aceitáveis (por exemplo, ±0.5% do preço atual).
- Codificar esses limites em
limit_prices. - Incluir os limites em sua instrução de roteador.
Tratamento de taxas
Cada pool cobra sua própria taxa de acordo com sua configuração:- AMM v4: 0.25% (fixa) dividida entre LP, protocolo e fundo.
- CPMM: configurável por
AmmConfig(padrão 0.25%, divisão varia por camada). - CLMM: configurável por pool, descontado do montante de entrada.
- Estável: como AMM v4, 0.25% dividido.
products/amm-v4/feesproducts/cpmm/feesproducts/clmm/fees(se disponível)products/stable/fees(se disponível)
Exemplo de contabilização multi-salto
Suponha que você roteie USDC → SOL → STEP através de dois pools de produto constante, cada um com uma taxa de 0.25%:Considerações de precisão
Como todos os programas Solana, o roteador usa aritmética inteira:- Todos os montantes são
u64(lamports ou unidades menores de token). - Cálculos de curva usam intermediários
u128quando necessário para evitar overflow. - Convenções de arredondamento dependem do programa filho. O roteador não re-arredonda.
Próximas etapas
products/amm-v4/math— matemática de produto constante.products/cpmm/math— CPMM produto constante com Token-2022.algorithms/clmm-math— preço de liquidez concentrada.products/stable/math— curva stable-swap.products/routing/code-demos— exemplos de cotação antes de roteamento.


