Stellar 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:
Provedor de Carteira - Gerenciamento de estado global para informações da carteira
Hook de Carteira - Lógica de negócio para operações da carteira
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-kitPasso 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