Guía de provisión de liquidez (React)

Guía rápida para proporcionar liquidez en STON.fi: gana comisiones aportando tokens a los pools del DEX

Esta guía te acompañará en la creación de una aplicación básica de provisión de liquidez usando el SDK y la API de STON.fi en un React proyecto. Integraremos la conectividad de la billetera con TonConnect (a través de @tonconnect/ui-react) para permitir que los usuarios conecten su billetera TON y proporcionen liquidez a los pools. La guía está pensada para principiantes y asume una experiencia mínima con React.

Nota: En esta demo, aprovecharemos Tailwind CSS para el estilo en lugar de usar CSS personalizado. La configuración de Tailwind CSS ya está incluida en las instrucciones de abajo, así que no necesitas configurarlo por separado.

Nota: Puedes usar cualquier gestor de paquetes (npm, yarn, pnpm o bun) para configurar tu proyecto React. En este tutorial, lo mostraremos con pnpm.


Índice


1. Introducción

En este inicio rápido, construiremos una aplicación React mínima para:

  • Conectarse a una billetera TON (a través de TonConnect UI).

  • Obtener los tokens disponibles de STON.fi (a través de @ston-fi/api).

  • Simular la provisión de liquidez (para ver los tokens LP esperados).

  • Ejecutar una transacción de provisión de liquidez en la cadena (a través de @ston-fi/sdk).

Usaremos:

  • @ston-fi/sdk – Ayuda a construir la carga útil para la transacción real de provisión de liquidez.

  • @ston-fi/api – Nos permite obtener listas de activos y ejecutar simulaciones de provisión de liquidez.

  • @tonconnect/ui-react – Proporciona un botón de conexión a billetera TON basado en React y utilidades.


2. Configuración del proyecto

2.1 Crear una aplicación React

Primero, comprueba si tienes pnpm instalado:

Si pnpm no está instalado, instálalo globalmente:

Crea un nuevo proyecto React + Vite:

Indica un nombre para el proyecto (por ejemplo, stonfi-liquidity-app) y luego:

2.2 Instalación de los paquetes necesarios

En el directorio de tu proyecto, instala los paquetes necesarios:

Instala Tailwind CSS y el plugin de polyfills de Node.js para Vite:

Configura Vite actualizando vite.config.ts. Esta configuración solo aplica polyfills a buffer, manteniendo el bundle liviano y exponiendo al mismo tiempo Buffer para las bibliotecas de TON:

En src/index.css, importa Tailwind:

También puedes eliminar src/App.css (no lo necesitamos), y eliminar la instrucción de importación import './App.css' de src/App.tsx.

Después de hacer estos cambios, puedes verificar que tu aplicación sigue funcionando correctamente iniciando el servidor de desarrollo:

Abre http://localhost:5173. Si ves una página inicial de Vite/React, todo está funcionando correctamente.


3. Conectar la billetera

3.1 Agregar el proveedor TonConnect

Abre src/main.tsx y envuelve tu aplicación en TonConnectUIProvider:

Nota: Para los propósitos de esta demo, estamos sirviendo el manifiesto desde una fuente estática. En una aplicación real, deberías reemplazar esto con la URL de tu propio manifiesto, que crearás en el siguiente paso.

3.2 Crear el manifiesto de TonConnect

Crea un archivo llamado tonconnect-manifest.json en tu carpeta public :

Actualízalo con el nombre, dominio e icono de tu propia aplicación.

3.3 Agregar el botón de conectar billetera

En src/App.tsx, importa y agrega el TonConnectButton:


4. Obtener los activos disponibles

Vamos a obtener los datos de los tokens desde STON.fi usando StonApiClient. Filtraremos por etiquetas de liquidez para mantener la lista manejable.

Primero, añade nuevas importaciones en la parte superior de src/App.tsx:

Inicializa el cliente de la API de STON.fi:

Añade variables de estado para la gestión de tokens:

Añade la lógica para obtener tokens:

Añade el manejador de cambio de token:

Reemplaza la instrucción return con la interfaz mejorada:


5. Simular la provisión de liquidez

Llamaremos a la función simulateLiquidityProvision en StonApiClient para obtener los resultados de la simulación.

Añade importaciones adicionales en la parte superior del archivo:

Añade funciones de utilidad para convertir cantidades de tokens:

Añade la dirección de la billetera y el estado de la simulación:

Añade useEffect para reiniciar la simulación cuando cambien los tokens:

Añade el manejador de simulación después de la función handleTokenChange existente:

Añade el botón de simulación después de los campos de entrada de cantidades:

Añade la visualización de resultados de la simulación después del botón simular:


6. Construir la transacción

Ve a TON Centerarrow-up-right y obtén tu clave API.

Luego crea un archivo .env en la raíz de tu proyecto y añade allí tu clave API:

Ahora vamos a construir la transacción usando @ston-fi/sdk:

Añade nuevas importaciones al inicio del archivo e inicializa el cliente JSON-RPC de TON:

Añade handleProvideLiquidityClick después del callback handleSimulationClick :

Añade el botón Proveer liquidez después del div de resultados de la simulación:


7. Ejecutar la provisión

Después de hacer clic en "Proveer liquidez", tu billetera te pedirá que confirmes y firmes. La transacción hará lo siguiente:

  1. Enviar el token A y el token B al contrato del router

  2. Añadir liquidez al pool

  3. Mintear tokens LP en tu billetera LP


8. Probar tu provisión

  1. Inicia el servidor de desarrollo:

  1. Abre http://localhost:5173

  2. Conecta tu billetera TON

  3. Selecciona dos tokens e introduce cantidades

  4. Simula para ver los tokens LP esperados

  5. Haz clic en "Proveer liquidez" para ejecutar la transacción

  6. Comprueba en tu billetera los nuevos tokens LP


9. Conclusión

Has creado una aplicación React mínima que:

  • Se conecta a una billetera TON

  • Obtiene tokens de STON.fi

  • Simula la provisión de liquidez

  • Gestiona tanto pools nuevos como existentes

  • Ejecuta la transacción de provisión


10. Demostración en vivo

Con esta demo de Replit, puedes:

  • Abrir el proyecto directamente en tu navegador

  • Hacer un fork del Replit para crear tu propia copia

  • Ejecutar la aplicación para verla en acción

  • Explorar y modificar el código para aprender cómo funciona

  • Experimentar con diferentes funciones y cambios en la interfaz

Como alternativa, puedes ejecutar este ejemplo localmente clonando el repositorio de GitHub:

Esto iniciará el servidor de desarrollo y podrás acceder a la app en http://localhost:5173.

También recuerda agregar tu clave de API de TON al .env archivo desde el Construir la transacción paso.


11. Próximos pasos

Para funciones más avanzadas puedes agregar:

Más información: Pools de liquidez de STON.fi e integración con TONarrow-up-right

12. Aplicación de ejemplo avanzada

Para quienes buscan un enfoque más avanzado y con más funciones, también tenemos una demo de Next.js que:

  • Usa Next.js para un framework escalable

  • Utiliza hooks y providers para una arquitectura elegante

  • Demuestra un mejor manejo de errores, una gestión de estado robusta y funciones adicionales de STON.fi

Puedes explorar el código en nuestro repositorio:

Aplicación demo de Next.js del SDK de STON.fiarrow-up-right

O verla en acción en nuestra demo en vivo:

Aplicación demo del SDKarrow-up-right

13. Uso de agentes de IA para la implementación automatizada

Para los desarrolladores que buscan acelerar su proceso de desarrollo, pueden aprovechar agentes de programación de IA para implementar automáticamente la funcionalidad de provisión de liquidez descrita en esta guía. Aunque mostramos Gemini CLI en nuestro ejemplo (debido a su generoso plan gratuito), puedes usar cualquier asistente de programación de IA como Claude Code, GitHub Copilot, Cursor Agent, o herramientas similares.

13.1 ¿Por qué agentes de IA?

Los modernos agentes de programación de IA pueden:

  • Entender documentación compleja e implementar funciones completas

  • Configurar automáticamente la estructura del proyecto y las dependencias

  • Gestionar errores comunes de configuración y puesta en marcha

  • Proporcionar implementaciones funcionales en minutos en lugar de horas

13.2 Configuración con Gemini CLI (Ejemplo)

Haremos la demostración con Gemini CLI, pero el enfoque funciona con cualquier agente de IA que pueda leer documentación y ejecutar comandos.

13.2.1 Instalación de Gemini CLI

  1. Instala Gemini CLI siguiendo las instrucciones en: https://github.com/google-gemini/gemini-cliarrow-up-right

  2. Autentícate con tu cuenta de Google cuando se te solicite. El nivel gratuito incluye:

    • 60 solicitudes al modelo por minuto

    • 1.000 solicitudes al modelo por día

13.2.2 Configuración de la guía de implementación

  1. Descarga el archivo de guía adecuado desde el gist: https://gist.github.com/mrruby/3de1cedace13457b3fd6964186cfcb2earrow-up-right

    • Para Claude Code: Descarga AGENTS.md y cámbiale el nombre a CLAUDE.md

    • Para otros agentes de IA (Gemini CLI, GitHub Copilot, Cursor, etc.): Usa AGENTS.md tal cual

  2. Crea un nuevo directorio para tu proyecto y coloca el archivo de guía dentro de él:

13.2.3 Ejecución de la implementación automatizada

  1. Desde el directorio de tu proyecto, ejecuta Gemini CLI:

  2. Cuando se abra la interfaz de la CLI, escribe:

  3. El agente de IA:

    • Pedirá permiso para usar comandos como pnpm, npm, etc.

    • Creará automáticamente la estructura del proyecto

    • Instalará todas las dependencias necesarias

    • Implementará la funcionalidad completa de provisión de liquidez

    • Configurará los componentes de la interfaz y el estilo

  4. Importante: Después de que la implementación se complete, debes configurar manualmente tu clave de API de TON:

    • Ve a TON Centerarrow-up-right y obtén tu clave de API

    • Crea un .env archivo en la raíz de tu proyecto

    • Añade tu clave de API: VITE_TON_API_KEY=your_api_key_here

    • Los agentes de IA no pueden encargarse de este paso, ya que requiere tus credenciales personales de API

  5. Si ocurre algún error durante el proceso:

    • Simplemente vuelve a pegar el mensaje de error al agente de IA

    • Analizará y corregirá el problema automáticamente

    • En la mayoría de los casos, la implementación se completa correctamente de una sola vez

13.3 Uso de otros agentes de IA

El mismo enfoque funciona con otros asistentes de programación de IA:

  • Claude Code: Descarga AGENTS.md y cámbiale el nombre a CLAUDE.md, luego colócalo en tu proyecto y pide a Claude Code que implemente la guía

  • GitHub Copilot: Usa el AGENTS.md archivo tal cual, abre la guía en tu editor y usa Copilot Chat para implementar paso a paso

  • Cursor Agent: Usa el AGENTS.md archivo tal cual, carga la documentación y solicita la implementación completa mediante el modo agente de Cursor

  • Herramientas personalizadas: Cualquier asistente de IA con acceso a archivos y capacidad de ejecutar comandos puede seguir la guía usando el AGENTS.md archivo

Nota: El AGENTS.md archivo contiene instrucciones compatibles con todos los agentes de IA (Gemini CLI, GitHub Copilot, Cursor, etc.). Sin embargo, Claude Code requiere que el archivo se llame CLAUDE.md para ser reconocido automáticamente, así que debes renombrar AGENTS.md to CLAUDE.md cuando uses Claude Code.

13.4 Beneficios de usar agentes de IA

  • Velocidad: Obtén una implementación funcional en minutos en lugar de horas

  • Precisión: Los agentes de IA siguen la guía rápida con exactitud

  • Gestión de errores: Resuelven automáticamente la mayoría de los problemas comunes de configuración

  • Herramienta de aprendizaje: Observa cómo se desarrolla la implementación paso a paso

  • Personalización: Después de la configuración inicial, puedes modificar el código generado para adaptarlo a tus necesidades específicas

  • Rentable: Muchas herramientas de programación con IA ofrecen niveles gratuitos (como Gemini CLI) o están incluidas en suscripciones existentes

13.5 Mejores prácticas

  1. Revisar el código: Revisa siempre el código generado por IA antes de usarlo en producción

  2. Entender el flujo: Usa el código generado como una herramienta de aprendizaje para entender la provisión de liquidez

  3. Personalizar: Adapta el código generado a tus requisitos específicos

  4. Probar a fondo: Prueba la implementación con cantidades pequeñas antes de procesar transacciones más grandes

  5. Seguridad: Nunca confirmes claves de API ni mnemónicos en el control de versiones

Este enfoque es especialmente útil para:

  • Desarrolladores nuevos en el ecosistema TON

  • Prototipado rápido y pruebas de concepto

  • Aprender con un ejemplo de una implementación funcional

  • Evitar errores comunes de configuración y problemas de puesta en marcha

  • Explorar rápidamente diferentes enfoques de implementación

Última actualización