circle-check
Our docs are AI-ready. Use them as context for any AI, or ask questions via the search bar.

walletStellar Wallet Kit - Integração Rápida

Construindo um Sistema de Gerenciamento de Carteiras Stellar

Este guia irá orientá-lo na criação de um sistema completo de gerenciamento de carteiras para integração com a blockchain Stellar em sua aplicação React/Next.js. O sistema fornece conexão segura de carteira, desconexão e gerenciamento de estado com persistência.

Visão geral

O sistema consiste em três componentes principais:

  1. Provedor de Carteira - Gerenciamento de estado global para informações da carteira

  2. Hook de Carteira - Lógica de negócio para operações da carteira

  3. Configuração do Kit de Carteiras - Configuração de integração com a blockchain Stellar

Passo 1: Instalar Dependências

Primeiro, instale o pacote necessário Stellar Wallet Kit:

npm install @creit.tech/stellar-wallets-kit

Passo 2: Configure o Stellar Wallet Kit

Crie um arquivo de configuração que configure o Stellar Wallet Kit com suporte para múltiplos tipos de carteira:

import {
  StellarWalletsKit,
  WalletNetwork,
  FREIGHTER_ID,
  AlbedoModule,
  FreighterModule,
} from "@creit.tech/stellar-wallets-kit";

/**
 * Configuração principal para o Stellar Wallet Kit
 * Este kit suporta múltiplos tipos de carteira incluindo Freighter e Albedo
 * Configure para TESTNET durante o desenvolvimento e MAINNET para produção
 */
export const kit: StellarWalletsKit = new StellarWalletsKit({
  network: WalletNetwork.TESTNET,
  selectedWalletId: FREIGHTER_ID,
  modules: [new FreighterModule(), new AlbedoModule()],
});

/**
 * Interface para parâmetros de assinatura de transação
 */
interface signTransactionProps {
  unsignedTransaction: string;
  address: string;
}

/**
 * Assine uma transação Stellar usando a carteira conectada
 * Esta função lida com o processo de assinatura e retorna a transação assinada
 * 
 * @param unsignedTransaction - A string XDR da transação não assinada
 * @param address - O endereço da carteira que irá assinar a transação
 * @returns Promise<string> - O XDR da transação assinada
 */
export const signTransaction = async ({
  unsignedTransaction,
  address,
}: signTransactionProps): Promise<string> => {
  const { signedTxXdr } = await kit.signTransaction(unsignedTransaction, {
    address,
    networkPassphrase: WalletNetwork.TESTNET,
  });

  return signedTxXdr;
};

Passo 3: Crie o Provedor de Contexto da Carteira

O Wallet Provider gerencia o estado global da carteira e persiste informações no localStorage para uma melhor experiência do usuário

Passo 4: Crie o Hook da Carteira

O hook da carteira encapsula toda a lógica de negócio para operações da carteira, fornecendo uma interface limpa para os componentes:

Passo 5: Integre o Provider em Sua App

Envolva sua aplicação com o WalletProvider para habilitar o gerenciamento de estado da carteira por toda a sua app:

Passo 6: Use o Hook da Carteira em Componentes

Agora você pode usar a funcionalidade da carteira em qualquer componente. Aqui está um exemplo de um botão de conexão de carteira:

Principais Recursos e Benefícios

Persistência de Estado

  • As informações da carteira são automaticamente salvas no localStorage

  • Os usuários não precisam reconectar sua carteira toda vez que visitam sua app

  • Experiência do usuário sem atrito entre sessões do navegador

Suporte a Múltiplas Carteiras

  • Suporta múltiplos tipos de carteiras Stellar (Freighter, Albedo, etc.)

  • Fácil adicionar novos módulos de carteira conforme eles se tornem disponíveis

  • Os usuários podem escolher sua carteira preferida

Tratamento de Erros

  • Tratamento de erros abrangente para operações de carteira

  • Alternativas elegantes quando as operações de carteira falham

  • Fácil de estender com notificações de erro personalizadas

Segurança de Tipos

  • Suporte completo a TypeScript com definições de tipo apropriadas

  • Suporte a IntelliSense para melhor experiência de desenvolvimento

  • Verificação de erros em tempo de compilação para operações da carteira

Arquitetura Baseada em Contexto

  • Separação limpa de responsabilidades entre gerenciamento de estado e lógica de negócio

  • Fácil acesso ao estado da carteira a partir de qualquer componente

  • Gerenciamento centralizado do estado da carteira

Opções de Configuração

Seleção de Rede

  • TESTNET: Use durante desenvolvimento e testes

  • MAINNET: Use para aplicações de produção

Atualizado

Isto foi útil?