Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →
TL;DR para integradores
- Swap / Deposit / Withdraw continuam funcionando sem mudanças. Transações construídas com os layouts de conta antigos ainda executam — as contas Serum/market removidas são simplesmente ignoradas. Você não precisa enviar uma atualização de cliente para manter os fluxos existentes vivos.
- Mas você deve migrar para os novos layouts menores em breve. Os novos layouts removem as contas de market mortas, reduzindo o tamanho da transação:
SwapBaseIn/SwapBaseOutvão de 18 → 9 contas,Deposit14 → 12,Withdraw21 (+1 opcional) → 12. O caminho de compatibilidade será removido em uma versão futura. WithdrawPnlé uma mudança com breaking change (apenas admin). Vai de 16 (+1 opcional) → 10 contas com sem parsing de compatibilidade. Enviar o layout antigo falha com erros de validação comoInvalidTokenCoinpor causa do desalinhamento de contas (antigo #3 eraopen_orders). Qualquer ferramenta de admin que chameWithdrawPnldeve ser atualizada.- Taxa de referência removida em
WithdraweWithdrawPnl. A conta opcionalreferrer_pc_walletainda pode ser passada para compatibilidade com versões anteriores no layout antigo deWithdraw, mas não tem mais efeito. - Contabilidade de ativos do pool simplificada. Os ativos totais do pool agora são
saldos do vault − PnL pendente; o termo de open-order OpenBook — já zero na prática — é removido da fórmula. Indexadores e código de quoting que ainda adicionavam um termo OpenOrders devem removê-lo. - A maioria das instruções agora foi removida. Apenas
SwapBaseIn,SwapBaseOut,Deposit,WithdraweWithdrawPnlpermanecem chamáveis.Initialize,PreInitialize,InitModelData,UpdateModelData,MonitorStep,SetParams,WithdrawSrmeSimulateInfonão são mais chamáveis.
Por que isso importa (para traders, LPs e integradores)
- Traders não veem mudança no comportamento de swap ou forma de preço — a curva da lookup-table não muda. Swaps com novo layout são mais baratos de executar porque a transação carrega nove contas a menos.
- LPs mantêm a mesma economia de depósito/saque. A liquidez há muito tempo fica inteiramente nos vaults do pool, então o valor do pool está totalmente no-pool; este upgrade apenas deleta o encanamento de market obsoleto.
- Integradores obtêm transações menores e mais simples e um modelo de quoting com um termo a menos (já vestigial). As integrações existentes não quebram (exceto admin
WithdrawPnl), mas o shim de compatibilidade é temporário — migre quando conveniente, antes de ser removido.
Mudanças no nível de instrução
SwapBaseIn / SwapBaseOut — 18 → 9 contas (layout antigo ainda compatível)
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. Compatibilidade: se a instrução receber um número de contas diferente de 9, ela é 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.
Deposit — 14 → 12 contas (layout antigo ainda compatível)
amm_open_orders (antigo #3) e serum_market (antigo #9) são removidas. Quando 14 contas são passadas, o layout antigo é analisado para compatibilidade.
Withdraw — 21 (+1 opcional) → 12 contas (layout antigo ainda compatível)
As nove contas Serum são removidas. Os layouts antigos de 21 ou 22 contas ainda são aceitos, mas a lógica de taxa de referência para a 22ª conta opcional referrer_pc_wallet foi removida — a conta ainda pode ser passada, mas não tem mais efeito.
WithdrawPnl — 16 (+1 opcional) → 10 contas (⚠️ sem caminho de compatibilidade, breaking change)
Layout fixo de 10 contas, apenas para admin. Não há parsing de compatibilidade para o layout antigo; enviá-lo falha com erros como InvalidTokenCoin devido ao desalinhamento de contas. 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 conta opcional referrer_pc_wallet também foi removida.
Mudança no cálculo de ativos do pool
A fórmula historicamente adicionava os fundos que o pool mantinha como open orders em sua conta OpenOrders OpenBook. Esse termo tem sido zero na prática desde que o pool parou de postar ordens; este upgrade o remove inteiramente da fórmula, deixando o cálculo apenas do vault:| Fórmula | |
|---|---|
| Antigo | saldos do vault + fundos de open-order (native_coin_total / native_pc_total) − PnL pendente (need_take_pnl) |
| Novo | saldos do vault − PnL pendente (need_take_pnl) |
Páginas atualizadas
products/stable/overview— modelo puro AMM, dependência OpenBook removida, tabelas de comparação e contagem de contas atualizadas.products/stable/index— “O que é” e tabela de fatos-chave não reivindicam mais uma dependência OpenBook.products/stable/accounts— contas OpenBook removidas do inventário; campos Serum/open-orders deAmmInfomarcados como legado/não utilizados; nota de ativos do pool adicionada.products/stable/instructions— novas tabelas de contas para Swap / Deposit / Withdraw / WithdrawPnl com callouts de compatibilidade; todas as outras instruções (Initialize,PreInitialize,InitModelData,UpdateModelData,MonitorStep,SetParams,WithdrawSrm,SimulateInfo) marcadas como removidas / não mais chamáveis.products/stable/math— atualização da fórmula de ativos do pool; seçãoMonitorStep/ OpenBook reformulada como há muito aposentada.products/stable/fees— seção “PnL do OpenBook” aposentada; fluxo de coleta não mais liquida preenchimentos OpenBook.products/stable/code-demos— orientação de contagem de contas atualizada; SDK ainda abstrai seleção de layout.
- Fonte do programa
raydium-stable(pós-upgradeinstruction.rs/processor.rs). - Implantação do programa Stable AMM on-chain no Solana mainnet-beta.

