Contas e Endereços
Contas e endereços - a unidade de estado na Solana. Os resultados aparecem na mesma cerca: comentários // na mesma linha quando curtos, blocos // de várias linhas abaixo da amostra quando não. Amostras na cadeia são Rust; amostras do cliente usam TypeScript quando indicado.
Analisa uma chave pública base58.
use solana_sdk :: pubkey :: Pubkey ;
use std :: str :: FromStr ;
let system = Pubkey :: from_str ( "11111111111111111111111111111111" ) . unwrap ();
system . to_string () . starts_with ( "111" ) // true
Descreve contas para uma instrução.
// AccountMeta::new(pubkey, is_signer)
// AccountMeta::new_readonly(pubkey, is_signer)
Privilégios da conta na instrução.
// meta.is_signer / meta.is_writable flags
// o runtime impõe o signatário e a mutabilidade
Endereço bem conhecido do programa do sistema.
// solana_sdk::system_program::id()
// 11111111111111111111111111111111
As contas precisam de lamports suficientes para serem isentas de aluguel.
// Rent::default().minimum_balance(data_len)
Apenas o programa proprietário pode alterar os dados da conta.
// account.owner == program_id para estado do programa
Programas são contas executáveis.
// account.executable == true para contas de programa
Saldo em lamports (1 SOL = 1e9 lamports).
// 1_000_000_000u64 // 1 SOL
Os dados da conta são um vetor de bytes.
Gera um novo keypair (cliente/ferramentas).
// let kp = Keypair::new();
// kp.pubkey()
⚠️ Importante: Não copie e cole código Solana no seu aplicativo sem fazer sua própria auditoria de qualidade/segurança. Os blocos de código são apenas exemplos genéricos para aprendizado e experimentação em ambientes de desenvolvimento/teste e podem não ser adequados para o seu aplicativo. Este site está em fase BETA e em avaliação contínua de qualidade, portanto pode conter erros de código. Nenhuma garantia é fornecida: consulte os termos .
Endereços derivados de CreateWithSeed (legado).
// Pubkey::create_with_seed(&base, seed, &owner)
Limites práticos de tamanho de dados da conta se aplicam (restrições da classe 10MB historicamente 10MB).
// mantenha o estado pequeno; prefira PDAs por entidade
Leia a sysvar Clock para o slot/tempo unix.
// Clock::get()?.unix_timestamp
Parâmetros da sysvar Rent.
// Rent::get()?.lamports_per_byte_year
A primeira meta de conta é frequentemente o pagador da taxa/signatário.
// o pagador da taxa de transação deve assinar e ser gravável
Versões da Pilha: Esta página foi escrita para Agave 4.1.1 , Solana CLI 3.0.10 , Anchor 0.32.1 , Rust 1.91.1 e @solana/kit 7.0.0 .