SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
21.11.2024

Aula 095: Desenvolvendo Aplicações Móveis com Solana

Nesta aula, vamos explorar como construir aplicações móveis que interagem com a blockchain Solana. A Solana ganhou tração significativa devido à sua alta capacidade de processamento e baixas taxas de transação, tornando-se uma escolha interessante para desenvolvedores móveis que desejam criar aplicações descentralizadas (dApps).

Configurando o Ambiente

Antes de mergulhar no código, certifique-se de que você tem o seguinte configurado em sua máquina de desenvolvimento:

  1. Rust: Instale o Rust usando rustup.
  2. Solana CLI: Instale as ferramentas de linha de comando da Solana. Siga o guia de instalação na documentação oficial da Solana.
  3. React Native: Certifique-se de ter um ambiente React Native funcionando. Você pode seguir o guia React Native - Começando para configurá-lo.

Criando um Novo Projeto React Native

Primeiro, vamos criar um novo projeto React Native:

npx react-native init SolanaMobileApp
cd SolanaMobileApp

Integrando a Solana

Usaremos a biblioteca @solana/web3.js para interagir com a blockchain Solana. Instale a biblioteca:

npm install @solana/web3.js

Conectando-se à Blockchain Solana

Em seu App.js, você pode configurar uma conexão com a blockchain Solana:

import React, { useEffect } from 'react';
import { StyleSheet, Text, View } from 'react-native';
import { Connection, PublicKey } from '@solana/web3.js';

const App = () => {
  useEffect(() => {
    const connection = new Connection('https://api.mainnet-beta.solana.com', 'confirmed');

    const getAccountInfo = async (publicKey) => {
      const accountInfo = await connection.getAccountInfo(new PublicKey(publicKey));
      console.log('Informações da Conta:', accountInfo);
    };

    // Substitua por uma chave pública válida da Solana
    const publicKey = 'SuaChavePublicaAqui';
    getAccountInfo(publicKey);
  }, []);

  return (
    <View style={styles.container}>
      <Text>Bem-vindo ao Aplicativo Móvel Solana!</Text>
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
});

export default App;

Buscando o Saldo da Carteira

Para buscar o saldo de uma carteira Solana, você pode usar o método connection.getBalance:

const getWalletBalance = async (publicKey) => {
  const lamports = await connection.getBalance(new PublicKey(publicKey));
  const saldoEmSol = lamports / 1e9; // Converter lamports para SOL
  console.log('Saldo da Carteira (SOL):', saldoEmSol);
};

Enviando SOL de uma Carteira para Outra

Para enviar SOL, precisamos criar e assinar uma transação. Abaixo está um exemplo de como você pode fazer isso:

import { Keypair, Transaction, SystemProgram } from '@solana/web3.js';

const sendSol = async (senderKeypair, receiverPublicKey, amount) => {
  const transaction = new Transaction().add(
    SystemProgram.transfer({
      fromPubkey: senderKeypair.publicKey,
      toPubkey: new PublicKey(receiverPublicKey),
      lamports: amount * 1e9, // Converter SOL para lamports
    })
  );

  const signature = await connection.sendTransaction(transaction, [senderKeypair]);
  console.log('Assinatura da Transação:', signature);
};

Manipulando Chaves

Para criar um par de chaves em um aplicativo móvel, você pode usar o seguinte trecho de código:

const createKeypair = () => {
  const keypair = Keypair.generate();
  console.log('Chave Pública:', keypair.publicKey.toString());
  console.log('Chave Secreta:', keypair.secret);
  return keypair;
};

Exemplo de Uso

Você pode combinar todas essas funções para construir um fluxo simples de aplicação em seu App.js:

const App = () => {
  const senderKeypair = createKeypair(); // Cria uma nova carteira (para fins de demonstração)
  const receiverPublicKey = 'ChavePublicaDoRecebedorAqui';

  useEffect(() => {
    getWalletBalance(senderKeypair.publicKey.toString());
    sendSol(senderKeypair, receiverPublicKey, 0.01); // Envia 0.01 SOL
  }, []);

  return (
    <View style={styles.container}>
      <Text>Bem-vindo ao Aplicativo Móvel Solana!</Text>
    </View>
  );
};

Conclusão

Nesta aula, exploramos como construir uma aplicação móvel React Native que interage com a blockchain Solana utilizando a biblioteca @solana/web3.js. Abordamos como estabelecer uma conexão, buscar saldos de carteiras, enviar SOL e gerenciar chaves. Esta base permite que você amplie sua aplicação com funcionalidades mais complexas, como a cunhagem de NFTs, uso de identidades descentralizadas e interação com contratos inteligentes na Solana.

Com esta configuração, você agora tem as ferramentas necessárias para começar a desenvolver aplicações móveis baseadas em Solana. Boa codificação!

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

Thank you for voting!