Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →
Stable AMM é um programa independente com seu próprio ID de programa. Não é um modo do programa AMM v4, e não é negociado “através” do AMM v4 — é implantado, atualizado e chamado separadamente. Assemelha-se ao AMM v4 apenas nas convenções de taxa e layout de conta.
Inventário de instruções
Chamáveis
Removidas (não mais chamáveis)
Estas foram removidas na atualização de 2026-06-22 e não podem mais ser invocadas. Veja Instruções removidas.Deposit
Adicionar liquidez, receber tokens LP.
Argumentos
W, signatário S)
Compatibilidade:
amm_open_orders (antigo #3) e serum_market (antigo #9) são removidos. Quando 14 contas são passadas, a instrução é analisada com o layout antigo de 14 contas; as contas Serum são ignoradas.
Matemática — pro-rata padrão usando a tabela de consulta para calcular a razão. O SDK calcula o par coin/pc para a quantidade LP desejada e verifica contra os limites máximos.
Withdraw
Queimar LP, receber ambos os lados pro-rata.
Argumentos
W, signatário S)
Compatibilidade: nove contas Serum (
amm_open_orders, serum_program, serum_market, serum_coin_vault, serum_pc_vault, serum_vault_signer, serum_event_q, serum_bids, serum_asks) são removidas. Os layouts antigos de 21 ou 22 contas ainda são aceitos. Note, porém, que a lógica de taxa de referência para a 22ª conta opcional referrer_pc_wallet foi removida — ainda pode ser passada mas não tem mais efeito.
Pré-condições
user_source_lpcontém pelo menosamount.
amounttokens LP são queimados.- O usuário recebe quantidades de coin e pc de acordo com o pro-rata atual, ajustado para taxas acumuladas.
SwapBaseIn
Swap de entrada exata usando a tabela de consulta para precificação.
Argumentos
W, signatário S)
Compatibilidade: as nove contas OpenBook (
amm_open_orders, serum_program, serum_market, serum_bids, serum_asks, serum_event_queue, serum_coin_vault, serum_pc_vault, serum_vault_signer) são removidas. Se o número de contas passadas não for 9, a instrução é analisada com o layout antigo de 18 contas; as contas Serum ainda devem ocupar suas posições, mas seu conteúdo não é mais validado ou usado.
Pré-condições
amm.statuspermite swap.user_source_tokencontém ≥amount_in.
- O usuário perde
amount_in, ganhaamount_out ≥ minimum_amount_out. - As taxas do pool incrementam os contadores
need_take_pnl_*.
products/stable/math.
SwapBaseOut
Swap de saída exata (inverso de SwapBaseIn). Mesmo layout de 9 contas, direção de matemática diferente.
Argumentos
WithdrawPnl
Apenas admin. Coletar taxas de protocolo acumuladas de need_take_pnl_* em contas PnL designadas.
Argumentos — nenhum (orientado por estado).
Contas — novo layout, 10 contas fixas, apenas admin (gravável W, signatário S)
Mudança de lógica: quando os fundos disponíveis do pool são insuficientes para sacar o PnL acumulado, o pool não é mais colocado em
CancelAllOrdersState / Disabled; a instrução retorna TakePnlError diretamente. A referrer_pc_wallet opcional também foi removida.
Pré-condições
amm_admindeve ser autorizado.
need_take_pnl_coineneed_take_pnl_pcsão transferidos para as contas do admin.- Os contadores são zerados.
Instruções removidas
As seguintes instruções foram removidas na atualização de 2026-06-22 e não podem mais ser chamadas. Estão documentadas aqui apenas para que integradores as reconheçam em transações históricas e SDKs.Initialize— anteriormente inicializava um novo pool Stable AMM. Removida.PreInitialize— auxiliar de pré-alocação legado. Removida.InitModelData— anteriormente criava e inicializava a tabela de consultaModelDataInfo. Removida.UpdateModelData— anteriormente preenchia até 5 elementos da tabela de consulta por chamada. Removida.MonitorStep— o crank OpenBook que liquidava preenchimentos e repostava a grade de ordens. Já estava dormindo há muito tempo após o pool parar de postar no OpenBook; agora removida.SetParams— mudanças de parâmetros de admin (status, taxas, proprietário, chave de dados de modelo, etc.). Removida.WithdrawSrm— coletava reembolsos de desconto de taxa SRM de pools da era Serum inicial. Removida.SimulateInfo— auxiliar de cotação somente leitura. Removida; use os auxiliares de curva estável off-chain do SDK para cotação (veja Demonstrações de código).
Próximos passos
- Contas — para layouts e tamanhos de campos de conta.
- Matemática — para a lógica de interpolação da tabela de consulta.
- Demonstrações de código — para ver como chamar estas do SDK.
raydium-stable/program/src/instruction.rs(enum e pack/unpack)raydium-stable/program/src/processor.rs(lógica de execução)

