Gerando Clientes TS
Gere clientes TypeScript a partir do IDL do Anchor para resolução de contas tipadas, construtores de instruções e decodificação de erros.
Busque em todas as páginas da documentação
Gere clientes TypeScript a partir do IDL do Anchor para resolução de contas tipadas, construtores de instruções e decodificação de erros.
anchor build
# Cliente Anchor legado
anchor idl parse -f target/idl/my_program.json -o app/src/idl.tsimport { Program, AnchorProvider } from "@coral-xyz/anchor";
import idl from "./idl/my_program.json";
const program = new Program(idl as MyProgram, provider);
await program.methods.initialize().accounts({ payer }).rpc();Quando usar isso: Você cria dApps ou testes de integração contra programas Anchor.
import { AnchorProvider, Wallet, Program } from "@coral-xyz/anchor";
import { Connection, Keypair } from "@solana/web3.js";
import idl from "../target/idl/counter.json";
const connection = new Connection("http://127.0.0.1:8899");
const wallet = new Wallet(Keypair.generate());
const provider = new AnchorProvider(connection, wallet, {});
const program = new Program(idl, provider);
await program.methods
.increment()
.accounts({
counter: counterPda,
authority: wallet.publicKey,
})
.rpc();O que isso demonstra:
methods.* codificam os dados da instruçãoaccounts() mapeia os nomes das contas do IDLPara aplicativos greenfield, prefira clientes gerados por Codama + @solana/kit 7.0.0 (veja o próximo artigo). O cliente TS do Anchor continua comum em fluxos de trabalho de teste do Anchor.
Envie o pacote npm do IDL ou comite os tipos gerados no CI.
.accounts() - Falhas em tempo de execução. Correção: Use tipos gerados sempre que possível.| Alternativa | Use Quando | Não Use Quando |
|---|---|---|
| Codama + @solana/kit | Clientes modernos nativos do kit | Pilha de teste Anchor legado |
| Bytes de instrução criados manualmente | Dependências mínimas | IDL do Anchor disponível |
| anchorpy (Python) | Bots Python | dApps TypeScript |
0.32.1 em tópicos avançados.
Layouts fixos grandes quando Borsh CU é muito alto.
Não facilmente; planeje o crescimento futuro.
Não; documente separadamente.
JSON do IDL do chamador em tempo de compilação.
Sim, com metadados de conta corretos.
Evite IDL diferente por recurso no mainnet.
LiteSVM, Surfpool, simulação devnet.
Não; último recurso.
Veja os links relacionados para o cliente ts.
Versões da Pilha: 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.
Revisado por Chris St. John·Última atualização: 19 de jul. de 2026