Configuración de Wallet Connect para Firmar Transacciones Móviles

Clase 20 de 21Curso de Introducción a Celo con Solidity

Contenido del curso

Resumen

Integrar Wallet Connect en un proyecto sobre la blockchain de Celo permite que un árbitro firme transacciones directamente desde su teléfono móvil, eliminando la dependencia exclusiva de una interfaz web. Esta funcionalidad amplía la accesibilidad del contrato inteligente y ofrece una experiencia más flexible para los usuarios involucrados.

¿Cómo se configura Wallet Connect para la liberación arbitral?

El flujo parte de una función muy similar a la que se implementó previamente con Contract Kit. La diferencia clave radica en el método de conexión: en lugar de utilizar la Celo Wallet directamente en el navegador, se levanta un código QR que el árbitro escanea con su billetera móvil [01:05].

Dentro del código en Visual Studio Code, la configuración incluye tres elementos esenciales:

  • Un provider que apunta a las URL de Forno, tanto para la testnet Alfajores como para la red productiva de Celo [00:45].
  • La instancia de Contract Kit configurada para operar a través de Wallet Connect en lugar de la conexión tradicional [00:55].
  • La llamada a la transacción con los mismos parámetros que se usaron con Contract Kit, lo que demuestra que la lógica del contrato no cambia, solo el canal de firma [01:10].

Este enfoque resulta práctico porque reutiliza la lógica existente. No es necesario reescribir la interacción con el contrato inteligente; basta con intercambiar el mecanismo de autenticación y firma.

¿Qué ocurre al escanear el código QR con Valora?

Al presionar el botón en la interfaz web, aparece un código QR en pantalla [01:30]. El árbitro abre la billetera Valora en su versión de development y escanea ese código. Este proceso establece una sesión segura entre la aplicación web y el dispositivo móvil.

Una vez escaneado, la transacción se presenta en la billetera para su confirmación. El árbitro revisa los detalles y aprueba la operación directamente desde el teléfono [01:45]. El flujo completo es:

  • El botón en el navegador invoca la función de Wallet Connect.
  • Se genera y muestra el código QR.
  • El usuario escanea con Valora y confirma.
  • La transacción se ejecuta en la blockchain.

¿Cómo se verifica que la transacción fue exitosa?

Después de completar la firma, el explorador de bloques de la red Alfajores muestra la interacción entre el contrato inteligente y la billetera del árbitro [02:05]. Se puede corroborar que las direcciones (wallets) coinciden exactamente con las configuradas en el proyecto.

Además, en la propia aplicación Valora aparece la transferencia de tokens que se ejecuta una vez que el árbitro confirma la transacción [02:20]. Esta doble verificación —en el explorador de bloques y en la billetera— garantiza transparencia total sobre lo que ocurrió en la red.

¿Qué habilidades se consolidan con esta implementación?

Esta integración cierra un ciclo completo de desarrollo sobre Celo que abarca varias competencias fundamentales:

  • Escritura de contratos inteligentes: definir la lógica de negocio en Solidity y estructurar funciones como la liberación arbitral.
  • Despliegue en red: publicar el contrato tanto en la testnet Alfajores como en la red productiva.
  • Interacción desde interfaz web: conectar un frontend con el contrato mediante Contract Kit.
  • Interacción desde móvil: ofrecer firma de transacciones a través de Wallet Connect y Valora.

La red Alfajores funciona como entorno de pruebas donde se validan todas estas operaciones antes de pasar a producción. Trabajar con Forno como proveedor de nodos simplifica la conexión sin necesidad de ejecutar un nodo propio.

El patrón de reemplazar únicamente el mecanismo de firma mientras se mantiene intacta la lógica del contrato es una práctica recomendable. Permite escalar la aplicación a distintos dispositivos y billeteras sin duplicar código ni introducir errores en la capa de negocio.

Si ya completaste este flujo, considera experimentar con otros métodos del contrato y distintas billeteras compatibles con Wallet Connect para ampliar tu dominio sobre el ecosistema Celo.