2.5 KiB
2.5 KiB
title, description
| title | description |
|---|---|
| Codama Program Clients | Naming conventions and patterns for Codama-generated @solana-program/* Kit-compatible clients. |
Codama-Generated Program Clients
@solana-program/* packages are Codama-generated, Kit-compatible clients for Solana programs.
Naming Conventions
| Category | Pattern | Example |
|---|---|---|
| Program address | {PROGRAM}_PROGRAM_ADDRESS |
SYSTEM_PROGRAM_ADDRESS |
| Instructions | get{Name}Instruction() |
getTransferSolInstruction() |
| Instruction parse | parse{Name}Instruction() |
parseTransferSolInstruction() |
| Account fetch | fetch{Account}() |
fetchMint() |
| Account fetch maybe | fetchMaybe{Account}() |
fetchMaybeMint() |
| Account fetch all | fetchAll{Account}() |
fetchAllMint() |
| Account decode | decode{Account}() |
decodeMint() |
| Account size | get{Account}Size() |
getMintSize() |
| Codec | get{Type}[Encoder|Decoder|Codec]() |
getMintDecoder() |
| PDA derivation | find{Name}Pda() |
findAssociatedTokenPda() |
| Errors | {PROGRAM}_ERROR__{NAME} |
SYSTEM_ERROR__INSUFFICIENT_FUNDS |
| Error check | is{Program}Error() |
isSystemError() |
Quick Examples
Fetch Typed Account
import { fetchMint } from '@solana-program/token';
const mint = await fetchMint(rpc, mintAddress);
// mint.data.decimals, mint.data.supply — fully typed
Create Instruction
import { getTransferSolInstruction } from '@solana-program/system';
import { lamports } from '@solana/kit';
const ix = getTransferSolInstruction({
source: payer,
destination: recipient.address,
amount: lamports(1_000_000n),
});
Derive PDA
import { findAssociatedTokenPda, TOKEN_PROGRAM_ADDRESS } from '@solana-program/token';
const [ata] = await findAssociatedTokenPda({
owner,
mint,
tokenProgram: TOKEN_PROGRAM_ADDRESS,
});
Error Handling
import { isSystemError, SYSTEM_ERROR__INSUFFICIENT_FUNDS } from '@solana-program/system';
try {
await sendTransaction(tx);
} catch (e) {
if (isSystemError(e, SYSTEM_ERROR__INSUFFICIENT_FUNDS)) {
console.error('Not enough SOL');
}
}
Program-Specific References
For detailed APIs:
- programs/system.md — Account creation, transfers, nonces
- programs/token.md — SPL Token operations
- programs/token-2022.md — Token Extensions
- programs/compute-budget.md — CU limits & priority fees