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

walletStellar Wallet Kit - Integración rápida

Construyendo un Sistema de Gestión de Carteras Stellar

Esta guía te mostrará cómo crear un sistema integral de gestión de carteras para la integración con la blockchain Stellar en tu aplicación React/Next.js. El sistema ofrece conexión segura de carteras, desconexión y gestión de estado con persistencia.

Resumen

El sistema consta de tres componentes principales:

  1. Proveedor de Carteras - Gestión global del estado para la información de la cartera

  2. Hook de Cartera - Lógica de negocio para las operaciones de la cartera

  3. Configuración del Kit de Carteras - Configuración de integración con la blockchain Stellar

Paso 1: Instalar dependencias

Primero, instala el paquete requerido del Stellar Wallet Kit:

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

Paso 2: Configurar el Stellar Wallet Kit

Crea un archivo de configuración que configure el Stellar Wallet Kit con soporte para múltiples tipos de cartera:

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

/**
 * Configuración principal para el Stellar Wallet Kit
 * Este kit admite múltiples tipos de carteras, incluyendo Freighter y Albedo
 * Configurar para TESTNET durante el desarrollo y MAINNET para producción
 */
export const kit: StellarWalletsKit = new StellarWalletsKit({
  network: WalletNetwork.TESTNET,
  selectedWalletId: FREIGHTER_ID,
  modules: [new FreighterModule(), new AlbedoModule()],
});

/**
 * Interfaz para los parámetros de firma de transacciones
 */
interface signTransactionProps {
  unsignedTransaction: string;
  address: string;
}

/**
 * Firmar una transacción Stellar usando la cartera conectada
 * Esta función maneja el proceso de firma y devuelve la transacción firmada
 * 
 * @param unsignedTransaction - La cadena XDR de la transacción sin firmar
 * @param address - La dirección de la cartera que firmará la transacción
 * @returns Promise<string> - El XDR de la transacción firmada
 */
export const signTransaction = async ({
  unsignedTransaction,
  address,
}: signTransactionProps): Promise<string> => {
  const { signedTxXdr } = await kit.signTransaction(unsignedTransaction, {
    address,
    networkPassphrase: WalletNetwork.TESTNET,
  });

  return signedTxXdr;
};

Paso 3: Crear el Proveedor de Contexto de la Cartera

El Proveedor de Carteras gestiona el estado global de la cartera y persiste la información en localStorage para una mejor experiencia de usuario

Paso 4: Crear el Hook de la Cartera

El hook de la cartera encapsula toda la lógica de negocio para las operaciones de la cartera, proporcionando una interfaz limpia para los componentes:

Paso 5: Integrar el Proveedor en tu App

Envuelve tu aplicación con WalletProvider para habilitar la gestión del estado de la cartera en toda tu app:

Paso 6: Usar el Hook de Cartera en Componentes

Ahora puedes usar la funcionalidad de la cartera en cualquier componente. Aquí hay un ejemplo de un botón de conexión de cartera:

Características clave y beneficios

Persistencia de estado

  • La información de la cartera se guarda automáticamente en localStorage

  • Los usuarios no necesitan reconectar su cartera cada vez que visitan tu app

  • Experiencia de usuario fluida a través de las sesiones del navegador

Soporte multi-cartera

  • Admite múltiples tipos de carteras Stellar (Freighter, Albedo, etc.)

  • Fácil de agregar nuevos módulos de cartera a medida que estén disponibles

  • Los usuarios pueden elegir su cartera preferida

Manejo de errores

  • Manejo de errores integral para las operaciones de cartera

  • Recuperaciones elegantes cuando las operaciones de cartera fallan

  • Fácil de extender con notificaciones de error personalizadas

Seguridad de tipos

  • Soporte completo de TypeScript con definiciones de tipos adecuadas

  • Soporte de IntelliSense para una mejor experiencia de desarrollo

  • Verificación de errores en tiempo de compilación para las operaciones de cartera

Arquitectura basada en contexto

  • Separación clara de responsabilidades entre la gestión del estado y la lógica de negocio

  • Fácil acceso al estado de la cartera desde cualquier componente

  • Gestión centralizada del estado de la cartera

Opciones de configuración

Selección de red

  • TESTNET: Usar durante el desarrollo y las pruebas

  • MAINNET: Usar para aplicaciones en producción

Última actualización

¿Te fue útil?