Saltar para o conteúdo principal
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 (seu próprio program ID — não é negociado através do programa AMM v4). Ele parou de postar ordens no OpenBook há muito tempo; o caminho de market-making OpenBook está dormindo há anos. Este upgrade é a limpeza: remove as contas e código relacionados ao market agora mortos dos layouts de instrução. Ele não muda nenhum comportamento de trading ao vivo — não havia ordens OpenBook deixadas para parar de colocar.

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 / SwapBaseOut vão de 18 → 9 contas, Deposit 14 → 12, Withdraw 21 (+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 como InvalidTokenCoin por causa do desalinhamento de contas (antigo #3 era open_orders). Qualquer ferramenta de admin que chame WithdrawPnl deve ser atualizada.
  • Taxa de referência removida em Withdraw e WithdrawPnl. A conta opcional referrer_pc_wallet ainda pode ser passada para compatibilidade com versões anteriores no layout antigo de Withdraw, 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, Withdraw e WithdrawPnl permanecem chamáveis. Initialize, PreInitialize, InitModelData, UpdateModelData, MonitorStep, SetParams, WithdrawSrm e SimulateInfo nã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
Antigosaldos do vault + fundos de open-order (native_coin_total / native_pc_total) − PnL pendente (need_take_pnl)
Novosaldos 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 de AmmInfo marcados 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ção MonitorStep / 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.
Verificado contra:
  • Fonte do programa raydium-stable (pós-upgrade instruction.rs / processor.rs).
  • Implantação do programa Stable AMM on-chain no Solana mainnet-beta.