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

walletConfiguración de la cartera

Vamos a usar el Stellar Wallet Kit y configurar toda la configuración para firmar transacciones.

Hook Personalizado

Vamos a usar un hook personalizado para gestionar las acciones de conectar y desconectar la cartera usando el Wallet Context y el wallet kit.

import { kit } from "@/config/wallet-kit";
import { useWalletContext } from "@/providers/wallet.provider";
import { ISupportedWallet } from "@creit.tech/stellar-wallets-kit";

export const useWallet = () => {
  // Obtener información de la cartera desde el wallet context
  const { setWalletInfo, clearWalletInfo } = useWalletContext();

  /**
   * Conectar a una cartera usando el Stellar Wallet Kit y establecer la información de la cartera en el wallet context
   */
  const connectWallet = async () => {
    await kit.openModal({
      modalTitle: "Conéctate a tu cartera favorita",
      onWalletSelected: async (option: ISupportedWallet) => {
        kit.setWallet(option.id);

        const { address } = await kit.getAddress();
        const { name } = option;

        setWalletInfo(address, name);
      },
    });
  };

  /**
   * Desconectar de la cartera usando el Stellar Wallet Kit y limpiar la información de la cartera en el wallet context
   */
  const disconnectWallet = async () => {
    await kit.disconnect();
    clearWalletInfo();
  };

  /**
   * Manejar la conexión a la cartera mediante el clic de algún botón
   */
  const handleConnect = async () => {
    try {
      await connectWallet();
    } catch (error) {
      console.error("Error connecting wallet:", error);
    }
  };

  /**
   * Manejar la desconexión de la cartera mediante el clic de algún botón
   */
  const handleDisconnect = async () => {
    try {
      await disconnectWallet();
    } catch (error) {
      console.error("Error disconnecting wallet:", error);
    }
  };

  return {
    connectWallet,
    disconnectWallet,
    handleConnect,
    handleDisconnect,
  };
};

Las funciones "handleConnect" y "handleDisconnect" puedes usarlas con botones para abrir el modal de conexión de la cartera o vaciar su estado.

Ayudantes

Todos los endpoints necesitan tu firma por cartera. El Stellar Wallet Kit proporciona esa funcionalidad, pero la abstraeremos en una función helper.

Última actualización

¿Te fue útil?