Lição: 053: Usando Tokens da Solana Program Library (SPL)
Nesta aula, vamos explorar como trabalhar com tokens SPL na blockchain Solana. Tokens SPL são a versão da Solana de tokens fungíveis e não fungíveis, funcionando de maneira semelhante aos tokens ERC-20 no Ethereum. Vamos abordar como criar, emitir e transferir tokens SPL usando Rust e a Solana Program Library.
Vamos começar!
Pré-requisitos
Antes de prosseguir, certifique-se de que você tem o seguinte:
- Compreensão básica da linguagem de programação Rust.
- Familiaridade com o desenvolvimento na Solana e sua CLI.
- Solana CLI e ferramenta de Rust instaladas.
Configurando Seu Ambiente
Primeiro, verifique se sua Solana CLI está configurada e você tem uma carteira válida. Você pode criar uma nova carteira com o seguinte comando:
solana-keygen new
Em seguida, instale as bibliotecas necessárias do Rust, se ainda não tiver feito:
cargo add solana-sdk
cargo add spl-token
Criando um Token SPL
Para criar um token SPL, usaremos a ferramenta de linha de comando spl-token
para algumas partes do processo. Primeiro, certifique-se de que o ambiente da Solana esteja configurado para o cluster desejado (testnet, devnet ou mainnet).
Para este exemplo, usaremos o devnet:
solana config set --url https://api.devnet.solana.com
Passo 1: Criar o Token
Agora, crie um novo token SPL:
spl-token create-token
Este comando retorna a chave pública do novo token. Tome nota disso, pois você precisará para as operações futuras.
Passo 2: Criar uma Conta para Armazenar Tokens
Em seguida, você precisa criar uma conta de token para armazenar seus tokens recém-criados:
spl-token create-account <TOKEN_PUBLIC_KEY>
Substitua <TOKEN_PUBLIC_KEY>
pela chave pública do token gerada no passo anterior.
Passo 3: Emitir Tokens
Agora que você tem uma conta de token, emita alguns tokens para ela:
spl-token mint <TOKEN_PUBLIC_KEY> 1000 <SUA_CONTA_DE_TOKEN>
Isso emite 1000 tokens para sua conta. Substitua <SUA_CONTA_DE_TOKEN>
pela chave pública da conta de token.
Usando Tokens SPL em Seu Programa Rust
Agora, vamos criar um programa simples em Rust que interage com os tokens SPL.
Passo 1: Criar um Novo Projeto Rust
Crie um novo projeto em Rust:
cargo new exemplo_token_spl
cd exemplo_token_spl
Passo 2: Atualizar o Cargo.toml
No Cargo.toml
, adicione as dependências para o Solana SDK e o token SPL:
[dependencies]
solana-sdk = "1.10.32" # Utilize a versão mais recente
spl-token = "3.2.0" # Utilize a versão mais recente
Passo 3: Escrevendo o Código
Abra src/main.rs
e substitua o conteúdo pelo seguinte código:
use solana_sdk::{
pubkey::Pubkey,
signature::{Keypair, Signer},
transaction::Transaction,
client::SyncClient,
};
use spl_token::{self, instruction::mint_to, state::Mint};
fn main() {
let client = /* Inicialize seu cliente Solana aqui */;
// Carregue seu keypair (por favor, certifique-se de que está seguro)
let payer = Keypair::from_file("caminho/para/seu/keypair.json").unwrap();
let token_mint_pubkey = Pubkey::from_str("TOKEN_PUBLIC_KEY").unwrap();
let token_account_pubkey = Pubkey::from_str("SUA_CONTA_DE_TOKEN").unwrap();
// Emitir tokens
let amount: u64 = 1000;
let mint_to_instruction = mint_to(
&spl_token::id(),
&token_mint_pubkey,
&token_account_pubkey,
&payer.pubkey(),
&[], // Sem multisig
amount,
).unwrap();
let transaction = Transaction::new_signed_with_payer(
&[mint_to_instruction],
Some(&payer.pubkey()),
&[&payer],
client.get_recent_blockhash().unwrap(),
);
// Enviar transação
let signature = client.send_transaction(&transaction).unwrap();
println!("Assinatura da transação: {}", signature);
}
Certifique-se de substituir "TOKEN_PUBLIC_KEY"
e "SUA_CONTA_DE_TOKEN"
pelos valores apropriados.
Passo 4: Executar o Programa
Por fim, compile e execute seu programa em Rust:
cargo run
Conclusão
Nesta aula, você aprendeu a criar, emitir e usar tokens SPL na blockchain Solana utilizando tanto a CLI quanto a programação em Rust. Isso é apenas o começo, e você pode construir aplicações mais avançadas usando tokens SPL em seus projetos na Solana.
Boa codificação!