The Anchor TS Client
Use o Program TypeScript do Anchor para chamadas RPC ao manter stacks legacy.
Receita
npm install @coral-xyz/anchor@0.32.1import { Program, AnchorProvider } from "@coral-xyz/anchor";
import idl from "./target/idl/my_program.json";Quando usar:
- Apps Anchor brownfield ainda não migrados para Codama.
- Protótipos rápidos já usando Anchor Provider.
- Equipes familiarizadas com API fluente
.methods..
Exemplo Prático
import { AnchorProvider, Program, Wallet } from "@coral-xyz/anchor";
import { createSolanaRpc } from "@solana/kit";
import idl from "../target/idl/my_program.json";
// Bridge: use kit RPC where possible; Anchor Provider for legacy Program
const rpc = createSolanaRpc(process.env.RPC_URL!);
// const provider = new AnchorProvider(connection, wallet, {});
// const program = new Program(idl as MyIdl, provider);
// await program.methods.increment().accounts({ counter }).rpc();O que isso demonstra:
- IDL JSON de
anchor build(0.32.1) dirige layouts de conta. .methodsmonta e envia transações em uma chamada.- Módulos novos devem preferir output kit do Codama.
Aprofundamento
Como funciona
- Anchor deserializa contas usando definições IDL.
- Provider encapsula carteira e connection para assinatura.
- Parsing de eventos e mapeamento de erros vêm de metadados IDL.
- Migrar para kit significa substituir envios Provider pelo pipeline de mensagens.
Erros comuns
- IDL fora de sync - erros de encode em runtime. Correção: rebuild + regen a cada mudança de programa.
- PublicKey web3.js misturado com Address kit - tipos duplos. Correção: migre por feature flag.
- Envios implícitos .rpc() - menos controle sobre simulação. Correção: use .transaction() + envio kit para UX.
- Program ID errado no IDL - chamadas atingem deploy errado. Correção: verifique declare_id e Anchor.toml.
- Import de IDL client-side grande - incha bundle. Correção: divida ou lazy load.
Alternativas
| Alternativa | Use quando | Não use quando |
|---|---|---|
| Codama + kit | Clientes greenfield | Código legacy congelado |
| kit bruto + codecs | Programas nativos | Equipes Anchor-heavy |
FAQs
IDL Anchor 0.32.1?
Rode anchor build; aponte Codama para JSON em target/idl.
Quando regenerar?
Toda mudança de interface on-chain em CI.
Clientes tipados kit?
Codama renderiza funções nativas @solana/kit.
gill obrigatório?
Açúcar opcional sobre kit.
Next.js?
Importe clientes gerados em client components para escritas.
Testes?
Surfpool + testes de integração devnet.
web3.js?
Não misture com clientes kit gerados.
Múltiplos programas?
Uma config Codama por programa ou workspace monorepo.
Fetch de conta?
Use decoders gerados com getAccountInfo.
Erros?
Mapeie códigos de erro do programa a partir de metadados IDL.
Relacionados
- Codama - codegen nativo kit
- Typed Clients Basics - visão geral
- Generating TS Clients - pipeline
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.