Instrucciones de compilación
Construye instrucciones tipadas a partir de clientes Codama generados.
Busca en todas las páginas de la documentación
Construye instrucciones tipadas a partir de clientes Codama generados.
import { getIncrementInstruction } from "./generated/clients/js";
import { appendTransactionMessageInstruction } from "@solana/kit";Cuándo usar esto:
import {
createTransactionMessage,
pipe,
setTransactionMessageFeePayerSigner,
setTransactionMessageLifetimeUsingBlockhash,
appendTransactionMessageInstruction,
createSolanaRpc,
} from "@solana/kit";
import { getIncrementInstruction } from "./generated/clients/js";
const rpc = createSolanaRpc(process.env.RPC_URL!);
const { value: bh } = await rpc.getLatestBlockhash().send();
const ix = getIncrementInstruction({
counter: counterAddress,
authority: walletSigner,
});
const message = pipe(
createTransactionMessage({ version: 0 }),
(m) => setTransactionMessageFeePayerSigner(walletSigner, m),
(m) => setTransactionMessageLifetimeUsingBlockhash(bh, m),
(m) => appendTransactionMessageInstruction(ix, m)
);Lo que esto demuestra:
Signer satisfacen los requisitos de metadatos de autoridad.ix de programa en un solo mensaje.Account metas incluyen indicadores signer/writable por IDL.metas.Pubkey en lugar de Signer - falta firma. Solución: pasa el tipo Signer para las firmas.system + rent. Solución: incluye instrucciones de inicialización de los ayudantes de la IDL.BN vs bigint. Solución: usa los tipos TS generados literalmente.CU de CPI - OOM de simulación. Solución: aumenta el límite de unidades de cómputo.| Alternativa | Usar cuándo | No usar cuándo |
|---|---|---|
Anchor .methods | Scripts rápidos heredados | Control de mensajes de Kit |
| Diseño de búfer sin procesar | Solo para aprender | Producción |
Ejecuta anchor build; apunta Codama al JSON target/idl.
Cada cambio en la interfaz en cadena en CI.
Codama renderiza funciones nativas de @solana/kit.
Azúcar opcional sobre Kit.
Importa los clientes generados en componentes cliente para escrituras.
Pruebas de integración con Surfpool + devnet.
No mezclar con los clientes de Kit generados.
Una configuración de Codama por programa o espacio de trabajo monorepo.
Usa los decodificadores generados con getAccountInfo.
Mapea los códigos de error del programa a partir de metadatos de la IDL.
Versiones de la pila: Esta página se escribió 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, y LiteSVM 0.6.x.
Revisado por Chris St. John·Última actualización: 19 jul 2026