O Fluxo de Trabalho do Anchor
Use este fluxo de trabalho de decisão da ideia à instrução implantada: compilação local, teste, simulação e, em seguida, promoção para devnet e mainnet.
Como Usar Este Fluxo de Trabalho
- Siga as etapas em ordem para novas instruções; avance apenas para alterações apenas de documentação.
- Nunca implante na mainnet sem passar pelas suítes de teste locais e de devnet.
- Regenere o IDL após cada alteração de API pública.
- Registre o ID do programa e o hash do IDL em suas notas de lançamento.
Etapa 1: Você está alterando a lógica on-chain?
Sim → edite programs/*/src/lib.rs, atualize as structs de conta e adicione testes.
Não → alteração apenas no cliente: atualize o cliente TS em relação ao IDL existente; pule a reimplantacão.
Etapa 2: A alteração requer um novo layout de conta?
Se sim, planeje a migração ou realloc. Adicione space em init e versiona sua struct de conta. Veja realloc no Anchor.
Etapa 3: Execute anchor build
Corrija erros de compilação e problemas de expansão de macro. Confirme se target/idl/*.json foi atualizado.
Etapa 4: Execute anchor test localmente
Surfpool ou um validador local exercitam a implantação + testes TS. Adicione casos para novos erros e sementes de borda.
Etapa 5: Os testes passam?
Não → corrija o programa ou os fixtures de teste; use solana logs ou rastros do Surfpool.
Sim → prossiga para a devnet.
Etapa 6: Implante na devnet
anchor deploy --provider.cluster devnet. Execute testes de integração contra o RPC da devnet ou LiteSVM com contas buscadas.
Etapa 7: Atualize clientes e consumidores de IDL
Publique o IDL, execute a atualização do Codama/declare_program!, aumente o pacote npm, se aplicável.
Etapa 8: Revisão de segurança necessária?
Novos signers, CPIs ou init_if_needed → solicite uma revisão. Veja Segurança de CPI.
Etapa 9: Pronto para a mainnet?
Build verificável, diff auditado, autoridade de upgrade financiada e plano de rollback. Implante com o mesmo fluxo anchor deploy no provedor mainnet.
FAQs
Qual versão do Anchor este site usa?
0.32.1 para anchor-lang, Anchor CLI e exemplos nesta seção.
Preciso do Solana CLI junto com o Anchor?
Sim. O Solana CLI 3.0.10 lida com keypairs, airdrops e inspeção de solana program.
Onde o IDL reside após a compilação?
target/idl/<program>.json em seu workspace.
Posso misturar UncheckedAccount com Signer?
Sim, mas cada campo não verificado precisa de restrições explícitas ou verificações do manipulador.
Como testar sem devnet?
Use anchor test com Surfpool 0.12.0 ou LiteSVM 0.6.x em CI.
Qual é o prefixo de 8 bytes nos dados da conta?
Discriminador de conta do Anchor; não o remova ao dimensionar space.
Devo commitar o IDL gerado?
Sim, ou publique o IDL on-chain para que os clientes tenham uma fonte canônica.
Como depurar falhas de restrição?
Execute com logs; o Anchor imprime o nome da restrição e o índice da conta.
O Anchor funciona no Agave 4.1.1?
Sim. Esta stack tem como alvo validadores Agave com Solana CLI 3.0.10.
O que devo ler a seguir nesta seção?
Veja artigos irmãos vinculados em Relacionados para tópicos mais aprofundados do fluxo de trabalho.
Relacionados
- Construindo e Implantando - comandos
- Melhores Práticas do Anchor Basics - hábitos
- Testes Anchor TS - padrões de teste
Versões da stack: Esta página foi escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0 e LiteSVM 0.6.x.