SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
17.11.2024

Aula 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!

Did you like this article? Rate it from 1 to 5:

Thank you for voting!