
Solana Dev 101 — Como criar uma transação na Solana
Índice
Introdução
GM! Neste artigo, veremos como criar e enviar uma transação com JavaScript na Solana como parte da série Solana Dev 101. Este guia é voltado para iniciantes, então não se preocupe se você ainda não conhece a Solana ou a tecnologia blockchain.
Se tiver alguma dúvida, entre no Discord da Helius ou marque a Helius no X para receber ajuda.
Pré-requisitos
Para começar, precisamos ter o Node.js e o npm instalados em nossa máquina. Se necessário, você pode baixá-los aqui.
Também precisaremos instalar a biblioteca web3.js da Solana, um conjunto de ferramentas e bibliotecas JavaScript criado para interagir com a blockchain da Solana.
Você pode instalá-la com o npm executando o seguinte código no terminal:
npm install @solana/web3.jsEtapa 1: configurar a conexão
Primeiro, vamos criar uma conexão com o cluster da Solana. Usaremos a Helius para nos conectar a um cluster da devnet. Você precisará criar uma conta na Helius e uma chave de API, o que pode ser feito gratuitamente no seu painel.
const solanaWeb3 = require('@solana/web3.js');
const connection = new solanaWeb3.Connection('<https://rpc-devnet.helius.xyz/?api-key=><api_key>','confirmed',);Etapa 2: criar uma nova carteira
Agora precisamos de uma carteira para enviar transações. Uma carteira é apenas um par de chaves pública e privada, e pode ser criada facilmente. A chave pública é o endereço da sua carteira, enquanto a chave privada é usada para assinar transações. Você pode saber mais sobre criptografia de chave pública aqui.
Podemos criar uma nova carteira no sistema de arquivos, cujo par de chaves será armazenado na sua máquina local. Se você já instalou as ferramentas da Solana CLI, execute o seguinte comando no terminal para criar uma nova carteira.
solana-keygen newCaso ainda não tenha feito isso, será necessário instalar o conjunto de ferramentas da Solana CLI. Você encontra mais informações sobre como fazer isso na documentação da Solana: https://docs.solana.com/cli/install-solana-cli-tools
Nunca compartilhe sua chave privada com ninguém.
Em seguida, podemos importar essa carteira para o nosso código:
const sender=solanaWeb3.Keypair.fromSecretKey(new Uint8Array([61,23,....,60,49]));Você pode copiar a chave secreta da carteira no sistema de arquivos JSON criada na etapa anterior e usá-la.
Etapa 3: adicionar fundos à carteira
Para enviar transações, precisaremos ter um pouco de SOL em nossa carteira. Cada transação na Solana exige o pagamento de uma pequena taxa para ser processada.
Para fins de teste, usaremos nosso faucet da Devnet para adicionar fundos à carteira. Use o faucet da Helius no seu painel ou siga estas instruções para solicitar SOL da Devnet pela CLI. Insira a chave pública da carteira que você acabou de criar e solicite um pouco de SOL.
Etapa 4: criar uma transação
Agora que temos uma carteira com fundos, podemos criar uma transação. Neste exemplo, criaremos a transação e adicionaremos a ela uma instrução de transferência. Usaremos essa instrução para transferir 0,1 SOL para uma carteira de nossa escolha.
Uma transação pode executar diversas ações, dependendo da instrução fornecida. Neste exemplo, enviaremos SOL usando a instrução de transferência.
// Set up the address to send to
const receiver = new solanaWeb3.PublicKey("86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY");
// Create a transaction
const transaction = new solanaWeb3.Transaction().add(solanaWeb3.SystemProgram.transfer({
fromPubkey: sender.publicKey,toPubkey: receiver,
lamports: solanaWeb3.LAMPORTS_PER_SOL * 0.01,}),);No código acima, criamos um novo objeto PublicKey com uma carteira de nossa escolha. O objeto PublicKey, em vez de apenas o endereço, é necessário para criar uma transação. A instrução de transferência também recebe três parâmetros:
fromPubkey: a chave pública da conta do remetente.toPubkey: a chave pública da conta do destinatário.lamports: a quantidade de lamports (a menor unidade monetária da Solana) a ser transferida.solanaWeb3.LAMPORTS_PER_SOLrepresenta 1 SOL.
Etapa 5: assinar e enviar a transação
Depois de criar a transação, precisaremos assiná-la e enviá-la para a rede.
A biblioteca Solana Web3 tem uma função chamada sendAndConfirmTransaction() que nos permite fazer tudo isso facilmente.
O método sendAndConfirmTransaction envia a transação para a rede, aguarda a confirmação e retorna uma assinatura para a transação.
// Sign and confirm the transaction
const signature = await solanaWeb3.sendAndConfirmTransaction(connection,transaction,[sender],);
console.log('Transaction: ', signature);O método sendAndConfrimTransaction recebe três parâmetros:
connection: este é o objeto de conexão com a rede Solana que criamos usando uma conexão RPC da Helius. Esse parâmetro especifica a conexão pela qual a transação será enviada e confirmada.transaction: este é o objeto da transação que acabamos de criar e que contém a instrução de transferência.[sender]: este é um array que contém todas as contas signatárias da transação. Neste caso, ele contém um único elemento,sender, que representa a conta que assina e autoriza a transação.
E pronto!
Acabamos de criar e enviar uma transação na Solana usando JavaScript.
Você pode usar node sendTransaction.js para executar o script.
Conclusão
Criar e enviar uma transação na Solana com JavaScript é um processo simples graças à abrangente biblioteca JavaScript da Solana. Com apenas algumas linhas de código, podemos interagir com a blockchain da Solana, abrindo um mundo de possibilidades.
Este é um exemplo básico que destaca a estrutura e o fluxo de criação e envio de uma transação. Aplicações reais podem envolver transações mais complexas e exigir medidas de segurança adicionais.
Espero que este guia tenha sido útil. Bom código!
Você encontra o código completo aqui.
Recursos
Artigos relacionados
Assine a Helius
Acompanhe as novidades mais recentes do desenvolvimento Solana e receba atualizações quando publicarmos


