Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →
A partir da atualização do programa 2026-07, a dependência OpenBook / Serum do AMM v4 foi removida. As instruções legadas v1
SwapBaseIn / SwapBaseOut, Deposit e Withdraw mantêm seus layouts de conta antigos para compatibilidade com versões anteriores: as contas de mercado ainda são aceitas em suas posições antigas, mas não são mais validadas ou usadas (nenhum CPI é emitido). Novas integrações devem usar os pontos de entrada de swap V2, que omitem completamente as contas de mercado. Várias instruções foram removidas e agora revertidas — veja a entrada do changelog. As listas de contas abaixo usam os nomes de campo do SDK Raydium; o IDL subjacente às vezes usa prefixos serum_*.Inventário de instruções
O SDK expõe builders apenas para as instruções voltadas ao usuário. Instruções de manutenção são tipicamente invocadas pelo keeper Raydium.
Removidas / não mais chamáveis (agora revertidas com
unimplemented!, e seus builders de cliente foram deletados): Initialize (tag 0, use Initialize2), MonitorStep (2), MigrateToOpenBook (5), WithdrawSrm (8), PreInitialize (10, use Initialize2), SimulateInfo (12), AdminCancelOrders (13).
Initialize2
Inicializar um novo pool AMM v4 vinculado a um mercado OpenBook existente.
Argumentos
W, assinante S)
Pós-condições
lp_supply = sqrt(init_coin_amount × init_pc_amount) − INIT_BURN, ondeINIT_BURN≈ 100 unidades de LP são mantidas fora de circulação.- Nenhuma ordem OpenBook é postada (a grade de livro de ordens foi removida).
market_program/marketainda são passados mas apenas armazenados como campos de referência;coin_lot_size/pc_lot_size/min_sizesão inicializados para0.
InvalidInput (decimais incompatíveis, não ordenados), NotAllowed.
Deposit
Adicionar liquidez.
Argumentos
Matemática — pro-rata padrão. Usando as reservas efetivas do pool (vaults + em livro), o SDK calcula o par coin/pc que produz a quantidade de LP fornecida e verifica contra
max_*. Reverte com ExceededSlippage se qualquer lado exceder o limite.
Withdraw
Queimar LP, receber ambos os lados.
Argumentos
Deposit com a direção invertida; lp_mint é gravável para queima, as ATAs do usuário são receptoras. O layout de conta é inalterado (contas de mercado ainda passadas posicionalmente, ignoradas). Não há mais nenhuma etapa de settle-from-OpenBook — a matemática pro-rata usa os saldos do vault diretamente.
SwapBaseIn
Swap de entrada exata. Sempre um swap de caminho AMM (não roteia através de correspondência OpenBook).
Use as variantes V2 para novo código. Como a dependência OpenBook do AMM v4 foi removida, os pontos de entrada V1 (
SwapBaseIn, SwapBaseOut) ainda esperam a lista completa de 17 contas (ou 18 com a conta target-orders opcional), mas as contas OpenBook/mercado agora são aceitas posicionalmente e ignoradas — não são validadas e nenhum CPI é emitido. Passar uma contagem de conta errada ainda reverte com WrongAccountsNumber, mas o conteúdo das contas de mercado não é mais verificado. Novas integrações devem usar SwapBaseInV2 / SwapBaseOutV2, que usam uma lista de conta muito menor e representam o caminho de execução canônico hoje. Os formulários V1 são documentados aqui para completude e para ler transações on-chain existentes.
Matemática — veja
products/amm-v4/math.
Pré-condições
amm.statuspermite swap (bit 0 da máscara de bits de status não definido).amm.state_data.pool_open_time <= now.amount_in > 0.user_source_token_accountcontém pelo menosamount_in.
- Usuário perde
amount_indo token de origem, ganhaamount_out ≥ minimum_amount_outdo token de destino. need_take_pnl_*incrementado pela parcela de taxa de protocolo.- Nota: os contadores de análise
state_data.swap_*_in_amount/swap_*_out_amountnão são mais atualizados — seus valores estão congelados. Use logs de negociação para análise de volume.
ExceededSlippage, InvalidInput, InvalidStatus, NotAllowed (mint coin/pc idêntico).
SwapBaseOut
Saída exata, inverso de SwapBaseIn. Mesmas contas.
Argumentos
SwapBaseInV2 / SwapBaseOutV2
Pontos de entrada de swap variantes (tags 16 / 17) que pulam completamente as contas OpenBook. A matemática é idêntica ao caminho V1, mas a lista de contas encolhe para apenas o lado AMM e o usuário — 8 contas, e amm_open_orders não é passado:
As reservas do pool agora são os saldos do vault (menos PnL pendente), então a matemática de cotação é direta e idêntica ao caminho v1. Use V2 para economizar computação e evitar passar as contas de mercado (agora ignoradas). O roteador Raydium sempre usa a forma V2 ao rotear através do AMM v4.
Os argumentos são os mesmos dos formulários V1 (
amount_in / minimum_amount_out para SwapBaseInV2; max_amount_in / amount_out para SwapBaseOutV2).
MonitorStep e outras instruções removidas
Historicamente, MonitorStep acionava a interação OpenBook do pool: liquidava ordens preenchidas (movendo receitas dos vaults de mercado para os vaults de pool via CPI OpenBook), cancelava ordens obsoletas e postava novas ordens para fechar a lacuna entre target_orders e amm_open_orders. Com a dependência OpenBook removida, não há nada para acionar e a instrução desapareceu. Qualquer keeper ou integração que ainda a chame deve remover a chamada.
WithdrawPnl / TakePnl
Varredura de admin de taxas de protocolo acumuladas.
Argumentos
WithdrawPnlnão recebe argumentos; lêneed_take_pnl_*e move exatamente esses valores.
Efeito
- Transfere
need_take_pnl_coindepool_coin_token_accountparapnl_coin_token_account. - Mesmo para pc.
- Zera
need_take_pnl_coineneed_take_pnl_pc. - Mudança de lógica: se o saldo do vault for insuficiente para cobrir PnL acumulado, a instrução retorna
TakePnlErrordiretamente (não manipula mais o estado do livro de ordens).
SetParams
Mudanças de parâmetros de admin, chamadas pelo multisig Raydium. Os argumentos são uma tag param: u8 + payload.
Matriz de mudança de estado
A coluna OpenBook desapareceu — nenhuma instrução toca um livro de ordens mais.Próximos passos
products/amm-v4/code-demos— Exemplos TypeScript para fluxos de swap e LP.products/amm-v4/fees— Detalhes deWithdrawPnle a divisão de taxa.reference/error-codes— Tabela de referência direta (erros AMM v4 estão listados nessa página).
- Programa Raydium AMM —
raydium-io/raydium-amm - Módulo
Liquiditydo SDK Raydium v2 - Programa OpenBook — validações de conta no lado do mercado

